X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Flily-lexer.hh;h=994d185f6f36a9b9ff07239e4912443054a44bd4;hb=3e08e326e7c38c81d3355a3f2e7ef8eb48bd121e;hp=6aa0a54d74a6cf8ca7fe4f9d46f9d1ab7b2bdf94;hpb=41b8dd4d0bec0445e1850ed8b87fef3599d2d41b;p=lilypond.git diff --git a/lily/include/lily-lexer.hh b/lily/include/lily-lexer.hh index 6aa0a54d74..994d185f6f 100644 --- a/lily/include/lily-lexer.hh +++ b/lily/include/lily-lexer.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2005 Han-Wen Nienhuys + (c) 1997--2006 Han-Wen Nienhuys */ #ifndef MY_LILY_LEXER_HH @@ -21,25 +21,28 @@ void set_lexer (); class Lily_lexer : public Includable_lexer { - DECLARE_SMOBS (Lily_lexer,); + DECLARE_SMOBS (Lily_lexer); private: - int lookup_keyword (String); - int scan_bare_word (String); - SCM scan_markup_word (String); - int scan_escaped_word (String); + int lookup_keyword (string); + int scan_bare_word (string); + SCM scan_markup_word (string); + int scan_escaped_word (string); int identifier_type (SCM); char escaped_char (char) const; + Lily_parser *parser_; Keyword_table *keytable_; SCM scopes_; SCM start_module_; + int hidden_state_; public: - String main_input_name_; + vector extra_token_types_; + string main_input_name_; void *lexval; Input *lexloc; bool is_main_input_; - + Sources *sources_; /* Scheme hash tables with (oct name acc) values, and symbol keys. */ @@ -49,8 +52,8 @@ public: int error_level_; Input last_input_; - Lily_lexer (Sources *); - Lily_lexer (Lily_lexer const &); + Lily_lexer (Sources *, Lily_parser *); + Lily_lexer (Lily_lexer const &, Lily_parser *); int yylex (); void add_lexed_char (int); @@ -61,12 +64,15 @@ public: void add_scope (SCM); SCM set_current_scope (); + bool has_scope () const; SCM remove_scope (); void start_main_input (); - SCM lookup_identifier (String s); + SCM keyword_list () const; + SCM lookup_identifier (string s); SCM lookup_identifier_symbol (SCM s); + void push_extra_token (int token_type); void push_chord_state (SCM tab); void push_figuredbass_state (); void push_lyric_state (); @@ -76,6 +82,7 @@ public: void pop_state (); void LexerError (char const *); void set_identifier (SCM name_string, SCM); + int get_state () const; bool is_note_state () const; bool is_chord_state () const; bool is_lyric_state () const;