File Coverage

blib/lib/Language/P/Opcodes.pm
Criterion Covered Total %
statement 11 11 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 15 15 100.0


line stmt bran cond sub pod time code
1             package Language::P::Opcodes;
2              
3 101     101   523 use Exporter 'import';
  101         174  
  101         3439  
4 101     101   59180 use Language::P::Keywords qw(:all);
  101         1633  
  101         64797  
5              
6             our @OPERATIONS;
7             BEGIN {
8 101     101   13972 @OPERATIONS = ( qw(
9             OP_ABS
10             OP_ADD
11             OP_ADD_ASSIGN
12             OP_ARRAY_ELEMENT
13             OP_ARRAY_LENGTH
14             OP_ASSIGN
15             OP_BACKTICK
16             OP_BINMODE
17             OP_BIT_AND
18             OP_BIT_NOT
19             OP_BIT_OR
20             OP_BIT_XOR
21             OP_CALL
22             OP_CHDIR
23             OP_CLOSE
24             OP_CONCATENATE
25             OP_CONCAT_ASSIGN
26             OP_CONSTANT_FLOAT
27             OP_CONSTANT_INTEGER
28             OP_CONSTANT_REGEX
29             OP_CONSTANT_STRING
30             OP_CONSTANT_SUB
31             OP_CONSTANT_UNDEF
32             OP_DEFINED
33             OP_DEREFERENCE_ARRAY
34             OP_DEREFERENCE_GLOB
35             OP_DEREFERENCE_HASH
36             OP_DEREFERENCE_SCALAR
37             OP_DEREFERENCE_SUB
38             OP_DIE
39             OP_DIVIDE
40             OP_DIVIDE_ASSIGN
41             OP_DOT_DOT
42             OP_DOT_DOT_DOT
43             OP_DUP
44             OP_END
45             OP_EVAL
46             OP_FRESH_STRING
47             OP_FT_ATIME
48             OP_FT_CTIME
49             OP_FT_EEXECUTABLE
50             OP_FT_EMPTY
51             OP_FT_EOWNED
52             OP_FT_EREADABLE
53             OP_FT_EWRITABLE
54             OP_FT_EXISTS
55             OP_FT_ISASCII
56             OP_FT_ISBINARY
57             OP_FT_ISBLOCKSPECIAL
58             OP_FT_ISCHARSPECIAL
59             OP_FT_ISDIR
60             OP_FT_ISFILE
61             OP_FT_ISPIPE
62             OP_FT_ISSOCKET
63             OP_FT_ISSYMLINK
64             OP_FT_ISTTY
65             OP_FT_MTIME
66             OP_FT_NONEMPTY
67             OP_FT_REXECUTABLE
68             OP_FT_ROWNED
69             OP_FT_RREADABLE
70             OP_FT_RWRITABLE
71             OP_FT_SETGID
72             OP_FT_SETUID
73             OP_FT_STICKY
74             OP_GET
75             OP_GLOB
76             OP_GLOBAL
77             OP_GLOB_SLOT
78             OP_GLOB_SLOT_SET
79             OP_GREP
80             OP_HASH_ELEMENT
81             OP_ITERATOR
82             OP_ITERATOR_NEXT
83             OP_JUMP
84             OP_JUMP_IF_FALSE
85             OP_JUMP_IF_F_EQ
86             OP_JUMP_IF_F_GE
87             OP_JUMP_IF_F_GT
88             OP_JUMP_IF_F_LE
89             OP_JUMP_IF_F_LT
90             OP_JUMP_IF_F_NE
91             OP_JUMP_IF_NULL
92             OP_JUMP_IF_S_EQ
93             OP_JUMP_IF_S_GE
94             OP_JUMP_IF_S_GT
95             OP_JUMP_IF_S_LE
96             OP_JUMP_IF_S_LT
97             OP_JUMP_IF_S_NE
98             OP_JUMP_IF_TRUE
99             OP_LEXICAL
100             OP_LEXICAL_CLEAR
101             OP_LEXICAL_SET
102             OP_LOCAL
103             OP_LOCALIZE_GLOB_SLOT
104             OP_LOG_AND
105             OP_LOG_NOT
106             OP_LOG_OR
107             OP_LOG_XOR
108             OP_MAKE_CLOSURE
109             OP_MAKE_LIST
110             OP_MAP
111             OP_MATCH
112             OP_MINUS
113             OP_MODULUS
114             OP_MULTIPLY
115             OP_MULTIPLY_ASSIGN
116             OP_NEGATE
117             OP_NOOP
118             OP_NOT_MATCH
119             OP_NUM_CMP
120             OP_NUM_EQ
121             OP_NUM_GE
122             OP_NUM_GT
123             OP_NUM_LE
124             OP_NUM_LT
125             OP_NUM_NE
126             OP_OPEN
127             OP_PARENTHESES
128             OP_PHI
129             OP_PIPE
130             OP_PLUS
131             OP_POP
132             OP_POSTDEC
133             OP_POSTINC
134             OP_POWER
135             OP_PREDEC
136             OP_PREINC
137             OP_PRINT
138             OP_QL_LT
139             OP_QL_M
140             OP_QL_QR
141             OP_QL_QW
142             OP_QL_QX
143             OP_QL_S
144             OP_QL_TR
145             OP_READLINE
146             OP_REFERENCE
147             OP_REPEAT
148             OP_RESTORE_GLOB_SLOT
149             OP_RETURN
150             OP_RMDIR
151             OP_RX_ACCEPT
152             OP_RX_CAPTURE_END
153             OP_RX_CAPTURE_START
154             OP_RX_END_SPECIAL
155             OP_RX_EXACT
156             OP_RX_QUANTIFIER
157             OP_RX_START_GROUP
158             OP_RX_START_MATCH
159             OP_RX_START_SPECIAL
160             OP_RX_TRY
161             OP_SET
162             OP_STRINGIFY
163             OP_STR_CMP
164             OP_STR_EQ
165             OP_STR_GE
166             OP_STR_GT
167             OP_STR_LE
168             OP_STR_LT
169             OP_STR_NE
170             OP_SUBTRACT
171             OP_SUBTRACT_ASSIGN
172             OP_SWAP
173             OP_TEMPORARY
174             OP_TEMPORARY_SET
175             OP_UNDEF
176             OP_UNLINK
177             OP_WANTARRAY
178             ) );
179             }
180              
181             our @EXPORT = ( qw(%KEYWORD_TO_OP %NUMBER_TO_NAME @OPERATIONS
182             %OP_ATTRIBUTES), @OPERATIONS );
183             our %EXPORT_TAGS =
184             ( all => \@EXPORT,
185             );
186              
187             use constant +
188 101         2123 { map { $OPERATIONS[$_] => $_ + 1 } 0 .. $#OPERATIONS,
  17069         744599  
189 101     101   1991 };
  101         230  
190              
191             our %NUMBER_TO_NAME =
192             (
193             OP_QL_LT() => 'ql_lt',
194             OP_NEGATE() => 'negate',
195             OP_FT_ATIME() => 'ft_atime',
196             OP_FT_EXISTS() => 'ft_exists',
197             OP_FT_ISSOCKET() => 'ft_issocket',
198             OP_STRINGIFY() => 'stringify',
199             OP_SET() => 'set',
200             OP_LOG_AND() => 'log_and',
201             OP_FT_ISFILE() => 'ft_isfile',
202             OP_STR_EQ() => 'compare_s_eq_scalar',
203             OP_TEMPORARY() => 'temporary',
204             OP_JUMP_IF_S_NE() => 'jump_if_s_ne',
205             OP_BINMODE() => 'binmode',
206             OP_BIT_OR() => 'bit_or',
207             OP_BIT_NOT() => 'bit_not',
208             OP_GET() => 'get',
209             OP_EVAL() => 'eval',
210             OP_ASSIGN() => 'assign',
211             OP_CONSTANT_UNDEF() => 'constant_undef',
212             OP_STR_LT() => 'compare_s_lt_scalar',
213             OP_TEMPORARY_SET() => 'temporary_set',
214             OP_GLOBAL() => 'global',
215             OP_RX_END_SPECIAL() => 'rx_end_special',
216             OP_RX_START_GROUP() => 'rx_start_group',
217             OP_JUMP_IF_F_EQ() => 'jump_if_f_eq',
218             OP_ITERATOR() => 'iterator',
219             OP_RX_TRY() => 'rx_try',
220             OP_NUM_EQ() => 'compare_f_eq_scalar',
221             OP_CONCAT_ASSIGN() => 'concat_assign',
222             OP_MINUS() => 'negate',
223             OP_UNLINK() => 'unlink',
224             OP_FT_EEXECUTABLE() => 'ft_eexecutable',
225             OP_JUMP_IF_NULL() => 'jump_if_null',
226             OP_QL_QR() => 'ql_qr',
227             OP_PREINC() => 'preinc',
228             OP_STR_CMP() => 'str_cmp',
229             OP_DEREFERENCE_GLOB() => 'dereference_glob',
230             OP_FT_ISCHARSPECIAL() => 'ft_ischarspecial',
231             OP_QL_TR() => 'ql_tr',
232             OP_CONSTANT_INTEGER() => 'constant_integer',
233             OP_FT_RWRITABLE() => 'ft_rwritable',
234             OP_FT_EREADABLE() => 'ft_ereadable',
235             OP_SWAP() => 'swap',
236             OP_RX_CAPTURE_END() => 'rx_capture_end',
237             OP_MAKE_LIST() => 'make_list',
238             OP_REPEAT() => 'repeat',
239             OP_DEREFERENCE_HASH() => 'dereference_hash',
240             OP_BIT_XOR() => 'bit_xor',
241             OP_DEREFERENCE_ARRAY() => 'dereference_array',
242             OP_LOCAL() => 'local',
243             OP_POSTINC() => 'postinc',
244             OP_JUMP_IF_F_NE() => 'jump_if_f_ne',
245             OP_LEXICAL() => 'lexical',
246             OP_NUM_NE() => 'compare_f_ne_scalar',
247             OP_LOG_NOT() => 'not',
248             OP_FT_SETUID() => 'ft_setuid',
249             OP_PRINT() => 'print',
250             OP_RMDIR() => 'rmdir',
251             OP_LOCALIZE_GLOB_SLOT() => 'localize_glob_slot',
252             OP_ITERATOR_NEXT() => 'iterator_next',
253             OP_FT_RREADABLE() => 'ft_rreadable',
254             OP_SUBTRACT() => 'subtract',
255             OP_JUMP_IF_F_GE() => 'jump_if_f_ge',
256             OP_JUMP_IF_F_LE() => 'jump_if_f_le',
257             OP_MULTIPLY() => 'multiply',
258             OP_FT_ISTTY() => 'ft_istty',
259             OP_MAKE_CLOSURE() => 'make_closure',
260             OP_DIVIDE_ASSIGN() => 'divide_assign',
261             OP_PIPE() => 'pipe',
262             OP_PHI() => 'phi',
263             OP_JUMP_IF_FALSE() => 'jump_if_false',
264             OP_QL_M() => 'ql_m',
265             OP_RX_EXACT() => 'rx_exact',
266             OP_RX_ACCEPT() => 'rx_accept',
267             OP_DIE() => 'die',
268             OP_LEXICAL_CLEAR() => 'lexical_clear',
269             OP_PREDEC() => 'predec',
270             OP_CONSTANT_FLOAT() => 'constant_float',
271             OP_MODULUS() => 'modulus',
272             OP_PLUS() => 'plus',
273             OP_FT_REXECUTABLE() => 'ft_rexecutable',
274             OP_ARRAY_LENGTH() => 'array_size',
275             OP_QL_S() => 'ql_s',
276             OP_FT_MTIME() => 'ft_mtime',
277             OP_CONSTANT_SUB() => 'constant_sub',
278             OP_NOT_MATCH() => 'not_match',
279             OP_GREP() => 'grep',
280             OP_JUMP_IF_S_GE() => 'jump_if_s_ge',
281             OP_READLINE() => 'readline',
282             OP_BIT_AND() => 'bit_and',
283             OP_SUBTRACT_ASSIGN() => 'subtract_assign',
284             OP_WANTARRAY() => 'want',
285             OP_FT_ISSYMLINK() => 'ft_issymlink',
286             OP_GLOB_SLOT_SET() => 'glob_slot_set',
287             OP_FT_ISPIPE() => 'ft_ispipe',
288             OP_POSTDEC() => 'postdec',
289             OP_LOG_XOR() => 'log_xor',
290             OP_FT_EOWNED() => 'ft_eowned',
291             OP_RX_START_SPECIAL() => 'rx_start_special',
292             OP_DUP() => 'dup',
293             OP_CONSTANT_STRING() => 'constant_string',
294             OP_FRESH_STRING() => 'fresh_string',
295             OP_FT_STICKY() => 'ft_sticky',
296             OP_CONCATENATE() => 'concat',
297             OP_ARRAY_ELEMENT() => 'array_element',
298             OP_RX_QUANTIFIER() => 'rx_quantifier',
299             OP_NUM_GE() => 'compare_f_ge_scalar',
300             OP_POP() => 'pop',
301             OP_RX_CAPTURE_START() => 'rx_capture_start',
302             OP_LEXICAL_SET() => 'lexical_set',
303             OP_FT_ISDIR() => 'ft_isdir',
304             OP_ABS() => 'abs',
305             OP_DEREFERENCE_SCALAR() => 'dereference_scalar',
306             OP_NUM_GT() => 'compare_f_gt_scalar',
307             OP_NUM_CMP() => 'num_cmp',
308             OP_ADD() => 'add',
309             OP_REFERENCE() => 'reference',
310             OP_JUMP() => 'jump',
311             OP_PARENTHESES() => 'parentheses',
312             OP_CHDIR() => 'chdir',
313             OP_UNDEF() => 'undef',
314             OP_FT_CTIME() => 'ft_ctime',
315             OP_QL_QX() => 'ql_qx',
316             OP_JUMP_IF_S_LE() => 'jump_if_s_le',
317             OP_POWER() => 'power',
318             OP_BACKTICK() => 'backtick',
319             OP_MAP() => 'map',
320             OP_DEFINED() => 'defined',
321             OP_STR_LE() => 'compare_s_le_scalar',
322             OP_FT_EWRITABLE() => 'ft_ewritable',
323             OP_END() => 'end',
324             OP_STR_NE() => 'compare_s_ne_scalar',
325             OP_JUMP_IF_F_LT() => 'jump_if_f_lt',
326             OP_JUMP_IF_S_GT() => 'jump_if_s_gt',
327             OP_OPEN() => 'open',
328             OP_FT_SETGID() => 'ft_setgid',
329             OP_FT_NONEMPTY() => 'ft_nonempty',
330             OP_FT_ROWNED() => 'ft_rowned',
331             OP_CLOSE() => 'close',
332             OP_NOOP() => 'noop',
333             OP_MATCH() => 'rx_match',
334             OP_DIVIDE() => 'divide',
335             OP_ADD_ASSIGN() => 'add_assign',
336             OP_RESTORE_GLOB_SLOT() => 'restore_glob_slot',
337             OP_FT_EMPTY() => 'ft_empty',
338             OP_DOT_DOT_DOT() => 'dot_dot_dot',
339             OP_HASH_ELEMENT() => 'hash_element',
340             OP_JUMP_IF_S_LT() => 'jump_if_s_lt',
341             OP_LOG_OR() => 'log_or',
342             OP_STR_GE() => 'compare_s_ge_scalar',
343             OP_GLOB() => 'glob',
344             OP_DOT_DOT() => 'dot_dot',
345             OP_JUMP_IF_S_EQ() => 'jump_if_s_eq',
346             OP_NUM_LT() => 'compare_f_lt_scalar',
347             OP_CONSTANT_REGEX() => 'constant_regex',
348             OP_RX_START_MATCH() => 'rx_start_match',
349             OP_JUMP_IF_F_GT() => 'jump_if_f_gt',
350             OP_FT_ISBINARY() => 'ft_isbinary',
351             OP_STR_GT() => 'compare_s_gt_scalar',
352             OP_MULTIPLY_ASSIGN() => 'multiply_assign',
353             OP_FT_ISASCII() => 'ft_isascii',
354             OP_CALL() => 'call',
355             OP_QL_QW() => 'ql_qw',
356             OP_DEREFERENCE_SUB() => 'dereference_subroutine',
357             OP_RETURN() => 'return',
358             OP_JUMP_IF_TRUE() => 'jump_if_true',
359             OP_GLOB_SLOT() => 'glob_slot',
360             OP_NUM_LE() => 'compare_f_le_scalar',
361             OP_FT_ISBLOCKSPECIAL() => 'ft_isblockspecial',
362             );
363              
364             our %KEYWORD_TO_OP =
365             (
366             KEY_ABS() => OP_ABS(),
367             KEY_BINMODE() => OP_BINMODE(),
368             KEY_CHDIR() => OP_CHDIR(),
369             KEY_CLOSE() => OP_CLOSE(),
370             KEY_DEFINED() => OP_DEFINED(),
371             KEY_DIE() => OP_DIE(),
372             KEY_EVAL() => OP_EVAL(),
373             KEY_GLOB() => OP_GLOB(),
374             KEY_GREP() => OP_GREP(),
375             KEY_MAP() => OP_MAP(),
376             KEY_OPEN() => OP_OPEN(),
377             KEY_PIPE() => OP_PIPE(),
378             KEY_PRINT() => OP_PRINT(),
379             KEY_READLINE() => OP_READLINE(),
380             KEY_READLINE() => OP_READLINE(),
381             KEY_RETURN() => OP_RETURN(),
382             KEY_RMDIR() => OP_RMDIR(),
383             KEY_UNDEF() => OP_UNDEF(),
384             KEY_UNLINK() => OP_UNLINK(),
385             KEY_WANTARRAY() => OP_WANTARRAY(),
386             );
387              
388             our %OP_ATTRIBUTES =
389             (
390             OP_QL_LT() =>
391             { in_args => 0,
392             out_args => 0,
393             named => {},
394             positional => [],
395             },
396             OP_NEGATE() =>
397             { in_args => 0,
398             out_args => 0,
399             named => {},
400             positional => [],
401             },
402             OP_FT_ATIME() =>
403             { in_args => 0,
404             out_args => 0,
405             named => {},
406             positional => [],
407             },
408             OP_FT_EXISTS() =>
409             { in_args => 0,
410             out_args => 0,
411             named => {},
412             positional => [],
413             },
414             OP_FT_ISSOCKET() =>
415             { in_args => 0,
416             out_args => 0,
417             named => {},
418             positional => [],
419             },
420             OP_STRINGIFY() =>
421             { in_args => 0,
422             out_args => 0,
423             named => {},
424             positional => [],
425             },
426             OP_SET() =>
427             { in_args => 2,
428             out_args => 0,
429             named => {},
430             positional => [],
431             },
432             OP_LOG_AND() =>
433             { in_args => 2,
434             out_args => 1,
435             named => {},
436             positional => [],
437             },
438             OP_FT_ISFILE() =>
439             { in_args => 0,
440             out_args => 0,
441             named => {},
442             positional => [],
443             },
444             OP_STR_EQ() =>
445             { in_args => 0,
446             out_args => 0,
447             named => {},
448             positional => [],
449             },
450             OP_TEMPORARY() =>
451             { in_args => 0,
452             out_args => 1,
453             named => {'index' => 'i'},
454             positional => [],
455             },
456             OP_JUMP_IF_S_NE() =>
457             { in_args => 2,
458             out_args => 0,
459             named => {},
460             positional => [],
461             },
462             OP_BINMODE() =>
463             { in_args => 0,
464             out_args => 0,
465             named => {},
466             positional => [],
467             },
468             OP_BIT_OR() =>
469             { in_args => 0,
470             out_args => 0,
471             named => {},
472             positional => [],
473             },
474             OP_BIT_NOT() =>
475             { in_args => 0,
476             out_args => 0,
477             named => {},
478             positional => [],
479             },
480             OP_GET() =>
481             { in_args => 0,
482             out_args => 0,
483             named => {},
484             positional => [],
485             },
486             OP_EVAL() =>
487             { in_args => 0,
488             out_args => 0,
489             named => {},
490             positional => [],
491             },
492             OP_ASSIGN() =>
493             { in_args => 2,
494             out_args => 1,
495             named => {},
496             positional => [],
497             },
498             OP_CONSTANT_UNDEF() =>
499             { in_args => 0,
500             out_args => 1,
501             named => {},
502             positional => [],
503             },
504             OP_STR_LT() =>
505             { in_args => 0,
506             out_args => 0,
507             named => {},
508             positional => [],
509             },
510             OP_TEMPORARY_SET() =>
511             { in_args => 1,
512             out_args => 0,
513             named => {},
514             positional => [],
515             },
516             OP_GLOBAL() =>
517             { in_args => 0,
518             out_args => 1,
519             named => {},
520             positional => [],
521             },
522             OP_RX_END_SPECIAL() =>
523             { in_args => 0,
524             out_args => 0,
525             named => {},
526             positional => [],
527             },
528             OP_RX_START_GROUP() =>
529             { in_args => 0,
530             out_args => 0,
531             named => {},
532             positional => [],
533             },
534             OP_JUMP_IF_F_EQ() =>
535             { in_args => 2,
536             out_args => 0,
537             named => {},
538             positional => [],
539             },
540             OP_ITERATOR() =>
541             { in_args => 1,
542             out_args => 1,
543             named => {},
544             positional => [],
545             },
546             OP_RX_TRY() =>
547             { in_args => 0,
548             out_args => 0,
549             named => {},
550             positional => [],
551             },
552             OP_NUM_EQ() =>
553             { in_args => 0,
554             out_args => 0,
555             named => {},
556             positional => [],
557             },
558             OP_CONCAT_ASSIGN() =>
559             { in_args => 2,
560             out_args => 1,
561             named => {},
562             positional => [],
563             },
564             OP_MINUS() =>
565             { in_args => 0,
566             out_args => 0,
567             named => {},
568             positional => [],
569             },
570             OP_UNLINK() =>
571             { in_args => 0,
572             out_args => 0,
573             named => {},
574             positional => [],
575             },
576             OP_FT_EEXECUTABLE() =>
577             { in_args => 0,
578             out_args => 0,
579             named => {},
580             positional => [],
581             },
582             OP_JUMP_IF_NULL() =>
583             { in_args => 1,
584             out_args => 0,
585             named => {},
586             positional => [],
587             },
588             OP_QL_QR() =>
589             { in_args => 0,
590             out_args => 0,
591             named => {},
592             positional => [],
593             },
594             OP_PREINC() =>
595             { in_args => 1,
596             out_args => 1,
597             named => {},
598             positional => [],
599             },
600             OP_STR_CMP() =>
601             { in_args => 0,
602             out_args => 0,
603             named => {},
604             positional => [],
605             },
606             OP_DEREFERENCE_GLOB() =>
607             { in_args => 1,
608             out_args => 1,
609             named => {},
610             positional => [],
611             },
612             OP_FT_ISCHARSPECIAL() =>
613             { in_args => 0,
614             out_args => 0,
615             named => {},
616             positional => [],
617             },
618             OP_QL_TR() =>
619             { in_args => 0,
620             out_args => 0,
621             named => {},
622             positional => [],
623             },
624             OP_CONSTANT_INTEGER() =>
625             { in_args => 0,
626             out_args => 1,
627             named => {},
628             positional => [],
629             },
630             OP_FT_RWRITABLE() =>
631             { in_args => 0,
632             out_args => 0,
633             named => {},
634             positional => [],
635             },
636             OP_FT_EREADABLE() =>
637             { in_args => 0,
638             out_args => 0,
639             named => {},
640             positional => [],
641             },
642             OP_SWAP() =>
643             { in_args => 2,
644             out_args => 2,
645             named => {},
646             positional => [],
647             },
648             OP_RX_CAPTURE_END() =>
649             { in_args => 0,
650             out_args => 0,
651             named => {},
652             positional => [],
653             },
654             OP_MAKE_LIST() =>
655             { in_args => -1,
656             out_args => 1,
657             named => {'count' => 'i'},
658             positional => [],
659             },
660             OP_REPEAT() =>
661             { in_args => 0,
662             out_args => 0,
663             named => {},
664             positional => [],
665             },
666             OP_DEREFERENCE_HASH() =>
667             { in_args => 1,
668             out_args => 1,
669             named => {},
670             positional => [],
671             },
672             OP_BIT_XOR() =>
673             { in_args => 0,
674             out_args => 0,
675             named => {},
676             positional => [],
677             },
678             OP_DEREFERENCE_ARRAY() =>
679             { in_args => 1,
680             out_args => 1,
681             named => {},
682             positional => [],
683             },
684             OP_LOCAL() =>
685             { in_args => 0,
686             out_args => 0,
687             named => {},
688             positional => [],
689             },
690             OP_POSTINC() =>
691             { in_args => 1,
692             out_args => 1,
693             named => {},
694             positional => [],
695             },
696             OP_JUMP_IF_F_NE() =>
697             { in_args => 2,
698             out_args => 0,
699             named => {},
700             positional => [],
701             },
702             OP_LEXICAL() =>
703             { in_args => 0,
704             out_args => 1,
705             named => {},
706             positional => [],
707             },
708             OP_NUM_NE() =>
709             { in_args => 0,
710             out_args => 0,
711             named => {},
712             positional => [],
713             },
714             OP_LOG_NOT() =>
715             { in_args => 1,
716             out_args => 1,
717             named => {},
718             positional => [],
719             },
720             OP_FT_SETUID() =>
721             { in_args => 0,
722             out_args => 0,
723             named => {},
724             positional => [],
725             },
726             OP_PRINT() =>
727             { in_args => 1,
728             out_args => 1,
729             named => {},
730             positional => [],
731             },
732             OP_RMDIR() =>
733             { in_args => 0,
734             out_args => 0,
735             named => {},
736             positional => [],
737             },
738             OP_LOCALIZE_GLOB_SLOT() =>
739             { in_args => 0,
740             out_args => 1,
741             named => {},
742             positional => [],
743             },
744             OP_ITERATOR_NEXT() =>
745             { in_args => 1,
746             out_args => 1,
747             named => {},
748             positional => [],
749             },
750             OP_FT_RREADABLE() =>
751             { in_args => 0,
752             out_args => 0,
753             named => {},
754             positional => [],
755             },
756             OP_SUBTRACT() =>
757             { in_args => 2,
758             out_args => 1,
759             named => {},
760             positional => [],
761             },
762             OP_JUMP_IF_F_GE() =>
763             { in_args => 2,
764             out_args => 0,
765             named => {},
766             positional => [],
767             },
768             OP_JUMP_IF_F_LE() =>
769             { in_args => 2,
770             out_args => 0,
771             named => {},
772             positional => [],
773             },
774             OP_MULTIPLY() =>
775             { in_args => 2,
776             out_args => 1,
777             named => {},
778             positional => [],
779             },
780             OP_FT_ISTTY() =>
781             { in_args => 0,
782             out_args => 0,
783             named => {},
784             positional => [],
785             },
786             OP_MAKE_CLOSURE() =>
787             { in_args => 1,
788             out_args => 1,
789             named => {},
790             positional => [],
791             },
792             OP_DIVIDE_ASSIGN() =>
793             { in_args => 0,
794             out_args => 0,
795             named => {},
796             positional => [],
797             },
798             OP_PIPE() =>
799             { in_args => 0,
800             out_args => 0,
801             named => {},
802             positional => [],
803             },
804             OP_PHI() =>
805             { in_args => 0,
806             out_args => 0,
807             named => {},
808             positional => [],
809             },
810             OP_JUMP_IF_FALSE() =>
811             { in_args => 1,
812             out_args => 0,
813             named => {},
814             positional => [],
815             },
816             OP_QL_M() =>
817             { in_args => 0,
818             out_args => 0,
819             named => {},
820             positional => [],
821             },
822             OP_RX_EXACT() =>
823             { in_args => 0,
824             out_args => 0,
825             named => {},
826             positional => [],
827             },
828             OP_RX_ACCEPT() =>
829             { in_args => 0,
830             out_args => 0,
831             named => {},
832             positional => [],
833             },
834             OP_DIE() =>
835             { in_args => 0,
836             out_args => 0,
837             named => {},
838             positional => [],
839             },
840             OP_LEXICAL_CLEAR() =>
841             { in_args => 0,
842             out_args => 0,
843             named => {},
844             positional => [],
845             },
846             OP_PREDEC() =>
847             { in_args => 1,
848             out_args => 1,
849             named => {},
850             positional => [],
851             },
852             OP_CONSTANT_FLOAT() =>
853             { in_args => 0,
854             out_args => 1,
855             named => {},
856             positional => [],
857             },
858             OP_MODULUS() =>
859             { in_args => 0,
860             out_args => 0,
861             named => {},
862             positional => [],
863             },
864             OP_PLUS() =>
865             { in_args => 1,
866             out_args => 1,
867             named => {},
868             positional => [],
869             },
870             OP_FT_REXECUTABLE() =>
871             { in_args => 0,
872             out_args => 0,
873             named => {},
874             positional => [],
875             },
876             OP_ARRAY_LENGTH() =>
877             { in_args => 1,
878             out_args => 1,
879             named => {},
880             positional => [],
881             },
882             OP_QL_S() =>
883             { in_args => 0,
884             out_args => 0,
885             named => {},
886             positional => [],
887             },
888             OP_FT_MTIME() =>
889             { in_args => 0,
890             out_args => 0,
891             named => {},
892             positional => [],
893             },
894             OP_CONSTANT_SUB() =>
895             { in_args => 0,
896             out_args => 1,
897             named => {},
898             positional => [],
899             },
900             OP_NOT_MATCH() =>
901             { in_args => 0,
902             out_args => 0,
903             named => {},
904             positional => [],
905             },
906             OP_GREP() =>
907             { in_args => 0,
908             out_args => 0,
909             named => {},
910             positional => [],
911             },
912             OP_JUMP_IF_S_GE() =>
913             { in_args => 2,
914             out_args => 0,
915             named => {},
916             positional => [],
917             },
918             OP_READLINE() =>
919             { in_args => 0,
920             out_args => 0,
921             named => {},
922             positional => [],
923             },
924             OP_BIT_AND() =>
925             { in_args => 0,
926             out_args => 0,
927             named => {},
928             positional => [],
929             },
930             OP_SUBTRACT_ASSIGN() =>
931             { in_args => 0,
932             out_args => 0,
933             named => {},
934             positional => [],
935             },
936             OP_WANTARRAY() =>
937             { in_args => 0,
938             out_args => 1,
939             named => {},
940             positional => [],
941             },
942             OP_FT_ISSYMLINK() =>
943             { in_args => 0,
944             out_args => 0,
945             named => {},
946             positional => [],
947             },
948             OP_GLOB_SLOT_SET() =>
949             { in_args => 2,
950             out_args => 0,
951             named => {},
952             positional => [],
953             },
954             OP_FT_ISPIPE() =>
955             { in_args => 0,
956             out_args => 0,
957             named => {},
958             positional => [],
959             },
960             OP_POSTDEC() =>
961             { in_args => 1,
962             out_args => 1,
963             named => {},
964             positional => [],
965             },
966             OP_LOG_XOR() =>
967             { in_args => 2,
968             out_args => 1,
969             named => {},
970             positional => [],
971             },
972             OP_FT_EOWNED() =>
973             { in_args => 0,
974             out_args => 0,
975             named => {},
976             positional => [],
977             },
978             OP_RX_START_SPECIAL() =>
979             { in_args => 0,
980             out_args => 0,
981             named => {},
982             positional => [],
983             },
984             OP_DUP() =>
985             { in_args => 0,
986             out_args => 0,
987             named => {},
988             positional => [],
989             },
990             OP_CONSTANT_STRING() =>
991             { in_args => 0,
992             out_args => 1,
993             named => {},
994             positional => ['s'],
995             },
996             OP_FRESH_STRING() =>
997             { in_args => 0,
998             out_args => 1,
999             named => {},
1000             positional => ['s'],
1001             },
1002             OP_FT_STICKY() =>
1003             { in_args => 0,
1004             out_args => 0,
1005             named => {},
1006             positional => [],
1007             },
1008             OP_CONCATENATE() =>
1009             { in_args => 2,
1010             out_args => 1,
1011             named => {},
1012             positional => [],
1013             },
1014             OP_ARRAY_ELEMENT() =>
1015             { in_args => 2,
1016             out_args => 1,
1017             named => {},
1018             positional => [],
1019             },
1020             OP_RX_QUANTIFIER() =>
1021             { in_args => 0,
1022             out_args => 0,
1023             named => {},
1024             positional => [],
1025             },
1026             OP_NUM_GE() =>
1027             { in_args => 0,
1028             out_args => 0,
1029             named => {},
1030             positional => [],
1031             },
1032             OP_POP() =>
1033             { in_args => 1,
1034             out_args => 0,
1035             named => {},
1036             positional => [],
1037             },
1038             OP_RX_CAPTURE_START() =>
1039             { in_args => 0,
1040             out_args => 0,
1041             named => {},
1042             positional => [],
1043             },
1044             OP_LEXICAL_SET() =>
1045             { in_args => 1,
1046             out_args => 0,
1047             named => {},
1048             positional => [],
1049             },
1050             OP_FT_ISDIR() =>
1051             { in_args => 0,
1052             out_args => 0,
1053             named => {},
1054             positional => [],
1055             },
1056             OP_ABS() =>
1057             { in_args => 1,
1058             out_args => 1,
1059             named => {},
1060             positional => [],
1061             },
1062             OP_DEREFERENCE_SCALAR() =>
1063             { in_args => 1,
1064             out_args => 1,
1065             named => {},
1066             positional => [],
1067             },
1068             OP_NUM_GT() =>
1069             { in_args => 0,
1070             out_args => 0,
1071             named => {},
1072             positional => [],
1073             },
1074             OP_NUM_CMP() =>
1075             { in_args => 0,
1076             out_args => 0,
1077             named => {},
1078             positional => [],
1079             },
1080             OP_ADD() =>
1081             { in_args => 2,
1082             out_args => 1,
1083             named => {},
1084             positional => [],
1085             },
1086             OP_REFERENCE() =>
1087             { in_args => 0,
1088             out_args => 0,
1089             named => {},
1090             positional => [],
1091             },
1092             OP_JUMP() =>
1093             { in_args => 0,
1094             out_args => 0,
1095             named => {},
1096             positional => [],
1097             },
1098             OP_PARENTHESES() =>
1099             { in_args => 0,
1100             out_args => 0,
1101             named => {},
1102             positional => [],
1103             },
1104             OP_CHDIR() =>
1105             { in_args => 0,
1106             out_args => 0,
1107             named => {},
1108             positional => [],
1109             },
1110             OP_UNDEF() =>
1111             { in_args => 0,
1112             out_args => 0,
1113             named => {},
1114             positional => [],
1115             },
1116             OP_FT_CTIME() =>
1117             { in_args => 0,
1118             out_args => 0,
1119             named => {},
1120             positional => [],
1121             },
1122             OP_QL_QX() =>
1123             { in_args => 0,
1124             out_args => 0,
1125             named => {},
1126             positional => [],
1127             },
1128             OP_JUMP_IF_S_LE() =>
1129             { in_args => 2,
1130             out_args => 0,
1131             named => {},
1132             positional => [],
1133             },
1134             OP_POWER() =>
1135             { in_args => 0,
1136             out_args => 0,
1137             named => {},
1138             positional => [],
1139             },
1140             OP_BACKTICK() =>
1141             { in_args => 0,
1142             out_args => 0,
1143             named => {},
1144             positional => [],
1145             },
1146             OP_MAP() =>
1147             { in_args => 0,
1148             out_args => 0,
1149             named => {},
1150             positional => [],
1151             },
1152             OP_DEFINED() =>
1153             { in_args => 1,
1154             out_args => 1,
1155             named => {},
1156             positional => [],
1157             },
1158             OP_STR_LE() =>
1159             { in_args => 0,
1160             out_args => 0,
1161             named => {},
1162             positional => [],
1163             },
1164             OP_FT_EWRITABLE() =>
1165             { in_args => 0,
1166             out_args => 0,
1167             named => {},
1168             positional => [],
1169             },
1170             OP_END() =>
1171             { in_args => 0,
1172             out_args => 0,
1173             named => {},
1174             positional => [],
1175             },
1176             OP_STR_NE() =>
1177             { in_args => 0,
1178             out_args => 0,
1179             named => {},
1180             positional => [],
1181             },
1182             OP_JUMP_IF_F_LT() =>
1183             { in_args => 2,
1184             out_args => 0,
1185             named => {},
1186             positional => [],
1187             },
1188             OP_JUMP_IF_S_GT() =>
1189             { in_args => 2,
1190             out_args => 0,
1191             named => {},
1192             positional => [],
1193             },
1194             OP_OPEN() =>
1195             { in_args => 0,
1196             out_args => 0,
1197             named => {},
1198             positional => [],
1199             },
1200             OP_FT_SETGID() =>
1201             { in_args => 0,
1202             out_args => 0,
1203             named => {},
1204             positional => [],
1205             },
1206             OP_FT_NONEMPTY() =>
1207             { in_args => 0,
1208             out_args => 0,
1209             named => {},
1210             positional => [],
1211             },
1212             OP_FT_ROWNED() =>
1213             { in_args => 0,
1214             out_args => 0,
1215             named => {},
1216             positional => [],
1217             },
1218             OP_CLOSE() =>
1219             { in_args => 0,
1220             out_args => 0,
1221             named => {},
1222             positional => [],
1223             },
1224             OP_NOOP() =>
1225             { in_args => 0,
1226             out_args => 0,
1227             named => {},
1228             positional => [],
1229             },
1230             OP_MATCH() =>
1231             { in_args => 0,
1232             out_args => 0,
1233             named => {},
1234             positional => [],
1235             },
1236             OP_DIVIDE() =>
1237             { in_args => 0,
1238             out_args => 0,
1239             named => {},
1240             positional => [],
1241             },
1242             OP_ADD_ASSIGN() =>
1243             { in_args => 0,
1244             out_args => 0,
1245             named => {},
1246             positional => [],
1247             },
1248             OP_RESTORE_GLOB_SLOT() =>
1249             { in_args => 0,
1250             out_args => 0,
1251             named => {},
1252             positional => [],
1253             },
1254             OP_FT_EMPTY() =>
1255             { in_args => 0,
1256             out_args => 0,
1257             named => {},
1258             positional => [],
1259             },
1260             OP_DOT_DOT_DOT() =>
1261             { in_args => 0,
1262             out_args => 0,
1263             named => {},
1264             positional => [],
1265             },
1266             OP_HASH_ELEMENT() =>
1267             { in_args => 2,
1268             out_args => 1,
1269             named => {},
1270             positional => [],
1271             },
1272             OP_JUMP_IF_S_LT() =>
1273             { in_args => 2,
1274             out_args => 0,
1275             named => {},
1276             positional => [],
1277             },
1278             OP_LOG_OR() =>
1279             { in_args => 2,
1280             out_args => 1,
1281             named => {},
1282             positional => [],
1283             },
1284             OP_STR_GE() =>
1285             { in_args => 0,
1286             out_args => 0,
1287             named => {},
1288             positional => [],
1289             },
1290             OP_GLOB() =>
1291             { in_args => 0,
1292             out_args => 0,
1293             named => {},
1294             positional => [],
1295             },
1296             OP_DOT_DOT() =>
1297             { in_args => 0,
1298             out_args => 0,
1299             named => {},
1300             positional => [],
1301             },
1302             OP_JUMP_IF_S_EQ() =>
1303             { in_args => 2,
1304             out_args => 0,
1305             named => {},
1306             positional => [],
1307             },
1308             OP_NUM_LT() =>
1309             { in_args => 0,
1310             out_args => 0,
1311             named => {},
1312             positional => [],
1313             },
1314             OP_CONSTANT_REGEX() =>
1315             { in_args => 0,
1316             out_args => 1,
1317             named => {},
1318             positional => [],
1319             },
1320             OP_RX_START_MATCH() =>
1321             { in_args => 0,
1322             out_args => 0,
1323             named => {},
1324             positional => [],
1325             },
1326             OP_JUMP_IF_F_GT() =>
1327             { in_args => 2,
1328             out_args => 0,
1329             named => {},
1330             positional => [],
1331             },
1332             OP_FT_ISBINARY() =>
1333             { in_args => 0,
1334             out_args => 0,
1335             named => {},
1336             positional => [],
1337             },
1338             OP_STR_GT() =>
1339             { in_args => 0,
1340             out_args => 0,
1341             named => {},
1342             positional => [],
1343             },
1344             OP_MULTIPLY_ASSIGN() =>
1345             { in_args => 0,
1346             out_args => 0,
1347             named => {},
1348             positional => [],
1349             },
1350             OP_FT_ISASCII() =>
1351             { in_args => 0,
1352             out_args => 0,
1353             named => {},
1354             positional => [],
1355             },
1356             OP_CALL() =>
1357             { in_args => 2,
1358             out_args => 1,
1359             named => {},
1360             positional => [],
1361             },
1362             OP_QL_QW() =>
1363             { in_args => 0,
1364             out_args => 0,
1365             named => {},
1366             positional => [],
1367             },
1368             OP_DEREFERENCE_SUB() =>
1369             { in_args => 1,
1370             out_args => 1,
1371             named => {},
1372             positional => [],
1373             },
1374             OP_RETURN() =>
1375             { in_args => 1,
1376             out_args => 0,
1377             named => {},
1378             positional => [],
1379             },
1380             OP_JUMP_IF_TRUE() =>
1381             { in_args => 1,
1382             out_args => 0,
1383             named => {},
1384             positional => [],
1385             },
1386             OP_GLOB_SLOT() =>
1387             { in_args => 1,
1388             out_args => 1,
1389             named => {},
1390             positional => [],
1391             },
1392             OP_NUM_LE() =>
1393             { in_args => 0,
1394             out_args => 0,
1395             named => {},
1396             positional => [],
1397             },
1398             OP_FT_ISBLOCKSPECIAL() =>
1399             { in_args => 0,
1400             out_args => 0,
1401             named => {},
1402             positional => [],
1403             },
1404             );
1405              
1406             1;