/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
Jan Nieuwenhuizen <janneke@gnu.org>
LilyPond is free software: you can redistribute it and/or modify
#include "warn.hh"
#include "program-option.hh"
-#include "ly-smobs.icc"
Lily_parser::Lily_parser (Sources *sources)
{
}
Lily_parser::Lily_parser (Lily_parser const &src, SCM closures, SCM location)
+ : Smob<Lily_parser> ()
{
lexer_ = 0;
sources_ = src.sources_;
}
SCM
-Lily_parser::mark_smob (SCM s)
+Lily_parser::mark_smob ()
{
- Lily_parser *parser = (Lily_parser *) SCM_CELL_WORD_1 (s);
- scm_gc_mark (parser->closures_);
- return (parser->lexer_) ? parser->lexer_->self_scm () : SCM_EOL;
+ scm_gc_mark (closures_);
+ return (lexer_) ? lexer_->self_scm () : SCM_EOL;
}
int
-Lily_parser::print_smob (SCM s, SCM port, scm_print_state *)
+Lily_parser::print_smob (SCM port, scm_print_state *)
{
scm_puts ("#<Lily_parser ", port);
- Lily_parser *parser = (Lily_parser *) SCM_CELL_WORD_1 (s);
- if (parser->lexer_)
- scm_display (parser->lexer_->self_scm (), port);
+ if (lexer_)
+ scm_display (lexer_->self_scm (), port);
else
scm_puts ("(no lexer yet)", port);
scm_puts (" >", port);
error_level_ = 1;
}
-IMPLEMENT_SMOBS (Lily_parser);
-IMPLEMENT_TYPE_P (Lily_parser, "ly:lily-parser?");
-IMPLEMENT_DEFAULT_EQUAL_P (Lily_parser);
+const char Lily_parser::type_p_name_[] = "ly:lily-parser?";
/****************************************************************
OUTPUT-DEF