package org.ntlab.rdlcanvas.ast;
/**
* Represents an infix expression in AST (Abstract Syntax Tree)
*
* @author s-yamagiwa
*/
public class InfixExpression extends Expression {
private String operator;
private Expression leftOperand;
private Expression rightOperand;
public InfixExpression(String operator, Expression leftOperand, Expression rightOperand) {
this.operator = operator;
this.leftOperand = leftOperand;
this.rightOperand = rightOperand;
}
@Override
public Expression replace(Variable variable, Expression expression) {
return new InfixExpression(operator, leftOperand.replace(variable, expression), rightOperand.replace(variable, expression));
}
public String getOperator() {
return this.operator;
}
public void setOperator(String 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 + " " + rightOperand.toString();
}
}