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