1 ///////////////////////////////////////////////////////////////////////////////
2 // This file is generated automatically using Prop (version 2.3.6),
3 // last updated on Nov 2, 1999.
4 // The original source file is "metasyntax.ph".
5 ///////////////////////////////////////////////////////////////////////////////
7 #line 1 "metasyntax.ph"
8 ///////////////////////////////////////////////////////////////////////////////
10 // This file describes the interface to the meta-syntax compiler.
12 ///////////////////////////////////////////////////////////////////////////////
18 ///////////////////////////////////////////////////////////////////////////////
20 // Forward declarations
22 ///////////////////////////////////////////////////////////////////////////////
23 class MetaSyntaxCompilerImpl
;
25 ///////////////////////////////////////////////////////////////////////////////
27 // The meta-syntax compiler is responsible for translating patterns and
28 // expressions written in meta-syntaxes into the equivalent in concrete
31 ///////////////////////////////////////////////////////////////////////////////
32 class MetaSyntaxCompiler
: public virtual ParserCompiler
{
33 MetaSyntaxCompiler (const MetaSyntaxCompiler
&);
34 void operator = (const MetaSyntaxCompiler
&);
36 ////////////////////////////////////////////////////////////////////////////
38 // Constructor and destructor
40 ////////////////////////////////////////////////////////////////////////////
41 MetaSyntaxCompiler ();
42 virtual ~MetaSyntaxCompiler ();
44 ////////////////////////////////////////////////////////////////////////////
46 // Methods to install a new grammar, parse expressions and patterns,
47 // and generate a new report.
49 ////////////////////////////////////////////////////////////////////////////
50 void install_grammar (Id grammar_name
, GramExp grammar
);
51 Exp
parse_exp (Id grammar_name
, const char *);
52 Pat
parse_pat (Id grammar_name
, const char *);
53 std::ostream
& print_report (std::ostream
&);
56 ////////////////////////////////////////////////////////////////////////////
58 // Private implementation stuff.
60 ////////////////////////////////////////////////////////////////////////////
61 MetaSyntaxCompilerImpl
* impl
;
62 void compile_new_grammar (Id grammar_name
, GramExp grammar
);
63 void flush_grammar (size_t memory_needed
);
67 #line 60 "metasyntax.ph"
69 ------------------------------- Statistics -------------------------------
70 Merge matching rules = yes
71 Number of DFA nodes merged = 0
72 Number of ifs generated = 0
73 Number of switches generated = 0
76 Adaptive matching = enabled
77 Fast string matching = disabled
78 Inline downcasts = enabled
79 --------------------------------------------------------------------------