[antlr-interest] help please

John B. Brodie jbb at acm.org
Tue Apr 20 07:59:36 PDT 2010


Greetings!

On Tue, 2010-04-20 at 14:37 +0000, Molka Tounsi wrote:
> I tried this example on ANTLRWORK but it shows me errors.
> This is the code:
> class CalcParser extends Parser;
> options {
> 	buildAST = true;	// uses CommonAST by default
> }
> 
> expr
> 	:	mexpr (PLUS^ mexpr)* SEMI!
> 	;
> 
> mexpr
> 	:	atom (STAR^ atom)*
> 	;
> 
> atom:	INT
> 	;
> 
> class CalcLexer extends Lexer;
> 
> WS	:	(' '
> 	|	'\t'
> 	|	'\n'
> 	|	'\r')
> 		{ _ttype = Token.SKIP; }
> 	;
> 
> LPAREN:	'('
> 	;
> 
> RPAREN:	')'
> 	;
> 
> STAR:	'*'
> 	;
> 
> PLUS:	'+'
> 	;
> 
> SEMI:	';'
> 	;
> 
> protected
> DIGIT
> 	:	'0'..'9'
> 	;
> 
> INT	:	(DIGIT)+
> 	;
> 
> class CalcTreeWalker extends TreeParser;
> 
> expr returns [float r]
> {
> 	float a,b;
> 	r=0;
> }
> 	:	#(PLUS a=expr b=expr)	{r = a+b;}
> 	|	#(STAR a=expr b=expr)	{r = a*b;}
> 	|	i:INT			{r = (float)Integer.parseInt(i.getText());}
> 	;
> 
>  can you help me please ???
> 

This looks like an ANTLR version 2 grammar. 

Are you sure you are using an older (e.g. v2) ANTLRWorks and not a
newwer v3 oriented ANTLRWorks?

You might consider moving up to ANTLR version 3...




More information about the antlr-interest mailing list