@appthreat/atom 1.7.5 → 1.8.1

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 (326) hide show
  1. package/astgen.js +6 -2
  2. package/index.js +3 -1
  3. package/package.json +3 -2
  4. package/phpastgen.js +31 -0
  5. package/plugins/autoload.php +25 -0
  6. package/plugins/bin/atom +1 -1
  7. package/plugins/bin/atom.bat +1 -1
  8. package/plugins/bin/php-parse +119 -0
  9. package/plugins/composer/ClassLoader.php +579 -0
  10. package/plugins/composer/InstalledVersions.php +359 -0
  11. package/plugins/composer/LICENSE +21 -0
  12. package/plugins/composer/autoload_classmap.php +260 -0
  13. package/plugins/composer/autoload_namespaces.php +9 -0
  14. package/plugins/composer/autoload_psr4.php +10 -0
  15. package/plugins/composer/autoload_real.php +36 -0
  16. package/plugins/composer/autoload_static.php +286 -0
  17. package/plugins/composer/installed.json +67 -0
  18. package/plugins/composer/installed.php +32 -0
  19. package/plugins/lib/{com.fasterxml.jackson.core.jackson-annotations-2.15.2.jar → com.fasterxml.jackson.core.jackson-annotations-2.16.0.jar} +0 -0
  20. package/plugins/lib/com.fasterxml.jackson.core.jackson-core-2.16.0.jar +0 -0
  21. package/plugins/lib/{com.fasterxml.jackson.core.jackson-databind-2.15.2.jar → com.fasterxml.jackson.core.jackson-databind-2.16.0.jar} +0 -0
  22. package/plugins/lib/{com.github.javaparser.javaparser-core-3.25.6.jar → com.github.javaparser.javaparser-core-3.25.7.jar} +0 -0
  23. package/plugins/lib/{com.github.javaparser.javaparser-symbol-solver-core-3.25.6.jar → com.github.javaparser.javaparser-symbol-solver-core-3.25.7.jar} +0 -0
  24. package/plugins/lib/{com.typesafe.config-1.4.2.jar → com.typesafe.config-1.4.3.jar} +0 -0
  25. package/plugins/lib/io.appthreat.atom-1.8.1-classpath.jar +0 -0
  26. package/plugins/lib/{io.appthreat.atom-1.7.5.jar → io.appthreat.atom-1.8.1.jar} +0 -0
  27. package/plugins/lib/{io.appthreat.c2cpg_3-1.0.10.jar → io.appthreat.c2cpg_3-1.1.3.jar} +0 -0
  28. package/plugins/lib/{io.appthreat.dataflowengineoss_3-1.0.10.jar → io.appthreat.dataflowengineoss_3-1.1.3.jar} +0 -0
  29. package/plugins/lib/{io.appthreat.javasrc2cpg_3-1.0.10.jar → io.appthreat.javasrc2cpg_3-1.1.3.jar} +0 -0
  30. package/plugins/lib/{io.appthreat.jimple2cpg_3-1.0.10.jar → io.appthreat.jimple2cpg_3-1.1.3.jar} +0 -0
  31. package/plugins/lib/{io.appthreat.jssrc2cpg_3-1.0.10.jar → io.appthreat.jssrc2cpg_3-1.1.3.jar} +0 -0
  32. package/plugins/lib/io.appthreat.php2atom_3-1.1.3.jar +0 -0
  33. package/plugins/lib/{io.appthreat.pysrc2cpg_3-1.0.10.jar → io.appthreat.pysrc2cpg_3-1.1.3.jar} +0 -0
  34. package/plugins/lib/{io.appthreat.semanticcpg_3-1.0.10.jar → io.appthreat.semanticcpg_3-1.1.3.jar} +0 -0
  35. package/plugins/lib/{io.appthreat.x2cpg_3-1.0.10.jar → io.appthreat.x2cpg_3-1.1.3.jar} +0 -0
  36. package/plugins/lib/io.circe.circe-core_3-0.14.6.jar +0 -0
  37. package/plugins/lib/io.circe.circe-generic_3-0.14.6.jar +0 -0
  38. package/plugins/lib/io.circe.circe-jawn_3-0.14.6.jar +0 -0
  39. package/plugins/lib/io.circe.circe-numbers_3-0.14.6.jar +0 -0
  40. package/plugins/lib/io.circe.circe-parser_3-0.14.6.jar +0 -0
  41. package/plugins/lib/org.gradle.gradle-tooling-api-8.5.jar +0 -0
  42. package/plugins/lib/{org.json4s.json4s-ast_3-4.0.6.jar → org.json4s.json4s-ast_3-4.0.7.jar} +0 -0
  43. package/plugins/lib/{org.json4s.json4s-core_3-4.0.6.jar → org.json4s.json4s-core_3-4.0.7.jar} +0 -0
  44. package/plugins/lib/{org.json4s.json4s-native-core_3-4.0.6.jar → org.json4s.json4s-native-core_3-4.0.7.jar} +0 -0
  45. package/plugins/lib/{org.json4s.json4s-native_3-4.0.6.jar → org.json4s.json4s-native_3-4.0.7.jar} +0 -0
  46. package/plugins/lib/{org.json4s.json4s-scalap_3-4.0.6.jar → org.json4s.json4s-scalap_3-4.0.7.jar} +0 -0
  47. package/plugins/lib/org.scala-lang.modules.scala-parser-combinators_3-2.3.0.jar +0 -0
  48. package/plugins/nikic/php-parser/.php-cs-fixer.dist.php +31 -0
  49. package/plugins/nikic/php-parser/LICENSE +29 -0
  50. package/plugins/nikic/php-parser/Makefile +10 -0
  51. package/plugins/nikic/php-parser/README.md +233 -0
  52. package/plugins/nikic/php-parser/bin/php-parse +206 -0
  53. package/plugins/nikic/php-parser/composer.json +43 -0
  54. package/plugins/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +150 -0
  55. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Class_.php +151 -0
  56. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +50 -0
  57. package/plugins/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php +87 -0
  58. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Enum_.php +116 -0
  59. package/plugins/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +73 -0
  60. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Function_.php +67 -0
  61. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Interface_.php +94 -0
  62. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Method.php +147 -0
  63. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +45 -0
  64. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Param.php +149 -0
  65. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Property.php +161 -0
  66. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php +65 -0
  67. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php +145 -0
  68. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +83 -0
  69. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Use_.php +49 -0
  70. package/plugins/nikic/php-parser/lib/PhpParser/Builder.php +12 -0
  71. package/plugins/nikic/php-parser/lib/PhpParser/BuilderFactory.php +375 -0
  72. package/plugins/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +333 -0
  73. package/plugins/nikic/php-parser/lib/PhpParser/Comment/Doc.php +6 -0
  74. package/plugins/nikic/php-parser/lib/PhpParser/Comment.php +207 -0
  75. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php +6 -0
  76. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +234 -0
  77. package/plugins/nikic/php-parser/lib/PhpParser/Error.php +171 -0
  78. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php +43 -0
  79. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +17 -0
  80. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler.php +12 -0
  81. package/plugins/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php +31 -0
  82. package/plugins/nikic/php-parser/lib/PhpParser/Internal/Differ.php +178 -0
  83. package/plugins/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +71 -0
  84. package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php +237 -0
  85. package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +271 -0
  86. package/plugins/nikic/php-parser/lib/PhpParser/JsonDecoder.php +108 -0
  87. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +226 -0
  88. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php +49 -0
  89. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php +26 -0
  90. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php +45 -0
  91. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +56 -0
  92. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php +19 -0
  93. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php +60 -0
  94. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php +31 -0
  95. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php +31 -0
  96. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php +37 -0
  97. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php +30 -0
  98. package/plugins/nikic/php-parser/lib/PhpParser/Lexer.php +116 -0
  99. package/plugins/nikic/php-parser/lib/PhpParser/Modifiers.php +69 -0
  100. package/plugins/nikic/php-parser/lib/PhpParser/NameContext.php +284 -0
  101. package/plugins/nikic/php-parser/lib/PhpParser/Node/Arg.php +44 -0
  102. package/plugins/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php +43 -0
  103. package/plugins/nikic/php-parser/lib/PhpParser/Node/Attribute.php +33 -0
  104. package/plugins/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php +27 -0
  105. package/plugins/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php +36 -0
  106. package/plugins/nikic/php-parser/lib/PhpParser/Node/ComplexType.php +13 -0
  107. package/plugins/nikic/php-parser/lib/PhpParser/Node/Const_.php +36 -0
  108. package/plugins/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php +37 -0
  109. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +33 -0
  110. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +3 -0
  111. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +34 -0
  112. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +84 -0
  113. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +33 -0
  114. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +11 -0
  115. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php +11 -0
  116. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php +11 -0
  117. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php +11 -0
  118. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php +11 -0
  119. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php +11 -0
  120. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php +11 -0
  121. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php +11 -0
  122. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php +11 -0
  123. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php +11 -0
  124. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php +11 -0
  125. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php +11 -0
  126. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php +11 -0
  127. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +29 -0
  128. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php +33 -0
  129. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +15 -0
  130. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php +15 -0
  131. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php +15 -0
  132. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php +15 -0
  133. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php +15 -0
  134. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php +15 -0
  135. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php +15 -0
  136. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php +15 -0
  137. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php +15 -0
  138. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php +15 -0
  139. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php +15 -0
  140. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php +15 -0
  141. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php +15 -0
  142. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php +15 -0
  143. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php +15 -0
  144. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php +15 -0
  145. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php +15 -0
  146. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php +15 -0
  147. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php +15 -0
  148. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php +15 -0
  149. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php +15 -0
  150. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php +15 -0
  151. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php +15 -0
  152. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php +15 -0
  153. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php +15 -0
  154. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php +15 -0
  155. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php +15 -0
  156. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +37 -0
  157. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +29 -0
  158. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +29 -0
  159. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +35 -0
  160. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +11 -0
  161. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php +11 -0
  162. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php +16 -0
  163. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php +11 -0
  164. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php +11 -0
  165. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php +11 -0
  166. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php +11 -0
  167. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +25 -0
  168. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +36 -0
  169. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +29 -0
  170. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +86 -0
  171. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +3 -0
  172. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +30 -0
  173. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +29 -0
  174. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +30 -0
  175. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +29 -0
  176. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +29 -0
  177. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +33 -0
  178. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +38 -0
  179. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +38 -0
  180. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +35 -0
  181. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +29 -0
  182. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +34 -0
  183. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php +32 -0
  184. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +45 -0
  185. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +40 -0
  186. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +45 -0
  187. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php +35 -0
  188. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +29 -0
  189. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +29 -0
  190. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +29 -0
  191. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +29 -0
  192. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +29 -0
  193. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +35 -0
  194. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +30 -0
  195. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +45 -0
  196. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +36 -0
  197. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +37 -0
  198. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php +29 -0
  199. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +29 -0
  200. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +29 -0
  201. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +29 -0
  202. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +29 -0
  203. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +33 -0
  204. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr.php +8 -0
  205. package/plugins/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +40 -0
  206. package/plugins/nikic/php-parser/lib/PhpParser/Node/Identifier.php +75 -0
  207. package/plugins/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php +32 -0
  208. package/plugins/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php +27 -0
  209. package/plugins/nikic/php-parser/lib/PhpParser/Node/MatchArm.php +30 -0
  210. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +49 -0
  211. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php +49 -0
  212. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name.php +269 -0
  213. package/plugins/nikic/php-parser/lib/PhpParser/Node/NullableType.php +29 -0
  214. package/plugins/nikic/php-parser/lib/PhpParser/Node/Param.php +84 -0
  215. package/plugins/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php +37 -0
  216. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +3 -0
  217. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +3 -0
  218. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +3 -0
  219. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php +78 -0
  220. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php +82 -0
  221. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php +34 -0
  222. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +3 -0
  223. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php +15 -0
  224. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php +15 -0
  225. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php +15 -0
  226. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php +15 -0
  227. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php +15 -0
  228. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php +15 -0
  229. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php +15 -0
  230. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php +15 -0
  231. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +27 -0
  232. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +161 -0
  233. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar.php +6 -0
  234. package/plugins/nikic/php-parser/lib/PhpParser/Node/StaticVar.php +39 -0
  235. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php +29 -0
  236. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +29 -0
  237. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +33 -0
  238. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +40 -0
  239. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +77 -0
  240. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +109 -0
  241. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +154 -0
  242. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +94 -0
  243. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +29 -0
  244. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +29 -0
  245. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +3 -0
  246. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +34 -0
  247. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +33 -0
  248. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +29 -0
  249. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +33 -0
  250. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +29 -0
  251. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +36 -0
  252. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php +44 -0
  253. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +32 -0
  254. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +29 -0
  255. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +47 -0
  256. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +50 -0
  257. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +81 -0
  258. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +29 -0
  259. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +30 -0
  260. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +41 -0
  261. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +29 -0
  262. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +46 -0
  263. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +29 -0
  264. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +40 -0
  265. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +30 -0
  266. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +37 -0
  267. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +16 -0
  268. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +82 -0
  269. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +3 -0
  270. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +29 -0
  271. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +3 -0
  272. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +30 -0
  273. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +33 -0
  274. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +33 -0
  275. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php +37 -0
  276. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +33 -0
  277. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +12 -0
  278. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +34 -0
  279. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +37 -0
  280. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +29 -0
  281. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +3 -0
  282. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +47 -0
  283. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +33 -0
  284. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt.php +8 -0
  285. package/plugins/nikic/php-parser/lib/PhpParser/Node/UnionType.php +27 -0
  286. package/plugins/nikic/php-parser/lib/PhpParser/Node/UseItem.php +55 -0
  287. package/plugins/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php +16 -0
  288. package/plugins/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php +27 -0
  289. package/plugins/nikic/php-parser/lib/PhpParser/Node.php +146 -0
  290. package/plugins/nikic/php-parser/lib/PhpParser/NodeAbstract.php +178 -0
  291. package/plugins/nikic/php-parser/lib/PhpParser/NodeDumper.php +290 -0
  292. package/plugins/nikic/php-parser/lib/PhpParser/NodeFinder.php +90 -0
  293. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverser.php +278 -0
  294. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +26 -0
  295. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php +19 -0
  296. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php +82 -0
  297. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php +47 -0
  298. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php +49 -0
  299. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +262 -0
  300. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php +51 -0
  301. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php +38 -0
  302. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor.php +124 -0
  303. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +24 -0
  304. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php7.php +2699 -0
  305. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php8.php +2717 -0
  306. package/plugins/nikic/php-parser/lib/PhpParser/Parser.php +24 -0
  307. package/plugins/nikic/php-parser/lib/PhpParser/ParserAbstract.php +1241 -0
  308. package/plugins/nikic/php-parser/lib/PhpParser/ParserFactory.php +42 -0
  309. package/plugins/nikic/php-parser/lib/PhpParser/PhpVersion.php +164 -0
  310. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +1177 -0
  311. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter.php +51 -0
  312. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +1655 -0
  313. package/plugins/nikic/php-parser/lib/PhpParser/Token.php +18 -0
  314. package/plugins/nikic/php-parser/lib/PhpParser/compatibility_tokens.php +56 -0
  315. package/plugins/nikic/php-parser/phpstan-baseline.neon +236 -0
  316. package/plugins/nikic/php-parser/phpstan.neon.dist +8 -0
  317. package/utils.mjs +10 -0
  318. package/plugins/lib/com.fasterxml.jackson.core.jackson-core-2.15.2.jar +0 -0
  319. package/plugins/lib/io.appthreat.atom-1.7.5-classpath.jar +0 -0
  320. package/plugins/lib/io.circe.circe-core_3-0.14.5.jar +0 -0
  321. package/plugins/lib/io.circe.circe-generic_3-0.14.5.jar +0 -0
  322. package/plugins/lib/io.circe.circe-jawn_3-0.14.5.jar +0 -0
  323. package/plugins/lib/io.circe.circe-numbers_3-0.14.5.jar +0 -0
  324. package/plugins/lib/io.circe.circe-parser_3-0.14.5.jar +0 -0
  325. package/plugins/lib/org.gradle.gradle-tooling-api-8.3.jar +0 -0
  326. package/plugins/lib/org.scala-lang.modules.scala-parser-combinators_3-2.2.0.jar +0 -0
@@ -0,0 +1,83 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Builder;
4
+
5
+ use PhpParser;
6
+ use PhpParser\BuilderHelpers;
7
+ use PhpParser\Node;
8
+ use PhpParser\Node\Stmt;
9
+
10
+ class Trait_ extends Declaration {
11
+ protected string $name;
12
+ /** @var list<Stmt\TraitUse> */
13
+ protected array $uses = [];
14
+ /** @var list<Stmt\ClassConst> */
15
+ protected array $constants = [];
16
+ /** @var list<Stmt\Property> */
17
+ protected array $properties = [];
18
+ /** @var list<Stmt\ClassMethod> */
19
+ protected array $methods = [];
20
+ /** @var list<Node\AttributeGroup> */
21
+ protected array $attributeGroups = [];
22
+
23
+ /**
24
+ * Creates an interface builder.
25
+ *
26
+ * @param string $name Name of the interface
27
+ */
28
+ public function __construct(string $name) {
29
+ $this->name = $name;
30
+ }
31
+
32
+ /**
33
+ * Adds a statement.
34
+ *
35
+ * @param Stmt|PhpParser\Builder $stmt The statement to add
36
+ *
37
+ * @return $this The builder instance (for fluid interface)
38
+ */
39
+ public function addStmt($stmt) {
40
+ $stmt = BuilderHelpers::normalizeNode($stmt);
41
+
42
+ if ($stmt instanceof Stmt\Property) {
43
+ $this->properties[] = $stmt;
44
+ } elseif ($stmt instanceof Stmt\ClassMethod) {
45
+ $this->methods[] = $stmt;
46
+ } elseif ($stmt instanceof Stmt\TraitUse) {
47
+ $this->uses[] = $stmt;
48
+ } elseif ($stmt instanceof Stmt\ClassConst) {
49
+ $this->constants[] = $stmt;
50
+ } else {
51
+ throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType()));
52
+ }
53
+
54
+ return $this;
55
+ }
56
+
57
+ /**
58
+ * Adds an attribute group.
59
+ *
60
+ * @param Node\Attribute|Node\AttributeGroup $attribute
61
+ *
62
+ * @return $this The builder instance (for fluid interface)
63
+ */
64
+ public function addAttribute($attribute) {
65
+ $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
66
+
67
+ return $this;
68
+ }
69
+
70
+ /**
71
+ * Returns the built trait node.
72
+ *
73
+ * @return Stmt\Trait_ The built interface node
74
+ */
75
+ public function getNode(): PhpParser\Node {
76
+ return new Stmt\Trait_(
77
+ $this->name, [
78
+ 'stmts' => array_merge($this->uses, $this->constants, $this->properties, $this->methods),
79
+ 'attrGroups' => $this->attributeGroups,
80
+ ], $this->attributes
81
+ );
82
+ }
83
+ }
@@ -0,0 +1,49 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Builder;
4
+
5
+ use PhpParser\Builder;
6
+ use PhpParser\BuilderHelpers;
7
+ use PhpParser\Node;
8
+ use PhpParser\Node\Stmt;
9
+
10
+ class Use_ implements Builder {
11
+ protected Node\Name $name;
12
+ /** @var Stmt\Use_::TYPE_* */
13
+ protected int $type;
14
+ protected ?string $alias = null;
15
+
16
+ /**
17
+ * Creates a name use (alias) builder.
18
+ *
19
+ * @param Node\Name|string $name Name of the entity (namespace, class, function, constant) to alias
20
+ * @param Stmt\Use_::TYPE_* $type One of the Stmt\Use_::TYPE_* constants
21
+ */
22
+ public function __construct($name, int $type) {
23
+ $this->name = BuilderHelpers::normalizeName($name);
24
+ $this->type = $type;
25
+ }
26
+
27
+ /**
28
+ * Sets alias for used name.
29
+ *
30
+ * @param string $alias Alias to use (last component of full name by default)
31
+ *
32
+ * @return $this The builder instance (for fluid interface)
33
+ */
34
+ public function as(string $alias) {
35
+ $this->alias = $alias;
36
+ return $this;
37
+ }
38
+
39
+ /**
40
+ * Returns the built node.
41
+ *
42
+ * @return Stmt\Use_ The built node
43
+ */
44
+ public function getNode(): Node {
45
+ return new Stmt\Use_([
46
+ new Node\UseItem($this->name, $this->alias)
47
+ ], $this->type);
48
+ }
49
+ }
@@ -0,0 +1,12 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser;
4
+
5
+ interface Builder {
6
+ /**
7
+ * Returns the built node.
8
+ *
9
+ * @return Node The built node
10
+ */
11
+ public function getNode(): Node;
12
+ }
@@ -0,0 +1,375 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser;
4
+
5
+ use PhpParser\Node\Arg;
6
+ use PhpParser\Node\Expr;
7
+ use PhpParser\Node\Expr\BinaryOp\Concat;
8
+ use PhpParser\Node\Identifier;
9
+ use PhpParser\Node\Name;
10
+ use PhpParser\Node\Scalar\String_;
11
+ use PhpParser\Node\Stmt\Use_;
12
+
13
+ class BuilderFactory {
14
+ /**
15
+ * Creates an attribute node.
16
+ *
17
+ * @param string|Name $name Name of the attribute
18
+ * @param array $args Attribute named arguments
19
+ */
20
+ public function attribute($name, array $args = []): Node\Attribute {
21
+ return new Node\Attribute(
22
+ BuilderHelpers::normalizeName($name),
23
+ $this->args($args)
24
+ );
25
+ }
26
+
27
+ /**
28
+ * Creates a namespace builder.
29
+ *
30
+ * @param null|string|Node\Name $name Name of the namespace
31
+ *
32
+ * @return Builder\Namespace_ The created namespace builder
33
+ */
34
+ public function namespace($name): Builder\Namespace_ {
35
+ return new Builder\Namespace_($name);
36
+ }
37
+
38
+ /**
39
+ * Creates a class builder.
40
+ *
41
+ * @param string $name Name of the class
42
+ *
43
+ * @return Builder\Class_ The created class builder
44
+ */
45
+ public function class(string $name): Builder\Class_ {
46
+ return new Builder\Class_($name);
47
+ }
48
+
49
+ /**
50
+ * Creates an interface builder.
51
+ *
52
+ * @param string $name Name of the interface
53
+ *
54
+ * @return Builder\Interface_ The created interface builder
55
+ */
56
+ public function interface(string $name): Builder\Interface_ {
57
+ return new Builder\Interface_($name);
58
+ }
59
+
60
+ /**
61
+ * Creates a trait builder.
62
+ *
63
+ * @param string $name Name of the trait
64
+ *
65
+ * @return Builder\Trait_ The created trait builder
66
+ */
67
+ public function trait(string $name): Builder\Trait_ {
68
+ return new Builder\Trait_($name);
69
+ }
70
+
71
+ /**
72
+ * Creates an enum builder.
73
+ *
74
+ * @param string $name Name of the enum
75
+ *
76
+ * @return Builder\Enum_ The created enum builder
77
+ */
78
+ public function enum(string $name): Builder\Enum_ {
79
+ return new Builder\Enum_($name);
80
+ }
81
+
82
+ /**
83
+ * Creates a trait use builder.
84
+ *
85
+ * @param Node\Name|string ...$traits Trait names
86
+ *
87
+ * @return Builder\TraitUse The created trait use builder
88
+ */
89
+ public function useTrait(...$traits): Builder\TraitUse {
90
+ return new Builder\TraitUse(...$traits);
91
+ }
92
+
93
+ /**
94
+ * Creates a trait use adaptation builder.
95
+ *
96
+ * @param Node\Name|string|null $trait Trait name
97
+ * @param Node\Identifier|string $method Method name
98
+ *
99
+ * @return Builder\TraitUseAdaptation The created trait use adaptation builder
100
+ */
101
+ public function traitUseAdaptation($trait, $method = null): Builder\TraitUseAdaptation {
102
+ if ($method === null) {
103
+ $method = $trait;
104
+ $trait = null;
105
+ }
106
+
107
+ return new Builder\TraitUseAdaptation($trait, $method);
108
+ }
109
+
110
+ /**
111
+ * Creates a method builder.
112
+ *
113
+ * @param string $name Name of the method
114
+ *
115
+ * @return Builder\Method The created method builder
116
+ */
117
+ public function method(string $name): Builder\Method {
118
+ return new Builder\Method($name);
119
+ }
120
+
121
+ /**
122
+ * Creates a parameter builder.
123
+ *
124
+ * @param string $name Name of the parameter
125
+ *
126
+ * @return Builder\Param The created parameter builder
127
+ */
128
+ public function param(string $name): Builder\Param {
129
+ return new Builder\Param($name);
130
+ }
131
+
132
+ /**
133
+ * Creates a property builder.
134
+ *
135
+ * @param string $name Name of the property
136
+ *
137
+ * @return Builder\Property The created property builder
138
+ */
139
+ public function property(string $name): Builder\Property {
140
+ return new Builder\Property($name);
141
+ }
142
+
143
+ /**
144
+ * Creates a function builder.
145
+ *
146
+ * @param string $name Name of the function
147
+ *
148
+ * @return Builder\Function_ The created function builder
149
+ */
150
+ public function function(string $name): Builder\Function_ {
151
+ return new Builder\Function_($name);
152
+ }
153
+
154
+ /**
155
+ * Creates a namespace/class use builder.
156
+ *
157
+ * @param Node\Name|string $name Name of the entity (namespace or class) to alias
158
+ *
159
+ * @return Builder\Use_ The created use builder
160
+ */
161
+ public function use($name): Builder\Use_ {
162
+ return new Builder\Use_($name, Use_::TYPE_NORMAL);
163
+ }
164
+
165
+ /**
166
+ * Creates a function use builder.
167
+ *
168
+ * @param Node\Name|string $name Name of the function to alias
169
+ *
170
+ * @return Builder\Use_ The created use function builder
171
+ */
172
+ public function useFunction($name): Builder\Use_ {
173
+ return new Builder\Use_($name, Use_::TYPE_FUNCTION);
174
+ }
175
+
176
+ /**
177
+ * Creates a constant use builder.
178
+ *
179
+ * @param Node\Name|string $name Name of the const to alias
180
+ *
181
+ * @return Builder\Use_ The created use const builder
182
+ */
183
+ public function useConst($name): Builder\Use_ {
184
+ return new Builder\Use_($name, Use_::TYPE_CONSTANT);
185
+ }
186
+
187
+ /**
188
+ * Creates a class constant builder.
189
+ *
190
+ * @param string|Identifier $name Name
191
+ * @param Node\Expr|bool|null|int|float|string|array $value Value
192
+ *
193
+ * @return Builder\ClassConst The created use const builder
194
+ */
195
+ public function classConst($name, $value): Builder\ClassConst {
196
+ return new Builder\ClassConst($name, $value);
197
+ }
198
+
199
+ /**
200
+ * Creates an enum case builder.
201
+ *
202
+ * @param string|Identifier $name Name
203
+ *
204
+ * @return Builder\EnumCase The created use const builder
205
+ */
206
+ public function enumCase($name): Builder\EnumCase {
207
+ return new Builder\EnumCase($name);
208
+ }
209
+
210
+ /**
211
+ * Creates node a for a literal value.
212
+ *
213
+ * @param Expr|bool|null|int|float|string|array $value $value
214
+ */
215
+ public function val($value): Expr {
216
+ return BuilderHelpers::normalizeValue($value);
217
+ }
218
+
219
+ /**
220
+ * Creates variable node.
221
+ *
222
+ * @param string|Expr $name Name
223
+ */
224
+ public function var($name): Expr\Variable {
225
+ if (!\is_string($name) && !$name instanceof Expr) {
226
+ throw new \LogicException('Variable name must be string or Expr');
227
+ }
228
+
229
+ return new Expr\Variable($name);
230
+ }
231
+
232
+ /**
233
+ * Normalizes an argument list.
234
+ *
235
+ * Creates Arg nodes for all arguments and converts literal values to expressions.
236
+ *
237
+ * @param array $args List of arguments to normalize
238
+ *
239
+ * @return list<Arg>
240
+ */
241
+ public function args(array $args): array {
242
+ $normalizedArgs = [];
243
+ foreach ($args as $key => $arg) {
244
+ if (!($arg instanceof Arg)) {
245
+ $arg = new Arg(BuilderHelpers::normalizeValue($arg));
246
+ }
247
+ if (\is_string($key)) {
248
+ $arg->name = BuilderHelpers::normalizeIdentifier($key);
249
+ }
250
+ $normalizedArgs[] = $arg;
251
+ }
252
+ return $normalizedArgs;
253
+ }
254
+
255
+ /**
256
+ * Creates a function call node.
257
+ *
258
+ * @param string|Name|Expr $name Function name
259
+ * @param array $args Function arguments
260
+ */
261
+ public function funcCall($name, array $args = []): Expr\FuncCall {
262
+ return new Expr\FuncCall(
263
+ BuilderHelpers::normalizeNameOrExpr($name),
264
+ $this->args($args)
265
+ );
266
+ }
267
+
268
+ /**
269
+ * Creates a method call node.
270
+ *
271
+ * @param Expr $var Variable the method is called on
272
+ * @param string|Identifier|Expr $name Method name
273
+ * @param array $args Method arguments
274
+ */
275
+ public function methodCall(Expr $var, $name, array $args = []): Expr\MethodCall {
276
+ return new Expr\MethodCall(
277
+ $var,
278
+ BuilderHelpers::normalizeIdentifierOrExpr($name),
279
+ $this->args($args)
280
+ );
281
+ }
282
+
283
+ /**
284
+ * Creates a static method call node.
285
+ *
286
+ * @param string|Name|Expr $class Class name
287
+ * @param string|Identifier|Expr $name Method name
288
+ * @param array $args Method arguments
289
+ */
290
+ public function staticCall($class, $name, array $args = []): Expr\StaticCall {
291
+ return new Expr\StaticCall(
292
+ BuilderHelpers::normalizeNameOrExpr($class),
293
+ BuilderHelpers::normalizeIdentifierOrExpr($name),
294
+ $this->args($args)
295
+ );
296
+ }
297
+
298
+ /**
299
+ * Creates an object creation node.
300
+ *
301
+ * @param string|Name|Expr $class Class name
302
+ * @param array $args Constructor arguments
303
+ */
304
+ public function new($class, array $args = []): Expr\New_ {
305
+ return new Expr\New_(
306
+ BuilderHelpers::normalizeNameOrExpr($class),
307
+ $this->args($args)
308
+ );
309
+ }
310
+
311
+ /**
312
+ * Creates a constant fetch node.
313
+ *
314
+ * @param string|Name $name Constant name
315
+ */
316
+ public function constFetch($name): Expr\ConstFetch {
317
+ return new Expr\ConstFetch(BuilderHelpers::normalizeName($name));
318
+ }
319
+
320
+ /**
321
+ * Creates a property fetch node.
322
+ *
323
+ * @param Expr $var Variable holding object
324
+ * @param string|Identifier|Expr $name Property name
325
+ */
326
+ public function propertyFetch(Expr $var, $name): Expr\PropertyFetch {
327
+ return new Expr\PropertyFetch($var, BuilderHelpers::normalizeIdentifierOrExpr($name));
328
+ }
329
+
330
+ /**
331
+ * Creates a class constant fetch node.
332
+ *
333
+ * @param string|Name|Expr $class Class name
334
+ * @param string|Identifier|Expr $name Constant name
335
+ */
336
+ public function classConstFetch($class, $name): Expr\ClassConstFetch {
337
+ return new Expr\ClassConstFetch(
338
+ BuilderHelpers::normalizeNameOrExpr($class),
339
+ BuilderHelpers::normalizeIdentifierOrExpr($name)
340
+ );
341
+ }
342
+
343
+ /**
344
+ * Creates nested Concat nodes from a list of expressions.
345
+ *
346
+ * @param Expr|string ...$exprs Expressions or literal strings
347
+ */
348
+ public function concat(...$exprs): Concat {
349
+ $numExprs = count($exprs);
350
+ if ($numExprs < 2) {
351
+ throw new \LogicException('Expected at least two expressions');
352
+ }
353
+
354
+ $lastConcat = $this->normalizeStringExpr($exprs[0]);
355
+ for ($i = 1; $i < $numExprs; $i++) {
356
+ $lastConcat = new Concat($lastConcat, $this->normalizeStringExpr($exprs[$i]));
357
+ }
358
+ return $lastConcat;
359
+ }
360
+
361
+ /**
362
+ * @param string|Expr $expr
363
+ */
364
+ private function normalizeStringExpr($expr): Expr {
365
+ if ($expr instanceof Expr) {
366
+ return $expr;
367
+ }
368
+
369
+ if (\is_string($expr)) {
370
+ return new String_($expr);
371
+ }
372
+
373
+ throw new \LogicException('Expected string or Expr');
374
+ }
375
+ }