view src/kryshen/tema/functions/Define.java @ 0:1d2fe61a3a62

Tema 0.1 (imported from CVS).
author Mikhail Kryshen <mikhail@kryshen.net>
date Tue, 16 May 2006 18:04:09 +0400
parents
children 548a93c24e55
line source
1 /*
2 * Copyright (C) 2006 Mikhail A. Kryshen
3 *
4 * $Id: Define.java,v 1.1.1.1 2006/05/16 14:04:09 mikhail Exp $
5 */
7 package kryshen.tema.functions;
9 import java.io.*;
10 import java.util.*;
12 import kryshen.tema.*;
14 public class Define extends Function {
15 public Define() {
16 super("define");
17 }
19 public int invoke(FunctionDataParser fdp, Writer out)
20 throws IOException, TemplateException {
22 final String arg0 = fdp.getNextArg();
23 final String data = fdp.getData();
25 Function newFunction = new Function(arg0) {
26 public int invoke(final FunctionDataParser fdp, final Writer out)
27 throws IOException, TemplateException {
29 TemplateParser functionParser =
30 new TemplateParser(fdp.getTemplateParser());
32 functionParser.registerFunction(new Function("nextarg") {
33 public int invoke(FunctionDataParser unusedFdp,
34 final Writer out)
35 throws IOException, TemplateException {
37 return fdp.parseNextArg(out);
38 }
39 });
41 functionParser.registerFunction(new Function("data") {
42 public int invoke(FunctionDataParser unusedFdp,
43 final Writer out)
44 throws IOException, TemplateException {
46 return fdp.parseData(out);
47 }
48 });
50 return functionParser.parse(new StringReader(data), out);
51 }
52 };
54 fdp.getTemplateParser().registerFunction(newFunction);
56 out.write(arg0);
57 return 1;
58 }
59 }