X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Flily-parser.hh;h=03556ab01eda873a94f5aad7ce7f7c231f3281f9;hb=04ce84386dc022316c347ee0c5049c852eea3421;hp=a98c760712cb6914f2a2c7b5ed36ddcbf3c272ec;hpb=ccebc5251f08d30ac854c7a540f283d2376dca7c;p=lilypond.git diff --git a/lily/include/lily-parser.hh b/lily/include/lily-parser.hh index a98c760712..03556ab01e 100644 --- a/lily/include/lily-parser.hh +++ b/lily/include/lily-parser.hh @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2011 Han-Wen Nienhuys + Copyright (C) 1997--2012 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 @@ -33,9 +33,6 @@ class Lily_parser { DECLARE_SMOBS (Lily_parser); - friend int yyparse (void *); - - vector define_spots_; char const *here_str0 () const; Simultaneous_music *get_chord (Pitch tonic, @@ -50,26 +47,29 @@ public: Sources *sources_; Duration default_duration_; string output_basename_; - SCM local_environment_; + SCM closures_; int fatal_error_; int error_level_; bool ignore_version_b_; Lily_parser (Sources *sources); - Lily_parser (Lily_parser const &, SCM env = SCM_UNDEFINED); + Lily_parser (Lily_parser const &, SCM closures = SCM_EOL, + SCM location = SCM_BOOL_F); DECLARE_SCHEME_CALLBACK (layout_description, ()); void clear (); void do_init_file (); - void do_yyparse (); + SCM do_yyparse (); void include_string (string ly_code); void parse_file (string init, string name, string out_name); void parse_string (string ly_code); - SCM parse_string_expression (string ly_code); + SCM parse_string_expression (string ly_code, string filename, int line); void parser_error (string); void parser_error (Input const &, string); + // The following is called as yyerror + static void parser_error (Input const *i, Lily_parser *parser, SCM *, string s); void set_yydebug (bool); SCM make_scope () const;