[antlr-interest] problem with my grammar

lhoussain aitbenmouh at yahoo.fr
Fri Dec 24 14:39:50 PST 2010


Hello ,

   Im working with ANTLRWORKS and i hve probelmes with my grammar if you can
help me to change it in a LL1 grammar help me.
 
grammar grammaire;
PROGRAMM     : 'programm ident' VARDECLLIST FUNCDECLLIST INSTR;		
VARDECLLIST  : EOF| VARDECL ';' VARDECLLIST;
VARDECL      : 'var' IDENTLIST ';' TYPENAME;
IDENTLIST    : 'ident' IDENT;
IDENT	     : EOF|','IDENTLIST;	
TYPENAME     : ATOMICTYPE | ARRAYTYPE;
ATOMICTYPE   : 'unit' | 'bool' 
                      | 'int'; 
ARRAYTYPE    : 'array' '['RANGELIST']' 'of' ATOMICTYPE; 
RANGELIST    : 'int..int' RANG;
RANG	     : 	',' RANGELIST|EOF;
FUNCDECLLIST : EOF| FUNCDECL ';' FUNCDECLLIST;
FUNCDECL     : 'function ident ('ARGLIST') : 'ATOMICTYPE VARDECLLIST INSTR;
ARGLIST	     : ARG K| EOF;
K	     :','ARGLIST|EOF;		
ARG          : 'ident :' TYPENAME| 'ref ident :' TYPENAME; 
INSTR        :  'if' EXPR 'then do 'INSTR SUITE 
				| 'while' EXPR' do' INSTR 
				| LVALUE' :='EXPR 
				| 'return' X
				| 'ident ('EXPRLIST')'
				| 'begin' SEQUENCE 'end' 
				| 'begin end'; 
SUITE	     :EOF|' else' INSTR ;					
X	     :EXPR|EOF;	
SEQUENCE     : INSTR SUIV; 
SUIV	     :	';'SEQUENCE|';'|EOF;
LVALUE       : 'ident' VALUE;
VALUE	     :	'['EXPRLIST']'|EOF;
EXPRLIST     : EXPR T;
T	     :','EXPRLIST |EOF;	
EXPR         : 'cte' R  | '('EXPR')' R
		        | 'opu' EXPR R
                        | 'ident' EXPRL R; 
   
R	     :	'opb' EXPR R | EOF;
EXPRL	     : 	'('EXPRLIST')'|'['EXPRLIST']';


-- 
View this message in context: http://antlr.1301665.n2.nabble.com/problem-with-my-grammar-tp5865678p5865678.html
Sent from the ANTLR mailing list archive at Nabble.com.


More information about the antlr-interest mailing list