@appthreat/atom 1.8.1 → 1.8.2

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 (298) hide show
  1. package/package.json +1 -1
  2. package/phpastgen.js +7 -1
  3. package/plugins/autoload.php +1 -1
  4. package/plugins/bin/atom +1 -1
  5. package/plugins/bin/atom.bat +1 -1
  6. package/plugins/composer/autoload_classmap.php +18 -18
  7. package/plugins/composer/autoload_real.php +4 -4
  8. package/plugins/composer/autoload_static.php +22 -22
  9. package/plugins/composer/installed.json +10 -12
  10. package/plugins/composer/installed.php +9 -9
  11. package/plugins/lib/io.appthreat.atom-1.8.2-classpath.jar +0 -0
  12. package/plugins/lib/{io.appthreat.atom-1.8.1.jar → io.appthreat.atom-1.8.2.jar} +0 -0
  13. package/plugins/lib/{io.appthreat.c2cpg_3-1.1.3.jar → io.appthreat.c2cpg_3-1.1.4.jar} +0 -0
  14. package/plugins/lib/{io.appthreat.dataflowengineoss_3-1.1.3.jar → io.appthreat.dataflowengineoss_3-1.1.4.jar} +0 -0
  15. package/plugins/lib/{io.appthreat.javasrc2cpg_3-1.1.3.jar → io.appthreat.javasrc2cpg_3-1.1.4.jar} +0 -0
  16. package/plugins/lib/{io.appthreat.jimple2cpg_3-1.1.3.jar → io.appthreat.jimple2cpg_3-1.1.4.jar} +0 -0
  17. package/plugins/lib/{io.appthreat.jssrc2cpg_3-1.1.3.jar → io.appthreat.jssrc2cpg_3-1.1.4.jar} +0 -0
  18. package/plugins/lib/{io.appthreat.php2atom_3-1.1.3.jar → io.appthreat.php2atom_3-1.1.4.jar} +0 -0
  19. package/plugins/lib/{io.appthreat.pysrc2cpg_3-1.1.3.jar → io.appthreat.pysrc2cpg_3-1.1.4.jar} +0 -0
  20. package/plugins/lib/{io.appthreat.semanticcpg_3-1.1.3.jar → io.appthreat.semanticcpg_3-1.1.4.jar} +0 -0
  21. package/plugins/lib/{io.appthreat.x2cpg_3-1.1.3.jar → io.appthreat.x2cpg_3-1.1.4.jar} +0 -0
  22. package/plugins/nikic/php-parser/README.md +12 -20
  23. package/plugins/nikic/php-parser/bin/php-parse +10 -11
  24. package/plugins/nikic/php-parser/composer.json +4 -6
  25. package/plugins/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +15 -17
  26. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Class_.php +30 -35
  27. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +4 -11
  28. package/plugins/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php +7 -9
  29. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Enum_.php +27 -26
  30. package/plugins/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +7 -7
  31. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Function_.php +7 -7
  32. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Interface_.php +10 -11
  33. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Method.php +15 -16
  34. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +5 -5
  35. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Param.php +35 -16
  36. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Property.php +19 -19
  37. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php +5 -6
  38. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php +28 -25
  39. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +11 -16
  40. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Use_.php +8 -8
  41. package/plugins/nikic/php-parser/lib/PhpParser/Builder.php +3 -2
  42. package/plugins/nikic/php-parser/lib/PhpParser/BuilderFactory.php +69 -45
  43. package/plugins/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +19 -17
  44. package/plugins/nikic/php-parser/lib/PhpParser/Comment/Doc.php +2 -1
  45. package/plugins/nikic/php-parser/lib/PhpParser/Comment.php +67 -35
  46. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php +3 -3
  47. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +10 -15
  48. package/plugins/nikic/php-parser/lib/PhpParser/Error.php +33 -24
  49. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php +9 -6
  50. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +3 -2
  51. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler.php +3 -2
  52. package/plugins/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php +7 -11
  53. package/plugins/nikic/php-parser/lib/PhpParser/Internal/Differ.php +22 -36
  54. package/plugins/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +13 -20
  55. package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +70 -55
  56. package/plugins/nikic/php-parser/lib/PhpParser/JsonDecoder.php +10 -15
  57. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +93 -68
  58. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php +18 -11
  59. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php +47 -0
  60. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php +15 -10
  61. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php +11 -12
  62. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php +76 -0
  63. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php +23 -0
  64. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +25 -19
  65. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php +10 -6
  66. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php +29 -22
  67. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php +105 -0
  68. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php +3 -3
  69. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php +15 -10
  70. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php +5 -6
  71. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php +5 -10
  72. package/plugins/nikic/php-parser/lib/PhpParser/Lexer.php +513 -69
  73. package/plugins/nikic/php-parser/lib/PhpParser/NameContext.php +24 -23
  74. package/plugins/nikic/php-parser/lib/PhpParser/Node/Arg.php +15 -13
  75. package/plugins/nikic/php-parser/lib/PhpParser/Node/Attribute.php +10 -9
  76. package/plugins/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php +7 -5
  77. package/plugins/nikic/php-parser/lib/PhpParser/Node/ComplexType.php +2 -1
  78. package/plugins/nikic/php-parser/lib/PhpParser/Node/Const_.php +10 -9
  79. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +11 -10
  80. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +39 -1
  81. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +11 -11
  82. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +28 -33
  83. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +10 -9
  84. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +3 -2
  85. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php +3 -2
  86. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php +3 -2
  87. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php +3 -2
  88. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php +3 -2
  89. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php +3 -2
  90. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php +3 -2
  91. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php +3 -2
  92. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php +3 -2
  93. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php +3 -2
  94. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php +3 -2
  95. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php +3 -2
  96. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php +3 -2
  97. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +8 -7
  98. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php +10 -9
  99. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +5 -4
  100. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php +5 -4
  101. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php +5 -4
  102. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php +5 -4
  103. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php +5 -4
  104. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php +5 -4
  105. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php +5 -4
  106. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php +5 -4
  107. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php +5 -4
  108. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php +5 -4
  109. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php +5 -4
  110. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php +5 -4
  111. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php +5 -4
  112. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php +5 -4
  113. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php +5 -4
  114. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php +5 -4
  115. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php +5 -4
  116. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php +5 -4
  117. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php +5 -4
  118. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php +5 -4
  119. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php +5 -4
  120. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php +5 -4
  121. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php +5 -4
  122. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php +5 -4
  123. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php +5 -4
  124. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php +5 -4
  125. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php +5 -4
  126. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +11 -8
  127. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +8 -7
  128. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +8 -7
  129. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +7 -3
  130. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +3 -2
  131. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php +3 -2
  132. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php +6 -5
  133. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php +3 -2
  134. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php +3 -2
  135. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php +3 -2
  136. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php +3 -2
  137. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +6 -5
  138. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +10 -10
  139. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +8 -7
  140. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +26 -33
  141. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +32 -1
  142. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +8 -7
  143. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +8 -7
  144. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +6 -5
  145. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +8 -7
  146. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +8 -7
  147. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +11 -10
  148. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +11 -10
  149. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +14 -13
  150. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +11 -11
  151. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +8 -7
  152. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +8 -12
  153. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php +7 -8
  154. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +12 -12
  155. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +11 -10
  156. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +12 -12
  157. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php +10 -10
  158. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +8 -7
  159. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +8 -7
  160. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +7 -6
  161. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +8 -7
  162. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +8 -7
  163. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +10 -10
  164. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +9 -9
  165. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +13 -12
  166. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +11 -11
  167. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +13 -12
  168. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php +7 -6
  169. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +8 -7
  170. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +8 -7
  171. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +7 -6
  172. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +8 -7
  173. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +11 -10
  174. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr.php +2 -1
  175. package/plugins/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +8 -5
  176. package/plugins/nikic/php-parser/lib/PhpParser/Node/Identifier.php +13 -13
  177. package/plugins/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php +9 -6
  178. package/plugins/nikic/php-parser/lib/PhpParser/Node/MatchArm.php +9 -8
  179. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +9 -8
  180. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php +9 -8
  181. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name.php +56 -71
  182. package/plugins/nikic/php-parser/lib/PhpParser/Node/NullableType.php +10 -11
  183. package/plugins/nikic/php-parser/lib/PhpParser/Node/Param.php +22 -46
  184. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +75 -1
  185. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +29 -1
  186. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +28 -1
  187. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +78 -1
  188. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php +5 -4
  189. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php +5 -4
  190. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php +5 -4
  191. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php +5 -4
  192. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php +5 -4
  193. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php +5 -4
  194. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php +5 -4
  195. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php +5 -4
  196. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +5 -4
  197. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +26 -30
  198. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar.php +2 -1
  199. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +9 -8
  200. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +11 -10
  201. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +12 -11
  202. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +32 -24
  203. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +13 -13
  204. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +54 -47
  205. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +89 -46
  206. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +8 -7
  207. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +9 -8
  208. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +32 -1
  209. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +12 -12
  210. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +10 -9
  211. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +8 -7
  212. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +10 -9
  213. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +8 -7
  214. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +12 -11
  215. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php +13 -17
  216. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +8 -7
  217. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +8 -7
  218. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +15 -19
  219. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +17 -20
  220. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +24 -28
  221. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +8 -7
  222. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +8 -7
  223. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +14 -16
  224. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +8 -7
  225. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +15 -18
  226. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +8 -7
  227. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +10 -13
  228. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +8 -7
  229. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +12 -11
  230. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +5 -4
  231. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +37 -28
  232. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +32 -1
  233. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +9 -8
  234. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +35 -1
  235. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +8 -8
  236. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +10 -9
  237. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php +30 -0
  238. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +9 -8
  239. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php +13 -12
  240. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +10 -9
  241. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +4 -3
  242. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +8 -10
  243. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +12 -11
  244. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +8 -7
  245. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +50 -1
  246. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +16 -16
  247. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +10 -9
  248. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt.php +2 -1
  249. package/plugins/nikic/php-parser/lib/PhpParser/Node/UnionType.php +8 -7
  250. package/plugins/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php +3 -2
  251. package/plugins/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php +2 -2
  252. package/plugins/nikic/php-parser/lib/PhpParser/Node.php +29 -24
  253. package/plugins/nikic/php-parser/lib/PhpParser/NodeAbstract.php +20 -20
  254. package/plugins/nikic/php-parser/lib/PhpParser/NodeDumper.php +84 -168
  255. package/plugins/nikic/php-parser/lib/PhpParser/NodeFinder.php +19 -28
  256. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverser.php +84 -71
  257. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +7 -4
  258. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php +2 -1
  259. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php +5 -4
  260. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php +7 -6
  261. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +28 -30
  262. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php +3 -2
  263. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php +11 -8
  264. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor.php +7 -59
  265. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +2 -1
  266. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Multiple.php +55 -0
  267. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php5.php +2682 -0
  268. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php7.php +1522 -1323
  269. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Tokens.php +148 -0
  270. package/plugins/nikic/php-parser/lib/PhpParser/Parser.php +3 -9
  271. package/plugins/nikic/php-parser/lib/PhpParser/ParserAbstract.php +252 -433
  272. package/plugins/nikic/php-parser/lib/PhpParser/ParserFactory.php +49 -15
  273. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +335 -386
  274. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +438 -517
  275. package/plugins/lib/io.appthreat.atom-1.8.1-classpath.jar +0 -0
  276. package/plugins/nikic/php-parser/.php-cs-fixer.dist.php +0 -31
  277. package/plugins/nikic/php-parser/Makefile +0 -10
  278. package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php +0 -237
  279. package/plugins/nikic/php-parser/lib/PhpParser/Modifiers.php +0 -69
  280. package/plugins/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php +0 -43
  281. package/plugins/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php +0 -36
  282. package/plugins/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php +0 -37
  283. package/plugins/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php +0 -32
  284. package/plugins/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php +0 -37
  285. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php +0 -78
  286. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php +0 -82
  287. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php +0 -34
  288. package/plugins/nikic/php-parser/lib/PhpParser/Node/StaticVar.php +0 -39
  289. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php +0 -29
  290. package/plugins/nikic/php-parser/lib/PhpParser/Node/UseItem.php +0 -55
  291. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php +0 -82
  292. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php8.php +0 -2717
  293. package/plugins/nikic/php-parser/lib/PhpParser/PhpVersion.php +0 -164
  294. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter.php +0 -51
  295. package/plugins/nikic/php-parser/lib/PhpParser/Token.php +0 -18
  296. package/plugins/nikic/php-parser/lib/PhpParser/compatibility_tokens.php +0 -56
  297. package/plugins/nikic/php-parser/phpstan-baseline.neon +0 -236
  298. package/plugins/nikic/php-parser/phpstan.neon.dist +0 -8
@@ -5,26 +5,27 @@ namespace PhpParser\Node;
5
5
  use PhpParser\Node;
6
6
  use PhpParser\NodeAbstract;
7
7
 
8
- class MatchArm extends NodeAbstract {
9
- /** @var null|list<Node\Expr> */
10
- public ?array $conds;
8
+ class MatchArm extends NodeAbstract
9
+ {
10
+ /** @var null|Node\Expr[] */
11
+ public $conds;
11
12
  /** @var Node\Expr */
12
- public Expr $body;
13
+ public $body;
13
14
 
14
15
  /**
15
- * @param null|list<Node\Expr> $conds
16
+ * @param null|Node\Expr[] $conds
16
17
  */
17
- public function __construct(?array $conds, Node\Expr $body, array $attributes = []) {
18
+ public function __construct($conds, Node\Expr $body, array $attributes = []) {
18
19
  $this->conds = $conds;
19
20
  $this->body = $body;
20
21
  $this->attributes = $attributes;
21
22
  }
22
23
 
23
- public function getSubNodeNames(): array {
24
+ public function getSubNodeNames() : array {
24
25
  return ['conds', 'body'];
25
26
  }
26
27
 
27
- public function getType(): string {
28
+ public function getType() : string {
28
29
  return 'MatchArm';
29
30
  }
30
31
  }
@@ -2,13 +2,14 @@
2
2
 
3
3
  namespace PhpParser\Node\Name;
4
4
 
5
- class FullyQualified extends \PhpParser\Node\Name {
5
+ class FullyQualified extends \PhpParser\Node\Name
6
+ {
6
7
  /**
7
8
  * Checks whether the name is unqualified. (E.g. Name)
8
9
  *
9
10
  * @return bool Whether the name is unqualified
10
11
  */
11
- public function isUnqualified(): bool {
12
+ public function isUnqualified() : bool {
12
13
  return false;
13
14
  }
14
15
 
@@ -17,7 +18,7 @@ class FullyQualified extends \PhpParser\Node\Name {
17
18
  *
18
19
  * @return bool Whether the name is qualified
19
20
  */
20
- public function isQualified(): bool {
21
+ public function isQualified() : bool {
21
22
  return false;
22
23
  }
23
24
 
@@ -26,7 +27,7 @@ class FullyQualified extends \PhpParser\Node\Name {
26
27
  *
27
28
  * @return bool Whether the name is fully qualified
28
29
  */
29
- public function isFullyQualified(): bool {
30
+ public function isFullyQualified() : bool {
30
31
  return true;
31
32
  }
32
33
 
@@ -35,15 +36,15 @@ class FullyQualified extends \PhpParser\Node\Name {
35
36
  *
36
37
  * @return bool Whether the name is relative
37
38
  */
38
- public function isRelative(): bool {
39
+ public function isRelative() : bool {
39
40
  return false;
40
41
  }
41
42
 
42
- public function toCodeString(): string {
43
+ public function toCodeString() : string {
43
44
  return '\\' . $this->toString();
44
45
  }
45
-
46
- public function getType(): string {
46
+
47
+ public function getType() : string {
47
48
  return 'Name_FullyQualified';
48
49
  }
49
50
  }
@@ -2,13 +2,14 @@
2
2
 
3
3
  namespace PhpParser\Node\Name;
4
4
 
5
- class Relative extends \PhpParser\Node\Name {
5
+ class Relative extends \PhpParser\Node\Name
6
+ {
6
7
  /**
7
8
  * Checks whether the name is unqualified. (E.g. Name)
8
9
  *
9
10
  * @return bool Whether the name is unqualified
10
11
  */
11
- public function isUnqualified(): bool {
12
+ public function isUnqualified() : bool {
12
13
  return false;
13
14
  }
14
15
 
@@ -17,7 +18,7 @@ class Relative extends \PhpParser\Node\Name {
17
18
  *
18
19
  * @return bool Whether the name is qualified
19
20
  */
20
- public function isQualified(): bool {
21
+ public function isQualified() : bool {
21
22
  return false;
22
23
  }
23
24
 
@@ -26,7 +27,7 @@ class Relative extends \PhpParser\Node\Name {
26
27
  *
27
28
  * @return bool Whether the name is fully qualified
28
29
  */
29
- public function isFullyQualified(): bool {
30
+ public function isFullyQualified() : bool {
30
31
  return false;
31
32
  }
32
33
 
@@ -35,15 +36,15 @@ class Relative extends \PhpParser\Node\Name {
35
36
  *
36
37
  * @return bool Whether the name is relative
37
38
  */
38
- public function isRelative(): bool {
39
+ public function isRelative() : bool {
39
40
  return true;
40
41
  }
41
42
 
42
- public function toCodeString(): string {
43
+ public function toCodeString() : string {
43
44
  return 'namespace\\' . $this->toString();
44
45
  }
45
-
46
- public function getType(): string {
46
+
47
+ public function getType() : string {
47
48
  return 'Name_Relative';
48
49
  }
49
50
  }
@@ -4,12 +4,15 @@ namespace PhpParser\Node;
4
4
 
5
5
  use PhpParser\NodeAbstract;
6
6
 
7
- class Name extends NodeAbstract {
8
- /** @var string Name as string */
9
- public string $name;
7
+ class Name extends NodeAbstract
8
+ {
9
+ /**
10
+ * @var string[] Parts of the name
11
+ * @deprecated Use getParts() instead
12
+ */
13
+ public $parts;
10
14
 
11
- /** @var array<string, bool> */
12
- private static array $specialClassNames = [
15
+ private static $specialClassNames = [
13
16
  'self' => true,
14
17
  'parent' => true,
15
18
  'static' => true,
@@ -18,16 +21,16 @@ class Name extends NodeAbstract {
18
21
  /**
19
22
  * Constructs a name node.
20
23
  *
21
- * @param string|string[]|self $name Name as string, part array or Name instance (copy ctor)
22
- * @param array<string, mixed> $attributes Additional attributes
24
+ * @param string|string[]|self $name Name as string, part array or Name instance (copy ctor)
25
+ * @param array $attributes Additional attributes
23
26
  */
24
- final public function __construct($name, array $attributes = []) {
27
+ public function __construct($name, array $attributes = []) {
25
28
  $this->attributes = $attributes;
26
- $this->name = self::prepareName($name);
29
+ $this->parts = self::prepareName($name);
27
30
  }
28
31
 
29
- public function getSubNodeNames(): array {
30
- return ['name'];
32
+ public function getSubNodeNames() : array {
33
+ return ['parts'];
31
34
  }
32
35
 
33
36
  /**
@@ -36,7 +39,7 @@ class Name extends NodeAbstract {
36
39
  * @return string[] Parts of name
37
40
  */
38
41
  public function getParts(): array {
39
- return \explode('\\', $this->name);
42
+ return $this->parts;
40
43
  }
41
44
 
42
45
  /**
@@ -44,11 +47,8 @@ class Name extends NodeAbstract {
44
47
  *
45
48
  * @return string First part of the name
46
49
  */
47
- public function getFirst(): string {
48
- if (false !== $pos = \strpos($this->name, '\\')) {
49
- return \substr($this->name, 0, $pos);
50
- }
51
- return $this->name;
50
+ public function getFirst() : string {
51
+ return $this->parts[0];
52
52
  }
53
53
 
54
54
  /**
@@ -56,11 +56,8 @@ class Name extends NodeAbstract {
56
56
  *
57
57
  * @return string Last part of the name
58
58
  */
59
- public function getLast(): string {
60
- if (false !== $pos = \strrpos($this->name, '\\')) {
61
- return \substr($this->name, $pos + 1);
62
- }
63
- return $this->name;
59
+ public function getLast() : string {
60
+ return $this->parts[count($this->parts) - 1];
64
61
  }
65
62
 
66
63
  /**
@@ -68,8 +65,8 @@ class Name extends NodeAbstract {
68
65
  *
69
66
  * @return bool Whether the name is unqualified
70
67
  */
71
- public function isUnqualified(): bool {
72
- return false === \strpos($this->name, '\\');
68
+ public function isUnqualified() : bool {
69
+ return 1 === count($this->parts);
73
70
  }
74
71
 
75
72
  /**
@@ -77,8 +74,8 @@ class Name extends NodeAbstract {
77
74
  *
78
75
  * @return bool Whether the name is qualified
79
76
  */
80
- public function isQualified(): bool {
81
- return false !== \strpos($this->name, '\\');
77
+ public function isQualified() : bool {
78
+ return 1 < count($this->parts);
82
79
  }
83
80
 
84
81
  /**
@@ -86,7 +83,7 @@ class Name extends NodeAbstract {
86
83
  *
87
84
  * @return bool Whether the name is fully qualified
88
85
  */
89
- public function isFullyQualified(): bool {
86
+ public function isFullyQualified() : bool {
90
87
  return false;
91
88
  }
92
89
 
@@ -95,7 +92,7 @@ class Name extends NodeAbstract {
95
92
  *
96
93
  * @return bool Whether the name is relative
97
94
  */
98
- public function isRelative(): bool {
95
+ public function isRelative() : bool {
99
96
  return false;
100
97
  }
101
98
 
@@ -105,8 +102,8 @@ class Name extends NodeAbstract {
105
102
  *
106
103
  * @return string String representation
107
104
  */
108
- public function toString(): string {
109
- return $this->name;
105
+ public function toString() : string {
106
+ return implode('\\', $this->parts);
110
107
  }
111
108
 
112
109
  /**
@@ -115,7 +112,7 @@ class Name extends NodeAbstract {
115
112
  *
116
113
  * @return string String representation
117
114
  */
118
- public function toCodeString(): string {
115
+ public function toCodeString() : string {
119
116
  return $this->toString();
120
117
  }
121
118
 
@@ -125,8 +122,8 @@ class Name extends NodeAbstract {
125
122
  *
126
123
  * @return string Lowercased string representation
127
124
  */
128
- public function toLowerString(): string {
129
- return strtolower($this->name);
125
+ public function toLowerString() : string {
126
+ return strtolower(implode('\\', $this->parts));
130
127
  }
131
128
 
132
129
  /**
@@ -134,8 +131,9 @@ class Name extends NodeAbstract {
134
131
  *
135
132
  * @return bool Whether identifier is a special class name
136
133
  */
137
- public function isSpecialClassName(): bool {
138
- return isset(self::$specialClassNames[strtolower($this->name)]);
134
+ public function isSpecialClassName() : bool {
135
+ return count($this->parts) === 1
136
+ && isset(self::$specialClassNames[strtolower($this->parts[0])]);
139
137
  }
140
138
 
141
139
  /**
@@ -144,8 +142,8 @@ class Name extends NodeAbstract {
144
142
  *
145
143
  * @return string String representation
146
144
  */
147
- public function __toString(): string {
148
- return $this->name;
145
+ public function __toString() : string {
146
+ return implode('\\', $this->parts);
149
147
  }
150
148
 
151
149
  /**
@@ -159,22 +157,13 @@ class Name extends NodeAbstract {
159
157
  *
160
158
  * Offset and length have the same meaning as in array_slice().
161
159
  *
162
- * @param int $offset Offset to start the slice at (may be negative)
160
+ * @param int $offset Offset to start the slice at (may be negative)
163
161
  * @param int|null $length Length of the slice (may be negative)
164
162
  *
165
163
  * @return static|null Sliced name
166
164
  */
167
- public function slice(int $offset, ?int $length = null) {
168
- if ($offset === 1 && $length === null) {
169
- // Short-circuit the common case.
170
- if (false !== $pos = \strpos($this->name, '\\')) {
171
- return new static(\substr($this->name, $pos + 1));
172
- }
173
- return null;
174
- }
175
-
176
- $parts = \explode('\\', $this->name);
177
- $numParts = \count($parts);
165
+ public function slice(int $offset, int $length = null) {
166
+ $numParts = count($this->parts);
178
167
 
179
168
  $realOffset = $offset < 0 ? $offset + $numParts : $offset;
180
169
  if ($realOffset < 0 || $realOffset > $numParts) {
@@ -195,7 +184,7 @@ class Name extends NodeAbstract {
195
184
  return null;
196
185
  }
197
186
 
198
- return new static(array_slice($parts, $realOffset, $realLength), $this->attributes);
187
+ return new static(array_slice($this->parts, $realOffset, $realLength), $this->attributes);
199
188
  }
200
189
 
201
190
  /**
@@ -209,53 +198,49 @@ class Name extends NodeAbstract {
209
198
  * Name::concat($namespace, $shortName)
210
199
  * where $namespace is a Name node or null will work as expected.
211
200
  *
212
- * @param string|string[]|self|null $name1 The first name
213
- * @param string|string[]|self|null $name2 The second name
214
- * @param array<string, mixed> $attributes Attributes to assign to concatenated name
201
+ * @param string|string[]|self|null $name1 The first name
202
+ * @param string|string[]|self|null $name2 The second name
203
+ * @param array $attributes Attributes to assign to concatenated name
215
204
  *
216
205
  * @return static|null Concatenated name
217
206
  */
218
207
  public static function concat($name1, $name2, array $attributes = []) {
219
208
  if (null === $name1 && null === $name2) {
220
209
  return null;
221
- }
222
- if (null === $name1) {
223
- return new static($name2, $attributes);
224
- }
225
- if (null === $name2) {
226
- return new static($name1, $attributes);
210
+ } elseif (null === $name1) {
211
+ return new static(self::prepareName($name2), $attributes);
212
+ } elseif (null === $name2) {
213
+ return new static(self::prepareName($name1), $attributes);
227
214
  } else {
228
215
  return new static(
229
- self::prepareName($name1) . '\\' . self::prepareName($name2), $attributes
216
+ array_merge(self::prepareName($name1), self::prepareName($name2)), $attributes
230
217
  );
231
218
  }
232
219
  }
233
220
 
234
221
  /**
235
222
  * Prepares a (string, array or Name node) name for use in name changing methods by converting
236
- * it to a string.
223
+ * it to an array.
237
224
  *
238
225
  * @param string|string[]|self $name Name to prepare
239
226
  *
240
- * @return string Prepared name
227
+ * @return string[] Prepared name
241
228
  */
242
- private static function prepareName($name): string {
229
+ private static function prepareName($name) : array {
243
230
  if (\is_string($name)) {
244
231
  if ('' === $name) {
245
232
  throw new \InvalidArgumentException('Name cannot be empty');
246
233
  }
247
234
 
248
- return $name;
249
- }
250
- if (\is_array($name)) {
235
+ return explode('\\', $name);
236
+ } elseif (\is_array($name)) {
251
237
  if (empty($name)) {
252
238
  throw new \InvalidArgumentException('Name cannot be empty');
253
239
  }
254
240
 
255
- return implode('\\', $name);
256
- }
257
- if ($name instanceof self) {
258
- return $name->name;
241
+ return $name;
242
+ } elseif ($name instanceof self) {
243
+ return $name->parts;
259
244
  }
260
245
 
261
246
  throw new \InvalidArgumentException(
@@ -263,7 +248,7 @@ class Name extends NodeAbstract {
263
248
  );
264
249
  }
265
250
 
266
- public function getType(): string {
251
+ public function getType() : string {
267
252
  return 'Name';
268
253
  }
269
254
  }
@@ -2,28 +2,27 @@
2
2
 
3
3
  namespace PhpParser\Node;
4
4
 
5
- use PhpParser\Node;
6
-
7
- class NullableType extends ComplexType {
5
+ class NullableType extends ComplexType
6
+ {
8
7
  /** @var Identifier|Name Type */
9
- public Node $type;
8
+ public $type;
10
9
 
11
10
  /**
12
11
  * Constructs a nullable type (wrapping another type).
13
12
  *
14
- * @param Identifier|Name $type Type
15
- * @param array<string, mixed> $attributes Additional attributes
13
+ * @param string|Identifier|Name $type Type
14
+ * @param array $attributes Additional attributes
16
15
  */
17
- public function __construct(Node $type, array $attributes = []) {
16
+ public function __construct($type, array $attributes = []) {
18
17
  $this->attributes = $attributes;
19
- $this->type = $type;
18
+ $this->type = \is_string($type) ? new Identifier($type) : $type;
20
19
  }
21
20
 
22
- public function getSubNodeNames(): array {
21
+ public function getSubNodeNames() : array {
23
22
  return ['type'];
24
23
  }
25
-
26
- public function getType(): string {
24
+
25
+ public function getType() : string {
27
26
  return 'NullableType';
28
27
  }
29
28
  }
@@ -2,47 +2,46 @@
2
2
 
3
3
  namespace PhpParser\Node;
4
4
 
5
- use PhpParser\Modifiers;
6
- use PhpParser\Node;
7
5
  use PhpParser\NodeAbstract;
8
6
 
9
- class Param extends NodeAbstract {
7
+ class Param extends NodeAbstract
8
+ {
10
9
  /** @var null|Identifier|Name|ComplexType Type declaration */
11
- public ?Node $type;
10
+ public $type;
12
11
  /** @var bool Whether parameter is passed by reference */
13
- public bool $byRef;
12
+ public $byRef;
14
13
  /** @var bool Whether this is a variadic argument */
15
- public bool $variadic;
14
+ public $variadic;
16
15
  /** @var Expr\Variable|Expr\Error Parameter variable */
17
- public Expr $var;
16
+ public $var;
18
17
  /** @var null|Expr Default value */
19
- public ?Expr $default;
20
- /** @var int Optional visibility flags */
21
- public int $flags;
18
+ public $default;
19
+ /** @var int */
20
+ public $flags;
22
21
  /** @var AttributeGroup[] PHP attribute groups */
23
- public array $attrGroups;
22
+ public $attrGroups;
24
23
 
25
24
  /**
26
25
  * Constructs a parameter node.
27
26
  *
28
- * @param Expr\Variable|Expr\Error $var Parameter variable
29
- * @param null|Expr $default Default value
30
- * @param null|Identifier|Name|ComplexType $type Type declaration
31
- * @param bool $byRef Whether is passed by reference
32
- * @param bool $variadic Whether this is a variadic argument
33
- * @param array<string, mixed> $attributes Additional attributes
34
- * @param int $flags Optional visibility flags
35
- * @param list<AttributeGroup> $attrGroups PHP attribute groups
27
+ * @param Expr\Variable|Expr\Error $var Parameter variable
28
+ * @param null|Expr $default Default value
29
+ * @param null|string|Identifier|Name|ComplexType $type Type declaration
30
+ * @param bool $byRef Whether is passed by reference
31
+ * @param bool $variadic Whether this is a variadic argument
32
+ * @param array $attributes Additional attributes
33
+ * @param int $flags Optional visibility flags
34
+ * @param AttributeGroup[] $attrGroups PHP attribute groups
36
35
  */
37
36
  public function __construct(
38
- Expr $var, ?Expr $default = null, ?Node $type = null,
37
+ $var, Expr $default = null, $type = null,
39
38
  bool $byRef = false, bool $variadic = false,
40
39
  array $attributes = [],
41
40
  int $flags = 0,
42
41
  array $attrGroups = []
43
42
  ) {
44
43
  $this->attributes = $attributes;
45
- $this->type = $type;
44
+ $this->type = \is_string($type) ? new Identifier($type) : $type;
46
45
  $this->byRef = $byRef;
47
46
  $this->variadic = $variadic;
48
47
  $this->var = $var;
@@ -51,34 +50,11 @@ class Param extends NodeAbstract {
51
50
  $this->attrGroups = $attrGroups;
52
51
  }
53
52
 
54
- public function getSubNodeNames(): array {
53
+ public function getSubNodeNames() : array {
55
54
  return ['attrGroups', 'flags', 'type', 'byRef', 'variadic', 'var', 'default'];
56
55
  }
57
56
 
58
- public function getType(): string {
57
+ public function getType() : string {
59
58
  return 'Param';
60
59
  }
61
-
62
- /**
63
- * Whether this parameter uses constructor property promotion.
64
- */
65
- public function isPromoted(): bool {
66
- return $this->flags !== 0;
67
- }
68
-
69
- public function isPublic(): bool {
70
- return (bool) ($this->flags & Modifiers::PUBLIC);
71
- }
72
-
73
- public function isProtected(): bool {
74
- return (bool) ($this->flags & Modifiers::PROTECTED);
75
- }
76
-
77
- public function isPrivate(): bool {
78
- return (bool) ($this->flags & Modifiers::PRIVATE);
79
- }
80
-
81
- public function isReadonly(): bool {
82
- return (bool) ($this->flags & Modifiers::READONLY);
83
- }
84
60
  }
@@ -1,3 +1,77 @@
1
1
  <?php declare(strict_types=1);
2
2
 
3
- require __DIR__ . '/Float_.php';
3
+ namespace PhpParser\Node\Scalar;
4
+
5
+ use PhpParser\Node\Scalar;
6
+
7
+ class DNumber extends Scalar
8
+ {
9
+ /** @var float Number value */
10
+ public $value;
11
+
12
+ /**
13
+ * Constructs a float number scalar node.
14
+ *
15
+ * @param float $value Value of the number
16
+ * @param array $attributes Additional attributes
17
+ */
18
+ public function __construct(float $value, array $attributes = []) {
19
+ $this->attributes = $attributes;
20
+ $this->value = $value;
21
+ }
22
+
23
+ public function getSubNodeNames() : array {
24
+ return ['value'];
25
+ }
26
+
27
+ /**
28
+ * @param mixed[] $attributes
29
+ */
30
+ public static function fromString(string $str, array $attributes = []): DNumber
31
+ {
32
+ $attributes['rawValue'] = $str;
33
+ $float = self::parse($str);
34
+
35
+ return new DNumber($float, $attributes);
36
+ }
37
+
38
+ /**
39
+ * @internal
40
+ *
41
+ * Parses a DNUMBER token like PHP would.
42
+ *
43
+ * @param string $str A string number
44
+ *
45
+ * @return float The parsed number
46
+ */
47
+ public static function parse(string $str) : float {
48
+ $str = str_replace('_', '', $str);
49
+
50
+ // Check whether this is one of the special integer notations.
51
+ if ('0' === $str[0]) {
52
+ // hex
53
+ if ('x' === $str[1] || 'X' === $str[1]) {
54
+ return hexdec($str);
55
+ }
56
+
57
+ // bin
58
+ if ('b' === $str[1] || 'B' === $str[1]) {
59
+ return bindec($str);
60
+ }
61
+
62
+ // oct, but only if the string does not contain any of '.eE'.
63
+ if (false === strpbrk($str, '.eE')) {
64
+ // substr($str, 0, strcspn($str, '89')) cuts the string at the first invalid digit
65
+ // (8 or 9) so that only the digits before that are used.
66
+ return octdec(substr($str, 0, strcspn($str, '89')));
67
+ }
68
+ }
69
+
70
+ // dec
71
+ return (float) $str;
72
+ }
73
+
74
+ public function getType() : string {
75
+ return 'Scalar_DNumber';
76
+ }
77
+ }
@@ -1,3 +1,31 @@
1
1
  <?php declare(strict_types=1);
2
2
 
3
- require __DIR__ . '/InterpolatedString.php';
3
+ namespace PhpParser\Node\Scalar;
4
+
5
+ use PhpParser\Node\Expr;
6
+ use PhpParser\Node\Scalar;
7
+
8
+ class Encapsed extends Scalar
9
+ {
10
+ /** @var Expr[] list of string parts */
11
+ public $parts;
12
+
13
+ /**
14
+ * Constructs an encapsed string node.
15
+ *
16
+ * @param Expr[] $parts Encaps list
17
+ * @param array $attributes Additional attributes
18
+ */
19
+ public function __construct(array $parts, array $attributes = []) {
20
+ $this->attributes = $attributes;
21
+ $this->parts = $parts;
22
+ }
23
+
24
+ public function getSubNodeNames() : array {
25
+ return ['parts'];
26
+ }
27
+
28
+ public function getType() : string {
29
+ return 'Scalar_Encapsed';
30
+ }
31
+ }