From: fred Date: Wed, 19 Mar 1997 22:09:23 +0000 (+0000) Subject: lilypond-0.0.43 X-Git-Tag: release/1.5.59~6194 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=be1c75de50b20504d6007025c4e819b53f2c459a;p=lilypond.git lilypond-0.0.43 --- diff --git a/lily/include/my-lily-lexer.hh b/lily/include/my-lily-lexer.hh new file mode 100644 index 0000000000..c3f2bfa388 --- /dev/null +++ b/lily/include/my-lily-lexer.hh @@ -0,0 +1,79 @@ +/* + lexer.hh -- declare My_lily_lexer + + source file of the LilyPond music typesetter + + (c) 1997 Han-Wen Nienhuys +*/ + +#ifndef LEXER_HH +#define LEXER_HH +#include +#include "proto.hh" +#include "fproto.hh" +#include "varray.hh" +#include "string.hh" + +int yylex(); +void yyerror(char const *s); +bool busy_parsing(); +void kill_lexer(); +void set_lexer(); + + +struct Lexer_prefs { + int default_duration, default_dots, default_octave_i_; + int default_plet_type, default_plet_dur; + String textstyle_str_; + + bool last_duration_mode ; + + Lexer_prefs(); + Moment plet_mom(); + void set_default_duration(int *); + void set_last_duration(int n); + void set_duration_mode(String s); + void get_default_duration(int *); + void set_plet(int,int); +}; + +/// lexer with provisions for include files. +class My_lily_lexer : public yyFlexLexer { + int lookup_keyword(String); + void lookup_notename(int &large, int &small, String s); + int scan_bare_word(String); + int scan_escaped_word(String); + +public: + Lexer_prefs prefs; + + Array include_stack_; + Assoc *identifier_assoc_p_; + Keyword_table * keytable_p_; + int errorlevel_i_; + + /* *************** */ + + Identifier*lookup_identifier(String s); + char const* here_ch_c_l(); + + void push_note_state(); + void push_lyric_state(); + void pop_state(); + void LexerError(char const *); + String spot() const; + My_lily_lexer(); + void add_identifier(Identifier*i); + ~My_lily_lexer(); + void new_input(String s); + bool close_input(); + int yylex(); + void print_init_declarations() const; + void print_user_declarations() const; + bool note_state_b() const; + bool lyric_state_b() const; +}; + +extern My_lily_lexer *lexer; + +#endif