@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,333 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser;
4
+
5
+ use PhpParser\Node\ComplexType;
6
+ use PhpParser\Node\Expr;
7
+ use PhpParser\Node\Identifier;
8
+ use PhpParser\Node\Name;
9
+ use PhpParser\Node\NullableType;
10
+ use PhpParser\Node\Scalar;
11
+ use PhpParser\Node\Stmt;
12
+
13
+ /**
14
+ * This class defines helpers used in the implementation of builders. Don't use it directly.
15
+ *
16
+ * @internal
17
+ */
18
+ final class BuilderHelpers {
19
+ /**
20
+ * Normalizes a node: Converts builder objects to nodes.
21
+ *
22
+ * @param Node|Builder $node The node to normalize
23
+ *
24
+ * @return Node The normalized node
25
+ */
26
+ public static function normalizeNode($node): Node {
27
+ if ($node instanceof Builder) {
28
+ return $node->getNode();
29
+ }
30
+
31
+ if ($node instanceof Node) {
32
+ return $node;
33
+ }
34
+
35
+ throw new \LogicException('Expected node or builder object');
36
+ }
37
+
38
+ /**
39
+ * Normalizes a node to a statement.
40
+ *
41
+ * Expressions are wrapped in a Stmt\Expression node.
42
+ *
43
+ * @param Node|Builder $node The node to normalize
44
+ *
45
+ * @return Stmt The normalized statement node
46
+ */
47
+ public static function normalizeStmt($node): Stmt {
48
+ $node = self::normalizeNode($node);
49
+ if ($node instanceof Stmt) {
50
+ return $node;
51
+ }
52
+
53
+ if ($node instanceof Expr) {
54
+ return new Stmt\Expression($node);
55
+ }
56
+
57
+ throw new \LogicException('Expected statement or expression node');
58
+ }
59
+
60
+ /**
61
+ * Normalizes strings to Identifier.
62
+ *
63
+ * @param string|Identifier $name The identifier to normalize
64
+ *
65
+ * @return Identifier The normalized identifier
66
+ */
67
+ public static function normalizeIdentifier($name): Identifier {
68
+ if ($name instanceof Identifier) {
69
+ return $name;
70
+ }
71
+
72
+ if (\is_string($name)) {
73
+ return new Identifier($name);
74
+ }
75
+
76
+ throw new \LogicException('Expected string or instance of Node\Identifier');
77
+ }
78
+
79
+ /**
80
+ * Normalizes strings to Identifier, also allowing expressions.
81
+ *
82
+ * @param string|Identifier|Expr $name The identifier to normalize
83
+ *
84
+ * @return Identifier|Expr The normalized identifier or expression
85
+ */
86
+ public static function normalizeIdentifierOrExpr($name) {
87
+ if ($name instanceof Identifier || $name instanceof Expr) {
88
+ return $name;
89
+ }
90
+
91
+ if (\is_string($name)) {
92
+ return new Identifier($name);
93
+ }
94
+
95
+ throw new \LogicException('Expected string or instance of Node\Identifier or Node\Expr');
96
+ }
97
+
98
+ /**
99
+ * Normalizes a name: Converts string names to Name nodes.
100
+ *
101
+ * @param Name|string $name The name to normalize
102
+ *
103
+ * @return Name The normalized name
104
+ */
105
+ public static function normalizeName($name): Name {
106
+ if ($name instanceof Name) {
107
+ return $name;
108
+ }
109
+
110
+ if (is_string($name)) {
111
+ if (!$name) {
112
+ throw new \LogicException('Name cannot be empty');
113
+ }
114
+
115
+ if ($name[0] === '\\') {
116
+ return new Name\FullyQualified(substr($name, 1));
117
+ }
118
+
119
+ if (0 === strpos($name, 'namespace\\')) {
120
+ return new Name\Relative(substr($name, strlen('namespace\\')));
121
+ }
122
+
123
+ return new Name($name);
124
+ }
125
+
126
+ throw new \LogicException('Name must be a string or an instance of Node\Name');
127
+ }
128
+
129
+ /**
130
+ * Normalizes a name: Converts string names to Name nodes, while also allowing expressions.
131
+ *
132
+ * @param Expr|Name|string $name The name to normalize
133
+ *
134
+ * @return Name|Expr The normalized name or expression
135
+ */
136
+ public static function normalizeNameOrExpr($name) {
137
+ if ($name instanceof Expr) {
138
+ return $name;
139
+ }
140
+
141
+ if (!is_string($name) && !($name instanceof Name)) {
142
+ throw new \LogicException(
143
+ 'Name must be a string or an instance of Node\Name or Node\Expr'
144
+ );
145
+ }
146
+
147
+ return self::normalizeName($name);
148
+ }
149
+
150
+ /**
151
+ * Normalizes a type: Converts plain-text type names into proper AST representation.
152
+ *
153
+ * In particular, builtin types become Identifiers, custom types become Names and nullables
154
+ * are wrapped in NullableType nodes.
155
+ *
156
+ * @param string|Name|Identifier|ComplexType $type The type to normalize
157
+ *
158
+ * @return Name|Identifier|ComplexType The normalized type
159
+ */
160
+ public static function normalizeType($type) {
161
+ if (!is_string($type)) {
162
+ if (
163
+ !$type instanceof Name && !$type instanceof Identifier &&
164
+ !$type instanceof ComplexType
165
+ ) {
166
+ throw new \LogicException(
167
+ 'Type must be a string, or an instance of Name, Identifier or ComplexType'
168
+ );
169
+ }
170
+ return $type;
171
+ }
172
+
173
+ $nullable = false;
174
+ if (strlen($type) > 0 && $type[0] === '?') {
175
+ $nullable = true;
176
+ $type = substr($type, 1);
177
+ }
178
+
179
+ $builtinTypes = [
180
+ 'array',
181
+ 'callable',
182
+ 'bool',
183
+ 'int',
184
+ 'float',
185
+ 'string',
186
+ 'iterable',
187
+ 'void',
188
+ 'object',
189
+ 'null',
190
+ 'false',
191
+ 'mixed',
192
+ 'never',
193
+ 'true',
194
+ ];
195
+
196
+ $lowerType = strtolower($type);
197
+ if (in_array($lowerType, $builtinTypes)) {
198
+ $type = new Identifier($lowerType);
199
+ } else {
200
+ $type = self::normalizeName($type);
201
+ }
202
+
203
+ $notNullableTypes = [
204
+ 'void', 'mixed', 'never',
205
+ ];
206
+ if ($nullable && in_array((string) $type, $notNullableTypes)) {
207
+ throw new \LogicException(sprintf('%s type cannot be nullable', $type));
208
+ }
209
+
210
+ return $nullable ? new NullableType($type) : $type;
211
+ }
212
+
213
+ /**
214
+ * Normalizes a value: Converts nulls, booleans, integers,
215
+ * floats, strings and arrays into their respective nodes
216
+ *
217
+ * @param Node\Expr|bool|null|int|float|string|array $value The value to normalize
218
+ *
219
+ * @return Expr The normalized value
220
+ */
221
+ public static function normalizeValue($value): Expr {
222
+ if ($value instanceof Node\Expr) {
223
+ return $value;
224
+ }
225
+
226
+ if (is_null($value)) {
227
+ return new Expr\ConstFetch(
228
+ new Name('null')
229
+ );
230
+ }
231
+
232
+ if (is_bool($value)) {
233
+ return new Expr\ConstFetch(
234
+ new Name($value ? 'true' : 'false')
235
+ );
236
+ }
237
+
238
+ if (is_int($value)) {
239
+ return new Scalar\Int_($value);
240
+ }
241
+
242
+ if (is_float($value)) {
243
+ return new Scalar\Float_($value);
244
+ }
245
+
246
+ if (is_string($value)) {
247
+ return new Scalar\String_($value);
248
+ }
249
+
250
+ if (is_array($value)) {
251
+ $items = [];
252
+ $lastKey = -1;
253
+ foreach ($value as $itemKey => $itemValue) {
254
+ // for consecutive, numeric keys don't generate keys
255
+ if (null !== $lastKey && ++$lastKey === $itemKey) {
256
+ $items[] = new Node\ArrayItem(
257
+ self::normalizeValue($itemValue)
258
+ );
259
+ } else {
260
+ $lastKey = null;
261
+ $items[] = new Node\ArrayItem(
262
+ self::normalizeValue($itemValue),
263
+ self::normalizeValue($itemKey)
264
+ );
265
+ }
266
+ }
267
+
268
+ return new Expr\Array_($items);
269
+ }
270
+
271
+ throw new \LogicException('Invalid value');
272
+ }
273
+
274
+ /**
275
+ * Normalizes a doc comment: Converts plain strings to PhpParser\Comment\Doc.
276
+ *
277
+ * @param Comment\Doc|string $docComment The doc comment to normalize
278
+ *
279
+ * @return Comment\Doc The normalized doc comment
280
+ */
281
+ public static function normalizeDocComment($docComment): Comment\Doc {
282
+ if ($docComment instanceof Comment\Doc) {
283
+ return $docComment;
284
+ }
285
+
286
+ if (is_string($docComment)) {
287
+ return new Comment\Doc($docComment);
288
+ }
289
+
290
+ throw new \LogicException('Doc comment must be a string or an instance of PhpParser\Comment\Doc');
291
+ }
292
+
293
+ /**
294
+ * Normalizes a attribute: Converts attribute to the Attribute Group if needed.
295
+ *
296
+ * @param Node\Attribute|Node\AttributeGroup $attribute
297
+ *
298
+ * @return Node\AttributeGroup The Attribute Group
299
+ */
300
+ public static function normalizeAttribute($attribute): Node\AttributeGroup {
301
+ if ($attribute instanceof Node\AttributeGroup) {
302
+ return $attribute;
303
+ }
304
+
305
+ if (!($attribute instanceof Node\Attribute)) {
306
+ throw new \LogicException('Attribute must be an instance of PhpParser\Node\Attribute or PhpParser\Node\AttributeGroup');
307
+ }
308
+
309
+ return new Node\AttributeGroup([$attribute]);
310
+ }
311
+
312
+ /**
313
+ * Adds a modifier and returns new modifier bitmask.
314
+ *
315
+ * @param int $modifiers Existing modifiers
316
+ * @param int $modifier Modifier to set
317
+ *
318
+ * @return int New modifiers
319
+ */
320
+ public static function addModifier(int $modifiers, int $modifier): int {
321
+ Modifiers::verifyModifier($modifiers, $modifier);
322
+ return $modifiers | $modifier;
323
+ }
324
+
325
+ /**
326
+ * Adds a modifier and returns new modifier bitmask.
327
+ * @return int New modifiers
328
+ */
329
+ public static function addClassModifier(int $existingModifiers, int $modifierToSet): int {
330
+ Modifiers::verifyClassModifier($existingModifiers, $modifierToSet);
331
+ return $existingModifiers | $modifierToSet;
332
+ }
333
+ }
@@ -0,0 +1,6 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Comment;
4
+
5
+ class Doc extends \PhpParser\Comment {
6
+ }
@@ -0,0 +1,207 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser;
4
+
5
+ class Comment implements \JsonSerializable {
6
+ protected string $text;
7
+ protected int $startLine;
8
+ protected int $startFilePos;
9
+ protected int $startTokenPos;
10
+ protected int $endLine;
11
+ protected int $endFilePos;
12
+ protected int $endTokenPos;
13
+
14
+ /**
15
+ * Constructs a comment node.
16
+ *
17
+ * @param string $text Comment text (including comment delimiters like /*)
18
+ * @param int $startLine Line number the comment started on
19
+ * @param int $startFilePos File offset the comment started on
20
+ * @param int $startTokenPos Token offset the comment started on
21
+ */
22
+ public function __construct(
23
+ string $text,
24
+ int $startLine = -1, int $startFilePos = -1, int $startTokenPos = -1,
25
+ int $endLine = -1, int $endFilePos = -1, int $endTokenPos = -1
26
+ ) {
27
+ $this->text = $text;
28
+ $this->startLine = $startLine;
29
+ $this->startFilePos = $startFilePos;
30
+ $this->startTokenPos = $startTokenPos;
31
+ $this->endLine = $endLine;
32
+ $this->endFilePos = $endFilePos;
33
+ $this->endTokenPos = $endTokenPos;
34
+ }
35
+
36
+ /**
37
+ * Gets the comment text.
38
+ *
39
+ * @return string The comment text (including comment delimiters like /*)
40
+ */
41
+ public function getText(): string {
42
+ return $this->text;
43
+ }
44
+
45
+ /**
46
+ * Gets the line number the comment started on.
47
+ *
48
+ * @return int Line number (or -1 if not available)
49
+ */
50
+ public function getStartLine(): int {
51
+ return $this->startLine;
52
+ }
53
+
54
+ /**
55
+ * Gets the file offset the comment started on.
56
+ *
57
+ * @return int File offset (or -1 if not available)
58
+ */
59
+ public function getStartFilePos(): int {
60
+ return $this->startFilePos;
61
+ }
62
+
63
+ /**
64
+ * Gets the token offset the comment started on.
65
+ *
66
+ * @return int Token offset (or -1 if not available)
67
+ */
68
+ public function getStartTokenPos(): int {
69
+ return $this->startTokenPos;
70
+ }
71
+
72
+ /**
73
+ * Gets the line number the comment ends on.
74
+ *
75
+ * @return int Line number (or -1 if not available)
76
+ */
77
+ public function getEndLine(): int {
78
+ return $this->endLine;
79
+ }
80
+
81
+ /**
82
+ * Gets the file offset the comment ends on.
83
+ *
84
+ * @return int File offset (or -1 if not available)
85
+ */
86
+ public function getEndFilePos(): int {
87
+ return $this->endFilePos;
88
+ }
89
+
90
+ /**
91
+ * Gets the token offset the comment ends on.
92
+ *
93
+ * @return int Token offset (or -1 if not available)
94
+ */
95
+ public function getEndTokenPos(): int {
96
+ return $this->endTokenPos;
97
+ }
98
+
99
+ /**
100
+ * Gets the comment text.
101
+ *
102
+ * @return string The comment text (including comment delimiters like /*)
103
+ */
104
+ public function __toString(): string {
105
+ return $this->text;
106
+ }
107
+
108
+ /**
109
+ * Gets the reformatted comment text.
110
+ *
111
+ * "Reformatted" here means that we try to clean up the whitespace at the
112
+ * starts of the lines. This is necessary because we receive the comments
113
+ * without leading whitespace on the first line, but with leading whitespace
114
+ * on all subsequent lines.
115
+ *
116
+ * Additionally, this normalizes CRLF newlines to LF newlines.
117
+ */
118
+ public function getReformattedText(): string {
119
+ $text = str_replace("\r\n", "\n", $this->text);
120
+ $newlinePos = strpos($text, "\n");
121
+ if (false === $newlinePos) {
122
+ // Single line comments don't need further processing
123
+ return $text;
124
+ }
125
+ if (preg_match('(^.*(?:\n\s+\*.*)+$)', $text)) {
126
+ // Multi line comment of the type
127
+ //
128
+ // /*
129
+ // * Some text.
130
+ // * Some more text.
131
+ // */
132
+ //
133
+ // is handled by replacing the whitespace sequences before the * by a single space
134
+ return preg_replace('(^\s+\*)m', ' *', $text);
135
+ }
136
+ if (preg_match('(^/\*\*?\s*\n)', $text) && preg_match('(\n(\s*)\*/$)', $text, $matches)) {
137
+ // Multi line comment of the type
138
+ //
139
+ // /*
140
+ // Some text.
141
+ // Some more text.
142
+ // */
143
+ //
144
+ // is handled by removing the whitespace sequence on the line before the closing
145
+ // */ on all lines. So if the last line is " */", then " " is removed at the
146
+ // start of all lines.
147
+ return preg_replace('(^' . preg_quote($matches[1]) . ')m', '', $text);
148
+ }
149
+ if (preg_match('(^/\*\*?\s*(?!\s))', $text, $matches)) {
150
+ // Multi line comment of the type
151
+ //
152
+ // /* Some text.
153
+ // Some more text.
154
+ // Indented text.
155
+ // Even more text. */
156
+ //
157
+ // is handled by removing the difference between the shortest whitespace prefix on all
158
+ // lines and the length of the "/* " opening sequence.
159
+ $prefixLen = $this->getShortestWhitespacePrefixLen(substr($text, $newlinePos + 1));
160
+ $removeLen = $prefixLen - strlen($matches[0]);
161
+ return preg_replace('(^\s{' . $removeLen . '})m', '', $text);
162
+ }
163
+
164
+ // No idea how to format this comment, so simply return as is
165
+ return $text;
166
+ }
167
+
168
+ /**
169
+ * Get length of shortest whitespace prefix (at the start of a line).
170
+ *
171
+ * If there is a line with no prefix whitespace, 0 is a valid return value.
172
+ *
173
+ * @param string $str String to check
174
+ * @return int Length in characters. Tabs count as single characters.
175
+ */
176
+ private function getShortestWhitespacePrefixLen(string $str): int {
177
+ $lines = explode("\n", $str);
178
+ $shortestPrefixLen = \PHP_INT_MAX;
179
+ foreach ($lines as $line) {
180
+ preg_match('(^\s*)', $line, $matches);
181
+ $prefixLen = strlen($matches[0]);
182
+ if ($prefixLen < $shortestPrefixLen) {
183
+ $shortestPrefixLen = $prefixLen;
184
+ }
185
+ }
186
+ return $shortestPrefixLen;
187
+ }
188
+
189
+ /**
190
+ * @return array{nodeType:string, text:mixed, line:mixed, filePos:mixed}
191
+ */
192
+ public function jsonSerialize(): array {
193
+ // Technically not a node, but we make it look like one anyway
194
+ $type = $this instanceof Comment\Doc ? 'Comment_Doc' : 'Comment';
195
+ return [
196
+ 'nodeType' => $type,
197
+ 'text' => $this->text,
198
+ // TODO: Rename these to include "start".
199
+ 'line' => $this->startLine,
200
+ 'filePos' => $this->startFilePos,
201
+ 'tokenPos' => $this->startTokenPos,
202
+ 'endLine' => $this->endLine,
203
+ 'endFilePos' => $this->endFilePos,
204
+ 'endTokenPos' => $this->endTokenPos,
205
+ ];
206
+ }
207
+ }
@@ -0,0 +1,6 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser;
4
+
5
+ class ConstExprEvaluationException extends \Exception {
6
+ }