smobify_self ();
if (src.lexer_)
- lexer_ = new Lily_lexer (*src.lexer_);
-
+ {
+ lexer_ = new Lily_lexer (*src.lexer_, this);
+ }
+
lexer_->unprotect ();
}
File_name f (name);
string s = global_path.find (f.base_ + ".twy");
s = gulp_file_to_string (s, false, -1);
- scm_eval_string (scm_makfrom0str (s.c_str ()));
+ scm_eval_string (ly_string2scm (s));
/* Read .ly IN_FILE, lex, parse, write \score blocks from IN_FILE to
OUT_FILE (unless IN_FILE redefines output file name). */
if (!define_spots_.empty ())
{
- define_spots_.back ().warning (_ ("braces don't match"));
+ define_spots_.back ().warning (_ ("braces do not match"));
error_level_ = 1;
}
self_scm ());
lexer_->main_input_name_ = "<string>";
- lexer_->is_main_input_ = true;
-
+ lexer_->is_main_input_ = true;
lexer_->new_input (lexer_->main_input_name_, ly_code, sources_);
SCM mod = lexer_->set_current_scope ();
{
SCM id = parser->lexer_->lookup_identifier ("$defaultheader");
if (!ly_is_module (id))
- id = ly_make_anonymous_module (be_safe_global);
+ id = parser->make_scope ();
else
{
- SCM nid = ly_make_anonymous_module (false);
- ly_module_copy(nid,id);
+ SCM nid = parser->make_scope ();
+ ly_module_copy (nid, id);
id = nid;
}
return id;
}
+
+SCM
+Lily_parser::make_scope () const
+{
+ return ly_make_anonymous_module (be_safe_global);
+}