Mercurial > ~dholland > hg > ag > index.cgi
comparison tests/agcl/examples/good/jrc.cpp @ 0:13d2b8934445
Import AnaGram (near-)release tree into Mercurial.
author | David A. Holland |
---|---|
date | Sat, 22 Dec 2007 17:52:45 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:13d2b8934445 |
---|---|
1 /* | |
2 | |
3 Copyright (C) 1989,1990 James A. Roskind, All rights reserved. | |
4 | |
5 This grammar was developed and written by James A. Roskind. | |
6 Copying of this grammar description, as a whole, is permitted | |
7 providing this notice is intact and applicable in all complete | |
8 copies. Translations as a whole to other parser generator input | |
9 languages (or grammar description languages) is permitted | |
10 provided that this notice is intact and applicable in all such | |
11 copies, along with a disclaimer that the contents are a | |
12 translation. The reproduction of derived text, such as modified | |
13 versions of this grammar, or the output of parser generators, is | |
14 permitted, provided the resulting work includes the copyright | |
15 notice "Portions Copyright (c) 1989, 1990 James A. Roskind". | |
16 Derived products, such as compilers, translators, browsers, etc., | |
17 that use this grammar, must also provide the notice "Portions | |
18 Copyright (c) 1989, 1990 James A. Roskind" in a manner | |
19 appropriate to the utility, and in keeping with copyright law | |
20 (e.g.: EITHER displayed when first invoked/executed; OR displayed | |
21 continuously on display terminal; OR via placement in the object | |
22 code in form readable in a printout, with or near the title of | |
23 the work, or at the end of the file). No royalties, licenses or | |
24 commissions of any kind are required to copy this grammar, its | |
25 translations, or derivative products, when the copies are made in | |
26 compliance with this notice. Persons or corporations that do make | |
27 copies in compliance with this notice may charge whatever price | |
28 is agreeable to a buyer, for such copies or derivative works. | |
29 THIS GRAMMAR IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR | |
30 IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED | |
31 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
32 PURPOSE. | |
33 | |
34 James A. Roskind | |
35 Independent Consultant | |
36 516 Latania Palm Drive | |
37 Indialantic FL, 32903 | |
38 (407)729-4348 | |
39 jar@ileaf.com | |
40 or ...!uunet!leafusa!jar | |
41 | |
42 | |
43 ****************************************************************************** | |
44 | |
45 Translation to AnaGram and Interfacing | |
46 Copyright 1993 Parsifal Software. All rights reserved. | |
47 | |
48 This software is provided 'as-is', without any express or implied | |
49 warranty. In no event will the authors be held liable for any damages | |
50 arising from the use of this software. | |
51 | |
52 Permission is granted to anyone to use this software for any purpose, | |
53 including commercial applications, and to alter it and redistribute it | |
54 freely, subject to the following restrictions: | |
55 | |
56 1. The origin of this software must not be misrepresented; you must not | |
57 claim that you wrote the original software. If you use this software | |
58 in a product, an acknowledgment in the product documentation would be | |
59 appreciated but is not required. | |
60 2. Altered source versions must be plainly marked as such, and must not be | |
61 misrepresented as being the original software. | |
62 3. This notice may not be removed or altered from any source distribution. | |
63 | |
64 ****************************************************************************** | |
65 | |
66 */ | |
67 | |
68 #include "mpp.h" | |
69 | |
70 | |
71 /* | |
72 * AnaGram, A System for Syntax Directed Programming | |
73 * File generated by: ... | |
74 * | |
75 * AnaGram Parsing Engine | |
76 * Copyright 1993-2002 Parsifal Software. All Rights Reserved. | |
77 * | |
78 * This software is provided 'as-is', without any express or implied | |
79 * warranty. In no event will the authors be held liable for any damages | |
80 * arising from the use of this software. | |
81 * | |
82 * Permission is granted to anyone to use this software for any purpose, | |
83 * including commercial applications, and to alter it and redistribute it | |
84 * freely, subject to the following restrictions: | |
85 * | |
86 * 1. The origin of this software must not be misrepresented; you must not | |
87 * claim that you wrote the original software. If you use this software | |
88 * in a product, an acknowledgment in the product documentation would be | |
89 * appreciated but is not required. | |
90 * 2. Altered source versions must be plainly marked as such, and must not be | |
91 * misrepresented as being the original software. | |
92 * 3. This notice may not be removed or altered from any source distribution. | |
93 */ | |
94 | |
95 #ifndef JRC_H | |
96 #include "jrc.h" | |
97 #endif | |
98 | |
99 #ifndef JRC_H | |
100 #error Mismatched header file | |
101 #endif | |
102 | |
103 #include <ctype.h> | |
104 #include <stdio.h> | |
105 | |
106 #define RULE_CONTEXT (&((PCB).cs[(PCB).ssx])) | |
107 #define ERROR_CONTEXT ((PCB).cs[(PCB).error_frame_ssx]) | |
108 #define CONTEXT ((PCB).cs[(PCB).ssx]) | |
109 | |
110 | |
111 | |
112 cc_pcb_type cc_pcb; | |
113 #define PCB cc_pcb | |
114 #define CHANGE_REDUCTION(x) cc_change_reduction(cc_##x##_token) | |
115 int cc_change_reduction(cc_token_type); | |
116 | |
117 #define INPUT_VALUE(type) *(type *) &(PCB).input_value | |
118 | |
119 #line - "jrc.syn" | |
120 // Embedded C | |
121 | |
122 #define SYNTAX_ERROR syntax_error(PCB.error_message) | |
123 #define INPUT_CODE(T) (T).id | |
124 | |
125 static int typedef_flag = 0; | |
126 static int use_count = 0; | |
127 | |
128 symbol_type_enum symbol_table[N_SYMBOLS]; | |
129 | |
130 | |
131 static void do_typedef(token t) { | |
132 if (typedef_flag == 0) return; | |
133 typedef_flag = 0; | |
134 symbol_table[t.handle] = typedef_name; | |
135 } | |
136 | |
137 static token check_typedef(token t) { | |
138 if (symbol_table[t.handle] == typedef_name) | |
139 CHANGE_REDUCTION(TYPEDEFname); | |
140 return t; | |
141 } | |
142 | |
143 // Member Functions for Class c_parser | |
144 | |
145 // Constructor | |
146 | |
147 /* | |
148 This parser has no provisions for multiple simultaneous parses or for | |
149 recursion. The purpose of use_count is to make sure that there is only one | |
150 copy of the parser active at any time. | |
151 */ | |
152 | |
153 | |
154 c_parser::c_parser() { | |
155 assert(use_count == 0); | |
156 use_count++; | |
157 typedef_flag = 0; | |
158 memset(symbol_table, 0, sizeof(symbol_table)); | |
159 init_cc(); // init parse | |
160 } | |
161 | |
162 | |
163 // Destructor | |
164 | |
165 c_parser::~c_parser() { | |
166 use_count--; // Makes parser available | |
167 } | |
168 | |
169 | |
170 // Reset Parser | |
171 | |
172 c_parser &reset(c_parser &c) { | |
173 typedef_flag = 0; | |
174 memset(symbol_table, 0, sizeof(symbol_table)); | |
175 init_cc(); // init parse | |
176 return c; | |
177 } | |
178 | |
179 | |
180 // Transmit token to c_parser | |
181 | |
182 /* | |
183 The overloaded operator "<<" is used to transmit data to a parser. | |
184 Newline tokens are filtered out, since they are passed along by the | |
185 token scanner only in case text output of the preprocessor is | |
186 required. | |
187 | |
188 If the parser has encountered an error, there is no point in giving | |
189 it any further input. | |
190 | |
191 Otherwise, the input_code and input_value fields of the pcb are set | |
192 up and cc() is called to deal with the token. | |
193 */ | |
194 | |
195 token_sink &c_parser::operator << (token c) { | |
196 if (PCB.exit_flag != AG_RUNNING_CODE || (int) c.id == '\n') return *this; | |
197 PCB.input_code = c.id; | |
198 PCB.input_value = c; | |
199 cc(); | |
200 return *this; | |
201 } | |
202 | |
203 token_sink &c_parser::operator << (token *s) { | |
204 while (s->id != END_OF_FILE && PCB.exit_flag == AG_RUNNING_CODE) { | |
205 if ((int) s->id == 10) continue; | |
206 PCB.input_code = s->id; | |
207 PCB.input_value = *s++; | |
208 cc(); | |
209 } | |
210 return *this; | |
211 } | |
212 | |
213 #line - "jrc.cpp" | |
214 | |
215 #ifndef CONVERT_CASE | |
216 #define CONVERT_CASE(c) (c) | |
217 #endif | |
218 #ifndef TAB_SPACING | |
219 #define TAB_SPACING 8 | |
220 #endif | |
221 | |
222 static void ag_rp_1(void) { | |
223 #line - "jrc.syn" | |
224 typedef_flag = 1; | |
225 #line - "jrc.cpp" | |
226 } | |
227 | |
228 static void ag_rp_2(int f) { | |
229 #line - "jrc.syn" | |
230 typedef_flag = f; | |
231 #line - "jrc.cpp" | |
232 } | |
233 | |
234 static int ag_rp_3(void) { | |
235 #line - "jrc.syn" | |
236 int f = typedef_flag; typedef_flag = 0; return f; | |
237 #line - "jrc.cpp" | |
238 } | |
239 | |
240 static void ag_rp_4(token s) { | |
241 #line - "jrc.syn" | |
242 do_typedef(s); | |
243 #line - "jrc.cpp" | |
244 } | |
245 | |
246 static token ag_rp_5(token t) { | |
247 #line - "jrc.syn" | |
248 return check_typedef(t); | |
249 #line - "jrc.cpp" | |
250 } | |
251 | |
252 | |
253 #ifndef AG_TRACE_FILE_NAME | |
254 #define AG_TRACE_FILE_NAME "jrc.etr" | |
255 #endif | |
256 | |
257 static void ag_trace_error(void) { | |
258 FILE *ag_file = fopen(AG_TRACE_FILE_NAME, "w"); | |
259 int i; | |
260 if (ag_file == NULL) return; | |
261 fprintf(ag_file, "%d\n", (PCB).ssx); | |
262 for (i = 0; i < (PCB).ssx; i++) fprintf(ag_file, "%d\n", (PCB).ss[i]); | |
263 fprintf(ag_file, "%d\n", (PCB).sn); | |
264 fprintf(ag_file, "%d\n", (PCB).token_number); | |
265 fclose(ag_file); | |
266 } | |
267 | |
268 | |
269 #define READ_COUNTS | |
270 #define WRITE_COUNTS | |
271 #undef V | |
272 #define V(i,t) (*t (&(PCB).vs[(PCB).ssx + i])) | |
273 #undef VS | |
274 #define VS(i) (PCB).vs[(PCB).ssx + i] | |
275 | |
276 #ifndef GET_CONTEXT | |
277 #define GET_CONTEXT CONTEXT = (PCB).input_context | |
278 #endif | |
279 | |
280 typedef enum { | |
281 ag_action_1, | |
282 ag_action_2, | |
283 ag_action_3, | |
284 ag_action_4, | |
285 ag_action_5, | |
286 ag_action_6, | |
287 ag_action_7, | |
288 ag_action_8, | |
289 ag_action_9, | |
290 ag_action_10, | |
291 ag_action_11, | |
292 ag_action_12 | |
293 } ag_parser_action; | |
294 | |
295 | |
296 #ifndef NULL_VALUE_INITIALIZER | |
297 #define NULL_VALUE_INITIALIZER = { 0 } | |
298 #endif | |
299 | |
300 static cc_vs_type const ag_null_value NULL_VALUE_INITIALIZER; | |
301 | |
302 static const unsigned char far ag_rpx[] = { | |
303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
310 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
311 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, | |
319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
320 0, 0, 0, 0, 0, 0, 5 | |
321 }; | |
322 | |
323 #define AG_TCV(x) ag_tcv[(x)] | |
324 | |
325 static const unsigned char far ag_tcv[] = { | |
326 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, | |
328 0, 43, 35, 0, 16, 18, 36, 37, 29, 38, 23, 42, 0, 0, 0, 0, 0, 0, | |
329 0, 0, 0, 0, 67, 84, 49, 69, 50, 66, 0, 62, 77, 25, 0, 27, 71,142, | |
330 54, 78, 52, 26, 51, 46, 75, 72, 74, 70, 55, 79, 64, 73, 47, 76, 11, 13, | |
331 0, 20, 0, 21, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,125, 60,127, | |
333 39, 0, 0, 10, 9, 8, 7,186,110,167,155,113,102,166,156,163,118,160, | |
334 137,108,117,164,165,159,115,116,111,168,114,119, 33,109,128,161,107,129, | |
335 120,112,103,162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
340 0, 0, 0, 0 | |
341 }; | |
342 | |
343 #ifndef SYNTAX_ERROR | |
344 #define SYNTAX_ERROR fprintf(stderr,"%s, line %d, column %d\n", \ | |
345 (PCB).error_message, (PCB).line, (PCB).column) | |
346 #endif | |
347 | |
348 #ifndef FIRST_LINE | |
349 #define FIRST_LINE 1 | |
350 #endif | |
351 | |
352 #ifndef FIRST_COLUMN | |
353 #define FIRST_COLUMN 1 | |
354 #endif | |
355 | |
356 #ifndef PARSER_STACK_OVERFLOW | |
357 #define PARSER_STACK_OVERFLOW {fprintf(stderr, \ | |
358 "\nParser stack overflow, line %d, column %d\n",\ | |
359 (PCB).line, (PCB).column);} | |
360 #endif | |
361 | |
362 #ifndef REDUCTION_TOKEN_ERROR | |
363 #define REDUCTION_TOKEN_ERROR {fprintf(stderr, \ | |
364 "\nReduction token error, line %d, column %d\n", \ | |
365 (PCB).line, (PCB).column);} | |
366 #endif | |
367 | |
368 | |
369 #ifndef AG_NEWLINE | |
370 #define AG_NEWLINE 10 | |
371 #endif | |
372 | |
373 #ifndef AG_RETURN | |
374 #define AG_RETURN 13 | |
375 #endif | |
376 | |
377 #ifndef AG_FORMFEED | |
378 #define AG_FORMFEED 12 | |
379 #endif | |
380 | |
381 #ifndef AG_TABCHAR | |
382 #define AG_TABCHAR 9 | |
383 #endif | |
384 | |
385 static void ag_track(void) { | |
386 switch ((PCB).input_code) { | |
387 case AG_NEWLINE: | |
388 (PCB).column = 1, (PCB).line++; | |
389 case AG_RETURN: | |
390 case AG_FORMFEED: | |
391 break; | |
392 case AG_TABCHAR: | |
393 (PCB).column += (TAB_SPACING) - ((PCB).column - 1) % (TAB_SPACING); | |
394 break; | |
395 default: | |
396 (PCB).column++; | |
397 } | |
398 (PCB).read_flag = 1; | |
399 } | |
400 | |
401 | |
402 static void ag_prot(void) { | |
403 int ag_k; | |
404 ag_k = 128 - ++(PCB).btsx; | |
405 if (ag_k <= (PCB).ssx) { | |
406 ag_trace_error(); | |
407 (PCB).exit_flag = AG_STACK_ERROR_CODE; | |
408 PARSER_STACK_OVERFLOW; | |
409 return; | |
410 } | |
411 (PCB).bts[(PCB).btsx] = (PCB).sn; | |
412 (PCB).bts[ag_k] = (PCB).ssx; | |
413 (PCB).vs[ag_k] = (PCB).vs[(PCB).ssx]; | |
414 (PCB).ss[ag_k] = (PCB).ss[(PCB).ssx]; | |
415 } | |
416 | |
417 static void ag_undo(void) { | |
418 if ((PCB).drt == -1) return; | |
419 while ((PCB).btsx) { | |
420 int ag_k = 128 - (PCB).btsx; | |
421 (PCB).sn = (PCB).bts[(PCB).btsx--]; | |
422 (PCB).ssx = (PCB).bts[ag_k]; | |
423 (PCB).vs[(PCB).ssx] = (PCB).vs[ag_k]; | |
424 (PCB).ss[(PCB).ssx] = (PCB).ss[ag_k]; | |
425 } | |
426 (PCB).token_number = (cc_token_type) (PCB).drt; | |
427 (PCB).ssx = (PCB).dssx; | |
428 (PCB).sn = (PCB).dsn; | |
429 (PCB).drt = -1; | |
430 } | |
431 | |
432 | |
433 | |
434 static const int far ag_rtt[] = { | |
435 15,106, 0 | |
436 }; | |
437 | |
438 static const unsigned char far ag_tstt[] = { | |
439 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
440 102,36,16,5,0,1,3,4,15,82,83,85,86,87,88,89,91,92,94,95,96,97,98,99,101, | |
441 104,105,106,121,123,169,170,171,179,180,181,182, | |
442 186,125,0,15,24,106, | |
443 129,128,0,122,124, | |
444 186,36,16,0,15,171,179,180,181,182, | |
445 186,103,102,36,16,0,15,89,91,101,171,179,180,181,182, | |
446 111,110,109,108,107,103,102,0,99,101, | |
447 120,119,118,117,116,115,114,113,112,111,110,109,108,107,103,102,0,99,101, | |
448 104, | |
449 111,110,109,108,107,103,102,0,99,100,101, | |
450 120,119,118,117,116,115,114,113,112,111,110,109,108,107,103,102,0,99,100, | |
451 101,104, | |
452 20,16,0,174,185, | |
453 84,29,0, | |
454 84,29,0, | |
455 111,110,109,108,107,103,102,84,0,99,101, | |
456 111,110,109,108,107,103,102,84,0,99,100,101, | |
457 186,137,129,128,125,120,119,118,117,116,115,114,113,112,111,110,109,108,107, | |
458 103,102,0,82,83,85,86,87,88,91,92,94,95,96,97,98,99,101,104,105,106,121, | |
459 123,150,157, | |
460 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
461 102,36,16,0,15,89,99,101,104,105,106,121,123,171,179,180,181,182, | |
462 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
463 102,36,16,0,15,89,99,100,101,104,105,106,121,123,171,179,180,181,182, | |
464 186,36,16,0,15,89,93,106,145,171,172,173,175,176,177,179,180,181,182, | |
465 186,36,16,0,15,89,93,106,145,171,172,173,175,176,177,179,180,181,182, | |
466 125,84,0,150, | |
467 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
468 102,36,16,5,0,15,82,83,85,86,87,88,89,91,92,94,95,96,97,98,99,101,104, | |
469 105,106,121,123,169,170,171,179,180,181,182, | |
470 5,0, | |
471 125,0, | |
472 186,0,15,24,106,138, | |
473 186,125,0,15,24,106, | |
474 18,0, | |
475 20,18,16,0,174,185, | |
476 18,0, | |
477 186,103,102,36,16,0,15,89,101,171,179,180,181,182, | |
478 186,40,39,38,37,36,35,33,27,26,21,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31, | |
479 32,41,44,45,48,53,56,57,59,61,63,65,80, | |
480 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
481 102,18,0,15,83,85,88,91,92,94,95,96,97,98,99,101,104,105,106,121,123, | |
482 140,141,143,146, | |
483 20,0, | |
484 186,36,16,0,15,89,179,180,181, | |
485 186,36,16,0,15,89,93,106,145,172,173,175,176,177,179,180,181, | |
486 186,36,16,0,15,89,93,106,145,172,173,175,176,177,179,180,181, | |
487 186,36,16,0,15,89,93,106,145,172,173,175,176,177,179,180,181, | |
488 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
489 102,36,16,0,15,89,99,101,104,105,106,121,123,179,180,181, | |
490 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
491 102,36,16,0,15,89,99,100,101,104,105,106,121,123,179,180,181, | |
492 186,137,129,128,125,120,119,118,117,116,115,114,113,112,111,110,109,108,107, | |
493 103,102,0,82,83,85,86,87,88,91,92,94,95,96,97,98,99,101,104,105,106,121, | |
494 123,150, | |
495 186,168,167,166,165,164,163,162,161,159,156,155,137,129,128,127,125,120,119, | |
496 118,117,116,115,114,113,112,111,110,109,108,107,103,102,84,40,39,38,37, | |
497 36,35,33,27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41, | |
498 44,45,48,53,56,57,59,61,63,65,81,82,83,85,86,87,88,91,92,94,95,96,97,98, | |
499 99,101,104,105,106,121,123,149,150,151,152,153,154,157,158, | |
500 186,137,129,128,125,120,119,118,117,116,115,114,113,112,111,110,109,108,107, | |
501 103,102,0,82,83,85,86,87,88,91,92,94,95,96,97,98,99,101,104,105,106,121, | |
502 123,150,157, | |
503 125,84,69,29,0,90,150, | |
504 186,137,129,128,125,120,119,118,117,116,115,114,113,112,111,110,109,108,107, | |
505 103,102,0,82,83,85,86,87,88,91,92,94,95,96,97,98,99,101,104,105,106,121, | |
506 123,150,157, | |
507 125,84,69,29,0,90,150, | |
508 186,137,129,128,125,120,119,118,117,116,115,114,113,112,111,110,109,108,107, | |
509 103,102,0,82,83,85,86,87,88,91,92,94,95,96,97,98,99,101,104,105,106,121, | |
510 123,150,157, | |
511 186,36,16,0,15,106,171,173,175,176,177,178,179,180,181,182, | |
512 20,16,0,174,185, | |
513 186,103,102,36,16,0,15,89,91,101,106,145,171,173,175,176,177,179,180,181, | |
514 182, | |
515 125,0,150, | |
516 84,69,29,0,90, | |
517 186,137,129,128,125,120,119,118,117,116,115,114,113,112,111,110,109,108,107, | |
518 103,102,0,82,83,85,86,87,88,91,92,94,95,96,97,98,99,101,104,105,106,121, | |
519 123,150,157, | |
520 125,0,150, | |
521 84,69,29,0,90, | |
522 186,0,15,24,106,138, | |
523 127,69,29,0,139, | |
524 127,29,0, | |
525 125,0, | |
526 186,137,129,128,120,119,118,117,116,115,114,113,112,103,102,0,85,91,94,97, | |
527 98,101,104,105,106,121,123,126,130,131,132, | |
528 20,16,0,174,185, | |
529 20,16,0,174,185, | |
530 13,0, | |
531 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31, | |
532 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
533 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31, | |
534 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31, | |
535 27,26,25,23,20,16,0, | |
536 186,137,129,128,120,119,118,117,116,115,114,113,112,103,102,40,39,38,37,36, | |
537 35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28,30,31,32,34,41,44, | |
538 45,48,53,56,57,59,61,63,65,85,91,94,97,98,101,104,105,106,121,123, | |
539 43,42,36,0, | |
540 38,37,0, | |
541 47,46,0, | |
542 52,51,50,49,0, | |
543 55,54,0, | |
544 35,0, | |
545 58,0, | |
546 60,0, | |
547 62,0, | |
548 66,64,0, | |
549 21,0, | |
550 111,110,109,108,107,103,102,0,99,101, | |
551 111,110,109,108,107,103,102,0,99,100,101, | |
552 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
553 102,36,29,20,18,16,0,15,89,99,101,104,105,106,121,123,144,174,179,180, | |
554 181,183,184,185, | |
555 186,36,20,16,0,15,89,106,144,145,174,175,176,179,180,181,183,184,185, | |
556 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
557 102,36,29,20,18,16,0,15,89,99,100,101,104,105,106,121,123,144,174,179, | |
558 180,181,183,184,185, | |
559 186,36,20,16,0,15,89,106,144,145,174,175,176,179,180,181,183,184,185, | |
560 29,0, | |
561 18,0, | |
562 29,18,0, | |
563 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
564 41,44,45,48,53,56,57,59,61,63,65,80, | |
565 186,36,16,0,15,179,180,181, | |
566 186,103,102,36,16,0,15,89,91,101,179,180,181, | |
567 20,16,0,174,185, | |
568 84,69,29,0,90, | |
569 186,36,16,0,15,106,173,175,176,177,178,179,180,181, | |
570 186,103,102,36,16,0,15,89,91,101,106,145,173,175,176,177,179,180,181, | |
571 84,69,29,0,90, | |
572 84,69,29,0,90, | |
573 84,69,29,0,90, | |
574 79,78,77,76,75,74,73,72,71,70,69,0,68, | |
575 29,0, | |
576 84,79,78,77,76,75,74,73,72,71,70,69,67,66,64,62,60,58,55,54,52,51,50,49,47, | |
577 46,43,42,38,37,36,35,29,27,26,25,23,20,16,0, | |
578 186,84,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28, | |
579 30,31,32,41,44,45,48,53,56,57,59,61,63,65,81, | |
580 84,0, | |
581 84,0, | |
582 186,0,15,24,106, | |
583 16,0, | |
584 186,168,167,166,165,164,163,162,161,159,156,155,125,84,40,39,38,37,36,35,33, | |
585 27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41,44,45,48, | |
586 53,56,57,59,61,63,65,81,106,149,150,151,152,153,154, | |
587 16,0, | |
588 16,0, | |
589 16,0, | |
590 84,0, | |
591 67,0, | |
592 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
593 41,44,45,48,53,56,57,59,61,63,65,80, | |
594 67,0, | |
595 186,168,167,166,165,164,163,162,161,159,156,155,127,125,84,40,39,38,37,36, | |
596 35,33,27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41,44, | |
597 45,48,53,56,57,59,61,63,65,81,106,149,150,151,152,153,154, | |
598 186,111,110,109,108,107,103,102,67,36,16,0, | |
599 186,168,167,166,165,164,163,162,161,159,156,155,137,129,128,127,125,120,119, | |
600 118,117,116,115,114,113,112,111,110,109,108,107,103,102,84,40,39,38,37, | |
601 36,35,33,27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41, | |
602 44,45,48,53,56,57,59,61,63,65,81,82,83,85,86,87,88,91,92,94,95,96,97,98, | |
603 99,101,104,105,106,121,123,149,150,151,152,153,154,158, | |
604 186,137,129,128,125,120,119,118,117,116,115,114,113,112,111,110,109,108,107, | |
605 103,102,0,82,83,85,86,87,88,91,92,94,95,96,97,98,99,101,104,105,106,121, | |
606 123,150, | |
607 186,125,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,28,30, | |
608 31,32,41,44,45,48,53,56,57,59,61,63,65,147, | |
609 186,137,129,128,125,120,119,118,117,116,115,114,113,112,111,110,109,108,107, | |
610 103,102,0,82,83,85,86,87,88,91,92,94,95,96,97,98,99,101,104,105,106,121, | |
611 123,150, | |
612 186,137,129,128,125,120,119,118,117,116,115,114,113,112,111,110,109,108,107, | |
613 103,102,0,82,83,85,86,87,88,91,92,94,95,96,97,98,99,101,104,105,106,121, | |
614 123,150, | |
615 20,16,0,174,185, | |
616 18,0, | |
617 186,36,16,0,15,106,171,173,175,176,177,178,179,180,181,182, | |
618 18,0, | |
619 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
620 102,18,0,83,85,88,91,92,94,95,96,97,98,99,101,104,105,106,121,123,140, | |
621 141,143, | |
622 186,103,102,36,16,0,15,89,101,106,145,171,173,175,176,177,179,180,181,182, | |
623 186,36,16,0,15,106,171,173,175,176,177,178,179,180,181,182, | |
624 186,137,129,128,125,120,119,118,117,116,115,114,113,112,111,110,109,108,107, | |
625 103,102,0,82,83,85,86,87,88,91,92,94,95,96,97,98,99,101,104,105,106,121, | |
626 123,150, | |
627 127,29,0, | |
628 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
629 41,44,45,48,53,56,57,59,61,63,65,80, | |
630 186,0,15,24,106, | |
631 186,137,129,128,120,119,118,117,116,115,114,113,112,103,102,0,85,91,94,97, | |
632 98,101,104,105,106,121,123,126,130,131,132, | |
633 103,102,0,101, | |
634 103,102,0,101, | |
635 120,119,118,117,116,115,114,113,112,103,102,0,101,104, | |
636 186,137,129,128,120,119,118,117,116,115,114,113,112,103,102,67,36,16,0,15, | |
637 89,101,104,105,106,121,123,133,136,179,180,181, | |
638 186,67,36,16,0,15,89,93,106,134,136,145,172,173,175,176,177,179,180,181, | |
639 84,29,0, | |
640 84,29,0, | |
641 186,137,129,128,127,120,119,118,117,116,115,114,113,112,103,102,0,85,91,94, | |
642 97,98,101,104,105,106,121,123,130,131,132, | |
643 186,137,129,128,120,119,118,117,116,115,114,113,112,103,102,40,39,38,37,36, | |
644 35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28,30,31,32,34,41,44, | |
645 45,48,53,56,57,59,61,63,65,85,91,94,97,98,101,104,105,106,121,123, | |
646 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28,30, | |
647 31,32,41,44,45,48,53,56,57,59,61,63,65, | |
648 186,0,15,24,106, | |
649 186,0,15,24,106, | |
650 186,40,39,38,37,36,35,33,27,26,18,16,13,11,10,9,8,7,0,6,12,14,15,19,22,28, | |
651 30,31,32,41,44,45,48,53,56,57,59,61,63,65, | |
652 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28,30, | |
653 31,32,41,44,45,48,53,56,57,59,61,63,65, | |
654 186,137,129,128,120,119,118,117,116,115,114,113,112,103,102,36,20,18,16,0, | |
655 101,104,105,106,121,123,144,174,183,184,185, | |
656 36,20,16,0,144,174,183,184,185, | |
657 18,0, | |
658 29,18,0, | |
659 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
660 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
661 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
662 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
663 41, | |
664 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
665 41, | |
666 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
667 41,44, | |
668 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
669 41,44, | |
670 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
671 41,44,45, | |
672 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
673 41,44,45, | |
674 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
675 41,44,45, | |
676 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
677 41,44,45, | |
678 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
679 41,44,45,48, | |
680 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
681 41,44,45,48, | |
682 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
683 41,44,45,48,53, | |
684 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
685 41,44,45,48,53,56, | |
686 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
687 41,44,45,48,53,56,57, | |
688 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
689 41,44,45,48,53,56,57,59, | |
690 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28,30, | |
691 31,32,41,44,45,48,53,56,57,59,61,63,65, | |
692 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
693 41,44,45,48,53,56,57,59,61, | |
694 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
695 102,36,20,18,16,0,15,83,85,88,91,92,94,95,96,97,98,99,101,104,105,106, | |
696 121,123,140,141,143,174,179,180,181,183,184,185, | |
697 186,103,102,36,20,16,0,15,89,91,101,144,174,179,180,181,183,184,185, | |
698 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
699 102,36,20,18,16,0,15,83,85,88,91,92,94,95,96,97,98,99,101,104,105,106, | |
700 121,123,140,141,143,174,175,176,179,180,181,183,184,185, | |
701 186,103,102,36,20,16,0,15,89,91,101,106,144,145,174,175,176,179,180,181,183, | |
702 184,185, | |
703 186,142,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107, | |
704 103,102,0,83,85,88,91,92,94,95,96,97,98,99,101,104,105,106,121,123,143, | |
705 186,0,15, | |
706 21,0, | |
707 20,18,16,0,174,185, | |
708 186,103,102,36,16,0,15,89,101,179,180,181, | |
709 186,36,16,0,15,106,173,175,176,177,178,179,180,181, | |
710 186,103,102,36,16,0,15,89,101,106,145,173,175,176,177,179,180,181, | |
711 186,36,16,0,15,106,173,175,176,177,178,179,180,181, | |
712 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,28,30,31, | |
713 32,41,44,45,48,53,56,57,59,61,63,65, | |
714 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,28,30,31, | |
715 32,41,44,45,48,53,56,57,59,61,63,65, | |
716 84,0, | |
717 84,0, | |
718 186,84,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28, | |
719 30,31,32,41,44,45,48,53,56,57,59,61,63,65,81, | |
720 162,0, | |
721 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28,30, | |
722 31,32,41,44,45,48,53,56,57,59,61,63,65, | |
723 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28,30, | |
724 31,32,41,44,45,48,53,56,57,59,61,63,65, | |
725 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28,30, | |
726 31,32,41,44,45,48,53,56,57,59,61,63,65, | |
727 186,168,167,166,165,164,163,162,161,159,156,155,125,84,40,39,38,37,36,35,33, | |
728 27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41,44,45,48, | |
729 53,56,57,59,61,63,65,81,106,149,150,151,152,153,154, | |
730 67,0, | |
731 186,168,167,166,165,164,163,162,161,159,156,155,125,84,40,39,38,37,36,35,33, | |
732 27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41,44,45,48, | |
733 53,56,57,59,61,63,65,81,106,149,150,151,152,153,154, | |
734 186,168,167,166,165,164,163,162,161,159,156,155,127,125,84,40,39,38,37,36, | |
735 35,33,27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41,44, | |
736 45,48,53,56,57,59,61,63,65,81,106,149,150,151,152,153,154, | |
737 186,125,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,28,30, | |
738 31,32,41,44,45,48,53,56,57,59,61,63,65,147,148, | |
739 18,0, | |
740 20,16,0,174,185, | |
741 20,18,16,0,174,185, | |
742 20,16,0,174,185, | |
743 186,36,16,0,15,106,171,173,175,176,177,178,179,180,181,182, | |
744 20,18,16,0,174,185, | |
745 127,69,29,0,139, | |
746 186,137,129,128,127,120,119,118,117,116,115,114,113,112,103,102,0,85,91,94, | |
747 97,98,101,104,105,106,121,123,130,131,132, | |
748 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
749 41,44,45,48,53,56,57,59,61,63,65,80, | |
750 84,67,29,0,135,136, | |
751 84,67,29,0,135,136, | |
752 186,67,36,16,0,15,89,133,136,179,180,181, | |
753 186,67,36,16,0,15,89,93,106,134,136,145,172,173,175,176,177,179,180,181, | |
754 18,0, | |
755 29,18,0, | |
756 29,21,0, | |
757 186,137,129,128,120,119,118,117,116,115,114,113,112,111,110,109,108,107,103, | |
758 102,36,20,18,16,0,83,85,88,91,92,94,95,96,97,98,99,101,104,105,106,121, | |
759 123,140,141,143,174,183,184,185, | |
760 103,102,36,20,16,0,91,101,144,174,183,184,185, | |
761 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
762 43,42,36,0, | |
763 43,42,36,0, | |
764 38,37,0, | |
765 38,37,0, | |
766 47,46,0, | |
767 47,46,0, | |
768 47,46,0, | |
769 47,46,0, | |
770 52,51,50,49,0, | |
771 52,51,50,49,0, | |
772 55,54,0, | |
773 35,0, | |
774 58,0, | |
775 60,0, | |
776 67,29,0, | |
777 62,0, | |
778 18,0, | |
779 18,0, | |
780 18,0, | |
781 186,103,102,36,20,16,0,15,89,101,144,174,179,180,181,183,184,185, | |
782 186,103,102,36,20,16,0,15,89,101,106,144,145,174,175,176,179,180,181,183, | |
783 184,185, | |
784 186,36,16,0,15,106,173,175,176,177,178,179,180,181, | |
785 84,0, | |
786 16,0, | |
787 29,18,0, | |
788 29,18,0, | |
789 29,18,0, | |
790 186,168,167,166,165,164,163,162,161,159,156,155,125,84,40,39,38,37,36,35,33, | |
791 27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41,44,45,48, | |
792 53,56,57,59,61,63,65,81,106,149,150,151,152,153,154, | |
793 127,29,0, | |
794 20,18,16,0,174,185, | |
795 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,28,30,31, | |
796 32,41,44,45,48,53,56,57,59,61,63,65, | |
797 103,102,36,20,16,0,101,144,174,183,184,185, | |
798 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,30,31,32, | |
799 41,44,45,48,53,56,57,59,61,63,65, | |
800 20,16,0,174,185, | |
801 186,84,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28, | |
802 30,31,32,41,44,45,48,53,56,57,59,61,63,65,81, | |
803 186,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28,30, | |
804 31,32,41,44,45,48,53,56,57,59,61,63,65, | |
805 186,168,167,166,165,164,163,162,161,159,156,155,125,84,40,39,38,37,36,35,33, | |
806 27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41,44,45,48, | |
807 53,56,57,59,61,63,65,81,106,149,150,151,152,153,154, | |
808 186,168,167,166,165,164,163,162,161,159,156,155,125,84,40,39,38,37,36,35,33, | |
809 27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41,44,45,48, | |
810 53,56,57,59,61,63,65,81,106,149,150,151,152,153,154, | |
811 186,168,167,166,165,164,163,162,161,159,156,155,125,84,40,39,38,37,36,35,33, | |
812 27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41,44,45,48, | |
813 53,56,57,59,61,63,65,81,106,149,150,151,152,153,154, | |
814 186,127,125,40,39,38,37,36,35,33,27,26,16,13,11,10,9,8,7,0,6,12,14,15,19,28, | |
815 30,31,32,41,44,45,48,53,56,57,59,61,63,65,147, | |
816 84,0, | |
817 29,18,0, | |
818 160,0, | |
819 186,40,39,38,37,36,35,33,27,26,18,16,13,11,10,9,8,7,0,6,12,14,15,17,19,28, | |
820 30,31,32,41,44,45,48,53,56,57,59,61,63,65,81, | |
821 84,0, | |
822 186,168,167,166,165,164,163,162,161,159,156,155,125,84,40,39,38,37,36,35,33, | |
823 27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41,44,45,48, | |
824 53,56,57,59,61,63,65,81,106,149,150,151,152,153,154, | |
825 18,0, | |
826 186,168,167,166,165,164,163,162,161,159,156,155,125,84,40,39,38,37,36,35,33, | |
827 27,26,16,13,11,10,9,8,7,0,2,6,12,14,15,17,19,24,28,30,31,32,41,44,45,48, | |
828 53,56,57,59,61,63,65,81,106,149,150,151,152,153,154, | |
829 0 | |
830 }; | |
831 | |
832 | |
833 static unsigned const char far ag_astt[5043] = { | |
834 2,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,8,7,0,1,1,2,1,1,1,1,1,1,1,1,1, | |
835 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,7,1,1,1,1,1,7,2,1,2,1,1,7,2,1,1, | |
836 1,1,1,2,1,1,1,1,7,2,3,1,1,3,3,1,3,3,3,3,3,3,2,9,9,5,3,3,9,9,9,9,9,9,9,9,9, | |
837 3,3,3,3,2,9,9,5,3,3,3,9,9,9,9,2,9,9,5,3,3,3,9,9,9,9,9,9,9,9,9,9,9,9,9,2,9, | |
838 9,5,3,3,3,3,1,1,5,3,1,3,1,7,3,1,7,3,3,3,3,2,9,9,3,5,3,3,9,9,9,9,2,9,9,3,5, | |
839 3,3,3,2,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1, | |
840 1,1,1,1,1,1,1,1,3,1,2,1,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,2,9,9,1,1,7,2,1,3,3, | |
841 3,3,3,1,3,1,1,1,1,1,2,1,4,4,3,3,3,3,3,3,3,3,3,9,9,9,9,2,9,9,1,1,7,2,1,3,3, | |
842 3,3,3,3,1,3,1,1,1,1,1,2,1,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,7,2,1,1, | |
843 1,1,1,1,1,1,1,1,1,1,1,1,1,3,7,3,2,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1, | |
844 1,5,7,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,1,1,1,1,1,3,7,1,5,2, | |
845 7,1,1,1,1,2,1,7,1,1,1,1,7,1,3,1,7,3,1,1,7,2,9,9,1,1,7,2,3,3,3,3,1,3,3,2,1, | |
846 1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
847 2,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,3,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
848 1,1,1,1,1,1,1,1,5,2,1,1,7,2,1,1,1,1,2,1,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1, | |
849 1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,4,4,3, | |
850 3,3,3,3,3,3,3,3,3,3,3,3,2,9,9,1,1,7,2,1,3,3,3,3,3,1,3,1,1,1,2,1,4,4,3,3,3, | |
851 3,3,3,3,3,3,9,9,9,9,2,9,9,1,1,7,2,1,3,3,3,3,3,3,1,3,1,1,1,2,1,4,4,1,1,1,1, | |
852 1,1,1,1,1,1,1,1,1,1,2,1,1,7,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,1, | |
853 1,1,1,1,1,1,1,1,1,1,1,4,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,8,1,1,1,1,1, | |
854 1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
855 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,1,4,4,1,1,1,1,1,1, | |
856 1,1,1,1,1,1,1,1,2,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,5,1, | |
857 5,7,3,3,2,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,7,1,1,1,1,1,1,1,1,1,1,1, | |
858 1,1,1,1,1,1,1,1,1,3,1,1,5,1,5,7,3,3,2,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2, | |
859 1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,2,1,1,7,2,1,1,1,1,1,1,1, | |
860 1,1,1,1,1,1,5,3,1,2,1,1,1,1,7,2,3,1,1,1,3,3,3,3,3,3,3,1,3,3,1,5,3,5,1,5,7, | |
861 3,2,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
862 1,1,1,1,1,1,3,1,1,5,3,5,1,5,7,3,2,7,1,1,1,1,5,1,5,7,3,3,1,7,1,5,2,1,4,4,1, | |
863 1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,3,1,1,1,5,3,1,9, | |
864 5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,3,1,2,1,1,1,1,1,1,1,1,1,1, | |
865 1,1,1,1,1,1,7,1,1,1,1,1,3,1,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1, | |
866 1,3,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,3,1,9,9,1,1,1,1,5,2,1, | |
867 4,4,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,7,1,1,1,1,1,1,1, | |
868 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,5,1,1,5,1,1,5,1, | |
869 1,1,1,5,1,1,5,1,5,1,5,1,5,1,5,1,1,5,3,7,3,3,3,3,2,9,9,5,3,3,9,9,9,9,2,9,9, | |
870 5,3,3,3,2,1,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,2,9,9,1,5,1,5,1,7,2,3,3,3,3,3,3, | |
871 1,3,3,3,3,1,3,3,3,1,2,1,1,1,5,2,3,1,3,3,3,3,3,3,1,3,3,3,1,2,1,4,4,3,3,3,3, | |
872 3,3,3,3,3,9,9,9,9,2,9,9,1,5,1,5,1,7,2,3,3,3,3,3,3,3,1,3,3,3,3,1,3,3,3,1,2, | |
873 1,1,1,5,2,3,1,3,3,3,3,3,3,1,3,3,3,1,1,5,3,7,1,3,7,2,1,1,1,1,1,1,1,1,1,1,1, | |
874 1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,7,2,1,1,1,2,1,1, | |
875 1,1,7,2,3,1,1,3,1,3,1,1,5,3,1,5,1,5,7,3,2,1,1,7,2,1,1,1,1,1,1,1,1,1,2,1,1, | |
876 1,1,7,2,3,1,1,1,3,3,3,3,3,3,1,3,5,1,5,7,3,5,1,5,7,3,5,1,5,7,3,1,1,1,1,1,1, | |
877 1,1,1,1,1,5,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, | |
878 5,5,5,5,5,5,5,5,5,5,5,7,2,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1, | |
879 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,7,3,7,2,7,1,1,1,1,7,2,1,1,1,1,1,1,1,1,1, | |
880 1,1,1,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
881 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,7,1,7,3,7,1,7,2,1,1,1,1,1,1,1,1,1,1,1, | |
882 1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,1,1,1,1,1,1, | |
883 1,1,1,3,1,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,3,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
884 1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,5,5,7,2,1,1,1,1,1,1,1, | |
885 1,1,1,1,1,4,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,8,1,1,1,1,1,1,1,1,1,1,1, | |
886 1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1, | |
887 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
888 1,2,1,1,7,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,1,1,1,1,1,1,1,1,1,1, | |
889 1,1,1,1,1,1,1,7,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,2,1,4,4,1,1,1,1, | |
890 1,1,1,1,1,1,1,1,1,1,2,1,1,7,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,1, | |
891 4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,7,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
892 1,1,1,3,1,1,7,1,1,1,7,2,1,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,4,4,1,1,1,1, | |
893 1,1,1,1,1,1,1,1,1,2,1,1,3,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,9,9, | |
894 1,1,7,2,3,3,1,3,3,3,3,3,3,3,1,3,3,2,1,1,7,2,1,1,1,1,1,1,1,1,1,1,1,2,1,4,4, | |
895 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,7,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
896 1,3,3,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
897 1,1,1,1,3,3,2,7,1,1,1,2,1,4,4,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1, | |
898 1,1,1,1,1,9,9,5,3,9,9,5,3,9,9,9,9,9,9,9,9,9,9,9,5,3,3,2,1,4,4,3,3,3,3,3,3, | |
899 3,3,3,9,9,1,1,1,7,2,1,3,3,3,3,1,3,3,3,1,1,1,2,1,1,1,7,2,1,1,1,3,3,1,1,1,1, | |
900 1,1,1,1,1,3,1,7,3,1,7,2,1,4,4,3,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1, | |
901 1,1,3,1,1,2,1,4,4,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,7, | |
902 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1, | |
903 1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,7, | |
904 3,3,3,2,7,3,3,3,2,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1, | |
905 1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1, | |
906 1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,4,4,3,3,3,3,3,3,3,3,3,9,9,1,1,5,1,7,3,3,3,3, | |
907 1,3,3,3,3,3,1,1,1,1,5,3,3,3,3,1,1,7,1,3,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
908 1,7,1,1,1,1,1,3,1,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,3,1,3,2, | |
909 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,3,1,3,2,1,1,1,1,1,1,1,1,1,1,1, | |
910 1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1, | |
911 1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,2,1,1,1, | |
912 1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1, | |
913 1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1, | |
914 1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1, | |
915 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1, | |
916 1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
917 1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1, | |
918 1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1, | |
919 1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
920 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1, | |
921 1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2, | |
922 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,4, | |
923 4,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,3,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
924 1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,5,2,3,1,1,3,3,3,1,3,3,3,1,2,1,4,4,1, | |
925 1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,3,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
926 1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,5,2,3,1,1,1,3,3,3,3,3,3,1,3,3,3,1,2, | |
927 3,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
928 1,3,2,7,3,3,7,1,3,1,7,3,1,2,9,9,1,1,7,2,3,3,3,1,3,2,1,1,7,2,1,1,1,1,1,1,1, | |
929 1,1,2,9,9,1,1,7,2,3,3,1,3,3,3,3,3,3,1,3,2,1,1,7,2,1,1,1,1,1,1,1,1,1,2,1,1, | |
930 1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,1, | |
931 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3, | |
932 7,3,7,2,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
933 1,1,1,1,1,1,1,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1, | |
934 1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1, | |
935 1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1, | |
936 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,8,1,1,1,1,1,1,1,1, | |
937 1,1,1,1,1,1,1,1,7,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3, | |
938 3,3,3,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,3, | |
939 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,2,1,1,1,1,1,1, | |
940 1,1,1,1,1,3,1,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,3,1,1,1,1,1,1,1,1,1,1,1, | |
941 1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
942 7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,7,1,1,5,3,1,1,3,1,7,1,1,1, | |
943 1,5,3,1,2,1,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,5,1,5,7,3,2,1,4,4,3,1, | |
944 1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,3,1,1,2,1,1,1,1,1,1,1,1,1,1,1, | |
945 1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,5,1,5,7,3,3,5,1,5,7,3, | |
946 3,2,1,1,1,7,2,1,3,3,1,1,1,2,1,1,1,7,2,1,1,1,3,3,1,1,1,1,1,1,1,1,1,3,7,1,3, | |
947 7,1,3,7,2,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,3,1,7,1,1,1,1,1,1,1,1, | |
948 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,3,3,3,3,1,2,1,1,1,1,1,1,1, | |
949 1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,3,1,3,1,1,1,5,1,1,1,5,1,1,5,1,1,5,1,1,5,1,1, | |
950 5,1,1,5,1,1,5,1,1,1,1,5,1,1,1,1,5,1,1,5,1,5,1,5,1,5,1,1,7,1,5,3,7,3,7,1,7, | |
951 2,9,9,1,1,1,5,2,3,3,3,3,3,1,3,3,3,1,2,9,9,1,1,1,5,2,3,3,1,3,3,3,3,3,3,1,3, | |
952 3,3,1,2,1,1,7,2,1,1,1,1,1,1,1,1,1,1,7,1,7,1,1,7,1,1,7,1,1,7,2,1,1,1,1,1,1, | |
953 1,1,1,1,1,1,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,3,1,1,1,1,1,1,1,1,1,1,1,1, | |
954 1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,1,7,1,3,1,7,1,1,2,1,1,1,1,1,1,1,1,1, | |
955 1,1,1,1,1,1,1,7,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,9,9,1,1,1,5,3,3,3, | |
956 3,3,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
957 1,1,3,1,1,5,3,1,2,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1, | |
958 1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1, | |
959 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,8,1,1,1,1,1,1,1,1,1, | |
960 1,1,1,1,1,1,1,7,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3, | |
961 3,3,2,1,1,1,1,1,1,1,1,1,1,1,1,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,3,1,1,1, | |
962 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,2,1,1,1,1,1,1,1,1,1, | |
963 1,1,1,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
964 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1, | |
965 1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,1,7,1,1,7,1,5,2,1,1,1,1,1,1,1,1,1,8, | |
966 1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,7,2,1,1,1,1, | |
967 1,1,1,1,1,1,1,1,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,3,1,1,1,1,1,1,1,1,1,1, | |
968 1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,1,7,2,1,1,1,1,1,1,1,1,1,1,1,1,8,1, | |
969 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
970 1,1,1,1,3,3,3,3,3,3,11 | |
971 }; | |
972 | |
973 | |
974 static const unsigned short far ag_pstt[] = { | |
975 312,1,148,148,6,6,6,6,6,6,6,6,6,16,16,16,16,132,15,15,4,3,21,0,0,20,21,287, | |
976 20,13,12,11,10,16,19,15,18,17,8,7,6,5,16,15,6,12,5,2,12,20,20,14,19,9, | |
977 19,14, | |
978 312,23,1,22,22,22, | |
979 24,24,2,146,24, | |
980 312,4,3,3,287,25,27,26,27,25, | |
981 312,28,28,4,3,4,287,282,28,28,290,282,9,282,290, | |
982 126,126,126,126,132,131,131,102,126,131, | |
983 119,119,119,119,119,119,119,119,119,112,112,112,112,132,118,118,100,112,118, | |
984 119, | |
985 128,128,128,128,132,128,128,99,128,128,128, | |
986 115,115,115,115,115,115,115,115,115,114,114,114,114,132,114,114,97,114,114, | |
987 114,115, | |
988 29,30,280,284,31, | |
989 90,32,10, | |
990 89,33,11, | |
991 120,120,120,120,132,125,125,88,101,120,125, | |
992 122,122,122,122,132,122,122,87,98,122,122,122, | |
993 312,1,148,148,39,6,6,6,6,6,6,6,6,6,37,37,37,37,132,36,36,14,38,13,12,11,10, | |
994 37,36,35,34,8,7,6,5,37,36,6,12,5,2,12,247,38, | |
995 312,1,148,148,117,117,117,117,117,117,117,117,117,104,104,104,104,132,107, | |
996 107,4,3,15,287,41,104,107,117,124,130,2,124,40,41,9,41,40, | |
997 312,1,148,148,113,113,113,113,113,113,113,113,113,105,105,105,105,132,105, | |
998 105,4,3,16,287,43,105,105,105,113,121,127,2,121,42,43,9,43,42, | |
999 312,47,45,17,287,48,49,46,49,44,49,49,49,49,49,48,9,48,44, | |
1000 312,47,45,18,287,51,52,46,52,50,52,52,52,52,52,51,9,51,50, | |
1001 39,241,19,242, | |
1002 312,1,148,148,6,6,6,6,6,6,6,6,6,16,16,16,16,132,15,15,4,3,2,20,287,238,13, | |
1003 12,11,10,16,19,15,18,17,8,7,6,5,16,15,6,12,5,2,12,238,238,14,19,9,19,14, | |
1004 3,21, | |
1005 53,171, | |
1006 312,23,54,54,54,55, | |
1007 312,57,24,56,56,56, | |
1008 58,25, | |
1009 29,288,30,26,284,31, | |
1010 59,27, | |
1011 312,107,107,4,3,28,287,283,107,291,283,9,283,291, | |
1012 312,62,62,62,62,62,62,61,63,64,301,66,60,65,65,65,65,65,29,65,60,65,65,65, | |
1013 67,62,67,67,68,69,70,71,72,73,74,75,76,77,77, | |
1014 312,1,148,148,6,6,6,6,6,6,6,6,6,82,82,82,82,132,80,80,299,30,86,79,78,82,80, | |
1015 83,81,8,7,6,5,82,80,6,78,5,2,78,85,84,84,86, | |
1016 87,298, | |
1017 312,89,88,32,287,91,91,90,91, | |
1018 312,93,92,33,287,94,94,46,94,94,94,94,94,94,94,90,94, | |
1019 312,93,92,34,287,49,49,46,49,49,49,49,49,49,49,90,49, | |
1020 312,93,92,35,287,52,52,46,52,52,52,52,52,52,52,90,52, | |
1021 312,1,148,148,117,117,117,117,117,117,117,117,117,104,104,104,104,132,107, | |
1022 107,89,88,36,287,95,104,107,117,124,130,2,124,95,90,95, | |
1023 312,1,148,148,113,113,113,113,113,113,113,113,113,105,105,105,105,132,105, | |
1024 105,89,88,37,287,96,105,105,105,113,121,127,2,121,96,90,96, | |
1025 312,1,148,148,39,6,6,6,6,6,6,6,6,6,37,37,37,37,132,36,36,38,223,13,12,11,10, | |
1026 37,36,35,34,8,7,6,5,37,36,6,12,5,2,12,252, | |
1027 312,100,101,102,103,104,105,106,107,108,110,111,1,148,148,218,39,6,6,6,6,6, | |
1028 6,6,6,6,37,37,37,37,132,36,36,109,62,62,62,62,62,62,61,63,64,66,60,65, | |
1029 65,65,65,65,39,113,65,60,65,99,98,65,112,98,97,62,67,67,68,69,70,71,72, | |
1030 73,74,75,76,98,109,115,13,12,11,10,37,36,35,34,8,7,6,5,37,36,6,12,114,2, | |
1031 12,113,113,113,113,113,113,115,113, | |
1032 312,1,148,148,39,6,6,6,6,6,6,6,6,6,37,37,37,37,132,36,36,40,116,13,12,11,10, | |
1033 37,36,35,34,8,7,6,5,37,36,6,12,5,2,12,251,116, | |
1034 39,202,117,202,41,92,246, | |
1035 312,1,148,148,39,6,6,6,6,6,6,6,6,6,37,37,37,37,132,36,36,42,118,13,12,11,10, | |
1036 37,36,35,34,8,7,6,5,37,36,6,12,5,2,12,250,118, | |
1037 39,202,117,202,43,91,245, | |
1038 312,1,148,148,39,6,6,6,6,6,6,6,6,6,37,37,37,37,132,36,36,44,119,13,12,11,10, | |
1039 37,36,35,34,8,7,6,5,37,36,6,12,5,2,12,249,119, | |
1040 312,47,122,45,287,120,25,121,123,123,121,120,27,26,27,25, | |
1041 29,124,261,262,31, | |
1042 312,125,125,47,126,47,287,282,125,125,46,265,290,272,265,265,272,282,9,282, | |
1043 290, | |
1044 39,258,244, | |
1045 202,117,202,49,95, | |
1046 312,1,148,148,39,6,6,6,6,6,6,6,6,6,37,37,37,37,132,36,36,50,127,13,12,11,10, | |
1047 37,36,35,34,8,7,6,5,37,36,6,12,5,2,12,248,127, | |
1048 39,258,243, | |
1049 202,117,202,52,94, | |
1050 312,53,54,54,54,128, | |
1051 174,129,174,54,172, | |
1052 169,130,55, | |
1053 131,151, | |
1054 312,1,148,148,134,134,134,134,134,134,134,134,134,135,135,57,133,135,136, | |
1055 134,132,135,134,133,132,2,133,139,139,138,137, | |
1056 29,124,293,294,31, | |
1057 29,124,285,286,31, | |
1058 10,13, | |
1059 312,62,62,62,62,62,62,61,63,64,140,60,65,65,65,65,65,61,65,60,65,65,65,29, | |
1060 62, | |
1061 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,62,65,60,65,65,65,28,62, | |
1062 28, | |
1063 312,62,62,62,62,62,62,61,63,64,141,60,65,65,65,65,65,63,65,60,65,65,65,27, | |
1064 62, | |
1065 312,62,62,62,62,62,62,61,63,64,141,60,65,65,65,65,65,64,65,60,65,65,65,26, | |
1066 62, | |
1067 22,21,142,143,145,144,25, | |
1068 312,1,148,148,134,134,134,134,134,134,134,134,134,146,146,62,62,62,62,62,62, | |
1069 61,63,64,66,60,65,65,65,65,65,66,65,60,65,65,149,65,149,97,62,67,148,67, | |
1070 68,69,70,71,72,73,74,75,76,149,133,146,147,134,132,146,134,133,132,2, | |
1071 133, | |
1072 150,151,152,43, | |
1073 153,154,46, | |
1074 155,156,49, | |
1075 157,158,159,160,54, | |
1076 161,162,57, | |
1077 163,59, | |
1078 164,61, | |
1079 165,63, | |
1080 166,65, | |
1081 167,168,67, | |
1082 302,77, | |
1083 120,120,120,120,132,125,125,101,120,125, | |
1084 122,122,122,122,132,122,122,98,122,122,122, | |
1085 312,1,148,148,117,117,117,117,117,117,117,117,117,104,104,104,104,132,107, | |
1086 107,170,191,29,191,169,80,287,193,104,107,117,124,130,2,124,192,192,193, | |
1087 90,193,192,192,31, | |
1088 312,172,29,171,187,287,189,46,188,190,188,190,190,189,90,189,188,188,31, | |
1089 312,1,148,148,113,113,113,113,113,113,113,113,113,105,105,105,105,132,105, | |
1090 105,170,184,29,184,169,82,287,186,105,105,105,113,121,127,2,121,185,185, | |
1091 186,90,186,185,185,31, | |
1092 312,172,29,171,180,287,182,46,181,183,181,183,183,182,90,182,181,181,31, | |
1093 173,176, | |
1094 300,85, | |
1095 174,292,86, | |
1096 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,87,65,60,65,65,65,67,62, | |
1097 67,67,68,69,70,71,72,73,74,75,76,175,175, | |
1098 312,89,88,88,287,27,176,27, | |
1099 312,177,177,89,88,89,287,282,177,177,282,90,282, | |
1100 29,124,280,284,31, | |
1101 202,117,202,91,93, | |
1102 312,93,178,92,287,120,121,123,123,121,120,27,176,27, | |
1103 312,179,179,93,180,93,287,282,179,179,46,265,272,265,265,272,282,90,282, | |
1104 202,117,202,94,96, | |
1105 202,117,202,95,92, | |
1106 202,117,202,96,91, | |
1107 181,181,181,181,181,181,181,181,181,181,181,37,181, | |
1108 182,86, | |
1109 11,11,11,11,11,11,11,11,11,11,11,11,196,11,11,11,11,11,11,11,11,11,11,11,11, | |
1110 11,11,11,11,11,11,11,11,11,11,11,11,11,11,99, | |
1111 312,183,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,100,65,60,65,65,98, | |
1112 65,98,97,62,67,67,68,69,70,71,72,73,74,75,76,98,183, | |
1113 235,101, | |
1114 234,102, | |
1115 312,103,184,184,184, | |
1116 185,104, | |
1117 312,100,101,102,103,104,105,106,107,108,110,111,39,109,62,62,62,62,62,62,61, | |
1118 63,64,66,60,65,65,65,65,65,105,186,65,60,65,99,98,65,112,98,97,62,67,67, | |
1119 68,69,70,71,72,73,74,75,76,98,109,112,186,186,186,186,186,186, | |
1120 187,106, | |
1121 188,107, | |
1122 189,108, | |
1123 226,109, | |
1124 190,110, | |
1125 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,111,65,60,65,65,65,67, | |
1126 62,67,67,68,69,70,71,72,73,74,75,76,191,191, | |
1127 192,112, | |
1128 312,100,101,102,103,104,105,106,107,108,110,111,220,39,109,62,62,62,62,62, | |
1129 62,61,63,64,66,60,65,65,65,65,65,113,225,65,60,65,99,98,65,112,98,97,62, | |
1130 67,67,68,69,70,71,72,73,74,75,76,98,109,112,225,225,225,225,225,225, | |
1131 129,129,129,129,129,129,129,129,197,129,129,114, | |
1132 312,100,101,102,103,104,105,106,107,108,110,111,1,148,148,219,39,6,6,6,6,6, | |
1133 6,6,6,6,37,37,37,37,132,36,36,109,62,62,62,62,62,62,61,63,64,66,60,65, | |
1134 65,65,65,65,115,193,65,60,65,99,98,65,112,98,97,62,67,67,68,69,70,71,72, | |
1135 73,74,75,76,98,109,223,13,12,11,10,37,36,35,34,8,7,6,5,37,36,6,12,114,2, | |
1136 12,193,193,193,193,193,193,193, | |
1137 312,1,148,148,39,6,6,6,6,6,6,6,6,6,37,37,37,37,132,36,36,116,223,13,12,11, | |
1138 10,37,36,35,34,8,7,6,5,37,36,6,12,5,2,12,256, | |
1139 312,194,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,117,65,60,65,65,65, | |
1140 203,97,62,67,67,68,69,70,71,72,73,74,75,76,203,203, | |
1141 312,1,148,148,39,6,6,6,6,6,6,6,6,6,37,37,37,37,132,36,36,118,223,13,12,11, | |
1142 10,37,36,35,34,8,7,6,5,37,36,6,12,5,2,12,255, | |
1143 312,1,148,148,39,6,6,6,6,6,6,6,6,6,37,37,37,37,132,36,36,119,223,13,12,11, | |
1144 10,37,36,35,34,8,7,6,5,37,36,6,12,5,2,12,254, | |
1145 29,124,120,195,31, | |
1146 196,121, | |
1147 312,47,122,122,287,197,25,121,123,123,121,197,27,26,27,25, | |
1148 198,123, | |
1149 312,1,148,148,6,6,6,6,6,6,6,6,6,82,82,82,82,132,80,80,299,124,79,78,82,80, | |
1150 83,81,8,7,6,5,82,80,6,78,5,2,78,85,84,84, | |
1151 312,107,107,47,199,125,287,283,107,46,266,291,273,266,266,273,283,9,283,291, | |
1152 312,47,122,126,287,200,25,121,123,123,121,200,27,26,27,25, | |
1153 312,1,148,148,39,6,6,6,6,6,6,6,6,6,37,37,37,37,132,36,36,127,223,13,12,11, | |
1154 10,37,36,35,34,8,7,6,5,37,36,6,12,5,2,12,253, | |
1155 170,130,128, | |
1156 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,129,65,60,65,65,65,67, | |
1157 62,67,67,68,69,70,71,72,73,74,75,76,175,175, | |
1158 312,130,201,201,201, | |
1159 312,1,148,148,134,134,134,134,134,134,134,134,134,135,135,131,133,135,136, | |
1160 134,132,135,134,133,132,2,133,202,202,138,137, | |
1161 131,131,102,131, | |
1162 125,125,101,125, | |
1163 119,119,119,119,119,119,119,119,119,118,118,100,118,119, | |
1164 312,1,148,148,117,117,117,117,117,117,117,117,117,107,107,203,89,88,135,287, | |
1165 204,107,117,124,130,2,124,158,158,204,90,204, | |
1166 312,203,93,92,136,287,205,205,46,160,160,205,205,205,205,205,205,205,90,205, | |
1167 157,206,137, | |
1168 156,207,138, | |
1169 312,1,148,148,149,134,134,134,134,134,134,134,134,134,135,135,139,133,135, | |
1170 136,134,132,135,134,133,132,2,133,155,138,137, | |
1171 312,1,148,148,134,134,134,134,134,134,134,134,134,146,146,62,62,62,62,62,62, | |
1172 61,63,64,66,60,65,65,65,65,65,140,65,60,65,65,149,65,149,97,62,67,208, | |
1173 67,68,69,70,71,72,73,74,75,76,149,133,146,147,134,132,146,134,133,132,2, | |
1174 133, | |
1175 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,141,65,60,65,65,149,65, | |
1176 149,97,62,67,67,68,69,70,71,72,73,74,75,76,149, | |
1177 312,142,20,20,20, | |
1178 312,143,19,19,19, | |
1179 312,62,62,62,62,62,62,61,63,64,17,66,60,65,65,65,65,65,144,65,60,65,65,65, | |
1180 209,209,97,62,67,67,68,69,70,71,72,73,74,75,76,209, | |
1181 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,145,65,60,65,65,210,65, | |
1182 210,97,62,67,67,68,69,70,71,72,73,74,75,76,210, | |
1183 312,1,148,148,117,117,117,117,117,117,117,117,117,107,107,212,29,200,211, | |
1184 146,107,117,124,130,2,124,201,201,201,201,31, | |
1185 212,29,211,198,199,199,199,199,31, | |
1186 213,148, | |
1187 182,14,149, | |
1188 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,150,65,60,65,65,65,42, | |
1189 62,42, | |
1190 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,151,65,60,65,65,65,41, | |
1191 62,41, | |
1192 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,152,65,60,65,65,65,40, | |
1193 62,40, | |
1194 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,153,65,60,65,65,65,214, | |
1195 62,214,214, | |
1196 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,154,65,60,65,65,65,215, | |
1197 62,215,215, | |
1198 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,155,65,60,65,65,65,67, | |
1199 62,67,67,216, | |
1200 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,156,65,60,65,65,65,67, | |
1201 62,67,67,217, | |
1202 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,157,65,60,65,65,65,67, | |
1203 62,67,67,68,218, | |
1204 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,158,65,60,65,65,65,67, | |
1205 62,67,67,68,219, | |
1206 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,159,65,60,65,65,65,67, | |
1207 62,67,67,68,220, | |
1208 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,160,65,60,65,65,65,67, | |
1209 62,67,67,68,221, | |
1210 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,161,65,60,65,65,65,67, | |
1211 62,67,67,68,69,222, | |
1212 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,162,65,60,65,65,65,67, | |
1213 62,67,67,68,69,223, | |
1214 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,163,65,60,65,65,65,67, | |
1215 62,67,67,68,69,70,224, | |
1216 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,164,65,60,65,65,65,67, | |
1217 62,67,67,68,69,70,71,225, | |
1218 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,165,65,60,65,65,65,67, | |
1219 62,67,67,68,69,70,71,72,226, | |
1220 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,166,65,60,65,65,65,67, | |
1221 62,67,67,68,69,70,71,72,73,227, | |
1222 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,167,65,60,65,65,228,65, | |
1223 228,97,62,67,67,68,69,70,71,72,73,74,75,76,228, | |
1224 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,168,65,60,65,65,65,67, | |
1225 62,67,67,68,69,70,71,72,73,74,229, | |
1226 312,1,148,148,6,6,6,6,6,6,6,6,6,82,82,82,82,132,80,80,170,29,299,169,169, | |
1227 287,79,78,82,80,83,81,8,7,6,5,82,80,6,78,5,2,78,85,84,84,230,27,176,27, | |
1228 232,231,31, | |
1229 312,233,233,170,29,169,304,287,282,233,233,306,306,282,90,282,306,306,31, | |
1230 312,1,148,148,6,6,6,6,6,6,6,6,6,82,82,82,82,132,80,80,172,29,299,171,171, | |
1231 287,79,78,82,80,83,81,8,7,6,5,82,80,6,78,5,2,78,85,84,84,230,123,123,27, | |
1232 176,27,232,231,31, | |
1233 312,234,234,172,29,171,304,287,282,234,234,46,306,265,306,265,265,282,90, | |
1234 282,306,306,31, | |
1235 312,177,1,148,148,6,6,6,6,6,6,6,6,6,82,82,82,82,132,80,80,173,79,78,82,80, | |
1236 83,81,8,7,6,5,82,80,6,78,5,2,78,179, | |
1237 312,174,195, | |
1238 303,175, | |
1239 29,288,124,176,284,31, | |
1240 312,107,107,89,88,177,287,283,107,283,90,283, | |
1241 312,93,178,178,287,197,121,123,123,121,197,27,176,27, | |
1242 312,107,107,93,235,179,287,283,107,46,266,273,266,266,273,283,90,283, | |
1243 312,93,178,180,287,200,121,123,123,121,200,27,176,27, | |
1244 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,181,65,60,65,65,65,70, | |
1245 97,62,67,67,68,69,70,71,72,73,74,75,76,70, | |
1246 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,182,65,60,65,65,65,83, | |
1247 97,62,67,67,68,69,70,71,72,73,74,75,76,83, | |
1248 236,183, | |
1249 233,184, | |
1250 312,236,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,185,65,60,65,65,98, | |
1251 65,98,97,62,67,67,68,69,70,71,72,73,74,75,76,98,236, | |
1252 237,186, | |
1253 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,187,65,60,65,65,238,65, | |
1254 238,97,62,67,67,68,69,70,71,72,73,74,75,76,238, | |
1255 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,188,65,60,65,65,239,65, | |
1256 239,97,62,67,67,68,69,70,71,72,73,74,75,76,239, | |
1257 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,189,65,60,65,65,240,65, | |
1258 240,97,62,67,67,68,69,70,71,72,73,74,75,76,240, | |
1259 312,100,101,102,103,104,105,106,107,108,110,111,39,109,62,62,62,62,62,62,61, | |
1260 63,64,66,60,65,65,65,65,65,190,217,65,60,65,99,98,65,112,98,97,62,67,67, | |
1261 68,69,70,71,72,73,74,75,76,98,109,112,217,217,217,217,217,217, | |
1262 241,191, | |
1263 312,100,101,102,103,104,105,106,107,108,110,111,39,109,62,62,62,62,62,62,61, | |
1264 63,64,66,60,65,65,65,65,65,192,215,65,60,65,99,98,65,112,98,97,62,67,67, | |
1265 68,69,70,71,72,73,74,75,76,98,109,112,215,215,215,215,215,215, | |
1266 312,100,101,102,103,104,105,106,107,108,110,111,221,39,109,62,62,62,62,62, | |
1267 62,61,63,64,66,60,65,65,65,65,65,193,225,65,60,65,99,98,65,112,98,97,62, | |
1268 67,67,68,69,70,71,72,73,74,75,76,98,109,112,225,225,225,225,225,225, | |
1269 312,194,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,194,65,60,65,65,65, | |
1270 242,97,62,67,67,68,69,70,71,72,73,74,75,76,242,242,242, | |
1271 275,195, | |
1272 29,124,274,276,31, | |
1273 29,278,124,197,195,31, | |
1274 29,124,267,268,31, | |
1275 312,47,122,199,287,243,25,121,123,123,121,243,27,26,27,25, | |
1276 29,270,124,200,195,31, | |
1277 174,129,174,201,173, | |
1278 312,1,148,148,150,134,134,134,134,134,134,134,134,134,135,135,202,133,135, | |
1279 136,134,132,135,134,133,132,2,133,155,138,137, | |
1280 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,203,65,60,65,65,65,67, | |
1281 62,67,67,68,69,70,71,72,73,74,75,76,168,168, | |
1282 166,203,166,204,164,164, | |
1283 166,203,166,205,162,162, | |
1284 312,203,89,88,206,287,204,159,159,204,90,204, | |
1285 312,203,93,92,207,287,205,205,46,161,161,205,205,205,205,205,205,205,90,205, | |
1286 30,208, | |
1287 244,18,209, | |
1288 182,16,210, | |
1289 312,1,148,148,6,6,6,6,6,6,6,6,6,82,82,82,82,132,80,80,212,29,299,211,211,79, | |
1290 78,82,80,83,81,8,7,6,5,82,80,6,78,5,2,78,85,84,84,230,232,231,31, | |
1291 245,245,212,29,211,304,245,245,306,306,306,306,31, | |
1292 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,213,65,60,65,65,65,38, | |
1293 62,38, | |
1294 150,151,152,45, | |
1295 150,151,152,44, | |
1296 153,154,48, | |
1297 153,154,47, | |
1298 155,156,53, | |
1299 155,156,52, | |
1300 155,156,51, | |
1301 155,156,50, | |
1302 157,158,159,160,56, | |
1303 157,158,159,160,55, | |
1304 161,162,58, | |
1305 163,60, | |
1306 164,62, | |
1307 165,64, | |
1308 246,182,228, | |
1309 166,66, | |
1310 310,230, | |
1311 309,231, | |
1312 247,232, | |
1313 312,107,107,170,29,169,305,287,283,107,307,307,283,90,283,307,307,31, | |
1314 312,107,107,172,29,171,305,287,283,107,46,307,266,307,266,266,283,90,283, | |
1315 307,307,31, | |
1316 312,93,178,235,287,243,121,123,123,121,243,27,176,27, | |
1317 248,236, | |
1318 249,237, | |
1319 182,250,238, | |
1320 182,251,239, | |
1321 182,252,240, | |
1322 312,100,101,102,103,104,105,106,107,108,110,111,39,109,62,62,62,62,62,62,61, | |
1323 63,64,66,60,65,65,65,65,65,241,216,65,60,65,99,98,65,112,98,97,62,67,67, | |
1324 68,69,70,71,72,73,74,75,76,98,109,112,216,216,216,216,216,216, | |
1325 204,253,242, | |
1326 29,271,124,243,195,31, | |
1327 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,244,65,60,65,65,65,24, | |
1328 97,62,67,67,68,69,70,71,72,73,74,75,76,24, | |
1329 107,107,212,29,211,305,107,307,307,307,307,31, | |
1330 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,246,65,60,65,65,65,67, | |
1331 62,67,67,68,69,70,71,72,73,74,75,76,68, | |
1332 29,124,308,311,31, | |
1333 312,254,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,248,65,60,65,65,98, | |
1334 65,98,97,62,67,67,68,69,70,71,72,73,74,75,76,98,254, | |
1335 312,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,249,65,60,65,65,255,65, | |
1336 255,97,62,67,67,68,69,70,71,72,73,74,75,76,255, | |
1337 312,100,101,102,103,104,105,106,107,108,110,111,39,109,62,62,62,62,62,62,61, | |
1338 63,64,66,60,65,65,65,65,65,250,230,65,60,65,99,98,65,112,98,97,62,67,67, | |
1339 68,69,70,71,72,73,74,75,76,98,109,112,230,230,230,230,230,230, | |
1340 312,100,101,102,103,104,105,106,107,108,110,111,39,109,62,62,62,62,62,62,61, | |
1341 63,64,66,60,65,65,65,65,65,251,229,65,60,65,99,98,65,112,98,97,62,67,67, | |
1342 68,69,70,71,72,73,74,75,76,98,109,112,229,229,229,229,229,229, | |
1343 312,100,101,102,103,104,105,106,107,108,110,111,39,109,62,62,62,62,62,62,61, | |
1344 63,64,66,60,65,65,65,65,65,252,256,65,60,65,99,98,65,112,98,97,62,67,67, | |
1345 68,69,70,71,72,73,74,75,76,98,109,112,256,256,256,256,256,256, | |
1346 312,205,194,62,62,62,62,62,62,61,63,64,66,60,65,65,65,65,65,253,65,60,65,65, | |
1347 65,208,97,62,67,67,68,69,70,71,72,73,74,75,76,208,208, | |
1348 257,254, | |
1349 182,258,255, | |
1350 259,227, | |
1351 312,62,62,62,62,62,62,61,63,64,260,66,60,65,65,65,65,65,257,65,60,65,65,98, | |
1352 65,98,97,62,67,67,68,69,70,71,72,73,74,75,76,98,260, | |
1353 231,258, | |
1354 312,100,101,102,103,104,105,106,107,108,110,111,39,109,62,62,62,62,62,62,61, | |
1355 63,64,66,60,65,65,65,65,65,259,228,65,60,65,99,98,65,112,98,97,62,67,67, | |
1356 68,69,70,71,72,73,74,75,76,98,109,112,228,228,228,228,228,228, | |
1357 261,260, | |
1358 312,100,101,102,103,104,105,106,107,108,110,111,39,109,62,62,62,62,62,62,61, | |
1359 63,64,66,60,65,65,65,65,65,261,232,65,60,65,99,98,65,112,98,97,62,67,67, | |
1360 68,69,70,71,72,73,74,75,76,98,109,112,232,232,232,232,232,232, | |
1361 0 | |
1362 }; | |
1363 | |
1364 | |
1365 static const unsigned short far ag_sbt[] = { | |
1366 0, 56, 62, 67, 77, 92, 102, 122, 133, 154, 159, 162, 165, 176, | |
1367 188, 232, 269, 307, 326, 345, 349, 402, 404, 406, 412, 418, 420, 426, | |
1368 428, 442, 481, 525, 527, 536, 553, 570, 587, 622, 658, 701, 804, 848, | |
1369 855, 899, 906, 950, 966, 971, 992, 995,1000,1044,1047,1052,1058,1063, | |
1370 1066,1068,1099,1104,1109,1111,1136,1162,1187,1212,1219,1284,1288,1291, | |
1371 1294,1299,1302,1304,1306,1308,1310,1313,1315,1325,1336,1379,1398,1442, | |
1372 1461,1463,1465,1468,1506,1514,1527,1532,1537,1551,1570,1575,1580,1585, | |
1373 1598,1600,1640,1681,1683,1685,1690,1692,1754,1756,1758,1760,1762,1764, | |
1374 1802,1804,1867,1879,1981,2024,2064,2107,2150,2155,2157,2173,2175,2217, | |
1375 2237,2253,2296,2299,2337,2342,2373,2377,2381,2395,2427,2447,2450,2453, | |
1376 2484,2549,2588,2593,2598,2638,2677,2708,2717,2719,2722,2748,2774,2800, | |
1377 2827,2854,2882,2910,2939,2968,2997,3026,3056,3086,3117,3149,3182,3216, | |
1378 3255,3290,3343,3362,3417,3440,3480,3483,3485,3491,3503,3517,3535,3549, | |
1379 3587,3625,3627,3629,3670,3672,3711,3750,3789,3851,3853,3915,3978,4019, | |
1380 4021,4026,4032,4037,4053,4059,4064,4095,4133,4139,4145,4157,4177,4179, | |
1381 4182,4185,4234,4247,4273,4277,4281,4284,4287,4290,4293,4296,4299,4304, | |
1382 4309,4312,4314,4316,4318,4321,4323,4325,4327,4329,4347,4369,4383,4385, | |
1383 4387,4390,4393,4396,4458,4461,4467,4505,4517,4554,4559,4600,4639,4701, | |
1384 4763,4825,4866,4868,4871,4873,4914,4916,4978,4980,5042 | |
1385 }; | |
1386 | |
1387 | |
1388 static const unsigned short far ag_sbe[] = { | |
1389 23, 58, 64, 70, 82, 99, 118, 129, 149, 156, 161, 164, 173, 184, | |
1390 209, 254, 291, 310, 329, 347, 372, 403, 405, 407, 414, 419, 423, 427, | |
1391 433, 460, 502, 526, 530, 539, 556, 573, 609, 644, 679, 751, 825, 852, | |
1392 876, 903, 927, 953, 968, 976, 993, 998,1021,1045,1050,1053,1061,1065, | |
1393 1067,1083,1101,1106,1110,1128,1153,1179,1204,1218,1250,1287,1290,1293, | |
1394 1298,1301,1303,1305,1307,1309,1312,1314,1322,1332,1361,1383,1423,1446, | |
1395 1462,1464,1467,1485,1509,1519,1529,1535,1540,1556,1573,1578,1583,1596, | |
1396 1599,1639,1658,1682,1684,1686,1691,1722,1755,1757,1759,1761,1763,1781, | |
1397 1803,1835,1878,1929,2002,2042,2085,2128,2152,2156,2160,2174,2196,2222, | |
1398 2240,2274,2298,2316,2338,2357,2375,2379,2392,2413,2431,2449,2452,2469, | |
1399 2515,2566,2589,2594,2616,2655,2696,2711,2718,2721,2739,2765,2791,2817, | |
1400 2844,2871,2899,2927,2956,2985,3014,3043,3073,3103,3134,3166,3199,3233, | |
1401 3272,3314,3349,3386,3423,3461,3481,3484,3488,3496,3506,3522,3538,3566, | |
1402 3604,3626,3628,3647,3671,3689,3728,3767,3819,3852,3883,3946,3996,4020, | |
1403 4023,4029,4034,4040,4056,4062,4080,4112,4136,4142,4149,4161,4178,4181, | |
1404 4184,4209,4239,4264,4276,4280,4283,4286,4289,4292,4295,4298,4303,4308, | |
1405 4311,4313,4315,4317,4320,4322,4324,4326,4328,4335,4353,4372,4384,4386, | |
1406 4389,4392,4395,4426,4460,4464,4484,4510,4534,4556,4577,4617,4669,4731, | |
1407 4793,4844,4867,4870,4872,4891,4915,4946,4979,5010,5042 | |
1408 }; | |
1409 | |
1410 | |
1411 static const unsigned char far ag_fl[] = { | |
1412 1,0,1,2,1,1,1,1,1,1,2,1,1,1,3,1,4,3,4,3,3,2,2,1,3,1,2,2,2,2,4,1,1,1,1, | |
1413 1,1,1,4,1,3,3,3,1,3,3,1,3,3,1,3,3,3,3,1,3,3,1,3,1,3,1,3,1,3,1,3,1,5,1, | |
1414 3,1,1,1,1,1,1,1,1,1,1,1,1,3,1,0,1,2,2,2,2,3,3,4,3,3,4,1,1,1,1,1,1,1,2, | |
1415 2,1,2,1,1,1,1,2,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1, | |
1416 1,1,1,1,1,1,2,1,0,4,5,2,1,1,1,2,2,2,2,3,2,3,2,1,2,1,0,1,2,4,5,2,2,4,0, | |
1417 2,1,3,1,3,1,2,2,2,1,2,2,1,2,2,2,1,2,2,1,3,1,1,1,2,1,2,0,2,3,4,1,1,3,1, | |
1418 1,1,1,1,1,3,4,3,2,3,3,4,1,2,1,2,2,5,7,5,5,7,9,3,2,2,3,1,2,1,1,2,2,3,3, | |
1419 3,3,2,3,3,3,3,3,4,4,4,4,1,1,1,1,1,2,1,1,2,3,3,4,1,4,5,2,3,3,4,4,1,3,1, | |
1420 1,1,2,3,2,3,4,1,3,1,2,3,4,3,4,1,1,1,1,2,3,2,3,4,1,2,2,3,3,3,3,4,1 | |
1421 }; | |
1422 | |
1423 static const unsigned char far ag_ptt[] = { | |
1424 0, 4, 4, 1, 6, 6, 6, 6, 6, 12, 12, 14, 14, 14, 14, 19, 19, 19, | |
1425 19, 19, 19, 19, 19, 22, 22, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, | |
1426 31, 32, 32, 41, 41, 41, 41, 44, 44, 44, 45, 45, 45, 48, 48, 48, 48, 48, | |
1427 53, 53, 53, 56, 56, 57, 57, 59, 59, 61, 61, 63, 63, 65, 65, 28, 28, 68, | |
1428 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 17, 17, 80, 81, 81, 82, 82, 82, | |
1429 82, 87, 87, 87, 86, 86, 86, 92, 92, 92, 94, 94, 94, 88, 88, 88, 91, 91, | |
1430 100,100,101,101, 95, 95, 95, 95, 97, 97, 97, 97, 83, 83, 83, 85, 85, 85, | |
1431 96, 96, 96, 98, 98, 98, 99, 99, 99, 99, 99,104,104,104,104,104,104,104, | |
1432 104,104,105,105,121,122,122,122,124,124,126,126,130,130,132,132,131,131, | |
1433 134,134,133,133,135,135,136,123,123,123,138,138,139,139,140,140,141,141, | |
1434 143,143,143,143,143,143,143,143,143,143,143,143,143,143,146,146, 24, 24, | |
1435 34, 34, 34, 34, 90, 90,147,147,147,148,148, 2, 2, 2, 2, 2, 2,149, | |
1436 149,149,150,150,150,150,157,157,158,158,151,152,152,152,153,153,153,154, | |
1437 154,154,154, 3, 3,169,169,169,170,170,170,170,170,170,170,170,170,170, | |
1438 170,170,170,170,170, 93, 93,172,172,145,145,145,175,175,175,176,176,173, | |
1439 173,173,173,173,177,177,177,178,178, 89, 89,179,179,179,181,181,181,180, | |
1440 180,171,171,171,182,182,182,144,144,144,174,174,174,185,185,185,183,183, | |
1441 183,183,184,184,184,184, 15 | |
1442 }; | |
1443 | |
1444 static const unsigned char far *ag_valid(int ag_k) { | |
1445 const unsigned char far *ag_tp = &ag_tstt[ag_sbt[(PCB).sn+1]]; | |
1446 while (*--ag_tp != (unsigned char) ag_k) if (*ag_tp == 0) return NULL; | |
1447 return ag_tp; | |
1448 } | |
1449 | |
1450 int cc_change_reduction(cc_token_type ag_k) { | |
1451 if (!ag_valid(ag_k)) return 0; | |
1452 (PCB).reduction_token = ag_k; | |
1453 return 1; | |
1454 } | |
1455 | |
1456 static void ag_default(const int *ag_tp) { | |
1457 (PCB).ag_dsn = (PCB).sn; | |
1458 (PCB).ag_dtl = ag_tp; | |
1459 while (!ag_valid((cc_token_type) *ag_tp)) ag_tp++; | |
1460 (PCB).reduction_token = (cc_token_type) *ag_tp; | |
1461 } | |
1462 | |
1463 | |
1464 | |
1465 static void ag_ra(void) | |
1466 { | |
1467 switch(ag_rpx[(PCB).ag_ap]) { | |
1468 case 1: ag_rp_1(); break; | |
1469 case 2: ag_rp_2(V(0,(int *))); break; | |
1470 case 3: V(0,(int *)) = ag_rp_3(); break; | |
1471 case 4: ag_rp_4(V(0,(token *))); break; | |
1472 case 5: ag_default(&ag_rtt[0]); V(0,(token *)) = ag_rp_5(V(0,(token *))); break; | |
1473 } | |
1474 } | |
1475 | |
1476 #define TOKEN_NAMES cc_token_names | |
1477 const char *const cc_token_names[187] = { | |
1478 "prog start", | |
1479 "prog start", | |
1480 "statement", | |
1481 "translation unit", | |
1482 "", | |
1483 "eof", | |
1484 "constant", | |
1485 "FLOATINGconstant", | |
1486 "INTEGERconstant", | |
1487 "OCTALconstant", | |
1488 "HEXconstant", | |
1489 "CHARACTERconstant", | |
1490 "string literal list", | |
1491 "STRINGliteral", | |
1492 "primary expression", | |
1493 "IDENTIFIER", | |
1494 "'('", | |
1495 "expression", | |
1496 "')'", | |
1497 "postfix expression", | |
1498 "'['", | |
1499 "']'", | |
1500 "argument expression list", | |
1501 "'.'", | |
1502 "identifier or typedef name", | |
1503 "ARROW", | |
1504 "ICR", | |
1505 "DECR", | |
1506 "assignment expression", | |
1507 "','", | |
1508 "unary expression", | |
1509 "unary operator", | |
1510 "cast expression", | |
1511 "SIZEOF", | |
1512 "type name", | |
1513 "'&'", | |
1514 "'*'", | |
1515 "'+'", | |
1516 "'-'", | |
1517 "'~'", | |
1518 "'!'", | |
1519 "multiplicative expression", | |
1520 "'/'", | |
1521 "'%'", | |
1522 "additive expression", | |
1523 "shift expression", | |
1524 "LS", | |
1525 "RS", | |
1526 "relational expression", | |
1527 "'<'", | |
1528 "'>'", | |
1529 "LE", | |
1530 "GE", | |
1531 "equality expression", | |
1532 "EQ", | |
1533 "NE", | |
1534 "AND expression", | |
1535 "exclusive OR expression", | |
1536 "'^'", | |
1537 "inclusive OR expression", | |
1538 "'|'", | |
1539 "logical AND expression", | |
1540 "ANDAND", | |
1541 "logical OR expression", | |
1542 "OROR", | |
1543 "conditional expression", | |
1544 "'\\?'", | |
1545 "':'", | |
1546 "assignment operator", | |
1547 "'='", | |
1548 "MULTassign", | |
1549 "DIVassign", | |
1550 "MODassign", | |
1551 "PLUSassign", | |
1552 "MINUSassign", | |
1553 "LSassign", | |
1554 "RSassign", | |
1555 "ANDassign", | |
1556 "ERassign", | |
1557 "ORassign", | |
1558 "constant expression", | |
1559 "expression opt", | |
1560 "declaration", | |
1561 "sue declaration specifier", | |
1562 "';'", | |
1563 "sue type specifier", | |
1564 "declaring list", | |
1565 "default declaring list", | |
1566 "declaration qualifier list", | |
1567 "identifier declarator", | |
1568 "initializer opt", | |
1569 "type qualifier list", | |
1570 "declaration specifier", | |
1571 "declarator", | |
1572 "type specifier", | |
1573 "basic declaration specifier", | |
1574 "typedef declaration specifier", | |
1575 "basic type specifier", | |
1576 "typedef type specifier", | |
1577 "storage class", | |
1578 "declaration qualifier", | |
1579 "type qualifier", | |
1580 "CONST", | |
1581 "VOLATILE", | |
1582 "basic type name", | |
1583 "elaborated type name", | |
1584 "TYPEDEFname", | |
1585 "TYPEDEF", | |
1586 "EXTERN", | |
1587 "STATIC", | |
1588 "AUTO", | |
1589 "REGISTER", | |
1590 "VOID", | |
1591 "CHAR", | |
1592 "SHORT", | |
1593 "INT", | |
1594 "LONG", | |
1595 "FLOAT", | |
1596 "DOUBLE", | |
1597 "SIGNED", | |
1598 "UNSIGNED", | |
1599 "save flag", | |
1600 "struct or union specifier", | |
1601 "enum specifier", | |
1602 "struct or union", | |
1603 "'{'", | |
1604 "struct declaration list", | |
1605 "'}'", | |
1606 "STRUCT", | |
1607 "UNION", | |
1608 "struct declaration", | |
1609 "struct declaring list", | |
1610 "struct default declaring list", | |
1611 "struct identifier declarator", | |
1612 "struct declarator", | |
1613 "bit field size opt", | |
1614 "bit field size", | |
1615 "ENUM", | |
1616 "enumerator list", | |
1617 "enumerator value opt", | |
1618 "parameter type list", | |
1619 "parameter list", | |
1620 "ELLIPSIS", | |
1621 "parameter declaration", | |
1622 "abstract declarator", | |
1623 "parameter typedef declarator", | |
1624 "identifier list", | |
1625 "initializer", | |
1626 "initializer list", | |
1627 "labeled statement", | |
1628 "compound statement", | |
1629 "expression statement", | |
1630 "selection statement", | |
1631 "iteration statement", | |
1632 "jump statement", | |
1633 "CASE", | |
1634 "DEFAULT", | |
1635 "declaration list", | |
1636 "statement list", | |
1637 "IF", | |
1638 "ELSE", | |
1639 "SWITCH", | |
1640 "WHILE", | |
1641 "DO", | |
1642 "FOR", | |
1643 "GOTO", | |
1644 "CONTINUE", | |
1645 "BREAK", | |
1646 "RETURN", | |
1647 "external definition", | |
1648 "function definition", | |
1649 "old function declarator", | |
1650 "typedef declarator", | |
1651 "paren typedef declarator", | |
1652 "postfixing abstract declarator", | |
1653 "clean typedef declarator", | |
1654 "clean postfix typedef declarator", | |
1655 "paren postfix typedef declarator", | |
1656 "simple paren typedef declarator", | |
1657 "unary identifier declarator", | |
1658 "paren identifier declarator", | |
1659 "postfix identifier declarator", | |
1660 "postfix old function declarator", | |
1661 "unary abstract declarator", | |
1662 "postfix abstract declarator", | |
1663 "array abstract declarator", | |
1664 "NAME", | |
1665 | |
1666 }; | |
1667 | |
1668 #ifndef MISSING_FORMAT | |
1669 #define MISSING_FORMAT "Missing %s" | |
1670 #endif | |
1671 #ifndef UNEXPECTED_FORMAT | |
1672 #define UNEXPECTED_FORMAT "Unexpected %s" | |
1673 #endif | |
1674 #ifndef UNNAMED_TOKEN | |
1675 #define UNNAMED_TOKEN "input" | |
1676 #endif | |
1677 | |
1678 | |
1679 static void ag_diagnose(void) { | |
1680 int ag_snd = (PCB).sn; | |
1681 int ag_k = ag_sbt[ag_snd]; | |
1682 | |
1683 if (*TOKEN_NAMES[ag_tstt[ag_k]] && ag_astt[ag_k + 1] == ag_action_8) { | |
1684 sprintf((PCB).ag_msg, MISSING_FORMAT, TOKEN_NAMES[ag_tstt[ag_k]]); | |
1685 } | |
1686 else if (ag_astt[ag_sbe[(PCB).sn]] == ag_action_8 | |
1687 && (ag_k = (int) ag_sbe[(PCB).sn] + 1) == (int) ag_sbt[(PCB).sn+1] - 1 | |
1688 && *TOKEN_NAMES[ag_tstt[ag_k]]) { | |
1689 sprintf((PCB).ag_msg, MISSING_FORMAT, TOKEN_NAMES[ag_tstt[ag_k]]); | |
1690 } | |
1691 else if ((PCB).token_number && *TOKEN_NAMES[(PCB).token_number]) { | |
1692 sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, TOKEN_NAMES[(PCB).token_number]); | |
1693 } | |
1694 else if (isprint(((PCB).input_code)) && ((PCB).input_code) != '\\') { | |
1695 char buf[20]; | |
1696 sprintf(buf, "\'%c\'", (char) ((PCB).input_code)); | |
1697 sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, buf); | |
1698 } | |
1699 else sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, UNNAMED_TOKEN); | |
1700 (PCB).error_message = (PCB).ag_msg; | |
1701 | |
1702 | |
1703 } | |
1704 static int ag_action_1_r_proc(void); | |
1705 static int ag_action_2_r_proc(void); | |
1706 static int ag_action_3_r_proc(void); | |
1707 static int ag_action_4_r_proc(void); | |
1708 static int ag_action_1_s_proc(void); | |
1709 static int ag_action_3_s_proc(void); | |
1710 static int ag_action_1_proc(void); | |
1711 static int ag_action_2_proc(void); | |
1712 static int ag_action_3_proc(void); | |
1713 static int ag_action_4_proc(void); | |
1714 static int ag_action_5_proc(void); | |
1715 static int ag_action_6_proc(void); | |
1716 static int ag_action_7_proc(void); | |
1717 static int ag_action_8_proc(void); | |
1718 static int ag_action_9_proc(void); | |
1719 static int ag_action_10_proc(void); | |
1720 static int ag_action_11_proc(void); | |
1721 static int ag_action_8_proc(void); | |
1722 | |
1723 | |
1724 static int (*const ag_r_procs_scan[])(void) = { | |
1725 ag_action_1_r_proc, | |
1726 ag_action_2_r_proc, | |
1727 ag_action_3_r_proc, | |
1728 ag_action_4_r_proc | |
1729 }; | |
1730 | |
1731 static int (*const ag_s_procs_scan[])(void) = { | |
1732 ag_action_1_s_proc, | |
1733 ag_action_2_r_proc, | |
1734 ag_action_3_s_proc, | |
1735 ag_action_4_r_proc | |
1736 }; | |
1737 | |
1738 static int (*const ag_gt_procs_scan[])(void) = { | |
1739 ag_action_1_proc, | |
1740 ag_action_2_proc, | |
1741 ag_action_3_proc, | |
1742 ag_action_4_proc, | |
1743 ag_action_5_proc, | |
1744 ag_action_6_proc, | |
1745 ag_action_7_proc, | |
1746 ag_action_8_proc, | |
1747 ag_action_9_proc, | |
1748 ag_action_10_proc, | |
1749 ag_action_11_proc, | |
1750 ag_action_8_proc | |
1751 }; | |
1752 | |
1753 | |
1754 static int ag_action_10_proc(void) { | |
1755 (PCB).btsx = 0, (PCB).drt = -1; | |
1756 ag_track(); | |
1757 return 0; | |
1758 } | |
1759 | |
1760 static int ag_action_11_proc(void) { | |
1761 (PCB).btsx = 0, (PCB).drt = -1; | |
1762 (*(token *) &(PCB).vs[(PCB).ssx]) = (PCB).input_value; | |
1763 (PCB).ssx--; | |
1764 ag_ra(); | |
1765 (PCB).ssx++; | |
1766 ag_track(); | |
1767 return 0; | |
1768 } | |
1769 | |
1770 static int ag_action_3_r_proc(void) { | |
1771 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
1772 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
1773 (PCB).btsx = 0, (PCB).drt = -1; | |
1774 (PCB).reduction_token = (cc_token_type) ag_ptt[(PCB).ag_ap]; | |
1775 ag_ra(); | |
1776 return (PCB).exit_flag == AG_RUNNING_CODE; | |
1777 } | |
1778 | |
1779 static int ag_action_3_s_proc(void) { | |
1780 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
1781 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
1782 (PCB).btsx = 0, (PCB).drt = -1; | |
1783 (PCB).reduction_token = (cc_token_type) ag_ptt[(PCB).ag_ap]; | |
1784 ag_ra(); | |
1785 return (PCB).exit_flag == AG_RUNNING_CODE; | |
1786 } | |
1787 | |
1788 static int ag_action_4_r_proc(void) { | |
1789 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
1790 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
1791 (PCB).reduction_token = (cc_token_type) ag_ptt[(PCB).ag_ap]; | |
1792 return 1; | |
1793 } | |
1794 | |
1795 static int ag_action_2_proc(void) { | |
1796 (PCB).btsx = 0, (PCB).drt = -1; | |
1797 if ((PCB).ssx >= 128) { | |
1798 ag_trace_error(); | |
1799 (PCB).exit_flag = AG_STACK_ERROR_CODE; | |
1800 PARSER_STACK_OVERFLOW; | |
1801 } | |
1802 (*(token *) &(PCB).vs[(PCB).ssx]) = (PCB).input_value; | |
1803 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
1804 (PCB).ssx++; | |
1805 (PCB).sn = (PCB).ag_ap; | |
1806 ag_track(); | |
1807 return 0; | |
1808 } | |
1809 | |
1810 static int ag_action_9_proc(void) { | |
1811 if ((PCB).drt == -1) { | |
1812 (PCB).drt=(PCB).token_number; | |
1813 (PCB).dssx=(PCB).ssx; | |
1814 (PCB).dsn=(PCB).sn; | |
1815 } | |
1816 ag_prot(); | |
1817 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
1818 (PCB).ssx++; | |
1819 (PCB).sn = (PCB).ag_ap; | |
1820 return (PCB).exit_flag == AG_RUNNING_CODE; | |
1821 } | |
1822 | |
1823 static int ag_action_2_r_proc(void) { | |
1824 (PCB).ssx++; | |
1825 (PCB).sn = (PCB).ag_ap; | |
1826 return 0; | |
1827 } | |
1828 | |
1829 static int ag_action_7_proc(void) { | |
1830 --(PCB).ssx; | |
1831 (PCB).exit_flag = AG_SUCCESS_CODE; | |
1832 return 0; | |
1833 } | |
1834 | |
1835 static int ag_action_1_proc(void) { | |
1836 (PCB).exit_flag = AG_SUCCESS_CODE; | |
1837 ag_track(); | |
1838 return 0; | |
1839 } | |
1840 | |
1841 static int ag_action_1_r_proc(void) { | |
1842 (PCB).exit_flag = AG_SUCCESS_CODE; | |
1843 return 0; | |
1844 } | |
1845 | |
1846 static int ag_action_1_s_proc(void) { | |
1847 (PCB).exit_flag = AG_SUCCESS_CODE; | |
1848 return 0; | |
1849 } | |
1850 | |
1851 static int ag_action_4_proc(void) { | |
1852 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
1853 (PCB).reduction_token = (cc_token_type) ag_ptt[(PCB).ag_ap]; | |
1854 (PCB).btsx = 0, (PCB).drt = -1; | |
1855 (*(token *) &(PCB).vs[(PCB).ssx]) = (PCB).input_value; | |
1856 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
1857 else (PCB).ss[(PCB).ssx] = (PCB).sn; | |
1858 ag_track(); | |
1859 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
1860 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
1861 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
1862 do { | |
1863 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
1864 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
1865 else ag_t2 = ag_tx; | |
1866 } while (ag_t1 < ag_t2); | |
1867 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
1868 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; ag_trace_error(); | |
1869 REDUCTION_TOKEN_ERROR; break;} | |
1870 (PCB).ag_ap = ag_pstt[ag_t1]; | |
1871 if ((ag_s_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
1872 } | |
1873 return 0; | |
1874 } | |
1875 | |
1876 static int ag_action_3_proc(void) { | |
1877 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
1878 (PCB).btsx = 0, (PCB).drt = -1; | |
1879 (*(token *) &(PCB).vs[(PCB).ssx]) = (PCB).input_value; | |
1880 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
1881 else (PCB).ss[(PCB).ssx] = (PCB).sn; | |
1882 ag_track(); | |
1883 (PCB).reduction_token = (cc_token_type) ag_ptt[(PCB).ag_ap]; | |
1884 ag_ra(); | |
1885 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
1886 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
1887 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
1888 do { | |
1889 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
1890 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
1891 else ag_t2 = ag_tx; | |
1892 } while (ag_t1 < ag_t2); | |
1893 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
1894 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; ag_trace_error(); | |
1895 REDUCTION_TOKEN_ERROR; break;} | |
1896 (PCB).ag_ap = ag_pstt[ag_t1]; | |
1897 if ((ag_s_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
1898 } | |
1899 return 0; | |
1900 } | |
1901 | |
1902 static int ag_action_8_proc(void) { | |
1903 ag_undo(); | |
1904 ag_trace_error(); | |
1905 (PCB).exit_flag = AG_SYNTAX_ERROR_CODE; | |
1906 ag_diagnose(); | |
1907 SYNTAX_ERROR; | |
1908 ag_track(); | |
1909 return (PCB).exit_flag == AG_RUNNING_CODE; | |
1910 } | |
1911 | |
1912 static int ag_action_5_proc(void) { | |
1913 int ag_sd = ag_fl[(PCB).ag_ap]; | |
1914 (PCB).btsx = 0, (PCB).drt = -1; | |
1915 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
1916 else { | |
1917 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
1918 } | |
1919 (PCB).reduction_token = (cc_token_type) ag_ptt[(PCB).ag_ap]; | |
1920 ag_ra(); | |
1921 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
1922 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
1923 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
1924 do { | |
1925 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
1926 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
1927 else ag_t2 = ag_tx; | |
1928 } while (ag_t1 < ag_t2); | |
1929 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
1930 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; ag_trace_error(); | |
1931 REDUCTION_TOKEN_ERROR; break;} | |
1932 (PCB).ag_ap = ag_pstt[ag_t1]; | |
1933 if ((ag_r_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
1934 } | |
1935 return (PCB).exit_flag == AG_RUNNING_CODE; | |
1936 } | |
1937 | |
1938 static int ag_action_6_proc(void) { | |
1939 int ag_sd = ag_fl[(PCB).ag_ap]; | |
1940 (PCB).reduction_token = (cc_token_type) ag_ptt[(PCB).ag_ap]; | |
1941 if ((PCB).drt == -1) { | |
1942 (PCB).drt=(PCB).token_number; | |
1943 (PCB).dssx=(PCB).ssx; | |
1944 (PCB).dsn=(PCB).sn; | |
1945 } | |
1946 if (ag_sd) { | |
1947 (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
1948 } | |
1949 else { | |
1950 ag_prot(); | |
1951 (PCB).vs[(PCB).ssx] = ag_null_value; | |
1952 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
1953 } | |
1954 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
1955 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
1956 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
1957 do { | |
1958 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
1959 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
1960 else ag_t2 = ag_tx; | |
1961 } while (ag_t1 < ag_t2); | |
1962 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
1963 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; ag_trace_error(); | |
1964 REDUCTION_TOKEN_ERROR; break;} | |
1965 (PCB).ag_ap = ag_pstt[ag_t1]; | |
1966 if ((ag_r_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
1967 } | |
1968 return (PCB).exit_flag == AG_RUNNING_CODE; | |
1969 } | |
1970 | |
1971 | |
1972 void init_cc(void) { | |
1973 unsigned ag_t1; | |
1974 ag_t1 = 0; | |
1975 (PCB).ss[0] = (PCB).sn = (PCB).ssx = 0; | |
1976 (PCB).exit_flag = AG_RUNNING_CODE; | |
1977 (PCB).line = FIRST_LINE; | |
1978 (PCB).column = FIRST_COLUMN; | |
1979 (PCB).btsx = 0, (PCB).drt = -1; | |
1980 while (ag_tstt[ag_t1] == 0) { | |
1981 (PCB).ag_ap = ag_pstt[ag_t1]; | |
1982 (ag_gt_procs_scan[ag_astt[ag_t1]])(); | |
1983 ag_t1 = ag_sbt[(PCB).sn]; | |
1984 } | |
1985 } | |
1986 | |
1987 void cc(void) { | |
1988 (PCB).token_number = (cc_token_type) AG_TCV((PCB).input_code); | |
1989 while (1) { | |
1990 unsigned ag_t1 = ag_sbt[(PCB).sn]; | |
1991 unsigned ag_t2 = ag_sbe[(PCB).sn] - 1; | |
1992 do { | |
1993 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
1994 if (ag_tstt[ag_tx] > (unsigned char)(PCB).token_number) | |
1995 ag_t1 = ag_tx + 1; | |
1996 else ag_t2 = ag_tx; | |
1997 } while (ag_t1 < ag_t2); | |
1998 if (ag_tstt[ag_t1] != (unsigned char)(PCB).token_number) | |
1999 ag_t1 = ag_sbe[(PCB).sn]; | |
2000 (PCB).ag_ap = ag_pstt[ag_t1]; | |
2001 if ((ag_gt_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
2002 } | |
2003 } | |
2004 | |
2005 |