Mercurial > ~dholland > hg > ag > index.cgi
comparison tests/agcl/parsifal/good/ss-fp.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 Copyright 1992, Jerome T. Holland | |
3 See the file COPYING for license and usage terms. | |
4 */ | |
5 | |
6 #include "ssd.h" | |
7 #include "kb.h" | |
8 #include "num.h" | |
9 | |
10 | |
11 /* | |
12 * AnaGram, A System for Syntax Directed Programming | |
13 * File generated by: ... | |
14 * | |
15 * AnaGram Parsing Engine | |
16 * Copyright 1993-2002 Parsifal Software. All Rights Reserved. | |
17 * | |
18 * This software is provided 'as-is', without any express or implied | |
19 * warranty. In no event will the authors be held liable for any damages | |
20 * arising from the use of this software. | |
21 * | |
22 * Permission is granted to anyone to use this software for any purpose, | |
23 * including commercial applications, and to alter it and redistribute it | |
24 * freely, subject to the following restrictions: | |
25 * | |
26 * 1. The origin of this software must not be misrepresented; you must not | |
27 * claim that you wrote the original software. If you use this software | |
28 * in a product, an acknowledgment in the product documentation would be | |
29 * appreciated but is not required. | |
30 * 2. Altered source versions must be plainly marked as such, and must not be | |
31 * misrepresented as being the original software. | |
32 * 3. This notice may not be removed or altered from any source distribution. | |
33 */ | |
34 | |
35 #ifndef SS-FP_H | |
36 #include "ss-fp.h" | |
37 #endif | |
38 | |
39 #ifndef SS-FP_H | |
40 #error Mismatched header file | |
41 #endif | |
42 | |
43 #include <stdio.h> | |
44 | |
45 #define RULE_CONTEXT (&((PCB).cs[(PCB).ssx])) | |
46 #define ERROR_CONTEXT ((PCB).cs[(PCB).error_frame_ssx]) | |
47 #define CONTEXT ((PCB).cs[(PCB).ssx]) | |
48 | |
49 | |
50 | |
51 /* Line -, ss-fp.syn */ | |
52 fp_pcb_type *fp_pcb; | |
53 #define PCB (*fp_pcb) | |
54 | |
55 | |
56 #define CELL_NAME_REQUEST 255 | |
57 #define INPUT_LINE_REQUEST 254 | |
58 #define BLOCK_REQUEST 253 | |
59 | |
60 #define SYNTAX_ERROR | |
61 #define PARSER_STACK_OVERFLOW | |
62 | |
63 static int cell_refs; | |
64 static int error_flag; | |
65 | |
66 static number bound_variable[26]; | |
67 static number xvalue; | |
68 | |
69 number num(double x) { | |
70 number n; | |
71 n.error = 0; | |
72 n.truth = 1; | |
73 n.v = x; | |
74 return n; | |
75 } | |
76 | |
77 void init_bv(void) { | |
78 int i; | |
79 for (i = 0; i < 26; i++) bound_variable[i].error = 1; | |
80 } | |
81 | |
82 double round(double x) { | |
83 long n = x+.5; | |
84 return n; | |
85 } | |
86 | |
87 double trunc(double x) { | |
88 long n = x; | |
89 return n; | |
90 } | |
91 | |
92 double sqr(double x) { | |
93 return x*x; | |
94 } | |
95 | |
96 double pow10d(double x) { | |
97 long n = x; | |
98 return pow10d(n); | |
99 } | |
100 | |
101 number cell_value(pair<int> loc) { | |
102 number x; | |
103 cell_pointer cp; | |
104 int save_ef = error_flag; | |
105 | |
106 cell_refs++; | |
107 cp = ss[loc.row][loc.col]; | |
108 if (cp == NULL) { | |
109 x.truth = 1; | |
110 x.v = 0; | |
111 return x; | |
112 } | |
113 if (cp->type == text) { | |
114 x.error = 1; | |
115 x.truth = 0; | |
116 return x; | |
117 } | |
118 if (cp->type == formula) { | |
119 if ((inserted_columns || inserted_rows)); | |
120 else if (recalc_flag) { | |
121 if (cp->recalc == recalc_count) eval(cp); | |
122 if (cp->recalc & 1) circular_flag = 1; | |
123 } | |
124 } | |
125 x.error = cp->error; | |
126 x.truth = 1; | |
127 x.v = cp->value; | |
128 return x; | |
129 } | |
130 | |
131 void eval(cell_pointer cp) { | |
132 fp_pcb_type pcb, *save_pcb = fp_pcb; | |
133 | |
134 fp_pcb = &pcb; | |
135 cell_refs = 0; | |
136 PCB.pointer = (unsigned char *) &cp->text; | |
137 cp->recalc += recalc_flag; | |
138 error_flag = 0; | |
139 fp(); | |
140 cp->recalc += recalc_flag; | |
141 if (PCB.exit_flag != 1) {cp->type = text; cp->error = 1; return;} | |
142 else if (cell_refs == 0) cp->type = value; | |
143 else cp->type = formula; | |
144 { | |
145 cp->error = xvalue.error; | |
146 cp->value = xvalue.v; | |
147 } | |
148 fp_pcb = save_pcb; | |
149 } | |
150 | |
151 number evalx(char *xs) { | |
152 fp_pcb_type pcb, *save_pcb = fp_pcb; | |
153 number x; | |
154 | |
155 fp_pcb = &pcb; | |
156 PCB.pointer = (unsigned char *) xs; | |
157 error_flag = 0; | |
158 fp(); | |
159 fp_pcb = save_pcb; | |
160 return xvalue; | |
161 } | |
162 | |
163 pair<int> id_cell(int row, int col) { | |
164 pair<int> goto_cell = {0,0}; | |
165 if (row >= MAXROWS || col >= MAXCOLS) { | |
166 PCB.exit_flag = 5; | |
167 return goto_cell; | |
168 } | |
169 if (inserted_rows && row >= new_row) row += inserted_rows; | |
170 goto_cell.row = row; | |
171 goto_cell.col = col; | |
172 if (inserted_columns == 0 && inserted_rows == 0) return goto_cell; | |
173 sprintf((char *)icnptr,"%d",row+1); | |
174 icnptr += strlen((char *)icnptr); | |
175 icoptr = PCB.pointer; | |
176 return goto_cell; | |
177 } | |
178 | |
179 int matherr(struct exception *e) { | |
180 error_flag++; | |
181 e->retval = 0; | |
182 return 1; | |
183 } | |
184 | |
185 number apply(double(*f)(double), number n) { | |
186 number r; | |
187 if (n.error) return n; | |
188 error_flag = 0; | |
189 r.v = f(n.v); | |
190 r.error = error_flag != 0; | |
191 return r; | |
192 } | |
193 | |
194 number pow(number x, number n) { | |
195 number r; | |
196 r.error = x.error || n.error; | |
197 if (r.error) return r; | |
198 r.v = pow(x.v, n.v); | |
199 return r; | |
200 } | |
201 | |
202 void parse_block(void) { | |
203 int flag; | |
204 fp_pcb_type pcb; | |
205 | |
206 fp_pcb = &pcb; | |
207 PCB.pointer = (unsigned char *) text_buffer; | |
208 text_buffer[0] = BLOCK_REQUEST; | |
209 fp(); | |
210 flag = PCB.exit_flag != 1 | |
211 || first_cell.row > last_cell.row | |
212 || first_cell.col > last_cell.col | |
213 || last_cell.row > MAXROWS | |
214 || last_cell.col > MAXCOLS; | |
215 if (flag) { | |
216 kb_pcb.reduction_token = kb_bad_block_token; | |
217 display_message(&bad_block_message); | |
218 set_cursor(text_cursor); | |
219 } | |
220 else _setcursortype(_NOCURSOR); | |
221 } | |
222 | |
223 void parse_cell_name(void) { | |
224 int flag; | |
225 fp_pcb_type pcb; | |
226 | |
227 fp_pcb = &pcb; | |
228 PCB.pointer = (unsigned char *) text_buffer; | |
229 text_buffer[0] = CELL_NAME_REQUEST; | |
230 fp(); | |
231 flag = PCB.exit_flag != 1 | |
232 || goto_cell.row > MAXROWS | |
233 || goto_cell.col > MAXCOLS; | |
234 if (flag) { | |
235 kb_pcb.reduction_token = kb_bad_cell_name_token; | |
236 display_message(&bad_cell_message); | |
237 set_cursor(text_cursor); | |
238 } | |
239 else _setcursortype(_NOCURSOR); | |
240 } | |
241 | |
242 int rel_column_id(int a, int b) { | |
243 int cn = 26*a + b; | |
244 int nidc = a?2:1; | |
245 int n; | |
246 unsigned char case_bit = 0; | |
247 char *cp; | |
248 | |
249 if (inserted_columns == 0 && inserted_rows == 0) return cn; | |
250 if (cn >= new_column) cn += inserted_columns; | |
251 n = (PCB.pointer - icoptr) - nidc; | |
252 memmove((char *)icnptr, (char *)icoptr, n); | |
253 icnptr += n; | |
254 cp = (char *)PCB.pointer; | |
255 while (nidc--) case_bit |= *--cp; | |
256 case_bit &= 0x20; | |
257 cp = column_label(cn,case_bit); | |
258 strcpy((char *)icnptr,cp); | |
259 icnptr += strlen(cp); | |
260 return cn; | |
261 } | |
262 | |
263 void relabel_formula(cell_pointer cp) { | |
264 fp_pcb_type pcb, *save_pcb = fp_pcb; | |
265 | |
266 fp_pcb = &pcb; | |
267 icoptr = PCB.pointer = (unsigned char *) &cp->text; | |
268 icnptr = (unsigned char *) relabel_buf; | |
269 fp(); | |
270 assert(PCB.exit_flag == 1); | |
271 strcpy((char *)icnptr, (char *)icoptr); | |
272 cp = (cell_descriptor *) realloc(cp, sizeof(cell_descriptor) + strlen(relabel_buf)); | |
273 assert(cp); | |
274 strcpy(cp->text, relabel_buf); | |
275 fp_pcb = save_pcb; | |
276 } | |
277 | |
278 void scan_input_line(void) { | |
279 fp_pcb_type pcb, *save_pcb = fp_pcb; | |
280 | |
281 fp_pcb = &pcb; | |
282 PCB.pointer = (unsigned char *) text_buffer; | |
283 text_buffer[0] = INPUT_LINE_REQUEST; | |
284 fp(); | |
285 fp_pcb = save_pcb; | |
286 } | |
287 | |
288 void set_column_width(void) { | |
289 int n; | |
290 char *tb = text_buffer + 1; | |
291 int flag; | |
292 | |
293 highlight_off(); | |
294 for (n = 0; *tb;) n = 10*n + *tb++ - '0'; | |
295 flag = n < 3 || n > 75; | |
296 if (flag) { | |
297 kb_pcb.reduction_token = kb_column_width_request_token; | |
298 display_message(&bad_cw_message); | |
299 beep(); | |
300 set_cursor(text_cursor); | |
301 return; | |
302 } | |
303 _setcursortype(_NOCURSOR); | |
304 if (ac.scc.col + n > 81) move_data_left(); | |
305 cols[ac.ssc.col].width = n; | |
306 display_column_guide(); | |
307 update_screen(); | |
308 highlight_on(); | |
309 } | |
310 | |
311 | |
312 void stuff_cell(pair<int> loc) { | |
313 char *tb = (char *) fp_pcb->pointer; | |
314 cell_pointer cp = (cell_descriptor *) realloc( | |
315 ss[loc.row][loc.col], | |
316 sizeof(cell_descriptor) + strlen(tb)); | |
317 | |
318 assert(cp); | |
319 if (loc.row > max_row) max_row = loc.row; | |
320 if (loc.col > max_col) max_col = loc.col; | |
321 strcpy(cp->text, tb); | |
322 ss[loc.row][loc.col] = cp; | |
323 cp->recalc = recalc_count; | |
324 eval(cp); | |
325 } | |
326 | |
327 void stuff_format(format_code f,pair<int> first,pair<int> last){ | |
328 int i,j; | |
329 for (i=first.row;i<=last.row;i++) for (j=first.col;j<=last.col;j++) { | |
330 fmt[i][j] = f; | |
331 } | |
332 if (last.row > fmt_max_row) fmt_max_row = last.row; | |
333 if (last.col > fmt_max_col) fmt_max_col = last.col; | |
334 } | |
335 | |
336 number sum_cells(pair<int> first,pair<int> last){ | |
337 pair<int> cp; | |
338 number sum; | |
339 sum.error = sum.truth = 1; | |
340 sum.v = 0; | |
341 for (cp.row = first.row; cp.row <= last.row; cp.row++) | |
342 for (cp.col = first.col; cp.col <= last.col; cp.col++) { | |
343 number cv = cell_value(cp); | |
344 if (cv.error) return sum; | |
345 sum.v += cv.v; | |
346 } | |
347 sum.error = 0; | |
348 return sum; | |
349 } | |
350 | |
351 number summation(char *xb, char *xf, int bv, number f, number s, number l) { | |
352 number sum; | |
353 int k; | |
354 char *xs; | |
355 number delta; | |
356 int n; | |
357 | |
358 sum.error = f.error + s.error + l.error; | |
359 sum.v = 0; | |
360 if (sum.error) return sum; | |
361 k = (int) (xf - xb); | |
362 xs = (char *) malloc(k+1); | |
363 memmove(xs,xb,k); | |
364 xs[k] = 0; | |
365 delta = s-f; | |
366 if (delta.v == 0) { | |
367 sum.error = 1; | |
368 return sum; | |
369 } | |
370 n = ((l-f+delta)/delta).v + .5; | |
371 while (n--) { | |
372 bound_variable[bv] = f; | |
373 sum = sum + evalx(xs); | |
374 if (sum.error) break; | |
375 f = f+delta; | |
376 } | |
377 bound_variable[bv].error = 1; | |
378 free(xs); | |
379 return sum; | |
380 } | |
381 | |
382 | |
383 | |
384 #ifndef CONVERT_CASE | |
385 | |
386 static const char agCaseTable[31] = { | |
387 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
388 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | |
389 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0, | |
390 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 | |
391 }; | |
392 | |
393 static int agConvertCase(int c) { | |
394 if (c >= 'a' && c <= 'z') return c ^= 0x20; | |
395 if (c >= 0xe0 && c < 0xff) c ^= agCaseTable[c-0xe0]; | |
396 return c; | |
397 } | |
398 | |
399 #define CONVERT_CASE(c) agConvertCase(c) | |
400 | |
401 #endif | |
402 | |
403 | |
404 #ifndef TAB_SPACING | |
405 #define TAB_SPACING 8 | |
406 #endif | |
407 | |
408 static void ag_rp_1(pair<int> cp) { | |
409 /* Line -, ss-fp.syn */ | |
410 goto_cell = cp; | |
411 } | |
412 | |
413 static void ag_rp_2(number x) { | |
414 /* Line -, ss-fp.syn */ | |
415 xvalue = x; | |
416 } | |
417 | |
418 static void ag_rp_3(pair<int> f, pair<int> l) { | |
419 /* Line -, ss-fp.syn */ | |
420 first_cell=f, last_cell = l; | |
421 } | |
422 | |
423 static void ag_rp_4(pair<int> loc) { | |
424 /* Line -, ss-fp.syn */ | |
425 stuff_cell(loc); | |
426 } | |
427 | |
428 static void ag_rp_5(pair<int> f, pair<int> l, format_code fmt) { | |
429 /* Line -, ss-fp.syn */ | |
430 stuff_format(fmt,f,l); | |
431 } | |
432 | |
433 static format_code ag_rp_6(int a, int c, int n) { | |
434 /* Line -, ss-fp.syn */ | |
435 format_code f; | |
436 f.alignment = a; | |
437 f.conversion =c; | |
438 f.decimals = n; | |
439 f.flag = 0; | |
440 return f; | |
441 | |
442 } | |
443 | |
444 static int ag_rp_7(void) { | |
445 /* Line -, ss-fp.syn */ | |
446 return 0; | |
447 } | |
448 | |
449 static int ag_rp_8(void) { | |
450 /* Line -, ss-fp.syn */ | |
451 return 1; | |
452 } | |
453 | |
454 static int ag_rp_9(void) { | |
455 /* Line -, ss-fp.syn */ | |
456 return 2; | |
457 } | |
458 | |
459 static int ag_rp_10(void) { | |
460 /* Line -, ss-fp.syn */ | |
461 return 0; | |
462 } | |
463 | |
464 static int ag_rp_11(void) { | |
465 /* Line -, ss-fp.syn */ | |
466 return 1; | |
467 } | |
468 | |
469 static int ag_rp_12(void) { | |
470 /* Line -, ss-fp.syn */ | |
471 return 2; | |
472 } | |
473 | |
474 static pair<int> ag_rp_13(int col, int row) { | |
475 /* Line -, ss-fp.syn */ | |
476 return id_cell(row-1,col); | |
477 } | |
478 | |
479 static int ag_rp_14(int a, int b) { | |
480 /* Line -, ss-fp.syn */ | |
481 return rel_column_id(a-'A'+1, b-'A'); | |
482 } | |
483 | |
484 static int ag_rp_15(int a) { | |
485 /* Line -, ss-fp.syn */ | |
486 return rel_column_id(0, a-'A'); | |
487 } | |
488 | |
489 static int ag_rp_16(int d) { | |
490 /* Line -, ss-fp.syn */ | |
491 return d-'0'; | |
492 } | |
493 | |
494 static int ag_rp_17(int n, int d) { | |
495 /* Line -, ss-fp.syn */ | |
496 return 10*n + d-'0'; | |
497 } | |
498 | |
499 static number ag_rp_18(number x, number c, number y) { | |
500 /* Line -, ss-fp.syn */ | |
501 number z; | |
502 switch (c.tv){ | |
503 case 0: | |
504 z = y; | |
505 break; | |
506 case 1: | |
507 z = x; | |
508 break; | |
509 case 2: | |
510 z.error = 1; | |
511 } | |
512 return z; | |
513 | |
514 } | |
515 | |
516 static number ag_rp_19(number x, number y) { | |
517 /* Line -, ss-fp.syn */ | |
518 return x||y; | |
519 } | |
520 | |
521 static number ag_rp_20(number x, number y) { | |
522 /* Line -, ss-fp.syn */ | |
523 return x&&y; | |
524 } | |
525 | |
526 static number ag_rp_21(number x) { | |
527 /* Line -, ss-fp.syn */ | |
528 return x; | |
529 } | |
530 | |
531 static number ag_rp_22(number x) { | |
532 /* Line -, ss-fp.syn */ | |
533 return !x; | |
534 } | |
535 | |
536 static number ag_rp_23(number x, number y) { | |
537 /* Line -, ss-fp.syn */ | |
538 return x<y; | |
539 } | |
540 | |
541 static number ag_rp_24(number x, number y) { | |
542 /* Line -, ss-fp.syn */ | |
543 return x>y; | |
544 } | |
545 | |
546 static number ag_rp_25(number x, number y) { | |
547 /* Line -, ss-fp.syn */ | |
548 return x<=y; | |
549 } | |
550 | |
551 static number ag_rp_26(number x, number y) { | |
552 /* Line -, ss-fp.syn */ | |
553 return x>=y; | |
554 } | |
555 | |
556 static number ag_rp_27(number x, number y) { | |
557 /* Line -, ss-fp.syn */ | |
558 return x==y; | |
559 } | |
560 | |
561 static number ag_rp_28(number x, number y) { | |
562 /* Line -, ss-fp.syn */ | |
563 return x!=y; | |
564 } | |
565 | |
566 static number ag_rp_29(number x, number y) { | |
567 /* Line -, ss-fp.syn */ | |
568 return x+y; | |
569 } | |
570 | |
571 static number ag_rp_30(number x, number y) { | |
572 /* Line -, ss-fp.syn */ | |
573 return x-y; | |
574 } | |
575 | |
576 static number ag_rp_31(number x, number y) { | |
577 /* Line -, ss-fp.syn */ | |
578 return x+y; | |
579 } | |
580 | |
581 static number ag_rp_32(number x, number y) { | |
582 /* Line -, ss-fp.syn */ | |
583 return x-y; | |
584 } | |
585 | |
586 static number ag_rp_33(number x, number y) { | |
587 /* Line -, ss-fp.syn */ | |
588 return x*y; | |
589 } | |
590 | |
591 static number ag_rp_34(function_name f, number y) { | |
592 /* Line -, ss-fp.syn */ | |
593 return apply(f,y); | |
594 } | |
595 | |
596 static number ag_rp_35(number x, function_name f, number y) { | |
597 /* Line -, ss-fp.syn */ | |
598 return x*apply(f,y); | |
599 } | |
600 | |
601 static number ag_rp_36(number x, number n) { | |
602 /* Line -, ss-fp.syn */ | |
603 return pow(x,n); | |
604 } | |
605 | |
606 static number ag_rp_37(number x) { | |
607 /* Line -, ss-fp.syn */ | |
608 return -x; | |
609 } | |
610 | |
611 static number ag_rp_38(number x, number y) { | |
612 /* Line -, ss-fp.syn */ | |
613 return x/y; | |
614 } | |
615 | |
616 static number ag_rp_39(number x, number y) { | |
617 /* Line -, ss-fp.syn */ | |
618 return x*y; | |
619 } | |
620 | |
621 static number ag_rp_40(number x, number y) { | |
622 /* Line -, ss-fp.syn */ | |
623 return x*y; | |
624 } | |
625 | |
626 static number ag_rp_41(pair<int> cp) { | |
627 /* Line -, ss-fp.syn */ | |
628 return cell_value(cp); | |
629 } | |
630 | |
631 static number ag_rp_42(void) { | |
632 /* Line -, ss-fp.syn */ | |
633 return num(M_PI); | |
634 } | |
635 | |
636 static number ag_rp_43(pair<int> first, pair<int> last) { | |
637 /* Line -, ss-fp.syn */ | |
638 return sum_cells(first,last); | |
639 } | |
640 | |
641 static number ag_rp_44(int k) { | |
642 /* Line -, ss-fp.syn */ | |
643 return bound_variable[k-'A']; | |
644 } | |
645 | |
646 static number ag_rp_45(char * xb, char * xf, int k, number f, number s, number l) { | |
647 /* Line -, ss-fp.syn */ | |
648 return summation(xb,xf,k-'A', f, s, l); | |
649 } | |
650 | |
651 static char * ag_rp_46(void) { | |
652 /* Line -, ss-fp.syn */ | |
653 return (char *)PCB.pointer; | |
654 } | |
655 | |
656 static char * ag_rp_47(void) { | |
657 /* Line -, ss-fp.syn */ | |
658 return (char *)PCB.pointer; | |
659 } | |
660 | |
661 static number ag_rp_48(number x) { | |
662 /* Line -, ss-fp.syn */ | |
663 return x; | |
664 } | |
665 | |
666 static function_name ag_rp_49(void) { | |
667 /* Line -, ss-fp.syn */ | |
668 return fabs; | |
669 } | |
670 | |
671 static function_name ag_rp_50(void) { | |
672 /* Line -, ss-fp.syn */ | |
673 return acos; | |
674 } | |
675 | |
676 static function_name ag_rp_51(void) { | |
677 /* Line -, ss-fp.syn */ | |
678 return asin; | |
679 } | |
680 | |
681 static function_name ag_rp_52(void) { | |
682 /* Line -, ss-fp.syn */ | |
683 return atan; | |
684 } | |
685 | |
686 static function_name ag_rp_53(void) { | |
687 /* Line -, ss-fp.syn */ | |
688 return cosh; | |
689 } | |
690 | |
691 static function_name ag_rp_54(void) { | |
692 /* Line -, ss-fp.syn */ | |
693 return cos; | |
694 } | |
695 | |
696 static function_name ag_rp_55(void) { | |
697 /* Line -, ss-fp.syn */ | |
698 return exp; | |
699 } | |
700 | |
701 static function_name ag_rp_56(void) { | |
702 /* Line -, ss-fp.syn */ | |
703 return log10; | |
704 } | |
705 | |
706 static function_name ag_rp_57(void) { | |
707 /* Line -, ss-fp.syn */ | |
708 return log; | |
709 } | |
710 | |
711 static function_name ag_rp_58(void) { | |
712 /* Line -, ss-fp.syn */ | |
713 return pow10d; | |
714 } | |
715 | |
716 static function_name ag_rp_59(void) { | |
717 /* Line -, ss-fp.syn */ | |
718 return round; | |
719 } | |
720 | |
721 static function_name ag_rp_60(void) { | |
722 /* Line -, ss-fp.syn */ | |
723 return sinh; | |
724 } | |
725 | |
726 static function_name ag_rp_61(void) { | |
727 /* Line -, ss-fp.syn */ | |
728 return sin; | |
729 } | |
730 | |
731 static function_name ag_rp_62(void) { | |
732 /* Line -, ss-fp.syn */ | |
733 return sqr; | |
734 } | |
735 | |
736 static function_name ag_rp_63(void) { | |
737 /* Line -, ss-fp.syn */ | |
738 return sqrt; | |
739 } | |
740 | |
741 static function_name ag_rp_64(void) { | |
742 /* Line -, ss-fp.syn */ | |
743 return tanh; | |
744 } | |
745 | |
746 static function_name ag_rp_65(void) { | |
747 /* Line -, ss-fp.syn */ | |
748 return tan; | |
749 } | |
750 | |
751 static function_name ag_rp_66(void) { | |
752 /* Line -, ss-fp.syn */ | |
753 return trunc; | |
754 } | |
755 | |
756 static number ag_rp_67(double x) { | |
757 /* Line -, ss-fp.syn */ | |
758 return num(x); | |
759 } | |
760 | |
761 static number ag_rp_68(double x, double y) { | |
762 /* Line -, ss-fp.syn */ | |
763 return num(x+y); | |
764 } | |
765 | |
766 static number ag_rp_69(double x) { | |
767 /* Line -, ss-fp.syn */ | |
768 return num(x); | |
769 } | |
770 | |
771 static double ag_rp_70(int d) { | |
772 /* Line -, ss-fp.syn */ | |
773 return d-'0'; | |
774 } | |
775 | |
776 static double ag_rp_71(double n, int d) { | |
777 /* Line -, ss-fp.syn */ | |
778 return 10*n+d-'0'; | |
779 } | |
780 | |
781 static double ag_rp_72(int d) { | |
782 /* Line -, ss-fp.syn */ | |
783 return (d-'0')/10.; | |
784 } | |
785 | |
786 static double ag_rp_73(int d, double f) { | |
787 /* Line -, ss-fp.syn */ | |
788 return (d-'0'+f)/10.; | |
789 } | |
790 | |
791 | |
792 #ifndef AG_TRACE_FILE_NAME | |
793 #define AG_TRACE_FILE_NAME "ss-fp.etr" | |
794 #endif | |
795 | |
796 static void ag_trace_error(void) { | |
797 FILE *ag_file = fopen(AG_TRACE_FILE_NAME, "w"); | |
798 int i; | |
799 if (ag_file == NULL) return; | |
800 fprintf(ag_file, "%d\n", (PCB).ssx); | |
801 for (i = 0; i < (PCB).ssx; i++) fprintf(ag_file, "%d\n", (PCB).ss[i]); | |
802 fprintf(ag_file, "%d\n", (PCB).sn); | |
803 fprintf(ag_file, "%d\n", (PCB).token_number); | |
804 fclose(ag_file); | |
805 } | |
806 | |
807 | |
808 #define READ_COUNTS ss-fp_read_counts() | |
809 #define WRITE_COUNTS ss-fp_write_counts() | |
810 unsigned ss-fp_nrc[183]; | |
811 void ss-fp_read_counts(void) { | |
812 FILE *ag_file = fopen("ss-fp.nrc", "r"); | |
813 int i; | |
814 | |
815 if (ag_file) { | |
816 long ag_file_id; | |
817 fscanf(ag_file, "%ld", &ag_file_id); | |
818 if (ag_file_id == 0L) { | |
819 for (i = 0; i < 183; i++) | |
820 fscanf(ag_file,"%u", &(ss-fp_nrc[i])); | |
821 fclose(ag_file); | |
822 return; | |
823 } | |
824 } | |
825 for (i = 0; i < 183; i++) ss-fp_nrc[i] = 0; | |
826 } | |
827 | |
828 void ss-fp_write_counts(void) { | |
829 FILE *ag_file = fopen("ss-fp.nrc", "w"); | |
830 int i; | |
831 | |
832 if (ag_file == NULL) return; | |
833 fprintf(ag_file, "%ld\n", 0L); | |
834 for (i = 0; i < 183; i++) | |
835 fprintf(ag_file,"%u\n", ss-fp_nrc[i]); | |
836 fclose(ag_file); | |
837 } | |
838 | |
839 | |
840 #undef V | |
841 #define V(i,t) (*t (&(PCB).vs[(PCB).ssx + i])) | |
842 #undef VS | |
843 #define VS(i) (PCB).vs[(PCB).ssx + i] | |
844 | |
845 #ifndef GET_CONTEXT | |
846 #define GET_CONTEXT CONTEXT = (PCB).input_context | |
847 #endif | |
848 | |
849 typedef enum { | |
850 ag_action_1, | |
851 ag_action_2, | |
852 ag_action_3, | |
853 ag_action_4, | |
854 ag_action_5, | |
855 ag_action_6, | |
856 ag_action_7, | |
857 ag_action_8, | |
858 ag_action_9, | |
859 ag_action_10, | |
860 ag_action_11, | |
861 ag_action_12 | |
862 } ag_parser_action; | |
863 | |
864 | |
865 #ifndef NULL_VALUE_INITIALIZER | |
866 #define NULL_VALUE_INITIALIZER = { 0 } | |
867 #endif | |
868 | |
869 static ss-fp_vs_type const ag_null_value NULL_VALUE_INITIALIZER; | |
870 | |
871 static const unsigned char ag_rpx[] = { | |
872 0, 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 0, 0, 0, 6, 7, 8, | |
873 9, 10, 11, 12, 13, 14, 15, 16, 17, 0, 18, 0, 19, 0, 20, 0, 21, 22, | |
874 23, 24, 25, 26, 27, 28, 0, 0, 0, 0, 29, 30, 0, 31, 32, 0, 33, 0, | |
875 34, 35, 0, 36, 37, 0, 38, 0, 39, 0, 0, 0, 40, 0, 41, 0, 42, 43, | |
876 44, 45, 46, 47, 0, 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, | |
877 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 68, 69, 70, 71, 72, 73 | |
878 }; | |
879 | |
880 static const unsigned char ag_key_itt[] = { | |
881 0 | |
882 }; | |
883 | |
884 static const unsigned short ag_key_pt[] = { | |
885 0 | |
886 }; | |
887 | |
888 static const unsigned char ag_key_ch[] = { | |
889 0, 66, 67, 83, 84,255, 72,255, 83,255, 79,255, 49,255, 71,255, 79,255, | |
890 72,255, 78,255, 84,255, 82,255, 73, 81,255, 72,255, 78,255, 65, 82,255, | |
891 65, 67, 69, 76, 80, 82, 83, 84,255, 66, 67, 83, 84,255, 72,255, 83,255, | |
892 79,255, 49,255, 71,255, 79,255, 72,255, 78,255, 84,255, 82,255, 73, 81, | |
893 255, 72,255, 78,255, 65, 82,255, 33, 46, 60, 61, 62, 65, 67, 69, 76, 80, | |
894 82, 83, 84,255, 33, 46, 60, 61, 62,255, 33, 60, 61, 62,255, 46,255 | |
895 }; | |
896 | |
897 static const unsigned char ag_key_act[] = { | |
898 0,3,3,3,3,4,0,4,1,4,2,4,3,4,1,4,2,4,0,4,1,4,0,4,1,4,2,2,4,0,4,1,4,2,3, | |
899 4,2,2,3,2,3,3,2,2,4,3,3,3,3,4,0,4,1,4,2,4,3,4,1,4,2,4,0,4,1,4,0,4,1,4, | |
900 2,2,4,0,4,1,4,2,3,4,3,3,3,3,3,2,2,3,2,3,3,2,2,4,3,3,3,3,3,4,3,3,3,3,4, | |
901 3,4 | |
902 }; | |
903 | |
904 static const unsigned char ag_key_parm[] = { | |
905 0,145,146,147,148, 0,149, 0,150, 0, 0, 0,152, 0,153, 0, 0, 0, | |
906 156, 0,157, 0,159, 0,158, 0, 0, 0, 0,160, 0,161, 0, 0,162, 0, | |
907 0, 0,151, 0,154,155, 0, 0, 0,145,146,147,148, 0,149, 0,150, 0, | |
908 0, 0,152, 0,153, 0, 0, 0,156, 0,157, 0,159, 0,158, 0, 0, 0, | |
909 0,160, 0,161, 0, 0,162, 0,137,143,134,136,135, 0, 0,151, 0,154, | |
910 155, 0, 0, 0,137,143,134,136,135, 0,137,134,136,135, 0,143, 0 | |
911 }; | |
912 | |
913 static const unsigned char ag_key_jmp[] = { | |
914 0, 0, 2, 5, 8, 0, 0, 0, 6, 0, 8, 0, 14, 0, 12, 0, 14, 0, | |
915 0, 0, 18, 0, 0, 0, 22, 0, 20, 24, 0, 0, 0, 29, 0, 31, 26, 0, | |
916 1, 10, 11, 16, 16, 21, 26, 33, 0, 41, 43, 46, 49, 0, 0, 0, 50, 0, | |
917 52, 0, 55, 0, 56, 0, 58, 0, 0, 0, 62, 0, 0, 0, 66, 0, 64, 68, | |
918 0, 0, 0, 73, 0, 75, 67, 0, 30, 32, 35, 37, 39, 45, 54, 52, 60, 57, | |
919 62, 70, 77, 0, 71, 73, 76, 78, 80, 0, 82, 84, 86, 88, 0, 90, 0 | |
920 }; | |
921 | |
922 static const unsigned char ag_key_index[] = { | |
923 36, 80, 36, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 36, 0, 80, 80, | |
924 36, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
925 0, 0, 0, 0, 36, 80, 80, 80, 80, 0, 0, 94, 36, 80, 0, 36, 94, 0, | |
926 100, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 0, 0, 0, 0, 0, 0, 94, | |
927 0, 36, 36, 36, 36, 36, 36, 36, 36, 0, 36, 36, 0, 0, 0, 0, 0, 0, | |
928 80, 0, 0, 0, 94, 94, 0,100, 0, 36,100, 0, 0, 0, 0, 0, 36, 0, | |
929 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,100, 0, 36, 36, | |
930 36, 36, 36, 36, 0, 0, 36,100,100,100,100,100,100, 0, 0, 0, 0, 36, | |
931 36, 0, 36, 36, 0, 0,105, 0, 36, 36, 0, 0, 0, 0, 0, 0, 0, 0, | |
932 0 | |
933 }; | |
934 | |
935 static const unsigned char ag_key_ends[] = { | |
936 83,0, 79,83,0, 73,78,0, 65,78,0, 88,80,0, 48,0, 79,87,49,48,0, | |
937 79,85,78,68,0, 85,78,67,0, 61,0, 46,46,0, 61,0, 61,0, 61,0, | |
938 83,0, 79,83,0, 73,78,0, 65,78,0, 88,80,0, 48,0, 79,87,49,48,0, | |
939 79,85,78,68,0, 85,78,67,0, 61,0, 46,46,0, 61,0, 61,0, 61,0, | |
940 61,0, 61,0, 61,0, 61,0, 46,46,0, | |
941 }; | |
942 | |
943 #define AG_TCV(x) ag_tcv[(x)] | |
944 | |
945 static const unsigned char ag_tcv[] = { | |
946 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, | |
947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,131, 0, 0, | |
948 0, 0,128, 0,130,129,140,138,119,139,116,114,164,125,125,125,125,125, | |
949 125,125,125,125,117,126,132,113,133, 0,115,120,165,163,118,165,123,124, | |
950 165,165,165,165,121,165,165,165,165,165,122,165,165,165,165,165,165,165, | |
951 165, 0, 0, 0,141, 0, 0,120,165,163,118,165,123,124,165,165,165,165, | |
952 121,165,165,165,165,165,122,165,165,165,165,165,165,165,165, 0,127, 0, | |
953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142,144, 0, | |
957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
958 0, 0, 0, 0, 0,112,110, 0, 0, 0, 0,142,144, 0, 0, 0, 0, 0, | |
959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
960 0,112,110,109 | |
961 }; | |
962 | |
963 #ifndef SYNTAX_ERROR | |
964 #define SYNTAX_ERROR fprintf(stderr,"%s\n", (PCB).error_message) | |
965 #endif | |
966 | |
967 #ifndef PARSER_STACK_OVERFLOW | |
968 #define PARSER_STACK_OVERFLOW {fprintf(stderr, \ | |
969 "\nParser stack overflow\n");} | |
970 #endif | |
971 | |
972 #ifndef REDUCTION_TOKEN_ERROR | |
973 #define REDUCTION_TOKEN_ERROR {fprintf(stderr, \ | |
974 "\nReduction token error\n");} | |
975 #endif | |
976 | |
977 | |
978 #ifndef INPUT_CODE | |
979 #define INPUT_CODE(T) (T) | |
980 #endif | |
981 | |
982 typedef enum | |
983 {ag_accept_key, ag_set_key, ag_jmp_key, ag_end_key, ag_no_match_key, | |
984 ag_cf_accept_key, ag_cf_set_key, ag_cf_end_key} key_words; | |
985 | |
986 static void ag_get_key_word(int ag_k) { | |
987 int ag_save = (int) ((PCB).la_ptr - (PCB).pointer); | |
988 const unsigned char *ag_p; | |
989 int ag_ch; | |
990 while (1) { | |
991 switch (ag_key_act[ag_k]) { | |
992 case ag_cf_end_key: { | |
993 const unsigned char *sp = ag_key_ends + ag_key_jmp[ag_k]; | |
994 do { | |
995 if ((ag_ch = *sp++) == 0) { | |
996 int ag_k1 = ag_key_parm[ag_k]; | |
997 int ag_k2 = ag_key_pt[ag_k1]; | |
998 if (ag_key_itt[ag_k2 + CONVERT_CASE(*(PCB).la_ptr)]) goto ag_fail; | |
999 (PCB).token_number = (ss-fp_token_type) ag_key_pt[ag_k1 + 1]; | |
1000 return; | |
1001 } | |
1002 } while (CONVERT_CASE(*(PCB).la_ptr++) == ag_ch); | |
1003 goto ag_fail; | |
1004 } | |
1005 case ag_end_key: { | |
1006 const unsigned char *sp = ag_key_ends + ag_key_jmp[ag_k]; | |
1007 do { | |
1008 if ((ag_ch = *sp++) == 0) { | |
1009 (PCB).token_number = (ss-fp_token_type) ag_key_parm[ag_k]; | |
1010 return; | |
1011 } | |
1012 } while (CONVERT_CASE(*(PCB).la_ptr++) == ag_ch); | |
1013 } | |
1014 case ag_no_match_key: | |
1015 ag_fail: | |
1016 (PCB).la_ptr = (PCB).pointer + ag_save; | |
1017 return; | |
1018 case ag_cf_set_key: { | |
1019 int ag_k1 = ag_key_parm[ag_k]; | |
1020 int ag_k2 = ag_key_pt[ag_k1]; | |
1021 ag_k = ag_key_jmp[ag_k]; | |
1022 if (ag_key_itt[ag_k2 + CONVERT_CASE(*(PCB).la_ptr)]) break; | |
1023 ag_save = (int) ((PCB).la_ptr - (PCB).pointer); | |
1024 (PCB).token_number = (ss-fp_token_type) ag_key_pt[ag_k1+1]; | |
1025 break; | |
1026 } | |
1027 case ag_set_key: | |
1028 ag_save = (int) ((PCB).la_ptr - (PCB).pointer); | |
1029 (PCB).token_number = (ss-fp_token_type) ag_key_parm[ag_k]; | |
1030 case ag_jmp_key: | |
1031 ag_k = ag_key_jmp[ag_k]; | |
1032 break; | |
1033 case ag_accept_key: | |
1034 (PCB).token_number = (ss-fp_token_type) ag_key_parm[ag_k]; | |
1035 return; | |
1036 case ag_cf_accept_key: { | |
1037 int ag_k1 = ag_key_parm[ag_k]; | |
1038 int ag_k2 = ag_key_pt[ag_k1]; | |
1039 if (ag_key_itt[ag_k2 + CONVERT_CASE(*(PCB).la_ptr)]) | |
1040 (PCB).la_ptr = (PCB).pointer + ag_save; | |
1041 else (PCB).token_number = (ss-fp_token_type) ag_key_pt[ag_k1+1]; | |
1042 return; | |
1043 } | |
1044 } | |
1045 ag_ch = CONVERT_CASE(*(PCB).la_ptr++); | |
1046 ag_p = &ag_key_ch[ag_k]; | |
1047 if (ag_ch <= 255) while (*ag_p < ag_ch) ag_p++; | |
1048 if (ag_ch > 255 || *ag_p != ag_ch) { | |
1049 (PCB).la_ptr = (PCB).pointer + ag_save; | |
1050 return; | |
1051 } | |
1052 ag_k = (int) (ag_p - ag_key_ch); | |
1053 } | |
1054 } | |
1055 | |
1056 | |
1057 static const unsigned char ag_tstt[] = { | |
1058 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1059 146,145,144,142,139,130,125,124,123,122,121,120,118,116,112,110,109,1,0, | |
1060 107,108, | |
1061 1,0, | |
1062 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1063 146,145,144,142,139,130,125,124,123,122,121,120,118,116,112,110,109,0,2, | |
1064 3,4,6,8,13,19,21,27,29,31,32,33,34,35,36,38,39,47,57,59,60,61,63,64,65, | |
1065 66,67,69,70,71,72,73,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90,91,92, | |
1066 93,94,95,96,97,98,99,100,104,105,106, | |
1067 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1068 146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,130,129,128, | |
1069 127,126,125,124,123,122,121,120,119,118,117,116,114,113,111,5,1,0,107, | |
1070 108, | |
1071 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1072 146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,130,129,128, | |
1073 127,126,125,124,123,122,121,120,119,118,117,116,114,113,111,5,1,0,107, | |
1074 108, | |
1075 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1076 146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,130,129,128, | |
1077 127,126,125,124,123,122,121,120,119,118,117,116,114,111,5,1,0,107,108, | |
1078 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1079 145,143,141,140,139,138,137,136,135,134,133,132,129,128,127,126,125,124, | |
1080 123,122,121,120,119,118,117,114,113,111,5,1,0,107,108, | |
1081 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1082 145,143,141,140,139,138,137,136,135,134,133,132,129,128,127,126,125,124, | |
1083 123,122,121,120,119,118,117,114,113,111,5,1,0,107,108, | |
1084 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1085 145,143,141,140,139,138,137,136,135,134,133,132,129,128,127,126,125,124, | |
1086 123,122,121,120,119,118,117,114,113,111,5,1,0,107,108, | |
1087 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1088 145,143,141,140,139,138,137,136,135,134,133,132,129,128,127,126,125,124, | |
1089 123,122,121,120,119,118,117,114,113,111,5,1,0,107,108, | |
1090 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1091 145,143,141,140,139,138,137,136,135,134,133,132,129,128,127,126,125,124, | |
1092 123,122,121,120,119,118,117,114,113,111,5,1,0,107,108, | |
1093 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1094 145,143,141,140,139,138,137,136,135,134,133,132,129,128,127,126,125,124, | |
1095 123,122,121,120,119,118,117,114,113,111,5,1,0,107,108, | |
1096 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1097 145,143,141,140,139,138,137,136,135,134,133,132,129,128,127,126,125,124, | |
1098 123,122,121,120,119,118,117,114,113,111,5,1,0,107,108, | |
1099 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1100 145,143,141,140,139,138,137,136,135,134,133,132,129,128,127,126,125,124, | |
1101 123,122,121,120,119,118,117,114,113,111,5,1,0,107,108, | |
1102 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1103 146,145,144,142,139,131,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1104 165,163,124,123,122,121,120,118,0,21,27,29,31,32,33,35,104,106, | |
1105 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1106 145,143,141,140,139,138,137,136,135,134,133,132,129,128,127,126,125,124, | |
1107 123,122,121,120,119,118,117,114,111,5,0, | |
1108 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1109 145,144,143,142,141,140,139,138,137,136,135,134,133,132,130,129,128,127, | |
1110 126,124,123,122,121,120,119,118,117,114,111,5,1,0,107,108, | |
1111 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1112 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,8,19,21,27, | |
1113 29,31,32,33,34,35,36,38,39,47,57,59,60,61,63,64,65,66,67,69,70,71,72,73, | |
1114 74,75,76,77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99, | |
1115 100,104,105,106, | |
1116 125,0,28,36, | |
1117 164,125,0,36,102,105, | |
1118 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1119 146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,130,129,128, | |
1120 127,126,125,124,123,122,121,120,119,118,117,116,114,111,5,0,19,36,100, | |
1121 101,105, | |
1122 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1123 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1124 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1125 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1126 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1127 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1128 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1129 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1130 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1131 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1132 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1133 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1134 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1135 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1136 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1137 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1138 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1139 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1140 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1141 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1142 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1143 145,144,143,142,141,140,139,138,137,136,135,134,133,132,130,129,128,127, | |
1144 126,124,123,122,121,120,119,118,117,114,111,5,0, | |
1145 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1146 145,144,143,142,141,140,139,138,137,136,135,134,133,132,130,129,128,127, | |
1147 126,124,123,122,121,120,119,118,117,114,111,5,0, | |
1148 162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,143, | |
1149 141,140,139,138,137,136,135,134,133,132,129,128,127,126,119,117,114,111, | |
1150 5,0, | |
1151 165,163,144,142,130,124,123,122,121,120,118,0,4,21,27,29,31,32,33,34,35,47, | |
1152 70,72,74,75,76,77,80,104,106, | |
1153 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1154 31,32,33,34,35,36,47,59,63,65,66,67,69,70,71,72,73,74,75,76,77,80,99, | |
1155 100,104,105,106, | |
1156 141,0,68, | |
1157 114,0,17, | |
1158 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1159 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1160 162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,0, | |
1161 64,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98, | |
1162 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1163 31,32,33,34,35,36,47,59,63,65,66,67,69,70,71,72,73,74,75,76,77,80,99, | |
1164 100,104,105,106, | |
1165 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1166 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1167 31,32,33,34,35,36,38,39,47,57,59,60,61,63,64,65,66,67,69,70,71,72,73,74, | |
1168 75,76,77,78,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99, | |
1169 100,104,105,106, | |
1170 140,0,62, | |
1171 165,163,124,123,122,121,120,118,1,0,107,108, | |
1172 139,138,117,0,22,58,59, | |
1173 165,163,124,123,122,121,120,118,115,1,0,107,108, | |
1174 165,163,124,123,122,121,120,118,1,0,107,108, | |
1175 165,163,124,123,122,121,120,118,0,4,21,27,29,31,32,33,34,35,104,106, | |
1176 111,5,0,9,10,11,12, | |
1177 165,163,124,123,122,121,120,118,115,0,4,7,16,21,27,29,31,32,33,34,35,104, | |
1178 106, | |
1179 165,163,124,123,122,121,120,118,0,4,21,27,29,31,32,33,34,35,104,106, | |
1180 129,0,48, | |
1181 164,125,0,36,105, | |
1182 164,125,0,36,102,105, | |
1183 164,125,0,36,102,105, | |
1184 165,163,124,123,122,121,120,118,0,4,21,27,29,31,32,33,34,35,104,106, | |
1185 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1186 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1187 31,32,33,34,35,36,47,59,63,65,66,67,69,70,71,72,73,74,75,76,77,80,99, | |
1188 100,104,105,106, | |
1189 165,164,163,144,142,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1190 165,164,163,144,142,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29,31, | |
1191 32,33,34,35,36,47,65,69,70,71,72,73,74,75,76,77,80,99,100,104,105,106, | |
1192 165,164,163,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1193 31,32,33,34,35,36,47,59,63,65,66,67,69,70,71,72,73,74,75,76,77,80,99, | |
1194 100,104,105,106, | |
1195 139,138,0,58,59, | |
1196 117,0,22, | |
1197 116,0,19, | |
1198 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1199 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1200 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1201 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1202 31,32,33,34,35,36,47,59,61,63,64,65,66,67,69,70,71,72,73,74,75,76,77,80, | |
1203 81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,104,105, | |
1204 106, | |
1205 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1206 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1207 31,32,33,34,35,36,47,57,59,60,61,63,64,65,66,67,69,70,71,72,73,74,75,76, | |
1208 77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,104, | |
1209 105,106, | |
1210 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1211 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1212 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1213 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1214 31,32,33,34,35,36,47,57,59,60,61,63,64,65,66,67,69,70,71,72,73,74,75,76, | |
1215 77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,104, | |
1216 105,106, | |
1217 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1218 146,145,144,142,139,131,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1219 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1220 146,145,144,142,139,131,130,125,124,123,122,121,120,118,116,0,4,19,21, | |
1221 27,29,31,32,33,34,35,36,38,39,40,42,44,46,47,49,50,57,59,60,61,63,64,65, | |
1222 66,67,69,70,71,72,73,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90,91,92, | |
1223 93,94,95,96,97,98,99,100,104,105,106, | |
1224 116,0,14,19, | |
1225 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1226 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1227 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1228 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,8,19,21,27, | |
1229 29,31,32,33,34,35,36,38,39,47,57,59,60,61,63,64,65,66,67,69,70,71,72,73, | |
1230 74,75,76,77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99, | |
1231 100,104,105,106, | |
1232 111,0,9,10, | |
1233 5,0, | |
1234 165,163,124,123,122,121,120,118,1,0,107,108, | |
1235 165,163,124,123,122,121,120,118,0,4,21,27,29,31,32,33,34,35,104,106, | |
1236 113,0,15, | |
1237 5,0, | |
1238 165,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146, | |
1239 145,144,143,142,141,140,139,138,137,136,135,134,133,132,130,129,128,127, | |
1240 126,124,123,122,121,120,119,118,117,114,111,5,1,0,107,108, | |
1241 116,0,19, | |
1242 165,163,124,123,122,121,120,118,0,21,27,29,31,32,33,77,104,106, | |
1243 165,163,124,123,122,121,120,118,116,0,19,20, | |
1244 140,0,62, | |
1245 140,0,62, | |
1246 130,1,0,107,108, | |
1247 137,136,135,134,133,132,0,51,52,53,54,55,56, | |
1248 130,0,47, | |
1249 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1250 146,145,144,142,139,131,130,125,124,123,122,121,120,118,116,0,4,8,19,21, | |
1251 27,29,31,32,33,34,35,36,38,39,40,42,44,46,47,49,50,57,59,60,61,63,64,65, | |
1252 66,67,69,70,71,72,73,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90,91,92, | |
1253 93,94,95,96,97,98,99,100,104,105,106, | |
1254 137,136,135,134,133,132,129,128,127,126,0, | |
1255 128,0,45, | |
1256 127,126,0,41,43, | |
1257 165,163,124,123,122,121,120,118,116,0,19,20, | |
1258 165,163,124,123,122,121,120,118,0,4,21,27,29,31,32,33,34,35,104,106, | |
1259 116,0,14,19, | |
1260 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1261 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1262 113,0,15, | |
1263 165,163,124,123,122,121,120,118,0,4,21,27,29,31,32,33,34,35,104,106, | |
1264 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1265 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1266 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1267 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1268 31,32,33,34,35,36,39,47,59,60,61,63,64,65,66,67,69,70,71,72,73,74,75,76, | |
1269 77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,104, | |
1270 105,106, | |
1271 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1272 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1273 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1274 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1275 31,32,33,34,35,36,39,47,59,60,61,63,64,65,66,67,69,70,71,72,73,74,75,76, | |
1276 77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,104, | |
1277 105,106, | |
1278 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1279 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1280 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1281 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1282 31,32,33,34,35,36,39,47,59,60,61,63,64,65,66,67,69,70,71,72,73,74,75,76, | |
1283 77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,104, | |
1284 105,106, | |
1285 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1286 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1287 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1288 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1289 31,32,33,34,35,36,39,47,59,60,61,63,64,65,66,67,69,70,71,72,73,74,75,76, | |
1290 77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,104, | |
1291 105,106, | |
1292 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1293 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1294 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1295 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1296 31,32,33,34,35,36,39,47,59,60,61,63,64,65,66,67,69,70,71,72,73,74,75,76, | |
1297 77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,104, | |
1298 105,106, | |
1299 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1300 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1301 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1302 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1303 31,32,33,34,35,36,39,47,59,60,61,63,64,65,66,67,69,70,71,72,73,74,75,76, | |
1304 77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,104, | |
1305 105,106, | |
1306 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1307 146,145,144,142,139,131,130,125,124,123,122,121,120,118,116,0,4,19,21, | |
1308 27,29,31,32,33,34,35,36,38,39,40,42,44,46,47,49,50,57,59,60,61,63,64,65, | |
1309 66,67,69,70,71,72,73,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90,91,92, | |
1310 93,94,95,96,97,98,99,100,104,105,106, | |
1311 137,136,135,134,133,132,129,0, | |
1312 129,127,0,43,48, | |
1313 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1314 146,145,144,142,139,131,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1315 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1316 146,145,144,142,139,131,130,125,124,123,122,121,120,118,116,0,4,19,21, | |
1317 27,29,31,32,33,34,35,36,38,39,44,46,47,49,50,57,59,60,61,63,64,65,66,67, | |
1318 69,70,71,72,73,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94, | |
1319 95,96,97,98,99,100,104,105,106, | |
1320 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1321 146,145,144,142,139,131,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1322 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1323 146,145,144,142,139,131,130,125,124,123,122,121,120,118,116,0,4,19,21, | |
1324 27,29,31,32,33,34,35,36,38,39,42,44,46,47,49,50,57,59,60,61,63,64,65,66, | |
1325 67,69,70,71,72,73,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90,91,92,93, | |
1326 94,95,96,97,98,99,100,104,105,106, | |
1327 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1328 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1329 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1330 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,8,19,21,27, | |
1331 29,31,32,33,34,35,36,38,39,47,57,59,60,61,63,64,65,66,67,69,70,71,72,73, | |
1332 74,75,76,77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99, | |
1333 100,104,105,106, | |
1334 5,0, | |
1335 165,163,124,123,122,121,120,118,0,4,21,27,29,31,32,33,34,35,104,106, | |
1336 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1337 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1338 31,32,33,34,35,36,38,39,47,57,59,60,61,63,64,65,66,67,69,70,71,72,73,74, | |
1339 75,76,77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99, | |
1340 100,104,105,106, | |
1341 139,138,0,58,59, | |
1342 139,138,0,58,59, | |
1343 139,138,0,58,59, | |
1344 139,138,0,58,59, | |
1345 139,138,0,58,59, | |
1346 139,138,0,58,59, | |
1347 129,127,0,43,48, | |
1348 128,0,45, | |
1349 114,0,17, | |
1350 119,0,24, | |
1351 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1352 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1353 31,32,33,34,35,36,47,59,60,61,63,64,65,66,67,69,70,71,72,73,74,75,76,77, | |
1354 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,104,105, | |
1355 106, | |
1356 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1357 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1358 31,32,33,34,35,36,47,59,60,61,63,64,65,66,67,69,70,71,72,73,74,75,76,77, | |
1359 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,104,105, | |
1360 106, | |
1361 120,0,18,21, | |
1362 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1363 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1364 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1365 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1366 31,32,33,34,35,36,38,39,47,57,59,60,61,63,64,65,66,67,69,70,71,72,73,74, | |
1367 75,76,77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99, | |
1368 100,104,105,106, | |
1369 117,0,22, | |
1370 5,0, | |
1371 143,0,79, | |
1372 163,122,121,0,23,29,31,104, | |
1373 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1374 146,145,144,142,139,130,125,124,123,122,121,120,118,116,1,0,107,108, | |
1375 165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147, | |
1376 146,145,144,142,139,130,125,124,123,122,121,120,118,116,0,4,19,21,27,29, | |
1377 31,32,33,34,35,36,38,39,47,57,59,60,61,63,64,65,66,67,69,70,71,72,73,74, | |
1378 75,76,77,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99, | |
1379 100,104,105,106, | |
1380 119,0,24, | |
1381 163,0,104, | |
1382 117,0,22, | |
1383 163,124,123,0,26,32,33,104, | |
1384 119,0,24, | |
1385 118,0,27, | |
1386 117,0,22, | |
1387 125,0,28,36, | |
1388 164,125,0,36,105, | |
1389 | |
1390 }; | |
1391 | |
1392 | |
1393 static unsigned const char ag_astt[5069] = { | |
1394 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3, | |
1395 7,1,1,9,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1396 1,1,1,1,7,0,1,2,1,1,1,3,1,1,1,1,1,1,1,1,2,3,1,1,3,1,1,3,3,1,1,1,1,1,1,1,1, | |
1397 3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,5,5,5,5,5,5,5,5, | |
1398 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1399 5,5,5,5,5,5,5,5,3,7,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, | |
1400 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5, | |
1401 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1402 5,5,5,5,5,5,5,5,5,5,3,7,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, | |
1403 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5, | |
1404 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1405 5,5,5,3,7,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, | |
1406 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1407 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3, | |
1408 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1409 5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1410 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5, | |
1411 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1412 5,5,5,5,3,7,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, | |
1413 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1414 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1,4,3,3,3,3, | |
1415 3,3,2,3,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, | |
1416 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1417 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1, | |
1418 1,1,1,1,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,2,1,3,1,1,1,1,1, | |
1419 1,1,1,2,3,1,1,3,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
1420 2,2,2,2,2,2,2,1,1,1,2,1,1,7,1,2,1,1,7,1,2,1,5,1,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1421 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,5,5,5,5,5,5,5,5,1,5,5,5, | |
1422 7,3,2,1,2,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5, | |
1423 5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5, | |
1424 5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5, | |
1425 5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5, | |
1426 5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5, | |
1427 5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5, | |
1428 5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5, | |
1429 5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5, | |
1430 5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5, | |
1431 5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1432 5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1433 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,5,5, | |
1434 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1435 5,5,5,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1436 5,5,5,5,5,7,1,1,1,1,1,1,1,1,1,1,1,5,2,1,1,1,1,1,1,1,1,1,2,2,3,2,1,2,2,1,1, | |
1437 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,1,1,2,3,1,1,1,1,1,1, | |
1438 3,3,2,1,2,2,1,1,1,2,1,1,7,1,1,5,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1439 5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1, | |
1440 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,3,1, | |
1441 1,1,1,1,1,1,1,2,1,1,2,3,1,1,1,1,1,1,3,3,2,1,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1, | |
1442 1,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,3,1,1,1,1,1,1,1,1,2, | |
1443 2,1,1,3,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
1444 2,2,2,2,1,1,1,2,1,1,5,1,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,5,1,1,1,5,5,5,5,5,5, | |
1445 5,5,5,3,7,1,3,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1,7,1,3,3,3,3,3,3,1,1, | |
1446 3,3,1,5,7,1,3,1,1,1,1,1,1,1,1,1,1,1,7,1,3,1,3,3,3,3,3,3,1,1,3,3,1,1,1,1,1, | |
1447 1,1,1,7,1,3,3,3,3,3,3,1,1,3,3,1,7,2,1,1,4,2,2,1,1,4,1,2,1,1,1,5,1,2,1,1,1, | |
1448 1,1,1,1,1,1,7,1,3,3,3,3,3,3,1,1,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3, | |
1449 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,1,1,2,3,1,1,1,1,1,1, | |
1450 3,3,2,1,2,2,1,1,1,2,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1, | |
1451 1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,1,2,1,3,3,3,3,3,2,1,2,2,1,1,1,2,1,1,1, | |
1452 1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,1,1,2,3,1,1,1,1,1,1,3,3, | |
1453 2,1,2,2,1,1,1,2,1,1,1,5,1,1,1,7,1,1,4,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1454 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1455 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,1,1,2,3,1,1,1,1,1, | |
1456 1,1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,1,1,1,1,1, | |
1457 1,1,1,1,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,2,3,1,1,1,1,1,1, | |
1458 1,1,2,1,2,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
1459 2,2,2,2,1,1,1,2,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, | |
1460 5,5,5,5,5,3,7,1,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,1,1,1,1, | |
1461 1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,1,2,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,2, | |
1462 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1463 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1464 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,3,1,1,1, | |
1465 3,1,1,1,1,3,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
1466 2,2,2,2,2,1,1,1,2,1,1,7,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, | |
1467 5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1468 1,1,1,1,1,1,1,1,1,1,7,2,3,3,1,1,1,1,1,1,1,1,2,3,1,1,3,1,1,3,3,1,1,1,1,1,1, | |
1469 1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,1,5,1,3,2,7, | |
1470 5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1,7,1,3,3,3,3,3,3,1,1,3,3,1,7,2,2,7, | |
1471 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1472 5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,7,1,1,1,1,1,1,1,1,1,7,3,3,3,3,3,3,1,3,3, | |
1473 5,5,5,5,5,5,5,5,1,7,3,1,1,4,1,1,4,1,5,3,7,1,3,1,1,1,1,1,1,7,1,1,1,1,1,1,1, | |
1474 7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7, | |
1475 2,1,3,1,1,1,1,1,1,1,1,2,1,1,1,1,3,1,1,1,1,3,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2, | |
1476 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,5,5,5,5,5,5,5,5,5,5,7, | |
1477 1,5,1,1,1,7,1,1,5,5,5,5,5,5,5,5,1,7,3,3,1,1,1,1,1,1,1,1,7,1,3,3,3,3,3,3,1, | |
1478 1,3,3,1,7,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, | |
1479 5,5,5,3,7,1,3,1,7,1,1,1,1,1,1,1,1,1,7,2,3,3,3,3,3,3,1,1,3,3,5,5,5,5,5,5,5, | |
1480 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1, | |
1481 1,1,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,2,3,1,1,1,1,1,1,1,1, | |
1482 2,1,1,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
1483 2,2,1,1,1,2,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, | |
1484 5,5,5,3,7,1,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,1,1,1,1,1,1, | |
1485 1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,1,1,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,2,2,2, | |
1486 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1487 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1488 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,1,1,1,1,3,3,1,1, | |
1489 1,1,1,1,1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,5,5, | |
1490 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1, | |
1491 1,1,1,1,1,1,1,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,2,3,1,1,1, | |
1492 1,1,1,1,1,2,1,1,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
1493 2,2,2,2,2,2,2,1,1,1,2,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, | |
1494 5,5,5,5,5,5,5,5,3,7,1,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,1, | |
1495 1,1,1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,1,1,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2, | |
1496 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,5,5,5,5,5,5,5,5,5,5,5, | |
1497 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1,1,1,1, | |
1498 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,1,1,1, | |
1499 1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1, | |
1500 1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1501 7,2,3,1,1,1,1,1,1,1,1,2,3,1,1,1,3,1,1,1,1,3,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2, | |
1502 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,5,5,5,5,5,5,5,7,1,1,7, | |
1503 1,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3, | |
1504 7,1,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,1,1,1,1,1,1,1,1,1,1, | |
1505 7,2,3,1,1,1,1,1,1,1,1,2,3,1,2,1,1,1,1,3,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2, | |
1506 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1507 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1,1,1,1,1, | |
1508 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,3,1,1, | |
1509 3,1,1,1,1,3,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
1510 2,2,2,2,2,1,1,1,2,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, | |
1511 5,5,5,5,5,5,3,7,1,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,1,1,1, | |
1512 1,1,1,1,1,1,7,2,2,3,1,1,1,1,1,1,1,1,2,3,1,1,3,1,1,3,3,1,1,1,1,1,1,1,1,3,3, | |
1513 2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,2,7,1,1,1,1,1,1,1,1, | |
1514 7,1,3,3,3,3,3,3,1,1,3,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,1, | |
1515 1,1,1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,1,1,1,3,1,1,3,3,1,1,1,1,1,1,1,1,3, | |
1516 3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,1,1,4,1,1,1,1,4,1, | |
1517 1,1,1,4,1,1,1,1,4,1,1,1,1,4,1,1,1,1,4,1,1,1,1,7,1,2,1,4,1,1,7,1,1,7,1,1,1, | |
1518 1,1,1,1,1,1,1,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,2,3,1,1,1, | |
1519 1,1,1,1,1,2,1,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
1520 2,2,2,2,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1521 1,1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,1,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2, | |
1522 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,1,7,1,1,5,5,5,5,5,5,5,5,5, | |
1523 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1,1, | |
1524 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,2,3,1,1,1,1,1,1,1,1,2,1, | |
1525 1,1,3,1,1,3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
1526 2,2,1,1,1,2,1,1,7,1,2,7,1,7,1,1,1,1,7,1,2,2,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1527 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1528 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,3,1,1,1,1,1,1,1,1,2,2,1,1,3,1,1, | |
1529 3,3,1,1,1,1,1,1,1,1,3,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1, | |
1530 2,1,1,7,1,1,7,1,1,7,1,1,1,1,7,1,2,2,2,1,7,1,1,7,1,1,7,1,1,7,1,2,1,1,4,2,2 | |
1531 }; | |
1532 | |
1533 | |
1534 static const unsigned char ag_pstt[] = { | |
1535 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1536 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122, | |
1537 0,1,2, | |
1538 123,125, | |
1539 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1540 8,9,6,7,13,10,5,53,55,56,2,0,60,68,59,58,57,109,16,16,16,16,16,16,19,15, | |
1541 103,27,54,18,45,45,52,51,53,50,49,47,46,44,43,42,41,67,69,70,51,72,74, | |
1542 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1543 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1544 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1545 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,3,1, | |
1546 142, | |
1547 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1548 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1549 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,4,1, | |
1550 181, | |
1551 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1552 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1553 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,5,1,133, | |
1554 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1555 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1556 124,124,124,124,124,124,124,124,124,124,124,122,6,1,139, | |
1557 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1558 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1559 124,124,124,124,124,124,124,124,124,124,124,122,7,1,138, | |
1560 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1561 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1562 124,124,124,124,124,124,124,124,124,124,124,122,8,1,141, | |
1563 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1564 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1565 124,124,124,124,124,124,124,124,124,124,124,122,9,1,140, | |
1566 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1567 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1568 124,124,124,124,124,124,124,124,124,124,124,122,10,1,135, | |
1569 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1570 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1571 124,124,124,124,124,124,124,124,124,124,124,122,11,1,180, | |
1572 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1573 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1574 124,124,124,124,124,124,124,124,124,124,124,122,12,1,182, | |
1575 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1576 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1577 124,124,124,124,124,124,124,124,124,124,124,122,13,1,137, | |
1578 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1579 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,14,1, | |
1580 147, | |
1581 12,11,8,9,6,7,13,10,24,107,107,107,107,107,107,23,107,107, | |
1582 107,107,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108, | |
1583 108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,107,107, | |
1584 107,107,107,107,108,107,108,108,108,108,16, | |
1585 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1586 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1587 124,124,124,124,124,124,124,124,124,124,124,124,122,17,1,159, | |
1588 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1589 8,9,6,7,13,10,5,18,68,61,109,16,16,16,16,16,16,19,15,103,27,54,18,45,45, | |
1590 52,51,53,50,49,47,46,44,43,42,41,67,69,70,51,72,74,80,81,82,83,84,85,86, | |
1591 87,88,89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1592 3,19,62,25, | |
1593 4,3,20,63,102,63, | |
1594 98,4,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98, | |
1595 98,98,98,98,98,98,98,98,98,98,98,98,98,98,3,98,98,98,98,98,98,98,98,5, | |
1596 98,98,98,21,109,104,64,100,104, | |
1597 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,22,1,179, | |
1598 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,23,1,178, | |
1599 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,24,1,177, | |
1600 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,25,1,176, | |
1601 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,26,1,175, | |
1602 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,27,1,174, | |
1603 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,28,1,173, | |
1604 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,29,1,172, | |
1605 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,30,1,171, | |
1606 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,31,1,170, | |
1607 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,32,1,169, | |
1608 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,33,1,168, | |
1609 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,34,1,167, | |
1610 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,35,1,166, | |
1611 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,36,1,165, | |
1612 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,37,1,164, | |
1613 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,38,1,163, | |
1614 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,39,1,162, | |
1615 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1616 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,40,1,156, | |
1617 65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,77,65, | |
1618 65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65, | |
1619 41, | |
1620 64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,76,64, | |
1621 64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64, | |
1622 42, | |
1623 63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,78,63,63,63,63,63, | |
1624 63,63,63,63,63,63,63,63,63,63,63,63,63,43, | |
1625 12,11,48,17,14,8,9,6,7,13,10,61,68,16,16,16,16,16,16,19,15,18,62,66,69,70, | |
1626 65,72,74,16,16, | |
1627 12,4,11,48,17,40,14,3,8,9,6,7,13,10,5,45,68,109,16,16,16,16,16,16,19,15,103, | |
1628 18,45,58,59,47,46,44,43,42,41,67,69,70,65,72,74,21,20,16,103,16, | |
1629 66,46,67, | |
1630 68,56,69, | |
1631 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1632 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,48,1,161, | |
1633 22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,59,70,80,81,82,83,84, | |
1634 85,86,87,88,89,90,91,92,93,94,95,96,97, | |
1635 12,4,11,48,17,40,14,3,8,9,6,7,13,10,5,50,68,109,16,16,16,16,16,16,19,15,103, | |
1636 18,45,54,59,47,46,44,43,42,41,67,69,70,65,72,74,21,20,16,103,16, | |
1637 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1638 8,9,6,7,13,10,5,51,73,109,16,16,16,16,16,16,19,15,103,75,71,18,45,45,52, | |
1639 51,53,50,49,47,46,44,43,42,41,67,69,70,51,72,72,74,80,81,82,83,84,85,86, | |
1640 87,88,89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1641 74,48,75, | |
1642 124,124,124,124,124,124,124,124,122,53,1,129, | |
1643 40,77,79,44,80,78,76, | |
1644 124,124,124,124,124,124,124,124,124,122,55,1,127, | |
1645 124,124,124,124,124,124,124,124,122,56,1,126, | |
1646 12,11,8,9,6,7,13,10,57,81,107,107,107,107,107,107,19,15,107,107, | |
1647 82,6,58,83,4,84,85, | |
1648 12,11,8,9,6,7,13,10,86,59,88,2,87,107,107,107,107,107,107,19,15,107,107, | |
1649 12,11,8,9,6,7,13,10,60,89,107,107,107,107,107,107,19,15,107,107, | |
1650 90,61,79, | |
1651 4,3,22,26,26, | |
1652 4,3,105,63,106,63, | |
1653 4,3,99,63,101,63, | |
1654 12,11,8,9,6,7,13,10,65,91,107,107,107,107,107,107,19,15,107,107, | |
1655 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,66,1,158, | |
1656 12,4,11,48,17,40,14,3,8,9,6,7,13,10,5,67,68,109,16,16,16,16,16,16,19,15,103, | |
1657 18,45,57,59,47,46,44,43,42,41,67,69,70,65,72,74,21,20,16,103,16, | |
1658 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,68,1,131, | |
1659 12,4,11,48,17,14,3,8,9,6,7,13,10,5,69,68,109,16,16,16,16,16,16,19,15,103,18, | |
1660 60,44,63,64,65,67,69,70,65,72,74,21,20,16,103,16, | |
1661 12,4,11,48,17,40,14,3,8,9,6,7,13,10,5,70,68,109,16,16,16,16,16,16,19,15,103, | |
1662 18,45,55,59,47,46,44,43,42,41,67,69,70,65,72,74,21,20,16,103,16, | |
1663 40,77,44,78,76, | |
1664 79,72,92, | |
1665 5,68,93, | |
1666 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1667 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,74,1,157, | |
1668 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1669 8,9,6,7,13,10,5,75,68,109,16,16,16,16,16,16,19,15,103,18,45,52,53,50,49, | |
1670 47,46,44,43,42,41,67,69,70,65,72,74,80,81,82,83,84,85,86,87,88,89,90,91, | |
1671 92,93,94,95,96,97,21,20,16,103,16, | |
1672 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1673 8,9,6,7,13,10,5,76,68,109,16,16,16,16,16,16,19,15,103,18,47,45,94,51,53, | |
1674 50,49,47,46,44,43,42,41,67,69,70,51,72,74,80,81,82,83,84,85,86,87,88,89, | |
1675 90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1676 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1677 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,77,1,155, | |
1678 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1679 8,9,6,7,13,10,5,78,68,109,16,16,16,16,16,16,19,15,103,18,46,45,95,51,53, | |
1680 50,49,47,46,44,43,42,41,67,69,70,51,72,74,80,81,82,83,84,85,86,87,88,89, | |
1681 90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1682 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1683 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,79,1, | |
1684 134, | |
1685 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,96, | |
1686 14,3,8,9,6,7,13,10,5,80,68,109,16,16,16,16,16,16,19,15,103,42,71,102, | |
1687 101,31,100,99,98,97,45,45,52,51,53,50,49,47,46,44,43,42,41,67,69,70,51, | |
1688 72,74,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,21,20,16, | |
1689 103,16, | |
1690 5,81,104,103, | |
1691 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1692 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,82,1,128, | |
1693 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1694 8,9,6,7,13,10,5,83,68,3,109,16,16,16,16,16,16,19,15,103,27,54,18,45,45, | |
1695 52,51,53,50,49,47,46,44,43,42,41,67,69,70,51,72,74,80,81,82,83,84,85,86, | |
1696 87,88,89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1697 82,7,83,5, | |
1698 8,85, | |
1699 124,124,124,124,124,124,124,124,122,86,1,132, | |
1700 12,11,8,9,6,7,13,10,87,105,107,107,107,107,107,107,19,15,107,107, | |
1701 106,88,10, | |
1702 1,89, | |
1703 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1704 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1705 124,124,124,124,124,124,124,124,124,124,124,124,122,90,1,146, | |
1706 5,91,93, | |
1707 12,11,8,9,6,7,13,10,92,108,108,108,108,108,108,107,108,108, | |
1708 12,12,12,12,12,12,12,12,5,93,13,108, | |
1709 74,50,75, | |
1710 74,49,75, | |
1711 124,122,96,1,148, | |
1712 109,111,113,115,117,119,97,120,118,116,114,112,110, | |
1713 14,98,121, | |
1714 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,96, | |
1715 14,3,8,9,6,7,13,10,5,99,68,61,109,16,16,16,16,16,16,19,15,103,122,54, | |
1716 123,101,31,100,99,98,97,45,45,52,51,53,50,49,47,46,44,43,42,41,67,69,70, | |
1717 51,72,74,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,21,20,16, | |
1718 103,16, | |
1719 43,43,43,43,43,43,33,33,33,33,100, | |
1720 124,29,125, | |
1721 126,128,102,129,127, | |
1722 12,12,12,12,12,12,12,12,5,103,13,14, | |
1723 12,11,8,9,6,7,13,10,104,130,107,107,107,107,107,107,19,15,107,107, | |
1724 5,105,131,103, | |
1725 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1726 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,106,1,130, | |
1727 106,107,132, | |
1728 12,11,8,9,6,7,13,10,108,71,107,107,107,107,107,107,19,15,107,107, | |
1729 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1730 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,109,1,154, | |
1731 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1732 8,9,6,7,13,10,5,110,68,109,16,16,16,16,16,16,19,15,103,133,18,45,52,51, | |
1733 53,50,49,47,46,44,43,42,41,67,69,70,65,72,74,80,81,82,83,84,85,86,87,88, | |
1734 89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1735 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1736 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,111,1,153, | |
1737 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1738 8,9,6,7,13,10,5,112,68,109,16,16,16,16,16,16,19,15,103,134,18,45,52,51, | |
1739 53,50,49,47,46,44,43,42,41,67,69,70,65,72,74,80,81,82,83,84,85,86,87,88, | |
1740 89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1741 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1742 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,113,1,152, | |
1743 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1744 8,9,6,7,13,10,5,114,68,109,16,16,16,16,16,16,19,15,103,135,18,45,52,51, | |
1745 53,50,49,47,46,44,43,42,41,67,69,70,65,72,74,80,81,82,83,84,85,86,87,88, | |
1746 89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1747 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1748 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,115,1,151, | |
1749 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1750 8,9,6,7,13,10,5,116,68,109,16,16,16,16,16,16,19,15,103,136,18,45,52,51, | |
1751 53,50,49,47,46,44,43,42,41,67,69,70,65,72,74,80,81,82,83,84,85,86,87,88, | |
1752 89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1753 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1754 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,117,1,150, | |
1755 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1756 8,9,6,7,13,10,5,118,68,109,16,16,16,16,16,16,19,15,103,137,18,45,52,51, | |
1757 53,50,49,47,46,44,43,42,41,67,69,70,65,72,74,80,81,82,83,84,85,86,87,88, | |
1758 89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1759 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1760 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,119,1,149, | |
1761 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1762 8,9,6,7,13,10,5,120,68,109,16,16,16,16,16,16,19,15,103,138,18,45,52,51, | |
1763 53,50,49,47,46,44,43,42,41,67,69,70,65,72,74,80,81,82,83,84,85,86,87,88, | |
1764 89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1765 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,96, | |
1766 14,3,8,9,6,7,13,10,5,121,68,109,16,16,16,16,16,16,19,15,103,42,71,139, | |
1767 101,31,100,99,98,97,45,45,52,51,53,50,49,47,46,44,43,42,41,67,69,70,51, | |
1768 72,74,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,21,20,16, | |
1769 103,16, | |
1770 42,42,42,42,42,42,27,122, | |
1771 90,126,123,127,34, | |
1772 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1773 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,124,1, | |
1774 145, | |
1775 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,96, | |
1776 14,3,8,9,6,7,13,10,5,125,68,109,16,16,16,16,16,16,19,15,103,42,71,32, | |
1777 100,99,98,97,45,45,52,51,53,50,49,47,46,44,43,42,41,67,69,70,51,72,74, | |
1778 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1779 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1780 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,126,1, | |
1781 144, | |
1782 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,96, | |
1783 14,3,8,9,6,7,13,10,5,127,68,109,16,16,16,16,16,16,19,15,103,42,71,140, | |
1784 31,100,99,98,97,45,45,52,51,53,50,49,47,46,44,43,42,41,67,69,70,51,72, | |
1785 74,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,21,20,16,103, | |
1786 16, | |
1787 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1788 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,128,1,143, | |
1789 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1790 8,9,6,7,13,10,5,129,68,28,109,16,16,16,16,16,16,19,15,103,27,54,18,45, | |
1791 45,52,51,53,50,49,47,46,44,43,42,41,67,69,70,51,72,74,80,81,82,83,84,85, | |
1792 86,87,88,89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1793 9,130, | |
1794 12,11,8,9,6,7,13,10,131,141,107,107,107,107,107,107,19,15,107,107, | |
1795 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1796 8,9,6,7,13,10,5,132,68,109,16,16,16,16,16,16,19,15,103,142,71,18,45,45, | |
1797 52,51,53,50,49,47,46,44,43,42,41,67,69,70,51,72,74,80,81,82,83,84,85,86, | |
1798 87,88,89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1799 40,77,41,144,143, | |
1800 40,77,40,144,143, | |
1801 40,77,39,144,143, | |
1802 40,77,38,144,143, | |
1803 40,77,37,144,143, | |
1804 40,77,36,144,143, | |
1805 90,126,139,127,35, | |
1806 124,30,125, | |
1807 68,141,145, | |
1808 146,142,147, | |
1809 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1810 8,9,6,7,13,10,5,143,68,109,16,16,16,16,16,16,19,15,103,18,45,94,51,53, | |
1811 50,49,47,46,44,43,42,41,67,69,70,65,72,74,80,81,82,83,84,85,86,87,88,89, | |
1812 90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1813 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1814 8,9,6,7,13,10,5,144,68,109,16,16,16,16,16,16,19,15,103,18,45,95,51,53, | |
1815 50,49,47,46,44,43,42,41,67,69,70,65,72,74,80,81,82,83,84,85,86,87,88,89, | |
1816 90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1817 13,145,149,148, | |
1818 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1819 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,146,1,136, | |
1820 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1821 8,9,6,7,13,10,5,147,68,109,16,16,16,16,16,16,19,15,103,150,71,18,45,45, | |
1822 52,51,53,50,49,47,46,44,43,42,41,67,69,70,51,72,74,80,81,82,83,84,85,86, | |
1823 87,88,89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1824 79,148,151, | |
1825 11,149, | |
1826 152,150,153, | |
1827 11,6,7,151,154,16,18,17, | |
1828 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1829 124,124,124,124,124,124,124,124,124,124,124,124,124,124,122,152,1,160, | |
1830 12,4,11,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,48,17,40,14,3, | |
1831 8,9,6,7,13,10,5,153,68,109,16,16,16,16,16,16,19,15,103,73,71,18,45,45, | |
1832 52,51,53,50,49,47,46,44,43,42,41,67,69,70,51,72,74,80,81,82,83,84,85,86, | |
1833 87,88,89,90,91,92,93,94,95,96,97,21,20,16,103,16, | |
1834 146,154,155, | |
1835 11,155,156, | |
1836 79,156,157, | |
1837 11,8,9,157,158,20,21,19, | |
1838 146,158,159, | |
1839 10,159,160, | |
1840 79,160,161, | |
1841 3,161,162,25, | |
1842 4,3,15,26,26, | |
1843 | |
1844 }; | |
1845 | |
1846 | |
1847 static const unsigned short ag_sbt[] = { | |
1848 0, 40, 42, 140, 197, 254, 310, 362, 414, 466, 518, 570, 622, 674, | |
1849 726, 764, 782, 830, 883, 974, 978, 984,1042,1061,1080,1099,1118,1137, | |
1850 1156,1175,1194,1213,1232,1251,1270,1289,1308,1327,1346,1365,1384,1421, | |
1851 1471,1521,1560,1591,1639,1642,1645,1682,1720,1768,1859,1862,1874,1881, | |
1852 1894,1906,1926,1933,1956,1976,1979,1984,1990,1996,2016,2035,2083,2101, | |
1853 2144,2192,2197,2200,2203,2240,2326,2414,2451,2539,2577,2674,2678,2715, | |
1854 2806,2810,2812,2824,2844,2847,2849,2902,2905,2923,2935,2938,2941,2946, | |
1855 2959,2962,3060,3071,3074,3079,3091,3111,3115,3152,3155,3175,3212,3300, | |
1856 3337,3425,3462,3550,3587,3675,3712,3800,3837,3925,4022,4030,4035,4073, | |
1857 4168,4206,4302,4339,4430,4432,4452,4542,4547,4552,4557,4562,4567,4572, | |
1858 4577,4580,4583,4586,4673,4760,4764,4801,4891,4894,4896,4899,4907,4944, | |
1859 5034,5037,5040,5043,5051,5054,5057,5060,5064,5069 | |
1860 }; | |
1861 | |
1862 | |
1863 static const unsigned short ag_sbe[] = { | |
1864 37, 41, 78, 194, 251, 307, 359, 411, 463, 515, 567, 619, 671, 723, | |
1865 761, 772, 829, 880, 916, 975, 980,1036,1058,1077,1096,1115,1134,1153, | |
1866 1172,1191,1210,1229,1248,1267,1286,1305,1324,1343,1362,1381,1418,1470, | |
1867 1520,1559,1571,1606,1640,1643,1679,1700,1735,1801,1860,1871,1877,1891, | |
1868 1903,1914,1928,1942,1964,1977,1981,1986,1992,2004,2032,2050,2098,2115, | |
1869 2159,2194,2198,2201,2237,2273,2359,2448,2484,2574,2611,2675,2712,2748, | |
1870 2807,2811,2821,2832,2845,2848,2899,2903,2913,2932,2936,2939,2943,2952, | |
1871 2960,2996,3070,3072,3076,3088,3099,3112,3149,3153,3163,3209,3245,3334, | |
1872 3370,3459,3495,3584,3620,3709,3745,3834,3870,3959,4029,4032,4070,4107, | |
1873 4203,4240,4336,4372,4431,4440,4485,4544,4549,4554,4559,4564,4569,4574, | |
1874 4578,4581,4584,4619,4706,4761,4798,4834,4892,4895,4897,4902,4941,4977, | |
1875 5035,5038,5041,5046,5052,5055,5058,5061,5066,5069 | |
1876 }; | |
1877 | |
1878 | |
1879 static const unsigned char ag_fl[] = { | |
1880 2,3,2,2,1,2,0,1,3,5,2,7,0,1,2,11,1,1,1,1,1,1,2,2,1,1,2,1,5,1,3,1,3,1,3, | |
1881 4,3,3,3,3,3,3,1,1,1,1,3,3,1,3,3,1,3,1,2,3,1,3,2,1,3,1,2,1,1,1,2,1,1,1, | |
1882 1,5,1,10,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,2,3,2,1,2, | |
1883 1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
1884 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, | |
1885 2,2,2,2,2,2,2,2 | |
1886 }; | |
1887 | |
1888 static const unsigned char ag_ptt[] = { | |
1889 0, 2, 2, 10, 11, 11, 12, 12, 2, 2, 7, 7, 20, 20, 14, 18, 23, 23, | |
1890 23, 26, 26, 26, 4, 34, 34, 28, 28, 8, 8, 40, 40, 42, 42, 44, 44, 44, | |
1891 46, 46, 46, 46, 46, 46, 50, 50, 38, 38, 38, 38, 39, 39, 39, 60, 60, 61, | |
1892 61, 61, 63, 63, 63, 66, 66, 65, 65, 65, 69, 69, 69, 71, 72, 72, 72, 72, | |
1893 70, 57, 76, 78, 67, 67, 67, 74, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | |
1894 64, 64, 64, 64, 64, 64, 64, 64,101,101, 73, 73, 73, 99, 99,102,102, 35, | |
1895 77,100, 25, 30, 37, 37,103,103,103,103,103,103,103,103,107,107,108,108, | |
1896 3, 6, 9, 13, 15, 17, 16, 19, 22, 27, 24, 21, 29, 31, 32, 33, 36, 41, | |
1897 43, 45, 48, 47, 49, 51, 52, 53, 54, 55, 56, 58, 59, 62, 68, 75, 79, 80, | |
1898 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, | |
1899 104,105,106 | |
1900 }; | |
1901 | |
1902 | |
1903 static void ag_ra(void) | |
1904 { | |
1905 switch(ag_rpx[(PCB).ag_ap]) { | |
1906 case 1: ag_rp_1(V(1,(pair<int> *))); break; | |
1907 case 2: ag_rp_2(V(0,(number *))); break; | |
1908 case 3: ag_rp_3(V(1,(pair<int> *)), V(3,(pair<int> *))); break; | |
1909 case 4: ag_rp_4(V(0,(pair<int> *))); break; | |
1910 case 5: ag_rp_5(V(1,(pair<int> *)), V(3,(pair<int> *)), V(5,(format_code *))); break; | |
1911 case 6: V(0,(format_code *)) = ag_rp_6(V(2,(int *)), V(6,(int *)), V(10,(int *))); break; | |
1912 case 7: V(0,(int *)) = ag_rp_7(); break; | |
1913 case 8: V(0,(int *)) = ag_rp_8(); break; | |
1914 case 9: V(0,(int *)) = ag_rp_9(); break; | |
1915 case 10: V(0,(int *)) = ag_rp_10(); break; | |
1916 case 11: V(0,(int *)) = ag_rp_11(); break; | |
1917 case 12: V(0,(int *)) = ag_rp_12(); break; | |
1918 case 13: V(0,(pair<int> *)) = ag_rp_13(V(0,(int *)), V(1,(int *))); break; | |
1919 case 14: V(0,(int *)) = ag_rp_14(V(0,(int *)), V(1,(int *))); break; | |
1920 case 15: V(0,(int *)) = ag_rp_15(V(0,(int *))); break; | |
1921 case 16: V(0,(int *)) = ag_rp_16(V(0,(int *))); break; | |
1922 case 17: V(0,(int *)) = ag_rp_17(V(0,(int *)), V(1,(int *))); break; | |
1923 case 18: V(0,(number *)) = ag_rp_18(V(0,(number *)), V(2,(number *)), V(4,(number *))); break; | |
1924 case 19: V(0,(number *)) = ag_rp_19(V(0,(number *)), V(2,(number *))); break; | |
1925 case 20: V(0,(number *)) = ag_rp_20(V(0,(number *)), V(2,(number *))); break; | |
1926 case 21: V(0,(number *)) = ag_rp_21(V(1,(number *))); break; | |
1927 case 22: V(0,(number *)) = ag_rp_22(V(2,(number *))); break; | |
1928 case 23: V(0,(number *)) = ag_rp_23(V(0,(number *)), V(2,(number *))); break; | |
1929 case 24: V(0,(number *)) = ag_rp_24(V(0,(number *)), V(2,(number *))); break; | |
1930 case 25: V(0,(number *)) = ag_rp_25(V(0,(number *)), V(2,(number *))); break; | |
1931 case 26: V(0,(number *)) = ag_rp_26(V(0,(number *)), V(2,(number *))); break; | |
1932 case 27: V(0,(number *)) = ag_rp_27(V(0,(number *)), V(2,(number *))); break; | |
1933 case 28: V(0,(number *)) = ag_rp_28(V(0,(number *)), V(2,(number *))); break; | |
1934 case 29: V(0,(number *)) = ag_rp_29(V(0,(number *)), V(2,(number *))); break; | |
1935 case 30: V(0,(number *)) = ag_rp_30(V(0,(number *)), V(2,(number *))); break; | |
1936 case 31: V(0,(number *)) = ag_rp_31(V(0,(number *)), V(2,(number *))); break; | |
1937 case 32: V(0,(number *)) = ag_rp_32(V(0,(number *)), V(2,(number *))); break; | |
1938 case 33: V(0,(number *)) = ag_rp_33(V(0,(number *)), V(2,(number *))); break; | |
1939 case 34: V(0,(number *)) = ag_rp_34(V(0,(function_name *)), V(1,(number *))); break; | |
1940 case 35: V(0,(number *)) = ag_rp_35(V(0,(number *)), V(1,(function_name *)), V(2,(number *))); break; | |
1941 case 36: V(0,(number *)) = ag_rp_36(V(0,(number *)), V(2,(number *))); break; | |
1942 case 37: V(0,(number *)) = ag_rp_37(V(1,(number *))); break; | |
1943 case 38: V(0,(number *)) = ag_rp_38(V(0,(number *)), V(2,(number *))); break; | |
1944 case 39: V(0,(number *)) = ag_rp_39(V(0,(number *)), V(1,(number *))); break; | |
1945 case 40: V(0,(number *)) = ag_rp_40(V(0,(number *)), V(1,(number *))); break; | |
1946 case 41: V(0,(number *)) = ag_rp_41(V(0,(pair<int> *))); break; | |
1947 case 42: V(0,(number *)) = ag_rp_42(); break; | |
1948 case 43: V(0,(number *)) = ag_rp_43(V(1,(pair<int> *)), V(4,(pair<int> *))); break; | |
1949 case 44: V(0,(number *)) = ag_rp_44(V(0,(int *))); break; | |
1950 case 45: V(0,(number *)) = ag_rp_45(V(0,(char * *)), V(1,(char * *)), V(3,(int *)), V(5,(number *)), V(7,(number *)), V(9,(number *))); break; | |
1951 case 46: V(0,(char * *)) = ag_rp_46(); break; | |
1952 case 47: V(0,(char * *)) = ag_rp_47(); break; | |
1953 case 48: V(0,(number *)) = ag_rp_48(V(1,(number *))); break; | |
1954 case 49: V(0,(function_name *)) = ag_rp_49(); break; | |
1955 case 50: V(0,(function_name *)) = ag_rp_50(); break; | |
1956 case 51: V(0,(function_name *)) = ag_rp_51(); break; | |
1957 case 52: V(0,(function_name *)) = ag_rp_52(); break; | |
1958 case 53: V(0,(function_name *)) = ag_rp_53(); break; | |
1959 case 54: V(0,(function_name *)) = ag_rp_54(); break; | |
1960 case 55: V(0,(function_name *)) = ag_rp_55(); break; | |
1961 case 56: V(0,(function_name *)) = ag_rp_56(); break; | |
1962 case 57: V(0,(function_name *)) = ag_rp_57(); break; | |
1963 case 58: V(0,(function_name *)) = ag_rp_58(); break; | |
1964 case 59: V(0,(function_name *)) = ag_rp_59(); break; | |
1965 case 60: V(0,(function_name *)) = ag_rp_60(); break; | |
1966 case 61: V(0,(function_name *)) = ag_rp_61(); break; | |
1967 case 62: V(0,(function_name *)) = ag_rp_62(); break; | |
1968 case 63: V(0,(function_name *)) = ag_rp_63(); break; | |
1969 case 64: V(0,(function_name *)) = ag_rp_64(); break; | |
1970 case 65: V(0,(function_name *)) = ag_rp_65(); break; | |
1971 case 66: V(0,(function_name *)) = ag_rp_66(); break; | |
1972 case 67: V(0,(number *)) = ag_rp_67(V(0,(double *))); break; | |
1973 case 68: V(0,(number *)) = ag_rp_68(V(0,(double *)), V(2,(double *))); break; | |
1974 case 69: V(0,(number *)) = ag_rp_69(V(1,(double *))); break; | |
1975 case 70: V(0,(double *)) = ag_rp_70(V(0,(int *))); break; | |
1976 case 71: V(0,(double *)) = ag_rp_71(V(0,(double *)), V(1,(int *))); break; | |
1977 case 72: V(0,(double *)) = ag_rp_72(V(0,(int *))); break; | |
1978 case 73: V(0,(double *)) = ag_rp_73(V(0,(int *)), V(1,(double *))); break; | |
1979 } | |
1980 (PCB).la_ptr = (PCB).pointer; | |
1981 } | |
1982 | |
1983 static int ag_action_1_r_proc(void); | |
1984 static int ag_action_2_r_proc(void); | |
1985 static int ag_action_3_r_proc(void); | |
1986 static int ag_action_4_r_proc(void); | |
1987 static int ag_action_1_s_proc(void); | |
1988 static int ag_action_3_s_proc(void); | |
1989 static int ag_action_1_proc(void); | |
1990 static int ag_action_2_proc(void); | |
1991 static int ag_action_3_proc(void); | |
1992 static int ag_action_4_proc(void); | |
1993 static int ag_action_5_proc(void); | |
1994 static int ag_action_6_proc(void); | |
1995 static int ag_action_7_proc(void); | |
1996 static int ag_action_8_proc(void); | |
1997 static int ag_action_9_proc(void); | |
1998 static int ag_action_10_proc(void); | |
1999 static int ag_action_11_proc(void); | |
2000 static int ag_action_8_proc(void); | |
2001 | |
2002 | |
2003 static int (*const ag_r_procs_scan[])(void) = { | |
2004 ag_action_1_r_proc, | |
2005 ag_action_2_r_proc, | |
2006 ag_action_3_r_proc, | |
2007 ag_action_4_r_proc | |
2008 }; | |
2009 | |
2010 static int (*const ag_s_procs_scan[])(void) = { | |
2011 ag_action_1_s_proc, | |
2012 ag_action_2_r_proc, | |
2013 ag_action_3_s_proc, | |
2014 ag_action_4_r_proc | |
2015 }; | |
2016 | |
2017 static int (*const ag_gt_procs_scan[])(void) = { | |
2018 ag_action_1_proc, | |
2019 ag_action_2_proc, | |
2020 ag_action_3_proc, | |
2021 ag_action_4_proc, | |
2022 ag_action_5_proc, | |
2023 ag_action_6_proc, | |
2024 ag_action_7_proc, | |
2025 ag_action_8_proc, | |
2026 ag_action_9_proc, | |
2027 ag_action_10_proc, | |
2028 ag_action_11_proc, | |
2029 ag_action_8_proc | |
2030 }; | |
2031 | |
2032 | |
2033 static int ag_action_10_proc(void) { | |
2034 int ag_t = (PCB).token_number; | |
2035 ss-fp_nrc[(PCB).ag_ap]++; | |
2036 do { | |
2037 ss-fp_nrc[(PCB).ag_ap]++; | |
2038 (PCB).pointer = (PCB).la_ptr; | |
2039 (PCB).token_number = (ss-fp_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
2040 (PCB).la_ptr++; | |
2041 if (ag_key_index[(PCB).sn]) { | |
2042 unsigned ag_k = ag_key_index[(PCB).sn]; | |
2043 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
2044 if (ag_ch <= 255) { | |
2045 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
2046 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
2047 } | |
2048 } | |
2049 } while ((PCB).token_number == (ss-fp_token_type) ag_t); | |
2050 (PCB).la_ptr = (PCB).pointer; | |
2051 return 1; | |
2052 } | |
2053 | |
2054 static int ag_action_11_proc(void) { | |
2055 int ag_t = (PCB).token_number; | |
2056 | |
2057 ss-fp_nrc[(PCB).ag_ap]++; | |
2058 do { | |
2059 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
2060 (PCB).ssx--; | |
2061 (PCB).pointer = (PCB).la_ptr; | |
2062 ag_ra(); | |
2063 if ((PCB).exit_flag != AG_RUNNING_CODE) return 0; | |
2064 (PCB).ssx++; | |
2065 (PCB).token_number = (ss-fp_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
2066 (PCB).la_ptr++; | |
2067 if (ag_key_index[(PCB).sn]) { | |
2068 unsigned ag_k = ag_key_index[(PCB).sn]; | |
2069 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
2070 if (ag_ch <= 255) { | |
2071 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
2072 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
2073 } | |
2074 } | |
2075 } | |
2076 while ((PCB).token_number == (ss-fp_token_type) ag_t); | |
2077 (PCB).la_ptr = (PCB).pointer; | |
2078 return 1; | |
2079 } | |
2080 | |
2081 static int ag_action_3_r_proc(void) { | |
2082 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
2083 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2084 ss-fp_nrc[(PCB).ag_ap]++; | |
2085 (PCB).reduction_token = (ss-fp_token_type) ag_ptt[(PCB).ag_ap]; | |
2086 ag_ra(); | |
2087 return (PCB).exit_flag == AG_RUNNING_CODE; | |
2088 } | |
2089 | |
2090 static int ag_action_3_s_proc(void) { | |
2091 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
2092 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2093 ss-fp_nrc[(PCB).ag_ap]++; | |
2094 (PCB).reduction_token = (ss-fp_token_type) ag_ptt[(PCB).ag_ap]; | |
2095 ag_ra(); | |
2096 return (PCB).exit_flag == AG_RUNNING_CODE; | |
2097 } | |
2098 | |
2099 static int ag_action_4_r_proc(void) { | |
2100 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
2101 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2102 ss-fp_nrc[(PCB).ag_ap]++; | |
2103 (PCB).reduction_token = (ss-fp_token_type) ag_ptt[(PCB).ag_ap]; | |
2104 return 1; | |
2105 } | |
2106 | |
2107 static int ag_action_2_proc(void) { | |
2108 if ((PCB).ssx >= 128) { | |
2109 ag_trace_error(); | |
2110 (PCB).exit_flag = AG_STACK_ERROR_CODE; | |
2111 PARSER_STACK_OVERFLOW; | |
2112 } | |
2113 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
2114 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2115 (PCB).ssx++; | |
2116 (PCB).sn = (PCB).ag_ap; | |
2117 (PCB).pointer = (PCB).la_ptr; | |
2118 return 0; | |
2119 } | |
2120 | |
2121 static int ag_action_9_proc(void) { | |
2122 if ((PCB).ssx >= 128) { | |
2123 ag_trace_error(); | |
2124 (PCB).exit_flag = AG_STACK_ERROR_CODE; | |
2125 PARSER_STACK_OVERFLOW; | |
2126 } | |
2127 (PCB).vs[(PCB).ssx] = ag_null_value; | |
2128 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2129 (PCB).ssx++; | |
2130 (PCB).sn = (PCB).ag_ap; | |
2131 (PCB).la_ptr = (PCB).pointer; | |
2132 return (PCB).exit_flag == AG_RUNNING_CODE; | |
2133 } | |
2134 | |
2135 static int ag_action_2_r_proc(void) { | |
2136 (PCB).ssx++; | |
2137 (PCB).sn = (PCB).ag_ap; | |
2138 return 0; | |
2139 } | |
2140 | |
2141 static int ag_action_7_proc(void) { | |
2142 --(PCB).ssx; | |
2143 (PCB).la_ptr = (PCB).pointer; | |
2144 ss-fp_nrc[0]++; | |
2145 (PCB).exit_flag = AG_SUCCESS_CODE; | |
2146 return 0; | |
2147 } | |
2148 | |
2149 static int ag_action_1_proc(void) { | |
2150 (PCB).pointer = (PCB).la_ptr; | |
2151 ss-fp_nrc[0]++; | |
2152 (PCB).exit_flag = AG_SUCCESS_CODE; | |
2153 return 0; | |
2154 } | |
2155 | |
2156 static int ag_action_1_r_proc(void) { | |
2157 ss-fp_nrc[0]++; | |
2158 (PCB).exit_flag = AG_SUCCESS_CODE; | |
2159 return 0; | |
2160 } | |
2161 | |
2162 static int ag_action_1_s_proc(void) { | |
2163 ss-fp_nrc[0]++; | |
2164 (PCB).exit_flag = AG_SUCCESS_CODE; | |
2165 return 0; | |
2166 } | |
2167 | |
2168 static int ag_action_4_proc(void) { | |
2169 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
2170 ss-fp_nrc[(PCB).ag_ap]++; | |
2171 (PCB).reduction_token = (ss-fp_token_type) ag_ptt[(PCB).ag_ap]; | |
2172 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
2173 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2174 else (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2175 (PCB).pointer = (PCB).la_ptr; | |
2176 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
2177 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
2178 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
2179 do { | |
2180 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
2181 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
2182 else ag_t2 = ag_tx; | |
2183 } while (ag_t1 < ag_t2); | |
2184 (PCB).ag_ap = ag_pstt[ag_t1]; | |
2185 if ((ag_s_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
2186 } | |
2187 return 0; | |
2188 } | |
2189 | |
2190 static int ag_action_3_proc(void) { | |
2191 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
2192 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
2193 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2194 else (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2195 (PCB).pointer = (PCB).la_ptr; | |
2196 ss-fp_nrc[(PCB).ag_ap]++; | |
2197 (PCB).reduction_token = (ss-fp_token_type) ag_ptt[(PCB).ag_ap]; | |
2198 ag_ra(); | |
2199 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
2200 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
2201 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
2202 do { | |
2203 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
2204 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
2205 else ag_t2 = ag_tx; | |
2206 } while (ag_t1 < ag_t2); | |
2207 (PCB).ag_ap = ag_pstt[ag_t1]; | |
2208 if ((ag_s_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
2209 } | |
2210 return 0; | |
2211 } | |
2212 | |
2213 static int ag_action_8_proc(void) { | |
2214 ag_trace_error(); | |
2215 (PCB).la_ptr = (PCB).pointer; | |
2216 (PCB).exit_flag = AG_SYNTAX_ERROR_CODE; | |
2217 SYNTAX_ERROR; | |
2218 (PCB).la_ptr = ++(PCB).pointer; | |
2219 return (PCB).exit_flag == AG_RUNNING_CODE; | |
2220 } | |
2221 | |
2222 static int ag_action_5_proc(void) { | |
2223 int ag_sd = ag_fl[(PCB).ag_ap]; | |
2224 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2225 else { | |
2226 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2227 } | |
2228 (PCB).la_ptr = (PCB).pointer; | |
2229 ss-fp_nrc[(PCB).ag_ap]++; | |
2230 (PCB).reduction_token = (ss-fp_token_type) ag_ptt[(PCB).ag_ap]; | |
2231 ag_ra(); | |
2232 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
2233 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
2234 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
2235 do { | |
2236 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
2237 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
2238 else ag_t2 = ag_tx; | |
2239 } while (ag_t1 < ag_t2); | |
2240 (PCB).ag_ap = ag_pstt[ag_t1]; | |
2241 if ((ag_r_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
2242 } | |
2243 return (PCB).exit_flag == AG_RUNNING_CODE; | |
2244 } | |
2245 | |
2246 static int ag_action_6_proc(void) { | |
2247 int ag_sd = ag_fl[(PCB).ag_ap]; | |
2248 ss-fp_nrc[(PCB).ag_ap]++; | |
2249 (PCB).reduction_token = (ss-fp_token_type) ag_ptt[(PCB).ag_ap]; | |
2250 if (ag_sd) { | |
2251 (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2252 } | |
2253 else { | |
2254 if ((PCB).ssx >= 128) { | |
2255 ag_trace_error(); | |
2256 (PCB).exit_flag = AG_STACK_ERROR_CODE; | |
2257 PARSER_STACK_OVERFLOW; | |
2258 } | |
2259 (PCB).vs[(PCB).ssx] = ag_null_value; | |
2260 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2261 } | |
2262 (PCB).la_ptr = (PCB).pointer; | |
2263 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
2264 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
2265 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
2266 do { | |
2267 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
2268 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
2269 else ag_t2 = ag_tx; | |
2270 } while (ag_t1 < ag_t2); | |
2271 (PCB).ag_ap = ag_pstt[ag_t1]; | |
2272 if ((ag_r_procs_scan[ag_astt[ag_t1]])() == 0) break; | |
2273 } | |
2274 return (PCB).exit_flag == AG_RUNNING_CODE; | |
2275 } | |
2276 | |
2277 | |
2278 void init_ss-fp(void) { | |
2279 (PCB).la_ptr = (PCB).pointer; | |
2280 (PCB).error_message = "Syntax Error"; | |
2281 (PCB).ss[0] = (PCB).sn = (PCB).ssx = 0; | |
2282 (PCB).exit_flag = AG_RUNNING_CODE; | |
2283 } | |
2284 | |
2285 void ss-fp(void) { | |
2286 init_ss-fp(); | |
2287 (PCB).exit_flag = AG_RUNNING_CODE; | |
2288 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
2289 unsigned ag_t1 = ag_sbt[(PCB).sn]; | |
2290 if (ag_tstt[ag_t1]) { | |
2291 unsigned ag_t2 = ag_sbe[(PCB).sn] - 1; | |
2292 (PCB).token_number = (ss-fp_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
2293 (PCB).la_ptr++; | |
2294 if (ag_key_index[(PCB).sn]) { | |
2295 unsigned ag_k = ag_key_index[(PCB).sn]; | |
2296 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
2297 if (ag_ch <= 255) { | |
2298 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
2299 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
2300 } | |
2301 } | |
2302 do { | |
2303 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
2304 if (ag_tstt[ag_tx] > (unsigned char)(PCB).token_number) | |
2305 ag_t1 = ag_tx + 1; | |
2306 else ag_t2 = ag_tx; | |
2307 } while (ag_t1 < ag_t2); | |
2308 if (ag_tstt[ag_t1] != (unsigned char)(PCB).token_number) | |
2309 ag_t1 = ag_sbe[(PCB).sn]; | |
2310 } | |
2311 (PCB).ag_ap = ag_pstt[ag_t1]; | |
2312 (ag_gt_procs_scan[ag_astt[ag_t1]])(); | |
2313 } | |
2314 } | |
2315 | |
2316 |