X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Flily-lexer.hh;h=83a9f89b9353fa70257bf97b7d74c126dbabe118;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=37e25fa10176dfef285d04c9bd9e30b6492bc123;hpb=58bcc84c9480dae1b21bc24d8396b91fe19e0131;p=lilypond.git diff --git a/lily/include/lily-lexer.hh b/lily/include/lily-lexer.hh index 37e25fa101..83a9f89b93 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--2008 Han-Wen Nienhuys */ #ifndef MY_LILY_LEXER_HH @@ -21,26 +21,28 @@ void set_lexer (); class Lily_lexer : public Includable_lexer { - DECLARE_SMOBS (Lily_lexer,); -public: - SCM scopes_; + 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. */ @@ -50,10 +52,10 @@ 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); void prepare_for_next_token (); @@ -61,12 +63,19 @@ public: Input here_input () const; void add_scope (SCM); + SCM set_current_scope (); + bool has_scope () const; SCM remove_scope (); void start_main_input (); - SCM lookup_identifier (String s); + virtual void new_input (string s, Sources *); + virtual void new_input (string s, string d, Sources *); + + 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 +85,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;