File tree Expand file tree Collapse file tree 2 files changed +25
-28
lines changed Expand file tree Collapse file tree 2 files changed +25
-28
lines changed Original file line number Diff line number Diff line change 2
2
3
3
namespace TwigCS \Token ;
4
4
5
- use Twig \Token as TwigToken ;
6
-
7
5
/**
8
6
* Class Token
9
7
*/
10
8
class Token
11
9
{
12
10
// From Twig\Token
13
- const EOF_TYPE = TwigToken:: EOF_TYPE ;
14
- const TEXT_TYPE = TwigToken:: TEXT_TYPE ;
15
- const BLOCK_START_TYPE = TwigToken:: BLOCK_START_TYPE ;
16
- const VAR_START_TYPE = TwigToken:: VAR_START_TYPE ;
17
- const BLOCK_END_TYPE = TwigToken:: BLOCK_END_TYPE ;
18
- const VAR_END_TYPE = TwigToken:: VAR_END_TYPE ;
19
- const NAME_TYPE = TwigToken:: NAME_TYPE ;
20
- const NUMBER_TYPE = TwigToken:: NUMBER_TYPE ;
21
- const STRING_TYPE = TwigToken:: STRING_TYPE ;
22
- const OPERATOR_TYPE = TwigToken:: OPERATOR_TYPE ;
23
- const PUNCTUATION_TYPE = TwigToken:: PUNCTUATION_TYPE ;
24
- const INTERPOLATION_START_TYPE = TwigToken:: INTERPOLATION_START_TYPE ;
25
- const INTERPOLATION_END_TYPE = TwigToken:: INTERPOLATION_END_TYPE ;
26
- const ARROW_TYPE = TwigToken:: ARROW_TYPE ;
11
+ const EOF_TYPE = - 1 ;
12
+ const TEXT_TYPE = 0 ;
13
+ const BLOCK_START_TYPE = 1 ;
14
+ const VAR_START_TYPE = 2 ;
15
+ const BLOCK_END_TYPE = 3 ;
16
+ const VAR_END_TYPE = 4 ;
17
+ const NAME_TYPE = 5 ;
18
+ const NUMBER_TYPE = 6 ;
19
+ const STRING_TYPE = 7 ;
20
+ const OPERATOR_TYPE = 8 ;
21
+ const PUNCTUATION_TYPE = 9 ;
22
+ const INTERPOLATION_START_TYPE = 10 ;
23
+ const INTERPOLATION_END_TYPE = 11 ;
24
+ const ARROW_TYPE = 12 ;
27
25
// New constants
28
26
const WHITESPACE_TYPE = 13 ;
29
27
const TAB_TYPE = 14 ;
Original file line number Diff line number Diff line change 4
4
5
5
use \Exception ;
6
6
use Twig \Environment ;
7
- use Twig \Lexer ;
8
7
use Twig \Source ;
9
8
10
9
/**
11
10
* An override of Twig's Lexer to add whitespace and new line detection.
12
11
*/
13
12
class Tokenizer
14
13
{
15
- const STATE_DATA = Lexer:: STATE_DATA ;
16
- const STATE_BLOCK = Lexer:: STATE_BLOCK ;
17
- const STATE_VAR = Lexer:: STATE_VAR ;
18
- const STATE_STRING = Lexer:: STATE_STRING ;
19
- const STATE_INTERPOLATION = Lexer:: STATE_INTERPOLATION ;
14
+ const STATE_DATA = 0 ;
15
+ const STATE_BLOCK = 1 ;
16
+ const STATE_VAR = 2 ;
17
+ const STATE_STRING = 3 ;
18
+ const STATE_INTERPOLATION = 4 ;
20
19
const STATE_COMMENT = 5 ;
21
20
22
- const REGEX_NAME = Lexer:: REGEX_NAME ;
23
- const REGEX_NUMBER = Lexer:: REGEX_NUMBER ;
24
- const REGEX_STRING = Lexer:: REGEX_STRING ;
25
- const REGEX_DQ_STRING_DELIM = Lexer:: REGEX_DQ_STRING_DELIM ;
26
- const REGEX_DQ_STRING_PART = Lexer:: REGEX_DQ_STRING_PART ;
27
- const PUNCTUATION = Lexer:: PUNCTUATION ;
21
+ const REGEX_NAME = ' /[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/A ' ;
22
+ const REGEX_NUMBER = ' /[0-9]+(?:\.[0-9]+)?/A ' ;
23
+ const REGEX_STRING = ' /"([^#" \\\\ ]*(?: \\\\ .[^#" \\\\ ]*)*)"| \' ([^ \'\\\\ ]*(?: \\\\ .[^ \'\\\\ ]*)*) \' /As ' ;
24
+ const REGEX_DQ_STRING_DELIM = ' /"/A ' ;
25
+ const REGEX_DQ_STRING_PART = ' /[^#" \\\\ ]*(?:(?: \\\\ .|#(?!\{))[^#" \\\\ ]*)*/As ' ;
26
+ const PUNCTUATION = ' ()[]{}?:.,| ' ;
28
27
29
28
/**
30
29
* @var array
You can’t perform that action at this time.
0 commit comments