#include <sstream>
using namespace std;
-#include "context.hh" // for nested_property_alist
+#include "context.hh" // for nested_property_alist
#include "international.hh"
#include "interval.hh"
#include "keyword.hh"
{"name", NAME},
{"new", NEWCONTEXT},
{"notemode", NOTEMODE},
- {"objectid", OBJECTID},
{"once", ONCE},
{"override", OVERRIDE},
{"paper", PAPER},
Lily_lexer::Lily_lexer (Lily_lexer const &src, Lily_parser *parser)
: Includable_lexer ()
{
- parser_ = parser;
+ parser_ = parser;
keytable_ = (src.keytable_) ? new Keyword_table (*src.keytable_) : 0;
chordmodifier_tab_ = src.chordmodifier_tab_;
pitchname_tab_stack_ = src.pitchname_tab_stack_;
{
if (!keytable_)
return SCM_EOL;
-
+
SCM l = SCM_EOL;
SCM *tail = &l;
for (vsize i = 0; i < keytable_->table_.size (); i++)
yy_flex_debug = get_program_option ("debug-lexer");
parser_->set_yydebug (get_program_option ("debug-parser"));
-
new_input (main_input_name_, sources_);
scm_module_define (scm_car (scopes_),
else
{
error_level_ |= 1;
- Input spot (*lexloc);
+ Input spot (*lexloc_);
spot.error (s);
}
}
Input
Lily_lexer::here_input () const
{
- return Input (*lexloc);
+ return Input (*lexloc_);
}
void
Lily_lexer::add_lexed_char (int count)
{
char const *start = here_str0 ();
- lexloc->set (get_source_file (),
- start, start + count);
+ lexloc_->set (get_source_file (),
+ start, start + count);
char_count_stack_.back () += count;
}
Lily_lexer::mark_smob (SCM s)
{
ASSERT_LIVE_IS_ALLOWED ();
-
+
Lily_lexer *lexer = (Lily_lexer *) SCM_CELL_WORD_1 (s);
scm_gc_mark (lexer->chordmodifier_tab_);