-/* Read in the grammar specification and record it in the format
- described in gram.h. All guards are copied into the FGUARD file
- and all actions into FACTION, in each case forming the body of a C
- function (YYGUARD or YYACTION) which contains a switch statement to
- decide which guard or action to execute. */
+/* From reader.c. */
+void grammar_start_symbol_set (symbol *sym, location loc);
+void grammar_current_rule_begin (symbol *lhs, location loc,
+ named_ref *lhs_named_ref);
+void grammar_current_rule_end (location loc);
+void grammar_midrule_action (void);
+void grammar_current_rule_prec_set (symbol *precsym, location loc);
+void grammar_current_rule_dprec_set (int dprec, location loc);
+void grammar_current_rule_merge_set (uniqstr name, location loc);
+void grammar_current_rule_symbol_append (symbol *sym, location loc,
+ named_ref *nref);
+void grammar_current_rule_action_append (const char *action, location loc,
+ named_ref *nref, bool);
+void reader (void);
+void free_merger_functions (void);