示例#1
0
        __minor(instance continuous)
        {
            instance BacktrackRange range = new BacktrackRange(s);

            for (instance int iNode = 0; iNode < nodes.Length; iNode++)
            {
                range.Restore(s);

                bool ret;
                if (nodes[iNode].Nondeterministic)
                {
                    s.Success = true;
                    return(nodes[iNode].GetTester());

                    ret = s.Success;
                }
                else
                {
                    ret = nodes[iNode].Read(s);
                }

                if (ret)
                {
                    s.Success = true;
                    return(null);
                }
            }
            s.Success = false;
            break return(null);
        }
示例#2
0
        private ITester _Read(Status s)
        {
            switch (continuous_state)
            {
            default: throw new System.Exception("この関数の実行は終了しています。");

            case 0: break;

            case 1: goto R0;

            case 2: goto R1;
            }
#pragma warning disable 164
            range = new BacktrackRange(s);
            iNode = 0;
            L0 : if (!(iNode < nodes.Length))
            {
                goto L2;
            }
            range.Restore(s);

            bool ret;
            if (!(nodes[iNode].Nondeterministic))
            {
                goto L3;
            }
            s.Success        = true;
            continuous_state = 1; return(nodes[iNode].GetTester());

            R0 :;
            ret = s.Success;
            goto L4;
L3:
            ret = nodes[iNode].Read(s);
            L4 :;

            if (!(ret))
            {
                goto L5;
            }
            s.Success        = true;
            continuous_state = 2; return(null);

            R1 :;
            L5 :;
            L1 : iNode++; goto L0;
            L2 :;
            s.Success        = false;
            continuous_state = -1; return(null);

#pragma warning restore 164
        }