]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.43
authorfred <fred>
Wed, 19 Mar 1997 22:09:23 +0000 (22:09 +0000)
committerfred <fred>
Wed, 19 Mar 1997 22:09:23 +0000 (22:09 +0000)
lily/include/my-lily-lexer.hh [new file with mode: 0644]

diff --git a/lily/include/my-lily-lexer.hh b/lily/include/my-lily-lexer.hh
new file mode 100644 (file)
index 0000000..c3f2bfa
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+  lexer.hh -- declare My_lily_lexer
+
+  source file of the LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+#ifndef LEXER_HH
+#define LEXER_HH
+#include <FlexLexer.h>
+#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<Input_file*> include_stack_;
+    Assoc<String, Identifier*> *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