public void VisitBooleanNegation(BooleanNegation node) { node.Accept(this.typeChecker); node.Factor.Accept(this); if (node.EvaluationType != TokenType.BOOLEAN_VAL) { analyzer.notifyError(new IllegalTypeError(node.Factor)); } }
public void VisitBooleanNegation(BooleanNegation node) { if (node.HasAlreadyBeenEvaluated) { return; } node.Factor.Accept(this); TokenType factorEval = node.Factor.EvaluationType; node.EvaluationType = factorEval == TokenType.BOOLEAN_VAL ? factorEval : TokenType.ERROR; }