X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Finclude%2Finput.hh;h=aab0d117a66a561b7f6a0cea4c727a97b64d3e24;hb=0ccac4adf83c431b5d1c89bebfd6a916369328dd;hp=a6aa1698b4d56912e6e71dba8ced11d7386616db;hpb=e24fb7cc5671aea95211d4a0c56f28fb6fe8720e;p=lilypond.git diff --git a/lily/include/input.hh b/lily/include/input.hh index a6aa1698b4..aab0d117a6 100644 --- a/lily/include/input.hh +++ b/lily/include/input.hh @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2014 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 @@ -21,16 +21,21 @@ #define INPUT_HH #include "lily-proto.hh" +#include "smobs.hh" /** Base class for anything that records its poisition in the parse file. */ -class Input +class Input : public Simple_smob { char const *start_; char const *end_; Source_file *source_file_; public: + static const char * const type_p_name_; + int print_smob (SCM, scm_print_state *) const; + static SCM equal_p (SCM, SCM); + SCM mark_smob () const; Source_file *get_source_file () const; char const *start () const; char const *end () const; @@ -66,11 +71,14 @@ protected: string message_string (const string &msg) const; }; -#include "smobs.hh" - -SCM make_input (Input spot); -Input *unsmob_input (SCM); - extern Input dummy_input_global; +// The parser calls syntax functions with a lot of arguments +SCM with_location (SCM loc, SCM proc); +SCM with_location (SCM loc, SCM proc, SCM); +SCM with_location (SCM loc, SCM proc, SCM, SCM); +SCM with_location (SCM loc, SCM proc, SCM, SCM, SCM); +SCM with_location (SCM loc, SCM proc, SCM, SCM, SCM, SCM); +SCM with_location (SCM loc, SCM proc, SCM, SCM, SCM, SCM, SCM); + #endif // INPUT_HH