.gitignore
[prop.git] / prop-src / metasyntax.h
blobd63dfd60daacc046dac4c2913bb0f28f790d832a
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 ///////////////////////////////////////////////////////////////////////////////
9 //
10 // This file describes the interface to the meta-syntax compiler.
12 ///////////////////////////////////////////////////////////////////////////////
13 #ifndef meta_syntax_h
14 #define meta_syntax_h
16 #include <new>
17 #include "parsegen.h"
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
29 // syntax.
31 ///////////////////////////////////////////////////////////////////////////////
32 class MetaSyntaxCompiler : public virtual ParserCompiler {
33 MetaSyntaxCompiler (const MetaSyntaxCompiler&);
34 void operator = (const MetaSyntaxCompiler&);
35 public:
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&);
55 private:
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);
66 #endif
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
74 Number of labels = 0
75 Number of gotos = 0
76 Adaptive matching = enabled
77 Fast string matching = disabled
78 Inline downcasts = enabled
79 --------------------------------------------------------------------------