public override void ExitChaseExpression(ChaseExpression chaseExpression) { if (!(chaseExpression.VariableReference.Declaration is VariableDeclaration)) { Errors.Add(new CompilationError(chaseExpression.Context, "The first argument must be a variable.")); } if (!chaseExpression.VariableReference.Type.IsEquivalentTo(chaseExpression.Destination.Type)) { Errors.Add(new CompilationError(chaseExpression.Context, "Variable and destination must be of same types")); } chaseExpression.Type = new VoidType(chaseExpression.Context); }
public virtual void ExitChaseExpression(ChaseExpression chaseExpression) { }
public virtual void EnterChaseExpression(ChaseExpression chaseExpression) { }
public virtual T VisitChaseExpression(ChaseExpression chaseExpression) { return(VisitChildren(chaseExpression)); }