X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Flily-lexer.cc;h=c196808a2fef49b9a3c62ec0cafd964477021bfe;hb=ecc41fd08c437396edb27d1fb82c977e7404803e;hp=c529da7c43a1efaa97d41b1ec336185b44358ccc;hpb=a68e2f12c41ddbf91bbea15f345d0eb37bd87e69;p=lilypond.git diff --git a/lily/lily-lexer.cc b/lily/lily-lexer.cc index c529da7c43..c196808a2f 100644 --- a/lily/lily-lexer.cc +++ b/lily/lily-lexer.cc @@ -106,7 +106,8 @@ Lily_lexer::Lily_lexer (Sources *sources, Lily_parser *parser) chordmodifier_tab_ = scm_make_vector (scm_from_int (1), SCM_EOL); } -Lily_lexer::Lily_lexer (Lily_lexer const &src, Lily_parser *parser) +Lily_lexer::Lily_lexer (Lily_lexer const &src, Lily_parser *parser, + SCM override_input) : Includable_lexer () { parser_ = parser; @@ -122,6 +123,8 @@ Lily_lexer::Lily_lexer (Lily_lexer const &src, Lily_parser *parser) main_input_level_ = 0; extra_tokens_ = SCM_EOL; + if (unsmob_input (override_input)) + override_input_ = *unsmob_input (override_input); smobify_self (); @@ -335,6 +338,13 @@ Lily_lexer::here_input () const return Input (*lexloc_); } +Input const & +Lily_lexer::override_input (Input const &in) const +{ + return override_input_.get_source_file () + ? override_input_ : in; +} + void Lily_lexer::prepare_for_next_token () {