[stringtemplate-interest] misc
Brian Lewis
bsl04 at uark.edu
Mon Mar 26 14:01:20 PDT 2007
On Mon, 26 Mar 2007 09:40:42 -0700
Colin Bean <ccbean at gmail.com> wrote:
> Haven't tested your first example, but you might try something like:
> ...
> };null="null"$
Test.java:
import java.io.*;
import java.util.*;
import org.antlr.stringtemplate.*;
import org.antlr.stringtemplate.language.*;
public final class Test
{
public static void main(String[] arguments)
{
Test t = new Test();
t.test();
}
public void test()
{
InputStream ins = getClass().getResourceAsStream("test.stg");
InputStreamReader in = new InputStreamReader(ins);
StringTemplateGroup g = new StringTemplateGroup(in,
DefaultTemplateLexer.class); StringTemplate st =
g.getInstanceOf("test"); System.out.println(st.toString());
}
}
test.stg:
group test;
hack ::= ["x":, default:]
test() ::= <<
$
["field1", "field2"],
["label1", "label2"],
["" , "" ],
[hack.x , "40" ]:
{name, label, required, size|
$name$, $label$, $required$, $size$
};null="null"$
>>
The expected output is
field1, label1, , null
field2, label2, , 40
The actual output is
field1, label1, , 40
field2, label2, ,
> It's also possible to iterate over a list of maps:
Maybe if I had already made one in Java? I'm trying to create them in
ST and having trouble doing things like
group test;
fields ::= [
[ "name":"field1", "label":"label1", "required":"", default: ],
[ "name":"field1", "label":"label1", "required":"", "size":"40",
default: ] ]
test() ::= "$fields:{$it.name$, $it.label$, $it.required$,
$it.size$$\n$}$"
ST doesn't seem to understand my list of maps.
More information about the stringtemplate-interest
mailing list