BTrue. BoolT ::= "true" ;
BFalse. BoolT ::= "false" ;
-SDecl. Stm ::= Typ Var ";" ;
---SAss. Stm ::= Ident "=" Exp ";" ;
+SDecl. Stm ::= Typ Ident ";" ;
+SDeclAss. Stm ::= Typ Ident "=" Exp ";" ;
SExp. Stm ::= Exp ";" ;
SBlock. Stm ::= "{" [Stm] "}" ;
SIf. Stm ::= "if" "(" Exp ")" Stm ;
-- SFor. Stm ::= "for" "(" Stm Exp ";" Exp ")" Stm ;
SPrint. Stm ::= "print" Exp ";" ;
-VVar. Var ::= Ident ;
-VAss. Var ::= Ident "=" Exp;
+-- VVar. Var ::= Ident ;
+-- VAss. Var ::= Ident "=" Exp;
ELt. Exp ::= Exp1 "<" Exp1 ;
EELt. Exp ::= Exp1 "<=" Exp1 ;
EDiv. Exp2 ::= Exp2 "/" Exp3 ;
EIncr. Exp3 ::= Ident "++" ;
EDecr. Exp3 ::= Ident "--" ;
-EVar. Exp3 ::= Var ;
+EVar. Exp3 ::= Ident ;
+EAss. Exp3 ::= Ident "=" Exp;
EInt. Exp3 ::= Integer ;
ENeg. Exp3 ::= "-" Exp3 ;
EBool. Exp3 ::= BoolT ;