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 "collection.pcc".
5 ///////////////////////////////////////////////////////////////////////////////
7 #line 1 "collection.pcc"
8 ///////////////////////////////////////////////////////////////////////////////
10 // This file implements the analysis and type inference methods for
11 // SETL-style collection types.
13 ///////////////////////////////////////////////////////////////////////////////
15 #include "collection.h"
18 ///////////////////////////////////////////////////////////////////////////////
20 // Instantiate the collection type descriptor.
22 ///////////////////////////////////////////////////////////////////////////////
23 #line 16 "collection.pcc"
24 #line 16 "collection.pcc"
25 ///////////////////////////////////////////////////////////////////////////////
27 // Interface specification of datatype CollectionDesc
29 ///////////////////////////////////////////////////////////////////////////////
30 #line 16 "collection.pcc"
33 ///////////////////////////////////////////////////////////////////////////////
35 // Interface specification of datatype List<CollectionDesc>
37 ///////////////////////////////////////////////////////////////////////////////
38 #line 16 "collection.pcc"
41 ///////////////////////////////////////////////////////////////////////////////
43 // Instantiation of datatype CollectionDesc
45 ///////////////////////////////////////////////////////////////////////////////
46 #line 16 "collection.pcc"
47 a_CollectionDesc::a_CollectionDesc (Id x_name
, CollectionAttrib x_attrib
, CollectionRep x_rep
)
48 : name(x_name
), attrib(x_attrib
), rep(x_rep
)
51 a_CollectionDesc
* COLdesc (Id x_name
, CollectionAttrib x_attrib
, CollectionRep x_rep
)
53 return new a_CollectionDesc (x_name
, x_attrib
, x_rep
);
57 ///////////////////////////////////////////////////////////////////////////////
59 // Instantiation of datatype List<CollectionDesc>
61 ///////////////////////////////////////////////////////////////////////////////
62 #line 16 "collection.pcc"
63 #ifdef PROP_EXPLICIT_TEMPLATE_INSTANTIATION
64 template class a_List
<CollectionDesc
>;
65 template a_List
<CollectionDesc
> * list_1_(CollectionDesc x_1
, a_List
<CollectionDesc
> * x_2
);
66 template a_List
<CollectionDesc
> * list_1_(CollectionDesc x_list_1_
);
67 template int boxed(const a_List
<CollectionDesc
> *);
68 template int untag(const a_List
<CollectionDesc
> *);
69 #endif /* PROP_EXPLICIT_TEMPLATE_INSTANTIATION */
71 #line 16 "collection.pcc"
72 #line 16 "collection.pcc"
75 ///////////////////////////////////////////////////////////////////////////////
77 // Functions for constructing some SETL-like type constructors.
79 ///////////////////////////////////////////////////////////////////////////////
81 { return TYCONty(COLtycon(
82 #line 24 "collection.pcc"
83 #line 24 "collection.pcc"
84 COLdesc("list", COLLECTION_NONE
, REP_none
)
85 #line 24 "collection.pcc"
86 #line 24 "collection.pcc"
88 #line 24 "collection.pcc"
89 #line 24 "collection.pcc"
91 #line 24 "collection.pcc"
92 #line 24 "collection.pcc"
96 { return TYCONty(COLtycon(
97 #line 27 "collection.pcc"
98 #line 27 "collection.pcc"
99 COLdesc("set", COLLECTION_NONE
, REP_none
)
100 #line 27 "collection.pcc"
101 #line 27 "collection.pcc"
103 #line 27 "collection.pcc"
104 #line 27 "collection.pcc"
106 #line 27 "collection.pcc"
107 #line 27 "collection.pcc"
111 { return TYCONty(COLtycon(
112 #line 30 "collection.pcc"
113 #line 30 "collection.pcc"
114 COLdesc("bag", COLLECTION_NONE
, REP_none
)
115 #line 30 "collection.pcc"
116 #line 30 "collection.pcc"
118 #line 30 "collection.pcc"
119 #line 30 "collection.pcc"
121 #line 30 "collection.pcc"
122 #line 30 "collection.pcc"
125 Ty
mkmapty (Ty a
, Ty b
)
126 { return TYCONty(COLtycon(
127 #line 33 "collection.pcc"
128 #line 33 "collection.pcc"
129 COLdesc("bag", COLLECTION_NONE
, REP_none
)
130 #line 33 "collection.pcc"
131 #line 33 "collection.pcc"
133 #line 33 "collection.pcc"
134 #line 33 "collection.pcc"
135 list_1_(a
,list_1_(b
))
136 #line 33 "collection.pcc"
137 #line 33 "collection.pcc"
140 Ty
mkmultimapty (Ty a
, Ty b
)
141 { return TYCONty(COLtycon(
142 #line 36 "collection.pcc"
143 #line 36 "collection.pcc"
144 COLdesc("bag", COLLECTION_NONE
, REP_none
)
145 #line 36 "collection.pcc"
146 #line 36 "collection.pcc"
148 #line 36 "collection.pcc"
149 #line 36 "collection.pcc"
150 list_1_(a
,list_1_(b
))
151 #line 36 "collection.pcc"
152 #line 36 "collection.pcc"
156 { return TYCONty(COLtycon(
157 #line 39 "collection.pcc"
158 #line 39 "collection.pcc"
159 COLdesc("bag", COLLECTION_NONE
, REP_none
)
160 #line 39 "collection.pcc"
161 #line 39 "collection.pcc"
163 #line 39 "collection.pcc"
164 #line 39 "collection.pcc"
166 #line 39 "collection.pcc"
167 #line 39 "collection.pcc"
170 Ty
mkpriqueuety (Ty a
)
171 { return TYCONty(COLtycon(
172 #line 42 "collection.pcc"
173 #line 42 "collection.pcc"
174 COLdesc("bag", COLLECTION_NONE
, REP_none
)
175 #line 42 "collection.pcc"
176 #line 42 "collection.pcc"
178 #line 42 "collection.pcc"
179 #line 42 "collection.pcc"
181 #line 42 "collection.pcc"
182 #line 42 "collection.pcc"
186 { return TYCONty(COLtycon(
187 #line 45 "collection.pcc"
188 #line 45 "collection.pcc"
189 COLdesc("bag", COLLECTION_NONE
, REP_none
)
190 #line 45 "collection.pcc"
191 #line 45 "collection.pcc"
193 #line 45 "collection.pcc"
194 #line 45 "collection.pcc"
196 #line 45 "collection.pcc"
197 #line 45 "collection.pcc"
200 #line 47 "collection.pcc"
202 ------------------------------- Statistics -------------------------------
203 Merge matching rules = yes
204 Number of DFA nodes merged = 0
205 Number of ifs generated = 0
206 Number of switches generated = 0
209 Adaptive matching = enabled
210 Fast string matching = disabled
211 Inline downcasts = enabled
212 --------------------------------------------------------------------------