-- Mini.cf Prog. Program ::= ListStm ; NilStm. ListStm ::= ; ConsStm. ListStm ::= Stm ListStm ; SDecl. Stm ::= Type Ident ";" ; SAss. Stm ::= Ident "=" Exp ";" ; SBlock. Stm ::= "{" ListStm "}" ; SPrint. Stm ::= "print" Exp ";" ; EVar. Exp1 ::= Ident ; EInt. Exp1 ::= Integer ; EDouble. Exp1 ::= Double ; EAdd. Exp ::= Exp1 "+" Exp1 ; _. Exp ::= Exp1 ; _. Exp1 ::= "(" Exp ")" ; TInt. Type ::= "int" ; TDouble. Type ::= "double" ; Id_i. Ident ::= "i" ; Id_x. Ident ::= "x" ; Int_0. Integer ::= "0" ; Int_1. Integer ::= "1" ;