Newer
Older
AlgebraicDataflowArchitectureModel / AlgebraicDataflowArchitectureModel / src / code / ast / PrefixExpression.java
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();
	}
}