func: void dfacomp(const char *s,size_t len,struct dfa *d,int searchflag) dfaanalyze ( d , searchflag ); void dfaanalyze(struct dfa *d,int searchflag) int * nullable ; d -> searchflag = searchflag; nullable = ( ( sizeof ( ( * nullable ) ) == 1 ? xmalloc ( d -> depth ) : xnmalloc ( d -> depth , sizeof ( ( * nullable ) ) ) ) ); while ( 0 )  o_nullable = nullable; * ( nullable ++ ) = 1; nullable [ - 1 ] = 1; if ( nullable [ - 2 ] )  if ( nullable [ - 1 ] )  nullable [ - 2 ] = nullable [ - 1 ] && nullable [ - 2 ]; nullable [ - 2 ] = nullable [ - 1 ] || nullable [ - 2 ]; * ( nullable ++ ) = d -> tokens [ i ] == BACKREF; free ( o_nullable ); 