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 ///////////////////////////////////////////////////////////////////////////////
8 ///////////////////////////////////////////////////////////////////////////////
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 ///////////////////////////////////////////////////////////////////////////////
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
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
72 Adaptive matching = enabled
73 Fast string matching = disabled
74 Inline downcasts = enabled
75 --------------------------------------------------------------------------