Passed
Push — master ( f8ca3e...67643d )
by Edward
02:47
created

TokenMatcher   F

Complexity

Total Complexity 599

Size/Duplication

Total Lines 1734
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 1342
c 0
b 0
f 0
dl 0
loc 1734
rs 0.8
wmc 599

How to fix   Complexity   

Complex Class

Complex classes like TokenMatcher often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

While breaking up the class, it is a good idea to analyze how other classes use TokenMatcher, and based on these observations, apply Extract Interface, too.

1
<?php
2
/**
3
 * JSONPath token matcher.
4
 *
5
 * Auto-generated file, please don't edit manually.
6
 * Run following command to update this file:
7
 *     vendor/bin/phing json-path-matcher
8
 *
9
 * Phing version: 2.16.1
10
 */
11
12
namespace Remorhaz\JSON\Path;
13
14
use Remorhaz\JSON\Path\Parser\TokenType;
15
use Remorhaz\UniLex\IO\CharBufferInterface;
16
use Remorhaz\UniLex\Lexer\TokenFactoryInterface;
17
use Remorhaz\UniLex\Lexer\TokenMatcherInterface;
18
use Remorhaz\UniLex\Lexer\TokenMatcherTemplate;
19
20
class TokenMatcher extends TokenMatcherTemplate
21
{
22
23
    public function match(CharBufferInterface $buffer, TokenFactoryInterface $tokenFactory): bool
24
    {
25
        $context = $this->createContext($buffer, $tokenFactory);
26
        if ($context->getMode() == 'sqString') {
27
            goto stateSqString1;
28
        }
29
        if ($context->getMode() == 'sqEscape') {
30
            goto stateSqEscape1;
31
        }
32
        if ($context->getMode() == 'dqString') {
33
            goto stateDqString1;
34
        }
35
        if ($context->getMode() == 'dqEscape') {
36
            goto stateDqEscape1;
37
        }
38
        if ($context->getMode() == 'reString') {
39
            goto stateReString1;
40
        }
41
        if ($context->getMode() == 'reEscape') {
42
            goto stateReEscape1;
43
        }
44
        goto state1;
45
46
        state1:
47
        if ($context->getBuffer()->isEnd()) {
48
            goto error;
49
        }
50
        $char = $context->getBuffer()->getSymbol();
51
        if (0x2E == $char) {
52
            $context->getBuffer()->nextSymbol();
53
            goto state2;
54
        }
55
        if (0x28 == $char) {
56
            $context->getBuffer()->nextSymbol();
57
            $context->setNewToken(TokenType::LEFT_BRACKET);
58
            return true;
59
        }
60
        if (0x29 == $char) {
61
            $context->getBuffer()->nextSymbol();
62
            $context->setNewToken(TokenType::RIGHT_BRACKET);
63
            return true;
64
        }
65
        if (0x5B == $char) {
66
            $context->getBuffer()->nextSymbol();
67
            $context->setNewToken(TokenType::LEFT_SQUARE_BRACKET);
68
            return true;
69
        }
70
        if (0x5D == $char) {
71
            $context->getBuffer()->nextSymbol();
72
            $context->setNewToken(TokenType::RIGHT_SQUARE_BRACKET);
73
            return true;
74
        }
75
        if (0x2A == $char) {
76
            $context->getBuffer()->nextSymbol();
77
            $context->setNewToken(TokenType::STAR);
78
            return true;
79
        }
80
        if (0x2C == $char) {
81
            $context->getBuffer()->nextSymbol();
82
            $context->setNewToken(TokenType::COMMA);
83
            return true;
84
        }
85
        if (0x3F == $char) {
86
            $context->getBuffer()->nextSymbol();
87
            $context->setNewToken(TokenType::QUESTION);
88
            return true;
89
        }
90
        if (0x3A == $char) {
91
            $context->getBuffer()->nextSymbol();
92
            $context->setNewToken(TokenType::COLON);
93
            return true;
94
        }
95
        if (0x30 == $char) {
96
            $context->getBuffer()->nextSymbol();
97
            $context
98
                ->setNewToken(TokenType::INT)
99
                ->setTokenAttribute('text', $context->getSymbolString());
100
            return true;
101
        }
102
        if (0x31 <= $char && $char <= 0x39) {
103
            $context->getBuffer()->nextSymbol();
104
            goto state12;
105
        }
106
        if (0x2D == $char) {
107
            $context->getBuffer()->nextSymbol();
108
            $context->setNewToken(TokenType::HYPHEN);
109
            return true;
110
        }
111
        if (0x6E == $char) {
112
            $context->getBuffer()->nextSymbol();
113
            goto state14;
114
        }
115
        if (0x75 == $char) {
116
            $context->getBuffer()->nextSymbol();
117
            goto state15;
118
        }
119
        if (0x6C == $char) {
120
            $context->getBuffer()->nextSymbol();
121
            goto state15;
122
        }
123
        if (0x72 == $char) {
124
            $context->getBuffer()->nextSymbol();
125
            goto state15;
126
        }
127
        if (0x65 == $char) {
128
            $context->getBuffer()->nextSymbol();
129
            goto state15;
130
        }
131
        if (0x61 == $char) {
132
            $context->getBuffer()->nextSymbol();
133
            goto state15;
134
        }
135
        if (0x73 == $char) {
136
            $context->getBuffer()->nextSymbol();
137
            goto state15;
138
        }
139
        if (0x41 <= $char && $char <= 0x5A ||
140
            0x5F == $char ||
141
            0x62 <= $char && $char <= 0x64 ||
142
            0x67 <= $char && $char <= 0x6B ||
143
            0x6D == $char ||
144
            0x6F <= $char && $char <= 0x71 ||
145
            0x76 <= $char && $char <= 0x7A
146
        ) {
147
            $context->getBuffer()->nextSymbol();
148
            goto state15;
149
        }
150
        if (0x74 == $char) {
151
            $context->getBuffer()->nextSymbol();
152
            goto state16;
153
        }
154
        if (0x66 == $char) {
155
            $context->getBuffer()->nextSymbol();
156
            goto state17;
157
        }
158
        if (0x40 == $char) {
159
            $context->getBuffer()->nextSymbol();
160
            $context->setNewToken(TokenType::ROOT_RELATIVE);
161
            return true;
162
        }
163
        if (0x24 == $char) {
164
            $context->getBuffer()->nextSymbol();
165
            $context->setNewToken(TokenType::ROOT_ABSOLUTE);
166
            return true;
167
        }
168
        if (0x27 == $char) {
169
            $context->getBuffer()->nextSymbol();
170
            $context
171
                ->setNewToken(TokenType::SINGLE_QUOTE)
172
                ->setMode('sqString');
173
            return true;
174
        }
175
        if (0x22 == $char) {
176
            $context->getBuffer()->nextSymbol();
177
            $context
178
                ->setNewToken(TokenType::DOUBLE_QUOTE)
179
                ->setMode('dqString');
180
            return true;
181
        }
182
        if (0x3D == $char) {
183
            $context->getBuffer()->nextSymbol();
184
            goto state22;
185
        }
186
        if (0x21 == $char) {
187
            $context->getBuffer()->nextSymbol();
188
            goto state23;
189
        }
190
        if (0x3C == $char) {
191
            $context->getBuffer()->nextSymbol();
192
            goto state24;
193
        }
194
        if (0x3E == $char) {
195
            $context->getBuffer()->nextSymbol();
196
            goto state25;
197
        }
198
        if (0x2F == $char) {
199
            $context->getBuffer()->nextSymbol();
200
            $context
201
                ->setNewToken(TokenType::SLASH)
202
                ->setMode('reString');
203
            return true;
204
        }
205
        if (0x09 == $char || 0x0B == $char || 0x0C == $char || 0x20 == $char || 0xA0 == $char) {
206
            $context->getBuffer()->nextSymbol();
207
            goto state27;
208
        }
209
        if (0x7C == $char) {
210
            $context->getBuffer()->nextSymbol();
211
            goto state28;
212
        }
213
        if (0x26 == $char) {
214
            $context->getBuffer()->nextSymbol();
215
            goto state29;
216
        }
217
        goto error;
218
219
        state2:
220
        if ($context->getBuffer()->isEnd()) {
221
            goto finish2;
222
        }
223
        $char = $context->getBuffer()->getSymbol();
224
        if (0x2E == $char) {
225
            $context->getBuffer()->nextSymbol();
226
            $context->setNewToken(TokenType::DOUBLE_DOT);
227
            return true;
228
        }
229
        finish2:
230
        $context->setNewToken(TokenType::DOT);
231
        return true;
232
233
        state12:
234
        if ($context->getBuffer()->isEnd()) {
235
            goto finish12;
236
        }
237
        $char = $context->getBuffer()->getSymbol();
238
        if (0x30 == $char) {
239
            $context->getBuffer()->nextSymbol();
240
            goto state49;
241
        }
242
        if (0x31 <= $char && $char <= 0x39) {
243
            $context->getBuffer()->nextSymbol();
244
            goto state49;
245
        }
246
        finish12:
247
        $context
248
            ->setNewToken(TokenType::INT)
249
            ->setTokenAttribute('text', $context->getSymbolString());
250
        return true;
251
252
        state14:
253
        if ($context->getBuffer()->isEnd()) {
254
            goto finish14;
255
        }
256
        $char = $context->getBuffer()->getSymbol();
257
        if (0x30 == $char) {
258
            $context->getBuffer()->nextSymbol();
259
            goto state38;
260
        }
261
        if (0x31 <= $char && $char <= 0x39) {
262
            $context->getBuffer()->nextSymbol();
263
            goto state38;
264
        }
265
        if (0x6E == $char) {
266
            $context->getBuffer()->nextSymbol();
267
            goto state38;
268
        }
269
        if (0x6C == $char) {
270
            $context->getBuffer()->nextSymbol();
271
            goto state38;
272
        }
273
        if (0x74 == $char) {
274
            $context->getBuffer()->nextSymbol();
275
            goto state38;
276
        }
277
        if (0x72 == $char) {
278
            $context->getBuffer()->nextSymbol();
279
            goto state38;
280
        }
281
        if (0x65 == $char) {
282
            $context->getBuffer()->nextSymbol();
283
            goto state38;
284
        }
285
        if (0x66 == $char) {
286
            $context->getBuffer()->nextSymbol();
287
            goto state38;
288
        }
289
        if (0x61 == $char) {
290
            $context->getBuffer()->nextSymbol();
291
            goto state38;
292
        }
293
        if (0x73 == $char) {
294
            $context->getBuffer()->nextSymbol();
295
            goto state38;
296
        }
297
        if (0x41 <= $char && $char <= 0x5A ||
298
            0x5F == $char ||
299
            0x62 <= $char && $char <= 0x64 ||
300
            0x67 <= $char && $char <= 0x6B ||
301
            0x6D == $char ||
302
            0x6F <= $char && $char <= 0x71 ||
303
            0x76 <= $char && $char <= 0x7A
304
        ) {
305
            $context->getBuffer()->nextSymbol();
306
            goto state38;
307
        }
308
        if (0x40 == $char) {
309
            $context->getBuffer()->nextSymbol();
310
            goto state38;
311
        }
312
        if (0x24 == $char) {
313
            $context->getBuffer()->nextSymbol();
314
            goto state38;
315
        }
316
        if (0x75 == $char) {
317
            $context->getBuffer()->nextSymbol();
318
            goto state46;
319
        }
320
        finish14:
321
        $context
322
            ->setNewToken(TokenType::NAME)
323
            ->setTokenAttribute('text', $context->getSymbolString());
324
        return true;
325
326
        state15:
327
        if ($context->getBuffer()->isEnd()) {
328
            goto finish15;
329
        }
330
        $char = $context->getBuffer()->getSymbol();
331
        if (0x30 == $char) {
332
            $context->getBuffer()->nextSymbol();
333
            goto state38;
334
        }
335
        if (0x31 <= $char && $char <= 0x39) {
336
            $context->getBuffer()->nextSymbol();
337
            goto state38;
338
        }
339
        if (0x6E == $char) {
340
            $context->getBuffer()->nextSymbol();
341
            goto state38;
342
        }
343
        if (0x75 == $char) {
344
            $context->getBuffer()->nextSymbol();
345
            goto state38;
346
        }
347
        if (0x6C == $char) {
348
            $context->getBuffer()->nextSymbol();
349
            goto state38;
350
        }
351
        if (0x74 == $char) {
352
            $context->getBuffer()->nextSymbol();
353
            goto state38;
354
        }
355
        if (0x72 == $char) {
356
            $context->getBuffer()->nextSymbol();
357
            goto state38;
358
        }
359
        if (0x65 == $char) {
360
            $context->getBuffer()->nextSymbol();
361
            goto state38;
362
        }
363
        if (0x66 == $char) {
364
            $context->getBuffer()->nextSymbol();
365
            goto state38;
366
        }
367
        if (0x61 == $char) {
368
            $context->getBuffer()->nextSymbol();
369
            goto state38;
370
        }
371
        if (0x73 == $char) {
372
            $context->getBuffer()->nextSymbol();
373
            goto state38;
374
        }
375
        if (0x41 <= $char && $char <= 0x5A ||
376
            0x5F == $char ||
377
            0x62 <= $char && $char <= 0x64 ||
378
            0x67 <= $char && $char <= 0x6B ||
379
            0x6D == $char ||
380
            0x6F <= $char && $char <= 0x71 ||
381
            0x76 <= $char && $char <= 0x7A
382
        ) {
383
            $context->getBuffer()->nextSymbol();
384
            goto state38;
385
        }
386
        if (0x40 == $char) {
387
            $context->getBuffer()->nextSymbol();
388
            goto state38;
389
        }
390
        if (0x24 == $char) {
391
            $context->getBuffer()->nextSymbol();
392
            goto state38;
393
        }
394
        finish15:
395
        $context
396
            ->setNewToken(TokenType::NAME)
397
            ->setTokenAttribute('text', $context->getSymbolString());
398
        return true;
399
400
        state16:
401
        if ($context->getBuffer()->isEnd()) {
402
            goto finish16;
403
        }
404
        $char = $context->getBuffer()->getSymbol();
405
        if (0x30 == $char) {
406
            $context->getBuffer()->nextSymbol();
407
            goto state38;
408
        }
409
        if (0x31 <= $char && $char <= 0x39) {
410
            $context->getBuffer()->nextSymbol();
411
            goto state38;
412
        }
413
        if (0x6E == $char) {
414
            $context->getBuffer()->nextSymbol();
415
            goto state38;
416
        }
417
        if (0x75 == $char) {
418
            $context->getBuffer()->nextSymbol();
419
            goto state38;
420
        }
421
        if (0x6C == $char) {
422
            $context->getBuffer()->nextSymbol();
423
            goto state38;
424
        }
425
        if (0x74 == $char) {
426
            $context->getBuffer()->nextSymbol();
427
            goto state38;
428
        }
429
        if (0x65 == $char) {
430
            $context->getBuffer()->nextSymbol();
431
            goto state38;
432
        }
433
        if (0x66 == $char) {
434
            $context->getBuffer()->nextSymbol();
435
            goto state38;
436
        }
437
        if (0x61 == $char) {
438
            $context->getBuffer()->nextSymbol();
439
            goto state38;
440
        }
441
        if (0x73 == $char) {
442
            $context->getBuffer()->nextSymbol();
443
            goto state38;
444
        }
445
        if (0x41 <= $char && $char <= 0x5A ||
446
            0x5F == $char ||
447
            0x62 <= $char && $char <= 0x64 ||
448
            0x67 <= $char && $char <= 0x6B ||
449
            0x6D == $char ||
450
            0x6F <= $char && $char <= 0x71 ||
451
            0x76 <= $char && $char <= 0x7A
452
        ) {
453
            $context->getBuffer()->nextSymbol();
454
            goto state38;
455
        }
456
        if (0x40 == $char) {
457
            $context->getBuffer()->nextSymbol();
458
            goto state38;
459
        }
460
        if (0x24 == $char) {
461
            $context->getBuffer()->nextSymbol();
462
            goto state38;
463
        }
464
        if (0x72 == $char) {
465
            $context->getBuffer()->nextSymbol();
466
            goto state43;
467
        }
468
        finish16:
469
        $context
470
            ->setNewToken(TokenType::NAME)
471
            ->setTokenAttribute('text', $context->getSymbolString());
472
        return true;
473
474
        state17:
475
        if ($context->getBuffer()->isEnd()) {
476
            goto finish17;
477
        }
478
        $char = $context->getBuffer()->getSymbol();
479
        if (0x30 == $char) {
480
            $context->getBuffer()->nextSymbol();
481
            goto state38;
482
        }
483
        if (0x31 <= $char && $char <= 0x39) {
484
            $context->getBuffer()->nextSymbol();
485
            goto state38;
486
        }
487
        if (0x6E == $char) {
488
            $context->getBuffer()->nextSymbol();
489
            goto state38;
490
        }
491
        if (0x75 == $char) {
492
            $context->getBuffer()->nextSymbol();
493
            goto state38;
494
        }
495
        if (0x6C == $char) {
496
            $context->getBuffer()->nextSymbol();
497
            goto state38;
498
        }
499
        if (0x74 == $char) {
500
            $context->getBuffer()->nextSymbol();
501
            goto state38;
502
        }
503
        if (0x72 == $char) {
504
            $context->getBuffer()->nextSymbol();
505
            goto state38;
506
        }
507
        if (0x65 == $char) {
508
            $context->getBuffer()->nextSymbol();
509
            goto state38;
510
        }
511
        if (0x66 == $char) {
512
            $context->getBuffer()->nextSymbol();
513
            goto state38;
514
        }
515
        if (0x73 == $char) {
516
            $context->getBuffer()->nextSymbol();
517
            goto state38;
518
        }
519
        if (0x41 <= $char && $char <= 0x5A ||
520
            0x5F == $char ||
521
            0x62 <= $char && $char <= 0x64 ||
522
            0x67 <= $char && $char <= 0x6B ||
523
            0x6D == $char ||
524
            0x6F <= $char && $char <= 0x71 ||
525
            0x76 <= $char && $char <= 0x7A
526
        ) {
527
            $context->getBuffer()->nextSymbol();
528
            goto state38;
529
        }
530
        if (0x40 == $char) {
531
            $context->getBuffer()->nextSymbol();
532
            goto state38;
533
        }
534
        if (0x24 == $char) {
535
            $context->getBuffer()->nextSymbol();
536
            goto state38;
537
        }
538
        if (0x61 == $char) {
539
            $context->getBuffer()->nextSymbol();
540
            goto state39;
541
        }
542
        finish17:
543
        $context
544
            ->setNewToken(TokenType::NAME)
545
            ->setTokenAttribute('text', $context->getSymbolString());
546
        return true;
547
548
        state22:
549
        if ($context->getBuffer()->isEnd()) {
550
            goto error;
551
        }
552
        $char = $context->getBuffer()->getSymbol();
553
        if (0x3D == $char) {
554
            $context->getBuffer()->nextSymbol();
555
            $context->setNewToken(TokenType::OP_EQ);
556
            return true;
557
        }
558
        if (0x7E == $char) {
559
            $context->getBuffer()->nextSymbol();
560
            $context->setNewToken(TokenType::OP_REGEX);
561
            return true;
562
        }
563
        goto error;
564
565
        state23:
566
        if ($context->getBuffer()->isEnd()) {
567
            goto finish23;
568
        }
569
        $char = $context->getBuffer()->getSymbol();
570
        if (0x3D == $char) {
571
            $context->getBuffer()->nextSymbol();
572
            $context->setNewToken(TokenType::OP_NEQ);
573
            return true;
574
        }
575
        finish23:
576
        $context->setNewToken(TokenType::OP_NOT);
577
        return true;
578
579
        state24:
580
        if ($context->getBuffer()->isEnd()) {
581
            goto finish24;
582
        }
583
        $char = $context->getBuffer()->getSymbol();
584
        if (0x3D == $char) {
585
            $context->getBuffer()->nextSymbol();
586
            $context->setNewToken(TokenType::OP_LE);
587
            return true;
588
        }
589
        finish24:
590
        $context->setNewToken(TokenType::OP_L);
591
        return true;
592
593
        state25:
594
        if ($context->getBuffer()->isEnd()) {
595
            goto finish25;
596
        }
597
        $char = $context->getBuffer()->getSymbol();
598
        if (0x3D == $char) {
599
            $context->getBuffer()->nextSymbol();
600
            $context->setNewToken(TokenType::OP_GE);
601
            return true;
602
        }
603
        finish25:
604
        $context->setNewToken(TokenType::OP_G);
605
        return true;
606
607
        state27:
608
        if ($context->getBuffer()->isEnd()) {
609
            goto finish27;
610
        }
611
        $char = $context->getBuffer()->getSymbol();
612
        if (0x09 == $char || 0x0B == $char || 0x0C == $char || 0x20 == $char || 0xA0 == $char) {
613
            $context->getBuffer()->nextSymbol();
614
            goto state32;
615
        }
616
        finish27:
617
        $context->setNewToken(TokenType::WS);
618
        return true;
619
620
        state28:
621
        if ($context->getBuffer()->isEnd()) {
622
            goto error;
623
        }
624
        $char = $context->getBuffer()->getSymbol();
625
        if (0x7C == $char) {
626
            $context->getBuffer()->nextSymbol();
627
            $context->setNewToken(TokenType::OP_OR);
628
            return true;
629
        }
630
        goto error;
631
632
        state29:
633
        if ($context->getBuffer()->isEnd()) {
634
            goto error;
635
        }
636
        $char = $context->getBuffer()->getSymbol();
637
        if (0x26 == $char) {
638
            $context->getBuffer()->nextSymbol();
639
            $context->setNewToken(TokenType::OP_AND);
640
            return true;
641
        }
642
        goto error;
643
644
        state32:
645
        if ($context->getBuffer()->isEnd()) {
646
            goto finish32;
647
        }
648
        $char = $context->getBuffer()->getSymbol();
649
        if (0x09 == $char || 0x0B == $char || 0x0C == $char || 0x20 == $char || 0xA0 == $char) {
650
            $context->getBuffer()->nextSymbol();
651
            goto state32;
652
        }
653
        finish32:
654
        $context->setNewToken(TokenType::WS);
655
        return true;
656
657
        state38:
658
        if ($context->getBuffer()->isEnd()) {
659
            goto finish38;
660
        }
661
        $char = $context->getBuffer()->getSymbol();
662
        if (0x30 == $char) {
663
            $context->getBuffer()->nextSymbol();
664
            goto state38;
665
        }
666
        if (0x31 <= $char && $char <= 0x39) {
667
            $context->getBuffer()->nextSymbol();
668
            goto state38;
669
        }
670
        if (0x6E == $char) {
671
            $context->getBuffer()->nextSymbol();
672
            goto state38;
673
        }
674
        if (0x75 == $char) {
675
            $context->getBuffer()->nextSymbol();
676
            goto state38;
677
        }
678
        if (0x6C == $char) {
679
            $context->getBuffer()->nextSymbol();
680
            goto state38;
681
        }
682
        if (0x74 == $char) {
683
            $context->getBuffer()->nextSymbol();
684
            goto state38;
685
        }
686
        if (0x72 == $char) {
687
            $context->getBuffer()->nextSymbol();
688
            goto state38;
689
        }
690
        if (0x65 == $char) {
691
            $context->getBuffer()->nextSymbol();
692
            goto state38;
693
        }
694
        if (0x66 == $char) {
695
            $context->getBuffer()->nextSymbol();
696
            goto state38;
697
        }
698
        if (0x61 == $char) {
699
            $context->getBuffer()->nextSymbol();
700
            goto state38;
701
        }
702
        if (0x73 == $char) {
703
            $context->getBuffer()->nextSymbol();
704
            goto state38;
705
        }
706
        if (0x41 <= $char && $char <= 0x5A ||
707
            0x5F == $char ||
708
            0x62 <= $char && $char <= 0x64 ||
709
            0x67 <= $char && $char <= 0x6B ||
710
            0x6D == $char ||
711
            0x6F <= $char && $char <= 0x71 ||
712
            0x76 <= $char && $char <= 0x7A
713
        ) {
714
            $context->getBuffer()->nextSymbol();
715
            goto state38;
716
        }
717
        if (0x40 == $char) {
718
            $context->getBuffer()->nextSymbol();
719
            goto state38;
720
        }
721
        if (0x24 == $char) {
722
            $context->getBuffer()->nextSymbol();
723
            goto state38;
724
        }
725
        finish38:
726
        $context
727
            ->setNewToken(TokenType::NAME)
728
            ->setTokenAttribute('text', $context->getSymbolString());
729
        return true;
730
731
        state39:
732
        if ($context->getBuffer()->isEnd()) {
733
            goto finish39;
734
        }
735
        $char = $context->getBuffer()->getSymbol();
736
        if (0x30 == $char) {
737
            $context->getBuffer()->nextSymbol();
738
            goto state38;
739
        }
740
        if (0x31 <= $char && $char <= 0x39) {
741
            $context->getBuffer()->nextSymbol();
742
            goto state38;
743
        }
744
        if (0x6E == $char) {
745
            $context->getBuffer()->nextSymbol();
746
            goto state38;
747
        }
748
        if (0x75 == $char) {
749
            $context->getBuffer()->nextSymbol();
750
            goto state38;
751
        }
752
        if (0x74 == $char) {
753
            $context->getBuffer()->nextSymbol();
754
            goto state38;
755
        }
756
        if (0x72 == $char) {
757
            $context->getBuffer()->nextSymbol();
758
            goto state38;
759
        }
760
        if (0x65 == $char) {
761
            $context->getBuffer()->nextSymbol();
762
            goto state38;
763
        }
764
        if (0x66 == $char) {
765
            $context->getBuffer()->nextSymbol();
766
            goto state38;
767
        }
768
        if (0x61 == $char) {
769
            $context->getBuffer()->nextSymbol();
770
            goto state38;
771
        }
772
        if (0x73 == $char) {
773
            $context->getBuffer()->nextSymbol();
774
            goto state38;
775
        }
776
        if (0x41 <= $char && $char <= 0x5A ||
777
            0x5F == $char ||
778
            0x62 <= $char && $char <= 0x64 ||
779
            0x67 <= $char && $char <= 0x6B ||
780
            0x6D == $char ||
781
            0x6F <= $char && $char <= 0x71 ||
782
            0x76 <= $char && $char <= 0x7A
783
        ) {
784
            $context->getBuffer()->nextSymbol();
785
            goto state38;
786
        }
787
        if (0x40 == $char) {
788
            $context->getBuffer()->nextSymbol();
789
            goto state38;
790
        }
791
        if (0x24 == $char) {
792
            $context->getBuffer()->nextSymbol();
793
            goto state38;
794
        }
795
        if (0x6C == $char) {
796
            $context->getBuffer()->nextSymbol();
797
            goto state40;
798
        }
799
        finish39:
800
        $context
801
            ->setNewToken(TokenType::NAME)
802
            ->setTokenAttribute('text', $context->getSymbolString());
803
        return true;
804
805
        state40:
806
        if ($context->getBuffer()->isEnd()) {
807
            goto finish40;
808
        }
809
        $char = $context->getBuffer()->getSymbol();
810
        if (0x30 == $char) {
811
            $context->getBuffer()->nextSymbol();
812
            goto state38;
813
        }
814
        if (0x31 <= $char && $char <= 0x39) {
815
            $context->getBuffer()->nextSymbol();
816
            goto state38;
817
        }
818
        if (0x6E == $char) {
819
            $context->getBuffer()->nextSymbol();
820
            goto state38;
821
        }
822
        if (0x75 == $char) {
823
            $context->getBuffer()->nextSymbol();
824
            goto state38;
825
        }
826
        if (0x6C == $char) {
827
            $context->getBuffer()->nextSymbol();
828
            goto state38;
829
        }
830
        if (0x74 == $char) {
831
            $context->getBuffer()->nextSymbol();
832
            goto state38;
833
        }
834
        if (0x72 == $char) {
835
            $context->getBuffer()->nextSymbol();
836
            goto state38;
837
        }
838
        if (0x65 == $char) {
839
            $context->getBuffer()->nextSymbol();
840
            goto state38;
841
        }
842
        if (0x66 == $char) {
843
            $context->getBuffer()->nextSymbol();
844
            goto state38;
845
        }
846
        if (0x61 == $char) {
847
            $context->getBuffer()->nextSymbol();
848
            goto state38;
849
        }
850
        if (0x41 <= $char && $char <= 0x5A ||
851
            0x5F == $char ||
852
            0x62 <= $char && $char <= 0x64 ||
853
            0x67 <= $char && $char <= 0x6B ||
854
            0x6D == $char ||
855
            0x6F <= $char && $char <= 0x71 ||
856
            0x76 <= $char && $char <= 0x7A
857
        ) {
858
            $context->getBuffer()->nextSymbol();
859
            goto state38;
860
        }
861
        if (0x40 == $char) {
862
            $context->getBuffer()->nextSymbol();
863
            goto state38;
864
        }
865
        if (0x24 == $char) {
866
            $context->getBuffer()->nextSymbol();
867
            goto state38;
868
        }
869
        if (0x73 == $char) {
870
            $context->getBuffer()->nextSymbol();
871
            goto state41;
872
        }
873
        finish40:
874
        $context
875
            ->setNewToken(TokenType::NAME)
876
            ->setTokenAttribute('text', $context->getSymbolString());
877
        return true;
878
879
        state41:
880
        if ($context->getBuffer()->isEnd()) {
881
            goto finish41;
882
        }
883
        $char = $context->getBuffer()->getSymbol();
884
        if (0x30 == $char) {
885
            $context->getBuffer()->nextSymbol();
886
            goto state38;
887
        }
888
        if (0x31 <= $char && $char <= 0x39) {
889
            $context->getBuffer()->nextSymbol();
890
            goto state38;
891
        }
892
        if (0x6E == $char) {
893
            $context->getBuffer()->nextSymbol();
894
            goto state38;
895
        }
896
        if (0x75 == $char) {
897
            $context->getBuffer()->nextSymbol();
898
            goto state38;
899
        }
900
        if (0x6C == $char) {
901
            $context->getBuffer()->nextSymbol();
902
            goto state38;
903
        }
904
        if (0x74 == $char) {
905
            $context->getBuffer()->nextSymbol();
906
            goto state38;
907
        }
908
        if (0x72 == $char) {
909
            $context->getBuffer()->nextSymbol();
910
            goto state38;
911
        }
912
        if (0x66 == $char) {
913
            $context->getBuffer()->nextSymbol();
914
            goto state38;
915
        }
916
        if (0x61 == $char) {
917
            $context->getBuffer()->nextSymbol();
918
            goto state38;
919
        }
920
        if (0x73 == $char) {
921
            $context->getBuffer()->nextSymbol();
922
            goto state38;
923
        }
924
        if (0x41 <= $char && $char <= 0x5A ||
925
            0x5F == $char ||
926
            0x62 <= $char && $char <= 0x64 ||
927
            0x67 <= $char && $char <= 0x6B ||
928
            0x6D == $char ||
929
            0x6F <= $char && $char <= 0x71 ||
930
            0x76 <= $char && $char <= 0x7A
931
        ) {
932
            $context->getBuffer()->nextSymbol();
933
            goto state38;
934
        }
935
        if (0x40 == $char) {
936
            $context->getBuffer()->nextSymbol();
937
            goto state38;
938
        }
939
        if (0x24 == $char) {
940
            $context->getBuffer()->nextSymbol();
941
            goto state38;
942
        }
943
        if (0x65 == $char) {
944
            $context->getBuffer()->nextSymbol();
945
            goto state42;
946
        }
947
        finish41:
948
        $context
949
            ->setNewToken(TokenType::NAME)
950
            ->setTokenAttribute('text', $context->getSymbolString());
951
        return true;
952
953
        state42:
954
        if ($context->getBuffer()->isEnd()) {
955
            goto finish42;
956
        }
957
        $char = $context->getBuffer()->getSymbol();
958
        if (0x30 == $char) {
959
            $context->getBuffer()->nextSymbol();
960
            goto state38;
961
        }
962
        if (0x31 <= $char && $char <= 0x39) {
963
            $context->getBuffer()->nextSymbol();
964
            goto state38;
965
        }
966
        if (0x6E == $char) {
967
            $context->getBuffer()->nextSymbol();
968
            goto state38;
969
        }
970
        if (0x75 == $char) {
971
            $context->getBuffer()->nextSymbol();
972
            goto state38;
973
        }
974
        if (0x6C == $char) {
975
            $context->getBuffer()->nextSymbol();
976
            goto state38;
977
        }
978
        if (0x74 == $char) {
979
            $context->getBuffer()->nextSymbol();
980
            goto state38;
981
        }
982
        if (0x72 == $char) {
983
            $context->getBuffer()->nextSymbol();
984
            goto state38;
985
        }
986
        if (0x65 == $char) {
987
            $context->getBuffer()->nextSymbol();
988
            goto state38;
989
        }
990
        if (0x66 == $char) {
991
            $context->getBuffer()->nextSymbol();
992
            goto state38;
993
        }
994
        if (0x61 == $char) {
995
            $context->getBuffer()->nextSymbol();
996
            goto state38;
997
        }
998
        if (0x73 == $char) {
999
            $context->getBuffer()->nextSymbol();
1000
            goto state38;
1001
        }
1002
        if (0x41 <= $char && $char <= 0x5A ||
1003
            0x5F == $char ||
1004
            0x62 <= $char && $char <= 0x64 ||
1005
            0x67 <= $char && $char <= 0x6B ||
1006
            0x6D == $char ||
1007
            0x6F <= $char && $char <= 0x71 ||
1008
            0x76 <= $char && $char <= 0x7A
1009
        ) {
1010
            $context->getBuffer()->nextSymbol();
1011
            goto state38;
1012
        }
1013
        if (0x40 == $char) {
1014
            $context->getBuffer()->nextSymbol();
1015
            goto state38;
1016
        }
1017
        if (0x24 == $char) {
1018
            $context->getBuffer()->nextSymbol();
1019
            goto state38;
1020
        }
1021
        finish42:
1022
        $context->setNewToken(TokenType::FALSE);
1023
        return true;
1024
1025
        state43:
1026
        if ($context->getBuffer()->isEnd()) {
1027
            goto finish43;
1028
        }
1029
        $char = $context->getBuffer()->getSymbol();
1030
        if (0x30 == $char) {
1031
            $context->getBuffer()->nextSymbol();
1032
            goto state38;
1033
        }
1034
        if (0x31 <= $char && $char <= 0x39) {
1035
            $context->getBuffer()->nextSymbol();
1036
            goto state38;
1037
        }
1038
        if (0x6E == $char) {
1039
            $context->getBuffer()->nextSymbol();
1040
            goto state38;
1041
        }
1042
        if (0x6C == $char) {
1043
            $context->getBuffer()->nextSymbol();
1044
            goto state38;
1045
        }
1046
        if (0x74 == $char) {
1047
            $context->getBuffer()->nextSymbol();
1048
            goto state38;
1049
        }
1050
        if (0x72 == $char) {
1051
            $context->getBuffer()->nextSymbol();
1052
            goto state38;
1053
        }
1054
        if (0x65 == $char) {
1055
            $context->getBuffer()->nextSymbol();
1056
            goto state38;
1057
        }
1058
        if (0x66 == $char) {
1059
            $context->getBuffer()->nextSymbol();
1060
            goto state38;
1061
        }
1062
        if (0x61 == $char) {
1063
            $context->getBuffer()->nextSymbol();
1064
            goto state38;
1065
        }
1066
        if (0x73 == $char) {
1067
            $context->getBuffer()->nextSymbol();
1068
            goto state38;
1069
        }
1070
        if (0x41 <= $char && $char <= 0x5A ||
1071
            0x5F == $char ||
1072
            0x62 <= $char && $char <= 0x64 ||
1073
            0x67 <= $char && $char <= 0x6B ||
1074
            0x6D == $char ||
1075
            0x6F <= $char && $char <= 0x71 ||
1076
            0x76 <= $char && $char <= 0x7A
1077
        ) {
1078
            $context->getBuffer()->nextSymbol();
1079
            goto state38;
1080
        }
1081
        if (0x40 == $char) {
1082
            $context->getBuffer()->nextSymbol();
1083
            goto state38;
1084
        }
1085
        if (0x24 == $char) {
1086
            $context->getBuffer()->nextSymbol();
1087
            goto state38;
1088
        }
1089
        if (0x75 == $char) {
1090
            $context->getBuffer()->nextSymbol();
1091
            goto state44;
1092
        }
1093
        finish43:
1094
        $context
1095
            ->setNewToken(TokenType::NAME)
1096
            ->setTokenAttribute('text', $context->getSymbolString());
1097
        return true;
1098
1099
        state44:
1100
        if ($context->getBuffer()->isEnd()) {
1101
            goto finish44;
1102
        }
1103
        $char = $context->getBuffer()->getSymbol();
1104
        if (0x30 == $char) {
1105
            $context->getBuffer()->nextSymbol();
1106
            goto state38;
1107
        }
1108
        if (0x31 <= $char && $char <= 0x39) {
1109
            $context->getBuffer()->nextSymbol();
1110
            goto state38;
1111
        }
1112
        if (0x6E == $char) {
1113
            $context->getBuffer()->nextSymbol();
1114
            goto state38;
1115
        }
1116
        if (0x75 == $char) {
1117
            $context->getBuffer()->nextSymbol();
1118
            goto state38;
1119
        }
1120
        if (0x6C == $char) {
1121
            $context->getBuffer()->nextSymbol();
1122
            goto state38;
1123
        }
1124
        if (0x74 == $char) {
1125
            $context->getBuffer()->nextSymbol();
1126
            goto state38;
1127
        }
1128
        if (0x72 == $char) {
1129
            $context->getBuffer()->nextSymbol();
1130
            goto state38;
1131
        }
1132
        if (0x66 == $char) {
1133
            $context->getBuffer()->nextSymbol();
1134
            goto state38;
1135
        }
1136
        if (0x61 == $char) {
1137
            $context->getBuffer()->nextSymbol();
1138
            goto state38;
1139
        }
1140
        if (0x73 == $char) {
1141
            $context->getBuffer()->nextSymbol();
1142
            goto state38;
1143
        }
1144
        if (0x41 <= $char && $char <= 0x5A ||
1145
            0x5F == $char ||
1146
            0x62 <= $char && $char <= 0x64 ||
1147
            0x67 <= $char && $char <= 0x6B ||
1148
            0x6D == $char ||
1149
            0x6F <= $char && $char <= 0x71 ||
1150
            0x76 <= $char && $char <= 0x7A
1151
        ) {
1152
            $context->getBuffer()->nextSymbol();
1153
            goto state38;
1154
        }
1155
        if (0x40 == $char) {
1156
            $context->getBuffer()->nextSymbol();
1157
            goto state38;
1158
        }
1159
        if (0x24 == $char) {
1160
            $context->getBuffer()->nextSymbol();
1161
            goto state38;
1162
        }
1163
        if (0x65 == $char) {
1164
            $context->getBuffer()->nextSymbol();
1165
            goto state45;
1166
        }
1167
        finish44:
1168
        $context
1169
            ->setNewToken(TokenType::NAME)
1170
            ->setTokenAttribute('text', $context->getSymbolString());
1171
        return true;
1172
1173
        state45:
1174
        if ($context->getBuffer()->isEnd()) {
1175
            goto finish45;
1176
        }
1177
        $char = $context->getBuffer()->getSymbol();
1178
        if (0x30 == $char) {
1179
            $context->getBuffer()->nextSymbol();
1180
            goto state38;
1181
        }
1182
        if (0x31 <= $char && $char <= 0x39) {
1183
            $context->getBuffer()->nextSymbol();
1184
            goto state38;
1185
        }
1186
        if (0x6E == $char) {
1187
            $context->getBuffer()->nextSymbol();
1188
            goto state38;
1189
        }
1190
        if (0x75 == $char) {
1191
            $context->getBuffer()->nextSymbol();
1192
            goto state38;
1193
        }
1194
        if (0x6C == $char) {
1195
            $context->getBuffer()->nextSymbol();
1196
            goto state38;
1197
        }
1198
        if (0x74 == $char) {
1199
            $context->getBuffer()->nextSymbol();
1200
            goto state38;
1201
        }
1202
        if (0x72 == $char) {
1203
            $context->getBuffer()->nextSymbol();
1204
            goto state38;
1205
        }
1206
        if (0x65 == $char) {
1207
            $context->getBuffer()->nextSymbol();
1208
            goto state38;
1209
        }
1210
        if (0x66 == $char) {
1211
            $context->getBuffer()->nextSymbol();
1212
            goto state38;
1213
        }
1214
        if (0x61 == $char) {
1215
            $context->getBuffer()->nextSymbol();
1216
            goto state38;
1217
        }
1218
        if (0x73 == $char) {
1219
            $context->getBuffer()->nextSymbol();
1220
            goto state38;
1221
        }
1222
        if (0x41 <= $char && $char <= 0x5A ||
1223
            0x5F == $char ||
1224
            0x62 <= $char && $char <= 0x64 ||
1225
            0x67 <= $char && $char <= 0x6B ||
1226
            0x6D == $char ||
1227
            0x6F <= $char && $char <= 0x71 ||
1228
            0x76 <= $char && $char <= 0x7A
1229
        ) {
1230
            $context->getBuffer()->nextSymbol();
1231
            goto state38;
1232
        }
1233
        if (0x40 == $char) {
1234
            $context->getBuffer()->nextSymbol();
1235
            goto state38;
1236
        }
1237
        if (0x24 == $char) {
1238
            $context->getBuffer()->nextSymbol();
1239
            goto state38;
1240
        }
1241
        finish45:
1242
        $context->setNewToken(TokenType::TRUE);
1243
        return true;
1244
1245
        state46:
1246
        if ($context->getBuffer()->isEnd()) {
1247
            goto finish46;
1248
        }
1249
        $char = $context->getBuffer()->getSymbol();
1250
        if (0x30 == $char) {
1251
            $context->getBuffer()->nextSymbol();
1252
            goto state38;
1253
        }
1254
        if (0x31 <= $char && $char <= 0x39) {
1255
            $context->getBuffer()->nextSymbol();
1256
            goto state38;
1257
        }
1258
        if (0x6E == $char) {
1259
            $context->getBuffer()->nextSymbol();
1260
            goto state38;
1261
        }
1262
        if (0x75 == $char) {
1263
            $context->getBuffer()->nextSymbol();
1264
            goto state38;
1265
        }
1266
        if (0x74 == $char) {
1267
            $context->getBuffer()->nextSymbol();
1268
            goto state38;
1269
        }
1270
        if (0x72 == $char) {
1271
            $context->getBuffer()->nextSymbol();
1272
            goto state38;
1273
        }
1274
        if (0x65 == $char) {
1275
            $context->getBuffer()->nextSymbol();
1276
            goto state38;
1277
        }
1278
        if (0x66 == $char) {
1279
            $context->getBuffer()->nextSymbol();
1280
            goto state38;
1281
        }
1282
        if (0x61 == $char) {
1283
            $context->getBuffer()->nextSymbol();
1284
            goto state38;
1285
        }
1286
        if (0x73 == $char) {
1287
            $context->getBuffer()->nextSymbol();
1288
            goto state38;
1289
        }
1290
        if (0x41 <= $char && $char <= 0x5A ||
1291
            0x5F == $char ||
1292
            0x62 <= $char && $char <= 0x64 ||
1293
            0x67 <= $char && $char <= 0x6B ||
1294
            0x6D == $char ||
1295
            0x6F <= $char && $char <= 0x71 ||
1296
            0x76 <= $char && $char <= 0x7A
1297
        ) {
1298
            $context->getBuffer()->nextSymbol();
1299
            goto state38;
1300
        }
1301
        if (0x40 == $char) {
1302
            $context->getBuffer()->nextSymbol();
1303
            goto state38;
1304
        }
1305
        if (0x24 == $char) {
1306
            $context->getBuffer()->nextSymbol();
1307
            goto state38;
1308
        }
1309
        if (0x6C == $char) {
1310
            $context->getBuffer()->nextSymbol();
1311
            goto state47;
1312
        }
1313
        finish46:
1314
        $context
1315
            ->setNewToken(TokenType::NAME)
1316
            ->setTokenAttribute('text', $context->getSymbolString());
1317
        return true;
1318
1319
        state47:
1320
        if ($context->getBuffer()->isEnd()) {
1321
            goto finish47;
1322
        }
1323
        $char = $context->getBuffer()->getSymbol();
1324
        if (0x30 == $char) {
1325
            $context->getBuffer()->nextSymbol();
1326
            goto state38;
1327
        }
1328
        if (0x31 <= $char && $char <= 0x39) {
1329
            $context->getBuffer()->nextSymbol();
1330
            goto state38;
1331
        }
1332
        if (0x6E == $char) {
1333
            $context->getBuffer()->nextSymbol();
1334
            goto state38;
1335
        }
1336
        if (0x75 == $char) {
1337
            $context->getBuffer()->nextSymbol();
1338
            goto state38;
1339
        }
1340
        if (0x74 == $char) {
1341
            $context->getBuffer()->nextSymbol();
1342
            goto state38;
1343
        }
1344
        if (0x72 == $char) {
1345
            $context->getBuffer()->nextSymbol();
1346
            goto state38;
1347
        }
1348
        if (0x65 == $char) {
1349
            $context->getBuffer()->nextSymbol();
1350
            goto state38;
1351
        }
1352
        if (0x66 == $char) {
1353
            $context->getBuffer()->nextSymbol();
1354
            goto state38;
1355
        }
1356
        if (0x61 == $char) {
1357
            $context->getBuffer()->nextSymbol();
1358
            goto state38;
1359
        }
1360
        if (0x73 == $char) {
1361
            $context->getBuffer()->nextSymbol();
1362
            goto state38;
1363
        }
1364
        if (0x41 <= $char && $char <= 0x5A ||
1365
            0x5F == $char ||
1366
            0x62 <= $char && $char <= 0x64 ||
1367
            0x67 <= $char && $char <= 0x6B ||
1368
            0x6D == $char ||
1369
            0x6F <= $char && $char <= 0x71 ||
1370
            0x76 <= $char && $char <= 0x7A
1371
        ) {
1372
            $context->getBuffer()->nextSymbol();
1373
            goto state38;
1374
        }
1375
        if (0x40 == $char) {
1376
            $context->getBuffer()->nextSymbol();
1377
            goto state38;
1378
        }
1379
        if (0x24 == $char) {
1380
            $context->getBuffer()->nextSymbol();
1381
            goto state38;
1382
        }
1383
        if (0x6C == $char) {
1384
            $context->getBuffer()->nextSymbol();
1385
            goto state48;
1386
        }
1387
        finish47:
1388
        $context
1389
            ->setNewToken(TokenType::NAME)
1390
            ->setTokenAttribute('text', $context->getSymbolString());
1391
        return true;
1392
1393
        state48:
1394
        if ($context->getBuffer()->isEnd()) {
1395
            goto finish48;
1396
        }
1397
        $char = $context->getBuffer()->getSymbol();
1398
        if (0x30 == $char) {
1399
            $context->getBuffer()->nextSymbol();
1400
            goto state38;
1401
        }
1402
        if (0x31 <= $char && $char <= 0x39) {
1403
            $context->getBuffer()->nextSymbol();
1404
            goto state38;
1405
        }
1406
        if (0x6E == $char) {
1407
            $context->getBuffer()->nextSymbol();
1408
            goto state38;
1409
        }
1410
        if (0x75 == $char) {
1411
            $context->getBuffer()->nextSymbol();
1412
            goto state38;
1413
        }
1414
        if (0x6C == $char) {
1415
            $context->getBuffer()->nextSymbol();
1416
            goto state38;
1417
        }
1418
        if (0x74 == $char) {
1419
            $context->getBuffer()->nextSymbol();
1420
            goto state38;
1421
        }
1422
        if (0x72 == $char) {
1423
            $context->getBuffer()->nextSymbol();
1424
            goto state38;
1425
        }
1426
        if (0x65 == $char) {
1427
            $context->getBuffer()->nextSymbol();
1428
            goto state38;
1429
        }
1430
        if (0x66 == $char) {
1431
            $context->getBuffer()->nextSymbol();
1432
            goto state38;
1433
        }
1434
        if (0x61 == $char) {
1435
            $context->getBuffer()->nextSymbol();
1436
            goto state38;
1437
        }
1438
        if (0x73 == $char) {
1439
            $context->getBuffer()->nextSymbol();
1440
            goto state38;
1441
        }
1442
        if (0x41 <= $char && $char <= 0x5A ||
1443
            0x5F == $char ||
1444
            0x62 <= $char && $char <= 0x64 ||
1445
            0x67 <= $char && $char <= 0x6B ||
1446
            0x6D == $char ||
1447
            0x6F <= $char && $char <= 0x71 ||
1448
            0x76 <= $char && $char <= 0x7A
1449
        ) {
1450
            $context->getBuffer()->nextSymbol();
1451
            goto state38;
1452
        }
1453
        if (0x40 == $char) {
1454
            $context->getBuffer()->nextSymbol();
1455
            goto state38;
1456
        }
1457
        if (0x24 == $char) {
1458
            $context->getBuffer()->nextSymbol();
1459
            goto state38;
1460
        }
1461
        finish48:
1462
        $context->setNewToken(TokenType::NULL);
1463
        return true;
1464
1465
        state49:
1466
        if ($context->getBuffer()->isEnd()) {
1467
            goto finish49;
1468
        }
1469
        $char = $context->getBuffer()->getSymbol();
1470
        if (0x30 == $char) {
1471
            $context->getBuffer()->nextSymbol();
1472
            goto state49;
1473
        }
1474
        if (0x31 <= $char && $char <= 0x39) {
1475
            $context->getBuffer()->nextSymbol();
1476
            goto state49;
1477
        }
1478
        finish49:
1479
        $context
1480
            ->setNewToken(TokenType::INT)
1481
            ->setTokenAttribute('text', $context->getSymbolString());
1482
        return true;
1483
1484
        stateSqString1:
1485
        if ($context->getBuffer()->isEnd()) {
1486
            goto error;
1487
        }
1488
        $char = $context->getBuffer()->getSymbol();
1489
        if (0x27 == $char) {
1490
            $context->getBuffer()->nextSymbol();
1491
            $context
1492
                ->setNewToken(TokenType::SINGLE_QUOTE)
1493
                ->setMode(TokenMatcherInterface::DEFAULT_MODE);
1494
            return true;
1495
        }
1496
        if (0x00 <= $char && $char <= 0x26 || 0x28 <= $char && $char <= 0x5B || 0x5D <= $char && $char <= 0x10FFFF) {
1497
            $context->getBuffer()->nextSymbol();
1498
            goto stateSqString3;
1499
        }
1500
        if (0x5C == $char) {
1501
            $context->getBuffer()->nextSymbol();
1502
            $context
1503
                ->setNewToken(TokenType::BACKSLASH)
1504
                ->setMode('sqEscape');
1505
            return true;
1506
        }
1507
        goto error;
1508
1509
        stateSqString3:
1510
        if ($context->getBuffer()->isEnd()) {
1511
            goto finishSqString3;
1512
        }
1513
        $char = $context->getBuffer()->getSymbol();
1514
        if (0x00 <= $char && $char <= 0x26 || 0x28 <= $char && $char <= 0x5B || 0x5D <= $char && $char <= 0x10FFFF) {
1515
            $context->getBuffer()->nextSymbol();
1516
            goto stateSqString5;
1517
        }
1518
        finishSqString3:
1519
        $context
1520
            ->setNewToken(TokenType::UNESCAPED)
1521
            ->setTokenAttribute('text', $context->getSymbolString());
1522
        return true;
1523
1524
        stateSqString5:
1525
        if ($context->getBuffer()->isEnd()) {
1526
            goto finishSqString5;
1527
        }
1528
        $char = $context->getBuffer()->getSymbol();
1529
        if (0x00 <= $char && $char <= 0x26 || 0x28 <= $char && $char <= 0x5B || 0x5D <= $char && $char <= 0x10FFFF) {
1530
            $context->getBuffer()->nextSymbol();
1531
            goto stateSqString5;
1532
        }
1533
        finishSqString5:
1534
        $context
1535
            ->setNewToken(TokenType::UNESCAPED)
1536
            ->setTokenAttribute('text', $context->getSymbolString());
1537
        return true;
1538
1539
        stateSqEscape1:
1540
        if ($context->getBuffer()->isEnd()) {
1541
            goto error;
1542
        }
1543
        $char = $context->getBuffer()->getSymbol();
1544
        if (0x5C == $char) {
1545
            $context->getBuffer()->nextSymbol();
1546
            $context
1547
                ->setNewToken(TokenType::BACKSLASH)
1548
                ->setMode('sqString');
1549
            return true;
1550
        }
1551
        if (0x27 == $char) {
1552
            $context->getBuffer()->nextSymbol();
1553
            $context
1554
                ->setNewToken(TokenType::SINGLE_QUOTE)
1555
                ->setMode('sqString');
1556
            return true;
1557
        }
1558
        goto error;
1559
1560
        stateDqString1:
1561
        if ($context->getBuffer()->isEnd()) {
1562
            goto error;
1563
        }
1564
        $char = $context->getBuffer()->getSymbol();
1565
        if (0x22 == $char) {
1566
            $context->getBuffer()->nextSymbol();
1567
            $context
1568
                ->setNewToken(TokenType::DOUBLE_QUOTE)
1569
                ->setMode(TokenMatcherInterface::DEFAULT_MODE);
1570
            return true;
1571
        }
1572
        if (0x00 <= $char && $char <= 0x21 || 0x23 <= $char && $char <= 0x5B || 0x5D <= $char && $char <= 0x10FFFF) {
1573
            $context->getBuffer()->nextSymbol();
1574
            goto stateDqString3;
1575
        }
1576
        if (0x5C == $char) {
1577
            $context->getBuffer()->nextSymbol();
1578
            $context
1579
                ->setNewToken(TokenType::BACKSLASH)
1580
                ->setMode('dqEscape');
1581
            return true;
1582
        }
1583
        goto error;
1584
1585
        stateDqString3:
1586
        if ($context->getBuffer()->isEnd()) {
1587
            goto finishDqString3;
1588
        }
1589
        $char = $context->getBuffer()->getSymbol();
1590
        if (0x00 <= $char && $char <= 0x21 || 0x23 <= $char && $char <= 0x5B || 0x5D <= $char && $char <= 0x10FFFF) {
1591
            $context->getBuffer()->nextSymbol();
1592
            goto stateDqString5;
1593
        }
1594
        finishDqString3:
1595
        $context
1596
            ->setNewToken(TokenType::UNESCAPED)
1597
            ->setTokenAttribute('text', $context->getSymbolString());
1598
        return true;
1599
1600
        stateDqString5:
1601
        if ($context->getBuffer()->isEnd()) {
1602
            goto finishDqString5;
1603
        }
1604
        $char = $context->getBuffer()->getSymbol();
1605
        if (0x00 <= $char && $char <= 0x21 || 0x23 <= $char && $char <= 0x5B || 0x5D <= $char && $char <= 0x10FFFF) {
1606
            $context->getBuffer()->nextSymbol();
1607
            goto stateDqString5;
1608
        }
1609
        finishDqString5:
1610
        $context
1611
            ->setNewToken(TokenType::UNESCAPED)
1612
            ->setTokenAttribute('text', $context->getSymbolString());
1613
        return true;
1614
1615
        stateDqEscape1:
1616
        if ($context->getBuffer()->isEnd()) {
1617
            goto error;
1618
        }
1619
        $char = $context->getBuffer()->getSymbol();
1620
        if (0x5C == $char) {
1621
            $context->getBuffer()->nextSymbol();
1622
            $context
1623
                ->setNewToken(TokenType::BACKSLASH)
1624
                ->setMode('dqString');
1625
            return true;
1626
        }
1627
        if (0x22 == $char) {
1628
            $context->getBuffer()->nextSymbol();
1629
            $context
1630
                ->setNewToken(TokenType::DOUBLE_QUOTE)
1631
                ->setMode('dqString');
1632
            return true;
1633
        }
1634
        goto error;
1635
1636
        stateReString1:
1637
        if ($context->getBuffer()->isEnd()) {
1638
            goto error;
1639
        }
1640
        $char = $context->getBuffer()->getSymbol();
1641
        if (0x2F == $char) {
1642
            $context->getBuffer()->nextSymbol();
1643
            goto stateReString2;
1644
        }
1645
        if (0x41 <= $char && $char <= 0x5A || 0x61 <= $char && $char <= 0x7A) {
1646
            $context->getBuffer()->nextSymbol();
1647
            goto stateReString3;
1648
        }
1649
        if (0x00 <= $char && $char <= 0x2E ||
1650
            0x30 <= $char && $char <= 0x40 ||
1651
            0x5B == $char ||
1652
            0x5D <= $char && $char <= 0x60 ||
1653
            0x7B <= $char && $char <= 0x10FFFF
1654
        ) {
1655
            $context->getBuffer()->nextSymbol();
1656
            goto stateReString3;
1657
        }
1658
        if (0x5C == $char) {
1659
            $context->getBuffer()->nextSymbol();
1660
            $context
1661
                ->setNewToken(TokenType::BACKSLASH)
1662
                ->setMode('reEscape');
1663
            return true;
1664
        }
1665
        goto error;
1666
1667
        stateReString2:
1668
        if ($context->getBuffer()->isEnd()) {
1669
            goto finishReString2;
1670
        }
1671
        $char = $context->getBuffer()->getSymbol();
1672
        if (0x41 <= $char && $char <= 0x5A || 0x61 <= $char && $char <= 0x7A) {
1673
            $context->getBuffer()->nextSymbol();
1674
            goto stateReString5;
1675
        }
1676
        finishReString2:
1677
        $context
1678
            ->setNewToken(TokenType::REGEXP_MOD)
1679
            ->setTokenAttribute('text', $context->getSymbolString())
1680
            ->setMode(TokenMatcherInterface::DEFAULT_MODE);
1681
        return true;
1682
1683
        stateReString3:
1684
        if ($context->getBuffer()->isEnd()) {
1685
            goto finishReString3;
1686
        }
1687
        $char = $context->getBuffer()->getSymbol();
1688
        if (0x41 <= $char && $char <= 0x5A || 0x61 <= $char && $char <= 0x7A) {
1689
            $context->getBuffer()->nextSymbol();
1690
            goto stateReString3;
1691
        }
1692
        if (0x00 <= $char && $char <= 0x2E ||
1693
            0x30 <= $char && $char <= 0x40 ||
1694
            0x5B == $char ||
1695
            0x5D <= $char && $char <= 0x60 ||
1696
            0x7B <= $char && $char <= 0x10FFFF
1697
        ) {
1698
            $context->getBuffer()->nextSymbol();
1699
            goto stateReString3;
1700
        }
1701
        finishReString3:
1702
        $context
1703
            ->setNewToken(TokenType::UNESCAPED)
1704
            ->setTokenAttribute('text', $context->getSymbolString());
1705
        return true;
1706
1707
        stateReString5:
1708
        if ($context->getBuffer()->isEnd()) {
1709
            goto finishReString5;
1710
        }
1711
        $char = $context->getBuffer()->getSymbol();
1712
        if (0x41 <= $char && $char <= 0x5A || 0x61 <= $char && $char <= 0x7A) {
1713
            $context->getBuffer()->nextSymbol();
1714
            goto stateReString5;
1715
        }
1716
        finishReString5:
1717
        $context
1718
            ->setNewToken(TokenType::REGEXP_MOD)
1719
            ->setTokenAttribute('text', $context->getSymbolString())
1720
            ->setMode(TokenMatcherInterface::DEFAULT_MODE);
1721
        return true;
1722
1723
        stateReEscape1:
1724
        if ($context->getBuffer()->isEnd()) {
1725
            goto error;
1726
        }
1727
        $char = $context->getBuffer()->getSymbol();
1728
        if (0x5C == $char) {
1729
            $context->getBuffer()->nextSymbol();
1730
            $context
1731
                ->setNewToken(TokenType::BACKSLASH)
1732
                ->setMode('reString');
1733
            return true;
1734
        }
1735
        if (0x2F == $char) {
1736
            $context->getBuffer()->nextSymbol();
1737
            $context
1738
                ->setNewToken(TokenType::SLASH)
1739
                ->setMode('reString');
1740
            return true;
1741
        }
1742
        if (0x00 <= $char && $char <= 0x2E || 0x30 <= $char && $char <= 0x5B || 0x5D <= $char && $char <= 0x10FFFF) {
1743
            $context->getBuffer()->nextSymbol();
1744
            $context
1745
                ->setNewToken(TokenType::UNESCAPED)
1746
                ->setTokenAttribute('text', $context->getSymbolString())
1747
                ->setMode('reString');
1748
            return true;
1749
        }
1750
        goto error;
1751
1752
        error:
1753
        return false;
1754
    }
1755
}
1756