Esempio n. 1
0
        public override InjectionValue VisitReturnStatement([NotNull] injectionParser.ReturnStatementContext context)
        {
            if (context.expression() != null)
            {
                var result = Visit(context.expression());
                if (debugger != null)
                {
                    debugger.BeforeReturn(new ReturnContext(context, result));
                }

                if (result.Kind == InjectionValueKind.Array)
                {
                    throw new StatementFailedException("Cannot return dim from a subrutine.");
                }

                return(result);
            }

            return(InjectionValue.Unit);
        }
Esempio n. 2
0
 internal ReturnContext(injectionParser.ReturnStatementContext context, InjectionValue value)
 {
     this.context = context;
     this.value   = value;
 }