What this actually does is exit the parser after the main file, then
continue parsing the rest of the init file in a separate call of the
parser.
This delivers useful error messages in case that the main input is
incomplete.
reflect after.
*/
is_main_input_ = include_stack_.size () > 2;
- if (!close_input ())
+ if (!close_input () || !is_main_input_)
/* Returns YY_NULL */
yyterminate ();
}
OUT_FILE (unless IN_FILE redefines output file name). */
SCM mod = lexer_->set_current_scope ();
- do_yyparse ();
+ do {
+ do_yyparse ();
+ } while (!lexer_->is_clean ());
/*
Don't mix cyclic pointers with weak tables.
*/
/* Keyword tokens with plain escaped name. */
+%token END_OF_FILE 0 "end of input"
%token ACCEPTS "\\accepts"
%token ADDLYRICS "\\addlyrics"
%token ALIAS "\\alias"