package org.heaven7.scrap.databinding.expression;
/**
* Created by heaven7 on 2015/8/12.
*/
public class AssignExpr extends Expression {
//like: target &= value;
Expression target;
Expression value;
Operator operator;
@Override
public <R, A> R accept(IExpressionVisitor<R, A> visitor, A arg) {
return visitor.visit(this,arg);
}
public Expression getTarget() {
return target;
}
public void setTarget(Expression target) {
this.target = target;
}
public Expression getValue() {
return value;
}
public void setValue(Expression value) {
this.value = value;
}
public Operator getOperator() {
return operator;
}
public void setOperator(Operator operator) {
this.operator = operator;
}
public enum Operator{
Assign("="),
Plus("+="),
Minus("-="),
Star("*="),
Slash("/="),
Rem("%="),
And("&="),
Or("|="),
Xor("^="),
Lshift("<<="),
RsignedShift(">>="),
RunsignedShift(">>>=")
;
final String value;
Operator(String value) {
this.value = value;
}
}
}