]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/lily-parser.hh
Run grand-replace (issue 3765)
[lilypond.git] / lily / include / lily-parser.hh
index a3f5667b74abb9a2f96a5f651227d6adfc19d14e..bb4899edb3596b5acebceff8ec4f985ce0ec48f8 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 1997--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 1997--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
 class Lily_parser
 {
   DECLARE_SMOBS (Lily_parser);
-  friend int yyparse (void *);
-
-  vector<Input> define_spots_;
 
   char const *here_str0 () const;
   Simultaneous_music *get_chord (Pitch tonic,
-                                vector<Pitch> *adds, vector<Pitch> *subs,
-                                Pitch *inversion, Pitch *bass, Duration d);
+                                 vector<Pitch> *adds, vector<Pitch> *subs,
+                                 Pitch *inversion, Pitch *bass, Duration d);
   void set_chord_tremolo (int type);
   void set_last_duration (Duration const *);
   void set_last_pitch (Pitch const *);
@@ -50,38 +47,36 @@ public:
   Sources *sources_;
   Duration default_duration_;
   string output_basename_;
+  SCM closures_;
 
   int fatal_error_;
   int error_level_;
   bool ignore_version_b_;
 
   Lily_parser (Sources *sources);
-  Lily_parser (Lily_parser const &);
+  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 ();
-  void parse_file (string init, string name, string out_name);
-  void parse_string (string ly_code);
-  void parser_error (string);
-  void parser_error (Input const &, string);
+  SCM do_yyparse ();
+  void include_string (const string &ly_code);
+  void parse_file (const string &init, const string &name, const string &out_name);
+  void parse_string (const string &ly_code);
+  SCM parse_string_expression (const string &ly_code, const string &filename, int line);
+  void parser_error (const string&);
+  void parser_error (Input const &, const string&);
+  // The following is called as yyerror
+  static void parser_error (Input const *i, Lily_parser *parser, SCM *, const string &s);
   void set_yydebug (bool);
 
-  SCM make_scope () const; 
+  SCM make_scope () const;
 };
 
 DECLARE_UNSMOB (Lily_parser, lily_parser);
 
-SCM ly_parse_file (SCM);
-SCM ly_parse_string (SCM);
-// SCM ly_parser_add_book_and_score (SCM, SCM);
-SCM ly_parser_print_book (SCM, SCM);
-SCM ly_parser_print_score (SCM, SCM);
-SCM ly_parser_bookify (SCM, SCM);
-SCM ly_parser_scorify (SCM, SCM);
-
 Output_def *get_layout (Lily_parser *parser);
 Output_def *get_midi (Lily_parser *parser);
 Output_def *get_paper (Lily_parser *parser);