package code.ast;
import models.algebra.Symbol;
/**
* Represents an infix expression in AST (Abstract Syntax Tree)
*
* @author s-yamagiwa
*/
public class InfixExpression extends Expression {
private Symbol operator;
private Expression leftOperand;
private Expression rightOperand;
public InfixExpression(Symbol operator, Expression leftOperand, Expression rightOperand) {
this.operator = operator;
this.leftOperand = leftOperand;
this.rightOperand = rightOperand;
}
public Symbol getOperator() {
return this.operator;
}
public void setOperator(Symbol operator) {
this.operator = operator;
}
public Expression getLeftOperand() {
return leftOperand;
}
public void setLeftOperand(Expression expression) {
this.leftOperand = expression;
}
public Expression getRightOperand() {
return rightOperand;
}
public void setRightOperand(Expression expression) {
this.rightOperand = expression;
}
@Override
public String toString() {
return leftOperand.toString() + " " + operator.toString() + " " + rightOperand.toString();
}
}