X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmy-lily-lexer.hh;h=3cc210b9589a902615971ab847c39643ecc8e2ad;hb=fceacfbaa44cdf0eafcfbcce0ea97ebf5d823c4e;hp=48a87991f4f5b48927f2ff04a5318ddfd5451288;hpb=3b3e161088f1a4be942e67729d0f89f0e8d31c51;p=lilypond.git diff --git a/lily/include/my-lily-lexer.hh b/lily/include/my-lily-lexer.hh index 48a87991f4..3cc210b958 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--2000 Han-Wen Nienhuys + (c) 1997--2002 Han-Wen Nienhuys */ #ifndef LEXER_HH @@ -11,6 +11,7 @@ #include +#include "input.hh" #include "dictionary.hh" #include "lily-proto.hh" #include "flower-proto.hh" @@ -21,19 +22,17 @@ #include "pitch.hh" #include "protected-scm.hh" -bool busy_parsing(); -void kill_lexer(); -void set_lexer(); +bool busy_parsing (); +void kill_lexer (); +void set_lexer (); /// lexer for Lilypond class My_lily_lexer : public Includable_lexer { + Protected_scm scopes_; public: - String main_input_str_; - void * lexval_l; - Scheme_hash_table * toplevel_variable_tab_; - Scope * scope_p_; - + String main_input_string_; + void * lexval; bool main_input_b_; /* @@ -41,36 +40,41 @@ public: */ Protected_scm chordmodifier_tab_; Protected_scm pitchname_tab_; - - Link_array scope_l_arr_; - Keyword_table * keytable_p_; - int errorlevel_i_; + Keyword_table * keytable_; + int errorlevel_; My_lily_lexer (); ~My_lily_lexer (); int yylex (); + Input last_input_; + void prepare_for_next_token (); + int try_special_identifiers (SCM* ,SCM); Input here_input () const; - + + void add_scope (SCM); + SCM remove_scope (); + void start_main_input (); SCM lookup_identifier (String s); - void push_note_state(); - void push_chord_state(); - void push_lyric_state(); - void pop_state(); + void push_note_state (); + void push_figuredbass_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; - + void set_identifier (SCM name_string, SCM); + bool note_state_b () const; + bool chord_state_b () const; + bool lyric_state_b () const; + bool figure_state_b () const; private: int lookup_keyword (String); int scan_bare_word (String); int scan_escaped_word (String); - - char escaped_char(char) const; + int identifier_type (SCM); + char escaped_char (char) const; }; #endif