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,150 @@
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace PhpParser\Builder;
6
+
7
+ use PhpParser;
8
+ use PhpParser\BuilderHelpers;
9
+ use PhpParser\Modifiers;
10
+ use PhpParser\Node;
11
+ use PhpParser\Node\Const_;
12
+ use PhpParser\Node\Identifier;
13
+ use PhpParser\Node\Stmt;
14
+
15
+ class ClassConst implements PhpParser\Builder {
16
+ protected int $flags = 0;
17
+ /** @var array<string, mixed> */
18
+ protected array $attributes = [];
19
+ /** @var list<Const_> */
20
+ protected array $constants = [];
21
+
22
+ /** @var list<Node\AttributeGroup> */
23
+ protected array $attributeGroups = [];
24
+ /** @var Identifier|Node\Name|Node\ComplexType|null */
25
+ protected ?Node $type = null;
26
+
27
+ /**
28
+ * Creates a class constant builder
29
+ *
30
+ * @param string|Identifier $name Name
31
+ * @param Node\Expr|bool|null|int|float|string|array|\UnitEnum $value Value
32
+ */
33
+ public function __construct($name, $value) {
34
+ $this->constants = [new Const_($name, BuilderHelpers::normalizeValue($value))];
35
+ }
36
+
37
+ /**
38
+ * Add another constant to const group
39
+ *
40
+ * @param string|Identifier $name Name
41
+ * @param Node\Expr|bool|null|int|float|string|array|\UnitEnum $value Value
42
+ *
43
+ * @return $this The builder instance (for fluid interface)
44
+ */
45
+ public function addConst($name, $value) {
46
+ $this->constants[] = new Const_($name, BuilderHelpers::normalizeValue($value));
47
+
48
+ return $this;
49
+ }
50
+
51
+ /**
52
+ * Makes the constant public.
53
+ *
54
+ * @return $this The builder instance (for fluid interface)
55
+ */
56
+ public function makePublic() {
57
+ $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PUBLIC);
58
+
59
+ return $this;
60
+ }
61
+
62
+ /**
63
+ * Makes the constant protected.
64
+ *
65
+ * @return $this The builder instance (for fluid interface)
66
+ */
67
+ public function makeProtected() {
68
+ $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PROTECTED);
69
+
70
+ return $this;
71
+ }
72
+
73
+ /**
74
+ * Makes the constant private.
75
+ *
76
+ * @return $this The builder instance (for fluid interface)
77
+ */
78
+ public function makePrivate() {
79
+ $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PRIVATE);
80
+
81
+ return $this;
82
+ }
83
+
84
+ /**
85
+ * Makes the constant final.
86
+ *
87
+ * @return $this The builder instance (for fluid interface)
88
+ */
89
+ public function makeFinal() {
90
+ $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::FINAL);
91
+
92
+ return $this;
93
+ }
94
+
95
+ /**
96
+ * Sets doc comment for the constant.
97
+ *
98
+ * @param PhpParser\Comment\Doc|string $docComment Doc comment to set
99
+ *
100
+ * @return $this The builder instance (for fluid interface)
101
+ */
102
+ public function setDocComment($docComment) {
103
+ $this->attributes = [
104
+ 'comments' => [BuilderHelpers::normalizeDocComment($docComment)]
105
+ ];
106
+
107
+ return $this;
108
+ }
109
+
110
+ /**
111
+ * Adds an attribute group.
112
+ *
113
+ * @param Node\Attribute|Node\AttributeGroup $attribute
114
+ *
115
+ * @return $this The builder instance (for fluid interface)
116
+ */
117
+ public function addAttribute($attribute) {
118
+ $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
119
+
120
+ return $this;
121
+ }
122
+
123
+ /**
124
+ * Sets the constant type.
125
+ *
126
+ * @param string|Node\Name|Identifier|Node\ComplexType $type
127
+ *
128
+ * @return $this
129
+ */
130
+ public function setType($type) {
131
+ $this->type = BuilderHelpers::normalizeType($type);
132
+
133
+ return $this;
134
+ }
135
+
136
+ /**
137
+ * Returns the built class node.
138
+ *
139
+ * @return Stmt\ClassConst The built constant node
140
+ */
141
+ public function getNode(): PhpParser\Node {
142
+ return new Stmt\ClassConst(
143
+ $this->constants,
144
+ $this->flags,
145
+ $this->attributes,
146
+ $this->attributeGroups,
147
+ $this->type
148
+ );
149
+ }
150
+ }
@@ -0,0 +1,151 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Builder;
4
+
5
+ use PhpParser;
6
+ use PhpParser\BuilderHelpers;
7
+ use PhpParser\Modifiers;
8
+ use PhpParser\Node;
9
+ use PhpParser\Node\Name;
10
+ use PhpParser\Node\Stmt;
11
+
12
+ class Class_ extends Declaration {
13
+ protected string $name;
14
+ protected ?Name $extends = null;
15
+ /** @var list<Name> */
16
+ protected array $implements = [];
17
+ protected int $flags = 0;
18
+ /** @var list<Stmt\TraitUse> */
19
+ protected array $uses = [];
20
+ /** @var list<Stmt\ClassConst> */
21
+ protected array $constants = [];
22
+ /** @var list<Stmt\Property> */
23
+ protected array $properties = [];
24
+ /** @var list<Stmt\ClassMethod> */
25
+ protected array $methods = [];
26
+ /** @var list<Node\AttributeGroup> */
27
+ protected array $attributeGroups = [];
28
+
29
+ /**
30
+ * Creates a class builder.
31
+ *
32
+ * @param string $name Name of the class
33
+ */
34
+ public function __construct(string $name) {
35
+ $this->name = $name;
36
+ }
37
+
38
+ /**
39
+ * Extends a class.
40
+ *
41
+ * @param Name|string $class Name of class to extend
42
+ *
43
+ * @return $this The builder instance (for fluid interface)
44
+ */
45
+ public function extend($class) {
46
+ $this->extends = BuilderHelpers::normalizeName($class);
47
+
48
+ return $this;
49
+ }
50
+
51
+ /**
52
+ * Implements one or more interfaces.
53
+ *
54
+ * @param Name|string ...$interfaces Names of interfaces to implement
55
+ *
56
+ * @return $this The builder instance (for fluid interface)
57
+ */
58
+ public function implement(...$interfaces) {
59
+ foreach ($interfaces as $interface) {
60
+ $this->implements[] = BuilderHelpers::normalizeName($interface);
61
+ }
62
+
63
+ return $this;
64
+ }
65
+
66
+ /**
67
+ * Makes the class abstract.
68
+ *
69
+ * @return $this The builder instance (for fluid interface)
70
+ */
71
+ public function makeAbstract() {
72
+ $this->flags = BuilderHelpers::addClassModifier($this->flags, Modifiers::ABSTRACT);
73
+
74
+ return $this;
75
+ }
76
+
77
+ /**
78
+ * Makes the class final.
79
+ *
80
+ * @return $this The builder instance (for fluid interface)
81
+ */
82
+ public function makeFinal() {
83
+ $this->flags = BuilderHelpers::addClassModifier($this->flags, Modifiers::FINAL);
84
+
85
+ return $this;
86
+ }
87
+
88
+ /**
89
+ * Makes the class readonly.
90
+ *
91
+ * @return $this The builder instance (for fluid interface)
92
+ */
93
+ public function makeReadonly() {
94
+ $this->flags = BuilderHelpers::addClassModifier($this->flags, Modifiers::READONLY);
95
+
96
+ return $this;
97
+ }
98
+
99
+ /**
100
+ * Adds a statement.
101
+ *
102
+ * @param Stmt|PhpParser\Builder $stmt The statement to add
103
+ *
104
+ * @return $this The builder instance (for fluid interface)
105
+ */
106
+ public function addStmt($stmt) {
107
+ $stmt = BuilderHelpers::normalizeNode($stmt);
108
+
109
+ if ($stmt instanceof Stmt\Property) {
110
+ $this->properties[] = $stmt;
111
+ } elseif ($stmt instanceof Stmt\ClassMethod) {
112
+ $this->methods[] = $stmt;
113
+ } elseif ($stmt instanceof Stmt\TraitUse) {
114
+ $this->uses[] = $stmt;
115
+ } elseif ($stmt instanceof Stmt\ClassConst) {
116
+ $this->constants[] = $stmt;
117
+ } else {
118
+ throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType()));
119
+ }
120
+
121
+ return $this;
122
+ }
123
+
124
+ /**
125
+ * Adds an attribute group.
126
+ *
127
+ * @param Node\Attribute|Node\AttributeGroup $attribute
128
+ *
129
+ * @return $this The builder instance (for fluid interface)
130
+ */
131
+ public function addAttribute($attribute) {
132
+ $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
133
+
134
+ return $this;
135
+ }
136
+
137
+ /**
138
+ * Returns the built class node.
139
+ *
140
+ * @return Stmt\Class_ The built class node
141
+ */
142
+ public function getNode(): PhpParser\Node {
143
+ return new Stmt\Class_($this->name, [
144
+ 'flags' => $this->flags,
145
+ 'extends' => $this->extends,
146
+ 'implements' => $this->implements,
147
+ 'stmts' => array_merge($this->uses, $this->constants, $this->properties, $this->methods),
148
+ 'attrGroups' => $this->attributeGroups,
149
+ ], $this->attributes);
150
+ }
151
+ }
@@ -0,0 +1,50 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Builder;
4
+
5
+ use PhpParser;
6
+ use PhpParser\BuilderHelpers;
7
+
8
+ abstract class Declaration implements PhpParser\Builder {
9
+ /** @var array<string, mixed> */
10
+ protected array $attributes = [];
11
+
12
+ /**
13
+ * Adds a statement.
14
+ *
15
+ * @param PhpParser\Node\Stmt|PhpParser\Builder $stmt The statement to add
16
+ *
17
+ * @return $this The builder instance (for fluid interface)
18
+ */
19
+ abstract public function addStmt($stmt);
20
+
21
+ /**
22
+ * Adds multiple statements.
23
+ *
24
+ * @param (PhpParser\Node\Stmt|PhpParser\Builder)[] $stmts The statements to add
25
+ *
26
+ * @return $this The builder instance (for fluid interface)
27
+ */
28
+ public function addStmts(array $stmts) {
29
+ foreach ($stmts as $stmt) {
30
+ $this->addStmt($stmt);
31
+ }
32
+
33
+ return $this;
34
+ }
35
+
36
+ /**
37
+ * Sets doc comment for the declaration.
38
+ *
39
+ * @param PhpParser\Comment\Doc|string $docComment Doc comment to set
40
+ *
41
+ * @return $this The builder instance (for fluid interface)
42
+ */
43
+ public function setDocComment($docComment) {
44
+ $this->attributes['comments'] = [
45
+ BuilderHelpers::normalizeDocComment($docComment)
46
+ ];
47
+
48
+ return $this;
49
+ }
50
+ }
@@ -0,0 +1,86 @@
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ namespace PhpParser\Builder;
6
+
7
+ use PhpParser;
8
+ use PhpParser\BuilderHelpers;
9
+ use PhpParser\Node;
10
+ use PhpParser\Node\Identifier;
11
+ use PhpParser\Node\Stmt;
12
+
13
+ class EnumCase implements PhpParser\Builder {
14
+ /** @var Identifier|string */
15
+ protected $name;
16
+ protected ?Node\Expr $value = null;
17
+ /** @var array<string, mixed> */
18
+ protected array $attributes = [];
19
+
20
+ /** @var list<Node\AttributeGroup> */
21
+ protected array $attributeGroups = [];
22
+
23
+ /**
24
+ * Creates an enum case builder.
25
+ *
26
+ * @param string|Identifier $name Name
27
+ */
28
+ public function __construct($name) {
29
+ $this->name = $name;
30
+ }
31
+
32
+ /**
33
+ * Sets the value.
34
+ *
35
+ * @param Node\Expr|string|int $value
36
+ *
37
+ * @return $this
38
+ */
39
+ public function setValue($value) {
40
+ $this->value = BuilderHelpers::normalizeValue($value);
41
+
42
+ return $this;
43
+ }
44
+
45
+ /**
46
+ * Sets doc comment for the constant.
47
+ *
48
+ * @param PhpParser\Comment\Doc|string $docComment Doc comment to set
49
+ *
50
+ * @return $this The builder instance (for fluid interface)
51
+ */
52
+ public function setDocComment($docComment) {
53
+ $this->attributes = [
54
+ 'comments' => [BuilderHelpers::normalizeDocComment($docComment)]
55
+ ];
56
+
57
+ return $this;
58
+ }
59
+
60
+ /**
61
+ * Adds an attribute group.
62
+ *
63
+ * @param Node\Attribute|Node\AttributeGroup $attribute
64
+ *
65
+ * @return $this The builder instance (for fluid interface)
66
+ */
67
+ public function addAttribute($attribute) {
68
+ $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
69
+
70
+ return $this;
71
+ }
72
+
73
+ /**
74
+ * Returns the built enum case node.
75
+ *
76
+ * @return Stmt\EnumCase The built constant node
77
+ */
78
+ public function getNode(): PhpParser\Node {
79
+ return new Stmt\EnumCase(
80
+ $this->name,
81
+ $this->value,
82
+ $this->attributeGroups,
83
+ $this->attributes
84
+ );
85
+ }
86
+ }
@@ -0,0 +1,116 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Builder;
4
+
5
+ use PhpParser;
6
+ use PhpParser\BuilderHelpers;
7
+ use PhpParser\Node;
8
+ use PhpParser\Node\Identifier;
9
+ use PhpParser\Node\Name;
10
+ use PhpParser\Node\Stmt;
11
+
12
+ class Enum_ extends Declaration {
13
+ protected string $name;
14
+ protected ?Identifier $scalarType = null;
15
+ /** @var list<Name> */
16
+ protected array $implements = [];
17
+ /** @var list<Stmt\TraitUse> */
18
+ protected array $uses = [];
19
+ /** @var list<Stmt\EnumCase> */
20
+ protected array $enumCases = [];
21
+ /** @var list<Stmt\ClassConst> */
22
+ protected array $constants = [];
23
+ /** @var list<Stmt\ClassMethod> */
24
+ protected array $methods = [];
25
+ /** @var list<Node\AttributeGroup> */
26
+ protected array $attributeGroups = [];
27
+
28
+ /**
29
+ * Creates an enum builder.
30
+ *
31
+ * @param string $name Name of the enum
32
+ */
33
+ public function __construct(string $name) {
34
+ $this->name = $name;
35
+ }
36
+
37
+ /**
38
+ * Sets the scalar type.
39
+ *
40
+ * @param string|Identifier $scalarType
41
+ *
42
+ * @return $this
43
+ */
44
+ public function setScalarType($scalarType) {
45
+ $this->scalarType = BuilderHelpers::normalizeType($scalarType);
46
+
47
+ return $this;
48
+ }
49
+
50
+ /**
51
+ * Implements one or more interfaces.
52
+ *
53
+ * @param Name|string ...$interfaces Names of interfaces to implement
54
+ *
55
+ * @return $this The builder instance (for fluid interface)
56
+ */
57
+ public function implement(...$interfaces) {
58
+ foreach ($interfaces as $interface) {
59
+ $this->implements[] = BuilderHelpers::normalizeName($interface);
60
+ }
61
+
62
+ return $this;
63
+ }
64
+
65
+ /**
66
+ * Adds a statement.
67
+ *
68
+ * @param Stmt|PhpParser\Builder $stmt The statement to add
69
+ *
70
+ * @return $this The builder instance (for fluid interface)
71
+ */
72
+ public function addStmt($stmt) {
73
+ $stmt = BuilderHelpers::normalizeNode($stmt);
74
+
75
+ if ($stmt instanceof Stmt\EnumCase) {
76
+ $this->enumCases[] = $stmt;
77
+ } elseif ($stmt instanceof Stmt\ClassMethod) {
78
+ $this->methods[] = $stmt;
79
+ } elseif ($stmt instanceof Stmt\TraitUse) {
80
+ $this->uses[] = $stmt;
81
+ } elseif ($stmt instanceof Stmt\ClassConst) {
82
+ $this->constants[] = $stmt;
83
+ } else {
84
+ throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType()));
85
+ }
86
+
87
+ return $this;
88
+ }
89
+
90
+ /**
91
+ * Adds an attribute group.
92
+ *
93
+ * @param Node\Attribute|Node\AttributeGroup $attribute
94
+ *
95
+ * @return $this The builder instance (for fluid interface)
96
+ */
97
+ public function addAttribute($attribute) {
98
+ $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
99
+
100
+ return $this;
101
+ }
102
+
103
+ /**
104
+ * Returns the built class node.
105
+ *
106
+ * @return Stmt\Enum_ The built enum node
107
+ */
108
+ public function getNode(): PhpParser\Node {
109
+ return new Stmt\Enum_($this->name, [
110
+ 'scalarType' => $this->scalarType,
111
+ 'implements' => $this->implements,
112
+ 'stmts' => array_merge($this->uses, $this->enumCases, $this->constants, $this->methods),
113
+ 'attrGroups' => $this->attributeGroups,
114
+ ], $this->attributes);
115
+ }
116
+ }
@@ -0,0 +1,73 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Builder;
4
+
5
+ use PhpParser\BuilderHelpers;
6
+ use PhpParser\Node;
7
+
8
+ abstract class FunctionLike extends Declaration {
9
+ protected bool $returnByRef = false;
10
+ /** @var Node\Param[] */
11
+ protected array $params = [];
12
+
13
+ /** @var Node\Identifier|Node\Name|Node\ComplexType|null */
14
+ protected ?Node $returnType = null;
15
+
16
+ /**
17
+ * Make the function return by reference.
18
+ *
19
+ * @return $this The builder instance (for fluid interface)
20
+ */
21
+ public function makeReturnByRef() {
22
+ $this->returnByRef = true;
23
+
24
+ return $this;
25
+ }
26
+
27
+ /**
28
+ * Adds a parameter.
29
+ *
30
+ * @param Node\Param|Param $param The parameter to add
31
+ *
32
+ * @return $this The builder instance (for fluid interface)
33
+ */
34
+ public function addParam($param) {
35
+ $param = BuilderHelpers::normalizeNode($param);
36
+
37
+ if (!$param instanceof Node\Param) {
38
+ throw new \LogicException(sprintf('Expected parameter node, got "%s"', $param->getType()));
39
+ }
40
+
41
+ $this->params[] = $param;
42
+
43
+ return $this;
44
+ }
45
+
46
+ /**
47
+ * Adds multiple parameters.
48
+ *
49
+ * @param (Node\Param|Param)[] $params The parameters to add
50
+ *
51
+ * @return $this The builder instance (for fluid interface)
52
+ */
53
+ public function addParams(array $params) {
54
+ foreach ($params as $param) {
55
+ $this->addParam($param);
56
+ }
57
+
58
+ return $this;
59
+ }
60
+
61
+ /**
62
+ * Sets the return type for PHP 7.
63
+ *
64
+ * @param string|Node\Name|Node\Identifier|Node\ComplexType $type
65
+ *
66
+ * @return $this The builder instance (for fluid interface)
67
+ */
68
+ public function setReturnType($type) {
69
+ $this->returnType = BuilderHelpers::normalizeType($type);
70
+
71
+ return $this;
72
+ }
73
+ }
@@ -0,0 +1,67 @@
1
+ <?php declare(strict_types=1);
2
+
3
+ namespace PhpParser\Builder;
4
+
5
+ use PhpParser;
6
+ use PhpParser\BuilderHelpers;
7
+ use PhpParser\Node;
8
+ use PhpParser\Node\Stmt;
9
+
10
+ class Function_ extends FunctionLike {
11
+ protected string $name;
12
+ /** @var list<Stmt> */
13
+ protected array $stmts = [];
14
+
15
+ /** @var list<Node\AttributeGroup> */
16
+ protected array $attributeGroups = [];
17
+
18
+ /**
19
+ * Creates a function builder.
20
+ *
21
+ * @param string $name Name of the function
22
+ */
23
+ public function __construct(string $name) {
24
+ $this->name = $name;
25
+ }
26
+
27
+ /**
28
+ * Adds a statement.
29
+ *
30
+ * @param Node|PhpParser\Builder $stmt The statement to add
31
+ *
32
+ * @return $this The builder instance (for fluid interface)
33
+ */
34
+ public function addStmt($stmt) {
35
+ $this->stmts[] = BuilderHelpers::normalizeStmt($stmt);
36
+
37
+ return $this;
38
+ }
39
+
40
+ /**
41
+ * Adds an attribute group.
42
+ *
43
+ * @param Node\Attribute|Node\AttributeGroup $attribute
44
+ *
45
+ * @return $this The builder instance (for fluid interface)
46
+ */
47
+ public function addAttribute($attribute) {
48
+ $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
49
+
50
+ return $this;
51
+ }
52
+
53
+ /**
54
+ * Returns the built function node.
55
+ *
56
+ * @return Stmt\Function_ The built function node
57
+ */
58
+ public function getNode(): Node {
59
+ return new Stmt\Function_($this->name, [
60
+ 'byRef' => $this->returnByRef,
61
+ 'params' => $this->params,
62
+ 'returnType' => $this->returnType,
63
+ 'stmts' => $this->stmts,
64
+ 'attrGroups' => $this->attributeGroups,
65
+ ], $this->attributes);
66
+ }
67
+ }