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.
- webshell_analyzer/__init__.py +0 -0
- webshell_analyzer/cli/__init__.py +0 -0
- webshell_analyzer/cli/cli.py +151 -0
- webshell_analyzer/extractor/ast_extraction/composer.json +5 -0
- webshell_analyzer/extractor/ast_extraction/composer.lock +77 -0
- webshell_analyzer/extractor/ast_extraction/src/NodeVisitor.php +85 -0
- webshell_analyzer/extractor/ast_extraction/src/astBuilder.php +50 -0
- webshell_analyzer/extractor/ast_extraction/src/astExtractor.php +50 -0
- webshell_analyzer/extractor/ast_extraction/src/featuresDeclare.php +36 -0
- webshell_analyzer/extractor/ast_extraction/vendor/autoload.php +25 -0
- webshell_analyzer/extractor/ast_extraction/vendor/composer/ClassLoader.php +579 -0
- webshell_analyzer/extractor/ast_extraction/vendor/composer/InstalledVersions.php +378 -0
- webshell_analyzer/extractor/ast_extraction/vendor/composer/autoload_classmap.php +10 -0
- webshell_analyzer/extractor/ast_extraction/vendor/composer/autoload_namespaces.php +9 -0
- webshell_analyzer/extractor/ast_extraction/vendor/composer/autoload_psr4.php +10 -0
- webshell_analyzer/extractor/ast_extraction/vendor/composer/autoload_real.php +38 -0
- webshell_analyzer/extractor/ast_extraction/vendor/composer/autoload_static.php +36 -0
- webshell_analyzer/extractor/ast_extraction/vendor/composer/installed.json +67 -0
- webshell_analyzer/extractor/ast_extraction/vendor/composer/installed.php +32 -0
- webshell_analyzer/extractor/ast_extraction/vendor/composer/platform_check.php +26 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +150 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php +151 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +50 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php +86 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php +116 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +73 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php +67 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php +94 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php +147 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +45 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php +171 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php +223 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php +65 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php +145 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +83 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php +49 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder.php +12 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php +375 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +338 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php +6 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Comment.php +209 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php +6 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +237 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Error.php +173 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php +43 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +17 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php +12 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php +31 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Internal/Differ.php +178 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +71 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php +237 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +282 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php +108 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +230 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AsymmetricVisibilityTokenEmulator.php +93 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php +49 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php +26 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php +45 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +60 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php +19 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php +60 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/PipeOperatorEmulator.php +45 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/PropertyTokenEmulator.php +19 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php +31 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php +31 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php +37 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php +30 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/VoidCastEmulator.php +98 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Lexer.php +116 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Modifiers.php +85 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NameContext.php +284 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php +44 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php +43 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Attribute.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php +27 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php +36 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php +13 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php +36 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php +37 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +34 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +84 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pipe.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +37 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +60 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php +16 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Void_.php +11 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +25 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +36 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +86 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +30 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +30 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +38 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +38 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +35 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +34 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php +32 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +45 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +40 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +45 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php +35 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +35 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +30 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +45 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +36 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +37 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php +8 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +40 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php +85 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php +32 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php +27 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/MatchArm.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +49 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php +49 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php +278 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php +123 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/PropertyHook.php +105 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php +37 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +17 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php +78 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php +82 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php +34 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Property.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +27 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +161 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php +6 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/StaticVar.php +39 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +40 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +77 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +109 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +154 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +94 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +37 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +17 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +34 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +36 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php +44 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +32 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +47 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +50 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +81 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +30 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +41 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +46 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +40 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +30 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +37 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +16 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +121 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +17 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +15 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +30 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php +37 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +12 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +34 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +37 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +29 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +17 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +47 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +33 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt.php +8 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php +27 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/UseItem.php +55 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php +16 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php +27 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node.php +150 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php +181 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php +299 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeFinder.php +90 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php +287 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +26 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php +19 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php +82 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php +47 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php +49 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +269 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php +73 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php +51 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor.php +124 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +24 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php +2919 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Parser/Php8.php +2917 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Parser.php +24 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php +1335 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php +42 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/PhpVersion.php +175 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +1232 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter.php +51 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +1706 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Token.php +18 -0
- webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/compatibility_tokens.php +71 -0
- webshell_analyzer/extractor/extractor.py +73 -0
- webshell_analyzer/extractor/lexical_extraction/lexicalExtractor.py +31 -0
- webshell_analyzer/extractor/statistical_extraction/statisticalExtractor.py +60 -0
- webshell_analyzer/model/features_selected.json +1 -0
- webshell_analyzer/model/model_loader.py +19 -0
- webshell_analyzer/model/rf_webshell_model.joblib +0 -0
- webshell_analyzer/modules/__init__.py +0 -0
- webshell_analyzer/modules/detector.py +174 -0
- webshell_analyzer/modules/scanner.py +68 -0
- webshell_analyzer-1.0.0.dist-info/METADATA +105 -0
- webshell_analyzer-1.0.0.dist-info/RECORD +304 -0
- webshell_analyzer-1.0.0.dist-info/WHEEL +5 -0
- webshell_analyzer-1.0.0.dist-info/entry_points.txt +2 -0
- webshell_analyzer-1.0.0.dist-info/licenses/LICENSE +21 -0
- 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
|
+
}
|
webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php
ADDED
|
@@ -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
|
+
}
|
webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php
ADDED
|
@@ -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
|
+
}
|