@appthreat/atom 1.8.0 → 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 (300) 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/io.appthreat.atom-1.8.1-classpath.jar +0 -0
  20. package/plugins/lib/{io.appthreat.atom-1.8.0.jar → io.appthreat.atom-1.8.1.jar} +0 -0
  21. package/plugins/lib/{io.appthreat.c2cpg_3-1.1.1.jar → io.appthreat.c2cpg_3-1.1.3.jar} +0 -0
  22. package/plugins/lib/{io.appthreat.dataflowengineoss_3-1.1.1.jar → io.appthreat.dataflowengineoss_3-1.1.3.jar} +0 -0
  23. package/plugins/lib/{io.appthreat.javasrc2cpg_3-1.1.1.jar → io.appthreat.javasrc2cpg_3-1.1.3.jar} +0 -0
  24. package/plugins/lib/{io.appthreat.jimple2cpg_3-1.1.1.jar → io.appthreat.jimple2cpg_3-1.1.3.jar} +0 -0
  25. package/plugins/lib/{io.appthreat.jssrc2cpg_3-1.1.1.jar → io.appthreat.jssrc2cpg_3-1.1.3.jar} +0 -0
  26. package/plugins/lib/io.appthreat.php2atom_3-1.1.3.jar +0 -0
  27. package/plugins/lib/{io.appthreat.pysrc2cpg_3-1.1.1.jar → io.appthreat.pysrc2cpg_3-1.1.3.jar} +0 -0
  28. package/plugins/lib/{io.appthreat.semanticcpg_3-1.1.1.jar → io.appthreat.semanticcpg_3-1.1.3.jar} +0 -0
  29. package/plugins/lib/{io.appthreat.x2cpg_3-1.1.1.jar → io.appthreat.x2cpg_3-1.1.3.jar} +0 -0
  30. package/plugins/nikic/php-parser/.php-cs-fixer.dist.php +31 -0
  31. package/plugins/nikic/php-parser/LICENSE +29 -0
  32. package/plugins/nikic/php-parser/Makefile +10 -0
  33. package/plugins/nikic/php-parser/README.md +233 -0
  34. package/plugins/nikic/php-parser/bin/php-parse +206 -0
  35. package/plugins/nikic/php-parser/composer.json +43 -0
  36. package/plugins/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +150 -0
  37. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Class_.php +151 -0
  38. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +50 -0
  39. package/plugins/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php +87 -0
  40. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Enum_.php +116 -0
  41. package/plugins/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +73 -0
  42. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Function_.php +67 -0
  43. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Interface_.php +94 -0
  44. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Method.php +147 -0
  45. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +45 -0
  46. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Param.php +149 -0
  47. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Property.php +161 -0
  48. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php +65 -0
  49. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php +145 -0
  50. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +83 -0
  51. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Use_.php +49 -0
  52. package/plugins/nikic/php-parser/lib/PhpParser/Builder.php +12 -0
  53. package/plugins/nikic/php-parser/lib/PhpParser/BuilderFactory.php +375 -0
  54. package/plugins/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +333 -0
  55. package/plugins/nikic/php-parser/lib/PhpParser/Comment/Doc.php +6 -0
  56. package/plugins/nikic/php-parser/lib/PhpParser/Comment.php +207 -0
  57. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php +6 -0
  58. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +234 -0
  59. package/plugins/nikic/php-parser/lib/PhpParser/Error.php +171 -0
  60. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php +43 -0
  61. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +17 -0
  62. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler.php +12 -0
  63. package/plugins/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php +31 -0
  64. package/plugins/nikic/php-parser/lib/PhpParser/Internal/Differ.php +178 -0
  65. package/plugins/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +71 -0
  66. package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php +237 -0
  67. package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +271 -0
  68. package/plugins/nikic/php-parser/lib/PhpParser/JsonDecoder.php +108 -0
  69. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +226 -0
  70. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php +49 -0
  71. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php +26 -0
  72. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php +45 -0
  73. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +56 -0
  74. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php +19 -0
  75. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php +60 -0
  76. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php +31 -0
  77. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php +31 -0
  78. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php +37 -0
  79. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php +30 -0
  80. package/plugins/nikic/php-parser/lib/PhpParser/Lexer.php +116 -0
  81. package/plugins/nikic/php-parser/lib/PhpParser/Modifiers.php +69 -0
  82. package/plugins/nikic/php-parser/lib/PhpParser/NameContext.php +284 -0
  83. package/plugins/nikic/php-parser/lib/PhpParser/Node/Arg.php +44 -0
  84. package/plugins/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php +43 -0
  85. package/plugins/nikic/php-parser/lib/PhpParser/Node/Attribute.php +33 -0
  86. package/plugins/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php +27 -0
  87. package/plugins/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php +36 -0
  88. package/plugins/nikic/php-parser/lib/PhpParser/Node/ComplexType.php +13 -0
  89. package/plugins/nikic/php-parser/lib/PhpParser/Node/Const_.php +36 -0
  90. package/plugins/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php +37 -0
  91. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +33 -0
  92. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +3 -0
  93. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +34 -0
  94. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +84 -0
  95. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +33 -0
  96. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +11 -0
  97. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php +11 -0
  98. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php +11 -0
  99. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php +11 -0
  100. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php +11 -0
  101. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php +11 -0
  102. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php +11 -0
  103. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php +11 -0
  104. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php +11 -0
  105. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php +11 -0
  106. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php +11 -0
  107. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php +11 -0
  108. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php +11 -0
  109. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +29 -0
  110. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php +33 -0
  111. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +15 -0
  112. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php +15 -0
  113. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php +15 -0
  114. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php +15 -0
  115. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php +15 -0
  116. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php +15 -0
  117. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php +15 -0
  118. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php +15 -0
  119. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php +15 -0
  120. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php +15 -0
  121. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php +15 -0
  122. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php +15 -0
  123. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php +15 -0
  124. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php +15 -0
  125. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php +15 -0
  126. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php +15 -0
  127. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php +15 -0
  128. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php +15 -0
  129. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php +15 -0
  130. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php +15 -0
  131. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php +15 -0
  132. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php +15 -0
  133. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php +15 -0
  134. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php +15 -0
  135. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php +15 -0
  136. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php +15 -0
  137. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php +15 -0
  138. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +37 -0
  139. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +29 -0
  140. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +29 -0
  141. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +35 -0
  142. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +11 -0
  143. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php +11 -0
  144. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php +16 -0
  145. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php +11 -0
  146. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php +11 -0
  147. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php +11 -0
  148. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php +11 -0
  149. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +25 -0
  150. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +36 -0
  151. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +29 -0
  152. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +86 -0
  153. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +3 -0
  154. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +30 -0
  155. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +29 -0
  156. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +30 -0
  157. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +29 -0
  158. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +29 -0
  159. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +33 -0
  160. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +38 -0
  161. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +38 -0
  162. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +35 -0
  163. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +29 -0
  164. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +34 -0
  165. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php +32 -0
  166. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +45 -0
  167. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +40 -0
  168. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +45 -0
  169. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php +35 -0
  170. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +29 -0
  171. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +29 -0
  172. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +29 -0
  173. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +29 -0
  174. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +29 -0
  175. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +35 -0
  176. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +30 -0
  177. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +45 -0
  178. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +36 -0
  179. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +37 -0
  180. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php +29 -0
  181. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +29 -0
  182. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +29 -0
  183. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +29 -0
  184. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +29 -0
  185. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +33 -0
  186. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr.php +8 -0
  187. package/plugins/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +40 -0
  188. package/plugins/nikic/php-parser/lib/PhpParser/Node/Identifier.php +75 -0
  189. package/plugins/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php +32 -0
  190. package/plugins/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php +27 -0
  191. package/plugins/nikic/php-parser/lib/PhpParser/Node/MatchArm.php +30 -0
  192. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +49 -0
  193. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php +49 -0
  194. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name.php +269 -0
  195. package/plugins/nikic/php-parser/lib/PhpParser/Node/NullableType.php +29 -0
  196. package/plugins/nikic/php-parser/lib/PhpParser/Node/Param.php +84 -0
  197. package/plugins/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php +37 -0
  198. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +3 -0
  199. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +3 -0
  200. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +3 -0
  201. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php +78 -0
  202. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php +82 -0
  203. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php +34 -0
  204. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +3 -0
  205. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php +15 -0
  206. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php +15 -0
  207. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php +15 -0
  208. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php +15 -0
  209. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php +15 -0
  210. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php +15 -0
  211. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php +15 -0
  212. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php +15 -0
  213. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +27 -0
  214. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +161 -0
  215. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar.php +6 -0
  216. package/plugins/nikic/php-parser/lib/PhpParser/Node/StaticVar.php +39 -0
  217. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php +29 -0
  218. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +29 -0
  219. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +33 -0
  220. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +40 -0
  221. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +77 -0
  222. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +109 -0
  223. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +154 -0
  224. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +94 -0
  225. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +29 -0
  226. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +29 -0
  227. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +3 -0
  228. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +34 -0
  229. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +33 -0
  230. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +29 -0
  231. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +33 -0
  232. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +29 -0
  233. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +36 -0
  234. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php +44 -0
  235. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +32 -0
  236. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +29 -0
  237. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +47 -0
  238. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +50 -0
  239. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +81 -0
  240. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +29 -0
  241. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +30 -0
  242. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +41 -0
  243. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +29 -0
  244. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +46 -0
  245. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +29 -0
  246. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +40 -0
  247. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +30 -0
  248. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +37 -0
  249. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +16 -0
  250. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +82 -0
  251. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +3 -0
  252. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +29 -0
  253. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +3 -0
  254. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +30 -0
  255. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +33 -0
  256. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +33 -0
  257. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php +37 -0
  258. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +33 -0
  259. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +12 -0
  260. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +34 -0
  261. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +37 -0
  262. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +29 -0
  263. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +3 -0
  264. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +47 -0
  265. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +33 -0
  266. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt.php +8 -0
  267. package/plugins/nikic/php-parser/lib/PhpParser/Node/UnionType.php +27 -0
  268. package/plugins/nikic/php-parser/lib/PhpParser/Node/UseItem.php +55 -0
  269. package/plugins/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php +16 -0
  270. package/plugins/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php +27 -0
  271. package/plugins/nikic/php-parser/lib/PhpParser/Node.php +146 -0
  272. package/plugins/nikic/php-parser/lib/PhpParser/NodeAbstract.php +178 -0
  273. package/plugins/nikic/php-parser/lib/PhpParser/NodeDumper.php +290 -0
  274. package/plugins/nikic/php-parser/lib/PhpParser/NodeFinder.php +90 -0
  275. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverser.php +278 -0
  276. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +26 -0
  277. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php +19 -0
  278. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php +82 -0
  279. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php +47 -0
  280. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php +49 -0
  281. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +262 -0
  282. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php +51 -0
  283. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php +38 -0
  284. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor.php +124 -0
  285. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +24 -0
  286. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php7.php +2699 -0
  287. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php8.php +2717 -0
  288. package/plugins/nikic/php-parser/lib/PhpParser/Parser.php +24 -0
  289. package/plugins/nikic/php-parser/lib/PhpParser/ParserAbstract.php +1241 -0
  290. package/plugins/nikic/php-parser/lib/PhpParser/ParserFactory.php +42 -0
  291. package/plugins/nikic/php-parser/lib/PhpParser/PhpVersion.php +164 -0
  292. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +1177 -0
  293. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter.php +51 -0
  294. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +1655 -0
  295. package/plugins/nikic/php-parser/lib/PhpParser/Token.php +18 -0
  296. package/plugins/nikic/php-parser/lib/PhpParser/compatibility_tokens.php +56 -0
  297. package/plugins/nikic/php-parser/phpstan-baseline.neon +236 -0
  298. package/plugins/nikic/php-parser/phpstan.neon.dist +8 -0
  299. package/utils.mjs +10 -0
  300. package/plugins/lib/io.appthreat.atom-1.8.0-classpath.jar +0 -0
@@ -0,0 +1,151 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Builder;
4
+
5
+ use PhpParser;
6
+ use PhpParser\BuilderHelpers;
7
+ use PhpParser\Modifiers;
8
+ use PhpParser\Node;
9
+ use PhpParser\Node\Name;
10
+ use PhpParser\Node\Stmt;
11
+
12
+ class Class_ extends Declaration {
13
+ protected string $name;
14
+ protected ?Name $extends = null;
15
+ /** @var list<Name> */
16
+ protected array $implements = [];
17
+ protected int $flags = 0;
18
+ /** @var list<Stmt\TraitUse> */
19
+ protected array $uses = [];
20
+ /** @var list<Stmt\ClassConst> */
21
+ protected array $constants = [];
22
+ /** @var list<Stmt\Property> */
23
+ protected array $properties = [];
24
+ /** @var list<Stmt\ClassMethod> */
25
+ protected array $methods = [];
26
+ /** @var list<Node\AttributeGroup> */
27
+ protected array $attributeGroups = [];
28
+
29
+ /**
30
+ * Creates a class builder.
31
+ *
32
+ * @param string $name Name of the class
33
+ */
34
+ public function __construct(string $name) {
35
+ $this->name = $name;
36
+ }
37
+
38
+ /**
39
+ * Extends a class.
40
+ *
41
+ * @param Name|string $class Name of class to extend
42
+ *
43
+ * @return $this The builder instance (for fluid interface)
44
+ */
45
+ public function extend($class) {
46
+ $this->extends = BuilderHelpers::normalizeName($class);
47
+
48
+ return $this;
49
+ }
50
+
51
+ /**
52
+ * Implements one or more interfaces.
53
+ *
54
+ * @param Name|string ...$interfaces Names of interfaces to implement
55
+ *
56
+ * @return $this The builder instance (for fluid interface)
57
+ */
58
+ public function implement(...$interfaces) {
59
+ foreach ($interfaces as $interface) {
60
+ $this->implements[] = BuilderHelpers::normalizeName($interface);
61
+ }
62
+
63
+ return $this;
64
+ }
65
+
66
+ /**
67
+ * Makes the class abstract.
68
+ *
69
+ * @return $this The builder instance (for fluid interface)
70
+ */
71
+ public function makeAbstract() {
72
+ $this->flags = BuilderHelpers::addClassModifier($this->flags, Modifiers::ABSTRACT);
73
+
74
+ return $this;
75
+ }
76
+
77
+ /**
78
+ * Makes the class final.
79
+ *
80
+ * @return $this The builder instance (for fluid interface)
81
+ */
82
+ public function makeFinal() {
83
+ $this->flags = BuilderHelpers::addClassModifier($this->flags, Modifiers::FINAL);
84
+
85
+ return $this;
86
+ }
87
+
88
+ /**
89
+ * Makes the class readonly.
90
+ *
91
+ * @return $this The builder instance (for fluid interface)
92
+ */
93
+ public function makeReadonly() {
94
+ $this->flags = BuilderHelpers::addClassModifier($this->flags, Modifiers::READONLY);
95
+
96
+ return $this;
97
+ }
98
+
99
+ /**
100
+ * Adds a statement.
101
+ *
102
+ * @param Stmt|PhpParser\Builder $stmt The statement to add
103
+ *
104
+ * @return $this The builder instance (for fluid interface)
105
+ */
106
+ public function addStmt($stmt) {
107
+ $stmt = BuilderHelpers::normalizeNode($stmt);
108
+
109
+ if ($stmt instanceof Stmt\Property) {
110
+ $this->properties[] = $stmt;
111
+ } elseif ($stmt instanceof Stmt\ClassMethod) {
112
+ $this->methods[] = $stmt;
113
+ } elseif ($stmt instanceof Stmt\TraitUse) {
114
+ $this->uses[] = $stmt;
115
+ } elseif ($stmt instanceof Stmt\ClassConst) {
116
+ $this->constants[] = $stmt;
117
+ } else {
118
+ throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType()));
119
+ }
120
+
121
+ return $this;
122
+ }
123
+
124
+ /**
125
+ * Adds an attribute group.
126
+ *
127
+ * @param Node\Attribute|Node\AttributeGroup $attribute
128
+ *
129
+ * @return $this The builder instance (for fluid interface)
130
+ */
131
+ public function addAttribute($attribute) {
132
+ $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
133
+
134
+ return $this;
135
+ }
136
+
137
+ /**
138
+ * Returns the built class node.
139
+ *
140
+ * @return Stmt\Class_ The built class node
141
+ */
142
+ public function getNode(): PhpParser\Node {
143
+ return new Stmt\Class_($this->name, [
144
+ 'flags' => $this->flags,
145
+ 'extends' => $this->extends,
146
+ 'implements' => $this->implements,
147
+ 'stmts' => array_merge($this->uses, $this->constants, $this->properties, $this->methods),
148
+ 'attrGroups' => $this->attributeGroups,
149
+ ], $this->attributes);
150
+ }
151
+ }
@@ -0,0 +1,50 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Builder;
4
+
5
+ use PhpParser;
6
+ use PhpParser\BuilderHelpers;
7
+
8
+ abstract class Declaration implements PhpParser\Builder {
9
+ /** @var array<string, mixed> */
10
+ protected array $attributes = [];
11
+
12
+ /**
13
+ * Adds a statement.
14
+ *
15
+ * @param PhpParser\Node\Stmt|PhpParser\Builder $stmt The statement to add
16
+ *
17
+ * @return $this The builder instance (for fluid interface)
18
+ */
19
+ abstract public function addStmt($stmt);
20
+
21
+ /**
22
+ * Adds multiple statements.
23
+ *
24
+ * @param (PhpParser\Node\Stmt|PhpParser\Builder)[] $stmts The statements to add
25
+ *
26
+ * @return $this The builder instance (for fluid interface)
27
+ */
28
+ public function addStmts(array $stmts) {
29
+ foreach ($stmts as $stmt) {
30
+ $this->addStmt($stmt);
31
+ }
32
+
33
+ return $this;
34
+ }
35
+
36
+ /**
37
+ * Sets doc comment for the declaration.
38
+ *
39
+ * @param PhpParser\Comment\Doc|string $docComment Doc comment to set
40
+ *
41
+ * @return $this The builder instance (for fluid interface)
42
+ */
43
+ public function setDocComment($docComment) {
44
+ $this->attributes['comments'] = [
45
+ BuilderHelpers::normalizeDocComment($docComment)
46
+ ];
47
+
48
+ return $this;
49
+ }
50
+ }
@@ -0,0 +1,87 @@
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace PhpParser\Builder;
6
+
7
+ use PhpParser;
8
+ use PhpParser\BuilderHelpers;
9
+ use PhpParser\Node;
10
+ use PhpParser\Node\Identifier;
11
+ use PhpParser\Node\Stmt;
12
+
13
+ class EnumCase implements PhpParser\Builder {
14
+ /** @var Identifier|string */
15
+ protected $name;
16
+ /** @var ?Node\Expr */
17
+ protected ?Node\Expr $value = null;
18
+ /** @var array<string, mixed> */
19
+ protected array $attributes = [];
20
+
21
+ /** @var list<Node\AttributeGroup> */
22
+ protected array $attributeGroups = [];
23
+
24
+ /**
25
+ * Creates an enum case builder.
26
+ *
27
+ * @param string|Identifier $name Name
28
+ */
29
+ public function __construct($name) {
30
+ $this->name = $name;
31
+ }
32
+
33
+ /**
34
+ * Sets the value.
35
+ *
36
+ * @param Node\Expr|string|int $value
37
+ *
38
+ * @return $this
39
+ */
40
+ public function setValue($value) {
41
+ $this->value = BuilderHelpers::normalizeValue($value);
42
+
43
+ return $this;
44
+ }
45
+
46
+ /**
47
+ * Sets doc comment for the constant.
48
+ *
49
+ * @param PhpParser\Comment\Doc|string $docComment Doc comment to set
50
+ *
51
+ * @return $this The builder instance (for fluid interface)
52
+ */
53
+ public function setDocComment($docComment) {
54
+ $this->attributes = [
55
+ 'comments' => [BuilderHelpers::normalizeDocComment($docComment)]
56
+ ];
57
+
58
+ return $this;
59
+ }
60
+
61
+ /**
62
+ * Adds an attribute group.
63
+ *
64
+ * @param Node\Attribute|Node\AttributeGroup $attribute
65
+ *
66
+ * @return $this The builder instance (for fluid interface)
67
+ */
68
+ public function addAttribute($attribute) {
69
+ $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
70
+
71
+ return $this;
72
+ }
73
+
74
+ /**
75
+ * Returns the built enum case node.
76
+ *
77
+ * @return Stmt\EnumCase The built constant node
78
+ */
79
+ public function getNode(): PhpParser\Node {
80
+ return new Stmt\EnumCase(
81
+ $this->name,
82
+ $this->value,
83
+ $this->attributeGroups,
84
+ $this->attributes
85
+ );
86
+ }
87
+ }
@@ -0,0 +1,116 @@
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\Identifier;
9
+ use PhpParser\Node\Name;
10
+ use PhpParser\Node\Stmt;
11
+
12
+ class Enum_ extends Declaration {
13
+ protected string $name;
14
+ protected ?Identifier $scalarType = null;
15
+ /** @var list<Name> */
16
+ protected array $implements = [];
17
+ /** @var list<Stmt\TraitUse> */
18
+ protected array $uses = [];
19
+ /** @var list<Stmt\EnumCase> */
20
+ protected array $enumCases = [];
21
+ /** @var list<Stmt\ClassConst> */
22
+ protected array $constants = [];
23
+ /** @var list<Stmt\ClassMethod> */
24
+ protected array $methods = [];
25
+ /** @var list<Node\AttributeGroup> */
26
+ protected array $attributeGroups = [];
27
+
28
+ /**
29
+ * Creates an enum builder.
30
+ *
31
+ * @param string $name Name of the enum
32
+ */
33
+ public function __construct(string $name) {
34
+ $this->name = $name;
35
+ }
36
+
37
+ /**
38
+ * Sets the scalar type.
39
+ *
40
+ * @param string|Identifier $scalarType
41
+ *
42
+ * @return $this
43
+ */
44
+ public function setScalarType($scalarType) {
45
+ $this->scalarType = BuilderHelpers::normalizeType($scalarType);
46
+
47
+ return $this;
48
+ }
49
+
50
+ /**
51
+ * Implements one or more interfaces.
52
+ *
53
+ * @param Name|string ...$interfaces Names of interfaces to implement
54
+ *
55
+ * @return $this The builder instance (for fluid interface)
56
+ */
57
+ public function implement(...$interfaces) {
58
+ foreach ($interfaces as $interface) {
59
+ $this->implements[] = BuilderHelpers::normalizeName($interface);
60
+ }
61
+
62
+ return $this;
63
+ }
64
+
65
+ /**
66
+ * Adds a statement.
67
+ *
68
+ * @param Stmt|PhpParser\Builder $stmt The statement to add
69
+ *
70
+ * @return $this The builder instance (for fluid interface)
71
+ */
72
+ public function addStmt($stmt) {
73
+ $stmt = BuilderHelpers::normalizeNode($stmt);
74
+
75
+ if ($stmt instanceof Stmt\EnumCase) {
76
+ $this->enumCases[] = $stmt;
77
+ } elseif ($stmt instanceof Stmt\ClassMethod) {
78
+ $this->methods[] = $stmt;
79
+ } elseif ($stmt instanceof Stmt\TraitUse) {
80
+ $this->uses[] = $stmt;
81
+ } elseif ($stmt instanceof Stmt\ClassConst) {
82
+ $this->constants[] = $stmt;
83
+ } else {
84
+ throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType()));
85
+ }
86
+
87
+ return $this;
88
+ }
89
+
90
+ /**
91
+ * Adds an attribute group.
92
+ *
93
+ * @param Node\Attribute|Node\AttributeGroup $attribute
94
+ *
95
+ * @return $this The builder instance (for fluid interface)
96
+ */
97
+ public function addAttribute($attribute) {
98
+ $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
99
+
100
+ return $this;
101
+ }
102
+
103
+ /**
104
+ * Returns the built class node.
105
+ *
106
+ * @return Stmt\Enum_ The built enum node
107
+ */
108
+ public function getNode(): PhpParser\Node {
109
+ return new Stmt\Enum_($this->name, [
110
+ 'scalarType' => $this->scalarType,
111
+ 'implements' => $this->implements,
112
+ 'stmts' => array_merge($this->uses, $this->enumCases, $this->constants, $this->methods),
113
+ 'attrGroups' => $this->attributeGroups,
114
+ ], $this->attributes);
115
+ }
116
+ }
@@ -0,0 +1,73 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Builder;
4
+
5
+ use PhpParser\BuilderHelpers;
6
+ use PhpParser\Node;
7
+
8
+ abstract class FunctionLike extends Declaration {
9
+ protected bool $returnByRef = false;
10
+ /** @var Node\Param[] */
11
+ protected array $params = [];
12
+
13
+ /** @var Node\Identifier|Node\Name|Node\ComplexType|null */
14
+ protected ?Node $returnType = null;
15
+
16
+ /**
17
+ * Make the function return by reference.
18
+ *
19
+ * @return $this The builder instance (for fluid interface)
20
+ */
21
+ public function makeReturnByRef() {
22
+ $this->returnByRef = true;
23
+
24
+ return $this;
25
+ }
26
+
27
+ /**
28
+ * Adds a parameter.
29
+ *
30
+ * @param Node\Param|Param $param The parameter to add
31
+ *
32
+ * @return $this The builder instance (for fluid interface)
33
+ */
34
+ public function addParam($param) {
35
+ $param = BuilderHelpers::normalizeNode($param);
36
+
37
+ if (!$param instanceof Node\Param) {
38
+ throw new \LogicException(sprintf('Expected parameter node, got "%s"', $param->getType()));
39
+ }
40
+
41
+ $this->params[] = $param;
42
+
43
+ return $this;
44
+ }
45
+
46
+ /**
47
+ * Adds multiple parameters.
48
+ *
49
+ * @param (Node\Param|Param)[] $params The parameters to add
50
+ *
51
+ * @return $this The builder instance (for fluid interface)
52
+ */
53
+ public function addParams(array $params) {
54
+ foreach ($params as $param) {
55
+ $this->addParam($param);
56
+ }
57
+
58
+ return $this;
59
+ }
60
+
61
+ /**
62
+ * Sets the return type for PHP 7.
63
+ *
64
+ * @param string|Node\Name|Node\Identifier|Node\ComplexType $type
65
+ *
66
+ * @return $this The builder instance (for fluid interface)
67
+ */
68
+ public function setReturnType($type) {
69
+ $this->returnType = BuilderHelpers::normalizeType($type);
70
+
71
+ return $this;
72
+ }
73
+ }
@@ -0,0 +1,67 @@
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 Function_ extends FunctionLike {
11
+ protected string $name;
12
+ /** @var list<Stmt> */
13
+ protected array $stmts = [];
14
+
15
+ /** @var list<Node\AttributeGroup> */
16
+ protected array $attributeGroups = [];
17
+
18
+ /**
19
+ * Creates a function builder.
20
+ *
21
+ * @param string $name Name of the function
22
+ */
23
+ public function __construct(string $name) {
24
+ $this->name = $name;
25
+ }
26
+
27
+ /**
28
+ * Adds a statement.
29
+ *
30
+ * @param Node|PhpParser\Builder $stmt The statement to add
31
+ *
32
+ * @return $this The builder instance (for fluid interface)
33
+ */
34
+ public function addStmt($stmt) {
35
+ $this->stmts[] = BuilderHelpers::normalizeStmt($stmt);
36
+
37
+ return $this;
38
+ }
39
+
40
+ /**
41
+ * Adds an attribute group.
42
+ *
43
+ * @param Node\Attribute|Node\AttributeGroup $attribute
44
+ *
45
+ * @return $this The builder instance (for fluid interface)
46
+ */
47
+ public function addAttribute($attribute) {
48
+ $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
49
+
50
+ return $this;
51
+ }
52
+
53
+ /**
54
+ * Returns the built function node.
55
+ *
56
+ * @return Stmt\Function_ The built function node
57
+ */
58
+ public function getNode(): Node {
59
+ return new Stmt\Function_($this->name, [
60
+ 'byRef' => $this->returnByRef,
61
+ 'params' => $this->params,
62
+ 'returnType' => $this->returnType,
63
+ 'stmts' => $this->stmts,
64
+ 'attrGroups' => $this->attributeGroups,
65
+ ], $this->attributes);
66
+ }
67
+ }
@@ -0,0 +1,94 @@
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\Name;
9
+ use PhpParser\Node\Stmt;
10
+
11
+ class Interface_ extends Declaration {
12
+ protected string $name;
13
+ /** @var list<Name> */
14
+ protected array $extends = [];
15
+ /** @var list<Stmt\ClassConst> */
16
+ protected array $constants = [];
17
+ /** @var list<Stmt\ClassMethod> */
18
+ protected array $methods = [];
19
+ /** @var list<Node\AttributeGroup> */
20
+ protected array $attributeGroups = [];
21
+
22
+ /**
23
+ * Creates an interface builder.
24
+ *
25
+ * @param string $name Name of the interface
26
+ */
27
+ public function __construct(string $name) {
28
+ $this->name = $name;
29
+ }
30
+
31
+ /**
32
+ * Extends one or more interfaces.
33
+ *
34
+ * @param Name|string ...$interfaces Names of interfaces to extend
35
+ *
36
+ * @return $this The builder instance (for fluid interface)
37
+ */
38
+ public function extend(...$interfaces) {
39
+ foreach ($interfaces as $interface) {
40
+ $this->extends[] = BuilderHelpers::normalizeName($interface);
41
+ }
42
+
43
+ return $this;
44
+ }
45
+
46
+ /**
47
+ * Adds a statement.
48
+ *
49
+ * @param Stmt|PhpParser\Builder $stmt The statement to add
50
+ *
51
+ * @return $this The builder instance (for fluid interface)
52
+ */
53
+ public function addStmt($stmt) {
54
+ $stmt = BuilderHelpers::normalizeNode($stmt);
55
+
56
+ if ($stmt instanceof Stmt\ClassConst) {
57
+ $this->constants[] = $stmt;
58
+ } elseif ($stmt instanceof Stmt\ClassMethod) {
59
+ // we erase all statements in the body of an interface method
60
+ $stmt->stmts = null;
61
+ $this->methods[] = $stmt;
62
+ } else {
63
+ throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType()));
64
+ }
65
+
66
+ return $this;
67
+ }
68
+
69
+ /**
70
+ * Adds an attribute group.
71
+ *
72
+ * @param Node\Attribute|Node\AttributeGroup $attribute
73
+ *
74
+ * @return $this The builder instance (for fluid interface)
75
+ */
76
+ public function addAttribute($attribute) {
77
+ $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
78
+
79
+ return $this;
80
+ }
81
+
82
+ /**
83
+ * Returns the built interface node.
84
+ *
85
+ * @return Stmt\Interface_ The built interface node
86
+ */
87
+ public function getNode(): PhpParser\Node {
88
+ return new Stmt\Interface_($this->name, [
89
+ 'extends' => $this->extends,
90
+ 'stmts' => array_merge($this->constants, $this->methods),
91
+ 'attrGroups' => $this->attributeGroups,
92
+ ], $this->attributes);
93
+ }
94
+ }