[stringtemplate-interest] Bug in group map parsing??
Nate
misc at n4te.com
Fri Dec 22 15:18:05 PST 2006
"default" is a reserved words for maps I believe. I ran into this
problem a couple weeks ago. IMO, the parser should know what context
"default" is being used in and allow it if not in a map.
-Nate
Caleb Lyness wrote:
> Hello all,
>
> Can I use my wiki login to login on Jira and reports bugs?
> And here are the bugs I have come across:
>
> 1) The string "default" cannot be used as the string in the map
> 2) If default is the only element in the map, parsing fails:
> *
> Group definition:*
>
> group testGroup;
> map ::= [
> default: "default"
> ]
>
> t1() ::= "$map.(1)$"
>
> fails as follows:
>
> template group parse error
> line 3:6: expecting STRING, found 'default'
> at antlr.Parser.match(Parser.java:211)
> at
> org.antlr.stringtemplate.language.GroupParser.keyValuePair(GroupParser.java:529)
> at
> org.antlr.stringtemplate.language.GroupParser.map(GroupParser.java:474)
> at
> org.antlr.stringtemplate.language.GroupParser.mapdef(GroupParser.java:369)
> at
> org.antlr.stringtemplate.language.GroupParser.group(GroupParser.java:189)
> at
> org.antlr.stringtemplate.StringTemplateGroup.parseGroup(StringTemplateGroup.java:769)
> at
> org.antlr.stringtemplate.StringTemplateGroup.<init>(StringTemplateGroup.java:271)
> at
> org.antlr.stringtemplate.StringTemplateGroup.<init>(StringTemplateGroup.java:249)
> at t.main(t.java:22)
>
> *Group definition:*
>
> group testGroup;
> map ::= [
> "str": "value",
> default: "default"
> ]
>
> t1() ::= "$map.(1)$"
>
> fails as follows:
>
> template group parse error
> line 4:15: unexpected token: default
> at
> org.antlr.stringtemplate.language.GroupParser.keyValue(GroupParser.java:580)
> at
> org.antlr.stringtemplate.language.GroupParser.map(GroupParser.java:495)
> at
> org.antlr.stringtemplate.language.GroupParser.mapdef(GroupParser.java:369)
> at
> org.antlr.stringtemplate.language.GroupParser.group(GroupParser.java:189)
> at
> org.antlr.stringtemplate.StringTemplateGroup.parseGroup(StringTemplateGroup.java:769)
> at
> org.antlr.stringtemplate.StringTemplateGroup.<init>(StringTemplateGroup.java:271)
> at
> org.antlr.stringtemplate.StringTemplateGroup.<init>(StringTemplateGroup.java:249)
> at t.main(t.java:22)
>
> *This group definition works:*
>
> group testGroup;
> map ::= [
> "str": "value",
> default: "defaul"
> ]
>
> t1() ::= "$map.(1)$"
>
> *Code to reproduce results:*
>
> String templateGroupDef = "group testGroup; \n"
> + "map ::= [\n"
> + " \"str\": \"value\",\n"
> + " default: \"defaul\"\n"
> + "]\n\n"
>
> + "t1() ::= \"$map.(1)$\"\n";
>
> StringTemplateGroup group = new StringTemplateGroup(
> new StringReader(templateGroupDef),
> DefaultTemplateLexer.class);
>
> System.out.println(templateGroupDef);
>
> StringTemplate tmpl = group.getInstanceOf("t1");
> System.out.println(tmpl.toString());
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> stringtemplate-interest mailing list
> stringtemplate-interest at antlr.org
> http://www.antlr.org:8080/mailman/listinfo/stringtemplate-interest
>
More information about the stringtemplate-interest
mailing list