protected void atAssignExpr(AssignExpr expr, boolean doDup) throws CompileError { // =, %=, &=, *=, /=, +=, -=, ^=, |=, <<=, >>=, >>>= int op = expr.getOperator(); ASTree left = expr.oprand1(); ASTree right = expr.oprand2(); if (left instanceof Variable) atVariableAssign(expr, op, (Variable) left, ((Variable) left).getDeclarator(), right, doDup); else { if (left instanceof Expr) { Expr e = (Expr) left; if (e.getOperator() == ARRAY) { atArrayAssign(expr, op, (Expr) left, right, doDup); return; } } atFieldAssign(expr, op, left, right, doDup); } }
@Override public Boolean visit(final AssignExpr n1, final Node arg) { final AssignExpr n2 = (AssignExpr) arg; if (n1.getOperator() != n2.getOperator()) { return Boolean.FALSE; } if (!nodeEquals(n1.getTarget(), n2.getTarget())) { return Boolean.FALSE; } if (!nodeEquals(n1.getValue(), n2.getValue())) { return Boolean.FALSE; } return Boolean.TRUE; }
public Object visit(AssignExpr node) { return layoutUnary( "Assign " + (node.getRefName() != null ? node.getRefName() + "." : "") + node.getName(), node.getExpr()); }