Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/YTrNI
function name: (null)
number of ops: 37
compiled vars: !0 = $tokenizer, !1 = $parser, !2 = $string, !3 = $tokens, !4 = $result, !5 = $string2, !6 = $tokens2, !7 = $result2
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
3 0 E > DECLARE_CLASS 'token'
6 1 DECLARE_CLASS 'parensopentoken', 'token'
7 2 DECLARE_CLASS 'parensclosetoken', 'token'
8 3 DECLARE_CLASS 'semicolontoken', 'token'
9 4 DECLARE_CLASS 'valuetoken', 'token'
15 5 DECLARE_CLASS 'othertoken', 'token'
140 6 NEW $8 'Tokenizer'
7 DO_FCALL 0
8 ASSIGN !0, $8
141 9 NEW $11 'Parser'
10 DO_FCALL 0
11 ASSIGN !1, $11
143 12 ASSIGN !2, '%7B%7Bparam1%3B%7Bparam2_array%7D%3Bparam3%3Bparam4%7D%3B%7Bparam5%3B%7Bparam6_array%7D%3Bparam7%3Bparam8%7D%7D'
144 13 INIT_METHOD_CALL !0, 'tokenize'
14 SEND_VAR_EX !2
15 DO_FCALL 0 $15
16 ASSIGN !3, $15
145 17 INIT_METHOD_CALL !1, 'parse'
18 SEND_VAR_EX !3
19 DO_FCALL 0 $17
20 ASSIGN !4, $17
146 21 INIT_FCALL 'print_r'
22 SEND_VAR !4
23 DO_ICALL
148 24 ASSIGN !5, '%7B%7Bparam1%3B%7Bparam2_array%3Bparam2_array%3Bparam2_array%7D%3Bparam3%3Bparam4%7D%7D'
149 25 INIT_METHOD_CALL !0, 'tokenize'
26 SEND_VAR_EX !5
27 DO_FCALL 0 $21
28 ASSIGN !6, $21
150 29 INIT_METHOD_CALL !1, 'parse'
30 SEND_VAR_EX !6
31 DO_FCALL 0 $23
32 ASSIGN !7, $23
151 33 INIT_FCALL 'print_r'
34 SEND_VAR !7
35 DO_ICALL
36 > RETURN 1
Class Token:
Function __tostring:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/YTrNI
function name: __toString
number of ops: 5
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
4 0 E > GET_CALLED_CLASS ~0
1 VERIFY_RETURN_TYPE ~0
2 > RETURN ~0
3* VERIFY_RETURN_TYPE
4* > RETURN null
End of function __tostring
End of class Token.
Class ParensOpenToken: [no user functions]
Class ParensCloseToken: [no user functions]
Class SemicolonToken: [no user functions]
Class ValueToken:
Function __tostring:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/YTrNI
function name: __toString
number of ops: 10
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
12 0 E > INIT_STATIC_METHOD_CALL '__toString'
1 DO_FCALL 0 $0
2 CONCAT ~1 $0, '%28%22'
3 FETCH_OBJ_R ~2 'value'
4 CONCAT ~3 ~1, ~2
5 CONCAT ~4 ~3, '%22%29'
6 VERIFY_RETURN_TYPE ~4
7 > RETURN ~4
13 8* VERIFY_RETURN_TYPE
9* > RETURN null
End of function __tostring
End of class ValueToken.
Class OtherToken:
Function __tostring:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/YTrNI
function name: __toString
number of ops: 10
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
18 0 E > INIT_STATIC_METHOD_CALL '__toString'
1 DO_FCALL 0 $0
2 CONCAT ~1 $0, '%28%22'
3 FETCH_OBJ_R ~2 'value'
4 CONCAT ~3 ~1, ~2
5 CONCAT ~4 ~3, '%22%29'
6 VERIFY_RETURN_TYPE ~4
7 > RETURN ~4
19 8* VERIFY_RETURN_TYPE
9* > RETURN null
End of function __tostring
End of class OtherToken.
Class Tokenizer:
Function tokenize:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 66
Branch analysis from position: 66
2 jumps found. (Code = 44) Position 1 = 71, Position 2 = 4
Branch analysis from position: 71
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 4
2 jumps found. (Code = 77) Position 1 = 6, Position 2 = 47
Branch analysis from position: 6
2 jumps found. (Code = 78) Position 1 = 7, Position 2 = 47
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 46
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 46
Branch analysis from position: 19
2 jumps found. (Code = 46) Position 1 = 25, Position 2 = 29
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 33
Branch analysis from position: 30
1 jumps found. (Code = 42) Position 1 = 47
Branch analysis from position: 47
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 66
Branch analysis from position: 50
2 jumps found. (Code = 44) Position 1 = 71, Position 2 = 4
Branch analysis from position: 71
Branch analysis from position: 4
Branch analysis from position: 66
Branch analysis from position: 33
Branch analysis from position: 29
Branch analysis from position: 46
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
Branch analysis from position: 46
Branch analysis from position: 47
Branch analysis from position: 47
filename: /in/YTrNI
function name: tokenize
number of ops: 73
compiled vars: !0 = $string, !1 = $tokensList, !2 = $tokens, !3 = $matched, !4 = $token, !5 = $pattern, !6 = $out, !7 = $value, !8 = $otherToken
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
23 0 E > RECV !0
24 1 ASSIGN !1, <array>
31 2 ASSIGN !2, <array>
33 3 > JMP ->66
34 4 > ASSIGN !3, <false>
36 5 > FE_RESET_R $12 !1, ->47
6 > > FE_FETCH_R ~13 $12, !4, ->47
7 > ASSIGN !5, ~13
37 8 INIT_FCALL 'preg_match'
9 CONCAT ~15 '%2F%5E%28', !5
10 CONCAT ~16 ~15, '%29%2F'
11 SEND_VAL ~16
12 SEND_VAR !0
13 SEND_REF !6
14 DO_ICALL $17
15 TYPE_CHECK 1018 $17
16 > JMPZ ~18, ->46
38 17 > ISSET_ISEMPTY_DIM_OBJ 0 !6, 1
18 > JMPZ ~19, ->46
39 19 > FETCH_CLASS 0 $20 !4
20 NEW $21 $20
21 DO_FCALL 0
22 ASSIGN !4, $21
40 23 INSTANCEOF ~24 !4, 'ValueToken'
24 > JMPZ_EX ~24 ~24, ->29
25 > FETCH_DIM_R ~25 !6, 1
26 TYPE_CHECK 2 ~26 ~25
27 BOOL_NOT ~27 ~26
28 BOOL ~24 ~27
29 > > JMPZ ~24, ->33
41 30 > FETCH_DIM_R ~29 !6, 1
31 ASSIGN_OBJ !4, 'value'
32 OP_DATA ~29
43 33 > ASSIGN_DIM !2
34 OP_DATA !4
45 35 INIT_FCALL 'mb_substr'
36 SEND_VAR !0
37 INIT_FCALL 'mb_strlen'
38 FETCH_DIM_R ~31 !6, 1
39 SEND_VAL ~31
40 DO_ICALL $32
41 SEND_VAR $32
42 DO_ICALL $33
43 ASSIGN !0, $33
46 44 ASSIGN !3, <true>
47 45 > JMP ->47
36 46 > > JMP ->6
47 > FE_FREE $12
52 48 BOOL_NOT ~36 !3
49 > JMPZ ~36, ->66
53 50 > INIT_FCALL 'mb_substr'
51 SEND_VAR !0
52 SEND_VAL 0
53 SEND_VAL 1
54 DO_ICALL $37
55 ASSIGN !7, $37
54 56 NEW $39 'OtherToken'
57 DO_FCALL 0
58 ASSIGN !8, $39
55 59 ASSIGN_OBJ !8, 'value'
60 OP_DATA !7
56 61 INIT_FCALL 'mb_substr'
62 SEND_VAR !0
63 SEND_VAL 1
64 DO_ICALL $43
65 ASSIGN !0, $43
33 66 > INIT_FCALL 'mb_strlen'
67 SEND_VAR !0
68 DO_ICALL $45
69 IS_SMALLER 0, $45
70 > JMPNZ ~46, ->4
60 71 > > RETURN !2
61 72* > RETURN null
End of function tokenize
End of class Tokenizer.
Class Parser:
Function istokensavailable:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/YTrNI
function name: isTokensAvailable
number of ops: 6
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
69 0 E > FETCH_OBJ_R ~0 '_index'
1 FETCH_OBJ_R ~1 '_tokens'
2 COUNT ~2 ~1
3 IS_SMALLER ~3 ~0, ~2
4 > RETURN ~3
70 5* > RETURN null
End of function istokensavailable
Function peekcurrenttoken:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/YTrNI
function name: peekCurrentToken
number of ops: 5
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
73 0 E > FETCH_OBJ_R ~1 '_index'
1 FETCH_OBJ_R ~0 '_tokens'
2 FETCH_DIM_R ~2 ~0, ~1
3 > RETURN ~2
74 4* > RETURN null
End of function peekcurrenttoken
Function popcurrenttoken:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/YTrNI
function name: popCurrentToken
number of ops: 5
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
77 0 E > POST_INC_OBJ ~1 '_index'
1 FETCH_OBJ_R ~0 '_tokens'
2 FETCH_DIM_R ~2 ~0, ~1
3 > RETURN ~2
78 4* > RETURN null
End of function popcurrenttoken
Function parseprimary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 9
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 15
Branch analysis from position: 11
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 15
1 jumps found. (Code = 108) Position 1 = -2
filename: /in/YTrNI
function name: parsePrimary
number of ops: 23
compiled vars: !0 = $peek
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
81 0 E > INIT_METHOD_CALL 'peekCurrentToken'
1 DO_FCALL 0 $1
2 ASSIGN !0, $1
82 3 INSTANCEOF !0, 'ParensOpenToken'
4 > JMPZ ~3, ->9
83 5 > INIT_METHOD_CALL 'parseParens'
6 DO_FCALL 0 $4
7 > RETURN $4
82 8* JMP ->22
84 9 > INSTANCEOF !0, 'ValueToken'
10 > JMPZ ~5, ->15
85 11 > INIT_METHOD_CALL 'parseValue'
12 DO_FCALL 0 $6
13 > RETURN $6
84 14* JMP ->22
87 15 > NEW $7 'Exception'
16 FETCH_OBJ_R ~8 '_index'
17 CONCAT ~9 'Parser+error%3A+unexpected+character+at+index+', ~8
18 SEND_VAL_EX ~9
19 DO_FCALL 0
20 > THROW 0 $7
88 21* RETURN null
90 22* > RETURN null
End of function parseprimary
Function parseparens:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 10
Branch analysis from position: 6
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 36
Branch analysis from position: 36
2 jumps found. (Code = 44) Position 1 = 37, Position 2 = 12
Branch analysis from position: 37
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 26
Branch analysis from position: 22
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 34
Branch analysis from position: 29
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 34
2 jumps found. (Code = 44) Position 1 = 37, Position 2 = 12
Branch analysis from position: 37
Branch analysis from position: 12
filename: /in/YTrNI
function name: parseParens
number of ops: 39
compiled vars: !0 = $token, !1 = $expressions, !2 = $expression
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
93 0 E > INIT_METHOD_CALL 'popCurrentToken'
1 DO_FCALL 0 $3
2 ASSIGN !0, $3
94 3 INSTANCEOF ~5 !0, 'ParensOpenToken'
4 BOOL_NOT ~6 ~5
5 > JMPZ ~6, ->10
95 6 > NEW $7 'Exception'
7 SEND_VAL_EX 'Parser+error%3A+expected+%7B'
8 DO_FCALL 0
9 > THROW 0 $7
98 10 > ASSIGN !1, <array>
99 11 > JMP ->36
100 12 > INIT_METHOD_CALL 'parsePrimary'
13 DO_FCALL 0 $10
14 ASSIGN !2, $10
101 15 ASSIGN_DIM !1
16 OP_DATA !2
103 17 INIT_METHOD_CALL 'peekCurrentToken'
18 DO_FCALL 0 $13
19 ASSIGN !0, $13
105 20 INSTANCEOF !0, 'ParensCloseToken'
21 > JMPZ ~15, ->26
106 22 > INIT_METHOD_CALL 'popCurrentToken'
23 DO_FCALL 0
107 24 > RETURN !1
105 25* JMP ->36
108 26 > INSTANCEOF ~17 !0, 'SemicolonToken'
27 BOOL_NOT ~18 ~17
28 > JMPZ ~18, ->34
109 29 > NEW $19 'Exception'
30 SEND_VAL_EX 'Parser+error%3A+expected+semicolon+after+object+in+array'
31 DO_FCALL 0
32 > THROW 0 $19
108 33* JMP ->36
111 34 > INIT_METHOD_CALL 'popCurrentToken'
35 DO_FCALL 0
99 36 > > JMPNZ <true>, ->12
115 37 > > RETURN !1
116 38* > RETURN null
End of function parseparens
Function parsevalue:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 10
Branch analysis from position: 6
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 10
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/YTrNI
function name: parseValue
number of ops: 13
compiled vars: !0 = $token
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
119 0 E > INIT_METHOD_CALL 'popCurrentToken'
1 DO_FCALL 0 $1
2 ASSIGN !0, $1
120 3 INSTANCEOF ~3 !0, 'ValueToken'
4 BOOL_NOT ~4 ~3
5 > JMPZ ~4, ->10
121 6 > NEW $5 'Exception'
7 SEND_VAL_EX 'Parser+error%3A+expected+value+token'
8 DO_FCALL 0
9 > THROW 0 $5
123 10 > FETCH_OBJ_R ~7 !0, 'value'
11 > RETURN ~7
124 12* > RETURN null
End of function parsevalue
Function parse:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 7
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 7
Branch analysis from position: 14
Branch analysis from position: 7
filename: /in/YTrNI
function name: parse
number of ops: 16
compiled vars: !0 = $tokens, !1 = $result
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
126 0 E > RECV !0
127 1 ASSIGN !1, <array>
128 2 ASSIGN_OBJ '_tokens'
3 OP_DATA !0
129 4 ASSIGN_OBJ '_index'
5 OP_DATA 0
131 6 > JMP ->11
132 7 > INIT_METHOD_CALL 'parsePrimary'
8 DO_FCALL 0 $6
9 ASSIGN_DIM !1
10 OP_DATA $6
131 11 > INIT_METHOD_CALL 'isTokensAvailable'
12 DO_FCALL 0 $7
13 > JMPNZ $7, ->7
135 14 > > RETURN !1
136 15* > RETURN null
End of function parse
End of class Parser.
Generated using Vulcan Logic Dumper, using php 8.0.0