__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); }
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 }