ignore .lib and .exe
[prop.git] / prop-src / logicgen.ph
blob62872e3f249c24eabc547f4bfb354e06034992c9
1 ///////////////////////////////////////////////////////////////////////////////
2 //
3 //  This file describes the interface of the constraint logic compiler
4 //  internals.
5 //
6 ///////////////////////////////////////////////////////////////////////////////
7 #ifndef constraint_logic_compiler_h
8 #define constraint_logic_compiler_h
10 #include "hashtab.h"
12 ///////////////////////////////////////////////////////////////////////////////
14 //  Forward datatype declarations
16 ///////////////////////////////////////////////////////////////////////////////
17 datatype Ty          //  Type expressions
18      and Pat         //  Patterns
19      and Exp         //  Expressions
20      and Decl        //  Prop declarations
21      and Def         //  Definitions
22      and Stmt        //  Statements
23      and Instness    //  Instantiatedness
24      and Determinism //  Determinism of a predicate
27 ///////////////////////////////////////////////////////////////////////////////
29 //  Internals of the constraint compiler.
31 ///////////////////////////////////////////////////////////////////////////////
32 class ConstraintCompilerInternal
33 {  // Unimplemented
34    ConstraintCompilerInternal (const ConstraintCompilerInternal&);
35    void operator = (const ConstraintCompilerInternal&);
37    friend class ConstraintCompiler;
39    Id class_name;
40    ////////////////////////////////////////////////////////////////////////////
41    //
42    //  Internal maps.
43    //
44    ////////////////////////////////////////////////////////////////////////////
45    HashTable rule_map;        // mapping from functor name to clauses
46    HashTable typing_map;      // mapping from functor name to type
47    HashTable instness_map;    // mapping from id to instness type
48    HashTable det_map;         // mapping from id to determinism.
50 public:
51    ////////////////////////////////////////////////////////////////////////////
52    //
53    //  Constructor and destructor
54    //
55    ////////////////////////////////////////////////////////////////////////////
56    ConstraintCompilerInternal(Id);
57   ~ConstraintCompilerInternal();
60 #endif