コード例 #1
0
        private static IWorkshopTree CallInlineRecursive(MethodBuilder builder, DefinedMethod method, MethodCall call, ActionSet callerSet)
        {
            RecursiveStack lastCall = RecursiveStack.GetRecursiveCall(callerSet.Translate.MethodStack, method);

            if (lastCall == null)
            {
                RecursiveStack parser = new RecursiveStack(builder);
                callerSet.Translate.MethodStack.Add(parser);
                parser.ParseCall(call);
                callerSet.Translate.MethodStack.Remove(parser);

                return(builder.ReturnHandler.GetReturnedValue());
            }
            else
            {
                lastCall.RecursiveCall(call, callerSet);
                return(lastCall.Builder.ReturnHandler.GetReturnedValue());
            }
        }