Пример #1
0
        public void H(_NestedCall_Memo _memo, int _index, _NestedCall_Args _args)
        {
            int _arg_index       = 0;
            int _arg_input_index = 0;

            _NestedCall_Item h = null;

            // ARGS 0
            _arg_index       = 0;
            _arg_input_index = 0;

            // ANY
            _ParseAnyArgs(_memo, ref _arg_index, ref _arg_input_index, _args);

            // BIND h
            h = _memo.ArgResults.Peek();

            if (_memo.ArgResults.Pop() == null)
            {
                _memo.Results.Push(null);
                goto label0;
            }

            // CALL C
            var _start_i3 = _index;
            _NestedCall_Item _r3;

            _NestedCall_Args _actual_args3 = new _NestedCall_Item[] { new _NestedCall_Item(Alpha) };

            if (_args != null)
            {
                _actual_args3 = _actual_args3.Concat(_args.Skip(_arg_index));
            }
            _r3 = _MemoCall(_memo, "C", _index, C, _actual_args3);

            if (_r3 != null)
            {
                _index = _r3.NextIndex;
            }

label0:                                    // ARGS 0
            _arg_input_index = _arg_index; // no-op for label
        }
Пример #2
0
        public void G(_NestedCall_Memo _memo, int _index, _NestedCall_Args _args)
        {
            int _arg_index       = 0;
            int _arg_input_index = 0;

            // CALL C
            var _start_i0 = _index;
            _NestedCall_Item _r0;

            _NestedCall_Args _actual_args0 = new _NestedCall_Item[] { new _NestedCall_Item(Alpha) };

            if (_args != null)
            {
                _actual_args0 = _actual_args0.Concat(_args.Skip(_arg_index));
            }
            _r0 = _MemoCall(_memo, "C", _index, C, _actual_args0);

            if (_r0 != null)
            {
                _index = _r0.NextIndex;
            }
        }
Пример #3
0
        public void I(_NestedCall_Memo _memo, int _index, _NestedCall_Args _args)
        {
            int _arg_index       = 0;
            int _arg_input_index = 0;

            // CALL H
            var _start_i0 = _index;
            _NestedCall_Item _r0;
            var _arg0_0 = "i";

            _NestedCall_Args _actual_args0 = new _NestedCall_Item[] { new _NestedCall_Item(_arg0_0) };

            if (_args != null)
            {
                _actual_args0 = _actual_args0.Concat(_args.Skip(_arg_index));
            }
            _r0 = _MemoCall(_memo, "H", _index, H, _actual_args0);

            if (_r0 != null)
            {
                _index = _r0.NextIndex;
            }
        }