webshell-analyzer 1.0.0__py3-none-any.whl

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 (304) hide show
  1. webshell_analyzer/__init__.py +0 -0
  2. webshell_analyzer/cli/__init__.py +0 -0
  3. webshell_analyzer/cli/cli.py +151 -0
  4. webshell_analyzer/extractor/ast_extraction/composer.json +5 -0
  5. webshell_analyzer/extractor/ast_extraction/composer.lock +77 -0
  6. webshell_analyzer/extractor/ast_extraction/src/NodeVisitor.php +85 -0
  7. webshell_analyzer/extractor/ast_extraction/src/astBuilder.php +50 -0
  8. webshell_analyzer/extractor/ast_extraction/src/astExtractor.php +50 -0
  9. webshell_analyzer/extractor/ast_extraction/src/featuresDeclare.php +36 -0
  10. webshell_analyzer/extractor/ast_extraction/vendor/autoload.php +25 -0
  11. webshell_analyzer/extractor/ast_extraction/vendor/composer/ClassLoader.php +579 -0
  12. webshell_analyzer/extractor/ast_extraction/vendor/composer/InstalledVersions.php +378 -0
  13. webshell_analyzer/extractor/ast_extraction/vendor/composer/autoload_classmap.php +10 -0
  14. webshell_analyzer/extractor/ast_extraction/vendor/composer/autoload_namespaces.php +9 -0
  15. webshell_analyzer/extractor/ast_extraction/vendor/composer/autoload_psr4.php +10 -0
  16. webshell_analyzer/extractor/ast_extraction/vendor/composer/autoload_real.php +38 -0
  17. webshell_analyzer/extractor/ast_extraction/vendor/composer/autoload_static.php +36 -0
  18. webshell_analyzer/extractor/ast_extraction/vendor/composer/installed.json +67 -0
  19. webshell_analyzer/extractor/ast_extraction/vendor/composer/installed.php +32 -0
  20. webshell_analyzer/extractor/ast_extraction/vendor/composer/platform_check.php +26 -0
  21. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +150 -0
  22. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php +151 -0
  23. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +50 -0
  24. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php +86 -0
  25. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php +116 -0
  26. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +73 -0
  27. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php +67 -0
  28. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php +94 -0
  29. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php +147 -0
  30. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +45 -0
  31. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php +171 -0
  32. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php +223 -0
  33. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php +65 -0
  34. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php +145 -0
  35. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +83 -0
  36. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php +49 -0
  37. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder.php +12 -0
  38. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php +375 -0
  39. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +338 -0
  40. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php +6 -0
  41. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Comment.php +209 -0
  42. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php +6 -0
  43. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +237 -0
  44. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Error.php +173 -0
  45. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php +43 -0
  46. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +17 -0
  47. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php +12 -0
  48. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php +31 -0
  49. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Internal/Differ.php +178 -0
  50. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +71 -0
  51. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php +237 -0
  52. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +282 -0
  53. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php +108 -0
  54. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +230 -0
  55. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AsymmetricVisibilityTokenEmulator.php +93 -0
  56. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php +49 -0
  57. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php +26 -0
  58. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php +45 -0
  59. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +60 -0
  60. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php +19 -0
  61. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php +60 -0
  62. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/PipeOperatorEmulator.php +45 -0
  63. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/PropertyTokenEmulator.php +19 -0
  64. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php +31 -0
  65. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php +31 -0
  66. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php +37 -0
  67. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php +30 -0
  68. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/VoidCastEmulator.php +98 -0
  69. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer.php +116 -0
  70. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Modifiers.php +85 -0
  71. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NameContext.php +284 -0
  72. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php +44 -0
  73. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php +43 -0
  74. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Attribute.php +33 -0
  75. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php +27 -0
  76. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php +36 -0
  77. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php +13 -0
  78. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php +36 -0
  79. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php +37 -0
  80. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +33 -0
  81. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +15 -0
  82. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +34 -0
  83. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +84 -0
  84. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +33 -0
  85. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +11 -0
  86. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php +11 -0
  87. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php +11 -0
  88. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php +11 -0
  89. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php +11 -0
  90. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php +11 -0
  91. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php +11 -0
  92. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php +11 -0
  93. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php +11 -0
  94. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php +11 -0
  95. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php +11 -0
  96. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php +11 -0
  97. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php +11 -0
  98. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +29 -0
  99. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php +33 -0
  100. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +15 -0
  101. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php +15 -0
  102. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php +15 -0
  103. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php +15 -0
  104. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php +15 -0
  105. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php +15 -0
  106. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php +15 -0
  107. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php +15 -0
  108. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php +15 -0
  109. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php +15 -0
  110. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php +15 -0
  111. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php +15 -0
  112. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php +15 -0
  113. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php +15 -0
  114. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php +15 -0
  115. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php +15 -0
  116. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php +15 -0
  117. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php +15 -0
  118. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php +15 -0
  119. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php +15 -0
  120. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pipe.php +15 -0
  121. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php +15 -0
  122. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php +15 -0
  123. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php +15 -0
  124. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php +15 -0
  125. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php +15 -0
  126. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php +15 -0
  127. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php +15 -0
  128. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +37 -0
  129. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +29 -0
  130. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +29 -0
  131. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +60 -0
  132. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +11 -0
  133. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php +15 -0
  134. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php +16 -0
  135. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php +15 -0
  136. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php +11 -0
  137. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php +15 -0
  138. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php +11 -0
  139. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Void_.php +11 -0
  140. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +25 -0
  141. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +36 -0
  142. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +29 -0
  143. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +86 -0
  144. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +15 -0
  145. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +30 -0
  146. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +29 -0
  147. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +30 -0
  148. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +29 -0
  149. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +29 -0
  150. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +33 -0
  151. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +38 -0
  152. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +38 -0
  153. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +35 -0
  154. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +29 -0
  155. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +34 -0
  156. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php +32 -0
  157. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +45 -0
  158. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +40 -0
  159. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +45 -0
  160. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php +35 -0
  161. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +29 -0
  162. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +29 -0
  163. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +29 -0
  164. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +29 -0
  165. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +29 -0
  166. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +35 -0
  167. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +30 -0
  168. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +45 -0
  169. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +36 -0
  170. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +37 -0
  171. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php +29 -0
  172. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +29 -0
  173. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +29 -0
  174. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +29 -0
  175. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +29 -0
  176. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +33 -0
  177. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php +8 -0
  178. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +40 -0
  179. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php +85 -0
  180. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php +32 -0
  181. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php +27 -0
  182. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/MatchArm.php +29 -0
  183. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +49 -0
  184. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php +49 -0
  185. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php +278 -0
  186. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php +29 -0
  187. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php +123 -0
  188. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/PropertyHook.php +105 -0
  189. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php +37 -0
  190. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +15 -0
  191. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +15 -0
  192. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +17 -0
  193. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php +78 -0
  194. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php +82 -0
  195. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php +34 -0
  196. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +15 -0
  197. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php +15 -0
  198. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php +15 -0
  199. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php +15 -0
  200. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php +15 -0
  201. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php +15 -0
  202. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php +15 -0
  203. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php +15 -0
  204. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Property.php +15 -0
  205. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php +15 -0
  206. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +27 -0
  207. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +161 -0
  208. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php +6 -0
  209. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/StaticVar.php +39 -0
  210. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php +29 -0
  211. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +29 -0
  212. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +33 -0
  213. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +40 -0
  214. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +77 -0
  215. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +109 -0
  216. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +154 -0
  217. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +94 -0
  218. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +37 -0
  219. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +29 -0
  220. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +17 -0
  221. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +34 -0
  222. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +33 -0
  223. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +29 -0
  224. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +33 -0
  225. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +29 -0
  226. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +36 -0
  227. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php +44 -0
  228. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +32 -0
  229. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +29 -0
  230. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +47 -0
  231. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +50 -0
  232. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +81 -0
  233. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +29 -0
  234. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +30 -0
  235. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +41 -0
  236. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +29 -0
  237. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +46 -0
  238. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +29 -0
  239. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +40 -0
  240. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +30 -0
  241. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +37 -0
  242. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +16 -0
  243. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +121 -0
  244. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +17 -0
  245. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +29 -0
  246. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +15 -0
  247. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +30 -0
  248. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +33 -0
  249. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +33 -0
  250. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php +37 -0
  251. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +33 -0
  252. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +12 -0
  253. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +34 -0
  254. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +37 -0
  255. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +29 -0
  256. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +17 -0
  257. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +47 -0
  258. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +33 -0
  259. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt.php +8 -0
  260. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php +27 -0
  261. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/UseItem.php +55 -0
  262. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php +16 -0
  263. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php +27 -0
  264. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node.php +150 -0
  265. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php +181 -0
  266. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php +299 -0
  267. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeFinder.php +90 -0
  268. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php +287 -0
  269. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +26 -0
  270. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php +19 -0
  271. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php +82 -0
  272. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php +47 -0
  273. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php +49 -0
  274. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +269 -0
  275. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php +73 -0
  276. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php +51 -0
  277. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor.php +124 -0
  278. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +24 -0
  279. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php +2919 -0
  280. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php +2917 -0
  281. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Parser.php +24 -0
  282. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php +1335 -0
  283. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php +42 -0
  284. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/PhpVersion.php +175 -0
  285. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +1232 -0
  286. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter.php +51 -0
  287. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +1706 -0
  288. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Token.php +18 -0
  289. webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/compatibility_tokens.php +71 -0
  290. webshell_analyzer/extractor/extractor.py +73 -0
  291. webshell_analyzer/extractor/lexical_extraction/lexicalExtractor.py +31 -0
  292. webshell_analyzer/extractor/statistical_extraction/statisticalExtractor.py +60 -0
  293. webshell_analyzer/model/features_selected.json +1 -0
  294. webshell_analyzer/model/model_loader.py +19 -0
  295. webshell_analyzer/model/rf_webshell_model.joblib +0 -0
  296. webshell_analyzer/modules/__init__.py +0 -0
  297. webshell_analyzer/modules/detector.py +174 -0
  298. webshell_analyzer/modules/scanner.py +68 -0
  299. webshell_analyzer-1.0.0.dist-info/METADATA +105 -0
  300. webshell_analyzer-1.0.0.dist-info/RECORD +304 -0
  301. webshell_analyzer-1.0.0.dist-info/WHEEL +5 -0
  302. webshell_analyzer-1.0.0.dist-info/entry_points.txt +2 -0
  303. webshell_analyzer-1.0.0.dist-info/licenses/LICENSE +21 -0
  304. webshell_analyzer-1.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,29 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Node\Stmt;
6
+
7
+ class Block extends Stmt {
8
+ /** @var Stmt[] Statements */
9
+ public array $stmts;
10
+
11
+ /**
12
+ * A block of statements.
13
+ *
14
+ * @param Stmt[] $stmts Statements
15
+ * @param array<string, mixed> $attributes Additional attributes
16
+ */
17
+ public function __construct(array $stmts, array $attributes = []) {
18
+ $this->attributes = $attributes;
19
+ $this->stmts = $stmts;
20
+ }
21
+
22
+ public function getType(): string {
23
+ return 'Stmt_Block';
24
+ }
25
+
26
+ public function getSubNodeNames(): array {
27
+ return ['stmts'];
28
+ }
29
+ }
@@ -0,0 +1,29 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Node;
6
+
7
+ class Break_ extends Node\Stmt {
8
+ /** @var null|Node\Expr Number of loops to break */
9
+ public ?Node\Expr $num;
10
+
11
+ /**
12
+ * Constructs a break node.
13
+ *
14
+ * @param null|Node\Expr $num Number of loops to break
15
+ * @param array<string, mixed> $attributes Additional attributes
16
+ */
17
+ public function __construct(?Node\Expr $num = null, array $attributes = []) {
18
+ $this->attributes = $attributes;
19
+ $this->num = $num;
20
+ }
21
+
22
+ public function getSubNodeNames(): array {
23
+ return ['num'];
24
+ }
25
+
26
+ public function getType(): string {
27
+ return 'Stmt_Break';
28
+ }
29
+ }
@@ -0,0 +1,33 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Node;
6
+
7
+ class Case_ extends Node\Stmt {
8
+ /** @var null|Node\Expr Condition (null for default) */
9
+ public ?Node\Expr $cond;
10
+ /** @var Node\Stmt[] Statements */
11
+ public array $stmts;
12
+
13
+ /**
14
+ * Constructs a case node.
15
+ *
16
+ * @param null|Node\Expr $cond Condition (null for default)
17
+ * @param Node\Stmt[] $stmts Statements
18
+ * @param array<string, mixed> $attributes Additional attributes
19
+ */
20
+ public function __construct(?Node\Expr $cond, array $stmts = [], array $attributes = []) {
21
+ $this->attributes = $attributes;
22
+ $this->cond = $cond;
23
+ $this->stmts = $stmts;
24
+ }
25
+
26
+ public function getSubNodeNames(): array {
27
+ return ['cond', 'stmts'];
28
+ }
29
+
30
+ public function getType(): string {
31
+ return 'Stmt_Case';
32
+ }
33
+ }
@@ -0,0 +1,40 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Node;
6
+ use PhpParser\Node\Expr;
7
+
8
+ class Catch_ extends Node\Stmt {
9
+ /** @var Node\Name[] Types of exceptions to catch */
10
+ public array $types;
11
+ /** @var Expr\Variable|null Variable for exception */
12
+ public ?Expr\Variable $var;
13
+ /** @var Node\Stmt[] Statements */
14
+ public array $stmts;
15
+
16
+ /**
17
+ * Constructs a catch node.
18
+ *
19
+ * @param Node\Name[] $types Types of exceptions to catch
20
+ * @param Expr\Variable|null $var Variable for exception
21
+ * @param Node\Stmt[] $stmts Statements
22
+ * @param array<string, mixed> $attributes Additional attributes
23
+ */
24
+ public function __construct(
25
+ array $types, ?Expr\Variable $var = null, array $stmts = [], array $attributes = []
26
+ ) {
27
+ $this->attributes = $attributes;
28
+ $this->types = $types;
29
+ $this->var = $var;
30
+ $this->stmts = $stmts;
31
+ }
32
+
33
+ public function getSubNodeNames(): array {
34
+ return ['types', 'var', 'stmts'];
35
+ }
36
+
37
+ public function getType(): string {
38
+ return 'Stmt_Catch';
39
+ }
40
+ }
@@ -0,0 +1,77 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Modifiers;
6
+ use PhpParser\Node;
7
+
8
+ class ClassConst extends Node\Stmt {
9
+ /** @var int Modifiers */
10
+ public int $flags;
11
+ /** @var Node\Const_[] Constant declarations */
12
+ public array $consts;
13
+ /** @var Node\AttributeGroup[] PHP attribute groups */
14
+ public array $attrGroups;
15
+ /** @var Node\Identifier|Node\Name|Node\ComplexType|null Type declaration */
16
+ public ?Node $type;
17
+
18
+ /**
19
+ * Constructs a class const list node.
20
+ *
21
+ * @param Node\Const_[] $consts Constant declarations
22
+ * @param int $flags Modifiers
23
+ * @param array<string, mixed> $attributes Additional attributes
24
+ * @param list<Node\AttributeGroup> $attrGroups PHP attribute groups
25
+ * @param null|Node\Identifier|Node\Name|Node\ComplexType $type Type declaration
26
+ */
27
+ public function __construct(
28
+ array $consts,
29
+ int $flags = 0,
30
+ array $attributes = [],
31
+ array $attrGroups = [],
32
+ ?Node $type = null
33
+ ) {
34
+ $this->attributes = $attributes;
35
+ $this->flags = $flags;
36
+ $this->consts = $consts;
37
+ $this->attrGroups = $attrGroups;
38
+ $this->type = $type;
39
+ }
40
+
41
+ public function getSubNodeNames(): array {
42
+ return ['attrGroups', 'flags', 'type', 'consts'];
43
+ }
44
+
45
+ /**
46
+ * Whether constant is explicitly or implicitly public.
47
+ */
48
+ public function isPublic(): bool {
49
+ return ($this->flags & Modifiers::PUBLIC) !== 0
50
+ || ($this->flags & Modifiers::VISIBILITY_MASK) === 0;
51
+ }
52
+
53
+ /**
54
+ * Whether constant is protected.
55
+ */
56
+ public function isProtected(): bool {
57
+ return (bool) ($this->flags & Modifiers::PROTECTED);
58
+ }
59
+
60
+ /**
61
+ * Whether constant is private.
62
+ */
63
+ public function isPrivate(): bool {
64
+ return (bool) ($this->flags & Modifiers::PRIVATE);
65
+ }
66
+
67
+ /**
68
+ * Whether constant is final.
69
+ */
70
+ public function isFinal(): bool {
71
+ return (bool) ($this->flags & Modifiers::FINAL);
72
+ }
73
+
74
+ public function getType(): string {
75
+ return 'Stmt_ClassConst';
76
+ }
77
+ }
@@ -0,0 +1,109 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Node;
6
+ use PhpParser\Node\PropertyItem;
7
+
8
+ abstract class ClassLike extends Node\Stmt {
9
+ /** @var Node\Identifier|null Name */
10
+ public ?Node\Identifier $name;
11
+ /** @var Node\Stmt[] Statements */
12
+ public array $stmts;
13
+ /** @var Node\AttributeGroup[] PHP attribute groups */
14
+ public array $attrGroups;
15
+
16
+ /** @var Node\Name|null Namespaced name (if using NameResolver) */
17
+ public ?Node\Name $namespacedName;
18
+
19
+ /**
20
+ * @return list<TraitUse>
21
+ */
22
+ public function getTraitUses(): array {
23
+ $traitUses = [];
24
+ foreach ($this->stmts as $stmt) {
25
+ if ($stmt instanceof TraitUse) {
26
+ $traitUses[] = $stmt;
27
+ }
28
+ }
29
+ return $traitUses;
30
+ }
31
+
32
+ /**
33
+ * @return list<ClassConst>
34
+ */
35
+ public function getConstants(): array {
36
+ $constants = [];
37
+ foreach ($this->stmts as $stmt) {
38
+ if ($stmt instanceof ClassConst) {
39
+ $constants[] = $stmt;
40
+ }
41
+ }
42
+ return $constants;
43
+ }
44
+
45
+ /**
46
+ * @return list<Property>
47
+ */
48
+ public function getProperties(): array {
49
+ $properties = [];
50
+ foreach ($this->stmts as $stmt) {
51
+ if ($stmt instanceof Property) {
52
+ $properties[] = $stmt;
53
+ }
54
+ }
55
+ return $properties;
56
+ }
57
+
58
+ /**
59
+ * Gets property with the given name defined directly in this class/interface/trait.
60
+ *
61
+ * @param string $name Name of the property
62
+ *
63
+ * @return Property|null Property node or null if the property does not exist
64
+ */
65
+ public function getProperty(string $name): ?Property {
66
+ foreach ($this->stmts as $stmt) {
67
+ if ($stmt instanceof Property) {
68
+ foreach ($stmt->props as $prop) {
69
+ if ($prop instanceof PropertyItem && $name === $prop->name->toString()) {
70
+ return $stmt;
71
+ }
72
+ }
73
+ }
74
+ }
75
+ return null;
76
+ }
77
+
78
+ /**
79
+ * Gets all methods defined directly in this class/interface/trait
80
+ *
81
+ * @return list<ClassMethod>
82
+ */
83
+ public function getMethods(): array {
84
+ $methods = [];
85
+ foreach ($this->stmts as $stmt) {
86
+ if ($stmt instanceof ClassMethod) {
87
+ $methods[] = $stmt;
88
+ }
89
+ }
90
+ return $methods;
91
+ }
92
+
93
+ /**
94
+ * Gets method with the given name defined directly in this class/interface/trait.
95
+ *
96
+ * @param string $name Name of the method (compared case-insensitively)
97
+ *
98
+ * @return ClassMethod|null Method node or null if the method does not exist
99
+ */
100
+ public function getMethod(string $name): ?ClassMethod {
101
+ $lowerName = strtolower($name);
102
+ foreach ($this->stmts as $stmt) {
103
+ if ($stmt instanceof ClassMethod && $lowerName === $stmt->name->toLowerString()) {
104
+ return $stmt;
105
+ }
106
+ }
107
+ return null;
108
+ }
109
+ }
@@ -0,0 +1,154 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Modifiers;
6
+ use PhpParser\Node;
7
+ use PhpParser\Node\FunctionLike;
8
+
9
+ class ClassMethod extends Node\Stmt implements FunctionLike {
10
+ /** @var int Flags */
11
+ public int $flags;
12
+ /** @var bool Whether to return by reference */
13
+ public bool $byRef;
14
+ /** @var Node\Identifier Name */
15
+ public Node\Identifier $name;
16
+ /** @var Node\Param[] Parameters */
17
+ public array $params;
18
+ /** @var null|Node\Identifier|Node\Name|Node\ComplexType Return type */
19
+ public ?Node $returnType;
20
+ /** @var Node\Stmt[]|null Statements */
21
+ public ?array $stmts;
22
+ /** @var Node\AttributeGroup[] PHP attribute groups */
23
+ public array $attrGroups;
24
+
25
+ /** @var array<string, bool> */
26
+ private static array $magicNames = [
27
+ '__construct' => true,
28
+ '__destruct' => true,
29
+ '__call' => true,
30
+ '__callstatic' => true,
31
+ '__get' => true,
32
+ '__set' => true,
33
+ '__isset' => true,
34
+ '__unset' => true,
35
+ '__sleep' => true,
36
+ '__wakeup' => true,
37
+ '__tostring' => true,
38
+ '__set_state' => true,
39
+ '__clone' => true,
40
+ '__invoke' => true,
41
+ '__debuginfo' => true,
42
+ '__serialize' => true,
43
+ '__unserialize' => true,
44
+ ];
45
+
46
+ /**
47
+ * Constructs a class method node.
48
+ *
49
+ * @param string|Node\Identifier $name Name
50
+ * @param array{
51
+ * flags?: int,
52
+ * byRef?: bool,
53
+ * params?: Node\Param[],
54
+ * returnType?: null|Node\Identifier|Node\Name|Node\ComplexType,
55
+ * stmts?: Node\Stmt[]|null,
56
+ * attrGroups?: Node\AttributeGroup[],
57
+ * } $subNodes Array of the following optional subnodes:
58
+ * 'flags => 0 : Flags
59
+ * 'byRef' => false : Whether to return by reference
60
+ * 'params' => array() : Parameters
61
+ * 'returnType' => null : Return type
62
+ * 'stmts' => array() : Statements
63
+ * 'attrGroups' => array() : PHP attribute groups
64
+ * @param array<string, mixed> $attributes Additional attributes
65
+ */
66
+ public function __construct($name, array $subNodes = [], array $attributes = []) {
67
+ $this->attributes = $attributes;
68
+ $this->flags = $subNodes['flags'] ?? $subNodes['type'] ?? 0;
69
+ $this->byRef = $subNodes['byRef'] ?? false;
70
+ $this->name = \is_string($name) ? new Node\Identifier($name) : $name;
71
+ $this->params = $subNodes['params'] ?? [];
72
+ $this->returnType = $subNodes['returnType'] ?? null;
73
+ $this->stmts = array_key_exists('stmts', $subNodes) ? $subNodes['stmts'] : [];
74
+ $this->attrGroups = $subNodes['attrGroups'] ?? [];
75
+ }
76
+
77
+ public function getSubNodeNames(): array {
78
+ return ['attrGroups', 'flags', 'byRef', 'name', 'params', 'returnType', 'stmts'];
79
+ }
80
+
81
+ public function returnsByRef(): bool {
82
+ return $this->byRef;
83
+ }
84
+
85
+ public function getParams(): array {
86
+ return $this->params;
87
+ }
88
+
89
+ public function getReturnType() {
90
+ return $this->returnType;
91
+ }
92
+
93
+ public function getStmts(): ?array {
94
+ return $this->stmts;
95
+ }
96
+
97
+ public function getAttrGroups(): array {
98
+ return $this->attrGroups;
99
+ }
100
+
101
+ /**
102
+ * Whether the method is explicitly or implicitly public.
103
+ */
104
+ public function isPublic(): bool {
105
+ return ($this->flags & Modifiers::PUBLIC) !== 0
106
+ || ($this->flags & Modifiers::VISIBILITY_MASK) === 0;
107
+ }
108
+
109
+ /**
110
+ * Whether the method is protected.
111
+ */
112
+ public function isProtected(): bool {
113
+ return (bool) ($this->flags & Modifiers::PROTECTED);
114
+ }
115
+
116
+ /**
117
+ * Whether the method is private.
118
+ */
119
+ public function isPrivate(): bool {
120
+ return (bool) ($this->flags & Modifiers::PRIVATE);
121
+ }
122
+
123
+ /**
124
+ * Whether the method is abstract.
125
+ */
126
+ public function isAbstract(): bool {
127
+ return (bool) ($this->flags & Modifiers::ABSTRACT);
128
+ }
129
+
130
+ /**
131
+ * Whether the method is final.
132
+ */
133
+ public function isFinal(): bool {
134
+ return (bool) ($this->flags & Modifiers::FINAL);
135
+ }
136
+
137
+ /**
138
+ * Whether the method is static.
139
+ */
140
+ public function isStatic(): bool {
141
+ return (bool) ($this->flags & Modifiers::STATIC);
142
+ }
143
+
144
+ /**
145
+ * Whether the method is magic.
146
+ */
147
+ public function isMagic(): bool {
148
+ return isset(self::$magicNames[$this->name->toLowerString()]);
149
+ }
150
+
151
+ public function getType(): string {
152
+ return 'Stmt_ClassMethod';
153
+ }
154
+ }
@@ -0,0 +1,94 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Modifiers;
6
+ use PhpParser\Node;
7
+
8
+ class Class_ extends ClassLike {
9
+ /** @deprecated Use Modifiers::PUBLIC instead */
10
+ public const MODIFIER_PUBLIC = 1;
11
+ /** @deprecated Use Modifiers::PROTECTED instead */
12
+ public const MODIFIER_PROTECTED = 2;
13
+ /** @deprecated Use Modifiers::PRIVATE instead */
14
+ public const MODIFIER_PRIVATE = 4;
15
+ /** @deprecated Use Modifiers::STATIC instead */
16
+ public const MODIFIER_STATIC = 8;
17
+ /** @deprecated Use Modifiers::ABSTRACT instead */
18
+ public const MODIFIER_ABSTRACT = 16;
19
+ /** @deprecated Use Modifiers::FINAL instead */
20
+ public const MODIFIER_FINAL = 32;
21
+ /** @deprecated Use Modifiers::READONLY instead */
22
+ public const MODIFIER_READONLY = 64;
23
+
24
+ /** @deprecated Use Modifiers::VISIBILITY_MASK instead */
25
+ public const VISIBILITY_MODIFIER_MASK = 7; // 1 | 2 | 4
26
+
27
+ /** @var int Modifiers */
28
+ public int $flags;
29
+ /** @var null|Node\Name Name of extended class */
30
+ public ?Node\Name $extends;
31
+ /** @var Node\Name[] Names of implemented interfaces */
32
+ public array $implements;
33
+
34
+ /**
35
+ * Constructs a class node.
36
+ *
37
+ * @param string|Node\Identifier|null $name Name
38
+ * @param array{
39
+ * flags?: int,
40
+ * extends?: Node\Name|null,
41
+ * implements?: Node\Name[],
42
+ * stmts?: Node\Stmt[],
43
+ * attrGroups?: Node\AttributeGroup[],
44
+ * } $subNodes Array of the following optional subnodes:
45
+ * 'flags' => 0 : Flags
46
+ * 'extends' => null : Name of extended class
47
+ * 'implements' => array(): Names of implemented interfaces
48
+ * 'stmts' => array(): Statements
49
+ * 'attrGroups' => array(): PHP attribute groups
50
+ * @param array<string, mixed> $attributes Additional attributes
51
+ */
52
+ public function __construct($name, array $subNodes = [], array $attributes = []) {
53
+ $this->attributes = $attributes;
54
+ $this->flags = $subNodes['flags'] ?? $subNodes['type'] ?? 0;
55
+ $this->name = \is_string($name) ? new Node\Identifier($name) : $name;
56
+ $this->extends = $subNodes['extends'] ?? null;
57
+ $this->implements = $subNodes['implements'] ?? [];
58
+ $this->stmts = $subNodes['stmts'] ?? [];
59
+ $this->attrGroups = $subNodes['attrGroups'] ?? [];
60
+ }
61
+
62
+ public function getSubNodeNames(): array {
63
+ return ['attrGroups', 'flags', 'name', 'extends', 'implements', 'stmts'];
64
+ }
65
+
66
+ /**
67
+ * Whether the class is explicitly abstract.
68
+ */
69
+ public function isAbstract(): bool {
70
+ return (bool) ($this->flags & Modifiers::ABSTRACT);
71
+ }
72
+
73
+ /**
74
+ * Whether the class is final.
75
+ */
76
+ public function isFinal(): bool {
77
+ return (bool) ($this->flags & Modifiers::FINAL);
78
+ }
79
+
80
+ public function isReadonly(): bool {
81
+ return (bool) ($this->flags & Modifiers::READONLY);
82
+ }
83
+
84
+ /**
85
+ * Whether the class is anonymous.
86
+ */
87
+ public function isAnonymous(): bool {
88
+ return null === $this->name;
89
+ }
90
+
91
+ public function getType(): string {
92
+ return 'Stmt_Class';
93
+ }
94
+ }
@@ -0,0 +1,37 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Node;
6
+
7
+ class Const_ extends Node\Stmt {
8
+ /** @var Node\Const_[] Constant declarations */
9
+ public array $consts;
10
+ /** @var Node\AttributeGroup[] PHP attribute groups */
11
+ public array $attrGroups;
12
+
13
+ /**
14
+ * Constructs a const list node.
15
+ *
16
+ * @param Node\Const_[] $consts Constant declarations
17
+ * @param array<string, mixed> $attributes Additional attributes
18
+ * @param list<Node\AttributeGroup> $attrGroups PHP attribute groups
19
+ */
20
+ public function __construct(
21
+ array $consts,
22
+ array $attributes = [],
23
+ array $attrGroups = []
24
+ ) {
25
+ $this->attributes = $attributes;
26
+ $this->attrGroups = $attrGroups;
27
+ $this->consts = $consts;
28
+ }
29
+
30
+ public function getSubNodeNames(): array {
31
+ return ['attrGroups', 'consts'];
32
+ }
33
+
34
+ public function getType(): string {
35
+ return 'Stmt_Const';
36
+ }
37
+ }
@@ -0,0 +1,29 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Node;
6
+
7
+ class Continue_ extends Node\Stmt {
8
+ /** @var null|Node\Expr Number of loops to continue */
9
+ public ?Node\Expr $num;
10
+
11
+ /**
12
+ * Constructs a continue node.
13
+ *
14
+ * @param null|Node\Expr $num Number of loops to continue
15
+ * @param array<string, mixed> $attributes Additional attributes
16
+ */
17
+ public function __construct(?Node\Expr $num = null, array $attributes = []) {
18
+ $this->attributes = $attributes;
19
+ $this->num = $num;
20
+ }
21
+
22
+ public function getSubNodeNames(): array {
23
+ return ['num'];
24
+ }
25
+
26
+ public function getType(): string {
27
+ return 'Stmt_Continue';
28
+ }
29
+ }
@@ -0,0 +1,17 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Node\DeclareItem;
6
+
7
+ require __DIR__ . '/../DeclareItem.php';
8
+
9
+ if (false) {
10
+ /**
11
+ * For classmap-authoritative support.
12
+ *
13
+ * @deprecated use \PhpParser\Node\DeclareItem instead.
14
+ */
15
+ class DeclareDeclare extends DeclareItem {
16
+ }
17
+ }
@@ -0,0 +1,34 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Node\Stmt;
4
+
5
+ use PhpParser\Node;
6
+ use PhpParser\Node\DeclareItem;
7
+
8
+ class Declare_ extends Node\Stmt {
9
+ /** @var DeclareItem[] List of declares */
10
+ public array $declares;
11
+ /** @var Node\Stmt[]|null Statements */
12
+ public ?array $stmts;
13
+
14
+ /**
15
+ * Constructs a declare node.
16
+ *
17
+ * @param DeclareItem[] $declares List of declares
18
+ * @param Node\Stmt[]|null $stmts Statements
19
+ * @param array<string, mixed> $attributes Additional attributes
20
+ */
21
+ public function __construct(array $declares, ?array $stmts = null, array $attributes = []) {
22
+ $this->attributes = $attributes;
23
+ $this->declares = $declares;
24
+ $this->stmts = $stmts;
25
+ }
26
+
27
+ public function getSubNodeNames(): array {
28
+ return ['declares', 'stmts'];
29
+ }
30
+
31
+ public function getType(): string {
32
+ return 'Stmt_Declare';
33
+ }
34
+ }