Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/jv8vc
function name: (null)
number of ops: 61
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
197 0 E > INIT_FCALL 'text2num'
1 SEND_VAL 'one'
2 DO_FCALL 0 $0
3 CONCAT ~1 $0, '%0A'
4 ECHO ~1
198 5 INIT_FCALL 'text2num'
6 SEND_VAL 'twelve'
7 DO_FCALL 0 $2
8 CONCAT ~3 $2, '%0A'
9 ECHO ~3
199 10 INIT_FCALL 'text2num'
11 SEND_VAL 'seventy+two'
12 DO_FCALL 0 $4
13 CONCAT ~5 $4, '%0A'
14 ECHO ~5
200 15 INIT_FCALL 'text2num'
16 SEND_VAL 'three+hundred'
17 DO_FCALL 0 $6
18 CONCAT ~7 $6, '%0A'
19 ECHO ~7
201 20 INIT_FCALL 'text2num'
21 SEND_VAL 'twelve+hundred'
22 DO_FCALL 0 $8
23 CONCAT ~9 $8, '%0A'
24 ECHO ~9
202 25 INIT_FCALL 'text2num'
26 SEND_VAL 'twelve+thousand+three+hundred+four'
27 DO_FCALL 0 $10
28 CONCAT ~11 $10, '%0A'
29 ECHO ~11
203 30 INIT_FCALL 'text2num'
31 SEND_VAL 'six+million'
32 DO_FCALL 0 $12
33 CONCAT ~13 $12, '%0A'
34 ECHO ~13
204 35 INIT_FCALL 'text2num'
36 SEND_VAL 'six+million+four+hundred+thousand+five'
37 DO_FCALL 0 $14
38 CONCAT ~15 $14, '%0A'
39 ECHO ~15
205 40 INIT_FCALL 'text2num'
41 SEND_VAL 'one+hundred+twenty+three+billion+four+hundred+fifty+six+million+seven+hundred+eighty+nine+thousand+twelve'
42 DO_FCALL 0 $16
43 CONCAT ~17 $16, '%0A'
44 ECHO ~17
206 45 INIT_FCALL 'text2num'
46 SEND_VAL 'four+decillion'
47 DO_FCALL 0 $18
48 CONCAT ~19 $18, '%0A'
49 ECHO ~19
207 50 INIT_FCALL 'text2num'
51 SEND_VAL 'five+hundred+and+thirty-seven'
52 DO_FCALL 0 $20
53 CONCAT ~21 $20, '%0A'
54 ECHO ~21
208 55 INIT_FCALL 'text2num'
56 SEND_VAL 'five+hundred+and+thirty+seven'
57 DO_FCALL 0 $22
58 CONCAT ~23 $22, '%0A'
59 ECHO ~23
60 > RETURN 1
Function text2num:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/jv8vc
function name: text2num
number of ops: 15
compiled vars: !0 = $s, !1 = $reg
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
3 0 E > RECV !0
5 1 ASSIGN !1, '++++%28%3Fx%29+++++++++++%23+free-spacing+mode%0A++++%28%3F%28DEFINE%29%0A++++++%23+Within+this+DEFINE+block%2C+we%27ll+define+many+subroutines%0A++++++%23+They+build+on+each+other+like+lego+until+we+can+define%0A++++++%23+a+%22big+number%22%0A%0A++++++%28%3F%3Cone_to_9%3E++%0A++++++%23+The+basic+regex%3A%0A++++++%23+one%7Ctwo%7Cthree%7Cfour%7Cfive%7Csix%7Cseven%7Ceight%7Cnine%0A++++++%23+We%27ll+use+an+optimized+version%3A%0A++++++%23+Option+1%3A+four%7Ceight%7C%28%3F%3Afiv%7C%28%3F%3Ani%7Co%29n%29e%7Ct%28%3F%3Awo%7Chree%29%7C%0A++++++%23++++++++++++++++++++++++++++++++++++++++++s%28%3F%3Aix%7Ceven%29%0A++++++%23+Option+2%3A%0A++++++%28%3F%3Af%28%3F%3Aive%7Cour%29%7Cs%28%3F%3Aeven%7Cix%29%7Ct%28%3F%3Ahree%7Cwo%29%7C%28%3F%3Ani%7Co%29ne%7Ceight%29%0A++++++%29+%23+end+one_to_9+definition%0A%0A++++++%28%3F%3Cten_to_19%3E++%0A++++++%23+The+basic+regex%3A%0A++++++%23+ten%7Celeven%7Ctwelve%7Cthirteen%7Cfourteen%7Cfifteen%7Csixteen%7Cseventeen%7C%0A++++++%23++++++++++++++++++++++++++++++++++++++++++++++eighteen%7Cnineteen%0A++++++%23+We%27ll+use+an+optimized+version%3A%0A++++++%23+Option+1%3A+twelve%7C%28%3F%3A%28%3F%3Aelev%7Ct%29e%7C%28%3F%3Afif%7Ceigh%7Cnine%7C%28%3F%3Athi%7Cfou%29r%7C%0A++++++%23+++++++++++++++++++++++++++++++++++++++++++++s%28%3F%3Aix%7Ceven%29%29tee%29n%0A++++++%23+Option+2%3A%0A++++++%28%3F%3A%28%3F%3A%28%3F%3As%28%3F%3Aeven%7Cix%29%7Cf%28%3F%3Aour%7Cif%29%7Cnine%29te%7Ce%28%3F%3Aighte%7Clev%29%29en%7C%0A++++++++++++++++++++++++++++++++++++++++++++++t%28%3F%3A%28%3F%3Ahirte%29%3Fen%7Cwelve%29%29+%0A++++++%29+%23+end+ten_to_19+definition%0A%0A++++++%28%3F%3Ctwo_digit_prefix%3E%0A++++++%23+The+basic+regex%3A%0A++++++%23+twenty%7Cthirty%7Cforty%7Cfifty%7Csixty%7Cseventy%7Ceighty%7Cninety%0A++++++%23+We%27ll+use+an+optimized+version%3A%0A++++++%23+Option+1%3A+%28%3F%3Afif%7Csix%7Ceigh%7Cnine%7C%28%3F%3Atw%7Csev%29en%7C%28%3F%3Athi%7Cfo%29r%29ty%0A++++++%23+Option+2%3A%0A++++++%28%3F%3As%28%3F%3Aeven%7Cix%29%7Ct%28%3F%3Ahir%7Cwen%29%7Cf%28%3F%3Aif%7Cor%29%7Ceigh%7Cnine%29ty%0A++++++%29+%23+end+two_digit_prefix+definition%0A%0A++++++%28%3F%3Cone_to_99%3E%0A++++++%28%3F%26two_digit_prefix%29%28%3F%3A%5B-+%5D%28%3F%26one_to_9%29%29%3F%7C%28%3F%26ten_to_19%29%7C%0A++++++++++++++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_9%29%0A++++++%29+%23+end+one_to_99+definition%0A%0A++++++%28%3F%3Cone_to_999%3E%0A++++++%28%3F%26one_to_9%29%5B+%5Dhundred%28%3F%3A%5B+%5D%28%3F%3Aand%5B+%5D%29%3F%28%3F%26one_to_99%29%29%3F%7C%0A++++++++++++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_99%29%0A++++++%29+%23+end+one_to_999+definition%0A%0A++++++%28%3F%3Cone_to_999_999%3E%0A++++++%28%3F%26one_to_999%29%5B+%5Dthousand%28%3F%3A%5B+%5D%28%3F%26one_to_999%29%29%3F%7C%0A++++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_999%29%0A++++++%29+%23+end+one_to_999_999+definition%0A%0A++++++%28%3F%3Cone_to_999_999_999%3E%0A++++++%28%3F%26one_to_999%29%5B+%5Dmillion%28%3F%3A%5B+%5D%28%3F%26one_to_999_999%29%29%3F%7C%0A+++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_999_999%29%0A++++++%29+%23+end+one_to_999_999_999+definition%0A%0A++++++%28%3F%3Cone_to_999_999_999_999%3E%0A++++++%28%3F%26one_to_999%29%5B+%5Dbillion%28%3F%3A%5B+%5D%28%3F%26one_to_999_999_999%29%29%3F%7C%0A+++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_999_999_999%29%0A++++++%29+%23+end+one_to_999_999_999_999+definition%0A%0A++++++%28%3F%3Cone_to_999_999_999_999_999%3E%0A++++++%28%3F%26one_to_999%29%5B+%5Dtrillion%28%3F%3A%5B+%5D%28%3F%26one_to_999_999_999_999%29%29%3F%7C%0A++++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_999_999_999_999%29%0A++++++%29+%23+end+one_to_999_999_999_999_999+definition%0A++++++%23++%3D%3D%3D%3D+MORE+%3D%3D%3D%3D%0A++++++%28%3F%3Cone_to_quadrillion%3E%0A++++++%28%3F%26one_to_999%29%5B+%5Dquadrillion%28%3F%3A%5B+%5D%28%3F%26one_to_999_999_999_999_999%29%29%3F%7C%0A++++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_999_999_999_999_999%29%0A++++++%29+%23+end+one_to_quadrillion+definition%0A++++++%28%3F%3Cone_to_quintillion%3E%0A++++++%28%3F%26one_to_999%29%5B+%5Dquintillion%28%3F%3A%5B+%5D%28%3F%26one_to_quadrillion%29%29%3F%7C%0A++++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_quadrillion%29%0A++++++%29+%23+end+one_to_quintillion+definition%0A++++++%28%3F%3Cone_to_sextillion%3E%0A++++++%28%3F%26one_to_999%29%5B+%5Dsextillion%28%3F%3A%5B+%5D%28%3F%26one_to_quintillion%29%29%3F%7C%0A++++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_quintillion%29%0A++++++%29+%23+end+one_to_sextillion+definition%0A++++++%28%3F%3Cone_to_septillion%3E%0A++++++%28%3F%26one_to_999%29%5B+%5Dseptillion%28%3F%3A%5B+%5D%28%3F%26one_to_sextillion%29%29%3F%7C%0A++++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_sextillion%29%0A++++++%29+%23+end+one_to_septillion+definition%0A++++++%28%3F%3Cone_to_octillion%3E%0A++++++%28%3F%26one_to_999%29%5B+%5Doctillion%28%3F%3A%5B+%5D%28%3F%26one_to_septillion%29%29%3F%7C%0A++++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_septillion%29%0A++++++%29+%23+end+one_to_octillion+definition%0A++++++%28%3F%3Cone_to_nonillion%3E%0A++++++%28%3F%26one_to_999%29%5B+%5Dnonillion%28%3F%3A%5B+%5D%28%3F%26one_to_octillion%29%29%3F%7C%0A++++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_octillion%29%0A++++++%29+%23+end+one_to_nonillion+definition%0A++++++%28%3F%3Cone_to_decillion%3E%0A++++++%28%3F%26one_to_999%29%5B+%5Ddecillion%28%3F%3A%5B+%5D%28%3F%26one_to_nonillion%29%29%3F%7C%0A++++++++++++++++++++++++++++++++++++++++%28%3F%26one_to_nonillion%29%0A++++++%29+%23+end+one_to_decillion+definition%0A%0A++++++%28%3F%3Cbignumber%3E%0A++++++zero%7C%28%3F%26one_to_decillion%29%0A++++++%29+%23+end+bignumber+definition%0A%0A++++++%28%3F%3Czero_to_9%3E%0A++++++%28%3F%26one_to_9%29%7Czero%0A++++++%29+%23+end+zero+to+9+definition%0A%0A++++++%23+%28%3F%3Cdecimals%3E%0A++++++%23+point%28%3F%3A%5B+%5D%28%3F%26zero_to_9%29%29%2B%0A++++++%23+%29+%23+end+decimals+definition%0A%0A++++%29+%23+End+DEFINE%0A%0A%0A++++%23%23%23%23%23%23%23+The+Regex+Matching+Starts+Here+%23%23%23%23%23%23%23%23%0A++++%5Cb%28%3F%3A%28%3F%26ten_to_19%29%5Cs%2Bhundred%7C%28%3F%26bignumber%29%29%5Cb'
120 2 INIT_FCALL 'preg_replace_callback'
3 INIT_FCALL 'trim'
4 SEND_VAR !1
5 DO_ICALL $3
6 CONCAT ~4 '%7E', $3
7 CONCAT ~5 ~4, '%7Ei'
8 SEND_VAL ~5
9 DECLARE_LAMBDA_FUNCTION ~6 [0]
122 10 SEND_VAL ~6
11 SEND_VAR !0
120 12 DO_ICALL $7
122 13 > RETURN $7
123 14* > RETURN null
Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/jv8vc
function name: {closure}
number of ops: 8
compiled vars: !0 = $x
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
120 0 E > RECV !0
121 1 INIT_FCALL_BY_NAME 'text2num_internal'
2 CHECK_FUNC_ARG
3 FETCH_DIM_FUNC_ARG $1 !0, 0
4 SEND_FUNC_ARG $1
5 DO_FCALL 0 $2
6 > RETURN $2
122 7* > RETURN null
End of Dynamic Function 0
End of function text2num
Function text2num_internal:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 16, Position 2 = 47
Branch analysis from position: 16
2 jumps found. (Code = 78) Position 1 = 17, Position 2 = 47
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 23
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 46
Branch analysis from position: 46
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 23
2 jumps found. (Code = 46) Position 1 = 25, Position 2 = 27
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 28, Position 2 = 31
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 46
Branch analysis from position: 46
Branch analysis from position: 31
2 jumps found. (Code = 43) Position 1 = 36, Position 2 = 41
Branch analysis from position: 36
1 jumps found. (Code = 42) Position 1 = 46
Branch analysis from position: 46
Branch analysis from position: 41
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 27
Branch analysis from position: 47
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 47
filename: /in/jv8vc
function name: text2num_internal
number of ops: 51
compiled vars: !0 = $s, !1 = $Small, !2 = $Magnitude, !3 = $a, !4 = $n, !5 = $g, !6 = $w, !7 = $x
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
124 0 E > RECV !0
126 1 ASSIGN !1, <array>
157 2 ASSIGN !2, <array>
172 3 INIT_FCALL 'preg_split'
4 SEND_VAL '%7E%5B%5Cs-%5D%2B%28%3F%3Aand%5B%5Cs-%5D%2B%29%3F%7Eu'
5 SEND_VAR !0
6 DO_ICALL $10
7 ASSIGN !3, $10
173 8 INIT_FCALL 'array_map'
9 SEND_VAL 'strtolower'
10 SEND_VAR !3
11 DO_ICALL $12
12 ASSIGN !3, $12
174 13 ASSIGN !4, 0
175 14 ASSIGN !5, 0
176 15 > FE_RESET_R $16 !3, ->47
16 > > FE_FETCH_R $16, !6, ->47
177 17 > ISSET_ISEMPTY_DIM_OBJ 0 !1, !6
18 > JMPZ ~17, ->23
178 19 > FETCH_DIM_R ~18 !1, !6
20 ADD ~19 !5, ~18
21 ASSIGN !5, ~19
177 22 > JMP ->46
180 23 > IS_EQUAL ~21 !6, 'hundred'
24 > JMPZ_EX ~21 ~21, ->27
25 > IS_NOT_EQUAL ~22 !5, 0
26 BOOL ~21 ~22
27 > > JMPZ ~21, ->31
181 28 > MUL ~23 !5, 100
29 ASSIGN !5, ~23
180 30 > JMP ->46
184 31 > FETCH_DIM_R ~25 !2, !6
32 ASSIGN !7, ~25
185 33 STRLEN ~27 !7
34 IS_SMALLER 0, ~27
35 > JMPZ ~28, ->41
186 36 > MUL ~29 !5, !7
37 ADD ~30 !4, ~29
38 ASSIGN !4, ~30
187 39 ASSIGN !5, 0
185 40 > JMP ->46
190 41 > NEW $33 'Exception'
42 CONCAT ~34 'Unknown+number%3A+', !6
43 SEND_VAL_EX ~34
44 DO_FCALL 0
45 > THROW 0 $33
176 46 > > JMP ->16
47 > FE_FREE $16
194 48 ADD ~36 !4, !5
49 > RETURN ~36
195 50* > RETURN null
End of function text2num_internal
Generated using Vulcan Logic Dumper, using php 8.0.0