X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fparse-scm.hh;h=31427f2e44f5e98e0c3065324fe79237413af730;hb=97513556d46fe23903e305e4147c5feccc97914d;hp=3a51130e0a5a8e195b740213aba9e561aa427c8f;hpb=a517dce054511941847288622f7840ff9d2bd353;p=lilypond.git diff --git a/lily/include/parse-scm.hh b/lily/include/parse-scm.hh index 3a51130e0a..31427f2e44 100644 --- a/lily/include/parse-scm.hh +++ b/lily/include/parse-scm.hh @@ -1,20 +1,55 @@ +/* + This file is part of LilyPond, the GNU music typesetter. -#ifndef PARSE_SCM -#define PARSE_SCM + Copyright (C) 2004--2011 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 { - char const* str; + char const *str; int nchars; Input start_location_; + bool safe_; + SCM (*func_)(Parse_start *ps); + SCM form_; + Lily_parser *parser_; + + Parse_start () + { + str = 0; + nchars = 0; + safe_ = false; + parser_ = 0; + form_ = SCM_UNDEFINED; + func_ = 0; + } }; SCM catch_protected_parse_body (void *); -SCM protected_ly_parse_scm (Parse_start *); - -SCM ly_parse_scm (char const* s, int *, Input); +SCM protected_ly_parse_scm (Parse_start *, bool); +SCM ly_parse_scm (char const *, int *, Input, bool, Lily_parser *); +SCM ly_eval_scm (SCM, Input, bool, Lily_parser *); -#endif +#endif /* PARSE_SCM_HH */