Mercurial > ~dholland > hg > ag > index.cgi
comparison tests/agcl/oldagsrc/good/cc-crash.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 // C Prologue | |
2 /* | |
3 AnaGram, a System for Syntax Directed Programming | |
4 | |
5 A Dos Script Language | |
6 | |
7 Copyright (c) 1993, 1996 Parsifal Software. | |
8 All Rights Reserved. | |
9 | |
10 */ | |
11 | |
12 | |
13 #include "stack.h" | |
14 #include "charsink.h" | |
15 #include "strdict.h" | |
16 #include "array.h" | |
17 #include "symbol.h" | |
18 #include "query.h" | |
19 #include <conio.h> | |
20 | |
21 #ifdef __BCPLUSPLUS__ | |
22 #define ARGS ((char **) args) | |
23 | |
24 extern unsigned _stklen = 0x4000; // set stack size | |
25 | |
26 #else | |
27 #define ARGS ((char const * const *) (char **) args) | |
28 #endif | |
29 | |
30 | |
31 // Define stacks for temporary storage | |
32 | |
33 stack <action_pointer> as(25); // Stack actions | |
34 stack <int> is(100); // Stack string indices | |
35 stack <char *> ps(1000,20); // Stack parameter strings | |
36 stack <query_item> qs(23); // Stack query items | |
37 | |
38 | |
39 // Define data structures for symbol table | |
40 | |
41 #define N_STRINGS 2000 | |
42 | |
43 string_accumulator sa(64000U,500); | |
44 string_dictionary sd(N_STRINGS); | |
45 array <symbol_table_entry> st(N_STRINGS); | |
46 | |
47 | |
48 /* | |
49 * AnaGram, A System for Syntax Directed Programming | |
50 * File generated by: ... | |
51 * | |
52 * AnaGram Parsing Engine | |
53 * Copyright 1993-2002 Parsifal Software. All Rights Reserved. | |
54 * | |
55 * This software is provided 'as-is', without any express or implied | |
56 * warranty. In no event will the authors be held liable for any damages | |
57 * arising from the use of this software. | |
58 * | |
59 * Permission is granted to anyone to use this software for any purpose, | |
60 * including commercial applications, and to alter it and redistribute it | |
61 * freely, subject to the following restrictions: | |
62 * | |
63 * 1. The origin of this software must not be misrepresented; you must not | |
64 * claim that you wrote the original software. If you use this software | |
65 * in a product, an acknowledgment in the product documentation would be | |
66 * appreciated but is not required. | |
67 * 2. Altered source versions must be plainly marked as such, and must not be | |
68 * misrepresented as being the original software. | |
69 * 3. This notice may not be removed or altered from any source distribution. | |
70 */ | |
71 | |
72 #ifndef CC-CRASH_H | |
73 #include "cc-crash.h" | |
74 #endif | |
75 | |
76 #ifndef CC-CRASH_H | |
77 #error Mismatched header file | |
78 #endif | |
79 | |
80 #include <ctype.h> | |
81 #include <stdio.h> | |
82 | |
83 #define RULE_CONTEXT (&((PCB).cs[(PCB).ssx])) | |
84 #define ERROR_CONTEXT ((PCB).cs[(PCB).error_frame_ssx]) | |
85 #define CONTEXT ((PCB).cs[(PCB).ssx]) | |
86 | |
87 | |
88 | |
89 cc-crash_pcb_type cc-crash_pcb; | |
90 #define PCB cc-crash_pcb | |
91 #define CHANGE_REDUCTION(x) cc-crash_change_reduction(cc-crash_##x##_token) | |
92 int cc-crash_change_reduction(cc-crash_token_type); | |
93 | |
94 | |
95 #line - "cc-crash.syn" | |
96 #include <process.h> | |
97 #include <stdlib.h> | |
98 #include <ctype.h> | |
99 #include <sys/stat.h> | |
100 #include <fcntl.h> | |
101 #include <io.h> | |
102 #include <conio.h> | |
103 #include <dos.h> | |
104 #include <time.h> | |
105 #include "assert.h" | |
106 | |
107 #include "edit.h" | |
108 | |
109 | |
110 #include "screen.h" | |
111 #include "util.h" | |
112 #include "redirect.h" | |
113 | |
114 #define GET_CONTEXT CONTEXT.pointer = PCB.pointer;\ | |
115 CONTEXT.line=PCB.line;\ | |
116 CONTEXT.column = PCB.column; | |
117 | |
118 | |
119 int debug_switch = 0; | |
120 char *error_msg = NULL; | |
121 unsigned errorlevel_index; | |
122 int errorlevel; | |
123 int exitcode = 0; | |
124 int exitflag = 0; | |
125 int first_line = 1; | |
126 int first_column = 1; | |
127 unsigned stderr_index; | |
128 | |
129 void display_queries(screen_descriptor *); | |
130 | |
131 #define FIRST_LINE first_line | |
132 #define FIRST_COLUMN first_column | |
133 | |
134 | |
135 /***** | |
136 | |
137 Internal Functions | |
138 | |
139 *****/ | |
140 | |
141 long file_exists(void) { | |
142 FILE *f = fopen(sa--,"r"); | |
143 if (f != NULL) fclose(f); | |
144 return f != NULL; | |
145 } | |
146 | |
147 long directory_exists(void) { | |
148 struct find_t ff; | |
149 int result; | |
150 | |
151 sa << "\\*.*"; | |
152 result = _dos_findfirst(sa--,_A_SUBDIR,&ff); | |
153 return result == 0; | |
154 } | |
155 | |
156 long string_length(void) { | |
157 return size(sa--); | |
158 } | |
159 | |
160 long get_file_length(void) { | |
161 int handle = open(sa--, O_RDONLY); | |
162 long length; | |
163 if (handle < 0) return 0; | |
164 length = filelength(handle); | |
165 close(handle); | |
166 return length; | |
167 } | |
168 | |
169 long disk_space(void) { | |
170 struct diskfree_t free; | |
171 int drive = toupper(*(char *)sa--) - 64; | |
172 long avail; | |
173 | |
174 _dos_getdiskfree(drive, &free); | |
175 avail = (long) free.avail_clusters | |
176 * (long) free.bytes_per_sector | |
177 * (long) free.sectors_per_cluster; | |
178 return avail; | |
179 } | |
180 | |
181 long file_time(void) { | |
182 int handle = open(sa--, O_RDONLY); | |
183 #ifdef __BCPLUSPLUS__ | |
184 unsigned date, time; | |
185 #else | |
186 unsigned short date, time; | |
187 #endif | |
188 struct tm t; | |
189 | |
190 if (handle < 0) return 0; | |
191 _dos_getftime(handle, &date, &time); | |
192 close(handle); | |
193 t.tm_year = ((date & 0xfe00) >> 9) + 80; | |
194 t.tm_mon = ((date & 0x1e00) >> 5) - 1; | |
195 t.tm_mday = date & 0x001f; | |
196 ; | |
197 t.tm_hour = (time & 0xf800) >> 11; | |
198 t.tm_min = (time & 0x07e0) >> 5; | |
199 t.tm_sec = (time & 0x001f) << 1; | |
200 return mktime(&t); | |
201 } | |
202 | |
203 | |
204 // Support for reduction procecures | |
205 | |
206 // Compare top strings on string accumulator | |
207 | |
208 /* | |
209 pops top two strings from string accumulator using strcmp | |
210 and returns | |
211 -1 if first string is less than top string | |
212 0 if strings match | |
213 +1 if top string is greater than first string | |
214 */ | |
215 | |
216 int string_comp(void) { | |
217 int n = size(sa); | |
218 array<char> right_string(sa--, n+1); | |
219 return strcmp(sa--,right_string); | |
220 } | |
221 | |
222 /* | |
223 replace the top string on the stack, with a substring where the index | |
224 of the first character in the substring is given by "first" and the index | |
225 of the last character is given by "last" | |
226 */ | |
227 | |
228 void extract(unsigned first, unsigned last) { | |
229 int n = last - first + 1; | |
230 assert (last >= first); | |
231 array <char> x((char *) sa-- + first, n+1); | |
232 x[n] = 0; | |
233 ++sa << x; | |
234 } | |
235 | |
236 /* | |
237 Look up the top string on the accumulator stack in the string dictionary. | |
238 If it has a value in the symbol table, replace it with the symbol table | |
239 value. If the value is numeric, convert it to integer. Otherwise, leave the | |
240 string untouched on the stack. | |
241 */ | |
242 | |
243 void lookup(void) { | |
244 unsigned index = sd[sa]; | |
245 if (index == 0) return; | |
246 switch (st[index].type) { | |
247 case string_type: | |
248 case value_type: { | |
249 --sa; // discard name | |
250 ++sa << st[index].data.text; // stack value | |
251 break; | |
252 } | |
253 case integer_type: { | |
254 --sa; // discard name | |
255 (++sa).printf("%ld", st[index].data.integer); // convert to ascii | |
256 break; | |
257 } | |
258 } | |
259 } | |
260 | |
261 /* | |
262 Find the data type of a symbol and change the reduction accordingly. | |
263 Return the dictionary index for strings, and the value itself for integers. | |
264 */ | |
265 | |
266 long name_type(void) { | |
267 unsigned index = sd << sa--; | |
268 switch (st[index].type) { | |
269 case value_type: | |
270 case string_type: { | |
271 CHANGE_REDUCTION(string_name); | |
272 return index; | |
273 } | |
274 case built_in_function_type: { | |
275 CHANGE_REDUCTION(built_in_name); | |
276 return index; | |
277 } | |
278 case undefined_type: { | |
279 CHANGE_REDUCTION(undefined_name); | |
280 return index; | |
281 } | |
282 case integer_type: return st[index].data.integer; | |
283 } | |
284 return 0; | |
285 } | |
286 | |
287 /* | |
288 Store a string formula. A string formula is a sequence of string identifiers | |
289 the values of which are to be concatenated. The parser has accumulated the | |
290 identifiers on the integer_stack, is. The formula is terminated by a zero | |
291 entry. | |
292 */ | |
293 | |
294 int *formula(void) { | |
295 int n = size(is << 0); | |
296 int *f = new int[n]; | |
297 while (n--) is >> f[n]; | |
298 return f; | |
299 } | |
300 | |
301 /* | |
302 Make a copy of an action that has been identified in the text stream. | |
303 An action pointer was stacked at the beginning of the action text on the | |
304 action stack, as. | |
305 */ | |
306 | |
307 action_pointer copy_action(void) { | |
308 action_pointer ap; | |
309 as >> ap; // pop action descriptor | |
310 unsigned length = (unsigned) (PCB.pointer - ap.pointer); | |
311 unsigned char *action = memdup(ap.pointer,length + 1); | |
312 action[length] = 0; | |
313 ap.pointer = action; | |
314 return ap; | |
315 } | |
316 | |
317 | |
318 // Internal Commands | |
319 | |
320 int echo(int, char *args[]) { | |
321 int i; | |
322 char *cs = ""; | |
323 for (i = 1; args[i]; i++) printf("%s%s", cs, args[i]), cs = " "; | |
324 printf("\n"); | |
325 fflush(stdout); | |
326 return 0; | |
327 } | |
328 | |
329 int pause(int, char *[]) { | |
330 int c; | |
331 while (kbhit()) getch(); // Empty buffer | |
332 printf("Press any key to continue . . .\n"); | |
333 c = getch(); | |
334 if (c == 3) exit(1); | |
335 return c; | |
336 } | |
337 | |
338 int exit_script(int n_args, char *args[]) { | |
339 if (n_args > 1) sscanf(args[1], "%ld", &exitcode); | |
340 exit(exitcode); | |
341 return exitcode; | |
342 } | |
343 | |
344 /* | |
345 int return_script(int n_args, char *args[]) { | |
346 if (n_args > 1) sscanf(args[1], "%ld", &exitcode); | |
347 PCB.exit_flag = AG_SUCCESS_CODE; | |
348 return exitcode; | |
349 } | |
350 */ | |
351 | |
352 int subdirs(int, char *args[]) { | |
353 struct find_t file_block; | |
354 int flag; | |
355 int length = strlen(args[1]); | |
356 array <char> name(args[1],length + 5); | |
357 | |
358 strcat(name, "\\*.*"); | |
359 for(flag = _dos_findfirst(name, _A_SUBDIR, &file_block); | |
360 flag == 0; flag = _dos_findnext(&file_block)) { | |
361 if ((file_block.attrib & _A_SUBDIR) == 0) continue; | |
362 if (strcmp(file_block.name, ".") == 0) continue; | |
363 if (strcmp(file_block.name, "..") == 0) continue; | |
364 puts(file_block.name); | |
365 } | |
366 return 0; | |
367 } | |
368 | |
369 int files(int, char *args[]) { | |
370 struct find_t file_block; | |
371 int flag; | |
372 int length = strlen(args[1]); | |
373 array<char> name(args[1],length + 5); | |
374 | |
375 strcat(name, "\\*.*"); | |
376 for(flag = _dos_findfirst(name, 0, &file_block); | |
377 flag == 0; flag = _dos_findnext(&file_block)) { | |
378 puts(file_block.name); | |
379 } | |
380 return 0; | |
381 } | |
382 | |
383 | |
384 /***** | |
385 | |
386 Execute Command Line | |
387 | |
388 *****/ | |
389 | |
390 | |
391 void perform_action(action_pointer ap) { | |
392 dsl_pcb_type save_pcb = PCB; | |
393 | |
394 PCB.pointer = ap.pointer; | |
395 first_line = ap.line; | |
396 first_column = ap.column; | |
397 dsl(); | |
398 exitflag = PCB.exit_flag != AG_SUCCESS_CODE; | |
399 PCB = save_pcb; | |
400 if (exitflag) PCB.exit_flag = AG_SEMANTIC_ERROR_CODE; | |
401 } | |
402 | |
403 void exec(void) { | |
404 int n = size(ps << (char *) NULL); | |
405 int n_args = n - 1; | |
406 unsigned index; | |
407 int i; | |
408 | |
409 array <char *> args(n); | |
410 while (n--) ps >> args[n]; | |
411 | |
412 strupr(args[0]); | |
413 if (debug_switch) { | |
414 for (i = 0; args[i]; i++) fprintf(stderr, "%s ", args[i]); | |
415 fprintf(stderr,"\nPress any key to continue\n"); | |
416 while (!kbhit()); | |
417 getch(); | |
418 } | |
419 index = sd[args[0]]; | |
420 if (n_args == 1 && strlen(args[0]) == 2 && args[0][1] == ':') { | |
421 errorlevel = system(args[0]); | |
422 } | |
423 else if ( *args[0] && index) switch (st[index].type) { | |
424 case internal_type: { | |
425 errorlevel = (*st[index].data.proc)(n_args, args); | |
426 break; | |
427 } | |
428 case dos_type: { | |
429 int i; | |
430 for (i = 1; args[i]; i++) args[i][-1] = ' '; | |
431 errorlevel = system(args[0]); | |
432 assert(errorlevel >= 0); | |
433 break; | |
434 } | |
435 case action_type: { | |
436 action_descriptor d = *st[index].data.action; | |
437 stack <symbol_table_entry> old_entries(d.n_args); | |
438 for (i = 0; i < d.n_args && args[i+1]; i++) { | |
439 old_entries << st[d.args[i]]; | |
440 st[d.args[i]].type = value_type; | |
441 st[d.args[i]].data.text = memdup(args[i+1], 1 + strlen(args[i+1])); | |
442 } | |
443 perform_action(d.ap); | |
444 for (i = d.n_args; i--;) { | |
445 release(st[d.args[i]]); | |
446 old_entries >> st[d.args[i]]; | |
447 } | |
448 } | |
449 } | |
450 else { | |
451 errorlevel = spawnvp(P_WAIT,args[0],ARGS); | |
452 assert(errorlevel >= 0); | |
453 } | |
454 st[errorlevel_index].data.integer = errorlevel; | |
455 while (n_args--) --sa; | |
456 --ps; | |
457 if (kbhit()) { | |
458 int c = getch(); | |
459 if (c == 3) exit(1); | |
460 ungetch(c); | |
461 } | |
462 } | |
463 | |
464 void discard_temp_file(char *file_name) { | |
465 unlink(file_name); // Delete file | |
466 delete [] file_name; // Free storage for name | |
467 } | |
468 | |
469 | |
470 /***** | |
471 | |
472 Execute Command with piped input | |
473 | |
474 *****/ | |
475 | |
476 | |
477 void exec_pipe_in(char *file_name) { | |
478 { | |
479 redirect sin(STDIN, file_name); | |
480 exec(); | |
481 } | |
482 discard_temp_file(file_name); | |
483 } | |
484 | |
485 | |
486 /***** | |
487 | |
488 Execute Command with redirected I/O | |
489 | |
490 *****/ | |
491 | |
492 void exec_redirect_in(void) { | |
493 redirect sin(STDIN, sa--); | |
494 exec(); | |
495 } | |
496 | |
497 char *exec_pipe_out(void) { | |
498 fflush(stdout); | |
499 redirect sout(STDOUT); | |
500 exec(); | |
501 fflush(stdout); | |
502 return save_file(sout); | |
503 } | |
504 | |
505 char *exec_pipe_in_pipe_out(char *file_name) { | |
506 char *result; | |
507 { | |
508 redirect sin(STDIN, file_name); | |
509 fflush(stdout); | |
510 redirect sout(STDOUT); | |
511 exec(); | |
512 fflush(stdout); | |
513 result = save_file(sout); | |
514 } | |
515 discard_temp_file(file_name); | |
516 return result; | |
517 } | |
518 | |
519 char *exec_redirect_in_pipe_out(void) { | |
520 fflush(stdout); | |
521 redirect sout(STDOUT); | |
522 exec_redirect_in(); | |
523 fflush(stdout); | |
524 return save_file(sout); | |
525 } | |
526 | |
527 unsigned check_integer(void) { | |
528 unsigned index = sd << sa--; | |
529 if (st[index].type == integer_type) return index; | |
530 CHANGE_REDUCTION(undeclared_variable); | |
531 if (st[index].type == string_type) CHANGE_REDUCTION(string_variable); | |
532 return index; | |
533 } | |
534 | |
535 void assign_value(unsigned index) { | |
536 char *text = copy(sa--); | |
537 release(st[index]); | |
538 st[index].type = value_type; | |
539 st[index].data.text = text; | |
540 } | |
541 | |
542 void grab_output(char *temp_name) { | |
543 unlink(sa); // delete old file | |
544 rename(temp_name, sa--); // rename temp file | |
545 delete [] temp_name; // discard name string | |
546 } | |
547 | |
548 void append_output(char *temp_name) { | |
549 fflush(stdout); | |
550 redirect sout(STDOUT, sa--, 1); // append to file named on sa | |
551 redirect sin(STDIN, temp_name); | |
552 char buf[2000]; | |
553 int n; | |
554 while (1) { | |
555 n = read(STDIN, buf, 2000); | |
556 if (n == 0) break; | |
557 write(STDOUT, buf, n); | |
558 } | |
559 fflush(stdout); | |
560 unlink(temp_name); | |
561 delete [] temp_name; | |
562 } | |
563 | |
564 void action_string(void) { | |
565 action_pointer ap; | |
566 as >> ap; | |
567 unsigned length = (unsigned)(PCB.pointer - ap.pointer); | |
568 array <unsigned char> action(ap.pointer,length + 1); | |
569 action[length] = 0; | |
570 fflush(stdout); | |
571 redirect sout(STDOUT); | |
572 char *result; | |
573 | |
574 ap.pointer = action; | |
575 perform_action(ap); | |
576 fflush(stdout); | |
577 result = content(sout); | |
578 ++sa << result; | |
579 delete [] result; | |
580 } | |
581 | |
582 | |
583 // Program Control functions | |
584 | |
585 // If/else statement | |
586 | |
587 int do_if(int pc, int cc) { | |
588 action_pointer ap; | |
589 as >> ap; | |
590 if (!pc && cc && exitflag == 0) { | |
591 unsigned length = (unsigned) (PCB.pointer - ap.pointer); | |
592 array<unsigned char> q(ap.pointer, length+1); | |
593 q[length] = 0; | |
594 ap.pointer = q; | |
595 perform_action(ap); | |
596 } | |
597 return pc || cc; | |
598 } | |
599 | |
600 // While statement | |
601 | |
602 void do_while(int cc) { | |
603 unsigned length; | |
604 action_pointer ap; | |
605 as >> ap; | |
606 if (cc == 0) return; | |
607 length = (unsigned) (PCB.pointer - ap.pointer); | |
608 array<unsigned char> q(ap.pointer, length+1); | |
609 q[length] = 0; | |
610 ap.pointer = q; | |
611 perform_action(ap); | |
612 if (exitflag) return; | |
613 PCB.pointer = CONTEXT.pointer; | |
614 PCB.line = CONTEXT.line; | |
615 PCB.column = CONTEXT.column; | |
616 } | |
617 | |
618 | |
619 // For Statement | |
620 // Note that this is the for statement in the DOS batch languange for, not C | |
621 | |
622 void do_for_loop(void) { | |
623 int n,k; | |
624 char *q; | |
625 char *seps = " \t\v\f\r\n"; | |
626 action_pointer ap; | |
627 as >> ap; | |
628 unsigned length = (unsigned)(PCB.pointer - ap.pointer); | |
629 array <unsigned char> action(ap.pointer, length + 1); | |
630 action[length] = 0; | |
631 | |
632 ap.pointer = action; | |
633 n = size(sa); | |
634 array<char> text(sa--, n + 1); | |
635 | |
636 | |
637 unsigned index = sd << sa--; | |
638 | |
639 ++ps; | |
640 for (q = strtok(text, seps); q != NULL; q = strtok(NULL,seps)) { | |
641 if (*q == '(') { | |
642 int k = strlen(q) - 1; | |
643 assert(q[k] == ')'); | |
644 q[k] = 0; | |
645 q++; | |
646 } | |
647 else if (*q == '"') { | |
648 int k = strlen(q) - 1; | |
649 assert(q[k] == '"'); | |
650 q[k] = 0; | |
651 q++; | |
652 } | |
653 ps << q; | |
654 } | |
655 k = n = size(ps); | |
656 array<char *> args(n); | |
657 while (k--) ps >> args[k]; | |
658 --ps; | |
659 symbol_table_entry save_table_entry = st[index]; | |
660 st[index].type = value_type; | |
661 | |
662 for (k = 0; k < n && exitflag == 0; k++) { | |
663 st[index].data.text = args[k]; | |
664 perform_action(ap); | |
665 } | |
666 st[index] = save_table_entry; | |
667 } | |
668 | |
669 void invoke_script(void) { | |
670 int handle = open(sa, O_TEXT | O_RDONLY); | |
671 long size; | |
672 unsigned n; | |
673 action_pointer ap; | |
674 | |
675 if (handle < 0) { | |
676 fprintf(stderr,"Cannot open %s\n", (char *) sa--); | |
677 exit(1); | |
678 } | |
679 --sa; | |
680 size = filelength(handle); | |
681 assert(size < 65536L); | |
682 array <unsigned char> data((unsigned) size+1); | |
683 n = (unsigned) read(handle,data,(unsigned) size); | |
684 data[n] = 0; | |
685 close(handle); | |
686 exitflag = 0; | |
687 ap.pointer = data; | |
688 ap.line = ap.column = 1; | |
689 perform_action(ap); | |
690 st[errorlevel_index].data.integer = exitcode; | |
691 exitflag = exitcode = 0; | |
692 return; | |
693 } | |
694 | |
695 internal_commands_descriptor internal_commands[] = { | |
696 {"ECHO", echo}, | |
697 {"EXIT", exit_script}, | |
698 {"FILES", files}, | |
699 {"PAUSE", pause}, | |
700 // {"RETURN", return_script}, | |
701 {"SUBDIRS", subdirs}, | |
702 {NULL, NULL} | |
703 }; | |
704 | |
705 struct built_ins_descriptor built_ins[] = { | |
706 {"file_exists", file_exists}, | |
707 {"directory_exists", directory_exists}, | |
708 {"string_length", string_length}, | |
709 {"file_length", get_file_length}, | |
710 {"disk_space", disk_space}, | |
711 {"file_time", file_time}, | |
712 {NULL, NULL} | |
713 }; | |
714 | |
715 void set_extension(char *path, char *e) { | |
716 char s[_MAX_PATH]; | |
717 char drive[_MAX_DRIVE]; | |
718 char dir[_MAX_DIR]; | |
719 char file[_MAX_FNAME]; | |
720 char ext[_MAX_EXT]; | |
721 | |
722 _splitpath(path,drive,dir,file,ext); | |
723 _makepath(s, drive, dir, file, e); | |
724 ++sa << s; | |
725 } | |
726 | |
727 /* | |
728 Note that if this program is called without any arguments, it looks for a | |
729 script with the same name as the executable. Thus, to make an install | |
730 program that picks up the install script without any arguments, you simply | |
731 rename DSL.EXE to INSTALL.EXE. Then when you run it without any arguments | |
732 it will run the INSTALL.DSL script. | |
733 */ | |
734 | |
735 void main(int argc, char *argv[]) { | |
736 int arg_number = 0; | |
737 int i = 1; | |
738 int j = 0; | |
739 | |
740 if (argv[0][0] == '.') argv[0] = "\\agex\\dsl\\wat32\\dsl.exe"; | |
741 init_dos_internals(); | |
742 set_arg(j++, argv[0]); | |
743 if (argc > i && (argv[i][0] == '/' || argv[i][0] == '-')) { | |
744 if (toupper(argv[i][1]) != 'D') { | |
745 printf("Unrecognized switch -- /%s\n",argv[i][1]); | |
746 return; | |
747 } | |
748 debug_switch = 1; | |
749 i++; | |
750 } | |
751 if (argc > i) arg_number = i++; | |
752 set_extension(argv[arg_number], "DSL"); | |
753 set_arg(j++,copy(sa)); | |
754 while (i < argc) set_arg(j++, argv[i++]); | |
755 define_integer("argc", j); | |
756 invoke_script(); // Takes file name from sa | |
757 exit(exitcode); | |
758 } | |
759 #line - "cc-crash.cpp" | |
760 | |
761 #ifndef CONVERT_CASE | |
762 #define CONVERT_CASE(c) (c) | |
763 #endif | |
764 #ifndef TAB_SPACING | |
765 #define TAB_SPACING 8 | |
766 #endif | |
767 | |
768 #define ag_rp_1(v) (++sa << sd[v], lookup()) | |
769 | |
770 #define ag_rp_2() (sa << '[') | |
771 | |
772 #define ag_rp_3() (concat(sa) << ']', lookup()) | |
773 | |
774 #define ag_rp_4() (concat(sa)) | |
775 | |
776 #define ag_rp_5() (concat(sa)) | |
777 | |
778 #define ag_rp_6(c) (++sa << c) | |
779 | |
780 #define ag_rp_7(c) (sa << c) | |
781 | |
782 #define ag_rp_8() (action_string()) | |
783 | |
784 #define ag_rp_9() (as << CONTEXT) | |
785 | |
786 static void ag_rp_10(void) { | |
787 #line - "cc-crash.syn" | |
788 action_pointer a; as >> a; | |
789 #line - "cc-crash.cpp" | |
790 } | |
791 | |
792 #define ag_rp_11() (++sa) | |
793 | |
794 #define ag_rp_12(c) (sa << c) | |
795 | |
796 #define ag_rp_13() (sa << '(') | |
797 | |
798 #define ag_rp_14() (concat(sa) << ')') | |
799 | |
800 #define ag_rp_15() (++sa) | |
801 | |
802 #define ag_rp_16(c) (sa << c) | |
803 | |
804 #define ag_rp_17(c) (sa << c) | |
805 | |
806 #define ag_rp_18() ('\a') | |
807 | |
808 #define ag_rp_19() ('\b') | |
809 | |
810 #define ag_rp_20() ('\f') | |
811 | |
812 #define ag_rp_21() ('\n') | |
813 | |
814 #define ag_rp_22() ('\r') | |
815 | |
816 #define ag_rp_23() ('\t') | |
817 | |
818 #define ag_rp_24() ('\v') | |
819 | |
820 #define ag_rp_25() ('\\') | |
821 | |
822 #define ag_rp_26() ('\?') | |
823 | |
824 #define ag_rp_27() ('\'') | |
825 | |
826 #define ag_rp_28() ('"') | |
827 | |
828 #define ag_rp_29(d) (d-'0') | |
829 | |
830 #define ag_rp_30(n, d) (8*n + d-'0') | |
831 | |
832 #define ag_rp_31(n, d) (8*n + d-'0') | |
833 | |
834 #define ag_rp_32(n) ((int) n) | |
835 | |
836 #define ag_rp_33(n, d) (16*n + d) | |
837 | |
838 #define ag_rp_34() (exec()) | |
839 | |
840 #define ag_rp_35() (exec_redirect_in()) | |
841 | |
842 #define ag_rp_36(file) (exec_pipe_in(file)) | |
843 | |
844 #define ag_rp_37(file) (grab_output(file)) | |
845 | |
846 #define ag_rp_38(file) (append_output(file)) | |
847 | |
848 #define ag_rp_39() (exec_pipe_out()) | |
849 | |
850 #define ag_rp_40() (exec_redirect_in_pipe_out()) | |
851 | |
852 #define ag_rp_41(file) (exec_pipe_in_pipe_out(file)) | |
853 | |
854 #define ag_rp_42() (sa << 0, ++ps << sa) | |
855 | |
856 #define ag_rp_43() (ps << sa, sa << 0) | |
857 | |
858 #define ag_rp_44() (ps << sa, sa << 0) | |
859 | |
860 #define ag_rp_45(pc) (do_if(pc,1)) | |
861 | |
862 #define ag_rp_46(cc) (cc) | |
863 | |
864 #define ag_rp_47(cc) (cc) | |
865 | |
866 #define ag_rp_48(pc, cc) (do_if(pc,cc!=0)) | |
867 | |
868 #define ag_rp_49(cc) ((int) cc) | |
869 | |
870 #define ag_rp_50(cc) (do_if(0,cc != 0)) | |
871 | |
872 #define ag_rp_51(v) (assign_value(v)) | |
873 | |
874 #define ag_rp_52(v, x) (st[v].data.integer = (int) x) | |
875 | |
876 #define ag_rp_53(v) (st[v].data.text = copy(sa--)) | |
877 | |
878 #define ag_rp_54(v, n, x) (st[v].data.text[(unsigned)n] = (char) x) | |
879 | |
880 #define ag_rp_55() (check_integer()) | |
881 | |
882 #define ag_rp_56(cc) (do_while(cc != 0)) | |
883 | |
884 #define ag_rp_57() (do_for_loop()) | |
885 | |
886 #define ag_rp_58(n) (define_action(n)) | |
887 | |
888 #define ag_rp_59(x) (define_integer(sa--, x)) | |
889 | |
890 #define ag_rp_60() (define_string()) | |
891 | |
892 #define ag_rp_61() (0) | |
893 | |
894 #define ag_rp_62(n) (n+1) | |
895 | |
896 #define ag_rp_63(c) (++sa << c) | |
897 | |
898 #define ag_rp_64(c) (sa << c) | |
899 | |
900 #define ag_rp_65(c) (sa << c) | |
901 | |
902 #define ag_rp_66(c, x, y) (c != 0 ? x : y) | |
903 | |
904 #define ag_rp_67(x, y) (x != 0 || y!=0) | |
905 | |
906 #define ag_rp_68(x, y) (x != 0 && y !=0) | |
907 | |
908 #define ag_rp_69(x, y) (x | y) | |
909 | |
910 #define ag_rp_70(x, y) (x ^ y) | |
911 | |
912 #define ag_rp_71(x, y) (x & y) | |
913 | |
914 #define ag_rp_72(x, y) (x == y) | |
915 | |
916 #define ag_rp_73(x, y) (x != y) | |
917 | |
918 #define ag_rp_74() (string_comp() == 0) | |
919 | |
920 #define ag_rp_75() (string_comp() != 0) | |
921 | |
922 #define ag_rp_76(x, y) (x < y) | |
923 | |
924 #define ag_rp_77(x, y) (x > y) | |
925 | |
926 #define ag_rp_78(x, y) (x <= y) | |
927 | |
928 #define ag_rp_79(x, y) (x >= y) | |
929 | |
930 #define ag_rp_80() (string_comp() < 0) | |
931 | |
932 #define ag_rp_81() (string_comp() > 0) | |
933 | |
934 #define ag_rp_82() (string_comp() <= 0) | |
935 | |
936 #define ag_rp_83() (string_comp() >= 0) | |
937 | |
938 #define ag_rp_84(x, y) (x << (int) y) | |
939 | |
940 #define ag_rp_85(x, y) (x >> (int) y) | |
941 | |
942 #define ag_rp_86(x, y) (x + y) | |
943 | |
944 #define ag_rp_87(x, y) (x - y) | |
945 | |
946 #define ag_rp_88(x, y) (x * y) | |
947 | |
948 #define ag_rp_89(x, y) (x / y) | |
949 | |
950 #define ag_rp_90(x, y) (x % y) | |
951 | |
952 static long ag_rp_91(long x) { | |
953 #line - "cc-crash.syn" | |
954 assert(x); | |
955 return x; | |
956 | |
957 #line - "cc-crash.cpp" | |
958 } | |
959 | |
960 #define ag_rp_92(x) (x) | |
961 | |
962 #define ag_rp_93(x) (-x) | |
963 | |
964 #define ag_rp_94(x) (~x) | |
965 | |
966 #define ag_rp_95(x) (!x) | |
967 | |
968 #define ag_rp_96(n) (((unsigned char *) sa--)[(unsigned) n]) | |
969 | |
970 static long ag_rp_97(void) { | |
971 #line - "cc-crash.syn" | |
972 long temp; | |
973 sscanf(sa--, "%ld", &temp); | |
974 return temp; | |
975 | |
976 #line - "cc-crash.cpp" | |
977 } | |
978 | |
979 #define ag_rp_98(x) (x) | |
980 | |
981 #define ag_rp_99(x) ((*st[(unsigned)x].data.func)()) | |
982 | |
983 #define ag_rp_100() (name_type()) | |
984 | |
985 #define ag_rp_101() (concat(sa)) | |
986 | |
987 #define ag_rp_102(first, last) (extract((unsigned)first, (unsigned) last)) | |
988 | |
989 #define ag_rp_103() (sa << '[') | |
990 | |
991 #define ag_rp_104() (concat(sa) << ']', lookup()) | |
992 | |
993 #define ag_rp_105(x) (++sa << st[(unsigned)x].data.text) | |
994 | |
995 #define ag_rp_106(x) (++sa << sd[(unsigned)x]) | |
996 | |
997 #define ag_rp_107() (action_string()) | |
998 | |
999 #define ag_rp_108(x) (++sa,sa.printf("%ld",x)) | |
1000 | |
1001 #define ag_rp_109() (0) | |
1002 | |
1003 #define ag_rp_110(x, d) (16*x + d-'0') | |
1004 | |
1005 #define ag_rp_111(d) ((d&7) + 9) | |
1006 | |
1007 #define ag_rp_112() (0) | |
1008 | |
1009 #define ag_rp_113(n, d) (8*n + d-'0') | |
1010 | |
1011 #define ag_rp_114(d) (d-'0') | |
1012 | |
1013 #define ag_rp_115(n, d) (10*n + d-'0') | |
1014 | |
1015 #define ag_rp_116(c) (c) | |
1016 | |
1017 #define ag_rp_117(scd) (display_queries(scd)) | |
1018 | |
1019 #define ag_rp_118() (reset(qs), new screen_descriptor) | |
1020 | |
1021 #define ag_rp_119(scd) (scd->title = formula(), scd) | |
1022 | |
1023 #define ag_rp_120(scd, c) (scd->color = (char) c, scd) | |
1024 | |
1025 #define ag_rp_121(scd, c) (scd->entry_color = (char) c, scd) | |
1026 | |
1027 #define ag_rp_122(scd, c) (scd->highlight_color = (char) c, scd) | |
1028 | |
1029 #define ag_rp_123(scd, w, h) (scd->width = (unsigned)w, scd->height = (unsigned) h, scd) | |
1030 | |
1031 #define ag_rp_124(scd, px, py) (scd->pos.x = (unsigned) px,scd->pos.y = (unsigned) py, scd) | |
1032 | |
1033 #define ag_rp_125(scd, q) (qs << *q, delete q, scd) | |
1034 | |
1035 #define ag_rp_126(scd, q) (qs << *q, delete q, scd) | |
1036 | |
1037 #define ag_rp_127(fg, bg) (COLOR((unsigned)fg,(unsigned)bg)) | |
1038 | |
1039 #define ag_rp_128() (clear(new query_item)) | |
1040 | |
1041 #define ag_rp_129(q) (q->id = sd << sa--, q) | |
1042 | |
1043 #define ag_rp_130(q) (q->value = formula(), q) | |
1044 | |
1045 #define ag_rp_131(q) (q->prompt = formula(), q) | |
1046 | |
1047 #define ag_rp_132(q) (q->explanation = formula(),q) | |
1048 | |
1049 #define ag_rp_133() (clear(new query_item)) | |
1050 | |
1051 #define ag_rp_134(q) (q->prompt = formula(), q) | |
1052 | |
1053 #define ag_rp_135(q) (q->explanation = formula(),q) | |
1054 | |
1055 #define ag_rp_136(q) (q->action = copy_action(), q) | |
1056 | |
1057 #define ag_rp_137() (reset(is) << (sd << sa--)) | |
1058 | |
1059 #define ag_rp_138() (is << (sd << sa--)) | |
1060 | |
1061 #define ag_rp_139() (sa << '[') | |
1062 | |
1063 #define ag_rp_140() (concat(sa) << ']') | |
1064 | |
1065 | |
1066 #define READ_COUNTS | |
1067 #define WRITE_COUNTS | |
1068 #undef V | |
1069 #define V(i,t) (*t (&(PCB).vs[(PCB).ssx + i])) | |
1070 #undef VS | |
1071 #define VS(i) (PCB).vs[(PCB).ssx + i] | |
1072 | |
1073 #ifndef GET_CONTEXT | |
1074 #define GET_CONTEXT CONTEXT = (PCB).input_context | |
1075 #endif | |
1076 | |
1077 typedef enum { | |
1078 ag_action_1, | |
1079 ag_action_2, | |
1080 ag_action_3, | |
1081 ag_action_4, | |
1082 ag_action_5, | |
1083 ag_action_6, | |
1084 ag_action_7, | |
1085 ag_action_8, | |
1086 ag_action_9, | |
1087 ag_action_10, | |
1088 ag_action_11, | |
1089 ag_action_12 | |
1090 } ag_parser_action; | |
1091 | |
1092 | |
1093 #ifndef NULL_VALUE_INITIALIZER | |
1094 #define NULL_VALUE_INITIALIZER = { 0 } | |
1095 #endif | |
1096 | |
1097 static cc-crash_vs_type const ag_null_value NULL_VALUE_INITIALIZER; | |
1098 | |
1099 static const unsigned char ag_rpx[] = { | |
1100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1101 0, 0, 0, 0, 0, 1, 2, 3, 0, 4, 0, 5, 6, 7, 0, 8, 0, 9, | |
1102 0, 0, 10, 0, 0, 0, 0, 0, 0, 11, 0, 12, 13, 14, 0, 15, 0, 16, | |
1103 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 0, 0, 0, 0, 0, 29, | |
1104 30, 31, 32, 0, 33, 0, 0, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, | |
1105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 46, 47, 48, 49, 50, | |
1106 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 52, 53, 54, 55, 56, 0, 0, | |
1107 57, 58, 59, 60, 61, 0, 0, 62, 63, 64, 65, 0, 66, 0, 67, 0, 68, 0, | |
1108 69, 0, 70, 0, 71, 0, 72, 73, 74, 75, 0, 76, 77, 78, 79, 80, 81, 82, | |
1109 83, 0, 84, 85, 0, 86, 87, 0, 88, 89, 90, 91, 0, 92, 93, 94, 95, 0, | |
1110 0, 96, 97, 0, 98, 99, 0,100, 0,101, 0,102,103,104, 0,105,106,107, | |
1111 108, 0, 0, 0, 0, 0, 0,109,110, 0,111,112,113,114,115,116, 0, 0, | |
1112 117,118, 0,119,120,121,122,123,124,125,126,127,128, 0,129,130,131,132, | |
1113 133, 0,134,135,136,137,138, 0, 0, 0,139,140 | |
1114 }; | |
1115 | |
1116 static const unsigned char ag_key_itt[] = { | |
1117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1119 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, | |
1120 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, | |
1121 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | |
1122 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1128 0 | |
1129 }; | |
1130 | |
1131 static const unsigned short ag_key_pt[] = { | |
1132 0,211, 0,214, 0,218, 0,221, 0,220, 0,219, 0,223, 0,224, | |
1133 0,225, 0,162, 0,163, 0,247, 0,248, 0,249, 0,250, 0,252, | |
1134 0,253, 0,254, 0,255, 0,256, 0,257, 0,258, 0,259, 0,260, | |
1135 0 | |
1136 }; | |
1137 | |
1138 static const unsigned char ag_key_ch[] = { | |
1139 0, 42, 47,255, 47, 97,105,115,255, 42, 47,255, 42, 47,255, 88,120,255, | |
1140 60, 61,255, 61, 62,255,101,111,255,108,110,120,255,105,111,255,116,255, | |
1141 102,110,255, 99,105,116,255, 33, 38, 46, 47, 48, 60, 61, 62, 97, 98, 99, | |
1142 100,101,102,104,105,108,112,115,116,118,119,124,255, 47, 97,105,115,255, | |
1143 47,255, 42, 47,255,110,120,255,105,111,255,102,110,255, 99,105,116,255, | |
1144 47, 97, 98, 99,100,101,102,104,105,108,112,115,116,118,119,255, 42, 47, | |
1145 255,108,110,120,255,105,111,255,102,110,255, 99,105,116,255, 47, 97, 98, | |
1146 99,100,101,102,104,105,108,112,115,116,118,119,255,102,110,255, 99,116, | |
1147 255, 47, 97,102,105,115,119,255, 42, 47,255, 60, 61,255, 61, 62,255,116, | |
1148 255,110,255,105,116,255, 33, 38, 46, 47, 60, 61, 62, 97, 98, 99,101,102, | |
1149 104,105,108,115,116,124,255,102,110,255, 99,116,255, 97,102,105,115,119, | |
1150 255, 42, 47,255, 88,120,255, 47, 48,255, 88,120,255, 48,255, 47,255, 34, | |
1151 39, 63, 92, 97, 98,102,110,114,116,118,120,255, 92,255, 42, 47,255, 60, | |
1152 61,255, 61, 62,255,105,116,255, 33, 38, 46, 47, 60, 61, 62, 97, 98, 99, | |
1153 100,101,102,104,105,108,115,116,124,255, 42, 47,255, 47, 62,100,255, 42, | |
1154 47,255, 47, 62,255, 47, 62,255, 47, 98, 99,101,102,104,108,115,116,255, | |
1155 62,255, 47,119,255, 47,101,255, 88,120,255, 47, 48,255, 60, 61,255, 61, | |
1156 62,255,105,116,255, 33, 38, 46, 47, 60, 61, 62, 97, 98, 99,101,102,104, | |
1157 105,108,115,116,124,255,105,116,255, 33, 38, 46, 47, 60, 61, 62, 97, 98, | |
1158 99,101,102,104,105,108,115,116,124,255, 42, 47,255, 60, 61,255, 61, 62, | |
1159 255,105,116,255, 33, 38, 46, 47, 60, 61, 62, 97, 98, 99,101,102,104,105, | |
1160 108,115,116,124,255, 42, 47,255, 60, 61,255, 61, 62,255,105,116,255, 33, | |
1161 38, 46, 47, 60, 61, 62,104,105,108,115,116,124,255, 42, 47,255, 47,255, | |
1162 33, 60, 61, 62,255,105,116,255, 33, 38, 46, 47, 61, 97, 98, 99,101,102, | |
1163 104,105,108,115,116,124,255,105,116,255, 38, 46, 47, 97, 98, 99,101,102, | |
1164 104,105,108,115,116,124,255,105,116,255, 46, 47, 97, 98, 99,101,102,104, | |
1165 105,108,115,116,124,255, 42, 47,255, 60, 61,255, 61, 62,255,108,110,255, | |
1166 105,116,255, 33, 38, 46, 47, 60, 61, 62, 97, 98, 99,100,101,102,104,105, | |
1167 108,115,116,119,124,255, 47,101,112,255, 47,100,101,112,118,255, 47, 99, | |
1168 255, 99,255,105,255, 47, 62,100,255,102,110,255, 99,116,255, 47, 97,101, | |
1169 102,105,115,119,255,101,255, 42, 47,255, 47,105,255, 47,105,255, 60, 62, | |
1170 255,100,255,105,255, 46,255, 42, 47,255, 61, 62,255,105,116,255, 33, 38, | |
1171 46, 47, 60, 61, 62, 97, 98, 99,100,101,102,104,105,108,115,116,124,255 | |
1172 }; | |
1173 | |
1174 static const unsigned char ag_key_act[] = { | |
1175 0,0,0,4,2,7,7,7,4,3,3,4,0,0,4,5,5,4,0,0,4,0,0,4,7,5,4,7,7,7,4,7,7,4,5, | |
1176 4,5,6,4,7,7,7,4,3,3,3,2,2,2,3,2,7,7,7,2,2,2,7,2,7,7,2,7,7,7,3,4,3,7,7, | |
1177 7,4,3,4,0,0,4,7,7,4,7,7,4,5,7,4,7,7,7,4,2,7,7,7,7,2,2,7,2,7,7,2,7,7,7, | |
1178 4,0,0,4,7,7,7,4,7,7,4,5,7,4,7,7,7,4,2,7,7,7,7,2,2,7,2,7,7,2,7,7,7,4,5, | |
1179 7,4,7,7,4,3,7,7,2,2,7,4,0,0,4,0,0,4,0,0,4,5,4,6,4,7,7,4,3,3,3,2,2,3,2, | |
1180 7,7,7,7,7,7,2,7,2,7,3,4,5,7,4,7,7,4,7,7,2,2,7,4,0,0,4,5,5,4,2,2,4,5,5, | |
1181 4,2,4,3,4,0,0,0,0,0,0,0,0,0,0,0,0,4,2,4,0,0,4,0,0,4,0,0,4,7,7,4,3,3,3, | |
1182 2,2,3,2,7,7,7,7,7,7,7,7,7,2,7,3,4,0,0,4,2,3,7,4,0,0,4,2,3,4,3,3,4,3,7, | |
1183 7,7,7,7,7,7,7,4,3,4,3,7,4,3,7,4,5,5,4,3,2,4,0,0,4,0,0,4,7,7,4,3,3,3,3, | |
1184 2,3,2,7,7,7,7,7,7,7,7,2,7,3,4,7,7,4,3,3,3,3,3,3,3,7,7,7,7,7,7,7,7,2,7, | |
1185 3,4,0,0,4,0,0,4,0,0,4,7,7,4,3,3,3,2,2,3,2,7,7,7,7,7,7,7,7,2,7,3,4,0,0, | |
1186 4,0,0,4,0,0,4,7,7,4,3,3,3,2,2,3,2,7,7,7,2,7,3,4,0,0,4,2,4,3,3,3,3,4,7, | |
1187 7,4,3,3,3,3,3,7,7,7,7,7,7,7,7,2,7,3,4,7,7,4,3,3,3,7,7,7,7,7,7,7,7,2,7, | |
1188 3,4,7,7,4,3,3,7,7,7,7,7,7,7,7,2,7,3,4,0,0,4,0,0,4,0,0,4,7,7,4,7,7,4,3, | |
1189 3,3,2,2,3,2,7,7,7,7,2,7,7,7,7,2,7,7,3,4,3,7,7,4,3,7,7,7,7,4,3,7,4,7,4, | |
1190 7,4,3,3,7,4,5,7,4,7,7,4,3,7,7,7,2,2,7,4,7,4,0,0,4,2,7,4,3,7,4,3,3,4,7, | |
1191 4,7,4,3,4,0,0,4,0,0,4,7,7,4,3,3,3,2,3,3,2,7,7,7,7,7,7,7,7,7,2,7,3,4 | |
1192 }; | |
1193 | |
1194 static const unsigned short ag_key_parm[] = { | |
1195 0, 13, 16, 0, 0, 12, 14, 16, 0, 12, 13, 0, 13, 16, 0, 20, 18, 0, | |
1196 236,234, 0,235,210, 0, 40, 10, 0, 0, 26, 44, 0, 36, 6, 0, 14, 0, | |
1197 2, 8, 0, 22, 30, 16, 0,233,229,246, 0, 0, 0,232, 0, 12, 46, 34, | |
1198 0, 0, 0, 28, 0, 32, 42, 0, 24, 38, 4,228, 0, 16, 12, 14, 16, 0, | |
1199 13, 0, 13, 16, 0, 26, 44, 0, 36, 6, 0, 2, 14, 0, 22, 30, 16, 0, | |
1200 0, 12, 46, 34, 40, 0, 0, 28, 0, 32, 42, 0, 24, 38, 4, 0, 13, 16, | |
1201 0, 0, 26, 44, 0, 36, 6, 0, 2, 14, 0, 22, 30, 16, 0, 0, 12, 46, | |
1202 34, 40, 0, 0, 28, 0, 32, 42, 0, 24, 38, 4, 0, 2, 14, 0, 22, 16, | |
1203 0, 16, 12, 6, 0, 0, 4, 0, 13, 16, 0,236,234, 0,235,210, 0, 14, | |
1204 0, 8, 0, 30, 16, 0,233,229,246, 0, 0,232, 0, 12, 46, 34, 26, 36, | |
1205 28, 0, 32, 0, 24,228, 0, 2, 14, 0, 22, 16, 0, 12, 6, 0, 0, 4, | |
1206 0, 13, 16, 0, 20, 18, 0, 0, 0, 0, 20, 18, 0, 0, 0, 16, 0, 64, | |
1207 63, 62, 61, 54, 55, 56, 57, 58, 59, 60, 72, 0, 0, 0, 13, 16, 0,236, | |
1208 234, 0,235,210, 0, 30, 16, 0,233,229,246, 0, 0,232, 0, 12, 46, 34, | |
1209 10, 26, 36, 28, 14, 32, 0, 24,228, 0, 13, 16, 0, 0,210, 10, 0, 13, | |
1210 16, 0, 0,210, 0, 16,210, 0, 16, 46, 34, 26, 36, 28, 32, 30, 24, 0, | |
1211 210, 0, 16, 4, 0, 16, 0, 0, 20, 18, 0, 13, 0, 0,236,234, 0,235, | |
1212 210, 0, 30, 16, 0,233,229,246, 16, 0,232, 0, 12, 46, 34, 26, 36, 28, | |
1213 14, 32, 0, 24,228, 0, 30, 16, 0,233,229,246, 16,234,232,235, 12, 46, | |
1214 34, 26, 36, 28, 14, 32, 0, 24,228, 0, 13, 16, 0,236,234, 0,235,210, | |
1215 0, 30, 16, 0,233,229,246, 0, 0,232, 0, 12, 46, 34, 26, 36, 28, 14, | |
1216 32, 0, 24,228, 0, 13, 16, 0,236,234, 0,235,210, 0, 30, 16, 0,233, | |
1217 229,246, 0, 0,232, 0, 28, 14, 32, 0, 24,228, 0, 13, 16, 0, 0, 0, | |
1218 233,234,232,235, 0, 30, 16, 0,233,229,246, 16,232, 12, 46, 34, 26, 36, | |
1219 28, 14, 32, 0, 24,228, 0, 30, 16, 0,229,246, 16, 12, 46, 34, 26, 36, | |
1220 28, 14, 32, 0, 24,228, 0, 30, 16, 0,246, 16, 12, 46, 34, 26, 36, 28, | |
1221 14, 32, 0, 24,228, 0, 13, 16, 0,236,234, 0,235,210, 0, 0, 26, 0, | |
1222 30, 16, 0,233,229,246, 0, 0,232, 0, 12, 46, 34, 10, 0, 36, 28, 14, | |
1223 32, 0, 24, 4,228, 0, 16, 44, 42, 0, 16, 40, 44, 42, 38, 0, 13, 34, | |
1224 0, 34, 0, 8, 0, 16,210, 10, 0, 2, 14, 0, 22, 16, 0, 16, 12, 0, | |
1225 6, 0, 0, 4, 0, 0, 0, 13, 16, 0, 0, 2, 0, 16, 2, 0,234,235, | |
1226 0, 10, 0, 2, 0,246, 0, 13, 16, 0,235,210, 0, 30, 16, 0,233,229, | |
1227 246, 0,234,232, 0, 12, 46, 34, 10, 26, 36, 28, 14, 32, 0, 24,228, 0 | |
1228 }; | |
1229 | |
1230 static const unsigned short ag_key_jmp[] = { | |
1231 0, 0, 0, 0, 1, 0, 6, 9, 0, 15, 17, 0, 0, 0, 0, 0, 0, 0, | |
1232 0, 0, 0, 0, 0, 0, 44, 0, 0, 50, 53, 57, 0, 67, 71, 0, 0, 0, | |
1233 0, 34, 0, 96,101,104, 0, 19, 21, 23, 12, 15, 18, 25, 21, 27, 33, 39, | |
1234 24, 27, 31, 73, 36, 82, 90, 39,109,114,122,127, 0,129,131,137,140, 0, | |
1235 146, 0, 0, 0, 0,172,176, 0,186,190, 0, 0,201, 0,217,222,225, 0, | |
1236 74,148,154,160,165, 77, 80,192, 83,203,211, 86,230,235,243, 0, 0, 0, | |
1237 0,272,275,279, 0,289,293, 0, 0,304, 0,320,325,328, 0,106,248,254, | |
1238 260,265,109,113,295,116,306,314,119,333,338,346, 0, 0,362, 0,364,369, | |
1239 0,351,353,359,139,142,374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1240 0,161, 0,431,434, 0,379,381,383,152,155,385,158,387,393,399,404,409, | |
1241 414,163,423,165,439,444, 0, 0,455, 0,457,462, 0,446,452,187,190,467, | |
1242 0, 0, 0, 0, 0, 0, 0,199,202, 0, 0, 0, 0,208, 0,472, 0, 0, | |
1243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, | |
1244 0, 0, 0, 0, 0,531,534, 0,474,476,478,230,233,480,236,482,488,494, | |
1245 499,501,506,511,520,523,239,539,544, 0, 0, 0, 0,262,546,548, 0, 0, | |
1246 0, 0,269,550, 0,552,554, 0,556,558,564,569,574,579,588,596,600, 0, | |
1247 605, 0,607,609, 0,614,616, 0, 0, 0, 0,620,296, 0, 0, 0, 0, 0, | |
1248 0, 0,679,682, 0,622,624,626,628,302,630,305,632,638,644,649,654,659, | |
1249 668,671,308,687,692, 0,755,758, 0,694,696,698,700,702,704,706,708,714, | |
1250 720,725,730,735,744,747,330,763,768, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1251 0,825,828, 0,770,772,774,352,355,776,358,778,784,790,795,800,805,814, | |
1252 817,361,833,838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,868,871, 0,840, | |
1253 842,844,383,386,846,389,848,857,860,392,876,881, 0, 0, 0, 0,409, 0, | |
1254 883,885,887,889, 0,948,951, 0,891,893,895,897,899,901,907,913,918,923, | |
1255 928,937,940,419,956,961, 0,1016,1019, 0,963,965,967,969,975,981,986, | |
1256 991,996,1005,1008,439,1024,1029, 0,1082,1085, 0,1031,1033,1035,1041, | |
1257 1047,1052,1057,1062,1071,1074,457,1090,1095, 0, 0, 0, 0, 0, 0, 0, | |
1258 0, 0, 0,1124,1127, 0,1156,1159, 0,1097,1099,1101,474,477,1103,480, | |
1259 1105,1111,1117,1122,483,1131,1136,1145,1148,486,1164,1169,1174, 0,1176, | |
1260 1178,1189, 0,1195,1197,1204,1215,1221, 0,1229,1231, 0,1236, 0,1241, | |
1261 0,1243,1245,1247, 0, 0,1264, 0,1266,1271, 0,1249,1251,1257,1261, | |
1262 531,534,1276, 0,1281, 0, 0, 0, 0,547,1285, 0,1287,1289, 0,1291, | |
1263 1293, 0,1295, 0,1297, 0,1299, 0, 0, 0, 0, 0, 0, 0,1360,1363, | |
1264 0,1301,1303,1305,565,1307,1309,568,1311,1317,1323,1328,1330,1335,1340, | |
1265 1349,1352,571,1368,1373, 0 | |
1266 }; | |
1267 | |
1268 static const unsigned short ag_key_index[] = { | |
1269 4, 9, 43, 67, 0, 72, 72, 72, 90,123, 0, 0, 0,145, 67, 0, 0, 0, | |
1270 168,168, 0, 0, 72, 72, 0,145,193,205, 0,211, 72,213,228, 0,242,265, | |
1271 72, 72,272,275, 72, 0, 0, 72,275, 0,278, 0, 0, 0,275,288,275, 0, | |
1272 290,293,213, 0,299,311, 0,211,333, 67,228,364,364,395,412,364,364,299, | |
1273 299,299,299, 0, 0,211,211,211,211,211,311,311,414,311,414,333,422,442, | |
1274 442,442,442,460, 67, 72,205,205,205,213,489, 0, 0,228,228, 0, 72, 0, | |
1275 211, 0,211, 72, 0,510, 72, 0,514, 72, 0, 72, 0,520,523,520,523, 72, | |
1276 0,213, 72, 0,525,299,211, 0,211, 0,299, 0, 0, 0,527,275,275,275, | |
1277 537,545,145, 0, 0, 0, 0, 0, 4, 0, 0,414, 0,299,211,299,211,299, | |
1278 211,211,211,211,211,299,211,299, 0,299, 0, 0, 0,299, 0,299, 0,211, | |
1279 211,211,211,211,211,299,211,299,211,211,299,211,299,211,299,211, 0,228, | |
1280 0, 0, 0,275, 0,213, 72, 0, 72, 0,213, 0, 0, 72, 0, 72, 0,213, | |
1281 211,211,213,213,211, 0, 72, 0, 0,213,213,213,213,213,275, 0,275, 0, | |
1282 550,553,364, 0,211,333, 0,311,311,211,311,311,333,333,333,333,422,422, | |
1283 311,311,311,311,556,333,333,422,442,442,442,442, 0, 0, 0, 0, 0, 0, | |
1284 0, 0, 0, 0, 0, 0, 0,213,213,559,211,275,275,561, 0,563,563,299, | |
1285 211,574,213,213,213,213,213,213,299,211,211,211, 0, 0, 72, 0,213, 0, | |
1286 299,211, 0,213, 0, 0 | |
1287 }; | |
1288 | |
1289 static const unsigned char ag_key_ends[] = { | |
1290 99,116,105,111,110,0, 110,116,0, 116,114,105,110,103,0, 47,0, | |
1291 42,0, 61,0, 38,0, 46,0, 61,0, 99,116,105,111,110,0, | |
1292 117,116,116,111,110,0, 111,108,111,114,0, 102,97,117,108,116,0, | |
1293 115,101,0, 116,114,121,0, 112,108,97,110,97,116,105,111,110,0, | |
1294 101,108,100,0, 114,0, 105,103,104,108,105,103,104,116,0, | |
1295 111,99,97,116,105,111,110,0, 114,111,109,112,116,0, 114,101,101,110,0, | |
1296 122,101,0, 114,105,110,103,0, 105,116,108,101,0, | |
1297 97,114,105,97,98,108,101,0, 104,105,108,101,0, 124,0, 47,0, | |
1298 99,116,105,111,110,0, 110,116,0, 116,114,105,110,103,0, 42,0, | |
1299 99,116,105,111,110,0, 117,116,116,111,110,0, 111,108,111,114,0, | |
1300 101,102,97,117,108,116,0, 116,114,121,0, | |
1301 112,108,97,110,97,116,105,111,110,0, 101,108,100,0, 114,0, | |
1302 105,103,104,108,105,103,104,116,0, 116,0, 111,99,97,116,105,111,110,0, | |
1303 114,111,109,112,116,0, 114,101,101,110,0, 122,101,0, | |
1304 114,105,110,103,0, 105,116,108,101,0, 97,114,105,97,98,108,101,0, | |
1305 104,105,108,101,0, 99,116,105,111,110,0, 117,116,116,111,110,0, | |
1306 111,108,111,114,0, 101,102,97,117,108,116,0, 115,101,0, | |
1307 116,114,121,0, 112,108,97,110,97,116,105,111,110,0, 101,108,100,0, | |
1308 114,0, 105,103,104,108,105,103,104,116,0, 116,0, | |
1309 111,99,97,116,105,111,110,0, 114,111,109,112,116,0, 114,101,101,110,0, | |
1310 122,101,0, 114,105,110,103,0, 105,116,108,101,0, | |
1311 97,114,105,97,98,108,101,0, 104,105,108,101,0, 47,0, | |
1312 99,116,105,111,110,0, 111,114,0, 116,0, 114,101,101,110,0, | |
1313 114,105,110,103,0, 104,105,108,101,0, 61,0, 38,0, 46,0, 61,0, | |
1314 99,116,105,111,110,0, 117,116,116,111,110,0, 111,108,111,114,0, | |
1315 110,116,114,121,0, 105,101,108,100,0, 105,103,104,108,105,103,104,116,0, | |
1316 111,99,97,116,105,111,110,0, 122,101,0, 114,105,110,103,0, | |
1317 105,116,108,101,0, 124,0, 99,116,105,111,110,0, 111,114,0, 116,0, | |
1318 114,101,101,110,0, 114,105,110,103,0, 104,105,108,101,0, 47,0, | |
1319 61,0, 38,0, 46,0, 61,0, 99,116,105,111,110,0, 117,116,116,111,110,0, | |
1320 111,108,111,114,0, 111,0, 110,116,114,121,0, 105,101,108,100,0, | |
1321 105,103,104,108,105,103,104,116,0, 110,116,0, | |
1322 111,99,97,116,105,111,110,0, 122,101,0, 114,105,110,103,0, | |
1323 105,116,108,101,0, 124,0, 62,0, 111,0, 62,0, 47,0, 62,0, 47,0, | |
1324 117,116,116,111,110,0, 111,108,111,114,0, 110,116,114,121,0, | |
1325 105,101,108,100,0, 105,103,104,108,105,103,104,116,0, | |
1326 111,99,97,116,105,111,110,0, 105,122,101,0, 105,116,108,101,0, | |
1327 62,0, 47,0, 104,105,108,101,0, 47,0, 108,115,101,0, 42,0, 61,0, | |
1328 38,0, 46,0, 47,0, 61,0, 99,116,105,111,110,0, 117,116,116,111,110,0, | |
1329 111,108,111,114,0, 110,116,114,121,0, 105,101,108,100,0, | |
1330 105,103,104,108,105,103,104,116,0, 110,116,0, | |
1331 111,99,97,116,105,111,110,0, 122,101,0, 114,105,110,103,0, | |
1332 105,116,108,101,0, 124,0, 61,0, 38,0, 46,0, 47,0, 61,0, 61,0, | |
1333 61,0, 99,116,105,111,110,0, 117,116,116,111,110,0, 111,108,111,114,0, | |
1334 110,116,114,121,0, 105,101,108,100,0, 105,103,104,108,105,103,104,116,0, | |
1335 110,116,0, 111,99,97,116,105,111,110,0, 122,101,0, 114,105,110,103,0, | |
1336 105,116,108,101,0, 124,0, 61,0, 38,0, 46,0, 61,0, | |
1337 99,116,105,111,110,0, 117,116,116,111,110,0, 111,108,111,114,0, | |
1338 110,116,114,121,0, 105,101,108,100,0, 105,103,104,108,105,103,104,116,0, | |
1339 110,116,0, 111,99,97,116,105,111,110,0, 122,101,0, 114,105,110,103,0, | |
1340 105,116,108,101,0, 124,0, 61,0, 38,0, 46,0, 61,0, | |
1341 105,103,104,108,105,103,104,116,0, 110,116,0, | |
1342 111,99,97,116,105,111,110,0, 122,101,0, 114,105,110,103,0, | |
1343 105,116,108,101,0, 124,0, 61,0, 61,0, 61,0, 61,0, 61,0, 38,0, | |
1344 46,0, 47,0, 61,0, 99,116,105,111,110,0, 117,116,116,111,110,0, | |
1345 111,108,111,114,0, 110,116,114,121,0, 105,101,108,100,0, | |
1346 105,103,104,108,105,103,104,116,0, 110,116,0, | |
1347 111,99,97,116,105,111,110,0, 122,101,0, 114,105,110,103,0, | |
1348 105,116,108,101,0, 124,0, 38,0, 46,0, 47,0, 99,116,105,111,110,0, | |
1349 117,116,116,111,110,0, 111,108,111,114,0, 110,116,114,121,0, | |
1350 105,101,108,100,0, 105,103,104,108,105,103,104,116,0, 110,116,0, | |
1351 111,99,97,116,105,111,110,0, 122,101,0, 114,105,110,103,0, | |
1352 105,116,108,101,0, 124,0, 46,0, 47,0, 99,116,105,111,110,0, | |
1353 117,116,116,111,110,0, 111,108,111,114,0, 110,116,114,121,0, | |
1354 105,101,108,100,0, 105,103,104,108,105,103,104,116,0, 110,116,0, | |
1355 111,99,97,116,105,111,110,0, 122,101,0, 114,105,110,103,0, | |
1356 105,116,108,101,0, 124,0, 61,0, 38,0, 46,0, 61,0, | |
1357 99,116,105,111,110,0, 117,116,116,111,110,0, 111,108,111,114,0, | |
1358 111,0, 115,101,0, 116,114,121,0, 105,101,108,100,0, | |
1359 105,103,104,108,105,103,104,116,0, 110,116,0, | |
1360 111,99,97,116,105,111,110,0, 122,101,0, 114,105,110,103,0, | |
1361 105,116,108,101,0, 104,105,108,101,0, 124,0, 47,0, | |
1362 120,112,108,97,110,97,116,105,111,110,0, 114,111,109,112,116,0, | |
1363 47,0, 101,102,97,117,108,116,0, 120,112,108,97,110,97,116,105,111,110,0, | |
1364 114,111,109,112,116,0, 97,114,105,97,98,108,101,0, 42,0, | |
1365 111,108,111,114,0, 111,108,111,114,0, 110,0, 47,0, 62,0, 111,0, | |
1366 47,0, 99,116,105,111,110,0, 108,115,101,0, 111,114,0, 116,0, | |
1367 114,101,101,110,0, 114,105,110,103,0, 104,105,108,101,0, | |
1368 108,115,101,0, 102,0, 47,0, 102,0, 61,0, 61,0, 111,0, 102,0, | |
1369 46,0, 61,0, 38,0, 46,0, 61,0, 61,0, 99,116,105,111,110,0, | |
1370 117,116,116,111,110,0, 111,108,111,114,0, 111,0, 110,116,114,121,0, | |
1371 105,101,108,100,0, 105,103,104,108,105,103,104,116,0, 110,116,0, | |
1372 111,99,97,116,105,111,110,0, 122,101,0, 114,105,110,103,0, | |
1373 105,116,108,101,0, 124,0, | |
1374 }; | |
1375 | |
1376 #define AG_TCV(x) ag_tcv[(x)] | |
1377 | |
1378 static const unsigned short ag_tcv[] = { | |
1379 26,193,193,193,193,193,193,193,193, 9, 15, 9, 9, 9,193,193,193,193, | |
1380 193,193,193,193,193,193,193,193, 26,193,193,193,193,193, 9,243, 50,203, | |
1381 193,241,231,169,213,212,239,237,251,238,193,240,167,194,194,194,194,194, | |
1382 194,194,195,195,226,216,207,215,209,227,217,261,261,261,261,261,261,262, | |
1383 262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262, | |
1384 262,202, 70,201,230,262,193,261,261,261,261,261,261,262,262,262,262,262, | |
1385 262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,205,208,204, | |
1386 242,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193, | |
1387 193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193, | |
1388 193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193, | |
1389 193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193, | |
1390 193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193, | |
1391 193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193, | |
1392 193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193, | |
1393 193,193,193,193 | |
1394 }; | |
1395 | |
1396 #ifndef SYNTAX_ERROR | |
1397 #define SYNTAX_ERROR fprintf(stderr,"%s, line %d, column %d\n", \ | |
1398 (PCB).error_message, (PCB).line, (PCB).column) | |
1399 #endif | |
1400 | |
1401 #ifndef FIRST_LINE | |
1402 #define FIRST_LINE 1 | |
1403 #endif | |
1404 | |
1405 #ifndef FIRST_COLUMN | |
1406 #define FIRST_COLUMN 1 | |
1407 #endif | |
1408 | |
1409 #ifndef PARSER_STACK_OVERFLOW | |
1410 #define PARSER_STACK_OVERFLOW {fprintf(stderr, \ | |
1411 "\nParser stack overflow, line %d, column %d\n",\ | |
1412 (PCB).line, (PCB).column);} | |
1413 #endif | |
1414 | |
1415 #ifndef REDUCTION_TOKEN_ERROR | |
1416 #define REDUCTION_TOKEN_ERROR {fprintf(stderr, \ | |
1417 "\nReduction token error, line %d, column %d\n", \ | |
1418 (PCB).line, (PCB).column);} | |
1419 #endif | |
1420 | |
1421 | |
1422 #ifndef INPUT_CODE | |
1423 #define INPUT_CODE(T) (T) | |
1424 #endif | |
1425 | |
1426 typedef enum | |
1427 {ag_accept_key, ag_set_key, ag_jmp_key, ag_end_key, ag_no_match_key, | |
1428 ag_cf_accept_key, ag_cf_set_key, ag_cf_end_key} key_words; | |
1429 | |
1430 static void ag_get_key_word(int ag_k) { | |
1431 int ag_save = (int) ((PCB).la_ptr - (PCB).pointer); | |
1432 const unsigned char *ag_p; | |
1433 int ag_ch; | |
1434 while (1) { | |
1435 switch (ag_key_act[ag_k]) { | |
1436 case ag_cf_end_key: { | |
1437 const unsigned char *sp = ag_key_ends + ag_key_jmp[ag_k]; | |
1438 do { | |
1439 if ((ag_ch = *sp++) == 0) { | |
1440 int ag_k1 = ag_key_parm[ag_k]; | |
1441 int ag_k2 = ag_key_pt[ag_k1]; | |
1442 if (ag_key_itt[ag_k2 + CONVERT_CASE(*(PCB).la_ptr)]) goto ag_fail; | |
1443 (PCB).token_number = (cc-crash_token_type) ag_key_pt[ag_k1 + 1]; | |
1444 return; | |
1445 } | |
1446 } while (CONVERT_CASE(*(PCB).la_ptr++) == ag_ch); | |
1447 goto ag_fail; | |
1448 } | |
1449 case ag_end_key: { | |
1450 const unsigned char *sp = ag_key_ends + ag_key_jmp[ag_k]; | |
1451 do { | |
1452 if ((ag_ch = *sp++) == 0) { | |
1453 (PCB).token_number = (cc-crash_token_type) ag_key_parm[ag_k]; | |
1454 return; | |
1455 } | |
1456 } while (CONVERT_CASE(*(PCB).la_ptr++) == ag_ch); | |
1457 } | |
1458 case ag_no_match_key: | |
1459 ag_fail: | |
1460 (PCB).la_ptr = (PCB).pointer + ag_save; | |
1461 return; | |
1462 case ag_cf_set_key: { | |
1463 int ag_k1 = ag_key_parm[ag_k]; | |
1464 int ag_k2 = ag_key_pt[ag_k1]; | |
1465 ag_k = ag_key_jmp[ag_k]; | |
1466 if (ag_key_itt[ag_k2 + CONVERT_CASE(*(PCB).la_ptr)]) break; | |
1467 ag_save = (int) ((PCB).la_ptr - (PCB).pointer); | |
1468 (PCB).token_number = (cc-crash_token_type) ag_key_pt[ag_k1+1]; | |
1469 break; | |
1470 } | |
1471 case ag_set_key: | |
1472 ag_save = (int) ((PCB).la_ptr - (PCB).pointer); | |
1473 (PCB).token_number = (cc-crash_token_type) ag_key_parm[ag_k]; | |
1474 case ag_jmp_key: | |
1475 ag_k = ag_key_jmp[ag_k]; | |
1476 break; | |
1477 case ag_accept_key: | |
1478 (PCB).token_number = (cc-crash_token_type) ag_key_parm[ag_k]; | |
1479 return; | |
1480 case ag_cf_accept_key: { | |
1481 int ag_k1 = ag_key_parm[ag_k]; | |
1482 int ag_k2 = ag_key_pt[ag_k1]; | |
1483 if (ag_key_itt[ag_k2 + CONVERT_CASE(*(PCB).la_ptr)]) | |
1484 (PCB).la_ptr = (PCB).pointer + ag_save; | |
1485 else (PCB).token_number = (cc-crash_token_type) ag_key_pt[ag_k1+1]; | |
1486 return; | |
1487 } | |
1488 } | |
1489 ag_ch = CONVERT_CASE(*(PCB).la_ptr++); | |
1490 ag_p = &ag_key_ch[ag_k]; | |
1491 if (ag_ch <= 255) while (*ag_p < ag_ch) ag_p++; | |
1492 if (ag_ch > 255 || *ag_p != ag_ch) { | |
1493 (PCB).la_ptr = (PCB).pointer + ag_save; | |
1494 return; | |
1495 } | |
1496 ag_k = (int) (ag_p - ag_key_ch); | |
1497 } | |
1498 } | |
1499 | |
1500 | |
1501 #ifndef AG_NEWLINE | |
1502 #define AG_NEWLINE 10 | |
1503 #endif | |
1504 | |
1505 #ifndef AG_RETURN | |
1506 #define AG_RETURN 13 | |
1507 #endif | |
1508 | |
1509 #ifndef AG_FORMFEED | |
1510 #define AG_FORMFEED 12 | |
1511 #endif | |
1512 | |
1513 #ifndef AG_TABCHAR | |
1514 #define AG_TABCHAR 9 | |
1515 #endif | |
1516 | |
1517 static void ag_track(void) { | |
1518 int ag_k = (int) ((PCB).la_ptr - (PCB).pointer); | |
1519 while (ag_k--) { | |
1520 switch (*(PCB).pointer++) { | |
1521 case AG_NEWLINE: | |
1522 (PCB).column = 1, (PCB).line++; | |
1523 case AG_RETURN: | |
1524 case AG_FORMFEED: | |
1525 break; | |
1526 case AG_TABCHAR: | |
1527 (PCB).column += (TAB_SPACING) - ((PCB).column - 1) % (TAB_SPACING); | |
1528 break; | |
1529 default: | |
1530 (PCB).column++; | |
1531 } | |
1532 } | |
1533 } | |
1534 | |
1535 | |
1536 static void ag_prot(void) { | |
1537 int ag_k; | |
1538 ag_k = 128 - ++(PCB).btsx; | |
1539 if (ag_k <= (PCB).ssx) { | |
1540 (PCB).exit_flag = AG_STACK_ERROR_CODE; | |
1541 PARSER_STACK_OVERFLOW; | |
1542 return; | |
1543 } | |
1544 (PCB).bts[(PCB).btsx] = (PCB).sn; | |
1545 (PCB).bts[ag_k] = (PCB).ssx; | |
1546 (PCB).vs[ag_k] = (PCB).vs[(PCB).ssx]; | |
1547 (PCB).ss[ag_k] = (PCB).ss[(PCB).ssx]; | |
1548 (PCB).cs[ag_k] = (PCB).cs[(PCB).ssx]; | |
1549 } | |
1550 | |
1551 static void ag_undo(void) { | |
1552 if ((PCB).drt == -1) return; | |
1553 while ((PCB).btsx) { | |
1554 int ag_k = 128 - (PCB).btsx; | |
1555 (PCB).sn = (PCB).bts[(PCB).btsx--]; | |
1556 (PCB).ssx = (PCB).bts[ag_k]; | |
1557 (PCB).vs[(PCB).ssx] = (PCB).vs[ag_k]; | |
1558 (PCB).ss[(PCB).ssx] = (PCB).ss[ag_k]; | |
1559 (PCB).cs[(PCB).ssx] = (PCB).cs[ag_k]; | |
1560 } | |
1561 (PCB).token_number = (cc-crash_token_type) (PCB).drt; | |
1562 (PCB).ssx = (PCB).dssx; | |
1563 (PCB).sn = (PCB).dsn; | |
1564 (PCB).drt = -1; | |
1565 } | |
1566 | |
1567 | |
1568 | |
1569 static const int ag_rtt[] = { | |
1570 101,104, 28, 0,152,155,153,156, 0 | |
1571 }; | |
1572 | |
1573 static const unsigned short ag_tstt[] = { | |
1574 225,224,223,205,26,16,15,13,9,0,1,10,11,117,197, | |
1575 262,261,251,243,242,241,240,239,238,237,231,230,227,226,217,216,215,213,212, | |
1576 209,208,207,205,204,203,202,201,195,194,193,169,167,70,50,15,13,12,9,0, | |
1577 10,11, | |
1578 13,9,0,1,10,11, | |
1579 225,224,223,205,26,16,15,0,7,20,21,22,23,24,25,40,114,115,116,198, | |
1580 262,261,251,243,242,241,240,239,238,237,231,230,227,226,217,216,215,213,212, | |
1581 209,208,207,205,204,203,202,201,195,194,193,169,167,70,50,15,9,0,18,19, | |
1582 262,261,13,9,0,1,10,11,117,197, | |
1583 262,261,13,9,0,1,10,11,117,197, | |
1584 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,195,194,193,169, | |
1585 167,70,13,9,0,1,10,11,117,197, | |
1586 262,261,260,259,258,257,256,255,254,253,252,251,250,249,248,247,243,242,241, | |
1587 240,239,238,237,231,230,227,226,225,224,223,221,218,216,215,214,213,209, | |
1588 208,207,205,204,203,195,194,193,169,167,70,50,16,15,13,9,0,1,10,11,117, | |
1589 197, | |
1590 262,261,260,259,258,257,256,255,254,253,252,251,250,249,248,247,243,242,241, | |
1591 240,239,238,237,231,230,227,226,225,224,223,221,218,216,215,214,213,211, | |
1592 209,208,207,205,204,203,195,194,193,169,167,70,50,26,16,15,13,9,0,1,10, | |
1593 11,117,197, | |
1594 262,261,0,110,166,196, | |
1595 262,261,0,110,166,196, | |
1596 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,195,194,193,169, | |
1597 167,70,0,8,206,222, | |
1598 262,261,251,247,243,242,241,240,239,238,237,231,230,227,226,225,224,223,221, | |
1599 218,216,214,213,204,195,194,193,169,167,70,50,16,15,0,7,84,85,198, | |
1600 225,224,223,205,16,15,0,7,21,22,23,40,114,115,116,198, | |
1601 26,0, | |
1602 262,261,251,243,242,241,240,239,238,237,231,230,227,226,217,216,215,213,212, | |
1603 209,208,207,205,204,203,202,201,195,194,193,169,167,70,50,9,0, | |
1604 15,0, | |
1605 262,261,260,255,254,253,252,251,250,249,248,246,241,240,239,238,237,236,235, | |
1606 234,233,232,231,230,229,228,227,226,225,224,223,220,217,216,215,213,212, | |
1607 210,209,208,207,205,204,203,202,195,194,167,26,16,15,13,9,0,1,10,11,117, | |
1608 197, | |
1609 262,261,260,255,254,253,252,251,250,249,248,246,241,240,239,238,237,236,235, | |
1610 234,233,232,231,230,229,228,227,226,225,224,223,220,217,216,215,213,212, | |
1611 210,209,208,207,205,204,203,202,195,194,167,26,16,15,13,9,0,1,10,11,117, | |
1612 197, | |
1613 262,261,215,195,194,167,0,100,119,166,196, | |
1614 262,261,215,195,194,167,0,100,119,166,196, | |
1615 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,195,194,193,169, | |
1616 167,70,0, | |
1617 205,13,9,0,1,10,11,117,197, | |
1618 205,0,37,38,40, | |
1619 16,15,0,7,198, | |
1620 262,261,251,247,243,242,241,240,239,238,237,231,230,227,226,225,224,223,221, | |
1621 218,216,214,213,204,195,194,193,169,167,70,50,0,2,4,5,22,27,28,33,43,49, | |
1622 75,76,80,86,87,88,89,91,92,93,95,96,97,98,99,101,104,108,109,114,115, | |
1623 116,172,173,199,200,206, | |
1624 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,215,213,209,208, | |
1625 207,205,204,203,195,194,193,169,167,163,162,70,50,16,15,13,9,0,1,10,11, | |
1626 117,197, | |
1627 262,261,215,213,205,50,0,4,37,38,40,45,49,100,105,110,150,151,155,156,166, | |
1628 196,200, | |
1629 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1630 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
1631 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
1632 196,200,244,245, | |
1633 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,195,194,193,169, | |
1634 167,70,13,9,0,1,10,11,206, | |
1635 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,215,213,209,208, | |
1636 207,205,204,203,195,194,193,169,167,70,50,16,15,0,2,4,5,7,34,37,38,39, | |
1637 40,41,43,49,79,81,82,100,198,199,200,206, | |
1638 262,261,251,243,242,241,240,239,238,237,231,230,227,226,217,216,215,213,212, | |
1639 209,208,207,205,204,203,202,201,195,194,193,169,167,72,70,64,63,62,61, | |
1640 60,59,58,57,56,55,54,50,9,0,51,53,65,66,67,68,69, | |
1641 262,261,251,243,242,241,240,239,238,237,231,230,227,226,217,216,215,213,212, | |
1642 209,208,207,205,204,203,202,201,195,194,193,169,167,70,50,15,9,0,46,48, | |
1643 262,261,260,255,254,253,252,251,250,249,248,246,243,242,241,240,239,238,237, | |
1644 236,235,234,233,232,231,230,229,228,227,226,225,224,223,219,217,216,215, | |
1645 213,212,210,209,208,207,205,204,203,202,201,195,194,193,169,167,70,50, | |
1646 26,16,15,13,9,0,1,10,11,117,197, | |
1647 262,261,251,243,242,241,240,239,238,237,231,230,227,226,219,216,215,213,212, | |
1648 210,209,208,207,205,204,203,202,201,195,194,193,169,167,70,50,16,15,13, | |
1649 9,0,1,10,11,117,197, | |
1650 213,13,9,0,1,10,11,117,197, | |
1651 205,13,9,0,1,10,11,117,197, | |
1652 262,261,251,243,242,241,240,239,238,237,231,230,227,226,217,216,215,213,212, | |
1653 210,209,208,207,205,204,203,202,201,195,194,193,169,167,70,50,16,15,13, | |
1654 9,0,1,10,11,117,197, | |
1655 202,0,29, | |
1656 213,13,9,0,1,10,11,117,197, | |
1657 213,0,45, | |
1658 205,0,40, | |
1659 262,261,13,9,0,1,10,11,117,197, | |
1660 203,0,34, | |
1661 213,0,45, | |
1662 260,255,254,253,252,250,249,248,204,16,15,0,7,39,174,176,177,178,179,181, | |
1663 182,183,184,185,190,198, | |
1664 262,261,0,110,166,196, | |
1665 217,215,0,100,106, | |
1666 215,0,100, | |
1667 215,0,100, | |
1668 210,209,208,0,81,82,83, | |
1669 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,210,209,208, | |
1670 207,205,204,195,194,193,169,167,70,50,16,15,0,2,4,5,27,28,31,35,37,38, | |
1671 40,43,49,77,78,199,200,206, | |
1672 205,0,37,38,40, | |
1673 218,0,98,108, | |
1674 211,204,16,15,0,7,84,85,198, | |
1675 204,16,15,0,7,84,85,198, | |
1676 204,0,39, | |
1677 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,215,213,205,203, | |
1678 195,194,193,169,167,163,162,70,50,13,9,0,1,10,11,117,197, | |
1679 262,261,195,194,167,0,119,166,196, | |
1680 262,261,215,213,205,50,0,4,37,38,40,45,49,100,105,110,150,151,155,156,166, | |
1681 196,200, | |
1682 262,261,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6,34,37,38,40,45, | |
1683 49,100,107,110,150,151,152,153,155,156,159,160,161,164,166,196,200,244, | |
1684 245, | |
1685 217,202,0,29,106, | |
1686 225,224,223,216,205,204,203,26,16,15,0,34,102,103, | |
1687 262,261,251,243,242,241,240,239,238,237,231,230,227,226,217,216,215,213,212, | |
1688 209,208,207,205,204,203,202,201,195,194,193,167,72,70,64,63,62,61,60,59, | |
1689 58,57,56,55,54,50,9,0,53,65,66,67,68,69,170, | |
1690 195,194,167,0, | |
1691 194,167,0, | |
1692 261,195,194,167,0,74, | |
1693 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,215,213,209,208, | |
1694 207,205,204,203,195,194,193,169,167,70,50,16,15,13,9,0,1,10,11,117,197, | |
1695 260,255,254,253,252,251,250,249,248,246,241,240,239,238,237,236,235,234,233, | |
1696 232,231,230,229,228,227,226,225,224,223,217,216,215,212,210,209,208,207, | |
1697 205,204,203,202,26,16,15,13,9,0,1,10,11,117,197, | |
1698 260,255,254,253,252,251,250,249,248,246,241,240,239,238,237,236,235,234,233, | |
1699 232,231,230,229,228,227,226,225,224,223,217,216,215,212,210,209,208,207, | |
1700 205,204,203,202,26,16,15,13,9,0,1,10,11,117,197, | |
1701 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1702 10,11,117,197, | |
1703 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1704 10,11,117,197, | |
1705 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1706 10,11,117,197, | |
1707 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1708 10,11,117,197, | |
1709 213,0,45,154, | |
1710 262,261,215,213,205,50,0,4,37,38,40,45,49,100,110,151,155,156,166,196,200, | |
1711 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1712 34,37,38,40,45,49,100,107,110,141,142,143,148,149,150,151,152,153,155, | |
1713 156,159,160,161,164,166,196,200,244,245, | |
1714 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1715 34,37,38,40,45,49,100,107,110,141,142,143,148,149,150,151,152,153,155, | |
1716 156,159,160,161,164,166,196,200,244,245, | |
1717 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1718 34,37,38,40,45,49,100,107,110,141,142,143,148,149,150,151,152,153,155, | |
1719 156,159,160,161,164,166,196,200,244,245, | |
1720 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1721 34,37,38,40,45,49,100,107,110,141,142,143,148,149,150,151,152,153,155, | |
1722 156,159,160,161,164,166,196,200,244,245, | |
1723 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1724 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
1725 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
1726 196,200,244,245, | |
1727 241,240,239,0,144,145,147, | |
1728 238,237,0,141,142, | |
1729 217,202,0,29,106, | |
1730 236,210,0,83,139, | |
1731 235,234,233,232,209,207,203,0,34,79,82,133,134,136,137, | |
1732 235,234,209,207,0,79,82,136,137, | |
1733 233,232,0,133,134, | |
1734 231,0,131, | |
1735 230,0,129, | |
1736 208,0,81, | |
1737 229,0,126, | |
1738 228,227,0,121,124, | |
1739 225,224,223,216,205,204,26,16,15,0,102,103, | |
1740 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,195,194,193,169, | |
1741 167,70,0, | |
1742 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,215,213,209,208, | |
1743 207,205,204,203,195,194,193,169,167,163,162,70,50,16,15,13,9,0,1,10,11, | |
1744 117,197, | |
1745 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,215,213,209,208, | |
1746 207,205,204,203,195,194,193,169,167,163,162,70,50,16,15,13,9,0,1,10,11, | |
1747 117,197, | |
1748 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,215,213,209,208, | |
1749 207,205,204,203,195,194,193,169,167,163,162,70,50,16,15,13,9,0,1,10,11, | |
1750 117,197, | |
1751 202,0,29, | |
1752 262,261,260,255,254,253,252,251,250,249,248,246,243,242,241,240,239,238,237, | |
1753 236,235,234,233,232,231,230,229,228,227,226,225,224,223,219,218,217,216, | |
1754 215,213,212,211,210,209,208,207,205,204,203,202,201,195,194,193,169,167, | |
1755 70,50,26,16,15,13,9,0,1,10,11,117,197, | |
1756 194,167,0, | |
1757 261,195,194,167,0,73,74, | |
1758 194,167,0, | |
1759 194,167,0, | |
1760 213,0,43, | |
1761 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1762 193,169,167,70,50,13,9,0,1,10,11,117,197, | |
1763 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1764 193,169,167,70,50,0,30, | |
1765 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1766 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
1767 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
1768 196,200,244,245, | |
1769 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,195,194,193, | |
1770 169,167,70,50,0,2,4,5,27,28,43,49,199,200,206, | |
1771 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1772 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
1773 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
1774 196,200,244,245, | |
1775 205,13,9,0,1,10,11,117,197, | |
1776 205,0,40, | |
1777 259,258,205,204,16,15,0,7,37,38,39,40,188,189,198, | |
1778 205,13,9,0,1,10,11,117,197, | |
1779 205,0,40, | |
1780 259,258,257,256,204,16,15,0,7,39,186,187,188,189,198, | |
1781 215,13,9,0,1,10,11,117,197, | |
1782 215,0,100, | |
1783 215,13,9,0,1,10,11,117,197, | |
1784 215,0,100, | |
1785 254,13,9,0,1,10,11,117,197, | |
1786 254,0,176,184, | |
1787 254,13,9,0,1,10,11,117,197, | |
1788 254,0,176,184, | |
1789 215,13,9,0,1,10,11,117,197, | |
1790 215,0,100, | |
1791 16,15,0,7,198, | |
1792 215,13,9,0,1,10,11,117,197, | |
1793 215,0,100, | |
1794 262,261,220,195,194,167,0,111,119,166,196, | |
1795 262,261,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1,10,11,117,197, | |
1796 262,261,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6,34,37,38,40,45, | |
1797 49,100,107,110,150,151,152,153,155,156,159,160,161,164,166,196,200,244, | |
1798 245, | |
1799 262,261,215,213,205,50,0,4,37,38,40,45,49,100,105,110,150,151,155,156,166, | |
1800 196,200, | |
1801 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1802 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
1803 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
1804 196,200,244,245, | |
1805 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1806 193,169,167,70,50,0,2,4,5,27,28,31,35,37,38,40,43,49,199,200,206, | |
1807 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,215,213,205,203, | |
1808 195,194,193,169,167,163,162,70,50,13,9,0,1,10,11,117,197, | |
1809 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1810 193,169,167,70,50,0,2,4,5,27,28,31,35,37,38,40,43,49,199,200,206, | |
1811 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1812 193,169,167,70,50,0,2,4,5,27,28,31,35,37,38,40,43,49,199,200,206, | |
1813 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,195,194,193, | |
1814 169,167,70,50,0,2,4,5,27,28,33,43,49,76,199,200,206, | |
1815 202,0,29, | |
1816 203,0,34, | |
1817 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1818 193,169,167,70,50,0,2,4,5,27,28,31,35,37,38,40,43,49,199,200,206, | |
1819 210,209,208,207,204,16,15,0,79, | |
1820 262,261,251,247,243,242,241,240,239,238,237,231,230,227,226,225,224,223,221, | |
1821 218,216,214,213,195,194,193,169,167,70,50,16,15,0,2,4,5,7,22,27,28,33, | |
1822 43,49,75,76,80,89,91,92,93,95,96,97,98,99,101,104,108,109,114,115,116, | |
1823 172,173,198,199,200,206, | |
1824 211,0,90, | |
1825 262,261,251,247,243,242,241,240,239,238,237,231,230,227,226,225,224,223,221, | |
1826 218,216,214,213,195,194,193,169,167,70,50,16,15,0,2,4,5,7,22,27,28,33, | |
1827 43,49,75,76,80,89,91,92,93,95,96,97,98,99,101,104,108,109,114,115,116, | |
1828 172,173,198,199,200,206, | |
1829 212,203,0,34,44, | |
1830 217,202,0,29,106, | |
1831 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1832 193,169,167,70,50,0,158, | |
1833 213,0,45, | |
1834 262,261,215,213,205,50,0,4,37,38,40,45,49,100,110,150,151,155,156,166,196, | |
1835 200, | |
1836 225,224,223,205,204,26,16,15,13,9,0,1,10,11,117,197, | |
1837 169,0, | |
1838 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1839 193,169,167,70,50,0,2,4,5,27,28,31,35,37,38,40,43,49,199,200,206, | |
1840 235,234,233,232,212,209,207,203,0,34,44,79,82,133,134,136,137, | |
1841 212,0,44, | |
1842 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1843 10,11,117,197, | |
1844 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1845 34,37,38,40,45,49,100,107,110,141,142,143,146,148,149,150,151,152,153, | |
1846 155,156,159,160,161,164,166,196,200,244,245, | |
1847 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1848 10,11,117,197, | |
1849 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1850 34,37,38,40,45,49,100,107,110,141,142,143,146,148,149,150,151,152,153, | |
1851 155,156,159,160,161,164,166,196,200,244,245, | |
1852 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1853 10,11,117,197, | |
1854 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1855 34,37,38,40,45,49,100,107,110,141,142,143,148,149,150,151,152,153,155, | |
1856 156,159,160,161,164,166,196,200,244,245, | |
1857 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1858 34,37,38,40,45,49,100,107,110,140,141,142,143,148,149,150,151,152,153, | |
1859 155,156,159,160,161,164,166,196,200,244,245, | |
1860 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1861 34,37,38,40,45,49,100,107,110,140,141,142,143,148,149,150,151,152,153, | |
1862 155,156,159,160,161,164,166,196,200,244,245, | |
1863 262,261,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6,34,37,38,40,45, | |
1864 49,100,107,110,150,151,152,153,155,156,159,160,161,164,166,196,200,244, | |
1865 245, | |
1866 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1867 34,37,38,40,45,49,100,107,110,138,140,141,142,143,148,149,150,151,152, | |
1868 153,155,156,159,160,161,164,166,196,200,244,245, | |
1869 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1870 10,11,117,197, | |
1871 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1872 34,37,38,40,45,49,100,107,110,138,140,141,142,143,148,149,150,151,152, | |
1873 153,155,156,159,160,161,164,166,196,200,244,245, | |
1874 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1875 10,11,117,197, | |
1876 262,261,215,213,205,50,0,4,37,38,40,45,49,100,105,110,150,151,155,156,166, | |
1877 196,200, | |
1878 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1879 10,11,117,197, | |
1880 262,261,215,213,205,50,0,4,37,38,40,45,49,100,105,110,150,151,155,156,166, | |
1881 196,200, | |
1882 262,261,215,213,205,50,0,4,37,38,40,45,49,100,105,110,150,151,155,156,166, | |
1883 196,200, | |
1884 262,261,215,213,205,50,0,4,37,38,40,45,49,100,105,110,150,151,155,156,166, | |
1885 196,200, | |
1886 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1887 10,11,117,197, | |
1888 262,261,215,213,205,50,0,4,37,38,40,45,49,100,105,110,150,151,155,156,166, | |
1889 196,200, | |
1890 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1891 10,11,117,197, | |
1892 262,261,215,213,205,50,0,4,37,38,40,45,49,100,105,110,150,151,155,156,166, | |
1893 196,200, | |
1894 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1895 34,37,38,40,45,49,100,107,110,135,138,140,141,142,143,148,149,150,151, | |
1896 152,153,155,156,159,160,161,164,166,196,200,244,245, | |
1897 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1898 34,37,38,40,45,49,100,107,110,135,138,140,141,142,143,148,149,150,151, | |
1899 152,153,155,156,159,160,161,164,166,196,200,244,245, | |
1900 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1901 34,37,38,40,45,49,100,107,110,135,138,140,141,142,143,148,149,150,151, | |
1902 152,153,155,156,159,160,161,164,166,196,200,244,245, | |
1903 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1904 34,37,38,40,45,49,100,107,110,135,138,140,141,142,143,148,149,150,151, | |
1905 152,153,155,156,159,160,161,164,166,196,200,244,245, | |
1906 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1907 34,37,38,40,45,49,100,105,107,110,132,135,138,140,141,142,143,148,149, | |
1908 150,151,152,153,155,156,159,160,161,164,166,196,200,244,245, | |
1909 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1910 34,37,38,40,45,49,100,105,107,110,132,135,138,140,141,142,143,148,149, | |
1911 150,151,152,153,155,156,159,160,161,164,166,196,200,244,245, | |
1912 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1913 10,11,117,197, | |
1914 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1915 34,37,38,40,45,49,100,105,107,110,130,132,135,138,140,141,142,143,148, | |
1916 149,150,151,152,153,155,156,159,160,161,164,166,196,200,244,245, | |
1917 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1918 10,11,117,197, | |
1919 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1920 34,37,38,40,45,49,100,105,107,110,128,130,132,135,138,140,141,142,143, | |
1921 148,149,150,151,152,153,155,156,159,160,161,164,166,196,200,244,245, | |
1922 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1923 34,37,38,40,45,49,100,105,107,110,127,128,130,132,135,138,140,141,142, | |
1924 143,148,149,150,151,152,153,155,156,159,160,161,164,166,196,200,244,245, | |
1925 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1926 10,11,117,197, | |
1927 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1928 34,37,38,40,45,49,100,105,107,110,125,127,128,130,132,135,138,140,141, | |
1929 142,143,148,149,150,151,152,153,155,156,159,160,161,164,166,196,200,244, | |
1930 245, | |
1931 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1932 10,11,117,197, | |
1933 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1934 34,37,38,40,45,49,100,105,107,110,123,125,127,128,130,132,135,138,140, | |
1935 141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166,196,200, | |
1936 244,245, | |
1937 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
1938 10,11,117,197, | |
1939 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1940 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
1941 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
1942 196,200,244,245, | |
1943 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1944 193,169,167,70,50,0,2,4,5,27,28,31,35,37,38,40,43,49,199,200,206, | |
1945 261,195,194,167,0,74, | |
1946 262,261,251,243,242,241,240,239,238,237,231,230,227,226,217,216,215,213,212, | |
1947 209,208,207,205,204,203,202,201,195,194,193,169,167,70,50,15,9,0,46,48, | |
1948 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1949 193,169,167,70,50,0,2,4,5,27,28,31,35,37,38,40,43,49,199,200,206, | |
1950 212,0,44, | |
1951 202,0,29, | |
1952 212,0,44, | |
1953 16,15,0,7,198, | |
1954 215,13,9,0,1,10,11,117,197, | |
1955 215,0,100, | |
1956 215,13,9,0,1,10,11,117,197, | |
1957 215,0,100, | |
1958 16,15,0,7,198, | |
1959 215,0,100, | |
1960 215,0,100, | |
1961 215,13,9,0,1,10,11,117,197, | |
1962 215,0,100, | |
1963 215,13,9,0,1,10,11,117,197, | |
1964 215,0,100, | |
1965 16,15,0,7,198, | |
1966 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1967 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
1968 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
1969 196,200,244,245, | |
1970 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1971 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
1972 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
1973 196,200,244,245, | |
1974 16,15,0,7,198, | |
1975 16,15,0,7,198, | |
1976 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
1977 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
1978 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
1979 196,200,244,245, | |
1980 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,195,194,193, | |
1981 169,167,70,50,0,2,4,5,43,49,175,191,199,200,206, | |
1982 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1983 193,169,167,70,50,13,9,0,1,10,11,117,197, | |
1984 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1985 193,169,167,70,50,0,2,4,5,27,28,31,35,37,38,40,43,49,199,200,206, | |
1986 215,0,100, | |
1987 216,204,203,16,15,0,34,102,103, | |
1988 216,204,16,15,0,102,103, | |
1989 203,0,34, | |
1990 203,0,34, | |
1991 203,0,34, | |
1992 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,210,209,208, | |
1993 205,204,195,194,193,169,167,70,50,16,15,0,2,4,5,27,28,31,35,37,38,40,43, | |
1994 49,77,78,199,200,206, | |
1995 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1996 193,169,167,70,50,0,2,4,5,27,28,35,37,38,40,43,49,199,200,206, | |
1997 203,0,34, | |
1998 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
1999 193,169,167,70,50,0,2,4,5,27,28,31,35,37,38,40,43,49,199,200,206, | |
2000 214,205,16,15,13,9,0,1,10,11,117,197, | |
2001 214,205,16,15,0,7,37,38,40,84,85,198, | |
2002 260,255,254,253,252,251,250,249,248,246,241,240,239,238,237,236,235,234,233, | |
2003 232,231,230,229,228,227,226,225,224,223,217,216,215,212,210,209,208,207, | |
2004 205,204,203,202,26,16,15,13,9,0,1,10,11,117,197, | |
2005 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
2006 193,169,167,70,50,0,2,4,5,27,28,31,35,37,38,40,43,49,199,200,206, | |
2007 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
2008 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
2009 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
2010 196,200,244,245, | |
2011 217,202,0,29,106, | |
2012 212,203,0,34,44, | |
2013 241,240,239,0,144,145,147, | |
2014 241,240,239,0,144,145,147, | |
2015 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
2016 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
2017 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
2018 196,200,244,245, | |
2019 238,237,0,141,142, | |
2020 238,237,0,141,142, | |
2021 203,0,34, | |
2022 203,0,34, | |
2023 203,0,34, | |
2024 203,0,34, | |
2025 203,0,34, | |
2026 203,0,34, | |
2027 236,210,0,83,139, | |
2028 236,210,0,83,139, | |
2029 236,210,0,83,139, | |
2030 236,210,0,83,139, | |
2031 235,234,209,207,203,0,34,79,82,136,137, | |
2032 235,234,209,207,0,79,82,136,137, | |
2033 235,234,209,207,0,79,82,136,137, | |
2034 233,232,0,133,134, | |
2035 231,0,131, | |
2036 230,0,129, | |
2037 208,0,81, | |
2038 229,0,126, | |
2039 226,0,122, | |
2040 203,201,0,32,34, | |
2041 203,201,0,32,34, | |
2042 205,0,37,38,40, | |
2043 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,195,194,193, | |
2044 169,167,70,50,0,2,4,5,43,49,175,191,199,200,206, | |
2045 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,195,194,193, | |
2046 169,167,70,50,0,2,4,5,43,49,175,191,199,200,206, | |
2047 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,195,194,193, | |
2048 169,167,70,50,0,2,4,5,43,49,175,191,199,200,206, | |
2049 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,195,194,193, | |
2050 169,167,70,50,0,2,4,5,43,49,175,191,199,200,206, | |
2051 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,195,194,193, | |
2052 169,167,70,50,0,2,4,5,43,49,175,191,199,200,206, | |
2053 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,195,194,193,169, | |
2054 167,70,0,2,206, | |
2055 251,0,180, | |
2056 251,0,180, | |
2057 251,0,180, | |
2058 202,0,29, | |
2059 203,16,15,0,7,34,198, | |
2060 219,205,203,0,34,112,113, | |
2061 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
2062 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
2063 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
2064 196,200,244,245, | |
2065 210,209,208,204,16,15,0, | |
2066 210,209,208,204,203,16,15,0,34, | |
2067 214,0,92,93, | |
2068 203,201,0,32,34, | |
2069 246,0,157, | |
2070 246,212,0,44,157, | |
2071 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
2072 10,11,117,197, | |
2073 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
2074 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
2075 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
2076 196,200,244,245, | |
2077 262,261,260,255,254,253,252,251,250,249,248,246,243,242,241,240,239,238,237, | |
2078 235,234,233,232,231,230,229,228,227,226,225,224,223,219,217,216,215,213, | |
2079 212,210,209,208,207,205,204,203,202,201,195,194,193,169,167,70,50,26,16, | |
2080 15,13,9,0,1,10,11,117,197, | |
2081 203,16,15,0,7,34,198, | |
2082 203,16,15,0,7,34,198, | |
2083 203,16,15,0,7,34,198, | |
2084 203,16,15,0,7,34,198, | |
2085 203,16,15,0,7,34,198, | |
2086 16,15,0,7,198, | |
2087 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
2088 10,11,117,197, | |
2089 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
2090 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
2091 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
2092 196,200,244,245, | |
2093 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
2094 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
2095 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
2096 196,200,244,245, | |
2097 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
2098 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
2099 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
2100 196,200,244,245, | |
2101 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
2102 193,169,167,70,50,0,192, | |
2103 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,195,194,193, | |
2104 169,167,70,50,0,2,4,5,43,49,191,199,200,206, | |
2105 205,13,9,0,1,10,11,117,197, | |
2106 205,0,37,38,40, | |
2107 216,204,16,15,0,102,103, | |
2108 205,0,37,38,40, | |
2109 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,13,9,0,1, | |
2110 10,11,117,197, | |
2111 262,261,243,242,238,237,215,213,205,203,195,194,169,167,163,162,50,0,3,4,6, | |
2112 34,37,38,40,45,49,94,100,105,107,110,120,123,125,127,128,130,132,135, | |
2113 138,140,141,142,143,148,149,150,151,152,153,155,156,159,160,161,164,166, | |
2114 196,200,244,245, | |
2115 262,261,251,243,242,241,240,239,238,237,231,230,227,226,216,213,205,195,194, | |
2116 193,169,167,70,50,0,2,4,5,27,28,31,35,37,38,40,43,49,199,200,206, | |
2117 202,0,29, | |
2118 212,0,44, | |
2119 203,201,0,32,34, | |
2120 | |
2121 }; | |
2122 | |
2123 | |
2124 static unsigned const char ag_astt[6900] = { | |
2125 8,8,8,8,8,8,8,1,1,7,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, | |
2126 9,9,9,9,9,9,9,9,9,9,9,9,9,1,3,9,7,3,1,1,9,5,3,3,1,1,1,1,1,8,1,1,7,1,0,1,1, | |
2127 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,1,1, | |
2128 1,1,1,1,1,8,1,7,1,1,5,5,1,1,7,1,1,1,1,3,5,5,1,1,7,1,1,1,1,3,5,5,5,5,5,5,5, | |
2129 5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
2130 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,1, | |
2131 1,7,1,1,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, | |
2132 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,7,1,1,1,1,3,1,1,7,1,2,2, | |
2133 1,1,7,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,1,1,1,8,8,8,8,8,8, | |
2134 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,5,8,8,8,8,8,8,8,1,1,7,1,1,1,1,1,1,1,1,1, | |
2135 1,5,3,3,3,3,1,1,1,1,1,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, | |
2136 9,9,9,9,9,9,9,9,9,9,9,5,3,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
2137 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,7,1,1,1,1,3,5, | |
2138 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, | |
2139 5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,10,10,10,7,1,2,2,2,1,1,1, | |
2140 10,10,10,7,1,2,2,2,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, | |
2141 10,10,10,4,5,1,1,7,1,1,1,1,3,1,7,2,1,2,1,1,5,3,1,2,2,2,1,2,2,2,2,2,2,2,2,2, | |
2142 2,2,1,1,1,1,1,2,1,2,8,2,2,2,2,2,2,2,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2143 1,1,1,1,1,1,1,1,1,1,1,1,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, | |
2144 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,2,7,1,2,1,2,1,1,1, | |
2145 1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1, | |
2146 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,2,2,2, | |
2147 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,9,5,3,3,1,1,2,2,2,2,2,2,2,2,2,2,2,2, | |
2148 2,2,2,1,2,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,7,1,1,1,3,3,2,1,3,2,1,1,1,3,3,3,3, | |
2149 1,1,1,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,1, | |
2150 1,2,2,2,2,2,2,2,2,2,2,2,3,2,7,3,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
2151 2,2,4,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,3,1,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
2152 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, | |
2153 5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
2154 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,5,1,1,7,1,1,1,1,3,5,1,1,7, | |
2155 1,1,1,1,3,10,10,10,10,10,10,10,10,10,10,10,10,10,10,5,10,5,5,5,5,5,5,5,5,5, | |
2156 5,5,5,10,10,10,10,10,10,5,5,5,1,1,7,1,1,1,1,3,1,5,1,5,1,1,7,1,1,1,1,3,1,7, | |
2157 1,1,7,2,5,5,1,1,7,1,1,1,1,3,1,4,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,7,3,2,1,1,1, | |
2158 1,1,1,1,1,1,1,1,1,1,1,7,1,2,2,1,1,7,1,1,1,7,1,1,4,1,1,1,1,7,1,1,1,2,2,2,2, | |
2159 2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,8,1,5,2,2,2,2,2,2,2,5,5,7,2,1,1,1,2,1,1,2,1, | |
2160 2,1,1,1,1,1,1,1,1,7,2,1,2,1,5,3,1,8,5,1,1,7,1,1,1,1,5,1,1,7,1,1,3,1,1,7,3, | |
2161 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,7,1,1,1,1,3,1, | |
2162 1,10,10,10,4,2,2,2,1,1,1,1,1,2,7,1,2,1,2,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1, | |
2163 1,2,2,1,2,2,2,2,7,2,1,2,1,2,1,2,1,1,1,2,1,1,1,2,1,2,2,1,1,1,2,2,2,1,1,1,1, | |
2164 1,5,1,1,5,5,5,1,5,5,1,5,5,5,7,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2165 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,7,1,1,1,1,1,1,1,10, | |
2166 10,10,5,10,10,5,2,10,10,10,5,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
2167 5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
2168 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,7,1,1,1,1,3,5,5,5,5, | |
2169 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, | |
2170 5,5,5,1,1,7,1,1,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,5, | |
2171 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
2172 5,5,5,5,1,1,7,1,1,1,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3, | |
2173 1,7,1,2,1,1,1,1,1,2,7,2,2,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2, | |
2174 1,2,2,2,2,7,2,1,2,1,2,1,2,1,1,1,2,1,1,1,2,1,1,1,1,2,1,2,2,1,1,1,2,2,2,1,1, | |
2175 1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,2,1,2,1,2,1,2,1,1,1,2,1,1,1,2,1,1,1, | |
2176 1,2,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,2,1,2,1,2, | |
2177 1,2,1,1,1,2,1,1,1,2,1,1,1,1,2,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2178 2,2,1,2,2,2,2,7,2,1,2,1,2,1,2,1,1,1,2,1,1,1,2,1,1,1,1,2,1,2,2,1,1,1,2,2,2, | |
2179 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1, | |
2180 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,5,1,1,1,1,1, | |
2181 5,1,1,1,1,5,1,1,1,1,5,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1, | |
2182 1,1,5,1,1,1,5,1,1,5,1,1,5,1,1,5,1,1,1,5,1,1,5,5,5,1,5,5,5,5,5,7,2,2,10,10, | |
2183 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,5,5,5,5,5,5,5,5, | |
2184 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,7,1,1,1,1,3,5,5,5, | |
2185 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,7,1,1,1, | |
2186 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,1, | |
2187 1,7,1,1,1,1,3,1,5,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, | |
2188 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,7,1, | |
2189 1,1,1,3,2,2,7,2,1,1,1,7,1,1,2,2,5,2,2,5,2,7,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
2190 5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, | |
2191 4,4,4,4,4,7,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1, | |
2192 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,2,2,2,2,2, | |
2193 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2194 1,1,2,2,1,2,2,2,2,7,1,1,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, | |
2195 1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,5,1,1,7,1,1,1,1,3,1,7,2,1,1,1,1,1,1,7,3, | |
2196 1,1,1,2,1,1,1,5,1,1,7,1,1,1,1,3,1,7,2,1,1,1,1,1,1,1,7,3,1,1,1,1,1,1,5,1,1, | |
2197 7,1,1,1,1,3,1,7,1,5,1,1,7,1,1,1,1,3,1,7,1,5,1,1,7,1,1,1,1,3,1,7,1,1,5,1,1, | |
2198 7,1,1,1,1,3,1,7,1,1,5,1,1,7,1,1,1,1,3,1,7,1,1,1,7,2,1,5,1,1,7,1,1,1,1,3,1, | |
2199 7,1,1,1,1,10,10,10,7,1,2,2,2,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1, | |
2200 1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1, | |
2201 1,1,1,1,1,1,1,2,7,1,2,1,2,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2, | |
2202 1,2,2,2,2,7,1,1,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,1,1, | |
2203 1,1,2,2,1,1,1,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2, | |
2204 7,2,1,1,1,2,1,1,2,1,2,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, | |
2205 5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2, | |
2206 2,2,7,2,1,1,1,2,1,1,2,1,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2, | |
2207 2,2,2,2,2,7,2,1,1,1,2,1,1,2,1,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
2208 2,2,2,2,2,2,2,7,2,1,1,1,2,1,1,1,1,1,1,1,1,5,1,1,4,1,2,2,2,2,2,2,2,2,2,2,2, | |
2209 2,2,2,2,2,1,2,2,2,2,2,2,2,5,2,1,1,1,2,1,1,2,1,2,1,1,1,1,1,4,4,4,1,4,4,4,7, | |
2210 1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,1,2,2,2,2,2,2,2,2,1,1,5,2,1,1, | |
2211 3,3,1,1,1,1,1,3,1,1,3,2,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,2,2, | |
2212 2,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,1,2,2,2,2,2,2,2,2,1,1,5,2,1,1,3,3,1, | |
2213 1,1,1,1,3,1,1,3,2,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,3,1,1,7, | |
2214 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,7,1,1,7,1,1,1,1,1,1,2, | |
2215 7,1,2,1,2,1,1,1,1,1,1,2,2,2,2,1,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,2,7,2,2,2, | |
2216 2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,7,2,1,1,1,2,1,1,2,1,2,1,1,1,1,1, | |
2217 1,1,1,1,1,1,1,1,7,1,3,1,1,1,1,1,1,1,7,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
2218 1,1,7,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,2,1,2,1,2,1,2,1,1,1,2, | |
2219 1,1,1,2,2,1,1,1,1,2,1,2,2,1,1,1,2,2,2,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
2220 5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,2,1,2,1,2,1,2,1,1, | |
2221 1,2,1,1,1,2,2,1,1,1,1,2,1,2,2,1,1,1,2,2,2,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
2222 5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,2,1,2,1,2,1,2, | |
2223 1,1,1,2,1,1,1,2,1,1,1,1,2,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, | |
2224 1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1, | |
2225 1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1, | |
2226 1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,2,1,2,1,2,1,2, | |
2227 1,1,1,2,1,1,1,2,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2, | |
2228 7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,5,5, | |
2229 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,2,2,1,2, | |
2230 2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1, | |
2231 1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,2,7,1,2,1,2, | |
2232 1,1,1,1,1,1,1,2,2,2,2,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3, | |
2233 1,1,1,1,1,2,7,1,2,1,2,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,2,7,1,2,1,2,1,1,1, | |
2234 1,1,1,1,2,2,2,2,1,1,1,1,1,1,2,7,1,2,1,2,1,1,1,1,1,1,1,2,2,2,2,1,5,5,5,5,5, | |
2235 5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,2,7,1,2,1,2,1,1,1,1,1,1, | |
2236 1,2,2,2,2,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,2, | |
2237 7,1,2,1,2,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1, | |
2238 1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1, | |
2239 1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2240 1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2, | |
2241 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, | |
2242 1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1, | |
2243 1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1, | |
2244 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, | |
2245 1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1, | |
2246 2,2,2,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,1, | |
2247 1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2248 1,1,2,2,1,1,1,2,2,2,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1, | |
2249 3,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1, | |
2250 1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2, | |
2251 2,7,1,1,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,2,1,1,1,2, | |
2252 2,2,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,1,1, | |
2253 1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2254 1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1, | |
2255 1,1,3,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1, | |
2256 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,5,5,5,5,5,5,5,5,5,5,5, | |
2257 5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2, | |
2258 1,2,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,2,1,1,1,2,2,2,1, | |
2259 1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,7,2,1,1,1,2,1,1,2,1,2, | |
2260 1,1,1,1,1,2,10,10,10,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,2,2,2,2,2,2,2, | |
2261 2,2,2,2,2,2,2,2,2,2,2,7,3,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2, | |
2262 2,7,2,1,1,1,2,1,1,2,1,2,1,1,1,1,1,1,7,1,1,4,1,1,7,2,1,1,7,2,1,5,1,1,7,1,1, | |
2263 1,1,3,1,7,1,5,1,1,7,1,1,1,1,3,1,7,1,1,1,7,2,1,1,7,1,1,7,1,5,1,1,7,1,1,1,1, | |
2264 3,1,7,1,5,1,1,7,1,1,1,1,3,1,7,1,1,1,7,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2, | |
2265 2,7,1,1,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,1,1,1,1,2,2, | |
2266 1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1, | |
2267 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,1,1,7, | |
2268 2,1,1,1,7,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1, | |
2269 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,2,2,2,2,2, | |
2270 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5, | |
2271 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
2272 2,2,2,1,2,2,2,2,2,2,2,7,2,1,1,1,2,1,1,2,1,2,1,1,1,1,1,1,7,1,1,5,1,5,5,7,1, | |
2273 2,2,1,5,5,5,7,2,2,1,4,1,1,4,1,1,4,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5, | |
2274 1,5,2,2,2,2,2,2,2,5,5,7,2,1,1,1,2,1,1,2,1,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, | |
2275 2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,7,2,1,1,1,2,2,2,1,2,1,1,1,1,1,1,4,1,2,2,2, | |
2276 2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,7,2,1,1,1,2,1,1,2,1,2,1,1,1,1,1, | |
2277 5,5,5,5,1,1,7,1,1,1,1,3,8,1,1,1,7,1,2,1,2,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
2278 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,7,1,1,1, | |
2279 1,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,7,2,1,1,1,2,1,1,2,1,2, | |
2280 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1, | |
2281 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,1,1,4,1,1,1,1, | |
2282 7,1,3,1,1,1,4,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1, | |
2283 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,1,1,1,1,2,2,1,1,1,2, | |
2284 2,2,1,1,1,1,1,4,1,1,1,1,4,1,1,1,4,1,1,4,1,1,4,1,1,4,1,1,4,1,1,4,1,1,1,4,1, | |
2285 1,1,1,4,1,1,1,1,4,1,1,1,1,4,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1, | |
2286 1,1,1,4,1,1,1,1,1,1,4,1,1,1,4,1,1,4,1,1,4,1,1,4,1,1,7,1,1,1,7,3,1,1,1,7,2, | |
2287 1,1,7,2,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,7,1,1,1,1,1,1,1, | |
2288 1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,1,1,1,1,1,1,1,1,1,1, | |
2289 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,1,1,1,1,1,1,1,1,1,1,2,2,2, | |
2290 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2, | |
2291 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2, | |
2292 2,2,2,2,2,2,2,2,2,2,2,2,7,1,1,1,7,1,1,7,1,1,7,1,1,4,1,1,1,1,7,2,1,1,1,8,1, | |
2293 7,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1, | |
2294 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,4,4,4,4,4,4,7,4, | |
2295 4,4,4,1,4,4,7,1,1,7,1,1,1,1,7,2,1,1,7,1,1,1,7,2,1,5,5,5,5,5,5,5,5,5,5,5,5, | |
2296 5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1, | |
2297 2,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,1,2,2,1,1,1,2,2,2,1,1, | |
2298 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,5, | |
2299 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,7,2,1,1,1, | |
2300 1,1,7,2,1,1,1,1,1,7,2,1,1,1,1,1,7,2,1,1,1,1,1,7,2,1,1,1,1,7,2,1,5,5,5,5,5, | |
2301 5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2, | |
2302 7,1,1,1,1,2,1,2,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,1,2,2,1, | |
2303 1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,2,1, | |
2304 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1, | |
2305 1,1,1,1,1,1,2,2,1,2,2,2,2,7,1,1,1,1,2,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2306 1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, | |
2307 4,4,4,4,4,4,4,4,7,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,1,1,1, | |
2308 1,1,1,1,1,1,5,1,1,7,1,1,1,1,3,1,7,2,1,2,1,5,5,5,7,2,2,1,7,2,1,2,5,5,5,5,5, | |
2309 5,5,5,5,5,5,5,5,5,5,5,5,1,1,7,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2, | |
2310 7,1,1,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,1,1,1,1,2,2,1, | |
2311 1,1,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,7,2,1,1,1, | |
2312 2,1,1,2,1,2,1,1,1,1,1,1,4,1,1,7,2,1,1,7,2,1 | |
2313 }; | |
2314 | |
2315 | |
2316 static const unsigned short ag_pstt[] = { | |
2317 3,3,3,3,3,3,3,1,2,0,2,2,1,2,3, | |
2318 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,3,5, | |
2319 1,6,1, | |
2320 1,132,454,132,132,1, | |
2321 5,6,7,8,15,4,9,3,14,0,14,14,14,14,15,13,12,11,10,9, | |
2322 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, | |
2323 16,16,16,16,16,16,16,16,16,17,16,4,16,17, | |
2324 453,453,1,2,5,2,2,1,2,482, | |
2325 453,453,1,2,6,2,2,1,2,481, | |
2326 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2327 453,453,1,2,7,2,2,1,2,480, | |
2328 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2329 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2330 453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,8,2,2,1,2, | |
2331 462, | |
2332 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2333 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2334 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,9,2, | |
2335 2,1,2,455, | |
2336 18,19,10,20,134,134, | |
2337 18,19,11,21,134,134, | |
2338 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,12,24,22,23, | |
2339 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,92,26, | |
2340 26,26,26,26,26,26,4,9,13,25,25,26,9, | |
2341 5,6,7,8,4,9,19,17,17,17,17,13,12,11,10,9, | |
2342 20,15, | |
2343 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,9,9,9,9,9,9,9,11, | |
2344 12,17, | |
2345 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2346 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2347 453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,18,2,2,1,2, | |
2348 519, | |
2349 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2350 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2351 453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,19,2,2,1,2, | |
2352 518, | |
2353 18,19,27,136,136,136,20,28,136,135,135, | |
2354 18,19,27,136,136,136,21,29,136,135,135, | |
2355 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,130, | |
2356 453,1,30,23,30,30,1,30,479, | |
2357 8,24,127,31,35, | |
2358 4,9,93,91,9, | |
2359 30,30,30,37,30,30,30,30,30,30,30,30,30,30,30,5,6,7,43,36,30,40,45,57,30,30, | |
2360 30,30,30,30,51,26,122,39,39,56,39,50,44,33,32,56,52,51,56,55,57,56,55, | |
2361 53,45,56,56,56,54,54,49,48,41,47,12,11,10,46,42,35,34,38, | |
2362 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2363 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,27,2,2, | |
2364 1,2,472, | |
2365 18,19,27,58,8,51,28,62,197,31,35,60,32,61,63,59,62,62,195,196,134,134,34, | |
2366 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,29,82,84,82,76,197, | |
2367 31,35,81,32,94,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78,77, | |
2368 84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2369 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,1,132,454, | |
2370 132,132,1,95, | |
2371 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,27,45,97,96,98,8,100,68,30,30, | |
2372 30,30,30,30,51,4,9,31,99,99,99,37,39,38,31,34,35,99,33,32,39,39,39,39,9, | |
2373 35,34,38, | |
2374 53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53, | |
2375 53,53,53,53,53,53,53,102,101,65,64,63,62,61,60,59,58,57,56,55,50,53,32, | |
2376 52,54,54,54,104,103,54, | |
2377 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,44,47,47,47,47,47,47, | |
2378 47,47,47,47,47,47,47,47,47,47,47,33,46,105, | |
2379 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2380 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2381 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2382 453,453,453,1,2,34,2,2,1,2,457, | |
2383 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2384 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2385 1,2,35,2,2,1,2,456, | |
2386 453,1,2,36,2,2,1,2,475, | |
2387 453,1,2,37,2,2,1,2,504, | |
2388 31,31,31,31,31,31,31,31,31,31,31,31,31,31,453,31,453,453,453,453,453,453, | |
2389 453,453,453,453,453,453,31,31,31,31,31,31,453,453,453,1,2,38,2,2,1,2, | |
2390 463, | |
2391 106,26,107, | |
2392 453,1,2,40,2,2,1,2,471, | |
2393 58,41,108, | |
2394 8,42,217, | |
2395 453,453,1,2,43,2,2,1,2,478, | |
2396 68,87,109, | |
2397 58,45,110, | |
2398 111,114,125,117,119,121,123,128,100,4,9,46,218,216,129,127,124,122,120,118, | |
2399 116,113,126,115,112,9, | |
2400 18,19,47,130,134,134, | |
2401 131,27,48,133,132, | |
2402 27,49,134, | |
2403 27,23,135, | |
2404 136,97,96,51,139,138,137, | |
2405 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,77,77,77,143,8,77,30,30,30, | |
2406 30,30,30,51,77,77,52,122,140,140,140,23,141,141,33,31,35,33,32,142,143, | |
2407 35,34,38, | |
2408 8,53,107,31,35, | |
2409 36,115,114,41, | |
2410 145,92,4,9,55,144,144,145,9, | |
2411 92,4,9,56,146,146,95,9, | |
2412 100,57,97, | |
2413 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2414 453,453,453,453,453,453,453,453,453,1,2,58,2,2,1,2,470, | |
2415 18,19,136,136,136,187,136,135,135, | |
2416 18,19,27,58,8,51,60,62,197,31,35,60,32,61,147,59,62,62,195,196,134,134,34, | |
2417 18,19,27,58,8,68,211,211,64,209,205,205,51,61,198,148,198,76,197,31,35,81, | |
2418 32,61,198,59,148,148,198,75,195,196,67,66,65,205,134,134,34,70,69, | |
2419 131,106,188,149,150, | |
2420 117,117,117,152,117,117,68,117,117,117,63,151,129,129, | |
2421 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153, | |
2422 153,153,153,153,153,153,153,153,153,153,153,153,102,101,65,64,63,62,61, | |
2423 60,59,58,57,56,55,153,153,64,153,153,153,104,103,153,153, | |
2424 212,212,212,202, | |
2425 210,210,201, | |
2426 208,206,206,206,200,206, | |
2427 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2428 453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,68,2,2,1,2,460, | |
2429 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2430 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2431 453,453,453,453,453,453,453,1,2,69,2,2,1,2,502, | |
2432 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2433 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2434 453,453,453,453,453,453,453,1,2,70,2,2,1,2,501, | |
2435 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,71, | |
2436 2,2,1,2,500, | |
2437 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,72, | |
2438 2,2,1,2,499, | |
2439 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,73, | |
2440 2,2,1,2,495, | |
2441 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,74, | |
2442 2,2,1,2,494, | |
2443 58,75,154,185, | |
2444 18,19,27,58,8,51,76,182,197,31,35,60,32,61,59,182,195,196,134,134,34, | |
2445 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,77,178,148,178,76, | |
2446 197,31,35,81,32,61,178,59,80,79,178,78,77,148,148,178,75,195,196,67,66, | |
2447 65,205,134,134,34,70,69, | |
2448 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,78,177,148,177,76, | |
2449 197,31,35,81,32,61,177,59,80,79,177,78,77,148,148,177,75,195,196,67,66, | |
2450 65,205,134,134,34,70,69, | |
2451 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,79,176,148,176,76, | |
2452 197,31,35,81,32,61,176,59,80,79,176,78,77,148,148,176,75,195,196,67,66, | |
2453 65,205,134,134,34,70,69, | |
2454 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,80,175,148,175,76, | |
2455 197,31,35,81,32,61,175,59,80,79,175,78,77,148,148,175,75,195,196,67,66, | |
2456 65,205,134,134,34,70,69, | |
2457 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,81,82,84,82,76,197, | |
2458 31,35,81,32,156,61,155,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2459 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2460 157,159,161,166,162,160,158, | |
2461 73,74,163,164,163, | |
2462 131,106,188,149,165, | |
2463 167,136,154,166,168, | |
2464 169,171,175,177,97,98,68,86,151,174,173,178,176,172,170, | |
2465 169,171,97,98,149,182,181,180,179, | |
2466 175,177,147,184,183, | |
2467 185,145,186, | |
2468 187,143,188, | |
2469 96,141,189, | |
2470 190,139,191, | |
2471 192,194,137,195,193, | |
2472 117,117,117,152,117,117,117,117,117,94,128,128, | |
2473 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,133, | |
2474 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2475 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,96,2,2, | |
2476 1,2,465, | |
2477 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2478 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,97,2,2, | |
2479 1,2,466, | |
2480 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2481 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,98,2,2, | |
2482 1,2,464, | |
2483 106,36,196, | |
2484 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2485 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2486 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2487 453,453,453,453,453,1,2,100,2,2,1,2,461, | |
2488 71,71,101, | |
2489 208,197,197,197,102,197,197, | |
2490 73,73,69, | |
2491 72,72,68, | |
2492 45,105,198, | |
2493 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2494 453,453,453,453,453,1,2,106,2,2,1,2,459, | |
2495 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,107, | |
2496 199, | |
2497 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,108,82,84,82,76,197, | |
2498 31,35,81,32,200,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2499 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2500 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,30,30,30,30,30,30,51,109, | |
2501 122,201,201,201,23,33,32,35,34,38, | |
2502 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,110,82,84,82,76,197, | |
2503 31,35,81,32,202,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2504 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2505 453,1,2,111,2,2,1,2,517, | |
2506 8,112,234, | |
2507 204,206,8,100,4,9,113,235,203,31,208,35,207,205,9, | |
2508 453,1,2,114,2,2,1,2,512, | |
2509 8,115,228, | |
2510 204,206,211,213,100,4,9,116,229,215,214,212,210,209,9, | |
2511 453,1,2,117,2,2,1,2,510, | |
2512 27,118,216, | |
2513 453,1,2,119,2,2,1,2,509, | |
2514 27,120,217, | |
2515 453,1,2,121,2,2,1,2,507, | |
2516 125,122,218,126, | |
2517 453,1,2,123,2,2,1,2,506, | |
2518 125,124,219,126, | |
2519 453,1,2,125,2,2,1,2,511, | |
2520 27,126,220, | |
2521 4,9,127,220,9, | |
2522 453,1,2,128,2,2,1,2,505, | |
2523 27,129,221, | |
2524 18,19,222,136,136,136,130,223,136,135,135, | |
2525 453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,131,2,2,1,2,474, | |
2526 18,19,27,58,8,68,211,211,64,209,205,205,51,132,224,148,224,76,197,31,35,81, | |
2527 32,61,224,59,148,148,224,75,195,196,67,66,65,205,134,134,34,70,69, | |
2528 18,19,27,58,8,51,133,62,197,31,35,60,32,61,225,59,62,62,195,196,134,134,34, | |
2529 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,134,82,84,82,76,197, | |
2530 31,35,81,32,226,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2531 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2532 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,8,30,30,30,30,30,30,51,135, | |
2533 122,140,140,140,23,227,227,33,31,35,33,32,35,34,38, | |
2534 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2535 453,453,453,453,453,453,453,453,453,1,2,136,2,2,1,2,467, | |
2536 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,8,30,30,30,30,30,30,51,137, | |
2537 122,140,140,140,23,228,228,33,31,35,33,32,35,34,38, | |
2538 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,8,30,30,30,30,30,30,51,138, | |
2539 122,140,140,140,23,229,229,33,31,35,33,32,35,34,38, | |
2540 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,30,30,30,30,30,30,51,139, | |
2541 122,39,39,39,23,44,33,32,230,35,34,38, | |
2542 106,32,107, | |
2543 68,88,231, | |
2544 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,8,30,30,30,30,30,30,51,78, | |
2545 122,140,140,140,23,232,232,33,31,35,33,32,35,34,38, | |
2546 84,84,84,98,79,79,79,143,233, | |
2547 30,30,30,37,30,30,30,30,30,30,30,30,30,30,30,5,6,7,43,36,30,40,45,30,30,30, | |
2548 30,30,30,51,4,9,93,122,39,39,91,100,39,50,44,33,32,100,52,51,100,103,53, | |
2549 45,100,100,100,54,54,49,48,41,47,12,11,10,46,42,9,35,34,38, | |
2550 234,96,235, | |
2551 30,30,30,37,30,30,30,30,30,30,30,30,30,30,30,5,6,7,43,36,30,40,45,30,30,30, | |
2552 30,30,30,51,4,9,93,122,39,39,91,99,39,50,44,33,32,99,52,51,99,104,53,45, | |
2553 99,99,99,54,54,49,48,41,47,12,11,10,46,42,9,35,34,38, | |
2554 236,68,147,151,199, | |
2555 131,106,148,149,165, | |
2556 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, | |
2557 192,192,192,192,192,149,237, | |
2558 58,150,238, | |
2559 18,19,27,58,8,51,151,239,197,31,35,60,32,61,59,239,239,195,196,134,134,34, | |
2560 453,453,453,453,453,453,453,453,1,2,152,2,2,1,2,473, | |
2561 213,153, | |
2562 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,8,30,30,30,30,30,30,51,154, | |
2563 122,140,140,140,23,240,240,33,31,35,33,32,35,34,38, | |
2564 169,171,175,177,236,97,98,68,155,151,199,174,173,178,176,172,170, | |
2565 236,156,184, | |
2566 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,157, | |
2567 2,2,1,2,498, | |
2568 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,158,173,148,173,76, | |
2569 197,31,35,81,32,61,173,59,80,79,173,172,78,77,148,148,173,75,195,196,67, | |
2570 66,65,205,134,134,34,70,69, | |
2571 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,159, | |
2572 2,2,1,2,497, | |
2573 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,160,173,148,173,76, | |
2574 197,31,35,81,32,61,173,59,80,79,173,171,78,77,148,148,173,75,195,196,67, | |
2575 66,65,205,134,134,34,70,69, | |
2576 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,161, | |
2577 2,2,1,2,496, | |
2578 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,162,170,148,170,76, | |
2579 197,31,35,81,32,61,170,59,80,79,170,78,77,148,148,170,75,195,196,67,66, | |
2580 65,205,134,134,34,70,69, | |
2581 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,163,241,148,241,76, | |
2582 197,31,35,81,32,61,241,59,241,80,79,241,78,77,148,148,241,75,195,196,67, | |
2583 66,65,205,134,134,34,70,69, | |
2584 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,164,242,148,242,76, | |
2585 197,31,35,81,32,61,242,59,242,80,79,242,78,77,148,148,242,75,195,196,67, | |
2586 66,65,205,134,134,34,70,69, | |
2587 18,19,27,58,8,68,211,211,64,209,205,205,51,165,181,148,181,76,197,31,35,243, | |
2588 32,61,181,59,148,148,181,75,195,196,67,66,65,205,134,134,34,70,69, | |
2589 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,166,82,148,82,76,197, | |
2590 31,35,81,32,61,82,59,244,82,80,79,82,78,77,148,148,82,75,195,196,67,66, | |
2591 65,205,134,134,34,70,69, | |
2592 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,167, | |
2593 2,2,1,2,493, | |
2594 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,168,82,148,82,76,197, | |
2595 31,35,81,32,61,82,59,245,82,80,79,82,78,77,148,148,82,75,195,196,67,66, | |
2596 65,205,134,134,34,70,69, | |
2597 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,169, | |
2598 2,2,1,2,492, | |
2599 18,19,27,58,8,51,170,62,197,31,35,60,32,61,246,59,62,62,195,196,134,134,34, | |
2600 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,171, | |
2601 2,2,1,2,491, | |
2602 18,19,27,58,8,51,172,62,197,31,35,60,32,61,247,59,62,62,195,196,134,134,34, | |
2603 18,19,27,58,8,51,173,62,197,31,35,60,32,61,248,59,62,62,195,196,134,134,34, | |
2604 18,19,27,58,8,51,174,62,197,31,35,60,32,61,249,59,62,62,195,196,134,134,34, | |
2605 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,175, | |
2606 2,2,1,2,490, | |
2607 18,19,27,58,8,51,176,62,197,31,35,60,32,61,250,59,62,62,195,196,134,134,34, | |
2608 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,177, | |
2609 2,2,1,2,489, | |
2610 18,19,27,58,8,51,178,62,197,31,35,60,32,61,251,59,62,62,195,196,134,134,34, | |
2611 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,179,82,148,82,76,197, | |
2612 31,35,81,32,61,82,59,252,83,82,80,79,82,78,77,148,148,82,75,195,196,67, | |
2613 66,65,205,134,134,34,70,69, | |
2614 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,180,82,148,82,76,197, | |
2615 31,35,81,32,61,82,59,253,83,82,80,79,82,78,77,148,148,82,75,195,196,67, | |
2616 66,65,205,134,134,34,70,69, | |
2617 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,181,82,148,82,76,197, | |
2618 31,35,81,32,61,82,59,254,83,82,80,79,82,78,77,148,148,82,75,195,196,67, | |
2619 66,65,205,134,134,34,70,69, | |
2620 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,182,82,148,82,76,197, | |
2621 31,35,81,32,61,82,59,255,83,82,80,79,82,78,77,148,148,82,75,195,196,67, | |
2622 66,65,205,134,134,34,70,69, | |
2623 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,183,82,84,82,76,197, | |
2624 31,35,81,32,61,256,82,59,257,85,83,82,80,79,82,78,77,84,84,82,75,195, | |
2625 196,67,66,65,205,134,134,34,70,69, | |
2626 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,184,82,84,82,76,197, | |
2627 31,35,81,32,61,256,82,59,258,85,83,82,80,79,82,78,77,84,84,82,75,195, | |
2628 196,67,66,65,205,134,134,34,70,69, | |
2629 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,185, | |
2630 2,2,1,2,488, | |
2631 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,186,82,84,82,76,197, | |
2632 31,35,81,32,61,86,82,59,259,87,85,83,82,80,79,82,78,77,84,84,82,75,195, | |
2633 196,67,66,65,205,134,134,34,70,69, | |
2634 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,187, | |
2635 2,2,1,2,487, | |
2636 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,188,82,84,82,76,197, | |
2637 31,35,81,32,61,86,82,59,260,88,87,85,83,82,80,79,82,78,77,84,84,82,75, | |
2638 195,196,67,66,65,205,134,134,34,70,69, | |
2639 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,189,82,84,82,76,197, | |
2640 31,35,81,32,61,86,82,59,261,89,88,87,85,83,82,80,79,82,78,77,84,84,82, | |
2641 75,195,196,67,66,65,205,134,134,34,70,69, | |
2642 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,190, | |
2643 2,2,1,2,486, | |
2644 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,191,82,84,82,76,197, | |
2645 31,35,81,32,61,86,82,59,262,90,89,88,87,85,83,82,80,79,82,78,77,84,84, | |
2646 82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2647 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,192, | |
2648 2,2,1,2,485, | |
2649 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,193,82,84,82,76,197, | |
2650 31,35,81,32,61,86,82,59,263,91,90,89,88,87,85,83,82,80,79,82,78,77,84, | |
2651 84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2652 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,194, | |
2653 2,2,1,2,484, | |
2654 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,195,82,84,82,76,197, | |
2655 31,35,81,32,264,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2656 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2657 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,8,30,30,30,30,30,30,51,196, | |
2658 122,140,140,140,23,265,265,33,31,35,33,32,35,34,38, | |
2659 208,76,76,76,74,76, | |
2660 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,49,47,47,47,47,47,47, | |
2661 47,47,47,47,47,47,47,47,47,47,47,198,46,105, | |
2662 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,8,30,30,30,30,30,30,51,199, | |
2663 122,140,140,140,23,266,266,33,31,35,33,32,35,34,38, | |
2664 236,200,267, | |
2665 106,27,107, | |
2666 236,202,106, | |
2667 4,9,203,238,9, | |
2668 453,1,2,204,2,2,1,2,516, | |
2669 27,205,268, | |
2670 453,1,2,206,2,2,1,2,515, | |
2671 27,207,269, | |
2672 4,9,208,226,9, | |
2673 27,209,270, | |
2674 27,210,271, | |
2675 453,1,2,211,2,2,1,2,514, | |
2676 27,212,272, | |
2677 453,1,2,213,2,2,1,2,513, | |
2678 27,214,273, | |
2679 4,9,215,225,9, | |
2680 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,216,82,84,82,76,197, | |
2681 31,35,81,32,274,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2682 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2683 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,217,82,84,82,76,197, | |
2684 31,35,81,32,275,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2685 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2686 4,9,218,222,9, | |
2687 4,9,219,221,9, | |
2688 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,220,82,84,82,76,197, | |
2689 31,35,81,32,276,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2690 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2691 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,30,30,30,30,30,30,51,221, | |
2692 277,277,277,33,32,278,277,35,34,38, | |
2693 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2694 453,453,453,453,453,1,2,222,2,2,1,2,477, | |
2695 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,8,30,30,30,30,30,30,51,223, | |
2696 122,140,140,140,23,279,279,33,31,35,33,32,35,34,38, | |
2697 27,224,280, | |
2698 152,117,68,117,117,225,151,120,120, | |
2699 152,117,117,117,226,119,119, | |
2700 68,116,231, | |
2701 68,83,231, | |
2702 68,82,231, | |
2703 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,77,77,77,8,77,30,30,30,30, | |
2704 30,30,51,77,77,230,122,140,140,140,23,141,141,33,31,35,33,32,142,281,35, | |
2705 34,38, | |
2706 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,8,30,30,30,30,30,30,51,231, | |
2707 122,140,140,140,23,29,33,31,35,33,32,35,34,38, | |
2708 68,89,231, | |
2709 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,8,30,30,30,30,30,30,51,233, | |
2710 122,140,140,140,23,282,282,33,31,35,33,32,35,34,38, | |
2711 453,453,453,453,1,2,234,2,2,1,2,468, | |
2712 283,8,4,9,235,25,101,31,35,25,283,9, | |
2713 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2714 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2715 453,453,453,453,453,453,453,1,2,236,2,2,1,2,469, | |
2716 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,8,30,30,30,30,30,30,51,237, | |
2717 122,140,140,140,23,284,284,33,31,35,33,32,35,34,38, | |
2718 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,238,82,84,82,76,197, | |
2719 31,35,81,32,285,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2720 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2721 131,106,189,149,150, | |
2722 236,68,240,231,186, | |
2723 157,159,161,168,162,160,158, | |
2724 157,159,161,167,162,160,158, | |
2725 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,243,82,84,82,76,197, | |
2726 31,35,81,32,286,61,155,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2727 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2728 73,74,165,164,163, | |
2729 73,74,164,164,163, | |
2730 68,162,151, | |
2731 68,161,151, | |
2732 68,160,151, | |
2733 68,159,151, | |
2734 68,153,151, | |
2735 68,152,151, | |
2736 167,136,158,166,168, | |
2737 167,136,157,166,168, | |
2738 167,136,156,166,168, | |
2739 167,136,155,166,168, | |
2740 169,171,97,98,68,256,151,174,173,172,170, | |
2741 169,171,97,98,151,182,181,180,179, | |
2742 169,171,97,98,150,182,181,180,179, | |
2743 175,177,148,184,183, | |
2744 185,146,186, | |
2745 187,144,188, | |
2746 96,142,189, | |
2747 190,140,191, | |
2748 287,264,288, | |
2749 68,289,265,43,231, | |
2750 68,289,266,25,231, | |
2751 8,267,123,31,35, | |
2752 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,30,30,30,30,30,30,51,268, | |
2753 277,277,277,33,32,290,277,35,34,38, | |
2754 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,30,30,30,30,30,30,51,269, | |
2755 277,277,277,33,32,291,277,35,34,38, | |
2756 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,30,30,30,30,30,30,51,270, | |
2757 277,277,277,33,32,292,277,35,34,38, | |
2758 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,30,30,30,30,30,30,51,271, | |
2759 277,277,277,33,32,293,277,35,34,38, | |
2760 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,30,30,30,30,30,30,51,272, | |
2761 277,277,277,33,32,294,277,35,34,38, | |
2762 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,273,295,38, | |
2763 296,274,297, | |
2764 296,275,298, | |
2765 296,276,299, | |
2766 106,239,300, | |
2767 68,4,9,278,219,301,9, | |
2768 302,303,68,279,231,303,303, | |
2769 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,280,82,84,82,76,197, | |
2770 31,35,81,32,304,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2771 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2772 86,86,86,81,81,81,281, | |
2773 85,85,85,80,68,80,80,282,231, | |
2774 40,283,305,45, | |
2775 68,289,284,193,231, | |
2776 306,285,307, | |
2777 306,236,286,184,307, | |
2778 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,287, | |
2779 2,2,1,2,483, | |
2780 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,288,82,84,82,76,197, | |
2781 31,35,81,32,138,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2782 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2783 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2784 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2785 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453, | |
2786 453,453,1,2,289,2,2,1,2,458, | |
2787 68,4,9,290,237,301,9, | |
2788 68,4,9,291,236,301,9, | |
2789 68,4,9,292,233,301,9, | |
2790 68,4,9,293,232,301,9, | |
2791 68,4,9,294,231,301,9, | |
2792 4,9,295,230,9, | |
2793 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,296, | |
2794 2,2,1,2,508, | |
2795 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,297,82,84,82,76,197, | |
2796 31,35,81,32,224,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2797 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2798 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,298,82,84,82,76,197, | |
2799 31,35,81,32,223,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2800 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2801 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,299,82,84,82,76,197, | |
2802 31,35,81,32,227,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2803 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2804 244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244, | |
2805 244,244,244,244,244,300,308, | |
2806 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,30,30,30,30,30,30,51,301, | |
2807 309,309,309,33,32,309,35,34,38, | |
2808 453,1,2,302,2,2,1,2,476, | |
2809 8,303,126,31,35, | |
2810 152,117,117,117,304,121,121, | |
2811 8,305,105,31,35, | |
2812 453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,1,2,306, | |
2813 2,2,1,2,503, | |
2814 18,19,71,72,73,74,27,58,8,68,211,211,64,209,205,205,51,307,82,84,82,76,197, | |
2815 31,35,81,32,310,61,86,82,59,93,92,91,90,89,88,87,85,83,82,80,79,82,78, | |
2816 77,84,84,82,75,195,196,67,66,65,205,134,134,34,70,69, | |
2817 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,45,8,30,30,30,30,30,30,51,308, | |
2818 122,140,140,140,23,311,311,33,31,35,33,32,35,34,38, | |
2819 106,240,300, | |
2820 236,310,191, | |
2821 68,289,311,245,231, | |
2822 | |
2823 }; | |
2824 | |
2825 | |
2826 static const unsigned short ag_sbt[] = { | |
2827 0, 15, 56, 62, 82, 121, 131, 141, 170, 229, 290, 296, 302, 327, | |
2828 365, 381, 383, 419, 421, 480, 539, 550, 561, 583, 592, 597, 602, 670, | |
2829 712, 735, 797, 825, 878, 933, 972,1038,1083,1092,1101,1146,1149,1158, | |
2830 1161,1164,1174,1177,1180,1206,1212,1217,1220,1223,1230,1279,1284,1288, | |
2831 1297,1305,1308,1344,1353,1376,1417,1422,1436,1490,1494,1497,1503,1543, | |
2832 1595,1647,1672,1697,1722,1747,1751,1772,1822,1872,1922,1972,2034,2041, | |
2833 2046,2051,2056,2071,2080,2085,2088,2091,2094,2097,2102,2114,2136,2178, | |
2834 2220,2262,2265,2333,2336,2343,2346,2349,2352,2384,2410,2472,2506,2568, | |
2835 2577,2580,2595,2604,2607,2622,2631,2634,2643,2646,2655,2659,2668,2672, | |
2836 2681,2684,2689,2698,2701,2712,2733,2774,2797,2859,2899,2935,2975,3015, | |
2837 3051,3054,3057,3097,3106,3174,3177,3245,3250,3255,3281,3284,3306,3322, | |
2838 3324,3364,3381,3384,3409,3460,3485,3536,3561,3611,3662,3713,3754,3806, | |
2839 3831,3883,3908,3931,3956,3979,4002,4025,4050,4073,4098,4121,4174,4227, | |
2840 4280,4333,4388,4443,4468,4524,4549,4606,4664,4689,4748,4773,4833,4858, | |
2841 4920,4960,4966,5005,5045,5048,5051,5054,5059,5068,5071,5080,5083,5088, | |
2842 5091,5094,5103,5106,5115,5118,5123,5185,5247,5252,5257,5319,5353,5385, | |
2843 5425,5428,5437,5444,5447,5450,5453,5501,5540,5543,5583,5595,5607,5659, | |
2844 5699,5761,5766,5771,5778,5785,5847,5852,5857,5860,5863,5866,5869,5872, | |
2845 5875,5880,5885,5890,5895,5906,5915,5924,5929,5932,5935,5938,5941,5944, | |
2846 5949,5954,5959,5993,6027,6061,6095,6129,6153,6156,6159,6162,6165,6172, | |
2847 6179,6241,6248,6257,6261,6266,6269,6274,6299,6361,6426,6433,6440,6447, | |
2848 6454,6461,6466,6491,6553,6615,6677,6703,6736,6745,6750,6757,6762,6787, | |
2849 6849,6889,6892,6895,6900 | |
2850 }; | |
2851 | |
2852 | |
2853 static const unsigned short ag_sbe[] = { | |
2854 9, 53, 58, 69, 118, 125, 135, 164, 223, 284, 292, 298, 323, 360, | |
2855 371, 382, 418, 420, 474, 533, 545, 556, 582, 586, 593, 599, 633, 706, | |
2856 718, 752, 820, 857, 925, 969,1032,1077,1086,1095,1140,1147,1152,1159, | |
2857 1162,1168,1175,1178,1191,1208,1214,1218,1221,1226,1261,1280,1285,1292, | |
2858 1300,1306,1338,1349,1359,1389,1419,1432,1482,1493,1496,1501,1537,1589, | |
2859 1641,1666,1691,1716,1741,1748,1757,1789,1839,1889,1939,1989,2037,2043, | |
2860 2048,2053,2063,2075,2082,2086,2089,2092,2095,2099,2111,2135,2172,2214, | |
2861 2256,2263,2327,2335,2340,2345,2348,2350,2378,2408,2427,2495,2523,2571, | |
2862 2578,2586,2598,2605,2614,2625,2632,2637,2644,2649,2656,2662,2669,2675, | |
2863 2682,2686,2692,2699,2707,2727,2746,2780,2814,2883,2929,2959,2999,3038, | |
2864 3052,3055,3081,3104,3138,3175,3209,3247,3252,3279,3282,3290,3316,3323, | |
2865 3348,3372,3382,3403,3426,3479,3502,3555,3578,3628,3679,3726,3771,3825, | |
2866 3848,3902,3914,3950,3962,3985,4008,4044,4056,4092,4104,4138,4191,4244, | |
2867 4297,4350,4405,4462,4485,4543,4566,4623,4683,4706,4767,4790,4852,4875, | |
2868 4944,4964,5002,5029,5046,5049,5052,5056,5062,5069,5074,5081,5085,5089, | |
2869 5092,5097,5104,5109,5116,5120,5140,5202,5249,5254,5274,5342,5379,5409, | |
2870 5426,5433,5441,5445,5448,5451,5483,5525,5541,5567,5589,5599,5653,5683, | |
2871 5716,5763,5768,5774,5781,5802,5849,5854,5858,5861,5864,5867,5870,5873, | |
2872 5877,5882,5887,5892,5900,5910,5919,5926,5930,5933,5936,5939,5942,5946, | |
2873 5951,5955,5982,6016,6050,6084,6118,6150,6154,6157,6160,6163,6168,6175, | |
2874 6196,6247,6255,6258,6263,6267,6271,6293,6316,6420,6429,6436,6443,6450, | |
2875 6457,6463,6485,6508,6570,6632,6701,6726,6739,6746,6754,6758,6781,6804, | |
2876 6873,6890,6893,6897,6900 | |
2877 }; | |
2878 | |
2879 | |
2880 static const unsigned char ag_fl[] = { | |
2881 2,1,1,2,1,2,2,1,1,2,0,1,3,1,1,1,1,2,0,1,2,1,1,1,0,5,1,3,1,3,1,2,1,1,2, | |
2882 1,2,2,2,2,1,1,1,4,2,1,2,1,0,3,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
2883 1,2,2,2,2,1,2,0,1,2,4,4,3,3,2,4,4,1,1,2,1,2,0,1,0,2,2,4,1,3,3,4,1,3,3, | |
2884 6,4,2,1,1,1,1,1,1,2,1,3,0,1,4,4,6,1,5,0,1,6,3,5,5,1,1,2,3,1,2,2,1,5,1, | |
2885 3,1,3,1,3,1,3,1,3,1,3,3,3,3,1,3,3,3,3,3,3,3,3,1,3,3,1,3,3,1,3,3,3,1,1, | |
2886 2,2,2,2,1,1,3,2,1,3,2,3,1,1,3,1,7,0,5,1,1,1,1,2,3,1,1,1,1,1,1,2,1,1,1, | |
2887 2,1,2,3,1,1,2,2,2,5,3,4,4,6,6,4,4,5,2,2,5,5,5,5,2,2,5,5,3,1,3,1,1,1,0, | |
2888 5,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, | |
2889 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, | |
2890 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, | |
2891 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, | |
2892 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, | |
2893 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,0,1, | |
2894 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,2,2, | |
2895 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 | |
2896 }; | |
2897 | |
2898 static const unsigned short ag_ptt[] = { | |
2899 0, 1, 1, 10, 11, 11, 11,198, 18, 18, 19, 19,198, 23, 23, 23, 24, 24, | |
2900 25, 25, 20, 27, 27, 27, 30, 27, 33, 33, 31, 31,206,206, 35, 35, 37, 38, | |
2901 38, 38, 38, 38, 41, 41, 41, 41,199, 43, 43, 46, 48, 46,200, 49, 49, 51, | |
2902 51, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 65, 65, 65, 67, | |
2903 68, 69, 66, 73, 73, 78, 78, 75, 75, 75, 75, 75, 80, 80, 80, 76, 77, 77, | |
2904 84, 84, 85, 85, 88, 88, 88, 21, 86, 86, 86, 86, 87, 87, 87, 87, 92, 91, | |
2905 89, 89, 89, 89, 89, 99, 99, 89, 95,103,103, 95, 95, 95,101, 98,113,113, | |
2906 96, 22, 22, 22,222,117,117,222,110,110,110, 94, 94,120,120,123,123,125, | |
2907 125,127,127,128,128,130,130,130,130,130,132,132,132,132,132,132,132,132, | |
2908 132,135,135,135,138,138,138,140,140,140,140,146,143,143,143,143,143,107, | |
2909 107,107,107,107,107,107,154,152,105,105,150,150,158,150,151,151,151,151, | |
2910 151,151,244,244,244,164,164,159,159, 74, 74,160,160,161,161,245,170,170, | |
2911 97,172,172,172,172,172,172,172,172,172,172,176,182,182,182,182,182,182, | |
2912 183,183,183,183,183,175,175,191,191,191,192,191,119, 14, 14, 14, 14, 14, | |
2913 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, | |
2914 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 17, 17, 17, 17, 17, | |
2915 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | |
2916 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 36, 36, 36, 36, 36, 36, | |
2917 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 42, 42, 42, | |
2918 42, 42, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, | |
2919 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, | |
2920 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, | |
2921 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 71, 71,118, | |
2922 118,165,165,165,168,168,171,171,171,171,171,171,171,171,171,171,171,171, | |
2923 171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171, | |
2924 171,171,171,197,197, 7, 5, 4, 32, 29, 34, 39, 40, 2, 79, 81, 82, 83, | |
2925 90, 44, 45, 93,100,102,106,108,112,111,109, 8,114,115,116,122,121,124, | |
2926 126,129,131,133,134,136,137,139,141,142,144,145,147,148,149, 3, 6,157, | |
2927 173,174,177,178,180,179,181,184,185,186,187,188,189,190,166,196 | |
2928 }; | |
2929 | |
2930 static const unsigned short *ag_valid(int ag_k) { | |
2931 const unsigned short *ag_tp = &ag_tstt[ag_sbt[(PCB).sn+1]]; | |
2932 while (*--ag_tp != (unsigned short) ag_k) if (*ag_tp == 0) return NULL; | |
2933 return ag_tp; | |
2934 } | |
2935 | |
2936 int cc-crash_change_reduction(cc-crash_token_type ag_k) { | |
2937 if (!ag_valid(ag_k)) return 0; | |
2938 (PCB).reduction_token = ag_k; | |
2939 return 1; | |
2940 } | |
2941 | |
2942 static void ag_default(const int *ag_tp) { | |
2943 (PCB).ag_dsn = (PCB).sn; | |
2944 (PCB).ag_dtl = ag_tp; | |
2945 while (!ag_valid((cc-crash_token_type) *ag_tp)) ag_tp++; | |
2946 (PCB).reduction_token = (cc-crash_token_type) *ag_tp; | |
2947 } | |
2948 | |
2949 | |
2950 | |
2951 static void ag_ra(void) | |
2952 { | |
2953 switch(ag_rpx[(PCB).ag_ap]) { | |
2954 case 1: ag_rp_1(V(0,(unsigned *))); break; | |
2955 case 2: ag_rp_2(); break; | |
2956 case 3: ag_rp_3(); break; | |
2957 case 4: ag_rp_4(); break; | |
2958 case 5: ag_rp_5(); break; | |
2959 case 6: ag_rp_6(V(0,(int *))); break; | |
2960 case 7: ag_rp_7(V(1,(int *))); break; | |
2961 case 8: ag_rp_8(); break; | |
2962 case 9: ag_rp_9(); break; | |
2963 case 10: ag_rp_10(); break; | |
2964 case 11: ag_rp_11(); break; | |
2965 case 12: ag_rp_12(V(0,(int *))); break; | |
2966 case 13: ag_rp_13(); break; | |
2967 case 14: ag_rp_14(); break; | |
2968 case 15: ag_rp_15(); break; | |
2969 case 16: ag_rp_16(V(0,(int *))); break; | |
2970 case 17: ag_rp_17(V(0,(int *))); break; | |
2971 case 18: V(0,(int *)) = ag_rp_18(); break; | |
2972 case 19: V(0,(int *)) = ag_rp_19(); break; | |
2973 case 20: V(0,(int *)) = ag_rp_20(); break; | |
2974 case 21: V(0,(int *)) = ag_rp_21(); break; | |
2975 case 22: V(0,(int *)) = ag_rp_22(); break; | |
2976 case 23: V(0,(int *)) = ag_rp_23(); break; | |
2977 case 24: V(0,(int *)) = ag_rp_24(); break; | |
2978 case 25: V(0,(int *)) = ag_rp_25(); break; | |
2979 case 26: V(0,(int *)) = ag_rp_26(); break; | |
2980 case 27: V(0,(int *)) = ag_rp_27(); break; | |
2981 case 28: V(0,(int *)) = ag_rp_28(); break; | |
2982 case 29: V(0,(int *)) = ag_rp_29(V(1,(int *))); break; | |
2983 case 30: V(0,(int *)) = ag_rp_30(V(0,(int *)), V(1,(int *))); break; | |
2984 case 31: V(0,(int *)) = ag_rp_31(V(0,(int *)), V(1,(int *))); break; | |
2985 case 32: V(0,(int *)) = ag_rp_32(V(1,(long *))); break; | |
2986 case 33: V(0,(long *)) = ag_rp_33(V(0,(long *)), V(1,(long *))); break; | |
2987 case 34: ag_rp_34(); break; | |
2988 case 35: ag_rp_35(); break; | |
2989 case 36: ag_rp_36(V(0,(char * *))); break; | |
2990 case 37: ag_rp_37(V(0,(char * *))); break; | |
2991 case 38: ag_rp_38(V(0,(char * *))); break; | |
2992 case 39: V(0,(char * *)) = ag_rp_39(); break; | |
2993 case 40: V(0,(char * *)) = ag_rp_40(); break; | |
2994 case 41: V(0,(char * *)) = ag_rp_41(V(0,(char * *))); break; | |
2995 case 42: ag_rp_42(); break; | |
2996 case 43: ag_rp_43(); break; | |
2997 case 44: ag_rp_44(); break; | |
2998 case 45: ag_rp_45(V(0,(int *))); break; | |
2999 case 46: V(0,(int *)) = ag_rp_46(V(2,(int *))); break; | |
3000 case 47: V(0,(int *)) = ag_rp_47(V(2,(int *))); break; | |
3001 case 48: V(0,(int *)) = ag_rp_48(V(0,(int *)), V(4,(int *))); break; | |
3002 case 49: V(0,(int *)) = ag_rp_49(V(2,(long *))); break; | |
3003 case 50: V(0,(int *)) = ag_rp_50(V(0,(int *))); break; | |
3004 case 51: ag_rp_51(V(0,(unsigned *))); break; | |
3005 case 52: ag_rp_52(V(0,(unsigned *)), V(2,(long *))); break; | |
3006 case 53: ag_rp_53(V(0,(unsigned *))); break; | |
3007 case 54: ag_rp_54(V(0,(unsigned *)), V(2,(long *)), V(4,(long *))); break; | |
3008 case 55: ag_default(&ag_rtt[0]); V(0,(unsigned *)) = ag_rp_55(); break; | |
3009 case 56: ag_rp_56(V(2,(long *))); break; | |
3010 case 57: ag_rp_57(); break; | |
3011 case 58: ag_rp_58(V(1,(int *))); break; | |
3012 case 59: ag_rp_59(V(3,(long *))); break; | |
3013 case 60: ag_rp_60(); break; | |
3014 case 61: V(0,(int *)) = ag_rp_61(); break; | |
3015 case 62: V(0,(int *)) = ag_rp_62(V(0,(int *))); break; | |
3016 case 63: ag_rp_63(V(0,(int *))); break; | |
3017 case 64: ag_rp_64(V(1,(int *))); break; | |
3018 case 65: ag_rp_65(V(1,(int *))); break; | |
3019 case 66: V(0,(long *)) = ag_rp_66(V(0,(long *)), V(2,(long *)), V(4,(long *))); break; | |
3020 case 67: V(0,(long *)) = ag_rp_67(V(0,(long *)), V(2,(long *))); break; | |
3021 case 68: V(0,(long *)) = ag_rp_68(V(0,(long *)), V(2,(long *))); break; | |
3022 case 69: V(0,(long *)) = ag_rp_69(V(0,(long *)), V(2,(long *))); break; | |
3023 case 70: V(0,(long *)) = ag_rp_70(V(0,(long *)), V(2,(long *))); break; | |
3024 case 71: V(0,(long *)) = ag_rp_71(V(0,(long *)), V(2,(long *))); break; | |
3025 case 72: V(0,(long *)) = ag_rp_72(V(0,(long *)), V(2,(long *))); break; | |
3026 case 73: V(0,(long *)) = ag_rp_73(V(0,(long *)), V(2,(long *))); break; | |
3027 case 74: V(0,(long *)) = ag_rp_74(); break; | |
3028 case 75: V(0,(long *)) = ag_rp_75(); break; | |
3029 case 76: V(0,(long *)) = ag_rp_76(V(0,(long *)), V(2,(long *))); break; | |
3030 case 77: V(0,(long *)) = ag_rp_77(V(0,(long *)), V(2,(long *))); break; | |
3031 case 78: V(0,(long *)) = ag_rp_78(V(0,(long *)), V(2,(long *))); break; | |
3032 case 79: V(0,(long *)) = ag_rp_79(V(0,(long *)), V(2,(long *))); break; | |
3033 case 80: V(0,(long *)) = ag_rp_80(); break; | |
3034 case 81: V(0,(long *)) = ag_rp_81(); break; | |
3035 case 82: V(0,(long *)) = ag_rp_82(); break; | |
3036 case 83: V(0,(long *)) = ag_rp_83(); break; | |
3037 case 84: V(0,(long *)) = ag_rp_84(V(0,(long *)), V(2,(long *))); break; | |
3038 case 85: V(0,(long *)) = ag_rp_85(V(0,(long *)), V(2,(long *))); break; | |
3039 case 86: V(0,(long *)) = ag_rp_86(V(0,(long *)), V(2,(long *))); break; | |
3040 case 87: V(0,(long *)) = ag_rp_87(V(0,(long *)), V(2,(long *))); break; | |
3041 case 88: V(0,(long *)) = ag_rp_88(V(0,(long *)), V(2,(long *))); break; | |
3042 case 89: V(0,(long *)) = ag_rp_89(V(0,(long *)), V(2,(long *))); break; | |
3043 case 90: V(0,(long *)) = ag_rp_90(V(0,(long *)), V(2,(long *))); break; | |
3044 case 91: V(0,(long *)) = ag_rp_91(V(0,(long *))); break; | |
3045 case 92: V(0,(long *)) = ag_rp_92(V(1,(long *))); break; | |
3046 case 93: V(0,(long *)) = ag_rp_93(V(1,(long *))); break; | |
3047 case 94: V(0,(long *)) = ag_rp_94(V(1,(long *))); break; | |
3048 case 95: V(0,(long *)) = ag_rp_95(V(1,(long *))); break; | |
3049 case 96: V(0,(long *)) = ag_rp_96(V(2,(long *))); break; | |
3050 case 97: V(0,(long *)) = ag_rp_97(); break; | |
3051 case 98: V(0,(long *)) = ag_rp_98(V(1,(long *))); break; | |
3052 case 99: V(0,(long *)) = ag_rp_99(V(0,(long *))); break; | |
3053 case 100: ag_default(&ag_rtt[4]); V(0,(long *)) = ag_rp_100(); break; | |
3054 case 101: ag_rp_101(); break; | |
3055 case 102: ag_rp_102(V(3,(long *)), V(5,(long *))); break; | |
3056 case 103: ag_rp_103(); break; | |
3057 case 104: ag_rp_104(); break; | |
3058 case 105: ag_rp_105(V(0,(long *))); break; | |
3059 case 106: ag_rp_106(V(0,(long *))); break; | |
3060 case 107: ag_rp_107(); break; | |
3061 case 108: ag_rp_108(V(1,(long *))); break; | |
3062 case 109: V(0,(long *)) = ag_rp_109(); break; | |
3063 case 110: V(0,(long *)) = ag_rp_110(V(0,(long *)), V(1,(long *))); break; | |
3064 case 111: V(0,(long *)) = ag_rp_111(V(0,(int *))); break; | |
3065 case 112: V(0,(long *)) = ag_rp_112(); break; | |
3066 case 113: V(0,(long *)) = ag_rp_113(V(0,(long *)), V(1,(int *))); break; | |
3067 case 114: V(0,(long *)) = ag_rp_114(V(0,(int *))); break; | |
3068 case 115: V(0,(long *)) = ag_rp_115(V(0,(long *)), V(1,(int *))); break; | |
3069 case 116: V(0,(int *)) = ag_rp_116(V(1,(int *))); break; | |
3070 case 117: ag_rp_117(V(0,(screen_descriptor * *))); break; | |
3071 case 118: V(0,(screen_descriptor * *)) = ag_rp_118(); break; | |
3072 case 119: V(0,(screen_descriptor * *)) = ag_rp_119(V(0,(screen_descriptor * *))); break; | |
3073 case 120: V(0,(screen_descriptor * *)) = ag_rp_120(V(0,(screen_descriptor * *)), V(1,(int *))); break; | |
3074 case 121: V(0,(screen_descriptor * *)) = ag_rp_121(V(0,(screen_descriptor * *)), V(2,(int *))); break; | |
3075 case 122: V(0,(screen_descriptor * *)) = ag_rp_122(V(0,(screen_descriptor * *)), V(2,(int *))); break; | |
3076 case 123: V(0,(screen_descriptor * *)) = ag_rp_123(V(0,(screen_descriptor * *)), V(3,(long *)), V(5,(long *))); break; | |
3077 case 124: V(0,(screen_descriptor * *)) = ag_rp_124(V(0,(screen_descriptor * *)), V(3,(long *)), V(5,(long *))); break; | |
3078 case 125: V(0,(screen_descriptor * *)) = ag_rp_125(V(0,(screen_descriptor * *)), V(1,(query_item * *))); break; | |
3079 case 126: V(0,(screen_descriptor * *)) = ag_rp_126(V(0,(screen_descriptor * *)), V(1,(query_item * *))); break; | |
3080 case 127: V(0,(int *)) = ag_rp_127(V(2,(long *)), V(4,(long *))); break; | |
3081 case 128: V(0,(query_item * *)) = ag_rp_128(); break; | |
3082 case 129: V(0,(query_item * *)) = ag_rp_129(V(0,(query_item * *))); break; | |
3083 case 130: V(0,(query_item * *)) = ag_rp_130(V(0,(query_item * *))); break; | |
3084 case 131: V(0,(query_item * *)) = ag_rp_131(V(0,(query_item * *))); break; | |
3085 case 132: V(0,(query_item * *)) = ag_rp_132(V(0,(query_item * *))); break; | |
3086 case 133: V(0,(query_item * *)) = ag_rp_133(); break; | |
3087 case 134: V(0,(query_item * *)) = ag_rp_134(V(0,(query_item * *))); break; | |
3088 case 135: V(0,(query_item * *)) = ag_rp_135(V(0,(query_item * *))); break; | |
3089 case 136: V(0,(query_item * *)) = ag_rp_136(V(0,(query_item * *))); break; | |
3090 case 137: ag_rp_137(); break; | |
3091 case 138: ag_rp_138(); break; | |
3092 case 139: ag_rp_139(); break; | |
3093 case 140: ag_rp_140(); break; | |
3094 } | |
3095 (PCB).la_ptr = (PCB).pointer; | |
3096 } | |
3097 | |
3098 #define TOKEN_NAMES cc-crash_token_names | |
3099 const char *const cc-crash_token_names[263] = { | |
3100 "script file", | |
3101 "ws", | |
3102 "literal", | |
3103 "integer constant", | |
3104 "string literal", | |
3105 "paren string", | |
3106 "character constant", | |
3107 "eol", | |
3108 "literals", | |
3109 "white", | |
3110 "comment", | |
3111 "comment head", | |
3112 "\"*/\"", | |
3113 "\"/*\"", | |
3114 "", | |
3115 "'\\n'", | |
3116 "\"//\"", | |
3117 "not eol", | |
3118 "", | |
3119 "", | |
3120 "script file", | |
3121 "execution block", | |
3122 "declaration", | |
3123 "", | |
3124 "", | |
3125 "", | |
3126 "eof", | |
3127 "word", | |
3128 "undeclared variable", | |
3129 "'['", | |
3130 "", | |
3131 "parameter string", | |
3132 "']'", | |
3133 "string", | |
3134 "'#'", | |
3135 "param word", | |
3136 "text char", | |
3137 "action text", | |
3138 "action text head", | |
3139 "'}'", | |
3140 "'{'", | |
3141 "action word", | |
3142 "operator", | |
3143 "paren string chars", | |
3144 "')'", | |
3145 "'('", | |
3146 "paren string char", | |
3147 "not paren", | |
3148 "", | |
3149 "string chars", | |
3150 "'\\\"'", | |
3151 "string char", | |
3152 "not double quote", | |
3153 "escape sequence", | |
3154 "\"\\\\a\"", | |
3155 "\"\\\\b\"", | |
3156 "\"\\\\f\"", | |
3157 "\"\\\\n\"", | |
3158 "\"\\\\r\"", | |
3159 "\"\\\\t\"", | |
3160 "\"\\\\v\"", | |
3161 "\"\\\\\\\\\"", | |
3162 "\"\\\\?\"", | |
3163 "\"\\\\\\'\"", | |
3164 "\"\\\\\\\"\"", | |
3165 "octal escape", | |
3166 "hex escape", | |
3167 "one octal", | |
3168 "two octal", | |
3169 "three octal", | |
3170 "'\\\\'", | |
3171 "", | |
3172 "\"\\\\x\"", | |
3173 "hex number", | |
3174 "hex digit", | |
3175 "command", | |
3176 "identifier", | |
3177 "parameters", | |
3178 "", | |
3179 "'<'", | |
3180 "piped command", | |
3181 "'|'", | |
3182 "'>'", | |
3183 "\">>\"", | |
3184 "", | |
3185 "", | |
3186 "command sequence", | |
3187 "if sequence", | |
3188 "", | |
3189 "statement", | |
3190 "\"else\"", | |
3191 "if statement", | |
3192 "if condition", | |
3193 "\"if\"", | |
3194 "conditional exp", | |
3195 "assignment", | |
3196 "for statement", | |
3197 "screen description", | |
3198 "while statement", | |
3199 "", | |
3200 "'='", | |
3201 "integer variable", | |
3202 "';'", | |
3203 "", | |
3204 "string variable", | |
3205 "string exp", | |
3206 "'@'", | |
3207 "primary exp", | |
3208 "\"while\"", | |
3209 "\"for\"", | |
3210 "name", | |
3211 "\"in\"", | |
3212 "\"do\"", | |
3213 "", | |
3214 "\"action\"", | |
3215 "\"int\"", | |
3216 "\"string\"", | |
3217 "", | |
3218 "letter", | |
3219 "digit", | |
3220 "logical or exp", | |
3221 "'\\?'", | |
3222 "':'", | |
3223 "logical and exp", | |
3224 "\"||\"", | |
3225 "inclusive or exp", | |
3226 "\"&&\"", | |
3227 "exclusive or exp", | |
3228 "and exp", | |
3229 "'^'", | |
3230 "equality exp", | |
3231 "'&'", | |
3232 "relational exp", | |
3233 "\"==\"", | |
3234 "\"!=\"", | |
3235 "shift exp", | |
3236 "\"<=\"", | |
3237 "\">=\"", | |
3238 "additive exp", | |
3239 "\"<<\"", | |
3240 "multiplicative exp", | |
3241 "'+'", | |
3242 "'-'", | |
3243 "unary exp", | |
3244 "'*'", | |
3245 "'/'", | |
3246 "nonzero", | |
3247 "'%'", | |
3248 "'~'", | |
3249 "'!'", | |
3250 "string term", | |
3251 "string element", | |
3252 "numeric name", | |
3253 "built_in name", | |
3254 "built_in argument", | |
3255 "string name", | |
3256 "undefined name", | |
3257 "\"..\"", | |
3258 "", | |
3259 "hex constant", | |
3260 "octal constant", | |
3261 "decimal constant", | |
3262 "\"0x\"", | |
3263 "\"0X\"", | |
3264 "", | |
3265 "", | |
3266 "", | |
3267 "'0'", | |
3268 "", | |
3269 "'\\''", | |
3270 "char constant element", | |
3271 "not single quote", | |
3272 "screen items", | |
3273 "\"screen\"", | |
3274 "\"title\"", | |
3275 "formula", | |
3276 "color spec", | |
3277 "\"entry\"", | |
3278 "\"highlight\"", | |
3279 "\"size\"", | |
3280 "','", | |
3281 "\"location\"", | |
3282 "query line", | |
3283 "button line", | |
3284 "\"color\"", | |
3285 "\"field\"", | |
3286 "\"variable\"", | |
3287 "\"default\"", | |
3288 "\"prompt\"", | |
3289 "\"explanation\"", | |
3290 "\"button\"", | |
3291 "formula element", | |
3292 "", | |
3293 "", | |
3294 "", | |
3295 "", | |
3296 "", | |
3297 "", | |
3298 "eol", | |
3299 "paren string", | |
3300 "string literal", | |
3301 "']'", | |
3302 "'['", | |
3303 "'#'", | |
3304 "'}'", | |
3305 "'{'", | |
3306 "literal", | |
3307 "'<'", | |
3308 "'|'", | |
3309 "'>'", | |
3310 "\">>\"", | |
3311 "\"else\"", | |
3312 "')'", | |
3313 "'('", | |
3314 "\"if\"", | |
3315 "'='", | |
3316 "';'", | |
3317 "'@'", | |
3318 "\"while\"", | |
3319 "\"do\"", | |
3320 "\"in\"", | |
3321 "\"for\"", | |
3322 "literals", | |
3323 "\"action\"", | |
3324 "\"int\"", | |
3325 "\"string\"", | |
3326 "':'", | |
3327 "'\\?'", | |
3328 "\"||\"", | |
3329 "\"&&\"", | |
3330 "'^'", | |
3331 "'&'", | |
3332 "\"==\"", | |
3333 "\"!=\"", | |
3334 "\"<=\"", | |
3335 "\">=\"", | |
3336 "\"<<\"", | |
3337 "'+'", | |
3338 "'-'", | |
3339 "'*'", | |
3340 "'/'", | |
3341 "'%'", | |
3342 "'~'", | |
3343 "'!'", | |
3344 "integer constant", | |
3345 "character constant", | |
3346 "\"..\"", | |
3347 "\"screen\"", | |
3348 "\"title\"", | |
3349 "\"entry\"", | |
3350 "\"highlight\"", | |
3351 "','", | |
3352 "\"size\"", | |
3353 "\"location\"", | |
3354 "\"color\"", | |
3355 "\"field\"", | |
3356 "\"variable\"", | |
3357 "\"default\"", | |
3358 "\"prompt\"", | |
3359 "\"explanation\"", | |
3360 "\"button\"", | |
3361 "", | |
3362 "", | |
3363 | |
3364 }; | |
3365 | |
3366 #ifndef MISSING_FORMAT | |
3367 #define MISSING_FORMAT "Missing %s" | |
3368 #endif | |
3369 #ifndef UNEXPECTED_FORMAT | |
3370 #define UNEXPECTED_FORMAT "Unexpected %s" | |
3371 #endif | |
3372 #ifndef UNNAMED_TOKEN | |
3373 #define UNNAMED_TOKEN "input" | |
3374 #endif | |
3375 | |
3376 | |
3377 static void ag_diagnose(void) { | |
3378 int ag_snd = (PCB).sn; | |
3379 int ag_k = ag_sbt[ag_snd]; | |
3380 | |
3381 if (*TOKEN_NAMES[ag_tstt[ag_k]] && ag_astt[ag_k + 1] == ag_action_8) { | |
3382 sprintf((PCB).ag_msg, MISSING_FORMAT, TOKEN_NAMES[ag_tstt[ag_k]]); | |
3383 } | |
3384 else if (ag_astt[ag_sbe[(PCB).sn]] == ag_action_8 | |
3385 && (ag_k = (int) ag_sbe[(PCB).sn] + 1) == (int) ag_sbt[(PCB).sn+1] - 1 | |
3386 && *TOKEN_NAMES[ag_tstt[ag_k]]) { | |
3387 sprintf((PCB).ag_msg, MISSING_FORMAT, TOKEN_NAMES[ag_tstt[ag_k]]); | |
3388 } | |
3389 else if ((PCB).token_number && *TOKEN_NAMES[(PCB).token_number]) { | |
3390 sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, TOKEN_NAMES[(PCB).token_number]); | |
3391 } | |
3392 else if (isprint(INPUT_CODE((*(PCB).pointer))) && INPUT_CODE((*(PCB).pointer)) != '\\') { | |
3393 char buf[20]; | |
3394 sprintf(buf, "\'%c\'", (char) INPUT_CODE((*(PCB).pointer))); | |
3395 sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, buf); | |
3396 } | |
3397 else sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, UNNAMED_TOKEN); | |
3398 (PCB).error_message = (PCB).ag_msg; | |
3399 | |
3400 | |
3401 } | |
3402 static int ag_action_1_r_proc(void); | |
3403 static int ag_action_2_r_proc(void); | |
3404 static int ag_action_3_r_proc(void); | |
3405 static int ag_action_4_r_proc(void); | |
3406 static int ag_action_1_s_proc(void); | |
3407 static int ag_action_3_s_proc(void); | |
3408 static int ag_action_1_proc(void); | |
3409 static int ag_action_2_proc(void); | |
3410 static int ag_action_3_proc(void); | |
3411 static int ag_action_4_proc(void); | |
3412 static int ag_action_5_proc(void); | |
3413 static int ag_action_6_proc(void); | |
3414 static int ag_action_7_proc(void); | |
3415 static int ag_action_8_proc(void); | |
3416 static int ag_action_9_proc(void); | |
3417 static int ag_action_10_proc(void); | |
3418 static int ag_action_11_proc(void); | |
3419 static int ag_action_8_proc(void); | |
3420 | |
3421 | |
3422 static int (*const ag_r_procs_scan[])(void) = { | |
3423 ag_action_1_r_proc, | |
3424 ag_action_2_r_proc, | |
3425 ag_action_3_r_proc, | |
3426 ag_action_4_r_proc | |
3427 }; | |
3428 | |
3429 static int (*const ag_s_procs_scan[])(void) = { | |
3430 ag_action_1_s_proc, | |
3431 ag_action_2_r_proc, | |
3432 ag_action_3_s_proc, | |
3433 ag_action_4_r_proc | |
3434 }; | |
3435 | |
3436 static int (*const ag_gt_procs_scan[])(void) = { | |
3437 ag_action_1_proc, | |
3438 ag_action_2_proc, | |
3439 ag_action_3_proc, | |
3440 ag_action_4_proc, | |
3441 ag_action_5_proc, | |
3442 ag_action_6_proc, | |
3443 ag_action_7_proc, | |
3444 ag_action_8_proc, | |
3445 ag_action_9_proc, | |
3446 ag_action_10_proc, | |
3447 ag_action_11_proc, | |
3448 ag_action_8_proc | |
3449 }; | |
3450 | |
3451 | |
3452 static int ag_action_10_proc(void) { | |
3453 int ag_t = (PCB).token_number; | |
3454 (PCB).btsx = 0, (PCB).drt = -1; | |
3455 do { | |
3456 ag_track(); | |
3457 (PCB).token_number = (cc-crash_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
3458 (PCB).la_ptr++; | |
3459 if (ag_key_index[(PCB).sn]) { | |
3460 unsigned ag_k = ag_key_index[(PCB).sn]; | |
3461 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
3462 if (ag_ch <= 255) { | |
3463 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
3464 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
3465 } | |
3466 } | |
3467 } while ((PCB).token_number == (cc-crash_token_type) ag_t); | |
3468 (PCB).la_ptr = (PCB).pointer; | |
3469 return 1; | |
3470 } | |
3471 | |
3472 static int ag_action_11_proc(void) { | |
3473 int ag_t = (PCB).token_number; | |
3474 | |
3475 (PCB).btsx = 0, (PCB).drt = -1; | |
3476 do { | |
3477 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
3478 (PCB).ssx--; | |
3479 ag_track(); | |
3480 ag_ra(); | |
3481 if ((PCB).exit_flag != AG_RUNNING_CODE) return 0; | |
3482 (PCB).ssx++; | |
3483 (PCB).token_number = (cc-crash_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
3484 (PCB).la_ptr++; | |
3485 if (ag_key_index[(PCB).sn]) { | |
3486 unsigned ag_k = ag_key_index[(PCB).sn]; | |
3487 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
3488 if (ag_ch <= 255) { | |
3489 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
3490 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
3491 } | |
3492 } | |
3493 } | |
3494 while ((PCB).token_number == (cc-crash_token_type) ag_t); | |
3495 (PCB).la_ptr = (PCB).pointer; | |
3496 return 1; | |
3497 } | |
3498 | |
3499 static int ag_action_3_r_proc(void) { | |
3500 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
3501 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3502 (PCB).btsx = 0, (PCB).drt = -1; | |
3503 (PCB).reduction_token = (cc-crash_token_type) ag_ptt[(PCB).ag_ap]; | |
3504 ag_ra(); | |
3505 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3506 } | |
3507 | |
3508 static int ag_action_3_s_proc(void) { | |
3509 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
3510 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3511 (PCB).btsx = 0, (PCB).drt = -1; | |
3512 (PCB).reduction_token = (cc-crash_token_type) ag_ptt[(PCB).ag_ap]; | |
3513 ag_ra(); | |
3514 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3515 } | |
3516 | |
3517 static int ag_action_4_r_proc(void) { | |
3518 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
3519 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3520 (PCB).reduction_token = (cc-crash_token_type) ag_ptt[(PCB).ag_ap]; | |
3521 return 1; | |
3522 } | |
3523 | |
3524 static int ag_action_2_proc(void) { | |
3525 (PCB).btsx = 0, (PCB).drt = -1; | |
3526 if ((PCB).ssx >= 128) { | |
3527 (PCB).exit_flag = AG_STACK_ERROR_CODE; | |
3528 PARSER_STACK_OVERFLOW; | |
3529 } | |
3530 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
3531 GET_CONTEXT; | |
3532 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3533 (PCB).ssx++; | |
3534 (PCB).sn = (PCB).ag_ap; | |
3535 ag_track(); | |
3536 return 0; | |
3537 } | |
3538 | |
3539 static int ag_action_9_proc(void) { | |
3540 if ((PCB).drt == -1) { | |
3541 (PCB).drt=(PCB).token_number; | |
3542 (PCB).dssx=(PCB).ssx; | |
3543 (PCB).dsn=(PCB).sn; | |
3544 } | |
3545 ag_prot(); | |
3546 (PCB).vs[(PCB).ssx] = ag_null_value; | |
3547 GET_CONTEXT; | |
3548 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3549 (PCB).ssx++; | |
3550 (PCB).sn = (PCB).ag_ap; | |
3551 (PCB).la_ptr = (PCB).pointer; | |
3552 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3553 } | |
3554 | |
3555 static int ag_action_2_r_proc(void) { | |
3556 (PCB).ssx++; | |
3557 (PCB).sn = (PCB).ag_ap; | |
3558 return 0; | |
3559 } | |
3560 | |
3561 static int ag_action_7_proc(void) { | |
3562 --(PCB).ssx; | |
3563 (PCB).la_ptr = (PCB).pointer; | |
3564 (PCB).exit_flag = AG_SUCCESS_CODE; | |
3565 return 0; | |
3566 } | |
3567 | |
3568 static int ag_action_1_proc(void) { | |
3569 ag_track(); | |
3570 (PCB).exit_flag = AG_SUCCESS_CODE; | |
3571 return 0; | |
3572 } | |
3573 | |
3574 static int ag_action_1_r_proc(void) { | |
3575 (PCB).exit_flag = AG_SUCCESS_CODE; | |
3576 return 0; | |
3577 } | |
3578 | |
3579 static int ag_action_1_s_proc(void) { | |
3580 (PCB).exit_flag = AG_SUCCESS_CODE; | |
3581 return 0; | |
3582 } | |
3583 | |
3584 static int ag_action_4_proc(void) { | |
3585 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
3586 (PCB).reduction_token = (cc-crash_token_type) ag_ptt[(PCB).ag_ap]; | |
3587 (PCB).btsx = 0, (PCB).drt = -1; | |
3588 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
3589 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3590 else GET_CONTEXT; | |
3591 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3592 ag_track(); | |
3593 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3594 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
3595 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
3596 do { | |
3597 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3598 if (ag_tstt[ag_tx] < (unsigned short)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
3599 else ag_t2 = ag_tx; | |
3600 } while (ag_t1 < ag_t2); | |
3601 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
3602 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
3603 REDUCTION_TOKEN_ERROR; break;} | |
3604 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3605 if ((ag_s_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
3606 } | |
3607 return 0; | |
3608 } | |
3609 | |
3610 static int ag_action_3_proc(void) { | |
3611 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
3612 (PCB).btsx = 0, (PCB).drt = -1; | |
3613 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
3614 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3615 else GET_CONTEXT; | |
3616 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3617 ag_track(); | |
3618 (PCB).reduction_token = (cc-crash_token_type) ag_ptt[(PCB).ag_ap]; | |
3619 ag_ra(); | |
3620 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3621 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
3622 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
3623 do { | |
3624 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3625 if (ag_tstt[ag_tx] < (unsigned short)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
3626 else ag_t2 = ag_tx; | |
3627 } while (ag_t1 < ag_t2); | |
3628 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
3629 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
3630 REDUCTION_TOKEN_ERROR; break;} | |
3631 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3632 if ((ag_s_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
3633 } | |
3634 return 0; | |
3635 } | |
3636 | |
3637 static int ag_action_8_proc(void) { | |
3638 ag_undo(); | |
3639 (PCB).la_ptr = (PCB).pointer; | |
3640 (PCB).exit_flag = AG_SYNTAX_ERROR_CODE; | |
3641 ag_diagnose(); | |
3642 SYNTAX_ERROR; | |
3643 {(PCB).la_ptr = (PCB).pointer + 1; ag_track();} | |
3644 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3645 } | |
3646 | |
3647 static int ag_action_5_proc(void) { | |
3648 int ag_sd = ag_fl[(PCB).ag_ap]; | |
3649 (PCB).btsx = 0, (PCB).drt = -1; | |
3650 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3651 else { | |
3652 GET_CONTEXT; | |
3653 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3654 } | |
3655 (PCB).la_ptr = (PCB).pointer; | |
3656 (PCB).reduction_token = (cc-crash_token_type) ag_ptt[(PCB).ag_ap]; | |
3657 ag_ra(); | |
3658 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3659 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
3660 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
3661 do { | |
3662 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3663 if (ag_tstt[ag_tx] < (unsigned short)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
3664 else ag_t2 = ag_tx; | |
3665 } while (ag_t1 < ag_t2); | |
3666 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
3667 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
3668 REDUCTION_TOKEN_ERROR; break;} | |
3669 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3670 if ((ag_r_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
3671 } | |
3672 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3673 } | |
3674 | |
3675 static int ag_action_6_proc(void) { | |
3676 int ag_sd = ag_fl[(PCB).ag_ap]; | |
3677 (PCB).reduction_token = (cc-crash_token_type) ag_ptt[(PCB).ag_ap]; | |
3678 if ((PCB).drt == -1) { | |
3679 (PCB).drt=(PCB).token_number; | |
3680 (PCB).dssx=(PCB).ssx; | |
3681 (PCB).dsn=(PCB).sn; | |
3682 } | |
3683 if (ag_sd) { | |
3684 (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
3685 } | |
3686 else { | |
3687 ag_prot(); | |
3688 (PCB).vs[(PCB).ssx] = ag_null_value; | |
3689 GET_CONTEXT; | |
3690 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
3691 } | |
3692 (PCB).la_ptr = (PCB).pointer; | |
3693 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3694 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
3695 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
3696 do { | |
3697 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3698 if (ag_tstt[ag_tx] < (unsigned short)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
3699 else ag_t2 = ag_tx; | |
3700 } while (ag_t1 < ag_t2); | |
3701 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
3702 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
3703 REDUCTION_TOKEN_ERROR; break;} | |
3704 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3705 if ((ag_r_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
3706 } | |
3707 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3708 } | |
3709 | |
3710 | |
3711 void init_cc-crash(void) { | |
3712 (PCB).la_ptr = (PCB).pointer; | |
3713 (PCB).ss[0] = (PCB).sn = (PCB).ssx = 0; | |
3714 (PCB).exit_flag = AG_RUNNING_CODE; | |
3715 (PCB).line = FIRST_LINE; | |
3716 (PCB).column = FIRST_COLUMN; | |
3717 (PCB).btsx = 0, (PCB).drt = -1; | |
3718 } | |
3719 | |
3720 void cc-crash(void) { | |
3721 init_cc-crash(); | |
3722 (PCB).exit_flag = AG_RUNNING_CODE; | |
3723 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3724 unsigned ag_t1 = ag_sbt[(PCB).sn]; | |
3725 if (ag_tstt[ag_t1]) { | |
3726 unsigned ag_t2 = ag_sbe[(PCB).sn] - 1; | |
3727 (PCB).token_number = (cc-crash_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
3728 (PCB).la_ptr++; | |
3729 if (ag_key_index[(PCB).sn]) { | |
3730 unsigned ag_k = ag_key_index[(PCB).sn]; | |
3731 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
3732 if (ag_ch <= 255) { | |
3733 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
3734 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
3735 } | |
3736 } | |
3737 do { | |
3738 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3739 if (ag_tstt[ag_tx] > (unsigned short)(PCB).token_number) | |
3740 ag_t1 = ag_tx + 1; | |
3741 else ag_t2 = ag_tx; | |
3742 } while (ag_t1 < ag_t2); | |
3743 if (ag_tstt[ag_t1] != (unsigned short)(PCB).token_number) | |
3744 ag_t1 = ag_sbe[(PCB).sn]; | |
3745 } | |
3746 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3747 (ag_gt_procs_scan[ag_astt[ag_t1]])(); | |
3748 } | |
3749 } | |
3750 | |
3751 |