package openmods.calc.parsing; import com.google.common.collect.ImmutableList; import java.util.List; import openmods.calc.BinaryOperator; import openmods.calc.IExecutable; public class BinaryOpNode<E> implements IExprNode<E> { public final BinaryOperator<E> operator; public final IExprNode<E> left; public final IExprNode<E> right; public BinaryOpNode(BinaryOperator<E> operator, IExprNode<E> left, IExprNode<E> right) { this.operator = operator; this.left = left; this.right = right; } @Override public void flatten(List<IExecutable<E>> output) { left.flatten(output); right.flatten(output); output.add(operator); } @Override public String toString() { return "<op: '" + operator.id + "', l: " + left + ", r: " + right + ">"; } @Override public Iterable<IExprNode<E>> getChildren() { return ImmutableList.of(left, right); } }