Mercurial > ~dholland > hg > ag > index.cgi
comparison tests/agcl/oldagsrc/good/xvmc.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 XVMC.SYN | |
3 | |
4 Extensible Scripting Language | |
5 Copyright (c) 1998 Parsifal Software, All Rights Reserved. | |
6 | |
7 The expression syntax is borrowed from C but with the | |
8 addition of the FORTRAN exponentiation operator (**). | |
9 | |
10 The supported operations are: | |
11 Assignment operators: =, +=, -=, *=, /=, %=, , &=, |=, ^=>>=, <<= | |
12 Conditional expressions: ? : | |
13 Logical operators: !, &&, || | |
14 Bitwise logical operators: &, |, ^, ~ | |
15 Comparison operators: ==, !=, <, <=, >, >= | |
16 Shift operators: <<, >> | |
17 Binary arithmetic operators: +, -, *, /, % | |
18 Unary arithmetic operators: +, - | |
19 Exponentiation: ** | |
20 Autoincrement operators: ++, --; | |
21 Cast operators (<type name>) | |
22 Parentheses | |
23 Function calls | |
24 Object method calls | |
25 | |
26 Built in data types are int, double and String. | |
27 | |
28 Statements may include variable declarations, expression statements, | |
29 blocks, if/else statements, while , do/while, or for statements, | |
30 following the rules of C. | |
31 | |
32 The statement syntax has been written to avoid the conventional | |
33 if/else ambiguity. | |
34 | |
35 Input strings may contain any number of statements. White space may be | |
36 used freely, including both C and C++ style comments. | |
37 | |
38 xvmc.syn is compiled with the AnaGram parser generator | |
39 yielding xvm.h and xvm.cpp. | |
40 | |
41 For information about AnaGram, visit http://www.parsifalsoft.com. | |
42 */ | |
43 | |
44 #include <math.h> | |
45 #include "xvm.h" // defines external interface | |
46 #include "integer.h" | |
47 #include "double.h" | |
48 #include "xstring.h" | |
49 | |
50 static VirtualMachine *vm; | |
51 | |
52 typedef VirtualMachine::CodeSeg Code; // For the sake of readability | |
53 | |
54 | |
55 /* | |
56 * AnaGram, A System for Syntax Directed Programming | |
57 * File generated by: ... | |
58 * | |
59 * AnaGram Parsing Engine | |
60 * Copyright 1993-2002 Parsifal Software. All Rights Reserved. | |
61 * | |
62 * This software is provided 'as-is', without any express or implied | |
63 * warranty. In no event will the authors be held liable for any damages | |
64 * arising from the use of this software. | |
65 * | |
66 * Permission is granted to anyone to use this software for any purpose, | |
67 * including commercial applications, and to alter it and redistribute it | |
68 * freely, subject to the following restrictions: | |
69 * | |
70 * 1. The origin of this software must not be misrepresented; you must not | |
71 * claim that you wrote the original software. If you use this software | |
72 * in a product, an acknowledgment in the product documentation would be | |
73 * appreciated but is not required. | |
74 * 2. Altered source versions must be plainly marked as such, and must not be | |
75 * misrepresented as being the original software. | |
76 * 3. This notice may not be removed or altered from any source distribution. | |
77 */ | |
78 | |
79 #ifndef XVMC_H | |
80 #include "xvmc.h" | |
81 #endif | |
82 | |
83 #ifndef XVMC_H | |
84 #error Mismatched header file | |
85 #endif | |
86 | |
87 #include <ctype.h> | |
88 #include <stdio.h> | |
89 | |
90 #define RULE_CONTEXT (&((PCB).cs[(PCB).ssx])) | |
91 #define ERROR_CONTEXT ((PCB).cs[(PCB).error_frame_ssx]) | |
92 #define CONTEXT ((PCB).cs[(PCB).ssx]) | |
93 | |
94 | |
95 | |
96 vmCompile_pcb_type vmCompile_pcb; | |
97 #define PCB vmCompile_pcb | |
98 #define CHANGE_REDUCTION(x) vmCompile_change_reduction(vmCompile_##x##_token) | |
99 int vmCompile_change_reduction(vmCompile_token_type); | |
100 | |
101 | |
102 Code vmCompile_value(void); | |
103 | |
104 | |
105 #line - "xvmc.syn" | |
106 // begin embedded C | |
107 | |
108 #include <string.h> | |
109 | |
110 | |
111 ErrorRecord::ErrorRecord(char *msg) : message(msg), line(PCB.line), column(PCB.column) | |
112 {/* Initializers do it all */} | |
113 | |
114 ErrorLog errorLog; | |
115 | |
116 #define SYNTAX_ERROR errorLog.add(PCB.error_message) | |
117 | |
118 int VirtualMachine::compile(char *text) { | |
119 vm = this; | |
120 resetCharStack(); | |
121 vmCompile_pcb.pointer = (unsigned char *) text; | |
122 vmCompile(); | |
123 { | |
124 Code program = vmCompile_value() << EXIT; | |
125 int n = program.size(); | |
126 codeStore = new int[n]; | |
127 while (n--) codeStore[n] = program[n]; | |
128 } | |
129 | |
130 return vmCompile_pcb.exit_flag != AG_SUCCESS_CODE; | |
131 } | |
132 | |
133 Code VirtualMachine::codeWhile(Code x, Code s) { | |
134 Code branch(VirtualMachine::BR); | |
135 branch << 0; | |
136 //if (!x.type->isTruthDefined()) errorLog.add("True/False not defined"); | |
137 x << VirtualMachine::BRF << (s.size() + branch.size()); | |
138 int blockLength = s.size() + x.size() + branch.size(); | |
139 x << s << VirtualMachine::BR << -blockLength; | |
140 return x; | |
141 } | |
142 | |
143 Code VirtualMachine::codeDoWhile(Code s, Code x) { | |
144 Code branch(VirtualMachine::BR); | |
145 branch << 0; | |
146 int blockLength = s.size() + x.size() + branch.size(); | |
147 //if (!x.type->isTruthDefined()) errorLog.add("True/False not defined"); | |
148 s << x << VirtualMachine::BRT << -blockLength; | |
149 return s; | |
150 } | |
151 | |
152 Code VirtualMachine::codeFor(Code init, Code cond, Code inc, Code s) { | |
153 s << inc; // append increment code to end of body of for loop | |
154 //if (!cond.type->isTruthDefined()) errorLog.add("True/False not defined"); | |
155 init << codeWhile(cond, s); | |
156 return init; | |
157 } | |
158 | |
159 #line - "xvmc.cpp" | |
160 | |
161 #ifndef CONVERT_CASE | |
162 #define CONVERT_CASE(c) (c) | |
163 #endif | |
164 #ifndef TAB_SPACING | |
165 #define TAB_SPACING 8 | |
166 #endif | |
167 Code vmCompile_value(void) { | |
168 Code returnValue; | |
169 returnValue = (*(Code *) &(PCB).vs[(PCB).ssx]); | |
170 return returnValue; | |
171 } | |
172 | |
173 static Code ag_rp_1(void) { | |
174 #line - "xvmc.syn" | |
175 return Code(); | |
176 #line - "xvmc.cpp" | |
177 } | |
178 | |
179 static Code ag_rp_2(Code x) { | |
180 #line - "xvmc.syn" | |
181 return x; | |
182 #line - "xvmc.cpp" | |
183 } | |
184 | |
185 static Code ag_rp_3(Code x) { | |
186 #line - "xvmc.syn" | |
187 return x; | |
188 #line - "xvmc.cpp" | |
189 } | |
190 | |
191 static Code ag_rp_4(void) { | |
192 #line - "xvmc.syn" | |
193 return errorLog.add("Continuing scan"), Code(); | |
194 #line - "xvmc.cpp" | |
195 } | |
196 | |
197 static Code ag_rp_5(int t, int n) { | |
198 #line - "xvmc.syn" | |
199 return vm->declareVariable(t,n), Code(); | |
200 #line - "xvmc.cpp" | |
201 } | |
202 | |
203 static Code ag_rp_6(int t, int n, Code x) { | |
204 #line - "xvmc.syn" | |
205 int name = vm->declareVariable(t,n); | |
206 return Code(VirtualMachine::PUSHV) << name << x << VirtualMachine::ASSIGN << VirtualMachine::POP; | |
207 | |
208 #line - "xvmc.cpp" | |
209 } | |
210 | |
211 static Code ag_rp_7(int t, int n, Code size) { | |
212 #line - "xvmc.syn" | |
213 return vm->declareArray(t,n, size); | |
214 #line - "xvmc.cpp" | |
215 } | |
216 | |
217 static Code ag_rp_8(int t, int n, Code args) { | |
218 #line - "xvmc.syn" | |
219 return vm->declareObject(t,n,args); | |
220 #line - "xvmc.cpp" | |
221 } | |
222 | |
223 static Code ag_rp_9(void) { | |
224 #line - "xvmc.syn" | |
225 return Code(); | |
226 #line - "xvmc.cpp" | |
227 } | |
228 | |
229 static Code ag_rp_10(Code x) { | |
230 #line - "xvmc.syn" | |
231 return x; | |
232 #line - "xvmc.cpp" | |
233 } | |
234 | |
235 static Code ag_rp_11(Code x) { | |
236 #line - "xvmc.syn" | |
237 return x.initList(); | |
238 #line - "xvmc.cpp" | |
239 } | |
240 | |
241 static Code ag_rp_12(Code list, Code x) { | |
242 #line - "xvmc.syn" | |
243 return list.append(x); | |
244 #line - "xvmc.cpp" | |
245 } | |
246 | |
247 static Code ag_rp_13(Code x) { | |
248 #line - "xvmc.syn" | |
249 return x; | |
250 #line - "xvmc.cpp" | |
251 } | |
252 | |
253 static Code ag_rp_14(Code x, Code s) { | |
254 #line - "xvmc.syn" | |
255 return x << s; | |
256 #line - "xvmc.cpp" | |
257 } | |
258 | |
259 static Code ag_rp_15(Code x) { | |
260 #line - "xvmc.syn" | |
261 return x << VirtualMachine::POP; | |
262 #line - "xvmc.cpp" | |
263 } | |
264 | |
265 static Code ag_rp_16(void) { | |
266 #line - "xvmc.syn" | |
267 return Code(); | |
268 #line - "xvmc.cpp" | |
269 } | |
270 | |
271 static Code ag_rp_17(void) { | |
272 #line - "xvmc.syn" | |
273 return Code(); | |
274 #line - "xvmc.cpp" | |
275 } | |
276 | |
277 static Code ag_rp_18(Code s) { | |
278 #line - "xvmc.syn" | |
279 return s; | |
280 #line - "xvmc.cpp" | |
281 } | |
282 | |
283 static Code ag_rp_19(Code s) { | |
284 #line - "xvmc.syn" | |
285 return errorLog.add("Continuing scan"), s; | |
286 #line - "xvmc.cpp" | |
287 } | |
288 | |
289 static Code ag_rp_20(Code s, Code x) { | |
290 #line - "xvmc.syn" | |
291 return vm->codeDoWhile(s,x); | |
292 #line - "xvmc.cpp" | |
293 } | |
294 | |
295 static Code ag_rp_21(Code x, Code s) { | |
296 #line - "xvmc.syn" | |
297 return vm->codeWhile(x,s); | |
298 #line - "xvmc.cpp" | |
299 } | |
300 | |
301 static Code ag_rp_22(Code init, Code cond, Code inc, Code s) { | |
302 #line - "xvmc.syn" | |
303 return vm->codeFor(init, cond, inc, s); | |
304 #line - "xvmc.cpp" | |
305 } | |
306 | |
307 static Code ag_rp_23(void) { | |
308 #line - "xvmc.syn" | |
309 return Code(); | |
310 #line - "xvmc.cpp" | |
311 } | |
312 | |
313 static Code ag_rp_24(Code x) { | |
314 #line - "xvmc.syn" | |
315 return x << VirtualMachine::POP; | |
316 #line - "xvmc.cpp" | |
317 } | |
318 | |
319 static Code ag_rp_25(Code list, Code x) { | |
320 #line - "xvmc.syn" | |
321 return list << x << VirtualMachine::POP; | |
322 #line - "xvmc.cpp" | |
323 } | |
324 | |
325 static Code ag_rp_26(Code x) { | |
326 #line - "xvmc.syn" | |
327 return x; | |
328 #line - "xvmc.cpp" | |
329 } | |
330 | |
331 static Code ag_rp_27(Code x, Code s) { | |
332 #line - "xvmc.syn" | |
333 return vm->codeWhile(x,s); | |
334 #line - "xvmc.cpp" | |
335 } | |
336 | |
337 static Code ag_rp_28(Code init, Code cond, Code inc, Code s) { | |
338 #line - "xvmc.syn" | |
339 return vm->codeFor(init, cond, inc, s); | |
340 #line - "xvmc.cpp" | |
341 } | |
342 | |
343 static Code ag_rp_29(Code x, Code s) { | |
344 #line - "xvmc.syn" | |
345 return x << VirtualMachine::BRF << s.size() << s; | |
346 #line - "xvmc.cpp" | |
347 } | |
348 | |
349 static Code ag_rp_30(Code x, Code s1, Code s2) { | |
350 #line - "xvmc.syn" | |
351 s1 << VirtualMachine::BR << s2.size(); | |
352 x << VirtualMachine::BRF << s1.size() << s1 << s2; | |
353 return x; | |
354 | |
355 #line - "xvmc.cpp" | |
356 } | |
357 | |
358 static Code ag_rp_31(Code x) { | |
359 #line - "xvmc.syn" | |
360 return x; | |
361 #line - "xvmc.cpp" | |
362 } | |
363 | |
364 static Code ag_rp_32(Code x) { | |
365 #line - "xvmc.syn" | |
366 return x.testOK(); | |
367 #line - "xvmc.cpp" | |
368 } | |
369 | |
370 static Code ag_rp_33(Code k, Code x) { | |
371 #line - "xvmc.syn" | |
372 return k << x << VirtualMachine::ASSIGN; | |
373 #line - "xvmc.cpp" | |
374 } | |
375 | |
376 static Code ag_rp_34(Code k, Code x) { | |
377 #line - "xvmc.syn" | |
378 return k << x << VirtualMachine::ADD_EQ; | |
379 #line - "xvmc.cpp" | |
380 } | |
381 | |
382 static Code ag_rp_35(Code k, Code x) { | |
383 #line - "xvmc.syn" | |
384 return k << x << VirtualMachine::SUB_EQ; | |
385 #line - "xvmc.cpp" | |
386 } | |
387 | |
388 static Code ag_rp_36(Code k, Code x) { | |
389 #line - "xvmc.syn" | |
390 return k << x << VirtualMachine::MULT_EQ; | |
391 #line - "xvmc.cpp" | |
392 } | |
393 | |
394 static Code ag_rp_37(Code k, Code x) { | |
395 #line - "xvmc.syn" | |
396 return k << x << VirtualMachine::DIV_EQ; | |
397 #line - "xvmc.cpp" | |
398 } | |
399 | |
400 static Code ag_rp_38(Code k, Code x) { | |
401 #line - "xvmc.syn" | |
402 return k << x << VirtualMachine::MOD_EQ; | |
403 #line - "xvmc.cpp" | |
404 } | |
405 | |
406 static Code ag_rp_39(Code k, Code x) { | |
407 #line - "xvmc.syn" | |
408 return k << x << VirtualMachine::OR_EQ; | |
409 #line - "xvmc.cpp" | |
410 } | |
411 | |
412 static Code ag_rp_40(Code k, Code x) { | |
413 #line - "xvmc.syn" | |
414 return k << x << VirtualMachine::AND_EQ; | |
415 #line - "xvmc.cpp" | |
416 } | |
417 | |
418 static Code ag_rp_41(Code k, Code x) { | |
419 #line - "xvmc.syn" | |
420 return k << x << VirtualMachine::XOR_EQ; | |
421 #line - "xvmc.cpp" | |
422 } | |
423 | |
424 static Code ag_rp_42(Code k, Code x) { | |
425 #line - "xvmc.syn" | |
426 return k << x << VirtualMachine::LS_EQ; | |
427 #line - "xvmc.cpp" | |
428 } | |
429 | |
430 static Code ag_rp_43(Code k, Code x) { | |
431 #line - "xvmc.syn" | |
432 return k << x << VirtualMachine::RS_EQ; | |
433 #line - "xvmc.cpp" | |
434 } | |
435 | |
436 static Code ag_rp_44(int k) { | |
437 #line - "xvmc.syn" | |
438 return Code(VirtualMachine::PUSHV).setType(vm->symbolTable[k].type) << k; | |
439 #line - "xvmc.cpp" | |
440 } | |
441 | |
442 static Code ag_rp_45(Code k, Code x) { | |
443 #line - "xvmc.syn" | |
444 return k.setType(k.type->element) << x << VirtualMachine::SUBSCRIPT; | |
445 #line - "xvmc.cpp" | |
446 } | |
447 | |
448 static Code ag_rp_46(Code c, Code x, Code y) { | |
449 #line - "xvmc.syn" | |
450 //if (!c.type->isTruthDefined()) errorLog.add("True/False not defined"); | |
451 x << VirtualMachine::BR << y.size(); | |
452 c << VirtualMachine::BRF << x.size() << x << y; | |
453 return c; | |
454 | |
455 #line - "xvmc.cpp" | |
456 } | |
457 | |
458 static Code ag_rp_47(Code x) { | |
459 #line - "xvmc.syn" | |
460 return x.testOK(); | |
461 #line - "xvmc.cpp" | |
462 } | |
463 | |
464 static Code ag_rp_48(Code x, Code y) { | |
465 #line - "xvmc.syn" | |
466 //if (!x.type->isTruthDefined()) errorLog.add("True/False not defined"); | |
467 return x << VirtualMachine::OR << y.size() << y; | |
468 | |
469 #line - "xvmc.cpp" | |
470 } | |
471 | |
472 static Code ag_rp_49(Code x, Code y) { | |
473 #line - "xvmc.syn" | |
474 //if (!x.type->isTruthDefined()) errorLog.add("True/False not defined"); | |
475 return x << VirtualMachine::AND << y.size() << y; | |
476 | |
477 #line - "xvmc.cpp" | |
478 } | |
479 | |
480 static Code ag_rp_50(Code x) { | |
481 #line - "xvmc.syn" | |
482 return x.testOK(); | |
483 #line - "xvmc.cpp" | |
484 } | |
485 | |
486 static Code ag_rp_51(Code x, Code y) { | |
487 #line - "xvmc.syn" | |
488 return x.binop(VirtualMachine::BITOR,y); | |
489 #line - "xvmc.cpp" | |
490 } | |
491 | |
492 static Code ag_rp_52(Code x, Code y) { | |
493 #line - "xvmc.syn" | |
494 return x.binop(VirtualMachine::XOR,y); | |
495 #line - "xvmc.cpp" | |
496 } | |
497 | |
498 static Code ag_rp_53(Code x, Code y) { | |
499 #line - "xvmc.syn" | |
500 return x.binop(VirtualMachine::BITAND,y); | |
501 #line - "xvmc.cpp" | |
502 } | |
503 | |
504 static Code ag_rp_54(Code x, Code y) { | |
505 #line - "xvmc.syn" | |
506 return x.binop(VirtualMachine::EQ,y); | |
507 #line - "xvmc.cpp" | |
508 } | |
509 | |
510 static Code ag_rp_55(Code x, Code y) { | |
511 #line - "xvmc.syn" | |
512 return x.binop(VirtualMachine::NE,y); | |
513 #line - "xvmc.cpp" | |
514 } | |
515 | |
516 static Code ag_rp_56(Code x, Code y) { | |
517 #line - "xvmc.syn" | |
518 return x.binop(VirtualMachine::LT,y); | |
519 #line - "xvmc.cpp" | |
520 } | |
521 | |
522 static Code ag_rp_57(Code x, Code y) { | |
523 #line - "xvmc.syn" | |
524 return x.binop(VirtualMachine::LE,y); | |
525 #line - "xvmc.cpp" | |
526 } | |
527 | |
528 static Code ag_rp_58(Code x, Code y) { | |
529 #line - "xvmc.syn" | |
530 return x.binop(VirtualMachine::GT,y); | |
531 #line - "xvmc.cpp" | |
532 } | |
533 | |
534 static Code ag_rp_59(Code x, Code y) { | |
535 #line - "xvmc.syn" | |
536 return x.binop(VirtualMachine::GE,y); | |
537 #line - "xvmc.cpp" | |
538 } | |
539 | |
540 static Code ag_rp_60(Code x, Code y) { | |
541 #line - "xvmc.syn" | |
542 return x.binop(VirtualMachine::LS,y); | |
543 #line - "xvmc.cpp" | |
544 } | |
545 | |
546 static Code ag_rp_61(Code x, Code y) { | |
547 #line - "xvmc.syn" | |
548 return x.binop(VirtualMachine::RS,y); | |
549 #line - "xvmc.cpp" | |
550 } | |
551 | |
552 static Code ag_rp_62(Code x, Code y) { | |
553 #line - "xvmc.syn" | |
554 return x.binop(VirtualMachine::ADD,y); | |
555 #line - "xvmc.cpp" | |
556 } | |
557 | |
558 static Code ag_rp_63(Code x, Code y) { | |
559 #line - "xvmc.syn" | |
560 return x.binop(VirtualMachine::SUB,y); | |
561 #line - "xvmc.cpp" | |
562 } | |
563 | |
564 static Code ag_rp_64(Code x, Code y) { | |
565 #line - "xvmc.syn" | |
566 return x.binop(VirtualMachine::MULT,y); | |
567 #line - "xvmc.cpp" | |
568 } | |
569 | |
570 static Code ag_rp_65(Code x, Code y) { | |
571 #line - "xvmc.syn" | |
572 return x.binop(VirtualMachine::DIV,y); | |
573 #line - "xvmc.cpp" | |
574 } | |
575 | |
576 static Code ag_rp_66(Code x, Code y) { | |
577 #line - "xvmc.syn" | |
578 return x.binop(VirtualMachine::MOD,y); | |
579 #line - "xvmc.cpp" | |
580 } | |
581 | |
582 static Code ag_rp_67(int t, Code x) { | |
583 #line - "xvmc.syn" | |
584 return x.cast((VirtualMachine::Type::Id) t) << VirtualMachine::CAST << t; | |
585 #line - "xvmc.cpp" | |
586 } | |
587 | |
588 static Code ag_rp_68(Code x) { | |
589 #line - "xvmc.syn" | |
590 return x << VirtualMachine::INCR; | |
591 #line - "xvmc.cpp" | |
592 } | |
593 | |
594 static Code ag_rp_69(Code x) { | |
595 #line - "xvmc.syn" | |
596 return x << VirtualMachine::INCR; | |
597 #line - "xvmc.cpp" | |
598 } | |
599 | |
600 static Code ag_rp_70(Code x) { | |
601 #line - "xvmc.syn" | |
602 return x << VirtualMachine::NEG; | |
603 #line - "xvmc.cpp" | |
604 } | |
605 | |
606 static Code ag_rp_71(Code x) { | |
607 #line - "xvmc.syn" | |
608 return x; | |
609 #line - "xvmc.cpp" | |
610 } | |
611 | |
612 static Code ag_rp_72(Code x) { | |
613 #line - "xvmc.syn" | |
614 return vm->list(stdout), x << VirtualMachine::NOT; | |
615 #line - "xvmc.cpp" | |
616 } | |
617 | |
618 static Code ag_rp_73(Code x) { | |
619 #line - "xvmc.syn" | |
620 return x << VirtualMachine::COMPL; | |
621 #line - "xvmc.cpp" | |
622 } | |
623 | |
624 static Code ag_rp_74(Code x, Code y) { | |
625 #line - "xvmc.syn" | |
626 return x.binop(VirtualMachine::POW,y); | |
627 #line - "xvmc.cpp" | |
628 } | |
629 | |
630 static Code ag_rp_75(double x) { | |
631 #line - "xvmc.syn" | |
632 return vm->doubleList.push(x), Code(VirtualMachine::PUSHD).setType(&DoubleType::doubleType) << (int)(vm->doubleList.size() - 1); | |
633 #line - "xvmc.cpp" | |
634 } | |
635 | |
636 static Code ag_rp_76(int x) { | |
637 #line - "xvmc.syn" | |
638 return Code(VirtualMachine::PUSHI).setType(&IntegerType::intType) << x; | |
639 #line - "xvmc.cpp" | |
640 } | |
641 | |
642 static Code ag_rp_77(int k) { | |
643 #line - "xvmc.syn" | |
644 return Code(VirtualMachine::PUSHS).setType(&StringType::stringType) << k; | |
645 #line - "xvmc.cpp" | |
646 } | |
647 | |
648 static Code ag_rp_78(Code k) { | |
649 #line - "xvmc.syn" | |
650 return k; | |
651 #line - "xvmc.cpp" | |
652 } | |
653 | |
654 static Code ag_rp_79(Code k) { | |
655 #line - "xvmc.syn" | |
656 return k << VirtualMachine::PUSH << VirtualMachine::INCR << VirtualMachine::POP; | |
657 #line - "xvmc.cpp" | |
658 } | |
659 | |
660 static Code ag_rp_80(Code k) { | |
661 #line - "xvmc.syn" | |
662 return k << VirtualMachine::PUSH << VirtualMachine::DECR << VirtualMachine::POP; | |
663 #line - "xvmc.cpp" | |
664 } | |
665 | |
666 static Code ag_rp_81(int n, Code args) { | |
667 #line - "xvmc.syn" | |
668 return vm->invokeFunction(n, args); | |
669 #line - "xvmc.cpp" | |
670 } | |
671 | |
672 static Code ag_rp_82(Code k, int n, Code args) { | |
673 #line - "xvmc.syn" | |
674 return vm->invokeMethod(k, n, args); | |
675 #line - "xvmc.cpp" | |
676 } | |
677 | |
678 static Code ag_rp_83(Code x) { | |
679 #line - "xvmc.syn" | |
680 return x; | |
681 #line - "xvmc.cpp" | |
682 } | |
683 | |
684 static double ag_rp_84(double x, int e) { | |
685 #line - "xvmc.syn" | |
686 return x*pow(10,e); | |
687 #line - "xvmc.cpp" | |
688 } | |
689 | |
690 static double ag_rp_85(double x, int e) { | |
691 #line - "xvmc.syn" | |
692 return x*pow(10,-e); | |
693 #line - "xvmc.cpp" | |
694 } | |
695 | |
696 static double ag_rp_86(int i, double f) { | |
697 #line - "xvmc.syn" | |
698 return i+f; | |
699 #line - "xvmc.cpp" | |
700 } | |
701 | |
702 static double ag_rp_87(int i) { | |
703 #line - "xvmc.syn" | |
704 return i; | |
705 #line - "xvmc.cpp" | |
706 } | |
707 | |
708 static double ag_rp_88(double f) { | |
709 #line - "xvmc.syn" | |
710 return f; | |
711 #line - "xvmc.cpp" | |
712 } | |
713 | |
714 static int ag_rp_89(int d) { | |
715 #line - "xvmc.syn" | |
716 return d-'0'; | |
717 #line - "xvmc.cpp" | |
718 } | |
719 | |
720 static int ag_rp_90(int x, int d) { | |
721 #line - "xvmc.syn" | |
722 return 10*x + d-'0'; | |
723 #line - "xvmc.cpp" | |
724 } | |
725 | |
726 static double ag_rp_91(int d) { | |
727 #line - "xvmc.syn" | |
728 return (d-'0')/10.; | |
729 #line - "xvmc.cpp" | |
730 } | |
731 | |
732 static double ag_rp_92(int d, double f) { | |
733 #line - "xvmc.syn" | |
734 return (d-'0' + f)/10.; | |
735 #line - "xvmc.cpp" | |
736 } | |
737 | |
738 static int ag_rp_93(int d) { | |
739 #line - "xvmc.syn" | |
740 return d-'0'; | |
741 #line - "xvmc.cpp" | |
742 } | |
743 | |
744 static int ag_rp_94(int x, int d) { | |
745 #line - "xvmc.syn" | |
746 return 10*x + d-'0'; | |
747 #line - "xvmc.cpp" | |
748 } | |
749 | |
750 static int ag_rp_95(int k) { | |
751 #line - "xvmc.syn" | |
752 char *name = popString(k); | |
753 VirtualMachine::Type::Id id = VirtualMachine::Type::idType(name); | |
754 if (id != VirtualMachine::Type::UNDEFINED) return (int) id; | |
755 CHANGE_REDUCTION(variable_name); | |
756 return vm->locateVariable(name); | |
757 | |
758 #line - "xvmc.cpp" | |
759 } | |
760 | |
761 static int ag_rp_96(int c) { | |
762 #line - "xvmc.syn" | |
763 return pushChar(c), 1; | |
764 #line - "xvmc.cpp" | |
765 } | |
766 | |
767 static int ag_rp_97(int k, int c) { | |
768 #line - "xvmc.syn" | |
769 return pushChar(c), k+1; | |
770 #line - "xvmc.cpp" | |
771 } | |
772 | |
773 static int ag_rp_98(int c) { | |
774 #line - "xvmc.syn" | |
775 return c; | |
776 #line - "xvmc.cpp" | |
777 } | |
778 | |
779 static int ag_rp_99(int k) { | |
780 #line - "xvmc.syn" | |
781 return vm->stringList.push(CharString(popString(k))), vm->stringList.size() - 1; | |
782 #line - "xvmc.cpp" | |
783 } | |
784 | |
785 static int ag_rp_100(void) { | |
786 #line - "xvmc.syn" | |
787 return 0; | |
788 #line - "xvmc.cpp" | |
789 } | |
790 | |
791 static int ag_rp_101(int k, int c) { | |
792 #line - "xvmc.syn" | |
793 return pushChar(c), k+1; | |
794 #line - "xvmc.cpp" | |
795 } | |
796 | |
797 static int ag_rp_102(void) { | |
798 #line - "xvmc.syn" | |
799 return '\a'; | |
800 #line - "xvmc.cpp" | |
801 } | |
802 | |
803 static int ag_rp_103(void) { | |
804 #line - "xvmc.syn" | |
805 return '\b'; | |
806 #line - "xvmc.cpp" | |
807 } | |
808 | |
809 static int ag_rp_104(void) { | |
810 #line - "xvmc.syn" | |
811 return '\f'; | |
812 #line - "xvmc.cpp" | |
813 } | |
814 | |
815 static int ag_rp_105(void) { | |
816 #line - "xvmc.syn" | |
817 return '\n'; | |
818 #line - "xvmc.cpp" | |
819 } | |
820 | |
821 static int ag_rp_106(void) { | |
822 #line - "xvmc.syn" | |
823 return '\r'; | |
824 #line - "xvmc.cpp" | |
825 } | |
826 | |
827 static int ag_rp_107(void) { | |
828 #line - "xvmc.syn" | |
829 return '\t'; | |
830 #line - "xvmc.cpp" | |
831 } | |
832 | |
833 static int ag_rp_108(void) { | |
834 #line - "xvmc.syn" | |
835 return '\v'; | |
836 #line - "xvmc.cpp" | |
837 } | |
838 | |
839 static int ag_rp_109(void) { | |
840 #line - "xvmc.syn" | |
841 return '\\'; | |
842 #line - "xvmc.cpp" | |
843 } | |
844 | |
845 static int ag_rp_110(void) { | |
846 #line - "xvmc.syn" | |
847 return '\?'; | |
848 #line - "xvmc.cpp" | |
849 } | |
850 | |
851 static int ag_rp_111(void) { | |
852 #line - "xvmc.syn" | |
853 return '\''; | |
854 #line - "xvmc.cpp" | |
855 } | |
856 | |
857 static int ag_rp_112(void) { | |
858 #line - "xvmc.syn" | |
859 return '"'; | |
860 #line - "xvmc.cpp" | |
861 } | |
862 | |
863 static int ag_rp_113(int d) { | |
864 #line - "xvmc.syn" | |
865 return d-'0'; | |
866 #line - "xvmc.cpp" | |
867 } | |
868 | |
869 static int ag_rp_114(int n, int d) { | |
870 #line - "xvmc.syn" | |
871 return 8*n + d-'0'; | |
872 #line - "xvmc.cpp" | |
873 } | |
874 | |
875 static int ag_rp_115(int n, int d) { | |
876 #line - "xvmc.syn" | |
877 return 8*n + d-'0'; | |
878 #line - "xvmc.cpp" | |
879 } | |
880 | |
881 static int ag_rp_116(int d) { | |
882 #line - "xvmc.syn" | |
883 return d; | |
884 #line - "xvmc.cpp" | |
885 } | |
886 | |
887 static int ag_rp_117(int n, int d) { | |
888 #line - "xvmc.syn" | |
889 return 16*n + d; | |
890 #line - "xvmc.cpp" | |
891 } | |
892 | |
893 static int ag_rp_118(int d) { | |
894 #line - "xvmc.syn" | |
895 return (d&7) + 9; | |
896 #line - "xvmc.cpp" | |
897 } | |
898 | |
899 | |
900 #define READ_COUNTS | |
901 #define WRITE_COUNTS | |
902 #undef V | |
903 #define V(i,t) (*t (&(PCB).vs[(PCB).ssx + i])) | |
904 #undef VS | |
905 #define VS(i) (PCB).vs[(PCB).ssx + i] | |
906 | |
907 #ifndef GET_CONTEXT | |
908 #define GET_CONTEXT CONTEXT = (PCB).input_context | |
909 #endif | |
910 | |
911 typedef enum { | |
912 ag_action_1, | |
913 ag_action_2, | |
914 ag_action_3, | |
915 ag_action_4, | |
916 ag_action_5, | |
917 ag_action_6, | |
918 ag_action_7, | |
919 ag_action_8, | |
920 ag_action_9, | |
921 ag_action_10, | |
922 ag_action_11, | |
923 ag_action_12 | |
924 } ag_parser_action; | |
925 | |
926 | |
927 #ifndef NULL_VALUE_INITIALIZER | |
928 #define NULL_VALUE_INITIALIZER = { 0 } | |
929 #endif | |
930 | |
931 static vmCompile_vs_type const ag_null_value NULL_VALUE_INITIALIZER; | |
932 | |
933 static const unsigned char ag_rpx[] = { | |
934 0, 1, 2, 0, 0, 0, 0, 3, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, | |
935 12, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, | |
936 27, 28, 29, 30, 31, 32, 0, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, | |
937 44, 45, 0, 46, 47, 0, 48, 0, 49, 50, 0, 51, 0, 52, 0, 53, 0, 54, | |
938 55, 0, 56, 57, 58, 59, 0, 60, 61, 0, 62, 63, 0, 64, 65, 66, 0, 67, | |
939 0, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, | |
940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 85, 86, 87, | |
941 88, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, 99,100,101, | |
942 0, 0,102,103,104,105,106,107,108,109,110,111,112, 0, 0, 0, 0, 0, | |
943 113,114,115,116,117, 0,118 | |
944 }; | |
945 | |
946 static const unsigned char ag_key_itt[] = { | |
947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
949 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, | |
950 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, | |
951 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |
952 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
958 0 | |
959 }; | |
960 | |
961 static const unsigned short ag_key_pt[] = { | |
962 0,164, 0,165, 0,166, 0,167, 0,168,0 | |
963 }; | |
964 | |
965 static const unsigned char ag_key_ch[] = { | |
966 0, 42, 47,255, 43, 45, 47,100,102,105,119,255, 42,255, 38, 61,255, 42, | |
967 61,255, 43, 61,255, 45, 61,255, 42, 47, 61,255, 61,255, 60, 61,255, 61, | |
968 255, 61, 62,255, 61,124,255, 33, 37, 38, 42, 43, 45, 47, 60, 61, 62, 94, | |
969 100,101,102,105,119,124,255, 43, 45,100,102,105,119,255, 34, 39, 63, 92, | |
970 97, 98,102,110,114,116,118,120,255, 92,255, 42, 47,255, 60, 61,255, 61, | |
971 62,255, 33, 38, 42, 47, 60, 61, 62,124,255, 42, 47,255, 43, 45, 47,255, | |
972 42, 47,255, 60, 61,255, 61, 62,255, 33, 38, 42, 43, 45, 47, 60, 61, 62, | |
973 124,255, 60, 61,255, 61, 62,255, 33, 38, 42, 60, 61, 62,124,255, 43, 45, | |
974 255, 60, 61,255, 61, 62,255, 33, 38, 60, 61, 62,124,255, 33, 38, 60, 61, | |
975 62,124,255, 33, 38, 61,124,255, 38,124,255, 38,255, 42, 47,255, 47,255, | |
976 124,255, 38, 61,255, 42, 61,255, 43, 61,255, 45, 61,255, 42, 47, 61,255, | |
977 61,255, 60, 61,255, 61,255, 61, 62,255, 61,124,255, 33, 37, 38, 42, 43, | |
978 45, 47, 60, 61, 62, 94,124,255, 42, 47,255, 43, 45, 47,100,101,102,105, | |
979 119,255, 38, 61,255, 42, 61,255, 43, 61,255, 45, 61,255, 61,255, 60, 61, | |
980 255, 61,255, 61, 62,255, 61,124,255, 33, 37, 38, 42, 43, 45, 47, 60, 61, | |
981 62, 94,124,255, 60, 61,255, 61, 62,255, 33, 38, 42, 43, 45, 60, 61, 62, | |
982 124,255, 43, 45,100,101,102,105,119,255,119,255, 42, 47,255, 60, 61,255, | |
983 61, 62,255, 33, 38, 42, 43, 45, 47, 60, 61, 62,100,102,105,119,124,255 | |
984 }; | |
985 | |
986 static const unsigned char ag_key_act[] = { | |
987 0,0,0,4,3,3,2,7,7,7,7,4,3,4,0,0,4,0,0,4,0,0,4,0,0,4,0,0,0,4,0,4,1,0,4, | |
988 0,4,0,1,4,0,0,4,3,3,2,2,2,2,2,2,3,2,3,7,7,7,7,7,2,4,3,3,7,7,7,7,4,0,0, | |
989 0,0,0,0,0,0,0,0,0,0,4,2,4,0,0,4,0,0,4,0,0,4,3,3,3,2,2,3,2,3,4,0,0,4,3, | |
990 3,2,4,0,0,4,0,0,4,0,0,4,3,3,3,3,3,2,2,3,2,3,4,0,0,4,0,0,4,3,3,3,2,3,2, | |
991 3,4,3,3,4,0,0,4,0,0,4,3,3,2,3,2,3,4,3,3,3,3,3,3,4,3,3,3,3,4,3,3,4,3,4, | |
992 0,0,4,2,4,3,4,0,0,4,0,0,4,0,0,4,0,0,4,0,0,0,4,0,4,1,0,4,0,4,0,1,4,0,0, | |
993 4,3,3,2,2,2,2,2,2,3,2,3,2,4,0,0,4,3,3,2,7,7,7,7,7,4,0,0,4,0,0,4,0,0,4, | |
994 0,0,4,0,4,1,0,4,0,4,0,1,4,0,0,4,3,3,2,2,2,2,3,2,3,2,3,2,4,0,0,4,0,0,4, | |
995 3,3,3,3,3,2,3,2,3,4,3,3,7,7,7,7,7,4,7,4,0,0,4,0,0,4,0,0,4,3,3,3,3,3,2, | |
996 2,3,2,7,7,7,7,3,4 | |
997 }; | |
998 | |
999 static const unsigned char ag_key_parm[] = { | |
1000 0, 98,103, 0,199,200, 0, 0, 2, 8, 4, 0,102, 0,182,175, 0,203, | |
1001 171, 0,199,169, 0,200,170, 0, 98,103,172, 0,177, 0,192,189, 0,178, | |
1002 0,191,193, 0,174,181, 0,187,173, 0, 0, 0, 0, 0, 0,186, 0,176, | |
1003 0, 6, 2, 8, 4, 0, 0,199,200, 0, 2, 8, 4, 0,135,134,133,132, | |
1004 125,126,127,128,129,130,131,143, 0, 0, 0, 98,103, 0,192,189, 0,191, | |
1005 193, 0,187,182,203, 0, 0,186, 0,181, 0, 98,103, 0,199,200, 0, 0, | |
1006 98,103, 0,192,189, 0,191,193, 0,187,182,203,199,200, 0, 0,186, 0, | |
1007 181, 0,192,189, 0,191,193, 0,187,182,203, 0,186, 0,181, 0,199,200, | |
1008 0,192,189, 0,191,193, 0,187,182, 0,186, 0,181, 0,187,182,189,186, | |
1009 191,181, 0,187,182,186,181, 0,182,181, 0,182, 0, 98,103, 0, 0, 0, | |
1010 181, 0,182,175, 0,203,171, 0,199,169, 0,200,170, 0, 98,103,172, 0, | |
1011 177, 0,192,189, 0,178, 0,191,193, 0,174,181, 0,187,173, 0, 0, 0, | |
1012 0, 0, 0,186, 0,176, 0, 0, 98,103, 0,199,200, 0, 0, 6, 2, 8, | |
1013 4, 0,182,175, 0,203,171, 0,199,169, 0,200,170, 0,177, 0,192,189, | |
1014 0,178, 0,191,193, 0,174,181, 0,187,173, 0, 0, 0, 0,172, 0,186, | |
1015 0,176, 0, 0,192,189, 0,191,193, 0,187,182,203,199,200, 0,186, 0, | |
1016 181, 0,199,200, 0, 6, 2, 8, 4, 0, 4, 0, 98,103, 0,192,189, 0, | |
1017 191,193, 0,187,182,203,199,200, 0, 0,186, 0, 0, 2, 8, 4,181, 0 | |
1018 }; | |
1019 | |
1020 static const unsigned short ag_key_jmp[] = { | |
1021 0, 0, 0, 0, 0, 2, 1, 4, 6, 9, 11, 0, 16, 0, 0, 0, 0, 0, | |
1022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, | |
1023 0, 0, 35, 0, 0, 0, 0, 18, 20, 14, 17, 20, 23, 26, 32, 22, 37, 24, | |
1024 26, 28, 32, 35, 37, 40, 0, 42, 44, 46, 48, 51, 53, 0, 0, 0, 0, 0, | |
1025 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, | |
1026 0, 0, 58, 60, 62, 83, 86, 64, 89, 66, 0, 0, 0, 0, 68, 70,101, 0, | |
1027 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 74, 76, 78, 80,108,111, 82,114, | |
1028 84, 0, 0, 0, 0, 0, 0, 0, 86, 88, 90,128, 92,131, 94, 0, 96, 98, | |
1029 0, 0, 0, 0, 0, 0, 0,100,102,145,104,148,106, 0,108,110,112,114, | |
1030 116,118, 0,120,122,124,126, 0,128,130, 0,132, 0, 0, 0, 0,175, 0, | |
1031 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1032 0, 0,198, 0, 0, 0, 0, 0,203, 0, 0, 0, 0,136,138,182,185,188, | |
1033 191,194,200,140,205,142,208, 0, 0, 0, 0,144,146,224,148,150,154,157, | |
1034 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 0, | |
1035 0, 0, 0, 0,253, 0, 0, 0, 0,164,166,236,239,242,245,168,250,170, | |
1036 255,172,258, 0, 0, 0, 0, 0, 0, 0,174,176,178,180,182,274,184,277, | |
1037 186, 0,188,190,192,194,198,201,203, 0,208, 0, 0, 0, 0, 0, 0, 0, | |
1038 0, 0, 0,213,215,217,219,221,300,303,223,306,225,227,230,232,237, 0 | |
1039 }; | |
1040 | |
1041 static const unsigned short ag_key_index[] = { | |
1042 4, 0, 12, 43, 61, 0, 0, 12, 12, 81, 0, 81, 92, 92, 92, 92, 92,104, | |
1043 104,104,104,117,117,134,104,142,142,142,142,142,142,142,151,151,151,158, | |
1044 165,170,170,173,170,170,178,178,180,180,211, 0,178, 0, 4, 4,227,261, | |
1045 261, 61, 0, 61, 61, 61, 0, 0, 0, 0, 61, 0, 0, 81, 81, 81, 0, 92, | |
1046 92, 0,104,142,142,280, 0, 0,104,142,104,142,104,142,142,142,104,142, | |
1047 104,142,104,142,104,142,104,142,104,142,104,142,104,142,104,142,104,142, | |
1048 104,142,104,142,104,142,104,142,142,142,178, 0,104,142,104,142,104,142, | |
1049 104,142,104,142,104,142,104,142,104,142,104,142,104,142,104,142,104,142, | |
1050 142,290,142,298, 61,227, 0,211,178,178,178,178,104,178,178,104,309,178, | |
1051 178,178, 0, 0, 0, 0, 0,142,151,151,151,151,151,151,151,151,158,158, | |
1052 165,170,170,170,170, 0, 0, 0, 0, 0, 0, 0, 4, 61, 0, 0, 0, 0, | |
1053 142,142,142, 0, 92, 92,142,142,142,142,142, 0, 0, 0, 0, 0,142, 0, | |
1054 61 | |
1055 }; | |
1056 | |
1057 static const unsigned char ag_key_ends[] = { | |
1058 43,0, 45,0, 111,0, 111,114,0, 102,0, 104,105,108,101,0, 47,0, | |
1059 61,0, 61,0, 61,0, 61,0, 111,0, 108,115,101,0, 111,114,0, 102,0, | |
1060 104,105,108,101,0, 43,0, 45,0, 111,0, 111,114,0, 102,0, | |
1061 104,105,108,101,0, 61,0, 38,0, 42,0, 61,0, 124,0, 43,0, 45,0, | |
1062 61,0, 38,0, 42,0, 43,0, 45,0, 61,0, 124,0, 61,0, 38,0, 42,0, | |
1063 61,0, 124,0, 43,0, 45,0, 61,0, 38,0, 61,0, 124,0, 61,0, | |
1064 38,0, 61,0, 61,0, 61,0, 124,0, 61,0, 38,0, 61,0, 124,0, | |
1065 38,0, 124,0, 38,0, 124,0, 61,0, 61,0, 61,0, 61,0, 43,0, | |
1066 45,0, 111,0, 108,115,101,0, 111,114,0, 102,0, 104,105,108,101,0, | |
1067 61,0, 61,0, 61,0, 61,0, 61,0, 61,0, 38,0, 42,0, 43,0, 45,0, | |
1068 61,0, 124,0, 43,0, 45,0, 111,0, 108,115,101,0, 111,114,0, | |
1069 102,0, 104,105,108,101,0, 104,105,108,101,0, 61,0, 38,0, 42,0, | |
1070 43,0, 45,0, 61,0, 111,0, 111,114,0, 102,0, 104,105,108,101,0, | |
1071 124,0, | |
1072 }; | |
1073 | |
1074 #define AG_TCV(x) ag_tcv[(x)] | |
1075 | |
1076 static const unsigned char ag_tcv[] = { | |
1077 7,208,208,208,208,208,208,208,208,151,107,151,151,151,208,208,208,208, | |
1078 208,208,208,208,208,208,208,208,208,208,208,208,208,208,151,201,209,208, | |
1079 208,198,185,210,160,159,196,194,161,195,206,197,211,211,211,211,211,211, | |
1080 211,211,212,212,179,154,188,156,190,180,208,213,213,213,213,214,213,215, | |
1081 215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215, | |
1082 215,158,216,157,184,215,208,213,213,213,213,214,213,215,215,215,215,215, | |
1083 215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,163,183,162, | |
1084 202,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, | |
1085 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, | |
1086 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, | |
1087 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, | |
1088 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, | |
1089 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, | |
1090 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, | |
1091 208,208,208,208 | |
1092 }; | |
1093 | |
1094 #ifndef SYNTAX_ERROR | |
1095 #define SYNTAX_ERROR fprintf(stderr,"%s, line %d, column %d\n", \ | |
1096 (PCB).error_message, (PCB).line, (PCB).column) | |
1097 #endif | |
1098 | |
1099 #ifndef FIRST_LINE | |
1100 #define FIRST_LINE 1 | |
1101 #endif | |
1102 | |
1103 #ifndef FIRST_COLUMN | |
1104 #define FIRST_COLUMN 1 | |
1105 #endif | |
1106 | |
1107 #ifndef PARSER_STACK_OVERFLOW | |
1108 #define PARSER_STACK_OVERFLOW {fprintf(stderr, \ | |
1109 "\nParser stack overflow, line %d, column %d\n",\ | |
1110 (PCB).line, (PCB).column);} | |
1111 #endif | |
1112 | |
1113 #ifndef REDUCTION_TOKEN_ERROR | |
1114 #define REDUCTION_TOKEN_ERROR {fprintf(stderr, \ | |
1115 "\nReduction token error, line %d, column %d\n", \ | |
1116 (PCB).line, (PCB).column);} | |
1117 #endif | |
1118 | |
1119 | |
1120 #ifndef INPUT_CODE | |
1121 #define INPUT_CODE(T) (T) | |
1122 #endif | |
1123 | |
1124 typedef enum | |
1125 {ag_accept_key, ag_set_key, ag_jmp_key, ag_end_key, ag_no_match_key, | |
1126 ag_cf_accept_key, ag_cf_set_key, ag_cf_end_key} key_words; | |
1127 | |
1128 static void ag_get_key_word(int ag_k) { | |
1129 int ag_save = (int) ((PCB).la_ptr - (PCB).pointer); | |
1130 const unsigned char *ag_p; | |
1131 int ag_ch; | |
1132 while (1) { | |
1133 switch (ag_key_act[ag_k]) { | |
1134 case ag_cf_end_key: { | |
1135 const unsigned char *sp = ag_key_ends + ag_key_jmp[ag_k]; | |
1136 do { | |
1137 if ((ag_ch = *sp++) == 0) { | |
1138 int ag_k1 = ag_key_parm[ag_k]; | |
1139 int ag_k2 = ag_key_pt[ag_k1]; | |
1140 if (ag_key_itt[ag_k2 + CONVERT_CASE(*(PCB).la_ptr)]) goto ag_fail; | |
1141 (PCB).token_number = (vmCompile_token_type) ag_key_pt[ag_k1 + 1]; | |
1142 return; | |
1143 } | |
1144 } while (CONVERT_CASE(*(PCB).la_ptr++) == ag_ch); | |
1145 goto ag_fail; | |
1146 } | |
1147 case ag_end_key: { | |
1148 const unsigned char *sp = ag_key_ends + ag_key_jmp[ag_k]; | |
1149 do { | |
1150 if ((ag_ch = *sp++) == 0) { | |
1151 (PCB).token_number = (vmCompile_token_type) ag_key_parm[ag_k]; | |
1152 return; | |
1153 } | |
1154 } while (CONVERT_CASE(*(PCB).la_ptr++) == ag_ch); | |
1155 } | |
1156 case ag_no_match_key: | |
1157 ag_fail: | |
1158 (PCB).la_ptr = (PCB).pointer + ag_save; | |
1159 return; | |
1160 case ag_cf_set_key: { | |
1161 int ag_k1 = ag_key_parm[ag_k]; | |
1162 int ag_k2 = ag_key_pt[ag_k1]; | |
1163 ag_k = ag_key_jmp[ag_k]; | |
1164 if (ag_key_itt[ag_k2 + CONVERT_CASE(*(PCB).la_ptr)]) break; | |
1165 ag_save = (int) ((PCB).la_ptr - (PCB).pointer); | |
1166 (PCB).token_number = (vmCompile_token_type) ag_key_pt[ag_k1+1]; | |
1167 break; | |
1168 } | |
1169 case ag_set_key: | |
1170 ag_save = (int) ((PCB).la_ptr - (PCB).pointer); | |
1171 (PCB).token_number = (vmCompile_token_type) ag_key_parm[ag_k]; | |
1172 case ag_jmp_key: | |
1173 ag_k = ag_key_jmp[ag_k]; | |
1174 break; | |
1175 case ag_accept_key: | |
1176 (PCB).token_number = (vmCompile_token_type) ag_key_parm[ag_k]; | |
1177 return; | |
1178 case ag_cf_accept_key: { | |
1179 int ag_k1 = ag_key_parm[ag_k]; | |
1180 int ag_k2 = ag_key_pt[ag_k1]; | |
1181 if (ag_key_itt[ag_k2 + CONVERT_CASE(*(PCB).la_ptr)]) | |
1182 (PCB).la_ptr = (PCB).pointer + ag_save; | |
1183 else (PCB).token_number = (vmCompile_token_type) ag_key_pt[ag_k1+1]; | |
1184 return; | |
1185 } | |
1186 } | |
1187 ag_ch = CONVERT_CASE(*(PCB).la_ptr++); | |
1188 ag_p = &ag_key_ch[ag_k]; | |
1189 if (ag_ch <= 255) while (*ag_p < ag_ch) ag_p++; | |
1190 if (ag_ch > 255 || *ag_p != ag_ch) { | |
1191 (PCB).la_ptr = (PCB).pointer + ag_save; | |
1192 return; | |
1193 } | |
1194 ag_k = (int) (ag_p - ag_key_ch); | |
1195 } | |
1196 } | |
1197 | |
1198 | |
1199 #ifndef AG_NEWLINE | |
1200 #define AG_NEWLINE 10 | |
1201 #endif | |
1202 | |
1203 #ifndef AG_RETURN | |
1204 #define AG_RETURN 13 | |
1205 #endif | |
1206 | |
1207 #ifndef AG_FORMFEED | |
1208 #define AG_FORMFEED 12 | |
1209 #endif | |
1210 | |
1211 #ifndef AG_TABCHAR | |
1212 #define AG_TABCHAR 9 | |
1213 #endif | |
1214 | |
1215 static void ag_track(void) { | |
1216 int ag_k = (int) ((PCB).la_ptr - (PCB).pointer); | |
1217 while (ag_k--) { | |
1218 switch (*(PCB).pointer++) { | |
1219 case AG_NEWLINE: | |
1220 (PCB).column = 1, (PCB).line++; | |
1221 case AG_RETURN: | |
1222 case AG_FORMFEED: | |
1223 break; | |
1224 case AG_TABCHAR: | |
1225 (PCB).column += (TAB_SPACING) - ((PCB).column - 1) % (TAB_SPACING); | |
1226 break; | |
1227 default: | |
1228 (PCB).column++; | |
1229 } | |
1230 } | |
1231 } | |
1232 | |
1233 | |
1234 static void ag_prot(void) { | |
1235 int ag_k; | |
1236 ag_k = 128 - ++(PCB).btsx; | |
1237 if (ag_k <= (PCB).ssx) { | |
1238 (PCB).exit_flag = AG_STACK_ERROR_CODE; | |
1239 PARSER_STACK_OVERFLOW; | |
1240 return; | |
1241 } | |
1242 (PCB).bts[(PCB).btsx] = (PCB).sn; | |
1243 (PCB).bts[ag_k] = (PCB).ssx; | |
1244 (PCB).vs[ag_k] = (PCB).vs[(PCB).ssx]; | |
1245 (PCB).ss[ag_k] = (PCB).ss[(PCB).ssx]; | |
1246 } | |
1247 | |
1248 static void ag_undo(void) { | |
1249 if ((PCB).drt == -1) return; | |
1250 while ((PCB).btsx) { | |
1251 int ag_k = 128 - (PCB).btsx; | |
1252 (PCB).sn = (PCB).bts[(PCB).btsx--]; | |
1253 (PCB).ssx = (PCB).bts[ag_k]; | |
1254 (PCB).vs[(PCB).ssx] = (PCB).vs[ag_k]; | |
1255 (PCB).ss[(PCB).ssx] = (PCB).ss[ag_k]; | |
1256 } | |
1257 (PCB).token_number = (vmCompile_token_type) (PCB).drt; | |
1258 (PCB).ssx = (PCB).dssx; | |
1259 (PCB).sn = (PCB).dsn; | |
1260 (PCB).drt = -1; | |
1261 } | |
1262 | |
1263 | |
1264 | |
1265 static const int ag_rtt[] = { | |
1266 17, 53, 0 | |
1267 }; | |
1268 | |
1269 static const unsigned char ag_tstt[] = { | |
1270 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,166,165,164,163, | |
1271 160,154,151,107,103,98,7,0,1,152,153, | |
1272 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1273 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,0,105, | |
1274 106, | |
1275 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1276 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,102,0, | |
1277 100,101, | |
1278 151,107,103,98,0,1, | |
1279 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,166,165,164,163, | |
1280 160,154,9,7,0,2,3,4,5,6,8,13,14,15,16,17,19,22,27,28,29,31,32,33,37,38, | |
1281 40,41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91, | |
1282 92,93,95,108,112,114,121,155,204,205,207,217, | |
1283 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1284 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,0, | |
1285 107,0, | |
1286 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1287 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,0, | |
1288 102,0, | |
1289 216,215,214,213,212,211,209,208,206,202,201,198,197,196,195,194,190,188,185, | |
1290 184,183,180,179,163,162,161,160,159,158,157,156,154,151,143,135,134,133, | |
1291 132,131,130,129,128,127,126,125,0,118,120,136,137,138,139,140, | |
1292 212,211,0,113,114, | |
1293 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1294 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,143,135,134, | |
1295 133,132,131,130,129,128,127,126,125,0,120,123,136,137,138,139,140, | |
1296 203,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181, | |
1297 180,179,161,159,157,154,151,107,103,98,0,1,152,153, | |
1298 212,211,206,203,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184, | |
1299 183,182,181,180,179,161,159,157,154,151,107,103,98,0,1,114,152,153, | |
1300 214,0, | |
1301 203,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181, | |
1302 180,179,161,159,157,154,151,107,103,98,0,1,152,153, | |
1303 203,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181, | |
1304 180,179,161,159,157,154,151,107,103,98,0,1,152,153, | |
1305 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1306 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1307 103,98,7,0,1,152,153, | |
1308 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1309 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1310 103,98,7,0,1,152,153, | |
1311 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1312 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1313 103,98,7,0,1,152,153, | |
1314 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1315 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1316 103,98,7,0,1,152,153, | |
1317 215,214,213,212,211,210,209,206,203,202,201,200,199,198,197,196,195,194,193, | |
1318 192,191,190,189,188,187,186,185,184,183,182,181,180,179,161,160,159,157, | |
1319 154,151,107,103,98,0,1,152,153, | |
1320 215,214,213,212,211,210,209,206,203,202,201,200,199,198,197,196,195,194,193, | |
1321 192,191,190,189,188,187,186,185,184,183,182,181,180,179,161,160,159,157, | |
1322 154,151,107,103,98,0,1,152,153, | |
1323 203,0,94, | |
1324 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1325 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1326 103,98,7,0,1,152,153, | |
1327 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1328 53,81,82,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1329 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1330 53,81,82,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1331 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1332 53,81,82,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1333 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1334 53,81,82,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1335 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1336 53,81,82,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1337 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1338 53,81,82,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1339 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,17,19, | |
1340 22,41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91, | |
1341 92,93,95,108,112,114,121,155,204,205,207,217, | |
1342 198,197,196,0,84,85,86, | |
1343 195,194,0,81,82, | |
1344 193,192,0,78,79, | |
1345 191,190,189,188,0,73,74,75,76, | |
1346 187,186,0,70,71, | |
1347 185,0,68, | |
1348 184,0,66, | |
1349 182,0,62, | |
1350 183,0,64, | |
1351 182,181,180,179,161,159,157,154,0, | |
1352 160,151,107,103,98,0,1,152,153, | |
1353 160,151,107,103,98,0,1,152,153, | |
1354 181,180,0,56,59, | |
1355 181,180,179,161,159,157,154,0, | |
1356 215,214,213,212,211,206,203,200,199,198,197,196,195,194,193,192,191,190,189, | |
1357 188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171, | |
1358 170,169,161,160,159,158,157,156,154,151,107,103,98,0,1,152,153, | |
1359 160,0,22, | |
1360 160,151,107,103,98,0,1,152,153, | |
1361 160,0,22, | |
1362 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,166,165,164,163, | |
1363 160,154,151,107,103,98,0,1,152,153, | |
1364 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1365 190,188,185,184,183,180,179,168,166,165,164,163,162,161,160,159,158,157, | |
1366 156,154,151,107,103,98,7,0,1,152,153, | |
1367 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,167,166,165,164, | |
1368 163,162,160,159,154,151,107,103,98,7,0,1,152,153, | |
1369 206,203,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184, | |
1370 183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,161,159,158, | |
1371 157,156,154,0,18,20,43,44,45,46,47,48,49,50,51,52,89,90,96, | |
1372 215,214,213,206,203,200,199,198,197,196,195,194,193,192,191,190,189,188,187, | |
1373 186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169, | |
1374 161,160,159,158,157,156,154,0,22, | |
1375 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,166,165,164,163, | |
1376 160,154,0,2,3,4,5,14,16,19,22,27,28,29,31,32,33,37,38,40,41,42,53,54,55, | |
1377 58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112, | |
1378 114,121,155,204,205,207,217, | |
1379 160,0,22, | |
1380 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,166,165,164,163, | |
1381 160,154,0,2,3,4,5,16,19,22,27,28,29,31,32,33,37,38,40,41,42,53,54,55,58, | |
1382 60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114, | |
1383 121,155,204,205,207,217, | |
1384 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,166,165,164,163, | |
1385 160,154,0,2,3,4,5,14,16,19,22,27,28,29,31,32,33,37,38,40,41,42,53,54,55, | |
1386 58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112, | |
1387 114,121,155,204,205,207,217, | |
1388 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,166,165,164,163, | |
1389 162,160,154,9,0,2,3,4,5,8,13,14,15,16,17,19,22,27,28,29,30,31,32,33,37, | |
1390 38,40,41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90, | |
1391 91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1392 154,0,16, | |
1393 215,214,213,0,3,155, | |
1394 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1395 185,184,183,180,179,163,161,160,159,158,157,156,154,0,11,12,18,20,21,22, | |
1396 24,26,29,56,57,64,66,68,73,75,81,82,84,85,86,91,92,96,109,117,122,141, | |
1397 142,147,148,149,150, | |
1398 154,0,16, | |
1399 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,166,165,164,163, | |
1400 160,154,9,7,0,2,3,4,5,13,14,15,16,17,19,22,27,28,29,31,32,33,37,38,40, | |
1401 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1402 93,95,108,112,114,121,155,204,205,207,217, | |
1403 211,0, | |
1404 214,213,212,211,0,144, | |
1405 211,0, | |
1406 211,0, | |
1407 214,213,212,211,0,144, | |
1408 210,0, | |
1409 214,212,211,203,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184, | |
1410 183,182,181,180,179,161,159,157,154,151,107,103,98,0,113,114, | |
1411 214,212,211,203,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184, | |
1412 183,182,181,180,179,161,159,157,154,151,107,103,98,0,113,114, | |
1413 212,211,195,194,0,110, | |
1414 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1415 0,1,152,153, | |
1416 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1417 53,81,82,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1418 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1419 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1420 93,95,108,112,114,121,155,204,205,207,217, | |
1421 206,203,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184, | |
1422 183,182,181,180,179,161,159,158,157,154,0,20,89,90,96, | |
1423 159,0,24, | |
1424 159,0,24, | |
1425 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1426 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1427 103,98,7,0,1,152,153, | |
1428 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1429 53,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1430 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1431 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1432 103,98,7,0,1,152,153, | |
1433 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1434 53,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1435 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1436 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1437 103,98,7,0,1,152,153, | |
1438 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1439 53,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1440 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1441 53,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207, | |
1442 217, | |
1443 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1444 53,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207, | |
1445 217, | |
1446 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1447 0,1,152,153, | |
1448 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1449 53,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205, | |
1450 207,217, | |
1451 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1452 0,1,152,153, | |
1453 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1454 53,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205, | |
1455 207,217, | |
1456 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1457 0,1,152,153, | |
1458 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1459 53,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204, | |
1460 205,207,217, | |
1461 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1462 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1463 103,98,7,0,1,152,153, | |
1464 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1465 53,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204, | |
1466 205,207,217, | |
1467 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1468 0,1,152,153, | |
1469 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1470 53,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204, | |
1471 205,207,217, | |
1472 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1473 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1474 103,98,7,0,1,152,153, | |
1475 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1476 53,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204, | |
1477 205,207,217, | |
1478 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1479 0,1,152,153, | |
1480 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1481 53,69,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204, | |
1482 205,207,217, | |
1483 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1484 0,1,152,153, | |
1485 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1486 53,69,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204, | |
1487 205,207,217, | |
1488 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1489 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1490 103,98,7,0,1,152,153, | |
1491 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1492 53,67,69,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155, | |
1493 204,205,207,217, | |
1494 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1495 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1496 103,98,7,0,1,152,153, | |
1497 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1498 53,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121, | |
1499 155,204,205,207,217, | |
1500 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1501 0,1,152,153, | |
1502 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1503 53,60,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114, | |
1504 121,155,204,205,207,217, | |
1505 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1506 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1507 103,98,7,0,1,152,153, | |
1508 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1509 53,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114, | |
1510 121,155,204,205,207,217, | |
1511 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1512 0,1,152,153, | |
1513 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1514 53,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108, | |
1515 112,114,121,155,204,205,207,217, | |
1516 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1517 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1518 103,98,7,0,1,152,153, | |
1519 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1520 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1521 93,95,108,112,114,121,155,204,205,207,217, | |
1522 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1523 35,41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91, | |
1524 92,93,95,108,112,114,121,155,204,205,207,217, | |
1525 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1526 35,41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91, | |
1527 92,93,95,108,112,114,121,155,204,205,207,217, | |
1528 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1529 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,103,98, | |
1530 7,0,1,152,153, | |
1531 215,214,213,0,3,155, | |
1532 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1533 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1534 103,98,7,0,1,152,153, | |
1535 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1536 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1537 93,95,108,112,114,121,155,204,205,207,217, | |
1538 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1539 0,1,152,153, | |
1540 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1541 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1542 93,95,108,112,114,121,155,204,205,207,217, | |
1543 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1544 0,1,152,153, | |
1545 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1546 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1547 93,95,108,112,114,121,155,204,205,207,217, | |
1548 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1549 0,1,152,153, | |
1550 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1551 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1552 93,95,108,112,114,121,155,204,205,207,217, | |
1553 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1554 0,1,152,153, | |
1555 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1556 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1557 93,95,108,112,114,121,155,204,205,207,217, | |
1558 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1559 0,1,152,153, | |
1560 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1561 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1562 93,95,108,112,114,121,155,204,205,207,217, | |
1563 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1564 0,1,152,153, | |
1565 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1566 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1567 93,95,108,112,114,121,155,204,205,207,217, | |
1568 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1569 0,1,152,153, | |
1570 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1571 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1572 93,95,108,112,114,121,155,204,205,207,217, | |
1573 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1574 0,1,152,153, | |
1575 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1576 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1577 93,95,108,112,114,121,155,204,205,207,217, | |
1578 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1579 0,1,152,153, | |
1580 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1581 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1582 93,95,108,112,114,121,155,204,205,207,217, | |
1583 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,151,107,103,98, | |
1584 0,1,152,153, | |
1585 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1586 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1587 93,95,108,112,114,121,155,204,205,207,217, | |
1588 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1589 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1590 103,98,7,0,1,152,153, | |
1591 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1592 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1593 93,95,108,112,114,121,155,204,205,207,217, | |
1594 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,159,0,2,3,4,5, | |
1595 19,22,23,25,41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88, | |
1596 89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1597 167,0,39, | |
1598 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,154,0,2,3,4,5, | |
1599 19,22,34,36,41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88, | |
1600 89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1601 166,0,32,37, | |
1602 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,166,165,164,163, | |
1603 162,160,154,9,0,2,3,4,5,13,14,15,16,17,19,22,27,28,29,30,31,32,33,37,38, | |
1604 40,41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91, | |
1605 92,93,95,108,112,114,121,155,204,205,207,217, | |
1606 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,167,166,165,164, | |
1607 163,162,160,154,151,107,103,98,7,0,1,152,153, | |
1608 160,158,156,154,0,18,20,22, | |
1609 216,215,214,213,212,211,210,209,208,206,203,202,201,200,199,198,197,196,195, | |
1610 194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177, | |
1611 176,175,174,173,172,171,170,169,163,162,161,160,159,158,157,156,154,151, | |
1612 107,103,98,7,0,1,152,153, | |
1613 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1614 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,103,98, | |
1615 7,0,1,152,153, | |
1616 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1617 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,103,98, | |
1618 7,0,1,152,153, | |
1619 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1620 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,103,98, | |
1621 7,0,1,152,153, | |
1622 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1623 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,103,98, | |
1624 7,0,1,152,153, | |
1625 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1626 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1627 103,98,7,0,1,152,153, | |
1628 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1629 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,103,98, | |
1630 7,0,1,152,153, | |
1631 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1632 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,103,98, | |
1633 7,0,1,152,153, | |
1634 216,215,214,213,212,211,210,209,208,206,202,201,200,199,198,197,196,195,194, | |
1635 190,188,185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107, | |
1636 103,98,7,0,1,152,153, | |
1637 216,215,214,213,212,211,210,209,208,206,203,202,201,200,199,198,197,196,195, | |
1638 194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,168,166, | |
1639 165,164,163,162,161,160,159,158,157,156,154,151,107,103,98,7,0,1,152, | |
1640 153, | |
1641 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1642 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,103,98, | |
1643 7,0,1,152,153, | |
1644 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1645 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,103,98, | |
1646 7,0,1,152,153, | |
1647 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1648 185,184,183,180,179,163,162,161,160,159,158,157,156,154,151,107,103,98, | |
1649 7,0,1,152,153, | |
1650 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1651 185,184,183,180,179,163,161,160,159,158,157,156,0,18,20,21,22,24,26,29, | |
1652 56,57,64,66,68,73,75,81,82,84,85,86,91,92,96,109,117,122,141,142,147, | |
1653 148,149,150, | |
1654 154,0,16, | |
1655 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1656 185,184,183,180,179,163,161,160,159,158,157,156,154,7,0,11,12,18,20,21, | |
1657 22,24,26,29,56,57,64,66,68,73,75,81,82,84,85,86,91,92,96,109,117,122, | |
1658 141,142,147,148,149,150, | |
1659 212,211,0,111,114, | |
1660 212,211,0,111,114, | |
1661 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,42, | |
1662 53,81,82,83,87,88,89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1663 198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180, | |
1664 179,161,159,157,154,0,84,85,86, | |
1665 198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180, | |
1666 179,161,159,157,154,0,84,85,86, | |
1667 195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,161,159, | |
1668 157,154,0,81,82, | |
1669 195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,161,159, | |
1670 157,154,0,81,82, | |
1671 193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,161,159,157,154, | |
1672 0,78,79, | |
1673 193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,161,159,157,154, | |
1674 0,78,79, | |
1675 193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,161,159,157,154, | |
1676 0,78,79, | |
1677 193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,161,159,157,154, | |
1678 0,78,79, | |
1679 191,190,189,188,187,186,185,184,183,182,181,180,179,161,159,157,154,0,73,74, | |
1680 75,76, | |
1681 191,190,189,188,187,186,185,184,183,182,181,180,179,161,159,157,154,0,73,74, | |
1682 75,76, | |
1683 187,186,185,184,183,182,181,180,179,161,159,157,154,0,70,71, | |
1684 185,184,183,182,181,180,179,161,159,157,154,0,68, | |
1685 183,182,181,180,179,161,159,157,154,0,64, | |
1686 184,183,182,181,180,179,161,159,157,154,0,66, | |
1687 182,181,180,179,161,159,157,154,0, | |
1688 179,0,57, | |
1689 159,0,24, | |
1690 159,0,24, | |
1691 160,0,22, | |
1692 157,0,21, | |
1693 161,159,0,26, | |
1694 159,0,24, | |
1695 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,166,165,164,163, | |
1696 160,154,151,107,103,98,0,1,152,153, | |
1697 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,166,165,164,163, | |
1698 160,154,9,0,2,3,4,5,13,14,15,16,17,19,22,27,28,29,31,32,33,37,38,40,41, | |
1699 42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92,93, | |
1700 95,108,112,114,121,155,204,205,207,217, | |
1701 161,0,26, | |
1702 154,0,16, | |
1703 154,0,16, | |
1704 216,215,214,213,212,211,210,209,208,206,202,201,198,197,196,195,194,190,188, | |
1705 185,184,183,180,179,163,162,161,160,159,158,157,156,154,0,11,12,18,20, | |
1706 21,22,24,26,29,56,57,64,66,68,73,75,81,82,84,85,86,91,92,96,109,117,122, | |
1707 141,142,147,148,149,150, | |
1708 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,159,0,2,3,4,5, | |
1709 19,22,23,25,41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88, | |
1710 89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1711 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1712 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1713 93,95,108,112,114,121,155,204,205,207,217, | |
1714 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1715 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1716 93,95,108,112,114,121,155,204,205,207,217, | |
1717 154,7,0,16, | |
1718 212,211,203,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183, | |
1719 182,181,180,179,161,159,157,154,151,107,103,98,0,114, | |
1720 212,211,203,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183, | |
1721 182,181,180,179,161,159,157,154,151,107,103,98,0,114, | |
1722 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,22,41, | |
1723 42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92,93, | |
1724 95,108,112,114,121,155,204,205,207,217, | |
1725 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,159,0,2,3,4,5, | |
1726 19,22,23,25,41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88, | |
1727 89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1728 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1729 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1730 93,95,108,112,114,121,155,204,205,207,217, | |
1731 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1732 41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92, | |
1733 93,95,108,112,114,121,155,204,205,207,217, | |
1734 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,0,2,3,4,5,19,22, | |
1735 35,41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91, | |
1736 92,93,95,108,112,114,121,155,204,205,207,217, | |
1737 162,154,0,16,30, | |
1738 159,0,24, | |
1739 157,0,21, | |
1740 159,0,24, | |
1741 154,0,16, | |
1742 215,214,213,212,211,210,209,206,202,201,200,199,195,194,160,159,0,2,3,4,5, | |
1743 19,22,34,36,41,42,53,54,55,58,60,61,63,65,67,69,72,77,80,81,82,83,87,88, | |
1744 89,90,91,92,93,95,108,112,114,121,155,204,205,207,217, | |
1745 159,0,24, | |
1746 215,214,213,212,211,210,209,206,202,201,200,199,195,194,168,166,165,164,163, | |
1747 160,154,0,2,3,4,5,16,19,22,27,28,29,31,32,33,37,38,40,41,42,53,54,55,58, | |
1748 60,61,63,65,67,69,72,77,80,81,82,83,87,88,89,90,91,92,93,95,108,112,114, | |
1749 121,155,204,205,207,217, | |
1750 | |
1751 }; | |
1752 | |
1753 | |
1754 static unsigned const char ag_astt[7073] = { | |
1755 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,1,1,1,1,8,7,1,1,1,1,1,1,1,1,1,1, | |
1756 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,7,1,1,1,1,1,1,1,1, | |
1757 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,7,1,1,9,9,1,1, | |
1758 5,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,7,2,1,2,2,0,1,2,2,1,2,1, | |
1759 1,1,2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2, | |
1760 1,2,2,1,1,1,1,1,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, | |
1761 9,9,9,9,9,9,5,3,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, | |
1762 9,9,9,9,9,9,9,5,3,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1763 1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,7,1,1,1,1,1,1,1,1,1,7,2,1,1,10,10,10, | |
1764 10,10,10,2,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, | |
1765 10,10,10,10,10,1,2,2,2,2,2,2,2,2,2,2,2,7,2,2,2,1,1,1,2,5,5,5,5,5,5,5,5,5,5, | |
1766 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,10,10,1,5,5,5,5,5,5,5,5,5,5, | |
1767 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,2,1,3,1,5,5,5,5,5,5,5,5,5,5,5,5, | |
1768 5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1769 5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1770 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5, | |
1771 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,5,5,5,5,5, | |
1772 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1, | |
1773 1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1774 1,1,1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1775 5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1776 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,1,5,1,5,5,5,5,5,5,5, | |
1777 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3, | |
1778 2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,2,2,1,1,1,1,1,2,1,2,2,1, | |
1779 1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,2,2,1,1,1,1,1, | |
1780 2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,2,2, | |
1781 1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1, | |
1782 2,1,1,2,2,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2, | |
1783 1,2,2,1,1,2,1,1,2,2,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1, | |
1784 1,1,1,7,2,1,2,2,1,1,2,1,1,2,2,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2, | |
1785 1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1786 1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,5,1,1,1,1,5,1,1,1,1,1,1,5,1, | |
1787 1,1,1,1,1,5,1,1,1,5,1,1,5,1,1,7,1,1,5,1,4,5,5,5,5,5,5,5,7,5,1,1,1,1,7,1,1, | |
1788 3,5,1,1,1,1,7,1,1,3,1,1,7,1,1,4,4,5,5,5,5,5,7,10,10,10,10,10,5,5,5,5,5,5,5, | |
1789 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1, | |
1790 1,7,1,1,3,1,7,1,5,1,1,1,1,7,1,1,3,1,7,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1791 5,5,5,5,1,1,1,1,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1792 5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1793 5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,1,4,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4, | |
1794 4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,4,4,1,4,1,4,7,1,1,1,1,1,1,1,1,1,1,1,1,2,2, | |
1795 1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, | |
1796 4,4,1,4,4,4,4,4,7,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,2,2,2, | |
1797 2,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1798 2,1,2,2,1,1,1,1,1,1,1,7,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1, | |
1799 2,2,2,1,1,2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1800 1,1,2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,2, | |
1801 2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1802 1,1,2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2, | |
1803 1,2,2,1,2,2,1,2,1,1,1,2,2,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1804 1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,7,2,2,2,2,7,1,1,1,1,1,1,1,1,1,1,1, | |
1805 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,7,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1806 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1, | |
1807 1,1,1,1,1,1,1,1,2,7,2,1,2,2,2,2,1,2,1,1,1,2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1, | |
1808 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,2,7,2,2,2,2,7,2,2, | |
1809 5,2,5,2,2,10,10,5,2,2,7,4,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, | |
1810 4,4,4,4,4,4,4,7,2,1,4,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, | |
1811 4,4,4,4,4,7,2,1,8,8,1,1,7,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3, | |
1812 2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,2,2,1,1,1,1,1,2,1,2,2,1, | |
1813 1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,1,1,2,1,1,1,1,1,1,1, | |
1814 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,4,1,1,4,4,4,4,4,4,4,4, | |
1815 4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,4,4,7,1,2,2,1,1,7,2,1,7,1,5,5,5,5,5,5,5,5,5, | |
1816 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,2,2, | |
1817 2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,2,2,2,1,1,1,1,1,2,1,2,2,1,1, | |
1818 1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1819 5,5,1,1,1,1,5,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,2, | |
1820 2,2,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1821 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1, | |
1822 1,1,7,2,1,2,2,1,1,2,1,1,2,2,2,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2, | |
1823 1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1, | |
1824 2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,2, | |
1825 2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1,2, | |
1826 1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1, | |
1827 1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1, | |
1828 1,1,7,2,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5, | |
1829 5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2, | |
1830 2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5, | |
1831 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,2,2,2, | |
1832 2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2, | |
1833 1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1,2,1, | |
1834 1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1, | |
1835 1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1, | |
1836 1,1,1,5,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,1,1,1,1, | |
1837 1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7, | |
1838 1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1, | |
1839 1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2, | |
1840 2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2, | |
1841 1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1842 5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1, | |
1843 1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5, | |
1844 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,2,2,2, | |
1845 2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2, | |
1846 1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2, | |
1847 1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2, | |
1848 1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1849 5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1, | |
1850 1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5, | |
1851 5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1, | |
1852 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5, | |
1853 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1, | |
1854 3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1, | |
1855 1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7, | |
1856 2,1,2,2,2,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1, | |
1857 1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,2,1,1,2,1,2,1,1,1,1,1,1, | |
1858 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5, | |
1859 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,2,2,2,7,1,1, | |
1860 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1, | |
1861 1,1,5,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,1,1,2,1,1,1,1,1, | |
1862 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5, | |
1863 5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,2,1,2,1, | |
1864 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5, | |
1865 5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1, | |
1866 2,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1, | |
1867 1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1, | |
1868 1,1,1,7,2,1,2,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1, | |
1869 2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1, | |
1870 2,1,1,1,1,1,1,1,1,7,2,1,2,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1871 1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3, | |
1872 2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1, | |
1873 1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1, | |
1874 1,1,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,2,1,2,1,2,1,1,1,1,1,1, | |
1875 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5, | |
1876 5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,2,1,2,1,2, | |
1877 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5, | |
1878 5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2, | |
1879 2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1, | |
1880 1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1, | |
1881 1,1,7,2,1,2,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2, | |
1882 2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1,3,2,2,2,2,2,1,2, | |
1883 1,1,1,1,1,1,1,1,7,2,1,2,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1884 1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1885 5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2, | |
1886 1,2,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1, | |
1887 1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,4,7,2,1,2,2,2,1,1,1,2,1,2,1,1,1,1,1,1, | |
1888 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,5,1,2,2,2,2,2,1,2,1, | |
1889 1,1,1,1,1,1,1,4,7,2,1,2,2,2,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1890 1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,7,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1, | |
1891 1,1,1,1,1,7,2,1,2,2,2,2,1,2,1,1,1,2,2,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1, | |
1892 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5, | |
1893 5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,1,1,1,4,7,1,1,1,5,5,5,5,5,5,5,5,5, | |
1894 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1895 5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1896 5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1897 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5, | |
1898 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,5,5,5,5,5, | |
1899 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3, | |
1900 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1, | |
1901 1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1902 5,5,5,1,1,1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1903 5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1904 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1905 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1, | |
1906 1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1907 5,5,5,1,1,1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1908 5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1909 5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,5,7,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1910 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, | |
1911 3,3,3,3,3,3,3,3,3,3,3,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1912 1,1,1,1,1,1,1,1,8,8,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1913 1,1,1,1,1,1,1,2,2,7,1,2,2,2,7,1,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2, | |
1914 1,1,2,1,1,2,2,2,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4, | |
1915 4,4,4,4,4,4,4,4,4,4,7,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, | |
1916 4,7,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,1,1,1,4,4,4,4,4,4, | |
1917 4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1, | |
1918 1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4, | |
1919 4,4,4,4,4,7,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,1,1,1,1,1,4,4,4, | |
1920 4,4,4,4,4,4,4,4,4,4,7,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,1,1,1, | |
1921 1,1,4,4,4,4,4,4,4,4,4,4,4,7,1,1,1,4,4,4,4,4,4,4,4,4,4,7,1,1,4,4,4,4,4,4,4, | |
1922 4,7,1,1,4,4,4,4,4,4,4,4,4,7,1,4,4,4,4,4,4,4,4,7,1,7,1,1,7,2,1,7,2,1,7,1,1, | |
1923 7,2,1,4,7,1,1,7,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,7,1,1, | |
1924 3,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,2,2,2,2,1,2,1,1,1,2,2, | |
1925 1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1, | |
1926 1,1,1,1,1,1,5,1,1,7,1,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1927 1,1,8,1,1,1,1,1,1,8,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1928 1,1,1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,4,7,2,1,2,2,2,1,1,1,2,1,2,1,1, | |
1929 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2, | |
1930 1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1931 1,1,1,2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,2,1,2,1, | |
1932 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,2,7,2, | |
1933 10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,2,10,10, | |
1934 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,2,2,2,2,2,2,1, | |
1935 2,1,1,1,1,1,1,1,1,7,2,1,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1936 1,1,1,2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,4,7,2,1,2,2,2,1,1, | |
1937 1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,2, | |
1938 2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1939 1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1, | |
1940 2,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1, | |
1941 1,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,7,2,1,2,2,2,1,1,2,1,2,1,1,1,1,1,1,1,1,1, | |
1942 1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,1,7,2,2,1,7,2,1,7,2,1,7,2, | |
1943 1,7,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,4,7,2,1,2,2,2,1,1,1,2,1,2,1,1,1,1,1,1, | |
1944 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,7,1,2,2,2,2,2,1,2,1, | |
1945 1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,2,2,2,1,1,2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1, | |
1946 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1 | |
1947 }; | |
1948 | |
1949 | |
1950 static const unsigned short ag_pstt[] = { | |
1951 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,1,2,4,0,3,3,4, | |
1952 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,1,5,6, | |
1953 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,2,7, | |
1954 8, | |
1955 349,349,1,2,351,349, | |
1956 136,136,136,129,129,9,142,10,17,18,21,22,20,19,42,43,48,50,51,24,52,62,1,4, | |
1957 99,54,101,100,0,64,21,21,63,24,61,60,31,21,21,59,58,57,56,49,55,47,60, | |
1958 53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23, | |
1959 100,14,100,129,11,46,16,15,12,13, | |
1960 115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115, | |
1961 115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,117, | |
1962 118,6, | |
1963 110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110, | |
1964 110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112, | |
1965 113,8, | |
1966 65,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70, | |
1967 70,70,70,70,70,70,70,70,66,156,155,154,153,152,151,150,149,148,147,146, | |
1968 9,70,70,70,69,68,67,70, | |
1969 71,71,10,126,71, | |
1970 65,143,143,143,143,143,143,141,143,143,143,143,143,143,143,143,143,143,143, | |
1971 143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,66,156,155, | |
1972 154,153,152,151,150,149,148,147,146,11,143,143,143,69,68,67,143, | |
1973 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
1974 350,350,350,350,350,350,3,3,1,2,12,3,3,405, | |
1975 130,130,72,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
1976 350,350,350,350,350,350,350,350,350,3,3,1,2,13,3,130,3,415, | |
1977 73,119, | |
1978 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
1979 350,350,350,350,350,350,3,3,1,2,15,3,3,403, | |
1980 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
1981 350,350,350,350,350,350,3,3,1,2,16,3,3,402, | |
1982 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
1983 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
1984 350,17,3,3,400, | |
1985 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
1986 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
1987 350,18,3,3,399, | |
1988 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
1989 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
1990 350,19,3,3,392, | |
1991 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
1992 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
1993 350,20,3,3,393, | |
1994 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
1995 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
1996 350,3,3,1,2,21,3,3,398, | |
1997 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
1998 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
1999 350,3,3,1,2,22,3,3,397, | |
2000 74,97,75, | |
2001 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2002 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2003 350,24,3,3,358, | |
2004 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,25,99,54,101,100,76,77,54, | |
2005 27,28,96,96,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2006 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,26,99,54,101,100,76,77,54, | |
2007 27,28,95,95,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2008 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,27,99,54,101,100,76,77,54, | |
2009 27,28,94,94,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2010 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,28,99,54,101,100,76,77,54, | |
2011 27,28,93,93,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2012 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,29,99,54,101,100,76,77,54, | |
2013 27,28,92,92,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2014 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,30,99,54,101,100,76,77,54, | |
2015 27,28,91,91,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2016 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,31,99,54,101,100,79,78,31, | |
2017 78,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2018 23,100,14,100,129,11,46,16,15,12,13, | |
2019 80,82,84,81,85,83,81, | |
2020 20,19,78,87,86, | |
2021 88,90,73,91,89, | |
2022 92,94,96,98,70,99,97,95,93, | |
2023 100,102,68,103,101, | |
2024 104,66,105, | |
2025 106,64,107, | |
2026 108,39,109, | |
2027 110,61,111, | |
2028 63,59,59,59,59,59,59,59,41, | |
2029 350,3,3,1,2,42,3,3,366, | |
2030 350,3,3,1,2,43,3,3,364, | |
2031 112,114,44,115,113, | |
2032 58,58,56,56,56,56,56,45, | |
2033 137,137,137,137,137,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2034 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2035 350,350,350,350,350,350,350,350,350,3,3,1,2,46,3,3,353, | |
2036 24,47,116, | |
2037 350,3,3,1,2,48,3,3,363, | |
2038 24,49,117, | |
2039 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2040 350,350,3,3,1,2,50,3,3,362, | |
2041 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2042 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2043 350,350,3,3,1,2,350,51,3,3,361, | |
2044 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2045 350,350,350,350,350,3,3,1,2,350,52,3,3,352, | |
2046 118,102,21,22,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, | |
2047 102,102,102,102,102,122,124,126,128,130,132,134,136,138,140,102,102,120, | |
2048 102,142,102,53,143,121,141,139,137,135,133,131,129,127,125,123,103,104, | |
2049 119, | |
2050 135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135, | |
2051 135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135, | |
2052 135,24,135,135,135,135,135,54,144, | |
2053 136,136,136,129,129,9,142,10,17,18,21,22,20,19,42,43,48,50,51,24,52,55,99, | |
2054 54,101,100,38,24,60,31,145,38,59,58,57,56,49,55,47,60,53,54,45,44,41,40, | |
2055 39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11, | |
2056 46,16,15,12,13, | |
2057 24,56,146, | |
2058 136,136,136,129,129,9,142,10,17,18,21,22,20,19,42,43,48,50,51,24,52,57,99, | |
2059 54,101,100,24,60,31,29,36,59,58,57,56,49,55,47,60,53,54,45,44,41,40,39, | |
2060 38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11,46, | |
2061 16,15,12,13, | |
2062 136,136,136,129,129,9,142,10,17,18,21,22,20,19,42,43,48,50,51,24,52,58,99, | |
2063 54,101,100,147,24,60,31,147,147,59,58,57,56,49,55,47,60,53,54,45,44,41, | |
2064 40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129, | |
2065 11,46,16,15,12,13, | |
2066 136,136,136,129,129,9,142,10,17,18,21,22,20,19,42,43,48,50,51,149,24,52,62, | |
2067 59,99,54,101,100,148,21,21,63,24,61,60,31,21,21,59,25,58,57,56,49,55,47, | |
2068 60,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2069 23,100,14,100,129,11,46,16,15,12,13, | |
2070 52,60,23, | |
2071 136,136,136,61,150,46, | |
2072 152,153,154,155,157,158,161,162,163,118,17,18,80,82,84,20,19,94,98,104,106, | |
2073 110,114,156,51,159,24,160,120,151,142,165,62,164,165,164,164,164,164, | |
2074 164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164, | |
2075 164,164,164,164,164,164,164,164,164, | |
2076 52,63,9, | |
2077 136,136,136,129,129,9,142,10,17,18,21,22,20,19,42,43,48,50,51,24,52,166,2, | |
2078 64,99,54,101,100,22,22,63,24,61,60,31,22,22,59,58,57,56,49,55,47,60,53, | |
2079 54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23, | |
2080 100,14,100,129,11,46,16,15,12,13, | |
2081 162,65, | |
2082 168,168,165,165,66,165, | |
2083 164,160, | |
2084 163,159, | |
2085 168,168,166,166,158,166, | |
2086 138,70, | |
2087 131,71,71,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131, | |
2088 131,131,131,131,131,131,131,131,131,131,131,131,131,71,132,71, | |
2089 125,71,71,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125, | |
2090 125,125,125,125,125,125,125,125,125,125,125,125,125,72,124,71, | |
2091 168,168,167,168,73,168, | |
2092 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,74,3,3, | |
2093 401, | |
2094 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,75,99,54,101,100,76,77,54, | |
2095 27,28,98,98,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2096 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,76,99,54,101,100,78,31,78, | |
2097 53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23, | |
2098 100,14,100,129,11,46,16,15,12,13, | |
2099 118,102,21,22,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, | |
2100 102,102,102,102,102,102,102,120,102,102,77,121,103,104,119, | |
2101 160,78,107, | |
2102 160,79,169, | |
2103 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2104 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2105 350,80,3,3,396, | |
2106 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,81,99,54,101,100,31,77,54, | |
2107 27,28,87,87,87,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2108 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2109 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2110 350,82,3,3,395, | |
2111 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,83,99,54,101,100,31,77,54, | |
2112 27,28,86,86,86,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2113 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2114 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2115 350,84,3,3,394, | |
2116 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,85,99,54,101,100,31,77,54, | |
2117 27,28,85,85,85,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2118 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,86,99,54,101,100,31,77,54, | |
2119 170,27,28,170,170,170,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2120 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,87,99,54,101,100,31,77,54, | |
2121 171,27,28,171,171,171,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2122 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,88,3,3, | |
2123 391, | |
2124 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,89,99,54,101,100,31,77,54, | |
2125 172,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2126 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,90,3,3, | |
2127 390, | |
2128 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,91,99,54,101,100,31,77,54, | |
2129 173,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2130 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,92,3,3, | |
2131 389, | |
2132 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,93,99,54,101,100,31,77,54, | |
2133 174,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11,46,16,15,12, | |
2134 13, | |
2135 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2136 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2137 350,94,3,3,388, | |
2138 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,95,99,54,101,100,31,77,54, | |
2139 175,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11,46,16,15,12, | |
2140 13, | |
2141 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,96,3,3, | |
2142 387, | |
2143 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,97,99,54,101,100,31,77,54, | |
2144 176,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11,46,16,15,12, | |
2145 13, | |
2146 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2147 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2148 350,98,3,3,386, | |
2149 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,99,99,54,101,100,31,77,54, | |
2150 177,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11,46,16,15,12, | |
2151 13, | |
2152 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,100,3,3, | |
2153 385, | |
2154 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,101,99,54,101,100,31,77, | |
2155 54,178,34,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11,46,16, | |
2156 15,12,13, | |
2157 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,102,3,3, | |
2158 384, | |
2159 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,103,99,54,101,100,31,77, | |
2160 54,179,34,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11,46,16, | |
2161 15,12,13, | |
2162 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2163 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2164 350,104,3,3,383, | |
2165 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,105,99,54,101,100,31,77, | |
2166 54,180,35,34,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11,46, | |
2167 16,15,12,13, | |
2168 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2169 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2170 350,106,3,3,382, | |
2171 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,107,99,54,101,100,31,77, | |
2172 54,181,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11, | |
2173 46,16,15,12,13, | |
2174 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,108,3,3, | |
2175 380, | |
2176 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,109,99,54,101,100,31,77, | |
2177 54,182,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100, | |
2178 129,11,46,16,15,12,13, | |
2179 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2180 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2181 350,110,3,3,381, | |
2182 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,111,99,54,101,100,31,77, | |
2183 54,183,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129, | |
2184 11,46,16,15,12,13, | |
2185 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,112,3,3, | |
2186 379, | |
2187 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,113,99,54,101,100,31,77, | |
2188 54,184,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23,100,14, | |
2189 100,129,11,46,16,15,12,13, | |
2190 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2191 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2192 350,114,3,3,378, | |
2193 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,115,99,54,101,100,185,31, | |
2194 185,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26, | |
2195 25,23,100,14,100,129,11,46,16,15,12,13, | |
2196 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,116,99,54,101,100,41,31, | |
2197 186,41,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29, | |
2198 26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2199 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,117,99,54,101,100,41,31, | |
2200 187,41,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29, | |
2201 26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2202 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2203 350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,350,118, | |
2204 3,3,404, | |
2205 136,136,136,119,188,46, | |
2206 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2207 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2208 350,120,3,3,356, | |
2209 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,121,99,54,101,100,189,31, | |
2210 189,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26, | |
2211 25,23,100,14,100,129,11,46,16,15,12,13, | |
2212 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,122,3,3, | |
2213 376, | |
2214 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,123,99,54,101,100,53,31, | |
2215 53,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2216 23,100,14,100,129,11,46,16,15,12,13, | |
2217 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,124,3,3, | |
2218 375, | |
2219 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,125,99,54,101,100,52,31, | |
2220 52,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2221 23,100,14,100,129,11,46,16,15,12,13, | |
2222 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,126,3,3, | |
2223 374, | |
2224 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,127,99,54,101,100,51,31, | |
2225 51,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2226 23,100,14,100,129,11,46,16,15,12,13, | |
2227 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,128,3,3, | |
2228 373, | |
2229 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,129,99,54,101,100,50,31, | |
2230 50,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2231 23,100,14,100,129,11,46,16,15,12,13, | |
2232 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,130,3,3, | |
2233 372, | |
2234 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,131,99,54,101,100,49,31, | |
2235 49,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2236 23,100,14,100,129,11,46,16,15,12,13, | |
2237 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,132,3,3, | |
2238 371, | |
2239 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,133,99,54,101,100,48,31, | |
2240 48,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2241 23,100,14,100,129,11,46,16,15,12,13, | |
2242 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,134,3,3, | |
2243 370, | |
2244 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,135,99,54,101,100,47,31, | |
2245 47,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2246 23,100,14,100,129,11,46,16,15,12,13, | |
2247 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,136,3,3, | |
2248 369, | |
2249 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,137,99,54,101,100,46,31, | |
2250 46,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2251 23,100,14,100,129,11,46,16,15,12,13, | |
2252 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,138,3,3, | |
2253 368, | |
2254 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,139,99,54,101,100,45,31, | |
2255 45,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2256 23,100,14,100,129,11,46,16,15,12,13, | |
2257 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,140,3,3, | |
2258 367, | |
2259 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,141,99,54,101,100,44,31, | |
2260 44,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2261 23,100,14,100,129,11,46,16,15,12,13, | |
2262 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2263 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2264 350,142,3,3,354, | |
2265 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,143,99,54,101,100,43,31, | |
2266 43,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2267 23,100,14,100,129,11,46,16,15,12,13, | |
2268 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,15,144,99,54,101,100,17, | |
2269 31,191,190,17,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32, | |
2270 30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2271 192,19,193, | |
2272 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,31,146,99,54,101,100,33, | |
2273 31,195,194,33,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32, | |
2274 30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2275 43,147,196,49, | |
2276 136,136,136,129,129,9,142,10,17,18,21,22,20,19,42,43,48,50,51,149,24,52,197, | |
2277 148,99,54,101,100,22,22,63,24,61,60,31,22,22,59,26,58,57,56,49,55,47,60, | |
2278 53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23, | |
2279 100,14,100,129,11,46,16,15,12,13, | |
2280 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2281 350,350,350,350,3,3,1,2,350,149,3,3,360, | |
2282 24,120,142,11,150,200,199,198, | |
2283 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2284 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2285 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3, | |
2286 1,2,350,151,3,3,355, | |
2287 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2288 350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,350,152, | |
2289 3,3,414, | |
2290 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2291 350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,350,153, | |
2292 3,3,413, | |
2293 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2294 350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,350,154, | |
2295 3,3,412, | |
2296 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2297 350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,350,155, | |
2298 3,3,411, | |
2299 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2300 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2301 350,156,3,3,377, | |
2302 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2303 350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,350,157, | |
2304 3,3,410, | |
2305 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2306 350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,350,158, | |
2307 3,3,409, | |
2308 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2309 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2, | |
2310 350,159,3,3,359, | |
2311 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2312 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2313 350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,350,160,3,3,357, | |
2314 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2315 350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,350,161, | |
2316 3,3,408, | |
2317 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2318 350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,350,162, | |
2319 3,3,407, | |
2320 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2321 350,350,350,350,350,350,350,350,350,350,350,350,350,350,3,3,1,2,350,163, | |
2322 3,3,406, | |
2323 152,153,154,155,157,158,161,162,163,118,17,18,80,82,84,20,19,94,98,104,106, | |
2324 110,114,156,51,159,24,160,120,151,142,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, | |
2325 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, | |
2326 52,165,10, | |
2327 152,153,154,155,157,158,161,162,163,118,17,18,80,82,84,20,19,94,98,104,106, | |
2328 110,114,156,51,159,24,160,120,151,142,201,201,166,164,201,164,164,164, | |
2329 164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164, | |
2330 164,164,164,164,164,164,164,164,164,164, | |
2331 133,133,167,202,133, | |
2332 133,133,168,203,133, | |
2333 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,169,99,54,101,100,31,77, | |
2334 54,27,28,89,89,89,30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2335 80,82,84,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,170, | |
2336 85,83,81, | |
2337 80,82,84,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,171, | |
2338 85,83,81, | |
2339 20,19,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,172,87,86, | |
2340 20,19,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,173,87,86, | |
2341 88,90,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,174,91,89, | |
2342 88,90,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,175,91,89, | |
2343 88,90,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,176,91,89, | |
2344 88,90,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,177,91,89, | |
2345 92,94,96,98,72,72,72,72,72,72,72,72,72,72,72,72,72,178,99,97,95,93, | |
2346 92,94,96,98,71,71,71,71,71,71,71,71,71,71,71,71,71,179,99,97,95,93, | |
2347 100,102,69,69,69,69,69,69,69,69,69,69,69,180,103,101, | |
2348 104,67,67,67,67,67,67,67,67,67,67,181,105, | |
2349 110,62,62,62,62,62,62,62,62,182,111, | |
2350 106,65,65,65,65,65,65,65,65,65,183,107, | |
2351 63,60,60,60,60,60,60,60,184, | |
2352 156,185,204, | |
2353 160,186,40, | |
2354 160,187,35, | |
2355 24,188,205, | |
2356 151,189,55, | |
2357 159,16,190,206, | |
2358 160,191,105, | |
2359 350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350, | |
2360 350,350,3,3,1,2,192,3,3,365, | |
2361 136,136,136,129,129,9,142,10,17,18,21,22,20,19,42,43,48,50,51,24,52,62,193, | |
2362 99,54,101,100,39,39,63,24,61,60,31,39,39,59,58,57,56,49,55,47,60,53,54, | |
2363 45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23,100, | |
2364 14,100,129,11,46,16,15,12,13, | |
2365 159,32,207, | |
2366 52,195,208, | |
2367 52,196,28, | |
2368 152,153,154,155,157,158,161,162,163,118,17,18,80,82,84,20,19,94,98,104,106, | |
2369 110,114,156,51,209,159,24,160,120,151,142,209,197,164,209,164,164,164, | |
2370 164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164, | |
2371 164,164,164,164,164,164,164,164,164,164, | |
2372 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,15,198,99,54,101,100,17, | |
2373 31,210,190,17,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32, | |
2374 30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2375 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,199,99,54,101,100,211,31, | |
2376 211,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26, | |
2377 25,23,100,14,100,129,11,46,16,15,12,13, | |
2378 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,200,99,54,101,100,12,31, | |
2379 12,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2380 23,100,14,100,129,11,46,16,15,12,13, | |
2381 52,7,201,10, | |
2382 134,134,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, | |
2383 123,123,123,123,123,123,123,123,123,123,123,123,202,134, | |
2384 134,134,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122, | |
2385 122,122,122,122,122,122,122,122,122,122,122,122,203,134, | |
2386 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,204,99,54,101,100,31,57, | |
2387 77,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23, | |
2388 100,14,100,129,11,46,16,15,12,13, | |
2389 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,15,205,99,54,101,100,17, | |
2390 31,212,190,17,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32, | |
2391 30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2392 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,206,99,54,101,100,18,31, | |
2393 18,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2394 23,100,14,100,129,11,46,16,15,12,13, | |
2395 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,207,99,54,101,100,34,31, | |
2396 34,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25, | |
2397 23,100,14,100,129,11,46,16,15,12,13, | |
2398 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,208,99,54,101,100,41,31, | |
2399 213,41,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32,30,29, | |
2400 26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2401 149,52,209,10,27, | |
2402 160,210,14, | |
2403 151,211,13, | |
2404 160,212,106, | |
2405 52,213,214, | |
2406 136,136,136,129,129,9,142,10,17,18,21,22,20,19,24,31,214,99,54,101,100,33, | |
2407 31,215,194,33,53,54,45,44,41,40,39,38,37,36,35,34,33,32,27,28,32,32,32, | |
2408 30,29,26,25,23,100,14,100,129,11,46,16,15,12,13, | |
2409 160,215,216, | |
2410 136,136,136,129,129,9,142,10,17,18,21,22,20,19,42,43,48,50,51,24,52,216,99, | |
2411 54,101,100,24,60,31,30,37,59,58,57,56,49,55,47,60,53,54,45,44,41,40,39, | |
2412 38,37,36,35,34,33,32,27,28,32,32,32,30,29,26,25,23,100,14,100,129,11,46, | |
2413 16,15,12,13, | |
2414 | |
2415 }; | |
2416 | |
2417 | |
2418 static const unsigned short ag_sbt[] = { | |
2419 0, 30, 68, 107, 113, 194, 229, 231, 267, 269, 322, 327, 381, 414, | |
2420 451, 453, 486, 519, 563, 607, 651, 695, 741, 787, 790, 834, 876, 918, | |
2421 960,1002,1044,1086,1144,1151,1156,1161,1170,1175,1178,1181,1184,1187, | |
2422 1196,1205,1214,1219,1227,1281,1284,1293,1296,1325,1373,1406,1462,1508, | |
2423 1582,1585,1658,1732,1813,1816,1822,1888,1891,1970,1972,1978,1980,1982, | |
2424 1988,1990,2025,2060,2066,2089,2131,2188,2222,2225,2228,2272,2315,2359, | |
2425 2402,2446,2489,2533,2577,2600,2645,2668,2713,2736,2782,2826,2872,2895, | |
2426 2941,2985,3031,3054,3101,3124,3171,3215,3263,3307,3356,3379,3430,3474, | |
2427 3524,3547,3600,3644,3701,3759,3817,3859,3865,3909,3966,3989,4046,4069, | |
2428 4126,4149,4206,4229,4286,4309,4366,4389,4446,4469,4526,4549,4606,4629, | |
2429 4686,4709,4766,4810,4867,4927,4930,4990,4994,5074,5106,5114,5177,5219, | |
2430 5261,5303,5345,5389,5431,5473,5517,5574,5616,5658,5700,5763,5766,5833, | |
2431 5838,5843,5886,5914,5942,5966,5990,6012,6034,6056,6078,6100,6122,6138, | |
2432 6151,6162,6174,6183,6186,6189,6192,6195,6198,6202,6205,6234,6312,6315, | |
2433 6318,6321,6388,6448,6505,6562,6566,6599,6632,6688,6748,6805,6862,6920, | |
2434 6925,6928,6931,6934,6937,6997,7000,7073 | |
2435 }; | |
2436 | |
2437 | |
2438 static const unsigned short ag_sbe[] = { | |
2439 26, 65, 104, 111, 136, 228, 230, 266, 268, 314, 324, 373, 410, 446, | |
2440 452, 482, 515, 559, 603, 647, 691, 737, 783, 788, 830, 849, 891, 933, | |
2441 975,1017,1059,1101,1147,1153,1158,1165,1172,1176,1179,1182,1185,1195, | |
2442 1201,1210,1216,1226,1277,1282,1289,1294,1321,1369,1402,1446,1506,1529, | |
2443 1583,1606,1679,1755,1814,1819,1854,1889,1914,1971,1976,1979,1981,1986, | |
2444 1989,2022,2057,2064,2085,2104,2146,2217,2223,2226,2268,2287,2355,2374, | |
2445 2442,2461,2504,2548,2596,2615,2664,2683,2732,2751,2822,2841,2891,2910, | |
2446 2981,3000,3050,3069,3120,3139,3211,3230,3303,3322,3375,3394,3470,3489, | |
2447 3543,3562,3640,3659,3716,3774,3855,3862,3905,3924,3985,4004,4065,4084, | |
2448 4145,4164,4225,4244,4305,4324,4385,4404,4465,4484,4545,4564,4625,4644, | |
2449 4705,4724,4806,4825,4883,4928,4946,4991,5017,5102,5110,5173,5215,5257, | |
2450 5299,5341,5385,5427,5469,5513,5570,5612,5654,5696,5731,5764,5799,5835, | |
2451 5840,5858,5910,5938,5963,5987,6009,6031,6053,6075,6095,6117,6135,6149, | |
2452 6160,6172,6182,6184,6187,6190,6193,6196,6200,6203,6230,6256,6313,6316, | |
2453 6319,6354,6404,6463,6520,6564,6597,6630,6647,6704,6763,6820,6877,6922, | |
2454 6926,6929,6932,6935,6953,6998,7021,7073 | |
2455 }; | |
2456 | |
2457 | |
2458 static const unsigned char ag_fl[] = { | |
2459 2,1,2,1,2,0,1,4,1,2,3,2,4,5,5,0,1,1,3,1,1,1,2,2,1,2,3,5,4,2,9,0,1,1,3, | |
2460 4,2,9,2,4,4,1,1,3,3,3,3,3,3,3,3,3,3,3,1,4,1,5,1,1,3,1,3,1,1,3,1,3,1,3, | |
2461 1,3,3,1,3,3,3,3,1,3,3,1,3,3,1,3,3,3,1,4,1,2,2,2,2,2,2,1,3,1,1,1,1,2,2, | |
2462 4,6,3,1,1,2,0,1,3,1,2,0,1,3,1,0,1,4,4,3,2,2,1,1,1,2,1,2,1,2,1,1,2,3,1, | |
2463 1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1, | |
2464 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2465 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2466 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2467 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2468 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2, | |
2469 0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
2470 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 | |
2471 }; | |
2472 | |
2473 static const unsigned char ag_ptt[] = { | |
2474 0, 6, 6, 11, 11, 12, 12, 6, 13, 13, 13, 15, 15, 15, 15, 23, 23, 25, | |
2475 25, 14, 14, 8, 8, 27, 27, 27, 27, 27, 27, 27, 27, 34, 34, 36, 36, 32, | |
2476 28, 28, 28, 28, 38, 35, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, | |
2477 42, 42, 41, 41, 55, 54, 54, 58, 58, 61, 60, 60, 63, 63, 65, 65, 67, 67, | |
2478 67, 69, 69, 69, 69, 69, 72, 72, 72, 77, 77, 77, 80, 80, 80, 80, 83, 83, | |
2479 87, 87, 87, 87, 87, 87, 87, 88, 88, 93, 93, 93, 93, 93, 93, 93, 93, 93, | |
2480 1,100,100,101,101, 1,105,105,106,106, 1,204,110,110,204,204,108,108, | |
2481 108, 95, 95,217,217,113,113,111,111, 17,155,155,207,118,118,205,121,121, | |
2482 123,123,120,120,120,120,120,120,120,120,120,120,120,120,120,136,136,136, | |
2483 138,139,140,137,137,144,144,114, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |
2484 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |
2485 10, 10, 10, 97, 97, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, | |
2486 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, | |
2487 99, 99, 99, 99,104,104,104,104,104,104,104,104,104,104,104,104,104,104, | |
2488 104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104, | |
2489 104,104,115,115,115,116,116,116,116,116,119,119,119,119,119,119,119,119, | |
2490 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, | |
2491 119,119,119,119,119,119,124,124,124,124,124,124,124,124,124,124,124,124, | |
2492 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
2493 124,124,145,145,146,146,152,152,153,153, 16, 3, 18, 21, 20, 24, 22, 26, | |
2494 30, 29, 31, 33, 37, 39, 40, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 57, | |
2495 56, 59, 62, 64, 66, 68, 70, 71, 73, 74, 75, 76, 78, 79, 81, 82, 84, 85, | |
2496 86, 89, 90, 91, 92, 94, 2, 4, 96, 5,147,122,117,142,148,149,109,150, | |
2497 141,112 | |
2498 }; | |
2499 | |
2500 static const unsigned char *ag_valid(int ag_k) { | |
2501 const unsigned char *ag_tp = &ag_tstt[ag_sbt[(PCB).sn+1]]; | |
2502 while (*--ag_tp != (unsigned char) ag_k) if (*ag_tp == 0) return NULL; | |
2503 return ag_tp; | |
2504 } | |
2505 | |
2506 int vmCompile_change_reduction(vmCompile_token_type ag_k) { | |
2507 if (!ag_valid(ag_k)) return 0; | |
2508 (PCB).reduction_token = ag_k; | |
2509 return 1; | |
2510 } | |
2511 | |
2512 static void ag_default(const int *ag_tp) { | |
2513 (PCB).ag_dsn = (PCB).sn; | |
2514 (PCB).ag_dtl = ag_tp; | |
2515 while (!ag_valid((vmCompile_token_type) *ag_tp)) ag_tp++; | |
2516 (PCB).reduction_token = (vmCompile_token_type) *ag_tp; | |
2517 } | |
2518 | |
2519 | |
2520 | |
2521 static void ag_ra(void) | |
2522 { | |
2523 switch(ag_rpx[(PCB).ag_ap]) { | |
2524 case 1: V(0,(Code *)) = ag_rp_1(); break; | |
2525 case 2: V(0,(Code *)) = ag_rp_2(V(0,(Code *))); break; | |
2526 case 3: V(0,(Code *)) = ag_rp_3(V(0,(Code *))); break; | |
2527 case 4: V(0,(Code *)) = ag_rp_4(); break; | |
2528 case 5: V(0,(Code *)) = ag_rp_5(V(0,(int *)), V(1,(int *))); break; | |
2529 case 6: V(0,(Code *)) = ag_rp_6(V(0,(int *)), V(1,(int *)), V(3,(Code *))); break; | |
2530 case 7: V(0,(Code *)) = ag_rp_7(V(0,(int *)), V(1,(int *)), V(3,(Code *))); break; | |
2531 case 8: V(0,(Code *)) = ag_rp_8(V(0,(int *)), V(1,(int *)), V(3,(Code *))); break; | |
2532 case 9: V(0,(Code *)) = ag_rp_9(); break; | |
2533 case 10: V(0,(Code *)) = ag_rp_10(V(0,(Code *))); break; | |
2534 case 11: V(0,(Code *)) = ag_rp_11(V(0,(Code *))); break; | |
2535 case 12: V(0,(Code *)) = ag_rp_12(V(0,(Code *)), V(2,(Code *))); break; | |
2536 case 13: V(0,(Code *)) = ag_rp_13(V(0,(Code *))); break; | |
2537 case 14: V(0,(Code *)) = ag_rp_14(V(0,(Code *)), V(1,(Code *))); break; | |
2538 case 15: V(0,(Code *)) = ag_rp_15(V(0,(Code *))); break; | |
2539 case 16: V(0,(Code *)) = ag_rp_16(); break; | |
2540 case 17: V(0,(Code *)) = ag_rp_17(); break; | |
2541 case 18: V(0,(Code *)) = ag_rp_18(V(1,(Code *))); break; | |
2542 case 19: V(0,(Code *)) = ag_rp_19(V(1,(Code *))); break; | |
2543 case 20: V(0,(Code *)) = ag_rp_20(V(1,(Code *)), V(2,(Code *))); break; | |
2544 case 21: V(0,(Code *)) = ag_rp_21(V(0,(Code *)), V(1,(Code *))); break; | |
2545 case 22: V(0,(Code *)) = ag_rp_22(V(2,(Code *)), V(4,(Code *)), V(6,(Code *)), V(8,(Code *))); break; | |
2546 case 23: V(0,(Code *)) = ag_rp_23(); break; | |
2547 case 24: V(0,(Code *)) = ag_rp_24(V(0,(Code *))); break; | |
2548 case 25: V(0,(Code *)) = ag_rp_25(V(0,(Code *)), V(2,(Code *))); break; | |
2549 case 26: V(0,(Code *)) = ag_rp_26(V(2,(Code *))); break; | |
2550 case 27: V(0,(Code *)) = ag_rp_27(V(0,(Code *)), V(1,(Code *))); break; | |
2551 case 28: V(0,(Code *)) = ag_rp_28(V(2,(Code *)), V(4,(Code *)), V(6,(Code *)), V(8,(Code *))); break; | |
2552 case 29: V(0,(Code *)) = ag_rp_29(V(0,(Code *)), V(1,(Code *))); break; | |
2553 case 30: V(0,(Code *)) = ag_rp_30(V(0,(Code *)), V(1,(Code *)), V(3,(Code *))); break; | |
2554 case 31: V(0,(Code *)) = ag_rp_31(V(2,(Code *))); break; | |
2555 case 32: V(0,(Code *)) = ag_rp_32(V(0,(Code *))); break; | |
2556 case 33: V(0,(Code *)) = ag_rp_33(V(0,(Code *)), V(2,(Code *))); break; | |
2557 case 34: V(0,(Code *)) = ag_rp_34(V(0,(Code *)), V(2,(Code *))); break; | |
2558 case 35: V(0,(Code *)) = ag_rp_35(V(0,(Code *)), V(2,(Code *))); break; | |
2559 case 36: V(0,(Code *)) = ag_rp_36(V(0,(Code *)), V(2,(Code *))); break; | |
2560 case 37: V(0,(Code *)) = ag_rp_37(V(0,(Code *)), V(2,(Code *))); break; | |
2561 case 38: V(0,(Code *)) = ag_rp_38(V(0,(Code *)), V(2,(Code *))); break; | |
2562 case 39: V(0,(Code *)) = ag_rp_39(V(0,(Code *)), V(2,(Code *))); break; | |
2563 case 40: V(0,(Code *)) = ag_rp_40(V(0,(Code *)), V(2,(Code *))); break; | |
2564 case 41: V(0,(Code *)) = ag_rp_41(V(0,(Code *)), V(2,(Code *))); break; | |
2565 case 42: V(0,(Code *)) = ag_rp_42(V(0,(Code *)), V(2,(Code *))); break; | |
2566 case 43: V(0,(Code *)) = ag_rp_43(V(0,(Code *)), V(2,(Code *))); break; | |
2567 case 44: V(0,(Code *)) = ag_rp_44(V(0,(int *))); break; | |
2568 case 45: V(0,(Code *)) = ag_rp_45(V(0,(Code *)), V(2,(Code *))); break; | |
2569 case 46: V(0,(Code *)) = ag_rp_46(V(0,(Code *)), V(2,(Code *)), V(4,(Code *))); break; | |
2570 case 47: V(0,(Code *)) = ag_rp_47(V(0,(Code *))); break; | |
2571 case 48: V(0,(Code *)) = ag_rp_48(V(0,(Code *)), V(2,(Code *))); break; | |
2572 case 49: V(0,(Code *)) = ag_rp_49(V(0,(Code *)), V(2,(Code *))); break; | |
2573 case 50: V(0,(Code *)) = ag_rp_50(V(0,(Code *))); break; | |
2574 case 51: V(0,(Code *)) = ag_rp_51(V(0,(Code *)), V(2,(Code *))); break; | |
2575 case 52: V(0,(Code *)) = ag_rp_52(V(0,(Code *)), V(2,(Code *))); break; | |
2576 case 53: V(0,(Code *)) = ag_rp_53(V(0,(Code *)), V(2,(Code *))); break; | |
2577 case 54: V(0,(Code *)) = ag_rp_54(V(0,(Code *)), V(2,(Code *))); break; | |
2578 case 55: V(0,(Code *)) = ag_rp_55(V(0,(Code *)), V(2,(Code *))); break; | |
2579 case 56: V(0,(Code *)) = ag_rp_56(V(0,(Code *)), V(2,(Code *))); break; | |
2580 case 57: V(0,(Code *)) = ag_rp_57(V(0,(Code *)), V(2,(Code *))); break; | |
2581 case 58: V(0,(Code *)) = ag_rp_58(V(0,(Code *)), V(2,(Code *))); break; | |
2582 case 59: V(0,(Code *)) = ag_rp_59(V(0,(Code *)), V(2,(Code *))); break; | |
2583 case 60: V(0,(Code *)) = ag_rp_60(V(0,(Code *)), V(2,(Code *))); break; | |
2584 case 61: V(0,(Code *)) = ag_rp_61(V(0,(Code *)), V(2,(Code *))); break; | |
2585 case 62: V(0,(Code *)) = ag_rp_62(V(0,(Code *)), V(2,(Code *))); break; | |
2586 case 63: V(0,(Code *)) = ag_rp_63(V(0,(Code *)), V(2,(Code *))); break; | |
2587 case 64: V(0,(Code *)) = ag_rp_64(V(0,(Code *)), V(2,(Code *))); break; | |
2588 case 65: V(0,(Code *)) = ag_rp_65(V(0,(Code *)), V(2,(Code *))); break; | |
2589 case 66: V(0,(Code *)) = ag_rp_66(V(0,(Code *)), V(2,(Code *))); break; | |
2590 case 67: V(0,(Code *)) = ag_rp_67(V(1,(int *)), V(3,(Code *))); break; | |
2591 case 68: V(0,(Code *)) = ag_rp_68(V(1,(Code *))); break; | |
2592 case 69: V(0,(Code *)) = ag_rp_69(V(1,(Code *))); break; | |
2593 case 70: V(0,(Code *)) = ag_rp_70(V(1,(Code *))); break; | |
2594 case 71: V(0,(Code *)) = ag_rp_71(V(1,(Code *))); break; | |
2595 case 72: V(0,(Code *)) = ag_rp_72(V(1,(Code *))); break; | |
2596 case 73: V(0,(Code *)) = ag_rp_73(V(1,(Code *))); break; | |
2597 case 74: V(0,(Code *)) = ag_rp_74(V(0,(Code *)), V(2,(Code *))); break; | |
2598 case 75: V(0,(Code *)) = ag_rp_75(V(0,(double *))); break; | |
2599 case 76: V(0,(Code *)) = ag_rp_76(V(0,(int *))); break; | |
2600 case 77: V(0,(Code *)) = ag_rp_77(V(0,(int *))); break; | |
2601 case 78: V(0,(Code *)) = ag_rp_78(V(0,(Code *))); break; | |
2602 case 79: V(0,(Code *)) = ag_rp_79(V(0,(Code *))); break; | |
2603 case 80: V(0,(Code *)) = ag_rp_80(V(0,(Code *))); break; | |
2604 case 81: V(0,(Code *)) = ag_rp_81(V(0,(int *)), V(2,(Code *))); break; | |
2605 case 82: V(0,(Code *)) = ag_rp_82(V(0,(Code *)), V(2,(int *)), V(4,(Code *))); break; | |
2606 case 83: V(0,(Code *)) = ag_rp_83(V(1,(Code *))); break; | |
2607 case 84: V(0,(double *)) = ag_rp_84(V(0,(double *)), V(3,(int *))); break; | |
2608 case 85: V(0,(double *)) = ag_rp_85(V(0,(double *)), V(3,(int *))); break; | |
2609 case 86: V(0,(double *)) = ag_rp_86(V(0,(int *)), V(2,(double *))); break; | |
2610 case 87: V(0,(double *)) = ag_rp_87(V(0,(int *))); break; | |
2611 case 88: V(0,(double *)) = ag_rp_88(V(1,(double *))); break; | |
2612 case 89: V(0,(int *)) = ag_rp_89(V(0,(int *))); break; | |
2613 case 90: V(0,(int *)) = ag_rp_90(V(0,(int *)), V(1,(int *))); break; | |
2614 case 91: V(0,(double *)) = ag_rp_91(V(0,(int *))); break; | |
2615 case 92: V(0,(double *)) = ag_rp_92(V(0,(int *)), V(1,(double *))); break; | |
2616 case 93: V(0,(int *)) = ag_rp_93(V(0,(int *))); break; | |
2617 case 94: V(0,(int *)) = ag_rp_94(V(0,(int *)), V(1,(int *))); break; | |
2618 case 95: ag_default(&ag_rtt[0]); V(0,(int *)) = ag_rp_95(V(0,(int *))); break; | |
2619 case 96: V(0,(int *)) = ag_rp_96(V(0,(int *))); break; | |
2620 case 97: V(0,(int *)) = ag_rp_97(V(0,(int *)), V(1,(int *))); break; | |
2621 case 98: V(0,(int *)) = ag_rp_98(V(1,(int *))); break; | |
2622 case 99: V(0,(int *)) = ag_rp_99(V(0,(int *))); break; | |
2623 case 100: V(0,(int *)) = ag_rp_100(); break; | |
2624 case 101: V(0,(int *)) = ag_rp_101(V(0,(int *)), V(1,(int *))); break; | |
2625 case 102: V(0,(int *)) = ag_rp_102(); break; | |
2626 case 103: V(0,(int *)) = ag_rp_103(); break; | |
2627 case 104: V(0,(int *)) = ag_rp_104(); break; | |
2628 case 105: V(0,(int *)) = ag_rp_105(); break; | |
2629 case 106: V(0,(int *)) = ag_rp_106(); break; | |
2630 case 107: V(0,(int *)) = ag_rp_107(); break; | |
2631 case 108: V(0,(int *)) = ag_rp_108(); break; | |
2632 case 109: V(0,(int *)) = ag_rp_109(); break; | |
2633 case 110: V(0,(int *)) = ag_rp_110(); break; | |
2634 case 111: V(0,(int *)) = ag_rp_111(); break; | |
2635 case 112: V(0,(int *)) = ag_rp_112(); break; | |
2636 case 113: V(0,(int *)) = ag_rp_113(V(1,(int *))); break; | |
2637 case 114: V(0,(int *)) = ag_rp_114(V(0,(int *)), V(1,(int *))); break; | |
2638 case 115: V(0,(int *)) = ag_rp_115(V(0,(int *)), V(1,(int *))); break; | |
2639 case 116: V(0,(int *)) = ag_rp_116(V(1,(int *))); break; | |
2640 case 117: V(0,(int *)) = ag_rp_117(V(0,(int *)), V(1,(int *))); break; | |
2641 case 118: V(0,(int *)) = ag_rp_118(V(0,(int *))); break; | |
2642 } | |
2643 (PCB).la_ptr = (PCB).pointer; | |
2644 } | |
2645 | |
2646 #define TOKEN_NAMES vmCompile_token_names | |
2647 const char *const vmCompile_token_names[218] = { | |
2648 "input string", | |
2649 "white space", | |
2650 "real", | |
2651 "name string", | |
2652 "string literal", | |
2653 "character constant", | |
2654 "input string", | |
2655 "eof", | |
2656 "statements", | |
2657 "error", | |
2658 "", | |
2659 "", | |
2660 "", | |
2661 "statement", | |
2662 "executable statement", | |
2663 "declaration", | |
2664 "';'", | |
2665 "type name", | |
2666 "'='", | |
2667 "expression", | |
2668 "'['", | |
2669 "']'", | |
2670 "'('", | |
2671 "expression list", | |
2672 "')'", | |
2673 "expressions", | |
2674 "','", | |
2675 "unconditional statement", | |
2676 "conditional statement", | |
2677 "'{'", | |
2678 "'}'", | |
2679 "\"do\"", | |
2680 "while clause", | |
2681 "\"for\"", | |
2682 "for exprs", | |
2683 "condition", | |
2684 "for expr list", | |
2685 "\"while\"", | |
2686 "if clause", | |
2687 "\"else\"", | |
2688 "\"if\"", | |
2689 "conditional expression", | |
2690 "lvalue", | |
2691 "\"+=\"", | |
2692 "\"-=\"", | |
2693 "\"*=\"", | |
2694 "\"/=\"", | |
2695 "\"%=\"", | |
2696 "\"|=\"", | |
2697 "\"&=\"", | |
2698 "\"^=\"", | |
2699 "\"<<=\"", | |
2700 "\">>=\"", | |
2701 "variable name", | |
2702 "logical or expression", | |
2703 "logical or condition", | |
2704 "'\\?'", | |
2705 "':'", | |
2706 "logical and expression", | |
2707 "\"||\"", | |
2708 "bitwise or expression", | |
2709 "logical and condition", | |
2710 "\"&&\"", | |
2711 "bitwise xor expression", | |
2712 "'|'", | |
2713 "bitwise and expression", | |
2714 "'^'", | |
2715 "equality expression", | |
2716 "'&'", | |
2717 "relational expression", | |
2718 "\"==\"", | |
2719 "\"!=\"", | |
2720 "shift expression", | |
2721 "'<'", | |
2722 "\"<=\"", | |
2723 "'>'", | |
2724 "\">=\"", | |
2725 "additive expression", | |
2726 "\"<<\"", | |
2727 "\">>\"", | |
2728 "multiplicative expression", | |
2729 "'+'", | |
2730 "'-'", | |
2731 "cast expression", | |
2732 "'*'", | |
2733 "'/'", | |
2734 "'%'", | |
2735 "unary expression", | |
2736 "power expression", | |
2737 "\"++\"", | |
2738 "\"--\"", | |
2739 "'!'", | |
2740 "'~'", | |
2741 "primary", | |
2742 "\"**\"", | |
2743 "integer constant", | |
2744 "'.'", | |
2745 "space", | |
2746 "\"/*\"", | |
2747 "", | |
2748 "", | |
2749 "", | |
2750 "\"*/\"", | |
2751 "\"//\"", | |
2752 "", | |
2753 "", | |
2754 "", | |
2755 "'\\n'", | |
2756 "simple real", | |
2757 "", | |
2758 "", | |
2759 "exponent", | |
2760 "integer", | |
2761 "fraction part", | |
2762 "digit", | |
2763 "letter", | |
2764 "", | |
2765 "'\\''", | |
2766 "char constant element", | |
2767 "not single quote", | |
2768 "escape sequence", | |
2769 "string chars", | |
2770 "'\\\"'", | |
2771 "string char", | |
2772 "not double quote", | |
2773 "\"\\\\a\"", | |
2774 "\"\\\\b\"", | |
2775 "\"\\\\f\"", | |
2776 "\"\\\\n\"", | |
2777 "\"\\\\r\"", | |
2778 "\"\\\\t\"", | |
2779 "\"\\\\v\"", | |
2780 "\"\\\\\\\\\"", | |
2781 "\"\\\\?\"", | |
2782 "\"\\\\\\'\"", | |
2783 "\"\\\\\\\"\"", | |
2784 "octal escape", | |
2785 "hex escape", | |
2786 "one octal", | |
2787 "two octal", | |
2788 "three octal", | |
2789 "'\\\\'", | |
2790 "", | |
2791 "\"\\\\x\"", | |
2792 "hex digit", | |
2793 "", | |
2794 "", | |
2795 "", | |
2796 "", | |
2797 "", | |
2798 "", | |
2799 "", | |
2800 "", | |
2801 "", | |
2802 "';'", | |
2803 "name string", | |
2804 "'='", | |
2805 "']'", | |
2806 "'['", | |
2807 "')'", | |
2808 "'('", | |
2809 "','", | |
2810 "'}'", | |
2811 "'{'", | |
2812 "\"do\"", | |
2813 "\"for\"", | |
2814 "\"while\"", | |
2815 "\"else\"", | |
2816 "\"if\"", | |
2817 "\"+=\"", | |
2818 "\"-=\"", | |
2819 "\"*=\"", | |
2820 "\"/=\"", | |
2821 "\"%=\"", | |
2822 "\"|=\"", | |
2823 "\"&=\"", | |
2824 "\"^=\"", | |
2825 "\"<<=\"", | |
2826 "\">>=\"", | |
2827 "':'", | |
2828 "'\\?'", | |
2829 "\"||\"", | |
2830 "\"&&\"", | |
2831 "'|'", | |
2832 "'^'", | |
2833 "'&'", | |
2834 "\"==\"", | |
2835 "\"!=\"", | |
2836 "'<'", | |
2837 "\"<=\"", | |
2838 "'>'", | |
2839 "\">=\"", | |
2840 "\"<<\"", | |
2841 "\">>\"", | |
2842 "'+'", | |
2843 "'-'", | |
2844 "'*'", | |
2845 "'/'", | |
2846 "'%'", | |
2847 "\"++\"", | |
2848 "\"--\"", | |
2849 "'!'", | |
2850 "'~'", | |
2851 "\"**\"", | |
2852 "real", | |
2853 "string literal", | |
2854 "'.'", | |
2855 "character constant", | |
2856 "", | |
2857 "'\\\"'", | |
2858 "'\\''", | |
2859 "", | |
2860 "", | |
2861 "", | |
2862 "", | |
2863 "", | |
2864 "'\\\\'", | |
2865 "integer", | |
2866 | |
2867 }; | |
2868 | |
2869 #ifndef MISSING_FORMAT | |
2870 #define MISSING_FORMAT "Missing %s" | |
2871 #endif | |
2872 #ifndef UNEXPECTED_FORMAT | |
2873 #define UNEXPECTED_FORMAT "Unexpected %s" | |
2874 #endif | |
2875 #ifndef UNNAMED_TOKEN | |
2876 #define UNNAMED_TOKEN "input" | |
2877 #endif | |
2878 | |
2879 | |
2880 static void ag_diagnose(void) { | |
2881 int ag_snd = (PCB).sn; | |
2882 int ag_k = ag_sbt[ag_snd]; | |
2883 | |
2884 if (*TOKEN_NAMES[ag_tstt[ag_k]] && ag_astt[ag_k + 1] == ag_action_8) { | |
2885 sprintf((PCB).ag_msg, MISSING_FORMAT, TOKEN_NAMES[ag_tstt[ag_k]]); | |
2886 } | |
2887 else if (ag_astt[ag_sbe[(PCB).sn]] == ag_action_8 | |
2888 && (ag_k = (int) ag_sbe[(PCB).sn] + 1) == (int) ag_sbt[(PCB).sn+1] - 1 | |
2889 && *TOKEN_NAMES[ag_tstt[ag_k]]) { | |
2890 sprintf((PCB).ag_msg, MISSING_FORMAT, TOKEN_NAMES[ag_tstt[ag_k]]); | |
2891 } | |
2892 else if ((PCB).token_number && *TOKEN_NAMES[(PCB).token_number]) { | |
2893 sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, TOKEN_NAMES[(PCB).token_number]); | |
2894 } | |
2895 else if (isprint(INPUT_CODE((*(PCB).pointer))) && INPUT_CODE((*(PCB).pointer)) != '\\') { | |
2896 char buf[20]; | |
2897 sprintf(buf, "\'%c\'", (char) INPUT_CODE((*(PCB).pointer))); | |
2898 sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, buf); | |
2899 } | |
2900 else sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, UNNAMED_TOKEN); | |
2901 (PCB).error_message = (PCB).ag_msg; | |
2902 | |
2903 | |
2904 } | |
2905 static int ag_action_1_r_proc(void); | |
2906 static int ag_action_2_r_proc(void); | |
2907 static int ag_action_3_r_proc(void); | |
2908 static int ag_action_4_r_proc(void); | |
2909 static int ag_action_1_s_proc(void); | |
2910 static int ag_action_3_s_proc(void); | |
2911 static int ag_action_1_proc(void); | |
2912 static int ag_action_2_proc(void); | |
2913 static int ag_action_3_proc(void); | |
2914 static int ag_action_4_proc(void); | |
2915 static int ag_action_5_proc(void); | |
2916 static int ag_action_6_proc(void); | |
2917 static int ag_action_7_proc(void); | |
2918 static int ag_action_8_proc(void); | |
2919 static int ag_action_9_proc(void); | |
2920 static int ag_action_10_proc(void); | |
2921 static int ag_action_11_proc(void); | |
2922 static int ag_action_8_proc(void); | |
2923 | |
2924 | |
2925 static int (*const ag_r_procs_scan[])(void) = { | |
2926 ag_action_1_r_proc, | |
2927 ag_action_2_r_proc, | |
2928 ag_action_3_r_proc, | |
2929 ag_action_4_r_proc | |
2930 }; | |
2931 | |
2932 static int (*const ag_s_procs_scan[])(void) = { | |
2933 ag_action_1_s_proc, | |
2934 ag_action_2_r_proc, | |
2935 ag_action_3_s_proc, | |
2936 ag_action_4_r_proc | |
2937 }; | |
2938 | |
2939 static int (*const ag_gt_procs_scan[])(void) = { | |
2940 ag_action_1_proc, | |
2941 ag_action_2_proc, | |
2942 ag_action_3_proc, | |
2943 ag_action_4_proc, | |
2944 ag_action_5_proc, | |
2945 ag_action_6_proc, | |
2946 ag_action_7_proc, | |
2947 ag_action_8_proc, | |
2948 ag_action_9_proc, | |
2949 ag_action_10_proc, | |
2950 ag_action_11_proc, | |
2951 ag_action_8_proc | |
2952 }; | |
2953 | |
2954 | |
2955 static int ag_action_1_er_proc(void); | |
2956 static int ag_action_2_er_proc(void); | |
2957 static int ag_action_3_er_proc(void); | |
2958 static int ag_action_4_er_proc(void); | |
2959 | |
2960 static int (*const ag_er_procs_scan[])(void) = { | |
2961 ag_action_1_er_proc, | |
2962 ag_action_2_er_proc, | |
2963 ag_action_3_er_proc, | |
2964 ag_action_4_er_proc | |
2965 }; | |
2966 | |
2967 | |
2968 static void ag_error_resynch(void) { | |
2969 int ag_k; | |
2970 int ag_ssx = (PCB).ssx; | |
2971 | |
2972 ag_diagnose(); | |
2973 SYNTAX_ERROR; | |
2974 if ((PCB).exit_flag != AG_RUNNING_CODE) return; | |
2975 while (1) { | |
2976 ag_k = ag_sbt[(PCB).sn]; | |
2977 while (ag_tstt[ag_k] != 9 && ag_tstt[ag_k]) ag_k++; | |
2978 if (ag_tstt[ag_k] || (PCB).ssx == 0) break; | |
2979 (PCB).sn = (PCB).ss[--(PCB).ssx]; | |
2980 } | |
2981 if (ag_tstt[ag_k] == 0) { | |
2982 (PCB).sn = PCB.ss[(PCB).ssx = ag_ssx]; | |
2983 (PCB).exit_flag = AG_SYNTAX_ERROR_CODE; | |
2984 return; | |
2985 } | |
2986 ag_k = ag_sbt[(PCB).sn]; | |
2987 while (ag_tstt[ag_k] != 9 && ag_tstt[ag_k]) ag_k++; | |
2988 (PCB).ag_ap = ag_pstt[ag_k]; | |
2989 (ag_er_procs_scan[ag_astt[ag_k]])(); | |
2990 while (1) { | |
2991 ag_k = ag_sbt[(PCB).sn]; | |
2992 while (ag_tstt[ag_k] != (unsigned char) (PCB).token_number && ag_tstt[ag_k]) | |
2993 ag_k++; | |
2994 if (ag_tstt[ag_k] && ag_astt[ag_k] != ag_action_10) break; | |
2995 if ((PCB).token_number == 7) | |
2996 {(PCB).exit_flag = AG_SYNTAX_ERROR_CODE; return;} | |
2997 {(PCB).la_ptr = (PCB).pointer + 1; ag_track();} | |
2998 (PCB).token_number = (vmCompile_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
2999 (PCB).la_ptr++; | |
3000 if (ag_key_index[(PCB).sn]) { | |
3001 unsigned ag_k = ag_key_index[(PCB).sn]; | |
3002 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
3003 if (ag_ch <= 255) { | |
3004 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
3005 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
3006 } | |
3007 } | |
3008 } | |
3009 (PCB).la_ptr = (PCB).pointer; | |
3010 } | |
3011 | |
3012 | |
3013 static int ag_action_10_proc(void) { | |
3014 int ag_t = (PCB).token_number; | |
3015 (PCB).btsx = 0, (PCB).drt = -1; | |
3016 do { | |
3017 ag_track(); | |
3018 (PCB).token_number = (vmCompile_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
3019 (PCB).la_ptr++; | |
3020 if (ag_key_index[(PCB).sn]) { | |
3021 unsigned ag_k = ag_key_index[(PCB).sn]; | |
3022 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
3023 if (ag_ch <= 255) { | |
3024 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
3025 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
3026 } | |
3027 } | |
3028 } while ((PCB).token_number == (vmCompile_token_type) ag_t); | |
3029 (PCB).la_ptr = (PCB).pointer; | |
3030 return 1; | |
3031 } | |
3032 | |
3033 static int ag_action_11_proc(void) { | |
3034 int ag_t = (PCB).token_number; | |
3035 | |
3036 (PCB).btsx = 0, (PCB).drt = -1; | |
3037 do { | |
3038 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
3039 (PCB).ssx--; | |
3040 ag_track(); | |
3041 ag_ra(); | |
3042 if ((PCB).exit_flag != AG_RUNNING_CODE) return 0; | |
3043 (PCB).ssx++; | |
3044 (PCB).token_number = (vmCompile_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
3045 (PCB).la_ptr++; | |
3046 if (ag_key_index[(PCB).sn]) { | |
3047 unsigned ag_k = ag_key_index[(PCB).sn]; | |
3048 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
3049 if (ag_ch <= 255) { | |
3050 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
3051 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
3052 } | |
3053 } | |
3054 } | |
3055 while ((PCB).token_number == (vmCompile_token_type) ag_t); | |
3056 (PCB).la_ptr = (PCB).pointer; | |
3057 return 1; | |
3058 } | |
3059 | |
3060 static int ag_action_3_r_proc(void) { | |
3061 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
3062 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3063 (PCB).btsx = 0, (PCB).drt = -1; | |
3064 (PCB).reduction_token = (vmCompile_token_type) ag_ptt[(PCB).ag_ap]; | |
3065 ag_ra(); | |
3066 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3067 } | |
3068 | |
3069 static int ag_action_3_s_proc(void) { | |
3070 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
3071 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3072 (PCB).btsx = 0, (PCB).drt = -1; | |
3073 (PCB).reduction_token = (vmCompile_token_type) ag_ptt[(PCB).ag_ap]; | |
3074 ag_ra(); | |
3075 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3076 } | |
3077 | |
3078 static int ag_action_4_r_proc(void) { | |
3079 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
3080 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3081 (PCB).reduction_token = (vmCompile_token_type) ag_ptt[(PCB).ag_ap]; | |
3082 return 1; | |
3083 } | |
3084 | |
3085 static int ag_action_2_proc(void) { | |
3086 (PCB).btsx = 0, (PCB).drt = -1; | |
3087 if ((PCB).ssx >= 128) { | |
3088 (PCB).exit_flag = AG_STACK_ERROR_CODE; | |
3089 PARSER_STACK_OVERFLOW; | |
3090 } | |
3091 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
3092 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3093 (PCB).ssx++; | |
3094 (PCB).sn = (PCB).ag_ap; | |
3095 ag_track(); | |
3096 return 0; | |
3097 } | |
3098 | |
3099 static int ag_action_9_proc(void) { | |
3100 if ((PCB).drt == -1) { | |
3101 (PCB).drt=(PCB).token_number; | |
3102 (PCB).dssx=(PCB).ssx; | |
3103 (PCB).dsn=(PCB).sn; | |
3104 } | |
3105 ag_prot(); | |
3106 (PCB).vs[(PCB).ssx] = ag_null_value; | |
3107 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3108 (PCB).ssx++; | |
3109 (PCB).sn = (PCB).ag_ap; | |
3110 (PCB).la_ptr = (PCB).pointer; | |
3111 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3112 } | |
3113 | |
3114 static int ag_action_2_r_proc(void) { | |
3115 (PCB).ssx++; | |
3116 (PCB).sn = (PCB).ag_ap; | |
3117 return 0; | |
3118 } | |
3119 | |
3120 static int ag_action_7_proc(void) { | |
3121 --(PCB).ssx; | |
3122 (PCB).la_ptr = (PCB).pointer; | |
3123 (PCB).exit_flag = AG_SUCCESS_CODE; | |
3124 return 0; | |
3125 } | |
3126 | |
3127 static int ag_action_1_proc(void) { | |
3128 ag_track(); | |
3129 (PCB).exit_flag = AG_SUCCESS_CODE; | |
3130 return 0; | |
3131 } | |
3132 | |
3133 static int ag_action_1_r_proc(void) { | |
3134 (PCB).exit_flag = AG_SUCCESS_CODE; | |
3135 return 0; | |
3136 } | |
3137 | |
3138 static int ag_action_1_s_proc(void) { | |
3139 (PCB).exit_flag = AG_SUCCESS_CODE; | |
3140 return 0; | |
3141 } | |
3142 | |
3143 static int ag_action_4_proc(void) { | |
3144 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
3145 (PCB).reduction_token = (vmCompile_token_type) ag_ptt[(PCB).ag_ap]; | |
3146 (PCB).btsx = 0, (PCB).drt = -1; | |
3147 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
3148 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3149 else (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3150 ag_track(); | |
3151 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3152 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
3153 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
3154 do { | |
3155 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3156 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
3157 else ag_t2 = ag_tx; | |
3158 } while (ag_t1 < ag_t2); | |
3159 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
3160 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
3161 REDUCTION_TOKEN_ERROR; break;} | |
3162 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3163 if ((ag_s_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
3164 } | |
3165 return 0; | |
3166 } | |
3167 | |
3168 static int ag_action_3_proc(void) { | |
3169 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
3170 (PCB).btsx = 0, (PCB).drt = -1; | |
3171 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
3172 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3173 else (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3174 ag_track(); | |
3175 (PCB).reduction_token = (vmCompile_token_type) ag_ptt[(PCB).ag_ap]; | |
3176 ag_ra(); | |
3177 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3178 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
3179 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
3180 do { | |
3181 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3182 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
3183 else ag_t2 = ag_tx; | |
3184 } while (ag_t1 < ag_t2); | |
3185 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
3186 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
3187 REDUCTION_TOKEN_ERROR; break;} | |
3188 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3189 if ((ag_s_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
3190 } | |
3191 return 0; | |
3192 } | |
3193 | |
3194 static int ag_action_8_proc(void) { | |
3195 int ag_k = ag_sbt[(PCB).sn]; | |
3196 while (ag_tstt[ag_k] != 9 && ag_tstt[ag_k]) ag_k++; | |
3197 if (ag_tstt[ag_k] == 0) ag_undo(); | |
3198 (PCB).la_ptr = (PCB).pointer; | |
3199 ag_error_resynch(); | |
3200 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3201 } | |
3202 | |
3203 static int ag_action_5_proc(void) { | |
3204 int ag_sd = ag_fl[(PCB).ag_ap]; | |
3205 (PCB).btsx = 0, (PCB).drt = -1; | |
3206 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3207 else { | |
3208 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3209 } | |
3210 (PCB).la_ptr = (PCB).pointer; | |
3211 (PCB).reduction_token = (vmCompile_token_type) ag_ptt[(PCB).ag_ap]; | |
3212 ag_ra(); | |
3213 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3214 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
3215 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
3216 do { | |
3217 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3218 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
3219 else ag_t2 = ag_tx; | |
3220 } while (ag_t1 < ag_t2); | |
3221 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
3222 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
3223 REDUCTION_TOKEN_ERROR; break;} | |
3224 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3225 if ((ag_r_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
3226 } | |
3227 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3228 } | |
3229 | |
3230 static int ag_action_6_proc(void) { | |
3231 int ag_sd = ag_fl[(PCB).ag_ap]; | |
3232 (PCB).reduction_token = (vmCompile_token_type) ag_ptt[(PCB).ag_ap]; | |
3233 if ((PCB).drt == -1) { | |
3234 (PCB).drt=(PCB).token_number; | |
3235 (PCB).dssx=(PCB).ssx; | |
3236 (PCB).dsn=(PCB).sn; | |
3237 } | |
3238 if (ag_sd) { | |
3239 (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3240 } | |
3241 else { | |
3242 ag_prot(); | |
3243 (PCB).vs[(PCB).ssx] = ag_null_value; | |
3244 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3245 } | |
3246 (PCB).la_ptr = (PCB).pointer; | |
3247 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3248 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
3249 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
3250 do { | |
3251 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3252 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
3253 else ag_t2 = ag_tx; | |
3254 } while (ag_t1 < ag_t2); | |
3255 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
3256 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
3257 REDUCTION_TOKEN_ERROR; break;} | |
3258 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3259 if ((ag_r_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
3260 } | |
3261 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3262 } | |
3263 | |
3264 | |
3265 static int ag_action_2_er_proc(void) { | |
3266 (PCB).btsx = 0, (PCB).drt = -1; | |
3267 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
3268 (PCB).ssx++; | |
3269 (PCB).sn = (PCB).ag_ap; | |
3270 return 0; | |
3271 } | |
3272 | |
3273 static int ag_action_1_er_proc(void) { | |
3274 (PCB).btsx = 0, (PCB).drt = -1; | |
3275 (PCB).exit_flag = AG_SUCCESS_CODE; | |
3276 return 0; | |
3277 } | |
3278 | |
3279 static int ag_action_4_er_proc(void) { | |
3280 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
3281 (PCB).btsx = 0, (PCB).drt = -1; | |
3282 (PCB).reduction_token = (vmCompile_token_type) ag_ptt[(PCB).ag_ap]; | |
3283 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3284 else (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3285 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3286 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
3287 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
3288 do { | |
3289 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3290 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
3291 else ag_t2 = ag_tx; | |
3292 } while (ag_t1 < ag_t2); | |
3293 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
3294 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
3295 REDUCTION_TOKEN_ERROR; break;} | |
3296 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3297 if ((ag_s_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
3298 } | |
3299 return 0; | |
3300 } | |
3301 | |
3302 static int ag_action_3_er_proc(void) { | |
3303 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
3304 (PCB).btsx = 0, (PCB).drt = -1; | |
3305 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3306 else (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3307 (PCB).reduction_token = (vmCompile_token_type) ag_ptt[(PCB).ag_ap]; | |
3308 ag_ra(); | |
3309 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3310 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
3311 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
3312 do { | |
3313 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3314 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
3315 else ag_t2 = ag_tx; | |
3316 } while (ag_t1 < ag_t2); | |
3317 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
3318 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
3319 REDUCTION_TOKEN_ERROR; break;} | |
3320 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3321 if ((ag_s_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
3322 } | |
3323 return 0; | |
3324 } | |
3325 | |
3326 | |
3327 void init_vmCompile(void) { | |
3328 (PCB).la_ptr = (PCB).pointer; | |
3329 (PCB).ss[0] = (PCB).sn = (PCB).ssx = 0; | |
3330 (PCB).exit_flag = AG_RUNNING_CODE; | |
3331 (PCB).line = FIRST_LINE; | |
3332 (PCB).column = FIRST_COLUMN; | |
3333 (PCB).btsx = 0, (PCB).drt = -1; | |
3334 } | |
3335 | |
3336 void vmCompile(void) { | |
3337 init_vmCompile(); | |
3338 (PCB).exit_flag = AG_RUNNING_CODE; | |
3339 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3340 unsigned ag_t1 = ag_sbt[(PCB).sn]; | |
3341 if (ag_tstt[ag_t1]) { | |
3342 unsigned ag_t2 = ag_sbe[(PCB).sn] - 1; | |
3343 (PCB).token_number = (vmCompile_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
3344 (PCB).la_ptr++; | |
3345 if (ag_key_index[(PCB).sn]) { | |
3346 unsigned ag_k = ag_key_index[(PCB).sn]; | |
3347 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
3348 if (ag_ch <= 255) { | |
3349 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
3350 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
3351 } | |
3352 } | |
3353 do { | |
3354 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3355 if (ag_tstt[ag_tx] > (unsigned char)(PCB).token_number) | |
3356 ag_t1 = ag_tx + 1; | |
3357 else ag_t2 = ag_tx; | |
3358 } while (ag_t1 < ag_t2); | |
3359 if (ag_tstt[ag_t1] != (unsigned char)(PCB).token_number) | |
3360 ag_t1 = ag_sbe[(PCB).sn]; | |
3361 } | |
3362 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3363 (ag_gt_procs_scan[ag_astt[ag_t1]])(); | |
3364 } | |
3365 } | |
3366 | |
3367 |