Mercurial > ~dholland > hg > ag > index.cgi
comparison tests/agcl/oldagsrc/good/pgg24-2.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 AnaGram Syntax Analyzer. | |
3 Copyright (c) Jerome T. Holland, 1989, 1990, 1991, 1992 | |
4 All Rights Reserved. | |
5 */ | |
6 | |
7 //#define INCLUDE_LOGGING | |
8 | |
9 #include "assert.h" //ASSERT | |
10 #include "config.h" | |
11 #include "csexp.h" | |
12 #include "data.h" //DATA | |
13 #include "error.h" | |
14 #include "log.hpp" | |
15 #include "myalloc.h" | |
16 #include "rproc.h" | |
17 #include "rule.h" | |
18 #include "stk.h" //STK | |
19 #include "symbol.h" | |
20 #include "token.h" | |
21 #include "tree.h" | |
22 #include "tsd.h" | |
23 #include "ut.h" //UT | |
24 #include <ctype.h> //CTYPE | |
25 #include <stdio.h> //STDIO | |
26 #include <stdlib.h> //STDLIB | |
27 #include <string.h> //STRING | |
28 | |
29 #include "pgg24.h" //PGG | |
30 | |
31 #undef MODULE | |
32 #define MODULE 3 | |
33 | |
34 | |
35 /* | |
36 * AnaGram, A System for Syntax Directed Programming | |
37 * File generated by: ... | |
38 * | |
39 * AnaGram Parsing Engine | |
40 * Copyright 1993-2002 Parsifal Software. All Rights Reserved. | |
41 * | |
42 * This software is provided 'as-is', without any express or implied | |
43 * warranty. In no event will the authors be held liable for any damages | |
44 * arising from the use of this software. | |
45 * | |
46 * Permission is granted to anyone to use this software for any purpose, | |
47 * including commercial applications, and to alter it and redistribute it | |
48 * freely, subject to the following restrictions: | |
49 * | |
50 * 1. The origin of this software must not be misrepresented; you must not | |
51 * claim that you wrote the original software. If you use this software | |
52 * in a product, an acknowledgment in the product documentation would be | |
53 * appreciated but is not required. | |
54 * 2. Altered source versions must be plainly marked as such, and must not be | |
55 * misrepresented as being the original software. | |
56 * 3. This notice may not be removed or altered from any source distribution. | |
57 */ | |
58 | |
59 #ifndef PGG24-2_H | |
60 #include "pgg24-2.h" | |
61 #endif | |
62 | |
63 #ifndef PGG24-2_H | |
64 #error Mismatched header file | |
65 #endif | |
66 | |
67 #include <ctype.h> | |
68 #include <stdio.h> | |
69 | |
70 #define RULE_CONTEXT (&((PCB).cs[(PCB).ssx])) | |
71 #define ERROR_CONTEXT ((PCB).cs[(PCB).error_frame_ssx]) | |
72 #define CONTEXT ((PCB).cs[(PCB).ssx]) | |
73 | |
74 | |
75 #define CHANGE_REDUCTION(x) pgg_change_reduction(pgg_##x##_token) | |
76 int pgg_change_reduction(pgg_token_type); | |
77 | |
78 #define TOKEN_NAMES pgg_token_names | |
79 const char *const pgg_token_names[248] = { | |
80 "syntax definition", | |
81 "", | |
82 "\"->\"", | |
83 "", | |
84 "", | |
85 "", | |
86 "", | |
87 "','", | |
88 "", | |
89 "", | |
90 "", | |
91 "\"...\"", | |
92 "", | |
93 "'='", | |
94 "", | |
95 "'!'", | |
96 "", | |
97 "'{'", | |
98 "", | |
99 "'['", | |
100 "", | |
101 "'('", | |
102 "", | |
103 "'-'", | |
104 "", | |
105 "'+'", | |
106 "", | |
107 "']'", | |
108 "", | |
109 "'}'", | |
110 "", | |
111 "')'", | |
112 "", | |
113 "single quote", | |
114 "", | |
115 "'~'", | |
116 "", | |
117 "'|'", | |
118 "syntax definition", | |
119 "", | |
120 "", | |
121 "statement list", | |
122 "statement", | |
123 "", | |
124 "eof", | |
125 "production", | |
126 "definition", | |
127 "embedded c", | |
128 "configuration section", | |
129 "", | |
130 "left hand side", | |
131 "right hand side", | |
132 "", | |
133 "", | |
134 "", | |
135 "token name list", | |
136 "type definition", | |
137 "", | |
138 "symbol name", | |
139 "'$'", | |
140 "", | |
141 "wrapper type", | |
142 "wrapper list", | |
143 "", | |
144 "vp rule spec", | |
145 "", | |
146 "", | |
147 "reduction procedure", | |
148 "vp rules", | |
149 "grammar rule", | |
150 "", | |
151 "init grammar rule", | |
152 "rule element", | |
153 "parameter name", | |
154 "c expression", | |
155 "';'", | |
156 "type name", | |
157 "", | |
158 "", | |
159 "", | |
160 "\"::\"", | |
161 "", | |
162 "", | |
163 "", | |
164 "", | |
165 "template field head", | |
166 "'>'", | |
167 "'<'", | |
168 "", | |
169 "", | |
170 "'*'", | |
171 "", | |
172 "", | |
173 "letter", | |
174 "", | |
175 "", | |
176 "\"enum\"", | |
177 "blank char", | |
178 "c comment", | |
179 "continuation", | |
180 "comment", | |
181 "", | |
182 "carriage return", | |
183 "", | |
184 "newline", | |
185 "", | |
186 "vertical space", | |
187 "\"//\"", | |
188 "", | |
189 "", | |
190 "", | |
191 "character", | |
192 "signed number", | |
193 "'^'", | |
194 "", | |
195 "quoted character", | |
196 "char const", | |
197 "", | |
198 "", | |
199 "", | |
200 "decimal number", | |
201 "octal number", | |
202 "\"0x\"", | |
203 "\"0X\"", | |
204 "", | |
205 "hex number", | |
206 "", | |
207 "", | |
208 "'0'", | |
209 "", | |
210 "hex digit", | |
211 "", | |
212 "token", | |
213 "immediate action", | |
214 "set union", | |
215 "virtual production", | |
216 "set intersection", | |
217 "set difference", | |
218 "set complement", | |
219 "'&'", | |
220 "character set", | |
221 "", | |
222 "escape sequence", | |
223 "octal escape", | |
224 "", | |
225 "hex escape", | |
226 "character range", | |
227 "\"..\"", | |
228 "proc def", | |
229 "enum definition", | |
230 "enum statement", | |
231 "keyword string", | |
232 "keyword string head", | |
233 "string", | |
234 "double quote", | |
235 "", | |
236 "", | |
237 "", | |
238 "string char", | |
239 "simple string char", | |
240 "\"\\\\a\"", | |
241 "\"\\\\b\"", | |
242 "\"\\\\f\"", | |
243 "\"\\\\n\"", | |
244 "\"\\\\r\"", | |
245 "\"\\\\t\"", | |
246 "\"\\\\v\"", | |
247 "\"\\\\\\\\\"", | |
248 "\"\\\\?\"", | |
249 "\"\\\\\\'\"", | |
250 "\"\\\\\\\"\"", | |
251 "", | |
252 "backslash", | |
253 "", | |
254 "\"\\\\x\"", | |
255 "any digit", | |
256 "nonoctal digit", | |
257 "':'", | |
258 "", | |
259 "", | |
260 "configuration parameters", | |
261 "configuration parameter list", | |
262 "", | |
263 "configuration parameter", | |
264 "attribute statement", | |
265 "keyword kluge", | |
266 "\"distinguish\"", | |
267 "\"left\"", | |
268 "token list", | |
269 "\"right\"", | |
270 "\"nonassoc\"", | |
271 "\"sticky\"", | |
272 "\"subgrammar\"", | |
273 "\"hidden\"", | |
274 "", | |
275 "", | |
276 "\"disregard\"", | |
277 "\"extend\"", | |
278 "\"pcb\"", | |
279 "\"lexeme\"", | |
280 "\"reserve\"", | |
281 "\"keywords\"", | |
282 "\"rename\"", | |
283 "\"macro\"", | |
284 "macro name", | |
285 "\"wrapper\"", | |
286 "", | |
287 "tokens", | |
288 "'\\?'", | |
289 "\"}...\"", | |
290 "\"]...\"", | |
291 "\"?...\"", | |
292 "\"}/...\"", | |
293 "\"]/...\"", | |
294 "embedded c head", | |
295 "", | |
296 "", | |
297 "", | |
298 "", | |
299 "c code first", | |
300 "", | |
301 "", | |
302 "c character constant", | |
303 "c string constant", | |
304 "", | |
305 "simple c char", | |
306 "", | |
307 "", | |
308 "", | |
309 "", | |
310 "\"\\\\\\n\"", | |
311 "", | |
312 "\"*/\"", | |
313 "\"/*\"", | |
314 "", | |
315 "c literal elem", | |
316 "", | |
317 "", | |
318 "", | |
319 "", | |
320 "", | |
321 "", | |
322 "", | |
323 "", | |
324 "", | |
325 "", | |
326 "", | |
327 "", | |
328 | |
329 }; | |
330 | |
331 | |
332 #line - "pgg24-2.syn" | |
333 int null_warning(int n) { | |
334 extern void warning_here(const char *,...); | |
335 if (n == 0) log_error("Null character in string"); | |
336 return n; | |
337 } | |
338 #line - "pgg24-2.cpp" | |
339 #line - "pgg24-2.syn" | |
340 pgg_pcb_type pgcb; | |
341 #define PCB pgcb | |
342 | |
343 #define PARSER_STACK_OVERFLOW parse_stack_overflow() | |
344 #define SYNTAX_ERROR log_syntax_error() | |
345 #define GET_CONTEXT CONTEXT.y = PCB.line, CONTEXT.x = PCB.column; | |
346 | |
347 #define REDUCTION_TOKEN_ERROR reduction_token_error() | |
348 | |
349 extern AgStack< AgStack<RuleElement> > ruleElementStack; | |
350 | |
351 AgStack<CSegment> extensionStack; | |
352 AgStack<CSegment> cSegmentStack; | |
353 int nPrologueSegments; | |
354 | |
355 CSegment::CSegment() | |
356 : begin(PCB.pointer), end(PCB.pointer), line(PCB.line) | |
357 { | |
358 LOGSECTION("CSegment::CSegment"); | |
359 // Nothing to do | |
360 } | |
361 | |
362 static class PggErrorHandler : public ConfigParam::ErrorHandler { | |
363 void badParam(const char *s){log_error(s);} | |
364 } pggErrorHandler; | |
365 | |
366 | |
367 void reduction_token_error(void) { | |
368 #ifdef INCLUDE_LOGGING | |
369 LOGSECTION("reduction_token_error"); | |
370 LOGV(PCB.sn) LCV(PCB.ssx) LCV(PCB.reduction_token); | |
371 for (int i = 0; i < PCB.ssx; i++) LOGV(i) LCV(PCB.ss[i]); | |
372 #endif | |
373 assert(0); | |
374 } | |
375 | |
376 extern AgString infile_name; | |
377 extern AgString errorReportFile; | |
378 | |
379 Error::Error(AgString msg, int contextFlag) | |
380 : file(errorReportFile), | |
381 line(contextFlag? ERROR_CONTEXT.y : PCB.line), | |
382 column(contextFlag? ERROR_CONTEXT.x : PCB.column), | |
383 key(warn), | |
384 message(msg) | |
385 { | |
386 LOGSECTION("Error::Error(AgString, int)"); | |
387 LOGV(PCB.line) LCV(PCB.column) LCV(contextFlag) LCV(msg.pointer()); | |
388 LOGV(ERROR_CONTEXT.x) LCV(ERROR_CONTEXT.y); | |
389 // Nothing here | |
390 } | |
391 | |
392 Error::Error(int l, int c, AgString msg) | |
393 : file(errorReportFile), | |
394 line(l), | |
395 column(c), | |
396 key(warn), | |
397 message(msg) | |
398 { | |
399 LOGSECTION("Error::Error(int, int, AgString)"); | |
400 // Nothing here | |
401 } | |
402 | |
403 extern tsd *rename_macro_list; | |
404 extern int parse_abort_flag; | |
405 | |
406 void parse_stack_overflow(void) { | |
407 reset_stk(); | |
408 log_error("Nesting too deep. Analysis aborted."); | |
409 errorList.top().setFatal(); | |
410 parse_abort_flag = 1; | |
411 PCB.exit_flag = AG_SEMANTIC_ERROR_CODE; | |
412 } | |
413 | |
414 extern int character_seen; | |
415 extern int enum_base; | |
416 extern unsigned char *input_base; | |
417 extern int precedence_level; | |
418 extern int syntax_error_flag; | |
419 | |
420 CharSetExpression *ss2(void); | |
421 | |
422 void acs(int); | |
423 void aws(int); | |
424 void atkn(Token); | |
425 void defineImmediateProc(Procedure p); | |
426 void definition_1(CharSetExpression *); | |
427 void definition_2(int); | |
428 void definition_3(int); | |
429 int form_element_1(CharSetExpression *); | |
430 int form_spec_2(int, int); | |
431 int form1(void); | |
432 int form2(void); | |
433 int head_list_1(int); | |
434 int head_list_2(int); | |
435 static int head_list_3(int); | |
436 void ics(void); | |
437 int identify_node(CharSetExpression *); | |
438 void iws(void); | |
439 int makeRule(const AgIndexedContainer<RuleElement> &); | |
440 int mid_line(int); | |
441 int null_warning(int); | |
442 int proc_spec_4(int); | |
443 void production(int); | |
444 void range(int, int); | |
445 void scs(int); | |
446 static void set_prec(int,int); | |
447 void sws(int); | |
448 int vp_form3(int); | |
449 int vp_s(void); | |
450 int vp_1(void); | |
451 int vp_2(void); | |
452 int vp_3(void); | |
453 int vp_4(void); | |
454 int vp_5(int); | |
455 int vp_6(int); | |
456 int vp_7(int); | |
457 int vp_8(int); | |
458 int vp_8a(int); | |
459 int vp_9(void); | |
460 int vp_10(void); | |
461 | |
462 int *disregard_list = NULL; | |
463 int n_disregard_list = 0; | |
464 | |
465 static void disregard(int tn) { | |
466 LOGSECTION("disregard"); | |
467 iws(); | |
468 if (n_disregard_list) { | |
469 int *p = disregard_list; | |
470 while (n_disregard_list--) aws(*p++); | |
471 DEALLOCATE(disregard_list); | |
472 } | |
473 xws(tn); | |
474 disregard_list = build_list(); | |
475 n_disregard_list = fis(); | |
476 } | |
477 | |
478 static void log_syntax_error(void) { | |
479 LOGSECTION("log_syntax_error"); | |
480 | |
481 #ifdef INCLUDE_LOGGING | |
482 { | |
483 LOGV(PCB.sn) LCV(PCB.ssx) LCV(PCB.token_number); | |
484 for (int i = 0; i < PCB.ssx; i++) LOGV(i) LCV(PCB.ss[i]); | |
485 } | |
486 #endif | |
487 int flag = PCB.error_frame_token == pgg_c_comment_token || | |
488 PCB.error_frame_token == pgg_embedded_c_token; | |
489 LOGV(flag); | |
490 reset_stk(); | |
491 | |
492 #ifdef INCLUDE_LOGGING | |
493 { | |
494 LOGV(PCB.sn) LCV(PCB.ssx) LCV(PCB.token_number); | |
495 for (int i = 0; i < PCB.ssx; i++) LOGV(i) LCV(PCB.ss[i]); | |
496 } | |
497 #endif | |
498 ssprintf("%s in %s", PCB.error_message, pgg_token_names[PCB.error_frame_token]); | |
499 LOGS(string_base); | |
500 errorList.push(Error(string_base, flag && PCB.token_number == pgg_eof_token)); | |
501 rcs(); | |
502 #ifdef INCLUDE_LOGGING | |
503 { | |
504 LOGV(PCB.sn) LCV(PCB.ssx) LCV(PCB.token_number); | |
505 for (int i = 0; i < PCB.ssx; i++) LOGV(i) LCV(PCB.ss[i]); | |
506 } | |
507 #endif | |
508 LOGS("error logged"); | |
509 errorList.top().setFatal(); | |
510 LOGS("fatal flag set"); | |
511 syntax_error_flag++; | |
512 #ifdef INCLUDE_LOGGING | |
513 { | |
514 LOGV(PCB.sn) LCV(PCB.ssx) LCV(PCB.token_number); | |
515 for (int i = 0; i < PCB.ssx; i++) LOGV(i) LCV(PCB.ss[i]); | |
516 } | |
517 #endif | |
518 if (errorList.size() < 50) return; | |
519 log_error("Too many errors. Parse aborted."); | |
520 errorList.top().setFatal(); | |
521 PCB.exit_flag = AG_SYNTAX_ERROR_CODE; | |
522 } | |
523 | |
524 static int head_list_3(int type) { | |
525 LOGSECTION("head_list_3"); | |
526 LOGV(type); | |
527 int i, n = tis(); | |
528 for (i = 0; i < n; i ++) { | |
529 Token token(list_base[i]); | |
530 int ptt = token->value_type; | |
531 LOGV(ptt) LCV(type); | |
532 if (ptt && ptt != type) { | |
533 ssprintf("Type Redefinition of T%03d: ", (int) token); | |
534 atkn(token); | |
535 log_error(); | |
536 } | |
537 token->value_type = type; | |
538 /* | |
539 if (ptt == 0 && token->rp_arg && type == void_token_type) { | |
540 //ssprintf("Void token, %s, used as parameter", dict_str(tkn_dict,token->token_name)); | |
541 ssprintf("Void token, %s, used as parameter", token->token_name->string.pointer()); | |
542 log_error(); | |
543 } | |
544 */ | |
545 } | |
546 return type; | |
547 } | |
548 | |
549 static void set_prec(int left, int right){ | |
550 LOGSECTION("set_prec"); | |
551 int n = tis(); | |
552 precedence_level++; | |
553 while (n--) { | |
554 Token token(list_base[n]); | |
555 token->left_associative = left; | |
556 token->right_associative = right; | |
557 token->precedence_level = precedence_level; | |
558 token->operatorCandidate = 1; | |
559 } | |
560 rws(); | |
561 } | |
562 | |
563 static void set_sticky(void){ | |
564 LOGSECTION("set_sticky"); | |
565 int n = tis(); | |
566 while (n--) { | |
567 Token token(list_base[n]); | |
568 token->sticky = 1; | |
569 } | |
570 rws(); | |
571 } | |
572 | |
573 static void set_subgrammar(void){ | |
574 LOGSECTION("set_subgrammar"); | |
575 int n = tis(); | |
576 while (n--) { | |
577 Token token = list_base[n]; | |
578 token->subgrammar = 1; | |
579 } | |
580 rws(); | |
581 } | |
582 | |
583 void set_hidden(void) { | |
584 LOGSECTION("set_hidden"); | |
585 int *lb = list_base; | |
586 int n = tis(); | |
587 //while (n--) map_token_number[*lb++].fine_structure = 1; | |
588 while (n--) Token(*lb++)->fine_structure = 1; | |
589 rws(); | |
590 } | |
591 | |
592 void set_lexeme(void) { | |
593 LOGSECTION("set_lexeme"); | |
594 int n = tis(); | |
595 while (n--) { | |
596 Token token = list_base[n]; | |
597 token->lexeme = 1; | |
598 } | |
599 rws(); | |
600 } | |
601 | |
602 void set_reserved_words(void) { | |
603 LOGSECTION("set_reserved_words"); | |
604 int n = tis(); | |
605 while (n--) { | |
606 Token token(list_base[n]); | |
607 token->reserved_word = 1; | |
608 } | |
609 rws(); | |
610 } | |
611 | |
612 void parse(void) { | |
613 pgcb.pointer = input_base; | |
614 pgg(); | |
615 } | |
616 #line - "pgg24-2.cpp" | |
617 | |
618 #ifndef CONVERT_CASE | |
619 #define CONVERT_CASE(c) (c) | |
620 #endif | |
621 #ifndef TAB_SPACING | |
622 #define TAB_SPACING 8 | |
623 #endif | |
624 | |
625 #define ag_rp_1(t) (production(t)) | |
626 | |
627 #define ag_rp_2() (nPrologueSegments = 1) | |
628 | |
629 #define ag_rp_4(t) (production(t)) | |
630 | |
631 #define ag_rp_5(type) (iws(),type) | |
632 | |
633 #define ag_rp_6(type) (concat_list(),type) | |
634 | |
635 #define ag_rp_7() (0) | |
636 | |
637 #define ag_rp_8(d) (head_list_3(d)) | |
638 | |
639 #define ag_rp_9(x) (sws(head_list_2(x))) | |
640 | |
641 #define ag_rp_10(x) (aws(head_list_2(x))) | |
642 | |
643 #define ag_rp_11() (0) | |
644 | |
645 #define ag_rp_12() (1) | |
646 | |
647 #define ag_rp_13() (Cast::create()) | |
648 | |
649 #define ag_rp_14() (Cast::create().requireWrapper()) | |
650 | |
651 #define ag_rp_15(n) (sws(n)) | |
652 | |
653 #define ag_rp_16(n) (aws(n)) | |
654 | |
655 #define ag_rp_17(pn) (sws((iws(),vp_form3(pn)))) | |
656 | |
657 #define ag_rp_18(s) (vp_form3(s)) | |
658 | |
659 #define ag_rp_19(n) (sws(form_spec_2(form1(),n))) | |
660 | |
661 #define ag_rp_20(n) (sws(n)) | |
662 | |
663 #define ag_rp_21(n) (aws(n)) | |
664 | |
665 #define ag_rp_22(s) (form_spec_2(makeRule(ruleElementStack.pop()),s)) | |
666 | |
667 #define ag_rp_23(e, p) (ruleElementStack.top().push(RuleElement(e,p))) | |
668 | |
669 #define ag_rp_24(e, p) (ruleElementStack.top().push(RuleElement(e,p))) | |
670 | |
671 #define ag_rp_25() (ruleElementStack.push(AgStack<RuleElement>())) | |
672 | |
673 #define ag_rp_26() (0) | |
674 | |
675 #define ag_rp_27() (proc_spec_4(0)) | |
676 | |
677 #define ag_rp_28() (proc_spec_4(1)) | |
678 | |
679 #define ag_rp_29() (concat_string()) | |
680 | |
681 #define ag_rp_30() (sss("::")) | |
682 | |
683 #define ag_rp_31() (concat_string()) | |
684 | |
685 #define ag_rp_32() (ass("::")) | |
686 | |
687 #define ag_rp_33() (concat_string()) | |
688 | |
689 #define ag_rp_34() (concat_string()) | |
690 | |
691 #define ag_rp_35() (acs('>'), concat_string()) | |
692 | |
693 #define ag_rp_36() (acs('<')) | |
694 | |
695 #define ag_rp_37() (acs(','), concat_string()) | |
696 | |
697 #define ag_rp_38() (scs('(')) | |
698 | |
699 #define ag_rp_39() (concat_string(), acs(')')) | |
700 | |
701 #define ag_rp_40() (sss(" *")) | |
702 | |
703 #define ag_rp_41() (concat_string()) | |
704 | |
705 #define ag_rp_42() (concat_string()) | |
706 | |
707 #define ag_rp_43(c) (scs(c)) | |
708 | |
709 #define ag_rp_44(c) (acs(c)) | |
710 | |
711 #define ag_rp_45(c) (acs(' '), acs(c)) | |
712 | |
713 #define ag_rp_46(c) (sss("enum "), acs(c)) | |
714 | |
715 #define ag_rp_47(c) (acs(c)) | |
716 | |
717 #define ag_rp_48(c) (acs(' '), acs(c)) | |
718 | |
719 #define ag_rp_49(x) (x & 0x1f) | |
720 | |
721 #define ag_rp_50(c) ((character_seen=1),c) | |
722 | |
723 #define ag_rp_51(s, n) (s*n) | |
724 | |
725 #define ag_rp_52() (1) | |
726 | |
727 #define ag_rp_53() (-1) | |
728 | |
729 #define ag_rp_54(n) (n) | |
730 | |
731 #define ag_rp_55(n) (n) | |
732 | |
733 #define ag_rp_56(d) (d - '0') | |
734 | |
735 #define ag_rp_57(n, d) (10*n + d - '0') | |
736 | |
737 #define ag_rp_58() (0) | |
738 | |
739 #define ag_rp_59(n, d) (8*n + d - '0') | |
740 | |
741 #define ag_rp_60(d) (d) | |
742 | |
743 #define ag_rp_61(n, d) (16*n + d) | |
744 | |
745 #define ag_rp_62(d) (d-'0') | |
746 | |
747 #define ag_rp_63(d) ((d&7)+9) | |
748 | |
749 #define ag_rp_64(p) (vp_8a(mid_line(p))) | |
750 | |
751 #define ag_rp_65(n) (form_element_1(n)) | |
752 | |
753 #define ag_rp_66(u, i) (new CharSetUnion(u,i)) | |
754 | |
755 #define ag_rp_67(u, i) (new CharSetDifference(u,i)) | |
756 | |
757 #define ag_rp_68(i, n) (new CharSetIntersection(i,n)) | |
758 | |
759 #define ag_rp_69(n) (new CharSetComplement(n)) | |
760 | |
761 #define ag_rp_70(c) (new IndividualCode(c)) | |
762 | |
763 #define ag_rp_71(c) (new IndividualChar(c)) | |
764 | |
765 #define ag_rp_72() (ss2()) | |
766 | |
767 #define ag_rp_73(x) (x) | |
768 | |
769 #define ag_rp_74(l, r) ((character_seen=1),new CharRange(l,r)) | |
770 | |
771 #define ag_rp_75(l, r) (new CodeRange(l,r)) | |
772 | |
773 #define ag_rp_76(n) (definition_1(n)) | |
774 | |
775 #define ag_rp_77(p) (definition_2(p)) | |
776 | |
777 #define ag_rp_78(p) (defineImmediateProc(Procedure(p))) | |
778 | |
779 #define ag_rp_79() (definition_3(enum_base++)) | |
780 | |
781 #define ag_rp_80(n) (definition_3(enum_base = n), enum_base++) | |
782 | |
783 #define ag_rp_81(n) (definition_3(enum_base = n), enum_base++) | |
784 | |
785 #define ag_rp_82() (ics()) | |
786 | |
787 #define ag_rp_83(n) (null_warning(n)) | |
788 | |
789 #define ag_rp_84() ('\a') | |
790 | |
791 #define ag_rp_85() ('\b') | |
792 | |
793 #define ag_rp_86() ('\f') | |
794 | |
795 #define ag_rp_87() ('\n') | |
796 | |
797 #define ag_rp_88() ('\r') | |
798 | |
799 #define ag_rp_89() ('\t') | |
800 | |
801 #define ag_rp_90() ('\v') | |
802 | |
803 #define ag_rp_91() ('\\') | |
804 | |
805 #define ag_rp_92() ('\?') | |
806 | |
807 #define ag_rp_93() ('\'') | |
808 | |
809 #define ag_rp_94() ('"') | |
810 | |
811 #define ag_rp_95(n) (n&7) | |
812 | |
813 #define ag_rp_96(n, d) (n*8 + (d&7)) | |
814 | |
815 #define ag_rp_97(n, d) (n*8 + (d&7)) | |
816 | |
817 #define ag_rp_98(x) (x) | |
818 | |
819 #define ag_rp_99(c) (acs(c)) | |
820 | |
821 #define ag_rp_100(c) (acs(c)) | |
822 | |
823 #define ag_rp_101(c) (acs(c)) | |
824 | |
825 #define ag_rp_102(c) (acs(c)) | |
826 | |
827 #define ag_rp_103(c) (acs(c)) | |
828 | |
829 #define ag_rp_104(c) (acs(null_warning(c))) | |
830 | |
831 #define ag_rp_105(c) (acs(null_warning(c))) | |
832 | |
833 #define ag_rp_106(c) (acs(null_warning(c))) | |
834 | |
835 #define ag_rp_107(c) (acs(null_warning(c))) | |
836 | |
837 #define ag_rp_108() (0) | |
838 | |
839 #define ag_rp_109() (cVariableList << buildAgString()) | |
840 | |
841 #define ag_rp_110(c) (scs(c)) | |
842 | |
843 #define ag_rp_111(c) (acs(c)) | |
844 | |
845 #define ag_rp_112() (ConfigParam::set(1, pggErrorHandler)) | |
846 | |
847 #define ag_rp_113() (ConfigParam::set(0, pggErrorHandler)) | |
848 | |
849 #define ag_rp_114() (ConfigParam::set(pggErrorHandler)) | |
850 | |
851 #define ag_rp_115() (ConfigParam::set(pggErrorHandler)) | |
852 | |
853 #define ag_rp_116() (ConfigParam::set(pggErrorHandler)) | |
854 | |
855 #define ag_rp_117(n) (ConfigParam::set(n, pggErrorHandler)) | |
856 | |
857 #define ag_rp_118() (concat_string(), ConfigParam::set(1, pggErrorHandler)) | |
858 | |
859 #define ag_rp_119() (sss("distinguish ")) | |
860 | |
861 #define ag_rp_120() (set_prec(1,0)) | |
862 | |
863 #define ag_rp_121() (set_prec(0,1)) | |
864 | |
865 #define ag_rp_122() (set_prec(0,0)) | |
866 | |
867 #define ag_rp_123() (set_sticky()) | |
868 | |
869 #define ag_rp_124() (set_subgrammar()) | |
870 | |
871 #define ag_rp_125() (set_hidden()) | |
872 | |
873 #define ag_rp_126(t) (disregard(t)) | |
874 | |
875 #define ag_rp_127() (extensionStack.push(cSegmentStack.pop())) | |
876 | |
877 #define ag_rp_128() (set_lexeme()) | |
878 | |
879 #define ag_rp_129() (set_reserved_words()) | |
880 | |
881 #define ag_rp_130(oldName, newName) (at(rename_macro_list,oldName,newName)) | |
882 | |
883 #define ag_rp_131() ((PCB).pointer-input_base-1) | |
884 | |
885 #define ag_rp_132(n) (distinguishSets.push(ParseTree(n))) | |
886 | |
887 #define ag_rp_133(n) (distinguishSets.push(ParseTree(n))) | |
888 | |
889 #define ag_rp_134(t) (sws(t)) | |
890 | |
891 #define ag_rp_135(t) (aws(t)) | |
892 | |
893 #define ag_rp_136() (vp_s()) | |
894 | |
895 #define ag_rp_137() (vp_5(vp_s())) | |
896 | |
897 #define ag_rp_138() (vp_1()) | |
898 | |
899 #define ag_rp_139() (vp_2()) | |
900 | |
901 #define ag_rp_140() (vp_3()) | |
902 | |
903 #define ag_rp_141() (vp_4()) | |
904 | |
905 #define ag_rp_142(n) (vp_5(form_element_1(n))) | |
906 | |
907 #define ag_rp_143(n) (vp_6(form_element_1(n))) | |
908 | |
909 #define ag_rp_144(n) (vp_7(form_element_1(n))) | |
910 | |
911 #define ag_rp_145() (vp_9()) | |
912 | |
913 #define ag_rp_146() (vp_10()) | |
914 | |
915 #define ag_rp_147() (proc_spec_4(0)) | |
916 | |
917 #define ag_rp_148() (proc_spec_4(1)) | |
918 | |
919 #define ag_rp_149() (proc_spec_4(0)) | |
920 | |
921 #define ag_rp_150() (proc_spec_4(1)) | |
922 | |
923 #define ag_rp_151(y) (cSegmentStack.top().end = y) | |
924 | |
925 #define ag_rp_152() (cSegmentStack.push(CSegment())) | |
926 | |
927 #define ag_rp_153() (PCB.pointer) | |
928 | |
929 #define ag_rp_154() (PCB.pointer) | |
930 | |
931 #define ag_rp_155() (cSegmentStack.push(CSegment())) | |
932 | |
933 #define ag_rp_156() (cSegmentStack.top().end = PCB.pointer) | |
934 | |
935 static void ag_rp_157(void) { | |
936 #line - "pgg24-2.syn" | |
937 if (nest_comments) PCB.reduction_token = pgg_c_comment_head_token; | |
938 #line - "pgg24-2.cpp" | |
939 } | |
940 | |
941 | |
942 #define READ_COUNTS | |
943 #define WRITE_COUNTS | |
944 #undef V | |
945 #define V(i,t) (*t (&(PCB).vs[(PCB).ssx + i])) | |
946 #undef VS | |
947 #define VS(i) (PCB).vs[(PCB).ssx + i] | |
948 | |
949 #ifndef GET_CONTEXT | |
950 #define GET_CONTEXT CONTEXT = (PCB).input_context | |
951 #endif | |
952 | |
953 typedef enum { | |
954 ag_action_1, | |
955 ag_action_2, | |
956 ag_action_3, | |
957 ag_action_4, | |
958 ag_action_5, | |
959 ag_action_6, | |
960 ag_action_7, | |
961 ag_action_8, | |
962 ag_action_9, | |
963 ag_action_10, | |
964 ag_action_11, | |
965 ag_action_12 | |
966 } ag_parser_action; | |
967 | |
968 | |
969 #ifndef NULL_VALUE_INITIALIZER | |
970 #define NULL_VALUE_INITIALIZER = { 0 } | |
971 #endif | |
972 | |
973 static pgg_vs_type const ag_null_value NULL_VALUE_INITIALIZER; | |
974 | |
975 static const unsigned char ag_rpx[] = { | |
976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, | |
978 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, | |
979 0, 0, 15, 0, 16, 17, 0, 0, 0, 18, 19, 20, 0, 21, 22, 23, 24, 25, | |
980 26, 27, 28, 0, 0, 0, 0, 29, 0, 30, 31, 32, 33, 0, 0, 34, 35, 36, | |
981 37, 38, 39, 40, 0, 41, 0, 42, 43, 44, 45, 46, 47, 48, 0, 0, 0, 0, | |
982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
983 0, 0, 0, 49, 50, 51, 0, 0, 52, 53, 0, 54, 0, 0, 55, 56, 57, 58, | |
984 59, 60, 61, 62, 63, 0, 64, 65, 0, 0, 66, 0, 67, 0, 68, 0, 69, 0, | |
985 0, 0, 0, 0, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, | |
986 0, 0, 0, 0, 0, 82, 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, | |
987 93, 94, 95, 96, 97, 0, 0, 98, 99,100,101,102,103,104,105,106,107,108, | |
988 109,110,111, 0, 0, 0, 0, 0, 0, 0,112,113,114,115,116,117, 0,118, | |
989 119,120,121,122,123,124,125, 0, 0,126,127,128,129,130, 0,131, 0, 0, | |
990 0, 0, 0,132,133, 0,134,135,136,137,138,139,140,141,142,143,144,145, | |
991 146,147,148,149,150,151, 0, 0, 0, 0, 0,152,153,154, 0, 0, 0, 0, | |
992 0, 0, 0, 0, 0, 0, 0, 0, 0,155,156, 0, 0, 0, 0, 0, 0, 0, | |
993 0, 0, 0,157 | |
994 }; | |
995 | |
996 static const unsigned char ag_key_itt[] = { | |
997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
998 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, | |
999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1008 0 | |
1009 }; | |
1010 | |
1011 static const unsigned short ag_key_pt[] = { | |
1012 0, 11, 0,147,0 | |
1013 }; | |
1014 | |
1015 static const unsigned char ag_key_ch[] = { | |
1016 0, 42, 47,255, 47,255, 42, 47,255, 46,255, 46,255, 42, 47,255, 88,120, | |
1017 255, 46, 47,255,114,116,255,115,255,105,255,110,120,255,102,120,255,101, | |
1018 255,110,115,255,101,105,255,116,117,255, 46, 47,255, 45, 46, 47, 48, 58, | |
1019 63, 93,100,101,104,108,110,114,115,119,125,255, 47,255, 42, 47,255,114, | |
1020 116,255,115,255,105,255,110,120,255,102,120,255,101,255,110,115,255,101, | |
1021 105,255,116,117,255, 47,100,101,104,108,110,114,115,119,255, 42, 47,255, | |
1022 88,120,255, 47, 48, 58,255, 58,255, 42, 47,255, 46, 47,255, 46, 47,255, | |
1023 45, 46, 47, 58, 63, 93,125,255, 45, 47,255, 42, 47,255, 88,120,255, 47, | |
1024 48, 58, 92,125,255, 47,255, 47, 58,255,114,116,255,115,255,105,255,110, | |
1025 120,255,102,120,255,101,255,110,115,255,101,105,255,116,117,255, 47,100, | |
1026 101,104,108,110,114,115,119,255, 42, 47,255, 88,120,255, 47, 48, 58, 92, | |
1027 255, 88,120,255, 48,255, 42, 47,255, 45, 47,255, 42, 47,255, 88,120,255, | |
1028 47, 48,255, 88,120,255, 47, 48,255, 88,120,255, 47, 48, 58, 92,125,255, | |
1029 47, 58,255,114,116,255,115,255,105,255,110,120,255,102,120,255,101,255, | |
1030 110,115,255,101,105,255,116,117,255,100,101,104,108,110,114,115,119,255, | |
1031 42, 47,255, 46, 47,255, 46, 47,255, 47, 93,125,255, 42, 47,255, 47, 92, | |
1032 255, 92,255, 42, 47,255, 88,120,255, 47, 48, 58,125,255, 34, 39, 63, 92, | |
1033 97, 98,102,110,114,116,118,120,255, 92,255, 88,120,255, 48,125,255, 46, | |
1034 47,255, 46, 47,255, 47, 93,125,255, 46,255, 46,255, 46, 47,255, 46, 47, | |
1035 255, 46, 47, 63, 93,125,255, 46, 47,255, 46, 47,255, 46, 47, 63, 93,125, | |
1036 255, 46, 47, 63,255, 46, 47,255, 46, 47,255, 93,125,255, 46, 47,255, 93, | |
1037 255, 46, 47,255,125,255,125,255, 46,255, 46,255, 42, 47,255, 46, 47,255, | |
1038 46, 47,255, 46, 47, 63, 93,125,255, 47,107,255, 47,109,255, 47,112,255, | |
1039 88,120,255, 47, 48,255, 88,120,255, 48, 58,255, 47, 92,255, 42, 47,255, | |
1040 46, 47,255, 46, 47,255, 46, 47, 63, 93,125,255 | |
1041 }; | |
1042 | |
1043 static const unsigned char ag_key_act[] = { | |
1044 0,0,0,4,2,4,3,3,4,5,4,6,4,0,0,4,0,0,4,3,3,4,3,3,4,2,4,2,4,3,3,4,3,3,4, | |
1045 2,4,3,3,4,2,3,4,3,3,4,3,3,4,3,2,2,2,3,3,2,2,2,3,2,3,2,2,3,2,4,3,4,0,0, | |
1046 4,3,3,4,2,4,2,4,3,3,4,3,3,4,2,4,3,3,4,2,3,4,3,3,4,2,2,2,3,2,3,2,2,3,4, | |
1047 0,0,4,0,0,4,2,2,3,4,3,4,0,0,4,3,3,4,3,3,4,3,7,2,3,3,2,2,4,3,3,4,0,0,4, | |
1048 0,0,4,2,2,3,3,3,4,3,4,3,3,4,3,3,4,2,4,2,4,3,3,4,3,3,4,2,4,3,3,4,2,3,4, | |
1049 3,3,4,3,2,2,3,2,3,2,2,3,4,0,0,4,0,0,4,2,2,3,3,4,0,0,4,2,4,0,0,4,3,2,4, | |
1050 0,0,4,0,0,4,2,2,4,0,0,4,3,2,4,0,0,4,3,2,3,3,3,4,3,3,4,3,3,4,2,4,2,4,3, | |
1051 3,4,3,3,4,2,4,3,3,4,2,3,4,3,3,4,2,2,3,2,3,2,2,3,4,0,0,4,3,3,4,3,3,4,2, | |
1052 2,2,4,0,0,4,2,3,4,3,4,0,0,4,0,0,4,2,2,3,3,4,0,0,0,0,0,0,0,0,0,0,0,0,4, | |
1053 2,4,0,0,4,2,3,4,3,3,4,3,3,4,3,2,2,4,5,4,6,4,3,3,4,3,3,4,2,3,3,2,2,4,3, | |
1054 3,4,3,3,4,7,3,3,2,2,4,7,3,3,4,3,3,4,3,3,4,2,2,4,3,3,4,2,4,3,3,4,2,4,3, | |
1055 4,5,4,6,4,0,0,4,3,3,4,3,3,4,2,2,3,2,2,4,3,3,4,3,3,4,3,3,4,0,0,4,3,2,4, | |
1056 0,0,4,2,3,4,3,3,4,0,0,4,3,3,4,3,3,4,7,2,3,2,2,4 | |
1057 }; | |
1058 | |
1059 static const unsigned char ag_key_parm[] = { | |
1060 0,233,107, 0, 0, 0,232,233, 0, 0, 0, 2, 0,233,107, 0,123,122, | |
1061 0,210,213, 0,196,186, 0, 0, 0, 0, 0, 96,197, 0,187,199, 0, 0, | |
1062 0,202,200, 0, 0,189, 0,191,192, 0,209,212, 0, 2, 0, 0, 0, 80, | |
1063 211, 0, 0, 0,193, 0,190, 0, 0,205, 0, 0,107, 0,233,107, 0,196, | |
1064 186, 0, 0, 0, 0, 0, 96,197, 0,187,199, 0, 0, 0,202,200, 0, 0, | |
1065 189, 0,191,192, 0, 0, 0, 0,193, 0,190, 0, 0,205, 0,233,107, 0, | |
1066 123,122, 0, 0, 0, 80, 0, 80, 0,233,107, 0,210,213, 0,209,212, 0, | |
1067 2, 0, 0, 80,211, 0, 0, 0, 2,107, 0,233,107, 0,123,122, 0, 0, | |
1068 0, 80,230,209, 0,233, 0,107, 80, 0,196,186, 0, 0, 0, 0, 0, 96, | |
1069 197, 0,187,199, 0, 0, 0,202,200, 0, 0,189, 0,191,192, 0,107, 0, | |
1070 0,193, 0,190, 0, 0,205, 0,233,107, 0,123,122, 0, 0, 0, 80,230, | |
1071 0,123,122, 0, 0, 0,233,107, 0, 2, 0, 0,233,107, 0,123,122, 0, | |
1072 0, 0, 0,123,122, 0,107, 0, 0,123,122, 0,233, 0, 80,230,209, 0, | |
1073 233, 80, 0,196,186, 0, 0, 0, 0, 0, 96,197, 0,187,199, 0, 0, 0, | |
1074 202,200, 0, 0,189, 0,191,192, 0, 0, 0,193, 0,190, 0, 0,205, 0, | |
1075 233,107, 0,210,213, 0,209,212, 0, 0, 0, 0, 0,233,107, 0, 0,230, | |
1076 0,230, 0,233,107, 0,123,122, 0, 0, 0, 80,209, 0,170,169,168,167, | |
1077 160,161,162,163,164,165,166,174, 0, 0, 0,123,122, 0, 0,209, 0,210, | |
1078 213, 0,209,212, 0,107, 0, 0, 0, 0, 0, 2, 0,210,213, 0,209,212, | |
1079 0, 0,107,211, 0, 0, 0,210,213, 0,209,212, 0, 0,107,211, 0, 0, | |
1080 0, 0,107,211, 0,210,213, 0,209,212, 0, 0, 0, 0,210,213, 0, 0, | |
1081 0,209,212, 0, 0, 0,209, 0, 0, 0, 2, 0,233,107, 0,210,213, 0, | |
1082 209,212, 0, 0, 0,211, 0, 0, 0,233,201, 0,233,203, 0,233,198, 0, | |
1083 123,122, 0,233, 0, 0,123,122, 0, 0, 80, 0,233,230, 0,233,107, 0, | |
1084 210,213, 0,209,212, 0, 0, 0,211, 0, 0, 0 | |
1085 }; | |
1086 | |
1087 static const unsigned short ag_key_jmp[] = { | |
1088 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, | |
1089 0, 12, 15, 0, 19, 25, 0, 22, 0, 25, 0, 33, 36, 0, 47, 49, 0, 32, | |
1090 0, 61, 65, 0, 37, 70, 0, 74, 79, 0, 95, 98, 0, 4, 11, 13, 16, 6, | |
1091 8, 19, 27, 29, 41, 35, 53, 40, 43, 88, 46, 0,102, 0, 0, 0, 0,104, | |
1092 110, 0, 71, 0, 74, 0,118,121, 0,132,134, 0, 81, 0,146,150, 0, 86, | |
1093 155, 0,159,164, 0, 68, 76, 78,126, 84,138, 89, 92,173, 0, 0, 0, 0, | |
1094 0, 0, 0,105,108,180, 0,182, 0, 0, 0, 0,195,198, 0,202,205, 0, | |
1095 184,186,117,189,191,120,123, 0,209,211, 0, 0, 0, 0, 0, 0, 0,137, | |
1096 140,213,215,217, 0,221, 0,223,225, 0,229,235, 0,154, 0,157, 0,243, | |
1097 246, 0,257,259, 0,164, 0,271,275, 0,169,280, 0,284,289, 0,227,159, | |
1098 161,251,167,263,172,175,298, 0, 0, 0, 0, 0, 0, 0,188,191,305,307, | |
1099 0, 0, 0, 0,199, 0, 0, 0, 0,309,204, 0, 0, 0, 0, 0, 0, 0, | |
1100 210,213, 0, 0, 0, 0,311,219, 0, 0, 0, 0,313,225,315,317,319, 0, | |
1101 323,325, 0,327,333, 0,237, 0,240, 0,341,344, 0,355,357, 0,247, 0, | |
1102 369,373, 0,252,378, 0,382,387, 0,242,244,349,250,361,255,258,396, 0, | |
1103 0, 0, 0,403,406, 0,410,413, 0,270,273,276, 0, 0, 0, 0,283,417, | |
1104 0,419, 0, 0, 0, 0, 0, 0, 0,291,294,421,423, 0, 0, 0, 0, 0, | |
1105 0, 0, 0, 0, 0, 0, 0, 0, 0,302, 0, 0, 0, 0,317,427, 0,433, | |
1106 436, 0,440,443, 0,431,323,326, 0, 0, 0,333, 0,453,456, 0,460,463, | |
1107 0,335,447,449,337,340, 0,476,479, 0,483,486, 0,467,470,472,349,352, | |
1108 0,490,493,495, 0,499,502, 0,506,509, 0,365,368, 0,513,516, 0,374, | |
1109 0,520,523, 0,379, 0,527, 0, 0, 0,386, 0, 0, 0, 0,535,538, 0, | |
1110 542,545, 0,388,390,531,393,396, 0,549,551, 0,559,561, 0,566,568, 0, | |
1111 0, 0, 0,571,414, 0, 0, 0, 0,420,573, 0,575,577, 0, 0, 0, 0, | |
1112 586,589, 0,593,596, 0,579,429,582,432,435, 0 | |
1113 }; | |
1114 | |
1115 static const unsigned short ag_key_index[] = { | |
1116 4, 6, 49, 66, 0, 0, 0, 95, 0, 0, 0, 0, 0,111,115, 4,126, 0, | |
1117 134, 95, 4,134,134, 66, 66, 66, 66, 0, 0, 0, 0,143,149,151, 0, 0, | |
1118 4,126,134,134,111, 0,178, 0, 0, 0, 0, 0, 0, 4, 0,194,202,207, | |
1119 216,222, 4, 4, 4,207, 66, 66, 0,228,149,149, 0,234,115, 66, 4,261, | |
1120 279, 0, 0, 0, 0, 0, 4,279,286,289,216,297,315,202,320,329,216,216, | |
1121 202, 0,315,216,202,343,202,355,361,202, 66,289, 66,216,202, 66, 4,207, | |
1122 228, 0,149, 4, 66, 0, 66, 0,149,149,149,149,149,149,149, 66, 66,149, | |
1123 149,149,149,149,149, 4, 0,149, 0, 66, 66, 0, 0, 0, 4,289, 0, 0, | |
1124 0,315,315,315,315,315,371,377,382,384,384,279, 0,399,399,399,399, 0, | |
1125 0,216,216,279,279,279,202,202,289,355,329,202, 0, 0, 0,234, 4,405, | |
1126 0,408,405,149,411,417, 0, 0,202, 0, 4, 0,149,423, 95, 0, 4, 0, | |
1127 0,426, 4,315,279,279,279,202,279,279,399,315,438,438,202,202,355,355, | |
1128 0, 4,329,279,149,115,149,149,202,149, 66, 66, 0, 0, 0,279, 0,149, | |
1129 0,149, 66, 0,202,279,202,115,149,202,315, 66,149, 0, 66 | |
1130 }; | |
1131 | |
1132 static const unsigned char ag_key_ends[] = { | |
1133 47,0, 42,0, 62,0, 58,0, 46,46,46,0, 46,46,0, 46,46,46,0, | |
1134 101,103,97,114,100,0, 105,110,103,117,105,115,104,0, 117,109,0, | |
1135 116,101,110,100,0, 105,100,100,101,110,0, 116,0, 101,109,101,0, | |
1136 111,110,97,115,115,111,99,0, 97,109,101,0, 101,114,118,101,0, | |
1137 103,104,116,0, 105,99,107,121,0, 98,103,114,97,109,109,97,114,0, | |
1138 114,97,112,112,101,114,0, 46,46,0, 46,46,46,0, 47,0, | |
1139 101,103,97,114,100,0, 105,110,103,117,105,115,104,0, 117,109,0, | |
1140 116,101,110,100,0, 105,100,100,101,110,0, 116,0, 101,109,101,0, | |
1141 111,110,97,115,115,111,99,0, 97,109,101,0, 101,114,118,101,0, | |
1142 103,104,116,0, 105,99,107,121,0, 98,103,114,97,109,109,97,114,0, | |
1143 114,97,112,112,101,114,0, 58,0, 58,0, 62,0, 46,46,0, 58,0, | |
1144 46,46,46,0, 46,46,0, 46,46,46,0, 46,46,0, 46,46,46,0, 62,0, | |
1145 47,0, 58,0, 10,0, 46,46,46,0, 42,0, 47,0, 58,0, 47,0, | |
1146 101,103,97,114,100,0, 105,110,103,117,105,115,104,0, 117,109,0, | |
1147 116,101,110,100,0, 105,100,100,101,110,0, 116,0, 101,109,101,0, | |
1148 111,110,97,115,115,111,99,0, 97,109,101,0, 101,114,118,101,0, | |
1149 103,104,116,0, 105,99,107,121,0, 98,103,114,97,109,109,97,114,0, | |
1150 114,97,112,112,101,114,0, 58,0, 10,0, 62,0, 47,0, 42,0, 58,0, | |
1151 10,0, 46,46,46,0, 42,0, 58,0, 101,103,97,114,100,0, | |
1152 105,110,103,117,105,115,104,0, 117,109,0, 116,101,110,100,0, | |
1153 105,100,100,101,110,0, 116,0, 101,109,101,0, | |
1154 111,110,97,115,115,111,99,0, 97,109,101,0, 101,114,118,101,0, | |
1155 103,104,116,0, 105,99,107,121,0, 98,103,114,97,109,109,97,114,0, | |
1156 114,97,112,112,101,114,0, 46,46,0, 46,46,46,0, 46,46,0, | |
1157 46,46,46,0, 10,0, 10,0, 58,0, 46,46,46,0, 46,46,46,0, 47,0, | |
1158 46,46,0, 46,46,46,0, 46,46,0, 46,46,46,0, 47,0, 46,46,46,0, | |
1159 46,46,0, 46,46,46,0, 46,46,0, 46,46,46,0, 46,46,0, 47,0, | |
1160 46,46,46,0, 46,46,0, 46,46,46,0, 46,46,0, 46,46,46,0, 46,46,0, | |
1161 47,0, 46,46,46,0, 46,46,0, 46,46,46,0, 46,46,0, 46,46,46,0, | |
1162 46,46,0, 46,46,46,0, 46,46,0, 46,46,46,0, 46,46,46,0, | |
1163 46,46,46,0, 46,46,0, 46,46,46,0, 46,46,0, 46,46,46,0, 42,0, | |
1164 101,121,119,111,114,100,115,0, 42,0, 97,99,114,111,0, 42,0, | |
1165 99,98,0, 42,0, 58,0, 42,0, 10,0, 46,46,0, 46,46,46,0, 46,46,0, | |
1166 46,46,46,0, 46,46,0, 46,46,46,0, | |
1167 }; | |
1168 | |
1169 #define AG_TCV(x) ag_tcv[(x)] | |
1170 | |
1171 static const unsigned char ag_tcv[] = { | |
1172 44,246,246,246,246,246,246,246,246, 97,104,106,106,102,246,246,246,246, | |
1173 246,246,246,246,246,246,246,246, 44,246,246,246,246,246, 97, 15,154,247, | |
1174 59,247,139, 33, 21, 31, 90, 25, 7, 23,247,247,128,244,244,244,244,244, | |
1175 244,244,245,245,177, 75, 87, 13, 86,208,247,131,131,131,131,131,131,243, | |
1176 243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243,243, | |
1177 243, 19,172, 27,113,243,247,131,131,131,131,131,131,243,243,243,243,243, | |
1178 243,243,243,243,243,243,243,243,243,243,243,243,243,243,243, 17, 37, 29, | |
1179 35,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246, | |
1180 246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246, | |
1181 246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246, | |
1182 246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246, | |
1183 246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246, | |
1184 246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246, | |
1185 246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246, | |
1186 246,246,246,246 | |
1187 }; | |
1188 | |
1189 #ifndef SYNTAX_ERROR | |
1190 #define SYNTAX_ERROR fprintf(stderr,"%s, line %d, column %d\n", \ | |
1191 (PCB).error_message, (PCB).line, (PCB).column) | |
1192 #endif | |
1193 | |
1194 #ifndef FIRST_LINE | |
1195 #define FIRST_LINE 1 | |
1196 #endif | |
1197 | |
1198 #ifndef FIRST_COLUMN | |
1199 #define FIRST_COLUMN 1 | |
1200 #endif | |
1201 | |
1202 #ifndef PARSER_STACK_OVERFLOW | |
1203 #define PARSER_STACK_OVERFLOW {fprintf(stderr, \ | |
1204 "\nParser stack overflow, line %d, column %d\n",\ | |
1205 (PCB).line, (PCB).column);} | |
1206 #endif | |
1207 | |
1208 #ifndef REDUCTION_TOKEN_ERROR | |
1209 #define REDUCTION_TOKEN_ERROR {fprintf(stderr, \ | |
1210 "\nReduction token error, line %d, column %d\n", \ | |
1211 (PCB).line, (PCB).column);} | |
1212 #endif | |
1213 | |
1214 | |
1215 #ifndef INPUT_CODE | |
1216 #define INPUT_CODE(T) (T) | |
1217 #endif | |
1218 | |
1219 typedef enum | |
1220 {ag_accept_key, ag_set_key, ag_jmp_key, ag_end_key, ag_no_match_key, | |
1221 ag_cf_accept_key, ag_cf_set_key, ag_cf_end_key} key_words; | |
1222 | |
1223 static void ag_get_key_word(int ag_k) { | |
1224 int ag_save = (int) ((PCB).la_ptr - (PCB).pointer); | |
1225 const unsigned char *ag_p; | |
1226 int ag_ch; | |
1227 while (1) { | |
1228 switch (ag_key_act[ag_k]) { | |
1229 case ag_cf_end_key: { | |
1230 const unsigned char *sp = ag_key_ends + ag_key_jmp[ag_k]; | |
1231 do { | |
1232 if ((ag_ch = *sp++) == 0) { | |
1233 int ag_k1 = ag_key_parm[ag_k]; | |
1234 int ag_k2 = ag_key_pt[ag_k1]; | |
1235 if (ag_key_itt[ag_k2 + CONVERT_CASE(*(PCB).la_ptr)]) goto ag_fail; | |
1236 (PCB).token_number = (pgg_token_type) ag_key_pt[ag_k1 + 1]; | |
1237 return; | |
1238 } | |
1239 } while (CONVERT_CASE(*(PCB).la_ptr++) == ag_ch); | |
1240 goto ag_fail; | |
1241 } | |
1242 case ag_end_key: { | |
1243 const unsigned char *sp = ag_key_ends + ag_key_jmp[ag_k]; | |
1244 do { | |
1245 if ((ag_ch = *sp++) == 0) { | |
1246 (PCB).token_number = (pgg_token_type) ag_key_parm[ag_k]; | |
1247 return; | |
1248 } | |
1249 } while (CONVERT_CASE(*(PCB).la_ptr++) == ag_ch); | |
1250 } | |
1251 case ag_no_match_key: | |
1252 ag_fail: | |
1253 (PCB).la_ptr = (PCB).pointer + ag_save; | |
1254 return; | |
1255 case ag_cf_set_key: { | |
1256 int ag_k1 = ag_key_parm[ag_k]; | |
1257 int ag_k2 = ag_key_pt[ag_k1]; | |
1258 ag_k = ag_key_jmp[ag_k]; | |
1259 if (ag_key_itt[ag_k2 + CONVERT_CASE(*(PCB).la_ptr)]) break; | |
1260 ag_save = (int) ((PCB).la_ptr - (PCB).pointer); | |
1261 (PCB).token_number = (pgg_token_type) ag_key_pt[ag_k1+1]; | |
1262 break; | |
1263 } | |
1264 case ag_set_key: | |
1265 ag_save = (int) ((PCB).la_ptr - (PCB).pointer); | |
1266 (PCB).token_number = (pgg_token_type) ag_key_parm[ag_k]; | |
1267 case ag_jmp_key: | |
1268 ag_k = ag_key_jmp[ag_k]; | |
1269 break; | |
1270 case ag_accept_key: | |
1271 (PCB).token_number = (pgg_token_type) ag_key_parm[ag_k]; | |
1272 return; | |
1273 case ag_cf_accept_key: { | |
1274 int ag_k1 = ag_key_parm[ag_k]; | |
1275 int ag_k2 = ag_key_pt[ag_k1]; | |
1276 if (ag_key_itt[ag_k2 + CONVERT_CASE(*(PCB).la_ptr)]) | |
1277 (PCB).la_ptr = (PCB).pointer + ag_save; | |
1278 else (PCB).token_number = (pgg_token_type) ag_key_pt[ag_k1+1]; | |
1279 return; | |
1280 } | |
1281 } | |
1282 ag_ch = CONVERT_CASE(*(PCB).la_ptr++); | |
1283 ag_p = &ag_key_ch[ag_k]; | |
1284 if (ag_ch <= 255) while (*ag_p < ag_ch) ag_p++; | |
1285 if (ag_ch > 255 || *ag_p != ag_ch) { | |
1286 (PCB).la_ptr = (PCB).pointer + ag_save; | |
1287 return; | |
1288 } | |
1289 ag_k = (int) (ag_p - ag_key_ch); | |
1290 } | |
1291 } | |
1292 | |
1293 | |
1294 #ifndef AG_NEWLINE | |
1295 #define AG_NEWLINE 10 | |
1296 #endif | |
1297 | |
1298 #ifndef AG_RETURN | |
1299 #define AG_RETURN 13 | |
1300 #endif | |
1301 | |
1302 #ifndef AG_FORMFEED | |
1303 #define AG_FORMFEED 12 | |
1304 #endif | |
1305 | |
1306 #ifndef AG_TABCHAR | |
1307 #define AG_TABCHAR 9 | |
1308 #endif | |
1309 | |
1310 static void ag_track(void) { | |
1311 int ag_k = (int) ((PCB).la_ptr - (PCB).pointer); | |
1312 while (ag_k--) { | |
1313 switch (*(PCB).pointer++) { | |
1314 case AG_NEWLINE: | |
1315 (PCB).column = 1, (PCB).line++; | |
1316 case AG_RETURN: | |
1317 case AG_FORMFEED: | |
1318 break; | |
1319 case AG_TABCHAR: | |
1320 (PCB).column += (TAB_SPACING) - ((PCB).column - 1) % (TAB_SPACING); | |
1321 break; | |
1322 default: | |
1323 (PCB).column++; | |
1324 } | |
1325 } | |
1326 } | |
1327 | |
1328 | |
1329 static void ag_prot(void) { | |
1330 int ag_k; | |
1331 ag_k = 128 - ++(PCB).btsx; | |
1332 if (ag_k <= (PCB).ssx) { | |
1333 (PCB).exit_flag = AG_STACK_ERROR_CODE; | |
1334 PARSER_STACK_OVERFLOW; | |
1335 return; | |
1336 } | |
1337 (PCB).bts[(PCB).btsx] = (PCB).sn; | |
1338 (PCB).bts[ag_k] = (PCB).ssx; | |
1339 (PCB).vs[ag_k] = (PCB).vs[(PCB).ssx]; | |
1340 (PCB).ss[ag_k] = (PCB).ss[(PCB).ssx]; | |
1341 (PCB).cs[ag_k] = (PCB).cs[(PCB).ssx]; | |
1342 } | |
1343 | |
1344 static void ag_undo(void) { | |
1345 if ((PCB).drt == -1) return; | |
1346 while ((PCB).btsx) { | |
1347 int ag_k = 128 - (PCB).btsx; | |
1348 (PCB).sn = (PCB).bts[(PCB).btsx--]; | |
1349 (PCB).ssx = (PCB).bts[ag_k]; | |
1350 (PCB).vs[(PCB).ssx] = (PCB).vs[ag_k]; | |
1351 (PCB).ss[(PCB).ssx] = (PCB).ss[ag_k]; | |
1352 (PCB).cs[(PCB).ssx] = (PCB).cs[ag_k]; | |
1353 } | |
1354 (PCB).token_number = (pgg_token_type) (PCB).drt; | |
1355 (PCB).ssx = (PCB).dssx; | |
1356 (PCB).sn = (PCB).dsn; | |
1357 (PCB).drt = -1; | |
1358 } | |
1359 | |
1360 | |
1361 | |
1362 static const int ag_rtt[] = { | |
1363 98,231, 0 | |
1364 }; | |
1365 | |
1366 static const unsigned char ag_tstt[] = { | |
1367 243,233,131,107,104,102,97,21,19,17,0,3,4,5,38,98,231, | |
1368 247,246,245,244,243,233,232,208,177,172,154,139,131,128,113,106,104,102,97, | |
1369 90,87,86,75,59,37,35,33,31,29,27,25,23,21,19,17,15,13,7,0,98,231, | |
1370 233,97,0,3,98,231, | |
1371 243,131,107,104,102,21,19,17,0,39,40,100,103, | |
1372 247,246,245,244,243,208,177,172,154,139,131,128,113,106,104,102,97,90,87,86, | |
1373 75,59,37,35,33,31,29,27,25,23,21,19,17,15,13,7,0,109,110, | |
1374 104,0, | |
1375 104,102,0,103, | |
1376 243,233,205,202,200,199,197,196,193,192,191,190,189,187,186,131,107,106,104, | |
1377 102,97,96,35,27,21,19,17,0,3,98,100,103,105,231, | |
1378 243,131,21,19,17,0,20,41,45,46,47,48,50,55,56,57,58,92,214, | |
1379 247,246,245,244,243,208,177,172,154,139,131,128,113,106,97,90,87,86,75,59, | |
1380 37,35,33,31,29,27,25,23,21,19,17,15,13,7,0, | |
1381 104,0, | |
1382 104,102,0,103, | |
1383 104,0, | |
1384 245,244,243,233,131,128,123,122,113,107,104,102,97,90,80,35,33,25,23,21,0,3, | |
1385 4,8,9,98,99,100,101,103,231, | |
1386 243,131,80,0,58,60,76,92, | |
1387 247,246,245,244,243,233,208,177,172,154,139,131,128,113,107,106,104,102,97, | |
1388 90,87,86,75,59,37,35,33,31,29,27,25,23,21,19,15,13,7,0,103,216,217,218, | |
1389 245,244,243,233,213,212,211,210,209,208,177,139,131,128,107,104,102,97,90, | |
1390 87,86,80,59,44,37,31,29,27,25,23,21,13,11,7,2,0,3,4,5,98,231, | |
1391 243,131,0,55,57,58,92, | |
1392 7,0,6, | |
1393 243,233,205,202,200,199,197,196,193,192,191,190,189,187,186,131,107,104,102, | |
1394 97,96,35,27,0,3,4,5,98,180,231, | |
1395 247,246,245,244,243,233,208,177,172,154,139,131,128,113,107,106,97,90,87,86, | |
1396 75,59,37,35,33,31,29,27,25,23,21,19,15,13,7,0,98,100,215,219,222,223, | |
1397 231, | |
1398 59,13,0,12, | |
1399 2,0,1,51, | |
1400 107,104,102,0,39,100,103, | |
1401 107,104,102,0,39,100,103, | |
1402 107,104,102,0,39,100,103, | |
1403 107,104,102,0,39,100,103, | |
1404 243,131,44,21,19,17,0,20,42,43,45,46,47,48,49,50,55,56,57,58,92,214, | |
1405 104,0, | |
1406 104,0, | |
1407 104,102,0,101,103, | |
1408 247,246,245,244,243,233,230,209,208,177,172,154,139,131,128,123,122,113,107, | |
1409 106,104,102,97,90,87,86,80,59,37,35,33,31,29,27,25,23,21,19,17,15,13,7, | |
1410 0,3,98,99,100,101,103,231, | |
1411 243,233,131,97,0,81, | |
1412 107,104,102,90,87,86,80,31,29,27,21,7,0,77,78,85, | |
1413 31,0, | |
1414 104,0, | |
1415 247,246,245,244,243,233,208,177,172,154,139,131,128,113,107,106,104,102,97, | |
1416 90,87,86,75,59,37,35,33,31,29,27,25,23,21,19,15,13,7,0,103,216, | |
1417 245,244,243,233,131,128,97,0,3,98,231, | |
1418 59,0, | |
1419 7,0,6, | |
1420 245,244,243,233,154,131,128,123,122,113,107,104,102,97,80,35,33,29,25,23,21, | |
1421 19,17,15,0,3,4,8,9,98,99,100,101,103,231, | |
1422 243,131,0,57,58,92, | |
1423 243,205,202,200,199,197,196,193,192,191,190,189,187,186,131,107,104,102,96, | |
1424 35,27,0,39,40,100,103, | |
1425 27,0,26, | |
1426 247,246,245,244,243,208,177,172,154,139,131,128,113,106,97,90,87,86,75,59, | |
1427 37,35,33,31,29,27,25,23,21,19,17,15,13,7,0,237,238,239, | |
1428 247,246,245,244,243,208,177,172,154,139,131,128,113,106,97,90,87,86,75,59, | |
1429 37,35,33,31,29,27,25,23,21,19,17,15,13,7,0,240,241,242, | |
1430 154,0, | |
1431 33,0, | |
1432 104,102,0,103, | |
1433 247,246,245,244,243,233,208,177,172,154,139,131,128,113,107,106,104,102,97, | |
1434 90,87,86,75,59,37,35,33,31,29,27,25,23,21,19,17,15,13,7,0,220, | |
1435 29,0,28, | |
1436 247,246,245,244,243,233,230,208,177,172,154,139,131,128,123,122,113,107,106, | |
1437 104,102,97,90,87,86,80,59,37,35,33,31,27,25,23,21,19,17,15,13,7,0,3,4,8, | |
1438 9,98,99,100,101,103,231, | |
1439 245,244,243,154,131,128,123,122,113,35,33,25,23,21,19,17,15,0,14,16,18,20, | |
1440 22,24,34,58,92,111,112,115,117,119,134,135,136,137,138,140,146,148,151, | |
1441 152, | |
1442 233,107,104,102,97,44,7,2,0,3,4,5,98,231, | |
1443 245,244,243,233,154,131,128,123,122,113,107,104,102,97,44,37,35,33,25,23,21, | |
1444 19,17,15,13,0,3,4,5,98,231, | |
1445 245,244,243,154,131,128,123,122,113,107,104,102,44,37,35,33,25,23,21,19,17, | |
1446 15,13,0,12,54,67,69,70,71, | |
1447 243,233,131,107,106,104,102,97,44,21,19,17,0,3,98,100,103,105,231, | |
1448 243,233,131,107,106,104,102,97,44,21,19,17,0,3,98,100,103,105,231, | |
1449 243,233,131,107,106,104,102,97,44,21,19,17,0,3,98,100,103,105,231, | |
1450 243,233,131,107,106,104,102,97,44,37,21,19,17,2,0,1,3,36,51,52,53,98,100, | |
1451 103,105,231, | |
1452 107,104,102,44,0,39,100,103, | |
1453 107,104,102,44,0,39,100,103, | |
1454 44,0, | |
1455 233,97,0,3,4,98,231, | |
1456 243,233,131,97,0,3,4,5,98,231, | |
1457 243,233,131,97,0,82, | |
1458 90,21,0,20,79,83,84,88,89,91, | |
1459 243,233,131,97,80,0,3,4,5,98,231, | |
1460 243,131,80,0,58,60,76,92, | |
1461 107,104,102,90,86,31,29,27,21,7,0, | |
1462 243,233,131,107,104,102,97,0,3,4,8,9,98,99,100,101,103,231, | |
1463 243,205,202,200,199,197,196,193,192,191,190,189,187,186,131,96,35,27,0,34, | |
1464 58,92,95,150,181,182,183,184,185,194, | |
1465 233,213,212,210,209,177,107,104,102,97,44,37,29,27,13,7,0,3,4,5,98,231, | |
1466 247,246,245,244,243,208,177,172,154,139,131,128,113,106,104,102,97,90,87,86, | |
1467 75,59,37,35,33,31,29,27,25,23,21,19,17,15,13,7,0,236, | |
1468 247,246,245,244,243,208,177,172,139,131,128,113,106,97,90,87,86,75,59,37,35, | |
1469 33,31,29,27,25,23,21,19,17,15,13,7,0,237, | |
1470 247,246,245,244,243,208,177,172,154,139,131,128,113,106,104,102,97,90,87,86, | |
1471 75,59,37,35,33,31,29,27,25,23,21,19,17,15,13,7,0,236, | |
1472 247,246,245,244,243,208,177,172,154,139,131,128,113,106,97,90,87,86,75,59, | |
1473 37,35,31,29,27,25,23,21,19,17,15,13,7,0,240, | |
1474 104,0, | |
1475 247,246,245,244,243,233,208,177,172,154,139,131,128,113,107,106,104,102,97, | |
1476 90,87,86,75,59,37,35,33,31,27,25,23,21,19,17,15,13,7,0,98,100,222,223, | |
1477 224,231, | |
1478 233,213,212,210,209,177,107,104,102,97,44,37,29,27,13,7,0,3,4,5,98,231, | |
1479 247,246,245,244,243,233,230,208,177,172,154,139,131,128,113,107,106,104,102, | |
1480 97,90,87,86,59,37,35,33,31,27,25,23,21,19,17,15,13,7,0,3,4,8,9,98,99, | |
1481 100,101,103,231, | |
1482 247,246,245,244,243,230,208,177,172,154,139,131,128,113,106,90,87,86,59,37, | |
1483 35,33,31,27,25,23,21,19,17,15,13,7,0,47,74,214,226, | |
1484 245,244,243,233,154,131,128,123,122,113,107,104,102,97,35,33,25,23,21,19,17, | |
1485 15,0,3,4,8,9,98,99,100,101,103,231, | |
1486 245,244,243,233,209,154,131,128,123,122,113,107,104,102,97,80,37,35,33,29, | |
1487 25,23,21,19,17,15,13,0,3,4,8,9,98,99,100,101,103,231, | |
1488 247,246,245,244,243,208,177,174,172,170,169,168,167,166,165,164,163,162,161, | |
1489 160,139,131,128,113,106,97,90,87,86,75,59,37,35,33,31,29,27,25,23,21,19, | |
1490 17,15,13,7,0,142,143,144,145,153,155,156,157,158,171,173, | |
1491 245,244,243,154,131,128,123,122,113,35,33,25,23,21,19,17,15,0,63,64,69,71, | |
1492 245,244,243,209,154,131,128,123,122,113,37,35,33,29,25,23,21,19,17,15,13,0, | |
1493 12,63,64,66,67,68,69,71, | |
1494 208,0, | |
1495 245,244,243,233,131,128,123,122,113,107,104,102,97,35,33,25,23,21,0,3,4,8,9, | |
1496 98,99,100,101,103,231, | |
1497 245,244,243,233,131,128,123,122,113,107,104,102,97,35,33,25,23,21,0,3,4,8,9, | |
1498 98,99,100,101,103,231, | |
1499 245,244,128,123,122,0,118,120,121,124, | |
1500 247,245,244,243,208,177,172,154,139,131,128,113,90,87,86,75,59,37,35,33,31, | |
1501 29,27,25,23,21,19,17,15,13,7,0, | |
1502 247,246,245,244,243,208,177,174,172,170,169,168,167,166,165,164,163,162,161, | |
1503 160,154,139,131,128,113,106,97,90,87,86,75,59,37,35,31,29,27,25,23,21, | |
1504 19,17,15,13,7,0,116,142,143,144,145,171,173, | |
1505 245,244,243,233,131,128,123,122,113,107,104,102,97,35,33,25,23,21,0,3,4,8,9, | |
1506 98,99,100,101,103,231, | |
1507 245,244,243,131,128,123,122,113,35,33,25,23,21,0,20,22,24,34,58,92,111,112, | |
1508 115,117,119,134,136,137,138,140,146, | |
1509 147,0, | |
1510 245,244,243,131,128,123,122,113,35,33,25,23,21,0,20,22,24,34,58,92,111,112, | |
1511 115,117,119,138,140,146, | |
1512 139,0, | |
1513 211,208,25,23,11,0,10,22,24, | |
1514 245,244,243,154,131,128,123,122,113,35,33,25,23,21,19,17,15,0,14,16,18,20, | |
1515 22,24,34,58,72,92,111,112,115,117,119,132,133,134,135,136,137,138,140, | |
1516 146,151,152, | |
1517 107,104,102,44,37,13,7,0,6,12,67, | |
1518 247,246,245,244,243,230,208,177,172,154,139,131,128,113,106,90,87,86,59,37, | |
1519 35,33,31,27,25,23,21,19,17,15,13,7,0,47,74,214,226, | |
1520 37,0,36,52, | |
1521 245,244,243,233,154,131,128,123,122,113,107,104,102,97,35,33,25,23,21,19,17, | |
1522 15,0,3,4,8,9,98,99,100,101,103,231, | |
1523 245,244,243,154,131,128,123,122,113,35,33,25,23,21,19,17,15,0,69,70,71, | |
1524 37,0,36,52, | |
1525 243,233,131,107,106,104,102,97,44,21,19,17,0,3,98,100,103,105,231, | |
1526 243,233,131,107,106,104,102,97,44,37,21,19,17,2,0,1,3,36,51,52,53,98,100, | |
1527 103,105,231, | |
1528 233,97,0,3,98,231, | |
1529 243,131,0,58,92, | |
1530 243,233,131,97,0,3,4,5,98,231, | |
1531 243,233,131,107,104,102,97,90,86,31,29,27,21,7,0,3,4,5,98,231, | |
1532 243,131,0,58,92, | |
1533 90,21,0,20,79,83,84,88,89,91, | |
1534 90,21,0,20,84,88,89,91, | |
1535 86,7,0, | |
1536 233,97,0,3,4,98,231, | |
1537 233,97,17,0,3,4,5,98,231, | |
1538 233,97,0,3,4,98,231, | |
1539 233,97,0,3,4,98,231, | |
1540 233,97,0,3,4,98,188,231, | |
1541 233,97,0,3,4,98,231, | |
1542 233,97,0,3,4,98,231, | |
1543 107,104,102,29,7,0,6,99,100,101,103,195,206, | |
1544 107,104,102,29,7,0,6,99,100,101,103,195,206, | |
1545 233,97,0,3,4,98,188,231, | |
1546 233,97,0,3,4,98,188,231, | |
1547 233,97,0,3,4,98,188,231, | |
1548 233,97,0,3,4,98,188,231, | |
1549 233,97,0,3,4,98,188,231, | |
1550 233,97,0,3,4,98,188,231, | |
1551 233,107,104,102,97,0,3,4,8,98,99,100,101,103,231, | |
1552 243,131,0,58,92, | |
1553 245,244,243,233,131,128,97,13,0,3,4,5,98,231, | |
1554 243,131,0,58,92, | |
1555 13,0,12, | |
1556 107,104,102,27,0,39,40,100,103, | |
1557 154,0, | |
1558 33,0, | |
1559 104,102,0,103, | |
1560 247,246,245,244,243,233,208,177,172,154,139,131,128,113,107,106,104,102,97, | |
1561 90,87,86,75,59,37,35,33,31,29,27,25,23,21,19,17,15,13,7,0,220, | |
1562 247,246,245,244,243,230,208,177,172,154,139,131,128,113,106,90,87,86,59,37, | |
1563 35,33,31,27,25,23,21,19,15,13,7,0,222,223,227,228, | |
1564 75,0, | |
1565 244,128,0, | |
1566 245,244,131,128,0,125,130, | |
1567 244,128,0, | |
1568 244,128,0, | |
1569 245,131,0, | |
1570 245,244,131,128,0, | |
1571 247,246,243,208,177,174,172,170,169,168,167,166,165,164,163,162,161,160,154, | |
1572 139,113,106,97,90,87,86,75,59,37,35,33,31,29,27,25,23,21,19,17,15,13,7, | |
1573 0,142,143,144,145,158,171,173, | |
1574 213,212,210,209,37,29,27,13,7,0,6,12,67, | |
1575 213,210,37,27,0,26,36,65, | |
1576 212,37,0,36,65, | |
1577 37,0,36,65, | |
1578 209,29,0,28, | |
1579 233,213,212,210,209,177,107,104,102,97,44,37,29,27,13,7,0,3,4,5,98,231, | |
1580 245,244,131,128,0,125,130, | |
1581 244,128,0, | |
1582 245,244,128,0, | |
1583 233,213,212,211,210,209,208,177,147,139,107,104,102,97,44,37,31,29,27,25,23, | |
1584 13,11,7,0,3,4,5,98,231, | |
1585 233,213,212,211,210,209,208,177,147,139,107,104,102,97,44,37,31,29,27,25,23, | |
1586 13,11,7,0,3,4,5,98,231, | |
1587 33,23,0,32, | |
1588 31,25,23,0,22,24,30, | |
1589 245,244,233,128,123,122,113,107,104,102,97,25,23,0,3,4,8,9,98,99,100,101, | |
1590 103,231, | |
1591 245,244,243,233,131,128,123,122,113,107,104,102,97,35,33,25,23,21,0,3,4,8,9, | |
1592 98,99,100,101,103,231, | |
1593 233,213,212,210,209,177,107,104,102,97,44,37,29,27,13,7,0,3,4,5,98,231, | |
1594 233,213,212,210,209,177,107,104,102,97,44,37,29,27,13,7,0,3,4,5,98,231, | |
1595 233,213,212,210,209,177,107,104,102,97,44,37,29,27,13,7,0,3,4,5,98,231, | |
1596 245,244,243,131,128,123,122,113,35,33,25,23,21,0,20,22,24,34,58,92,111,112, | |
1597 115,117,119,136,138,140,146, | |
1598 245,244,243,131,128,123,122,113,35,33,25,23,21,0,20,22,24,34,58,92,111,112, | |
1599 115,117,119,136,138,140,146, | |
1600 247,246,245,244,243,230,208,177,172,154,139,131,128,113,106,90,87,86,59,37, | |
1601 35,33,31,27,25,23,21,19,17,15,13,7,0,47,74,214,226, | |
1602 211,208,25,23,11,0,10,22,24, | |
1603 213,212,210,209,177,107,104,102,44,37,29,27,13,7,0,73, | |
1604 245,244,243,154,131,128,123,122,113,35,33,25,23,21,19,17,15,0,14,16,18,20, | |
1605 22,24,34,58,72,92,111,112,115,117,119,132,133,134,135,136,137,138,140, | |
1606 146,151,152, | |
1607 75,0, | |
1608 243,131,0,58,92, | |
1609 31,0,30, | |
1610 243,233,131,97,80,0,3,4,5,98,231, | |
1611 233,107,104,102,97,90,86,31,29,27,21,7,0,3,4,5,98,231, | |
1612 233,201,97,0,3,98,231, | |
1613 17,0,16, | |
1614 233,203,97,0,3,98,231, | |
1615 233,201,97,0,3,98,231, | |
1616 233,97,17,0,3,16,98,231, | |
1617 233,198,97,0,3,98,231, | |
1618 245,244,243,233,154,131,128,123,122,113,97,35,33,25,23,21,19,17,0,3,16,18, | |
1619 20,22,24,34,58,92,98,111,112,115,117,119,132,134,135,136,137,138,140, | |
1620 146,151,152,231, | |
1621 29,0,28, | |
1622 243,131,0,58,92,149, | |
1623 245,244,243,131,128,123,122,113,35,33,29,25,23,21,0,20,22,24,34,58,92,111, | |
1624 112,115,117,119,134,136,137,138,140,146, | |
1625 17,0,16, | |
1626 245,244,243,233,131,128,107,104,102,97,17,0,3,98,99,100,101,103,231, | |
1627 13,0,12, | |
1628 245,244,243,233,131,128,97,0,3,98,231, | |
1629 245,244,243,154,131,128,123,122,80,25,23,0,22,24,58,60,76,92,112,117,119, | |
1630 151,152, | |
1631 243,233,205,202,200,199,197,196,193,192,191,190,189,187,186,131,107,106,104, | |
1632 102,97,96,35,27,0,3,34,58,92,95,98,100,103,105,150,183,184,185,194,231, | |
1633 104,0, | |
1634 247,246,245,244,243,233,208,177,172,154,139,131,128,113,107,106,104,102,97, | |
1635 90,87,86,75,59,37,35,33,31,29,27,25,23,21,19,17,15,13,7,0,98,100,222, | |
1636 223,224,231, | |
1637 154,0, | |
1638 33,0, | |
1639 247,246,245,244,243,233,230,208,177,172,154,139,131,128,113,106,97,90,87,86, | |
1640 59,37,35,33,31,27,25,23,21,19,15,13,7,0,3,98,222,223,228,231, | |
1641 233,107,104,102,97,44,0,3,4,5,98,231, | |
1642 245,244,131,128,0,130, | |
1643 233,213,212,210,209,208,177,107,104,102,97,44,37,29,27,13,7,0,3,4,5,98,231, | |
1644 233,213,212,210,209,177,107,104,102,97,44,37,29,27,13,7,0,3,4,5,98,231, | |
1645 233,213,212,210,209,177,107,104,102,97,44,37,29,27,13,7,0,3,4,5,98,231, | |
1646 245,244,243,154,131,128,123,122,113,35,33,25,23,21,19,17,15,0,64,69,71, | |
1647 233,213,212,210,209,177,107,104,102,97,44,37,29,27,13,7,0,3,4,5,98,231, | |
1648 233,213,212,210,209,177,107,104,102,97,44,37,29,27,13,7,0,3,4,5,98,231, | |
1649 245,244,131,128,0,130, | |
1650 247,246,245,244,243,208,177,174,172,170,169,168,167,166,165,164,163,162,161, | |
1651 160,154,139,131,128,113,106,97,90,87,86,75,59,37,35,31,29,27,25,23,21, | |
1652 19,17,15,13,7,0,116,142,143,144,145,171,173, | |
1653 233,213,212,211,210,209,208,177,139,107,104,102,97,44,37,31,29,27,25,23,13, | |
1654 11,7,0,3,4,5,98,231, | |
1655 233,213,212,211,210,209,208,177,139,107,104,102,97,86,44,37,31,29,27,25,23, | |
1656 13,11,7,0,3,4,5,98,231, | |
1657 245,244,128,123,122,113,25,23,0,22,24,111,112,117,119, | |
1658 245,244,243,131,128,123,122,113,35,33,25,23,21,0,20,22,24,34,58,92,111,112, | |
1659 115,117,119,138,140,146, | |
1660 139,0, | |
1661 139,0, | |
1662 75,0, | |
1663 243,233,131,107,104,102,97,0,3,4,8,9,98,99,100,101,103,231, | |
1664 213,212,210,209,177,107,104,102,44,37,29,27,13,7,0,73, | |
1665 233,213,212,210,209,107,104,102,97,44,37,29,27,0,3,4,5,98,231, | |
1666 233,97,0,3,4,98,231, | |
1667 243,131,80,0,58,60,61,62,76,92, | |
1668 233,97,0,3,4,98,231, | |
1669 233,97,0,3,4,98,188,231, | |
1670 245,244,243,154,131,128,123,122,113,35,33,25,23,21,19,17,0,16,18,20,22,24, | |
1671 34,58,92,111,112,115,117,119,132,134,135,136,137,138,140,146,151,152, | |
1672 207, | |
1673 233,97,17,0,3,4,5,98,231, | |
1674 13,0,12, | |
1675 25,23,0,22,24, | |
1676 243,131,0,58,92,149, | |
1677 154,0,151,152, | |
1678 33,0,32, | |
1679 233,213,212,210,209,177,107,104,102,97,44,37,29,27,13,7,0,3,4,5,98,231, | |
1680 243,131,0,178,179, | |
1681 233,97,17,0,3,16,98,231, | |
1682 29,7,0,6,28, | |
1683 243,233,131,97,0,3,98,204,231, | |
1684 107,104,102,29,7,0,6,99,100,101,103,195,206, | |
1685 17,0,47,214, | |
1686 245,244,128,123,122,113,33,25,23,0,22,24,111,112,115,117,119, | |
1687 245,244,243,233,213,212,210,209,131,128,107,104,102,97,44,37,29,27,13,7,0,3, | |
1688 4,5,98,231, | |
1689 245,244,243,131,128,123,122,113,35,33,25,23,21,0,20,22,24,34,58,92,111,112, | |
1690 115,117,119,134,136,137,138,140,146, | |
1691 243,131,80,0,58,60,61,76,92, | |
1692 245,244,243,233,131,128,97,0,3,4,98,231, | |
1693 245,244,243,154,131,128,123,122,113,35,33,29,25,23,21,19,17,0,16,18,20,22, | |
1694 24,34,58,92,111,112,115,117,119,132,134,135,136,137,138,140,146,151,152, | |
1695 247,246,245,244,243,208,177,174,172,170,169,168,167,166,165,164,163,162,161, | |
1696 160,154,139,131,128,113,106,97,90,87,86,75,59,37,35,31,29,27,25,23,21, | |
1697 19,17,15,13,7,0,116,142,143,144,145,171,173, | |
1698 25,23,0,22,24, | |
1699 243,233,131,97,0,3,98,204,231, | |
1700 33,0,32, | |
1701 245,244,243,131,128,0, | |
1702 | |
1703 }; | |
1704 | |
1705 | |
1706 static unsigned const char ag_astt[4088] = { | |
1707 5,1,5,8,8,8,1,5,5,5,7,1,1,1,0,1,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3, | |
1708 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,7,2,1,1,9,5,3,3,1,8,8,1,8,1,8,8,8,7,1, | |
1709 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1710 1,1,7,1,3,3,7,8,1,7,1,5,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,9,8,1,9,5,5,5,5,5, | |
1711 5,7,3,3,1,1,3,1,2,2,1,1,1,7,1,1,1,1,1,1,1,1,1,2,1,1,1,9,9,9,9,9,9,9,9,9,9, | |
1712 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,5,3,7,8,1,7,1,3,7,5,5,5,1, | |
1713 5,5,5,5,5,1,8,1,1,5,5,5,5,5,5,5,7,1,1,3,3,1,3,1,3,1,1,2,2,1,7,1,1,1,1,5,5, | |
1714 5,5,5,5,5,5,5,5,5,5,5,5,5,5,8,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,1, | |
1715 1,1,2,10,10,10,1,5,5,5,5,5,5,5,5,10,10,5,5,5,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5, | |
1716 5,5,5,7,1,1,3,1,1,2,2,7,1,2,1,1,1,4,1,5,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8,8, | |
1717 8,1,5,5,5,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, | |
1718 1,4,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,4,1,1,4,1,3,1,8,1,7,1,1,1,1,8,1,7, | |
1719 1,1,1,1,8,1,7,1,1,1,1,8,1,7,1,1,1,2,2,8,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,2,1, | |
1720 1,1,3,7,1,7,8,1,7,3,1,5,5,5,5,5,1,5,5,5,5,5,5,5,5,5,5,5,5,1,5,8,1,9,5,5,5, | |
1721 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,3,3,3,1,3,1,1,4,4,4,4,7,1,5,5,5,8,1,5,1, | |
1722 5,5,5,8,5,7,1,1,1,1,7,3,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8,1,5,5,5,5,5,5, | |
1723 5,5,5,5,5,5,5,5,5,5,5,5,5,7,1,3,2,2,2,1,2,2,9,5,3,3,1,1,4,1,4,1,5,5,5,1,5, | |
1724 5,5,5,5,5,1,8,1,1,5,5,5,5,5,5,5,5,5,5,7,1,1,3,3,1,3,1,3,1,1,2,2,7,2,1,1,8, | |
1725 8,8,8,8,8,8,8,8,8,8,8,8,8,8,1,8,1,8,8,5,7,1,1,1,1,1,7,3,1,1,1,1,1,1,1,1,5, | |
1726 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,3,1,1,1,1,1,1,1,1, | |
1727 1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,7,1,1,3,3,7,3,7,8,1,7, | |
1728 1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,5,8,8,8,8,8,8,8, | |
1729 8,8,7,1,1,7,2,5,5,5,5,5,1,5,5,5,5,5,5,5,5,5,5,5,1,5,8,1,1,5,5,5,5,5,5,5,5, | |
1730 5,5,5,5,5,5,5,5,5,5,7,1,1,3,3,1,3,1,3,1,1,5,5,2,2,2,5,5,5,1,1,1,1,1,1,1,1, | |
1731 1,7,1,1,1,1,2,2,1,2,1,1,1,2,1,2,1,2,1,1,1,1,1,2,1,1,1,5,5,5,1,5,5,5,7,1,1, | |
1732 2,1,1,5,5,5,1,5,5,5,5,5,5,5,5,5,1,5,5,5,5,5,5,5,5,5,5,5,7,1,1,3,1,1,4,4,4, | |
1733 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,7,1,1,2,1,2,1,5,1,5,1,9,8,1,9,5,5, | |
1734 5,5,7,3,3,1,1,3,1,4,1,4,1,9,8,1,9,4,4,4,4,7,3,3,1,1,3,1,5,1,5,1,9,8,1,9,5, | |
1735 5,5,5,7,3,3,1,1,3,1,4,1,4,1,9,8,1,9,4,1,4,4,4,1,7,1,3,1,2,1,1,3,1,1,3,1,1, | |
1736 8,1,5,7,1,1,1,1,8,1,4,7,1,1,1,3,7,1,1,5,1,1,1,1,8,1,8,1,7,1,1,1,1,1,4,4,4, | |
1737 4,7,1,1,1,7,2,2,1,2,1,1,1,5,1,5,1,5,7,1,1,2,1,1,2,2,1,7,1,1,1,1,5,5,5,5,5, | |
1738 5,5,5,5,5,7,5,1,5,1,8,1,1,7,1,1,2,2,1,2,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1, | |
1739 1,2,1,1,5,7,1,1,1,1,1,1,3,1,1,1,1,1,5,5,5,5,5,5,5,5,1,5,5,5,5,5,5,7,1,1,3, | |
1740 1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, | |
1741 3,7,3,9,9,9,9,9,9,9,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,5, | |
1742 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, | |
1743 7,3,9,9,9,9,9,9,9,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,5,3, | |
1744 3,7,9,9,9,9,9,1,9,9,9,1,9,9,9,9,1,9,9,9,9,9,9,9,9,9,9,9,1,9,9,9,9,9,9,1,9, | |
1745 9,9,4,3,1,1,1,3,1,1,5,5,5,5,5,5,5,5,1,5,5,5,5,5,5,7,1,1,3,1,1,5,5,5,5,5,1, | |
1746 5,5,5,5,5,5,5,5,5,1,5,8,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,1,1,3,3,1, | |
1747 3,1,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,4,4,4, | |
1748 7,2,1,1,1,5,5,5,1,5,5,5,5,5,5,1,8,1,1,5,5,5,5,5,5,5,5,7,1,1,3,3,1,3,1,3,1, | |
1749 1,5,5,5,1,5,5,5,5,5,5,5,1,8,1,1,5,5,5,5,5,5,5,5,5,5,5,5,7,1,1,3,3,1,3,1,3, | |
1750 1,1,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
1751 2,2,2,2,2,2,2,2,2,2,7,2,2,2,2,1,1,1,1,2,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, | |
1752 4,4,7,1,2,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,7,1,1,2,1,2,1,1,1, | |
1753 1,4,5,5,5,1,5,5,5,5,5,1,8,1,1,5,5,5,5,5,7,1,1,3,3,1,3,1,3,1,1,5,5,5,1,5,5, | |
1754 5,5,5,1,8,1,1,5,5,5,5,5,7,1,1,3,3,1,3,1,3,1,1,2,2,2,1,1,7,1,1,1,1,1,1,1,1, | |
1755 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1, | |
1756 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,1,1,1,1,1,1,1,1,1,1,7, | |
1757 1,1,1,1,1,1,1,5,5,5,1,5,5,5,5,5,1,8,1,1,5,5,5,5,5,7,1,1,3,3,1,3,1,3,1,1,5, | |
1758 5,2,2,5,5,5,1,1,1,1,1,1,7,1,2,2,1,2,1,1,1,2,1,2,1,1,1,1,1,1,1,4,5,5,2,2,5, | |
1759 5,5,1,1,1,1,1,1,7,1,2,2,1,2,1,1,1,2,1,2,2,2,2,1,5,1,1,1,1,1,4,2,1,1,5,5,2, | |
1760 2,2,5,5,5,1,1,1,1,1,1,1,1,1,7,1,1,1,1,2,2,1,2,1,1,1,1,2,1,2,1,2,1,1,1,1,1, | |
1761 1,1,1,1,4,4,4,4,4,1,1,7,1,1,2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, | |
1762 4,4,4,4,4,4,1,4,4,4,7,2,1,1,1,1,5,1,3,5,5,5,1,5,5,5,5,5,5,1,8,1,1,5,5,5,5, | |
1763 5,5,5,5,7,1,1,3,3,1,3,1,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,2,1,1, | |
1764 5,1,3,5,1,5,1,9,8,1,9,5,5,5,5,7,3,3,1,1,3,1,4,1,4,1,9,8,1,9,4,1,4,4,4,1,7, | |
1765 1,3,1,2,1,1,3,1,1,3,1,1,9,5,3,3,1,2,2,7,2,1,8,1,8,1,7,1,1,1,1,1,5,1,5,5,5, | |
1766 5,1,5,5,5,5,5,5,5,7,1,1,2,1,1,2,2,5,2,1,1,1,7,2,1,1,1,1,1,1,1,1,5,2,2,1,1, | |
1767 2,1,1,7,1,1,7,1,1,1,1,1,1,8,7,1,1,1,1,1,1,1,7,1,1,1,1,1,1,7,1,1,1,1,1,1,7, | |
1768 1,1,1,2,1,1,1,7,1,1,1,1,1,1,7,1,1,1,1,1,8,1,8,1,7,1,1,1,1,1,3,1,1,8,1,8,1, | |
1769 7,1,1,1,1,1,3,1,1,1,7,1,1,1,2,1,1,1,7,1,1,1,2,1,1,1,7,1,1,1,2,1,1,1,7,1,1, | |
1770 1,2,1,1,1,7,1,1,1,2,1,1,1,7,1,1,1,2,1,1,1,8,1,1,7,1,1,1,1,1,1,1,1,1,2,2,7, | |
1771 2,1,10,10,10,1,10,10,1,8,7,1,1,1,1,1,2,2,7,2,1,1,4,1,1,8,1,5,7,1,3,1,1,3,7, | |
1772 3,7,8,1,7,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, | |
1773 8,8,8,8,8,8,8,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
1774 1,1,1,7,1,1,1,1,1,7,2,2,7,2,2,2,2,7,1,2,2,2,5,2,2,5,2,2,5,10,10,10,10,5,2, | |
1775 2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
1776 2,2,2,2,7,2,2,2,2,2,1,1,4,4,4,4,4,4,4,1,1,7,1,1,2,1,1,1,1,7,2,1,3,1,1,5,1, | |
1777 3,1,5,1,3,1,1,7,2,1,5,5,5,5,5,5,5,5,1,5,5,5,5,5,5,7,1,1,2,1,1,2,2,2,2,7,1, | |
1778 2,10,10,4,10,10,10,5,1,5,5,5,5,5,5,5,5,5,5,5,5,1,5,5,5,5,5,5,5,5,5,5,7,1,1, | |
1779 2,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,1,5,5,5,5,5,5,5,5,5,5,7,1,1,2,1,1,1,1,7,2, | |
1780 1,1,1,7,1,1,2,8,8,1,8,8,8,8,1,8,1,1,8,8,7,1,1,1,1,1,1,1,1,1,1,8,8,8,1,8,8, | |
1781 8,8,8,1,8,1,1,8,8,8,8,8,7,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,1,5,5,5,5, | |
1782 5,5,7,1,1,3,1,1,1,5,5,5,5,5,5,5,5,1,5,5,5,5,5,5,7,1,1,2,1,1,1,5,5,5,5,5,5, | |
1783 5,5,1,5,5,5,5,5,5,7,1,1,2,1,1,5,5,2,2,5,5,5,1,1,1,1,1,1,7,1,2,2,1,2,1,1,1, | |
1784 2,1,2,1,1,1,1,5,5,2,2,5,5,5,1,1,1,1,1,1,7,1,2,2,1,2,1,1,1,2,1,2,1,1,1,1,4, | |
1785 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,4,4,4,7,2,1,1,1,1, | |
1786 1,1,1,1,4,2,1,1,4,4,4,4,1,4,4,4,4,4,4,4,4,4,7,2,5,5,2,2,2,5,5,5,1,1,1,1,1, | |
1787 1,1,1,1,7,1,1,1,1,2,2,1,2,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,7,2,2,7,2, | |
1788 1,1,7,2,5,1,5,1,5,7,1,1,2,1,1,1,5,5,5,1,5,5,5,5,5,5,5,7,1,1,2,1,1,1,1,9,4, | |
1789 3,3,1,1,7,1,1,1,9,7,3,3,1,1,1,9,7,3,3,1,1,9,1,7,3,1,3,1,1,1,9,7,3,3,1,5,5, | |
1790 2,1,2,2,5,5,5,1,9,1,1,1,1,1,1,1,7,3,1,1,1,2,2,1,2,1,3,1,1,2,1,2,2,1,2,1,1, | |
1791 1,1,1,1,1,1,1,7,3,2,2,5,1,1,3,5,5,2,2,5,5,5,1,1,1,5,1,1,1,7,1,2,2,1,2,1,1, | |
1792 1,2,1,2,1,1,1,1,1,1,1,7,1,2,2,2,1,2,2,1,8,1,9,5,7,3,3,3,1,3,1,1,1,7,1,2,2, | |
1793 2,1,2,2,9,5,3,3,1,5,5,2,2,2,5,5,5,1,1,1,7,2,2,1,2,1,1,2,1,2,2,1,2,1,1,1,1, | |
1794 1,1,1,1,1,1,1,1,1,1,2,1,9,8,1,9,1,1,5,7,3,1,1,1,1,3,1,1,3,1,3,3,1,1,1,3,7, | |
1795 9,9,9,9,9,1,9,9,9,1,9,9,9,9,1,9,9,9,9,9,9,9,9,9,9,9,1,9,3,9,9,9,9,9,1,9,9, | |
1796 9,7,3,1,1,1,3,1,3,7,3,7,9,9,9,9,9,1,9,9,9,9,1,9,9,9,9,9,9,9,9,9,9,9,9,1,9, | |
1797 9,9,9,9,9,9,9,9,4,3,3,1,1,3,1,1,5,5,5,1,5,7,1,1,2,1,1,2,2,2,2,4,2,1,5,5,5, | |
1798 5,5,5,5,5,5,1,5,5,5,5,5,5,7,1,1,3,1,1,1,5,5,5,5,5,5,5,5,1,5,5,5,5,5,5,7,1, | |
1799 1,2,1,1,1,5,5,5,5,5,5,5,5,1,5,5,5,5,5,5,7,1,1,2,1,1,4,4,4,4,4,4,4,4,4,4,4, | |
1800 4,4,4,4,4,4,7,2,1,1,1,5,5,5,5,5,5,5,5,1,5,5,5,5,5,5,7,1,1,2,1,1,1,5,5,5,5, | |
1801 5,5,5,5,1,5,5,5,5,5,5,7,1,1,2,1,1,2,2,2,2,4,2,1,1,1,1,1,1,1,1,1,2,2,2,2,2, | |
1802 2,2,2,2,2,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,7,1,1,1,1,1, | |
1803 1,1,1,5,5,5,5,5,5,5,5,5,5,5,1,5,5,5,5,5,5,5,5,5,5,7,1,1,3,1,1,1,5,5,5,5,5, | |
1804 5,5,5,5,5,5,1,5,5,5,5,5,5,5,5,5,5,5,7,1,1,3,1,1,5,5,5,5,5,1,1,1,7,2,2,2,2, | |
1805 1,2,5,5,2,2,5,5,5,1,1,1,1,1,1,7,1,2,2,1,2,1,1,1,2,1,2,2,2,2,1,4,1,4,1,7,8, | |
1806 1,8,1,8,1,1,7,1,1,1,1,1,1,1,1,1,1,4,4,4,4,1,4,4,4,4,4,4,4,4,4,7,2,1,5,5,5, | |
1807 5,5,5,5,1,5,5,5,5,7,1,1,2,1,1,1,1,7,1,1,1,1,2,2,1,7,1,2,1,1,1,1,1,1,7,1,1, | |
1808 1,1,1,1,7,1,1,1,2,1,5,5,2,2,2,5,5,5,1,1,1,1,1,1,1,1,7,1,1,1,2,2,1,2,1,1,1, | |
1809 2,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,8,7,1,1,1,1,1,1,4,1,1,1,4,1,1,2,2,7,1,1,3, | |
1810 2,7,2,1,1,7,2,1,5,5,5,5,5,5,5,5,1,5,5,5,5,5,5,7,1,1,2,1,1,2,2,7,2,1,1,9,1, | |
1811 7,3,1,3,1,1,1,7,1,3,2,1,2,9,7,3,3,1,1,1,8,1,8,1,7,1,1,1,1,1,3,1,1,7,2,1,5, | |
1812 5,5,5,5,1,1,1,1,7,2,2,2,2,2,1,2,10,10,10,1,5,5,5,5,10,10,5,5,5,1,5,5,5,5,5, | |
1813 5,7,1,1,3,1,1,5,5,2,2,5,5,5,1,1,1,1,1,1,7,1,2,2,1,2,1,1,1,2,1,2,1,1,1,1,1, | |
1814 1,2,2,1,7,1,2,3,1,1,9,9,9,1,9,9,1,7,1,1,1,1,5,5,2,2,2,5,5,5,1,1,1,5,1,1,1, | |
1815 1,1,7,1,1,1,2,2,1,2,1,1,1,2,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, | |
1816 2,2,2,2,2,2,2,2,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,7,1,1, | |
1817 1,1,1,1,1,1,1,4,1,1,2,1,2,9,7,3,3,1,1,1,7,2,9,9,9,9,9,4 | |
1818 }; | |
1819 | |
1820 | |
1821 static const unsigned short ag_pstt[] = { | |
1822 3,1,3,3,3,3,2,3,3,3,0,2,2,3,0,2,1, | |
1823 308,308,308,308,308,1,306,308,308,308,308,308,308,308,308,308,308,308,308, | |
1824 308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308, | |
1825 308,1,309,1, | |
1826 1,2,4,2,2,1, | |
1827 8,8,4,5,5,8,8,8,3,7,8,6,5, | |
1828 9,9,9,9,9,9,9,9,9,9,9,9,9,9,125,125,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, | |
1829 4,9,127, | |
1830 120,5, | |
1831 10,10,6,10, | |
1832 24,1,24,24,24,24,24,24,24,24,24,24,24,24,24,24,4,122,12,12,121,24,24,24,24, | |
1833 24,24,7,121,121,11,12,121,1, | |
1834 98,98,13,19,15,8,14,27,26,25,24,23,22,18,17,48,21,16,20, | |
1835 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, | |
1836 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,126, | |
1837 119,10, | |
1838 28,28,11,28, | |
1839 117,12, | |
1840 6,6,6,1,6,6,6,6,6,4,29,29,31,6,6,6,6,6,6,6,13,31,31,14,14,31,14,30,14,29,1, | |
1841 98,98,32,14,33,34,33,16, | |
1842 279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,35,35,279, | |
1843 279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279, | |
1844 15,35,36,36,281, | |
1845 99,99,99,1,3,3,3,3,3,3,3,3,99,99,3,3,3,37,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, | |
1846 16,37,37,104,37,1, | |
1847 98,98,17,39,48,38,16, | |
1848 40,46,41, | |
1849 3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,42,42,42,2,3,3,3,19,2,2,42,2,43,1, | |
1850 49,49,49,49,49,1,49,49,49,44,49,49,49,49,4,49,49,49,49,49,49,49,49,49,45,49, | |
1851 282,49,49,49,49,49,49,49,49,20,49,48,50,49,47,46,1, | |
1852 53,51,50,52, | |
1853 54,36,55,37, | |
1854 4,5,5,23,56,6,5, | |
1855 4,5,5,24,57,6,5, | |
1856 4,5,5,25,58,6,5, | |
1857 4,5,5,26,59,6,5, | |
1858 98,98,62,13,19,15,27,14,62,62,61,60,60,60,60,22,18,17,48,21,16,20, | |
1859 118,28, | |
1860 63,29, | |
1861 29,29,30,110,29, | |
1862 107,107,107,107,107,1,107,107,107,107,107,107,107,107,107,107,107,107,4,107, | |
1863 29,29,2,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107, | |
1864 107,107,107,31,2,2,108,30,108,29,1, | |
1865 81,81,81,81,32,64, | |
1866 75,75,75,66,67,75,65,75,75,75,66,75,33,69,66,68, | |
1867 70,34, | |
1868 276,35, | |
1869 280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,35,35,280, | |
1870 280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280, | |
1871 36,35,278, | |
1872 100,100,100,1,100,100,2,4,2,2,1, | |
1873 53,50, | |
1874 40,47,41, | |
1875 6,6,6,1,6,6,6,6,6,6,4,29,29,31,6,6,6,6,6,6,6,6,6,6,40,31,31,8,8,31,8,30,8, | |
1876 29,1, | |
1877 98,98,41,49,38,16, | |
1878 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,4,5,5,71,71,23,42,7,71,6,5, | |
1879 72,43,220, | |
1880 74,74,74,74,74,74,74,73,315,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74, | |
1881 74,74,74,74,74,74,74,74,74,44,74,74,317, | |
1882 76,76,76,76,76,76,76,75,76,76,76,76,76,76,76,76,76,76,76,76,76,76,323,76,76, | |
1883 76,76,76,76,76,76,76,76,76,45,76,76,325, | |
1884 288,46, | |
1885 287,47, | |
1886 77,77,48,77, | |
1887 78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78, | |
1888 78,78,78,289,78,78,78,78,78,78,78,78,78,49,78, | |
1889 79,50,275, | |
1890 6,6,6,6,6,1,6,6,6,6,6,6,6,6,6,6,6,4,6,29,29,31,6,6,6,6,6,6,6,6,6,6,6,6,6,6, | |
1891 6,6,6,6,51,31,31,10,10,31,10,30,10,29,1, | |
1892 132,132,98,185,98,132,132,132,91,93,92,88,89,13,82,83,80,52,81,86,85,94,135, | |
1893 134,96,169,16,95,95,168,90,134,98,174,97,98,97,97,97,175,87,84, | |
1894 1,3,3,3,2,3,3,3,53,2,2,51,2,1, | |
1895 3,3,3,1,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,54,2,2,5,2,1, | |
1896 71,71,71,71,71,71,71,71,71,72,72,72,72,72,71,71,71,71,71,71,71,71,51,55,101, | |
1897 102,64,100,65,99, | |
1898 31,1,31,4,122,12,12,121,31,31,31,31,56,121,121,11,12,121,1, | |
1899 30,1,30,4,122,12,12,121,30,30,30,30,57,121,121,11,12,121,1, | |
1900 29,1,29,4,122,12,12,121,29,29,29,29,58,121,121,11,12,121,1, | |
1901 28,1,28,4,122,12,12,121,28,103,28,28,28,54,59,55,121,104,38,105,105,121,11, | |
1902 12,121,1, | |
1903 4,5,5,35,60,106,6,5, | |
1904 4,5,5,34,61,107,6,5, | |
1905 27,62, | |
1906 1,108,114,108,108,108,1, | |
1907 109,1,109,2,64,2,2,109,2,1, | |
1908 83,83,83,83,65,110, | |
1909 111,13,66,91,79,114,79,113,112,114, | |
1910 3,1,3,2,3,67,2,2,89,2,1, | |
1911 98,98,32,68,33,115,33,16, | |
1912 76,76,76,78,76,76,76,76,78,76,69, | |
1913 6,1,6,4,29,29,31,70,31,31,52,52,31,52,30,52,29,1, | |
1914 98,117,118,119,120,121,122,125,126,127,128,129,130,116,98,131,93,221,71,134, | |
1915 135,16,133,123,136,223,136,136,132,124, | |
1916 1,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,72,2,2,17,2,1, | |
1917 312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312, | |
1918 312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,73, | |
1919 312, | |
1920 314,314,314,314,314,314,314,73,314,314,314,314,314,314,314,314,314,314,314, | |
1921 314,314,314,314,314,314,314,314,314,314,314,314,314,314,316,314, | |
1922 320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320, | |
1923 320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,75, | |
1924 320, | |
1925 322,322,322,322,322,322,322,75,322,322,322,322,322,322,322,322,322,322,322, | |
1926 322,322,322,322,322,322,322,322,322,322,322,322,322,322,324,322, | |
1927 286,77, | |
1928 290,290,290,290,290,1,290,290,290,44,290,290,290,290,4,290,290,290,290,290, | |
1929 290,290,290,290,290,290,45,290,290,290,290,290,290,140,290,290,290,283, | |
1930 290,139,138,137,290,1, | |
1931 1,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,79,2,2,18,2,1, | |
1932 6,6,6,6,6,1,6,6,6,6,6,6,6,6,6,4,6,29,29,31,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, | |
1933 6,80,31,31,11,11,31,11,30,11,29,1, | |
1934 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, | |
1935 297,297,297,297,297,297,297,297,297,15,297,297,297,81,271,142,20,141, | |
1936 6,6,6,1,6,6,6,6,6,6,4,29,29,31,6,6,6,6,6,6,6,6,82,31,31,13,13,31,13,30,13, | |
1937 29,1, | |
1938 6,6,6,1,6,6,6,6,6,6,6,4,29,29,31,6,6,6,6,6,6,6,6,6,6,6,6,83,31,31,12,12,31, | |
1939 12,30,12,29,1, | |
1940 206,206,207,207,206,206,206,144,143,199,198,197,196,195,194,193,192,191,190, | |
1941 189,206,207,207,206,206,206,206,206,206,206,206,206,206,206,206,206,206, | |
1942 206,206,206,206,206,206,206,206,84,206,211,188,213,149,148,147,149,206, | |
1943 146,145, | |
1944 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,85,151,56,150,99, | |
1945 71,71,71,72,71,71,71,71,71,71,72,71,71,72,71,71,71,71,71,71,51,86,101,152, | |
1946 56,153,59,154,150,99, | |
1947 155,260, | |
1948 6,6,6,1,6,6,6,6,6,4,29,29,31,6,6,6,6,6,88,31,31,16,16,31,16,30,16,29,1, | |
1949 6,6,6,1,6,6,6,6,6,4,29,29,31,6,6,6,6,6,89,31,31,15,15,31,15,30,15,29,1, | |
1950 141,141,143,156,156,90,159,158,157,156, | |
1951 160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160, | |
1952 160,160,160,160,160,160,160,160,160,160,160,160,91, | |
1953 161,161,161,161,161,161,161,144,143,199,198,197,196,195,194,193,192,191,190, | |
1954 189,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161, | |
1955 161,161,161,161,161,161,161,161,92,161,161,161,161,161,146,145, | |
1956 6,6,6,1,6,6,6,6,6,4,29,29,31,6,6,6,6,6,93,31,31,21,21,31,21,30,21,29,1, | |
1957 132,132,98,98,132,132,132,91,93,92,88,89,13,94,94,135,134,96,169,16,95,95, | |
1958 168,90,134,162,97,162,97,97,97, | |
1959 163,167, | |
1960 132,132,98,98,132,132,132,91,93,92,88,89,13,96,94,135,134,96,169,16,95,95, | |
1961 168,90,134,160,160,160, | |
1962 164,153, | |
1963 166,167,88,89,165,173,268,168,169, | |
1964 132,132,98,185,98,132,132,132,91,93,92,88,89,13,82,83,80,99,170,86,85,94, | |
1965 135,134,96,169,172,16,95,95,168,90,134,172,150,171,172,97,171,97,97,97, | |
1966 87,84, | |
1967 72,72,72,72,72,51,40,100,173,101,68, | |
1968 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, | |
1969 297,297,297,297,297,297,297,297,297,15,297,297,297,101,73,174,20,141, | |
1970 103,42,104,66, | |
1971 6,6,6,1,6,6,6,6,6,6,4,29,29,31,6,6,6,6,6,6,6,6,103,31,31,22,22,31,22,30,22, | |
1972 29,1, | |
1973 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,104,100,67,99, | |
1974 103,41,104,40, | |
1975 33,1,33,4,122,12,12,121,33,33,33,33,106,121,121,11,12,121,1, | |
1976 32,1,32,4,122,12,12,121,32,103,32,32,32,54,107,55,121,104,38,105,105,121,11, | |
1977 12,121,1, | |
1978 1,2,115,2,2,1, | |
1979 98,98,109,82,16, | |
1980 175,1,175,2,110,2,2,175,2,1, | |
1981 3,1,3,3,3,3,2,3,3,3,3,3,3,3,111,2,2,93,2,1, | |
1982 98,98,94,95,16, | |
1983 111,13,113,91,176,114,176,113,112,114, | |
1984 111,13,85,91,87,113,112,97, | |
1985 178,177,115, | |
1986 1,179,116,179,179,179,1, | |
1987 1,2,180,117,2,2,180,2,1, | |
1988 1,181,118,181,181,181,1, | |
1989 1,182,119,182,182,182,1, | |
1990 1,183,120,183,183,183,245,1, | |
1991 1,184,121,184,184,184,1, | |
1992 1,185,122,185,185,185,1, | |
1993 4,29,29,186,40,123,187,186,30,186,29,242,186, | |
1994 4,29,29,186,40,124,188,186,30,186,29,241,186, | |
1995 1,183,125,183,183,183,240,1, | |
1996 1,183,126,183,183,183,239,1, | |
1997 1,183,127,183,183,183,238,1, | |
1998 1,183,128,183,183,183,237,1, | |
1999 1,183,129,183,183,183,236,1, | |
2000 1,183,130,183,183,183,235,1, | |
2001 1,4,29,29,190,131,190,190,189,190,189,30,189,29,1, | |
2002 98,98,132,233,16, | |
2003 102,102,102,1,102,102,192,191,133,192,192,191,192,1, | |
2004 98,98,134,227,16, | |
2005 51,226,193, | |
2006 4,5,5,23,136,194,222,6,5, | |
2007 296,137, | |
2008 295,138, | |
2009 195,195,139,195, | |
2010 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, | |
2011 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, | |
2012 196,140,196, | |
2013 199,199,199,199,199,199,199,199,199,44,199,199,199,199,199,199,199,199,199, | |
2014 199,199,45,199,199,199,199,199,199,199,199,199,141,198,197,199,199, | |
2015 200,142, | |
2016 200,200,143, | |
2017 147,147,148,147,144,201,145, | |
2018 202,202,204, | |
2019 201,201,203, | |
2020 210,210,183, | |
2021 209,209,209,209,182, | |
2022 208,208,208,208,208,144,143,199,198,197,196,195,194,193,192,191,190,189,202, | |
2023 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, | |
2024 208,208,208,208,208,149,208,212,188,214,208,146,145, | |
2025 72,72,72,72,72,72,72,51,40,150,173,101,63, | |
2026 203,204,103,72,151,264,205,57, | |
2027 206,103,62,205,57, | |
2028 103,61,205,60, | |
2029 207,79,154,262, | |
2030 1,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,155,2,2,261,2,1, | |
2031 147,147,148,147,156,208,145, | |
2032 144,144,137, | |
2033 142,142,142,136, | |
2034 1,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,159,2,2,131,2,1, | |
2035 1,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,160,2,2,129,2,1, | |
2036 210,209,161,130, | |
2037 211,88,89,162,168,169,170, | |
2038 212,212,1,212,212,212,212,4,29,29,31,212,212,163,31,31,212,212,31,212,30, | |
2039 212,29,1, | |
2040 213,213,213,1,213,213,213,213,213,4,29,29,31,213,213,213,213,213,164,31,31, | |
2041 213,213,31,213,30,213,29,1, | |
2042 1,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,165,2,2,9,2,1, | |
2043 1,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,166,2,2,267,2,1, | |
2044 1,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,167,2,2,266,2,1, | |
2045 132,132,98,98,132,132,132,91,93,92,88,89,13,168,94,135,134,96,169,16,95,95, | |
2046 168,90,134,214,214,214,214, | |
2047 132,132,98,98,132,132,132,91,93,92,88,89,13,169,94,135,134,96,169,16,95,95, | |
2048 168,90,134,215,215,215,215, | |
2049 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, | |
2050 297,297,297,297,297,297,297,297,297,15,297,297,297,170,273,216,20,141, | |
2051 166,167,88,89,165,151,268,168,169, | |
2052 215,215,215,215,217,215,215,215,215,215,215,215,215,215,172,69, | |
2053 132,132,98,185,98,132,132,132,91,93,92,88,89,13,82,83,80,173,170,86,85,94, | |
2054 135,134,96,169,218,16,95,95,168,90,134,218,150,171,218,97,171,97,97,97, | |
2055 87,84, | |
2056 219,174, | |
2057 98,98,175,84,16, | |
2058 211,176,92, | |
2059 3,1,3,2,3,177,2,2,90,2,1, | |
2060 1,3,3,3,2,3,3,3,3,3,3,3,178,2,2,88,2,1, | |
2061 1,220,2,234,2,2,1, | |
2062 83,180,221, | |
2063 1,222,2,181,2,2,1, | |
2064 1,223,2,182,2,2,1, | |
2065 1,2,83,183,2,224,2,1, | |
2066 1,225,2,184,2,2,1, | |
2067 132,132,98,1,185,98,132,132,132,91,2,93,92,88,89,13,82,83,185,2,86,85,94, | |
2068 135,134,96,169,16,2,95,95,168,90,134,243,171,243,97,171,97,97,97,87,84, | |
2069 1, | |
2070 79,186,254, | |
2071 98,98,252,226,16,180, | |
2072 132,132,98,98,132,132,132,91,93,92,252,88,89,13,188,94,135,134,96,169,16,95, | |
2073 95,168,90,134,227,97,227,97,97,97, | |
2074 83,189,228, | |
2075 101,101,101,1,101,101,4,29,29,2,107,190,2,2,108,30,108,29,1, | |
2076 51,191,229, | |
2077 103,103,103,1,103,103,2,4,2,2,1, | |
2078 132,132,98,185,98,132,132,132,32,88,89,193,135,134,33,228,33,16,231,90,134, | |
2079 229,84, | |
2080 98,1,117,118,119,120,121,122,125,126,127,128,129,130,116,98,4,122,12,12,121, | |
2081 131,93,24,194,121,134,135,16,133,121,11,12,121,123,225,225,132,124,1, | |
2082 294,195, | |
2083 290,290,290,290,290,1,290,290,290,44,290,290,290,290,4,290,290,290,290,290, | |
2084 290,290,290,290,290,290,45,290,292,290,290,290,290,290,140,290,290,290, | |
2085 196,290,139,138,137,290,1, | |
2086 305,197, | |
2087 304,198, | |
2088 300,300,300,300,300,1,300,300,300,300,44,300,300,300,300,300,301,300,300, | |
2089 300,300,300,300,45,300,300,300,300,300,300,300,300,300,298,301,301,198, | |
2090 197,300,1, | |
2091 1,3,3,3,2,3,200,2,2,272,2,1, | |
2092 147,147,148,147,205,146, | |
2093 1,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,202,2,2,181,2,1, | |
2094 1,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,203,2,2,270,2,1, | |
2095 1,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,204,2,2,265,2,1, | |
2096 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,205,58,150,99, | |
2097 1,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,206,2,2,269,2,1, | |
2098 1,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,207,2,2,263,2,1, | |
2099 147,147,148,147,140,146, | |
2100 230,230,230,230,230,230,230,144,143,199,198,197,196,195,194,193,192,191,190, | |
2101 189,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230, | |
2102 230,230,230,230,230,230,230,230,209,230,230,230,230,230,146,145, | |
2103 1,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,210,2,2,20,2,1, | |
2104 1,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,211,2,2,19,2,1, | |
2105 132,132,132,132,132,91,88,89,212,135,134,172,172,90,134, | |
2106 132,132,98,98,132,132,132,91,93,92,88,89,13,213,94,135,134,96,169,16,95,95, | |
2107 168,90,134,158,158,158, | |
2108 164,156, | |
2109 164,154, | |
2110 231,216, | |
2111 232,1,232,4,29,29,31,217,31,31,232,232,31,232,30,232,29,1, | |
2112 215,215,215,215,217,215,215,215,215,215,215,215,215,215,218,70, | |
2113 1,3,3,3,3,3,3,3,2,3,3,3,3,219,2,2,74,2,1, | |
2114 1,233,220,233,233,233,1, | |
2115 98,98,32,221,33,53,234,234,33,16, | |
2116 1,235,222,235,235,235,1, | |
2117 1,183,223,183,183,183,246,1, | |
2118 132,132,98,185,98,132,132,132,91,93,92,88,89,13,82,83,224,86,85,94,135,134, | |
2119 96,169,16,95,95,168,90,134,258,171,258,97,171,97,97,97,87,84,236, | |
2120 1,2,237,225,2,2,237,2,1, | |
2121 51,176,238, | |
2122 88,89,256,168,169, | |
2123 98,98,228,226,16,179, | |
2124 185,229,230,84, | |
2125 210,230,171, | |
2126 1,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,231,2,2,274,2,1, | |
2127 217,217,232,216,239, | |
2128 1,2,83,233,2,240,2,1, | |
2129 79,40,234,241,248, | |
2130 249,1,249,2,235,2,2,242,1, | |
2131 4,29,29,186,40,236,243,186,30,186,29,257,186, | |
2132 15,237,244,20, | |
2133 132,132,132,132,132,91,244,88,89,238,135,134,177,177,178,90,134, | |
2134 218,218,218,1,3,3,3,3,218,218,3,3,3,2,3,3,3,3,3,3,239,2,2,219,2,1, | |
2135 132,132,98,98,132,132,132,91,93,92,88,89,13,240,94,135,134,96,169,16,95,95, | |
2136 168,90,134,245,97,245,97,97,97, | |
2137 98,98,32,241,33,53,55,33,16, | |
2138 250,250,250,1,250,250,246,242,246,246,246,1, | |
2139 132,132,98,185,98,132,132,132,91,93,92,252,88,89,13,82,83,243,86,85,94,135, | |
2140 134,96,169,16,95,95,168,90,134,259,171,259,97,171,97,97,97,87,84, | |
2141 247,247,247,247,247,247,247,144,143,199,198,197,196,195,194,193,192,191,190, | |
2142 189,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247, | |
2143 247,247,247,247,247,247,247,247,244,247,247,247,247,247,146,145, | |
2144 88,89,255,168,169, | |
2145 249,1,249,2,246,2,2,248,1, | |
2146 210,247,130, | |
2147 250,250,250,250,250,247, | |
2148 | |
2149 }; | |
2150 | |
2151 | |
2152 static const unsigned short ag_sbt[] = { | |
2153 0, 17, 58, 64, 77, 116, 118, 122, 156, 175, 210, 212, 216, 218, | |
2154 249, 257, 299, 340, 347, 350, 380, 423, 427, 431, 438, 445, 452, 459, | |
2155 481, 483, 485, 490, 540, 546, 562, 564, 566, 606, 617, 619, 622, 657, | |
2156 663, 689, 692, 730, 768, 770, 772, 776, 816, 819, 870, 912, 926, 957, | |
2157 987,1006,1025,1044,1070,1078,1086,1088,1095,1105,1111,1121,1132,1140, | |
2158 1151,1169,1199,1221,1259,1294,1332,1367,1369,1413,1435,1483,1520,1553, | |
2159 1591,1648,1670,1700,1702,1731,1760,1770,1802,1855,1884,1915,1917,1945, | |
2160 1947,1956,2000,2011,2048,2052,2085,2106,2110,2129,2155,2161,2166,2176, | |
2161 2196,2201,2211,2219,2222,2229,2238,2245,2252,2260,2267,2274,2287,2300, | |
2162 2308,2316,2324,2332,2340,2348,2363,2368,2382,2387,2390,2399,2401,2403, | |
2163 2407,2447,2483,2485,2488,2495,2498,2501,2504,2509,2559,2572,2580,2585, | |
2164 2589,2593,2615,2622,2625,2629,2659,2689,2693,2700,2724,2753,2775,2797, | |
2165 2819,2848,2877,2914,2923,2939,2983,2985,2990,2993,3004,3022,3029,3032, | |
2166 3039,3046,3054,3061,3106,3109,3115,3147,3150,3169,3172,3183,3206,3246, | |
2167 3248,3293,3295,3297,3337,3349,3355,3378,3400,3422,3443,3465,3487,3493, | |
2168 3546,3575,3605,3620,3648,3650,3652,3654,3672,3688,3707,3714,3724,3731, | |
2169 3739,3780,3789,3792,3797,3803,3807,3810,3832,3837,3845,3850,3859,3872, | |
2170 3876,3893,3919,3950,3959,3971,4012,4065,4070,4079,4082,4088 | |
2171 }; | |
2172 | |
2173 | |
2174 static const unsigned short ag_sbe[] = { | |
2175 10, 55, 60, 72, 113, 117, 120, 149, 161, 209, 211, 214, 217, 238, | |
2176 252, 294, 334, 342, 348, 373, 415, 425, 428, 434, 441, 448, 455, 465, | |
2177 482, 484, 487, 532, 544, 558, 563, 565, 603, 613, 618, 620, 646, 659, | |
2178 684, 690, 726, 764, 769, 771, 774, 814, 817, 859, 887, 920, 951, 980, | |
2179 999,1018,1037,1058,1074,1082,1087,1090,1099,1109,1113,1126,1135,1150, | |
2180 1158,1187,1215,1257,1292,1330,1365,1368,1406,1429,1472,1515,1542,1580, | |
2181 1636,1665,1691,1701,1720,1749,1765,1801,1847,1873,1897,1916,1930,1946, | |
2182 1952,1973,2007,2043,2049,2074,2102,2107,2122,2143,2157,2163,2170,2190, | |
2183 2198,2203,2213,2221,2224,2232,2240,2247,2254,2262,2269,2279,2292,2302, | |
2184 2310,2318,2326,2334,2342,2353,2365,2376,2384,2388,2394,2400,2402,2405, | |
2185 2445,2478,2484,2487,2492,2497,2500,2503,2508,2551,2568,2576,2582,2586, | |
2186 2591,2609,2619,2624,2628,2653,2683,2691,2696,2713,2742,2769,2791,2813, | |
2187 2832,2861,2909,2919,2937,2956,2984,2987,2991,2998,3016,3025,3030,3035, | |
2188 3042,3049,3057,3079,3107,3111,3129,3148,3161,3170,3179,3194,3230,3247, | |
2189 3286,3294,3296,3330,3343,3353,3372,3394,3416,3439,3459,3481,3491,3538, | |
2190 3569,3599,3613,3633,3649,3651,3653,3661,3686,3701,3709,3717,3726,3733, | |
2191 3755,3783,3790,3794,3799,3804,3808,3826,3834,3840,3847,3854,3864,3873, | |
2192 3885,3913,3932,3953,3966,3988,4057,4067,4074,4080,4087,4088 | |
2193 }; | |
2194 | |
2195 | |
2196 static const unsigned char ag_fl[] = { | |
2197 1,1,2,0,1,2,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,5,2,2,2,2,3,3,1, | |
2198 1,1,2,3,1,2,3,2,1,1,1,1,2,1,3,1,3,4,1,1,3,1,2,2,1,2,1,1,2,1,1,2,2,2,3, | |
2199 4,0,0,2,4,1,2,0,1,3,1,0,4,0,5,1,1,2,4,2,4,1,3,2,1,2,1,2,1,2,3,3,2,3,2, | |
2200 1,1,1,2,1,2,1,0,1,2,3,1,2,3,3,2,2,2,1,2,0,1,2,1,3,3,3,0,1,1,1,1,1,1,1, | |
2201 2,1,2,1,2,1,2,1,1,1,1,1,1,1,3,1,3,1,4,1,2,1,1,1,1,1,1,1,1,1,3,5,4,3,3, | |
2202 3,1,3,3,4,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,2,1,1,2,2, | |
2203 2,1,2,1,2,0,3,1,2,2,3,0,2,3,1,3,1,2,3,3,4,3,1,2,2,2,2,2,2,2,2,2,2,3,5, | |
2204 2,4,7,5,1,2,0,1,1,2,6,3,4,1,3,1,3,3,4,3,4,3,3,2,4,4,2,4,2,4,3,2,1,2,0, | |
2205 1,2,0,2,1,1,3,2,2,0,2,1,3,1,3,2,2,0,2,1,2,2,1,1,2,2,2,1,2,2,1,1,2,1,2, | |
2206 0,1,2,1,1,2,1,2,0,1,2,1 | |
2207 }; | |
2208 | |
2209 static const unsigned char ag_ptt[] = { | |
2210 0, 4, 4, 5, 5, 1, 9, 9, 6, 10, 12, 14, 16, 18, 20, 22, 24, 26, | |
2211 28, 30, 32, 34, 36, 40, 40, 43, 43, 38, 41, 41, 41, 41, 41, 41, 42, 42, | |
2212 45, 45, 45, 53, 53, 45, 51, 49, 49, 49, 50, 50, 55, 55, 57, 57, 56, 61, | |
2213 62, 62, 63, 63, 65, 66, 66, 68, 68, 64, 54, 54, 54, 52, 70, 69, 69, 71, | |
2214 67, 67, 67, 60, 60, 78, 78, 60, 76, 81, 76, 82, 76, 79, 79, 79, 77, 85, | |
2215 85, 88, 84, 89, 91, 91, 83, 83, 92, 92, 92, 95, 95, 95, 58, 3, 3, 8, | |
2216 8, 8, 99, 99,103,103,101,101,105,105,105, 39, 39, 39, 39,109,109,110, | |
2217 110,100,111,111,115,112,119,119,117,117,118,118,124,124,118,120,120,121, | |
2218 121,125,125,130,130, 72, 72,132,132,134,134,134,137,136,136,138,138,116, | |
2219 116,116,116,116,140,140,140,140,140,146,146, 46, 46, 46,149,149,149,150, | |
2220 150,151,153,153,153,152,158,158,158,142,142,142,142,142,142,142,142,142, | |
2221 142,142,171,173,144,143,143,145,155,155,155,155,155,156,156,157,157, 73, | |
2222 73,179,179,178, 48,182,182,180,181,181,183,183,183,183,183,183,183,183, | |
2223 185,184,184,184,184,184,184,184,184,184,184,184,184,184,184,204,204,206, | |
2224 206,206,195,194,194,188,207,207,135,135,135,135,135,135,135,135,135,135, | |
2225 135,148,148,133,133, 47,216,217,217,218,218,214,215,215,219,219,219,219, | |
2226 219,220,220,224,224,224,224,224,224,226, 74,227,227,227,228,228,228,228, | |
2227 98,231,231, 98,237,237,237,238,238,239,239,223,240,240,240,241,241,242, | |
2228 242,222,236 | |
2229 }; | |
2230 | |
2231 static const unsigned char *ag_valid(int ag_k) { | |
2232 const unsigned char *ag_tp = &ag_tstt[ag_sbt[(PCB).sn+1]]; | |
2233 while (*--ag_tp != (unsigned char) ag_k) if (*ag_tp == 0) return NULL; | |
2234 return ag_tp; | |
2235 } | |
2236 | |
2237 int pgg_change_reduction(pgg_token_type ag_k) { | |
2238 if (!ag_valid(ag_k)) return 0; | |
2239 (PCB).reduction_token = ag_k; | |
2240 return 1; | |
2241 } | |
2242 | |
2243 static void ag_default(const int *ag_tp) { | |
2244 (PCB).ag_dsn = (PCB).sn; | |
2245 (PCB).ag_dtl = ag_tp; | |
2246 while (!ag_valid((pgg_token_type) *ag_tp)) ag_tp++; | |
2247 (PCB).reduction_token = (pgg_token_type) *ag_tp; | |
2248 } | |
2249 | |
2250 | |
2251 | |
2252 static void ag_ra(void) | |
2253 { | |
2254 switch(ag_rpx[(PCB).ag_ap]) { | |
2255 case 1: ag_rp_1(V(0,(int *))); break; | |
2256 case 2: ag_rp_2(); break; | |
2257 case 3: ag_rp_1(V(1,(int *))); break; | |
2258 case 4: ag_rp_4(V(0,(int *))); break; | |
2259 case 5: V(0,(int *)) = ag_rp_5(V(0,(int *))); break; | |
2260 case 6: V(0,(int *)) = ag_rp_6(V(0,(int *))); break; | |
2261 case 7: V(0,(int *)) = ag_rp_7(); break; | |
2262 case 8: V(0,(int *)) = ag_rp_8(V(0,(int *))); break; | |
2263 case 9: ag_rp_9(V(0,(int *))); break; | |
2264 case 10: ag_rp_10(V(2,(int *))); break; | |
2265 case 11: V(0,(int *)) = ag_rp_11(); break; | |
2266 case 12: V(0,(int *)) = ag_rp_12(); break; | |
2267 case 13: V(0,(int *)) = ag_rp_13(); break; | |
2268 case 14: ag_rp_14(); break; | |
2269 case 15: ag_rp_15(V(0,(int *))); break; | |
2270 case 16: ag_rp_16(V(1,(int *))); break; | |
2271 case 17: ag_rp_17(V(0,(int *))); break; | |
2272 case 18: V(0,(int *)) = ag_rp_18(V(1,(int *))); break; | |
2273 case 19: ag_rp_19(V(0,(int *))); break; | |
2274 case 20: ag_rp_20(V(0,(int *))); break; | |
2275 case 21: ag_rp_21(V(1,(int *))); break; | |
2276 case 22: V(0,(int *)) = ag_rp_22(V(1,(int *))); break; | |
2277 case 23: ag_rp_23(V(1,(int *)), V(2,(int *))); break; | |
2278 case 24: ag_rp_24(V(2,(int *)), V(3,(int *))); break; | |
2279 case 25: ag_rp_25(); break; | |
2280 case 26: V(0,(int *)) = ag_rp_26(); break; | |
2281 case 27: V(0,(int *)) = ag_rp_27(); break; | |
2282 case 28: V(0,(int *)) = ag_rp_28(); break; | |
2283 case 29: ag_rp_29(); break; | |
2284 case 30: ag_rp_30(); break; | |
2285 case 31: ag_rp_31(); break; | |
2286 case 32: ag_rp_32(); break; | |
2287 case 33: ag_rp_33(); break; | |
2288 case 34: ag_rp_34(); break; | |
2289 case 35: ag_rp_35(); break; | |
2290 case 36: ag_rp_36(); break; | |
2291 case 37: ag_rp_37(); break; | |
2292 case 38: ag_rp_38(); break; | |
2293 case 39: ag_rp_39(); break; | |
2294 case 40: ag_rp_40(); break; | |
2295 case 41: ag_rp_41(); break; | |
2296 case 42: ag_rp_42(); break; | |
2297 case 43: ag_rp_43(V(0,(int *))); break; | |
2298 case 44: ag_rp_44(V(1,(int *))); break; | |
2299 case 45: ag_rp_45(V(2,(int *))); break; | |
2300 case 46: ag_rp_46(V(2,(int *))); break; | |
2301 case 47: ag_rp_47(V(1,(int *))); break; | |
2302 case 48: ag_rp_48(V(2,(int *))); break; | |
2303 case 49: V(0,(int *)) = ag_rp_49(V(1,(int *))); break; | |
2304 case 50: V(0,(int *)) = ag_rp_50(V(1,(int *))); break; | |
2305 case 51: V(0,(int *)) = ag_rp_51(V(0,(int *)), V(1,(int *))); break; | |
2306 case 52: V(0,(int *)) = ag_rp_52(); break; | |
2307 case 53: V(0,(int *)) = ag_rp_53(); break; | |
2308 case 54: V(0,(int *)) = ag_rp_54(V(0,(int *))); break; | |
2309 case 55: V(0,(int *)) = ag_rp_55(V(1,(int *))); break; | |
2310 case 56: V(0,(int *)) = ag_rp_56(V(0,(int *))); break; | |
2311 case 57: V(0,(int *)) = ag_rp_57(V(0,(int *)), V(1,(int *))); break; | |
2312 case 58: V(0,(int *)) = ag_rp_58(); break; | |
2313 case 59: V(0,(int *)) = ag_rp_59(V(0,(int *)), V(1,(int *))); break; | |
2314 case 60: V(0,(int *)) = ag_rp_60(V(0,(int *))); break; | |
2315 case 61: V(0,(int *)) = ag_rp_61(V(0,(int *)), V(1,(int *))); break; | |
2316 case 62: V(0,(int *)) = ag_rp_62(V(0,(int *))); break; | |
2317 case 63: V(0,(int *)) = ag_rp_63(V(0,(int *))); break; | |
2318 case 64: V(0,(int *)) = ag_rp_64(V(0,(int *))); break; | |
2319 case 65: V(0,(int *)) = ag_rp_65(V(0,(CharSetExpression * *))); break; | |
2320 case 66: V(0,(CharSetExpression * *)) = ag_rp_66(V(0,(CharSetExpression * *)), V(2,(CharSetExpression * *))); break; | |
2321 case 67: V(0,(CharSetExpression * *)) = ag_rp_67(V(0,(CharSetExpression * *)), V(2,(CharSetExpression * *))); break; | |
2322 case 68: V(0,(CharSetExpression * *)) = ag_rp_68(V(0,(CharSetExpression * *)), V(3,(CharSetExpression * *))); break; | |
2323 case 69: V(0,(CharSetExpression * *)) = ag_rp_69(V(1,(CharSetExpression * *))); break; | |
2324 case 70: V(0,(CharSetExpression * *)) = ag_rp_70(V(0,(int *))); break; | |
2325 case 71: V(0,(CharSetExpression * *)) = ag_rp_71(V(0,(int *))); break; | |
2326 case 72: V(0,(CharSetExpression * *)) = ag_rp_72(); break; | |
2327 case 73: V(0,(CharSetExpression * *)) = ag_rp_73(V(1,(CharSetExpression * *))); break; | |
2328 case 74: V(0,(CharSetExpression * *)) = ag_rp_74(V(1,(int *)), V(3,(int *))); break; | |
2329 case 75: V(0,(CharSetExpression * *)) = ag_rp_75(V(0,(int *)), V(3,(int *))); break; | |
2330 case 76: ag_rp_76(V(2,(CharSetExpression * *))); break; | |
2331 case 77: ag_rp_77(V(2,(int *))); break; | |
2332 case 78: ag_rp_78(V(2,(int *))); break; | |
2333 case 79: ag_rp_79(); break; | |
2334 case 80: ag_rp_80(V(2,(int *))); break; | |
2335 case 81: ag_rp_81(V(2,(int *))); break; | |
2336 case 82: ag_rp_82(); break; | |
2337 case 83: V(0,(int *)) = ag_rp_83(V(0,(int *))); break; | |
2338 case 84: V(0,(int *)) = ag_rp_84(); break; | |
2339 case 85: V(0,(int *)) = ag_rp_85(); break; | |
2340 case 86: V(0,(int *)) = ag_rp_86(); break; | |
2341 case 87: V(0,(int *)) = ag_rp_87(); break; | |
2342 case 88: V(0,(int *)) = ag_rp_88(); break; | |
2343 case 89: V(0,(int *)) = ag_rp_89(); break; | |
2344 case 90: V(0,(int *)) = ag_rp_90(); break; | |
2345 case 91: V(0,(int *)) = ag_rp_91(); break; | |
2346 case 92: V(0,(int *)) = ag_rp_92(); break; | |
2347 case 93: V(0,(int *)) = ag_rp_93(); break; | |
2348 case 94: V(0,(int *)) = ag_rp_94(); break; | |
2349 case 95: V(0,(int *)) = ag_rp_95(V(1,(int *))); break; | |
2350 case 96: V(0,(int *)) = ag_rp_96(V(0,(int *)), V(1,(int *))); break; | |
2351 case 97: V(0,(int *)) = ag_rp_97(V(0,(int *)), V(1,(int *))); break; | |
2352 case 98: V(0,(int *)) = ag_rp_98(V(1,(int *))); break; | |
2353 case 99: ag_rp_99(V(0,(int *))); break; | |
2354 case 100: ag_rp_100(V(0,(int *))); break; | |
2355 case 101: ag_rp_101(V(1,(int *))); break; | |
2356 case 102: ag_rp_102(V(1,(int *))); break; | |
2357 case 103: ag_rp_103(V(1,(int *))); break; | |
2358 case 104: ag_rp_104(V(0,(int *))); break; | |
2359 case 105: ag_rp_105(V(1,(int *))); break; | |
2360 case 106: ag_rp_106(V(0,(int *))); break; | |
2361 case 107: ag_rp_107(V(1,(int *))); break; | |
2362 case 108: V(0,(int *)) = ag_rp_108(); break; | |
2363 case 109: V(0,(int *)) = ag_rp_109(); break; | |
2364 case 110: ag_rp_110(V(0,(int *))); break; | |
2365 case 111: ag_rp_111(V(1,(int *))); break; | |
2366 case 112: ag_rp_112(); break; | |
2367 case 113: ag_rp_113(); break; | |
2368 case 114: ag_rp_114(); break; | |
2369 case 115: ag_rp_115(); break; | |
2370 case 116: ag_rp_116(); break; | |
2371 case 117: ag_rp_117(V(2,(int *))); break; | |
2372 case 118: ag_rp_118(); break; | |
2373 case 119: ag_rp_119(); break; | |
2374 case 120: ag_rp_120(); break; | |
2375 case 121: ag_rp_121(); break; | |
2376 case 122: ag_rp_122(); break; | |
2377 case 123: ag_rp_123(); break; | |
2378 case 124: ag_rp_124(); break; | |
2379 case 125: ag_rp_125(); break; | |
2380 case 126: ag_rp_126(V(2,(int *))); break; | |
2381 case 127: ag_rp_127(); break; | |
2382 case 128: ag_rp_128(); break; | |
2383 case 129: ag_rp_129(); break; | |
2384 case 130: ag_rp_130(V(4,(int *)), V(6,(int *))); break; | |
2385 case 131: V(0,(int *)) = ag_rp_131(); break; | |
2386 case 132: ag_rp_132(V(5,(CharSetExpression * *))); break; | |
2387 case 133: ag_rp_133(V(2,(CharSetExpression * *))); break; | |
2388 case 134: ag_rp_134(V(0,(int *))); break; | |
2389 case 135: ag_rp_135(V(2,(int *))); break; | |
2390 case 136: V(0,(int *)) = ag_rp_136(); break; | |
2391 case 137: V(0,(int *)) = ag_rp_137(); break; | |
2392 case 138: V(0,(int *)) = ag_rp_138(); break; | |
2393 case 139: V(0,(int *)) = ag_rp_139(); break; | |
2394 case 140: V(0,(int *)) = ag_rp_140(); break; | |
2395 case 141: V(0,(int *)) = ag_rp_141(); break; | |
2396 case 142: V(0,(int *)) = ag_rp_142(V(0,(CharSetExpression * *))); break; | |
2397 case 143: V(0,(int *)) = ag_rp_143(V(0,(CharSetExpression * *))); break; | |
2398 case 144: V(0,(int *)) = ag_rp_144(V(0,(CharSetExpression * *))); break; | |
2399 case 145: V(0,(int *)) = ag_rp_145(); break; | |
2400 case 146: V(0,(int *)) = ag_rp_146(); break; | |
2401 case 147: V(0,(int *)) = ag_rp_147(); break; | |
2402 case 148: V(0,(int *)) = ag_rp_148(); break; | |
2403 case 149: V(0,(int *)) = ag_rp_149(); break; | |
2404 case 150: V(0,(int *)) = ag_rp_150(); break; | |
2405 case 151: ag_rp_151(V(1,(unsigned char * *))); break; | |
2406 case 152: ag_rp_152(); break; | |
2407 case 153: V(0,(unsigned char * *)) = ag_rp_153(); break; | |
2408 case 154: V(0,(unsigned char * *)) = ag_rp_154(); break; | |
2409 case 155: ag_rp_155(); break; | |
2410 case 156: ag_rp_156(); break; | |
2411 case 157: ag_default(&ag_rtt[0]); ag_rp_157(); break; | |
2412 } | |
2413 (PCB).la_ptr = (PCB).pointer; | |
2414 } | |
2415 | |
2416 | |
2417 static const unsigned char ag_ctn[] = { | |
2418 0,0, 98,1, 0,0, 0,0,100,1, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, | |
2419 0,0, 0,0, 56,1,214,1, 58,1, 50,1, 55,1, 48,1, 47,1, 0,0, 45,1, 41,1, | |
2420 41,1, 41,1, 41,1, 41,1, 0,0, 0,0, 99,1, 0,0, 76,1, 0,0, 56,2, 0,0, | |
2421 0,0, 0,0, 0,0, 55,1, 0,0, 55,2,180,1, 48,2,223,1,222,1,219,1,219,1, | |
2422 219,1, 0,0, 47,2, 0,0, 46,2, 0,0, 51,1, 51,1, 0,0, 0,0, 0,0, 0,0, | |
2423 41,2, 45,1, 0,0, 0,0, 76,2, 76,2, 0,0, 85,1, 0,0, 0,0, 56,3,180,2, | |
2424 0,0, 0,0, 0,0, 0,0, 0,0,219,2, 0,0, 0,0, 0,0,148,1,135,1, 0,0, | |
2425 151,1,135,1,135,1,135,1, 0,0, 0,0,112,1,111,1,140,1, 0,0,140,1,146,1, | |
2426 138,1,136,1,134,1, 69,1, 0,0, 67,1, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, | |
2427 0,0, 76,3, 76,3, 0,0, 0,0, 0,0, 0,0, 0,0,183,1,184,1,184,1,184,1, | |
2428 184,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,183,1, | |
2429 183,1,183,1,183,1,183,1, 0,0, 0,0, 0,0, 0,0, 0,0, 74,1,148,2,143,1, | |
2430 145,1, 0,0,143,1,153,1,153,1,153,1, 64,1, 0,0, 68,1, 68,1,135,2,135,2, | |
2431 0,0,121,1,120,1,112,2,111,2,140,2,137,1,146,2,136,2, 0,0,135,2,135,2, | |
2432 137,2,137,2,133,1,135,1, 69,2, 69,2, 67,2, 76,4, 0,0, 85,3, 0,0, 0,0, | |
2433 184,2, 0,0, 0,0,188,1, 0,0, 0,0, 0,0,150,2,184,2,150,2, 0,0,183,2, | |
2434 0,0,183,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0,148,3,125,1,151,3,135,3, | |
2435 135,3, 0,0,135,3,135,3,125,1,146,3, 0,0, 0,0,146,3,136,3,136,1,136,1, | |
2436 133,2, 73,1, 69,3, 67,3,184,3,184,3,184,3,184,3,188,2,184,3,149,1,137,1, | |
2437 150,3,183,3,146,4,133,3, 73,2, 0,0, 62,1, 0,0,207,1,184,4,149,2, 0,0, | |
2438 184,5, 62,2,204,1,207,2,115,1,137,1, 0,0,115,2,204,1 | |
2439 }; | |
2440 | |
2441 #ifndef MISSING_FORMAT | |
2442 #define MISSING_FORMAT "Missing %s" | |
2443 #endif | |
2444 #ifndef UNEXPECTED_FORMAT | |
2445 #define UNEXPECTED_FORMAT "Unexpected %s" | |
2446 #endif | |
2447 #ifndef UNNAMED_TOKEN | |
2448 #define UNNAMED_TOKEN "input" | |
2449 #endif | |
2450 | |
2451 | |
2452 static void ag_diagnose(void) { | |
2453 int ag_snd = (PCB).sn; | |
2454 int ag_k = ag_sbt[ag_snd]; | |
2455 | |
2456 if (*TOKEN_NAMES[ag_tstt[ag_k]] && ag_astt[ag_k + 1] == ag_action_8) { | |
2457 sprintf((PCB).ag_msg, MISSING_FORMAT, TOKEN_NAMES[ag_tstt[ag_k]]); | |
2458 } | |
2459 else if (ag_astt[ag_sbe[(PCB).sn]] == ag_action_8 | |
2460 && (ag_k = (int) ag_sbe[(PCB).sn] + 1) == (int) ag_sbt[(PCB).sn+1] - 1 | |
2461 && *TOKEN_NAMES[ag_tstt[ag_k]]) { | |
2462 sprintf((PCB).ag_msg, MISSING_FORMAT, TOKEN_NAMES[ag_tstt[ag_k]]); | |
2463 } | |
2464 else if ((PCB).token_number && *TOKEN_NAMES[(PCB).token_number]) { | |
2465 sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, TOKEN_NAMES[(PCB).token_number]); | |
2466 } | |
2467 else if (isprint(INPUT_CODE((*(PCB).pointer))) && INPUT_CODE((*(PCB).pointer)) != '\\') { | |
2468 char buf[20]; | |
2469 sprintf(buf, "\'%c\'", (char) INPUT_CODE((*(PCB).pointer))); | |
2470 sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, buf); | |
2471 } | |
2472 else sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, UNNAMED_TOKEN); | |
2473 (PCB).error_message = (PCB).ag_msg; | |
2474 | |
2475 | |
2476 { | |
2477 int ag_sx, ag_t; | |
2478 | |
2479 ag_sx = (PCB).ssx; | |
2480 (PCB).ss[ag_sx] = (PCB).sn; | |
2481 do { | |
2482 while (ag_sx && ag_ctn[2*(ag_snd = (PCB).ss[ag_sx])] == 0) ag_sx--; | |
2483 if (ag_sx) { | |
2484 ag_t = ag_ctn[2*ag_snd]; | |
2485 ag_sx -= ag_ctn[2*ag_snd +1]; | |
2486 ag_snd = (PCB).ss[ag_sx]; | |
2487 } | |
2488 else { | |
2489 ag_snd = 0; | |
2490 ag_t = ag_ptt[0]; | |
2491 } | |
2492 } while (ag_sx && *TOKEN_NAMES[ag_t]==0); | |
2493 if (*TOKEN_NAMES[ag_t] == 0) ag_t = 0; | |
2494 (PCB).error_frame_ssx = ag_sx; | |
2495 (PCB).error_frame_token = (pgg_token_type) ag_t; | |
2496 } | |
2497 | |
2498 | |
2499 } | |
2500 static int ag_action_1_r_proc(void); | |
2501 static int ag_action_2_r_proc(void); | |
2502 static int ag_action_3_r_proc(void); | |
2503 static int ag_action_4_r_proc(void); | |
2504 static int ag_action_1_s_proc(void); | |
2505 static int ag_action_3_s_proc(void); | |
2506 static int ag_action_1_proc(void); | |
2507 static int ag_action_2_proc(void); | |
2508 static int ag_action_3_proc(void); | |
2509 static int ag_action_4_proc(void); | |
2510 static int ag_action_5_proc(void); | |
2511 static int ag_action_6_proc(void); | |
2512 static int ag_action_7_proc(void); | |
2513 static int ag_action_8_proc(void); | |
2514 static int ag_action_9_proc(void); | |
2515 static int ag_action_10_proc(void); | |
2516 static int ag_action_11_proc(void); | |
2517 static int ag_action_8_proc(void); | |
2518 | |
2519 | |
2520 static int (*const ag_r_procs_scan[])(void) = { | |
2521 ag_action_1_r_proc, | |
2522 ag_action_2_r_proc, | |
2523 ag_action_3_r_proc, | |
2524 ag_action_4_r_proc | |
2525 }; | |
2526 | |
2527 static int (*const ag_s_procs_scan[])(void) = { | |
2528 ag_action_1_s_proc, | |
2529 ag_action_2_r_proc, | |
2530 ag_action_3_s_proc, | |
2531 ag_action_4_r_proc | |
2532 }; | |
2533 | |
2534 static int (*const ag_gt_procs_scan[])(void) = { | |
2535 ag_action_1_proc, | |
2536 ag_action_2_proc, | |
2537 ag_action_3_proc, | |
2538 ag_action_4_proc, | |
2539 ag_action_5_proc, | |
2540 ag_action_6_proc, | |
2541 ag_action_7_proc, | |
2542 ag_action_8_proc, | |
2543 ag_action_9_proc, | |
2544 ag_action_10_proc, | |
2545 ag_action_11_proc, | |
2546 ag_action_8_proc | |
2547 }; | |
2548 | |
2549 | |
2550 static int ag_rns(int ag_t, int *ag_sx, int ag_snd) { | |
2551 while (1) { | |
2552 int ag_act, ag_k = ag_sbt[ag_snd], ag_lim = ag_sbt[ag_snd+1]; | |
2553 int ag_p; | |
2554 | |
2555 while (ag_k < ag_lim && ag_tstt[ag_k] != ag_t) ag_k++; | |
2556 if (ag_k == ag_lim) break; | |
2557 ag_act = ag_astt[ag_k]; | |
2558 ag_p = ag_pstt[ag_k]; | |
2559 if (ag_act == ag_action_2) return ag_p; | |
2560 if (ag_act == ag_action_10 || ag_act == ag_action_11) { | |
2561 (*ag_sx)--; | |
2562 return ag_snd; | |
2563 } | |
2564 if (ag_act != ag_action_3 && | |
2565 ag_act != ag_action_4) break; | |
2566 *ag_sx -= (ag_fl[ag_p] - 1); | |
2567 ag_snd = (PCB).ss[*ag_sx]; | |
2568 ag_t = ag_ptt[ag_p]; | |
2569 } | |
2570 return 0; | |
2571 } | |
2572 | |
2573 static int ag_jns(int ag_t) { | |
2574 int ag_k; | |
2575 | |
2576 ag_k = ag_sbt[(PCB).sn]; | |
2577 while (ag_tstt[ag_k] != ag_t && ag_tstt[ag_k]) ag_k++; | |
2578 while (1) { | |
2579 int ag_p = ag_pstt[ag_k]; | |
2580 int ag_sd; | |
2581 | |
2582 switch (ag_astt[ag_k]) { | |
2583 case ag_action_2: | |
2584 GET_CONTEXT; | |
2585 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2586 return ag_p; | |
2587 case ag_action_10: | |
2588 case ag_action_11: | |
2589 return (PCB).ss[(PCB).ssx--]; | |
2590 case ag_action_9: | |
2591 GET_CONTEXT; | |
2592 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2593 (PCB).ssx++; | |
2594 (PCB).sn = ag_p; | |
2595 ag_k = ag_sbt[(PCB).sn]; | |
2596 while (ag_tstt[ag_k] != ag_t && ag_tstt[ag_k]) ag_k++; | |
2597 continue; | |
2598 case ag_action_3: | |
2599 case ag_action_4: | |
2600 ag_sd = ag_fl[ag_p] - 1; | |
2601 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2602 else GET_CONTEXT; | |
2603 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2604 ag_t = ag_ptt[ag_p]; | |
2605 ag_k = ag_sbt[(PCB).sn+1]; | |
2606 while (ag_tstt[--ag_k] != ag_t); | |
2607 continue; | |
2608 case ag_action_5: | |
2609 case ag_action_6: | |
2610 if (ag_fl[ag_p]) break; | |
2611 (PCB).sn = ag_rns(ag_ptt[ag_p],&(PCB).ssx, (PCB).sn); | |
2612 (PCB).ss[++(PCB).ssx] = (PCB).sn; | |
2613 ag_k = ag_sbt[(PCB).sn]; | |
2614 while (ag_tstt[ag_k] != ag_t && ag_tstt[ag_k]) ag_k++; | |
2615 continue; | |
2616 } | |
2617 break; | |
2618 } | |
2619 return 0; | |
2620 } | |
2621 | |
2622 | |
2623 static int ag_atx(int ag_t, int *ag_sx, int ag_snd) { | |
2624 int ag_k, ag_f; | |
2625 int ag_save_btsx = (PCB).btsx; | |
2626 int ag_flag = 1; | |
2627 | |
2628 while (1) { | |
2629 int ag_a; | |
2630 | |
2631 (PCB).bts[128 - ++(PCB).btsx] = *ag_sx; | |
2632 (PCB).ss[128 - (PCB).btsx] = (PCB).ss[*ag_sx]; | |
2633 (PCB).ss[*ag_sx] = ag_snd; | |
2634 ag_k = ag_sbt[ag_snd]; | |
2635 while (ag_tstt[ag_k] != ag_t && ag_tstt[ag_k]) ag_k++; | |
2636 ag_a = ag_astt[ag_k]; | |
2637 if (ag_a == ag_action_2 || | |
2638 ag_a == ag_action_3 || | |
2639 ag_a == ag_action_10 || | |
2640 ag_a == ag_action_11 || | |
2641 ag_a == ag_action_1 || | |
2642 ag_a == ag_action_4) break; | |
2643 if ((ag_a == ag_action_5 || | |
2644 ag_a == ag_action_6) && | |
2645 (ag_k = ag_fl[ag_f = ag_pstt[ag_k]]) == 0) { | |
2646 ag_snd = ag_rns(ag_ptt[ag_f],ag_sx, (PCB).ss[*ag_sx]); | |
2647 (*ag_sx)++; | |
2648 continue; | |
2649 } | |
2650 if (ag_a == ag_action_9) { | |
2651 ag_snd = ag_pstt[ag_k]; | |
2652 (*ag_sx)++; | |
2653 continue; | |
2654 } | |
2655 ag_flag = 0; | |
2656 break; | |
2657 } | |
2658 while ((PCB).btsx > ag_save_btsx) { | |
2659 *ag_sx = (PCB).bts[128 - (PCB).btsx]; | |
2660 (PCB).ss[*ag_sx] = (PCB).ss[128 - (PCB).btsx--]; | |
2661 } | |
2662 return ag_flag; | |
2663 } | |
2664 | |
2665 | |
2666 static int ag_tst_tkn(void) { | |
2667 int ag_rk, ag_sx, ag_snd = (PCB).sn; | |
2668 | |
2669 (PCB).token_number = (pgg_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
2670 (PCB).la_ptr++; | |
2671 if (ag_key_index[(PCB).sn]) { | |
2672 unsigned ag_k = ag_key_index[(PCB).sn]; | |
2673 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
2674 if (ag_ch <= 255) { | |
2675 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
2676 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
2677 } | |
2678 } | |
2679 for (ag_rk = 0; ag_rk < (PCB).ag_lrss; ag_rk += 2) { | |
2680 ag_sx = (PCB).ag_rss[ag_rk]; | |
2681 if (ag_sx > (PCB).ssx || ag_sx > (PCB).ag_min_depth) continue; | |
2682 (PCB).sn = (PCB).ag_rss[ag_rk + 1]; | |
2683 if (ag_atx((PCB).token_number, &ag_sx, (PCB).sn)) break; | |
2684 } | |
2685 (PCB).sn = ag_snd; | |
2686 return ag_rk; | |
2687 } | |
2688 | |
2689 static void ag_set_error_procs(void); | |
2690 | |
2691 static void ag_auto_resynch(void) { | |
2692 int ag_sx, ag_rk; | |
2693 int ag_rk1, ag_rk2, ag_tk1; | |
2694 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2695 if ((PCB).ag_error_depth && (PCB).ag_min_depth >= (PCB).ag_error_depth) { | |
2696 (PCB).ssx = (PCB).ag_error_depth; | |
2697 (PCB).sn = (PCB).ss[(PCB).ssx]; | |
2698 } | |
2699 else { | |
2700 ag_diagnose(); | |
2701 SYNTAX_ERROR; | |
2702 if ((PCB).exit_flag != AG_RUNNING_CODE) return; | |
2703 (PCB).ag_error_depth = (PCB).ag_min_depth = 0; | |
2704 (PCB).ag_lrss = 0; | |
2705 (PCB).ss[ag_sx = (PCB).ssx] = (PCB).sn; | |
2706 (PCB).ag_min_depth = (PCB).ag_rss[(PCB).ag_lrss++] = ag_sx; | |
2707 (PCB).ag_rss[(PCB).ag_lrss++] = (PCB).sn; | |
2708 while (ag_sx && (PCB).ag_lrss < 2*128) { | |
2709 int ag_t = 0, ag_x, ag_s, ag_sxs = ag_sx; | |
2710 | |
2711 while (ag_sx && (ag_t = ag_ctn[2*(PCB).sn]) == 0) (PCB).sn = (PCB).ss[--ag_sx]; | |
2712 if (ag_t) (PCB).sn = (PCB).ss[ag_sx -= ag_ctn[2*(PCB).sn +1]]; | |
2713 else { | |
2714 if (ag_sx == 0) (PCB).sn = 0; | |
2715 ag_t = ag_ptt[0]; | |
2716 } | |
2717 if ((ag_s = ag_rns(ag_t, &ag_sx, (PCB).sn)) == 0) break; | |
2718 for (ag_x = 0; ag_x < (PCB).ag_lrss; ag_x += 2) | |
2719 if ((PCB).ag_rss[ag_x] == ag_sx + 1 && (PCB).ag_rss[ag_x+1] == ag_s) break; | |
2720 if (ag_x == (PCB).ag_lrss) { | |
2721 (PCB).ag_rss[(PCB).ag_lrss++] = ++ag_sx; | |
2722 (PCB).ag_rss[(PCB).ag_lrss++] = (PCB).sn = ag_s; | |
2723 } | |
2724 else if (ag_sx >= ag_sxs) ag_sx--; | |
2725 } | |
2726 ag_set_error_procs(); | |
2727 } | |
2728 (PCB).la_ptr = (PCB).pointer; | |
2729 if ((PCB).ssx > (PCB).ag_min_depth) (PCB).ag_min_depth = (PCB).ssx; | |
2730 while (1) { | |
2731 ag_rk1 = ag_tst_tkn(); | |
2732 if ((PCB).token_number == 44) | |
2733 {(PCB).exit_flag = AG_SYNTAX_ERROR_CODE; return;} | |
2734 if (ag_rk1 < (PCB).ag_lrss) break; | |
2735 {(PCB).la_ptr = (PCB).pointer + 1; ag_track();} | |
2736 } | |
2737 ag_tk1 = (PCB).token_number; | |
2738 ag_track(); | |
2739 ag_rk2 = ag_tst_tkn(); | |
2740 if (ag_rk2 < ag_rk1) {ag_rk = ag_rk2; ag_track();} | |
2741 else {ag_rk = ag_rk1; (PCB).token_number = (pgg_token_type) ag_tk1; (PCB).la_ptr = (PCB).pointer;} | |
2742 (PCB).ag_min_depth = (PCB).ssx = (PCB).ag_rss[ag_rk++]; | |
2743 (PCB).sn = (PCB).ss[(PCB).ssx] = (PCB).ag_rss[ag_rk]; | |
2744 (PCB).sn = ag_jns((PCB).token_number); | |
2745 if ((PCB).ag_error_depth == 0 || (PCB).ag_error_depth > (PCB).ssx) | |
2746 (PCB).ag_error_depth = (PCB).ssx; | |
2747 if (++(PCB).ssx >= 128) { | |
2748 (PCB).exit_flag = AG_STACK_ERROR_CODE; | |
2749 PARSER_STACK_OVERFLOW; | |
2750 return; | |
2751 } | |
2752 GET_CONTEXT; | |
2753 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2754 (PCB).ag_tmp_depth = (PCB).ag_min_depth; | |
2755 (PCB).la_ptr = (PCB).pointer; | |
2756 return; | |
2757 } | |
2758 | |
2759 | |
2760 static int ag_action_10_proc(void) { | |
2761 int ag_t = (PCB).token_number; | |
2762 (PCB).btsx = 0, (PCB).drt = -1; | |
2763 do { | |
2764 ag_track(); | |
2765 (PCB).token_number = (pgg_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
2766 (PCB).la_ptr++; | |
2767 if (ag_key_index[(PCB).sn]) { | |
2768 unsigned ag_k = ag_key_index[(PCB).sn]; | |
2769 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
2770 if (ag_ch <= 255) { | |
2771 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
2772 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
2773 } | |
2774 } | |
2775 } while ((PCB).token_number == (pgg_token_type) ag_t); | |
2776 (PCB).la_ptr = (PCB).pointer; | |
2777 return 1; | |
2778 } | |
2779 | |
2780 static int ag_action_11_proc(void) { | |
2781 int ag_t = (PCB).token_number; | |
2782 | |
2783 (PCB).btsx = 0, (PCB).drt = -1; | |
2784 do { | |
2785 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
2786 (PCB).ssx--; | |
2787 ag_track(); | |
2788 ag_ra(); | |
2789 if ((PCB).exit_flag != AG_RUNNING_CODE) return 0; | |
2790 (PCB).ssx++; | |
2791 (PCB).token_number = (pgg_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
2792 (PCB).la_ptr++; | |
2793 if (ag_key_index[(PCB).sn]) { | |
2794 unsigned ag_k = ag_key_index[(PCB).sn]; | |
2795 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
2796 if (ag_ch <= 255) { | |
2797 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
2798 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
2799 } | |
2800 } | |
2801 } | |
2802 while ((PCB).token_number == (pgg_token_type) ag_t); | |
2803 (PCB).la_ptr = (PCB).pointer; | |
2804 return 1; | |
2805 } | |
2806 | |
2807 static int ag_action_3_r_proc(void) { | |
2808 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
2809 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2810 (PCB).btsx = 0, (PCB).drt = -1; | |
2811 (PCB).reduction_token = (pgg_token_type) ag_ptt[(PCB).ag_ap]; | |
2812 ag_ra(); | |
2813 return (PCB).exit_flag == AG_RUNNING_CODE; | |
2814 } | |
2815 | |
2816 static int ag_action_3_s_proc(void) { | |
2817 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
2818 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2819 (PCB).btsx = 0, (PCB).drt = -1; | |
2820 (PCB).reduction_token = (pgg_token_type) ag_ptt[(PCB).ag_ap]; | |
2821 ag_ra(); | |
2822 return (PCB).exit_flag == AG_RUNNING_CODE; | |
2823 } | |
2824 | |
2825 static int ag_action_4_r_proc(void) { | |
2826 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
2827 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2828 (PCB).reduction_token = (pgg_token_type) ag_ptt[(PCB).ag_ap]; | |
2829 return 1; | |
2830 } | |
2831 | |
2832 static int ag_action_2_proc(void) { | |
2833 (PCB).btsx = 0, (PCB).drt = -1; | |
2834 if ((PCB).ssx >= 128) { | |
2835 (PCB).exit_flag = AG_STACK_ERROR_CODE; | |
2836 PARSER_STACK_OVERFLOW; | |
2837 } | |
2838 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
2839 GET_CONTEXT; | |
2840 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2841 (PCB).ssx++; | |
2842 (PCB).sn = (PCB).ag_ap; | |
2843 ag_track(); | |
2844 return 0; | |
2845 } | |
2846 | |
2847 static int ag_action_9_proc(void) { | |
2848 if ((PCB).drt == -1) { | |
2849 (PCB).drt=(PCB).token_number; | |
2850 (PCB).dssx=(PCB).ssx; | |
2851 (PCB).dsn=(PCB).sn; | |
2852 } | |
2853 ag_prot(); | |
2854 (PCB).vs[(PCB).ssx] = ag_null_value; | |
2855 GET_CONTEXT; | |
2856 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2857 (PCB).ssx++; | |
2858 (PCB).sn = (PCB).ag_ap; | |
2859 (PCB).la_ptr = (PCB).pointer; | |
2860 return (PCB).exit_flag == AG_RUNNING_CODE; | |
2861 } | |
2862 | |
2863 static int ag_action_2_r_proc(void) { | |
2864 (PCB).ssx++; | |
2865 (PCB).sn = (PCB).ag_ap; | |
2866 return 0; | |
2867 } | |
2868 | |
2869 static int ag_action_7_proc(void) { | |
2870 --(PCB).ssx; | |
2871 (PCB).la_ptr = (PCB).pointer; | |
2872 (PCB).exit_flag = AG_SUCCESS_CODE; | |
2873 return 0; | |
2874 } | |
2875 | |
2876 static int ag_action_1_proc(void) { | |
2877 ag_track(); | |
2878 (PCB).exit_flag = AG_SUCCESS_CODE; | |
2879 return 0; | |
2880 } | |
2881 | |
2882 static int ag_action_1_r_proc(void) { | |
2883 (PCB).exit_flag = AG_SUCCESS_CODE; | |
2884 return 0; | |
2885 } | |
2886 | |
2887 static int ag_action_1_s_proc(void) { | |
2888 (PCB).exit_flag = AG_SUCCESS_CODE; | |
2889 return 0; | |
2890 } | |
2891 | |
2892 static int ag_action_4_proc(void) { | |
2893 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
2894 (PCB).reduction_token = (pgg_token_type) ag_ptt[(PCB).ag_ap]; | |
2895 (PCB).btsx = 0, (PCB).drt = -1; | |
2896 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
2897 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2898 else GET_CONTEXT; | |
2899 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2900 ag_track(); | |
2901 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
2902 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
2903 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
2904 do { | |
2905 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
2906 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
2907 else ag_t2 = ag_tx; | |
2908 } while (ag_t1 < ag_t2); | |
2909 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
2910 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
2911 REDUCTION_TOKEN_ERROR; break;} | |
2912 (PCB).ag_ap = ag_pstt[ag_t1]; | |
2913 if ((*(PCB).s_procs[ag_astt[ag_t1]])() == 0) break; | |
2914 } | |
2915 return 0; | |
2916 } | |
2917 | |
2918 static int ag_action_3_proc(void) { | |
2919 int ag_sd = ag_fl[(PCB).ag_ap] - 1; | |
2920 (PCB).btsx = 0, (PCB).drt = -1; | |
2921 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).pointer; | |
2922 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2923 else GET_CONTEXT; | |
2924 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2925 ag_track(); | |
2926 (PCB).reduction_token = (pgg_token_type) ag_ptt[(PCB).ag_ap]; | |
2927 ag_ra(); | |
2928 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
2929 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
2930 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
2931 do { | |
2932 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
2933 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
2934 else ag_t2 = ag_tx; | |
2935 } while (ag_t1 < ag_t2); | |
2936 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
2937 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
2938 REDUCTION_TOKEN_ERROR; break;} | |
2939 (PCB).ag_ap = ag_pstt[ag_t1]; | |
2940 if ((*(PCB).s_procs[ag_astt[ag_t1]])() == 0) break; | |
2941 } | |
2942 return 0; | |
2943 } | |
2944 | |
2945 static int ag_action_8_proc(void) { | |
2946 ag_undo(); | |
2947 (PCB).la_ptr = (PCB).pointer; | |
2948 ag_auto_resynch(); | |
2949 return (PCB).exit_flag == AG_RUNNING_CODE; | |
2950 } | |
2951 | |
2952 static int ag_action_5_proc(void) { | |
2953 int ag_sd = ag_fl[(PCB).ag_ap]; | |
2954 (PCB).btsx = 0, (PCB).drt = -1; | |
2955 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2956 else { | |
2957 GET_CONTEXT; | |
2958 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2959 } | |
2960 (PCB).la_ptr = (PCB).pointer; | |
2961 (PCB).reduction_token = (pgg_token_type) ag_ptt[(PCB).ag_ap]; | |
2962 ag_ra(); | |
2963 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
2964 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
2965 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
2966 do { | |
2967 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
2968 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
2969 else ag_t2 = ag_tx; | |
2970 } while (ag_t1 < ag_t2); | |
2971 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
2972 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
2973 REDUCTION_TOKEN_ERROR; break;} | |
2974 (PCB).ag_ap = ag_pstt[ag_t1]; | |
2975 if ((*(PCB).r_procs[ag_astt[ag_t1]])() == 0) break; | |
2976 } | |
2977 return (PCB).exit_flag == AG_RUNNING_CODE; | |
2978 } | |
2979 | |
2980 static int ag_action_6_proc(void) { | |
2981 int ag_sd = ag_fl[(PCB).ag_ap]; | |
2982 (PCB).reduction_token = (pgg_token_type) ag_ptt[(PCB).ag_ap]; | |
2983 if ((PCB).drt == -1) { | |
2984 (PCB).drt=(PCB).token_number; | |
2985 (PCB).dssx=(PCB).ssx; | |
2986 (PCB).dsn=(PCB).sn; | |
2987 } | |
2988 if (ag_sd) { | |
2989 (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd]; | |
2990 } | |
2991 else { | |
2992 ag_prot(); | |
2993 (PCB).vs[(PCB).ssx] = ag_null_value; | |
2994 GET_CONTEXT; | |
2995 (PCB).ss[(PCB).ssx] = (PCB).sn; | |
2996 } | |
2997 (PCB).la_ptr = (PCB).pointer; | |
2998 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
2999 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1; | |
3000 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1; | |
3001 do { | |
3002 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3003 if (ag_tstt[ag_tx] < (unsigned char)(PCB).reduction_token) ag_t1 = ag_tx + 1; | |
3004 else ag_t2 = ag_tx; | |
3005 } while (ag_t1 < ag_t2); | |
3006 if (ag_tstt[ag_t1] != (PCB).reduction_token) { | |
3007 (PCB).exit_flag = AG_REDUCTION_ERROR_CODE; | |
3008 REDUCTION_TOKEN_ERROR; break;} | |
3009 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3010 if ((*(PCB).r_procs[ag_astt[ag_t1]])() == 0) break; | |
3011 } | |
3012 return (PCB).exit_flag == AG_RUNNING_CODE; | |
3013 } | |
3014 | |
3015 | |
3016 static void ag_check_depth(int ag_fl) { | |
3017 int ag_sx = (PCB).ssx - ag_fl; | |
3018 if ((PCB).ag_error_depth && ag_sx < (PCB).ag_tmp_depth) (PCB).ag_tmp_depth = ag_sx; | |
3019 } | |
3020 | |
3021 static int ag_action_3_er_proc(void) { | |
3022 ag_check_depth(ag_fl[(PCB).ag_ap] - 1); | |
3023 return ag_action_4_r_proc(); | |
3024 } | |
3025 | |
3026 static int ag_action_2_e_proc(void) { | |
3027 ag_action_2_proc(); | |
3028 (PCB).ag_min_depth = (PCB).ag_tmp_depth; | |
3029 return 0; | |
3030 } | |
3031 | |
3032 static int ag_action_4_e_proc(void) { | |
3033 ag_check_depth(ag_fl[(PCB).ag_ap] - 1); | |
3034 (PCB).ag_min_depth = (PCB).ag_tmp_depth; | |
3035 return ag_action_4_proc(); | |
3036 } | |
3037 | |
3038 static int ag_action_6_e_proc(void) { | |
3039 ag_check_depth(ag_fl[(PCB).ag_ap]); | |
3040 return ag_action_6_proc(); | |
3041 } | |
3042 | |
3043 static int ag_action_11_e_proc(void) { | |
3044 return ag_action_10_proc(); | |
3045 } | |
3046 | |
3047 static int (*ag_r_procs_error[])(void) = { | |
3048 ag_action_1_r_proc, | |
3049 ag_action_2_r_proc, | |
3050 ag_action_3_er_proc, | |
3051 ag_action_3_er_proc | |
3052 }; | |
3053 | |
3054 static int (*ag_s_procs_error[])(void) = { | |
3055 ag_action_1_s_proc, | |
3056 ag_action_2_r_proc, | |
3057 ag_action_3_er_proc, | |
3058 ag_action_3_er_proc | |
3059 }; | |
3060 | |
3061 static int (*ag_gt_procs_error[])(void) = { | |
3062 ag_action_1_proc, | |
3063 ag_action_2_e_proc, | |
3064 ag_action_4_e_proc, | |
3065 ag_action_4_e_proc, | |
3066 ag_action_6_e_proc, | |
3067 ag_action_6_e_proc, | |
3068 ag_action_7_proc, | |
3069 ag_action_8_proc, | |
3070 ag_action_9_proc, | |
3071 ag_action_10_proc, | |
3072 ag_action_11_e_proc, | |
3073 ag_action_8_proc | |
3074 }; | |
3075 | |
3076 static void ag_set_error_procs(void) { | |
3077 (PCB).gt_procs = ag_gt_procs_error; | |
3078 (PCB).r_procs = ag_r_procs_error; | |
3079 (PCB).s_procs = ag_s_procs_error; | |
3080 } | |
3081 | |
3082 | |
3083 void init_pgg(void) { | |
3084 (PCB).la_ptr = (PCB).pointer; | |
3085 (PCB).gt_procs = ag_gt_procs_scan; | |
3086 (PCB).r_procs = ag_r_procs_scan; | |
3087 (PCB).s_procs = ag_s_procs_scan; | |
3088 (PCB).ag_error_depth = (PCB).ag_min_depth = (PCB).ag_tmp_depth = 0; | |
3089 (PCB).ag_resynch_active = 0; | |
3090 (PCB).ss[0] = (PCB).sn = (PCB).ssx = 0; | |
3091 (PCB).exit_flag = AG_RUNNING_CODE; | |
3092 (PCB).line = FIRST_LINE; | |
3093 (PCB).column = FIRST_COLUMN; | |
3094 (PCB).btsx = 0, (PCB).drt = -1; | |
3095 } | |
3096 | |
3097 void pgg(void) { | |
3098 init_pgg(); | |
3099 (PCB).exit_flag = AG_RUNNING_CODE; | |
3100 while ((PCB).exit_flag == AG_RUNNING_CODE) { | |
3101 unsigned ag_t1 = ag_sbt[(PCB).sn]; | |
3102 if (ag_tstt[ag_t1]) { | |
3103 unsigned ag_t2 = ag_sbe[(PCB).sn] - 1; | |
3104 (PCB).token_number = (pgg_token_type) AG_TCV(INPUT_CODE(*(PCB).la_ptr)); | |
3105 (PCB).la_ptr++; | |
3106 if (ag_key_index[(PCB).sn]) { | |
3107 unsigned ag_k = ag_key_index[(PCB).sn]; | |
3108 int ag_ch = CONVERT_CASE(INPUT_CODE(*(PCB).pointer)); | |
3109 if (ag_ch <= 255) { | |
3110 while (ag_key_ch[ag_k] < ag_ch) ag_k++; | |
3111 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k); | |
3112 } | |
3113 } | |
3114 do { | |
3115 unsigned ag_tx = (ag_t1 + ag_t2)/2; | |
3116 if (ag_tstt[ag_tx] > (unsigned char)(PCB).token_number) | |
3117 ag_t1 = ag_tx + 1; | |
3118 else ag_t2 = ag_tx; | |
3119 } while (ag_t1 < ag_t2); | |
3120 if (ag_tstt[ag_t1] != (unsigned char)(PCB).token_number) | |
3121 ag_t1 = ag_sbe[(PCB).sn]; | |
3122 } | |
3123 (PCB).ag_ap = ag_pstt[ag_t1]; | |
3124 (*(PCB).gt_procs[ag_astt[ag_t1]])(); | |
3125 } | |
3126 } | |
3127 | |
3128 |