X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fparse-scm.hh;h=e5db86dcb09f1afdbca0cde8fe14a36c05e875cd;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=3d0158fab8c0aeb38757bb9ba3651925f35bf5ce;hpb=c2ec642ce42fcf1bbb72bcf9b79b28fe8fa19f0b;p=lilypond.git diff --git a/lily/include/parse-scm.hh b/lily/include/parse-scm.hh index 3d0158fab8..e5db86dcb0 100644 --- a/lily/include/parse-scm.hh +++ b/lily/include/parse-scm.hh @@ -1,22 +1,48 @@ +/* + This file is part of LilyPond, the GNU music typesetter. -#ifndef PARSE_SCM -#define PARSE_SCM + Copyright (C) 2004--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 + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . +*/ + +#ifndef PARSE_SCM_HH +#define PARSE_SCM_HH #include "input.hh" #include "lily-guile.hh" extern bool parse_protect_global; +extern bool parsed_objects_should_be_dead; -struct Parse_start +class Parse_start { - char const* str; - int nchars; - Input start_location_; +public: + SCM form_; + Input &location_; + bool safe_; + Lily_parser *parser_; + + Parse_start (SCM form, Input &location, bool safe, Lily_parser *parser) : + form_ (form), location_ (location), safe_ (safe), parser_ (parser) + { + } }; SCM catch_protected_parse_body (void *); SCM protected_ly_parse_scm (Parse_start *, bool); +SCM ly_parse_scm (Input&, bool, Lily_parser *); +SCM ly_eval_scm (SCM, Input, bool, Lily_parser *); -SCM ly_parse_scm (char const *, int *, Input, bool); - -#endif +#endif /* PARSE_SCM_HH */