[antlr-interest] Problem with AST rewrite and variable
Adam Adamski
thebigsmalln at gmail.com
Fri Aug 26 04:40:13 PDT 2011
Dear all ANTLR users,
I have question about my rewrite rule - what is wrong with it?
type:
(ARRAY_OF)* typ1=(simpleType|systemType|objectType)
->^(TYPE ^(ARRAY_OFLIST ARRAY_OF*) $typ1)
;
I get error when I try to check my rules (with eclipse 3.6).
var i,j:integer;
Console spits out this:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at
org.deved.antlride.runtime.LaunchParser.invokeRule(LaunchParser.java:202)
at org.deved.antlride.runtime.LaunchParser.launch(LaunchParser.java:130)
at org.deved.antlride.runtime.LaunchParser.main(LaunchParser.java:228)
Caused by: org.antlr.runtime.tree.RewriteEmptyStreamException: token typ1
at
org.antlr.runtime.tree.RewriteRuleElementStream._next(RewriteRuleElementStream.java:157)
at
org.antlr.runtime.tree.RewriteRuleTokenStream.nextNode(RewriteRuleTokenStream.java:58)
at Loglan82iParser.type(Loglan82iParser.java:14261)
at Loglan82iParser.varDecl(Loglan82iParser.java:1464)
at Loglan82iParser.varDecList(Loglan82iParser.java:1136)
at Loglan82iParser.declaration(Loglan82iParser.java:892)
at Loglan82iParser.declarations(Loglan82iParser.java:656)
at Loglan82iParser.program(Loglan82iParser.java:461)
... 7 more
Is it a mistake to use variable like I used? I mean:
rule:
IDN typ=(type1|type2|typ3)
;
My final question: is it wrong to use same var name for many rules ? I
used variable 'typ' in 4 rules. (I don't think It cause the problem, but
I'm not sure)
Ps. I'm using Eclipse (3.6.2) as my IDE and Antlr v3.3
Thank you in advance.
Adam.
More information about the antlr-interest
mailing list