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