typename fix
[prop.git] / prop-src / pat.h
blob6e460cc998125477675f00b48af30351ee17e66c
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 "pat.ph".
5 ///////////////////////////////////////////////////////////////////////////////
7 #line 1 "pat.ph"
8 ///////////////////////////////////////////////////////////////////////////////
9 //
10 // This file describes the analysis routines for patterns and match
11 // decision trees. These are used for mode analysis and determinism
12 // analysis for logic clauses compilation.
14 ///////////////////////////////////////////////////////////////////////////////
15 #ifndef patterns_h
16 #define patterns_h
18 #include "ir.h"
19 #include "ast.h"
20 #include "matchcom.h"
22 ///////////////////////////////////////////////////////////////////////////////
24 // Tests whether a pattern is subsumed by another. Call the
25 // error handler if false.
27 ///////////////////////////////////////////////////////////////////////////////
28 extern Bool subsumes (Pat, Pat, Bool verbose);
29 extern Bool subsumes (Pats, Pats, Bool verbose);
30 extern Bool subsumes (LabPats, LabPats, Bool verbose);
32 ///////////////////////////////////////////////////////////////////////////////
34 // Convert a simple pattern into an unification pattern, i.e. one in
35 // which pattern matching of the variable is explicitly modeled.
37 ///////////////////////////////////////////////////////////////////////////////
38 extern Pat unifier_of (Pat);
39 extern Pats unifier_of (Pats);
40 extern LabPats unifier_of (LabPats);
42 ///////////////////////////////////////////////////////////////////////////////
44 // Thin a matching tree by discarding unreachable branches.
46 ///////////////////////////////////////////////////////////////////////////////
47 extern Match thin (Match, Pat);
48 extern Match * thin (int, Match [], Pats);
50 ///////////////////////////////////////////////////////////////////////////////
52 // Routine to invert a pattern into a constructor expression.
53 // If 'write mode' is on then convert pattern identifiers and wild cards
54 // into logical variable constructors.
56 ///////////////////////////////////////////////////////////////////////////////
57 extern Exp pat2exp (Pat);
58 extern Exp pat2constructor (Pat);
59 extern Exp pat2unifier (Pat);
60 extern Bool write_mode; // write mode during unification
62 #endif
63 #line 56 "pat.ph"
65 ------------------------------- Statistics -------------------------------
66 Merge matching rules = yes
67 Number of DFA nodes merged = 0
68 Number of ifs generated = 0
69 Number of switches generated = 0
70 Number of labels = 0
71 Number of gotos = 0
72 Adaptive matching = enabled
73 Fast string matching = disabled
74 Inline downcasts = enabled
75 --------------------------------------------------------------------------