@vituum/vite-plugin-latte 1.2.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/index.js +5 -3
  2. package/index.php +2 -0
  3. package/package.json +6 -6
  4. package/vendor/autoload.php +1 -1
  5. package/vendor/composer/InstalledVersions.php +7 -4
  6. package/vendor/composer/autoload_classmap.php +1 -0
  7. package/vendor/composer/autoload_real.php +4 -4
  8. package/vendor/composer/autoload_static.php +3 -2
  9. package/vendor/composer/installed.json +21 -20
  10. package/vendor/composer/installed.php +8 -8
  11. package/vendor/latte/latte/composer.json +6 -5
  12. package/vendor/latte/latte/readme.md +27 -9
  13. package/vendor/latte/latte/src/Bridges/Tracy/templates/LattePanel.panel.phtml +4 -1
  14. package/vendor/latte/latte/src/Latte/Compiler/TagLexer.php +1 -1
  15. package/vendor/latte/latte/src/Latte/Compiler/TagParserData.php +129 -129
  16. package/vendor/latte/latte/src/Latte/Compiler/TemplateGenerator.php +1 -1
  17. package/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php +1 -1
  18. package/vendor/latte/latte/src/Latte/Engine.php +22 -2
  19. package/vendor/latte/latte/src/Latte/Essential/CachingIterator.php +2 -3
  20. package/vendor/latte/latte/src/Latte/Essential/CoreExtension.php +9 -1
  21. package/vendor/latte/latte/src/Latte/Essential/Filters.php +110 -10
  22. package/vendor/latte/latte/src/Latte/Essential/Nodes/ImportNode.php +8 -2
  23. package/vendor/latte/latte/src/Latte/Essential/Nodes/VarNode.php +14 -18
  24. package/vendor/latte/latte/src/Latte/Essential/TranslatorExtension.php +1 -1
  25. package/vendor/latte/latte/src/Latte/Loaders/FileLoader.php +5 -4
  26. package/vendor/latte/latte/src/Latte/Runtime/Template.php +1 -1
  27. package/vendor/latte/latte/src/Latte/Sandbox/Nodes/FunctionCallNode.php +0 -1
  28. package/vendor/nette/utils/composer.json +1 -1
  29. package/vendor/nette/utils/readme.md +25 -26
  30. package/vendor/nette/utils/src/Iterators/CachingIterator.php +5 -19
  31. package/vendor/nette/utils/src/Iterators/Mapper.php +1 -2
  32. package/vendor/nette/utils/src/Utils/Arrays.php +61 -29
  33. package/vendor/nette/utils/src/Utils/Callback.php +1 -1
  34. package/vendor/nette/utils/src/Utils/FileSystem.php +15 -2
  35. package/vendor/nette/utils/src/Utils/Finder.php +1 -1
  36. package/vendor/nette/utils/src/Utils/Helpers.php +3 -0
  37. package/vendor/nette/utils/src/Utils/Image.php +33 -46
  38. package/vendor/nette/utils/src/Utils/Iterables.php +100 -20
  39. package/vendor/nette/utils/src/Utils/Reflection.php +7 -5
  40. package/vendor/nette/utils/src/Utils/Strings.php +27 -8
  41. package/vendor/nette/utils/src/Utils/Type.php +2 -2
  42. package/vendor/nette/utils/src/Utils/exceptions.php +5 -5
  43. package/vendor/nette/utils/src/exceptions.php +20 -15
@@ -26,7 +26,7 @@ abstract class TagParserData
26
26
  /** Rule number signifying that an unexpected token was encountered */
27
27
  protected const UnexpectedTokenRule = 8191;
28
28
 
29
- protected const Yy2Tblstate = 257;
29
+ protected const Yy2Tblstate = 256;
30
30
 
31
31
  /** Number of non-leaf states */
32
32
  protected const NumNonLeafStates = 354;
@@ -56,106 +56,106 @@ abstract class TagParserData
56
56
  * state/symbol pair is self::Action[self::ActionBase[$state] + $symbol]. If self::ActionBase[$state] is 0, the
57
57
  * action is defaulted, i.e. self::ActionDefault[$state] should be used instead. */
58
58
  protected const ActionBase = [
59
- 297, 326, 326, 326, 326, 99, 121, 326, 273, 177, 230, 326, 406, 406, 406, 406, 406, 219, 219, 219,
60
- 219, 287, 287, 291, 277, 401, 402, 403, 404, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
59
+ 297, 326, 326, 326, 326, 99, 121, 326, 273, 177, 230, 326, 406, 406, 406, 406, 219, 219, 219, 219,
60
+ 295, 295, 267, 262, 401, 402, 403, 404, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
61
61
  -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
62
62
  -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
63
63
  -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
64
- -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, 133, 198, 214, 416, 432, 427, 436, 459, 460, 458,
65
- 462, 468, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 137, 182, 528, 213,
66
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 549, 549, 549,
67
- 437, 362, 204, 412, 38, 110, 110, 513, 513, 513, 513, 513, 447, 81, 81, 81, 81, 500, 500, 271,
68
- 271, 271, 271, 271, 271, 271, 271, 271, 272, 135, 135, 454, 13, 275, 275, 275, 228, 228, 228, 228,
69
- 228, 181, 108, 108, 108, 236, 355, 409, 276, 207, 207, 207, 207, 207, 207, 282, 469, -21, 132, 132,
70
- 205, 167, 167, 132, 378, -13, 122, -34, 208, 332, 221, 143, 158, 2, 405, 259, 262, 299, 142, 219,
71
- 470, 470, 219, 219, 219, 411, 64, 64, 64, 147, 180, 39, 293, 445, 293, 293, 293, 42, 26, -74,
72
- 268, 352, 344, 351, 268, 62, 98, 65, 354, 357, 352, 352, 104, 65, 65, 294, 300, 298, 134, 76,
73
- 298, 290, 290, 109, 35, 363, 360, 369, 342, 341, 304, 234, 253, 284, 281, 337, 252, 363, 360, 369,
74
- 263, 6, 310, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 234, 452, 36, 288, 374, 375, 17,
75
- 395, 397, 450, 296, 451, 285, 278, 305, 279, 461, 331, 24, 234, 466, 286, 384, 301, 306, 385, 292,
76
- 467, 398, 280, 453, 140, 376, 165, 455, 185, 408, 260, 400, 465, 457, 0, -43, -43, -43, -43, -43,
64
+ -43, -43, -43, -43, -43, -43, -43, -43, -43, 133, 165, 185, 416, 432, 427, 436, 460, 462, 459, 463,
65
+ 468, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 126, 182, 528, 213, 213,
66
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 549, 549, 549, 437,
67
+ 362, 204, 412, 38, 110, 110, 513, 513, 513, 513, 513, 447, 81, 81, 81, 81, 500, 500, 271, 271,
68
+ 271, 271, 271, 271, 271, 271, 271, 272, 135, 135, 454, 13, 275, 275, 275, 228, 228, 228, 228, 228,
69
+ 181, 108, 108, 108, 236, 355, 409, 276, 207, 207, 207, 207, 207, 207, 285, 469, -21, 132, 132, 205,
70
+ 167, 167, 132, 378, -13, 122, -34, 208, 332, 221, 143, 158, 2, 405, 245, 252, 287, 142, 219, 269,
71
+ 269, 219, 219, 219, 411, 64, 64, 64, 147, 180, 39, 278, 445, 278, 278, 278, 42, -74, 268, 352,
72
+ 344, 351, 268, 36, 76, 62, 354, 357, 352, 352, 98, 62, 62, 62, 283, 299, 277, 109, 65, 277,
73
+ 288, 288, 104, 28, 363, 360, 369, 342, 341, 408, 197, 234, 281, 280, 337, 198, 363, 360, 369, 259,
74
+ 6, 310, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 197, 452, 33, 291, 374, 375, 17, 385,
75
+ 395, 286, 284, 453, 282, 263, 306, 260, 464, 331, 24, 197, 466, 270, 279, 274, 292, 384, 289, 467,
76
+ 397, 305, 398, 455, 130, 376, 134, 457, 140, 451, 253, 400, 450, 458, 0, -43, -43, -43, -43, -43,
77
77
  -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
78
- -43, -43, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
78
+ -43, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
79
79
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
80
80
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
81
81
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82
- 0, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, 0, 0, 0,
83
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
84
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, 447, 52,
85
- 52, 52, 52, 52, 52, 52, 0, 108, 108, 108, 108, -22, -22, -22, -22, -22, -22, -22, -22, -22,
86
- -22, -22, 108, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 0, 0, 0, 0, 0,
87
- 0, 0, 378, 290, 290, 290, 290, 290, 290, 378, 378, 0, 0, 0, 0, 108, 108, 0, 0, 378,
88
- 290, 0, 0, 0, 0, 0, 0, 0, 219, 219, 219, 378, 0, 0, 290, 290, 0, 0, 0, 268,
89
- 0, 0, 0, 0, 0, 0, 285, 36, 285, 285, 285,
82
+ 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, 0, 0, 0, 0,
83
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
84
+ 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, 447, 52, 52,
85
+ 52, 52, 52, 52, 52, 0, 108, 108, 108, 108, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
86
+ -22, 108, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 0, 0, 0, 0, 0, 0,
87
+ 0, 378, 288, 288, 288, 288, 288, 288, 378, 378, 0, 0, 0, 0, 108, 108, 0, 0, 378, 288,
88
+ 0, 0, 0, 0, 0, 0, 0, 219, 219, 219, 378, 0, 0, 288, 288, 0, 0, 0, 268, 0,
89
+ 0, 0, 0, 0, 0, 282, 33, 282, 282, 282,
90
90
  ];
91
91
 
92
92
  /** Table of actions. Indexed according to self::ActionBase comment. */
93
93
  protected const Action = [
94
- 35, 36, -269, 33, -269, 37, -50, 38, 179, 180, 39, 40, 41, 42, 43, 44, 45, -48, 1, 193,
95
- 46, 557, 558, 205, -47, 539, 381, -222, 16, 555, 285, 522, 242, 243, 196, 0, 286, 287, 7, -47,
96
- -220, 288, 289, 208, 537, 178, 539, -222, -222, -222, 541, 540, 563, 561, 562, 55, 56, 57, -8190, 30,
97
- -220, -220, -220, 416, 11, 224, 290, 15, 197, -220, 198, 541, 540, 24, 566, 58, 59, 60, 22, 61,
98
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
99
- 102, 195, 362, 363, 361, -269, 191, 381, 418, -269, 417, 234, 82, -8190, -8190, -8190, -8191, -8191, -8191, -8191,
100
- 73, 74, 75, 76, 362, 363, 361, 360, 359, 446, 379, -8190, 380, -8190, -8190, -8190, 383, -8190, -8190, -8190,
101
- -8190, 372, 99, -78, 12, -78, 106, 290, 366, 360, 359, 77, 78, 79, 80, 81, 196, 195, -267, 172,
102
- -267, 194, 47, 372, 13, 201, 339, 296, 82, -78, 366, 107, 297, 368, 235, 236, 367, 373, 298, 299,
103
- 362, 363, 361, 194, 47, -8190, -8190, 201, 641, 296, 25, 108, 642, -217, 297, 368, 235, 236, 367, 373,
104
- 298, 299, 427, -22, 18, 360, 359, -8190, -8190, -8190, -8190, -8190, 26, -217, -217, -217, -8190, -8190, -8190, 372,
105
- 20, -265, -217, -265, 427, -8190, 366, -8190, -8190, -8190, 418, -8190, 417, 362, 363, 361, 207, -184, -52, 194,
106
- 47, 96, -223, 201, 14, 296, -78, 360, 359, -184, 297, 368, 235, 236, 367, 373, 298, 299, 360, 359,
107
- 97, -267, -223, -223, -223, -267, 32, 109, 27, 31, -183, -183, 372, 379, -23, 380, 362, 363, 361, 366,
108
- 427, -17, -183, -183, -16, 19, 212, 213, 214, 209, 210, 211, 194, 47, 172, 241, 201, -223, 296, 98,
109
- 105, 360, 359, 297, 368, 235, 236, 367, 373, 298, 299, 100, 74, 75, 76, 372, 290, -223, -223, -223,
110
- 192, 28, 366, 418, -265, 417, -183, 199, -265, 362, 363, 361, 1, 427, 200, 194, 47, 250, -183, 201,
111
- 381, 296, 195, 555, 381, 82, 297, 368, 235, 236, 367, 373, 298, 299, 360, 359, 289, 103, 322, 381,
112
- -8190, 278, 643, 567, 101, -8190, -8190, -8190, 372, 568, -8190, -192, 345, 50, 164, 366, 427, 51, 240, 224,
113
- 290, -252, -251, -8190, 290, -8190, -8190, -8190, 194, 47, 21, 391, 201, 226, 296, 34, 260, 3, 177, 297,
114
- 368, 235, 236, 367, 373, 298, 299, -250, 54, 362, 363, 361, -226, 246, 247, 248, -219, 48, 49, 17,
115
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -225, 360, 359, -219, -219, -219, -224,
94
+ 34, 35, -269, 32, -269, 36, -50, 37, 178, 179, 38, 39, 40, 41, 42, 43, 44, -48, 1, 192,
95
+ 45, 557, 558, 204, -47, 539, 381, -222, 0, 555, 284, 522, 241, 242, 195, 7, 285, 286, 11, -47,
96
+ -220, 287, 288, 207, 537, 177, 539, -222, -222, -222, 541, 540, 563, 561, 562, 54, 55, 56, -8190, 29,
97
+ -220, -220, -220, 416, 15, 223, 289, 21, 196, -220, 197, 541, 540, 23, 566, 57, 58, 59, 101, 60,
98
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
99
+ 190, 194, 362, 363, 361, -269, 233, 381, 418, -269, 417, 383, 81, -8190, -8190, -8190, -8191, -8191, -8191, -8191,
100
+ 72, 73, 74, 75, 362, 363, 361, 360, 359, -8190, 379, -8190, 380, -8190, -8190, -8190, 105, -8190, -8190, -8190,
101
+ 106, 372, 98, -78, 12, -78, 107, 289, 366, 360, 359, 76, 77, 78, 79, 80, 195, 194, -267, 171,
102
+ -267, 193, 46, 372, 13, 200, 338, 295, 81, -78, 366, 17, 296, 368, 234, 235, 367, 373, 297, 298,
103
+ 362, 363, 361, 193, 46, -8190, -8190, 200, 641, 295, 24, 19, 642, -217, 296, 368, 234, 235, 367, 373,
104
+ 297, 298, 427, -22, 95, 360, 359, -8190, -8190, -8190, -8190, -8190, 25, -217, -217, -217, -8190, -8190, -8190, 372,
105
+ -23, -265, -217, -265, 427, -8190, 366, -8190, -8190, -8190, 418, -8190, 417, 362, 363, 361, 206, -184, -52, 193,
106
+ 46, 96, -223, 200, 14, 295, -78, 360, 359, -184, 296, 368, 234, 235, 367, 373, 297, 298, 360, 359,
107
+ 108, -267, -223, -223, -223, -267, 31, -17, 26, 30, -183, -183, 372, 379, -16, 380, 362, 363, 361, 366,
108
+ 427, 18, -183, -183, 97, 104, 211, 212, 213, 208, 209, 210, 193, 46, 171, 240, 200, -223, 295, 191,
109
+ 198, 360, 359, 296, 368, 234, 235, 367, 373, 297, 298, 99, 73, 74, 75, 372, 289, -223, -223, -223,
110
+ 199, 27, 366, 418, -265, 417, -183, 194, -265, 362, 363, 361, 1, 427, 321, 193, 46, 249, -183, 200,
111
+ 381, 295, 81, 555, 381, 102, 296, 368, 234, 235, 367, 373, 297, 298, 360, 359, 288, 381, -8190, 643,
112
+ -8190, 345, -252, 567, 100, -8190, -8190, -8190, 372, 277, -192, 163, 568, 49, 20, 366, 427, 50, 289, 223,
113
+ 289, 239, 274, -8190, 289, -8190, -8190, -8190, 193, 46, 391, 638, 200, 225, 295, 33, 258, 3, 176, 296,
114
+ 368, 234, 235, 367, 373, 297, 298, -251, -250, 362, 363, 361, -226, 245, 246, 247, -219, 47, 48, 16,
115
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -225, 360, 359, -219, -219, -219, -224,
116
116
  -8190, -8190, -8190, 2, 4, -219, 5, 381, 372, 630, 362, 363, 361, 6, 8, 366, 9, -226, -8190, 10,
117
- -8190, -8190, 29, 468, 470, 52, 23, 183, 194, 47, -218, 53, 201, -217, 296, 196, 189, 190, 239, 297,
118
- 368, 235, 236, 367, 373, 298, 299, 275, 277, 372, -218, -218, -218, -217, -217, -217, 366, 101, 510, -218,
119
- 553, 428, -217, 525, 531, 533, 535, 585, -29, 365, 364, -225, 259, 376, 505, 377, -8190, -8190, -8190, 330,
120
- 369, 368, 371, 370, 367, 373, 374, 375, 360, 359, 334, -8190, -8190, -8190, -8190, 544, -8190, -8190, -8190, 511,
121
- -8190, -8190, -8190, -8191, -8191, -8191, -8191, -8191, 610, 418, 104, 417, -8190, -8190, -8190, 638, 640, -29, 392, 552,
122
- 639, 1, 521, 342, 637, 594, 250, 608, 582, 381, -8190, 353, 555, 598, 633, 347, 0, 556, 0, 290,
123
- 0, 0, 0, 0, 288, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
124
- 0, 0, 50, 0, 0, 0, 0, 0, 224, 290,
117
+ -8190, -8190, 28, 468, 470, 51, 22, 182, 193, 46, -218, 52, 200, -217, 295, 195, 188, 189, 238, 296,
118
+ 368, 234, 235, 367, 373, 297, 298, 276, 510, 372, -218, -218, -218, -217, -217, -217, 366, 100, 553, -218,
119
+ 428, 446, -217, 525, 531, 533, 535, 585, -29, 365, 364, -225, 53, 376, 505, 377, -8190, -8190, -8190, 329,
120
+ 369, 368, 371, 370, 367, 373, 374, 375, 360, 359, 333, -8190, -8190, -8190, -8190, 544, -8190, -8190, -8190, 511,
121
+ -8190, -8190, -8190, -8191, -8191, -8191, -8191, -8191, 610, 418, 103, 417, -8190, -8190, -8190, 257, 353, -29, 640, 552,
122
+ 392, 1, 639, 521, 341, 637, 249, 594, 608, 381, -8190, 582, 555, 598, 633, 347, 0, 556, 0, 0,
123
+ 0, 0, 0, 0, 287, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
124
+ 0, 0, 49, 0, 0, 0, 0, 0, 223, 289,
125
125
  ];
126
126
 
127
127
  /** Table indexed analogously to self::Action. If self::ActionCheck[self::ActionBase[$state] + $symbol] != $symbol
128
128
  * then the action is defaulted, i.e. self::ActionDefault[$state] should be used instead. */
129
129
  protected const ActionCheck = [
130
130
  43, 44, 0, 77, 2, 48, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, 61, 62,
131
- 63, 64, 65, 66, 0, 68, 69, 61, 2, 72, 73, 105, 75, 76, 21, 0, 79, 80, 2, 0,
131
+ 63, 64, 65, 66, 0, 68, 69, 61, 0, 72, 73, 105, 75, 76, 21, 2, 79, 80, 2, 0,
132
132
  61, 84, 85, 86, 66, 6, 68, 81, 82, 83, 93, 94, 95, 96, 97, 3, 4, 5, 71, 102,
133
133
  81, 82, 83, 85, 2, 108, 109, 2, 26, 90, 28, 93, 94, 21, 87, 23, 24, 25, 2, 27,
134
134
  28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
135
135
  2, 49, 3, 4, 5, 103, 2, 69, 95, 107, 97, 2, 60, 3, 4, 5, 35, 36, 37, 38,
136
- 39, 40, 41, 42, 3, 4, 5, 28, 29, 103, 66, 21, 68, 23, 24, 25, 2, 27, 28, 29,
137
- 3, 42, 104, 0, 2, 2, 6, 109, 49, 28, 29, 43, 44, 45, 46, 47, 21, 49, 0, 26,
136
+ 39, 40, 41, 42, 3, 4, 5, 28, 29, 3, 66, 21, 68, 23, 24, 25, 6, 27, 28, 29,
137
+ 6, 42, 104, 0, 2, 2, 6, 109, 49, 28, 29, 43, 44, 45, 46, 47, 21, 49, 0, 26,
138
138
  2, 62, 63, 42, 22, 66, 44, 68, 60, 26, 49, 6, 73, 74, 75, 76, 77, 78, 79, 80,
139
139
  3, 4, 5, 62, 63, 3, 4, 66, 66, 68, 91, 6, 70, 61, 73, 74, 75, 76, 77, 78,
140
- 79, 80, 103, 22, 6, 28, 29, 3, 4, 5, 43, 44, 91, 81, 82, 83, 3, 4, 5, 42,
141
- 6, 0, 90, 2, 103, 21, 49, 23, 24, 25, 95, 27, 97, 3, 4, 5, 103, 90, 103, 62,
140
+ 79, 80, 103, 22, 7, 28, 29, 3, 4, 5, 43, 44, 91, 81, 82, 83, 3, 4, 5, 42,
141
+ 22, 0, 90, 2, 103, 21, 49, 23, 24, 25, 95, 27, 97, 3, 4, 5, 103, 90, 103, 62,
142
142
  63, 7, 61, 66, 102, 68, 103, 28, 29, 102, 73, 74, 75, 76, 77, 78, 79, 80, 28, 29,
143
- 7, 103, 81, 82, 83, 107, 61, 7, 91, 61, 90, 90, 42, 66, 22, 68, 3, 4, 5, 49,
143
+ 7, 103, 81, 82, 83, 107, 61, 22, 91, 61, 90, 90, 42, 66, 22, 68, 3, 4, 5, 49,
144
144
  103, 22, 102, 102, 22, 22, 81, 82, 83, 81, 82, 83, 62, 63, 26, 90, 66, 61, 68, 22,
145
- 22, 28, 29, 73, 74, 75, 76, 77, 78, 79, 80, 104, 40, 41, 42, 42, 109, 81, 82, 83,
146
- 22, 91, 49, 95, 103, 97, 90, 26, 107, 3, 4, 5, 61, 103, 28, 62, 63, 66, 102, 66,
147
- 69, 68, 49, 72, 69, 60, 73, 74, 75, 76, 77, 78, 79, 80, 28, 29, 85, 61, 67, 69,
148
- 85, 74, 70, 87, 91, 3, 4, 5, 42, 87, 71, 90, 78, 102, 90, 49, 103, 102, 90, 108,
149
- 109, 102, 102, 21, 109, 23, 24, 25, 62, 63, 104, 91, 66, 61, 68, 98, 99, 100, 101, 73,
150
- 74, 75, 76, 77, 78, 79, 80, 102, 104, 3, 4, 5, 102, 81, 82, 83, 61, 91, 92, 7,
145
+ 26, 28, 29, 73, 74, 75, 76, 77, 78, 79, 80, 104, 40, 41, 42, 42, 109, 81, 82, 83,
146
+ 28, 91, 49, 95, 103, 97, 90, 49, 107, 3, 4, 5, 61, 103, 67, 62, 63, 66, 102, 66,
147
+ 69, 68, 60, 72, 69, 61, 73, 74, 75, 76, 77, 78, 79, 80, 28, 29, 85, 69, 71, 70,
148
+ 85, 78, 102, 87, 91, 3, 4, 5, 42, 74, 90, 90, 87, 102, 104, 49, 103, 102, 109, 108,
149
+ 109, 90, 103, 21, 109, 23, 24, 25, 62, 63, 91, 105, 66, 61, 68, 98, 99, 100, 101, 73,
150
+ 74, 75, 76, 77, 78, 79, 80, 102, 102, 3, 4, 5, 102, 81, 82, 83, 61, 91, 92, 7,
151
151
  8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 102, 28, 29, 81, 82, 83, 102,
152
152
  3, 4, 5, 102, 102, 90, 102, 69, 42, 71, 3, 4, 5, 102, 102, 49, 102, 102, 21, 102,
153
153
  23, 24, 102, 51, 52, 102, 88, 89, 62, 63, 61, 102, 66, 61, 68, 21, 102, 102, 102, 73,
154
154
  74, 75, 76, 77, 78, 79, 80, 103, 103, 42, 81, 82, 83, 81, 82, 83, 49, 91, 103, 90,
155
155
  103, 103, 90, 103, 103, 103, 103, 103, 103, 62, 63, 102, 104, 66, 103, 68, 3, 4, 5, 103,
156
156
  73, 74, 75, 76, 77, 78, 79, 80, 28, 29, 103, 3, 4, 5, 21, 103, 23, 24, 25, 103,
157
- 27, 28, 29, 30, 31, 32, 33, 34, 103, 95, 22, 97, 3, 4, 5, 105, 105, 103, 105, 107,
158
- 105, 61, 105, 105, 105, 105, 66, 105, 107, 69, 21, 106, 72, 107, 107, 107, -1, 108, -1, 109,
157
+ 27, 28, 29, 30, 31, 32, 33, 34, 103, 95, 22, 97, 3, 4, 5, 104, 106, 103, 105, 107,
158
+ 105, 61, 105, 105, 105, 105, 66, 105, 105, 69, 21, 107, 72, 107, 107, 107, -1, 108, -1, -1,
159
159
  -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
160
160
  -1, -1, 102, -1, -1, -1, -1, -1, 108, 109,
161
161
  ];
@@ -163,93 +163,93 @@ abstract class TagParserData
163
163
  /** Map of states to their default action */
164
164
  protected const ActionDefault = [
165
165
  8191, 263, 263, 31, 263, 8191, 8191, 263, 8191, 8191, 8191, 29, 8191, 8191, 8191, 29, 8191, 8191, 8191, 8191,
166
- 8191, 39, 29, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 215, 215, 215, 8191, 8191, 8191, 8191, 8191, 8191,
167
- 8191, 8191, 8191, 8191, 8191, 8191, 8191, 10, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
166
+ 39, 29, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 215, 215, 215, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
167
+ 8191, 8191, 8191, 8191, 8191, 8191, 10, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
168
168
  8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
169
169
  8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
170
- 8191, 8191, 29, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 264, 264, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
171
- 8191, 8191, 1, 270, 271, 83, 77, 216, 266, 268, 79, 82, 80, 43, 44, 56, 120, 122, 154, 121,
172
- 96, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 94, 95, 166, 155, 153, 152,
173
- 118, 119, 125, 93, 8191, 123, 124, 142, 143, 140, 141, 144, 8191, 145, 146, 147, 148, 8191, 8191, 8191,
174
- 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 126, 69, 69, 69, 8191, 8191, 11, 8191, 8191, 8191, 8191, 8191,
175
- 8191, 206, 132, 133, 135, 206, 205, 150, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 211, 115, 117,
176
- 189, 127, 128, 97, 8191, 8191, 8191, 210, 8191, 278, 217, 217, 217, 217, 34, 34, 34, 8191, 89, 34,
177
- 8191, 8191, 34, 34, 34, 8191, 8191, 8191, 8191, 195, 223, 217, 138, 8191, 129, 130, 131, 57, 8191, 8191,
178
- 8191, 193, 182, 8191, 2, 28, 28, 28, 8191, 236, 237, 238, 28, 28, 28, 170, 36, 71, 28, 28,
179
- 71, 8191, 8191, 28, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 200, 8191, 221, 234, 185, 15, 20, 21,
180
- 8191, 200, 219, 136, 137, 139, 158, 159, 160, 161, 162, 163, 164, 261, 8191, 257, 188, 8191, 8191, 217,
181
- 8191, 8191, 277, 8191, 217, 134, 8191, 196, 241, 8191, 218, 217, 262, 8191, 8191, 8191, 59, 60, 8191, 8191,
182
- 8191, 8191, 197, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 55, 8191, 8191, 8191,
170
+ 8191, 29, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 264, 264, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
171
+ 8191, 1, 270, 271, 83, 77, 216, 266, 268, 79, 82, 80, 43, 44, 56, 120, 122, 154, 121, 96,
172
+ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 94, 95, 166, 155, 153, 152, 118,
173
+ 119, 125, 93, 8191, 123, 124, 142, 143, 140, 141, 144, 8191, 145, 146, 147, 148, 8191, 8191, 8191, 8191,
174
+ 8191, 8191, 8191, 8191, 8191, 8191, 8191, 126, 69, 69, 69, 8191, 8191, 11, 8191, 8191, 8191, 8191, 8191, 8191,
175
+ 206, 132, 133, 135, 206, 205, 150, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 211, 115, 117, 189,
176
+ 127, 128, 97, 8191, 8191, 8191, 210, 8191, 278, 217, 217, 217, 217, 34, 34, 34, 8191, 89, 34, 8191,
177
+ 8191, 34, 34, 34, 8191, 8191, 8191, 8191, 195, 223, 217, 138, 8191, 129, 130, 131, 57, 8191, 8191, 193,
178
+ 182, 8191, 2, 28, 28, 28, 8191, 236, 237, 238, 28, 28, 28, 28, 170, 36, 71, 28, 28, 71,
179
+ 8191, 8191, 28, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 200, 8191, 221, 234, 185, 15, 20, 21, 8191,
180
+ 200, 219, 136, 137, 139, 158, 159, 160, 161, 162, 163, 164, 261, 8191, 257, 188, 8191, 8191, 217, 8191,
181
+ 8191, 277, 8191, 217, 134, 8191, 196, 241, 8191, 218, 217, 262, 8191, 8191, 8191, 59, 60, 8191, 8191, 8191,
182
+ 8191, 197, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 55, 8191, 8191, 8191,
183
183
  ];
184
184
 
185
185
  /** Map of non-terminals to a displacement into the self::Goto table. The corresponding goto state for this
186
186
  * non-terminal/state pair is self::Goto[self::GotoBase[$nonTerminal] + $state] (unless defaulted) */
187
187
  protected const GotoBase = [
188
- 0, 0, -1, 0, 0, 0, 108, 0, 226, -12, 16, -28, 0, 249, -231, 0, 0, 0, 0, 225,
189
- 219, 71, -13, 255, -2, 64, 0, 67, 0, 69, -76, 0, 0, -60, -6, 1, -5, 171, 0, 0,
190
- 23, 0, 0, 72, 0, 0, -18, 0, 0, 0, 34, 0, 0, 0, 0, -77, -44, 0, 0, 14,
191
- 25, 112, 36, 42, -67, 0, 0, -51, 66, 0, -15, 184, 236, 57, 0, 0,
188
+ 0, 0, -1, 0, 0, 0, 107, 0, 254, -126, 16, -28, 0, 235, -230, 0, 0, 0, 0, 166,
189
+ 200, 52, -13, 262, -2, 58, 0, 63, 0, 57, 75, 0, 0, -61, 3, -34, -5, 124, 0, 0,
190
+ 41, 0, 0, 65, 0, 0, 154, 0, 0, 0, 24, 0, 0, 0, 0, -77, -44, 0, 0, 14,
191
+ 25, 12, 36, 37, -67, 0, 0, -51, 66, 0, -15, 109, 115, 44, 0, 0,
192
192
  ];
193
193
 
194
194
  /** Table of states to goto after reduction. Indexed according to self::GotoBase comment. */
195
195
  protected const Goto = [
196
- 112, 112, 111, 112, 317, 318, 112, 273, 274, 258, 111, 317, 318, 276, 333, 352, 140, 128, 129, 128,
197
- 125, 125, 117, 138, 130, 130, 130, 130, 125, 110, 127, 127, 127, 122, 303, 304, 252, 305, 306, 307,
198
- 308, 309, 310, 311, 312, 454, 454, 123, 124, 113, 114, 115, 116, 118, 136, 137, 139, 157, 160, 161,
199
- 162, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 176, 188, 202, 203, 204, 221, 222, 254, 255,
200
- 256, 325, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 158, 119, 120,
201
- 130, 131, 121, 159, 132, 133, 156, 134, 135, 181, 181, 181, 181, 328, 321, 181, 316, 316, 316, 181,
202
- 412, 419, 421, 420, 422, 184, 186, 187, 186, 415, 415, 415, 415, 536, 536, 536, 415, 415, 415, 415,
203
- 415, 225, 597, 597, 597, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, 237, 609, 609,
204
- 609, 609, 609, 609, 251, 331, 218, 219, 230, 319, 324, 223, 231, 232, 233, 301, 301, 554, 554, 554,
205
- 554, 554, 554, 554, 554, 554, 430, 430, 253, 595, 595, 576, 576, 576, 576, 576, 576, 576, 576, 576,
206
- 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 302, 302, 302, 302, 302, 302, 302,
207
- 302, 302, 302, 302, 229, 602, 603, 300, 300, 300, 300, 229, 229, 300, 634, 635, 636, 300, 435, 341,
208
- 229, 229, 644, 612, 405, 445, 444, 396, 320, 400, 348, 394, 386, 229, 338, 526, 313, 313, 408, 313,
209
- 387, 426, 313, 530, 532, 628, 216, 503, 439, 534, 584, 586, 587, 527, 349, 332, 270, 271, 599, 600,
210
- 601, 628, 629, 440, 0, 182, 182, 441, 0, 0, 0, 0, 0, 0, 629, 0, 0, 350, 529, 0,
196
+ 111, 111, 110, 111, 316, 317, 111, 271, 272, 273, 110, 316, 317, 275, 320, 139, 127, 128, 127, 124,
197
+ 124, 116, 137, 129, 129, 129, 129, 124, 109, 126, 126, 126, 121, 302, 303, 251, 304, 305, 306, 307,
198
+ 308, 309, 310, 311, 454, 454, 122, 123, 112, 113, 114, 115, 117, 135, 136, 138, 156, 159, 160, 161,
199
+ 164, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 187, 201, 202, 203, 220, 221, 253, 254, 255,
200
+ 324, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 157, 118, 119, 129,
201
+ 130, 120, 158, 131, 132, 155, 133, 134, 180, 180, 180, 180, 327, 252, 180, 315, 315, 315, 180, 634,
202
+ 635, 636, 612, 183, 185, 186, 185, 415, 415, 415, 415, 536, 536, 536, 415, 415, 415, 415, 415, 430,
203
+ 224, 597, 597, 597, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, 236, 609, 609, 609,
204
+ 609, 609, 609, 250, 330, 217, 218, 229, 318, 323, 222, 230, 231, 232, 300, 300, 554, 554, 554, 554,
205
+ 554, 554, 554, 554, 554, 332, 352, 396, 595, 595, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576,
206
+ 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 301, 301, 301, 301, 301, 301, 301, 301,
207
+ 301, 301, 301, 228, 602, 603, 530, 532, 319, 400, 228, 228, 534, 584, 586, 587, 435, 340, 386, 228,
208
+ 228, 644, 405, 445, 444, 342, 387, 337, 426, 348, 394, 628, 228, 408, 526, 299, 299, 299, 299, 503,
209
+ 215, 299, 527, 312, 312, 299, 312, 628, 629, 312, 412, 419, 421, 420, 422, 268, 269, 599, 600, 601,
210
+ 629, 331, 349, 181, 181, 439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, 529, 0, 440,
211
+ 0, 0, 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
211
212
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
213
+ 389, 389, 389, 0, 0, 389, 0, 0, 389, 389, 389, 0, 0, 0, 0, 0, 0, 0, 0, 0,
212
214
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
213
- 0, 0, 389, 389, 389, 0, 0, 389, 0, 0, 389, 389, 389, 0, 0, 0, 0, 0, 0, 0,
214
215
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
215
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, 0, 238, 0,
216
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
217
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 403,
216
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, 0, 0,
217
+ 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 403,
218
218
  ];
219
219
 
220
220
  /** Table indexed analogously to self::Goto. If self::GotoCheck[self::GotoBase[$nonTerminal] + $state] != $nonTerminal
221
221
  * then the goto state is defaulted, i.e. self::GotoDefault[$nonTerminal] should be used. */
222
222
  protected const GotoCheck = [
223
- 2, 2, 2, 2, 14, 14, 2, 36, 36, 36, 2, 14, 14, 14, 46, 46, 2, 2, 2, 2,
223
+ 2, 2, 2, 2, 14, 14, 2, 36, 36, 36, 2, 14, 14, 14, 61, 2, 2, 2, 2, 2,
224
224
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
225
225
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
226
226
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
227
227
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
228
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 67, 61, 6, 55, 55, 55, 6,
229
- 30, 30, 30, 30, 30, 6, 6, 6, 6, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
230
- 33, 64, 67, 67, 67, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 64, 67, 67,
231
- 67, 67, 67, 67, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24, 24, 24, 24, 24,
232
- 24, 24, 24, 24, 24, 24, 37, 37, 71, 67, 67, 59, 59, 59, 59, 59, 59, 59, 59, 59,
233
- 59, 59, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 62, 62, 62, 62, 62, 62, 62,
234
- 62, 62, 62, 62, 10, 70, 70, 8, 8, 8, 8, 10, 10, 8, 9, 9, 9, 8, 11, 11,
235
- 10, 10, 10, 72, 11, 11, 11, 19, 20, 21, 11, 11, 13, 10, 25, 11, 23, 23, 27, 23,
236
- 13, 29, 23, 35, 35, 73, 63, 43, 40, 35, 35, 35, 35, 50, 34, 23, 68, 68, 68, 68,
237
- 68, 73, 73, 40, -1, 6, 6, 40, -1, -1, -1, -1, -1, -1, 73, -1, -1, 10, 10, -1,
238
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
228
+ 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 67, 71, 6, 55, 55, 55, 6, 9,
229
+ 9, 9, 72, 6, 6, 6, 6, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 37,
230
+ 64, 67, 67, 67, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 64, 67, 67, 67,
231
+ 67, 67, 67, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24, 24, 24, 24, 24, 24,
232
+ 24, 24, 24, 24, 24, 46, 46, 19, 67, 67, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
233
+ 59, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 62, 62, 62, 62, 62, 62, 62, 62,
234
+ 62, 62, 62, 10, 70, 70, 35, 35, 20, 21, 10, 10, 35, 35, 35, 35, 11, 11, 13, 10,
235
+ 10, 10, 11, 11, 11, 11, 13, 25, 29, 11, 11, 73, 10, 27, 11, 8, 8, 8, 8, 43,
236
+ 63, 8, 50, 23, 23, 8, 23, 73, 73, 23, 30, 30, 30, 30, 30, 68, 68, 68, 68, 68,
237
+ 73, 23, 34, 6, 6, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 10, -1, 40,
238
+ -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
239
239
  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
240
- -1, -1, 6, 6, 6, -1, -1, 6, -1, -1, 6, 6, 6, -1, -1, -1, -1, -1, -1, -1,
240
+ 6, 6, 6, -1, -1, 6, -1, -1, 6, 6, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1,
241
241
  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
242
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, 8, -1,
243
242
  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
244
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, 23,
243
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1,
244
+ -1, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, 23,
245
245
  ];
246
246
 
247
247
  /** Map of non-terminals to the default state to goto after their reduction */
248
248
  protected const GotoDefault = [
249
- -8192, 284, 126, 264, 357, 358, 185, 378, 326, 607, 593, 384, 265, 614, 282, 281, 453, 343, 279, 395,
250
- 344, 399, 163, 291, 292, 335, 272, 407, 244, 424, 257, 336, 337, 262, 346, 548, 267, 429, 266, 245,
251
- 438, 442, 452, 261, 519, 280, 329, 523, 351, 283, 528, 583, 263, 293, 268, 545, 249, 220, 294, 227,
252
- 217, 314, 206, 215, 627, 228, 295, 581, 269, 589, 596, 315, 613, 626, 323, 340,
249
+ -8192, 283, 125, 262, 357, 358, 184, 378, 325, 607, 593, 384, 263, 614, 281, 280, 453, 343, 278, 395,
250
+ 344, 399, 162, 290, 291, 334, 270, 407, 243, 424, 256, 335, 336, 260, 346, 548, 265, 429, 264, 244,
251
+ 438, 442, 452, 259, 519, 279, 328, 523, 351, 282, 528, 583, 261, 292, 266, 545, 248, 219, 293, 226,
252
+ 216, 313, 205, 214, 627, 227, 294, 581, 267, 589, 596, 314, 613, 626, 322, 339,
253
253
  ];
254
254
 
255
255
  /** Map of rules to the non-terminal on their left-hand side, i.e. the non-terminal to use for
@@ -279,7 +279,7 @@ abstract class TagParserData
279
279
  1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 2, 0, 1, 3, 0, 1, 0, 1, 7, 0,
280
280
  2, 1, 3, 3, 4, 1, 3, 1, 2, 1, 1, 2, 0, 1, 3, 4, 6, 1, 2, 1,
281
281
  1, 1, 1, 1, 1, 3, 3, 3, 3, 0, 1, 0, 2, 2, 4, 1, 3, 1, 2, 2,
282
- 3, 2, 3, 1, 2, 2, 1, 2, 3, 0, 3, 3, 3, 1, 3, 3, 3, 4, 1, 1,
282
+ 3, 2, 3, 1, 2, 2, 1, 2, 3, 0, 3, 3, 4, 1, 3, 3, 3, 4, 1, 1,
283
283
  2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3,
284
284
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2,
285
285
  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, 3, 4, 4, 2, 2,
@@ -427,7 +427,7 @@ abstract class TagParserData
427
427
  3 => fn() => $this->semValue = new Expression\ArrayNode($this->semStack[$pos], position: $this->startTokenStack[$pos]->position),
428
428
  22, 23, 24, 25, 26, 62, 63, 64 => fn() => $this->semValue = new Node\IdentifierNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
429
429
  27 => fn() => $this->semValue = new Expression\VariableNode(substr($this->semStack[$pos], 1), $this->startTokenStack[$pos]->position),
430
- 30, 40, 51, 81, 90, 91, 92, 150, 151, 171, 172, 190, 218, 225, 251, 254, 286 => fn() => $this->semValue = $this->semStack[$pos - 1],
430
+ 30, 40, 51, 81, 90, 91, 150, 151, 171, 172, 190, 218, 225, 251, 254, 286 => fn() => $this->semValue = $this->semStack[$pos - 1],
431
431
  31, 39, 52, 73, 89, 170, 193 => fn() => $this->semValue = [],
432
432
  32, 41, 53, 75, 83, 86, 173, 259, 274 => fn() => $this->semValue = [$this->semStack[$pos]],
433
433
  33, 42, 54, 66, 68, 76, 82, 174, 258 => function () use ($pos) {
@@ -452,7 +452,7 @@ abstract class TagParserData
452
452
  61 => fn() => $this->semValue = TagParser::handleBuiltinTypes($this->semStack[$pos]),
453
453
  65, 67 => fn() => $this->semValue = [$this->semStack[$pos - 2], $this->semStack[$pos]],
454
454
  69, 71, 215 => fn() => $this->semValue = null,
455
- 74 => fn() => $this->semValue = $this->semStack[$pos - 2],
455
+ 74, 92 => fn() => $this->semValue = $this->semStack[$pos - 2],
456
456
  77 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], false, false, null, $this->startTokenStack[$pos]->position),
457
457
  78 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], true, false, null, $this->startTokenStack[$pos - 1]->position),
458
458
  79 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], false, true, null, $this->startTokenStack[$pos - 1]->position),
@@ -188,7 +188,7 @@ final class TemplateGenerator
188
188
 
189
189
 
190
190
  /**
191
- * Returns custom properites.
191
+ * Returns custom properties.
192
192
  * @return array<string, mixed>
193
193
  * @internal
194
194
  */
@@ -82,7 +82,7 @@ final class TemplateParser
82
82
  }
83
83
 
84
84
 
85
- public function parseFragment(callable $resolver, callable $after = null): FragmentNode
85
+ public function parseFragment(callable $resolver, ?callable $after = null): FragmentNode
86
86
  {
87
87
  $res = new FragmentNode;
88
88
  $save = [$this->lastResolver, $this->tag];
@@ -17,8 +17,8 @@ use Latte\Compiler\Nodes\TemplateNode;
17
17
  */
18
18
  class Engine
19
19
  {
20
- public const Version = '3.0.16';
21
- public const VersionId = 30016;
20
+ public const Version = '3.0.20';
21
+ public const VersionId = 30020;
22
22
 
23
23
  /** @deprecated use Engine::Version */
24
24
  public const
@@ -50,6 +50,7 @@ class Engine
50
50
  private bool $sandboxed = false;
51
51
  private ?string $phpBinary = null;
52
52
  private ?string $cacheKey;
53
+ private ?string $locale = null;
53
54
 
54
55
 
55
56
  public function __construct()
@@ -565,6 +566,25 @@ class Engine
565
566
  }
566
567
 
567
568
 
569
+ /**
570
+ * Sets the locale. It uses the same identifiers as the PHP intl extension.
571
+ */
572
+ public function setLocale(?string $locale): static
573
+ {
574
+ if ($locale && !extension_loaded('intl')) {
575
+ throw new RuntimeException("Setting a locale requires the 'intl' extension to be installed.");
576
+ }
577
+ $this->locale = $locale;
578
+ return $this;
579
+ }
580
+
581
+
582
+ public function getLocale(): ?string
583
+ {
584
+ return $this->locale;
585
+ }
586
+
587
+
568
588
  public function setLoader(Loader $loader): static
569
589
  {
570
590
  $this->loader = $loader;
@@ -207,11 +207,10 @@ class CachingIterator extends \CachingIterator implements \Countable
207
207
  * Returns property value.
208
208
  * @throws \LogicException if the property is not defined.
209
209
  */
210
- public function &__get(string $name): mixed
210
+ public function __get(string $name): mixed
211
211
  {
212
212
  if (method_exists($this, $m = 'get' . $name) || method_exists($this, $m = 'is' . $name)) {
213
- $ret = $this->$m();
214
- return $ret;
213
+ return $this->$m();
215
214
  }
216
215
 
217
216
  throw new \LogicException('Attempt to read undeclared property ' . static::class . "::\$$name.");
@@ -40,6 +40,12 @@ final class CoreExtension extends Latte\Extension
40
40
  }
41
41
 
42
42
 
43
+ public function beforeRender(Runtime\Template $template): void
44
+ {
45
+ $this->filters->locale = $template->getEngine()->getLocale();
46
+ }
47
+
48
+
43
49
  public function getTags(): array
44
50
  {
45
51
  return [
@@ -128,6 +134,7 @@ final class CoreExtension extends Latte\Extension
128
134
  'escapeUrl' => 'rawurlencode',
129
135
  'escapeXml' => [Latte\Runtime\Filters::class, 'escapeXml'],
130
136
  'explode' => [$this->filters, 'explode'],
137
+ 'filter' => [$this->filters, 'filter'],
131
138
  'first' => [$this->filters, 'first'],
132
139
  'firstUpper' => extension_loaded('mbstring')
133
140
  ? [$this->filters, 'firstUpper']
@@ -139,10 +146,11 @@ final class CoreExtension extends Latte\Extension
139
146
  'join' => [$this->filters, 'implode'],
140
147
  'last' => [$this->filters, 'last'],
141
148
  'length' => [$this->filters, 'length'],
149
+ 'localDate' => [$this->filters, 'localDate'],
142
150
  'lower' => extension_loaded('mbstring')
143
151
  ? [$this->filters, 'lower']
144
152
  : fn() => throw new RuntimeException('Filter |lower requires mbstring extension.'),
145
- 'number' => 'number_format',
153
+ 'number' => [$this->filters, 'number'],
146
154
  'padLeft' => [$this->filters, 'padLeft'],
147
155
  'padRight' => [$this->filters, 'padRight'],
148
156
  'query' => [$this->filters, 'query'],