}
SCM
-Lily_parser::mark_smob ()
+Lily_parser::mark_smob () const
{
scm_gc_mark (closures_);
return (lexer_) ? lexer_->self_scm () : SCM_EOL;
}
int
-Lily_parser::print_smob (SCM port, scm_print_state *)
+Lily_parser::print_smob (SCM port, scm_print_state *) const
{
scm_puts ("#<Lily_parser ", port);
if (lexer_)
void
Lily_parser::parse_file (const string &init, const string &name, const string &out_name)
{
- lexer_->set_identifier (ly_symbol2scm ("parser"), self_scm ());
output_basename_ = out_name;
lexer_->main_input_name_ = name;
}
while (!lexer_->is_clean ());
- /*
- Don't mix cyclic pointers with weak tables.
- */
- lexer_->set_identifier (ly_symbol2scm ("parser"),
- SCM_EOL);
ly_reexport_module (scm_current_module ());
scm_set_current_module (mod);
lexer_->new_input (lexer_->main_input_name_, ly_code, sources_);
SCM mod = lexer_->set_current_scope ();
- SCM parser = lexer_->lookup_identifier_symbol (ly_symbol2scm ("parser"));
- lexer_->set_identifier (ly_symbol2scm ("parser"), self_scm ());
+
do_yyparse ();
- lexer_->set_identifier (ly_symbol2scm ("parser"), parser);
+
scm_set_current_module (mod);
error_level_ = error_level_ | lexer_->error_level_;
lexer_->get_source_file ()->set_line (0, line);
}
SCM mod = lexer_->set_current_scope ();
- SCM parser = lexer_->lookup_identifier_symbol (ly_symbol2scm ("parser"));
- lexer_->set_identifier (ly_symbol2scm ("parser"), self_scm ());
+
lexer_->push_extra_token (Input (), EMBEDDED_LILY);
SCM result = do_yyparse ();
- lexer_->set_identifier (ly_symbol2scm ("parser"), parser);
scm_set_current_module (mod);
error_level_ = error_level_ | lexer_->error_level_;
void
Lily_parser::parser_error (const string &s)
{
- lexer_->here_input ().error (_ (s.c_str ()));
+ lexer_->here_input ().non_fatal_error (_ (s.c_str ()));
error_level_ = 1;
}
void
Lily_parser::parser_error (Input const &i, const string &s)
{
- i.error (s);
+ i.non_fatal_error (s);
error_level_ = 1;
}
-const char Lily_parser::type_p_name_[] = "ly:lily-parser?";
+const char * const Lily_parser::type_p_name_ = "ly:lily-parser?";
/****************************************************************
OUTPUT-DEF