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