3v4l.org

run code in 500+ PHP versions simultaneously
<?php error_reporting(-1); abstract class AbstractWorker { public $rank; public $isBoss; public function __construct(int $rank, int $isBoss) { $this->rank = $rank; $this->isBoss = $isBoss; } public function getSalary(): float { $salary = $this->getBasicSalary(); if ($this->rank == 2){ $salary *= 1.25; } elseif ($this->rank == 3){ $salary *= 1.5; } if ($this->isBoss == 1){ $salary *= 1.5; } return $salary; } public function getCoffee(): int { $coffee = $this->getBasicCoffee(); if ($this->isBoss == 1){ $coffee *= 2; } return $coffee; } public function getPages(): int { $pages = $this->getBasicPages(); if ($this->isBoss == 1){ $pages = 0; } return $pages; } abstract public function getBasicSalary(): int; abstract public function getBasicCoffee(): int; abstract public function getBasicPages(): int; } class Manager extends AbstractWorker { public function getBasicSalary(): int { return 500; } public function getBasicCoffee(): int { return 20; } public function getBasicPages(): int { return 200; } } class Marketer extends AbstractWorker { public function getBasicSalary(): int { return 400; } public function getBasicCoffee(): int { return 15; } public function getBasicPages(): int { return 150; } } class Engineer extends AbstractWorker { public function getBasicSalary(): int { return 200; } public function getBasicCoffee(): int { return 5; } public function getBasicPages(): int { return 50; } } class Analyst extends AbstractWorker { public function getBasicSalary(): int { return 800; } public function getBasicCoffee(): int { return 50; } public function getBasicPages(): int { return 5; } } class Department { private $name; private $workers = array(); public function __construct(string $name) { $this->name = $name; } public function addWorker(AbstractWorker $worker): void { $this->workers[] = $worker; } public function getNumberWorkers(): int { return count($this->workers); } public function getDepartmentSalary(): float { $totalSalary = 0; foreach ($this->workers as $worker) { $totalSalary += $worker->getSalary(); } return $totalSalary; } public function getDepartmentCoffee(): int { $totalCoffee = 0; foreach ($this->workers as $worker) { $totalCoffee += $worker->getCoffee(); } return $totalCoffee; } public function getDepartmentPages(): int { $totalPages = 0; foreach ($this->workers as $worker) { $totalPages += $worker->getPages(); } return $totalPages; } public function getDepartmentName(): string { return $this->name; } public function getWorkers(): array { return $this->workers; } public function getWorker(int $number): AbstractWorker { return $this->workers[$number]; } public function deleteWorker(int $number): void { unset($this->workers[$number]); } public function sortWorkers(): void { sort($this->workers); } } class Company { private $departments = array(); public function addDepartment(Department $department): void { $this->departments[] = $department; } public function getDepartments(): array { return $this->departments; } public function getDepartmentCount(): int { return count($this->departments); } } class Tabel { private function padLeft($value, $columnLength): void { echo $value; echo str_repeat(" ", $columnLength - mb_strlen($value)); } private function printRow(string $name, $count, $salary, $coffee, $pages, $salaryDividePages): void { $col1 = 15; $col2 = 10; $col3 = 10; $col4 = 8; $col5 = 8; $col6 = 15; echo $this->padLeft($name, $col1) . $this->padLeft($count, $col2) . $this->padLeft($salary, $col3) . $this->padLeft($coffee, $col4) . $this->padLeft($pages, $col5) . $this->padLeft($salaryDividePages, $col6) . "\n"; } public function printTabel(Company $company): void { $this->printRow("Департамент", "сотр.", "тугр.", "кофе", "стр", "тугр./стр."); echo "\n"; foreach ($company->getDepartments() as $department) { $this->printRow($department->getDepartmentName(), $department->getNumberWorkers(), $department->getDepartmentSalary(), $department->getDepartmentCoffee(), $department->getDepartmentPages(), round($department->getDepartmentSalary() / $department->getDepartmentPages(), 1)); } echo "\n"; $count = 0; $salary = 0; $coffee = 0; $pages = 0; $salaryDividePages = 0; foreach ($company->getDepartments() as $department) { $count += $department->getNumberWorkers(); $salary += $department->getDepartmentSalary(); $coffee += $department->getDepartmentCoffee(); $pages += $department->getDepartmentPages(); $salaryDividePages += round($salary / $pages, 1); } $this->printRow("Всего", $count, $salary, $coffee, $pages, $salaryDividePages); $this->printRow("Среднее", round($count / $company->getDepartmentCount(), 1), round($salary / $company->getDepartmentCount(), 1), round($coffee / $company->getDepartmentCount(), 1), round($pages / $company->getDepartmentCount(), 1), round($salaryDividePages / $company->getDepartmentCount(), 1)); } } class HiringWorkers { public function addWorkersToDepartment(Department $department, string $profession, int $count, int $rang, int $isBoss): void { if ($profession == Manager::class){ for ($i = 0; $i < $count; $i++){ $department->addWorker(new Manager($rang, $isBoss)); } } elseif ($profession == Marketer::class){ for ($i = 0; $i < $count; $i++){ $department->addWorker(new Marketer($rang, $isBoss)); } } elseif ($profession == Engineer::class){ for ($i = 0; $i < $count; $i++){ $department->addWorker(new Engineer ($rang, $isBoss)); } } elseif ($profession == Analyst::class){ for ($i = 0; $i < $count; $i++){ $department->addWorker(new Analyst ($rang, $isBoss)); } } } } $vektor = new Company; $tabel = new Tabel; $hiringWorkers = new HiringWorkers; $departmentOfProcurement = new Department("Закупок"); $hiringWorkers->addWorkersToDepartment($departmentOfProcurement, "Manager", 9, 1, 0); $hiringWorkers->addWorkersToDepartment($departmentOfProcurement, "Manager", 3, 2, 0); $hiringWorkers->addWorkersToDepartment($departmentOfProcurement, "Manager", 2, 3, 0); $hiringWorkers->addWorkersToDepartment($departmentOfProcurement, "Marketer", 2, 1, 0); $hiringWorkers->addWorkersToDepartment($departmentOfProcurement, "Manager", 1, 2, 1); $departmentOfSales = new Department("Продаж"); $hiringWorkers->addWorkersToDepartment($departmentOfSales, "Manager", 12, 1, 0); $hiringWorkers->addWorkersToDepartment($departmentOfSales, "Marketer", 6, 1, 0); $hiringWorkers->addWorkersToDepartment($departmentOfSales, "Analyst", 3, 1, 0); $hiringWorkers->addWorkersToDepartment($departmentOfSales, "Analyst", 2, 2, 0); $hiringWorkers->addWorkersToDepartment($departmentOfSales, "Marketer", 1, 2, 1); $departmentOfAdvertising = new Department("Рекламы"); $hiringWorkers->addWorkersToDepartment($departmentOfAdvertising, "Marketer", 15, 1, 0); $hiringWorkers->addWorkersToDepartment($departmentOfAdvertising, "Marketer", 10, 2, 0); $hiringWorkers->addWorkersToDepartment($departmentOfAdvertising, "Manager", 8, 1, 0); $hiringWorkers->addWorkersToDepartment($departmentOfAdvertising, "Engineer", 2, 1, 0); $hiringWorkers->addWorkersToDepartment($departmentOfAdvertising, "Marketer", 1, 3, 1); $departmentOfLogistics = new Department("Логистики"); $hiringWorkers->addWorkersToDepartment($departmentOfLogistics, "Manager", 13, 1, 0); $hiringWorkers->addWorkersToDepartment($departmentOfLogistics, "Manager", 5, 2, 0); $hiringWorkers->addWorkersToDepartment($departmentOfLogistics, "Engineer", 5, 1, 0); $hiringWorkers->addWorkersToDepartment($departmentOfLogistics, "Manager", 1, 1, 1); $vektor->addDepartment($departmentOfProcurement); $vektor->addDepartment($departmentOfSales); $vektor->addDepartment($departmentOfAdvertising); $vektor->addDepartment($departmentOfLogistics); $tabel->printTabel($vektor);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  (null)
number of ops:  177
compiled vars:  !0 = $vektor, !1 = $tabel, !2 = $hiringWorkers, !3 = $departmentOfProcurement, !4 = $departmentOfSales, !5 = $departmentOfAdvertising, !6 = $departmentOfLogistics
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                                   'error_reporting'
          1        SEND_VAL                                                     -1
          2        DO_ICALL                                                     
  322     3        NEW                                                  $8      'Company'
          4        DO_FCALL                                          0          
          5        ASSIGN                                                       !0, $8
  323     6        NEW                                                  $11     'Tabel'
          7        DO_FCALL                                          0          
          8        ASSIGN                                                       !1, $11
  324     9        NEW                                                  $14     'HiringWorkers'
         10        DO_FCALL                                          0          
         11        ASSIGN                                                       !2, $14
  326    12        NEW                                                  $17     'Department'
         13        SEND_VAL_EX                                                  '%D0%97%D0%B0%D0%BA%D1%83%D0%BF%D0%BE%D0%BA'
         14        DO_FCALL                                          0          
         15        ASSIGN                                                       !3, $17
  327    16        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         17        SEND_VAR_EX                                                  !3
         18        SEND_VAL_EX                                                  'Manager'
         19        SEND_VAL_EX                                                  9
         20        SEND_VAL_EX                                                  1
         21        SEND_VAL_EX                                                  0
         22        DO_FCALL                                          0          
  328    23        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         24        SEND_VAR_EX                                                  !3
         25        SEND_VAL_EX                                                  'Manager'
         26        SEND_VAL_EX                                                  3
         27        SEND_VAL_EX                                                  2
         28        SEND_VAL_EX                                                  0
         29        DO_FCALL                                          0          
  329    30        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         31        SEND_VAR_EX                                                  !3
         32        SEND_VAL_EX                                                  'Manager'
         33        SEND_VAL_EX                                                  2
         34        SEND_VAL_EX                                                  3
         35        SEND_VAL_EX                                                  0
         36        DO_FCALL                                          0          
  330    37        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         38        SEND_VAR_EX                                                  !3
         39        SEND_VAL_EX                                                  'Marketer'
         40        SEND_VAL_EX                                                  2
         41        SEND_VAL_EX                                                  1
         42        SEND_VAL_EX                                                  0
         43        DO_FCALL                                          0          
  331    44        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         45        SEND_VAR_EX                                                  !3
         46        SEND_VAL_EX                                                  'Manager'
         47        SEND_VAL_EX                                                  1
         48        SEND_VAL_EX                                                  2
         49        SEND_VAL_EX                                                  1
         50        DO_FCALL                                          0          
  333    51        NEW                                                  $25     'Department'
         52        SEND_VAL_EX                                                  '%D0%9F%D1%80%D0%BE%D0%B4%D0%B0%D0%B6'
         53        DO_FCALL                                          0          
         54        ASSIGN                                                       !4, $25
  334    55        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         56        SEND_VAR_EX                                                  !4
         57        SEND_VAL_EX                                                  'Manager'
         58        SEND_VAL_EX                                                  12
         59        SEND_VAL_EX                                                  1
         60        SEND_VAL_EX                                                  0
         61        DO_FCALL                                          0          
  335    62        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         63        SEND_VAR_EX                                                  !4
         64        SEND_VAL_EX                                                  'Marketer'
         65        SEND_VAL_EX                                                  6
         66        SEND_VAL_EX                                                  1
         67        SEND_VAL_EX                                                  0
         68        DO_FCALL                                          0          
  336    69        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         70        SEND_VAR_EX                                                  !4
         71        SEND_VAL_EX                                                  'Analyst'
         72        SEND_VAL_EX                                                  3
         73        SEND_VAL_EX                                                  1
         74        SEND_VAL_EX                                                  0
         75        DO_FCALL                                          0          
  337    76        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         77        SEND_VAR_EX                                                  !4
         78        SEND_VAL_EX                                                  'Analyst'
         79        SEND_VAL_EX                                                  2
         80        SEND_VAL_EX                                                  2
         81        SEND_VAL_EX                                                  0
         82        DO_FCALL                                          0          
  338    83        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         84        SEND_VAR_EX                                                  !4
         85        SEND_VAL_EX                                                  'Marketer'
         86        SEND_VAL_EX                                                  1
         87        SEND_VAL_EX                                                  2
         88        SEND_VAL_EX                                                  1
         89        DO_FCALL                                          0          
  340    90        NEW                                                  $33     'Department'
         91        SEND_VAL_EX                                                  '%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D1%8B'
         92        DO_FCALL                                          0          
         93        ASSIGN                                                       !5, $33
  341    94        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
         95        SEND_VAR_EX                                                  !5
         96        SEND_VAL_EX                                                  'Marketer'
         97        SEND_VAL_EX                                                  15
         98        SEND_VAL_EX                                                  1
         99        SEND_VAL_EX                                                  0
        100        DO_FCALL                                          0          
  342   101        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        102        SEND_VAR_EX                                                  !5
        103        SEND_VAL_EX                                                  'Marketer'
        104        SEND_VAL_EX                                                  10
        105        SEND_VAL_EX                                                  2
        106        SEND_VAL_EX                                                  0
        107        DO_FCALL                                          0          
  343   108        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        109        SEND_VAR_EX                                                  !5
        110        SEND_VAL_EX                                                  'Manager'
        111        SEND_VAL_EX                                                  8
        112        SEND_VAL_EX                                                  1
        113        SEND_VAL_EX                                                  0
        114        DO_FCALL                                          0          
  344   115        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        116        SEND_VAR_EX                                                  !5
        117        SEND_VAL_EX                                                  'Engineer'
        118        SEND_VAL_EX                                                  2
        119        SEND_VAL_EX                                                  1
        120        SEND_VAL_EX                                                  0
        121        DO_FCALL                                          0          
  345   122        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        123        SEND_VAR_EX                                                  !5
        124        SEND_VAL_EX                                                  'Marketer'
        125        SEND_VAL_EX                                                  1
        126        SEND_VAL_EX                                                  3
        127        SEND_VAL_EX                                                  1
        128        DO_FCALL                                          0          
  347   129        NEW                                                  $41     'Department'
        130        SEND_VAL_EX                                                  '%D0%9B%D0%BE%D0%B3%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8'
        131        DO_FCALL                                          0          
        132        ASSIGN                                                       !6, $41
  348   133        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        134        SEND_VAR_EX                                                  !6
        135        SEND_VAL_EX                                                  'Manager'
        136        SEND_VAL_EX                                                  13
        137        SEND_VAL_EX                                                  1
        138        SEND_VAL_EX                                                  0
        139        DO_FCALL                                          0          
  349   140        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        141        SEND_VAR_EX                                                  !6
        142        SEND_VAL_EX                                                  'Manager'
        143        SEND_VAL_EX                                                  5
        144        SEND_VAL_EX                                                  2
        145        SEND_VAL_EX                                                  0
        146        DO_FCALL                                          0          
  350   147        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        148        SEND_VAR_EX                                                  !6
        149        SEND_VAL_EX                                                  'Engineer'
        150        SEND_VAL_EX                                                  5
        151        SEND_VAL_EX                                                  1
        152        SEND_VAL_EX                                                  0
        153        DO_FCALL                                          0          
  351   154        INIT_METHOD_CALL                                             !2, 'addWorkersToDepartment'
        155        SEND_VAR_EX                                                  !6
        156        SEND_VAL_EX                                                  'Manager'
        157        SEND_VAL_EX                                                  1
        158        SEND_VAL_EX                                                  1
        159        SEND_VAL_EX                                                  1
        160        DO_FCALL                                          0          
  353   161        INIT_METHOD_CALL                                             !0, 'addDepartment'
        162        SEND_VAR_EX                                                  !3
        163        DO_FCALL                                          0          
  354   164        INIT_METHOD_CALL                                             !0, 'addDepartment'
        165        SEND_VAR_EX                                                  !4
        166        DO_FCALL                                          0          
  355   167        INIT_METHOD_CALL                                             !0, 'addDepartment'
        168        SEND_VAR_EX                                                  !5
        169        DO_FCALL                                          0          
  356   170        INIT_METHOD_CALL                                             !0, 'addDepartment'
        171        SEND_VAR_EX                                                  !6
        172        DO_FCALL                                          0          
  358   173        INIT_METHOD_CALL                                             !1, 'printTabel'
        174        SEND_VAR_EX                                                  !0
        175        DO_FCALL                                          0          
        176      > RETURN                                                       1

Class AbstractWorker:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  __construct
number of ops:  7
compiled vars:  !0 = $rank, !1 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   10     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
   12     2        ASSIGN_OBJ                                                   'rank'
          3        OP_DATA                                                      !0
   13     4        ASSIGN_OBJ                                                   'isBoss'
          5        OP_DATA                                                      !1
   14     6      > RETURN                                                       null

End of function __construct

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 12
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
Branch analysis from position: 16
Branch analysis from position: 12
filename:       /in/QfVAk
function name:  getSalary
number of ops:  20
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   18     0  E >   INIT_METHOD_CALL                                             'getBasicSalary'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   20     3        FETCH_OBJ_R                                          ~3      'rank'
          4        IS_EQUAL                                                     ~3, 2
          5      > JMPZ                                                         ~4, ->8
   21     6    >   ASSIGN_OP                                         3          !0, 1.25
   20     7      > JMP                                                          ->12
   22     8    >   FETCH_OBJ_R                                          ~6      'rank'
          9        IS_EQUAL                                                     ~6, 3
         10      > JMPZ                                                         ~7, ->12
   23    11    >   ASSIGN_OP                                         3          !0, 1.5
   26    12    >   FETCH_OBJ_R                                          ~9      'isBoss'
         13        IS_EQUAL                                                     ~9, 1
         14      > JMPZ                                                         ~10, ->16
   27    15    >   ASSIGN_OP                                         3          !0, 1.5
   30    16    >   VERIFY_RETURN_TYPE                                           !0
         17      > RETURN                                                       !0
   31    18*       VERIFY_RETURN_TYPE                                           
         19*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/QfVAk
function name:  getCoffee
number of ops:  11
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   35     0  E >   INIT_METHOD_CALL                                             'getBasicCoffee'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   37     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, 1
          5      > JMPZ                                                         ~4, ->7
   38     6    >   ASSIGN_OP                                         3          !0, 2
   41     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   42     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/QfVAk
function name:  getPages
number of ops:  11
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   46     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   48     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, 1
          5      > JMPZ                                                         ~4, ->7
   49     6    >   ASSIGN                                                       !0, 0
   52     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   53     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getpages

Function getbasicsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicSalary
number of ops:  2
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   55     0  E >   VERIFY_RETURN_TYPE                                           
          1      > RETURN                                                       null

End of function getbasicsalary

Function getbasiccoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicCoffee
number of ops:  2
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   56     0  E >   VERIFY_RETURN_TYPE                                           
          1      > RETURN                                                       null

End of function getbasiccoffee

Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicPages
number of ops:  2
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   57     0  E >   VERIFY_RETURN_TYPE                                           
          1      > RETURN                                                       null

End of function getbasicpages

End of class AbstractWorker.

Class Manager:
Function getbasicsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicSalary
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   64     0  E > > RETURN                                                       500
   65     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasicsalary

Function getbasiccoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicCoffee
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   69     0  E > > RETURN                                                       20
   70     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasiccoffee

Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicPages
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   74     0  E > > RETURN                                                       200
   75     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  __construct
number of ops:  7
compiled vars:  !0 = $rank, !1 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   10     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
   12     2        ASSIGN_OBJ                                                   'rank'
          3        OP_DATA                                                      !0
   13     4        ASSIGN_OBJ                                                   'isBoss'
          5        OP_DATA                                                      !1
   14     6      > RETURN                                                       null

End of function __construct

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 12
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
Branch analysis from position: 16
Branch analysis from position: 12
filename:       /in/QfVAk
function name:  getSalary
number of ops:  20
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   18     0  E >   INIT_METHOD_CALL                                             'getBasicSalary'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   20     3        FETCH_OBJ_R                                          ~3      'rank'
          4        IS_EQUAL                                                     ~3, 2
          5      > JMPZ                                                         ~4, ->8
   21     6    >   ASSIGN_OP                                         3          !0, 1.25
   20     7      > JMP                                                          ->12
   22     8    >   FETCH_OBJ_R                                          ~6      'rank'
          9        IS_EQUAL                                                     ~6, 3
         10      > JMPZ                                                         ~7, ->12
   23    11    >   ASSIGN_OP                                         3          !0, 1.5
   26    12    >   FETCH_OBJ_R                                          ~9      'isBoss'
         13        IS_EQUAL                                                     ~9, 1
         14      > JMPZ                                                         ~10, ->16
   27    15    >   ASSIGN_OP                                         3          !0, 1.5
   30    16    >   VERIFY_RETURN_TYPE                                           !0
         17      > RETURN                                                       !0
   31    18*       VERIFY_RETURN_TYPE                                           
         19*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/QfVAk
function name:  getCoffee
number of ops:  11
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   35     0  E >   INIT_METHOD_CALL                                             'getBasicCoffee'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   37     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, 1
          5      > JMPZ                                                         ~4, ->7
   38     6    >   ASSIGN_OP                                         3          !0, 2
   41     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   42     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/QfVAk
function name:  getPages
number of ops:  11
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   46     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   48     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, 1
          5      > JMPZ                                                         ~4, ->7
   49     6    >   ASSIGN                                                       !0, 0
   52     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   53     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getpages

End of class Manager.

Class Marketer:
Function getbasicsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicSalary
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   82     0  E > > RETURN                                                       400
   83     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasicsalary

Function getbasiccoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicCoffee
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   87     0  E > > RETURN                                                       15
   88     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasiccoffee

Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicPages
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   92     0  E > > RETURN                                                       150
   93     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  __construct
number of ops:  7
compiled vars:  !0 = $rank, !1 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   10     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
   12     2        ASSIGN_OBJ                                                   'rank'
          3        OP_DATA                                                      !0
   13     4        ASSIGN_OBJ                                                   'isBoss'
          5        OP_DATA                                                      !1
   14     6      > RETURN                                                       null

End of function __construct

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 12
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
Branch analysis from position: 16
Branch analysis from position: 12
filename:       /in/QfVAk
function name:  getSalary
number of ops:  20
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   18     0  E >   INIT_METHOD_CALL                                             'getBasicSalary'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   20     3        FETCH_OBJ_R                                          ~3      'rank'
          4        IS_EQUAL                                                     ~3, 2
          5      > JMPZ                                                         ~4, ->8
   21     6    >   ASSIGN_OP                                         3          !0, 1.25
   20     7      > JMP                                                          ->12
   22     8    >   FETCH_OBJ_R                                          ~6      'rank'
          9        IS_EQUAL                                                     ~6, 3
         10      > JMPZ                                                         ~7, ->12
   23    11    >   ASSIGN_OP                                         3          !0, 1.5
   26    12    >   FETCH_OBJ_R                                          ~9      'isBoss'
         13        IS_EQUAL                                                     ~9, 1
         14      > JMPZ                                                         ~10, ->16
   27    15    >   ASSIGN_OP                                         3          !0, 1.5
   30    16    >   VERIFY_RETURN_TYPE                                           !0
         17      > RETURN                                                       !0
   31    18*       VERIFY_RETURN_TYPE                                           
         19*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/QfVAk
function name:  getCoffee
number of ops:  11
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   35     0  E >   INIT_METHOD_CALL                                             'getBasicCoffee'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   37     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, 1
          5      > JMPZ                                                         ~4, ->7
   38     6    >   ASSIGN_OP                                         3          !0, 2
   41     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   42     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/QfVAk
function name:  getPages
number of ops:  11
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   46     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   48     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, 1
          5      > JMPZ                                                         ~4, ->7
   49     6    >   ASSIGN                                                       !0, 0
   52     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   53     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getpages

End of class Marketer.

Class Engineer:
Function getbasicsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicSalary
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  100     0  E > > RETURN                                                       200
  101     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasicsalary

Function getbasiccoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicCoffee
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  105     0  E > > RETURN                                                       5
  106     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasiccoffee

Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicPages
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  110     0  E > > RETURN                                                       50
  111     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  __construct
number of ops:  7
compiled vars:  !0 = $rank, !1 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   10     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
   12     2        ASSIGN_OBJ                                                   'rank'
          3        OP_DATA                                                      !0
   13     4        ASSIGN_OBJ                                                   'isBoss'
          5        OP_DATA                                                      !1
   14     6      > RETURN                                                       null

End of function __construct

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 12
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
Branch analysis from position: 16
Branch analysis from position: 12
filename:       /in/QfVAk
function name:  getSalary
number of ops:  20
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   18     0  E >   INIT_METHOD_CALL                                             'getBasicSalary'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   20     3        FETCH_OBJ_R                                          ~3      'rank'
          4        IS_EQUAL                                                     ~3, 2
          5      > JMPZ                                                         ~4, ->8
   21     6    >   ASSIGN_OP                                         3          !0, 1.25
   20     7      > JMP                                                          ->12
   22     8    >   FETCH_OBJ_R                                          ~6      'rank'
          9        IS_EQUAL                                                     ~6, 3
         10      > JMPZ                                                         ~7, ->12
   23    11    >   ASSIGN_OP                                         3          !0, 1.5
   26    12    >   FETCH_OBJ_R                                          ~9      'isBoss'
         13        IS_EQUAL                                                     ~9, 1
         14      > JMPZ                                                         ~10, ->16
   27    15    >   ASSIGN_OP                                         3          !0, 1.5
   30    16    >   VERIFY_RETURN_TYPE                                           !0
         17      > RETURN                                                       !0
   31    18*       VERIFY_RETURN_TYPE                                           
         19*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/QfVAk
function name:  getCoffee
number of ops:  11
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   35     0  E >   INIT_METHOD_CALL                                             'getBasicCoffee'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   37     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, 1
          5      > JMPZ                                                         ~4, ->7
   38     6    >   ASSIGN_OP                                         3          !0, 2
   41     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   42     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/QfVAk
function name:  getPages
number of ops:  11
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   46     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   48     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, 1
          5      > JMPZ                                                         ~4, ->7
   49     6    >   ASSIGN                                                       !0, 0
   52     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   53     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getpages

End of class Engineer.

Class Analyst:
Function getbasicsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicSalary
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  118     0  E > > RETURN                                                       800
  119     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasicsalary

Function getbasiccoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicCoffee
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  123     0  E > > RETURN                                                       50
  124     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasiccoffee

Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getBasicPages
number of ops:  3
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  128     0  E > > RETURN                                                       5
  129     1*       VERIFY_RETURN_TYPE                                           
          2*     > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  __construct
number of ops:  7
compiled vars:  !0 = $rank, !1 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   10     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
   12     2        ASSIGN_OBJ                                                   'rank'
          3        OP_DATA                                                      !0
   13     4        ASSIGN_OBJ                                                   'isBoss'
          5        OP_DATA                                                      !1
   14     6      > RETURN                                                       null

End of function __construct

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 12
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
Branch analysis from position: 16
Branch analysis from position: 12
filename:       /in/QfVAk
function name:  getSalary
number of ops:  20
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   18     0  E >   INIT_METHOD_CALL                                             'getBasicSalary'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   20     3        FETCH_OBJ_R                                          ~3      'rank'
          4        IS_EQUAL                                                     ~3, 2
          5      > JMPZ                                                         ~4, ->8
   21     6    >   ASSIGN_OP                                         3          !0, 1.25
   20     7      > JMP                                                          ->12
   22     8    >   FETCH_OBJ_R                                          ~6      'rank'
          9        IS_EQUAL                                                     ~6, 3
         10      > JMPZ                                                         ~7, ->12
   23    11    >   ASSIGN_OP                                         3          !0, 1.5
   26    12    >   FETCH_OBJ_R                                          ~9      'isBoss'
         13        IS_EQUAL                                                     ~9, 1
         14      > JMPZ                                                         ~10, ->16
   27    15    >   ASSIGN_OP                                         3          !0, 1.5
   30    16    >   VERIFY_RETURN_TYPE                                           !0
         17      > RETURN                                                       !0
   31    18*       VERIFY_RETURN_TYPE                                           
         19*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/QfVAk
function name:  getCoffee
number of ops:  11
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   35     0  E >   INIT_METHOD_CALL                                             'getBasicCoffee'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   37     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, 1
          5      > JMPZ                                                         ~4, ->7
   38     6    >   ASSIGN_OP                                         3          !0, 2
   41     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   42     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/QfVAk
function name:  getPages
number of ops:  11
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   46     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   48     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, 1
          5      > JMPZ                                                         ~4, ->7
   49     6    >   ASSIGN                                                       !0, 0
   52     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   53     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getpages

End of class Analyst.

Class Department:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  __construct
number of ops:  4
compiled vars:  !0 = $name
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  137     0  E >   RECV                                                 !0      
  139     1        ASSIGN_OBJ                                                   'name'
          2        OP_DATA                                                      !0
  140     3      > RETURN                                                       null

End of function __construct

Function addworker:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  addWorker
number of ops:  5
compiled vars:  !0 = $worker
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  142     0  E >   RECV                                                 !0      
  144     1        FETCH_OBJ_W                                          $1      'workers'
          2        ASSIGN_DIM                                                   $1
          3        OP_DATA                                                      !0
  145     4      > RETURN                                                       null

End of function addworker

Function getnumberworkers:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getNumberWorkers
number of ops:  6
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  149     0  E >   FETCH_OBJ_R                                          ~0      'workers'
          1        COUNT                                                ~1      ~0
          2        VERIFY_RETURN_TYPE                                           ~1
          3      > RETURN                                                       ~1
  150     4*       VERIFY_RETURN_TYPE                                           
          5*     > RETURN                                                       null

End of function getnumberworkers

Function getdepartmentsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 8
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 8
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
filename:       /in/QfVAk
function name:  getDepartmentSalary
number of ops:  13
compiled vars:  !0 = $totalSalary, !1 = $worker
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  154     0  E >   ASSIGN                                                       !0, 0
  156     1        FETCH_OBJ_R                                          ~3      'workers'
          2      > FE_RESET_R                                           $4      ~3, ->8
          3    > > FE_FETCH_R                                                   $4, !1, ->8
  157     4    >   INIT_METHOD_CALL                                             !1, 'getSalary'
          5        DO_FCALL                                          0  $5      
          6        ASSIGN_OP                                         1          !0, $5
  156     7      > JMP                                                          ->3
          8    >   FE_FREE                                                      $4
  160     9        VERIFY_RETURN_TYPE                                           !0
         10      > RETURN                                                       !0
  161    11*       VERIFY_RETURN_TYPE                                           
         12*     > RETURN                                                       null

End of function getdepartmentsalary

Function getdepartmentcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 8
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 8
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
filename:       /in/QfVAk
function name:  getDepartmentCoffee
number of ops:  13
compiled vars:  !0 = $totalCoffee, !1 = $worker
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  165     0  E >   ASSIGN                                                       !0, 0
  167     1        FETCH_OBJ_R                                          ~3      'workers'
          2      > FE_RESET_R                                           $4      ~3, ->8
          3    > > FE_FETCH_R                                                   $4, !1, ->8
  168     4    >   INIT_METHOD_CALL                                             !1, 'getCoffee'
          5        DO_FCALL                                          0  $5      
          6        ASSIGN_OP                                         1          !0, $5
  167     7      > JMP                                                          ->3
          8    >   FE_FREE                                                      $4
  171     9        VERIFY_RETURN_TYPE                                           !0
         10      > RETURN                                                       !0
  172    11*       VERIFY_RETURN_TYPE                                           
         12*     > RETURN                                                       null

End of function getdepartmentcoffee

Function getdepartmentpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 8
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 8
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
filename:       /in/QfVAk
function name:  getDepartmentPages
number of ops:  13
compiled vars:  !0 = $totalPages, !1 = $worker
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  176     0  E >   ASSIGN                                                       !0, 0
  178     1        FETCH_OBJ_R                                          ~3      'workers'
          2      > FE_RESET_R                                           $4      ~3, ->8
          3    > > FE_FETCH_R                                                   $4, !1, ->8
  179     4    >   INIT_METHOD_CALL                                             !1, 'getPages'
          5        DO_FCALL                                          0  $5      
          6        ASSIGN_OP                                         1          !0, $5
  178     7      > JMP                                                          ->3
          8    >   FE_FREE                                                      $4
  182     9        VERIFY_RETURN_TYPE                                           !0
         10      > RETURN                                                       !0
  183    11*       VERIFY_RETURN_TYPE                                           
         12*     > RETURN                                                       null

End of function getdepartmentpages

Function getdepartmentname:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getDepartmentName
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  187     0  E >   FETCH_OBJ_R                                          ~0      'name'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
  188     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getdepartmentname

Function getworkers:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getWorkers
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  192     0  E >   FETCH_OBJ_R                                          ~0      'workers'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
  193     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getworkers

Function getworker:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getWorker
number of ops:  7
compiled vars:  !0 = $number
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  195     0  E >   RECV                                                 !0      
  197     1        FETCH_OBJ_R                                          ~1      'workers'
          2        FETCH_DIM_R                                          ~2      ~1, !0
          3        VERIFY_RETURN_TYPE                                           ~2
          4      > RETURN                                                       ~2
  198     5*       VERIFY_RETURN_TYPE                                           
          6*     > RETURN                                                       null

End of function getworker

Function deleteworker:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  deleteWorker
number of ops:  4
compiled vars:  !0 = $number
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  200     0  E >   RECV                                                 !0      
  202     1        FETCH_OBJ_UNSET                                      $1      'workers'
          2        UNSET_DIM                                                    $1, !0
  203     3      > RETURN                                                       null

End of function deleteworker

Function sortworkers:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  sortWorkers
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  207     0  E >   INIT_FCALL                                                   'sort'
          1        FETCH_OBJ_W                                          $0      'workers'
          2        SEND_REF                                                     $0
          3        DO_ICALL                                                     
  208     4      > RETURN                                                       null

End of function sortworkers

End of class Department.

Class Company:
Function adddepartment:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  addDepartment
number of ops:  5
compiled vars:  !0 = $department
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  215     0  E >   RECV                                                 !0      
  217     1        FETCH_OBJ_W                                          $1      'departments'
          2        ASSIGN_DIM                                                   $1
          3        OP_DATA                                                      !0
  218     4      > RETURN                                                       null

End of function adddepartment

Function getdepartments:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getDepartments
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  222     0  E >   FETCH_OBJ_R                                          ~0      'departments'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
  223     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getdepartments

Function getdepartmentcount:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  getDepartmentCount
number of ops:  6
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  227     0  E >   FETCH_OBJ_R                                          ~0      'departments'
          1        COUNT                                                ~1      ~0
          2        VERIFY_RETURN_TYPE                                           ~1
          3      > RETURN                                                       ~1
  228     4*       VERIFY_RETURN_TYPE                                           
          5*     > RETURN                                                       null

End of function getdepartmentcount

End of class Company.

Class Tabel:
Function padleft:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  padLeft
number of ops:  13
compiled vars:  !0 = $value, !1 = $columnLength
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  233     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
  235     2        ECHO                                                         !0
  236     3        INIT_FCALL                                                   'str_repeat'
          4        SEND_VAL                                                     '+'
          5        INIT_FCALL                                                   'mb_strlen'
          6        SEND_VAR                                                     !0
          7        DO_ICALL                                             $2      
          8        SUB                                                  ~3      !1, $2
          9        SEND_VAL                                                     ~3
         10        DO_ICALL                                             $4      
         11        ECHO                                                         $4
  237    12      > RETURN                                                       null

End of function padleft

Function printrow:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/QfVAk
function name:  printRow
number of ops:  44
compiled vars:  !0 = $name, !1 = $count, !2 = $salary, !3 = $coffee, !4 = $pages, !5 = $salaryDividePages, !6 = $col1, !7 = $col2, !8 = $col3, !9 = $col4, !10 = $col5, !11 = $col6
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  239     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
          2        RECV                                                 !2      
          3        RECV                                                 !3      
          4        RECV                                                 !4      
          5        RECV                                                 !5      
  241     6        ASSIGN                                                       !6, 15
  242     7        ASSIGN                                                       !7, 10
  243     8        ASSIGN                                                       !8, 10
  244     9        ASSIGN                                                       !9, 8
  245    10        ASSIGN                                                       !10, 8
  246    11        ASSIGN                                                       !11, 15
  248    12        INIT_METHOD_CALL                                             'padLeft'
         13        SEND_VAR                                                     !0
         14        SEND_VAR                                                     !6
         15        DO_FCALL                                          0  $18     
  249    16        INIT_METHOD_CALL                                             'padLeft'
         17        SEND_VAR                                                     !1
         18        SEND_VAR                                                     !7
         19        DO_FCALL                                          0  $19     
         20        CONCAT                                               ~20     $18, $19
  250    21        INIT_METHOD_CALL                                             'padLeft'
         22        SEND_VAR                                                     !2
         23        SEND_VAR                                                     !8
         24        DO_FCALL                                          0  $21     
         25        CONCAT                                               ~22     ~20, $21
  251    26        INIT_METHOD_CALL                                             'padLeft'
         27        SEND_VAR                                                     !3
         28        SEND_VAR                                                     !9
         29        DO_FCALL                                          0  $23     
         30        CONCAT                                               ~24     ~22, $23
  252    31        INIT_METHOD_CALL                                             'padLeft'
         32        SEND_VAR                                                     !4
         33        SEND_VAR                                                     !10
         34        DO_FCALL                                          0  $25     
         35        CONCAT                                               ~26     ~24, $25
  253    36        INIT_METHOD_CALL                                             'padLeft'
         37        SEND_VAR                                                     !5
         38        SEND_VAR                                                     !11
         39        DO_FCALL                                          0  $27     
         40        CONCAT                                               ~28     ~26, $27
         41        CONCAT                                               ~29     ~28, '%0A'
         42        ECHO                                                         ~29
  254    43      > RETURN                                                       null

End of function printrow

Function printtabel:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 13, Position 2 = 42
Branch analysis from position: 13
2 jumps found. (Code = 78) Position 1 = 14, Position 2 = 42
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
Branch analysis from position: 42
2 jumps found. (Code = 77) Position 1 = 52, Position 2 = 72
Branch analysis from position: 52
2 jumps found. (Code = 78) Position 1 = 53, Position 2 = 72
Branch analysis from position: 53
1 jumps found. (Code = 42) Position 1 = 52
Branch analysis from position: 52
Branch analysis from position: 72
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 72
Branch analysis from position: 42
filename:       /in/QfVAk
function name:  printTabel
number of ops:  125
compiled vars:  !0 = $company, !1 = $department, !2 = $count, !3 = $salary, !4 = $coffee, !5 = $pages, !6 = $salaryDividePages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  256     0  E >   RECV                                                 !0      
  258     1        INIT_METHOD_CALL                                             'printRow'
          2        SEND_VAL                                                     '%D0%94%D0%B5%D0%BF%D0%B0%D1%80%D1%82%D0%B0%D0%BC%D0%B5%D0%BD%D1%82'
          3        SEND_VAL                                                     '%D1%81%D0%BE%D1%82%D1%80.'
          4        SEND_VAL                                                     '%D1%82%D1%83%D0%B3%D1%80.'
          5        SEND_VAL                                                     '%D0%BA%D0%BE%D1%84%D0%B5'
          6        SEND_VAL                                                     '%D1%81%D1%82%D1%80'
          7        SEND_VAL                                                     '%D1%82%D1%83%D0%B3%D1%80.%2F%D1%81%D1%82%D1%80.'
          8        DO_FCALL                                          0          
  260     9        ECHO                                                         '%0A'
  262    10        INIT_METHOD_CALL                                             !0, 'getDepartments'
         11        DO_FCALL                                          0  $8      
         12      > FE_RESET_R                                           $9      $8, ->42
         13    > > FE_FETCH_R                                                   $9, !1, ->42
  263    14    >   INIT_METHOD_CALL                                             'printRow'
         15        INIT_METHOD_CALL                                             !1, 'getDepartmentName'
         16        DO_FCALL                                          0  $10     
         17        SEND_VAR                                                     $10
  264    18        INIT_METHOD_CALL                                             !1, 'getNumberWorkers'
         19        DO_FCALL                                          0  $11     
         20        SEND_VAR                                                     $11
  265    21        INIT_METHOD_CALL                                             !1, 'getDepartmentSalary'
         22        DO_FCALL                                          0  $12     
         23        SEND_VAR                                                     $12
  266    24        INIT_METHOD_CALL                                             !1, 'getDepartmentCoffee'
         25        DO_FCALL                                          0  $13     
         26        SEND_VAR                                                     $13
  267    27        INIT_METHOD_CALL                                             !1, 'getDepartmentPages'
         28        DO_FCALL                                          0  $14     
         29        SEND_VAR                                                     $14
  268    30        INIT_FCALL                                                   'round'
         31        INIT_METHOD_CALL                                             !1, 'getDepartmentSalary'
         32        DO_FCALL                                          0  $15     
         33        INIT_METHOD_CALL                                             !1, 'getDepartmentPages'
         34        DO_FCALL                                          0  $16     
         35        DIV                                                  ~17     $15, $16
         36        SEND_VAL                                                     ~17
         37        SEND_VAL                                                     1
         38        DO_ICALL                                             $18     
         39        SEND_VAR                                                     $18
  263    40        DO_FCALL                                          0          
  262    41      > JMP                                                          ->13
         42    >   FE_FREE                                                      $9
  271    43        ECHO                                                         '%0A'
  273    44        ASSIGN                                                       !2, 0
  274    45        ASSIGN                                                       !3, 0
  275    46        ASSIGN                                                       !4, 0
  276    47        ASSIGN                                                       !5, 0
  277    48        ASSIGN                                                       !6, 0
  279    49        INIT_METHOD_CALL                                             !0, 'getDepartments'
         50        DO_FCALL                                          0  $25     
         51      > FE_RESET_R                                           $26     $25, ->72
         52    > > FE_FETCH_R                                                   $26, !1, ->72
  280    53    >   INIT_METHOD_CALL                                             !1, 'getNumberWorkers'
         54        DO_FCALL                                          0  $27     
         55        ASSIGN_OP                                         1          !2, $27
  281    56        INIT_METHOD_CALL                                             !1, 'getDepartmentSalary'
         57        DO_FCALL                                          0  $29     
         58        ASSIGN_OP                                         1          !3, $29
  282    59        INIT_METHOD_CALL                                             !1, 'getDepartmentCoffee'
         60        DO_FCALL                                          0  $31     
         61        ASSIGN_OP                                         1          !4, $31
  283    62        INIT_METHOD_CALL                                             !1, 'getDepartmentPages'
         63        DO_FCALL                                          0  $33     
         64        ASSIGN_OP                                         1          !5, $33
  284    65        INIT_FCALL                                                   'round'
         66        DIV                                                  ~35     !3, !5
         67        SEND_VAL                                                     ~35
         68        SEND_VAL                                                     1
         69        DO_ICALL                                             $36     
         70        ASSIGN_OP                                         1          !6, $36
  279    71      > JMP                                                          ->52
         72    >   FE_FREE                                                      $26
  287    73        INIT_METHOD_CALL                                             'printRow'
         74        SEND_VAL                                                     '%D0%92%D1%81%D0%B5%D0%B3%D0%BE'
         75        SEND_VAR                                                     !2
         76        SEND_VAR                                                     !3
         77        SEND_VAR                                                     !4
         78        SEND_VAR                                                     !5
         79        SEND_VAR                                                     !6
         80        DO_FCALL                                          0          
  289    81        INIT_METHOD_CALL                                             'printRow'
         82        SEND_VAL                                                     '%D0%A1%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5'
  290    83        INIT_FCALL                                                   'round'
         84        INIT_METHOD_CALL                                             !0, 'getDepartmentCount'
         85        DO_FCALL                                          0  $39     
         86        DIV                                                  ~40     !2, $39
         87        SEND_VAL                                                     ~40
         88        SEND_VAL                                                     1
         89        DO_ICALL                                             $41     
         90        SEND_VAR                                                     $41
  291    91        INIT_FCALL                                                   'round'
         92        INIT_METHOD_CALL                                             !0, 'getDepartmentCount'
         93        DO_FCALL                                          0  $42     
         94        DIV                                                  ~43     !3, $42
         95        SEND_VAL                                                     ~43
         96        SEND_VAL                                                     1
         97        DO_ICALL                                             $44     
         98        SEND_VAR                                                     $44
  292    99        INIT_FCALL                                                   'round'
        100        INIT_METHOD_CALL                                             !0, 'getDepartmentCount'
        101        DO_FCALL                                          0  $45     
        102        DIV                                                  ~46     !4, $45
        103        SEND_VAL                                                     ~46
        104        SEND_VAL                                                     1
        105        DO_ICALL                                             $47     
        106        SEND_VAR                                                     $47
  293   107        INIT_FCALL                                                   'round'
        108        INIT_METHOD_CALL                                             !0, 'getDepartmentCount'
        109        DO_FCALL                                          0  $48     
        110        DIV                                                  ~49     !5, $48
        111        SEND_VAL                                                     ~49
        112        SEND_VAL                                                     1
        113        DO_ICALL                                             $50     
        114        SEND_VAR                                                     $50
  294   115        INIT_FCALL                                                   'round'
        116        INIT_METHOD_CALL                                             !0, 'getDepartmentCount'
        117        DO_FCALL                                          0  $51     
        118        DIV                                                  ~52     !6, $51
        119        SEND_VAL                                                     ~52
        120        SEND_VAL                                                     1
        121        DO_ICALL                                             $53     
        122        SEND_VAR                                                     $53
  289   123        DO_FCALL                                          0          
  295   124      > RETURN                                                       null

End of function printtabel

End of class Tabel.

Class HiringWorkers:
Function addworkerstodepartment:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 20
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 17
Branch analysis from position: 17
2 jumps found. (Code = 44) Position 1 = 19, Position 2 = 9
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 64
Branch analysis from position: 64
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 9
2 jumps found. (Code = 44) Position 1 = 19, Position 2 = 9
Branch analysis from position: 19
Branch analysis from position: 9
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 35
Branch analysis from position: 22
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
2 jumps found. (Code = 44) Position 1 = 34, Position 2 = 24
Branch analysis from position: 34
1 jumps found. (Code = 42) Position 1 = 64
Branch analysis from position: 64
Branch analysis from position: 24
2 jumps found. (Code = 44) Position 1 = 34, Position 2 = 24
Branch analysis from position: 34
Branch analysis from position: 24
Branch analysis from position: 35
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 50
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 47
Branch analysis from position: 47
2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 39
Branch analysis from position: 49
1 jumps found. (Code = 42) Position 1 = 64
Branch analysis from position: 64
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 39
Branch analysis from position: 49
Branch analysis from position: 39
Branch analysis from position: 50
2 jumps found. (Code = 43) Position 1 = 52, Position 2 = 64
Branch analysis from position: 52
1 jumps found. (Code = 42) Position 1 = 62
Branch analysis from position: 62
2 jumps found. (Code = 44) Position 1 = 64, Position 2 = 54
Branch analysis from position: 64
Branch analysis from position: 54
2 jumps found. (Code = 44) Position 1 = 64, Position 2 = 54
Branch analysis from position: 64
Branch analysis from position: 54
Branch analysis from position: 64
filename:       /in/QfVAk
function name:  addWorkersToDepartment
number of ops:  65
compiled vars:  !0 = $department, !1 = $profession, !2 = $count, !3 = $rang, !4 = $isBoss, !5 = $i
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  300     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
          2        RECV                                                 !2      
          3        RECV                                                 !3      
          4        RECV                                                 !4      
  302     5        IS_EQUAL                                                     !1, 'Manager'
          6      > JMPZ                                                         ~6, ->20
  303     7    >   ASSIGN                                                       !5, 0
          8      > JMP                                                          ->17
  304     9    >   INIT_METHOD_CALL                                             !0, 'addWorker'
         10        NEW                                                  $8      'Manager'
         11        SEND_VAR_EX                                                  !3
         12        SEND_VAR_EX                                                  !4
         13        DO_FCALL                                          0          
         14        SEND_VAR_NO_REF_EX                                           $8
         15        DO_FCALL                                          0          
  303    16        PRE_INC                                                      !5
         17    >   IS_SMALLER                                                   !5, !2
         18      > JMPNZ                                                        ~12, ->9
  302    19    > > JMP                                                          ->64
  306    20    >   IS_EQUAL                                                     !1, 'Marketer'
         21      > JMPZ                                                         ~13, ->35
  307    22    >   ASSIGN                                                       !5, 0
         23      > JMP                                                          ->32
  308    24    >   INIT_METHOD_CALL                                             !0, 'addWorker'
         25        NEW                                                  $15     'Marketer'
         26        SEND_VAR_EX                                                  !3
         27        SEND_VAR_EX                                                  !4
         28        DO_FCALL                                          0          
         29        SEND_VAR_NO_REF_EX                                           $15
         30        DO_FCALL                                          0          
  307    31        PRE_INC                                                      !5
         32    >   IS_SMALLER                                                   !5, !2
         33      > JMPNZ                                                        ~19, ->24
  306    34    > > JMP                                                          ->64
  310    35    >   IS_EQUAL                                                     !1, 'Engineer'
         36      > JMPZ                                                         ~20, ->50
  311    37    >   ASSIGN                                                       !5, 0
         38      > JMP                                                          ->47
  312    39    >   INIT_METHOD_CALL                                             !0, 'addWorker'
         40        NEW                                                  $22     'Engineer'
         41        SEND_VAR_EX                                                  !3
         42        SEND_VAR_EX                                                  !4
         43        DO_FCALL                                          0          
         44        SEND_VAR_NO_REF_EX                                           $22
         45        DO_FCALL                                          0          
  311    46        PRE_INC                                                      !5
         47    >   IS_SMALLER                                                   !5, !2
         48      > JMPNZ                                                        ~26, ->39
  310    49    > > JMP                                                          ->64
  314    50    >   IS_EQUAL                                                     !1, 'Analyst'
         51      > JMPZ                                                         ~27, ->64
  315    52    >   ASSIGN                                                       !5, 0
         53      > JMP                                                          ->62
  316    54    >   INIT_METHOD_CALL                                             !0, 'addWorker'
         55        NEW                                                  $29     'Analyst'
         56        SEND_VAR_EX                                                  !3
         57        SEND_VAR_EX                                                  !4
         58        DO_FCALL                                          0          
         59        SEND_VAR_NO_REF_EX                                           $29
         60        DO_FCALL                                          0          
  315    61        PRE_INC                                                      !5
         62    >   IS_SMALLER                                                   !5, !2
         63      > JMPNZ                                                        ~33, ->54
  319    64    > > RETURN                                                       null

End of function addworkerstodepartment

End of class HiringWorkers.

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
159.1 ms | 1845 KiB | 13 Q