X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Flily-parser.hh;h=305d439ee2a0e68ae399c5db5658d3c91c6a673c;hb=5bbfc22fce036b9b69df5e420de93e11da23c05e;hp=2e065ff31d70dd3b38e204ade3088484699ad6b2;hpb=08560a1b8076630c4fc6cb9b902614d8b74fd6fc;p=lilypond.git diff --git a/lily/include/lily-parser.hh b/lily/include/lily-parser.hh index 2e065ff31d..305d439ee2 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--2012 Han-Wen Nienhuys + Copyright (C) 1997--2014 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 @@ -25,8 +25,7 @@ #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 */ @@ -34,18 +33,11 @@ class Lily_parser { DECLARE_SMOBS (Lily_parser); - char const *here_str0 () const; - Simultaneous_music *get_chord (Pitch tonic, - vector *adds, vector *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: Lily_lexer *lexer_; Sources *sources_; Duration default_duration_; + int default_tremolo_type_; string output_basename_; SCM closures_; @@ -54,35 +46,27 @@ public: bool ignore_version_b_; Lily_parser (Sources *sources); - Lily_parser (Lily_parser const &, SCM closures = SCM_EOL); + 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 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); + 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, 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); - -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);