Esempio n. 1
0
        public override SemanticCheckResult VisitLessThan(ASTLessThanNode LessThan)
        {
            var left  = LessThan.Left.Accept(this);
            var right = LessThan.Right.Accept(this);

            LessThan.SemanticCheckResult.Ensure(left, left.Type == CompilationUnit.TypeEnvironment.Int,
                                                new Lazy <Error>(() => new Error("Left Expresion must be of tipe Int.", ErrorKind.TypeError, LessThan.LessThanToken.Line, LessThan.LessThanToken.Column)));
            LessThan.SemanticCheckResult.Ensure(right, right.Type == CompilationUnit.TypeEnvironment.Int,
                                                new Lazy <Error>(() => new Error("Right Expresion must be of tipe Int.", ErrorKind.TypeError, LessThan.LessThanToken.Line, LessThan.LessThanToken.Column)));
            LessThan.SemanticCheckResult.EnsureReturnType(CompilationUnit.TypeEnvironment.Bool);

            return(LessThan.SemanticCheckResult);
        }
Esempio n. 2
0
 public ASTCILNode VisitLessThan(ASTLessThanNode LessThan)
 {
     return(new ASTCILLessThanTwoVariablesNode((ASTCILExpressionNode)LessThan.Left.Accept(this),
                                               (ASTCILExpressionNode)LessThan.Right.Accept(this)));
 }
 public virtual T VisitLessThan(ASTLessThanNode LessThan)
 {
     LessThan.Left.Accept(this);
     LessThan.Right.Accept(this);
     return(default(T));
 }