@@ -40,7 +40,7 @@ rule_number nrules = 0;
4040symbol * * symbols = NULL ;
4141int nsyms = 0 ;
4242int ntokens = 1 ;
43- int nvars = 0 ;
43+ int nnterms = 0 ;
4444
4545symbol_number * token_translations = NULL ;
4646
@@ -192,10 +192,10 @@ grammar_rules_partial_print (FILE *out, const char *title,
192192 if (first )
193193 fprintf (out , "%s\n\n" , title );
194194 else if (previous_rule && previous_rule -> lhs != rules [r ].lhs )
195- fputc ('\n' , out );
195+ putc ('\n' , out );
196196 first = false;
197197 rule_print (& rules [r ], previous_rule , out );
198- fputc ('\n' , out );
198+ putc ('\n' , out );
199199 previous_rule = & rules [r ];
200200 }
201201 if (!first )
@@ -241,15 +241,25 @@ grammar_rules_print_xml (FILE *out, int level)
241241 xml_puts (out , level + 1 , "<rules/>" );
242242}
243243
244+ static void
245+ section (FILE * out , const char * s )
246+ {
247+ fprintf (out , "%s\n" , s );
248+ for (int i = strlen (s ); 0 < i ; -- i )
249+ putc ('-' , out );
250+ putc ('\n' , out );
251+ putc ('\n' , out );
252+ }
253+
244254void
245255grammar_dump (FILE * out , const char * title )
246256{
247257 fprintf (out , "%s\n\n" , title );
248258 fprintf (out ,
249- "ntokens = %d, nvars = %d, nsyms = %d, nrules = %d, nritems = %d\n\n" ,
250- ntokens , nvars , nsyms , nrules , nritems );
259+ "ntokens = %d, nnterms = %d, nsyms = %d, nrules = %d, nritems = %d\n\n" ,
260+ ntokens , nnterms , nsyms , nrules , nritems );
251261
252- fprintf (out , "Tokens\n------\n\n " );
262+ section (out , "Tokens" );
253263 {
254264 fprintf (out , "Value Sprec Sassoc Tag\n" );
255265
@@ -261,7 +271,7 @@ grammar_dump (FILE *out, const char *title)
261271 fprintf (out , "\n\n" );
262272 }
263273
264- fprintf (out , "Non terminals\n-------------\n\n " );
274+ section (out , "Nonterminals " );
265275 {
266276 fprintf (out , "Value Tag\n" );
267277
@@ -271,7 +281,7 @@ grammar_dump (FILE *out, const char *title)
271281 fprintf (out , "\n\n" );
272282 }
273283
274- fprintf (out , "Rules\n-----\n\n " );
284+ section (out , "Rules" );
275285 {
276286 fprintf (out ,
277287 "Num (Prec, Assoc, Useful, UselessChain) Lhs"
@@ -293,17 +303,17 @@ grammar_dump (FILE *out, const char *title)
293303 /* Dumped the RHS. */
294304 for (item_number * rhsp = rule_i -> rhs ; 0 <= * rhsp ; ++ rhsp )
295305 fprintf (out , " %3d" , * rhsp );
296- fputc ('\n' , out );
306+ putc ('\n' , out );
297307 }
298308 }
299309 fprintf (out , "\n\n" );
300310
301- fprintf (out , "Rules interpreted\n-----------------\n\n " );
311+ section (out , "Rules interpreted" );
302312 for (rule_number r = 0 ; r < nrules + nuseless_productions ; ++ r )
303313 {
304314 fprintf (out , "%-5d %s:" , r , rules [r ].lhs -> symbol -> tag );
305315 rule_rhs_print (& rules [r ], out );
306- fputc ('\n' , out );
316+ putc ('\n' , out );
307317 }
308318 fprintf (out , "\n\n" );
309319}
0 commit comments