CBPCalc::__construct: Bitrix method

      
<?php 
//  CBPCalc :: __construct()
//  /dist/bitrix/modules/bizproc/classes/general/calc.php:79

    /** @var CBPActivity $activity */
    
private $activity;
    private 
$arErrorsList = [];

    private static 
$weekHolidays;
    private static 
$yearHolidays;
    private static 
$startWorkDay;
    private static 
$endWorkDay;

    
// Operation priority
    
private $arPriority = [
        
'('  => 0,   ')'  => 1,     ';'   => 2,   '=' => 3,     '<' => 3,   '>' => 3,
        
'<=' => 3,   '>=' => 3,     '<>'  => 3,   '&' => 4,     '+' => 5,   '-' => 5,
        
'*'  => 6,   '/'  => 6,     '^'   => 7,   '%' => 8,     '-m' => 9,  '+m' => 9,
        
' '  => 10,  ':'  => 11,    'f'   => 12,
    ];

    
// Allowable functions
    
private $arAvailableFunctions = [
        
'abs' => ['args' => true'func' => 'FunctionAbs'],
        
'and' => ['args' => true'func' => 'FunctionAnd'],
        
'date' => ['args' => true'func' => 'FunctionDate'],
        
'dateadd' => ['args' => true'func' => 'FunctionDateAdd'],
        
'datediff' => ['args' => true'func' => 'FunctionDateDiff'],
        
'false' => ['args' => false'func' => 'FunctionFalse'],
        
'if' => ['args' => true'func' => 'FunctionIf'],
        
'intval' => ['args' => true'func' => 'FunctionIntval'],
        
'floatval' => ['args' => true'func' => 'FunctionFloatval'],
        
'numberformat' => ['args' => true'func' => 'FunctionNumberFormat'],
        
'min' => ['args' => true'func' => 'FunctionMin'],
        
'max' => ['args' => true'func' => 'FunctionMax'],
        
'rand' => ['args' => true'func' => 'FunctionRand'],
        
'round' => ['args' => true'func' => 'FunctionRound'],
        
'ceil' => ['args' => true'func' => 'FunctionCeil'],
        
'floor' => ['args' => true'func' => 'FunctionFloor'],
        
'not' => ['args' => true'func' => 'FunctionNot'],
        
'or' => ['args' => true'func' => 'FunctionOr'],
        
'substr' => ['args' => true'func' => 'FunctionSubstr'],
        
'strpos' => ['args' => true'func' => 'FunctionStrpos'],
        
'strlen' => ['args' => true'func' => 'FunctionStrlen'],
        
'implode' => ['args' => true'func' => 'FunctionImplode'],
        
'explode' => ['args' => true'func' => 'FunctionExplode'],
        
'randstring' => ['args' => true'func' => 'FunctionRandString'],
        
'true' => ['args' => false'func' => 'FunctionTrue'],
        
'convert' => ['args' => true'func' => 'FunctionConvert'],
        
'merge' => ['args' => true'func' => 'FunctionMerge'],
        
'addworkdays' => ['args' => true'func' => 'FunctionAddWorkDays'],
        
'workdateadd' => ['args' => true'func' => 'FunctionWorkDateAdd'],
        
'isworkday' => ['args' => true'func' => 'FunctionIsWorkDay'],
        
'isworktime' => ['args' => true'func' => 'FunctionIsWorkTime'],
        
'urlencode' => ['args' => true'func' => 'FunctionUrlencode'],
        
'touserdate' => ['args' => true'func' => 'FunctionToUserDate'],
        
'getuserdateoffset' => ['args' => true'func' => 'FunctionGetUserDateOffset'],
    ];

    
// Allowable errors
    
private $arAvailableErrors = [
        
=> 'Incorrect variable name - "#STR#"',
        
=> 'Empty',
        
=> 'Syntax error "#STR#"',
        
=> 'Unknown function "#STR#"',
        
=> 'Unmatched closing bracket ")"',
        
=> 'Unmatched opening bracket "("',
        
=> 'Division by zero',
        
=> 'Incorrect order of operands',
        
=> 'Incorrect arguments of function "#STR#"',
    ];

    const 
Operation 0;
    const 
Variable 1;
    const 
Constant 2;

    public function 
__construct(CBPActivity $activity)
    {
        
$this->activity $activity;
    }