X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmy-lily-lexer.hh;h=5b5d17c008f2f5ff4dcfa579ea76576fbd0e9828;hb=refs%2Ftags%2Frelease%2F1.0.10;hp=c3f2bfa38853a24827307f8108ca6f5d468d5ff3;hpb=dbed556ca13bc2371e83774890eaa06bc8b04def;p=lilypond.git diff --git a/lily/include/my-lily-lexer.hh b/lily/include/my-lily-lexer.hh index c3f2bfa388..5b5d17c008 100644 --- a/lily/include/my-lily-lexer.hh +++ b/lily/include/my-lily-lexer.hh @@ -1,79 +1,67 @@ /* lexer.hh -- declare My_lily_lexer - source file of the LilyPond music typesetter + source file of the GNU LilyPond music typesetter - (c) 1997 Han-Wen Nienhuys + (c) 1997--1998 Han-Wen Nienhuys */ #ifndef LEXER_HH #define LEXER_HH + #include -#include "proto.hh" + +#include "dictionary.hh" +#include "lily-proto.hh" +#include "lily-proto.hh" #include "fproto.hh" -#include "varray.hh" +#include "array.hh" #include "string.hh" +#include "includable-lexer.hh" +#include "duration.hh" +#include "musical-pitch.hh" -int yylex(); -void yyerror(char const *s); bool busy_parsing(); void kill_lexer(); void set_lexer(); -struct Lexer_prefs { - int default_duration, default_dots, default_octave_i_; - int default_plet_type, default_plet_dur; - String textstyle_str_; - - bool last_duration_mode ; - - Lexer_prefs(); - Moment plet_mom(); - void set_default_duration(int *); - void set_last_duration(int n); - void set_duration_mode(String s); - void get_default_duration(int *); - void set_plet(int,int); -}; - -/// lexer with provisions for include files. -class My_lily_lexer : public yyFlexLexer { - int lookup_keyword(String); - void lookup_notename(int &large, int &small, String s); - int scan_bare_word(String); - int scan_escaped_word(String); +/// lexer for Mudela +class My_lily_lexer : public Includable_lexer { + int lookup_keyword (String); + int scan_bare_word (String); + int scan_escaped_word (String); + char escaped_char(char) const; public: - Lexer_prefs prefs; - - Array include_stack_; - Assoc *identifier_assoc_p_; - Keyword_table * keytable_p_; - int errorlevel_i_; + String main_input_str_; + void * lexval_l; + Scope * toplevel_scope_p_; + + Notename_table *note_tab_p_; + Array scope_l_arr_; + Keyword_table * keytable_p_; + int errorlevel_i_; - /* *************** */ + /* *************** */ - Identifier*lookup_identifier(String s); - char const* here_ch_c_l(); - - void push_note_state(); - void push_lyric_state(); - void pop_state(); - void LexerError(char const *); - String spot() const; - My_lily_lexer(); - void add_identifier(Identifier*i); - ~My_lily_lexer(); - void new_input(String s); - bool close_input(); - int yylex(); - void print_init_declarations() const; - void print_user_declarations() const; - bool note_state_b() const; - bool lyric_state_b() const; + void start_main_input (); + void set_notename_table(Notename_table*tab_p); + bool notename_b(String) const; + Identifier*lookup_identifier (String s); + Musical_pitch lookup_pitch (String s); + void push_note_state(); + void push_lyric_state(); + void pop_state(); + void LexerError (char const *); + My_lily_lexer(); + void set_identifier (String str, Identifier* i, bool unique_b = true); + ~My_lily_lexer(); + int yylex(); + void print_declarations (bool init_b) const; + void add_notename (String, Musical_pitch); + bool note_state_b() const; + bool lyric_state_b() const; }; -extern My_lily_lexer *lexer; - #endif