perl 5.0 alpha 6
[p5sagit/p5-mst-13.2.git] / opcode.h
1 typedef enum {
2         OP_NULL,        /* 0 */
3         OP_STUB,        /* 1 */
4         OP_SCALAR,      /* 2 */
5         OP_PUSHMARK,    /* 3 */
6         OP_WANTARRAY,   /* 4 */
7         OP_CONST,       /* 5 */
8         OP_INTERP,      /* 6 */
9         OP_GVSV,        /* 7 */
10         OP_GV,          /* 8 */
11         OP_PADSV,       /* 9 */
12         OP_PADAV,       /* 10 */
13         OP_PADHV,       /* 11 */
14         OP_PADANY,      /* 12 */
15         OP_PUSHRE,      /* 13 */
16         OP_RV2GV,       /* 14 */
17         OP_SV2LEN,      /* 15 */
18         OP_RV2SV,       /* 16 */
19         OP_AV2ARYLEN,   /* 17 */
20         OP_RV2CV,       /* 18 */
21         OP_REFGEN,      /* 19 */
22         OP_REF,         /* 20 */
23         OP_BLESS,       /* 21 */
24         OP_BACKTICK,    /* 22 */
25         OP_GLOB,        /* 23 */
26         OP_READLINE,    /* 24 */
27         OP_RCATLINE,    /* 25 */
28         OP_REGCMAYBE,   /* 26 */
29         OP_REGCOMP,     /* 27 */
30         OP_MATCH,       /* 28 */
31         OP_SUBST,       /* 29 */
32         OP_SUBSTCONT,   /* 30 */
33         OP_TRANS,       /* 31 */
34         OP_SASSIGN,     /* 32 */
35         OP_AASSIGN,     /* 33 */
36         OP_SCHOP,       /* 34 */
37         OP_CHOP,        /* 35 */
38         OP_DEFINED,     /* 36 */
39         OP_UNDEF,       /* 37 */
40         OP_STUDY,       /* 38 */
41         OP_PREINC,      /* 39 */
42         OP_PREDEC,      /* 40 */
43         OP_POSTINC,     /* 41 */
44         OP_POSTDEC,     /* 42 */
45         OP_POW,         /* 43 */
46         OP_MULTIPLY,    /* 44 */
47         OP_DIVIDE,      /* 45 */
48         OP_MODULO,      /* 46 */
49         OP_REPEAT,      /* 47 */
50         OP_ADD,         /* 48 */
51         OP_INTADD,      /* 49 */
52         OP_SUBTRACT,    /* 50 */
53         OP_CONCAT,      /* 51 */
54         OP_LEFT_SHIFT,  /* 52 */
55         OP_RIGHT_SHIFT, /* 53 */
56         OP_LT,          /* 54 */
57         OP_GT,          /* 55 */
58         OP_LE,          /* 56 */
59         OP_GE,          /* 57 */
60         OP_EQ,          /* 58 */
61         OP_NE,          /* 59 */
62         OP_NCMP,        /* 60 */
63         OP_SLT,         /* 61 */
64         OP_SGT,         /* 62 */
65         OP_SLE,         /* 63 */
66         OP_SGE,         /* 64 */
67         OP_SEQ,         /* 65 */
68         OP_SNE,         /* 66 */
69         OP_SCMP,        /* 67 */
70         OP_BIT_AND,     /* 68 */
71         OP_XOR,         /* 69 */
72         OP_BIT_OR,      /* 70 */
73         OP_NEGATE,      /* 71 */
74         OP_NOT,         /* 72 */
75         OP_COMPLEMENT,  /* 73 */
76         OP_ATAN2,       /* 74 */
77         OP_SIN,         /* 75 */
78         OP_COS,         /* 76 */
79         OP_RAND,        /* 77 */
80         OP_SRAND,       /* 78 */
81         OP_EXP,         /* 79 */
82         OP_LOG,         /* 80 */
83         OP_SQRT,        /* 81 */
84         OP_INT,         /* 82 */
85         OP_HEX,         /* 83 */
86         OP_OCT,         /* 84 */
87         OP_ABS,         /* 85 */
88         OP_LENGTH,      /* 86 */
89         OP_SUBSTR,      /* 87 */
90         OP_VEC,         /* 88 */
91         OP_INDEX,       /* 89 */
92         OP_RINDEX,      /* 90 */
93         OP_SPRINTF,     /* 91 */
94         OP_FORMLINE,    /* 92 */
95         OP_ORD,         /* 93 */
96         OP_CHR,         /* 94 */
97         OP_CRYPT,       /* 95 */
98         OP_UCFIRST,     /* 96 */
99         OP_LCFIRST,     /* 97 */
100         OP_UC,          /* 98 */
101         OP_LC,          /* 99 */
102         OP_RV2AV,       /* 100 */
103         OP_AELEMFAST,   /* 101 */
104         OP_AELEM,       /* 102 */
105         OP_ASLICE,      /* 103 */
106         OP_EACH,        /* 104 */
107         OP_VALUES,      /* 105 */
108         OP_KEYS,        /* 106 */
109         OP_DELETE,      /* 107 */
110         OP_RV2HV,       /* 108 */
111         OP_HELEM,       /* 109 */
112         OP_HSLICE,      /* 110 */
113         OP_UNPACK,      /* 111 */
114         OP_PACK,        /* 112 */
115         OP_SPLIT,       /* 113 */
116         OP_JOIN,        /* 114 */
117         OP_LIST,        /* 115 */
118         OP_LSLICE,      /* 116 */
119         OP_ANONLIST,    /* 117 */
120         OP_ANONHASH,    /* 118 */
121         OP_SPLICE,      /* 119 */
122         OP_PUSH,        /* 120 */
123         OP_POP,         /* 121 */
124         OP_SHIFT,       /* 122 */
125         OP_UNSHIFT,     /* 123 */
126         OP_SORT,        /* 124 */
127         OP_REVERSE,     /* 125 */
128         OP_GREPSTART,   /* 126 */
129         OP_GREPWHILE,   /* 127 */
130         OP_RANGE,       /* 128 */
131         OP_FLIP,        /* 129 */
132         OP_FLOP,        /* 130 */
133         OP_AND,         /* 131 */
134         OP_OR,          /* 132 */
135         OP_COND_EXPR,   /* 133 */
136         OP_ANDASSIGN,   /* 134 */
137         OP_ORASSIGN,    /* 135 */
138         OP_METHOD,      /* 136 */
139         OP_ENTERSUBR,   /* 137 */
140         OP_LEAVESUBR,   /* 138 */
141         OP_CALLER,      /* 139 */
142         OP_WARN,        /* 140 */
143         OP_DIE,         /* 141 */
144         OP_RESET,       /* 142 */
145         OP_LINESEQ,     /* 143 */
146         OP_NEXTSTATE,   /* 144 */
147         OP_DBSTATE,     /* 145 */
148         OP_UNSTACK,     /* 146 */
149         OP_ENTER,       /* 147 */
150         OP_LEAVE,       /* 148 */
151         OP_SCOPE,       /* 149 */
152         OP_ENTERITER,   /* 150 */
153         OP_ITER,        /* 151 */
154         OP_ENTERLOOP,   /* 152 */
155         OP_LEAVELOOP,   /* 153 */
156         OP_RETURN,      /* 154 */
157         OP_LAST,        /* 155 */
158         OP_NEXT,        /* 156 */
159         OP_REDO,        /* 157 */
160         OP_DUMP,        /* 158 */
161         OP_GOTO,        /* 159 */
162         OP_EXIT,        /* 160 */
163         OP_NSWITCH,     /* 161 */
164         OP_CSWITCH,     /* 162 */
165         OP_OPEN,        /* 163 */
166         OP_CLOSE,       /* 164 */
167         OP_PIPE_OP,     /* 165 */
168         OP_FILENO,      /* 166 */
169         OP_UMASK,       /* 167 */
170         OP_BINMODE,     /* 168 */
171         OP_TIE,         /* 169 */
172         OP_UNTIE,       /* 170 */
173         OP_DBMOPEN,     /* 171 */
174         OP_DBMCLOSE,    /* 172 */
175         OP_SSELECT,     /* 173 */
176         OP_SELECT,      /* 174 */
177         OP_GETC,        /* 175 */
178         OP_READ,        /* 176 */
179         OP_ENTERWRITE,  /* 177 */
180         OP_LEAVEWRITE,  /* 178 */
181         OP_PRTF,        /* 179 */
182         OP_PRINT,       /* 180 */
183         OP_SYSREAD,     /* 181 */
184         OP_SYSWRITE,    /* 182 */
185         OP_SEND,        /* 183 */
186         OP_RECV,        /* 184 */
187         OP_EOF,         /* 185 */
188         OP_TELL,        /* 186 */
189         OP_SEEK,        /* 187 */
190         OP_TRUNCATE,    /* 188 */
191         OP_FCNTL,       /* 189 */
192         OP_IOCTL,       /* 190 */
193         OP_FLOCK,       /* 191 */
194         OP_SOCKET,      /* 192 */
195         OP_SOCKPAIR,    /* 193 */
196         OP_BIND,        /* 194 */
197         OP_CONNECT,     /* 195 */
198         OP_LISTEN,      /* 196 */
199         OP_ACCEPT,      /* 197 */
200         OP_SHUTDOWN,    /* 198 */
201         OP_GSOCKOPT,    /* 199 */
202         OP_SSOCKOPT,    /* 200 */
203         OP_GETSOCKNAME, /* 201 */
204         OP_GETPEERNAME, /* 202 */
205         OP_LSTAT,       /* 203 */
206         OP_STAT,        /* 204 */
207         OP_FTRREAD,     /* 205 */
208         OP_FTRWRITE,    /* 206 */
209         OP_FTREXEC,     /* 207 */
210         OP_FTEREAD,     /* 208 */
211         OP_FTEWRITE,    /* 209 */
212         OP_FTEEXEC,     /* 210 */
213         OP_FTIS,        /* 211 */
214         OP_FTEOWNED,    /* 212 */
215         OP_FTROWNED,    /* 213 */
216         OP_FTZERO,      /* 214 */
217         OP_FTSIZE,      /* 215 */
218         OP_FTMTIME,     /* 216 */
219         OP_FTATIME,     /* 217 */
220         OP_FTCTIME,     /* 218 */
221         OP_FTSOCK,      /* 219 */
222         OP_FTCHR,       /* 220 */
223         OP_FTBLK,       /* 221 */
224         OP_FTFILE,      /* 222 */
225         OP_FTDIR,       /* 223 */
226         OP_FTPIPE,      /* 224 */
227         OP_FTLINK,      /* 225 */
228         OP_FTSUID,      /* 226 */
229         OP_FTSGID,      /* 227 */
230         OP_FTSVTX,      /* 228 */
231         OP_FTTTY,       /* 229 */
232         OP_FTTEXT,      /* 230 */
233         OP_FTBINARY,    /* 231 */
234         OP_CHDIR,       /* 232 */
235         OP_CHOWN,       /* 233 */
236         OP_CHROOT,      /* 234 */
237         OP_UNLINK,      /* 235 */
238         OP_CHMOD,       /* 236 */
239         OP_UTIME,       /* 237 */
240         OP_RENAME,      /* 238 */
241         OP_LINK,        /* 239 */
242         OP_SYMLINK,     /* 240 */
243         OP_READLINK,    /* 241 */
244         OP_MKDIR,       /* 242 */
245         OP_RMDIR,       /* 243 */
246         OP_OPEN_DIR,    /* 244 */
247         OP_READDIR,     /* 245 */
248         OP_TELLDIR,     /* 246 */
249         OP_SEEKDIR,     /* 247 */
250         OP_REWINDDIR,   /* 248 */
251         OP_CLOSEDIR,    /* 249 */
252         OP_FORK,        /* 250 */
253         OP_WAIT,        /* 251 */
254         OP_WAITPID,     /* 252 */
255         OP_SYSTEM,      /* 253 */
256         OP_EXEC,        /* 254 */
257         OP_KILL,        /* 255 */
258         OP_GETPPID,     /* 256 */
259         OP_GETPGRP,     /* 257 */
260         OP_SETPGRP,     /* 258 */
261         OP_GETPRIORITY, /* 259 */
262         OP_SETPRIORITY, /* 260 */
263         OP_TIME,        /* 261 */
264         OP_TMS,         /* 262 */
265         OP_LOCALTIME,   /* 263 */
266         OP_GMTIME,      /* 264 */
267         OP_ALARM,       /* 265 */
268         OP_SLEEP,       /* 266 */
269         OP_SHMGET,      /* 267 */
270         OP_SHMCTL,      /* 268 */
271         OP_SHMREAD,     /* 269 */
272         OP_SHMWRITE,    /* 270 */
273         OP_MSGGET,      /* 271 */
274         OP_MSGCTL,      /* 272 */
275         OP_MSGSND,      /* 273 */
276         OP_MSGRCV,      /* 274 */
277         OP_SEMGET,      /* 275 */
278         OP_SEMCTL,      /* 276 */
279         OP_SEMOP,       /* 277 */
280         OP_REQUIRE,     /* 278 */
281         OP_DOFILE,      /* 279 */
282         OP_ENTEREVAL,   /* 280 */
283         OP_LEAVEEVAL,   /* 281 */
284         OP_EVALONCE,    /* 282 */
285         OP_ENTERTRY,    /* 283 */
286         OP_LEAVETRY,    /* 284 */
287         OP_GHBYNAME,    /* 285 */
288         OP_GHBYADDR,    /* 286 */
289         OP_GHOSTENT,    /* 287 */
290         OP_GNBYNAME,    /* 288 */
291         OP_GNBYADDR,    /* 289 */
292         OP_GNETENT,     /* 290 */
293         OP_GPBYNAME,    /* 291 */
294         OP_GPBYNUMBER,  /* 292 */
295         OP_GPROTOENT,   /* 293 */
296         OP_GSBYNAME,    /* 294 */
297         OP_GSBYPORT,    /* 295 */
298         OP_GSERVENT,    /* 296 */
299         OP_SHOSTENT,    /* 297 */
300         OP_SNETENT,     /* 298 */
301         OP_SPROTOENT,   /* 299 */
302         OP_SSERVENT,    /* 300 */
303         OP_EHOSTENT,    /* 301 */
304         OP_ENETENT,     /* 302 */
305         OP_EPROTOENT,   /* 303 */
306         OP_ESERVENT,    /* 304 */
307         OP_GPWNAM,      /* 305 */
308         OP_GPWUID,      /* 306 */
309         OP_GPWENT,      /* 307 */
310         OP_SPWENT,      /* 308 */
311         OP_EPWENT,      /* 309 */
312         OP_GGRNAM,      /* 310 */
313         OP_GGRGID,      /* 311 */
314         OP_GGRENT,      /* 312 */
315         OP_SGRENT,      /* 313 */
316         OP_EGRENT,      /* 314 */
317         OP_GETLOGIN,    /* 315 */
318         OP_SYSCALL,     /* 316 */
319 } opcode;
320
321 #define MAXO 317
322
323 #ifndef DOINIT
324 extern char *op_name[];
325 #else
326 char *op_name[] = {
327         "null operation",
328         "stub",
329         "scalar",
330         "pushmark",
331         "wantarray",
332         "constant item",
333         "interpreted string",
334         "scalar variable",
335         "glob value",
336         "private variable",
337         "private array",
338         "private hash",
339         "private something",
340         "push regexp",
341         "ref-to-glob cast",
342         "scalar value length",
343         "ref-to-scalar cast",
344         "array length",
345         "subroutine reference",
346         "reference constructor",
347         "reference-type operator",
348         "bless",
349         "backticks",
350         "glob",
351         "<HANDLE>",
352         "append I/O operator",
353         "regexp comp once",
354         "regexp compilation",
355         "pattern match",
356         "substitution",
357         "substitution cont",
358         "character translation",
359         "scalar assignment",
360         "list assignment",
361         "scalar chop",
362         "chop",
363         "defined operator",
364         "undef operator",
365         "study",
366         "preincrement",
367         "predecrement",
368         "postincrement",
369         "postdecrement",
370         "exponentiation",
371         "multiplication",
372         "division",
373         "modulus",
374         "repeat",
375         "addition",
376         "integer addition",
377         "subtraction",
378         "concatenation",
379         "left bitshift",
380         "right bitshift",
381         "numeric lt",
382         "numeric gt",
383         "numeric le",
384         "numeric ge",
385         "numeric eq",
386         "numeric ne",
387         "spaceship",
388         "string lt",
389         "string gt",
390         "string le",
391         "string ge",
392         "string eq",
393         "string ne",
394         "string comparison",
395         "bit and",
396         "xor",
397         "bit or",
398         "negate",
399         "not",
400         "1's complement",
401         "atan2",
402         "sin",
403         "cos",
404         "rand",
405         "srand",
406         "exp",
407         "log",
408         "sqrt",
409         "int",
410         "hex",
411         "oct",
412         "abs",
413         "length",
414         "substr",
415         "vec",
416         "index",
417         "rindex",
418         "sprintf",
419         "formline",
420         "ord",
421         "chr",
422         "crypt",
423         "upper case first",
424         "lower case first",
425         "upper case",
426         "lower case",
427         "array deref",
428         "known array element",
429         "array element",
430         "array slice",
431         "each",
432         "values",
433         "keys",
434         "delete",
435         "associative array deref",
436         "associative array elem",
437         "associative array slice",
438         "unpack",
439         "pack",
440         "split",
441         "join",
442         "list",
443         "list slice",
444         "anonymous list",
445         "anonymous hash",
446         "splice",
447         "push",
448         "pop",
449         "shift",
450         "unshift",
451         "sort",
452         "reverse",
453         "grep",
454         "grep iterator",
455         "flipflop",
456         "range (or flip)",
457         "range (or flop)",
458         "logical and",
459         "logical or",
460         "conditional expression",
461         "logical and assignment",
462         "logical or assignment",
463         "method lookup",
464         "subroutine entry",
465         "subroutine exit",
466         "caller",
467         "warn",
468         "die",
469         "reset",
470         "line sequence",
471         "next statement",
472         "debug next statement",
473         "unstack",
474         "block entry",
475         "block exit",
476         "block",
477         "foreach loop entry",
478         "foreach loop iterator",
479         "loop entry",
480         "loop exit",
481         "return",
482         "last",
483         "next",
484         "redo",
485         "dump",
486         "goto",
487         "exit",
488         "numeric switch",
489         "character switch",
490         "open",
491         "close",
492         "pipe",
493         "fileno",
494         "umask",
495         "binmode",
496         "tie",
497         "untie",
498         "dbmopen",
499         "dbmclose",
500         "select system call",
501         "select",
502         "getc",
503         "read",
504         "write",
505         "write exit",
506         "printf",
507         "print",
508         "sysread",
509         "syswrite",
510         "send",
511         "recv",
512         "eof",
513         "tell",
514         "seek",
515         "truncate",
516         "fcntl",
517         "ioctl",
518         "flock",
519         "socket",
520         "socketpair",
521         "bind",
522         "connect",
523         "listen",
524         "accept",
525         "shutdown",
526         "getsockopt",
527         "setsockopt",
528         "getsockname",
529         "getpeername",
530         "lstat",
531         "stat",
532         "-R",
533         "-W",
534         "-X",
535         "-r",
536         "-w",
537         "-x",
538         "-e",
539         "-O",
540         "-o",
541         "-z",
542         "-s",
543         "-M",
544         "-A",
545         "-C",
546         "-S",
547         "-c",
548         "-b",
549         "-f",
550         "-d",
551         "-p",
552         "-l",
553         "-u",
554         "-g",
555         "-k",
556         "-t",
557         "-T",
558         "-B",
559         "chdir",
560         "chown",
561         "chroot",
562         "unlink",
563         "chmod",
564         "utime",
565         "rename",
566         "link",
567         "symlink",
568         "readlink",
569         "mkdir",
570         "rmdir",
571         "opendir",
572         "readdir",
573         "telldir",
574         "seekdir",
575         "rewinddir",
576         "closedir",
577         "fork",
578         "wait",
579         "waitpid",
580         "system",
581         "exec",
582         "kill",
583         "getppid",
584         "getpgrp",
585         "setpgrp",
586         "getpriority",
587         "setpriority",
588         "time",
589         "times",
590         "localtime",
591         "gmtime",
592         "alarm",
593         "sleep",
594         "shmget",
595         "shmctl",
596         "shmread",
597         "shmwrite",
598         "msgget",
599         "msgctl",
600         "msgsnd",
601         "msgrcv",
602         "semget",
603         "semctl",
604         "semop",
605         "require",
606         "do 'file'",
607         "eval string",
608         "eval exit",
609         "eval constant string",
610         "eval block",
611         "eval block exit",
612         "gethostbyname",
613         "gethostbyaddr",
614         "gethostent",
615         "getnetbyname",
616         "getnetbyaddr",
617         "getnetent",
618         "getprotobyname",
619         "getprotobynumber",
620         "getprotoent",
621         "getservbyname",
622         "getservbyport",
623         "getservent",
624         "sethostent",
625         "setnetent",
626         "setprotoent",
627         "setservent",
628         "endhostent",
629         "endnetent",
630         "endprotoent",
631         "endservent",
632         "getpwnam",
633         "getpwuid",
634         "getpwent",
635         "setpwent",
636         "endpwent",
637         "getgrnam",
638         "getgrgid",
639         "getgrent",
640         "setgrent",
641         "endgrent",
642         "getlogin",
643         "syscall",
644 };
645 #endif
646
647 OP *    ck_chop         P((OP* op));
648 OP *    ck_concat       P((OP* op));
649 OP *    ck_eof          P((OP* op));
650 OP *    ck_eval         P((OP* op));
651 OP *    ck_exec         P((OP* op));
652 OP *    ck_formline     P((OP* op));
653 OP *    ck_ftst         P((OP* op));
654 OP *    ck_fun          P((OP* op));
655 OP *    ck_glob         P((OP* op));
656 OP *    ck_grep         P((OP* op));
657 OP *    ck_index        P((OP* op));
658 OP *    ck_lengthconst  P((OP* op));
659 OP *    ck_lfun         P((OP* op));
660 OP *    ck_listiob      P((OP* op));
661 OP *    ck_match        P((OP* op));
662 OP *    ck_null         P((OP* op));
663 OP *    ck_repeat       P((OP* op));
664 OP *    ck_require      P((OP* op));
665 OP *    ck_rfun         P((OP* op));
666 OP *    ck_rvconst      P((OP* op));
667 OP *    ck_select       P((OP* op));
668 OP *    ck_shift        P((OP* op));
669 OP *    ck_sort         P((OP* op));
670 OP *    ck_split        P((OP* op));
671 OP *    ck_subr         P((OP* op));
672 OP *    ck_svconst      P((OP* op));
673 OP *    ck_trunc        P((OP* op));
674
675 OP *    pp_null         P((void));
676 OP *    pp_stub         P((void));
677 OP *    pp_scalar       P((void));
678 OP *    pp_pushmark     P((void));
679 OP *    pp_wantarray    P((void));
680 OP *    pp_const        P((void));
681 OP *    pp_interp       P((void));
682 OP *    pp_gvsv         P((void));
683 OP *    pp_gv           P((void));
684 OP *    pp_padsv        P((void));
685 OP *    pp_padav        P((void));
686 OP *    pp_padhv        P((void));
687 OP *    pp_padany       P((void));
688 OP *    pp_pushre       P((void));
689 OP *    pp_rv2gv        P((void));
690 OP *    pp_sv2len       P((void));
691 OP *    pp_rv2sv        P((void));
692 OP *    pp_av2arylen    P((void));
693 OP *    pp_rv2cv        P((void));
694 OP *    pp_refgen       P((void));
695 OP *    pp_ref          P((void));
696 OP *    pp_bless        P((void));
697 OP *    pp_backtick     P((void));
698 OP *    pp_glob         P((void));
699 OP *    pp_readline     P((void));
700 OP *    pp_rcatline     P((void));
701 OP *    pp_regcmaybe    P((void));
702 OP *    pp_regcomp      P((void));
703 OP *    pp_match        P((void));
704 OP *    pp_subst        P((void));
705 OP *    pp_substcont    P((void));
706 OP *    pp_trans        P((void));
707 OP *    pp_sassign      P((void));
708 OP *    pp_aassign      P((void));
709 OP *    pp_schop        P((void));
710 OP *    pp_chop         P((void));
711 OP *    pp_defined      P((void));
712 OP *    pp_undef        P((void));
713 OP *    pp_study        P((void));
714 OP *    pp_preinc       P((void));
715 OP *    pp_predec       P((void));
716 OP *    pp_postinc      P((void));
717 OP *    pp_postdec      P((void));
718 OP *    pp_pow          P((void));
719 OP *    pp_multiply     P((void));
720 OP *    pp_divide       P((void));
721 OP *    pp_modulo       P((void));
722 OP *    pp_repeat       P((void));
723 OP *    pp_add          P((void));
724 OP *    pp_intadd       P((void));
725 OP *    pp_subtract     P((void));
726 OP *    pp_concat       P((void));
727 OP *    pp_left_shift   P((void));
728 OP *    pp_right_shift  P((void));
729 OP *    pp_lt           P((void));
730 OP *    pp_gt           P((void));
731 OP *    pp_le           P((void));
732 OP *    pp_ge           P((void));
733 OP *    pp_eq           P((void));
734 OP *    pp_ne           P((void));
735 OP *    pp_ncmp         P((void));
736 OP *    pp_slt          P((void));
737 OP *    pp_sgt          P((void));
738 OP *    pp_sle          P((void));
739 OP *    pp_sge          P((void));
740 OP *    pp_seq          P((void));
741 OP *    pp_sne          P((void));
742 OP *    pp_scmp         P((void));
743 OP *    pp_bit_and      P((void));
744 OP *    pp_xor          P((void));
745 OP *    pp_bit_or       P((void));
746 OP *    pp_negate       P((void));
747 OP *    pp_not          P((void));
748 OP *    pp_complement   P((void));
749 OP *    pp_atan2        P((void));
750 OP *    pp_sin          P((void));
751 OP *    pp_cos          P((void));
752 OP *    pp_rand         P((void));
753 OP *    pp_srand        P((void));
754 OP *    pp_exp          P((void));
755 OP *    pp_log          P((void));
756 OP *    pp_sqrt         P((void));
757 OP *    pp_int          P((void));
758 OP *    pp_hex          P((void));
759 OP *    pp_oct          P((void));
760 OP *    pp_abs          P((void));
761 OP *    pp_length       P((void));
762 OP *    pp_substr       P((void));
763 OP *    pp_vec          P((void));
764 OP *    pp_index        P((void));
765 OP *    pp_rindex       P((void));
766 OP *    pp_sprintf      P((void));
767 OP *    pp_formline     P((void));
768 OP *    pp_ord          P((void));
769 OP *    pp_chr          P((void));
770 OP *    pp_crypt        P((void));
771 OP *    pp_ucfirst      P((void));
772 OP *    pp_lcfirst      P((void));
773 OP *    pp_uc           P((void));
774 OP *    pp_lc           P((void));
775 OP *    pp_rv2av        P((void));
776 OP *    pp_aelemfast    P((void));
777 OP *    pp_aelem        P((void));
778 OP *    pp_aslice       P((void));
779 OP *    pp_each         P((void));
780 OP *    pp_values       P((void));
781 OP *    pp_keys         P((void));
782 OP *    pp_delete       P((void));
783 OP *    pp_rv2hv        P((void));
784 OP *    pp_helem        P((void));
785 OP *    pp_hslice       P((void));
786 OP *    pp_unpack       P((void));
787 OP *    pp_pack         P((void));
788 OP *    pp_split        P((void));
789 OP *    pp_join         P((void));
790 OP *    pp_list         P((void));
791 OP *    pp_lslice       P((void));
792 OP *    pp_anonlist     P((void));
793 OP *    pp_anonhash     P((void));
794 OP *    pp_splice       P((void));
795 OP *    pp_push         P((void));
796 OP *    pp_pop          P((void));
797 OP *    pp_shift        P((void));
798 OP *    pp_unshift      P((void));
799 OP *    pp_sort         P((void));
800 OP *    pp_reverse      P((void));
801 OP *    pp_grepstart    P((void));
802 OP *    pp_grepwhile    P((void));
803 OP *    pp_range        P((void));
804 OP *    pp_flip         P((void));
805 OP *    pp_flop         P((void));
806 OP *    pp_and          P((void));
807 OP *    pp_or           P((void));
808 OP *    pp_cond_expr    P((void));
809 OP *    pp_andassign    P((void));
810 OP *    pp_orassign     P((void));
811 OP *    pp_method       P((void));
812 OP *    pp_entersubr    P((void));
813 OP *    pp_leavesubr    P((void));
814 OP *    pp_caller       P((void));
815 OP *    pp_warn         P((void));
816 OP *    pp_die          P((void));
817 OP *    pp_reset        P((void));
818 OP *    pp_lineseq      P((void));
819 OP *    pp_nextstate    P((void));
820 OP *    pp_dbstate      P((void));
821 OP *    pp_unstack      P((void));
822 OP *    pp_enter        P((void));
823 OP *    pp_leave        P((void));
824 OP *    pp_scope        P((void));
825 OP *    pp_enteriter    P((void));
826 OP *    pp_iter         P((void));
827 OP *    pp_enterloop    P((void));
828 OP *    pp_leaveloop    P((void));
829 OP *    pp_return       P((void));
830 OP *    pp_last         P((void));
831 OP *    pp_next         P((void));
832 OP *    pp_redo         P((void));
833 OP *    pp_dump         P((void));
834 OP *    pp_goto         P((void));
835 OP *    pp_exit         P((void));
836 OP *    pp_nswitch      P((void));
837 OP *    pp_cswitch      P((void));
838 OP *    pp_open         P((void));
839 OP *    pp_close        P((void));
840 OP *    pp_pipe_op      P((void));
841 OP *    pp_fileno       P((void));
842 OP *    pp_umask        P((void));
843 OP *    pp_binmode      P((void));
844 OP *    pp_tie          P((void));
845 OP *    pp_untie        P((void));
846 OP *    pp_dbmopen      P((void));
847 OP *    pp_dbmclose     P((void));
848 OP *    pp_sselect      P((void));
849 OP *    pp_select       P((void));
850 OP *    pp_getc         P((void));
851 OP *    pp_read         P((void));
852 OP *    pp_enterwrite   P((void));
853 OP *    pp_leavewrite   P((void));
854 OP *    pp_prtf         P((void));
855 OP *    pp_print        P((void));
856 OP *    pp_sysread      P((void));
857 OP *    pp_syswrite     P((void));
858 OP *    pp_send         P((void));
859 OP *    pp_recv         P((void));
860 OP *    pp_eof          P((void));
861 OP *    pp_tell         P((void));
862 OP *    pp_seek         P((void));
863 OP *    pp_truncate     P((void));
864 OP *    pp_fcntl        P((void));
865 OP *    pp_ioctl        P((void));
866 OP *    pp_flock        P((void));
867 OP *    pp_socket       P((void));
868 OP *    pp_sockpair     P((void));
869 OP *    pp_bind         P((void));
870 OP *    pp_connect      P((void));
871 OP *    pp_listen       P((void));
872 OP *    pp_accept       P((void));
873 OP *    pp_shutdown     P((void));
874 OP *    pp_gsockopt     P((void));
875 OP *    pp_ssockopt     P((void));
876 OP *    pp_getsockname  P((void));
877 OP *    pp_getpeername  P((void));
878 OP *    pp_lstat        P((void));
879 OP *    pp_stat         P((void));
880 OP *    pp_ftrread      P((void));
881 OP *    pp_ftrwrite     P((void));
882 OP *    pp_ftrexec      P((void));
883 OP *    pp_fteread      P((void));
884 OP *    pp_ftewrite     P((void));
885 OP *    pp_fteexec      P((void));
886 OP *    pp_ftis         P((void));
887 OP *    pp_fteowned     P((void));
888 OP *    pp_ftrowned     P((void));
889 OP *    pp_ftzero       P((void));
890 OP *    pp_ftsize       P((void));
891 OP *    pp_ftmtime      P((void));
892 OP *    pp_ftatime      P((void));
893 OP *    pp_ftctime      P((void));
894 OP *    pp_ftsock       P((void));
895 OP *    pp_ftchr        P((void));
896 OP *    pp_ftblk        P((void));
897 OP *    pp_ftfile       P((void));
898 OP *    pp_ftdir        P((void));
899 OP *    pp_ftpipe       P((void));
900 OP *    pp_ftlink       P((void));
901 OP *    pp_ftsuid       P((void));
902 OP *    pp_ftsgid       P((void));
903 OP *    pp_ftsvtx       P((void));
904 OP *    pp_fttty        P((void));
905 OP *    pp_fttext       P((void));
906 OP *    pp_ftbinary     P((void));
907 OP *    pp_chdir        P((void));
908 OP *    pp_chown        P((void));
909 OP *    pp_chroot       P((void));
910 OP *    pp_unlink       P((void));
911 OP *    pp_chmod        P((void));
912 OP *    pp_utime        P((void));
913 OP *    pp_rename       P((void));
914 OP *    pp_link         P((void));
915 OP *    pp_symlink      P((void));
916 OP *    pp_readlink     P((void));
917 OP *    pp_mkdir        P((void));
918 OP *    pp_rmdir        P((void));
919 OP *    pp_open_dir     P((void));
920 OP *    pp_readdir      P((void));
921 OP *    pp_telldir      P((void));
922 OP *    pp_seekdir      P((void));
923 OP *    pp_rewinddir    P((void));
924 OP *    pp_closedir     P((void));
925 OP *    pp_fork         P((void));
926 OP *    pp_wait         P((void));
927 OP *    pp_waitpid      P((void));
928 OP *    pp_system       P((void));
929 OP *    pp_exec         P((void));
930 OP *    pp_kill         P((void));
931 OP *    pp_getppid      P((void));
932 OP *    pp_getpgrp      P((void));
933 OP *    pp_setpgrp      P((void));
934 OP *    pp_getpriority  P((void));
935 OP *    pp_setpriority  P((void));
936 OP *    pp_time         P((void));
937 OP *    pp_tms          P((void));
938 OP *    pp_localtime    P((void));
939 OP *    pp_gmtime       P((void));
940 OP *    pp_alarm        P((void));
941 OP *    pp_sleep        P((void));
942 OP *    pp_shmget       P((void));
943 OP *    pp_shmctl       P((void));
944 OP *    pp_shmread      P((void));
945 OP *    pp_shmwrite     P((void));
946 OP *    pp_msgget       P((void));
947 OP *    pp_msgctl       P((void));
948 OP *    pp_msgsnd       P((void));
949 OP *    pp_msgrcv       P((void));
950 OP *    pp_semget       P((void));
951 OP *    pp_semctl       P((void));
952 OP *    pp_semop        P((void));
953 OP *    pp_require      P((void));
954 OP *    pp_dofile       P((void));
955 OP *    pp_entereval    P((void));
956 OP *    pp_leaveeval    P((void));
957 OP *    pp_evalonce     P((void));
958 OP *    pp_entertry     P((void));
959 OP *    pp_leavetry     P((void));
960 OP *    pp_ghbyname     P((void));
961 OP *    pp_ghbyaddr     P((void));
962 OP *    pp_ghostent     P((void));
963 OP *    pp_gnbyname     P((void));
964 OP *    pp_gnbyaddr     P((void));
965 OP *    pp_gnetent      P((void));
966 OP *    pp_gpbyname     P((void));
967 OP *    pp_gpbynumber   P((void));
968 OP *    pp_gprotoent    P((void));
969 OP *    pp_gsbyname     P((void));
970 OP *    pp_gsbyport     P((void));
971 OP *    pp_gservent     P((void));
972 OP *    pp_shostent     P((void));
973 OP *    pp_snetent      P((void));
974 OP *    pp_sprotoent    P((void));
975 OP *    pp_sservent     P((void));
976 OP *    pp_ehostent     P((void));
977 OP *    pp_enetent      P((void));
978 OP *    pp_eprotoent    P((void));
979 OP *    pp_eservent     P((void));
980 OP *    pp_gpwnam       P((void));
981 OP *    pp_gpwuid       P((void));
982 OP *    pp_gpwent       P((void));
983 OP *    pp_spwent       P((void));
984 OP *    pp_epwent       P((void));
985 OP *    pp_ggrnam       P((void));
986 OP *    pp_ggrgid       P((void));
987 OP *    pp_ggrent       P((void));
988 OP *    pp_sgrent       P((void));
989 OP *    pp_egrent       P((void));
990 OP *    pp_getlogin     P((void));
991 OP *    pp_syscall      P((void));
992
993 #ifndef DOINIT
994 extern OP * (*ppaddr[])();
995 #else
996 OP * (*ppaddr[])() = {
997         pp_null,
998         pp_stub,
999         pp_scalar,
1000         pp_pushmark,
1001         pp_wantarray,
1002         pp_const,
1003         pp_interp,
1004         pp_gvsv,
1005         pp_gv,
1006         pp_padsv,
1007         pp_padav,
1008         pp_padhv,
1009         pp_padany,
1010         pp_pushre,
1011         pp_rv2gv,
1012         pp_sv2len,
1013         pp_rv2sv,
1014         pp_av2arylen,
1015         pp_rv2cv,
1016         pp_refgen,
1017         pp_ref,
1018         pp_bless,
1019         pp_backtick,
1020         pp_glob,
1021         pp_readline,
1022         pp_rcatline,
1023         pp_regcmaybe,
1024         pp_regcomp,
1025         pp_match,
1026         pp_subst,
1027         pp_substcont,
1028         pp_trans,
1029         pp_sassign,
1030         pp_aassign,
1031         pp_schop,
1032         pp_chop,
1033         pp_defined,
1034         pp_undef,
1035         pp_study,
1036         pp_preinc,
1037         pp_predec,
1038         pp_postinc,
1039         pp_postdec,
1040         pp_pow,
1041         pp_multiply,
1042         pp_divide,
1043         pp_modulo,
1044         pp_repeat,
1045         pp_add,
1046         pp_intadd,
1047         pp_subtract,
1048         pp_concat,
1049         pp_left_shift,
1050         pp_right_shift,
1051         pp_lt,
1052         pp_gt,
1053         pp_le,
1054         pp_ge,
1055         pp_eq,
1056         pp_ne,
1057         pp_ncmp,
1058         pp_slt,
1059         pp_sgt,
1060         pp_sle,
1061         pp_sge,
1062         pp_seq,
1063         pp_sne,
1064         pp_scmp,
1065         pp_bit_and,
1066         pp_xor,
1067         pp_bit_or,
1068         pp_negate,
1069         pp_not,
1070         pp_complement,
1071         pp_atan2,
1072         pp_sin,
1073         pp_cos,
1074         pp_rand,
1075         pp_srand,
1076         pp_exp,
1077         pp_log,
1078         pp_sqrt,
1079         pp_int,
1080         pp_hex,
1081         pp_oct,
1082         pp_abs,
1083         pp_length,
1084         pp_substr,
1085         pp_vec,
1086         pp_index,
1087         pp_rindex,
1088         pp_sprintf,
1089         pp_formline,
1090         pp_ord,
1091         pp_chr,
1092         pp_crypt,
1093         pp_ucfirst,
1094         pp_lcfirst,
1095         pp_uc,
1096         pp_lc,
1097         pp_rv2av,
1098         pp_aelemfast,
1099         pp_aelem,
1100         pp_aslice,
1101         pp_each,
1102         pp_values,
1103         pp_keys,
1104         pp_delete,
1105         pp_rv2hv,
1106         pp_helem,
1107         pp_hslice,
1108         pp_unpack,
1109         pp_pack,
1110         pp_split,
1111         pp_join,
1112         pp_list,
1113         pp_lslice,
1114         pp_anonlist,
1115         pp_anonhash,
1116         pp_splice,
1117         pp_push,
1118         pp_pop,
1119         pp_shift,
1120         pp_unshift,
1121         pp_sort,
1122         pp_reverse,
1123         pp_grepstart,
1124         pp_grepwhile,
1125         pp_range,
1126         pp_flip,
1127         pp_flop,
1128         pp_and,
1129         pp_or,
1130         pp_cond_expr,
1131         pp_andassign,
1132         pp_orassign,
1133         pp_method,
1134         pp_entersubr,
1135         pp_leavesubr,
1136         pp_caller,
1137         pp_warn,
1138         pp_die,
1139         pp_reset,
1140         pp_lineseq,
1141         pp_nextstate,
1142         pp_dbstate,
1143         pp_unstack,
1144         pp_enter,
1145         pp_leave,
1146         pp_scope,
1147         pp_enteriter,
1148         pp_iter,
1149         pp_enterloop,
1150         pp_leaveloop,
1151         pp_return,
1152         pp_last,
1153         pp_next,
1154         pp_redo,
1155         pp_dump,
1156         pp_goto,
1157         pp_exit,
1158         pp_nswitch,
1159         pp_cswitch,
1160         pp_open,
1161         pp_close,
1162         pp_pipe_op,
1163         pp_fileno,
1164         pp_umask,
1165         pp_binmode,
1166         pp_tie,
1167         pp_untie,
1168         pp_dbmopen,
1169         pp_dbmclose,
1170         pp_sselect,
1171         pp_select,
1172         pp_getc,
1173         pp_read,
1174         pp_enterwrite,
1175         pp_leavewrite,
1176         pp_prtf,
1177         pp_print,
1178         pp_sysread,
1179         pp_syswrite,
1180         pp_send,
1181         pp_recv,
1182         pp_eof,
1183         pp_tell,
1184         pp_seek,
1185         pp_truncate,
1186         pp_fcntl,
1187         pp_ioctl,
1188         pp_flock,
1189         pp_socket,
1190         pp_sockpair,
1191         pp_bind,
1192         pp_connect,
1193         pp_listen,
1194         pp_accept,
1195         pp_shutdown,
1196         pp_gsockopt,
1197         pp_ssockopt,
1198         pp_getsockname,
1199         pp_getpeername,
1200         pp_lstat,
1201         pp_stat,
1202         pp_ftrread,
1203         pp_ftrwrite,
1204         pp_ftrexec,
1205         pp_fteread,
1206         pp_ftewrite,
1207         pp_fteexec,
1208         pp_ftis,
1209         pp_fteowned,
1210         pp_ftrowned,
1211         pp_ftzero,
1212         pp_ftsize,
1213         pp_ftmtime,
1214         pp_ftatime,
1215         pp_ftctime,
1216         pp_ftsock,
1217         pp_ftchr,
1218         pp_ftblk,
1219         pp_ftfile,
1220         pp_ftdir,
1221         pp_ftpipe,
1222         pp_ftlink,
1223         pp_ftsuid,
1224         pp_ftsgid,
1225         pp_ftsvtx,
1226         pp_fttty,
1227         pp_fttext,
1228         pp_ftbinary,
1229         pp_chdir,
1230         pp_chown,
1231         pp_chroot,
1232         pp_unlink,
1233         pp_chmod,
1234         pp_utime,
1235         pp_rename,
1236         pp_link,
1237         pp_symlink,
1238         pp_readlink,
1239         pp_mkdir,
1240         pp_rmdir,
1241         pp_open_dir,
1242         pp_readdir,
1243         pp_telldir,
1244         pp_seekdir,
1245         pp_rewinddir,
1246         pp_closedir,
1247         pp_fork,
1248         pp_wait,
1249         pp_waitpid,
1250         pp_system,
1251         pp_exec,
1252         pp_kill,
1253         pp_getppid,
1254         pp_getpgrp,
1255         pp_setpgrp,
1256         pp_getpriority,
1257         pp_setpriority,
1258         pp_time,
1259         pp_tms,
1260         pp_localtime,
1261         pp_gmtime,
1262         pp_alarm,
1263         pp_sleep,
1264         pp_shmget,
1265         pp_shmctl,
1266         pp_shmread,
1267         pp_shmwrite,
1268         pp_msgget,
1269         pp_msgctl,
1270         pp_msgsnd,
1271         pp_msgrcv,
1272         pp_semget,
1273         pp_semctl,
1274         pp_semop,
1275         pp_require,
1276         pp_dofile,
1277         pp_entereval,
1278         pp_leaveeval,
1279         pp_evalonce,
1280         pp_entertry,
1281         pp_leavetry,
1282         pp_ghbyname,
1283         pp_ghbyaddr,
1284         pp_ghostent,
1285         pp_gnbyname,
1286         pp_gnbyaddr,
1287         pp_gnetent,
1288         pp_gpbyname,
1289         pp_gpbynumber,
1290         pp_gprotoent,
1291         pp_gsbyname,
1292         pp_gsbyport,
1293         pp_gservent,
1294         pp_shostent,
1295         pp_snetent,
1296         pp_sprotoent,
1297         pp_sservent,
1298         pp_ehostent,
1299         pp_enetent,
1300         pp_eprotoent,
1301         pp_eservent,
1302         pp_gpwnam,
1303         pp_gpwuid,
1304         pp_gpwent,
1305         pp_spwent,
1306         pp_epwent,
1307         pp_ggrnam,
1308         pp_ggrgid,
1309         pp_ggrent,
1310         pp_sgrent,
1311         pp_egrent,
1312         pp_getlogin,
1313         pp_syscall,
1314 };
1315 #endif
1316
1317 #ifndef DOINIT
1318 extern OP * (*check[])();
1319 #else
1320 OP * (*check[])() = {
1321         ck_null,        /* null */
1322         ck_null,        /* stub */
1323         ck_fun,         /* scalar */
1324         ck_null,        /* pushmark */
1325         ck_null,        /* wantarray */
1326         ck_svconst,     /* const */
1327         ck_null,        /* interp */
1328         ck_null,        /* gvsv */
1329         ck_null,        /* gv */
1330         ck_null,        /* padsv */
1331         ck_null,        /* padav */
1332         ck_null,        /* padhv */
1333         ck_null,        /* padany */
1334         ck_null,        /* pushre */
1335         ck_rvconst,     /* rv2gv */
1336         ck_null,        /* sv2len */
1337         ck_rvconst,     /* rv2sv */
1338         ck_null,        /* av2arylen */
1339         ck_rvconst,     /* rv2cv */
1340         ck_null,        /* refgen */
1341         ck_fun,         /* ref */
1342         ck_fun,         /* bless */
1343         ck_null,        /* backtick */
1344         ck_glob,        /* glob */
1345         ck_null,        /* readline */
1346         ck_null,        /* rcatline */
1347         ck_fun,         /* regcmaybe */
1348         ck_null,        /* regcomp */
1349         ck_match,       /* match */
1350         ck_null,        /* subst */
1351         ck_null,        /* substcont */
1352         ck_null,        /* trans */
1353         ck_null,        /* sassign */
1354         ck_null,        /* aassign */
1355         ck_null,        /* schop */
1356         ck_chop,        /* chop */
1357         ck_rfun,        /* defined */
1358         ck_lfun,        /* undef */
1359         ck_fun,         /* study */
1360         ck_lfun,        /* preinc */
1361         ck_lfun,        /* predec */
1362         ck_lfun,        /* postinc */
1363         ck_lfun,        /* postdec */
1364         ck_null,        /* pow */
1365         ck_null,        /* multiply */
1366         ck_null,        /* divide */
1367         ck_null,        /* modulo */
1368         ck_repeat,      /* repeat */
1369         ck_null,        /* add */
1370         ck_null,        /* intadd */
1371         ck_null,        /* subtract */
1372         ck_concat,      /* concat */
1373         ck_null,        /* left_shift */
1374         ck_null,        /* right_shift */
1375         ck_null,        /* lt */
1376         ck_null,        /* gt */
1377         ck_null,        /* le */
1378         ck_null,        /* ge */
1379         ck_null,        /* eq */
1380         ck_null,        /* ne */
1381         ck_null,        /* ncmp */
1382         ck_null,        /* slt */
1383         ck_null,        /* sgt */
1384         ck_null,        /* sle */
1385         ck_null,        /* sge */
1386         ck_null,        /* seq */
1387         ck_null,        /* sne */
1388         ck_null,        /* scmp */
1389         ck_null,        /* bit_and */
1390         ck_null,        /* xor */
1391         ck_null,        /* bit_or */
1392         ck_null,        /* negate */
1393         ck_null,        /* not */
1394         ck_null,        /* complement */
1395         ck_fun,         /* atan2 */
1396         ck_fun,         /* sin */
1397         ck_fun,         /* cos */
1398         ck_fun,         /* rand */
1399         ck_fun,         /* srand */
1400         ck_fun,         /* exp */
1401         ck_fun,         /* log */
1402         ck_fun,         /* sqrt */
1403         ck_fun,         /* int */
1404         ck_fun,         /* hex */
1405         ck_fun,         /* oct */
1406         ck_fun,         /* abs */
1407         ck_lengthconst, /* length */
1408         ck_fun,         /* substr */
1409         ck_fun,         /* vec */
1410         ck_index,       /* index */
1411         ck_index,       /* rindex */
1412         ck_fun,         /* sprintf */
1413         ck_formline,    /* formline */
1414         ck_fun,         /* ord */
1415         ck_fun,         /* chr */
1416         ck_fun,         /* crypt */
1417         ck_fun,         /* ucfirst */
1418         ck_fun,         /* lcfirst */
1419         ck_fun,         /* uc */
1420         ck_fun,         /* lc */
1421         ck_rvconst,     /* rv2av */
1422         ck_null,        /* aelemfast */
1423         ck_null,        /* aelem */
1424         ck_null,        /* aslice */
1425         ck_fun,         /* each */
1426         ck_fun,         /* values */
1427         ck_fun,         /* keys */
1428         ck_null,        /* delete */
1429         ck_rvconst,     /* rv2hv */
1430         ck_null,        /* helem */
1431         ck_null,        /* hslice */
1432         ck_fun,         /* unpack */
1433         ck_fun,         /* pack */
1434         ck_split,       /* split */
1435         ck_fun,         /* join */
1436         ck_null,        /* list */
1437         ck_null,        /* lslice */
1438         ck_null,        /* anonlist */
1439         ck_null,        /* anonhash */
1440         ck_fun,         /* splice */
1441         ck_fun,         /* push */
1442         ck_shift,       /* pop */
1443         ck_shift,       /* shift */
1444         ck_fun,         /* unshift */
1445         ck_sort,        /* sort */
1446         ck_fun,         /* reverse */
1447         ck_grep,        /* grepstart */
1448         ck_null,        /* grepwhile */
1449         ck_null,        /* range */
1450         ck_null,        /* flip */
1451         ck_null,        /* flop */
1452         ck_null,        /* and */
1453         ck_null,        /* or */
1454         ck_null,        /* cond_expr */
1455         ck_null,        /* andassign */
1456         ck_null,        /* orassign */
1457         ck_null,        /* method */
1458         ck_subr,        /* entersubr */
1459         ck_null,        /* leavesubr */
1460         ck_fun,         /* caller */
1461         ck_fun,         /* warn */
1462         ck_fun,         /* die */
1463         ck_fun,         /* reset */
1464         ck_null,        /* lineseq */
1465         ck_null,        /* nextstate */
1466         ck_null,        /* dbstate */
1467         ck_null,        /* unstack */
1468         ck_null,        /* enter */
1469         ck_null,        /* leave */
1470         ck_null,        /* scope */
1471         ck_null,        /* enteriter */
1472         ck_null,        /* iter */
1473         ck_null,        /* enterloop */
1474         ck_null,        /* leaveloop */
1475         ck_fun,         /* return */
1476         ck_null,        /* last */
1477         ck_null,        /* next */
1478         ck_null,        /* redo */
1479         ck_null,        /* dump */
1480         ck_null,        /* goto */
1481         ck_fun,         /* exit */
1482         ck_null,        /* nswitch */
1483         ck_null,        /* cswitch */
1484         ck_fun,         /* open */
1485         ck_fun,         /* close */
1486         ck_fun,         /* pipe_op */
1487         ck_fun,         /* fileno */
1488         ck_fun,         /* umask */
1489         ck_fun,         /* binmode */
1490         ck_fun,         /* tie */
1491         ck_fun,         /* untie */
1492         ck_fun,         /* dbmopen */
1493         ck_fun,         /* dbmclose */
1494         ck_select,      /* sselect */
1495         ck_select,      /* select */
1496         ck_eof,         /* getc */
1497         ck_fun,         /* read */
1498         ck_fun,         /* enterwrite */
1499         ck_null,        /* leavewrite */
1500         ck_listiob,     /* prtf */
1501         ck_listiob,     /* print */
1502         ck_fun,         /* sysread */
1503         ck_fun,         /* syswrite */
1504         ck_fun,         /* send */
1505         ck_fun,         /* recv */
1506         ck_eof,         /* eof */
1507         ck_fun,         /* tell */
1508         ck_fun,         /* seek */
1509         ck_trunc,       /* truncate */
1510         ck_fun,         /* fcntl */
1511         ck_fun,         /* ioctl */
1512         ck_fun,         /* flock */
1513         ck_fun,         /* socket */
1514         ck_fun,         /* sockpair */
1515         ck_fun,         /* bind */
1516         ck_fun,         /* connect */
1517         ck_fun,         /* listen */
1518         ck_fun,         /* accept */
1519         ck_fun,         /* shutdown */
1520         ck_fun,         /* gsockopt */
1521         ck_fun,         /* ssockopt */
1522         ck_fun,         /* getsockname */
1523         ck_fun,         /* getpeername */
1524         ck_ftst,        /* lstat */
1525         ck_ftst,        /* stat */
1526         ck_ftst,        /* ftrread */
1527         ck_ftst,        /* ftrwrite */
1528         ck_ftst,        /* ftrexec */
1529         ck_ftst,        /* fteread */
1530         ck_ftst,        /* ftewrite */
1531         ck_ftst,        /* fteexec */
1532         ck_ftst,        /* ftis */
1533         ck_ftst,        /* fteowned */
1534         ck_ftst,        /* ftrowned */
1535         ck_ftst,        /* ftzero */
1536         ck_ftst,        /* ftsize */
1537         ck_ftst,        /* ftmtime */
1538         ck_ftst,        /* ftatime */
1539         ck_ftst,        /* ftctime */
1540         ck_ftst,        /* ftsock */
1541         ck_ftst,        /* ftchr */
1542         ck_ftst,        /* ftblk */
1543         ck_ftst,        /* ftfile */
1544         ck_ftst,        /* ftdir */
1545         ck_ftst,        /* ftpipe */
1546         ck_ftst,        /* ftlink */
1547         ck_ftst,        /* ftsuid */
1548         ck_ftst,        /* ftsgid */
1549         ck_ftst,        /* ftsvtx */
1550         ck_ftst,        /* fttty */
1551         ck_ftst,        /* fttext */
1552         ck_ftst,        /* ftbinary */
1553         ck_fun,         /* chdir */
1554         ck_fun,         /* chown */
1555         ck_fun,         /* chroot */
1556         ck_fun,         /* unlink */
1557         ck_fun,         /* chmod */
1558         ck_fun,         /* utime */
1559         ck_fun,         /* rename */
1560         ck_fun,         /* link */
1561         ck_fun,         /* symlink */
1562         ck_fun,         /* readlink */
1563         ck_fun,         /* mkdir */
1564         ck_fun,         /* rmdir */
1565         ck_fun,         /* open_dir */
1566         ck_fun,         /* readdir */
1567         ck_fun,         /* telldir */
1568         ck_fun,         /* seekdir */
1569         ck_fun,         /* rewinddir */
1570         ck_fun,         /* closedir */
1571         ck_null,        /* fork */
1572         ck_null,        /* wait */
1573         ck_fun,         /* waitpid */
1574         ck_exec,        /* system */
1575         ck_exec,        /* exec */
1576         ck_fun,         /* kill */
1577         ck_null,        /* getppid */
1578         ck_fun,         /* getpgrp */
1579         ck_fun,         /* setpgrp */
1580         ck_fun,         /* getpriority */
1581         ck_fun,         /* setpriority */
1582         ck_null,        /* time */
1583         ck_null,        /* tms */
1584         ck_fun,         /* localtime */
1585         ck_fun,         /* gmtime */
1586         ck_fun,         /* alarm */
1587         ck_fun,         /* sleep */
1588         ck_fun,         /* shmget */
1589         ck_fun,         /* shmctl */
1590         ck_fun,         /* shmread */
1591         ck_fun,         /* shmwrite */
1592         ck_fun,         /* msgget */
1593         ck_fun,         /* msgctl */
1594         ck_fun,         /* msgsnd */
1595         ck_fun,         /* msgrcv */
1596         ck_fun,         /* semget */
1597         ck_fun,         /* semctl */
1598         ck_fun,         /* semop */
1599         ck_require,     /* require */
1600         ck_fun,         /* dofile */
1601         ck_eval,        /* entereval */
1602         ck_null,        /* leaveeval */
1603         ck_null,        /* evalonce */
1604         ck_null,        /* entertry */
1605         ck_null,        /* leavetry */
1606         ck_fun,         /* ghbyname */
1607         ck_fun,         /* ghbyaddr */
1608         ck_null,        /* ghostent */
1609         ck_fun,         /* gnbyname */
1610         ck_fun,         /* gnbyaddr */
1611         ck_null,        /* gnetent */
1612         ck_fun,         /* gpbyname */
1613         ck_fun,         /* gpbynumber */
1614         ck_null,        /* gprotoent */
1615         ck_fun,         /* gsbyname */
1616         ck_fun,         /* gsbyport */
1617         ck_null,        /* gservent */
1618         ck_fun,         /* shostent */
1619         ck_fun,         /* snetent */
1620         ck_fun,         /* sprotoent */
1621         ck_fun,         /* sservent */
1622         ck_null,        /* ehostent */
1623         ck_null,        /* enetent */
1624         ck_null,        /* eprotoent */
1625         ck_null,        /* eservent */
1626         ck_fun,         /* gpwnam */
1627         ck_fun,         /* gpwuid */
1628         ck_null,        /* gpwent */
1629         ck_null,        /* spwent */
1630         ck_null,        /* epwent */
1631         ck_fun,         /* ggrnam */
1632         ck_fun,         /* ggrgid */
1633         ck_null,        /* ggrent */
1634         ck_null,        /* sgrent */
1635         ck_null,        /* egrent */
1636         ck_null,        /* getlogin */
1637         ck_fun,         /* syscall */
1638 };
1639 #endif
1640
1641 #ifndef DOINIT
1642 EXT U32 opargs[];
1643 #else
1644 U32 opargs[] = {
1645         0x00000000,     /* null */
1646         0x00000000,     /* stub */
1647         0x00000104,     /* scalar */
1648         0x00000004,     /* pushmark */
1649         0x00000014,     /* wantarray */
1650         0x00000004,     /* const */
1651         0x00000000,     /* interp */
1652         0x00000044,     /* gvsv */
1653         0x00000044,     /* gv */
1654         0x00000000,     /* padsv */
1655         0x00000000,     /* padav */
1656         0x00000000,     /* padhv */
1657         0x00000000,     /* padany */
1658         0x00000000,     /* pushre */
1659         0x00000044,     /* rv2gv */
1660         0x0000001c,     /* sv2len */
1661         0x00000044,     /* rv2sv */
1662         0x00000014,     /* av2arylen */
1663         0x00000040,     /* rv2cv */
1664         0x0000020e,     /* refgen */
1665         0x0000090c,     /* ref */
1666         0x00009104,     /* bless */
1667         0x00000008,     /* backtick */
1668         0x00000008,     /* glob */
1669         0x00000008,     /* readline */
1670         0x00000008,     /* rcatline */
1671         0x00000104,     /* regcmaybe */
1672         0x00000104,     /* regcomp */
1673         0x00000040,     /* match */
1674         0x00000154,     /* subst */
1675         0x00000054,     /* substcont */
1676         0x00000114,     /* trans */
1677         0x00000004,     /* sassign */
1678         0x00002208,     /* aassign */
1679         0x00000008,     /* schop */
1680         0x00000209,     /* chop */
1681         0x00000914,     /* defined */
1682         0x00000904,     /* undef */
1683         0x0000090c,     /* study */
1684         0x00000104,     /* preinc */
1685         0x00000104,     /* predec */
1686         0x0000010c,     /* postinc */
1687         0x0000010c,     /* postdec */
1688         0x0000110e,     /* pow */
1689         0x0000110e,     /* multiply */
1690         0x0000110e,     /* divide */
1691         0x0000111e,     /* modulo */
1692         0x00001209,     /* repeat */
1693         0x0000112e,     /* add */
1694         0x0000111e,     /* intadd */
1695         0x0000110e,     /* subtract */
1696         0x0000110e,     /* concat */
1697         0x0000111e,     /* left_shift */
1698         0x0000111e,     /* right_shift */
1699         0x00001116,     /* lt */
1700         0x00001116,     /* gt */
1701         0x00001116,     /* le */
1702         0x00001116,     /* ge */
1703         0x00001116,     /* eq */
1704         0x00001116,     /* ne */
1705         0x0000111e,     /* ncmp */
1706         0x00001116,     /* slt */
1707         0x00001116,     /* sgt */
1708         0x00001116,     /* sle */
1709         0x00001116,     /* sge */
1710         0x00001116,     /* seq */
1711         0x00001116,     /* sne */
1712         0x0000111e,     /* scmp */
1713         0x0000110e,     /* bit_and */
1714         0x0000110e,     /* xor */
1715         0x0000110e,     /* bit_or */
1716         0x0000010e,     /* negate */
1717         0x00000116,     /* not */
1718         0x0000010e,     /* complement */
1719         0x0000110e,     /* atan2 */
1720         0x0000090e,     /* sin */
1721         0x0000090e,     /* cos */
1722         0x0000090c,     /* rand */
1723         0x00000904,     /* srand */
1724         0x0000090e,     /* exp */
1725         0x0000090e,     /* log */
1726         0x0000090e,     /* sqrt */
1727         0x0000090e,     /* int */
1728         0x0000091c,     /* hex */
1729         0x0000091c,     /* oct */
1730         0x0000090e,     /* abs */
1731         0x0000011c,     /* length */
1732         0x0009110c,     /* substr */
1733         0x0001111c,     /* vec */
1734         0x0009111c,     /* index */
1735         0x0009111c,     /* rindex */
1736         0x0000210d,     /* sprintf */
1737         0x00002105,     /* formline */
1738         0x0000091e,     /* ord */
1739         0x0000090e,     /* chr */
1740         0x0000110e,     /* crypt */
1741         0x0000010a,     /* ucfirst */
1742         0x0000010a,     /* lcfirst */
1743         0x0000010a,     /* uc */
1744         0x0000010a,     /* lc */
1745         0x00000048,     /* rv2av */
1746         0x00001304,     /* aelemfast */
1747         0x00001304,     /* aelem */
1748         0x00002301,     /* aslice */
1749         0x00000408,     /* each */
1750         0x00000408,     /* values */
1751         0x00000408,     /* keys */
1752         0x00001404,     /* delete */
1753         0x00000048,     /* rv2hv */
1754         0x00001404,     /* helem */
1755         0x00002401,     /* hslice */
1756         0x00001100,     /* unpack */
1757         0x0000210d,     /* pack */
1758         0x00011108,     /* split */
1759         0x0000210d,     /* join */
1760         0x00000201,     /* list */
1761         0x00022400,     /* lslice */
1762         0x00000201,     /* anonlist */
1763         0x00000201,     /* anonhash */
1764         0x00291301,     /* splice */
1765         0x0000231d,     /* push */
1766         0x00000304,     /* pop */
1767         0x00000304,     /* shift */
1768         0x0000231d,     /* unshift */
1769         0x00002d01,     /* sort */
1770         0x00000209,     /* reverse */
1771         0x00002541,     /* grepstart */
1772         0x00000048,     /* grepwhile */
1773         0x00001100,     /* range */
1774         0x00001100,     /* flip */
1775         0x00000000,     /* flop */
1776         0x00000000,     /* and */
1777         0x00000000,     /* or */
1778         0x00000000,     /* cond_expr */
1779         0x00000004,     /* andassign */
1780         0x00000004,     /* orassign */
1781         0x00000040,     /* method */
1782         0x00000241,     /* entersubr */
1783         0x00000000,     /* leavesubr */
1784         0x00000908,     /* caller */
1785         0x0000021d,     /* warn */
1786         0x0000025d,     /* die */
1787         0x00000914,     /* reset */
1788         0x00000000,     /* lineseq */
1789         0x00000004,     /* nextstate */
1790         0x00000004,     /* dbstate */
1791         0x00000004,     /* unstack */
1792         0x00000000,     /* enter */
1793         0x00000000,     /* leave */
1794         0x00000000,     /* scope */
1795         0x00000040,     /* enteriter */
1796         0x00000000,     /* iter */
1797         0x00000040,     /* enterloop */
1798         0x00000004,     /* leaveloop */
1799         0x00000241,     /* return */
1800         0x00000044,     /* last */
1801         0x00000044,     /* next */
1802         0x00000044,     /* redo */
1803         0x00000044,     /* dump */
1804         0x00000044,     /* goto */
1805         0x00000944,     /* exit */
1806         0x00000040,     /* nswitch */
1807         0x00000040,     /* cswitch */
1808         0x0000961c,     /* open */
1809         0x00000e14,     /* close */
1810         0x00006614,     /* pipe_op */
1811         0x0000061c,     /* fileno */
1812         0x0000091c,     /* umask */
1813         0x00000604,     /* binmode */
1814         0x00021755,     /* tie */
1815         0x00000714,     /* untie */
1816         0x00011414,     /* dbmopen */
1817         0x00000414,     /* dbmclose */
1818         0x00111108,     /* sselect */
1819         0x00000e0c,     /* select */
1820         0x00000e0c,     /* getc */
1821         0x0091761d,     /* read */
1822         0x00000e54,     /* enterwrite */
1823         0x00000000,     /* leavewrite */
1824         0x00002e15,     /* prtf */
1825         0x00002e15,     /* print */
1826         0x0091761d,     /* sysread */
1827         0x0091161d,     /* syswrite */
1828         0x0091161d,     /* send */
1829         0x0011761d,     /* recv */
1830         0x00000e14,     /* eof */
1831         0x00000e0c,     /* tell */
1832         0x00011604,     /* seek */
1833         0x00001114,     /* truncate */
1834         0x0001160c,     /* fcntl */
1835         0x0001160c,     /* ioctl */
1836         0x0000161c,     /* flock */
1837         0x00111614,     /* socket */
1838         0x01116614,     /* sockpair */
1839         0x00001614,     /* bind */
1840         0x00001614,     /* connect */
1841         0x00001614,     /* listen */
1842         0x0000661c,     /* accept */
1843         0x0000161c,     /* shutdown */
1844         0x00011614,     /* gsockopt */
1845         0x00111614,     /* ssockopt */
1846         0x00000614,     /* getsockname */
1847         0x00000614,     /* getpeername */
1848         0x00000600,     /* lstat */
1849         0x00000600,     /* stat */
1850         0x00000614,     /* ftrread */
1851         0x00000614,     /* ftrwrite */
1852         0x00000614,     /* ftrexec */
1853         0x00000614,     /* fteread */
1854         0x00000614,     /* ftewrite */
1855         0x00000614,     /* fteexec */
1856         0x00000614,     /* ftis */
1857         0x00000614,     /* fteowned */
1858         0x00000614,     /* ftrowned */
1859         0x00000614,     /* ftzero */
1860         0x0000061c,     /* ftsize */
1861         0x0000060c,     /* ftmtime */
1862         0x0000060c,     /* ftatime */
1863         0x0000060c,     /* ftctime */
1864         0x00000614,     /* ftsock */
1865         0x00000614,     /* ftchr */
1866         0x00000614,     /* ftblk */
1867         0x00000614,     /* ftfile */
1868         0x00000614,     /* ftdir */
1869         0x00000614,     /* ftpipe */
1870         0x00000614,     /* ftlink */
1871         0x00000614,     /* ftsuid */
1872         0x00000614,     /* ftsgid */
1873         0x00000614,     /* ftsvtx */
1874         0x00000614,     /* fttty */
1875         0x00000614,     /* fttext */
1876         0x00000614,     /* ftbinary */
1877         0x0000091c,     /* chdir */
1878         0x0000021d,     /* chown */
1879         0x0000091c,     /* chroot */
1880         0x0000021d,     /* unlink */
1881         0x0000021d,     /* chmod */
1882         0x0000021d,     /* utime */
1883         0x0000111c,     /* rename */
1884         0x0000111c,     /* link */
1885         0x0000111c,     /* symlink */
1886         0x0000090c,     /* readlink */
1887         0x0000111c,     /* mkdir */
1888         0x0000091c,     /* rmdir */
1889         0x00001614,     /* open_dir */
1890         0x00000600,     /* readdir */
1891         0x0000060c,     /* telldir */
1892         0x00001604,     /* seekdir */
1893         0x00000604,     /* rewinddir */
1894         0x00000614,     /* closedir */
1895         0x0000001c,     /* fork */
1896         0x0000001c,     /* wait */
1897         0x0000111c,     /* waitpid */
1898         0x0000291d,     /* system */
1899         0x0000295d,     /* exec */
1900         0x0000025d,     /* kill */
1901         0x0000001c,     /* getppid */
1902         0x0000091c,     /* getpgrp */
1903         0x0000111c,     /* setpgrp */
1904         0x0000111c,     /* getpriority */
1905         0x0001111c,     /* setpriority */
1906         0x0000001c,     /* time */
1907         0x00000000,     /* tms */
1908         0x00000908,     /* localtime */
1909         0x00000908,     /* gmtime */
1910         0x0000091c,     /* alarm */
1911         0x0000091c,     /* sleep */
1912         0x0001111d,     /* shmget */
1913         0x0001111d,     /* shmctl */
1914         0x0011111d,     /* shmread */
1915         0x0011111c,     /* shmwrite */
1916         0x0000111d,     /* msgget */
1917         0x0001111d,     /* msgctl */
1918         0x0001111d,     /* msgsnd */
1919         0x0111111d,     /* msgrcv */
1920         0x0001111d,     /* semget */
1921         0x0011111d,     /* semctl */
1922         0x0001111d,     /* semop */
1923         0x00000940,     /* require */
1924         0x00000140,     /* dofile */
1925         0x00000140,     /* entereval */
1926         0x00000100,     /* leaveeval */
1927         0x00000140,     /* evalonce */
1928         0x00000000,     /* entertry */
1929         0x00000000,     /* leavetry */
1930         0x00000100,     /* ghbyname */
1931         0x00001100,     /* ghbyaddr */
1932         0x00000000,     /* ghostent */
1933         0x00000100,     /* gnbyname */
1934         0x00001100,     /* gnbyaddr */
1935         0x00000000,     /* gnetent */
1936         0x00000100,     /* gpbyname */
1937         0x00000100,     /* gpbynumber */
1938         0x00000000,     /* gprotoent */
1939         0x00001100,     /* gsbyname */
1940         0x00001100,     /* gsbyport */
1941         0x00000000,     /* gservent */
1942         0x00000114,     /* shostent */
1943         0x00000114,     /* snetent */
1944         0x00000114,     /* sprotoent */
1945         0x00000114,     /* sservent */
1946         0x00000014,     /* ehostent */
1947         0x00000014,     /* enetent */
1948         0x00000014,     /* eprotoent */
1949         0x00000014,     /* eservent */
1950         0x00000100,     /* gpwnam */
1951         0x00000100,     /* gpwuid */
1952         0x00000000,     /* gpwent */
1953         0x0000001c,     /* spwent */
1954         0x0000001c,     /* epwent */
1955         0x00000100,     /* ggrnam */
1956         0x00000100,     /* ggrgid */
1957         0x00000000,     /* ggrent */
1958         0x0000001c,     /* sgrent */
1959         0x0000001c,     /* egrent */
1960         0x0000000c,     /* getlogin */
1961         0x0000211c,     /* syscall */
1962 };
1963 #endif