Program. Program ::= "main" "=" Exp ; EAbs. Exp ::= "\\" Ident "->" Exp ; EApp. Exp2 ::= Exp2 Exp3 ; EAdd. Exp1 ::= Exp1 "+" Exp2 ; ESub. Exp1 ::= Exp1 "-" Exp2 ; EMul. Exp2 ::= Exp2 "*" Exp3 ; EDiv. Exp2 ::= Exp2 "/" Exp3 ; EMod. Exp2 ::= Exp2 "%" Exp3 ; EId. Exp4 ::= Ident ; EInt. Exp4 ::= Integer ; coercions Exp 4 ; comment "--" ; comment "{-" "-}" ;