diff options
Diffstat (limited to 'libinterp/tab.h')
| -rw-r--r-- | libinterp/tab.h | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/libinterp/tab.h b/libinterp/tab.h new file mode 100644 index 00000000..bc9dda1c --- /dev/null +++ b/libinterp/tab.h @@ -0,0 +1,184 @@ +struct +{ + char* name; + int op; + int terminal; +}keywds[] = +{ + "nop", INOP, TOKI0, + "alt", IALT, TOKI3, + "nbalt", INBALT, TOKI3, + "goto", IGOTO, TOKI2, + "call", ICALL, TOKI2, + "frame", IFRAME, TOKI2, + "spawn", ISPAWN, TOKI2, + "runt", IRUNT, TOKI2, + "load", ILOAD, TOKI3, + "mcall", IMCALL, TOKI3, + "mspawn", IMSPAWN, TOKI3, + "mframe", IMFRAME, TOKI3, + "ret", IRET, TOKI0, + "jmp", IJMP, TOKI1, + "case", ICASE, TOKI2, + "exit", IEXIT, TOKI0, + "new", INEW, TOKI2, + "newa", INEWA, TOKI3, + "newcb", INEWCB, TOKI1, + "newcw", INEWCW, TOKI1, + "newcf", INEWCF, TOKI1, + "newcp", INEWCP, TOKI1, + "newcm", INEWCM, TOKI2, + "newcmp", INEWCMP, TOKI2, + "send", ISEND, TOKI2, + "recv", IRECV, TOKI2, + "consb", ICONSB, TOKI2, + "consw", ICONSW, TOKI2, + "consp", ICONSP, TOKI2, + "consf", ICONSF, TOKI2, + "consm", ICONSM, TOKI3, + "consmp", ICONSMP, TOKI3, + "headb", IHEADB, TOKI2, + "headw", IHEADW, TOKI2, + "headp", IHEADP, TOKI2, + "headf", IHEADF, TOKI2, + "headm", IHEADM, TOKI3, + "headmp", IHEADMP, TOKI3, + "tail", ITAIL, TOKI2, + "lea", ILEA, TOKI2, + "indx", IINDX, TOKI3, + "movp", IMOVP, TOKI2, + "movm", IMOVM, TOKI3, + "movmp", IMOVMP, TOKI3, + "movb", IMOVB, TOKI2, + "movw", IMOVW, TOKI2, + "movf", IMOVF, TOKI2, + "cvtbw", ICVTBW, TOKI2, + "cvtwb", ICVTWB, TOKI2, + "cvtfw", ICVTFW, TOKI2, + "cvtwf", ICVTWF, TOKI2, + "cvtca", ICVTCA, TOKI2, + "cvtac", ICVTAC, TOKI2, + "cvtwc", ICVTWC, TOKI2, + "cvtcw", ICVTCW, TOKI2, + "cvtfc", ICVTFC, TOKI2, + "cvtcf", ICVTCF, TOKI2, + "addb", IADDB, TOKI3, + "addw", IADDW, TOKI3, + "addf", IADDF, TOKI3, + "subb", ISUBB, TOKI3, + "subw", ISUBW, TOKI3, + "subf", ISUBF, TOKI3, + "mulb", IMULB, TOKI3, + "mulw", IMULW, TOKI3, + "mulf", IMULF, TOKI3, + "divb", IDIVB, TOKI3, + "divw", IDIVW, TOKI3, + "divf", IDIVF, TOKI3, + "modw", IMODW, TOKI3, + "modb", IMODB, TOKI3, + "andb", IANDB, TOKI3, + "andw", IANDW, TOKI3, + "orb", IORB, TOKI3, + "orw", IORW, TOKI3, + "xorb", IXORB, TOKI3, + "xorw", IXORW, TOKI3, + "shlb", ISHLB, TOKI3, + "shlw", ISHLW, TOKI3, + "shrb", ISHRB, TOKI3, + "shrw", ISHRW, TOKI3, + "insc", IINSC, TOKI3, + "indc", IINDC, TOKI3, + "addc", IADDC, TOKI3, + "lenc", ILENC, TOKI2, + "lena", ILENA, TOKI2, + "lenl", ILENL, TOKI2, + "beqb", IBEQB, TOKI3, + "bneb", IBNEB, TOKI3, + "bltb", IBLTB, TOKI3, + "bleb", IBLEB, TOKI3, + "bgtb", IBGTB, TOKI3, + "bgeb", IBGEB, TOKI3, + "beqw", IBEQW, TOKI3, + "bnew", IBNEW, TOKI3, + "bltw", IBLTW, TOKI3, + "blew", IBLEW, TOKI3, + "bgtw", IBGTW, TOKI3, + "bgew", IBGEW, TOKI3, + "beqf", IBEQF, TOKI3, + "bnef", IBNEF, TOKI3, + "bltf", IBLTF, TOKI3, + "blef", IBLEF, TOKI3, + "bgtf", IBGTF, TOKI3, + "bgef", IBGEF, TOKI3, + "beqc", IBEQC, TOKI3, + "bnec", IBNEC, TOKI3, + "bltc", IBLTC, TOKI3, + "blec", IBLEC, TOKI3, + "bgtc", IBGTC, TOKI3, + "bgec", IBGEC, TOKI3, + "slicea", ISLICEA, TOKI3, + "slicela", ISLICELA, TOKI3, + "slicec", ISLICEC, TOKI3, + "indw", IINDW, TOKI3, + "indf", IINDF, TOKI3, + "indb", IINDB, TOKI3, + "negf", INEGF, TOKI2, + "movl", IMOVL, TOKI2, + "addl", IADDL, TOKI3, + "subl", ISUBL, TOKI3, + "divl", IDIVL, TOKI3, + "modl", IMODL, TOKI3, + "mull", IMULL, TOKI3, + "andl", IANDL, TOKI3, + "orl", IORL, TOKI3, + "xorl", IXORL, TOKI3, + "shll", ISHLL, TOKI3, + "shrl", ISHRL, TOKI3, + "bnel", IBNEL, TOKI3, + "bltl", IBLTL, TOKI3, + "blel", IBLEL, TOKI3, + "bgtl", IBGTL, TOKI3, + "bgel", IBGEL, TOKI3, + "beql", IBEQL, TOKI3, + "cvtlf", ICVTLF, TOKI2, + "cvtfl", ICVTFL, TOKI2, + "cvtlw", ICVTLW, TOKI2, + "cvtwl", ICVTWL, TOKI2, + "cvtlc", ICVTLC, TOKI2, + "cvtcl", ICVTCL, TOKI2, + "headl", IHEADL, TOKI2, + "consl", ICONSL, TOKI2, + "newcl", INEWCL, TOKI1, + "casec", ICASEC, TOKI2, + "indl", IINDL, TOKI3, + "movpc", IMOVPC, TOKI2, + "tcmp", ITCMP, TOKI2, + "mnewz", IMNEWZ, TOKI3, + "cvtrf", ICVTRF, TOKI2, + "cvtfr", ICVTFR, TOKI2, + "cvtws", ICVTWS, TOKI2, + "cvtsw", ICVTSW, TOKI2, + "lsrw", ILSRW, TOKI3, + "lsrl", ILSRL, TOKI3, + "eclr", IECLR, TOKI0, + "newz", INEWZ, TOKI2, + "newaz", INEWAZ, TOKI3, + "raise", IRAISE, TOKI1, + "casel", ICASEL, TOKI2, + "mulx", IMULX, TOKI3, + "divx", IDIVX, TOKI3, + "cvtxx", ICVTXX, TOKI3, + "mulx0", IMULX0, TOKI3, + "divx0", IDIVX0, TOKI3, + "cvtxx0", ICVTXX0, TOKI3, + "mulx1", IMULX1, TOKI3, + "divx1", IDIVX1, TOKI3, + "cvtxx1", ICVTXX1, TOKI3, + "cvtfx", ICVTFX, TOKI3, + "cvtxf", ICVTXF, TOKI3, + "expw", IEXPW, TOKI3, + "expl", IEXPL, TOKI3, + "expf", IEXPF, TOKI3, + "self", ISELF, TOKI1, + 0, +}; |
