X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmy-lily-parser.hh;h=83463056cfa56483f4dbfbc350f51f21bbca3809;hb=0119396bf047bbc0a6debd06f48e6d18573e2303;hp=7930c9c7a27a8a7d6ba9476ab24cf74f3ccc86ba;hpb=2862b1027f316a2f0444fa92e441ee28acf7a463;p=lilypond.git diff --git a/lily/include/my-lily-parser.hh b/lily/include/my-lily-parser.hh index 7930c9c7a2..83463056cf 100644 --- a/lily/include/my-lily-parser.hh +++ b/lily/include/my-lily-parser.hh @@ -3,78 +3,77 @@ source file of the GNU LilyPond music typesetter - (c) 1997 Han-Wen Nienhuys + (c) 1997--2001 Han-Wen Nienhuys */ #ifndef MY_LILY_PARSER_HH #define MY_LILY_PARSER_HH + #include "lily-proto.hh" -#include "duration.hh" #include "string.hh" -#include "varray.hh" +#include "parray.hh" #include "lily-proto.hh" #include "lily-proto.hh" #include "duration.hh" +#include "pitch.hh" #include "string.hh" -#include "varray.hh" +#include "array.hh" #include "input.hh" -class My_lily_parser { - char const* here_ch_C() const; - Array define_spot_array_; - String init_str_; +/** + State for the parser. Do not ever add any variables to parse + musical content here. We still have to remove default_duration_. - void add_requests (Chord*v); + TODO: interface is too complicated +*/ +class My_lily_parser +{ +public: + My_lily_parser (Sources * sources_l); + ~My_lily_parser(); - Chord * get_note_element (Note_req * ,Duration *); - Chord* get_rest_element (String,Duration *); - Chord* get_word_element (Text_def*, Duration*); + void do_init_file(); + void parse_file ( String init_str, String file_str); + void set_version_check (bool ignore); - void set_last_duration (Duration const *); - void set_default_duration (Duration const *); - void set_duration_mode (String s); - friend int yyparse (void*); public: - int default_octave_i_; Duration default_duration_; - Plet plet_; - Header *default_header_p_; - - String textstyle_str_; - bool first_b_; - bool last_duration_mode_b_ ; - Array pre_reqs, post_reqs; + + Scope *default_header_p_; + int fatal_error_i_; Sources * source_l_; int error_level_i_; - bool init_parse_b_; + My_lily_lexer * lexer_p_; - - Moment plet_mom(); - void add_notename (String, Melodic_req* req_p); + bool ignore_version_b_; + Input here_input() const; void remember_spot(); Input pop_spot(); - Paper_def*default_paper(); - Midi_def*default_midi(); void do_yyparse(); void parser_error (String); - void clear_notenames(); - Request* get_parens_request (char c); - - void set_debug(); void set_yydebug (bool); - void print_declarations(); - bool ignore_version_b_; -public: - void do_init_file(); - void parse_file ( String init_str, String file_str); - My_lily_parser (Sources * sources_l); - ~My_lily_parser(); - void set_version_check (bool ignore); + + + DECLARE_SCHEME_CALLBACK(paper_description, ()); +private: + + Array define_spot_array_; + + char const* here_ch_C() const; + + Simultaneous_music * get_chord (Pitch tonic, Array* add_arr_p, + Array* sub_arr_p, Pitch* inversion_p, + Pitch* bass_p, Duration d); + + void set_chord_tremolo (int type_i); + void set_last_duration (Duration const *); + void set_last_pitch (Pitch const *); + friend int yyparse (void*); }; #endif // MY_LILY_PARSER_HH