1 struct 2 { 3 char* name; 4 int op; 5 int terminal; 6 }keywds[] = 7 { 8 "nop", INOP, TOKI0, 9 "alt", IALT, TOKI3, 10 "nbalt", INBALT, TOKI3, 11 "goto", IGOTO, TOKI2, 12 "call", ICALL, TOKI2, 13 "frame", IFRAME, TOKI2, 14 "spawn", ISPAWN, TOKI2, 15 "runt", IRUNT, TOKI2, 16 "load", ILOAD, TOKI3, 17 "mcall", IMCALL, TOKI3, 18 "mspawn", IMSPAWN, TOKI3, 19 "mframe", IMFRAME, TOKI3, 20 "ret", IRET, TOKI0, 21 "jmp", IJMP, TOKI1, 22 "case", ICASE, TOKI2, 23 "exit", IEXIT, TOKI0, 24 "new", INEW, TOKI2, 25 "newa", INEWA, TOKI3, 26 "newcb", INEWCB, TOKI1, 27 "newcw", INEWCW, TOKI1, 28 "newcf", INEWCF, TOKI1, 29 "newcp", INEWCP, TOKI1, 30 "newcm", INEWCM, TOKI2, 31 "newcmp", INEWCMP, TOKI2, 32 "send", ISEND, TOKI2, 33 "recv", IRECV, TOKI2, 34 "consb", ICONSB, TOKI2, 35 "consw", ICONSW, TOKI2, 36 "consp", ICONSP, TOKI2, 37 "consf", ICONSF, TOKI2, 38 "consm", ICONSM, TOKI3, 39 "consmp", ICONSMP, TOKI3, 40 "headb", IHEADB, TOKI2, 41 "headw", IHEADW, TOKI2, 42 "headp", IHEADP, TOKI2, 43 "headf", IHEADF, TOKI2, 44 "headm", IHEADM, TOKI3, 45 "headmp", IHEADMP, TOKI3, 46 "tail", ITAIL, TOKI2, 47 "lea", ILEA, TOKI2, 48 "indx", IINDX, TOKI3, 49 "movp", IMOVP, TOKI2, 50 "movm", IMOVM, TOKI3, 51 "movmp", IMOVMP, TOKI3, 52 "movb", IMOVB, TOKI2, 53 "movw", IMOVW, TOKI2, 54 "movf", IMOVF, TOKI2, 55 "cvtbw", ICVTBW, TOKI2, 56 "cvtwb", ICVTWB, TOKI2, 57 "cvtfw", ICVTFW, TOKI2, 58 "cvtwf", ICVTWF, TOKI2, 59 "cvtca", ICVTCA, TOKI2, 60 "cvtac", ICVTAC, TOKI2, 61 "cvtwc", ICVTWC, TOKI2, 62 "cvtcw", ICVTCW, TOKI2, 63 "cvtfc", ICVTFC, TOKI2, 64 "cvtcf", ICVTCF, TOKI2, 65 "addb", IADDB, TOKI3, 66 "addw", IADDW, TOKI3, 67 "addf", IADDF, TOKI3, 68 "subb", ISUBB, TOKI3, 69 "subw", ISUBW, TOKI3, 70 "subf", ISUBF, TOKI3, 71 "mulb", IMULB, TOKI3, 72 "mulw", IMULW, TOKI3, 73 "mulf", IMULF, TOKI3, 74 "divb", IDIVB, TOKI3, 75 "divw", IDIVW, TOKI3, 76 "divf", IDIVF, TOKI3, 77 "modw", IMODW, TOKI3, 78 "modb", IMODB, TOKI3, 79 "andb", IANDB, TOKI3, 80 "andw", IANDW, TOKI3, 81 "orb", IORB, TOKI3, 82 "orw", IORW, TOKI3, 83 "xorb", IXORB, TOKI3, 84 "xorw", IXORW, TOKI3, 85 "shlb", ISHLB, TOKI3, 86 "shlw", ISHLW, TOKI3, 87 "shrb", ISHRB, TOKI3, 88 "shrw", ISHRW, TOKI3, 89 "insc", IINSC, TOKI3, 90 "indc", IINDC, TOKI3, 91 "addc", IADDC, TOKI3, 92 "lenc", ILENC, TOKI2, 93 "lena", ILENA, TOKI2, 94 "lenl", ILENL, TOKI2, 95 "beqb", IBEQB, TOKI3, 96 "bneb", IBNEB, TOKI3, 97 "bltb", IBLTB, TOKI3, 98 "bleb", IBLEB, TOKI3, 99 "bgtb", IBGTB, TOKI3, 100 "bgeb", IBGEB, TOKI3, 101 "beqw", IBEQW, TOKI3, 102 "bnew", IBNEW, TOKI3, 103 "bltw", IBLTW, TOKI3, 104 "blew", IBLEW, TOKI3, 105 "bgtw", IBGTW, TOKI3, 106 "bgew", IBGEW, TOKI3, 107 "beqf", IBEQF, TOKI3, 108 "bnef", IBNEF, TOKI3, 109 "bltf", IBLTF, TOKI3, 110 "blef", IBLEF, TOKI3, 111 "bgtf", IBGTF, TOKI3, 112 "bgef", IBGEF, TOKI3, 113 "beqc", IBEQC, TOKI3, 114 "bnec", IBNEC, TOKI3, 115 "bltc", IBLTC, TOKI3, 116 "blec", IBLEC, TOKI3, 117 "bgtc", IBGTC, TOKI3, 118 "bgec", IBGEC, TOKI3, 119 "slicea", ISLICEA, TOKI3, 120 "slicela", ISLICELA, TOKI3, 121 "slicec", ISLICEC, TOKI3, 122 "indw", IINDW, TOKI3, 123 "indf", IINDF, TOKI3, 124 "indb", IINDB, TOKI3, 125 "negf", INEGF, TOKI2, 126 "movl", IMOVL, TOKI2, 127 "addl", IADDL, TOKI3, 128 "subl", ISUBL, TOKI3, 129 "divl", IDIVL, TOKI3, 130 "modl", IMODL, TOKI3, 131 "mull", IMULL, TOKI3, 132 "andl", IANDL, TOKI3, 133 "orl", IORL, TOKI3, 134 "xorl", IXORL, TOKI3, 135 "shll", ISHLL, TOKI3, 136 "shrl", ISHRL, TOKI3, 137 "bnel", IBNEL, TOKI3, 138 "bltl", IBLTL, TOKI3, 139 "blel", IBLEL, TOKI3, 140 "bgtl", IBGTL, TOKI3, 141 "bgel", IBGEL, TOKI3, 142 "beql", IBEQL, TOKI3, 143 "cvtlf", ICVTLF, TOKI2, 144 "cvtfl", ICVTFL, TOKI2, 145 "cvtlw", ICVTLW, TOKI2, 146 "cvtwl", ICVTWL, TOKI2, 147 "cvtlc", ICVTLC, TOKI2, 148 "cvtcl", ICVTCL, TOKI2, 149 "headl", IHEADL, TOKI2, 150 "consl", ICONSL, TOKI2, 151 "newcl", INEWCL, TOKI1, 152 "casec", ICASEC, TOKI2, 153 "indl", IINDL, TOKI3, 154 "movpc", IMOVPC, TOKI2, 155 "tcmp", ITCMP, TOKI2, 156 "mnewz", IMNEWZ, TOKI3, 157 "cvtrf", ICVTRF, TOKI2, 158 "cvtfr", ICVTFR, TOKI2, 159 "cvtws", ICVTWS, TOKI2, 160 "cvtsw", ICVTSW, TOKI2, 161 "lsrw", ILSRW, TOKI3, 162 "lsrl", ILSRL, TOKI3, 163 "eclr", IECLR, TOKI0, 164 "newz", INEWZ, TOKI2, 165 "newaz", INEWAZ, TOKI3, 166 "raise", IRAISE, TOKI1, 167 "casel", ICASEL, TOKI2, 168 "mulx", IMULX, TOKI3, 169 "divx", IDIVX, TOKI3, 170 "cvtxx", ICVTXX, TOKI3, 171 "mulx0", IMULX0, TOKI3, 172 "divx0", IDIVX0, TOKI3, 173 "cvtxx0", ICVTXX0, TOKI3, 174 "mulx1", IMULX1, TOKI3, 175 "divx1", IDIVX1, TOKI3, 176 "cvtxx1", ICVTXX1, TOKI3, 177 "cvtfx", ICVTFX, TOKI3, 178 "cvtxf", ICVTXF, TOKI3, 179 "expw", IEXPW, TOKI3, 180 "expl", IEXPL, TOKI3, 181 "expf", IEXPF, TOKI3, 182 "self", ISELF, TOKI1, 183 0, 184 }; 185