Completed
Pull Request — master (#457)
by Claus
07:49
created

Context   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 30
rs 10
c 0
b 0
f 0
wmc 4
lcom 0
cbo 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 12 4
1
<?php
2
declare(strict_types=1);
3
4
namespace TYPO3Fluid\Fluid\Core\Parser;
5
6
class Context
7
{
8
    public const CONTEXT_ROOT = 0;
9
    public const CONTEXT_INLINE = 1;
10
    public const CONTEXT_TAG = 2;
11
    public const CONTEXT_ARRAY= 3;
12
    public const CONTEXT_QUOTED = 4;
13
    public const CONTEXT_ATTRIBUTES = 5;
14
    public const CONTEXT_DEAD = 6;
15
    public const CONTEXT_PROTECTED = 7;
16
    public const CONTEXT_ACCESSOR = 8;
17
18
    public $context = self::CONTEXT_ROOT;
19
    public $primaryMask = 0;
20
    public $secondaryMask = 0;
21
    public $bytes = [];
22
23
    public function __construct(int $context, string $tokens)
24
    {
25
        $this->context = $context;
26
        foreach (unpack('C*', $tokens) as $byte) {
27
            $this->bytes[] = $byte;
28
            if ($byte >= 64) {
29
                $this->secondaryMask |= (1 << ($byte - Splitter::MAP_SHIFT));
30
            } elseif ($byte < 64) {
31
                $this->primaryMask |= (1 << $byte);
32
            }
33
        }
34
    }
35
}
36