X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Flily-lexer.cc;h=4ddd8643252585b2c5e032e20f1e1455a73a3c44;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=c72ff8fc129eca056015f930b7a94c02d528902a;hpb=f0eca19f1dc9ffddf98eadf39800405fe4d3e7a5;p=lilypond.git diff --git a/lily/lily-lexer.cc b/lily/lily-lexer.cc index c72ff8fc12..4ddd864325 100644 --- a/lily/lily-lexer.cc +++ b/lily/lily-lexer.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2012 Han-Wen Nienhuys + Copyright (C) 1997--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -123,8 +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); + if (Input::is_smob (override_input)) + override_input_ = *Input::unsmob (override_input); smobify_self (); @@ -364,35 +364,28 @@ Lily_lexer::add_lexed_char (int count) char_count_stack_.back () += count; } -#include "ly-smobs.icc" -IMPLEMENT_SMOBS (Lily_lexer); -IMPLEMENT_TYPE_P (Lily_lexer, "ly:lily-lexer?"); -IMPLEMENT_DEFAULT_EQUAL_P (Lily_lexer); +const char Lily_lexer::type_p_name_[] = "ly:lily-lexer?"; SCM -Lily_lexer::mark_smob (SCM s) +Lily_lexer::mark_smob () { - ASSERT_LIVE_IS_ALLOWED (s); - - Lily_lexer *lexer = (Lily_lexer *) SCM_CELL_WORD_1 (s); - - scm_gc_mark (lexer->chordmodifier_tab_); - if (lexer->parser_) - scm_gc_mark (lexer->parser_->self_scm ()); - scm_gc_mark (lexer->pitchname_tab_stack_); - scm_gc_mark (lexer->start_module_); - scm_gc_mark (lexer->extra_tokens_); - return lexer->scopes_; + ASSERT_LIVE_IS_ALLOWED (self_scm ()); + + scm_gc_mark (chordmodifier_tab_); + if (parser_) + scm_gc_mark (parser_->self_scm ()); + scm_gc_mark (pitchname_tab_stack_); + scm_gc_mark (start_module_); + scm_gc_mark (extra_tokens_); + return scopes_; } int -Lily_lexer::print_smob (SCM s, SCM port, scm_print_state *) +Lily_lexer::print_smob (SCM port, scm_print_state *) { - Lily_lexer *lexer = Lily_lexer::unsmob (s); - scm_puts ("#scopes_, port); + scm_display (scopes_, port); scm_puts (" >", port); return 1; }