module languages/java-15/expressions/BinaryOperators imports languages/java-15/expressions/Main languages/java-15/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}