示例#1
0
        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));
            }
        }
示例#2
0
        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;
        }