X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmy-lily-lexer.hh;h=b3113bf94b47cfcfe2b36fa6f8176cfac2a476b9;hb=305fb79f24233b261b5372168f76520f84d2ea87;hp=3030a09eb45871a36e5981af2fdddd8f161697a8;hpb=59ed0cee2aae58a3f0483f21261c68aee406fa10;p=lilypond.git diff --git a/lily/include/my-lily-lexer.hh b/lily/include/my-lily-lexer.hh index 3030a09eb4..b3113bf94b 100644 --- a/lily/include/my-lily-lexer.hh +++ b/lily/include/my-lily-lexer.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys + (c) 1997--2000 Han-Wen Nienhuys */ #ifndef LEXER_HH @@ -13,54 +13,64 @@ #include "dictionary.hh" #include "lily-proto.hh" -#include "lily-proto.hh" -#include "fproto.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); - int scan_bare_word (String); - int scan_escaped_word (String); - - char escaped_char(char) const; +class My_lily_lexer : public Includable_lexer +{ public: 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_; - Notename_table *note_tab_p_; - Array scope_l_arr_; + 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_notename_table(Notename_table*tab_p); - bool notename_b(String) const; - Identifier*lookup_identifier (String s); - Musical_pitch lookup_pitch (String s); + 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 *); - 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); + 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