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 22
33namespace TwigCS \Token ;
44
5- use Twig \Token as TwigToken ;
6-
75/**
86 * Class Token
97 */
108class Token
119{
1210 // 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 ;
2725 // New constants
2826 const WHITESPACE_TYPE = 13 ;
2927 const TAB_TYPE = 14 ;
Original file line number Diff line number Diff line change 44
55use \Exception ;
66use Twig \Environment ;
7- use Twig \Lexer ;
87use Twig \Source ;
98
109/**
1110 * An override of Twig's Lexer to add whitespace and new line detection.
1211 */
1312class Tokenizer
1413{
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 ;
2019 const STATE_COMMENT = 5 ;
2120
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 = ' ()[]{}?:.,| ' ;
2827
2928 /**
3029 * @var array
You can’t perform that action at this time.
0 commit comments