public void Visit(ComparisonNode node) { BinaryOperator( node, "=", () => VariableType.BOOLEAN, new List<VariableType> { VariableType.INTEGER, VariableType.STRING, VariableType.BOOLEAN }); }
public void Visit(ComparisonNode node) { node.Children[0].Accept(this); node.Children[1].Accept(this); switch (node.Children[0].NodeType()) { case VariableType.INTEGER: Emit(Bytecode.IS_EQUAL_INT); break; case VariableType.STRING: Emit(Bytecode.IS_EQUAL_STRING); break; case VariableType.BOOLEAN: Emit(Bytecode.IS_EQUAL_BOOLEAN); break; default: throw new InternalCompilerError("Invalid comparison type"); } }