@appthreat/atom 1.8.1 → 1.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/phpastgen.js +7 -1
- package/plugins/autoload.php +1 -1
- package/plugins/bin/atom +1 -1
- package/plugins/bin/atom.bat +1 -1
- package/plugins/composer/autoload_classmap.php +18 -18
- package/plugins/composer/autoload_real.php +4 -4
- package/plugins/composer/autoload_static.php +22 -22
- package/plugins/composer/installed.json +10 -12
- package/plugins/composer/installed.php +9 -9
- package/plugins/lib/io.appthreat.atom-1.8.2-classpath.jar +0 -0
- package/plugins/lib/{io.appthreat.atom-1.8.1.jar → io.appthreat.atom-1.8.2.jar} +0 -0
- package/plugins/lib/{io.appthreat.c2cpg_3-1.1.3.jar → io.appthreat.c2cpg_3-1.1.4.jar} +0 -0
- package/plugins/lib/{io.appthreat.dataflowengineoss_3-1.1.3.jar → io.appthreat.dataflowengineoss_3-1.1.4.jar} +0 -0
- package/plugins/lib/{io.appthreat.javasrc2cpg_3-1.1.3.jar → io.appthreat.javasrc2cpg_3-1.1.4.jar} +0 -0
- package/plugins/lib/{io.appthreat.jimple2cpg_3-1.1.3.jar → io.appthreat.jimple2cpg_3-1.1.4.jar} +0 -0
- package/plugins/lib/{io.appthreat.jssrc2cpg_3-1.1.3.jar → io.appthreat.jssrc2cpg_3-1.1.4.jar} +0 -0
- package/plugins/lib/{io.appthreat.php2atom_3-1.1.3.jar → io.appthreat.php2atom_3-1.1.4.jar} +0 -0
- package/plugins/lib/{io.appthreat.pysrc2cpg_3-1.1.3.jar → io.appthreat.pysrc2cpg_3-1.1.4.jar} +0 -0
- package/plugins/lib/{io.appthreat.semanticcpg_3-1.1.3.jar → io.appthreat.semanticcpg_3-1.1.4.jar} +0 -0
- package/plugins/lib/{io.appthreat.x2cpg_3-1.1.3.jar → io.appthreat.x2cpg_3-1.1.4.jar} +0 -0
- package/plugins/nikic/php-parser/README.md +12 -20
- package/plugins/nikic/php-parser/bin/php-parse +10 -11
- package/plugins/nikic/php-parser/composer.json +4 -6
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +15 -17
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Class_.php +30 -35
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +4 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php +7 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Enum_.php +27 -26
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +7 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Function_.php +7 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Interface_.php +10 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Method.php +15 -16
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +5 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Param.php +35 -16
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Property.php +19 -19
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php +5 -6
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php +28 -25
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +11 -16
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Use_.php +8 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Builder.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/BuilderFactory.php +69 -45
- package/plugins/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +19 -17
- package/plugins/nikic/php-parser/lib/PhpParser/Comment/Doc.php +2 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Comment.php +67 -35
- package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php +3 -3
- package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +10 -15
- package/plugins/nikic/php-parser/lib/PhpParser/Error.php +33 -24
- package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php +9 -6
- package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php +7 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Internal/Differ.php +22 -36
- package/plugins/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +13 -20
- package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +70 -55
- package/plugins/nikic/php-parser/lib/PhpParser/JsonDecoder.php +10 -15
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +93 -68
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php +18 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php +47 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php +15 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php +11 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php +76 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php +23 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +25 -19
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php +10 -6
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php +29 -22
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php +105 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php +3 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php +15 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php +5 -6
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php +5 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer.php +513 -69
- package/plugins/nikic/php-parser/lib/PhpParser/NameContext.php +24 -23
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Arg.php +15 -13
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Attribute.php +10 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php +7 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/ComplexType.php +2 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Const_.php +10 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +11 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +39 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +11 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +28 -33
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +10 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php +10 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +11 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +7 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php +6 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +6 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +10 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +26 -33
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +32 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +6 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +11 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +11 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +14 -13
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +11 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +8 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +12 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +11 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +12 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php +10 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +7 -6
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +10 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +9 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +13 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +11 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +13 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php +7 -6
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +7 -6
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +11 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr.php +2 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +8 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Identifier.php +13 -13
- package/plugins/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php +9 -6
- package/plugins/nikic/php-parser/lib/PhpParser/Node/MatchArm.php +9 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +9 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php +9 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Name.php +56 -71
- package/plugins/nikic/php-parser/lib/PhpParser/Node/NullableType.php +10 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Param.php +22 -46
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +75 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +29 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +28 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +78 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +26 -30
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar.php +2 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +9 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +11 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +12 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +32 -24
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +13 -13
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +54 -47
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +89 -46
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +9 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +32 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +12 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +10 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +10 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +12 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php +13 -17
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +15 -19
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +17 -20
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +24 -28
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +14 -16
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +15 -18
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +10 -13
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +12 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +37 -28
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +32 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +9 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +35 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +8 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +10 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php +30 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +9 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php +13 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +10 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +4 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +8 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +12 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +50 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +16 -16
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +10 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt.php +2 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Node/UnionType.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php +2 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node.php +29 -24
- package/plugins/nikic/php-parser/lib/PhpParser/NodeAbstract.php +20 -20
- package/plugins/nikic/php-parser/lib/PhpParser/NodeDumper.php +84 -168
- package/plugins/nikic/php-parser/lib/PhpParser/NodeFinder.php +19 -28
- package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverser.php +84 -71
- package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +7 -4
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php +2 -1
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php +5 -4
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php +7 -6
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +28 -30
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php +3 -2
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php +11 -8
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor.php +7 -59
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +2 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Parser/Multiple.php +55 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php5.php +2682 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php7.php +1522 -1323
- package/plugins/nikic/php-parser/lib/PhpParser/Parser/Tokens.php +148 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Parser.php +3 -9
- package/plugins/nikic/php-parser/lib/PhpParser/ParserAbstract.php +252 -433
- package/plugins/nikic/php-parser/lib/PhpParser/ParserFactory.php +49 -15
- package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +335 -386
- package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +438 -517
- package/plugins/lib/io.appthreat.atom-1.8.1-classpath.jar +0 -0
- package/plugins/nikic/php-parser/.php-cs-fixer.dist.php +0 -31
- package/plugins/nikic/php-parser/Makefile +0 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php +0 -237
- package/plugins/nikic/php-parser/lib/PhpParser/Modifiers.php +0 -69
- package/plugins/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php +0 -43
- package/plugins/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php +0 -36
- package/plugins/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php +0 -37
- package/plugins/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php +0 -32
- package/plugins/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php +0 -37
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php +0 -78
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php +0 -82
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php +0 -34
- package/plugins/nikic/php-parser/lib/PhpParser/Node/StaticVar.php +0 -39
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php +0 -29
- package/plugins/nikic/php-parser/lib/PhpParser/Node/UseItem.php +0 -55
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php +0 -82
- package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php8.php +0 -2717
- package/plugins/nikic/php-parser/lib/PhpParser/PhpVersion.php +0 -164
- package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter.php +0 -51
- package/plugins/nikic/php-parser/lib/PhpParser/Token.php +0 -18
- package/plugins/nikic/php-parser/lib/PhpParser/compatibility_tokens.php +0 -56
- package/plugins/nikic/php-parser/phpstan-baseline.neon +0 -236
- package/plugins/nikic/php-parser/phpstan.neon.dist +0 -8
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
namespace PhpParser;
|
|
4
4
|
|
|
5
|
-
abstract class NodeAbstract implements Node, \JsonSerializable
|
|
6
|
-
|
|
7
|
-
protected
|
|
5
|
+
abstract class NodeAbstract implements Node, \JsonSerializable
|
|
6
|
+
{
|
|
7
|
+
protected $attributes;
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Creates a Node.
|
|
11
11
|
*
|
|
12
|
-
* @param array
|
|
12
|
+
* @param array $attributes Array of attributes
|
|
13
13
|
*/
|
|
14
14
|
public function __construct(array $attributes = []) {
|
|
15
15
|
$this->attributes = $attributes;
|
|
@@ -20,7 +20,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
|
|
|
20
20
|
*
|
|
21
21
|
* @return int Start line (or -1 if not available)
|
|
22
22
|
*/
|
|
23
|
-
public function getLine(): int {
|
|
23
|
+
public function getLine() : int {
|
|
24
24
|
return $this->attributes['startLine'] ?? -1;
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -31,7 +31,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
|
|
|
31
31
|
*
|
|
32
32
|
* @return int Start line (or -1 if not available)
|
|
33
33
|
*/
|
|
34
|
-
public function getStartLine(): int {
|
|
34
|
+
public function getStartLine() : int {
|
|
35
35
|
return $this->attributes['startLine'] ?? -1;
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -42,7 +42,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
|
|
|
42
42
|
*
|
|
43
43
|
* @return int End line (or -1 if not available)
|
|
44
44
|
*/
|
|
45
|
-
public function getEndLine(): int {
|
|
45
|
+
public function getEndLine() : int {
|
|
46
46
|
return $this->attributes['endLine'] ?? -1;
|
|
47
47
|
}
|
|
48
48
|
|
|
@@ -55,7 +55,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
|
|
|
55
55
|
*
|
|
56
56
|
* @return int Token start position (or -1 if not available)
|
|
57
57
|
*/
|
|
58
|
-
public function getStartTokenPos(): int {
|
|
58
|
+
public function getStartTokenPos() : int {
|
|
59
59
|
return $this->attributes['startTokenPos'] ?? -1;
|
|
60
60
|
}
|
|
61
61
|
|
|
@@ -68,7 +68,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
|
|
|
68
68
|
*
|
|
69
69
|
* @return int Token end position (or -1 if not available)
|
|
70
70
|
*/
|
|
71
|
-
public function getEndTokenPos(): int {
|
|
71
|
+
public function getEndTokenPos() : int {
|
|
72
72
|
return $this->attributes['endTokenPos'] ?? -1;
|
|
73
73
|
}
|
|
74
74
|
|
|
@@ -79,7 +79,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
|
|
|
79
79
|
*
|
|
80
80
|
* @return int File start position (or -1 if not available)
|
|
81
81
|
*/
|
|
82
|
-
public function getStartFilePos(): int {
|
|
82
|
+
public function getStartFilePos() : int {
|
|
83
83
|
return $this->attributes['startFilePos'] ?? -1;
|
|
84
84
|
}
|
|
85
85
|
|
|
@@ -90,7 +90,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
|
|
|
90
90
|
*
|
|
91
91
|
* @return int File end position (or -1 if not available)
|
|
92
92
|
*/
|
|
93
|
-
public function getEndFilePos(): int {
|
|
93
|
+
public function getEndFilePos() : int {
|
|
94
94
|
return $this->attributes['endFilePos'] ?? -1;
|
|
95
95
|
}
|
|
96
96
|
|
|
@@ -101,7 +101,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
|
|
|
101
101
|
*
|
|
102
102
|
* @return Comment[]
|
|
103
103
|
*/
|
|
104
|
-
public function getComments(): array {
|
|
104
|
+
public function getComments() : array {
|
|
105
105
|
return $this->attributes['comments'] ?? [];
|
|
106
106
|
}
|
|
107
107
|
|
|
@@ -110,7 +110,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
|
|
|
110
110
|
*
|
|
111
111
|
* @return null|Comment\Doc Doc comment object or null
|
|
112
112
|
*/
|
|
113
|
-
public function getDocComment()
|
|
113
|
+
public function getDocComment() {
|
|
114
114
|
$comments = $this->getComments();
|
|
115
115
|
for ($i = count($comments) - 1; $i >= 0; $i--) {
|
|
116
116
|
$comment = $comments[$i];
|
|
@@ -129,7 +129,7 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
|
|
|
129
129
|
*
|
|
130
130
|
* @param Comment\Doc $docComment Doc comment to set
|
|
131
131
|
*/
|
|
132
|
-
public function setDocComment(Comment\Doc $docComment)
|
|
132
|
+
public function setDocComment(Comment\Doc $docComment) {
|
|
133
133
|
$comments = $this->getComments();
|
|
134
134
|
for ($i = count($comments) - 1; $i >= 0; $i--) {
|
|
135
135
|
if ($comments[$i] instanceof Comment\Doc) {
|
|
@@ -145,11 +145,11 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
|
|
|
145
145
|
$this->setAttribute('comments', $comments);
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
public function setAttribute(string $key, $value)
|
|
148
|
+
public function setAttribute(string $key, $value) {
|
|
149
149
|
$this->attributes[$key] = $value;
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
public function hasAttribute(string $key): bool {
|
|
152
|
+
public function hasAttribute(string $key) : bool {
|
|
153
153
|
return array_key_exists($key, $this->attributes);
|
|
154
154
|
}
|
|
155
155
|
|
|
@@ -161,18 +161,18 @@ abstract class NodeAbstract implements Node, \JsonSerializable {
|
|
|
161
161
|
return $default;
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
public function getAttributes(): array {
|
|
164
|
+
public function getAttributes() : array {
|
|
165
165
|
return $this->attributes;
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
public function setAttributes(array $attributes)
|
|
168
|
+
public function setAttributes(array $attributes) {
|
|
169
169
|
$this->attributes = $attributes;
|
|
170
170
|
}
|
|
171
171
|
|
|
172
172
|
/**
|
|
173
|
-
* @return array
|
|
173
|
+
* @return array
|
|
174
174
|
*/
|
|
175
|
-
public function jsonSerialize(): array {
|
|
175
|
+
public function jsonSerialize() : array {
|
|
176
176
|
return ['nodeType' => $this->getType()] + get_object_vars($this);
|
|
177
177
|
}
|
|
178
178
|
}
|
|
@@ -2,33 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
namespace PhpParser;
|
|
4
4
|
|
|
5
|
-
use PhpParser\Node\Expr\Array_;
|
|
6
5
|
use PhpParser\Node\Expr\Include_;
|
|
7
|
-
use PhpParser\Node\
|
|
8
|
-
use PhpParser\Node\Scalar\Int_;
|
|
9
|
-
use PhpParser\Node\Scalar\InterpolatedString;
|
|
10
|
-
use PhpParser\Node\Scalar\String_;
|
|
6
|
+
use PhpParser\Node\Stmt\Class_;
|
|
11
7
|
use PhpParser\Node\Stmt\GroupUse;
|
|
12
8
|
use PhpParser\Node\Stmt\Use_;
|
|
13
|
-
use PhpParser\Node\
|
|
9
|
+
use PhpParser\Node\Stmt\UseUse;
|
|
14
10
|
|
|
15
|
-
class NodeDumper
|
|
16
|
-
|
|
17
|
-
private
|
|
18
|
-
private
|
|
19
|
-
private
|
|
20
|
-
private string $res;
|
|
21
|
-
private string $nl;
|
|
22
|
-
|
|
23
|
-
private const IGNORE_ATTRIBUTES = [
|
|
24
|
-
'comments' => true,
|
|
25
|
-
'startLine' => true,
|
|
26
|
-
'endLine' => true,
|
|
27
|
-
'startFilePos' => true,
|
|
28
|
-
'endFilePos' => true,
|
|
29
|
-
'startTokenPos' => true,
|
|
30
|
-
'endTokenPos' => true,
|
|
31
|
-
];
|
|
11
|
+
class NodeDumper
|
|
12
|
+
{
|
|
13
|
+
private $dumpComments;
|
|
14
|
+
private $dumpPositions;
|
|
15
|
+
private $code;
|
|
32
16
|
|
|
33
17
|
/**
|
|
34
18
|
* Constructs a NodeDumper.
|
|
@@ -37,218 +21,150 @@ class NodeDumper {
|
|
|
37
21
|
* * bool dumpComments: Whether comments should be dumped.
|
|
38
22
|
* * bool dumpPositions: Whether line/offset information should be dumped. To dump offset
|
|
39
23
|
* information, the code needs to be passed to dump().
|
|
40
|
-
* * bool dumpOtherAttributes: Whether non-comment, non-position attributes should be dumped.
|
|
41
24
|
*
|
|
42
25
|
* @param array $options Options (see description)
|
|
43
26
|
*/
|
|
44
27
|
public function __construct(array $options = []) {
|
|
45
28
|
$this->dumpComments = !empty($options['dumpComments']);
|
|
46
29
|
$this->dumpPositions = !empty($options['dumpPositions']);
|
|
47
|
-
$this->dumpOtherAttributes = !empty($options['dumpOtherAttributes']);
|
|
48
30
|
}
|
|
49
31
|
|
|
50
32
|
/**
|
|
51
33
|
* Dumps a node or array.
|
|
52
34
|
*
|
|
53
|
-
* @param array|Node
|
|
35
|
+
* @param array|Node $node Node or array to dump
|
|
54
36
|
* @param string|null $code Code corresponding to dumped AST. This only needs to be passed if
|
|
55
37
|
* the dumpPositions option is enabled and the dumping of node offsets
|
|
56
38
|
* is desired.
|
|
57
39
|
*
|
|
58
40
|
* @return string Dumped value
|
|
59
41
|
*/
|
|
60
|
-
public function dump($node,
|
|
42
|
+
public function dump($node, string $code = null) : string {
|
|
61
43
|
$this->code = $code;
|
|
62
|
-
$this->
|
|
63
|
-
$this->nl = "\n";
|
|
64
|
-
$this->dumpRecursive($node, false);
|
|
65
|
-
return $this->res;
|
|
44
|
+
return $this->dumpRecursive($node);
|
|
66
45
|
}
|
|
67
46
|
|
|
68
|
-
|
|
69
|
-
protected function dumpRecursive($node, bool $indent = true): void {
|
|
70
|
-
if ($indent) {
|
|
71
|
-
$this->nl .= " ";
|
|
72
|
-
}
|
|
47
|
+
protected function dumpRecursive($node) {
|
|
73
48
|
if ($node instanceof Node) {
|
|
74
|
-
$
|
|
49
|
+
$r = $node->getType();
|
|
75
50
|
if ($this->dumpPositions && null !== $p = $this->dumpPosition($node)) {
|
|
76
|
-
$
|
|
51
|
+
$r .= $p;
|
|
77
52
|
}
|
|
78
|
-
$
|
|
53
|
+
$r .= '(';
|
|
79
54
|
|
|
80
55
|
foreach ($node->getSubNodeNames() as $key) {
|
|
81
|
-
$
|
|
56
|
+
$r .= "\n " . $key . ': ';
|
|
82
57
|
|
|
83
58
|
$value = $node->$key;
|
|
84
|
-
if (
|
|
59
|
+
if (null === $value) {
|
|
60
|
+
$r .= 'null';
|
|
61
|
+
} elseif (false === $value) {
|
|
62
|
+
$r .= 'false';
|
|
63
|
+
} elseif (true === $value) {
|
|
64
|
+
$r .= 'true';
|
|
65
|
+
} elseif (is_scalar($value)) {
|
|
85
66
|
if ('flags' === $key || 'newModifier' === $key) {
|
|
86
|
-
$
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
&& ($node instanceof Use_ || $node instanceof UseItem || $node instanceof GroupUse)) {
|
|
95
|
-
$this->res .= $this->dumpUseType($value);
|
|
96
|
-
continue;
|
|
67
|
+
$r .= $this->dumpFlags($value);
|
|
68
|
+
} elseif ('type' === $key && $node instanceof Include_) {
|
|
69
|
+
$r .= $this->dumpIncludeType($value);
|
|
70
|
+
} elseif ('type' === $key
|
|
71
|
+
&& ($node instanceof Use_ || $node instanceof UseUse || $node instanceof GroupUse)) {
|
|
72
|
+
$r .= $this->dumpUseType($value);
|
|
73
|
+
} else {
|
|
74
|
+
$r .= $value;
|
|
97
75
|
}
|
|
76
|
+
} else {
|
|
77
|
+
$r .= str_replace("\n", "\n ", $this->dumpRecursive($value));
|
|
98
78
|
}
|
|
99
|
-
$this->dumpRecursive($value);
|
|
100
79
|
}
|
|
101
80
|
|
|
102
81
|
if ($this->dumpComments && $comments = $node->getComments()) {
|
|
103
|
-
$
|
|
104
|
-
$this->dumpRecursive($comments);
|
|
82
|
+
$r .= "\n comments: " . str_replace("\n", "\n ", $this->dumpRecursive($comments));
|
|
105
83
|
}
|
|
84
|
+
} elseif (is_array($node)) {
|
|
85
|
+
$r = 'array(';
|
|
106
86
|
|
|
107
|
-
if ($this->dumpOtherAttributes) {
|
|
108
|
-
foreach ($node->getAttributes() as $key => $value) {
|
|
109
|
-
if (isset(self::IGNORE_ATTRIBUTES[$key])) {
|
|
110
|
-
continue;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
$this->res .= "$this->nl $key: ";
|
|
114
|
-
if (\is_int($value)) {
|
|
115
|
-
if ('kind' === $key) {
|
|
116
|
-
if ($node instanceof Int_) {
|
|
117
|
-
$this->res .= $this->dumpIntKind($value);
|
|
118
|
-
continue;
|
|
119
|
-
}
|
|
120
|
-
if ($node instanceof String_ || $node instanceof InterpolatedString) {
|
|
121
|
-
$this->res .= $this->dumpStringKind($value);
|
|
122
|
-
continue;
|
|
123
|
-
}
|
|
124
|
-
if ($node instanceof Array_) {
|
|
125
|
-
$this->res .= $this->dumpArrayKind($value);
|
|
126
|
-
continue;
|
|
127
|
-
}
|
|
128
|
-
if ($node instanceof List_) {
|
|
129
|
-
$this->res .= $this->dumpListKind($value);
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
$this->dumpRecursive($value);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
$this->res .= "$this->nl)";
|
|
138
|
-
} elseif (\is_array($node)) {
|
|
139
|
-
$this->res .= 'array(';
|
|
140
87
|
foreach ($node as $key => $value) {
|
|
141
|
-
$
|
|
142
|
-
|
|
88
|
+
$r .= "\n " . $key . ': ';
|
|
89
|
+
|
|
90
|
+
if (null === $value) {
|
|
91
|
+
$r .= 'null';
|
|
92
|
+
} elseif (false === $value) {
|
|
93
|
+
$r .= 'false';
|
|
94
|
+
} elseif (true === $value) {
|
|
95
|
+
$r .= 'true';
|
|
96
|
+
} elseif (is_scalar($value)) {
|
|
97
|
+
$r .= $value;
|
|
98
|
+
} else {
|
|
99
|
+
$r .= str_replace("\n", "\n ", $this->dumpRecursive($value));
|
|
100
|
+
}
|
|
143
101
|
}
|
|
144
|
-
$this->res .= "$this->nl)";
|
|
145
102
|
} elseif ($node instanceof Comment) {
|
|
146
|
-
|
|
147
|
-
} elseif (\is_string($node)) {
|
|
148
|
-
$this->res .= \str_replace("\n", $this->nl, (string)$node);
|
|
149
|
-
} elseif (\is_int($node) || \is_float($node)) {
|
|
150
|
-
$this->res .= $node;
|
|
151
|
-
} elseif (null === $node) {
|
|
152
|
-
$this->res .= 'null';
|
|
153
|
-
} elseif (false === $node) {
|
|
154
|
-
$this->res .= 'false';
|
|
155
|
-
} elseif (true === $node) {
|
|
156
|
-
$this->res .= 'true';
|
|
103
|
+
return $node->getReformattedText();
|
|
157
104
|
} else {
|
|
158
105
|
throw new \InvalidArgumentException('Can only dump nodes and arrays.');
|
|
159
106
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
107
|
+
|
|
108
|
+
return $r . "\n)";
|
|
163
109
|
}
|
|
164
110
|
|
|
165
|
-
protected function dumpFlags(
|
|
111
|
+
protected function dumpFlags($flags) {
|
|
166
112
|
$strs = [];
|
|
167
|
-
if ($flags &
|
|
168
|
-
$strs[] = '
|
|
113
|
+
if ($flags & Class_::MODIFIER_PUBLIC) {
|
|
114
|
+
$strs[] = 'MODIFIER_PUBLIC';
|
|
169
115
|
}
|
|
170
|
-
if ($flags &
|
|
171
|
-
$strs[] = '
|
|
116
|
+
if ($flags & Class_::MODIFIER_PROTECTED) {
|
|
117
|
+
$strs[] = 'MODIFIER_PROTECTED';
|
|
172
118
|
}
|
|
173
|
-
if ($flags &
|
|
174
|
-
$strs[] = '
|
|
119
|
+
if ($flags & Class_::MODIFIER_PRIVATE) {
|
|
120
|
+
$strs[] = 'MODIFIER_PRIVATE';
|
|
175
121
|
}
|
|
176
|
-
if ($flags &
|
|
177
|
-
$strs[] = '
|
|
122
|
+
if ($flags & Class_::MODIFIER_ABSTRACT) {
|
|
123
|
+
$strs[] = 'MODIFIER_ABSTRACT';
|
|
178
124
|
}
|
|
179
|
-
if ($flags &
|
|
180
|
-
$strs[] = '
|
|
125
|
+
if ($flags & Class_::MODIFIER_STATIC) {
|
|
126
|
+
$strs[] = 'MODIFIER_STATIC';
|
|
181
127
|
}
|
|
182
|
-
if ($flags &
|
|
183
|
-
$strs[] = '
|
|
128
|
+
if ($flags & Class_::MODIFIER_FINAL) {
|
|
129
|
+
$strs[] = 'MODIFIER_FINAL';
|
|
184
130
|
}
|
|
185
|
-
if ($flags &
|
|
186
|
-
$strs[] = '
|
|
131
|
+
if ($flags & Class_::MODIFIER_READONLY) {
|
|
132
|
+
$strs[] = 'MODIFIER_READONLY';
|
|
187
133
|
}
|
|
188
134
|
|
|
189
135
|
if ($strs) {
|
|
190
136
|
return implode(' | ', $strs) . ' (' . $flags . ')';
|
|
191
137
|
} else {
|
|
192
|
-
return
|
|
138
|
+
return $flags;
|
|
193
139
|
}
|
|
194
140
|
}
|
|
195
141
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
if (!isset($map[$value])) {
|
|
199
|
-
return (string) $value;
|
|
200
|
-
}
|
|
201
|
-
return $map[$value] . ' (' . $value . ')';
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
private function dumpIncludeType(int $type): string {
|
|
205
|
-
return $this->dumpEnum($type, [
|
|
142
|
+
protected function dumpIncludeType($type) {
|
|
143
|
+
$map = [
|
|
206
144
|
Include_::TYPE_INCLUDE => 'TYPE_INCLUDE',
|
|
207
145
|
Include_::TYPE_INCLUDE_ONCE => 'TYPE_INCLUDE_ONCE',
|
|
208
146
|
Include_::TYPE_REQUIRE => 'TYPE_REQUIRE',
|
|
209
147
|
Include_::TYPE_REQUIRE_ONCE => 'TYPE_REQUIRE_ONCE',
|
|
210
|
-
]
|
|
148
|
+
];
|
|
149
|
+
|
|
150
|
+
if (!isset($map[$type])) {
|
|
151
|
+
return $type;
|
|
152
|
+
}
|
|
153
|
+
return $map[$type] . ' (' . $type . ')';
|
|
211
154
|
}
|
|
212
155
|
|
|
213
|
-
|
|
214
|
-
|
|
156
|
+
protected function dumpUseType($type) {
|
|
157
|
+
$map = [
|
|
215
158
|
Use_::TYPE_UNKNOWN => 'TYPE_UNKNOWN',
|
|
216
159
|
Use_::TYPE_NORMAL => 'TYPE_NORMAL',
|
|
217
160
|
Use_::TYPE_FUNCTION => 'TYPE_FUNCTION',
|
|
218
161
|
Use_::TYPE_CONSTANT => 'TYPE_CONSTANT',
|
|
219
|
-
]
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
private function dumpIntKind(int $kind): string {
|
|
223
|
-
return $this->dumpEnum($kind, [
|
|
224
|
-
Int_::KIND_BIN => 'KIND_BIN',
|
|
225
|
-
Int_::KIND_OCT => 'KIND_OCT',
|
|
226
|
-
Int_::KIND_DEC => 'KIND_DEC',
|
|
227
|
-
Int_::KIND_HEX => 'KIND_HEX',
|
|
228
|
-
]);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
private function dumpStringKind(int $kind): string {
|
|
232
|
-
return $this->dumpEnum($kind, [
|
|
233
|
-
String_::KIND_SINGLE_QUOTED => 'KIND_SINGLE_QUOTED',
|
|
234
|
-
String_::KIND_DOUBLE_QUOTED => 'KIND_DOUBLE_QUOTED',
|
|
235
|
-
String_::KIND_HEREDOC => 'KIND_HEREDOC',
|
|
236
|
-
String_::KIND_NOWDOC => 'KIND_NOWDOC',
|
|
237
|
-
]);
|
|
238
|
-
}
|
|
162
|
+
];
|
|
239
163
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
]);
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
private function dumpListKind(int $kind): string {
|
|
248
|
-
return $this->dumpEnum($kind, [
|
|
249
|
-
List_::KIND_LIST => 'KIND_LIST',
|
|
250
|
-
List_::KIND_ARRAY => 'KIND_ARRAY',
|
|
251
|
-
]);
|
|
164
|
+
if (!isset($map[$type])) {
|
|
165
|
+
return $type;
|
|
166
|
+
}
|
|
167
|
+
return $map[$type] . ' (' . $type . ')';
|
|
252
168
|
}
|
|
253
169
|
|
|
254
170
|
/**
|
|
@@ -258,7 +174,7 @@ class NodeDumper {
|
|
|
258
174
|
*
|
|
259
175
|
* @return string|null Dump of position, or null if position information not available
|
|
260
176
|
*/
|
|
261
|
-
protected function dumpPosition(Node $node)
|
|
177
|
+
protected function dumpPosition(Node $node) {
|
|
262
178
|
if (!$node->hasAttribute('startLine') || !$node->hasAttribute('endLine')) {
|
|
263
179
|
return null;
|
|
264
180
|
}
|
|
@@ -275,7 +191,7 @@ class NodeDumper {
|
|
|
275
191
|
}
|
|
276
192
|
|
|
277
193
|
// Copied from Error class
|
|
278
|
-
private function toColumn(
|
|
194
|
+
private function toColumn($code, $pos) {
|
|
279
195
|
if ($pos > strlen($code)) {
|
|
280
196
|
throw new \RuntimeException('Invalid position information');
|
|
281
197
|
}
|
|
@@ -5,27 +5,25 @@ namespace PhpParser;
|
|
|
5
5
|
use PhpParser\NodeVisitor\FindingVisitor;
|
|
6
6
|
use PhpParser\NodeVisitor\FirstFindingVisitor;
|
|
7
7
|
|
|
8
|
-
class NodeFinder
|
|
8
|
+
class NodeFinder
|
|
9
|
+
{
|
|
9
10
|
/**
|
|
10
11
|
* Find all nodes satisfying a filter callback.
|
|
11
12
|
*
|
|
12
|
-
* @param Node|Node[] $nodes
|
|
13
|
-
* @param callable
|
|
13
|
+
* @param Node|Node[] $nodes Single node or array of nodes to search in
|
|
14
|
+
* @param callable $filter Filter callback: function(Node $node) : bool
|
|
14
15
|
*
|
|
15
16
|
* @return Node[] Found nodes satisfying the filter callback
|
|
16
17
|
*/
|
|
17
|
-
public function find($nodes, callable $filter): array {
|
|
18
|
-
if ($nodes === []) {
|
|
19
|
-
return [];
|
|
20
|
-
}
|
|
21
|
-
|
|
18
|
+
public function find($nodes, callable $filter) : array {
|
|
22
19
|
if (!is_array($nodes)) {
|
|
23
20
|
$nodes = [$nodes];
|
|
24
21
|
}
|
|
25
22
|
|
|
26
23
|
$visitor = new FindingVisitor($filter);
|
|
27
24
|
|
|
28
|
-
$traverser = new NodeTraverser
|
|
25
|
+
$traverser = new NodeTraverser;
|
|
26
|
+
$traverser->addVisitor($visitor);
|
|
29
27
|
$traverser->traverse($nodes);
|
|
30
28
|
|
|
31
29
|
return $visitor->getFoundNodes();
|
|
@@ -33,15 +31,13 @@ class NodeFinder {
|
|
|
33
31
|
|
|
34
32
|
/**
|
|
35
33
|
* Find all nodes that are instances of a certain class.
|
|
36
|
-
|
|
37
|
-
* @template TNode as Node
|
|
38
34
|
*
|
|
39
35
|
* @param Node|Node[] $nodes Single node or array of nodes to search in
|
|
40
|
-
* @param
|
|
36
|
+
* @param string $class Class name
|
|
41
37
|
*
|
|
42
|
-
* @return
|
|
38
|
+
* @return Node[] Found nodes (all instances of $class)
|
|
43
39
|
*/
|
|
44
|
-
public function findInstanceOf($nodes, string $class): array {
|
|
40
|
+
public function findInstanceOf($nodes, string $class) : array {
|
|
45
41
|
return $this->find($nodes, function ($node) use ($class) {
|
|
46
42
|
return $node instanceof $class;
|
|
47
43
|
});
|
|
@@ -50,23 +46,20 @@ class NodeFinder {
|
|
|
50
46
|
/**
|
|
51
47
|
* Find first node satisfying a filter callback.
|
|
52
48
|
*
|
|
53
|
-
* @param Node|Node[] $nodes
|
|
54
|
-
* @param callable
|
|
49
|
+
* @param Node|Node[] $nodes Single node or array of nodes to search in
|
|
50
|
+
* @param callable $filter Filter callback: function(Node $node) : bool
|
|
55
51
|
*
|
|
56
52
|
* @return null|Node Found node (or null if none found)
|
|
57
53
|
*/
|
|
58
|
-
public function findFirst($nodes, callable $filter)
|
|
59
|
-
if ($nodes === []) {
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
|
|
54
|
+
public function findFirst($nodes, callable $filter) {
|
|
63
55
|
if (!is_array($nodes)) {
|
|
64
56
|
$nodes = [$nodes];
|
|
65
57
|
}
|
|
66
58
|
|
|
67
59
|
$visitor = new FirstFindingVisitor($filter);
|
|
68
60
|
|
|
69
|
-
$traverser = new NodeTraverser
|
|
61
|
+
$traverser = new NodeTraverser;
|
|
62
|
+
$traverser->addVisitor($visitor);
|
|
70
63
|
$traverser->traverse($nodes);
|
|
71
64
|
|
|
72
65
|
return $visitor->getFoundNode();
|
|
@@ -75,14 +68,12 @@ class NodeFinder {
|
|
|
75
68
|
/**
|
|
76
69
|
* Find first node that is an instance of a certain class.
|
|
77
70
|
*
|
|
78
|
-
* @
|
|
79
|
-
*
|
|
80
|
-
* @param Node|Node[] $nodes Single node or array of nodes to search in
|
|
81
|
-
* @param class-string<TNode> $class Class name
|
|
71
|
+
* @param Node|Node[] $nodes Single node or array of nodes to search in
|
|
72
|
+
* @param string $class Class name
|
|
82
73
|
*
|
|
83
|
-
* @return null|
|
|
74
|
+
* @return null|Node Found node, which is an instance of $class (or null if none found)
|
|
84
75
|
*/
|
|
85
|
-
public function findFirstInstanceOf($nodes, string $class)
|
|
76
|
+
public function findFirstInstanceOf($nodes, string $class) {
|
|
86
77
|
return $this->findFirst($nodes, function ($node) use ($class) {
|
|
87
78
|
return $node instanceof $class;
|
|
88
79
|
});
|