Ejemplo n.º 1
0
        public override Unit VisitAssignExpression(AssignExpressionAST assignExpression)
        {
            var assignmentGenerationHelper = GetAssignmentGenerator(assignExpression.LeftExpression);

            //generar la asignacion.
            assignmentGenerationHelper.GenerateCode(code, assignExpression.RightExpression);
            return(Unit.Create());
        }
Ejemplo n.º 2
0
        public override bool VisitAssignExpression(AssignExpressionAST assignExpression)
        {
            var other = _other as AssignExpressionAST;

            if (other == null)
            {
                return(false);
            }

            return(IsEqualNodes(other.LeftExpression, assignExpression.LeftExpression) &&
                   IsEqualNodes(other.RightExpression, assignExpression.RightExpression));
        }
Ejemplo n.º 3
0
        public override bool VisitAssignExpression(AssignExpressionAST assignExpression)
        {
            assignExpression.CurrentScope = _scope;

            assignExpression.ReturnType = TigerType.GetType <ErrorType>();
            if (!assignExpression.LeftExpression.Accept(this) || !assignExpression.RightExpression.Accept(this))
            {
                return(false);
            }
            if (assignExpression.RightExpression.ReturnType.CanConvertTo(assignExpression.LeftExpression.ReturnType))
            {
                assignExpression.ReturnType = TigerType.GetType <NoType>();
                return(true);
            }
            _errorListener.Add(
                new AnalysisError(
                    string.Format(AnalysisError.LoadMessage("Match"), assignExpression.LeftExpression.ReturnType, assignExpression.RightExpression.ReturnType),
                    assignExpression.Line, assignExpression.Columns));
            return(false);
        }
Ejemplo n.º 4
0
 public abstract T VisitAssignExpression(AssignExpressionAST assignExpression);