This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Sync Pod::Usage with the CPAN version
[perl5.git] / opnames.h
CommitLineData
37442d52
RGS
1/* -*- buffer-read-only: t -*-
2 *
d6376244
JH
3 * opnames.h
4 *
cfc85103
NC
5 * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6 * by Larry Wall and others
d6376244
JH
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 */
abdd5c84
GS
16
17typedef 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_ATAN2, /* 98 */
117 OP_SIN, /* 99 */
118 OP_COS, /* 100 */
119 OP_RAND, /* 101 */
120 OP_SRAND, /* 102 */
121 OP_EXP, /* 103 */
122 OP_LOG, /* 104 */
123 OP_SQRT, /* 105 */
124 OP_INT, /* 106 */
125 OP_HEX, /* 107 */
126 OP_OCT, /* 108 */
127 OP_ABS, /* 109 */
128 OP_LENGTH, /* 110 */
129 OP_SUBSTR, /* 111 */
130 OP_VEC, /* 112 */
131 OP_INDEX, /* 113 */
132 OP_RINDEX, /* 114 */
133 OP_SPRINTF, /* 115 */
134 OP_FORMLINE, /* 116 */
135 OP_ORD, /* 117 */
136 OP_CHR, /* 118 */
137 OP_CRYPT, /* 119 */
138 OP_UCFIRST, /* 120 */
139 OP_LCFIRST, /* 121 */
140 OP_UC, /* 122 */
141 OP_LC, /* 123 */
142 OP_QUOTEMETA, /* 124 */
143 OP_RV2AV, /* 125 */
144 OP_AELEMFAST, /* 126 */
145 OP_AELEM, /* 127 */
146 OP_ASLICE, /* 128 */
147 OP_EACH, /* 129 */
148 OP_VALUES, /* 130 */
149 OP_KEYS, /* 131 */
150 OP_DELETE, /* 132 */
151 OP_EXISTS, /* 133 */
152 OP_RV2HV, /* 134 */
153 OP_HELEM, /* 135 */
154 OP_HSLICE, /* 136 */
155 OP_UNPACK, /* 137 */
156 OP_PACK, /* 138 */
157 OP_SPLIT, /* 139 */
158 OP_JOIN, /* 140 */
159 OP_LIST, /* 141 */
160 OP_LSLICE, /* 142 */
161 OP_ANONLIST, /* 143 */
162 OP_ANONHASH, /* 144 */
163 OP_SPLICE, /* 145 */
164 OP_PUSH, /* 146 */
165 OP_POP, /* 147 */
166 OP_SHIFT, /* 148 */
167 OP_UNSHIFT, /* 149 */
168 OP_SORT, /* 150 */
169 OP_REVERSE, /* 151 */
170 OP_GREPSTART, /* 152 */
171 OP_GREPWHILE, /* 153 */
172 OP_MAPSTART, /* 154 */
173 OP_MAPWHILE, /* 155 */
174 OP_RANGE, /* 156 */
175 OP_FLIP, /* 157 */
176 OP_FLOP, /* 158 */
177 OP_AND, /* 159 */
178 OP_OR, /* 160 */
179 OP_XOR, /* 161 */
180 OP_COND_EXPR, /* 162 */
181 OP_ANDASSIGN, /* 163 */
182 OP_ORASSIGN, /* 164 */
183 OP_METHOD, /* 165 */
184 OP_ENTERSUB, /* 166 */
185 OP_LEAVESUB, /* 167 */
cd06dffe
GS
186 OP_LEAVESUBLV, /* 168 */
187 OP_CALLER, /* 169 */
188 OP_WARN, /* 170 */
189 OP_DIE, /* 171 */
190 OP_RESET, /* 172 */
191 OP_LINESEQ, /* 173 */
192 OP_NEXTSTATE, /* 174 */
193 OP_DBSTATE, /* 175 */
194 OP_UNSTACK, /* 176 */
195 OP_ENTER, /* 177 */
196 OP_LEAVE, /* 178 */
197 OP_SCOPE, /* 179 */
198 OP_ENTERITER, /* 180 */
199 OP_ITER, /* 181 */
200 OP_ENTERLOOP, /* 182 */
201 OP_LEAVELOOP, /* 183 */
202 OP_RETURN, /* 184 */
203 OP_LAST, /* 185 */
204 OP_NEXT, /* 186 */
205 OP_REDO, /* 187 */
206 OP_DUMP, /* 188 */
207 OP_GOTO, /* 189 */
208 OP_EXIT, /* 190 */
209 OP_OPEN, /* 191 */
210 OP_CLOSE, /* 192 */
211 OP_PIPE_OP, /* 193 */
212 OP_FILENO, /* 194 */
213 OP_UMASK, /* 195 */
214 OP_BINMODE, /* 196 */
215 OP_TIE, /* 197 */
216 OP_UNTIE, /* 198 */
217 OP_TIED, /* 199 */
218 OP_DBMOPEN, /* 200 */
219 OP_DBMCLOSE, /* 201 */
220 OP_SSELECT, /* 202 */
221 OP_SELECT, /* 203 */
222 OP_GETC, /* 204 */
223 OP_READ, /* 205 */
224 OP_ENTERWRITE, /* 206 */
225 OP_LEAVEWRITE, /* 207 */
226 OP_PRTF, /* 208 */
227 OP_PRINT, /* 209 */
228 OP_SYSOPEN, /* 210 */
229 OP_SYSSEEK, /* 211 */
230 OP_SYSREAD, /* 212 */
231 OP_SYSWRITE, /* 213 */
232 OP_SEND, /* 214 */
233 OP_RECV, /* 215 */
234 OP_EOF, /* 216 */
235 OP_TELL, /* 217 */
236 OP_SEEK, /* 218 */
237 OP_TRUNCATE, /* 219 */
238 OP_FCNTL, /* 220 */
239 OP_IOCTL, /* 221 */
240 OP_FLOCK, /* 222 */
241 OP_SOCKET, /* 223 */
242 OP_SOCKPAIR, /* 224 */
243 OP_BIND, /* 225 */
244 OP_CONNECT, /* 226 */
245 OP_LISTEN, /* 227 */
246 OP_ACCEPT, /* 228 */
247 OP_SHUTDOWN, /* 229 */
248 OP_GSOCKOPT, /* 230 */
249 OP_SSOCKOPT, /* 231 */
250 OP_GETSOCKNAME, /* 232 */
251 OP_GETPEERNAME, /* 233 */
252 OP_LSTAT, /* 234 */
253 OP_STAT, /* 235 */
254 OP_FTRREAD, /* 236 */
255 OP_FTRWRITE, /* 237 */
256 OP_FTREXEC, /* 238 */
257 OP_FTEREAD, /* 239 */
258 OP_FTEWRITE, /* 240 */
259 OP_FTEEXEC, /* 241 */
260 OP_FTIS, /* 242 */
261 OP_FTEOWNED, /* 243 */
262 OP_FTROWNED, /* 244 */
263 OP_FTZERO, /* 245 */
264 OP_FTSIZE, /* 246 */
265 OP_FTMTIME, /* 247 */
266 OP_FTATIME, /* 248 */
267 OP_FTCTIME, /* 249 */
268 OP_FTSOCK, /* 250 */
269 OP_FTCHR, /* 251 */
270 OP_FTBLK, /* 252 */
271 OP_FTFILE, /* 253 */
272 OP_FTDIR, /* 254 */
273 OP_FTPIPE, /* 255 */
274 OP_FTLINK, /* 256 */
275 OP_FTSUID, /* 257 */
276 OP_FTSGID, /* 258 */
277 OP_FTSVTX, /* 259 */
278 OP_FTTTY, /* 260 */
279 OP_FTTEXT, /* 261 */
280 OP_FTBINARY, /* 262 */
281 OP_CHDIR, /* 263 */
282 OP_CHOWN, /* 264 */
283 OP_CHROOT, /* 265 */
284 OP_UNLINK, /* 266 */
285 OP_CHMOD, /* 267 */
286 OP_UTIME, /* 268 */
287 OP_RENAME, /* 269 */
288 OP_LINK, /* 270 */
289 OP_SYMLINK, /* 271 */
290 OP_READLINK, /* 272 */
291 OP_MKDIR, /* 273 */
292 OP_RMDIR, /* 274 */
293 OP_OPEN_DIR, /* 275 */
294 OP_READDIR, /* 276 */
295 OP_TELLDIR, /* 277 */
296 OP_SEEKDIR, /* 278 */
297 OP_REWINDDIR, /* 279 */
298 OP_CLOSEDIR, /* 280 */
299 OP_FORK, /* 281 */
300 OP_WAIT, /* 282 */
301 OP_WAITPID, /* 283 */
302 OP_SYSTEM, /* 284 */
303 OP_EXEC, /* 285 */
304 OP_KILL, /* 286 */
305 OP_GETPPID, /* 287 */
306 OP_GETPGRP, /* 288 */
307 OP_SETPGRP, /* 289 */
308 OP_GETPRIORITY, /* 290 */
309 OP_SETPRIORITY, /* 291 */
310 OP_TIME, /* 292 */
311 OP_TMS, /* 293 */
312 OP_LOCALTIME, /* 294 */
313 OP_GMTIME, /* 295 */
314 OP_ALARM, /* 296 */
315 OP_SLEEP, /* 297 */
316 OP_SHMGET, /* 298 */
317 OP_SHMCTL, /* 299 */
318 OP_SHMREAD, /* 300 */
319 OP_SHMWRITE, /* 301 */
320 OP_MSGGET, /* 302 */
321 OP_MSGCTL, /* 303 */
322 OP_MSGSND, /* 304 */
323 OP_MSGRCV, /* 305 */
324 OP_SEMGET, /* 306 */
325 OP_SEMCTL, /* 307 */
326 OP_SEMOP, /* 308 */
327 OP_REQUIRE, /* 309 */
328 OP_DOFILE, /* 310 */
329 OP_ENTEREVAL, /* 311 */
330 OP_LEAVEEVAL, /* 312 */
331 OP_ENTERTRY, /* 313 */
332 OP_LEAVETRY, /* 314 */
333 OP_GHBYNAME, /* 315 */
334 OP_GHBYADDR, /* 316 */
335 OP_GHOSTENT, /* 317 */
336 OP_GNBYNAME, /* 318 */
337 OP_GNBYADDR, /* 319 */
338 OP_GNETENT, /* 320 */
339 OP_GPBYNAME, /* 321 */
340 OP_GPBYNUMBER, /* 322 */
341 OP_GPROTOENT, /* 323 */
342 OP_GSBYNAME, /* 324 */
343 OP_GSBYPORT, /* 325 */
344 OP_GSERVENT, /* 326 */
345 OP_SHOSTENT, /* 327 */
346 OP_SNETENT, /* 328 */
347 OP_SPROTOENT, /* 329 */
348 OP_SSERVENT, /* 330 */
349 OP_EHOSTENT, /* 331 */
350 OP_ENETENT, /* 332 */
351 OP_EPROTOENT, /* 333 */
352 OP_ESERVENT, /* 334 */
353 OP_GPWNAM, /* 335 */
354 OP_GPWUID, /* 336 */
355 OP_GPWENT, /* 337 */
356 OP_SPWENT, /* 338 */
357 OP_EPWENT, /* 339 */
358 OP_GGRNAM, /* 340 */
359 OP_GGRGID, /* 341 */
360 OP_GGRENT, /* 342 */
361 OP_SGRENT, /* 343 */
362 OP_EGRENT, /* 344 */
363 OP_GETLOGIN, /* 345 */
364 OP_SYSCALL, /* 346 */
365 OP_LOCK, /* 347 */
366 OP_THREADSV, /* 348 */
367 OP_SETSTATE, /* 349 */
368 OP_METHOD_NAMED,/* 350 */
c963b151
BD
369 OP_DOR, /* 351 */
370 OP_DORASSIGN, /* 352 */
0d863452
RH
371 OP_ENTERGIVEN, /* 353 */
372 OP_LEAVEGIVEN, /* 354 */
373 OP_ENTERWHEN, /* 355 */
374 OP_LEAVEWHEN, /* 356 */
375 OP_BREAK, /* 357 */
376 OP_CONTINUE, /* 358 */
377 OP_SMARTMATCH, /* 359 */
378 OP_SAY, /* 360 */
379 OP_CUSTOM, /* 361 */
abdd5c84
GS
380 OP_max
381} opcode;
382
0d863452 383#define MAXO 362
4c80c0b2
NC
384#define OP_phoney_INPUT_ONLY -1
385#define OP_phoney_OUTPUT_ONLY -2
abdd5c84 386
a85d93d9
JH
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
37442d52 433/* ex: set ro: */