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,37 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node;
|
|
6
|
+
use PhpParser\NodeAbstract;
|
|
7
|
+
|
|
8
|
+
class PropertyItem extends NodeAbstract {
|
|
9
|
+
/** @var Node\VarLikeIdentifier Name */
|
|
10
|
+
public VarLikeIdentifier $name;
|
|
11
|
+
/** @var null|Node\Expr Default */
|
|
12
|
+
public ?Expr $default;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Constructs a class property item node.
|
|
16
|
+
*
|
|
17
|
+
* @param string|Node\VarLikeIdentifier $name Name
|
|
18
|
+
* @param null|Node\Expr $default Default value
|
|
19
|
+
* @param array<string, mixed> $attributes Additional attributes
|
|
20
|
+
*/
|
|
21
|
+
public function __construct($name, ?Node\Expr $default = null, array $attributes = []) {
|
|
22
|
+
$this->attributes = $attributes;
|
|
23
|
+
$this->name = \is_string($name) ? new Node\VarLikeIdentifier($name) : $name;
|
|
24
|
+
$this->default = $default;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public function getSubNodeNames(): array {
|
|
28
|
+
return ['name', 'default'];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public function getType(): string {
|
|
32
|
+
return 'PropertyItem';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// @deprecated compatibility alias
|
|
37
|
+
class_alias(PropertyItem::class, Stmt\PropertyProperty::class);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar;
|
|
4
|
+
|
|
5
|
+
require __DIR__ . '/Float_.php';
|
|
6
|
+
|
|
7
|
+
if (false) {
|
|
8
|
+
/**
|
|
9
|
+
* For classmap-authoritative support.
|
|
10
|
+
*
|
|
11
|
+
* @deprecated use \PhpParser\Node\Scalar\Float_ instead.
|
|
12
|
+
*/
|
|
13
|
+
class DNumber extends Float_ {
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar;
|
|
4
|
+
|
|
5
|
+
require __DIR__ . '/InterpolatedString.php';
|
|
6
|
+
|
|
7
|
+
if (false) {
|
|
8
|
+
/**
|
|
9
|
+
* For classmap-authoritative support.
|
|
10
|
+
*
|
|
11
|
+
* @deprecated use \PhpParser\Node\Scalar\InterpolatedString instead.
|
|
12
|
+
*/
|
|
13
|
+
class Encapsed extends InterpolatedString {
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\InterpolatedStringPart;
|
|
6
|
+
|
|
7
|
+
require __DIR__ . '/../InterpolatedStringPart.php';
|
|
8
|
+
|
|
9
|
+
if (false) {
|
|
10
|
+
/**
|
|
11
|
+
* For classmap-authoritative support.
|
|
12
|
+
*
|
|
13
|
+
* @deprecated use \PhpParser\Node\InterpolatedStringPart instead.
|
|
14
|
+
*/
|
|
15
|
+
class EncapsedStringPart extends InterpolatedStringPart {
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\Scalar;
|
|
6
|
+
|
|
7
|
+
class Float_ extends Scalar {
|
|
8
|
+
/** @var float Number value */
|
|
9
|
+
public float $value;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Constructs a float number scalar node.
|
|
13
|
+
*
|
|
14
|
+
* @param float $value Value of the number
|
|
15
|
+
* @param array<string, mixed> $attributes Additional attributes
|
|
16
|
+
*/
|
|
17
|
+
public function __construct(float $value, array $attributes = []) {
|
|
18
|
+
$this->attributes = $attributes;
|
|
19
|
+
$this->value = $value;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public function getSubNodeNames(): array {
|
|
23
|
+
return ['value'];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @param mixed[] $attributes
|
|
28
|
+
*/
|
|
29
|
+
public static function fromString(string $str, array $attributes = []): Float_ {
|
|
30
|
+
$attributes['rawValue'] = $str;
|
|
31
|
+
$float = self::parse($str);
|
|
32
|
+
|
|
33
|
+
return new Float_($float, $attributes);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*
|
|
39
|
+
* Parses a DNUMBER token like PHP would.
|
|
40
|
+
*
|
|
41
|
+
* @param string $str A string number
|
|
42
|
+
*
|
|
43
|
+
* @return float The parsed number
|
|
44
|
+
*/
|
|
45
|
+
public static function parse(string $str): float {
|
|
46
|
+
$str = str_replace('_', '', $str);
|
|
47
|
+
|
|
48
|
+
// Check whether this is one of the special integer notations.
|
|
49
|
+
if ('0' === $str[0]) {
|
|
50
|
+
// hex
|
|
51
|
+
if ('x' === $str[1] || 'X' === $str[1]) {
|
|
52
|
+
return hexdec($str);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// bin
|
|
56
|
+
if ('b' === $str[1] || 'B' === $str[1]) {
|
|
57
|
+
return bindec($str);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// oct, but only if the string does not contain any of '.eE'.
|
|
61
|
+
if (false === strpbrk($str, '.eE')) {
|
|
62
|
+
// substr($str, 0, strcspn($str, '89')) cuts the string at the first invalid digit
|
|
63
|
+
// (8 or 9) so that only the digits before that are used.
|
|
64
|
+
return octdec(substr($str, 0, strcspn($str, '89')));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// dec
|
|
69
|
+
return (float) $str;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
public function getType(): string {
|
|
73
|
+
return 'Scalar_Float';
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// @deprecated compatibility alias
|
|
78
|
+
class_alias(Float_::class, DNumber::class);
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Error;
|
|
6
|
+
use PhpParser\Node\Scalar;
|
|
7
|
+
|
|
8
|
+
class Int_ extends Scalar {
|
|
9
|
+
/* For use in "kind" attribute */
|
|
10
|
+
public const KIND_BIN = 2;
|
|
11
|
+
public const KIND_OCT = 8;
|
|
12
|
+
public const KIND_DEC = 10;
|
|
13
|
+
public const KIND_HEX = 16;
|
|
14
|
+
|
|
15
|
+
/** @var int Number value */
|
|
16
|
+
public int $value;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Constructs an integer number scalar node.
|
|
20
|
+
*
|
|
21
|
+
* @param int $value Value of the number
|
|
22
|
+
* @param array<string, mixed> $attributes Additional attributes
|
|
23
|
+
*/
|
|
24
|
+
public function __construct(int $value, array $attributes = []) {
|
|
25
|
+
$this->attributes = $attributes;
|
|
26
|
+
$this->value = $value;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public function getSubNodeNames(): array {
|
|
30
|
+
return ['value'];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Constructs an Int node from a string number literal.
|
|
35
|
+
*
|
|
36
|
+
* @param string $str String number literal (decimal, octal, hex or binary)
|
|
37
|
+
* @param array<string, mixed> $attributes Additional attributes
|
|
38
|
+
* @param bool $allowInvalidOctal Whether to allow invalid octal numbers (PHP 5)
|
|
39
|
+
*
|
|
40
|
+
* @return Int_ The constructed LNumber, including kind attribute
|
|
41
|
+
*/
|
|
42
|
+
public static function fromString(string $str, array $attributes = [], bool $allowInvalidOctal = false): Int_ {
|
|
43
|
+
$attributes['rawValue'] = $str;
|
|
44
|
+
|
|
45
|
+
$str = str_replace('_', '', $str);
|
|
46
|
+
|
|
47
|
+
if ('0' !== $str[0] || '0' === $str) {
|
|
48
|
+
$attributes['kind'] = Int_::KIND_DEC;
|
|
49
|
+
return new Int_((int) $str, $attributes);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if ('x' === $str[1] || 'X' === $str[1]) {
|
|
53
|
+
$attributes['kind'] = Int_::KIND_HEX;
|
|
54
|
+
return new Int_(hexdec($str), $attributes);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if ('b' === $str[1] || 'B' === $str[1]) {
|
|
58
|
+
$attributes['kind'] = Int_::KIND_BIN;
|
|
59
|
+
return new Int_(bindec($str), $attributes);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (!$allowInvalidOctal && strpbrk($str, '89')) {
|
|
63
|
+
throw new Error('Invalid numeric literal', $attributes);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Strip optional explicit octal prefix.
|
|
67
|
+
if ('o' === $str[1] || 'O' === $str[1]) {
|
|
68
|
+
$str = substr($str, 2);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// use intval instead of octdec to get proper cutting behavior with malformed numbers
|
|
72
|
+
$attributes['kind'] = Int_::KIND_OCT;
|
|
73
|
+
return new Int_(intval($str, 8), $attributes);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
public function getType(): string {
|
|
77
|
+
return 'Scalar_Int';
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// @deprecated compatibility alias
|
|
82
|
+
class_alias(Int_::class, LNumber::class);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\Expr;
|
|
6
|
+
use PhpParser\Node\InterpolatedStringPart;
|
|
7
|
+
use PhpParser\Node\Scalar;
|
|
8
|
+
|
|
9
|
+
class InterpolatedString extends Scalar {
|
|
10
|
+
/** @var (Expr|InterpolatedStringPart)[] list of string parts */
|
|
11
|
+
public array $parts;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Constructs an interpolated string node.
|
|
15
|
+
*
|
|
16
|
+
* @param (Expr|InterpolatedStringPart)[] $parts Interpolated string parts
|
|
17
|
+
* @param array<string, mixed> $attributes Additional attributes
|
|
18
|
+
*/
|
|
19
|
+
public function __construct(array $parts, array $attributes = []) {
|
|
20
|
+
$this->attributes = $attributes;
|
|
21
|
+
$this->parts = $parts;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public function getSubNodeNames(): array {
|
|
25
|
+
return ['parts'];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public function getType(): string {
|
|
29
|
+
return 'Scalar_InterpolatedString';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// @deprecated compatibility alias
|
|
34
|
+
class_alias(InterpolatedString::class, Encapsed::class);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar;
|
|
4
|
+
|
|
5
|
+
require __DIR__ . '/Int_.php';
|
|
6
|
+
|
|
7
|
+
if (false) {
|
|
8
|
+
/**
|
|
9
|
+
* For classmap-authoritative support.
|
|
10
|
+
*
|
|
11
|
+
* @deprecated use \PhpParser\Node\Scalar\Int_ instead.
|
|
12
|
+
*/
|
|
13
|
+
class LNumber extends Int_ {
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar\MagicConst;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\Scalar\MagicConst;
|
|
6
|
+
|
|
7
|
+
class Class_ extends MagicConst {
|
|
8
|
+
public function getName(): string {
|
|
9
|
+
return '__CLASS__';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public function getType(): string {
|
|
13
|
+
return 'Scalar_MagicConst_Class';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar\MagicConst;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\Scalar\MagicConst;
|
|
6
|
+
|
|
7
|
+
class Dir extends MagicConst {
|
|
8
|
+
public function getName(): string {
|
|
9
|
+
return '__DIR__';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public function getType(): string {
|
|
13
|
+
return 'Scalar_MagicConst_Dir';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar\MagicConst;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\Scalar\MagicConst;
|
|
6
|
+
|
|
7
|
+
class File extends MagicConst {
|
|
8
|
+
public function getName(): string {
|
|
9
|
+
return '__FILE__';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public function getType(): string {
|
|
13
|
+
return 'Scalar_MagicConst_File';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar\MagicConst;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\Scalar\MagicConst;
|
|
6
|
+
|
|
7
|
+
class Function_ extends MagicConst {
|
|
8
|
+
public function getName(): string {
|
|
9
|
+
return '__FUNCTION__';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public function getType(): string {
|
|
13
|
+
return 'Scalar_MagicConst_Function';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar\MagicConst;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\Scalar\MagicConst;
|
|
6
|
+
|
|
7
|
+
class Line extends MagicConst {
|
|
8
|
+
public function getName(): string {
|
|
9
|
+
return '__LINE__';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public function getType(): string {
|
|
13
|
+
return 'Scalar_MagicConst_Line';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar\MagicConst;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\Scalar\MagicConst;
|
|
6
|
+
|
|
7
|
+
class Method extends MagicConst {
|
|
8
|
+
public function getName(): string {
|
|
9
|
+
return '__METHOD__';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public function getType(): string {
|
|
13
|
+
return 'Scalar_MagicConst_Method';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar\MagicConst;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\Scalar\MagicConst;
|
|
6
|
+
|
|
7
|
+
class Namespace_ extends MagicConst {
|
|
8
|
+
public function getName(): string {
|
|
9
|
+
return '__NAMESPACE__';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public function getType(): string {
|
|
13
|
+
return 'Scalar_MagicConst_Namespace';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar\MagicConst;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\Scalar\MagicConst;
|
|
6
|
+
|
|
7
|
+
class Property extends MagicConst {
|
|
8
|
+
public function getName(): string {
|
|
9
|
+
return '__PROPERTY__';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public function getType(): string {
|
|
13
|
+
return 'Scalar_MagicConst_Property';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar\MagicConst;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\Scalar\MagicConst;
|
|
6
|
+
|
|
7
|
+
class Trait_ extends MagicConst {
|
|
8
|
+
public function getName(): string {
|
|
9
|
+
return '__TRAIT__';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public function getType(): string {
|
|
13
|
+
return 'Scalar_MagicConst_Trait';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node\Scalar;
|
|
6
|
+
|
|
7
|
+
abstract class MagicConst extends Scalar {
|
|
8
|
+
/**
|
|
9
|
+
* Constructs a magic constant node.
|
|
10
|
+
*
|
|
11
|
+
* @param array<string, mixed> $attributes Additional attributes
|
|
12
|
+
*/
|
|
13
|
+
public function __construct(array $attributes = []) {
|
|
14
|
+
$this->attributes = $attributes;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
public function getSubNodeNames(): array {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Get name of magic constant.
|
|
23
|
+
*
|
|
24
|
+
* @return string Name of magic constant
|
|
25
|
+
*/
|
|
26
|
+
abstract public function getName(): string;
|
|
27
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node\Scalar;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Error;
|
|
6
|
+
use PhpParser\Node\Scalar;
|
|
7
|
+
|
|
8
|
+
class String_ extends Scalar {
|
|
9
|
+
/* For use in "kind" attribute */
|
|
10
|
+
public const KIND_SINGLE_QUOTED = 1;
|
|
11
|
+
public const KIND_DOUBLE_QUOTED = 2;
|
|
12
|
+
public const KIND_HEREDOC = 3;
|
|
13
|
+
public const KIND_NOWDOC = 4;
|
|
14
|
+
|
|
15
|
+
/** @var string String value */
|
|
16
|
+
public string $value;
|
|
17
|
+
|
|
18
|
+
/** @var array<string, string> Escaped character to its decoded value */
|
|
19
|
+
protected static array $replacements = [
|
|
20
|
+
'\\' => '\\',
|
|
21
|
+
'$' => '$',
|
|
22
|
+
'n' => "\n",
|
|
23
|
+
'r' => "\r",
|
|
24
|
+
't' => "\t",
|
|
25
|
+
'f' => "\f",
|
|
26
|
+
'v' => "\v",
|
|
27
|
+
'e' => "\x1B",
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Constructs a string scalar node.
|
|
32
|
+
*
|
|
33
|
+
* @param string $value Value of the string
|
|
34
|
+
* @param array<string, mixed> $attributes Additional attributes
|
|
35
|
+
*/
|
|
36
|
+
public function __construct(string $value, array $attributes = []) {
|
|
37
|
+
$this->attributes = $attributes;
|
|
38
|
+
$this->value = $value;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public function getSubNodeNames(): array {
|
|
42
|
+
return ['value'];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @param array<string, mixed> $attributes
|
|
47
|
+
* @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes
|
|
48
|
+
*/
|
|
49
|
+
public static function fromString(string $str, array $attributes = [], bool $parseUnicodeEscape = true): self {
|
|
50
|
+
$attributes['kind'] = ($str[0] === "'" || ($str[1] === "'" && ($str[0] === 'b' || $str[0] === 'B')))
|
|
51
|
+
? Scalar\String_::KIND_SINGLE_QUOTED
|
|
52
|
+
: Scalar\String_::KIND_DOUBLE_QUOTED;
|
|
53
|
+
|
|
54
|
+
$attributes['rawValue'] = $str;
|
|
55
|
+
|
|
56
|
+
$string = self::parse($str, $parseUnicodeEscape);
|
|
57
|
+
|
|
58
|
+
return new self($string, $attributes);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @internal
|
|
63
|
+
*
|
|
64
|
+
* Parses a string token.
|
|
65
|
+
*
|
|
66
|
+
* @param string $str String token content
|
|
67
|
+
* @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes
|
|
68
|
+
*
|
|
69
|
+
* @return string The parsed string
|
|
70
|
+
*/
|
|
71
|
+
public static function parse(string $str, bool $parseUnicodeEscape = true): string {
|
|
72
|
+
$bLength = 0;
|
|
73
|
+
if ('b' === $str[0] || 'B' === $str[0]) {
|
|
74
|
+
$bLength = 1;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if ('\'' === $str[$bLength]) {
|
|
78
|
+
return str_replace(
|
|
79
|
+
['\\\\', '\\\''],
|
|
80
|
+
['\\', '\''],
|
|
81
|
+
substr($str, $bLength + 1, -1)
|
|
82
|
+
);
|
|
83
|
+
} else {
|
|
84
|
+
return self::parseEscapeSequences(
|
|
85
|
+
substr($str, $bLength + 1, -1), '"', $parseUnicodeEscape
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @internal
|
|
92
|
+
*
|
|
93
|
+
* Parses escape sequences in strings (all string types apart from single quoted).
|
|
94
|
+
*
|
|
95
|
+
* @param string $str String without quotes
|
|
96
|
+
* @param null|string $quote Quote type
|
|
97
|
+
* @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes
|
|
98
|
+
*
|
|
99
|
+
* @return string String with escape sequences parsed
|
|
100
|
+
*/
|
|
101
|
+
public static function parseEscapeSequences(string $str, ?string $quote, bool $parseUnicodeEscape = true): string {
|
|
102
|
+
if (null !== $quote) {
|
|
103
|
+
$str = str_replace('\\' . $quote, $quote, $str);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
$extra = '';
|
|
107
|
+
if ($parseUnicodeEscape) {
|
|
108
|
+
$extra = '|u\{([0-9a-fA-F]+)\}';
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return preg_replace_callback(
|
|
112
|
+
'~\\\\([\\\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3}' . $extra . ')~',
|
|
113
|
+
function ($matches) {
|
|
114
|
+
$str = $matches[1];
|
|
115
|
+
|
|
116
|
+
if (isset(self::$replacements[$str])) {
|
|
117
|
+
return self::$replacements[$str];
|
|
118
|
+
}
|
|
119
|
+
if ('x' === $str[0] || 'X' === $str[0]) {
|
|
120
|
+
return chr(hexdec(substr($str, 1)));
|
|
121
|
+
}
|
|
122
|
+
if ('u' === $str[0]) {
|
|
123
|
+
$dec = hexdec($matches[2]);
|
|
124
|
+
// If it overflowed to float, treat as INT_MAX, it will throw an error anyway.
|
|
125
|
+
return self::codePointToUtf8(\is_int($dec) ? $dec : \PHP_INT_MAX);
|
|
126
|
+
} else {
|
|
127
|
+
return chr(octdec($str) & 255);
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
$str
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Converts a Unicode code point to its UTF-8 encoded representation.
|
|
136
|
+
*
|
|
137
|
+
* @param int $num Code point
|
|
138
|
+
*
|
|
139
|
+
* @return string UTF-8 representation of code point
|
|
140
|
+
*/
|
|
141
|
+
private static function codePointToUtf8(int $num): string {
|
|
142
|
+
if ($num <= 0x7F) {
|
|
143
|
+
return chr($num);
|
|
144
|
+
}
|
|
145
|
+
if ($num <= 0x7FF) {
|
|
146
|
+
return chr(($num >> 6) + 0xC0) . chr(($num & 0x3F) + 0x80);
|
|
147
|
+
}
|
|
148
|
+
if ($num <= 0xFFFF) {
|
|
149
|
+
return chr(($num >> 12) + 0xE0) . chr((($num >> 6) & 0x3F) + 0x80) . chr(($num & 0x3F) + 0x80);
|
|
150
|
+
}
|
|
151
|
+
if ($num <= 0x1FFFFF) {
|
|
152
|
+
return chr(($num >> 18) + 0xF0) . chr((($num >> 12) & 0x3F) + 0x80)
|
|
153
|
+
. chr((($num >> 6) & 0x3F) + 0x80) . chr(($num & 0x3F) + 0x80);
|
|
154
|
+
}
|
|
155
|
+
throw new Error('Invalid UTF-8 codepoint escape sequence: Codepoint too large');
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
public function getType(): string {
|
|
159
|
+
return 'Scalar_String';
|
|
160
|
+
}
|
|
161
|
+
}
|
webshell_analyzer/extractor/ast_extraction/vendor/nikic/php-parser/lib/PhpParser/Node/StaticVar.php
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<?php declare(strict_types=1);
|
|
2
|
+
|
|
3
|
+
namespace PhpParser\Node;
|
|
4
|
+
|
|
5
|
+
use PhpParser\Node;
|
|
6
|
+
use PhpParser\NodeAbstract;
|
|
7
|
+
|
|
8
|
+
class StaticVar extends NodeAbstract {
|
|
9
|
+
/** @var Expr\Variable Variable */
|
|
10
|
+
public Expr\Variable $var;
|
|
11
|
+
/** @var null|Node\Expr Default value */
|
|
12
|
+
public ?Expr $default;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Constructs a static variable node.
|
|
16
|
+
*
|
|
17
|
+
* @param Expr\Variable $var Name
|
|
18
|
+
* @param null|Node\Expr $default Default value
|
|
19
|
+
* @param array<string, mixed> $attributes Additional attributes
|
|
20
|
+
*/
|
|
21
|
+
public function __construct(
|
|
22
|
+
Expr\Variable $var, ?Node\Expr $default = null, array $attributes = []
|
|
23
|
+
) {
|
|
24
|
+
$this->attributes = $attributes;
|
|
25
|
+
$this->var = $var;
|
|
26
|
+
$this->default = $default;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public function getSubNodeNames(): array {
|
|
30
|
+
return ['var', 'default'];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public function getType(): string {
|
|
34
|
+
return 'StaticVar';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// @deprecated compatibility alias
|
|
39
|
+
class_alias(StaticVar::class, Stmt\StaticVar::class);
|