[stringtemplate-interest] Bug in group map parsing??

Caleb Lyness caleb.lyness at ezswitch.net
Fri Dec 22 04:25:26 PST 2006


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());

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org:8080/pipermail/stringtemplate-interest/attachments/20061222/5cb813ab/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3269 bytes
Desc: S/MIME Cryptographic Signature
Url : http://www.antlr.org:8080/pipermail/stringtemplate-interest/attachments/20061222/5cb813ab/attachment-0001.bin 


More information about the stringtemplate-interest mailing list