X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmy-lily-parser.hh;h=ddd55c75171b247bd759f84f4342badeff8d5ac3;hb=434da79e9d7684b2b05fa92a6d808d4ea7933046;hp=6c963824985e3b868182389a589325c1d309bf74;hpb=57d6628b46ba1d7ed7c9c0ca7f579567d1912b0d;p=lilypond.git diff --git a/lily/include/my-lily-parser.hh b/lily/include/my-lily-parser.hh index 6c96382498..ddd55c7517 100644 --- a/lily/include/my-lily-parser.hh +++ b/lily/include/my-lily-parser.hh @@ -3,75 +3,76 @@ source file of the GNU LilyPond music typesetter - (c) 1997 Han-Wen Nienhuys + (c) 1997--1999 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 "musical-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_; - - void add_requests( Chord*v); +/** + State for the parser. Do not ever add any variables to parse + musical content here. We still have to remove default_duration_. + + */ +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_; - String textstyle_str_; - bool first_b_; - bool last_duration_mode_b_ ; - Array pre_reqs, post_reqs; - 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); - 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(); + Duration default_duration_; + Musical_pitch default_pitch_; + Scope *default_header_p_; + bool first_b_; + int fatal_error_i_; + Sources * source_l_; + int error_level_i_; + bool init_parse_b_; + My_lily_lexer * lexer_p_; + bool ignore_version_b_; - Request* get_parens_request(char c); + + + Input here_input() const; + void remember_spot(); + Input pop_spot(); - 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); + Paper_def*default_paper_p(); + Midi_def*default_midi_p(); + void do_yyparse(); + void parser_error (String); + + void set_debug(); + void set_yydebug (bool); +private: + char const* here_ch_C() const; + Array define_spot_array_; + String init_str_; + + Simultaneous_music * get_note_element (Note_req * ,Duration *); + Simultaneous_music * get_chord (Musical_pitch, Array*, Array*, Musical_pitch*, Duration); + Simultaneous_music* get_rest_element (String, Duration *); + Simultaneous_music* get_word_element (String, Duration*); + String notename_str (Melodic_req* melodic); + void set_last_duration (Duration const *); + void set_last_pitch (Musical_pitch const *); + friend int yyparse (void*); }; #endif // MY_LILY_PARSER_HH