SExp. Stm ::= Exp ";" ;
SBlock. Stm ::= "{" [Stm] "}" ;
-declIntE. Stm ::= "int" Ident "=" Exp ";" ;
-declBoolE. Stm ::= "bool" Ident "=" Exp ";" ;
-define declIntE x e = SDecl TInt x e;
-define declBoolE x e = SDecl TBool x e;
-declInt. Stm ::= "int" Ident ";" ;
-declBool. Stm ::= "bool" Ident ";" ;
-define declInt x = SDecl TInt x (EInt 0);
-define declBool x = SDecl TBool x (EBool False);
+SDecl. Stm ::= Type Ident "=" Exp ";" ;
+SDeclD. Stm ::= Type Ident ";" ;
SWhile. Stm ::= "while" "(" Exp ")" Stm ;
internal EPost. Exp ::= Ident Op1 ;
internal SNoop. Stm ::= ;
-internal SDecl. Stm ::= Type Ident "=" Exp ";" ;
comment "/*" "*/" ;
comment "//" ;