// ========== INSTRUCTIONS DE TRACE SUR STDERR, FORMATTEES, ==================== // // Exemple Appel : trace2("CompName",$2) // Resultat : // ---------------------------------------------------------------------------- void trace1( char *s ); void trace2( char *s1, char *s2 ); void trace3( char *s1, char *s2, char *s3 ); void trace4( char *s1, char *s2, char *s3, char *s4 ); // ========== POUR PREPARER LA VALEUR $$ D'UNE TETE DE REGLE ================== // -------------------------------------------------------------------------- // POUR COPIER DANS $$ LA VALEUR DU n-ime TERME DE QUEUE $n // // Exemple d'utilisationdans une regle : // // Operand: Arg // { $$ = copy($1); } // ; // -------------------------------------------------------------------------- char * copy( char * s ); // -------------------------------------------------------------------------- // POUR COPIER DANS $$ UNE CONCATENATION DE TERMES $nn, OU AUTRES CHAINES // // Exemple d'utilisation $$ = c3( "private var ", $3, ":Number" ); // trace2("VarDef",$$); // Exemple de resultat // -------------------------------------------------------------------------- char * c2( char *s1, char *s2 ); char * c3( char *s1, char *s2, char *s3 ); char * c4( char *s1, char *s2, char *s3, char *s4 ); char * c5( char *s1, char *s2, char *s3, char *s4, char *s5 ); char * c6( char *s1, char *s2, char *s3, char *s4, char *s5, char *s6 ); char * c7( char *s1, char *s2, char *s3, char *s4, char *s5, char *s6, char *s7 );