Mercurial > ~dholland > hg > ag > index.cgi
comparison anagram/agcore/coreinst.cpp @ 0:13d2b8934445
Import AnaGram (near-)release tree into Mercurial.
author | David A. Holland |
---|---|
date | Sat, 22 Dec 2007 17:52:45 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:13d2b8934445 |
---|---|
1 /* | |
2 * AnaGram, A System for Syntax Directed Programming | |
3 * Copyright 1997-1999 Parsifal Software. All Rights Reserved. | |
4 * Copyright 2006 David A. Holland. All Rights Reserved. | |
5 * See the file COPYING for license and usage terms. | |
6 * | |
7 * coreinst.cpp - template instantiation | |
8 */ | |
9 | |
10 #include "agarray.h" | |
11 #include "agbaltree.h" | |
12 #include "agstring.h" | |
13 #include "checksum.h" | |
14 #include "csexp.h" | |
15 #include "error.h" | |
16 #include "ftpar.h" | |
17 #include "keyword.h" | |
18 #include "minmax.h" | |
19 #include "mrule.h" | |
20 #include "register.h" | |
21 #include "rproc.h" | |
22 #include "rule.h" | |
23 #include "symbol.h" | |
24 #include "token.h" | |
25 #include "tree.h" | |
26 | |
27 //#define INCLUDE_LOGGING | |
28 #include "log.h" | |
29 | |
30 #include "agarray-imp.h" | |
31 #include "agbaltree-imp.h" | |
32 #include "agstack-imp.h" | |
33 #include "register-imp.h" | |
34 | |
35 | |
36 //////////////////////////////////////////////////////////// | |
37 | |
38 #ifdef __IBMCPP__ | |
39 /* last pruned who-knows-when */ | |
40 /* last tested 20061022 */ | |
41 | |
42 // data.h | |
43 #pragma define(Triple<int>) | |
44 #pragma define(OrderedPair<int>) | |
45 | |
46 // array | |
47 #pragma define(AgArray< AgBalancedTree <int> >) | |
48 #pragma define(AgArray< AgBalancedTree<MarkedRule> >) | |
49 #pragma define(AgArray<MarkedRule>) | |
50 #pragma define(AgArray<Rule>) | |
51 #pragma define(AgArray<Token>) | |
52 #pragma define(AgArray<int>) | |
53 #pragma define(AgArray<unsigned char>) | |
54 #pragma define(AgArray<unsigned>) | |
55 | |
56 // stack | |
57 #pragma define(AgStack< AgStack<RuleElement> >) | |
58 #pragma define(AgStack<CastDescriptor>) | |
59 #pragma define(AgStack<CSegment>) | |
60 #pragma define(AgStack<CharSetExpression *>) | |
61 #pragma define(AgStack<Error>) | |
62 #pragma define(AgStack<FtParser::State>) | |
63 #pragma define(AgStack<FtParser::Transaction>) | |
64 #pragma define(AgStack<Keyword>) | |
65 #pragma define(AgStack<KeywordDescriptor>) | |
66 #pragma define(AgStack<MarkedRule>) | |
67 #pragma define(AgStack<Procedure>) | |
68 #pragma define(AgStack<ProcedureDescriptor>) | |
69 #pragma define(AgStack<Rule>) | |
70 #pragma define(AgStack<RuleDescriptor>) | |
71 #pragma define(AgStack<RuleElement>) | |
72 //#pragma define(AgStack<StateDescriptor>) | |
73 #pragma define(AgStack<Token>) | |
74 #pragma define(AgStack<VpRuleDescriptor>) | |
75 #pragma define(AgStack<int>) | |
76 #pragma define(AgStack<parse_tree_map>) | |
77 #pragma define(AgStack<sumentry>) | |
78 #pragma define(AgStack<token_name_map>) | |
79 #pragma define(AgStack<token_number_map>) | |
80 #pragma define(AgStack<unsigned int>) | |
81 | |
82 // register | |
83 #pragma define(ObjectRegister<Procedure>) | |
84 #pragma define(ObjectRegister<RuleDescriptor>) | |
85 #pragma define(ObjectRegister<token_number_map>) | |
86 #pragma define(KeyedObjectRegister<parse_tree_map>) | |
87 #pragma define(KeyedObjectRegister<CastDescriptor>) | |
88 #pragma define(KeyedObjectRegister<KeywordDescriptor>) | |
89 //#pragma define(KeyedObjectRegister<StateDescriptor>) | |
90 #pragma define(KeyedObjectRegister<SymbolDescriptor>) | |
91 #pragma define(KeyedObjectRegister<VpRuleDescriptor>) | |
92 #pragma define(Each<Rule>) | |
93 #pragma define(Each<Token>) | |
94 #pragma define(Each<Cast>) | |
95 #pragma define(Each<Keyword>) | |
96 #pragma define(Each<Procedure>) | |
97 | |
98 #endif /* __IBMCPP__ */ | |
99 | |
100 //////////////////////////////////////////////////////////// | |
101 | |
102 #ifdef __WATCOM_CPLUSPLUS__ | |
103 /* last pruned who-knows-when */ | |
104 /* last tested who-knows-when */ | |
105 | |
106 // Watcom 10.6 doesn't seem to have any mechanism for forcing template | |
107 // expansions. | |
108 | |
109 // data.h | |
110 typedef Triple<int> tripleJunk; | |
111 typedef OrderedPair<int> pairJunk; | |
112 | |
113 // array | |
114 typedef AgArray< AgBalancedTree <int> > junk1; | |
115 typedef AgArray< AgBalancedTree<MarkedRule> > junk2; | |
116 typedef AgArray<MarkedRule> junk3; | |
117 typedef AgArray<Rule> junk4; | |
118 typedef AgArray<Token> junk5; | |
119 typedef AgArray<int> junk6; | |
120 typedef AgArray<unsigned char> junk7; | |
121 typedef AgArray<unsigned> junk8; | |
122 | |
123 // register | |
124 typedef ObjectRegister<Procedure> rjunk1; | |
125 typedef ObjectRegister<RuleDescriptor> rjunk2; | |
126 typedef ObjectRegister<token_number_map> rjunk3; | |
127 typedef KeyedObjectRegister<parse_tree_map> rjunk4; | |
128 typedef KeyedObjectRegister<CastDescriptor> rjunk5; | |
129 typedef KeyedObjectRegister<KeywordDescriptor> rjunk6; | |
130 //typedef KeyedObjectRegister<StateDescriptor> rjunk8; | |
131 typedef KeyedObjectRegister<SymbolDescriptor> rjunk7; | |
132 typedef KeyedObjectRegister<VpRuleDescriptor> rjunk9; | |
133 typedef Each<Rule> fake9; | |
134 typedef Each<Token> fake10; | |
135 typedef Each<Procedure> fake11; | |
136 typedef Each<Cast> fake12; | |
137 typedef Each<Keyword> fake13; | |
138 | |
139 #endif /* __WATCOM_CPLUSPLUS__ */ | |
140 | |
141 //////////////////////////////////////////////////////////// | |
142 | |
143 #ifdef _MSC_VER | |
144 /* last pruned who-knows-when */ | |
145 /* last tested who-knows-when */ | |
146 | |
147 // data.h | |
148 template class OrderedPair<int>; | |
149 template class Triple<int>; | |
150 | |
151 // array | |
152 template class AgArray< AgBalancedTree <int> >; | |
153 template class AgArray< AgBalancedTree<MarkedRule> >; | |
154 template class AgArray<MarkedRule>; | |
155 template class AgArray<Rule>; | |
156 template class AgArray<Token>; | |
157 template class AgArray<int>; | |
158 template class AgArray<unsigned char>; | |
159 template class AgArray<unsigned>; | |
160 | |
161 // stack | |
162 template class AgStack< AgStack<RuleElement> >; | |
163 template class AgStack<CastDescriptor>; | |
164 template class AgStack<CSegment>; | |
165 template class AgStack<CharSetExpression *>; | |
166 template class AgStack<Error>; | |
167 template class AgStack<FtParser::State>; | |
168 template class AgStack<FtParser::Transaction>; | |
169 template class AgStack<Keyword>; | |
170 template class AgStack<KeywordDescriptor>; | |
171 template class AgStack<MarkedRule>; | |
172 template class AgStack<Procedure>; | |
173 template class AgStack<ProcedureDescriptor>; | |
174 template class AgStack<Rule>; | |
175 template class AgStack<RuleDescriptor>; | |
176 template class AgStack<RuleElement>; | |
177 //template class AgStack<StateDescriptor>; | |
178 template class AgStack<Token>; | |
179 template class AgStack<VpRuleDescriptor>; | |
180 template class AgStack<int>; | |
181 template class AgStack<parse_tree_map>; | |
182 template class AgStack<token_name_map>; | |
183 template class AgStack<token_number_map>; | |
184 template class AgStack<unsigned int>; | |
185 | |
186 // register | |
187 template class ObjectRegister<Procedure>; | |
188 template class ObjectRegister<RuleDescriptor>; | |
189 template class ObjectRegister<token_number_map>; | |
190 template class KeyedObjectRegister<parse_tree_map>; | |
191 template class KeyedObjectRegister<CastDescriptor>; | |
192 template class KeyedObjectRegister<KeywordDescriptor>; | |
193 //template class KeyedObjectRegister<StateDescriptor>; | |
194 template class KeyedObjectRegister<SymbolDescriptor>; | |
195 template class KeyedObjectRegister<VpRuleDescriptor>; | |
196 | |
197 #endif /* _MSC_VER */ | |
198 | |
199 //////////////////////////////////////////////////////////// | |
200 | |
201 #ifdef __GNUC__ | |
202 /* last pruned 20061022 */ | |
203 /* last tested 20061022 */ | |
204 | |
205 // array | |
206 template class AgArray< AgBalancedTree <int> >; | |
207 template class AgArray<Rule>; | |
208 template class AgArray<RuleElement>; | |
209 template class AgArray<Token>; | |
210 template class AgArray<int>; | |
211 template class AgArray<unsigned>; | |
212 | |
213 // balanced tree | |
214 template class AgBalancedTree<AgArray<int> >; | |
215 template class AgBalancedTree<OrderedPair<int> >; | |
216 template class AgBalancedTree<Triple<int> >; | |
217 | |
218 // stack | |
219 template class AgStack< AgStack<RuleElement> >; | |
220 template class AgStack<CSegment>; | |
221 template class AgStack<Error>; | |
222 template class AgStack<FtParser::State>; | |
223 template class AgStack<FtParser::Transaction>; | |
224 template class AgStack<KeywordDescriptor>; | |
225 template class AgStack< Listener<FtParser::StackChanged> *>; | |
226 template class AgStack<ProcedureDescriptor>; | |
227 template class AgStack<Rule>; | |
228 template class AgStack<RuleDescriptor>; | |
229 template class AgStack<RuleElement>; | |
230 template class AgStack<SymbolDescriptor>; | |
231 template class AgStack<Token>; | |
232 template class AgStack<int>; | |
233 template class AgStack<parse_tree_map>; | |
234 template class AgStack<sumentry>; | |
235 template class AgStack<token_number_map>; | |
236 | |
237 // register | |
238 template class ObjectRegister<CastDescriptor>; | |
239 template class ObjectRegister<KeywordDescriptor>; | |
240 template class ObjectRegister<ProcedureDescriptor>; | |
241 template class ObjectRegister<RuleDescriptor>; | |
242 template class ObjectRegister<SymbolDescriptor>; | |
243 template class ObjectRegister<VpRuleDescriptor>; | |
244 template class ObjectRegister<parse_tree_map>; | |
245 template class ObjectRegister<token_number_map>; | |
246 template class KeyedObjectRegister<CastDescriptor>; | |
247 template class KeyedObjectRegister<KeywordDescriptor>; | |
248 template class KeyedObjectRegister<SymbolDescriptor>; | |
249 template class KeyedObjectRegister<VpRuleDescriptor>; | |
250 template class KeyedObjectRegister<parse_tree_map>; | |
251 | |
252 template class Each<Cast>; | |
253 template class Each<Keyword>; | |
254 template class Each<Procedure>; | |
255 template class Each<Rule>; | |
256 template class Each<Token>; | |
257 | |
258 #endif /* __GNUC__ */ | |
259 | |
260 //////////////////////////////////////////////////////////// | |
261 | |
262 #ifdef __BCPLUSPLUS__ | |
263 /* last pruned who-knows-when */ | |
264 /* last tested who-knows-when */ | |
265 | |
266 #pragma option -Jgd | |
267 | |
268 // data.h | |
269 typedef Triple<int> tripleJunk; | |
270 typedef OrderedPair<int> pairJunk; | |
271 | |
272 // array | |
273 typedef AgArray< AgBalancedTree <int> > fake1; | |
274 typedef AgArray< AgBalancedTree<MarkedRule> > fake2; | |
275 typedef AgArray<MarkedRule> fake3; | |
276 typedef AgArray<Rule> fake4; | |
277 typedef AgArray<Token> fake5; | |
278 typedef AgArray<int> fake6; | |
279 typedef AgArray<unsigned char> fake7; | |
280 typedef AgArray<unsigned> fake8; | |
281 | |
282 // stack | |
283 typedef AgStack< AgStack<RuleElement> > fake1; | |
284 typedef AgStack<CastDescriptor> fake2a; | |
285 typedef AgStack<CSegment> fake3; | |
286 typedef AgStack<CharSetExpression *> fake4; | |
287 typedef AgStack<Error> fake5; | |
288 typedef AgStack<FtParser::State> fake6; | |
289 typedef AgStack<FtParser::Transaction> fake7; | |
290 typedef AgStack<Keyword> fake8; | |
291 typedef AgStack<KeywordDescriptor> fake8d; | |
292 typedef AgStack<MarkedRule> fake9; | |
293 typedef AgStack<Procedure> fake10; | |
294 typedef AgStack<ProcedureDescriptor> fake11; | |
295 typedef AgStack<Rule> fake12; | |
296 typedef AgStack<RuleDescriptor> fake13; | |
297 typedef AgStack<RuleElement> fake14; | |
298 //typedef AgStack<StateDescriptor> fake15; | |
299 typedef AgStack<Token> fake16; | |
300 typedef AgStack<VpRuleDescriptor> fake17; | |
301 typedef AgStack<int> fake19; | |
302 typedef AgStack<parse_tree_map> fake20; | |
303 typedef AgStack<token_name_map> fake21; | |
304 typedef AgStack<token_number_map> fake22; | |
305 typedef AgStack<unsigned int> fake23; | |
306 | |
307 // register | |
308 typedef ObjectRegister<Procedure> fake1; | |
309 typedef ObjectRegister<RuleDescriptor> fake2; | |
310 typedef ObjectRegister<token_number_map> fake3; | |
311 typedef KeyedObjectRegister<parse_tree_map> fake4; | |
312 typedef KeyedObjectRegister<CastDescriptor> fake5; | |
313 typedef KeyedObjectRegister<KeywordDescriptor> fake6; | |
314 //typedef KeyedObjectRegister<StateDescriptor> fake8; | |
315 typedef KeyedObjectRegister<SymbolDescriptor> fake7; | |
316 typedef KeyedObjectRegister<VpRuleDescriptor> fake8; | |
317 typedef Each<Rule> fake9; | |
318 typedef Each<Token> fake10; | |
319 typedef Each<Procedure> fake11; | |
320 typedef Each<Cast> fake12; | |
321 typedef Each<Keyword> fake13; | |
322 | |
323 #endif /* __BCPLUSPLUS__ */ | |
324 | |
325 |