[antlr-interest] Migrating from ANTLR 2 to ANTLR 3 :-

Johannes Luber jaluber at gmx.de
Thu Aug 7 03:57:39 PDT 2008


jalil hassan schrieb:
> I am working on the grammer file which has been made using antlr v2.I 
> hava to convert it into v3 .I am new to antlr if somebody can help me in 
> understanding and fixing these errors given by antlr tool.

I have never used v2, so I can't solve every problem, but there are at 
least two problems in the conversion process. First, strings like 
"A:type" aren't converted in "A=type", which is the new v3 syntax to 
create labels. The second problem is that strings are still delimited by 
" and not by '.

I've also seen ! used after the rule name at its own definition (e.g. 
type! : def;), but I don't know the meaning of it. In v3 it isn't legal 
to put a ! there. Also I don't believe that v3 doesn't support a 
paraphrase option, but I'm fuzzy about error recovery.

I'd recommend to read at least the wiki articles or even to buy the 
ANTLR book, as there are the basic concepts explained, as well with many 
examples.

Johannes

>  
> ANTLR Parser Generator  Version 3.1b1 (May 20, 2008)  1989-2008
> error(100): new.g:32:6: syntax error: antlr: new.g:32:6: unexpected token:
> int CurrentType = 0;
> error(100): new.g:35:17: syntax error: antlr: new.g:35:17: unexpected 
> token:  CurrentType = PRNPROC;
> error(100): new.g:36:17: syntax error: antlr: new.g:36:17: unexpected 
> token: CurrentType = PRNCHAN;
> error(100): new.g:37:17: syntax error: antlr: new.g:37:17: unexpected 
> token: CurrentType = PRNACT;
> error(100): new.g:38:17: syntax error: antlr: new.g:38:17: unexpected 
> token: CurrentType = PRNSEQ;
> error(100): new.g:41:17: syntax error: antlr: new.g:41:17: unexpected 
> token: CurrentType = PRNINT;
> error(100): new.g:44:5: syntax error: antlr: new.g:44:5: unexpected token: ;
> error(100): new.g:48:20: syntax error: antlr: new.g:48:20: unexpected 
> token: A
> error(100): new.g:53:11: syntax error: antlr: new.g:53:11: unexpected 
> token: A
> error(100): new.g:53:18: syntax error: antlr: new.g:53:18: unexpected 
> token: B
> error(100): new.g:73:11: syntax error: antlr: new.g:73:11: unexpected 
> token: A
> error(100): new.g:73:39: syntax error: antlr: new.g:73:39: unexpected 
> token: B
> error(100): new.g:78:11: syntax error: antlr: new.g:78:11: unexpected 
> token: A
> error(100): new.g:78:31: syntax error: antlr: new.g:78:31: unexpected 
> token: B
> error(100): new.g:80:11: syntax error: antlr: new.g:80:11: unexpected 
> token: C
> error(100): new.g:86:28: syntax error: antlr: new.g:86:28: unexpected 
> token: A
> error(100): new.g:86:46: syntax error: antlr: new.g:86:46: unexpected 
> token: B
> error(100): new.g:86:63: syntax error: antlr: new.g:86:63: unexpected 
> token: C
> error(100): new.g:88:27: syntax error: antlr: new.g:88:27: unexpected 
> token: D
> error(100): new.g:88:44: syntax error: antlr: new.g:88:44: unexpected 
> token: E
> error(100): new.g:90:9: syntax error: antlr: new.g:90:9: unexpected token: F
> error(100): new.g:108:9: syntax error: antlr: new.g:108:9: unexpected 
> token: A
> error(100): new.g:131:19: syntax error: antlr: new.g:131:19: unexpected 
> token: A
> error(100): new.g:176:9: syntax error: antlr: new.g:176:9: unexpected 
> token: A
> error(100): new.g:176:41: syntax error: antlr: new.g:176:41: unexpected 
> token: B
> error(100): new.g:176:70: syntax error: antlr: new.g:176:70: unexpected 
> token: C
> error(100): new.g:241:20: syntax error: antlr: new.g:241:20: unexpected 
> token: A
> error(100): new.g:270:9: syntax error: antlr: new.g:270:9: unexpected 
> token: A
> error(100): new.g:287:33: syntax error: antlr: new.g:287:33: unexpected 
> token: A
> error(100): new.g:287:40: syntax error: antlr: new.g:287:40: unexpected 
> token: B
> error(100): new.g:296:25: syntax error: antlr: new.g:296:25: unexpected 
> token: C
> error(100): new.g:296:32: syntax error: antlr: new.g:296:32: unexpected 
> token: D
> error(100): new.g:304:18: syntax error: antlr: new.g:304:18: unexpected 
> token: E
> error(100): new.g:308:15: syntax error: antlr: new.g:308:15: unexpected 
> token: A
> error(100): new.g:322:13: syntax error: antlr: new.g:322:13: unexpected 
> token: A
> error(100): new.g:334:15: syntax error: antlr: new.g:334:15: unexpected 
> token: A
> error(10):  internal error: Exception new.g:760:1: expecting '}', found 
> '<EOF>'@org.antlr.tool.ANTLRLexer.nextToken(ANTLRLexer.java:333): 
> unexpected stream error from parsing new.g
> warning(149): new.g:0:0: rewrite syntax or operator with no output 
> option; setting output=AST
> error(150):  grammar file new.g has no rules
> error(100): new.g:0:0: syntax error: assign.types: <AST>:0:0: unexpected 
> end of subtree
> error(100): new.g:0:0: syntax error: define: <AST>:0:0: unexpected end 
> of subtree
>   
> My grammer file is attached with
> thanking ,
> hassan
> 
> 
> ------------------------------------------------------------------------
> Not happy with your email address?
> Get the one you really want <http://uk.docs.yahoo.com/ymail/new.html> - 
> millions of new email addresses available now at Yahoo! 
> <http://uk.docs.yahoo.com/ymail/new.html>



More information about the antlr-interest mailing list