public override void ExitVariableExpression([NotNull] PigeonParser.VariableExpressionContext context) { var name = context.ID().GetText(); if (scope.TryGetVariable(name, out var variable)) { Types.Put(context, variable.Type); } else { Types.Put(context, PigeonType.Error); errorBag.ReportUndeclaredVariable(context.GetTextSpan(), name); } }
public override object VisitVariableExpression([NotNull] PigeonParser.VariableExpressionContext context) { return(functionScopes.Peek().Evaluate(context.ID().GetText())); }