public Interleave( State l, State r, Transition.Interleave a ) { this.Lhs=l; this.Rhs=r; this.Alphabet=a; }
/** 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; }