Commit 57421ab251f6bbc8d1b820a99123cc27b46d00e4
1 parent
f1a115f5
Exists in
master
first stab at type analysis.
one more example.
Showing
4 changed files
with
1372 additions
and
10 deletions
Show diff stats
@@ -0,0 +1,1282 @@ | @@ -0,0 +1,1282 @@ | ||
1 | +_ > []. | ||
2 | +_T > [[]|_T]. | ||
3 | +[X|_T] > [preds(X)|_T]. | ||
4 | +_T > [[]|_T]. | ||
5 | +_T > [int|_T]. | ||
6 | +_T > ['X_INTRODUCED_42'|_T]. | ||
7 | +_T > [[]|_T]. | ||
8 | +_T > [lit(1,int)|_T]. | ||
9 | +_T > [lit(-1,int)|_T]. | ||
10 | +[E|_T] > [[E]|_T]. | ||
11 | +[T,H|_T] > [[H|T]|_T]. | ||
12 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
13 | +[VAL,AN,ID,T|_T] > [var(ID, array(T,1,2), VAL, AN)|_T]. | ||
14 | +[H,T|_T] > [[H|T]|_T]. | ||
15 | +_T > [int|_T]. | ||
16 | +_T > ['X_INTRODUCED_45'|_T]. | ||
17 | +_T > [[]|_T]. | ||
18 | +_T > [lit(1,int)|_T]. | ||
19 | +_T > [lit(-1,int)|_T]. | ||
20 | +_T > [lit(1,int)|_T]. | ||
21 | +[E|_T] > [[E]|_T]. | ||
22 | +[T,H|_T] > [[H|T]|_T]. | ||
23 | +[T,H|_T] > [[H|T]|_T]. | ||
24 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
25 | +[VAL,AN,ID,T|_T] > [var(ID, array(T,1,3), VAL, AN)|_T]. | ||
26 | +[H,T|_T] > [[H|T]|_T]. | ||
27 | +_T > [int|_T]. | ||
28 | +_T > ['X_INTRODUCED_70'|_T]. | ||
29 | +_T > [[]|_T]. | ||
30 | +_T > [lit(1,int)|_T]. | ||
31 | +_T > [lit(1,int)|_T]. | ||
32 | +_T > [lit(-1,int)|_T]. | ||
33 | +_T > [lit(-1,int)|_T]. | ||
34 | +[E|_T] > [[E]|_T]. | ||
35 | +[T,H|_T] > [[H|T]|_T]. | ||
36 | +[T,H|_T] > [[H|T]|_T]. | ||
37 | +[T,H|_T] > [[H|T]|_T]. | ||
38 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
39 | +[VAL,AN,ID,T|_T] > [var(ID, array(T,1,4), VAL, AN)|_T]. | ||
40 | +[H,T|_T] > [[H|T]|_T]. | ||
41 | +_T > [int(1,6)|_T]. | ||
42 | +_T > ['X_INTRODUCED_0'|_T]. | ||
43 | +_T > [[]|_T]. | ||
44 | +_T > [[]|_T]. | ||
45 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
46 | +[H,T|_T] > [[H|T]|_T]. | ||
47 | +_T > [int(1,6)|_T]. | ||
48 | +_T > ['X_INTRODUCED_1'|_T]. | ||
49 | +_T > [[]|_T]. | ||
50 | +_T > [[]|_T]. | ||
51 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
52 | +[H,T|_T] > [[H|T]|_T]. | ||
53 | +_T > [int(1,6)|_T]. | ||
54 | +_T > ['X_INTRODUCED_2'|_T]. | ||
55 | +_T > [[]|_T]. | ||
56 | +_T > [[]|_T]. | ||
57 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
58 | +[H,T|_T] > [[H|T]|_T]. | ||
59 | +_T > [int(1,6)|_T]. | ||
60 | +_T > ['X_INTRODUCED_3'|_T]. | ||
61 | +_T > [[]|_T]. | ||
62 | +_T > [[]|_T]. | ||
63 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
64 | +[H,T|_T] > [[H|T]|_T]. | ||
65 | +_T > [int(1,6)|_T]. | ||
66 | +_T > ['X_INTRODUCED_4'|_T]. | ||
67 | +_T > [[]|_T]. | ||
68 | +_T > [[]|_T]. | ||
69 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
70 | +[H,T|_T] > [[H|T]|_T]. | ||
71 | +_T > [int(1,6)|_T]. | ||
72 | +_T > ['X_INTRODUCED_5'|_T]. | ||
73 | +_T > [[]|_T]. | ||
74 | +_T > [[]|_T]. | ||
75 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
76 | +[H,T|_T] > [[H|T]|_T]. | ||
77 | +_T > [[5]|_T]. | ||
78 | +[Ls|_T] > [[4|Ls]|_T]. | ||
79 | +[Ls|_T] > [[3|Ls]|_T]. | ||
80 | +[Ls|_T] > [[2|Ls]|_T]. | ||
81 | +[Ls|_T] > [[1|Ls]|_T]. | ||
82 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
83 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
84 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
85 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
86 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
87 | +[Ls|_T] > [int(Ls)|_T]. | ||
88 | +_T > ['X_INTRODUCED_7'|_T]. | ||
89 | +_T > [id('is_defined_var')|_T]. | ||
90 | +_T > [[]|_T]. | ||
91 | +[As, E|_T] > [[E|As]|_T]. | ||
92 | +_T > [[]|_T]. | ||
93 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
94 | +[H,T|_T] > [[H|T]|_T]. | ||
95 | +_T > [[5]|_T]. | ||
96 | +[Ls|_T] > [[4|Ls]|_T]. | ||
97 | +[Ls|_T] > [[3|Ls]|_T]. | ||
98 | +[Ls|_T] > [[2|Ls]|_T]. | ||
99 | +[Ls|_T] > [[1|Ls]|_T]. | ||
100 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
101 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
102 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
103 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
104 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
105 | +[Ls|_T] > [int(Ls)|_T]. | ||
106 | +_T > ['X_INTRODUCED_8'|_T]. | ||
107 | +_T > [id('is_defined_var')|_T]. | ||
108 | +_T > [[]|_T]. | ||
109 | +[As, E|_T] > [[E|As]|_T]. | ||
110 | +_T > [[]|_T]. | ||
111 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
112 | +[H,T|_T] > [[H|T]|_T]. | ||
113 | +_T > [[5]|_T]. | ||
114 | +[Ls|_T] > [[4|Ls]|_T]. | ||
115 | +[Ls|_T] > [[3|Ls]|_T]. | ||
116 | +[Ls|_T] > [[2|Ls]|_T]. | ||
117 | +[Ls|_T] > [[1|Ls]|_T]. | ||
118 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
119 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
120 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
121 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
122 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
123 | +[Ls|_T] > [int(Ls)|_T]. | ||
124 | +_T > ['X_INTRODUCED_9'|_T]. | ||
125 | +_T > [id('is_defined_var')|_T]. | ||
126 | +_T > [[]|_T]. | ||
127 | +[As, E|_T] > [[E|As]|_T]. | ||
128 | +_T > [[]|_T]. | ||
129 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
130 | +[H,T|_T] > [[H|T]|_T]. | ||
131 | +_T > [[5]|_T]. | ||
132 | +[Ls|_T] > [[4|Ls]|_T]. | ||
133 | +[Ls|_T] > [[3|Ls]|_T]. | ||
134 | +[Ls|_T] > [[2|Ls]|_T]. | ||
135 | +[Ls|_T] > [[1|Ls]|_T]. | ||
136 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
137 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
138 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
139 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
140 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
141 | +[Ls|_T] > [int(Ls)|_T]. | ||
142 | +_T > ['X_INTRODUCED_10'|_T]. | ||
143 | +_T > [id('is_defined_var')|_T]. | ||
144 | +_T > [[]|_T]. | ||
145 | +[As, E|_T] > [[E|As]|_T]. | ||
146 | +_T > [[]|_T]. | ||
147 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
148 | +[H,T|_T] > [[H|T]|_T]. | ||
149 | +_T > [[5]|_T]. | ||
150 | +[Ls|_T] > [[4|Ls]|_T]. | ||
151 | +[Ls|_T] > [[3|Ls]|_T]. | ||
152 | +[Ls|_T] > [[2|Ls]|_T]. | ||
153 | +[Ls|_T] > [[1|Ls]|_T]. | ||
154 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
155 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
156 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
157 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
158 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
159 | +[Ls|_T] > [int(Ls)|_T]. | ||
160 | +_T > ['X_INTRODUCED_11'|_T]. | ||
161 | +_T > [id('is_defined_var')|_T]. | ||
162 | +_T > [[]|_T]. | ||
163 | +[As, E|_T] > [[E|As]|_T]. | ||
164 | +_T > [[]|_T]. | ||
165 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
166 | +[H,T|_T] > [[H|T]|_T]. | ||
167 | +_T > [[5]|_T]. | ||
168 | +[Ls|_T] > [[4|Ls]|_T]. | ||
169 | +[Ls|_T] > [[3|Ls]|_T]. | ||
170 | +[Ls|_T] > [[2|Ls]|_T]. | ||
171 | +[Ls|_T] > [[1|Ls]|_T]. | ||
172 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
173 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
174 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
175 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
176 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
177 | +[Ls|_T] > [int(Ls)|_T]. | ||
178 | +_T > ['X_INTRODUCED_14'|_T]. | ||
179 | +_T > [id('is_defined_var')|_T]. | ||
180 | +_T > [[]|_T]. | ||
181 | +[As, E|_T] > [[E|As]|_T]. | ||
182 | +_T > [[]|_T]. | ||
183 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
184 | +[H,T|_T] > [[H|T]|_T]. | ||
185 | +_T > [[5]|_T]. | ||
186 | +[Ls|_T] > [[4|Ls]|_T]. | ||
187 | +[Ls|_T] > [[3|Ls]|_T]. | ||
188 | +[Ls|_T] > [[2|Ls]|_T]. | ||
189 | +[Ls|_T] > [[1|Ls]|_T]. | ||
190 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
191 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
192 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
193 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
194 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
195 | +[Ls|_T] > [int(Ls)|_T]. | ||
196 | +_T > ['X_INTRODUCED_15'|_T]. | ||
197 | +_T > [id('is_defined_var')|_T]. | ||
198 | +_T > [[]|_T]. | ||
199 | +[As, E|_T] > [[E|As]|_T]. | ||
200 | +_T > [[]|_T]. | ||
201 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
202 | +[H,T|_T] > [[H|T]|_T]. | ||
203 | +_T > [[5]|_T]. | ||
204 | +[Ls|_T] > [[4|Ls]|_T]. | ||
205 | +[Ls|_T] > [[3|Ls]|_T]. | ||
206 | +[Ls|_T] > [[2|Ls]|_T]. | ||
207 | +[Ls|_T] > [[1|Ls]|_T]. | ||
208 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
209 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
210 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
211 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
212 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
213 | +[Ls|_T] > [int(Ls)|_T]. | ||
214 | +_T > ['X_INTRODUCED_16'|_T]. | ||
215 | +_T > [id('is_defined_var')|_T]. | ||
216 | +_T > [[]|_T]. | ||
217 | +[As, E|_T] > [[E|As]|_T]. | ||
218 | +_T > [[]|_T]. | ||
219 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
220 | +[H,T|_T] > [[H|T]|_T]. | ||
221 | +_T > [[5]|_T]. | ||
222 | +[Ls|_T] > [[4|Ls]|_T]. | ||
223 | +[Ls|_T] > [[3|Ls]|_T]. | ||
224 | +[Ls|_T] > [[2|Ls]|_T]. | ||
225 | +[Ls|_T] > [[1|Ls]|_T]. | ||
226 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
227 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
228 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
229 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
230 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
231 | +[Ls|_T] > [int(Ls)|_T]. | ||
232 | +_T > ['X_INTRODUCED_17'|_T]. | ||
233 | +_T > [id('is_defined_var')|_T]. | ||
234 | +_T > [[]|_T]. | ||
235 | +[As, E|_T] > [[E|As]|_T]. | ||
236 | +_T > [[]|_T]. | ||
237 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
238 | +[H,T|_T] > [[H|T]|_T]. | ||
239 | +_T > [[5]|_T]. | ||
240 | +[Ls|_T] > [[4|Ls]|_T]. | ||
241 | +[Ls|_T] > [[3|Ls]|_T]. | ||
242 | +[Ls|_T] > [[2|Ls]|_T]. | ||
243 | +[Ls|_T] > [[1|Ls]|_T]. | ||
244 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
245 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
246 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
247 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
248 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
249 | +[Ls|_T] > [int(Ls)|_T]. | ||
250 | +_T > ['X_INTRODUCED_21'|_T]. | ||
251 | +_T > [id('is_defined_var')|_T]. | ||
252 | +_T > [[]|_T]. | ||
253 | +[As, E|_T] > [[E|As]|_T]. | ||
254 | +_T > [[]|_T]. | ||
255 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
256 | +[H,T|_T] > [[H|T]|_T]. | ||
257 | +_T > [[5]|_T]. | ||
258 | +[Ls|_T] > [[4|Ls]|_T]. | ||
259 | +[Ls|_T] > [[3|Ls]|_T]. | ||
260 | +[Ls|_T] > [[2|Ls]|_T]. | ||
261 | +[Ls|_T] > [[1|Ls]|_T]. | ||
262 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
263 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
264 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
265 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
266 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
267 | +[Ls|_T] > [int(Ls)|_T]. | ||
268 | +_T > ['X_INTRODUCED_22'|_T]. | ||
269 | +_T > [id('is_defined_var')|_T]. | ||
270 | +_T > [[]|_T]. | ||
271 | +[As, E|_T] > [[E|As]|_T]. | ||
272 | +_T > [[]|_T]. | ||
273 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
274 | +[H,T|_T] > [[H|T]|_T]. | ||
275 | +_T > [[5]|_T]. | ||
276 | +[Ls|_T] > [[4|Ls]|_T]. | ||
277 | +[Ls|_T] > [[3|Ls]|_T]. | ||
278 | +[Ls|_T] > [[2|Ls]|_T]. | ||
279 | +[Ls|_T] > [[1|Ls]|_T]. | ||
280 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
281 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
282 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
283 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
284 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
285 | +[Ls|_T] > [int(Ls)|_T]. | ||
286 | +_T > ['X_INTRODUCED_23'|_T]. | ||
287 | +_T > [id('is_defined_var')|_T]. | ||
288 | +_T > [[]|_T]. | ||
289 | +[As, E|_T] > [[E|As]|_T]. | ||
290 | +_T > [[]|_T]. | ||
291 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
292 | +[H,T|_T] > [[H|T]|_T]. | ||
293 | +_T > [[5]|_T]. | ||
294 | +[Ls|_T] > [[4|Ls]|_T]. | ||
295 | +[Ls|_T] > [[3|Ls]|_T]. | ||
296 | +[Ls|_T] > [[2|Ls]|_T]. | ||
297 | +[Ls|_T] > [[1|Ls]|_T]. | ||
298 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
299 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
300 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
301 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
302 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
303 | +[Ls|_T] > [int(Ls)|_T]. | ||
304 | +_T > ['X_INTRODUCED_28'|_T]. | ||
305 | +_T > [id('is_defined_var')|_T]. | ||
306 | +_T > [[]|_T]. | ||
307 | +[As, E|_T] > [[E|As]|_T]. | ||
308 | +_T > [[]|_T]. | ||
309 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
310 | +[H,T|_T] > [[H|T]|_T]. | ||
311 | +_T > [[5]|_T]. | ||
312 | +[Ls|_T] > [[4|Ls]|_T]. | ||
313 | +[Ls|_T] > [[3|Ls]|_T]. | ||
314 | +[Ls|_T] > [[2|Ls]|_T]. | ||
315 | +[Ls|_T] > [[1|Ls]|_T]. | ||
316 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
317 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
318 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
319 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
320 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
321 | +[Ls|_T] > [int(Ls)|_T]. | ||
322 | +_T > ['X_INTRODUCED_29'|_T]. | ||
323 | +_T > [id('is_defined_var')|_T]. | ||
324 | +_T > [[]|_T]. | ||
325 | +[As, E|_T] > [[E|As]|_T]. | ||
326 | +_T > [[]|_T]. | ||
327 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
328 | +[H,T|_T] > [[H|T]|_T]. | ||
329 | +_T > [[5]|_T]. | ||
330 | +[Ls|_T] > [[4|Ls]|_T]. | ||
331 | +[Ls|_T] > [[3|Ls]|_T]. | ||
332 | +[Ls|_T] > [[2|Ls]|_T]. | ||
333 | +[Ls|_T] > [[1|Ls]|_T]. | ||
334 | +[Ls|_T] > [[-1|Ls]|_T]. | ||
335 | +[Ls|_T] > [[-2|Ls]|_T]. | ||
336 | +[Ls|_T] > [[-3|Ls]|_T]. | ||
337 | +[Ls|_T] > [[-4|Ls]|_T]. | ||
338 | +[Ls|_T] > [[-5|Ls]|_T]. | ||
339 | +[Ls|_T] > [int(Ls)|_T]. | ||
340 | +_T > ['X_INTRODUCED_35'|_T]. | ||
341 | +_T > [id('is_defined_var')|_T]. | ||
342 | +_T > [[]|_T]. | ||
343 | +[As, E|_T] > [[E|As]|_T]. | ||
344 | +_T > [[]|_T]. | ||
345 | +[VAL,AN,ID,T|_T] > [var(ID, T, VAL, AN)|_T]. | ||
346 | +[H,T|_T] > [[H|T]|_T]. | ||
347 | +_T > [int(1,6)|_T]. | ||
348 | +_T > ['costas'|_T]. | ||
349 | +_T > [lit([1, 2, 3, 4, 5, 6], set(int))|_T]. | ||
350 | +[E|_T] > [[E]|_T]. | ||
351 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
352 | +[E|_T] > [[E]|_T]. | ||
353 | +_T > [[]|_T]. | ||
354 | +[As, E|_T] > [[E|As]|_T]. | ||
355 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
356 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
357 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
358 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
359 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
360 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
361 | +[E|_T] > [[E]|_T]. | ||
362 | +[T,H|_T] > [[H|T]|_T]. | ||
363 | +[T,H|_T] > [[H|T]|_T]. | ||
364 | +[T,H|_T] > [[H|T]|_T]. | ||
365 | +[T,H|_T] > [[H|T]|_T]. | ||
366 | +[T,H|_T] > [[H|T]|_T]. | ||
367 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
368 | +[VAL,AN,ID,T|_T] > [var(ID, array(T,1,6), VAL, AN)|_T]. | ||
369 | +[H,T|_T] > [[H|T]|_T]. | ||
370 | +[X|_T] > [vars(X)|_T]. | ||
371 | +_T > [[]|_T]. | ||
372 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
373 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
374 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
375 | +[E|_T] > [[E]|_T]. | ||
376 | +[T,H|_T] > [[H|T]|_T]. | ||
377 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
378 | +_T > [lit(0,int)|_T]. | ||
379 | +[E|_T] > [[E]|_T]. | ||
380 | +[T,H|_T] > [[H|T]|_T]. | ||
381 | +[T,H|_T] > [[H|T]|_T]. | ||
382 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
383 | +_T > [[]|_T]. | ||
384 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
385 | +[H,T|_T] > [[H|T]|_T]. | ||
386 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
387 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
388 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
389 | +[E|_T] > [[E]|_T]. | ||
390 | +[T,H|_T] > [[H|T]|_T]. | ||
391 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
392 | +_T > [lit(0,int)|_T]. | ||
393 | +[E|_T] > [[E]|_T]. | ||
394 | +[T,H|_T] > [[H|T]|_T]. | ||
395 | +[T,H|_T] > [[H|T]|_T]. | ||
396 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
397 | +_T > [[]|_T]. | ||
398 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
399 | +[H,T|_T] > [[H|T]|_T]. | ||
400 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
401 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
402 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
403 | +[E|_T] > [[E]|_T]. | ||
404 | +[T,H|_T] > [[H|T]|_T]. | ||
405 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
406 | +_T > [lit(0,int)|_T]. | ||
407 | +[E|_T] > [[E]|_T]. | ||
408 | +[T,H|_T] > [[H|T]|_T]. | ||
409 | +[T,H|_T] > [[H|T]|_T]. | ||
410 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
411 | +_T > [[]|_T]. | ||
412 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
413 | +[H,T|_T] > [[H|T]|_T]. | ||
414 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
415 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
416 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
417 | +[E|_T] > [[E]|_T]. | ||
418 | +[T,H|_T] > [[H|T]|_T]. | ||
419 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
420 | +_T > [lit(0,int)|_T]. | ||
421 | +[E|_T] > [[E]|_T]. | ||
422 | +[T,H|_T] > [[H|T]|_T]. | ||
423 | +[T,H|_T] > [[H|T]|_T]. | ||
424 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
425 | +_T > [[]|_T]. | ||
426 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
427 | +[H,T|_T] > [[H|T]|_T]. | ||
428 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
429 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
430 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
431 | +[E|_T] > [[E]|_T]. | ||
432 | +[T,H|_T] > [[H|T]|_T]. | ||
433 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
434 | +_T > [lit(0,int)|_T]. | ||
435 | +[E|_T] > [[E]|_T]. | ||
436 | +[T,H|_T] > [[H|T]|_T]. | ||
437 | +[T,H|_T] > [[H|T]|_T]. | ||
438 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
439 | +_T > [[]|_T]. | ||
440 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
441 | +[H,T|_T] > [[H|T]|_T]. | ||
442 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
443 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
444 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
445 | +[E|_T] > [[E]|_T]. | ||
446 | +[T,H|_T] > [[H|T]|_T]. | ||
447 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
448 | +_T > [lit(0,int)|_T]. | ||
449 | +[E|_T] > [[E]|_T]. | ||
450 | +[T,H|_T] > [[H|T]|_T]. | ||
451 | +[T,H|_T] > [[H|T]|_T]. | ||
452 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
453 | +_T > [[]|_T]. | ||
454 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
455 | +[H,T|_T] > [[H|T]|_T]. | ||
456 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
457 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
458 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
459 | +[E|_T] > [[E]|_T]. | ||
460 | +[T,H|_T] > [[H|T]|_T]. | ||
461 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
462 | +_T > [lit(0,int)|_T]. | ||
463 | +[E|_T] > [[E]|_T]. | ||
464 | +[T,H|_T] > [[H|T]|_T]. | ||
465 | +[T,H|_T] > [[H|T]|_T]. | ||
466 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
467 | +_T > [[]|_T]. | ||
468 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
469 | +[H,T|_T] > [[H|T]|_T]. | ||
470 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
471 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
472 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
473 | +[E|_T] > [[E]|_T]. | ||
474 | +[T,H|_T] > [[H|T]|_T]. | ||
475 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
476 | +_T > [lit(0,int)|_T]. | ||
477 | +[E|_T] > [[E]|_T]. | ||
478 | +[T,H|_T] > [[H|T]|_T]. | ||
479 | +[T,H|_T] > [[H|T]|_T]. | ||
480 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
481 | +_T > [[]|_T]. | ||
482 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
483 | +[H,T|_T] > [[H|T]|_T]. | ||
484 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
485 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
486 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
487 | +[E|_T] > [[E]|_T]. | ||
488 | +[T,H|_T] > [[H|T]|_T]. | ||
489 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
490 | +_T > [lit(0,int)|_T]. | ||
491 | +[E|_T] > [[E]|_T]. | ||
492 | +[T,H|_T] > [[H|T]|_T]. | ||
493 | +[T,H|_T] > [[H|T]|_T]. | ||
494 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
495 | +_T > [[]|_T]. | ||
496 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
497 | +[H,T|_T] > [[H|T]|_T]. | ||
498 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
499 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
500 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
501 | +[E|_T] > [[E]|_T]. | ||
502 | +[T,H|_T] > [[H|T]|_T]. | ||
503 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
504 | +_T > [lit(0,int)|_T]. | ||
505 | +[E|_T] > [[E]|_T]. | ||
506 | +[T,H|_T] > [[H|T]|_T]. | ||
507 | +[T,H|_T] > [[H|T]|_T]. | ||
508 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
509 | +_T > [[]|_T]. | ||
510 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
511 | +[H,T|_T] > [[H|T]|_T]. | ||
512 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
513 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
514 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
515 | +[E|_T] > [[E]|_T]. | ||
516 | +[T,H|_T] > [[H|T]|_T]. | ||
517 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
518 | +_T > [lit(0,int)|_T]. | ||
519 | +[E|_T] > [[E]|_T]. | ||
520 | +[T,H|_T] > [[H|T]|_T]. | ||
521 | +[T,H|_T] > [[H|T]|_T]. | ||
522 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
523 | +_T > [[]|_T]. | ||
524 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
525 | +[H,T|_T] > [[H|T]|_T]. | ||
526 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
527 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
528 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
529 | +[E|_T] > [[E]|_T]. | ||
530 | +[T,H|_T] > [[H|T]|_T]. | ||
531 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
532 | +_T > [lit(0,int)|_T]. | ||
533 | +[E|_T] > [[E]|_T]. | ||
534 | +[T,H|_T] > [[H|T]|_T]. | ||
535 | +[T,H|_T] > [[H|T]|_T]. | ||
536 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
537 | +_T > [[]|_T]. | ||
538 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
539 | +[H,T|_T] > [[H|T]|_T]. | ||
540 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
541 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
542 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
543 | +[E|_T] > [[E]|_T]. | ||
544 | +[T,H|_T] > [[H|T]|_T]. | ||
545 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
546 | +_T > [lit(0,int)|_T]. | ||
547 | +[E|_T] > [[E]|_T]. | ||
548 | +[T,H|_T] > [[H|T]|_T]. | ||
549 | +[T,H|_T] > [[H|T]|_T]. | ||
550 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
551 | +_T > [[]|_T]. | ||
552 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
553 | +[H,T|_T] > [[H|T]|_T]. | ||
554 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
555 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
556 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
557 | +[E|_T] > [[E]|_T]. | ||
558 | +[T,H|_T] > [[H|T]|_T]. | ||
559 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
560 | +_T > [lit(0,int)|_T]. | ||
561 | +[E|_T] > [[E]|_T]. | ||
562 | +[T,H|_T] > [[H|T]|_T]. | ||
563 | +[T,H|_T] > [[H|T]|_T]. | ||
564 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
565 | +_T > [[]|_T]. | ||
566 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
567 | +[H,T|_T] > [[H|T]|_T]. | ||
568 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
569 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
570 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
571 | +[E|_T] > [[E]|_T]. | ||
572 | +[T,H|_T] > [[H|T]|_T]. | ||
573 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
574 | +_T > [lit(0,int)|_T]. | ||
575 | +[E|_T] > [[E]|_T]. | ||
576 | +[T,H|_T] > [[H|T]|_T]. | ||
577 | +[T,H|_T] > [[H|T]|_T]. | ||
578 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
579 | +_T > [[]|_T]. | ||
580 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
581 | +[H,T|_T] > [[H|T]|_T]. | ||
582 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
583 | +_T > [id('X_INTRODUCED_7')|_T]. | ||
584 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
585 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
586 | +[E|_T] > [[E]|_T]. | ||
587 | +[T,H|_T] > [[H|T]|_T]. | ||
588 | +[T,H|_T] > [[H|T]|_T]. | ||
589 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
590 | +_T > [lit(0,int)|_T]. | ||
591 | +[E|_T] > [[E]|_T]. | ||
592 | +[T,H|_T] > [[H|T]|_T]. | ||
593 | +[T,H|_T] > [[H|T]|_T]. | ||
594 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
595 | +_T > [id('X_INTRODUCED_7')|_T]. | ||
596 | +[E|_T] > [[E]|_T]. | ||
597 | +_T > [[]|_T]. | ||
598 | +[As, E|_T] > [[E|As]|_T]. | ||
599 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
600 | +[H,T|_T] > [[H|T]|_T]. | ||
601 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
602 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
603 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
604 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
605 | +[E|_T] > [[E]|_T]. | ||
606 | +[T,H|_T] > [[H|T]|_T]. | ||
607 | +[T,H|_T] > [[H|T]|_T]. | ||
608 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
609 | +_T > [lit(0,int)|_T]. | ||
610 | +[E|_T] > [[E]|_T]. | ||
611 | +[T,H|_T] > [[H|T]|_T]. | ||
612 | +[T,H|_T] > [[H|T]|_T]. | ||
613 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
614 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
615 | +[E|_T] > [[E]|_T]. | ||
616 | +_T > [[]|_T]. | ||
617 | +[As, E|_T] > [[E|As]|_T]. | ||
618 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
619 | +[H,T|_T] > [[H|T]|_T]. | ||
620 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
621 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
622 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
623 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
624 | +[E|_T] > [[E]|_T]. | ||
625 | +[T,H|_T] > [[H|T]|_T]. | ||
626 | +[T,H|_T] > [[H|T]|_T]. | ||
627 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
628 | +_T > [lit(0,int)|_T]. | ||
629 | +[E|_T] > [[E]|_T]. | ||
630 | +[T,H|_T] > [[H|T]|_T]. | ||
631 | +[T,H|_T] > [[H|T]|_T]. | ||
632 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
633 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
634 | +[E|_T] > [[E]|_T]. | ||
635 | +_T > [[]|_T]. | ||
636 | +[As, E|_T] > [[E|As]|_T]. | ||
637 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
638 | +[H,T|_T] > [[H|T]|_T]. | ||
639 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
640 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
641 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
642 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
643 | +[E|_T] > [[E]|_T]. | ||
644 | +[T,H|_T] > [[H|T]|_T]. | ||
645 | +[T,H|_T] > [[H|T]|_T]. | ||
646 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
647 | +_T > [lit(0,int)|_T]. | ||
648 | +[E|_T] > [[E]|_T]. | ||
649 | +[T,H|_T] > [[H|T]|_T]. | ||
650 | +[T,H|_T] > [[H|T]|_T]. | ||
651 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
652 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
653 | +[E|_T] > [[E]|_T]. | ||
654 | +_T > [[]|_T]. | ||
655 | +[As, E|_T] > [[E|As]|_T]. | ||
656 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
657 | +[H,T|_T] > [[H|T]|_T]. | ||
658 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
659 | +_T > [id('X_INTRODUCED_11')|_T]. | ||
660 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
661 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
662 | +[E|_T] > [[E]|_T]. | ||
663 | +[T,H|_T] > [[H|T]|_T]. | ||
664 | +[T,H|_T] > [[H|T]|_T]. | ||
665 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
666 | +_T > [lit(0,int)|_T]. | ||
667 | +[E|_T] > [[E]|_T]. | ||
668 | +[T,H|_T] > [[H|T]|_T]. | ||
669 | +[T,H|_T] > [[H|T]|_T]. | ||
670 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
671 | +_T > [id('X_INTRODUCED_11')|_T]. | ||
672 | +[E|_T] > [[E]|_T]. | ||
673 | +_T > [[]|_T]. | ||
674 | +[As, E|_T] > [[E|As]|_T]. | ||
675 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
676 | +[H,T|_T] > [[H|T]|_T]. | ||
677 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
678 | +_T > [id('X_INTRODUCED_14')|_T]. | ||
679 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
680 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
681 | +[E|_T] > [[E]|_T]. | ||
682 | +[T,H|_T] > [[H|T]|_T]. | ||
683 | +[T,H|_T] > [[H|T]|_T]. | ||
684 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
685 | +_T > [lit(0,int)|_T]. | ||
686 | +[E|_T] > [[E]|_T]. | ||
687 | +[T,H|_T] > [[H|T]|_T]. | ||
688 | +[T,H|_T] > [[H|T]|_T]. | ||
689 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
690 | +_T > [id('X_INTRODUCED_14')|_T]. | ||
691 | +[E|_T] > [[E]|_T]. | ||
692 | +_T > [[]|_T]. | ||
693 | +[As, E|_T] > [[E|As]|_T]. | ||
694 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
695 | +[H,T|_T] > [[H|T]|_T]. | ||
696 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
697 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
698 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
699 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
700 | +[E|_T] > [[E]|_T]. | ||
701 | +[T,H|_T] > [[H|T]|_T]. | ||
702 | +[T,H|_T] > [[H|T]|_T]. | ||
703 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
704 | +_T > [lit(0,int)|_T]. | ||
705 | +[E|_T] > [[E]|_T]. | ||
706 | +[T,H|_T] > [[H|T]|_T]. | ||
707 | +[T,H|_T] > [[H|T]|_T]. | ||
708 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
709 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
710 | +[E|_T] > [[E]|_T]. | ||
711 | +_T > [[]|_T]. | ||
712 | +[As, E|_T] > [[E|As]|_T]. | ||
713 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
714 | +[H,T|_T] > [[H|T]|_T]. | ||
715 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
716 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
717 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
718 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
719 | +[E|_T] > [[E]|_T]. | ||
720 | +[T,H|_T] > [[H|T]|_T]. | ||
721 | +[T,H|_T] > [[H|T]|_T]. | ||
722 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
723 | +_T > [lit(0,int)|_T]. | ||
724 | +[E|_T] > [[E]|_T]. | ||
725 | +[T,H|_T] > [[H|T]|_T]. | ||
726 | +[T,H|_T] > [[H|T]|_T]. | ||
727 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
728 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
729 | +[E|_T] > [[E]|_T]. | ||
730 | +_T > [[]|_T]. | ||
731 | +[As, E|_T] > [[E|As]|_T]. | ||
732 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
733 | +[H,T|_T] > [[H|T]|_T]. | ||
734 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
735 | +_T > [id('X_INTRODUCED_17')|_T]. | ||
736 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
737 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
738 | +[E|_T] > [[E]|_T]. | ||
739 | +[T,H|_T] > [[H|T]|_T]. | ||
740 | +[T,H|_T] > [[H|T]|_T]. | ||
741 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
742 | +_T > [lit(0,int)|_T]. | ||
743 | +[E|_T] > [[E]|_T]. | ||
744 | +[T,H|_T] > [[H|T]|_T]. | ||
745 | +[T,H|_T] > [[H|T]|_T]. | ||
746 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
747 | +_T > [id('X_INTRODUCED_17')|_T]. | ||
748 | +[E|_T] > [[E]|_T]. | ||
749 | +_T > [[]|_T]. | ||
750 | +[As, E|_T] > [[E|As]|_T]. | ||
751 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
752 | +[H,T|_T] > [[H|T]|_T]. | ||
753 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
754 | +_T > [id('X_INTRODUCED_21')|_T]. | ||
755 | +_T > [id('X_INTRODUCED_3')|_T]. | ||
756 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
757 | +[E|_T] > [[E]|_T]. | ||
758 | +[T,H|_T] > [[H|T]|_T]. | ||
759 | +[T,H|_T] > [[H|T]|_T]. | ||
760 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
761 | +_T > [lit(0,int)|_T]. | ||
762 | +[E|_T] > [[E]|_T]. | ||
763 | +[T,H|_T] > [[H|T]|_T]. | ||
764 | +[T,H|_T] > [[H|T]|_T]. | ||
765 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
766 | +_T > [id('X_INTRODUCED_21')|_T]. | ||
767 | +[E|_T] > [[E]|_T]. | ||
768 | +_T > [[]|_T]. | ||
769 | +[As, E|_T] > [[E|As]|_T]. | ||
770 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
771 | +[H,T|_T] > [[H|T]|_T]. | ||
772 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
773 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
774 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
775 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
776 | +[E|_T] > [[E]|_T]. | ||
777 | +[T,H|_T] > [[H|T]|_T]. | ||
778 | +[T,H|_T] > [[H|T]|_T]. | ||
779 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
780 | +_T > [lit(0,int)|_T]. | ||
781 | +[E|_T] > [[E]|_T]. | ||
782 | +[T,H|_T] > [[H|T]|_T]. | ||
783 | +[T,H|_T] > [[H|T]|_T]. | ||
784 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
785 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
786 | +[E|_T] > [[E]|_T]. | ||
787 | +_T > [[]|_T]. | ||
788 | +[As, E|_T] > [[E|As]|_T]. | ||
789 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
790 | +[H,T|_T] > [[H|T]|_T]. | ||
791 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
792 | +_T > [id('X_INTRODUCED_23')|_T]. | ||
793 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
794 | +_T > [id('X_INTRODUCED_2')|_T]. | ||
795 | +[E|_T] > [[E]|_T]. | ||
796 | +[T,H|_T] > [[H|T]|_T]. | ||
797 | +[T,H|_T] > [[H|T]|_T]. | ||
798 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
799 | +_T > [lit(0,int)|_T]. | ||
800 | +[E|_T] > [[E]|_T]. | ||
801 | +[T,H|_T] > [[H|T]|_T]. | ||
802 | +[T,H|_T] > [[H|T]|_T]. | ||
803 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
804 | +_T > [id('X_INTRODUCED_23')|_T]. | ||
805 | +[E|_T] > [[E]|_T]. | ||
806 | +_T > [[]|_T]. | ||
807 | +[As, E|_T] > [[E|As]|_T]. | ||
808 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
809 | +[H,T|_T] > [[H|T]|_T]. | ||
810 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
811 | +_T > [id('X_INTRODUCED_28')|_T]. | ||
812 | +_T > [id('X_INTRODUCED_4')|_T]. | ||
813 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
814 | +[E|_T] > [[E]|_T]. | ||
815 | +[T,H|_T] > [[H|T]|_T]. | ||
816 | +[T,H|_T] > [[H|T]|_T]. | ||
817 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
818 | +_T > [lit(0,int)|_T]. | ||
819 | +[E|_T] > [[E]|_T]. | ||
820 | +[T,H|_T] > [[H|T]|_T]. | ||
821 | +[T,H|_T] > [[H|T]|_T]. | ||
822 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
823 | +_T > [id('X_INTRODUCED_28')|_T]. | ||
824 | +[E|_T] > [[E]|_T]. | ||
825 | +_T > [[]|_T]. | ||
826 | +[As, E|_T] > [[E|As]|_T]. | ||
827 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
828 | +[H,T|_T] > [[H|T]|_T]. | ||
829 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
830 | +_T > [id('X_INTRODUCED_29')|_T]. | ||
831 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
832 | +_T > [id('X_INTRODUCED_1')|_T]. | ||
833 | +[E|_T] > [[E]|_T]. | ||
834 | +[T,H|_T] > [[H|T]|_T]. | ||
835 | +[T,H|_T] > [[H|T]|_T]. | ||
836 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
837 | +_T > [lit(0,int)|_T]. | ||
838 | +[E|_T] > [[E]|_T]. | ||
839 | +[T,H|_T] > [[H|T]|_T]. | ||
840 | +[T,H|_T] > [[H|T]|_T]. | ||
841 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
842 | +_T > [id('X_INTRODUCED_29')|_T]. | ||
843 | +[E|_T] > [[E]|_T]. | ||
844 | +_T > [[]|_T]. | ||
845 | +[As, E|_T] > [[E|As]|_T]. | ||
846 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
847 | +[H,T|_T] > [[H|T]|_T]. | ||
848 | +_T > [id('X_INTRODUCED_45')|_T]. | ||
849 | +_T > [id('X_INTRODUCED_35')|_T]. | ||
850 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
851 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
852 | +[E|_T] > [[E]|_T]. | ||
853 | +[T,H|_T] > [[H|T]|_T]. | ||
854 | +[T,H|_T] > [[H|T]|_T]. | ||
855 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
856 | +_T > [lit(0,int)|_T]. | ||
857 | +[E|_T] > [[E]|_T]. | ||
858 | +[T,H|_T] > [[H|T]|_T]. | ||
859 | +[T,H|_T] > [[H|T]|_T]. | ||
860 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
861 | +_T > [id('X_INTRODUCED_35')|_T]. | ||
862 | +[E|_T] > [[E]|_T]. | ||
863 | +_T > [[]|_T]. | ||
864 | +[As, E|_T] > [[E|As]|_T]. | ||
865 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
866 | +[H,T|_T] > [[H|T]|_T]. | ||
867 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
868 | +_T > [id('X_INTRODUCED_7')|_T]. | ||
869 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
870 | +[E|_T] > [[E]|_T]. | ||
871 | +[T,H|_T] > [[H|T]|_T]. | ||
872 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
873 | +_T > [lit(0,int)|_T]. | ||
874 | +[E|_T] > [[E]|_T]. | ||
875 | +[T,H|_T] > [[H|T]|_T]. | ||
876 | +[T,H|_T] > [[H|T]|_T]. | ||
877 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
878 | +_T > [[]|_T]. | ||
879 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
880 | +[H,T|_T] > [[H|T]|_T]. | ||
881 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
882 | +_T > [id('X_INTRODUCED_7')|_T]. | ||
883 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
884 | +[E|_T] > [[E]|_T]. | ||
885 | +[T,H|_T] > [[H|T]|_T]. | ||
886 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
887 | +_T > [lit(0,int)|_T]. | ||
888 | +[E|_T] > [[E]|_T]. | ||
889 | +[T,H|_T] > [[H|T]|_T]. | ||
890 | +[T,H|_T] > [[H|T]|_T]. | ||
891 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
892 | +_T > [[]|_T]. | ||
893 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
894 | +[H,T|_T] > [[H|T]|_T]. | ||
895 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
896 | +_T > [id('X_INTRODUCED_7')|_T]. | ||
897 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
898 | +[E|_T] > [[E]|_T]. | ||
899 | +[T,H|_T] > [[H|T]|_T]. | ||
900 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
901 | +_T > [lit(0,int)|_T]. | ||
902 | +[E|_T] > [[E]|_T]. | ||
903 | +[T,H|_T] > [[H|T]|_T]. | ||
904 | +[T,H|_T] > [[H|T]|_T]. | ||
905 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
906 | +_T > [[]|_T]. | ||
907 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
908 | +[H,T|_T] > [[H|T]|_T]. | ||
909 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
910 | +_T > [id('X_INTRODUCED_7')|_T]. | ||
911 | +_T > [id('X_INTRODUCED_11')|_T]. | ||
912 | +[E|_T] > [[E]|_T]. | ||
913 | +[T,H|_T] > [[H|T]|_T]. | ||
914 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
915 | +_T > [lit(0,int)|_T]. | ||
916 | +[E|_T] > [[E]|_T]. | ||
917 | +[T,H|_T] > [[H|T]|_T]. | ||
918 | +[T,H|_T] > [[H|T]|_T]. | ||
919 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
920 | +_T > [[]|_T]. | ||
921 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
922 | +[H,T|_T] > [[H|T]|_T]. | ||
923 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
924 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
925 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
926 | +[E|_T] > [[E]|_T]. | ||
927 | +[T,H|_T] > [[H|T]|_T]. | ||
928 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
929 | +_T > [lit(0,int)|_T]. | ||
930 | +[E|_T] > [[E]|_T]. | ||
931 | +[T,H|_T] > [[H|T]|_T]. | ||
932 | +[T,H|_T] > [[H|T]|_T]. | ||
933 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
934 | +_T > [[]|_T]. | ||
935 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
936 | +[H,T|_T] > [[H|T]|_T]. | ||
937 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
938 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
939 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
940 | +[E|_T] > [[E]|_T]. | ||
941 | +[T,H|_T] > [[H|T]|_T]. | ||
942 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
943 | +_T > [lit(0,int)|_T]. | ||
944 | +[E|_T] > [[E]|_T]. | ||
945 | +[T,H|_T] > [[H|T]|_T]. | ||
946 | +[T,H|_T] > [[H|T]|_T]. | ||
947 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
948 | +_T > [[]|_T]. | ||
949 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
950 | +[H,T|_T] > [[H|T]|_T]. | ||
951 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
952 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
953 | +_T > [id('X_INTRODUCED_11')|_T]. | ||
954 | +[E|_T] > [[E]|_T]. | ||
955 | +[T,H|_T] > [[H|T]|_T]. | ||
956 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
957 | +_T > [lit(0,int)|_T]. | ||
958 | +[E|_T] > [[E]|_T]. | ||
959 | +[T,H|_T] > [[H|T]|_T]. | ||
960 | +[T,H|_T] > [[H|T]|_T]. | ||
961 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
962 | +_T > [[]|_T]. | ||
963 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
964 | +[H,T|_T] > [[H|T]|_T]. | ||
965 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
966 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
967 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
968 | +[E|_T] > [[E]|_T]. | ||
969 | +[T,H|_T] > [[H|T]|_T]. | ||
970 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
971 | +_T > [lit(0,int)|_T]. | ||
972 | +[E|_T] > [[E]|_T]. | ||
973 | +[T,H|_T] > [[H|T]|_T]. | ||
974 | +[T,H|_T] > [[H|T]|_T]. | ||
975 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
976 | +_T > [[]|_T]. | ||
977 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
978 | +[H,T|_T] > [[H|T]|_T]. | ||
979 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
980 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
981 | +_T > [id('X_INTRODUCED_11')|_T]. | ||
982 | +[E|_T] > [[E]|_T]. | ||
983 | +[T,H|_T] > [[H|T]|_T]. | ||
984 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
985 | +_T > [lit(0,int)|_T]. | ||
986 | +[E|_T] > [[E]|_T]. | ||
987 | +[T,H|_T] > [[H|T]|_T]. | ||
988 | +[T,H|_T] > [[H|T]|_T]. | ||
989 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
990 | +_T > [[]|_T]. | ||
991 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
992 | +[H,T|_T] > [[H|T]|_T]. | ||
993 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
994 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
995 | +_T > [id('X_INTRODUCED_11')|_T]. | ||
996 | +[E|_T] > [[E]|_T]. | ||
997 | +[T,H|_T] > [[H|T]|_T]. | ||
998 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
999 | +_T > [lit(0,int)|_T]. | ||
1000 | +[E|_T] > [[E]|_T]. | ||
1001 | +[T,H|_T] > [[H|T]|_T]. | ||
1002 | +[T,H|_T] > [[H|T]|_T]. | ||
1003 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
1004 | +_T > [[]|_T]. | ||
1005 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1006 | +[H,T|_T] > [[H|T]|_T]. | ||
1007 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
1008 | +_T > [id('X_INTRODUCED_14')|_T]. | ||
1009 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
1010 | +[E|_T] > [[E]|_T]. | ||
1011 | +[T,H|_T] > [[H|T]|_T]. | ||
1012 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1013 | +_T > [lit(0,int)|_T]. | ||
1014 | +[E|_T] > [[E]|_T]. | ||
1015 | +[T,H|_T] > [[H|T]|_T]. | ||
1016 | +[T,H|_T] > [[H|T]|_T]. | ||
1017 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
1018 | +_T > [[]|_T]. | ||
1019 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1020 | +[H,T|_T] > [[H|T]|_T]. | ||
1021 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
1022 | +_T > [id('X_INTRODUCED_14')|_T]. | ||
1023 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
1024 | +[E|_T] > [[E]|_T]. | ||
1025 | +[T,H|_T] > [[H|T]|_T]. | ||
1026 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1027 | +_T > [lit(0,int)|_T]. | ||
1028 | +[E|_T] > [[E]|_T]. | ||
1029 | +[T,H|_T] > [[H|T]|_T]. | ||
1030 | +[T,H|_T] > [[H|T]|_T]. | ||
1031 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
1032 | +_T > [[]|_T]. | ||
1033 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1034 | +[H,T|_T] > [[H|T]|_T]. | ||
1035 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
1036 | +_T > [id('X_INTRODUCED_14')|_T]. | ||
1037 | +_T > [id('X_INTRODUCED_17')|_T]. | ||
1038 | +[E|_T] > [[E]|_T]. | ||
1039 | +[T,H|_T] > [[H|T]|_T]. | ||
1040 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1041 | +_T > [lit(0,int)|_T]. | ||
1042 | +[E|_T] > [[E]|_T]. | ||
1043 | +[T,H|_T] > [[H|T]|_T]. | ||
1044 | +[T,H|_T] > [[H|T]|_T]. | ||
1045 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
1046 | +_T > [[]|_T]. | ||
1047 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1048 | +[H,T|_T] > [[H|T]|_T]. | ||
1049 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
1050 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
1051 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
1052 | +[E|_T] > [[E]|_T]. | ||
1053 | +[T,H|_T] > [[H|T]|_T]. | ||
1054 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1055 | +_T > [lit(0,int)|_T]. | ||
1056 | +[E|_T] > [[E]|_T]. | ||
1057 | +[T,H|_T] > [[H|T]|_T]. | ||
1058 | +[T,H|_T] > [[H|T]|_T]. | ||
1059 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
1060 | +_T > [[]|_T]. | ||
1061 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1062 | +[H,T|_T] > [[H|T]|_T]. | ||
1063 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
1064 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
1065 | +_T > [id('X_INTRODUCED_17')|_T]. | ||
1066 | +[E|_T] > [[E]|_T]. | ||
1067 | +[T,H|_T] > [[H|T]|_T]. | ||
1068 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1069 | +_T > [lit(0,int)|_T]. | ||
1070 | +[E|_T] > [[E]|_T]. | ||
1071 | +[T,H|_T] > [[H|T]|_T]. | ||
1072 | +[T,H|_T] > [[H|T]|_T]. | ||
1073 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
1074 | +_T > [[]|_T]. | ||
1075 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1076 | +[H,T|_T] > [[H|T]|_T]. | ||
1077 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
1078 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
1079 | +_T > [id('X_INTRODUCED_17')|_T]. | ||
1080 | +[E|_T] > [[E]|_T]. | ||
1081 | +[T,H|_T] > [[H|T]|_T]. | ||
1082 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1083 | +_T > [lit(0,int)|_T]. | ||
1084 | +[E|_T] > [[E]|_T]. | ||
1085 | +[T,H|_T] > [[H|T]|_T]. | ||
1086 | +[T,H|_T] > [[H|T]|_T]. | ||
1087 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
1088 | +_T > [[]|_T]. | ||
1089 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1090 | +[H,T|_T] > [[H|T]|_T]. | ||
1091 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
1092 | +_T > [id('X_INTRODUCED_21')|_T]. | ||
1093 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
1094 | +[E|_T] > [[E]|_T]. | ||
1095 | +[T,H|_T] > [[H|T]|_T]. | ||
1096 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1097 | +_T > [lit(0,int)|_T]. | ||
1098 | +[E|_T] > [[E]|_T]. | ||
1099 | +[T,H|_T] > [[H|T]|_T]. | ||
1100 | +[T,H|_T] > [[H|T]|_T]. | ||
1101 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
1102 | +_T > [[]|_T]. | ||
1103 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1104 | +[H,T|_T] > [[H|T]|_T]. | ||
1105 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
1106 | +_T > [id('X_INTRODUCED_21')|_T]. | ||
1107 | +_T > [id('X_INTRODUCED_23')|_T]. | ||
1108 | +[E|_T] > [[E]|_T]. | ||
1109 | +[T,H|_T] > [[H|T]|_T]. | ||
1110 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1111 | +_T > [lit(0,int)|_T]. | ||
1112 | +[E|_T] > [[E]|_T]. | ||
1113 | +[T,H|_T] > [[H|T]|_T]. | ||
1114 | +[T,H|_T] > [[H|T]|_T]. | ||
1115 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
1116 | +_T > [[]|_T]. | ||
1117 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1118 | +[H,T|_T] > [[H|T]|_T]. | ||
1119 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
1120 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
1121 | +_T > [id('X_INTRODUCED_23')|_T]. | ||
1122 | +[E|_T] > [[E]|_T]. | ||
1123 | +[T,H|_T] > [[H|T]|_T]. | ||
1124 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1125 | +_T > [lit(0,int)|_T]. | ||
1126 | +[E|_T] > [[E]|_T]. | ||
1127 | +[T,H|_T] > [[H|T]|_T]. | ||
1128 | +[T,H|_T] > [[H|T]|_T]. | ||
1129 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
1130 | +_T > [[]|_T]. | ||
1131 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1132 | +[H,T|_T] > [[H|T]|_T]. | ||
1133 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
1134 | +_T > [id('X_INTRODUCED_28')|_T]. | ||
1135 | +_T > [id('X_INTRODUCED_29')|_T]. | ||
1136 | +[E|_T] > [[E]|_T]. | ||
1137 | +[T,H|_T] > [[H|T]|_T]. | ||
1138 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1139 | +_T > [lit(0,int)|_T]. | ||
1140 | +[E|_T] > [[E]|_T]. | ||
1141 | +[T,H|_T] > [[H|T]|_T]. | ||
1142 | +[T,H|_T] > [[H|T]|_T]. | ||
1143 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_ne'|AL]. | ||
1144 | +_T > [[]|_T]. | ||
1145 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1146 | +[H,T|_T] > [[H|T]|_T]. | ||
1147 | +_T > [id('X_INTRODUCED_42')|_T]. | ||
1148 | +_T > [id('X_INTRODUCED_0')|_T]. | ||
1149 | +_T > [id('X_INTRODUCED_5')|_T]. | ||
1150 | +[E|_T] > [[E]|_T]. | ||
1151 | +[T,H|_T] > [[H|T]|_T]. | ||
1152 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1153 | +_T > [lit(-1,int)|_T]. | ||
1154 | +[E|_T] > [[E]|_T]. | ||
1155 | +[T,H|_T] > [[H|T]|_T]. | ||
1156 | +[T,H|_T] > [[H|T]|_T]. | ||
1157 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_le'|AL]. | ||
1158 | +_T > [[]|_T]. | ||
1159 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1160 | +[H,T|_T] > [[H|T]|_T]. | ||
1161 | +_T > [id('X_INTRODUCED_70')|_T]. | ||
1162 | +_T > [id('X_INTRODUCED_8')|_T]. | ||
1163 | +_T > [id('X_INTRODUCED_21')|_T]. | ||
1164 | +_T > [id('X_INTRODUCED_14')|_T]. | ||
1165 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
1166 | +[E|_T] > [[E]|_T]. | ||
1167 | +[T,H|_T] > [[H|T]|_T]. | ||
1168 | +[T,H|_T] > [[H|T]|_T]. | ||
1169 | +[T,H|_T] > [[H|T]|_T]. | ||
1170 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1171 | +_T > [lit(0,int)|_T]. | ||
1172 | +[E|_T] > [[E]|_T]. | ||
1173 | +[T,H|_T] > [[H|T]|_T]. | ||
1174 | +[T,H|_T] > [[H|T]|_T]. | ||
1175 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
1176 | +_T > [[]|_T]. | ||
1177 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1178 | +[H,T|_T] > [[H|T]|_T]. | ||
1179 | +_T > [id('X_INTRODUCED_70')|_T]. | ||
1180 | +_T > [id('X_INTRODUCED_9')|_T]. | ||
1181 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
1182 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
1183 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
1184 | +[E|_T] > [[E]|_T]. | ||
1185 | +[T,H|_T] > [[H|T]|_T]. | ||
1186 | +[T,H|_T] > [[H|T]|_T]. | ||
1187 | +[T,H|_T] > [[H|T]|_T]. | ||
1188 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1189 | +_T > [lit(0,int)|_T]. | ||
1190 | +[E|_T] > [[E]|_T]. | ||
1191 | +[T,H|_T] > [[H|T]|_T]. | ||
1192 | +[T,H|_T] > [[H|T]|_T]. | ||
1193 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
1194 | +_T > [[]|_T]. | ||
1195 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1196 | +[H,T|_T] > [[H|T]|_T]. | ||
1197 | +_T > [id('X_INTRODUCED_70')|_T]. | ||
1198 | +_T > [id('X_INTRODUCED_10')|_T]. | ||
1199 | +_T > [id('X_INTRODUCED_23')|_T]. | ||
1200 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
1201 | +_T > [id('X_INTRODUCED_17')|_T]. | ||
1202 | +[E|_T] > [[E]|_T]. | ||
1203 | +[T,H|_T] > [[H|T]|_T]. | ||
1204 | +[T,H|_T] > [[H|T]|_T]. | ||
1205 | +[T,H|_T] > [[H|T]|_T]. | ||
1206 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1207 | +_T > [lit(0,int)|_T]. | ||
1208 | +[E|_T] > [[E]|_T]. | ||
1209 | +[T,H|_T] > [[H|T]|_T]. | ||
1210 | +[T,H|_T] > [[H|T]|_T]. | ||
1211 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
1212 | +_T > [[]|_T]. | ||
1213 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1214 | +[H,T|_T] > [[H|T]|_T]. | ||
1215 | +_T > [id('X_INTRODUCED_70')|_T]. | ||
1216 | +_T > [id('X_INTRODUCED_15')|_T]. | ||
1217 | +_T > [id('X_INTRODUCED_28')|_T]. | ||
1218 | +_T > [id('X_INTRODUCED_21')|_T]. | ||
1219 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
1220 | +[E|_T] > [[E]|_T]. | ||
1221 | +[T,H|_T] > [[H|T]|_T]. | ||
1222 | +[T,H|_T] > [[H|T]|_T]. | ||
1223 | +[T,H|_T] > [[H|T]|_T]. | ||
1224 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1225 | +_T > [lit(0,int)|_T]. | ||
1226 | +[E|_T] > [[E]|_T]. | ||
1227 | +[T,H|_T] > [[H|T]|_T]. | ||
1228 | +[T,H|_T] > [[H|T]|_T]. | ||
1229 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
1230 | +_T > [[]|_T]. | ||
1231 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1232 | +[H,T|_T] > [[H|T]|_T]. | ||
1233 | +_T > [id('X_INTRODUCED_70')|_T]. | ||
1234 | +_T > [id('X_INTRODUCED_16')|_T]. | ||
1235 | +_T > [id('X_INTRODUCED_29')|_T]. | ||
1236 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
1237 | +_T > [id('X_INTRODUCED_23')|_T]. | ||
1238 | +[E|_T] > [[E]|_T]. | ||
1239 | +[T,H|_T] > [[H|T]|_T]. | ||
1240 | +[T,H|_T] > [[H|T]|_T]. | ||
1241 | +[T,H|_T] > [[H|T]|_T]. | ||
1242 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1243 | +_T > [lit(0,int)|_T]. | ||
1244 | +[E|_T] > [[E]|_T]. | ||
1245 | +[T,H|_T] > [[H|T]|_T]. | ||
1246 | +[T,H|_T] > [[H|T]|_T]. | ||
1247 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
1248 | +_T > [[]|_T]. | ||
1249 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1250 | +[H,T|_T] > [[H|T]|_T]. | ||
1251 | +_T > [id('X_INTRODUCED_70')|_T]. | ||
1252 | +_T > [id('X_INTRODUCED_22')|_T]. | ||
1253 | +_T > [id('X_INTRODUCED_35')|_T]. | ||
1254 | +_T > [id('X_INTRODUCED_28')|_T]. | ||
1255 | +_T > [id('X_INTRODUCED_29')|_T]. | ||
1256 | +[E|_T] > [[E]|_T]. | ||
1257 | +[T,H|_T] > [[H|T]|_T]. | ||
1258 | +[T,H|_T] > [[H|T]|_T]. | ||
1259 | +[T,H|_T] > [[H|T]|_T]. | ||
1260 | +[Es|_T] > [lit(Es,array(_))|_T]. | ||
1261 | +_T > [lit(0,int)|_T]. | ||
1262 | +[E|_T] > [[E]|_T]. | ||
1263 | +[T,H|_T] > [[H|T]|_T]. | ||
1264 | +[T,H|_T] > [[H|T]|_T]. | ||
1265 | +[AL|_T] > [C|_T] :- C =.. ['int_lin_eq'|AL]. | ||
1266 | +_T > [[]|_T]. | ||
1267 | +[A,C|_T] > [constraint(C,A)|_T]. | ||
1268 | +[H,T|_T] > [[H|T]|_T]. | ||
1269 | +[X|_T] > [constrs(X)|_T]. | ||
1270 | +_T > [id('costas')|_T]. | ||
1271 | +_T > [id('input_order')|_T]. | ||
1272 | +_T > [id('indomain_min')|_T]. | ||
1273 | +_T > [id('complete')|_T]. | ||
1274 | +[E|_T] > [[E]|_T]. | ||
1275 | +[T,H|_T] > [[H|T]|_T]. | ||
1276 | +[T,H|_T] > [[H|T]|_T]. | ||
1277 | +[T,H|_T] > [[H|T]|_T]. | ||
1278 | +_T > [[]|_T]. | ||
1279 | +[As, E|_T] > [[E|As]|_T]. | ||
1280 | +_T > [satisfy|_T]. | ||
1281 | +[S,A|_T] > [solve(S, A)|_T]. | ||
1282 | +[S,C,V,P|_T] > [fzn(P, V, C, S)|_T]. |
fzn-parser/fznslurp.pl
@@ -13,11 +13,16 @@ main([]). | @@ -13,11 +13,16 @@ main([]). | ||
13 | 13 | ||
14 | action(load(F)) :- !, see(F), action(load), seen. | 14 | action(load(F)) :- !, see(F), action(load), seen. |
15 | action(load) :- !, load_ast(AST), g_assign(ast, AST). | 15 | action(load) :- !, load_ast(AST), g_assign(ast, AST). |
16 | +action(dump(A)) :- !, dump_ast(A). | ||
16 | action(dump) :- !, g_read(ast, AST), dump_ast(AST). | 17 | action(dump) :- !, g_read(ast, AST), dump_ast(AST). |
17 | action(name) :- !, | 18 | action(name) :- !, |
18 | g_read(ast, AST), | 19 | g_read(ast, AST), |
19 | - sa_names(AST, NAST), | ||
20 | - g_assign(ast, NAST). | 20 | + sa_names(AST, NAST, ST), |
21 | + g_assign(ast_n, NAST+ST). | ||
22 | +action(type) :- !, | ||
23 | + g_read(ast_n, AST+ST), | ||
24 | + sa_types(AST, ST), | ||
25 | + g_assign(ast_t, AST+ST). | ||
21 | action(halt) :- !, halt. | 26 | action(halt) :- !, halt. |
22 | action(debug) :- g_read(ast_debug, true), !, g_assign(ast_debug, false). | 27 | action(debug) :- g_read(ast_debug, true), !, g_assign(ast_debug, false). |
23 | action(debug) :- !, g_assign(ast_debug, true). | 28 | action(debug) :- !, g_assign(ast_debug, true). |
fzn-parser/semantic.pl
1 | % == No, Emacs this is -*-Prolog-*- code, not what you thought... ============= | 1 | % == No, Emacs this is -*-Prolog-*- code, not what you thought... ============= |
2 | 2 | ||
3 | +% == NAMES ==================================================================== | ||
4 | + | ||
5 | +% -- sa_names(AST_IN, AST_OUT, ST) -------------------------------------------- | ||
6 | +% | ||
7 | +% sa_names/3: do name analysis (replace identifiers by their dict. entry) | ||
8 | + | ||
3 | sa_names(fzn(preds(IP), vars(IV), constrs(IC), SOLVE), | 9 | sa_names(fzn(preds(IP), vars(IV), constrs(IC), SOLVE), |
4 | - fzn(preds(OP), vars(OV), constrs(OC), SOLVE, ST)) :- | 10 | + fzn(preds(OP), vars(OV), constrs(OC), SOLVE), ST) :- |
5 | sa_n_traverse(IP, OP, ST), % predicates | 11 | sa_n_traverse(IP, OP, ST), % predicates |
6 | sa_n_traverse(IV, OV, ST), % variables | 12 | sa_n_traverse(IV, OV, ST), % variables |
7 | sa_n_traverse(IC, OC, ST). % constraints | 13 | sa_n_traverse(IC, OC, ST). % constraints |
@@ -17,14 +23,22 @@ sa_n_traverse([_|Ns], NNs, ST) :- !, % ignore failing nodes (beware!) | @@ -17,14 +23,22 @@ sa_n_traverse([_|Ns], NNs, ST) :- !, % ignore failing nodes (beware!) | ||
17 | 23 | ||
18 | sa_n_traverse(N, NN, ST) :- sa_n(N, NN, ST). % non-list case | 24 | sa_n_traverse(N, NN, ST) :- sa_n(N, NN, ST). % non-list case |
19 | 25 | ||
26 | + | ||
20 | % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 27 | % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
21 | % | 28 | % |
22 | % sa_n(AST_N_IN, AST_N_OUT, ST) | 29 | % sa_n(AST_N_IN, AST_N_OUT, ST) |
23 | % | 30 | % |
31 | +% arguments: | ||
32 | +% AST_N_IN - input AST node | ||
33 | +% AST_N_OUT - output AST node (same structure, rewritten) | ||
34 | +% ST - symbol table (gets extended) | ||
35 | +% | ||
24 | % handle all AST cases: | 36 | % handle all AST cases: |
25 | -% var(N,T,I,A) - variable declaration | ||
26 | -% lit(V,T) - literal with type | ||
27 | -% | 37 | +% var(N,T,I,A) - Name, Type, Initializer, Attrib -- variable declaration |
38 | +% lit(V,T) - Value, Type -- literal with type | ||
39 | +% id(N) - Name -- identifier | ||
40 | +% constraint(C,A) - Constraint, Attrib -- constraint | ||
41 | +% | ||
28 | 42 | ||
29 | sa_n(var(N,T,I,A), V, ST) :- | 43 | sa_n(var(N,T,I,A), V, ST) :- |
30 | sa_attribs(A, AX, ST), | 44 | sa_attribs(A, AX, ST), |
@@ -32,18 +46,58 @@ sa_n(var(N,T,I,A), V, ST) :- | @@ -32,18 +46,58 @@ sa_n(var(N,T,I,A), V, ST) :- | ||
32 | V=var(N,T,NI,AX), % new AST node becomes ST entry value | 46 | V=var(N,T,NI,AX), % new AST node becomes ST entry value |
33 | st_insert(ST, N, V). | 47 | st_insert(ST, N, V). |
34 | 48 | ||
49 | + | ||
35 | sa_n(lit(E,array(T)), lit(NE, array(T)), ST) :- | 50 | sa_n(lit(E,array(T)), lit(NE, array(T)), ST) :- |
36 | sa_n_traverse(E, NE, ST). | 51 | sa_n_traverse(E, NE, ST). |
37 | sa_n(lit(E,int), lit(E,int), _ST). | 52 | sa_n(lit(E,int), lit(E,int), _ST). |
38 | sa_n(lit(E,float), lit(E,float), _ST). | 53 | sa_n(lit(E,float), lit(E,float), _ST). |
39 | sa_n(lit(E,string), lit(E,string), _ST). | 54 | sa_n(lit(E,string), lit(E,string), _ST). |
40 | 55 | ||
56 | + | ||
41 | sa_n(id(N), V, ST) :- st_lookup(ST, N, V), !. | 57 | sa_n(id(N), V, ST) :- st_lookup(ST, N, V), !. |
42 | -sa_n(id(N), V, ST) :- V=id(N,_), % type as yet unknown | 58 | +sa_n(id(N), V, ST) :- V=var(N,_,_,_), % type as yet unknown |
43 | st_insert(ST, N, V). | 59 | st_insert(ST, N, V). |
44 | 60 | ||
61 | + | ||
62 | +sa_n(constraint(CE, AT), constraint(NCE, AT), ST) :- | ||
63 | + CE=..[C|AS], | ||
64 | + sa_n_traverse(AS, NAS, ST), | ||
65 | + NCE=..[C|NAS]. | ||
66 | + | ||
45 | % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 67 | % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
46 | 68 | ||
69 | +% == TYPES ==================================================================== | ||
70 | + | ||
71 | +% -- sa_types(AST, ST) -------------------------------------------------------- | ||
72 | +% | ||
73 | +% sa_types/2: do type analysis (traverse AST enforcing type correctness). | ||
74 | +% as a side-effect, it will do type inference. | ||
75 | + | ||
76 | +sa_types(fzn(_PS, vars(VS), constrs(CS), _S), ST) :- | ||
77 | + sa_t_traverse(VS, ST), | ||
78 | + sa_t_traverse(CS, ST). | ||
79 | + | ||
80 | +% ----------------------------------------------------------------------------- | ||
81 | + | ||
82 | +sa_t_traverse([], _ST) :- !. | ||
83 | +sa_t_traverse([N|Ns], ST) :- | ||
84 | + sa_t(N, ST), !, | ||
85 | + sa_t_traverse(Ns, ST). | ||
86 | +sa_t_traverse([_|Ns], ST) :- !, % ignore failing nodes (beware!) | ||
87 | + sa_t_traverse(Ns, ST). | ||
88 | + | ||
89 | +sa_t_traverse(N, ST) :- sa_t(N, ST). % non-list case | ||
90 | + | ||
91 | +% -- sa_t(NODE, ST) ----------------------------------------------------------- | ||
92 | + | ||
93 | +sa_t(var(_N,T,I,_A), _ST) :- type(I,T). | ||
94 | +sa_t(lit(E,T), _ST) :- type(lit(E,T), T). | ||
95 | +sa_t(constraint(CE, _AT), ST) :- | ||
96 | + CE=..[_|AS], | ||
97 | + sa_t_traverse(AS, ST). | ||
98 | + | ||
99 | +% ============================================================================= | ||
100 | + | ||
47 | sa_attribs([A|As], [NA|NAs], ST) :- | 101 | sa_attribs([A|As], [NA|NAs], ST) :- |
48 | sa_attrib(A, NA, ST), !, | 102 | sa_attrib(A, NA, ST), !, |
49 | sa_attribs(As, NAs, ST). | 103 | sa_attribs(As, NAs, ST). |
@@ -55,3 +109,4 @@ sa_attribs([], [], _). | @@ -55,3 +109,4 @@ sa_attribs([], [], _). | ||
55 | sa_attrib(id(output_var), output, _). | 109 | sa_attrib(id(output_var), output, _). |
56 | 110 | ||
57 | % ----------------------------------------------------------------------------- | 111 | % ----------------------------------------------------------------------------- |
112 | + |
fzn-parser/types.pl
1 | % == No, Emacs this is -*-Prolog-*- code, not what you thought... ============= | 1 | % == No, Emacs this is -*-Prolog-*- code, not what you thought... ============= |
2 | 2 | ||
3 | -% sa_type/2 - locate the TYPE field | 3 | +% -- type(NODE, TYPE) --------------------------------------------------------- |
4 | +% | ||
5 | +% type/2: Extract type from AST node. | ||
4 | 6 | ||
5 | -sa_type(var(_NAME,TYPE,_INIT,_ANNOT), TYPE). | ||
6 | -sa_type(constraint(_NAME)). | 7 | +type(var(_,T,_,_), T) :- type(T). |
8 | +type(lit(_,T), T) :- type(T). | ||
9 | +type(id(_,T), T) :- type(T). | ||
10 | + | ||
11 | +type(lit(E,array(T)), array(T)) :- type(E, T). | ||
12 | +type(lit(_,T), T) :- type(T). | ||
13 | + | ||
14 | +type([], _). | ||
15 | +type([E|Es], T) :- type(E, T), type(Es, T). | ||
16 | + | ||
17 | +% -- type(TYPE) --------------------------------------------------------------- | ||
18 | +% | ||
19 | +% type/1: generate or test valid types. | ||
20 | + | ||
21 | +type(int). % integer | ||
22 | +type(int(_L,_U)). % integer interval | ||
23 | +type(float). % floating point | ||
24 | +type(float(_L,_U)). % floating point interval | ||
25 | +type(string). % string | ||
26 | +type(array(T,1,_U)) :- type(T). % array of type |