package me.august.lumen.compile.parser.ast.expr; public abstract class BinaryExpression implements Expression { protected Expression left; protected Expression right; public BinaryExpression(Expression left, Expression right) { this.left = left; this.right = right; } @Override public Expression[] getChildren() { return new Expression[]{left, right}; } @Override public boolean isConstant() { return left.isConstant() && right.isConstant(); } public Expression getLeft() { return left; } public Expression getRight() { return right; } @Override public String toString() { return getClass().getSimpleName() + '{' + "left=" + left + ", right=" + right + '}'; } }