summaryrefslogtreecommitdiff
path: root/build/release-linux-x86_64/tools/rcc/dagcheck.c
diff options
context:
space:
mode:
Diffstat (limited to 'build/release-linux-x86_64/tools/rcc/dagcheck.c')
-rw-r--r--build/release-linux-x86_64/tools/rcc/dagcheck.c2086
1 files changed, 0 insertions, 2086 deletions
diff --git a/build/release-linux-x86_64/tools/rcc/dagcheck.c b/build/release-linux-x86_64/tools/rcc/dagcheck.c
deleted file mode 100644
index 30993b4..0000000
--- a/build/release-linux-x86_64/tools/rcc/dagcheck.c
+++ /dev/null
@@ -1,2086 +0,0 @@
-#include "c.h"
-typedef Node NODEPTR_TYPE;
-#define OP_LABEL(p) (specific((p)->op))
-#define LEFT_CHILD(p) ((p)->kids[0])
-#define RIGHT_CHILD(p) ((p)->kids[1])
-#define STATE_LABEL(p) ((p)->x.state)
-#define PANIC error
-/*
-generated at Sun Feb 16 17:43:19 2014
-by lburg.c - faked rcsid
-*/
-static void _kids(NODEPTR_TYPE, int, NODEPTR_TYPE[]);
-static void _label(NODEPTR_TYPE);
-static int _rule(void*, int);
-
-#define _stmt_NT 1
-#define _P_NT 2
-#define _V_NT 3
-#define _bogus_NT 4
-#define _I_NT 5
-#define _U_NT 6
-#define _F_NT 7
-#define _B_NT 8
-
-static char *_ntname[] = {
- 0,
- "stmt",
- "P",
- "V",
- "bogus",
- "I",
- "U",
- "F",
- "B",
- 0
-};
-
-struct _state {
- short cost[9];
- struct {
- unsigned int _stmt:4;
- unsigned int _P:4;
- unsigned int _V:6;
- unsigned int _bogus:3;
- unsigned int _I:5;
- unsigned int _U:5;
- unsigned int _F:4;
- unsigned int _B:2;
- } rule;
-};
-
-static short _nts_0[] = { _P_NT, 0 };
-static short _nts_1[] = { _V_NT, 0 };
-static short _nts_2[] = { _I_NT, 0 };
-static short _nts_3[] = { _U_NT, 0 };
-static short _nts_4[] = { _F_NT, 0 };
-static short _nts_5[] = { _B_NT, 0 };
-static short _nts_6[] = { _bogus_NT, 0 };
-static short _nts_7[] = { 0 };
-static short _nts_8[] = { _P_NT, _B_NT, 0 };
-static short _nts_9[] = { _P_NT, _F_NT, 0 };
-static short _nts_10[] = { _P_NT, _I_NT, 0 };
-static short _nts_11[] = { _P_NT, _U_NT, 0 };
-static short _nts_12[] = { _P_NT, _P_NT, 0 };
-static short _nts_13[] = { _F_NT, _F_NT, 0 };
-static short _nts_14[] = { _I_NT, _I_NT, 0 };
-static short _nts_15[] = { _I_NT, _P_NT, 0 };
-static short _nts_16[] = { _U_NT, _P_NT, 0 };
-static short _nts_17[] = { _U_NT, _U_NT, 0 };
-static short _nts_18[] = { _U_NT, _I_NT, 0 };
-
-static short *_nts[] = {
- 0, /* 0 */
- _nts_0, /* 1 */
- _nts_0, /* 2 */
- _nts_0, /* 3 */
- _nts_0, /* 4 */
- _nts_0, /* 5 */
- _nts_0, /* 6 */
- _nts_0, /* 7 */
- _nts_0, /* 8 */
- _nts_0, /* 9 */
- _nts_1, /* 10 */
- _nts_2, /* 11 */
- _nts_3, /* 12 */
- _nts_0, /* 13 */
- _nts_4, /* 14 */
- _nts_5, /* 15 */
- _nts_1, /* 16 */
- _nts_6, /* 17 */
- _nts_6, /* 18 */
- _nts_6, /* 19 */
- _nts_6, /* 20 */
- _nts_6, /* 21 */
- _nts_6, /* 22 */
- _nts_7, /* 23 */
- _nts_7, /* 24 */
- _nts_7, /* 25 */
- _nts_7, /* 26 */
- _nts_5, /* 27 */
- _nts_4, /* 28 */
- _nts_2, /* 29 */
- _nts_3, /* 30 */
- _nts_0, /* 31 */
- _nts_8, /* 32 */
- _nts_9, /* 33 */
- _nts_10, /* 34 */
- _nts_11, /* 35 */
- _nts_12, /* 36 */
- _nts_0, /* 37 */
- _nts_0, /* 38 */
- _nts_0, /* 39 */
- _nts_0, /* 40 */
- _nts_0, /* 41 */
- _nts_2, /* 42 */
- _nts_3, /* 43 */
- _nts_4, /* 44 */
- _nts_2, /* 45 */
- _nts_3, /* 46 */
- _nts_0, /* 47 */
- _nts_2, /* 48 */
- _nts_4, /* 49 */
- _nts_3, /* 50 */
- _nts_0, /* 51 */
- _nts_4, /* 52 */
- _nts_2, /* 53 */
- _nts_12, /* 54 */
- _nts_0, /* 55 */
- _nts_0, /* 56 */
- _nts_0, /* 57 */
- _nts_0, /* 58 */
- _nts_0, /* 59 */
- _nts_4, /* 60 */
- _nts_2, /* 61 */
- _nts_3, /* 62 */
- _nts_0, /* 63 */
- _nts_7, /* 64 */
- _nts_7, /* 65 */
- _nts_7, /* 66 */
- _nts_7, /* 67 */
- _nts_13, /* 68 */
- _nts_14, /* 69 */
- _nts_10, /* 70 */
- _nts_15, /* 71 */
- _nts_16, /* 72 */
- _nts_11, /* 73 */
- _nts_17, /* 74 */
- _nts_13, /* 75 */
- _nts_14, /* 76 */
- _nts_10, /* 77 */
- _nts_11, /* 78 */
- _nts_17, /* 79 */
- _nts_14, /* 80 */
- _nts_18, /* 81 */
- _nts_14, /* 82 */
- _nts_17, /* 83 */
- _nts_14, /* 84 */
- _nts_18, /* 85 */
- _nts_17, /* 86 */
- _nts_14, /* 87 */
- _nts_3, /* 88 */
- _nts_2, /* 89 */
- _nts_14, /* 90 */
- _nts_17, /* 91 */
- _nts_17, /* 92 */
- _nts_14, /* 93 */
- _nts_13, /* 94 */
- _nts_14, /* 95 */
- _nts_17, /* 96 */
- _nts_13, /* 97 */
- _nts_14, /* 98 */
- _nts_17, /* 99 */
- _nts_13, /* 100 */
- _nts_14, /* 101 */
- _nts_17, /* 102 */
- _nts_13, /* 103 */
- _nts_14, /* 104 */
- _nts_17, /* 105 */
- _nts_13, /* 106 */
- _nts_14, /* 107 */
- _nts_17, /* 108 */
- _nts_13, /* 109 */
- _nts_14, /* 110 */
- _nts_17, /* 111 */
- _nts_13, /* 112 */
- _nts_14, /* 113 */
- _nts_17, /* 114 */
- _nts_13, /* 115 */
- _nts_14, /* 116 */
- _nts_17, /* 117 */
- _nts_0, /* 118 */
- _nts_7, /* 119 */
-};
-
-static char *_templates[] = {
-/* 0 */ 0,
-/* 1 */ "", /* stmt: INDIRB(P) */
-/* 2 */ "", /* stmt: INDIRF(P) */
-/* 3 */ "", /* stmt: INDIRI(P) */
-/* 4 */ "", /* stmt: INDIRU(P) */
-/* 5 */ "", /* stmt: INDIRP(P) */
-/* 6 */ "", /* stmt: CALLF(P) */
-/* 7 */ "", /* stmt: CALLI(P) */
-/* 8 */ "", /* stmt: CALLU(P) */
-/* 9 */ "", /* stmt: CALLP(P) */
-/* 10 */ "", /* stmt: V */
-/* 11 */ "", /* bogus: I */
-/* 12 */ "", /* bogus: U */
-/* 13 */ "", /* bogus: P */
-/* 14 */ "", /* bogus: F */
-/* 15 */ "", /* bogus: B */
-/* 16 */ "", /* bogus: V */
-/* 17 */ "", /* I: bogus */
-/* 18 */ "", /* U: bogus */
-/* 19 */ "", /* P: bogus */
-/* 20 */ "", /* F: bogus */
-/* 21 */ "", /* B: bogus */
-/* 22 */ "", /* V: bogus */
-/* 23 */ "", /* F: CNSTF */
-/* 24 */ "", /* I: CNSTI */
-/* 25 */ "", /* P: CNSTP */
-/* 26 */ "", /* U: CNSTU */
-/* 27 */ "", /* V: ARGB(B) */
-/* 28 */ "", /* V: ARGF(F) */
-/* 29 */ "", /* V: ARGI(I) */
-/* 30 */ "", /* V: ARGU(U) */
-/* 31 */ "", /* V: ARGP(P) */
-/* 32 */ "", /* V: ASGNB(P,B) */
-/* 33 */ "", /* V: ASGNF(P,F) */
-/* 34 */ "", /* V: ASGNI(P,I) */
-/* 35 */ "", /* V: ASGNU(P,U) */
-/* 36 */ "", /* V: ASGNP(P,P) */
-/* 37 */ "", /* B: INDIRB(P) */
-/* 38 */ "", /* F: INDIRF(P) */
-/* 39 */ "", /* I: INDIRI(P) */
-/* 40 */ "", /* U: INDIRU(P) */
-/* 41 */ "", /* P: INDIRP(P) */
-/* 42 */ "", /* I: CVII(I) */
-/* 43 */ "", /* I: CVUI(U) */
-/* 44 */ "", /* I: CVFI(F) */
-/* 45 */ "", /* U: CVIU(I) */
-/* 46 */ "", /* U: CVUU(U) */
-/* 47 */ "", /* U: CVPU(P) */
-/* 48 */ "", /* F: CVIF(I) */
-/* 49 */ "", /* F: CVFF(F) */
-/* 50 */ "", /* P: CVUP(U) */
-/* 51 */ "", /* P: CVPP(P) */
-/* 52 */ "", /* F: NEGF(F) */
-/* 53 */ "", /* I: NEGI(I) */
-/* 54 */ "", /* V: CALLB(P,P) */
-/* 55 */ "", /* F: CALLF(P) */
-/* 56 */ "", /* I: CALLI(P) */
-/* 57 */ "", /* U: CALLU(P) */
-/* 58 */ "", /* P: CALLP(P) */
-/* 59 */ "", /* V: CALLV(P) */
-/* 60 */ "", /* V: RETF(F) */
-/* 61 */ "", /* V: RETI(I) */
-/* 62 */ "", /* V: RETU(U) */
-/* 63 */ "", /* V: RETP(P) */
-/* 64 */ "", /* V: RETV */
-/* 65 */ "", /* P: ADDRGP */
-/* 66 */ "", /* P: ADDRFP */
-/* 67 */ "", /* P: ADDRLP */
-/* 68 */ "", /* F: ADDF(F,F) */
-/* 69 */ "", /* I: ADDI(I,I) */
-/* 70 */ "", /* P: ADDP(P,I) */
-/* 71 */ "", /* P: ADDP(I,P) */
-/* 72 */ "", /* P: ADDP(U,P) */
-/* 73 */ "", /* P: ADDP(P,U) */
-/* 74 */ "", /* U: ADDU(U,U) */
-/* 75 */ "", /* F: SUBF(F,F) */
-/* 76 */ "", /* I: SUBI(I,I) */
-/* 77 */ "", /* P: SUBP(P,I) */
-/* 78 */ "", /* P: SUBP(P,U) */
-/* 79 */ "", /* U: SUBU(U,U) */
-/* 80 */ "", /* I: LSHI(I,I) */
-/* 81 */ "", /* U: LSHU(U,I) */
-/* 82 */ "", /* I: MODI(I,I) */
-/* 83 */ "", /* U: MODU(U,U) */
-/* 84 */ "", /* I: RSHI(I,I) */
-/* 85 */ "", /* U: RSHU(U,I) */
-/* 86 */ "", /* U: BANDU(U,U) */
-/* 87 */ "", /* I: BANDI(I,I) */
-/* 88 */ "", /* U: BCOMU(U) */
-/* 89 */ "", /* I: BCOMI(I) */
-/* 90 */ "", /* I: BORI(I,I) */
-/* 91 */ "", /* U: BORU(U,U) */
-/* 92 */ "", /* U: BXORU(U,U) */
-/* 93 */ "", /* I: BXORI(I,I) */
-/* 94 */ "", /* F: DIVF(F,F) */
-/* 95 */ "", /* I: DIVI(I,I) */
-/* 96 */ "", /* U: DIVU(U,U) */
-/* 97 */ "", /* F: MULF(F,F) */
-/* 98 */ "", /* I: MULI(I,I) */
-/* 99 */ "", /* U: MULU(U,U) */
-/* 100 */ "", /* V: EQF(F,F) */
-/* 101 */ "", /* V: EQI(I,I) */
-/* 102 */ "", /* V: EQU(U,U) */
-/* 103 */ "", /* V: GEF(F,F) */
-/* 104 */ "", /* V: GEI(I,I) */
-/* 105 */ "", /* V: GEU(U,U) */
-/* 106 */ "", /* V: GTF(F,F) */
-/* 107 */ "", /* V: GTI(I,I) */
-/* 108 */ "", /* V: GTU(U,U) */
-/* 109 */ "", /* V: LEF(F,F) */
-/* 110 */ "", /* V: LEI(I,I) */
-/* 111 */ "", /* V: LEU(U,U) */
-/* 112 */ "", /* V: LTF(F,F) */
-/* 113 */ "", /* V: LTI(I,I) */
-/* 114 */ "", /* V: LTU(U,U) */
-/* 115 */ "", /* V: NEF(F,F) */
-/* 116 */ "", /* V: NEI(I,I) */
-/* 117 */ "", /* V: NEU(U,U) */
-/* 118 */ "", /* V: JUMPV(P) */
-/* 119 */ "", /* V: LABELV */
-};
-
-static char _isinstruction[] = {
-/* 0 */ 0,
-/* 1 */ 0, /* */
-/* 2 */ 0, /* */
-/* 3 */ 0, /* */
-/* 4 */ 0, /* */
-/* 5 */ 0, /* */
-/* 6 */ 0, /* */
-/* 7 */ 0, /* */
-/* 8 */ 0, /* */
-/* 9 */ 0, /* */
-/* 10 */ 0, /* */
-/* 11 */ 0, /* */
-/* 12 */ 0, /* */
-/* 13 */ 0, /* */
-/* 14 */ 0, /* */
-/* 15 */ 0, /* */
-/* 16 */ 0, /* */
-/* 17 */ 0, /* */
-/* 18 */ 0, /* */
-/* 19 */ 0, /* */
-/* 20 */ 0, /* */
-/* 21 */ 0, /* */
-/* 22 */ 0, /* */
-/* 23 */ 0, /* */
-/* 24 */ 0, /* */
-/* 25 */ 0, /* */
-/* 26 */ 0, /* */
-/* 27 */ 0, /* */
-/* 28 */ 0, /* */
-/* 29 */ 0, /* */
-/* 30 */ 0, /* */
-/* 31 */ 0, /* */
-/* 32 */ 0, /* */
-/* 33 */ 0, /* */
-/* 34 */ 0, /* */
-/* 35 */ 0, /* */
-/* 36 */ 0, /* */
-/* 37 */ 0, /* */
-/* 38 */ 0, /* */
-/* 39 */ 0, /* */
-/* 40 */ 0, /* */
-/* 41 */ 0, /* */
-/* 42 */ 0, /* */
-/* 43 */ 0, /* */
-/* 44 */ 0, /* */
-/* 45 */ 0, /* */
-/* 46 */ 0, /* */
-/* 47 */ 0, /* */
-/* 48 */ 0, /* */
-/* 49 */ 0, /* */
-/* 50 */ 0, /* */
-/* 51 */ 0, /* */
-/* 52 */ 0, /* */
-/* 53 */ 0, /* */
-/* 54 */ 0, /* */
-/* 55 */ 0, /* */
-/* 56 */ 0, /* */
-/* 57 */ 0, /* */
-/* 58 */ 0, /* */
-/* 59 */ 0, /* */
-/* 60 */ 0, /* */
-/* 61 */ 0, /* */
-/* 62 */ 0, /* */
-/* 63 */ 0, /* */
-/* 64 */ 0, /* */
-/* 65 */ 0, /* */
-/* 66 */ 0, /* */
-/* 67 */ 0, /* */
-/* 68 */ 0, /* */
-/* 69 */ 0, /* */
-/* 70 */ 0, /* */
-/* 71 */ 0, /* */
-/* 72 */ 0, /* */
-/* 73 */ 0, /* */
-/* 74 */ 0, /* */
-/* 75 */ 0, /* */
-/* 76 */ 0, /* */
-/* 77 */ 0, /* */
-/* 78 */ 0, /* */
-/* 79 */ 0, /* */
-/* 80 */ 0, /* */
-/* 81 */ 0, /* */
-/* 82 */ 0, /* */
-/* 83 */ 0, /* */
-/* 84 */ 0, /* */
-/* 85 */ 0, /* */
-/* 86 */ 0, /* */
-/* 87 */ 0, /* */
-/* 88 */ 0, /* */
-/* 89 */ 0, /* */
-/* 90 */ 0, /* */
-/* 91 */ 0, /* */
-/* 92 */ 0, /* */
-/* 93 */ 0, /* */
-/* 94 */ 0, /* */
-/* 95 */ 0, /* */
-/* 96 */ 0, /* */
-/* 97 */ 0, /* */
-/* 98 */ 0, /* */
-/* 99 */ 0, /* */
-/* 100 */ 0, /* */
-/* 101 */ 0, /* */
-/* 102 */ 0, /* */
-/* 103 */ 0, /* */
-/* 104 */ 0, /* */
-/* 105 */ 0, /* */
-/* 106 */ 0, /* */
-/* 107 */ 0, /* */
-/* 108 */ 0, /* */
-/* 109 */ 0, /* */
-/* 110 */ 0, /* */
-/* 111 */ 0, /* */
-/* 112 */ 0, /* */
-/* 113 */ 0, /* */
-/* 114 */ 0, /* */
-/* 115 */ 0, /* */
-/* 116 */ 0, /* */
-/* 117 */ 0, /* */
-/* 118 */ 0, /* */
-/* 119 */ 0, /* */
-};
-
-static char *_string[] = {
-/* 0 */ 0,
-/* 1 */ "stmt: INDIRB(P)",
-/* 2 */ "stmt: INDIRF(P)",
-/* 3 */ "stmt: INDIRI(P)",
-/* 4 */ "stmt: INDIRU(P)",
-/* 5 */ "stmt: INDIRP(P)",
-/* 6 */ "stmt: CALLF(P)",
-/* 7 */ "stmt: CALLI(P)",
-/* 8 */ "stmt: CALLU(P)",
-/* 9 */ "stmt: CALLP(P)",
-/* 10 */ "stmt: V",
-/* 11 */ "bogus: I",
-/* 12 */ "bogus: U",
-/* 13 */ "bogus: P",
-/* 14 */ "bogus: F",
-/* 15 */ "bogus: B",
-/* 16 */ "bogus: V",
-/* 17 */ "I: bogus",
-/* 18 */ "U: bogus",
-/* 19 */ "P: bogus",
-/* 20 */ "F: bogus",
-/* 21 */ "B: bogus",
-/* 22 */ "V: bogus",
-/* 23 */ "F: CNSTF",
-/* 24 */ "I: CNSTI",
-/* 25 */ "P: CNSTP",
-/* 26 */ "U: CNSTU",
-/* 27 */ "V: ARGB(B)",
-/* 28 */ "V: ARGF(F)",
-/* 29 */ "V: ARGI(I)",
-/* 30 */ "V: ARGU(U)",
-/* 31 */ "V: ARGP(P)",
-/* 32 */ "V: ASGNB(P,B)",
-/* 33 */ "V: ASGNF(P,F)",
-/* 34 */ "V: ASGNI(P,I)",
-/* 35 */ "V: ASGNU(P,U)",
-/* 36 */ "V: ASGNP(P,P)",
-/* 37 */ "B: INDIRB(P)",
-/* 38 */ "F: INDIRF(P)",
-/* 39 */ "I: INDIRI(P)",
-/* 40 */ "U: INDIRU(P)",
-/* 41 */ "P: INDIRP(P)",
-/* 42 */ "I: CVII(I)",
-/* 43 */ "I: CVUI(U)",
-/* 44 */ "I: CVFI(F)",
-/* 45 */ "U: CVIU(I)",
-/* 46 */ "U: CVUU(U)",
-/* 47 */ "U: CVPU(P)",
-/* 48 */ "F: CVIF(I)",
-/* 49 */ "F: CVFF(F)",
-/* 50 */ "P: CVUP(U)",
-/* 51 */ "P: CVPP(P)",
-/* 52 */ "F: NEGF(F)",
-/* 53 */ "I: NEGI(I)",
-/* 54 */ "V: CALLB(P,P)",
-/* 55 */ "F: CALLF(P)",
-/* 56 */ "I: CALLI(P)",
-/* 57 */ "U: CALLU(P)",
-/* 58 */ "P: CALLP(P)",
-/* 59 */ "V: CALLV(P)",
-/* 60 */ "V: RETF(F)",
-/* 61 */ "V: RETI(I)",
-/* 62 */ "V: RETU(U)",
-/* 63 */ "V: RETP(P)",
-/* 64 */ "V: RETV",
-/* 65 */ "P: ADDRGP",
-/* 66 */ "P: ADDRFP",
-/* 67 */ "P: ADDRLP",
-/* 68 */ "F: ADDF(F,F)",
-/* 69 */ "I: ADDI(I,I)",
-/* 70 */ "P: ADDP(P,I)",
-/* 71 */ "P: ADDP(I,P)",
-/* 72 */ "P: ADDP(U,P)",
-/* 73 */ "P: ADDP(P,U)",
-/* 74 */ "U: ADDU(U,U)",
-/* 75 */ "F: SUBF(F,F)",
-/* 76 */ "I: SUBI(I,I)",
-/* 77 */ "P: SUBP(P,I)",
-/* 78 */ "P: SUBP(P,U)",
-/* 79 */ "U: SUBU(U,U)",
-/* 80 */ "I: LSHI(I,I)",
-/* 81 */ "U: LSHU(U,I)",
-/* 82 */ "I: MODI(I,I)",
-/* 83 */ "U: MODU(U,U)",
-/* 84 */ "I: RSHI(I,I)",
-/* 85 */ "U: RSHU(U,I)",
-/* 86 */ "U: BANDU(U,U)",
-/* 87 */ "I: BANDI(I,I)",
-/* 88 */ "U: BCOMU(U)",
-/* 89 */ "I: BCOMI(I)",
-/* 90 */ "I: BORI(I,I)",
-/* 91 */ "U: BORU(U,U)",
-/* 92 */ "U: BXORU(U,U)",
-/* 93 */ "I: BXORI(I,I)",
-/* 94 */ "F: DIVF(F,F)",
-/* 95 */ "I: DIVI(I,I)",
-/* 96 */ "U: DIVU(U,U)",
-/* 97 */ "F: MULF(F,F)",
-/* 98 */ "I: MULI(I,I)",
-/* 99 */ "U: MULU(U,U)",
-/* 100 */ "V: EQF(F,F)",
-/* 101 */ "V: EQI(I,I)",
-/* 102 */ "V: EQU(U,U)",
-/* 103 */ "V: GEF(F,F)",
-/* 104 */ "V: GEI(I,I)",
-/* 105 */ "V: GEU(U,U)",
-/* 106 */ "V: GTF(F,F)",
-/* 107 */ "V: GTI(I,I)",
-/* 108 */ "V: GTU(U,U)",
-/* 109 */ "V: LEF(F,F)",
-/* 110 */ "V: LEI(I,I)",
-/* 111 */ "V: LEU(U,U)",
-/* 112 */ "V: LTF(F,F)",
-/* 113 */ "V: LTI(I,I)",
-/* 114 */ "V: LTU(U,U)",
-/* 115 */ "V: NEF(F,F)",
-/* 116 */ "V: NEI(I,I)",
-/* 117 */ "V: NEU(U,U)",
-/* 118 */ "V: JUMPV(P)",
-/* 119 */ "V: LABELV",
-};
-
-static short _decode_stmt[] = {
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
-};
-
-static short _decode_P[] = {
- 0,
- 19,
- 25,
- 41,
- 50,
- 51,
- 58,
- 65,
- 66,
- 67,
- 70,
- 71,
- 72,
- 73,
- 77,
- 78,
-};
-
-static short _decode_V[] = {
- 0,
- 22,
- 27,
- 28,
- 29,
- 30,
- 31,
- 32,
- 33,
- 34,
- 35,
- 36,
- 54,
- 59,
- 60,
- 61,
- 62,
- 63,
- 64,
- 100,
- 101,
- 102,
- 103,
- 104,
- 105,
- 106,
- 107,
- 108,
- 109,
- 110,
- 111,
- 112,
- 113,
- 114,
- 115,
- 116,
- 117,
- 118,
- 119,
-};
-
-static short _decode_bogus[] = {
- 0,
- 11,
- 12,
- 13,
- 14,
- 15,
- 16,
-};
-
-static short _decode_I[] = {
- 0,
- 17,
- 24,
- 39,
- 42,
- 43,
- 44,
- 53,
- 56,
- 69,
- 76,
- 80,
- 82,
- 84,
- 87,
- 89,
- 90,
- 93,
- 95,
- 98,
-};
-
-static short _decode_U[] = {
- 0,
- 18,
- 26,
- 40,
- 45,
- 46,
- 47,
- 57,
- 74,
- 79,
- 81,
- 83,
- 85,
- 86,
- 88,
- 91,
- 92,
- 96,
- 99,
-};
-
-static short _decode_F[] = {
- 0,
- 20,
- 23,
- 38,
- 48,
- 49,
- 52,
- 55,
- 68,
- 75,
- 94,
- 97,
-};
-
-static short _decode_B[] = {
- 0,
- 21,
- 37,
-};
-
-static int _rule(void *state, int goalnt) {
- if (goalnt < 1 || goalnt > 8)
- fatal("_rule", "Bad goal nonterminal %d\n", goalnt);
- if (!state)
- return 0;
- switch (goalnt) {
- case _stmt_NT: return _decode_stmt[((struct _state *)state)->rule._stmt];
- case _P_NT: return _decode_P[((struct _state *)state)->rule._P];
- case _V_NT: return _decode_V[((struct _state *)state)->rule._V];
- case _bogus_NT: return _decode_bogus[((struct _state *)state)->rule._bogus];
- case _I_NT: return _decode_I[((struct _state *)state)->rule._I];
- case _U_NT: return _decode_U[((struct _state *)state)->rule._U];
- case _F_NT: return _decode_F[((struct _state *)state)->rule._F];
- case _B_NT: return _decode_B[((struct _state *)state)->rule._B];
- default:
- fatal("_rule", "Bad goal nonterminal %d\n", goalnt);
- return 0;
- }
-}
-
-static void _closure_P(NODEPTR_TYPE, int);
-static void _closure_V(NODEPTR_TYPE, int);
-static void _closure_bogus(NODEPTR_TYPE, int);
-static void _closure_I(NODEPTR_TYPE, int);
-static void _closure_U(NODEPTR_TYPE, int);
-static void _closure_F(NODEPTR_TYPE, int);
-static void _closure_B(NODEPTR_TYPE, int);
-
-static void _closure_P(NODEPTR_TYPE a, int c) {
- struct _state *p = STATE_LABEL(a);
- if (c + 1 < p->cost[_bogus_NT]) {
- p->cost[_bogus_NT] = c + 1;
- p->rule._bogus = 3;
- _closure_bogus(a, c + 1);
- }
-}
-
-static void _closure_V(NODEPTR_TYPE a, int c) {
- struct _state *p = STATE_LABEL(a);
- if (c + 1 < p->cost[_bogus_NT]) {
- p->cost[_bogus_NT] = c + 1;
- p->rule._bogus = 6;
- _closure_bogus(a, c + 1);
- }
- if (c + 0 < p->cost[_stmt_NT]) {
- p->cost[_stmt_NT] = c + 0;
- p->rule._stmt = 10;
- }
-}
-
-static void _closure_bogus(NODEPTR_TYPE a, int c) {
- struct _state *p = STATE_LABEL(a);
- if (c + 1 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 1;
- p->rule._V = 1;
- _closure_V(a, c + 1);
- }
- if (c + 1 < p->cost[_B_NT]) {
- p->cost[_B_NT] = c + 1;
- p->rule._B = 1;
- _closure_B(a, c + 1);
- }
- if (c + 1 < p->cost[_F_NT]) {
- p->cost[_F_NT] = c + 1;
- p->rule._F = 1;
- _closure_F(a, c + 1);
- }
- if (c + 1 < p->cost[_P_NT]) {
- p->cost[_P_NT] = c + 1;
- p->rule._P = 1;
- _closure_P(a, c + 1);
- }
- if (c + 1 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 1;
- p->rule._U = 1;
- _closure_U(a, c + 1);
- }
- if (c + 1 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 1;
- p->rule._I = 1;
- _closure_I(a, c + 1);
- }
-}
-
-static void _closure_I(NODEPTR_TYPE a, int c) {
- struct _state *p = STATE_LABEL(a);
- if (c + 1 < p->cost[_bogus_NT]) {
- p->cost[_bogus_NT] = c + 1;
- p->rule._bogus = 1;
- _closure_bogus(a, c + 1);
- }
-}
-
-static void _closure_U(NODEPTR_TYPE a, int c) {
- struct _state *p = STATE_LABEL(a);
- if (c + 1 < p->cost[_bogus_NT]) {
- p->cost[_bogus_NT] = c + 1;
- p->rule._bogus = 2;
- _closure_bogus(a, c + 1);
- }
-}
-
-static void _closure_F(NODEPTR_TYPE a, int c) {
- struct _state *p = STATE_LABEL(a);
- if (c + 1 < p->cost[_bogus_NT]) {
- p->cost[_bogus_NT] = c + 1;
- p->rule._bogus = 4;
- _closure_bogus(a, c + 1);
- }
-}
-
-static void _closure_B(NODEPTR_TYPE a, int c) {
- struct _state *p = STATE_LABEL(a);
- if (c + 1 < p->cost[_bogus_NT]) {
- p->cost[_bogus_NT] = c + 1;
- p->rule._bogus = 5;
- _closure_bogus(a, c + 1);
- }
-}
-
-static void _label(NODEPTR_TYPE a) {
- int c;
- struct _state *p;
-
- if (!a)
- fatal("_label", "Null tree\n", 0);
- STATE_LABEL(a) = p = allocate(sizeof *p, FUNC);
- p->rule._stmt = 0;
- p->cost[1] =
- p->cost[2] =
- p->cost[3] =
- p->cost[4] =
- p->cost[5] =
- p->cost[6] =
- p->cost[7] =
- p->cost[8] =
- 0x7fff;
- switch (OP_LABEL(a)) {
- case 17: /* CNSTF */
- /* F: CNSTF */
- if (0 + 0 < p->cost[_F_NT]) {
- p->cost[_F_NT] = 0 + 0;
- p->rule._F = 2;
- _closure_F(a, 0 + 0);
- }
- break;
- case 21: /* CNSTI */
- /* I: CNSTI */
- if (0 + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = 0 + 0;
- p->rule._I = 2;
- _closure_I(a, 0 + 0);
- }
- break;
- case 22: /* CNSTU */
- /* U: CNSTU */
- if (0 + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = 0 + 0;
- p->rule._U = 2;
- _closure_U(a, 0 + 0);
- }
- break;
- case 23: /* CNSTP */
- /* P: CNSTP */
- if (0 + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = 0 + 0;
- p->rule._P = 2;
- _closure_P(a, 0 + 0);
- }
- break;
- case 33: /* ARGF */
- _label(LEFT_CHILD(a));
- /* V: ARGF(F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 3;
- _closure_V(a, c + 0);
- }
- break;
- case 37: /* ARGI */
- _label(LEFT_CHILD(a));
- /* V: ARGI(I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 4;
- _closure_V(a, c + 0);
- }
- break;
- case 38: /* ARGU */
- _label(LEFT_CHILD(a));
- /* V: ARGU(U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 5;
- _closure_V(a, c + 0);
- }
- break;
- case 39: /* ARGP */
- _label(LEFT_CHILD(a));
- /* V: ARGP(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 6;
- _closure_V(a, c + 0);
- }
- break;
- case 41: /* ARGB */
- _label(LEFT_CHILD(a));
- /* V: ARGB(B) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_B_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 2;
- _closure_V(a, c + 0);
- }
- break;
- case 49: /* ASGNF */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: ASGNF(P,F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 8;
- _closure_V(a, c + 0);
- }
- break;
- case 53: /* ASGNI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: ASGNI(P,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 9;
- _closure_V(a, c + 0);
- }
- break;
- case 54: /* ASGNU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: ASGNU(P,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 10;
- _closure_V(a, c + 0);
- }
- break;
- case 55: /* ASGNP */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: ASGNP(P,P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 11;
- _closure_V(a, c + 0);
- }
- break;
- case 57: /* ASGNB */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: ASGNB(P,B) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_B_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 7;
- _closure_V(a, c + 0);
- }
- break;
- case 65: /* INDIRF */
- _label(LEFT_CHILD(a));
- /* stmt: INDIRF(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_stmt_NT]) {
- p->cost[_stmt_NT] = c + 0;
- p->rule._stmt = 2;
- }
- /* F: INDIRF(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_F_NT]) {
- p->cost[_F_NT] = c + 0;
- p->rule._F = 3;
- _closure_F(a, c + 0);
- }
- break;
- case 69: /* INDIRI */
- _label(LEFT_CHILD(a));
- /* stmt: INDIRI(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_stmt_NT]) {
- p->cost[_stmt_NT] = c + 0;
- p->rule._stmt = 3;
- }
- /* I: INDIRI(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 3;
- _closure_I(a, c + 0);
- }
- break;
- case 70: /* INDIRU */
- _label(LEFT_CHILD(a));
- /* stmt: INDIRU(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_stmt_NT]) {
- p->cost[_stmt_NT] = c + 0;
- p->rule._stmt = 4;
- }
- /* U: INDIRU(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 3;
- _closure_U(a, c + 0);
- }
- break;
- case 71: /* INDIRP */
- _label(LEFT_CHILD(a));
- /* stmt: INDIRP(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_stmt_NT]) {
- p->cost[_stmt_NT] = c + 0;
- p->rule._stmt = 5;
- }
- /* P: INDIRP(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = c + 0;
- p->rule._P = 3;
- _closure_P(a, c + 0);
- }
- break;
- case 73: /* INDIRB */
- _label(LEFT_CHILD(a));
- /* stmt: INDIRB(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_stmt_NT]) {
- p->cost[_stmt_NT] = c + 0;
- p->rule._stmt = 1;
- }
- /* B: INDIRB(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_B_NT]) {
- p->cost[_B_NT] = c + 0;
- p->rule._B = 2;
- _closure_B(a, c + 0);
- }
- break;
- case 113: /* CVFF */
- _label(LEFT_CHILD(a));
- /* F: CVFF(F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_F_NT]) {
- p->cost[_F_NT] = c + 0;
- p->rule._F = 5;
- _closure_F(a, c + 0);
- }
- break;
- case 117: /* CVFI */
- _label(LEFT_CHILD(a));
- /* I: CVFI(F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 6;
- _closure_I(a, c + 0);
- }
- break;
- case 129: /* CVIF */
- _label(LEFT_CHILD(a));
- /* F: CVIF(I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_F_NT]) {
- p->cost[_F_NT] = c + 0;
- p->rule._F = 4;
- _closure_F(a, c + 0);
- }
- break;
- case 133: /* CVII */
- _label(LEFT_CHILD(a));
- /* I: CVII(I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 4;
- _closure_I(a, c + 0);
- }
- break;
- case 134: /* CVIU */
- _label(LEFT_CHILD(a));
- /* U: CVIU(I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 4;
- _closure_U(a, c + 0);
- }
- break;
- case 150: /* CVPU */
- _label(LEFT_CHILD(a));
- /* U: CVPU(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 6;
- _closure_U(a, c + 0);
- }
- break;
- case 151: /* CVPP */
- _label(LEFT_CHILD(a));
- /* P: CVPP(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = c + 0;
- p->rule._P = 5;
- _closure_P(a, c + 0);
- }
- break;
- case 181: /* CVUI */
- _label(LEFT_CHILD(a));
- /* I: CVUI(U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 5;
- _closure_I(a, c + 0);
- }
- break;
- case 182: /* CVUU */
- _label(LEFT_CHILD(a));
- /* U: CVUU(U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 5;
- _closure_U(a, c + 0);
- }
- break;
- case 183: /* CVUP */
- _label(LEFT_CHILD(a));
- /* P: CVUP(U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = c + 0;
- p->rule._P = 4;
- _closure_P(a, c + 0);
- }
- break;
- case 193: /* NEGF */
- _label(LEFT_CHILD(a));
- /* F: NEGF(F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_F_NT]) {
- p->cost[_F_NT] = c + 0;
- p->rule._F = 6;
- _closure_F(a, c + 0);
- }
- break;
- case 197: /* NEGI */
- _label(LEFT_CHILD(a));
- /* I: NEGI(I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 7;
- _closure_I(a, c + 0);
- }
- break;
- case 209: /* CALLF */
- _label(LEFT_CHILD(a));
- /* stmt: CALLF(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_stmt_NT]) {
- p->cost[_stmt_NT] = c + 0;
- p->rule._stmt = 6;
- }
- /* F: CALLF(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_F_NT]) {
- p->cost[_F_NT] = c + 0;
- p->rule._F = 7;
- _closure_F(a, c + 0);
- }
- break;
- case 213: /* CALLI */
- _label(LEFT_CHILD(a));
- /* stmt: CALLI(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_stmt_NT]) {
- p->cost[_stmt_NT] = c + 0;
- p->rule._stmt = 7;
- }
- /* I: CALLI(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 8;
- _closure_I(a, c + 0);
- }
- break;
- case 214: /* CALLU */
- _label(LEFT_CHILD(a));
- /* stmt: CALLU(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_stmt_NT]) {
- p->cost[_stmt_NT] = c + 0;
- p->rule._stmt = 8;
- }
- /* U: CALLU(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 7;
- _closure_U(a, c + 0);
- }
- break;
- case 215: /* CALLP */
- _label(LEFT_CHILD(a));
- /* stmt: CALLP(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_stmt_NT]) {
- p->cost[_stmt_NT] = c + 0;
- p->rule._stmt = 9;
- }
- /* P: CALLP(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = c + 0;
- p->rule._P = 6;
- _closure_P(a, c + 0);
- }
- break;
- case 216: /* CALLV */
- _label(LEFT_CHILD(a));
- /* V: CALLV(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 13;
- _closure_V(a, c + 0);
- }
- break;
- case 217: /* CALLB */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: CALLB(P,P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 12;
- _closure_V(a, c + 0);
- }
- break;
- case 241: /* RETF */
- _label(LEFT_CHILD(a));
- /* V: RETF(F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 14;
- _closure_V(a, c + 0);
- }
- break;
- case 245: /* RETI */
- _label(LEFT_CHILD(a));
- /* V: RETI(I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 15;
- _closure_V(a, c + 0);
- }
- break;
- case 246: /* RETU */
- _label(LEFT_CHILD(a));
- /* V: RETU(U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 16;
- _closure_V(a, c + 0);
- }
- break;
- case 247: /* RETP */
- _label(LEFT_CHILD(a));
- /* V: RETP(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 17;
- _closure_V(a, c + 0);
- }
- break;
- case 248: /* RETV */
- /* V: RETV */
- if (0 + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = 0 + 0;
- p->rule._V = 18;
- _closure_V(a, 0 + 0);
- }
- break;
- case 263: /* ADDRGP */
- /* P: ADDRGP */
- if (0 + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = 0 + 0;
- p->rule._P = 7;
- _closure_P(a, 0 + 0);
- }
- break;
- case 279: /* ADDRFP */
- /* P: ADDRFP */
- if (0 + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = 0 + 0;
- p->rule._P = 8;
- _closure_P(a, 0 + 0);
- }
- break;
- case 295: /* ADDRLP */
- /* P: ADDRLP */
- if (0 + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = 0 + 0;
- p->rule._P = 9;
- _closure_P(a, 0 + 0);
- }
- break;
- case 305: /* ADDF */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* F: ADDF(F,F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_F_NT]) {
- p->cost[_F_NT] = c + 0;
- p->rule._F = 8;
- _closure_F(a, c + 0);
- }
- break;
- case 309: /* ADDI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* I: ADDI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 9;
- _closure_I(a, c + 0);
- }
- break;
- case 310: /* ADDU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* U: ADDU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 8;
- _closure_U(a, c + 0);
- }
- break;
- case 311: /* ADDP */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* P: ADDP(P,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = c + 0;
- p->rule._P = 10;
- _closure_P(a, c + 0);
- }
- /* P: ADDP(I,P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = c + 0;
- p->rule._P = 11;
- _closure_P(a, c + 0);
- }
- /* P: ADDP(U,P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = c + 0;
- p->rule._P = 12;
- _closure_P(a, c + 0);
- }
- /* P: ADDP(P,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = c + 0;
- p->rule._P = 13;
- _closure_P(a, c + 0);
- }
- break;
- case 321: /* SUBF */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* F: SUBF(F,F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_F_NT]) {
- p->cost[_F_NT] = c + 0;
- p->rule._F = 9;
- _closure_F(a, c + 0);
- }
- break;
- case 325: /* SUBI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* I: SUBI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 10;
- _closure_I(a, c + 0);
- }
- break;
- case 326: /* SUBU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* U: SUBU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 9;
- _closure_U(a, c + 0);
- }
- break;
- case 327: /* SUBP */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* P: SUBP(P,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = c + 0;
- p->rule._P = 14;
- _closure_P(a, c + 0);
- }
- /* P: SUBP(P,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_P_NT]) {
- p->cost[_P_NT] = c + 0;
- p->rule._P = 15;
- _closure_P(a, c + 0);
- }
- break;
- case 341: /* LSHI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* I: LSHI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 11;
- _closure_I(a, c + 0);
- }
- break;
- case 342: /* LSHU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* U: LSHU(U,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 10;
- _closure_U(a, c + 0);
- }
- break;
- case 357: /* MODI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* I: MODI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 12;
- _closure_I(a, c + 0);
- }
- break;
- case 358: /* MODU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* U: MODU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 11;
- _closure_U(a, c + 0);
- }
- break;
- case 373: /* RSHI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* I: RSHI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 13;
- _closure_I(a, c + 0);
- }
- break;
- case 374: /* RSHU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* U: RSHU(U,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 12;
- _closure_U(a, c + 0);
- }
- break;
- case 389: /* BANDI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* I: BANDI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 14;
- _closure_I(a, c + 0);
- }
- break;
- case 390: /* BANDU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* U: BANDU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 13;
- _closure_U(a, c + 0);
- }
- break;
- case 405: /* BCOMI */
- _label(LEFT_CHILD(a));
- /* I: BCOMI(I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 15;
- _closure_I(a, c + 0);
- }
- break;
- case 406: /* BCOMU */
- _label(LEFT_CHILD(a));
- /* U: BCOMU(U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 14;
- _closure_U(a, c + 0);
- }
- break;
- case 421: /* BORI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* I: BORI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 16;
- _closure_I(a, c + 0);
- }
- break;
- case 422: /* BORU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* U: BORU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 15;
- _closure_U(a, c + 0);
- }
- break;
- case 437: /* BXORI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* I: BXORI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 17;
- _closure_I(a, c + 0);
- }
- break;
- case 438: /* BXORU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* U: BXORU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 16;
- _closure_U(a, c + 0);
- }
- break;
- case 449: /* DIVF */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* F: DIVF(F,F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_F_NT]) {
- p->cost[_F_NT] = c + 0;
- p->rule._F = 10;
- _closure_F(a, c + 0);
- }
- break;
- case 453: /* DIVI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* I: DIVI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 18;
- _closure_I(a, c + 0);
- }
- break;
- case 454: /* DIVU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* U: DIVU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 17;
- _closure_U(a, c + 0);
- }
- break;
- case 465: /* MULF */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* F: MULF(F,F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_F_NT]) {
- p->cost[_F_NT] = c + 0;
- p->rule._F = 11;
- _closure_F(a, c + 0);
- }
- break;
- case 469: /* MULI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* I: MULI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_I_NT]) {
- p->cost[_I_NT] = c + 0;
- p->rule._I = 19;
- _closure_I(a, c + 0);
- }
- break;
- case 470: /* MULU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* U: MULU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_U_NT]) {
- p->cost[_U_NT] = c + 0;
- p->rule._U = 18;
- _closure_U(a, c + 0);
- }
- break;
- case 481: /* EQF */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: EQF(F,F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 19;
- _closure_V(a, c + 0);
- }
- break;
- case 485: /* EQI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: EQI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 20;
- _closure_V(a, c + 0);
- }
- break;
- case 486: /* EQU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: EQU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 21;
- _closure_V(a, c + 0);
- }
- break;
- case 497: /* GEF */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: GEF(F,F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 22;
- _closure_V(a, c + 0);
- }
- break;
- case 501: /* GEI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: GEI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 23;
- _closure_V(a, c + 0);
- }
- break;
- case 502: /* GEU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: GEU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 24;
- _closure_V(a, c + 0);
- }
- break;
- case 513: /* GTF */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: GTF(F,F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 25;
- _closure_V(a, c + 0);
- }
- break;
- case 517: /* GTI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: GTI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 26;
- _closure_V(a, c + 0);
- }
- break;
- case 518: /* GTU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: GTU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 27;
- _closure_V(a, c + 0);
- }
- break;
- case 529: /* LEF */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: LEF(F,F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 28;
- _closure_V(a, c + 0);
- }
- break;
- case 533: /* LEI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: LEI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 29;
- _closure_V(a, c + 0);
- }
- break;
- case 534: /* LEU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: LEU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 30;
- _closure_V(a, c + 0);
- }
- break;
- case 545: /* LTF */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: LTF(F,F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 31;
- _closure_V(a, c + 0);
- }
- break;
- case 549: /* LTI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: LTI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 32;
- _closure_V(a, c + 0);
- }
- break;
- case 550: /* LTU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: LTU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 33;
- _closure_V(a, c + 0);
- }
- break;
- case 561: /* NEF */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: NEF(F,F) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_F_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_F_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 34;
- _closure_V(a, c + 0);
- }
- break;
- case 565: /* NEI */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: NEI(I,I) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_I_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_I_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 35;
- _closure_V(a, c + 0);
- }
- break;
- case 566: /* NEU */
- _label(LEFT_CHILD(a));
- _label(RIGHT_CHILD(a));
- /* V: NEU(U,U) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_U_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_U_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 36;
- _closure_V(a, c + 0);
- }
- break;
- case 584: /* JUMPV */
- _label(LEFT_CHILD(a));
- /* V: JUMPV(P) */
- c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_P_NT] + 0;
- if (c + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = c + 0;
- p->rule._V = 37;
- _closure_V(a, c + 0);
- }
- break;
- case 600: /* LABELV */
- /* V: LABELV */
- if (0 + 0 < p->cost[_V_NT]) {
- p->cost[_V_NT] = 0 + 0;
- p->rule._V = 38;
- _closure_V(a, 0 + 0);
- }
- break;
- default:
- fatal("_label", "Bad terminal %d\n", OP_LABEL(a));
- }
-}
-
-static void _kids(NODEPTR_TYPE p, int eruleno, NODEPTR_TYPE kids[]) {
- if (!p)
- fatal("_kids", "Null tree\n", 0);
- if (!kids)
- fatal("_kids", "Null kids\n", 0);
- switch (eruleno) {
- case 118: /* V: JUMPV(P) */
- case 89: /* I: BCOMI(I) */
- case 88: /* U: BCOMU(U) */
- case 63: /* V: RETP(P) */
- case 62: /* V: RETU(U) */
- case 61: /* V: RETI(I) */
- case 60: /* V: RETF(F) */
- case 59: /* V: CALLV(P) */
- case 58: /* P: CALLP(P) */
- case 57: /* U: CALLU(P) */
- case 56: /* I: CALLI(P) */
- case 55: /* F: CALLF(P) */
- case 53: /* I: NEGI(I) */
- case 52: /* F: NEGF(F) */
- case 51: /* P: CVPP(P) */
- case 50: /* P: CVUP(U) */
- case 49: /* F: CVFF(F) */
- case 48: /* F: CVIF(I) */
- case 47: /* U: CVPU(P) */
- case 46: /* U: CVUU(U) */
- case 45: /* U: CVIU(I) */
- case 44: /* I: CVFI(F) */
- case 43: /* I: CVUI(U) */
- case 42: /* I: CVII(I) */
- case 41: /* P: INDIRP(P) */
- case 40: /* U: INDIRU(P) */
- case 39: /* I: INDIRI(P) */
- case 38: /* F: INDIRF(P) */
- case 37: /* B: INDIRB(P) */
- case 31: /* V: ARGP(P) */
- case 30: /* V: ARGU(U) */
- case 29: /* V: ARGI(I) */
- case 28: /* V: ARGF(F) */
- case 27: /* V: ARGB(B) */
- case 9: /* stmt: CALLP(P) */
- case 8: /* stmt: CALLU(P) */
- case 7: /* stmt: CALLI(P) */
- case 6: /* stmt: CALLF(P) */
- case 5: /* stmt: INDIRP(P) */
- case 4: /* stmt: INDIRU(P) */
- case 3: /* stmt: INDIRI(P) */
- case 2: /* stmt: INDIRF(P) */
- case 1: /* stmt: INDIRB(P) */
- kids[0] = LEFT_CHILD(p);
- break;
- case 22: /* V: bogus */
- case 21: /* B: bogus */
- case 20: /* F: bogus */
- case 19: /* P: bogus */
- case 18: /* U: bogus */
- case 17: /* I: bogus */
- case 16: /* bogus: V */
- case 15: /* bogus: B */
- case 14: /* bogus: F */
- case 13: /* bogus: P */
- case 12: /* bogus: U */
- case 11: /* bogus: I */
- case 10: /* stmt: V */
- kids[0] = p;
- break;
- case 119: /* V: LABELV */
- case 67: /* P: ADDRLP */
- case 66: /* P: ADDRFP */
- case 65: /* P: ADDRGP */
- case 64: /* V: RETV */
- case 26: /* U: CNSTU */
- case 25: /* P: CNSTP */
- case 24: /* I: CNSTI */
- case 23: /* F: CNSTF */
- break;
- case 117: /* V: NEU(U,U) */
- case 116: /* V: NEI(I,I) */
- case 115: /* V: NEF(F,F) */
- case 114: /* V: LTU(U,U) */
- case 113: /* V: LTI(I,I) */
- case 112: /* V: LTF(F,F) */
- case 111: /* V: LEU(U,U) */
- case 110: /* V: LEI(I,I) */
- case 109: /* V: LEF(F,F) */
- case 108: /* V: GTU(U,U) */
- case 107: /* V: GTI(I,I) */
- case 106: /* V: GTF(F,F) */
- case 105: /* V: GEU(U,U) */
- case 104: /* V: GEI(I,I) */
- case 103: /* V: GEF(F,F) */
- case 102: /* V: EQU(U,U) */
- case 101: /* V: EQI(I,I) */
- case 100: /* V: EQF(F,F) */
- case 99: /* U: MULU(U,U) */
- case 98: /* I: MULI(I,I) */
- case 97: /* F: MULF(F,F) */
- case 96: /* U: DIVU(U,U) */
- case 95: /* I: DIVI(I,I) */
- case 94: /* F: DIVF(F,F) */
- case 93: /* I: BXORI(I,I) */
- case 92: /* U: BXORU(U,U) */
- case 91: /* U: BORU(U,U) */
- case 90: /* I: BORI(I,I) */
- case 87: /* I: BANDI(I,I) */
- case 86: /* U: BANDU(U,U) */
- case 85: /* U: RSHU(U,I) */
- case 84: /* I: RSHI(I,I) */
- case 83: /* U: MODU(U,U) */
- case 82: /* I: MODI(I,I) */
- case 81: /* U: LSHU(U,I) */
- case 80: /* I: LSHI(I,I) */
- case 79: /* U: SUBU(U,U) */
- case 78: /* P: SUBP(P,U) */
- case 77: /* P: SUBP(P,I) */
- case 76: /* I: SUBI(I,I) */
- case 75: /* F: SUBF(F,F) */
- case 74: /* U: ADDU(U,U) */
- case 73: /* P: ADDP(P,U) */
- case 72: /* P: ADDP(U,P) */
- case 71: /* P: ADDP(I,P) */
- case 70: /* P: ADDP(P,I) */
- case 69: /* I: ADDI(I,I) */
- case 68: /* F: ADDF(F,F) */
- case 54: /* V: CALLB(P,P) */
- case 36: /* V: ASGNP(P,P) */
- case 35: /* V: ASGNU(P,U) */
- case 34: /* V: ASGNI(P,I) */
- case 33: /* V: ASGNF(P,F) */
- case 32: /* V: ASGNB(P,B) */
- kids[0] = LEFT_CHILD(p);
- kids[1] = RIGHT_CHILD(p);
- break;
- default:
- fatal("_kids", "Bad rule number %d\n", eruleno);
- }
-}
-
-
-static void reduce(NODEPTR_TYPE p, int goalnt) {
- int i, sz = opsize(p->op), rulenumber = _rule(p->x.state, goalnt);
- short *nts = _nts[rulenumber];
- NODEPTR_TYPE kids[10];
-
- assert(rulenumber);
- _kids(p, rulenumber, kids);
- for (i = 0; nts[i]; i++)
- reduce(kids[i], nts[i]);
- switch (optype(p->op)) {
-#define xx(ty) if (sz == ty->size) return
- case I:
- case U:
- xx(chartype);
- xx(shorttype);
- xx(inttype);
- xx(longtype);
- xx(longlong);
- break;
- case F:
- xx(floattype);
- xx(doubletype);
- xx(longdouble);
- break;
- case P:
- xx(voidptype);
- xx(funcptype);
- break;
- case V:
- case B: if (sz == 0) return;
-#undef xx
- }
- printdag(p, 2);
- assert(0);
-}
-
-void check(Node p) {
- struct _state { short cost[1]; };
-
- _label(p);
- if (((struct _state *)p->x.state)->cost[1] > 0) {
- printdag(p, 2);
- assert(0);
- }
- reduce(p, 1);
-}