%%%
%% Section 15.26: Assignment Operators
%%
%% @author Martin Bravenboer <martin.bravenboer@gmail.com>
%%%
module languages/java-15/expressions/AssignmentOperators
imports
languages/java-15/expressions/Main
exports
sorts LHS
context-free syntax
LHS "=" Expr -> Expr {cons("Assign")}
LHS "*=" Expr -> Expr {cons("AssignMul")}
LHS "/=" Expr -> Expr {cons("AssignDiv")}
LHS "%=" Expr -> Expr {cons("AssignRemain")}
LHS "+=" Expr -> Expr {cons("AssignPlus")}
LHS "-=" Expr -> Expr {cons("AssignMinus")}
LHS "<<=" Expr -> Expr {cons("AssignLeftShift")}
LHS ">>=" Expr -> Expr {cons("AssignRightShift")}
LHS ">>>=" Expr -> Expr {cons("AssignURightShift")}
LHS "&=" Expr -> Expr {cons("AssignAnd")}
LHS "^=" Expr -> Expr {cons("AssignExcOr")}
LHS "|=" Expr -> Expr {cons("AssignOr")}
ExprName -> LHS
FieldAccess -> LHS
ArrayAccess -> LHS