Beispiel #1
0
 public Interleave( State l, State r, Transition.Interleave a )
 {
     this.Lhs=l;
     this.Rhs=r;
     this.Alphabet=a;
 }
Beispiel #2
0
        /** Decodes interleave transitions. */
        private static Transition.Interleave decodeITr( string encStates, string encITr, State.Single[] states, int s, Transition.Interleave next )
        {
            int start = encStates[ s*sizeOfState+5 ];
            int end = (s!=states.Length-1)?encStates[ (s+1)*sizeOfState+5 ]:encITr.Length;

            for( int i=end-sizeOfITr; i>=start; i-=sizeOfITr ) {
                next = new Transition.Interleave(
                    states[encITr[i+0]],
                    states[encITr[i+1]],
                    states[encITr[i+2]],
                    encITr[i+3]=='L',
                    next );
            }

            return next;
        }