-ELt. Exp ::= Exp1 "<" Exp1 ;
-EELt. Exp ::= Exp1 "<=" Exp1 ;
-EGt. Exp ::= Exp1 ">" Exp1 ;
-EEGt. Exp ::= Exp1 ">=" Exp1 ;
-EEq. Exp ::= Exp1 "==" Exp1 ;
-ENEq. Exp ::= Exp1 "!=" Exp1 ;
-EPlus. Exp1 ::= Exp1 "+" Exp2 ;
-EMinus. Exp1 ::= Exp1 "-" Exp2 ;
-ETimes. Exp2 ::= Exp2 "*" Exp3 ;
-EDiv. Exp2 ::= Exp2 "/" Exp3 ;
+BExp. Exp ::= Exp1 BOp Exp1 ;
+op1. Exp1 ::= Exp1 Op1 Exp2 ;
+define op1 e1 o e2 = OpExp e1 o e2 ;
+op2. Exp2 ::= Exp2 Op2 Exp3 ;
+define op2 e1 o e2 = OpExp e1 o e2 ;