[antlr-interest] (v3) Token aggregation
Sean Walton
swalton at cs.utah.edu
Sat Aug 5 15:17:50 PDT 2006
Terence Parr wrote:
> actually it's the id+=foo that has been fixed already in my version.
>
> Note the error says idx which means it has nothing to do with the rule
> you provide.
>
> Ter
oops. Bad snapshot.
The version you are talking about... is it released yet? Because here
is a test case that demonstrates the problem:
grammar Test;
options {
output=AST;
memoize=true;
backtrack=true;
}
tokens {
PATH;
}
program options{ k=1; backtracking=false; }
: id+=IDENTIFIER ('.' id+=IDENTIFIER) -> ^(PATH $id+)
;
IDENTIFIER
: ('a'..'z'|'A'..'Z')+
;
Generates:
>java -classpath
"antlr-3.0b3.jar;stringtemplate-2.3b9.jar;antlr-2.7.6.jar"
org.antlr.Tool t.g
ANTLR Parser Generator Early Access Version 3.0b3 (July 21, 2006)
1989-2006
0:0: syntax error: assign.types: <AST>:13:50: unexpected AST node: id
0:0: syntax error: assign.types: <AST>:0:0: expecting EOB, found
'<end-of-alt>'
0:0: syntax error: assign.types: <AST>:0:0: unexpected end of subtree
0:0: syntax error: define: <AST>:13:50: unexpected AST node: id
0:0: syntax error: define: <AST>:0:0: expecting EOB, found
'<end-of-alt>'
0:0: syntax error: define: <AST>:0:0: unexpected end of subtree
0:0: syntax error: buildnfa: <AST>:13:50: unexpected AST node: id
internal error: t.g : java.lang.NullPointerException
org.antlr.tool.NFAFactory.build_AlternativeBlock(NFAFactory.java:373)
org.antlr.tool.TreeToNFAConverter.block(TreeToNFAConverter.java:779)
org.antlr.tool.TreeToNFAConverter.rule(TreeToNFAConverter.java:548)
org.antlr.tool.TreeToNFAConverter.rules(TreeToNFAConverter.java:374)
org.antlr.tool.TreeToNFAConverter.grammarSpec(TreeToNFAConverter.java:328)
org.antlr.tool.TreeToNFAConverter.grammar(TreeToNFAConverter.java:188)
org.antlr.tool.Grammar.createNFAs(Grammar.java:677)
org.antlr.tool.Grammar.checkAllRulesForLeftRecursion(Grammar.java:1288)
org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:276)
org.antlr.Tool.processGrammar(Tool.java:320)
org.antlr.Tool.process(Tool.java:251)
org.antlr.Tool.main(Tool.java:70)
Deleting the "backtracking=true;" I get:
>java -classpath
"antlr-3.0b3.jar;stringtemplate-2.3b9.jar;antlr-2.7.6.jar"
org.antlr.Tool t.g
ANTLR Parser Generator Early Access Version 3.0b3 (July 21, 2006)
1989-2006
>
Putting it back in and removing the '+' in the rewrite rule, I get:
>java -classpath
"antlr-3.0b3.jar;stringtemplate-2.3b9.jar;antlr-2.7.6.jar"
org.antlr.Tool t.g
ANTLR Parser Generator Early Access Version 3.0b3 (July 21, 2006)
1989-2006
>
Any ideas?
-Sean
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20060805/8919d9a0/attachment.html
More information about the antlr-interest
mailing list