Exemple #1
0
        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);
            }
        }
Exemple #2
0
 public override object VisitVariableExpression([NotNull] PigeonParser.VariableExpressionContext context)
 {
     return(functionScopes.Peek().Evaluate(context.ID().GetText()));
 }