xref: /openbsd/gnu/usr.bin/perl/opnames.h (revision 404b540a)
1 /* -*- buffer-read-only: t -*-
2  *
3  *    opnames.h
4  *
5  *    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6  *    2007, 2008 by Larry Wall and others
7  *
8  *    You may distribute under the terms of either the GNU General Public
9  *    License or the Artistic License, as specified in the README file.
10  *
11  *
12  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
13  *  This file is built by opcode.pl from its data.  Any changes made here
14  *  will be lost!
15  */
16 
17 typedef enum opcode {
18 	OP_NULL,	/* 0 */
19 	OP_STUB,	/* 1 */
20 	OP_SCALAR,	/* 2 */
21 	OP_PUSHMARK,	/* 3 */
22 	OP_WANTARRAY,	/* 4 */
23 	OP_CONST,	/* 5 */
24 	OP_GVSV,	/* 6 */
25 	OP_GV,		/* 7 */
26 	OP_GELEM,	/* 8 */
27 	OP_PADSV,	/* 9 */
28 	OP_PADAV,	/* 10 */
29 	OP_PADHV,	/* 11 */
30 	OP_PADANY,	/* 12 */
31 	OP_PUSHRE,	/* 13 */
32 	OP_RV2GV,	/* 14 */
33 	OP_RV2SV,	/* 15 */
34 	OP_AV2ARYLEN,	/* 16 */
35 	OP_RV2CV,	/* 17 */
36 	OP_ANONCODE,	/* 18 */
37 	OP_PROTOTYPE,	/* 19 */
38 	OP_REFGEN,	/* 20 */
39 	OP_SREFGEN,	/* 21 */
40 	OP_REF,		/* 22 */
41 	OP_BLESS,	/* 23 */
42 	OP_BACKTICK,	/* 24 */
43 	OP_GLOB,	/* 25 */
44 	OP_READLINE,	/* 26 */
45 	OP_RCATLINE,	/* 27 */
46 	OP_REGCMAYBE,	/* 28 */
47 	OP_REGCRESET,	/* 29 */
48 	OP_REGCOMP,	/* 30 */
49 	OP_MATCH,	/* 31 */
50 	OP_QR,		/* 32 */
51 	OP_SUBST,	/* 33 */
52 	OP_SUBSTCONT,	/* 34 */
53 	OP_TRANS,	/* 35 */
54 	OP_SASSIGN,	/* 36 */
55 	OP_AASSIGN,	/* 37 */
56 	OP_CHOP,	/* 38 */
57 	OP_SCHOP,	/* 39 */
58 	OP_CHOMP,	/* 40 */
59 	OP_SCHOMP,	/* 41 */
60 	OP_DEFINED,	/* 42 */
61 	OP_UNDEF,	/* 43 */
62 	OP_STUDY,	/* 44 */
63 	OP_POS,		/* 45 */
64 	OP_PREINC,	/* 46 */
65 	OP_I_PREINC,	/* 47 */
66 	OP_PREDEC,	/* 48 */
67 	OP_I_PREDEC,	/* 49 */
68 	OP_POSTINC,	/* 50 */
69 	OP_I_POSTINC,	/* 51 */
70 	OP_POSTDEC,	/* 52 */
71 	OP_I_POSTDEC,	/* 53 */
72 	OP_POW,		/* 54 */
73 	OP_MULTIPLY,	/* 55 */
74 	OP_I_MULTIPLY,	/* 56 */
75 	OP_DIVIDE,	/* 57 */
76 	OP_I_DIVIDE,	/* 58 */
77 	OP_MODULO,	/* 59 */
78 	OP_I_MODULO,	/* 60 */
79 	OP_REPEAT,	/* 61 */
80 	OP_ADD,		/* 62 */
81 	OP_I_ADD,	/* 63 */
82 	OP_SUBTRACT,	/* 64 */
83 	OP_I_SUBTRACT,	/* 65 */
84 	OP_CONCAT,	/* 66 */
85 	OP_STRINGIFY,	/* 67 */
86 	OP_LEFT_SHIFT,	/* 68 */
87 	OP_RIGHT_SHIFT,	/* 69 */
88 	OP_LT,		/* 70 */
89 	OP_I_LT,	/* 71 */
90 	OP_GT,		/* 72 */
91 	OP_I_GT,	/* 73 */
92 	OP_LE,		/* 74 */
93 	OP_I_LE,	/* 75 */
94 	OP_GE,		/* 76 */
95 	OP_I_GE,	/* 77 */
96 	OP_EQ,		/* 78 */
97 	OP_I_EQ,	/* 79 */
98 	OP_NE,		/* 80 */
99 	OP_I_NE,	/* 81 */
100 	OP_NCMP,	/* 82 */
101 	OP_I_NCMP,	/* 83 */
102 	OP_SLT,		/* 84 */
103 	OP_SGT,		/* 85 */
104 	OP_SLE,		/* 86 */
105 	OP_SGE,		/* 87 */
106 	OP_SEQ,		/* 88 */
107 	OP_SNE,		/* 89 */
108 	OP_SCMP,	/* 90 */
109 	OP_BIT_AND,	/* 91 */
110 	OP_BIT_XOR,	/* 92 */
111 	OP_BIT_OR,	/* 93 */
112 	OP_NEGATE,	/* 94 */
113 	OP_I_NEGATE,	/* 95 */
114 	OP_NOT,		/* 96 */
115 	OP_COMPLEMENT,	/* 97 */
116 	OP_SMARTMATCH,	/* 98 */
117 	OP_ATAN2,	/* 99 */
118 	OP_SIN,		/* 100 */
119 	OP_COS,		/* 101 */
120 	OP_RAND,	/* 102 */
121 	OP_SRAND,	/* 103 */
122 	OP_EXP,		/* 104 */
123 	OP_LOG,		/* 105 */
124 	OP_SQRT,	/* 106 */
125 	OP_INT,		/* 107 */
126 	OP_HEX,		/* 108 */
127 	OP_OCT,		/* 109 */
128 	OP_ABS,		/* 110 */
129 	OP_LENGTH,	/* 111 */
130 	OP_SUBSTR,	/* 112 */
131 	OP_VEC,		/* 113 */
132 	OP_INDEX,	/* 114 */
133 	OP_RINDEX,	/* 115 */
134 	OP_SPRINTF,	/* 116 */
135 	OP_FORMLINE,	/* 117 */
136 	OP_ORD,		/* 118 */
137 	OP_CHR,		/* 119 */
138 	OP_CRYPT,	/* 120 */
139 	OP_UCFIRST,	/* 121 */
140 	OP_LCFIRST,	/* 122 */
141 	OP_UC,		/* 123 */
142 	OP_LC,		/* 124 */
143 	OP_QUOTEMETA,	/* 125 */
144 	OP_RV2AV,	/* 126 */
145 	OP_AELEMFAST,	/* 127 */
146 	OP_AELEM,	/* 128 */
147 	OP_ASLICE,	/* 129 */
148 	OP_EACH,	/* 130 */
149 	OP_VALUES,	/* 131 */
150 	OP_KEYS,	/* 132 */
151 	OP_DELETE,	/* 133 */
152 	OP_EXISTS,	/* 134 */
153 	OP_RV2HV,	/* 135 */
154 	OP_HELEM,	/* 136 */
155 	OP_HSLICE,	/* 137 */
156 	OP_UNPACK,	/* 138 */
157 	OP_PACK,	/* 139 */
158 	OP_SPLIT,	/* 140 */
159 	OP_JOIN,	/* 141 */
160 	OP_LIST,	/* 142 */
161 	OP_LSLICE,	/* 143 */
162 	OP_ANONLIST,	/* 144 */
163 	OP_ANONHASH,	/* 145 */
164 	OP_SPLICE,	/* 146 */
165 	OP_PUSH,	/* 147 */
166 	OP_POP,		/* 148 */
167 	OP_SHIFT,	/* 149 */
168 	OP_UNSHIFT,	/* 150 */
169 	OP_SORT,	/* 151 */
170 	OP_REVERSE,	/* 152 */
171 	OP_GREPSTART,	/* 153 */
172 	OP_GREPWHILE,	/* 154 */
173 	OP_MAPSTART,	/* 155 */
174 	OP_MAPWHILE,	/* 156 */
175 	OP_RANGE,	/* 157 */
176 	OP_FLIP,	/* 158 */
177 	OP_FLOP,	/* 159 */
178 	OP_AND,		/* 160 */
179 	OP_OR,		/* 161 */
180 	OP_XOR,		/* 162 */
181 	OP_DOR,		/* 163 */
182 	OP_COND_EXPR,	/* 164 */
183 	OP_ANDASSIGN,	/* 165 */
184 	OP_ORASSIGN,	/* 166 */
185 	OP_DORASSIGN,	/* 167 */
186 	OP_METHOD,	/* 168 */
187 	OP_ENTERSUB,	/* 169 */
188 	OP_LEAVESUB,	/* 170 */
189 	OP_LEAVESUBLV,	/* 171 */
190 	OP_CALLER,	/* 172 */
191 	OP_WARN,	/* 173 */
192 	OP_DIE,		/* 174 */
193 	OP_RESET,	/* 175 */
194 	OP_LINESEQ,	/* 176 */
195 	OP_NEXTSTATE,	/* 177 */
196 	OP_DBSTATE,	/* 178 */
197 	OP_UNSTACK,	/* 179 */
198 	OP_ENTER,	/* 180 */
199 	OP_LEAVE,	/* 181 */
200 	OP_SCOPE,	/* 182 */
201 	OP_ENTERITER,	/* 183 */
202 	OP_ITER,	/* 184 */
203 	OP_ENTERLOOP,	/* 185 */
204 	OP_LEAVELOOP,	/* 186 */
205 	OP_RETURN,	/* 187 */
206 	OP_LAST,	/* 188 */
207 	OP_NEXT,	/* 189 */
208 	OP_REDO,	/* 190 */
209 	OP_DUMP,	/* 191 */
210 	OP_GOTO,	/* 192 */
211 	OP_EXIT,	/* 193 */
212 	OP_SETSTATE,	/* 194 */
213 	OP_METHOD_NAMED,/* 195 */
214 	OP_ENTERGIVEN,	/* 196 */
215 	OP_LEAVEGIVEN,	/* 197 */
216 	OP_ENTERWHEN,	/* 198 */
217 	OP_LEAVEWHEN,	/* 199 */
218 	OP_BREAK,	/* 200 */
219 	OP_CONTINUE,	/* 201 */
220 	OP_OPEN,	/* 202 */
221 	OP_CLOSE,	/* 203 */
222 	OP_PIPE_OP,	/* 204 */
223 	OP_FILENO,	/* 205 */
224 	OP_UMASK,	/* 206 */
225 	OP_BINMODE,	/* 207 */
226 	OP_TIE,		/* 208 */
227 	OP_UNTIE,	/* 209 */
228 	OP_TIED,	/* 210 */
229 	OP_DBMOPEN,	/* 211 */
230 	OP_DBMCLOSE,	/* 212 */
231 	OP_SSELECT,	/* 213 */
232 	OP_SELECT,	/* 214 */
233 	OP_GETC,	/* 215 */
234 	OP_READ,	/* 216 */
235 	OP_ENTERWRITE,	/* 217 */
236 	OP_LEAVEWRITE,	/* 218 */
237 	OP_PRTF,	/* 219 */
238 	OP_PRINT,	/* 220 */
239 	OP_SAY,		/* 221 */
240 	OP_SYSOPEN,	/* 222 */
241 	OP_SYSSEEK,	/* 223 */
242 	OP_SYSREAD,	/* 224 */
243 	OP_SYSWRITE,	/* 225 */
244 	OP_SEND,	/* 226 */
245 	OP_RECV,	/* 227 */
246 	OP_EOF,		/* 228 */
247 	OP_TELL,	/* 229 */
248 	OP_SEEK,	/* 230 */
249 	OP_TRUNCATE,	/* 231 */
250 	OP_FCNTL,	/* 232 */
251 	OP_IOCTL,	/* 233 */
252 	OP_FLOCK,	/* 234 */
253 	OP_SOCKET,	/* 235 */
254 	OP_SOCKPAIR,	/* 236 */
255 	OP_BIND,	/* 237 */
256 	OP_CONNECT,	/* 238 */
257 	OP_LISTEN,	/* 239 */
258 	OP_ACCEPT,	/* 240 */
259 	OP_SHUTDOWN,	/* 241 */
260 	OP_GSOCKOPT,	/* 242 */
261 	OP_SSOCKOPT,	/* 243 */
262 	OP_GETSOCKNAME,	/* 244 */
263 	OP_GETPEERNAME,	/* 245 */
264 	OP_LSTAT,	/* 246 */
265 	OP_STAT,	/* 247 */
266 	OP_FTRREAD,	/* 248 */
267 	OP_FTRWRITE,	/* 249 */
268 	OP_FTREXEC,	/* 250 */
269 	OP_FTEREAD,	/* 251 */
270 	OP_FTEWRITE,	/* 252 */
271 	OP_FTEEXEC,	/* 253 */
272 	OP_FTIS,	/* 254 */
273 	OP_FTSIZE,	/* 255 */
274 	OP_FTMTIME,	/* 256 */
275 	OP_FTATIME,	/* 257 */
276 	OP_FTCTIME,	/* 258 */
277 	OP_FTROWNED,	/* 259 */
278 	OP_FTEOWNED,	/* 260 */
279 	OP_FTZERO,	/* 261 */
280 	OP_FTSOCK,	/* 262 */
281 	OP_FTCHR,	/* 263 */
282 	OP_FTBLK,	/* 264 */
283 	OP_FTFILE,	/* 265 */
284 	OP_FTDIR,	/* 266 */
285 	OP_FTPIPE,	/* 267 */
286 	OP_FTSUID,	/* 268 */
287 	OP_FTSGID,	/* 269 */
288 	OP_FTSVTX,	/* 270 */
289 	OP_FTLINK,	/* 271 */
290 	OP_FTTTY,	/* 272 */
291 	OP_FTTEXT,	/* 273 */
292 	OP_FTBINARY,	/* 274 */
293 	OP_CHDIR,	/* 275 */
294 	OP_CHOWN,	/* 276 */
295 	OP_CHROOT,	/* 277 */
296 	OP_UNLINK,	/* 278 */
297 	OP_CHMOD,	/* 279 */
298 	OP_UTIME,	/* 280 */
299 	OP_RENAME,	/* 281 */
300 	OP_LINK,	/* 282 */
301 	OP_SYMLINK,	/* 283 */
302 	OP_READLINK,	/* 284 */
303 	OP_MKDIR,	/* 285 */
304 	OP_RMDIR,	/* 286 */
305 	OP_OPEN_DIR,	/* 287 */
306 	OP_READDIR,	/* 288 */
307 	OP_TELLDIR,	/* 289 */
308 	OP_SEEKDIR,	/* 290 */
309 	OP_REWINDDIR,	/* 291 */
310 	OP_CLOSEDIR,	/* 292 */
311 	OP_FORK,	/* 293 */
312 	OP_WAIT,	/* 294 */
313 	OP_WAITPID,	/* 295 */
314 	OP_SYSTEM,	/* 296 */
315 	OP_EXEC,	/* 297 */
316 	OP_KILL,	/* 298 */
317 	OP_GETPPID,	/* 299 */
318 	OP_GETPGRP,	/* 300 */
319 	OP_SETPGRP,	/* 301 */
320 	OP_GETPRIORITY,	/* 302 */
321 	OP_SETPRIORITY,	/* 303 */
322 	OP_TIME,	/* 304 */
323 	OP_TMS,		/* 305 */
324 	OP_LOCALTIME,	/* 306 */
325 	OP_GMTIME,	/* 307 */
326 	OP_ALARM,	/* 308 */
327 	OP_SLEEP,	/* 309 */
328 	OP_SHMGET,	/* 310 */
329 	OP_SHMCTL,	/* 311 */
330 	OP_SHMREAD,	/* 312 */
331 	OP_SHMWRITE,	/* 313 */
332 	OP_MSGGET,	/* 314 */
333 	OP_MSGCTL,	/* 315 */
334 	OP_MSGSND,	/* 316 */
335 	OP_MSGRCV,	/* 317 */
336 	OP_SEMOP,	/* 318 */
337 	OP_SEMGET,	/* 319 */
338 	OP_SEMCTL,	/* 320 */
339 	OP_REQUIRE,	/* 321 */
340 	OP_DOFILE,	/* 322 */
341 	OP_ENTEREVAL,	/* 323 */
342 	OP_LEAVEEVAL,	/* 324 */
343 	OP_ENTERTRY,	/* 325 */
344 	OP_LEAVETRY,	/* 326 */
345 	OP_GHBYNAME,	/* 327 */
346 	OP_GHBYADDR,	/* 328 */
347 	OP_GHOSTENT,	/* 329 */
348 	OP_GNBYNAME,	/* 330 */
349 	OP_GNBYADDR,	/* 331 */
350 	OP_GNETENT,	/* 332 */
351 	OP_GPBYNAME,	/* 333 */
352 	OP_GPBYNUMBER,	/* 334 */
353 	OP_GPROTOENT,	/* 335 */
354 	OP_GSBYNAME,	/* 336 */
355 	OP_GSBYPORT,	/* 337 */
356 	OP_GSERVENT,	/* 338 */
357 	OP_SHOSTENT,	/* 339 */
358 	OP_SNETENT,	/* 340 */
359 	OP_SPROTOENT,	/* 341 */
360 	OP_SSERVENT,	/* 342 */
361 	OP_EHOSTENT,	/* 343 */
362 	OP_ENETENT,	/* 344 */
363 	OP_EPROTOENT,	/* 345 */
364 	OP_ESERVENT,	/* 346 */
365 	OP_GPWNAM,	/* 347 */
366 	OP_GPWUID,	/* 348 */
367 	OP_GPWENT,	/* 349 */
368 	OP_SPWENT,	/* 350 */
369 	OP_EPWENT,	/* 351 */
370 	OP_GGRNAM,	/* 352 */
371 	OP_GGRGID,	/* 353 */
372 	OP_GGRENT,	/* 354 */
373 	OP_SGRENT,	/* 355 */
374 	OP_EGRENT,	/* 356 */
375 	OP_GETLOGIN,	/* 357 */
376 	OP_SYSCALL,	/* 358 */
377 	OP_LOCK,	/* 359 */
378 	OP_ONCE,	/* 360 */
379 	OP_CUSTOM,	/* 361 */
380 	OP_max
381 } opcode;
382 
383 #define MAXO 362
384 #define OP_phoney_INPUT_ONLY -1
385 #define OP_phoney_OUTPUT_ONLY -2
386 
387 
388 #define OP_IS_SOCKET(op)	\
389 	((op) == OP_ACCEPT || \
390 	 (op) == OP_BIND || \
391 	 (op) == OP_CONNECT || \
392 	 (op) == OP_GETPEERNAME || \
393 	 (op) == OP_GETSOCKNAME || \
394 	 (op) == OP_GSOCKOPT || \
395 	 (op) == OP_LISTEN || \
396 	 (op) == OP_RECV || \
397 	 (op) == OP_SEND || \
398 	 (op) == OP_SHUTDOWN || \
399 	 (op) == OP_SOCKET || \
400 	 (op) == OP_SOCKPAIR || \
401 	 (op) == OP_SSOCKOPT)
402 
403 
404 #define OP_IS_FILETEST(op)	\
405 	((op) == OP_FTATIME || \
406 	 (op) == OP_FTBINARY || \
407 	 (op) == OP_FTBLK || \
408 	 (op) == OP_FTCHR || \
409 	 (op) == OP_FTCTIME || \
410 	 (op) == OP_FTDIR || \
411 	 (op) == OP_FTEEXEC || \
412 	 (op) == OP_FTEOWNED || \
413 	 (op) == OP_FTEREAD || \
414 	 (op) == OP_FTEWRITE || \
415 	 (op) == OP_FTFILE || \
416 	 (op) == OP_FTIS || \
417 	 (op) == OP_FTLINK || \
418 	 (op) == OP_FTMTIME || \
419 	 (op) == OP_FTPIPE || \
420 	 (op) == OP_FTREXEC || \
421 	 (op) == OP_FTROWNED || \
422 	 (op) == OP_FTRREAD || \
423 	 (op) == OP_FTRWRITE || \
424 	 (op) == OP_FTSGID || \
425 	 (op) == OP_FTSIZE || \
426 	 (op) == OP_FTSOCK || \
427 	 (op) == OP_FTSUID || \
428 	 (op) == OP_FTSVTX || \
429 	 (op) == OP_FTTEXT || \
430 	 (op) == OP_FTTTY || \
431 	 (op) == OP_FTZERO)
432 
433 /* ex: set ro: */
434