public override SemanticCheckResult VisitMultiply(ASTMultiplyNode Multiply) { SemanticCheckResult result = new SemanticCheckResult(); var left = Multiply.Left.Accept(this); var right = Multiply.Right.Accept(this); Multiply.SemanticCheckResult.Ensure(left, left.Type == CompilationUnit.TypeEnvironment.Int, new Lazy <Error>(() => new Error("Left Expresion must have type Int.", ErrorKind.TypeError, Multiply.MultToken.Line, Multiply.MultToken.Column))); Multiply.SemanticCheckResult.Ensure(right, right.Type == CompilationUnit.TypeEnvironment.Int, new Lazy <Error>(() => new Error("Right Expresion must have type Int.", ErrorKind.TypeError, Multiply.MultToken.Line, Multiply.MultToken.Column))); Multiply.SemanticCheckResult.EnsureReturnType(CompilationUnit.TypeEnvironment.Int); return(Multiply.SemanticCheckResult); }
public ASTCILNode VisitMultiply(ASTMultiplyNode Multiply) { return(new ASTCILMultiplyTwoVariablesNode((ASTCILExpressionNode)Multiply.Left.Accept(this), (ASTCILExpressionNode)Multiply.Right.Accept(this))); }
public virtual T VisitMultiply(ASTMultiplyNode Multiply) { Multiply.Left.Accept(this); Multiply.Right.Accept(this); return(default(T)); }