typename fix
[prop.git] / prop-src / aggen.ph
blob381ec03c602aed8dccee421804ce427fe65ba097
1 ///////////////////////////////////////////////////////////////////////////////
2 //
3 //  This file contains the definitions used in the attribute
4 //  grammar generator.
5 //
6 ///////////////////////////////////////////////////////////////////////////////
7 #ifndef attribute_grammar_h
8 #define attribute_grammar_h
10 #include "basics.ph"
11 #include "ir.ph"
12 #include "codegen.h"
13 #include "classdef.h"
14 #include "parsegen.h"
16 ///////////////////////////////////////////////////////////////////////////////
18 //  Class to represent an attribute grammar class
20 ///////////////////////////////////////////////////////////////////////////////
21 class AttributeGrammarClass : public SyntaxClass
22 {  AttributeGrammarClass(const AttributeGrammarClass&);
23    void operator = (const AttributeGrammarClass&);
24 public:
25    AttributeGrammarClass(Id, Inherits, TyQual, Decls);
26   ~AttributeGrammarClass();
27    virtual void gen_class_interface(CodeGen&);
28    virtual void gen_class_implementation(CodeGen&, Tys, DefKind);
31 ///////////////////////////////////////////////////////////////////////////////
33 //  Definition of the attribute grammar compiler
35 ///////////////////////////////////////////////////////////////////////////////
36 class AttributeGrammarCompiler : virtual public ParserCompiler {
38    // no copy constructor
39    AttributeGrammarCompiler(const AttributeGrammarCompiler&);  
40    void operator = (const AttributeGrammarCompiler&); // no assignment
42 public:
44    AttributeGrammarCompiler();
45   ~AttributeGrammarCompiler();
47    void gen_attribute_grammar(Id, GramExp);
50 #endif