@vituum/vite-plugin-latte 2.0.0-next.4 → 2.0.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 (234) hide show
  1. package/README.md +1 -1
  2. package/index.js +4 -2
  3. package/package.json +11 -9
  4. package/types/index.d.ts +1 -1
  5. package/vendor/autoload.php +1 -4
  6. package/vendor/composer/InstalledVersions.php +36 -2
  7. package/vendor/composer/autoload_classmap.php +14 -15
  8. package/vendor/composer/autoload_psr4.php +2 -0
  9. package/vendor/composer/autoload_static.php +38 -15
  10. package/vendor/composer/installed.json +32 -22
  11. package/vendor/composer/installed.php +12 -12
  12. package/vendor/composer/platform_check.php +4 -5
  13. package/vendor/latte/latte/bin/latte-lint +10 -3
  14. package/vendor/latte/latte/composer.json +16 -6
  15. package/vendor/latte/latte/src/Bridges/Tracy/BlueScreenPanel.php +13 -38
  16. package/vendor/latte/latte/src/Bridges/Tracy/LattePanel.php +9 -7
  17. package/vendor/latte/latte/src/Bridges/Tracy/TracyExtension.php +2 -4
  18. package/vendor/latte/latte/src/Bridges/Tracy/dist/panel.phtml +94 -0
  19. package/vendor/latte/latte/src/Bridges/Tracy/dist/tab.phtml +10 -0
  20. package/vendor/latte/latte/src/Latte/Compiler/Block.php +4 -6
  21. package/vendor/latte/latte/src/Latte/Compiler/Escaper.php +67 -86
  22. package/vendor/latte/latte/src/Latte/Compiler/Node.php +6 -3
  23. package/vendor/latte/latte/src/Latte/Compiler/NodeHelpers.php +16 -6
  24. package/vendor/latte/latte/src/Latte/Compiler/NodeTraverser.php +25 -12
  25. package/vendor/latte/latte/src/Latte/Compiler/Nodes/AreaNode.php +7 -3
  26. package/vendor/latte/latte/src/Latte/Compiler/Nodes/AuxiliaryNode.php +5 -4
  27. package/vendor/latte/latte/src/Latte/Compiler/Nodes/FragmentNode.php +8 -4
  28. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Html/AttributeNode.php +7 -15
  29. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Html/BogusTagNode.php +4 -6
  30. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Html/CommentNode.php +4 -3
  31. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Html/ElementNode.php +37 -67
  32. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Html/ExpressionAttributeNode.php +60 -0
  33. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Html/TagNode.php +70 -0
  34. package/vendor/latte/latte/src/Latte/Compiler/Nodes/NopNode.php +4 -3
  35. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/ArgumentNode.php +4 -3
  36. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/ArrayItemNode.php +4 -15
  37. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/ClosureUseNode.php +4 -3
  38. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/ComplexTypeNode.php +4 -3
  39. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ArrayAccessNode.php +4 -3
  40. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ArrayNode.php +6 -22
  41. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/AssignNode.php +18 -5
  42. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/AssignOpNode.php +18 -7
  43. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/AuxiliaryNode.php +5 -4
  44. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/BinaryOpNode.php +38 -9
  45. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/CastNode.php +14 -6
  46. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ClassConstantFetchNode.php +4 -3
  47. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/CloneNode.php +12 -4
  48. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ClosureNode.php +10 -6
  49. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ConstantFetchNode.php +7 -6
  50. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/EmptyNode.php +4 -3
  51. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FilterCallNode.php +10 -4
  52. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FunctionCallNode.php +14 -5
  53. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/InNode.php +4 -3
  54. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/InstanceofNode.php +14 -5
  55. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/IssetNode.php +6 -3
  56. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MatchNode.php +6 -3
  57. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MethodCallNode.php +18 -5
  58. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/NewNode.php +14 -4
  59. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/PostOpNode.php +14 -6
  60. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/PreOpNode.php +14 -6
  61. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/PropertyFetchNode.php +4 -3
  62. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallNode.php +14 -15
  63. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticPropertyFetchNode.php +4 -3
  64. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/TemporaryNode.php +7 -6
  65. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/TernaryNode.php +16 -11
  66. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/UnaryOpNode.php +19 -9
  67. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/VariableNode.php +4 -3
  68. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/ExpressionNode.php +4 -3
  69. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/FilterNode.php +33 -8
  70. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/IdentifierNode.php +4 -3
  71. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/InterpolatedStringPartNode.php +4 -3
  72. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/IntersectionTypeNode.php +6 -3
  73. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/ListItemNode.php +4 -3
  74. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/ListNode.php +4 -3
  75. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/MatchArmNode.php +6 -3
  76. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/ModifierNode.php +29 -41
  77. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/NameNode.php +9 -4
  78. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/NullableTypeNode.php +4 -3
  79. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/OperatorNode.php +27 -0
  80. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/ParameterNode.php +4 -3
  81. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/BooleanNode.php +4 -3
  82. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/FloatNode.php +9 -6
  83. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/IntegerNode.php +8 -6
  84. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/InterpolatedStringNode.php +9 -5
  85. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/NullNode.php +4 -3
  86. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/StringNode.php +6 -4
  87. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/ScalarNode.php +4 -3
  88. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/SuperiorTypeNode.php +4 -3
  89. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/UnionTypeNode.php +6 -3
  90. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/VarLikeIdentifierNode.php +4 -3
  91. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/{Expression/NotNode.php → VariadicPlaceholderNode.php} +9 -9
  92. package/vendor/latte/latte/src/Latte/{Essential → Compiler}/Nodes/PrintNode.php +9 -15
  93. package/vendor/latte/latte/src/Latte/Compiler/Nodes/StatementNode.php +7 -3
  94. package/vendor/latte/latte/src/Latte/Compiler/Nodes/TemplateNode.php +4 -3
  95. package/vendor/latte/latte/src/Latte/Compiler/Nodes/TextNode.php +6 -4
  96. package/vendor/latte/latte/src/Latte/Compiler/PhpHelpers.php +32 -18
  97. package/vendor/latte/latte/src/Latte/Compiler/Position.php +7 -7
  98. package/vendor/latte/latte/src/Latte/Compiler/PrintContext.php +72 -104
  99. package/vendor/latte/latte/src/Latte/Compiler/Tag.php +17 -16
  100. package/vendor/latte/latte/src/Latte/Compiler/TagLexer.php +11 -8
  101. package/vendor/latte/latte/src/Latte/Compiler/TagParser.php +28 -23
  102. package/vendor/latte/latte/src/Latte/Compiler/TagParserData.php +360 -336
  103. package/vendor/latte/latte/src/Latte/Compiler/TemplateGenerator.php +49 -38
  104. package/vendor/latte/latte/src/Latte/Compiler/TemplateLexer.php +37 -12
  105. package/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php +35 -21
  106. package/vendor/latte/latte/src/Latte/Compiler/TemplateParserHtml.php +121 -71
  107. package/vendor/latte/latte/src/Latte/Compiler/Token.php +79 -70
  108. package/vendor/latte/latte/src/Latte/Compiler/TokenStream.php +21 -14
  109. package/vendor/latte/latte/src/Latte/ContentType.php +4 -3
  110. package/vendor/latte/latte/src/Latte/Engine.php +147 -188
  111. package/vendor/latte/latte/src/Latte/Essential/AuxiliaryIterator.php +5 -7
  112. package/vendor/latte/latte/src/Latte/Essential/Blueprint.php +5 -5
  113. package/vendor/latte/latte/src/Latte/Essential/CachingIterator.php +5 -4
  114. package/vendor/latte/latte/src/Latte/Essential/CoreExtension.php +155 -127
  115. package/vendor/latte/latte/src/Latte/Essential/Filters.php +99 -44
  116. package/vendor/latte/latte/src/Latte/Essential/Nodes/BlockNode.php +14 -13
  117. package/vendor/latte/latte/src/Latte/Essential/Nodes/CaptureNode.php +5 -6
  118. package/vendor/latte/latte/src/Latte/Essential/Nodes/ContentTypeNode.php +3 -4
  119. package/vendor/latte/latte/src/Latte/Essential/Nodes/CustomFunctionCallNode.php +46 -0
  120. package/vendor/latte/latte/src/Latte/Essential/Nodes/DebugbreakNode.php +2 -3
  121. package/vendor/latte/latte/src/Latte/Essential/Nodes/DefineNode.php +10 -7
  122. package/vendor/latte/latte/src/Latte/Essential/Nodes/DoNode.php +3 -4
  123. package/vendor/latte/latte/src/Latte/Essential/Nodes/DumpNode.php +2 -3
  124. package/vendor/latte/latte/src/Latte/Essential/Nodes/EmbedNode.php +8 -9
  125. package/vendor/latte/latte/src/Latte/Essential/Nodes/ExtendsNode.php +3 -5
  126. package/vendor/latte/latte/src/Latte/Essential/Nodes/FirstLastSepNode.php +4 -7
  127. package/vendor/latte/latte/src/Latte/Essential/Nodes/ForNode.php +6 -5
  128. package/vendor/latte/latte/src/Latte/Essential/Nodes/ForeachNode.php +7 -7
  129. package/vendor/latte/latte/src/Latte/Essential/Nodes/IfChangedNode.php +4 -5
  130. package/vendor/latte/latte/src/Latte/Essential/Nodes/IfContentNode.php +7 -6
  131. package/vendor/latte/latte/src/Latte/Essential/Nodes/IfNode.php +11 -11
  132. package/vendor/latte/latte/src/Latte/Essential/Nodes/ImportNode.php +5 -6
  133. package/vendor/latte/latte/src/Latte/Essential/Nodes/IncludeBlockNode.php +26 -27
  134. package/vendor/latte/latte/src/Latte/Essential/Nodes/IncludeFileNode.php +7 -10
  135. package/vendor/latte/latte/src/Latte/Essential/Nodes/IterateWhileNode.php +6 -6
  136. package/vendor/latte/latte/src/Latte/Essential/Nodes/JumpNode.php +4 -8
  137. package/vendor/latte/latte/src/Latte/Essential/Nodes/NAttrNode.php +35 -47
  138. package/vendor/latte/latte/src/Latte/Essential/Nodes/NClassNode.php +4 -5
  139. package/vendor/latte/latte/src/Latte/Essential/Nodes/NElseNode.php +69 -34
  140. package/vendor/latte/latte/src/Latte/Essential/Nodes/NTagNode.php +9 -33
  141. package/vendor/latte/latte/src/Latte/Essential/Nodes/ParametersNode.php +7 -4
  142. package/vendor/latte/latte/src/Latte/Essential/Nodes/RawPhpNode.php +3 -4
  143. package/vendor/latte/latte/src/Latte/Essential/Nodes/RollbackNode.php +2 -3
  144. package/vendor/latte/latte/src/Latte/Essential/Nodes/SpacelessNode.php +4 -5
  145. package/vendor/latte/latte/src/Latte/Essential/Nodes/SwitchNode.php +9 -7
  146. package/vendor/latte/latte/src/Latte/Essential/Nodes/TemplatePrintNode.php +4 -4
  147. package/vendor/latte/latte/src/Latte/Essential/Nodes/TemplateTypeNode.php +3 -4
  148. package/vendor/latte/latte/src/Latte/Essential/Nodes/TraceNode.php +2 -3
  149. package/vendor/latte/latte/src/Latte/Essential/Nodes/TranslateNode.php +5 -5
  150. package/vendor/latte/latte/src/Latte/Essential/Nodes/TryNode.php +4 -5
  151. package/vendor/latte/latte/src/Latte/Essential/Nodes/VarNode.php +10 -6
  152. package/vendor/latte/latte/src/Latte/Essential/Nodes/VarPrintNode.php +2 -3
  153. package/vendor/latte/latte/src/Latte/Essential/Nodes/VarTypeNode.php +3 -4
  154. package/vendor/latte/latte/src/Latte/Essential/Nodes/WhileNode.php +5 -5
  155. package/vendor/latte/latte/src/Latte/Essential/Passes.php +82 -21
  156. package/vendor/latte/latte/src/Latte/Essential/RawPhpExtension.php +2 -4
  157. package/vendor/latte/latte/src/Latte/Essential/RollbackException.php +1 -3
  158. package/vendor/latte/latte/src/Latte/Essential/Tracer.php +24 -28
  159. package/vendor/latte/latte/src/Latte/Essential/TranslatorExtension.php +14 -14
  160. package/vendor/latte/latte/src/Latte/Extension.php +12 -6
  161. package/vendor/latte/latte/src/Latte/Feature.php +24 -0
  162. package/vendor/latte/latte/src/Latte/Helpers.php +65 -15
  163. package/vendor/latte/latte/src/Latte/Loader.php +1 -9
  164. package/vendor/latte/latte/src/Latte/Loaders/FileLoader.php +11 -17
  165. package/vendor/latte/latte/src/Latte/Loaders/StringLoader.php +7 -21
  166. package/vendor/latte/latte/src/Latte/Policy.php +4 -3
  167. package/vendor/latte/latte/src/Latte/Runtime/Block.php +2 -4
  168. package/vendor/latte/latte/src/Latte/Runtime/Cache.php +143 -0
  169. package/vendor/latte/latte/src/Latte/Runtime/FilterExecutor.php +5 -6
  170. package/vendor/latte/latte/src/Latte/Runtime/FilterInfo.php +11 -11
  171. package/vendor/latte/latte/src/Latte/Runtime/FunctionExecutor.php +5 -6
  172. package/vendor/latte/latte/src/Latte/Runtime/Helpers.php +91 -0
  173. package/vendor/latte/latte/src/Latte/Runtime/Html.php +3 -5
  174. package/vendor/latte/latte/src/Latte/Runtime/HtmlHelpers.php +374 -0
  175. package/vendor/latte/latte/src/Latte/Runtime/HtmlStringable.php +1 -3
  176. package/vendor/latte/latte/src/Latte/Runtime/Template.php +162 -182
  177. package/vendor/latte/latte/src/Latte/Runtime/XmlHelpers.php +108 -0
  178. package/vendor/latte/latte/src/Latte/Sandbox/Nodes/FunctionCallNode.php +12 -4
  179. package/vendor/latte/latte/src/Latte/Sandbox/Nodes/MethodCallNode.php +15 -5
  180. package/vendor/latte/latte/src/Latte/Sandbox/Nodes/PropertyFetchNode.php +4 -3
  181. package/vendor/latte/latte/src/Latte/Sandbox/Nodes/SandboxNode.php +5 -6
  182. package/vendor/latte/latte/src/Latte/Sandbox/Nodes/StaticMethodCallNode.php +14 -4
  183. package/vendor/latte/latte/src/Latte/Sandbox/Nodes/StaticPropertyFetchNode.php +4 -3
  184. package/vendor/latte/latte/src/Latte/Sandbox/RuntimeChecker.php +8 -6
  185. package/vendor/latte/latte/src/Latte/Sandbox/SandboxExtension.php +16 -12
  186. package/vendor/latte/latte/src/Latte/Sandbox/SecurityPolicy.php +18 -16
  187. package/vendor/latte/latte/src/Latte/attributes.php +7 -3
  188. package/vendor/latte/latte/src/Latte/exceptions.php +52 -6
  189. package/vendor/latte/latte/src/Tools/Linter.php +74 -28
  190. package/vendor/latte/latte/src/Tools/LinterExtension.php +176 -0
  191. package/vendor/nette/utils/composer.json +15 -5
  192. package/vendor/nette/utils/readme.md +1 -1
  193. package/vendor/nette/utils/src/HtmlStringable.php +4 -1
  194. package/vendor/nette/utils/src/Iterators/CachingIterator.php +10 -25
  195. package/vendor/nette/utils/src/Iterators/Mapper.php +2 -3
  196. package/vendor/nette/utils/src/SmartObject.php +3 -0
  197. package/vendor/nette/utils/src/StaticClass.php +1 -11
  198. package/vendor/nette/utils/src/Translator.php +1 -1
  199. package/vendor/nette/utils/src/Utils/ArrayHash.php +6 -10
  200. package/vendor/nette/utils/src/Utils/ArrayList.php +8 -12
  201. package/vendor/nette/utils/src/Utils/Arrays.php +38 -18
  202. package/vendor/nette/utils/src/Utils/Callback.php +13 -8
  203. package/vendor/nette/utils/src/Utils/DateTime.php +95 -26
  204. package/vendor/nette/utils/src/Utils/FileInfo.php +6 -7
  205. package/vendor/nette/utils/src/Utils/FileSystem.php +10 -5
  206. package/vendor/nette/utils/src/Utils/Finder.php +31 -12
  207. package/vendor/nette/utils/src/Utils/Floats.php +1 -0
  208. package/vendor/nette/utils/src/Utils/Helpers.php +22 -2
  209. package/vendor/nette/utils/src/Utils/Html.php +130 -127
  210. package/vendor/nette/utils/src/Utils/Image.php +80 -60
  211. package/vendor/nette/utils/src/Utils/ImageColor.php +5 -0
  212. package/vendor/nette/utils/src/Utils/ImageType.php +2 -0
  213. package/vendor/nette/utils/src/Utils/Iterables.php +41 -7
  214. package/vendor/nette/utils/src/Utils/Json.php +2 -0
  215. package/vendor/nette/utils/src/Utils/ObjectHelpers.php +2 -0
  216. package/vendor/nette/utils/src/Utils/Paginator.php +10 -43
  217. package/vendor/nette/utils/src/Utils/Random.php +2 -0
  218. package/vendor/nette/utils/src/Utils/Reflection.php +22 -15
  219. package/vendor/nette/utils/src/Utils/ReflectionMethod.php +6 -1
  220. package/vendor/nette/utils/src/Utils/Strings.php +62 -57
  221. package/vendor/nette/utils/src/Utils/Type.php +91 -42
  222. package/vendor/nette/utils/src/Utils/Validators.php +9 -7
  223. package/vendor/latte/latte/src/Bridges/Tracy/templates/LattePanel.panel.phtml +0 -101
  224. package/vendor/latte/latte/src/Bridges/Tracy/templates/LattePanel.tab.phtml +0 -15
  225. package/vendor/latte/latte/src/Latte/Compiler/ExpressionBuilder.php +0 -129
  226. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ErrorSuppressNode.php +0 -36
  227. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FunctionCallableNode.php +0 -39
  228. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MethodCallableNode.php +0 -42
  229. package/vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallableNode.php +0 -57
  230. package/vendor/latte/latte/src/Latte/PositionAwareException.php +0 -47
  231. package/vendor/latte/latte/src/Latte/Runtime/Filters.php +0 -283
  232. package/vendor/latte/latte/src/Latte/Sandbox/Nodes/FunctionCallableNode.php +0 -29
  233. package/vendor/latte/latte/src/Latte/Sandbox/Nodes/MethodCallableNode.php +0 -30
  234. package/vendor/latte/latte/src/Latte/Sandbox/Nodes/StaticMethodCallableNode.php +0 -30
@@ -1,21 +1,20 @@
1
- <?php
1
+ <?php declare(strict_types=1);
2
2
 
3
3
  /**
4
4
  * This file is part of the Latte (https://latte.nette.org)
5
5
  * Copyright (c) 2008 David Grudl (https://davidgrudl.com)
6
6
  */
7
7
 
8
- declare(strict_types=1);
9
-
10
8
  namespace Latte\Compiler;
11
9
 
12
10
  use Latte\Compiler\Nodes\Php as Node;
13
11
  use Latte\Compiler\Nodes\Php\Expression;
14
12
  use Latte\Compiler\Nodes\Php\Scalar;
13
+ use function array_pop, count, is_string, substr;
15
14
 
16
15
 
17
- /** @internal generated trait used by TagParser */
18
- abstract class TagParserData
16
+ /** @internal generated part of TagParser */
17
+ trait TagParserData
19
18
  {
20
19
  /** Symbol number of error recovery token */
21
20
  protected const ErrorSymbol = 1;
@@ -26,230 +25,237 @@ abstract class TagParserData
26
25
  /** Rule number signifying that an unexpected token was encountered */
27
26
  protected const UnexpectedTokenRule = 8191;
28
27
 
29
- protected const Yy2Tblstate = 256;
28
+ protected const Yy2Tblstate = 266;
30
29
 
31
30
  /** Number of non-leaf states */
32
- protected const NumNonLeafStates = 354;
31
+ protected const NumNonLeafStates = 367;
33
32
 
34
33
  /** Map of lexer tokens to internal symbols */
35
34
  protected const TokenToSymbol = [
36
- 0, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
37
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 48, 108, 113, 109, 47, 113, 113,
38
- 102, 103, 45, 43, 2, 44, 39, 46, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 22, 106,
39
- 35, 7, 37, 21, 59, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
40
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 61, 113, 107, 27, 113, 113, 100, 113, 113,
41
- 113, 98, 101, 113, 113, 113, 113, 113, 113, 99, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
42
- 113, 113, 113, 104, 26, 105, 50, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
43
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
44
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
45
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
46
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
47
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
48
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 1, 3, 4, 5,
49
- 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25, 28, 29, 30,
50
- 31, 32, 33, 34, 36, 38, 40, 41, 42, 49, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62,
51
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
52
- 83, 84, 85, 86, 87, 88, 89, 90, 110, 91, 92, 93, 94, 111, 112, 95, 96, 97,
35
+ 0, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
36
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 51, 111, 116, 112, 50, 116, 116,
37
+ 105, 106, 48, 46, 2, 47, 42, 49, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 22, 109,
38
+ 37, 7, 39, 21, 62, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
39
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 64, 116, 110, 29, 116, 116, 103, 116, 116,
40
+ 116, 101, 104, 116, 116, 116, 116, 116, 116, 102, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
41
+ 116, 116, 116, 107, 26, 108, 53, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
42
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
43
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
44
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
45
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
46
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
47
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 1, 3, 4, 5,
48
+ 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25, 27, 28, 30,
49
+ 31, 32, 33, 34, 35, 36, 38, 40, 41, 43, 44, 45, 52, 54, 55, 56, 57, 58, 59, 60,
50
+ 61, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
51
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 113, 94, 95, 96, 97, 114, 115, 98, 99,
52
+ 100,
53
53
  ];
54
54
 
55
55
  /** Map of states to a displacement into the self::Action table. The corresponding action for this
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, 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
- -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
62
- -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
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, 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
- -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
78
- -43, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
79
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
80
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 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,
59
+ 452, 283, 119, 283, 162, 283, 283, 201, 283, 244, 283, 327, 327, 327, 327, -30, -30, -30, -30, -12,
60
+ -12, 49, 232, 364, 312, 364, 312, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
61
+ 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
62
+ 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
63
+ 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
64
+ 364, 364, 364, 364, 364, 364, 364, 455, 56, 308, 323, 468, 471, 470, 472, 485, 486, 484, 487, 492,
65
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 282, 272, 352, 143, 143, 143,
66
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 298, 298, 298, 313, 482,
67
+ 476, 469, 125, 152, 152, 435, 435, 435, 435, 435, 192, 366, 366, -35, -35, -35, -35, 186, 186, 311,
68
+ 311, 311, 311, 311, 311, 311, 311, 311, 149, 302, -10, -10, 194, 208, 147, 147, 147, 147, 27, 27,
69
+ 27, 27, 27, 27, 27, 65, 174, 174, 174, 391, 424, 427, 440, 340, -57, -57, -57, -57, -57, -57,
70
+ 360, 493, -8, 304, 304, 450, 338, 338, 126, 304, 362, 113, 139, 454, 463, 466, 234, 159, 62, 465,
71
+ 336, 345, 355, 18, 18, 467, 17, 382, 448, 448, 354, 382, 382, 382, 354, -56, -56, -56, -42, -19,
72
+ 54, 301, 473, 301, 301, 301, 285, -47, 418, 418, 158, 426, 426, 161, 228, 167, 418, 418, 418, 418,
73
+ 167, 255, 167, 167, 344, 330, 369, 269, 172, 369, 343, 343, 258, 130, 436, 432, 437, 423, 417, 475,
74
+ 326, 332, 358, 348, 416, 329, 436, 432, 437, 351, 22, 410, 411, 357, 357, 357, 357, 357, 357, 357,
75
+ 357, 357, 357, 326, 449, 150, 359, 439, 441, 95, 365, 456, 457, 458, 478, 350, 479, 357, 459, 384,
76
+ 328, 489, 414, 121, 326, 490, 460, 474, 356, 371, 451, 353, 491, 461, 462, 373, 480, 284, 453, 287,
77
+ 481, 299, 477, 334, 464, 488, 483, 0, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
78
+ -30, -30, 0, 0, 0, 0, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
79
+ -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
80
+ -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
81
+ -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
82
+ -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 68, 68, 68, 68, 68, 68,
83
+ 68, 68, 68, 68, 68, 68, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
84
+ 0, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
85
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 0, 68, 68, 68, 68, 68, 68, 68, 366, 0, 0,
86
+ 174, 174, 174, 174, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 174, 174, 331, 331, 331,
87
+ 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 0, 0, 0, 0, 0, 0, 0, 0,
88
+ 362, 343, 343, 343, 343, 343, 343, 362, 362, 0, 0, 0, 0, 174, 174, 0, 0, 0, 362, 343,
89
+ 0, 0, 0, 0, 0, 0, 382, 382, 382, 362, 426, 426, 354, 0, 0, 343, 343, 0, 0, 0,
90
+ 0, 0, 0, 0, 0, 0, 0, 0, 357, 150, 357, 357, 357,
90
91
  ];
91
92
 
92
93
  /** Table of actions. Indexed according to self::ActionBase comment. */
93
94
  protected const Action = [
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
- -8190, -8190, -8190, 2, 4, -219, 5, 381, 372, 630, 362, 363, 361, 6, 8, 366, 9, -226, -8190, 10,
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,
95
+ 373, 372, -8191, -8191, -8191, -8191, 68, 69, 70, 71, 72, 198, 392, 392, 393, 393, 31, 32, -8190, -8190,
96
+ 11, 33, -50, 34, 179, 180, 35, 36, 37, 38, 39, 40, 41, 29, 1, 194, 24, 588, 589, 209,
97
+ 12, 570, 394, 199, 200, 586, 294, 201, 251, 252, 97, -202, 295, 296, -47, 299, -238, 297, 298, 213,
98
+ 178, 553, -288, -202, -288, 287, 572, 571, 594, 592, 593, 49, 50, 51, -201, 25, -238, -238, -238, -8190,
99
+ -8190, 230, 299, 171, 172, -238, -201, -22, 431, 22, 430, 52, 53, 54, 55, -48, -52, 56, 57, 58,
100
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 334,
101
+ 197, -47, 375, 376, 374, 431, -88, 430, -88, -242, 0, 78, 15, 79, 80, 81, 82, 83, 84, 85,
102
+ 86, 87, 88, 89, 90, 91, -8190, -8190, -8190, -242, -242, -242, 8, -88, -88, -8190, -8190, -8190, -201, -286,
103
+ 10, -286, 212, 13, 385, 375, 376, 374, -288, 14, -201, 379, -288, -8190, 20, -8190, -8190, -8190, -8190, 497,
104
+ 499, -8190, -8190, -8190, 195, 26, 351, -8190, 205, -235, 305, 69, 70, 71, 72, 306, 381, 240, 241, 380,
105
+ 386, 307, 308, 597, 375, 376, 374, 385, 673, -235, -235, -235, 674, 94, 379, 198, 373, 372, -235, 394,
106
+ 73, 74, 75, 76, 77, 446, 197, 195, 26, 198, 100, 205, -88, 305, -284, -8190, -284, 78, 306, 381,
107
+ 240, 241, 380, 386, 307, 308, 385, 375, 376, 374, 1, 196, 45, 379, 95, 259, 94, 192, 394, 299,
108
+ 239, 586, -8190, -8190, 394, -286, 195, 26, 458, -286, 205, 396, 305, 297, 298, -8190, -8190, 306, 381, 240,
109
+ 241, 380, 386, 307, 308, -8190, 375, 376, 374, 385, 103, 44, 431, 104, 430, 98, 379, 230, 299, 96,
110
+ -29, -8190, -8190, -8190, 299, 105, 431, 442, 430, 195, 26, 202, 203, 205, 16, 305, -8190, -8190, -8190, -8190,
111
+ 306, 381, 240, 241, 380, 386, 307, 308, 385, 18, 375, 376, 374, 92, -8190, 379, -8190, -8190, 98, 93,
112
+ -284, 106, -8190, -8190, -284, 70, 71, 72, 195, 26, 448, -23, 205, 197, 305, -8190, -8190, -8190, -17, 306,
113
+ 381, 240, 241, 380, 386, 307, 308, -16, -235, 375, 376, 374, 385, 17, 102, 1, 196, 42, 43, 379,
114
+ 259, 171, 172, 394, -8190, -8190, 586, 99, -235, -235, -235, 193, 195, 26, -8190, -8190, 205, -235, 305, 298,
115
+ 568, 204, 570, 306, 381, 240, 241, 380, 386, 307, 308, 385, 373, 372, 101, 394, 44, 2, 379, 429,
116
+ 78, 98, 230, 299, 404, 358, 675, 572, 571, -8190, 598, 378, 377, -271, 394, 389, 662, 390, -8190, -8190,
117
+ -8190, -210, 382, 381, 384, 383, 380, 386, 387, 388, 599, 170, 248, 21, 183, -242, -8190, 9, -8190, -8190,
118
+ -8190, -8190, 284, 0, -8190, -8190, -8190, -8191, -8191, -8191, -8191, -8191, -8190, -8190, -8190, -242, -242, -242, -270, -8190,
119
+ -8190, -8190, 171, 172, -201, -8190, -8190, -8190, -239, -269, -8190, -237, -8190, -8190, -8190, -8190, -201, -8190, -8190, -8190,
120
+ -8190, -8190, -8190, -8190, -236, -8190, -8190, -8190, -239, -239, -239, -237, -237, -237, 28, -246, -245, -239, -241, -244,
121
+ -237, -243, 3, 4, -236, -236, -236, 27, 6, -246, 232, 7, -245, -236, 217, 218, 219, 23, -241, -241,
122
+ -241, 46, 47, 249, 190, -244, 191, 214, 215, 216, 255, 256, 257, 30, 250, 5, 177, 286, 247, 583,
123
+ 299, 212, 449, 541, 584, 460, 447, 459, 443, 0, 559, -29, 0, 536, 342, 0, 347, 575, 542, 642,
124
+ 0, 19, 48, 0, 267, 0, 670, 672, 405, 671, 0, 552, 355, 669, 626, 640, 0, 366, 0, 615,
125
+ 630, 665, 360, 0, 587,
125
126
  ];
126
127
 
127
128
  /** Table indexed analogously to self::Action. If self::ActionCheck[self::ActionBase[$state] + $symbol] != $symbol
128
129
  * then the action is defaulted, i.e. self::ActionDefault[$state] should be used instead. */
129
130
  protected const ActionCheck = [
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, 0, 72, 73, 105, 75, 76, 21, 2, 79, 80, 2, 0,
132
- 61, 84, 85, 86, 66, 6, 68, 81, 82, 83, 93, 94, 95, 96, 97, 3, 4, 5, 71, 102,
133
- 81, 82, 83, 85, 2, 108, 109, 2, 26, 90, 28, 93, 94, 21, 87, 23, 24, 25, 2, 27,
134
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
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, 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
- 2, 62, 63, 42, 22, 66, 44, 68, 60, 26, 49, 6, 73, 74, 75, 76, 77, 78, 79, 80,
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, 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
- 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, 22, 91, 61, 90, 90, 42, 66, 22, 68, 3, 4, 5, 49,
144
- 103, 22, 102, 102, 22, 22, 81, 82, 83, 81, 82, 83, 62, 63, 26, 90, 66, 61, 68, 22,
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
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 102, 28, 29, 81, 82, 83, 102,
152
- 3, 4, 5, 102, 102, 90, 102, 69, 42, 71, 3, 4, 5, 102, 102, 49, 102, 102, 21, 102,
153
- 23, 24, 102, 51, 52, 102, 88, 89, 62, 63, 61, 102, 66, 61, 68, 21, 102, 102, 102, 73,
154
- 74, 75, 76, 77, 78, 79, 80, 103, 103, 42, 81, 82, 83, 81, 82, 83, 49, 91, 103, 90,
155
- 103, 103, 90, 103, 103, 103, 103, 103, 103, 62, 63, 102, 104, 66, 103, 68, 3, 4, 5, 103,
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, 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
- -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
160
- -1, -1, 102, -1, -1, -1, -1, -1, 108, 109,
131
+ 30, 31, 37, 38, 39, 40, 41, 42, 43, 44, 45, 21, 69, 69, 71, 71, 46, 47, 30, 31,
132
+ 2, 51, 0, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 80, 64, 65, 66, 67, 68, 69,
133
+ 22, 71, 72, 26, 27, 75, 76, 30, 78, 79, 107, 93, 82, 83, 0, 112, 64, 87, 88, 89,
134
+ 6, 108, 0, 105, 2, 77, 96, 97, 98, 99, 100, 3, 4, 5, 93, 105, 84, 85, 86, 30,
135
+ 31, 111, 112, 27, 28, 93, 105, 22, 98, 21, 100, 23, 24, 25, 26, 0, 106, 29, 30, 31,
136
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 70,
137
+ 52, 0, 3, 4, 5, 98, 0, 100, 2, 64, 0, 63, 7, 8, 9, 10, 11, 12, 13, 14,
138
+ 15, 16, 17, 18, 19, 20, 3, 4, 5, 84, 85, 86, 2, 27, 28, 3, 4, 5, 93, 0,
139
+ 2, 2, 106, 2, 45, 3, 4, 5, 106, 2, 105, 52, 110, 21, 2, 23, 24, 25, 26, 54,
140
+ 55, 29, 30, 31, 65, 66, 47, 74, 69, 64, 71, 42, 43, 44, 45, 76, 77, 78, 79, 80,
141
+ 81, 82, 83, 90, 3, 4, 5, 45, 69, 84, 85, 86, 73, 94, 52, 21, 30, 31, 93, 72,
142
+ 46, 47, 48, 49, 50, 106, 52, 65, 66, 21, 2, 69, 106, 71, 0, 88, 2, 63, 76, 77,
143
+ 78, 79, 80, 81, 82, 83, 45, 3, 4, 5, 64, 65, 105, 52, 22, 69, 94, 2, 72, 112,
144
+ 2, 75, 30, 31, 72, 106, 65, 66, 106, 110, 69, 2, 71, 87, 88, 3, 4, 76, 77, 78,
145
+ 79, 80, 81, 82, 83, 3, 3, 4, 5, 45, 6, 105, 98, 6, 100, 94, 52, 111, 112, 107,
146
+ 106, 3, 4, 5, 112, 6, 98, 106, 100, 65, 66, 26, 27, 69, 6, 71, 3, 4, 5, 21,
147
+ 76, 77, 78, 79, 80, 81, 82, 83, 45, 6, 3, 4, 5, 7, 21, 52, 23, 24, 94, 7,
148
+ 106, 7, 30, 31, 110, 43, 44, 45, 65, 66, 106, 22, 69, 52, 71, 3, 4, 5, 22, 76,
149
+ 77, 78, 79, 80, 81, 82, 83, 22, 64, 3, 4, 5, 45, 22, 22, 64, 65, 94, 95, 52,
150
+ 69, 27, 28, 72, 46, 47, 75, 22, 84, 85, 86, 22, 65, 66, 30, 31, 69, 93, 71, 88,
151
+ 69, 30, 71, 76, 77, 78, 79, 80, 81, 82, 83, 45, 30, 31, 64, 72, 105, 105, 52, 88,
152
+ 63, 94, 111, 112, 94, 81, 73, 96, 97, 74, 90, 65, 66, 105, 72, 69, 74, 71, 3, 4,
153
+ 5, 93, 76, 77, 78, 79, 80, 81, 82, 83, 90, 93, 93, 91, 92, 64, 21, 2, 23, 24,
154
+ 25, 26, 106, -1, 29, 30, 31, 32, 33, 34, 35, 36, 3, 4, 5, 84, 85, 86, 105, 3,
155
+ 4, 5, 27, 28, 93, 3, 4, 5, 64, 105, 21, 64, 23, 24, 25, 26, 105, 21, 29, 23,
156
+ 24, 25, 26, 21, 64, 23, 24, 25, 84, 85, 86, 84, 85, 86, 64, 105, 105, 93, 64, 105,
157
+ 93, 105, 105, 105, 84, 85, 86, 64, 105, 105, 64, 105, 105, 93, 84, 85, 86, 105, 84, 85,
158
+ 86, 105, 105, 93, 105, 105, 105, 84, 85, 86, 84, 85, 86, 101, 102, 103, 104, 106, 105, 110,
159
+ 112, 106, 106, 106, 106, 106, 106, 106, 106, -1, 106, 106, -1, 106, 106, -1, 106, 106, 106, 106,
160
+ -1, 107, 107, -1, 107, -1, 108, 108, 108, 108, -1, 108, 108, 108, 108, 108, -1, 109, -1, 110,
161
+ 110, 110, 110, -1, 111,
161
162
  ];
162
163
 
163
164
  /** Map of states to their default action */
164
165
  protected const ActionDefault = [
165
- 8191, 263, 263, 31, 263, 8191, 8191, 263, 8191, 8191, 8191, 29, 8191, 8191, 8191, 29, 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,
166
+ 8191, 282, 8191, 282, 8191, 31, 282, 8191, 282, 8191, 29, 8191, 8191, 29, 29, 8191, 8191, 8191, 8191, 39,
167
+ 29, 8191, 8191, 8191, 8191, 8191, 10, 233, 233, 233, 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, 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,
170
+ 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 94, 8191, 8191, 8191, 8191, 8191,
171
+ 29, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 283, 283, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
172
+ 1, 289, 290, 97, 86, 234, 285, 287, 89, 90, 96, 43, 44, 56, 136, 138, 172, 137, 111, 117,
173
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 109, 110, 184, 173, 171, 170, 134, 135,
174
+ 139, 142, 108, 140, 141, 159, 160, 157, 158, 161, 8191, 8191, 8191, 162, 163, 164, 165, 8191, 8191, 8191,
175
+ 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 166, 143, 71, 71, 71, 8191, 8191, 11, 8191, 8191, 8191, 8191,
176
+ 8191, 8191, 8191, 8191, 8191, 224, 149, 150, 152, 224, 189, 223, 168, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
177
+ 8191, 8191, 229, 131, 133, 207, 144, 145, 235, 112, 8191, 8191, 8191, 228, 8191, 297, 235, 235, 235, 34,
178
+ 34, 34, 8191, 104, 104, 8191, 57, 34, 8191, 8191, 8191, 34, 34, 34, 2, 8191, 8191, 8191, 213, 242,
179
+ 235, 155, 8191, 146, 147, 148, 59, 8191, 200, 8191, 28, 188, 8191, 28, 28, 28, 8191, 255, 256, 257,
180
+ 28, 28, 28, 28, 191, 36, 73, 28, 28, 73, 8191, 8191, 28, 8191, 8191, 8191, 8191, 8191, 8191, 8191,
181
+ 8191, 218, 8191, 240, 253, 203, 15, 20, 21, 8191, 218, 239, 237, 153, 154, 156, 176, 177, 178, 179,
182
+ 180, 181, 182, 280, 8191, 276, 206, 8191, 8191, 235, 8191, 8191, 8191, 8191, 296, 8191, 235, 151, 8191, 214,
183
+ 260, 8191, 236, 235, 281, 8191, 8191, 8191, 8191, 60, 8191, 8191, 8191, 8191, 8191, 215, 8191, 8191, 8191, 8191,
184
+ 8191, 8191, 8191, 55, 8191, 8191, 8191,
183
185
  ];
184
186
 
185
187
  /** Map of non-terminals to a displacement into the self::Goto table. The corresponding goto state for this
186
188
  * non-terminal/state pair is self::Goto[self::GotoBase[$nonTerminal] + $state] (unless defaulted) */
187
189
  protected const GotoBase = [
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,
190
+ 0, 0, -1, 0, 0, 0, 105, 0, 260, -62, 58, -28, 0, 102, 61, 0, 0, 0, 0, 229,
191
+ 239, 95, -22, 266, -11, 86, 0, 88, 0, 117, 93, 0, 0, -66, 28, 34, 274, 295, 0, 0,
192
+ 110, 4, -266, 0, 0, 53, 67, 0, 54, 0, 0, 168, 5, 0, 0, 0, 68, 0, 0, 0,
193
+ 0, -78, -51, 0, 0, 0, 27, 38, 106, 57, 69, 18, 0, 0, -16, 11, 0, 8, 2, 169,
194
+ 45, 0, 0,
192
195
  ];
193
196
 
194
197
  /** Table of states to goto after reduction. Indexed according to self::GotoBase comment. */
195
198
  protected const Goto = [
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,
199
+ 110, 107, 110, 565, 109, 110, 451, 110, 262, 109, 566, 617, 618, 619, 138, 126, 127, 126, 123, 123,
200
+ 115, 136, 123, 483, 108, 483, 125, 125, 125, 120, 313, 314, 261, 315, 316, 317, 318, 319, 320, 321,
201
+ 322, 121, 122, 111, 112, 113, 114, 116, 134, 135, 137, 155, 158, 159, 160, 161, 163, 164, 165, 166,
202
+ 167, 168, 169, 173, 174, 175, 176, 188, 189, 206, 207, 208, 226, 227, 263, 264, 265, 337, 139, 140,
203
+ 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 128, 156, 117, 118, 128, 129, 130,
204
+ 119, 157, 131, 154, 132, 133, 181, 399, 181, 333, 181, 181, 400, 181, 338, 181, 326, 326, 326, 326,
205
+ 185, 186, 187, 186, 428, 428, 428, 428, 567, 567, 567, 567, 428, 428, 428, 428, 428, 428, 428, 569,
206
+ 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 340, 260, 343, 223, 224, 236,
207
+ 329, 336, 228, 229, 237, 238, 310, 310, 585, 585, 585, 585, 585, 585, 585, 585, 585, 644, 629, 629,
208
+ 629, 629, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 666, 667, 668, 345, 365, 641, 641,
209
+ 641, 641, 641, 641, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 605, 605, 605, 605, 605,
210
+ 605, 605, 605, 605, 605, 605, 278, 279, 631, 632, 633, 231, 627, 627, 312, 312, 312, 312, 312, 312,
211
+ 312, 312, 312, 312, 312, 346, 462, 353, 242, 409, 272, 534, 354, 418, 473, 472, 634, 635, 660, 361,
212
+ 407, 309, 332, 309, 560, 309, 309, 323, 309, 323, 309, 235, 323, 413, 323, 660, 661, 350, 235, 235,
213
+ 421, 280, 182, 182, 344, 282, 283, 661, 235, 235, 676, 425, 432, 434, 436, 433, 435, 437, 466, 221,
214
+ 235, 327, 328, 467, 450, 554, 554, 468, 452, 445, 441, 470, 327, 328, 285, 561, 0, 362, 0, 0,
215
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
216
+ 0, 0, 0, 0, 402, 402, 402, 0, 363, 563, 0, 0, 402, 0, 0, 0, 402, 402, 402, 0,
212
217
  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,
214
218
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
215
219
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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,
220
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 339, 243, 244, 0, 0, 0, 0, 0, 0, 0,
221
+ 0, 0, 0, 416, 416,
218
222
  ];
219
223
 
220
224
  /** Table indexed analogously to self::Goto. If self::GotoCheck[self::GotoBase[$nonTerminal] + $state] != $nonTerminal
221
225
  * then the goto state is defaulted, i.e. self::GotoDefault[$nonTerminal] should be used. */
222
226
  protected const GotoCheck = [
223
- 2, 2, 2, 2, 14, 14, 2, 36, 36, 36, 2, 14, 14, 14, 61, 2, 2, 2, 2, 2,
227
+ 2, 2, 2, 42, 2, 2, 41, 2, 78, 2, 42, 42, 42, 42, 2, 2, 2, 2, 2, 2,
224
228
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
225
229
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
226
230
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
227
231
  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, 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,
232
+ 2, 2, 2, 2, 2, 2, 6, 13, 6, 68, 6, 6, 13, 6, 40, 6, 61, 61, 61, 61,
233
+ 6, 6, 6, 6, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 62,
234
+ 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 74, 22, 22, 22, 22, 22,
235
+ 22, 22, 22, 22, 22, 22, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 79, 74, 74,
236
+ 74, 74, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 9, 9, 9, 51, 51, 74, 74,
237
+ 74, 74, 74, 74, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 67, 67, 67, 67, 67,
238
+ 67, 67, 67, 67, 67, 67, 75, 75, 75, 75, 75, 71, 74, 74, 69, 69, 69, 69, 69, 69,
239
+ 69, 69, 69, 69, 69, 11, 11, 11, 71, 19, 48, 48, 11, 11, 11, 11, 77, 77, 80, 11,
240
+ 11, 8, 20, 8, 11, 8, 8, 23, 8, 23, 8, 10, 23, 21, 23, 80, 80, 25, 10, 10,
241
+ 27, 36, 6, 6, 23, 36, 36, 80, 10, 10, 10, 30, 30, 30, 30, 30, 30, 30, 45, 70,
242
+ 10, 14, 14, 45, 37, 35, 35, 45, 37, 37, 29, 46, 14, 14, 14, 56, -1, 34, -1, -1,
239
243
  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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,
244
+ -1, -1, -1, -1, 6, 6, 6, -1, 10, 10, -1, -1, 6, -1, -1, -1, 6, 6, 6, -1,
241
245
  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
242
246
  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
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,
247
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
248
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 8, 8, -1, -1, -1, -1, -1, -1, -1,
249
+ -1, -1, -1, 23, 23,
245
250
  ];
246
251
 
247
252
  /** Map of non-terminals to the default state to goto after their reduction */
248
253
  protected const GotoDefault = [
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,
254
+ -8192, 293, 124, 254, 370, 371, 184, 391, 330, 639, 625, 397, 270, 646, 291, 290, 481, 356, 288, 408,
255
+ 357, 412, 162, 300, 301, 348, 281, 420, 253, 439, 246, 266, 349, 268, 359, 474, 275, 444, 482, 273,
256
+ 331, 454, 564, 274, 245, 465, 469, 480, 271, 550, 289, 341, 210, 557, 364, 292, 562, 616, 269, 302,
257
+ 276, 576, 258, 225, 303, -8192, 233, 222, 324, 211, 220, 659, 234, 304, 614, 277, 621, 628, 325, 645,
258
+ 658, 335, 352,
253
259
  ];
254
260
 
255
261
  /** Map of rules to the non-terminal on their left-hand side, i.e. the non-terminal to use for
@@ -258,18 +264,19 @@ abstract class TagParserData
258
264
  0, 1, 1, 1, 1, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
259
265
  7, 7, 8, 8, 8, 9, 9, 10, 11, 11, 4, 4, 12, 12, 14, 14, 15, 15, 16, 17,
260
266
  17, 18, 18, 19, 19, 5, 5, 21, 21, 21, 21, 25, 25, 26, 26, 27, 27, 29, 29, 29,
261
- 29, 30, 30, 30, 30, 31, 31, 32, 32, 28, 28, 34, 34, 35, 35, 36, 36, 37, 37, 37,
262
- 37, 20, 38, 38, 39, 39, 3, 3, 40, 41, 41, 41, 41, 2, 2, 2, 2, 2, 2, 2,
267
+ 29, 30, 30, 30, 30, 31, 31, 31, 31, 32, 32, 28, 28, 34, 34, 35, 35, 36, 36, 38,
268
+ 38, 38, 38, 39, 39, 39, 37, 37, 41, 41, 41, 42, 42, 42, 40, 20, 43, 43, 44, 44,
269
+ 3, 3, 45, 45, 46, 46, 46, 46, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
263
270
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
264
271
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
265
272
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
266
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 42, 45, 45, 48, 49, 49, 50, 51, 51, 51, 51,
267
- 51, 51, 55, 33, 33, 56, 56, 56, 43, 43, 43, 53, 53, 47, 47, 59, 60, 60, 24, 62,
268
- 62, 62, 62, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 46, 46, 58, 58, 58,
269
- 58, 65, 65, 65, 52, 52, 52, 66, 66, 66, 66, 66, 66, 66, 22, 22, 22, 22, 22, 67,
270
- 67, 70, 69, 57, 57, 57, 57, 57, 57, 57, 54, 54, 54, 68, 68, 68, 23, 61, 71, 71,
271
- 72, 72, 72, 72, 13, 13, 13, 13, 13, 13, 13, 13, 63, 63, 63, 63, 64, 74, 73, 73,
272
- 73, 73, 73, 73, 73, 73, 73, 75, 75, 75, 75,
273
+ 2, 2, 2, 2, 2, 2, 2, 52, 53, 47, 47, 50, 50, 54, 55, 55, 56, 57, 57, 57,
274
+ 61, 33, 33, 62, 62, 62, 48, 48, 48, 59, 59, 65, 65, 66, 67, 67, 24, 69, 69, 69,
275
+ 69, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 51, 51, 64, 64, 64, 64, 64,
276
+ 72, 72, 72, 58, 58, 58, 58, 73, 73, 73, 73, 73, 73, 22, 22, 22, 22, 22, 74, 74,
277
+ 77, 76, 63, 63, 63, 63, 63, 63, 63, 60, 60, 60, 75, 75, 75, 23, 68, 78, 78, 79,
278
+ 79, 79, 79, 13, 13, 13, 13, 13, 13, 13, 13, 70, 70, 70, 70, 71, 81, 80, 80, 80,
279
+ 80, 80, 80, 80, 80, 80, 82, 82, 82, 82,
273
280
  ];
274
281
 
275
282
  /** Map of rules to the length of their right-hand side, which is the number of elements that have to
@@ -278,18 +285,19 @@ abstract class TagParserData
278
285
  1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
279
286
  1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 2, 0, 1, 3, 0, 1, 0, 1, 7, 0,
280
287
  2, 1, 3, 3, 4, 1, 3, 1, 2, 1, 1, 2, 0, 1, 3, 4, 6, 1, 2, 1,
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, 4, 1, 3, 3, 3, 4, 1, 1,
283
- 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3,
284
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2,
285
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, 3, 4, 4, 2, 2,
286
- 2, 2, 2, 2, 2, 1, 8, 12, 9, 3, 0, 4, 2, 1, 3, 2, 2, 4, 2, 4,
287
- 4, 6, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 0, 1, 1, 3, 5, 3, 4,
288
- 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 3, 0, 1, 1, 3, 1,
289
- 1, 1, 1, 1, 1, 3, 1, 1, 4, 1, 4, 6, 4, 4, 1, 1, 3, 3, 3, 1,
290
- 4, 1, 3, 1, 4, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 4, 1, 3, 1,
291
- 1, 1, 3, 0, 1, 2, 3, 4, 3, 4, 2, 2, 2, 2, 1, 2, 1, 1, 1, 4,
292
- 3, 3, 3, 3, 3, 6, 3, 1, 1, 2, 1,
288
+ 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 0, 1, 0, 2, 2, 4, 1, 3, 2,
289
+ 4, 4, 3, 3, 1, 3, 1, 1, 2, 2, 3, 2, 4, 3, 1, 2, 3, 1, 2, 2,
290
+ 1, 2, 3, 3, 0, 3, 3, 1, 1, 3, 3, 3, 4, 1, 1, 2, 2, 3, 3, 3,
291
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3,
292
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3,
293
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, 3, 4, 4, 2, 2, 2, 2,
294
+ 2, 2, 2, 1, 8, 12, 9, 3, 2, 1, 1, 0, 4, 2, 1, 3, 2, 2, 2, 4,
295
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 0, 1, 1, 3, 5, 3, 4, 1, 1,
296
+ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 3, 0, 1, 1, 3, 1, 1, 1,
297
+ 1, 1, 1, 1, 3, 1, 1, 1, 4, 1, 4, 4, 4, 1, 1, 3, 3, 3, 1, 4,
298
+ 1, 3, 1, 4, 3, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 4, 1, 3, 1, 1,
299
+ 1, 3, 0, 1, 2, 3, 4, 3, 4, 2, 2, 2, 2, 1, 2, 1, 1, 1, 4, 3,
300
+ 3, 3, 3, 3, 6, 3, 1, 1, 2, 1,
293
301
  ];
294
302
 
295
303
  /** Map of symbols to their names */
@@ -321,6 +329,8 @@ abstract class TagParserData
321
329
  "'||'",
322
330
  "'&&'",
323
331
  "'|'",
332
+ "'|'",
333
+ "'?|'",
324
334
  "'^'",
325
335
  "'&'",
326
336
  "'&'",
@@ -333,6 +343,7 @@ abstract class TagParserData
333
343
  "'<='",
334
344
  "'>'",
335
345
  "'>='",
346
+ "'|>'",
336
347
  "'.'",
337
348
  "'<<'",
338
349
  "'>>'",
@@ -415,22 +426,22 @@ abstract class TagParserData
415
426
  /** Semantic value stack (contains values of tokens and semantic action results) */
416
427
  protected array $semStack;
417
428
 
418
- /** @var Token[] Start attribute stack */
429
+ /** @var array<int, ?Token> Start attribute stack */
419
430
  protected array $startTokenStack;
420
431
 
421
432
 
422
433
  protected function reduce(int $rule, int $pos): void
423
434
  {
424
435
  (match ($rule) {
425
- 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 28, 29, 57, 70, 72, 93, 98, 99, 165, 182, 184, 188, 189, 191, 192, 194, 205, 210, 211, 216, 217, 219, 220, 221, 222, 224, 226, 227, 229, 234, 235, 239, 243, 250, 252, 253, 255, 260, 278, 290 => fn() => $this->semValue = $this->semStack[$pos],
436
+ 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 28, 29, 57, 72, 74, 87, 107, 108, 113, 114, 183, 189, 190, 200, 202, 206, 207, 209, 210, 212, 223, 228, 229, 234, 235, 237, 238, 239, 240, 241, 243, 245, 246, 247, 249, 253, 254, 258, 262, 269, 271, 272, 274, 279, 297, 309 => fn() => $this->semValue = $this->semStack[$pos],
426
437
  2 => fn() => $this->semValue = new Node\ModifierNode($this->semStack[$pos], position: $this->startTokenStack[$pos]->position),
427
438
  3 => fn() => $this->semValue = new Expression\ArrayNode($this->semStack[$pos], position: $this->startTokenStack[$pos]->position),
428
439
  22, 23, 24, 25, 26, 62, 63, 64 => fn() => $this->semValue = new Node\IdentifierNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
429
440
  27 => fn() => $this->semValue = new Expression\VariableNode(substr($this->semStack[$pos], 1), $this->startTokenStack[$pos]->position),
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
- 31, 39, 52, 73, 89, 170, 193 => fn() => $this->semValue = [],
432
- 32, 41, 53, 75, 83, 86, 173, 259, 274 => fn() => $this->semValue = [$this->semStack[$pos]],
433
- 33, 42, 54, 66, 68, 76, 82, 174, 258 => function () use ($pos) {
441
+ 30, 40, 51, 95, 105, 106, 168, 169, 192, 193, 208, 236, 244, 270, 273, 305 => fn() => $this->semValue = $this->semStack[$pos - 1],
442
+ 31, 39, 52, 75, 79, 91, 104, 191, 211 => fn() => $this->semValue = [],
443
+ 32, 41, 53, 77, 84, 97, 100, 194, 278, 293 => fn() => $this->semValue = [$this->semStack[$pos]],
444
+ 33, 42, 54, 66, 68, 70, 78, 85, 96, 195, 277 => function () use ($pos) {
434
445
  $this->semStack[$pos - 2][] = $this->semStack[$pos];
435
446
  $this->semValue = $this->semStack[$pos - 2];
436
447
  },
@@ -450,134 +461,147 @@ abstract class TagParserData
450
461
  59 => fn() => $this->semValue = new Node\UnionTypeNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
451
462
  60 => fn() => $this->semValue = new Node\IntersectionTypeNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
452
463
  61 => fn() => $this->semValue = TagParser::handleBuiltinTypes($this->semStack[$pos]),
453
- 65, 67 => fn() => $this->semValue = [$this->semStack[$pos - 2], $this->semStack[$pos]],
454
- 69, 71, 215 => fn() => $this->semValue = null,
455
- 74, 92 => fn() => $this->semValue = $this->semStack[$pos - 2],
456
- 77 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], false, false, null, $this->startTokenStack[$pos]->position),
457
- 78 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], true, false, null, $this->startTokenStack[$pos - 1]->position),
458
- 79 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], false, true, null, $this->startTokenStack[$pos - 1]->position),
459
- 80 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], false, false, $this->semStack[$pos - 2], $this->startTokenStack[$pos - 2]->position),
460
- 84, 85 => fn() => $this->semValue = new Expression\FilterCallNode($this->semStack[$pos - 1], $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
461
- 87, 272, 273 => function () use ($pos) {
464
+ 65, 67, 69 => fn() => $this->semValue = [$this->semStack[$pos - 2], $this->semStack[$pos]],
465
+ 71, 73, 233 => fn() => $this->semValue = null,
466
+ 76, 80, 92 => fn() => $this->semValue = $this->semStack[$pos - 2],
467
+ 81 => fn() => $this->semValue = [new Node\ArgumentNode($this->semStack[$pos - 2], false, false, null, $this->startTokenStack[$pos - 3]->position)],
468
+ 82, 93 => fn() => $this->semValue = [$this->semStack[$pos - 1]],
469
+ 83 => fn() => $this->semValue = [new Node\ArgumentNode($this->semStack[$pos - 2], false, false, null, $this->startTokenStack[$pos - 2]->position), $this->semStack[$pos]],
470
+ 86 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], false, false, null, $this->startTokenStack[$pos]->position),
471
+ 88 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], true, false, null, $this->startTokenStack[$pos - 1]->position),
472
+ 89 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], false, true, null, $this->startTokenStack[$pos - 1]->position),
473
+ 90 => fn() => $this->semValue = new Node\ArgumentNode($this->semStack[$pos], false, false, $this->semStack[$pos - 2], $this->startTokenStack[$pos - 2]->position),
474
+ 94 => fn() => $this->semValue = new Node\VariadicPlaceholderNode($this->startTokenStack[$pos]->position),
475
+ 98, 99 => fn() => $this->semValue = new Expression\FilterCallNode($this->semStack[$pos - 1], $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
476
+ 101, 291, 292 => function () use ($pos) {
462
477
  $this->semStack[$pos - 1][] = $this->semStack[$pos];
463
478
  $this->semValue = $this->semStack[$pos - 1];
464
479
  },
465
- 88 => fn() => $this->semValue = new Node\FilterNode($this->semStack[$pos - 1], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
466
- 94, 96 => fn() => $this->semValue = new Expression\AssignNode($this->semStack[$pos - 2], $this->semStack[$pos], false, $this->startTokenStack[$pos - 2]->position),
467
- 95 => fn() => $this->semValue = new Expression\AssignNode($this->convertArrayToList($this->semStack[$pos - 2]), $this->semStack[$pos], false, $this->startTokenStack[$pos - 2]->position),
468
- 97 => fn() => $this->semValue = new Expression\AssignNode($this->semStack[$pos - 3], $this->semStack[$pos], true, $this->startTokenStack[$pos - 3]->position),
469
- 100 => fn() => $this->semValue = new Expression\CloneNode($this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
470
- 101 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '+', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
471
- 102 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '-', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
472
- 103 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '*', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
473
- 104 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '/', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
474
- 105 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '.', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
475
- 106 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '%', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
476
- 107 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '&', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
477
- 108 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '|', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
478
- 109 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '^', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
479
- 110 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '<<', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
480
- 111 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '>>', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
481
- 112 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '**', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
482
- 113 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '??', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
483
- 114 => fn() => $this->semValue = new Expression\PostOpNode($this->semStack[$pos - 1], '++', $this->startTokenStack[$pos - 1]->position),
484
- 115 => fn() => $this->semValue = new Expression\PreOpNode($this->semStack[$pos], '++', $this->startTokenStack[$pos - 1]->position),
485
- 116 => fn() => $this->semValue = new Expression\PostOpNode($this->semStack[$pos - 1], '--', $this->startTokenStack[$pos - 1]->position),
486
- 117 => fn() => $this->semValue = new Expression\PreOpNode($this->semStack[$pos], '--', $this->startTokenStack[$pos - 1]->position),
487
- 118 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '||', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
488
- 119 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '&&', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
489
- 120 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], 'or', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
490
- 121 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], 'and', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
491
- 122 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], 'xor', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
492
- 123, 124 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '&', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
493
- 125 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '^', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
494
- 126 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '.', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
495
- 127 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '+', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
496
- 128 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '-', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
497
- 129 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '*', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
498
- 130 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '/', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
499
- 131 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '%', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
500
- 132 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '<<', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
501
- 133 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '>>', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
502
- 134 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '**', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
503
- 135 => fn() => $this->semValue = new Expression\InNode($this->semStack[$pos - 2], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
504
- 136 => fn() => $this->semValue = new Expression\UnaryOpNode($this->semStack[$pos], '+', $this->startTokenStack[$pos - 1]->position),
505
- 137 => fn() => $this->semValue = new Expression\UnaryOpNode($this->semStack[$pos], '-', $this->startTokenStack[$pos - 1]->position),
506
- 138 => fn() => $this->semValue = new Expression\NotNode($this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
507
- 139 => fn() => $this->semValue = new Expression\UnaryOpNode($this->semStack[$pos], '~', $this->startTokenStack[$pos - 1]->position),
508
- 140 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '===', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
509
- 141 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '!==', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
510
- 142 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '==', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
511
- 143 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '!=', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
512
- 144 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '<=>', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
513
- 145 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '<', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
514
- 146 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '<=', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
515
- 147 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '>', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
516
- 148 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '>=', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
517
- 149 => fn() => $this->semValue = new Expression\InstanceofNode($this->semStack[$pos - 2], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
518
- 152 => fn() => $this->semValue = new Expression\TernaryNode($this->semStack[$pos - 4], $this->semStack[$pos - 2], $this->semStack[$pos], $this->startTokenStack[$pos - 4]->position),
519
- 153 => fn() => $this->semValue = new Expression\TernaryNode($this->semStack[$pos - 3], null, $this->semStack[$pos], $this->startTokenStack[$pos - 3]->position),
520
- 154 => fn() => $this->semValue = new Expression\TernaryNode($this->semStack[$pos - 2], $this->semStack[$pos], null, $this->startTokenStack[$pos - 2]->position),
521
- 155 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '??', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
522
- 156 => fn() => $this->semValue = new Expression\IssetNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 3]->position),
523
- 157 => fn() => $this->semValue = new Expression\EmptyNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 3]->position),
524
- 158 => fn() => $this->semValue = new Expression\CastNode('int', $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
525
- 159 => fn() => $this->semValue = new Expression\CastNode('float', $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
526
- 160 => fn() => $this->semValue = new Expression\CastNode('string', $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
527
- 161 => fn() => $this->semValue = new Expression\CastNode('array', $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
528
- 162 => fn() => $this->semValue = new Expression\CastNode('object', $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
529
- 163 => fn() => $this->semValue = new Expression\CastNode('bool', $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
530
- 164 => fn() => $this->semValue = new Expression\ErrorSuppressNode($this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
531
- 166 => fn() => $this->semValue = new Expression\ClosureNode((bool) $this->semStack[$pos - 6], $this->semStack[$pos - 4], [], $this->semStack[$pos - 2], $this->semStack[$pos], $this->startTokenStack[$pos - 7]->position),
532
- 167 => fn() => $this->semValue = new Expression\ClosureNode((bool) $this->semStack[$pos - 10], $this->semStack[$pos - 8], $this->semStack[$pos - 6], $this->semStack[$pos - 5], $this->semStack[$pos - 2], $this->startTokenStack[$pos - 11]->position),
533
- 168 => fn() => $this->semValue = new Expression\ClosureNode((bool) $this->semStack[$pos - 7], $this->semStack[$pos - 5], $this->semStack[$pos - 3], $this->semStack[$pos - 2], null, $this->startTokenStack[$pos - 8]->position),
534
- 169 => fn() => $this->semValue = new Expression\NewNode($this->semStack[$pos - 1], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
535
- 175 => fn() => $this->semValue = new Node\ClosureUseNode($this->semStack[$pos], $this->semStack[$pos - 1], $this->startTokenStack[$pos - 1]->position),
536
- 176, 178 => fn() => $this->semValue = $this->checkFunctionName(new Expression\FunctionCallNode($this->semStack[$pos - 1], $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position)),
537
- 177, 179 => fn() => $this->semValue = $this->checkFunctionName(new Expression\FunctionCallableNode($this->semStack[$pos - 3], $this->startTokenStack[$pos - 3]->position)),
538
- 180 => fn() => $this->semValue = new Expression\StaticMethodCallNode($this->semStack[$pos - 3], $this->semStack[$pos - 1], $this->semStack[$pos], $this->startTokenStack[$pos - 3]->position),
539
- 181 => fn() => $this->semValue = new Expression\StaticMethodCallableNode($this->semStack[$pos - 5], $this->semStack[$pos - 3], $this->startTokenStack[$pos - 5]->position),
540
- 183, 185, 186 => fn() => $this->semValue = new Node\NameNode($this->semStack[$pos], Node\NameNode::KindNormal, $this->startTokenStack[$pos]->position),
541
- 187 => fn() => $this->semValue = new Node\NameNode($this->semStack[$pos], Node\NameNode::KindFullyQualified, $this->startTokenStack[$pos]->position),
542
- 195 => fn() => $this->semValue = new Expression\ConstantFetchNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
543
- 196 => fn() => $this->semValue = new Expression\ClassConstantFetchNode($this->semStack[$pos - 2], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
544
- 197 => fn() => $this->semValue = new Expression\ClassConstantFetchNode($this->semStack[$pos - 4], $this->semStack[$pos - 1], $this->startTokenStack[$pos - 4]->position),
545
- 198 => fn() => $this->semValue = new Expression\ArrayNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 2]->position),
546
- 199 => fn() => $this->semValue = new Expression\ArrayNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 3]->position),
547
- 200 => function () use ($pos) {
480
+ 102 => fn() => $this->semValue = new Node\FilterNode($this->semStack[$pos - 1], $this->semStack[$pos], false, $this->startTokenStack[$pos - 2]->position),
481
+ 103 => fn() => $this->semValue = new Node\FilterNode($this->semStack[$pos - 1], $this->semStack[$pos], true, $this->startTokenStack[$pos - 2]->position),
482
+ 109, 111 => fn() => $this->semValue = new Expression\AssignNode($this->semStack[$pos - 2], $this->semStack[$pos], false, $this->startTokenStack[$pos - 2]->position),
483
+ 110 => fn() => $this->semValue = new Expression\AssignNode($this->convertArrayToList($this->semStack[$pos - 2]), $this->semStack[$pos], false, $this->startTokenStack[$pos - 2]->position),
484
+ 112 => fn() => $this->semValue = new Expression\AssignNode($this->semStack[$pos - 3], $this->semStack[$pos], true, $this->startTokenStack[$pos - 3]->position),
485
+ 115 => fn() => $this->semValue = new Expression\FunctionCallNode(new Node\NameNode($this->semStack[$pos - 1], Node\NameNode::KindNormal, $this->startTokenStack[$pos - 1]->position), $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
486
+ 116 => fn() => $this->semValue = new Expression\CloneNode($this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
487
+ 117 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '+', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
488
+ 118 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '-', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
489
+ 119 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '*', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
490
+ 120 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '/', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
491
+ 121 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '.', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
492
+ 122 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '%', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
493
+ 123 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '&', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
494
+ 124 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '|', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
495
+ 125 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '^', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
496
+ 126 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '<<', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
497
+ 127 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '>>', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
498
+ 128 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '**', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
499
+ 129 => fn() => $this->semValue = new Expression\AssignOpNode($this->semStack[$pos - 2], '??', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
500
+ 130 => fn() => $this->semValue = new Expression\PostOpNode($this->semStack[$pos - 1], '++', $this->startTokenStack[$pos - 1]->position),
501
+ 131 => fn() => $this->semValue = new Expression\PreOpNode($this->semStack[$pos], '++', $this->startTokenStack[$pos - 1]->position),
502
+ 132 => fn() => $this->semValue = new Expression\PostOpNode($this->semStack[$pos - 1], '--', $this->startTokenStack[$pos - 1]->position),
503
+ 133 => fn() => $this->semValue = new Expression\PreOpNode($this->semStack[$pos], '--', $this->startTokenStack[$pos - 1]->position),
504
+ 134 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '||', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
505
+ 135 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '&&', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
506
+ 136 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], 'or', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
507
+ 137 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], 'and', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
508
+ 138 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], 'xor', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
509
+ 139 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '|', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
510
+ 140, 141 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '&', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
511
+ 142 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '^', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
512
+ 143 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '.', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
513
+ 144 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '+', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
514
+ 145 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '-', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
515
+ 146 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '*', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
516
+ 147 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '/', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
517
+ 148 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '%', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
518
+ 149 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '<<', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
519
+ 150 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '>>', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
520
+ 151 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '**', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
521
+ 152 => fn() => $this->semValue = new Expression\InNode($this->semStack[$pos - 2], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
522
+ 153 => fn() => $this->semValue = new Expression\UnaryOpNode($this->semStack[$pos], '+', $this->startTokenStack[$pos - 1]->position),
523
+ 154 => fn() => $this->semValue = new Expression\UnaryOpNode($this->semStack[$pos], '-', $this->startTokenStack[$pos - 1]->position),
524
+ 155 => fn() => $this->semValue = new Expression\UnaryOpNode($this->semStack[$pos], '!', $this->startTokenStack[$pos - 1]->position),
525
+ 156 => fn() => $this->semValue = new Expression\UnaryOpNode($this->semStack[$pos], '~', $this->startTokenStack[$pos - 1]->position),
526
+ 157 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '===', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
527
+ 158 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '!==', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
528
+ 159 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '==', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
529
+ 160 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '!=', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
530
+ 161 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '<=>', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
531
+ 162 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '<', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
532
+ 163 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '<=', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
533
+ 164 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '>', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
534
+ 165 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '>=', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
535
+ 166 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '|>', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
536
+ 167 => fn() => $this->semValue = new Expression\InstanceofNode($this->semStack[$pos - 2], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
537
+ 170 => fn() => $this->semValue = new Expression\TernaryNode($this->semStack[$pos - 4], $this->semStack[$pos - 2], $this->semStack[$pos], $this->startTokenStack[$pos - 4]->position),
538
+ 171 => fn() => $this->semValue = new Expression\TernaryNode($this->semStack[$pos - 3], null, $this->semStack[$pos], $this->startTokenStack[$pos - 3]->position),
539
+ 172 => fn() => $this->semValue = new Expression\TernaryNode($this->semStack[$pos - 2], $this->semStack[$pos], null, $this->startTokenStack[$pos - 2]->position),
540
+ 173 => fn() => $this->semValue = new Expression\BinaryOpNode($this->semStack[$pos - 2], '??', $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
541
+ 174 => fn() => $this->semValue = new Expression\IssetNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 3]->position),
542
+ 175 => fn() => $this->semValue = new Expression\EmptyNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 3]->position),
543
+ 176 => fn() => $this->semValue = new Expression\CastNode('int', $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
544
+ 177 => fn() => $this->semValue = new Expression\CastNode('float', $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
545
+ 178 => fn() => $this->semValue = new Expression\CastNode('string', $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
546
+ 179 => fn() => $this->semValue = new Expression\CastNode('array', $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
547
+ 180 => fn() => $this->semValue = new Expression\CastNode('object', $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
548
+ 181 => fn() => $this->semValue = new Expression\CastNode('bool', $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
549
+ 182 => fn() => $this->semValue = new Expression\UnaryOpNode($this->semStack[$pos], '@', $this->startTokenStack[$pos - 1]->position),
550
+ 184 => fn() => $this->semValue = new Expression\ClosureNode((bool) $this->semStack[$pos - 6], $this->semStack[$pos - 4], [], $this->semStack[$pos - 2], $this->semStack[$pos], $this->startTokenStack[$pos - 7]->position),
551
+ 185 => fn() => $this->semValue = new Expression\ClosureNode((bool) $this->semStack[$pos - 10], $this->semStack[$pos - 8], $this->semStack[$pos - 6], $this->semStack[$pos - 5], $this->semStack[$pos - 2], $this->startTokenStack[$pos - 11]->position),
552
+ 186 => fn() => $this->semValue = new Expression\ClosureNode((bool) $this->semStack[$pos - 7], $this->semStack[$pos - 5], $this->semStack[$pos - 3], $this->semStack[$pos - 2], null, $this->startTokenStack[$pos - 8]->position),
553
+ 187 => fn() => $this->semValue = new Expression\NewNode($this->semStack[$pos - 1], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
554
+ 188 => fn() => $this->semValue = new Expression\NewNode($this->semStack[$pos], [], $this->startTokenStack[$pos - 1]->position),
555
+ 196 => fn() => $this->semValue = new Node\ClosureUseNode($this->semStack[$pos], $this->semStack[$pos - 1], $this->startTokenStack[$pos - 1]->position),
556
+ 197, 198 => fn() => $this->semValue = $this->checkFunctionName(new Expression\FunctionCallNode($this->semStack[$pos - 1], $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position)),
557
+ 199 => fn() => $this->semValue = new Expression\StaticMethodCallNode($this->semStack[$pos - 3], $this->semStack[$pos - 1], $this->semStack[$pos], $this->startTokenStack[$pos - 3]->position),
558
+ 201, 204 => fn() => $this->semValue = new Node\NameNode($this->semStack[$pos], Node\NameNode::KindNormal, $this->startTokenStack[$pos]->position),
559
+ 203 => fn() => $this->semValue = new Node\NameNode($this->semStack[$pos], -1, $this->startTokenStack[$pos]->position),
560
+ 205 => fn() => $this->semValue = new Node\NameNode($this->semStack[$pos], Node\NameNode::KindFullyQualified, $this->startTokenStack[$pos]->position),
561
+ 213 => fn() => $this->semValue = new Expression\ConstantFetchNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
562
+ 214 => fn() => $this->semValue = new Expression\ClassConstantFetchNode($this->semStack[$pos - 2], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
563
+ 215 => fn() => $this->semValue = new Expression\ClassConstantFetchNode($this->semStack[$pos - 4], $this->semStack[$pos - 1], $this->startTokenStack[$pos - 4]->position),
564
+ 216 => fn() => $this->semValue = new Expression\ArrayNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 2]->position),
565
+ 217 => fn() => $this->semValue = new Expression\ArrayNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 3]->position),
566
+ 218 => function () use ($pos) {
548
567
  $this->semValue = $this->semStack[$pos];
549
- $this->shortArrays->attach($this->semValue);
568
+ $this->shortArrays->offsetSet($this->semValue);
569
+ },
570
+ 219 => fn() => $this->semValue = Scalar\StringNode::parse($this->semStack[$pos], $this->startTokenStack[$pos]->position),
571
+ 220 => fn() => $this->semValue = Scalar\InterpolatedStringNode::parse($this->semStack[$pos - 1], $this->startTokenStack[$pos - 2]->position),
572
+ 221 => fn() => $this->semValue = Scalar\IntegerNode::parse($this->semStack[$pos], $this->startTokenStack[$pos]->position),
573
+ 222 => fn() => $this->semValue = Scalar\FloatNode::parse($this->semStack[$pos], $this->startTokenStack[$pos]->position),
574
+ 224, 306 => fn() => $this->semValue = new Scalar\StringNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
575
+ 225 => fn() => $this->semValue = new Scalar\BooleanNode(true, $this->startTokenStack[$pos]->position),
576
+ 226 => fn() => $this->semValue = new Scalar\BooleanNode(false, $this->startTokenStack[$pos]->position),
577
+ 227 => fn() => $this->semValue = new Scalar\NullNode($this->startTokenStack[$pos]->position),
578
+ 230 => fn() => $this->semValue = $this->parseDocString($this->semStack[$pos - 2], [$this->semStack[$pos - 1]], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position, $this->startTokenStack[$pos]->position),
579
+ 231 => fn() => $this->semValue = $this->parseDocString($this->semStack[$pos - 1], [], $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position, $this->startTokenStack[$pos]->position),
580
+ 232 => fn() => $this->semValue = $this->parseDocString($this->semStack[$pos - 2], $this->semStack[$pos - 1], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position, $this->startTokenStack[$pos]->position),
581
+ 242 => fn() => $this->semValue = new Expression\ConstantFetchNode(new Node\NameNode($this->semStack[$pos], Node\NameNode::KindNormal, $this->startTokenStack[$pos]->position), $this->startTokenStack[$pos]->position),
582
+ 248, 263, 298 => fn() => $this->semValue = new Expression\ArrayAccessNode($this->semStack[$pos - 3], $this->semStack[$pos - 1], $this->startTokenStack[$pos - 3]->position),
583
+ 250 => fn() => $this->semValue = new Expression\MethodCallNode($this->semStack[$pos - 3], $this->semStack[$pos - 1], $this->semStack[$pos], false, $this->startTokenStack[$pos - 3]->position),
584
+ 251 => fn() => $this->semValue = new Expression\MethodCallNode($this->semStack[$pos - 3], $this->semStack[$pos - 1], $this->semStack[$pos], true, $this->startTokenStack[$pos - 3]->position),
585
+ 252 => function () use ($pos) {
586
+ $this->semValue = new Expression\MethodCallNode(new Expression\BinaryOpNode($this->semStack[$pos - 3], '??', new Scalar\NullNode($this->startTokenStack[$pos - 3]->position), $this->startTokenStack[$pos - 3]->position), $this->semStack[$pos - 1], $this->semStack[$pos], true, $this->startTokenStack[$pos - 3]->position);
587
+ trigger_error('Latte: undefined-nullsafe operator ??-> is deprecated, used ' . $this->startTokenStack[$pos - 3]->position);
588
+ },
589
+ 255, 264, 299 => fn() => $this->semValue = new Expression\PropertyFetchNode($this->semStack[$pos - 2], $this->semStack[$pos], false, $this->startTokenStack[$pos - 2]->position),
590
+ 256, 265, 300 => fn() => $this->semValue = new Expression\PropertyFetchNode($this->semStack[$pos - 2], $this->semStack[$pos], true, $this->startTokenStack[$pos - 2]->position),
591
+ 257, 266, 301 => function () use ($pos) {
592
+ $this->semValue = new Expression\PropertyFetchNode(new Expression\BinaryOpNode($this->semStack[$pos - 2], '??', new Scalar\NullNode($this->startTokenStack[$pos - 2]->position), $this->startTokenStack[$pos - 2]->position), $this->semStack[$pos], true, $this->startTokenStack[$pos - 2]->position);
593
+ trigger_error('Latte: undefined-nullsafe operator ??-> is deprecated, used ' . $this->startTokenStack[$pos - 2]->position);
550
594
  },
551
- 201 => fn() => $this->semValue = Scalar\StringNode::parse($this->semStack[$pos], $this->startTokenStack[$pos]->position),
552
- 202 => fn() => $this->semValue = Scalar\InterpolatedStringNode::parse($this->semStack[$pos - 1], $this->startTokenStack[$pos - 2]->position),
553
- 203 => fn() => $this->semValue = Scalar\IntegerNode::parse($this->semStack[$pos], $this->startTokenStack[$pos]->position),
554
- 204 => fn() => $this->semValue = Scalar\FloatNode::parse($this->semStack[$pos], $this->startTokenStack[$pos]->position),
555
- 206, 287 => fn() => $this->semValue = new Scalar\StringNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
556
- 207 => fn() => $this->semValue = new Scalar\BooleanNode(true, $this->startTokenStack[$pos]->position),
557
- 208 => fn() => $this->semValue = new Scalar\BooleanNode(false, $this->startTokenStack[$pos]->position),
558
- 209 => fn() => $this->semValue = new Scalar\NullNode($this->startTokenStack[$pos]->position),
559
- 212 => fn() => $this->semValue = $this->parseDocString($this->semStack[$pos - 2], [$this->semStack[$pos - 1]], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position, $this->startTokenStack[$pos]->position),
560
- 213 => fn() => $this->semValue = $this->parseDocString($this->semStack[$pos - 1], [], $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position, $this->startTokenStack[$pos]->position),
561
- 214 => fn() => $this->semValue = $this->parseDocString($this->semStack[$pos - 2], $this->semStack[$pos - 1], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position, $this->startTokenStack[$pos]->position),
562
- 223 => fn() => $this->semValue = new Expression\ConstantFetchNode(new Node\NameNode($this->semStack[$pos], Node\NameNode::KindNormal, $this->startTokenStack[$pos]->position), $this->startTokenStack[$pos]->position),
563
- 228, 244, 279 => fn() => $this->semValue = new Expression\ArrayAccessNode($this->semStack[$pos - 3], $this->semStack[$pos - 1], $this->startTokenStack[$pos - 3]->position),
564
- 230 => fn() => $this->semValue = new Expression\MethodCallNode($this->semStack[$pos - 3], $this->semStack[$pos - 1], $this->semStack[$pos], false, $this->startTokenStack[$pos - 3]->position),
565
- 231 => fn() => $this->semValue = new Expression\MethodCallableNode($this->semStack[$pos - 5], $this->semStack[$pos - 3], $this->startTokenStack[$pos - 5]->position),
566
- 232 => fn() => $this->semValue = new Expression\MethodCallNode($this->semStack[$pos - 3], $this->semStack[$pos - 1], $this->semStack[$pos], true, $this->startTokenStack[$pos - 3]->position),
567
- 233 => fn() => $this->semValue = new Expression\MethodCallNode(new Expression\BinaryOpNode($this->semStack[$pos - 3], '??', new Scalar\NullNode($this->startTokenStack[$pos - 3]->position), $this->startTokenStack[$pos - 3]->position), $this->semStack[$pos - 1], $this->semStack[$pos], true, $this->startTokenStack[$pos - 3]->position),
568
- 236, 245, 280 => fn() => $this->semValue = new Expression\PropertyFetchNode($this->semStack[$pos - 2], $this->semStack[$pos], false, $this->startTokenStack[$pos - 2]->position),
569
- 237, 246, 281 => fn() => $this->semValue = new Expression\PropertyFetchNode($this->semStack[$pos - 2], $this->semStack[$pos], true, $this->startTokenStack[$pos - 2]->position),
570
- 238, 247, 282 => fn() => $this->semValue = new Expression\PropertyFetchNode(new Expression\BinaryOpNode($this->semStack[$pos - 2], '??', new Scalar\NullNode($this->startTokenStack[$pos - 2]->position), $this->startTokenStack[$pos - 2]->position), $this->semStack[$pos], true, $this->startTokenStack[$pos - 2]->position),
571
- 240 => fn() => $this->semValue = new Expression\VariableNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 3]->position),
572
- 241 => function () use ($pos) {
595
+ 259 => fn() => $this->semValue = new Expression\VariableNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 3]->position),
596
+ 260 => function () use ($pos) {
573
597
  $var = $this->semStack[$pos]->name;
574
- $this->semValue = \is_string($var)
598
+ $this->semValue = is_string($var)
575
599
  ? new Node\VarLikeIdentifierNode($var, $this->startTokenStack[$pos]->position)
576
600
  : $var;
577
601
  },
578
- 242, 248, 249 => fn() => $this->semValue = new Expression\StaticPropertyFetchNode($this->semStack[$pos - 2], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
579
- 256 => fn() => $this->semValue = $this->convertArrayToList(new Expression\ArrayNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 3]->position)),
580
- 257 => function () use ($pos) {
602
+ 261, 267, 268 => fn() => $this->semValue = new Expression\StaticPropertyFetchNode($this->semStack[$pos - 2], $this->semStack[$pos], $this->startTokenStack[$pos - 2]->position),
603
+ 275 => fn() => $this->semValue = $this->convertArrayToList(new Expression\ArrayNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 3]->position)),
604
+ 276 => function () use ($pos) {
581
605
  $this->semValue = $this->semStack[$pos];
582
606
  $end = count($this->semValue) - 1;
583
607
  if (
@@ -587,21 +611,21 @@ abstract class TagParserData
587
611
  array_pop($this->semValue);
588
612
  }
589
613
  },
590
- 261 => fn() => $this->semValue = new Node\ArrayItemNode(new Expression\TemporaryNode($this->semStack[$pos], $this->startTokenStack[$pos]->position), null, false, false, $this->startTokenStack[$pos]->position),
591
- 262 => fn() => $this->semValue = new Node\ArrayItemNode(new Expression\TemporaryNode($this->semStack[$pos], $this->startTokenStack[$pos - 2]->position), $this->semStack[$pos - 2], false, false, $this->startTokenStack[$pos - 2]->position),
592
- 263 => fn() => $this->semValue = new Node\ArrayItemNode(new Expression\TemporaryNode(null), null, false, false, $this->startTokenStack[$pos]->position),
593
- 264 => fn() => $this->semValue = new Node\ArrayItemNode($this->semStack[$pos], null, false, false, $this->startTokenStack[$pos]->position),
594
- 265 => fn() => $this->semValue = new Node\ArrayItemNode($this->semStack[$pos], null, true, false, $this->startTokenStack[$pos - 1]->position),
595
- 266, 268 => fn() => $this->semValue = new Node\ArrayItemNode($this->semStack[$pos], $this->semStack[$pos - 2], false, false, $this->startTokenStack[$pos - 2]->position),
596
- 267, 269 => fn() => $this->semValue = new Node\ArrayItemNode($this->semStack[$pos], $this->semStack[$pos - 3], true, false, $this->startTokenStack[$pos - 3]->position),
597
- 270, 271 => fn() => $this->semValue = new Node\ArrayItemNode($this->semStack[$pos], null, false, true, $this->startTokenStack[$pos - 1]->position),
598
- 275 => fn() => $this->semValue = [$this->semStack[$pos - 1], $this->semStack[$pos]],
599
- 276 => fn() => $this->semValue = new Node\InterpolatedStringPartNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
600
- 277 => fn() => $this->semValue = new Expression\VariableNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
601
- 283, 284 => fn() => $this->semValue = new Expression\VariableNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 2]->position),
602
- 285 => fn() => $this->semValue = new Expression\ArrayAccessNode($this->semStack[$pos - 4], $this->semStack[$pos - 2], $this->startTokenStack[$pos - 5]->position),
603
- 288 => fn() => $this->semValue = TagParser::parseOffset($this->semStack[$pos], $this->startTokenStack[$pos]->position),
604
- 289 => fn() => $this->semValue = TagParser::parseOffset('-' . $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
614
+ 280 => fn() => $this->semValue = new Node\ArrayItemNode(new Expression\TemporaryNode($this->semStack[$pos], $this->startTokenStack[$pos]->position), null, false, false, $this->startTokenStack[$pos]->position),
615
+ 281 => fn() => $this->semValue = new Node\ArrayItemNode(new Expression\TemporaryNode($this->semStack[$pos], $this->startTokenStack[$pos - 2]->position), $this->semStack[$pos - 2], false, false, $this->startTokenStack[$pos - 2]->position),
616
+ 282 => fn() => $this->semValue = new Node\ArrayItemNode(new Expression\TemporaryNode(null), null, false, false, $this->startTokenStack[$pos]->position),
617
+ 283 => fn() => $this->semValue = new Node\ArrayItemNode($this->semStack[$pos], null, false, false, $this->startTokenStack[$pos]->position),
618
+ 284 => fn() => $this->semValue = new Node\ArrayItemNode($this->semStack[$pos], null, true, false, $this->startTokenStack[$pos - 1]->position),
619
+ 285, 287 => fn() => $this->semValue = new Node\ArrayItemNode($this->semStack[$pos], $this->semStack[$pos - 2], false, false, $this->startTokenStack[$pos - 2]->position),
620
+ 286, 288 => fn() => $this->semValue = new Node\ArrayItemNode($this->semStack[$pos], $this->semStack[$pos - 3], true, false, $this->startTokenStack[$pos - 3]->position),
621
+ 289, 290 => fn() => $this->semValue = new Node\ArrayItemNode($this->semStack[$pos], null, false, true, $this->startTokenStack[$pos - 1]->position),
622
+ 294 => fn() => $this->semValue = [$this->semStack[$pos - 1], $this->semStack[$pos]],
623
+ 295 => fn() => $this->semValue = new Node\InterpolatedStringPartNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
624
+ 296 => fn() => $this->semValue = new Expression\VariableNode($this->semStack[$pos], $this->startTokenStack[$pos]->position),
625
+ 302, 303 => fn() => $this->semValue = new Expression\VariableNode($this->semStack[$pos - 1], $this->startTokenStack[$pos - 2]->position),
626
+ 304 => fn() => $this->semValue = new Expression\ArrayAccessNode($this->semStack[$pos - 4], $this->semStack[$pos - 2], $this->startTokenStack[$pos - 5]->position),
627
+ 307 => fn() => $this->semValue = TagParser::parseOffset($this->semStack[$pos], $this->startTokenStack[$pos]->position),
628
+ 308 => fn() => $this->semValue = TagParser::parseOffset('-' . $this->semStack[$pos], $this->startTokenStack[$pos - 1]->position),
605
629
  })();
606
630
  }
607
631
  }