package code.ast;
/**
* Represents a prefix expression in AST (Abstract Syntax Tree)
*
* @author s-yamagiwa
*/
public class PrefixExpression extends Expression {
public enum Operator {
INCREMENT("++"), DECREMENT("--"), PLUS("+"), MINUS("-"), NOT("!");
Operator(String symbol) {
this.symbol = symbol;
}
private final String symbol;
@Override
public String toString() {
return symbol;
}
}
private Expression operand;
private Operator operator;
public PrefixExpression(Expression operand, Operator operator) {
this.operand = operand;
this.operator = operator;
}
public Expression getOperand() {
return operand;
}
public void setOperand(Expression operand) {
this.operand = operand;
}
public Operator getOperator() {
return operator;
}
public void setOperator(Operator operator) {
this.operator = operator;
}
@Override
public String toString() {
return operator.toString() + operand.toString();
}
}