Package fr.umlv.sableccexample;

Tokens
 number = ['0'..'9']+;
 identifier = ['a'..'z']+;
 assign =  '=';
 plus =    '+'; 
 minus =   '-';
 mult =    '*';
 div =     '/';
 l_par =    '(';
 r_par =    ')';
 blank =   (' ' | 10 | 13 | 9)+;

Ignored Tokens
 blank;

Productions
 bloc = 
        instr*
        ;
 instr = 
        {assign} identifier assign expr |
        {eval} expr
        ;
 expr = 
	{term}   term |
	{plus}   expr plus term |
	{minus}  expr minus term 
	;
 term = 
	{factor}  factor |
	{mult}    term mult factor |
	{div}	  term div factor
	;
 factor =
        {variable} identifier |
	{number}   number |
	{paren}    l_par expr r_par 
	;
