Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/XhAE2
function name: (null)
number of ops: 23
compiled vars: !0 = $countableString, !1 = $notEmptyString, !2 = $tenLetterLongString
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
3 0 E > DECLARE_CLASS 'stringobject'
13 1 DECLARE_CLASS 'countablestring', 'stringobject'
28 2 DECLARE_CLASS 'notemptystring', 'stringobject'
40 3 DECLARE_CLASS 'tenlettersstring', 'stringobject'
57 4 NEW $3 'CountableString'
5 SEND_VAL_EX '%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B0%D1%8F+%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0'
6 DO_FCALL 0
7 ASSIGN !0, $3
58 8 NEW $6 'NotEmptyString'
9 SEND_VAR_EX !0
10 DO_FCALL 0
11 ASSIGN !1, $6
60 12 INIT_METHOD_CALL !0, 'countLetters'
13 DO_FCALL 0 $9
14 CONCAT ~10 $9, '%0A'
15 ECHO ~10
61 16 CONCAT ~11 !0, '%0A'
17 ECHO ~11
63 18 NEW $12 'TenLettersString'
19 SEND_VAR_EX !0
20 DO_FCALL 0
21 ASSIGN !2, $12
22 > RETURN 1
Class StringObject:
Function __tostring:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/XhAE2
function name: __tostring
number of ops: 5
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
7 0 E > FETCH_OBJ_R ~0 'string'
1 VERIFY_RETURN_TYPE ~0
2 > RETURN ~0
8 3* VERIFY_RETURN_TYPE
4* > RETURN null
End of function __tostring
End of class StringObject.
Class StringObjectException: [no user functions]
Class CountableString:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/XhAE2
function name: __construct
number of ops: 9
compiled vars: !0 = $string
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
16 0 E > RECV !0
17 1 ASSIGN_OBJ 'string'
2 OP_DATA !0
18 3 INIT_FCALL 'mb_strlen'
4 SEND_VAR !0
5 DO_ICALL $3
6 ASSIGN_OBJ 'lettersCount'
7 OP_DATA $3
19 8 > RETURN null
End of function __construct
Function countletters:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/XhAE2
function name: countLetters
number of ops: 5
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
22 0 E > FETCH_OBJ_R ~0 'lettersCount'
1 VERIFY_RETURN_TYPE ~0
2 > RETURN ~0
23 3* VERIFY_RETURN_TYPE
4* > RETURN null
End of function countletters
End of class CountableString.
Class EmptyStringException: [no user functions]
Class NotEmptyString:
Function __construct:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 7
Branch analysis from position: 3
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 7
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/XhAE2
function name: __construct
number of ops: 10
compiled vars: !0 = $string
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
29 0 E > RECV !0
30 1 IS_IDENTICAL !0, ''
2 > JMPZ ~1, ->7
31 3 > NEW $2 'EmptyStringException'
4 SEND_VAL_EX 'Expected+not+empty+string.'
5 DO_FCALL 0
6 > THROW 0 $2
34 7 > ASSIGN_OBJ 'string'
8 OP_DATA !0
35 9 > RETURN null
End of function __construct
End of class NotEmptyString.
Class TooLongStringException: [no user functions]
Class TenLettersString:
Function __construct:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 14
Branch analysis from position: 5
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/XhAE2
function name: __construct
number of ops: 17
compiled vars: !0 = $string
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
43 0 E > RECV !0
44 1 INIT_METHOD_CALL !0, 'countLetters'
2 DO_FCALL 0 $1
3 IS_SMALLER 10, $1
4 > JMPZ ~2, ->14
45 5 > NEW $3 'TooLongStringException'
46 6 INIT_FCALL 'sprintf'
7 SEND_VAL 'Expected+string+not+longer+then%3A+%22%25d+letters%22+got%3A+%22%25s%22'
47 8 SEND_VAL 10
48 9 SEND_VAR !0
46 10 DO_ICALL $4
48 11 SEND_VAR_NO_REF_EX $4
45 12 DO_FCALL 0
48 13 > THROW 0 $3
53 14 > ASSIGN_OBJ 'string'
15 OP_DATA !0
54 16 > RETURN null
End of function __construct
End of class TenLettersString.
Generated using Vulcan Logic Dumper, using php 8.0.0