1 | <?php |
||
7 | class State |
||
8 | { |
||
9 | const S_ANY = 0; |
||
10 | const S_IN_QUOTE = 1; |
||
11 | const S_IN_ESCAPE = 2; |
||
12 | const S_IN_QUOTE_ESCAPE = 4; |
||
13 | |||
14 | const S_ANY_TOKENS = Token::T_ANY & ~Token::T_DOUBLE_QUOTE; |
||
15 | const S_IN_QUOTE_TOKENS = Token::T_CONTENT | Token::T_QUOTE | Token::T_DOUBLE_QUOTE | Token::T_ESCAPE; |
||
16 | const S_IN_ESCAPE_TOKENS = Token::T_CONTENT; |
||
17 | const S_IN_QUOTE_ESCAPE_TOKENS = Token::T_CONTENT; |
||
18 | |||
19 | /** @var array */ |
||
20 | private $types; |
||
21 | /** @var State[] */ |
||
22 | private $states; |
||
23 | |||
24 | /** |
||
25 | * State constructor. |
||
26 | * |
||
27 | * @param array $types |
||
28 | */ |
||
29 | 20 | public function __construct(array $types) |
|
33 | |||
34 | /** |
||
35 | * @param int $token |
||
36 | * |
||
37 | * @return State|null |
||
38 | */ |
||
39 | 17 | public function getNextState($token) |
|
49 | |||
50 | /** |
||
51 | * @param int $tokenMask |
||
52 | * @param State $target |
||
53 | */ |
||
54 | 20 | public function addStateTarget($tokenMask, State $target) |
|
58 | |||
59 | /** |
||
60 | * @param int $position |
||
61 | * @param string $buffer |
||
62 | * |
||
63 | * @return Token |
||
64 | */ |
||
65 | 16 | public function match($position, $buffer) |
|
75 | } |
||
76 |