public override bool VisitNegExpression(NegExpressionAST negExpression) { var other = _other as NegExpressionAST; if (other == null) { return(false); } return(IsEqualNodes(other.Expression, negExpression.Expression)); }
public override bool VisitNegExpression(NegExpressionAST negExpression) { negExpression.CurrentScope = _scope; if (negExpression.Expression.Accept(this)) { if (negExpression.Expression.ReturnType == TigerType.GetType <IntType>()) { negExpression.ReturnType = TigerType.GetType <IntType>(); return(true); } _errorListener.Add(new AnalysisError(string.Format(AnalysisError.LoadMessage("NegExp"), negExpression.Expression.ReturnType), negExpression.Line, negExpression.Columns)); } negExpression.ReturnType = TigerType.GetType <ErrorType>(); return(false); }
public override Unit VisitNegExpression(NegExpressionAST negExpression) { bool temp = code.PushOnStack; code.PushOnStack = true; ILGenerator il = code.Method.GetILGenerator(); //cargando el entero para la pila il.Emit(OpCodes.Ldc_I4, -1); negExpression.Expression.Accept(this); il.Emit(OpCodes.Mul); code.PushOnStack = temp; if (!code.PushOnStack) { il.Emit(OpCodes.Pop); } return(Unit.Create()); }
public abstract T VisitNegExpression(NegExpressionAST negExpression);