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