X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Finclude%2Fmy-lily-parser.hh;h=83463056cfa56483f4dbfbc350f51f21bbca3809;hb=94189ec2b8da6d7e89dc619c646a927adead9b19;hp=6fef2311fffad027b840522adff0c668078a3634;hpb=7c9b553acad88d5cd62461989f0f20652dc04dda;p=lilypond.git diff --git a/lily/include/my-lily-parser.hh b/lily/include/my-lily-parser.hh index 6fef2311ff..83463056cf 100644 --- a/lily/include/my-lily-parser.hh +++ b/lily/include/my-lily-parser.hh @@ -1,75 +1,79 @@ /* my-lily-parser.hh -- declare My_lily_parser - source file of the LilyPond music typesetter + 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 "proto.hh" -#include "duration.hh" + +#include "lily-proto.hh" #include "string.hh" -#include "varray.hh" +#include "parray.hh" +#include "lily-proto.hh" #include "lily-proto.hh" -#include "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( Voice_element*v); + TODO: interface is too complicated +*/ +class My_lily_parser +{ +public: + My_lily_parser (Sources * sources_l); + ~My_lily_parser(); + + void do_init_file(); + void parse_file ( String init_str, String file_str); + void set_version_check (bool ignore); - Voice_element * get_note_element(Note_req * ,Duration *); - Voice_element* get_rest_element(String,Duration *); - Voice_element* get_word_element(Text_def*, Duration*); - 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 ; - 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(); - void do_yyparse(); - void parser_error(String); - void clear_notenames(); + Duration default_duration_; + + Scope *default_header_p_; - Request* get_parens_request(char c); + int fatal_error_i_; + Sources * source_l_; + int error_level_i_; + + My_lily_lexer * lexer_p_; + bool ignore_version_b_; + + 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); + void do_yyparse(); + void parser_error (String); + + void set_yydebug (bool); + + + 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