X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Flily-lexer.hh;h=83a9f89b9353fa70257bf97b7d74c126dbabe118;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=fbc06b63676b85adf17fbfad9ce208fede807921;hpb=5d1ddaf889233f8e5c32a118f9e843e1becca2d2;p=lilypond.git diff --git a/lily/include/lily-lexer.hh b/lily/include/lily-lexer.hh index fbc06b6367..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 @@ -19,29 +19,31 @@ bool busy_parsing (); void kill_lexer (); void set_lexer (); -class Lily_lexer : public Includable_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_; + Sources *sources_; /* Scheme hash tables with (oct name acc) values, and symbol keys. */ SCM chordmodifier_tab_; @@ -50,23 +52,30 @@ 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 (); - int try_special_identifiers (SCM* , SCM); + int try_special_identifiers (SCM *, SCM); 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;