#define IDENTIFIER_HH
#include "identparent.hh"
#include "symtable.hh"
-#include "inputstaff.hh"
-#include "inputmusic.hh"
+#include "input-staff.hh"
+#include "input-music.hh"
#include "notename.hh"
#include "lookup.hh"
-#include "scriptdef.hh"
+#include "script-def.hh"
#define make_id_class(Idclass, Class, accessor) \
struct Idclass : Identifier {\
return (Class*) data;\
}\
~Idclass() { delete accessor(false); }\
+ virtual void do_print()const; \
}\
make_id_class(Real_id, Real, real);
Identifier(String n) : name(n) { }
virtual ~Identifier() {}
+
+ void print()const;
virtual const char*classname() { return "new Identifier"; }
void error(String);
IDACCESSOR(Input_staff, staff)
IDACCESSOR(Lookup,lookup)
IDACCESSOR(Real,real)
IDACCESSOR(Notename_tab, notename_tab)
+protected:
+ virtual void do_print()const=0;
private:
Identifier(Identifier const&){}
+
};
#endif // IDENTPARENT_HH
#include "lookup.hh"
#include "misc.hh"
#include "lexer.hh"
-#include "paperdef.hh"
-#include "mididef.hh"
-#include "inputscore.hh"
+#include "paper-def.hh"
+#include "midi-def.hh"
+#include "input-score.hh"
#include "main.hh"
#include "keyword.hh"
#include "debug.hh"
#include "identifier.hh"
#include "commandrequest.hh"
#include "musicalrequest.hh"
+#include "voice-element.hh"
#ifndef NDEBUG
#define YYDEBUG 1
Array<Request*> pre_reqs, post_reqs;
Array<const char *> define_spots;
-Paperdef*default_paper();
+Paper_def*default_paper();
char const* defined_ch_c_l;
char const* req_defined_ch_c_l;
int fatal_error_i = 0;
Voice_element *el;
String *string;
const char *consstr;
- Paperdef *paper;
+ Paper_def *paper;
Midi_def* midi;
Input_music *music;
Music_general_chord *chord;
*mlog << "Parsing ... ";
lexer = new My_flex_lexer;
-#ifdef YYDEBUG
+#ifndef NDEBUG
yydebug = !monitor->silence("InitParser") && check_debug;
lexer->set_debug( !monitor->silence("InitLexer") && check_debug);
#endif
lexer->new_input(init);
+
yyparse();
-#ifdef YYDEBUG
+#ifndef NDEBUG
+ if (check_debug && !monitor->silence("InitDeclarations"))
+ lexer->print_declarations();
+
yydebug = !monitor->silence("Parser") && check_debug;
lexer->set_debug( !monitor->silence("Lexer") && check_debug);
#endif
warning("Braces don't match.",0);
}
-Paperdef*
+Paper_def*
default_paper()
{
- return new Paperdef(
+ return new Paper_def(
lexer->lookup_identifier("default_table")->lookup(true));
}