1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
module languages/java-14/expressions/BinaryOperators
imports
languages/java-14/expressions/Main
languages/java-14/types/Main
exports
sorts CondMid
context-free syntax
Expr "instanceof" RefType -> Expr {cons("InstanceOf")}
Expr "*" Expr -> Expr {left, cons("Mul")}
Expr "/" Expr -> Expr {left, cons("Div")}
Expr "%" Expr -> Expr {left, cons("Remain")}
Expr "+" Expr -> Expr {left, cons("Plus")}
Expr "-" Expr -> Expr {left, cons("Minus")}
Expr "<<" Expr -> Expr {left, cons("LeftShift")}
Expr ">>" Expr -> Expr {left, cons("RightShift")}
Expr ">>>" Expr -> Expr {left, cons("URightShift")}
Expr "<" Expr -> Expr {left, cons("Lt")}
Expr ">" Expr -> Expr {left, cons("Gt")}
Expr "<=" Expr -> Expr {left, cons("LtEq")}
Expr ">=" Expr -> Expr {left, cons("GtEq")}
Expr "==" Expr -> Expr {left, cons("Eq")}
Expr "!=" Expr -> Expr {left, cons("NotEq")}
Expr "&&" Expr -> Expr {left, cons("LazyAnd")}
Expr "||" Expr -> Expr {left, cons("LazyOr")}
Expr "&" Expr -> Expr {left, cons("And")}
Expr "^" Expr -> Expr {left, cons("ExcOr")}
Expr "|" Expr -> Expr {left, cons("Or")}
%% todo JFR-30
Expr CondMid Expr -> Expr {right, cons("Cond")}
"?" Expr ":" -> CondMid {bracket}
|