void quicksort(char *a[5500], int p, int r) { int q; if(p >= r) { return; } else { q = partn(a, p ,r); quicksort(a, p, q-1); quicksort(a, q+1, r); } return; }
void parse_msr( void ) { while ( 1 ) { int f; char *p = gettoken( &f ); //char a; if ( !p ) break; //a = *p; if ( f & TT_LABEL ) { int n = strlen(p); if ( p[n-1] == ':' ) p[n-1] = 0; RegLabel( p ); } else if ( f & TT_NUMBER ) { cgout1( getnum( p ) ); } else if ( f & TT_STRING ) { int i, n = strlen( p ); if ( n > 2 && p[0] == p[n-1] ) n--; for ( i = 1; i < n; i++ ) cgout1( p[i] ); } else if ( f & TT_OTHER ) { HASHDATA *phd = SearchHash( p ); if ( phd ) { if ( phd->type == TYPE_RESERVED ) switch ( phd->value ) { case RSV_ADRS: adrs(); break; case RSV_ADRSM: adrsm(); break; case RSV_ADRSD: adrsd(); break; case RSV_INCLUDE: include(); break; case RSV_GOTO: _goto(); break; case RSV_TEMPO: tempo(); break; case RSV_PARTN: partn(); break; case RSV_PHRASE: phrase(); break; } else if ( phd->type & TYPE_DIRECTCODE ) { cgout1( phd->value ); } } else { error( "Unkown commands '%s'.", p ); } } else if ( f & TT_MML ) { parse_mml_line( -1, p ); } } }