X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmy-lily-lexer.hh;h=b3113bf94b47cfcfe2b36fa6f8176cfac2a476b9;hb=305fb79f24233b261b5372168f76520f84d2ea87;hp=8dbc42e8614818a6307dbedf3259b764675aee44;hpb=8309cbcd6660ea1f0b35abacbb424ddc4158e448;p=lilypond.git diff --git a/lily/include/my-lily-lexer.hh b/lily/include/my-lily-lexer.hh index 8dbc42e861..b3113bf94b 100644 --- a/lily/include/my-lily-lexer.hh +++ b/lily/include/my-lily-lexer.hh @@ -1,9 +1,9 @@ /* 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--2000 Han-Wen Nienhuys */ #ifndef LEXER_HH @@ -11,50 +11,66 @@ #include -#include "proto.hh" -#include "fproto.hh" -#include "varray.hh" +#include "dictionary.hh" +#include "lily-proto.hh" +#include "flower-proto.hh" +#include "array.hh" #include "string.hh" #include "includable-lexer.hh" #include "duration.hh" +#include "musical-pitch.hh" +#include "protected-scm.hh" bool busy_parsing(); void kill_lexer(); void set_lexer(); - /// lexer for Mudela -class My_lily_lexer : public Includable_lexer { - int lookup_keyword(String); - void lookup_notename(int &large, int &small, String s); - int scan_bare_word(String); - int scan_escaped_word(String); - - bool post_quotes_b_; +class My_lily_lexer : public Includable_lexer +{ public: - void * lexval_l; - - - Assoc *identifier_assoc_p_; - Keyword_table * keytable_p_; - int errorlevel_i_; - - /* *************** */ - - Identifier*lookup_identifier(String s); - - void push_note_state(); - void push_lyric_state(); - void pop_state(); - void LexerError(char const *); - My_lily_lexer(); - void add_identifier(Identifier*i); - ~My_lily_lexer(); - int yylex(); - void print_declarations(bool init_b) const; - - bool note_state_b() const; - bool lyric_state_b() const; + String main_input_str_; + void * lexval_l; + Scope * toplevel_scope_p_; + bool main_input_b_; + + /* + Scheme hash tables with (oct name acc) values, and symbol keys + */ + Protected_scm chordmodifier_tab_; + Protected_scm pitchname_tab_; + + Link_array scope_l_arr_; + Keyword_table * keytable_p_; + int errorlevel_i_; + + My_lily_lexer (); + ~My_lily_lexer (); + int yylex (); + + Input here_input () const; + + void start_main_input (); + void set_chordmodifier_table (Notename_table*tab_p); + void set_notename_table (Notename_table*tab_p); + + SCM lookup_identifier (String s); + void push_note_state(); + void push_chord_state(); + void push_lyric_state(); + void pop_state(); + void LexerError (char const *); + void set_identifier (String str, SCM); + bool note_state_b() const; + bool chord_state_b() const; + bool lyric_state_b() const; + +private: + int lookup_keyword (String); + int scan_bare_word (String); + int scan_escaped_word (String); + + char escaped_char(char) const; }; #endif