]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/lily-parser.hh
Run grand replace for 2015.
[lilypond.git] / lily / include / lily-parser.hh
index 5009e693e34af90dd52b49b92b00d5d5af32e546..0b1b87aa2349e3ca91d808b2e6421f273ffce890 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 1997--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 1997--2015 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
 #include "pitch.hh"
 
 /**
-   State for the parser.  Do not ever add any variables to parse
-   musical content here.  We still have to remove default_duration_.
+   State for the parser.
 
    TODO: interface is too complicated
 */
-class Lily_parser
+class Lily_parser : public Smob<Lily_parser>
 {
-  DECLARE_SMOBS (Lily_parser);
-
-  char const *here_str0 () const;
-  Simultaneous_music *get_chord (Pitch tonic,
-                                 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 *);
-
 public:
+  int print_smob (SCM, scm_print_state *);
+  SCM mark_smob ();
+  static const char type_p_name_[];
+  virtual ~Lily_parser ();
   Lily_lexer *lexer_;
   Sources *sources_;
   Duration default_duration_;
+  int default_tremolo_type_;
   string output_basename_;
   SCM closures_;
 
@@ -62,20 +56,19 @@ public:
   void clear ();
   void do_init_file ();
   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, string filename, int line);
-  void parser_error (string);
-  void parser_error (Input const &, string);
+  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 *, string s);
+  static void parser_error (Input const *i, Lily_parser *parser, SCM *, const string &s);
   void set_yydebug (bool);
 
   SCM make_scope () const;
 };
 
-DECLARE_UNSMOB (Lily_parser, lily_parser);
 
 Output_def *get_layout (Lily_parser *parser);
 Output_def *get_midi (Lily_parser *parser);