@appthreat/atom-parsetools 1.0.3 → 1.0.5
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 +3 -3
- package/plugins/autoload.php +1 -1
- package/plugins/bin/bundler +1 -1
- package/plugins/bin/ruby_ast_gen +1 -1
- package/plugins/composer/autoload_classmap.php +22 -8
- package/plugins/composer/autoload_real.php +4 -4
- package/plugins/composer/autoload_static.php +26 -12
- package/plugins/composer/installed.json +12 -10
- package/plugins/composer/installed.php +9 -9
- package/plugins/nikic/php-parser/README.md +20 -12
- package/plugins/nikic/php-parser/bin/php-parse +11 -10
- package/plugins/nikic/php-parser/composer.json +6 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +19 -17
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Class_.php +35 -30
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +11 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Enum_.php +26 -27
- 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 +11 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Method.php +16 -15
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +5 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Param.php +38 -35
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Property.php +82 -20
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php +6 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php +25 -28
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +16 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Builder/Use_.php +8 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Builder.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/BuilderFactory.php +46 -70
- package/plugins/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +23 -20
- package/plugins/nikic/php-parser/lib/PhpParser/Comment/Doc.php +1 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Comment.php +37 -67
- package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php +3 -3
- package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +15 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Error.php +26 -33
- package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php +6 -9
- package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php +11 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Internal/Differ.php +36 -22
- package/plugins/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +20 -13
- package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php +237 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +70 -74
- package/plugins/nikic/php-parser/lib/PhpParser/JsonDecoder.php +15 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +72 -97
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AsymmetricVisibilityTokenEmulator.php +93 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php +11 -18
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php +10 -15
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php +12 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +24 -26
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php +6 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php +22 -29
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/PropertyTokenEmulator.php +19 -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 +10 -15
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php +6 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php +10 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer.php +69 -513
- package/plugins/nikic/php-parser/lib/PhpParser/Modifiers.php +85 -0
- package/plugins/nikic/php-parser/lib/PhpParser/NameContext.php +24 -25
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Arg.php +13 -15
- package/plugins/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php +43 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Attribute.php +9 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php +5 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php +36 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/ComplexType.php +1 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Const_.php +9 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php +37 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +10 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +4 -34
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +11 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +33 -28
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +9 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php +9 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +8 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +3 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php +5 -6
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +5 -6
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +10 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +33 -26
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +4 -27
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +5 -6
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +10 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +10 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +13 -14
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +11 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +12 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php +8 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +12 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +10 -11
- 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 +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +6 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +7 -8
- 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 +12 -13
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +11 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +12 -13
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php +6 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +6 -7
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +10 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr.php +1 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +5 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Identifier.php +24 -14
- package/plugins/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php +32 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php +6 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/MatchArm.php +8 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +8 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php +8 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Name.php +78 -54
- package/plugins/nikic/php-parser/lib/PhpParser/Node/NullableType.php +11 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Param.php +83 -24
- package/plugins/nikic/php-parser/lib/PhpParser/Node/PropertyHook.php +105 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php +37 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +4 -70
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +4 -24
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +5 -22
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php +78 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php +82 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php +34 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +4 -73
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Property.php +15 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +30 -26
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar.php +1 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/StaticVar.php +39 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php +29 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +8 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +10 -11
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +11 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +24 -32
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +17 -17
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +47 -54
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +46 -89
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +17 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +8 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +5 -26
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +12 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +9 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +9 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +11 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php +17 -13
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +19 -15
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +20 -17
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +28 -24
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +16 -14
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +18 -15
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +13 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +11 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +4 -5
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +68 -38
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +5 -26
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +8 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +4 -30
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +8 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +9 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +8 -9
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php +12 -13
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +9 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +3 -4
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +10 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +11 -12
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +5 -44
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +16 -16
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +9 -10
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt.php +1 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node/UnionType.php +7 -8
- package/plugins/nikic/php-parser/lib/PhpParser/Node/UseItem.php +55 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php +2 -3
- package/plugins/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php +2 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Node.php +28 -29
- package/plugins/nikic/php-parser/lib/PhpParser/NodeAbstract.php +23 -20
- package/plugins/nikic/php-parser/lib/PhpParser/NodeDumper.php +177 -84
- package/plugins/nikic/php-parser/lib/PhpParser/NodeFinder.php +28 -19
- package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverser.php +156 -160
- package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +4 -7
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php +1 -2
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php +82 -0
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php +6 -7
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php +6 -7
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +37 -28
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php +29 -8
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php +23 -13
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor.php +59 -7
- package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +1 -2
- package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php7.php +2034 -2141
- package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php8.php +2814 -0
- package/plugins/nikic/php-parser/lib/PhpParser/Parser.php +9 -3
- package/plugins/nikic/php-parser/lib/PhpParser/ParserAbstract.php +503 -269
- package/plugins/nikic/php-parser/lib/PhpParser/ParserFactory.php +15 -49
- package/plugins/nikic/php-parser/lib/PhpParser/PhpVersion.php +171 -0
- package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +428 -339
- package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter.php +51 -0
- package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +563 -445
- package/plugins/nikic/php-parser/lib/PhpParser/Token.php +18 -0
- package/plugins/nikic/php-parser/lib/PhpParser/compatibility_tokens.php +68 -0
- package/plugins/rubyastgen/Gemfile +3 -2
- package/plugins/rubyastgen/Gemfile.lock +10 -5
- package/plugins/rubyastgen/bundle/bundler/setup.rb +4 -2
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bin/bundle +29 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bin/bundler +29 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/Gemfile +2 -1
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/README.md +7 -4
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-8738b155eb4f/bin/console +11 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-8738b155eb4f/exe/ruby_ast_gen +60 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/lib/ruby_ast_gen/node_handling.rb +49 -31
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/lib/ruby_ast_gen/version.rb +1 -1
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/lib/ruby_ast_gen.rb +24 -10
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/ruby_ast_gen.gemspec +4 -4
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-8738b155eb4f/spec/ruby_ast_gen_spec.rb +299 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/update_version.rb +6 -5
- package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.4.0/gem.build_complete +0 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.4.0/gem_make.out +44 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.4.0/mkmf.log +74 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.4.0/prism/prism.so +0 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/gem_make.out +6 -6
- package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/racc/cparse.so +0 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/CHANGELOG.md +5239 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/LICENSE.md +22 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/README.md +58 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/bundler.gemspec +46 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/exe/bundle +29 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/exe/bundler +4 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/.document +1 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/build_metadata.rb +45 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/capistrano.rb +22 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/checksum.rb +264 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ci_detector.rb +75 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/add.rb +49 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/binstubs.rb +57 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/cache.rb +43 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/check.rb +40 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/clean.rb +25 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/common.rb +138 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/config.rb +204 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/console.rb +42 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/doctor.rb +161 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/exec.rb +89 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/fund.rb +36 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/gem.rb +467 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/info.rb +83 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/init.rb +51 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/inject.rb +60 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/install.rb +199 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/issue.rb +41 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/list.rb +66 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/lock.rb +94 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/open.rb +29 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/outdated.rb +297 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/platform.rb +48 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/plugin.rb +35 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/pristine.rb +60 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/remove.rb +17 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/show.rb +75 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/update.rb +123 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/viz.rb +31 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli.rb +799 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/compact_index_client/cache.rb +96 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/compact_index_client/cache_file.rb +148 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/compact_index_client/parser.rb +84 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/compact_index_client/updater.rb +105 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/compact_index_client.rb +97 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/constants.rb +14 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/current_ruby.rb +82 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/definition.rb +1170 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/dependency.rb +151 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/deployment.rb +69 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/deprecate.rb +44 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/digest.rb +71 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/dsl.rb +638 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/endpoint_specification.rb +174 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/env.rb +148 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/environment_preserver.rb +68 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/errors.rb +281 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/feature_flag.rb +50 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher/base.rb +52 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher/compact_index.rb +120 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher/dependency.rb +78 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher/downloader.rb +91 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher/index.rb +25 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher.rb +331 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/force_platform.rb +16 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/friendly_errors.rb +126 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/gem_helper.rb +237 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/gem_helpers.rb +144 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/gem_tasks.rb +7 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/gem_version_promoter.rb +147 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/graph.rb +152 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/index.rb +205 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/injector.rb +285 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/inline.rb +98 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/installer/gem_installer.rb +85 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/installer/parallel_installer.rb +203 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/installer/standalone.rb +113 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/installer.rb +243 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/lazy_specification.rb +234 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/lockfile_generator.rb +104 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/lockfile_parser.rb +300 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/.document +1 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-add.1 +76 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-add.1.ronn +87 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-binstubs.1 +33 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-binstubs.1.ronn +44 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-cache.1 +68 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-cache.1.ronn +108 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-check.1 +24 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-check.1.ronn +31 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-clean.1 +17 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-clean.1.ronn +18 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-config.1 +317 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-config.1.ronn +408 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-console.1 +33 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-console.1.ronn +39 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-doctor.1 +30 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-doctor.1.ronn +33 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-env.1 +9 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-env.1.ronn +10 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-exec.1 +107 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-exec.1.ronn +154 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-fund.1 +22 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-fund.1.ronn +25 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-gem.1 +87 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-gem.1.ronn +149 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-help.1 +9 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-help.1.ronn +12 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-info.1 +17 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-info.1.ronn +21 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-init.1 +20 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-init.1.ronn +32 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-inject.1 +31 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-inject.1.ronn +32 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-install.1 +218 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-install.1.ronn +387 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-issue.1 +45 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-issue.1.ronn +37 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-licenses.1 +9 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-licenses.1.ronn +10 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-list.1 +35 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-list.1.ronn +36 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-lock.1 +75 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-lock.1.ronn +115 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-open.1 +32 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-open.1.ronn +28 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-outdated.1 +103 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-outdated.1.ronn +110 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-platform.1 +49 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-platform.1.ronn +49 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-plugin.1 +58 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-plugin.1.ronn +63 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-pristine.1 +23 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-pristine.1.ronn +34 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-remove.1 +21 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-remove.1.ronn +23 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-show.1 +19 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-show.1.ronn +25 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-update.1 +281 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-update.1.ronn +359 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-version.1 +22 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-version.1.ronn +24 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-viz.1 +30 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-viz.1.ronn +36 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle.1 +102 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle.1.ronn +116 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/gemfile.5 +472 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/gemfile.5.ronn +558 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/index.txt +33 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/match_metadata.rb +30 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/match_platform.rb +23 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/match_remote_metadata.rb +29 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/materialization.rb +59 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/mirror.rb +221 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/api/source.rb +322 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/api.rb +81 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/dsl.rb +53 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/events.rb +85 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/index.rb +197 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/installer/git.rb +34 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/installer/path.rb +26 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/installer/rubygems.rb +19 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/installer.rb +132 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/source_list.rb +31 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin.rb +378 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/process_lock.rb +20 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/remote_specification.rb +126 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/base.rb +118 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/candidate.rb +85 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/incompatibility.rb +15 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/package.rb +94 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/root.rb +25 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/spec_group.rb +74 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/strategy.rb +40 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver.rb +522 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/retry.rb +66 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ruby_dsl.rb +62 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ruby_version.rb +137 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/rubygems_ext.rb +485 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/rubygems_gem_installer.rb +172 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/rubygems_integration.rb +455 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/runtime.rb +320 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/safe_marshal.rb +31 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/self_manager.rb +206 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/settings/validator.rb +102 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/settings.rb +599 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/setup.rb +39 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/shared_helpers.rb +398 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/similarity_detector.rb +63 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/gemspec.rb +15 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/git/git_proxy.rb +472 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/git.rb +452 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/metadata.rb +63 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/path/installer.rb +53 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/path.rb +250 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/rubygems/remote.rb +76 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/rubygems.rb +522 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/rubygems_aggregate.rb +68 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source.rb +118 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source_list.rb +273 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source_map.rb +71 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/spec_set.rb +367 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/stub_specification.rb +146 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/.document +1 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/Executable +27 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/Executable.bundler +109 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/Executable.standalone +14 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/Gemfile +5 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +132 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/Gemfile.tt +24 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/LICENSE.txt.tt +21 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/README.md.tt +49 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/Rakefile.tt +67 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/{bundler/gems/ruby_ast_gen-2a9186207494/bin/console → gems/bundler-2.6.7/lib/bundler/templates/newgem/bin/console.tt} +1 -1
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1/bin/setup → bundler-2.6.7/lib/bundler/templates/newgem/bin/setup.tt} +0 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/circleci/config.yml.tt +25 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/exe/newgem.tt +3 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +9 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +6 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/github/workflows/main.yml.tt +37 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/gitignore.tt +23 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/gitlab-ci.yml.tt +18 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +9 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/lib/newgem.rb.tt +15 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/newgem.gemspec.tt +52 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/rspec.tt +3 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/rubocop.yml.tt +8 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +11 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +15 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/standard.yml.tt +3 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +13 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ui/rg_proxy.rb +19 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ui/shell.rb +187 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ui/silent.rb +96 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ui.rb +9 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/uri_credentials_filter.rb +43 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/uri_normalizer.rb +23 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/.document +1 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/connection_pool/.document +1 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +224 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +186 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/fileutils/.document +1 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/fileutils/lib/fileutils.rb +2696 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/net-http-persistent/.document +1 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +41 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +65 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1111 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/.document +1 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +169 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +61 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/strategy.rb +42 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +423 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +236 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/securerandom/.document +1 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/securerandom/COPYING +56 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/securerandom/lib/securerandom.rb +102 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/.document +1 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/LICENSE.md +20 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +105 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +61 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +108 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +143 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +371 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +130 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/actions.rb +340 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/base.rb +825 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/command.rb +151 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +107 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/error.rb +106 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/group.rb +292 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/invocation.rb +178 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +37 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +88 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/line_editor.rb +17 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +86 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +195 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/parser/option.rb +178 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/parser/options.rb +294 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +72 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/runner.rb +335 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +388 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell/color.rb +112 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell/html.rb +81 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +118 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell.rb +81 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/util.rb +285 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/version.rb +3 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor.rb +674 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/tsort/.document +1 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/tsort/lib/tsort.rb +455 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/.document +1 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/COPYING +56 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/common.rb +880 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/file.rb +100 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/generic.rb +1579 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/http.rb +125 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/ldaps.rb +22 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/mailto.rb +293 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +546 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +206 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri.rb +104 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_fileutils.rb +4 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_net_http.rb +23 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_persistent.rb +11 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_pub_grub.rb +4 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_securerandom.rb +12 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_thor.rb +8 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_timeout.rb +12 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_tsort.rb +4 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_uri.rb +21 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/version.rb +13 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vlad.rb +17 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/worker.rb +117 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/yaml_serializer.rb +98 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler.rb +701 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.3/COPYING +56 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.3/bin/setup +8 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/lib/ostruct.rb +5 -2
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/ostruct.gemspec +2 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/BSDmakefile +58 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/CHANGELOG.md +684 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/CODE_OF_CONDUCT.md +76 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/CONTRIBUTING.md +58 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/LICENSE.md +7 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/Makefile +108 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/README.md +141 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/config.yml +4486 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/build_system.md +119 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/configuration.md +68 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/cruby_compilation.md +27 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/design.md +53 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/encoding.md +121 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/fuzzing.md +88 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/heredocs.md +36 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/javascript.md +118 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/local_variable_depth.md +229 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/mapping.md +117 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/parser_translation.md +39 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/parsing_rules.md +22 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/releasing.md +96 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/relocation.md +34 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/ripper_translation.md +72 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/ruby_api.md +44 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/ruby_parser_translation.md +19 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/serialization.md +233 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/testing.md +55 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/ext/prism/Makefile +273 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/ext/prism/api_node.c +6939 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/ext/prism/api_pack.c +276 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/ext/prism/extconf.rb +127 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/ext/prism/extension.c +1406 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/ext/prism/extension.h +19 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/ast.h +7964 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/defines.h +260 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/diagnostic.h +451 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/encoding.h +283 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/node.h +129 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/options.h +442 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/pack.h +163 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/parser.h +933 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/prettyprint.h +34 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/regexp.h +43 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/static_literals.h +121 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_buffer.h +228 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_char.h +204 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_constant_pool.h +218 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_integer.h +126 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_list.h +97 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_memchr.h +29 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_newline_list.h +113 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_string.h +190 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_strncasecmp.h +32 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_strpbrk.h +46 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/version.h +29 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism.h +383 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/compiler.rb +496 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/desugar_compiler.rb +391 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/dispatcher.rb +2194 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/dot_visitor.rb +4758 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/dsl.rb +1000 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/ffi.rb +560 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/inspect_visitor.rb +2389 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/lex_compat.rb +927 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/mutation_compiler.rb +769 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/node.rb +18645 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/node_ext.rb +508 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/pack.rb +228 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/parse_result/comments.rb +187 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/parse_result/errors.rb +65 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/parse_result/newlines.rb +154 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/parse_result.rb +910 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/pattern.rb +268 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/polyfill/append_as_bytes.rb +15 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/polyfill/byteindex.rb +13 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/polyfill/unpack1.rb +14 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/prism.so +0 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/reflection.rb +413 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/relocation.rb +504 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/serialize.rb +2392 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/string_query.rb +30 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser/builder.rb +61 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser/compiler.rb +2212 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser/lexer.rb +812 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser.rb +355 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser33.rb +12 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser34.rb +12 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser35.rb +12 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/ripper/sexp.rb +125 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/ripper/shim.rb +5 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/ripper.rb +3458 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/ruby_parser.rb +1646 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation.rb +14 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/visitor.rb +508 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism.rb +89 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/prism.gemspec +170 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/compiler.rbi +12 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/dsl.rbi +524 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/inspect_visitor.rbi +12 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/node.rbi +8722 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/node_ext.rbi +107 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/parse_result.rbi +404 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/reflection.rbi +58 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/string_query.rbi +12 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/translation/parser.rbi +11 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/translation/parser33.rbi +6 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/translation/parser34.rbi +6 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/translation/parser35.rbi +6 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/translation/ripper.rbi +15 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/visitor.rbi +473 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism.rbi +66 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/compiler.rbs +9 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/dispatcher.rbs +16 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/dot_visitor.rbs +6 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/dsl.rbs +351 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/inspect_visitor.rbs +22 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/lex_compat.rbs +10 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/mutation_compiler.rbs +159 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/node.rbs +3614 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/node_ext.rbs +82 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/pack.rbs +43 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/parse_result.rbs +192 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/pattern.rbs +13 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/reflection.rbs +50 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/relocation.rbs +185 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/serialize.rbs +8 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/string_query.rbs +11 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/visitor.rbs +169 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism.rbs +254 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/diagnostic.c +842 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/encoding.c +5235 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/node.c +8674 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/options.c +328 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/pack.c +509 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/prettyprint.c +8939 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/prism.c +23184 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/regexp.c +790 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/serialize.c +2266 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/static_literals.c +617 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/token_type.c +701 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_buffer.c +357 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_char.c +318 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_constant_pool.c +342 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_integer.c +670 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_list.c +49 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_memchr.c +35 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_newline_list.c +125 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_string.c +383 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_strncasecmp.c +36 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_strpbrk.c +206 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/ext/racc/cparse/Makefile +3 -3
- package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/cparse.so +0 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/ast-2.4.3.gemspec +1 -1
- package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/bundler-2.6.7.gemspec +25 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/{ostruct-0.6.1.gemspec → ostruct-0.6.3.gemspec} +5 -4
- package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/parser-3.3.8.0.gemspec +1 -1
- package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/prism-1.4.0.gemspec +24 -0
- package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/racc-1.8.1.gemspec +1 -1
- package/rbastgen.js +1 -1
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php +0 -47
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php +0 -76
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php +0 -23
- package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php +0 -105
- package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php +0 -30
- package/plugins/nikic/php-parser/lib/PhpParser/Parser/Multiple.php +0 -55
- package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php5.php +0 -2682
- package/plugins/nikic/php-parser/lib/PhpParser/Parser/Tokens.php +0 -148
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-2a9186207494/exe/ruby_ast_gen +0 -59
- package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-2a9186207494/spec/ruby_ast_gen_spec.rb +0 -175
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/.rspec +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/LICENSE.txt +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/Rakefile +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/bin/setup +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/spec/spec_helper.rb +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → bundler-2.6.7/lib/bundler/vendor/fileutils}/COPYING +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/BSDL +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/Gemfile +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/README.md +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/Rakefile +0 -0
- /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/bin/console +0 -0
|
@@ -6,16 +6,24 @@ namespace PhpParser;
|
|
|
6
6
|
* This parser is based on a skeleton written by Moriyoshi Koizumi, which in
|
|
7
7
|
* turn is based on work by Masato Bito.
|
|
8
8
|
*/
|
|
9
|
+
|
|
10
|
+
use PhpParser\Node\Arg;
|
|
9
11
|
use PhpParser\Node\Expr;
|
|
12
|
+
use PhpParser\Node\Expr\Array_;
|
|
10
13
|
use PhpParser\Node\Expr\Cast\Double;
|
|
14
|
+
use PhpParser\Node\Identifier;
|
|
15
|
+
use PhpParser\Node\InterpolatedStringPart;
|
|
11
16
|
use PhpParser\Node\Name;
|
|
12
17
|
use PhpParser\Node\Param;
|
|
13
|
-
use PhpParser\Node\
|
|
14
|
-
use PhpParser\Node\Scalar\
|
|
18
|
+
use PhpParser\Node\PropertyHook;
|
|
19
|
+
use PhpParser\Node\Scalar\InterpolatedString;
|
|
20
|
+
use PhpParser\Node\Scalar\Int_;
|
|
15
21
|
use PhpParser\Node\Scalar\String_;
|
|
22
|
+
use PhpParser\Node\Stmt;
|
|
16
23
|
use PhpParser\Node\Stmt\Class_;
|
|
17
24
|
use PhpParser\Node\Stmt\ClassConst;
|
|
18
25
|
use PhpParser\Node\Stmt\ClassMethod;
|
|
26
|
+
use PhpParser\Node\Stmt\Const_;
|
|
19
27
|
use PhpParser\Node\Stmt\Else_;
|
|
20
28
|
use PhpParser\Node\Stmt\ElseIf_;
|
|
21
29
|
use PhpParser\Node\Stmt\Enum_;
|
|
@@ -24,122 +32,138 @@ use PhpParser\Node\Stmt\Namespace_;
|
|
|
24
32
|
use PhpParser\Node\Stmt\Nop;
|
|
25
33
|
use PhpParser\Node\Stmt\Property;
|
|
26
34
|
use PhpParser\Node\Stmt\TryCatch;
|
|
27
|
-
use PhpParser\Node\
|
|
35
|
+
use PhpParser\Node\UseItem;
|
|
28
36
|
use PhpParser\Node\VarLikeIdentifier;
|
|
37
|
+
use PhpParser\NodeVisitor\CommentAnnotatingVisitor;
|
|
38
|
+
|
|
39
|
+
abstract class ParserAbstract implements Parser {
|
|
40
|
+
private const SYMBOL_NONE = -1;
|
|
29
41
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
42
|
+
/** @var Lexer Lexer that is used when parsing */
|
|
43
|
+
protected Lexer $lexer;
|
|
44
|
+
/** @var PhpVersion PHP version to target on a best-effort basis */
|
|
45
|
+
protected PhpVersion $phpVersion;
|
|
33
46
|
|
|
34
47
|
/*
|
|
35
48
|
* The following members will be filled with generated parsing data:
|
|
36
49
|
*/
|
|
37
50
|
|
|
38
51
|
/** @var int Size of $tokenToSymbol map */
|
|
39
|
-
protected $tokenToSymbolMapSize;
|
|
52
|
+
protected int $tokenToSymbolMapSize;
|
|
40
53
|
/** @var int Size of $action table */
|
|
41
|
-
protected $actionTableSize;
|
|
54
|
+
protected int $actionTableSize;
|
|
42
55
|
/** @var int Size of $goto table */
|
|
43
|
-
protected $gotoTableSize;
|
|
56
|
+
protected int $gotoTableSize;
|
|
44
57
|
|
|
45
58
|
/** @var int Symbol number signifying an invalid token */
|
|
46
|
-
protected $invalidSymbol;
|
|
59
|
+
protected int $invalidSymbol;
|
|
47
60
|
/** @var int Symbol number of error recovery token */
|
|
48
|
-
protected $errorSymbol;
|
|
61
|
+
protected int $errorSymbol;
|
|
49
62
|
/** @var int Action number signifying default action */
|
|
50
|
-
protected $defaultAction;
|
|
63
|
+
protected int $defaultAction;
|
|
51
64
|
/** @var int Rule number signifying that an unexpected token was encountered */
|
|
52
|
-
protected $unexpectedTokenRule;
|
|
65
|
+
protected int $unexpectedTokenRule;
|
|
53
66
|
|
|
54
|
-
protected $YY2TBLSTATE;
|
|
67
|
+
protected int $YY2TBLSTATE;
|
|
55
68
|
/** @var int Number of non-leaf states */
|
|
56
|
-
protected $numNonLeafStates;
|
|
57
|
-
|
|
58
|
-
/** @var int[] Map of
|
|
59
|
-
protected $
|
|
69
|
+
protected int $numNonLeafStates;
|
|
70
|
+
|
|
71
|
+
/** @var int[] Map of PHP token IDs to internal symbols */
|
|
72
|
+
protected array $phpTokenToSymbol;
|
|
73
|
+
/** @var array<int, bool> Map of PHP token IDs to drop */
|
|
74
|
+
protected array $dropTokens;
|
|
75
|
+
/** @var int[] Map of external symbols (static::T_*) to internal symbols */
|
|
76
|
+
protected array $tokenToSymbol;
|
|
60
77
|
/** @var string[] Map of symbols to their names */
|
|
61
|
-
protected $symbolToName;
|
|
62
|
-
/** @var array Names of the production rules (only necessary for debugging) */
|
|
63
|
-
protected $productions;
|
|
78
|
+
protected array $symbolToName;
|
|
79
|
+
/** @var array<int, string> Names of the production rules (only necessary for debugging) */
|
|
80
|
+
protected array $productions;
|
|
64
81
|
|
|
65
82
|
/** @var int[] Map of states to a displacement into the $action table. The corresponding action for this
|
|
66
83
|
* state/symbol pair is $action[$actionBase[$state] + $symbol]. If $actionBase[$state] is 0, the
|
|
67
84
|
* action is defaulted, i.e. $actionDefault[$state] should be used instead. */
|
|
68
|
-
protected $actionBase;
|
|
85
|
+
protected array $actionBase;
|
|
69
86
|
/** @var int[] Table of actions. Indexed according to $actionBase comment. */
|
|
70
|
-
protected $action;
|
|
87
|
+
protected array $action;
|
|
71
88
|
/** @var int[] Table indexed analogously to $action. If $actionCheck[$actionBase[$state] + $symbol] != $symbol
|
|
72
89
|
* then the action is defaulted, i.e. $actionDefault[$state] should be used instead. */
|
|
73
|
-
protected $actionCheck;
|
|
90
|
+
protected array $actionCheck;
|
|
74
91
|
/** @var int[] Map of states to their default action */
|
|
75
|
-
protected $actionDefault;
|
|
92
|
+
protected array $actionDefault;
|
|
76
93
|
/** @var callable[] Semantic action callbacks */
|
|
77
|
-
protected $reduceCallbacks;
|
|
94
|
+
protected array $reduceCallbacks;
|
|
78
95
|
|
|
79
96
|
/** @var int[] Map of non-terminals to a displacement into the $goto table. The corresponding goto state for this
|
|
80
97
|
* non-terminal/state pair is $goto[$gotoBase[$nonTerminal] + $state] (unless defaulted) */
|
|
81
|
-
protected $gotoBase;
|
|
98
|
+
protected array $gotoBase;
|
|
82
99
|
/** @var int[] Table of states to goto after reduction. Indexed according to $gotoBase comment. */
|
|
83
|
-
protected $goto;
|
|
100
|
+
protected array $goto;
|
|
84
101
|
/** @var int[] Table indexed analogously to $goto. If $gotoCheck[$gotoBase[$nonTerminal] + $state] != $nonTerminal
|
|
85
102
|
* then the goto state is defaulted, i.e. $gotoDefault[$nonTerminal] should be used. */
|
|
86
|
-
protected $gotoCheck;
|
|
103
|
+
protected array $gotoCheck;
|
|
87
104
|
/** @var int[] Map of non-terminals to the default state to goto after their reduction */
|
|
88
|
-
protected $gotoDefault;
|
|
105
|
+
protected array $gotoDefault;
|
|
89
106
|
|
|
90
107
|
/** @var int[] Map of rules to the non-terminal on their left-hand side, i.e. the non-terminal to use for
|
|
91
108
|
* determining the state to goto after reduction. */
|
|
92
|
-
protected $ruleToNonTerminal;
|
|
109
|
+
protected array $ruleToNonTerminal;
|
|
93
110
|
/** @var int[] Map of rules to the length of their right-hand side, which is the number of elements that have to
|
|
94
111
|
* be popped from the stack(s) on reduction. */
|
|
95
|
-
protected $ruleToLength;
|
|
112
|
+
protected array $ruleToLength;
|
|
96
113
|
|
|
97
114
|
/*
|
|
98
115
|
* The following members are part of the parser state:
|
|
99
116
|
*/
|
|
100
117
|
|
|
101
|
-
/** @var Lexer Lexer that is used when parsing */
|
|
102
|
-
protected $lexer;
|
|
103
118
|
/** @var mixed Temporary value containing the result of last semantic action (reduction) */
|
|
104
119
|
protected $semValue;
|
|
105
|
-
/** @var
|
|
106
|
-
protected $semStack;
|
|
107
|
-
/** @var
|
|
108
|
-
protected $
|
|
109
|
-
/** @var
|
|
110
|
-
protected $
|
|
111
|
-
/** @var array End attributes of last *shifted* token */
|
|
112
|
-
protected $endAttributes;
|
|
113
|
-
/** @var array Start attributes of last *read* token */
|
|
114
|
-
protected $lookaheadStartAttributes;
|
|
120
|
+
/** @var mixed[] Semantic value stack (contains values of tokens and semantic action results) */
|
|
121
|
+
protected array $semStack;
|
|
122
|
+
/** @var int[] Token start position stack */
|
|
123
|
+
protected array $tokenStartStack;
|
|
124
|
+
/** @var int[] Token end position stack */
|
|
125
|
+
protected array $tokenEndStack;
|
|
115
126
|
|
|
116
127
|
/** @var ErrorHandler Error handler */
|
|
117
|
-
protected $errorHandler;
|
|
128
|
+
protected ErrorHandler $errorHandler;
|
|
118
129
|
/** @var int Error state, used to avoid error floods */
|
|
119
|
-
protected $errorState;
|
|
130
|
+
protected int $errorState;
|
|
131
|
+
|
|
132
|
+
/** @var \SplObjectStorage<Array_, null>|null Array nodes created during parsing, for postprocessing of empty elements. */
|
|
133
|
+
protected ?\SplObjectStorage $createdArrays;
|
|
134
|
+
|
|
135
|
+
/** @var Token[] Tokens for the current parse */
|
|
136
|
+
protected array $tokens;
|
|
137
|
+
/** @var int Current position in token array */
|
|
138
|
+
protected int $tokenPos;
|
|
120
139
|
|
|
121
140
|
/**
|
|
122
141
|
* Initialize $reduceCallbacks map.
|
|
123
142
|
*/
|
|
124
|
-
abstract protected function initReduceCallbacks();
|
|
143
|
+
abstract protected function initReduceCallbacks(): void;
|
|
125
144
|
|
|
126
145
|
/**
|
|
127
146
|
* Creates a parser instance.
|
|
128
147
|
*
|
|
129
|
-
* Options:
|
|
148
|
+
* Options:
|
|
149
|
+
* * phpVersion: ?PhpVersion,
|
|
130
150
|
*
|
|
131
151
|
* @param Lexer $lexer A lexer
|
|
132
|
-
* @param
|
|
152
|
+
* @param PhpVersion $phpVersion PHP version to target, defaults to latest supported. This
|
|
153
|
+
* option is best-effort: Even if specified, parsing will generally assume the latest
|
|
154
|
+
* supported version and only adjust behavior in minor ways, for example by omitting
|
|
155
|
+
* errors in older versions and interpreting type hints as a name or identifier depending
|
|
156
|
+
* on version.
|
|
133
157
|
*/
|
|
134
|
-
public function __construct(Lexer $lexer,
|
|
158
|
+
public function __construct(Lexer $lexer, ?PhpVersion $phpVersion = null) {
|
|
135
159
|
$this->lexer = $lexer;
|
|
136
|
-
|
|
137
|
-
if (isset($options['throwOnError'])) {
|
|
138
|
-
throw new \LogicException(
|
|
139
|
-
'"throwOnError" is no longer supported, use "errorHandler" instead');
|
|
140
|
-
}
|
|
160
|
+
$this->phpVersion = $phpVersion ?? PhpVersion::getNewestSupported();
|
|
141
161
|
|
|
142
162
|
$this->initReduceCallbacks();
|
|
163
|
+
$this->phpTokenToSymbol = $this->createTokenMap();
|
|
164
|
+
$this->dropTokens = array_fill_keys(
|
|
165
|
+
[\T_WHITESPACE, \T_OPEN_TAG, \T_COMMENT, \T_DOC_COMMENT, \T_BAD_CHARACTER], true
|
|
166
|
+
);
|
|
143
167
|
}
|
|
144
168
|
|
|
145
169
|
/**
|
|
@@ -155,36 +179,55 @@ abstract class ParserAbstract implements Parser
|
|
|
155
179
|
* @return Node\Stmt[]|null Array of statements (or null non-throwing error handler is used and
|
|
156
180
|
* the parser was unable to recover from an error).
|
|
157
181
|
*/
|
|
158
|
-
public function parse(string $code, ErrorHandler $errorHandler = null) {
|
|
159
|
-
$this->errorHandler = $errorHandler ?: new ErrorHandler\Throwing;
|
|
182
|
+
public function parse(string $code, ?ErrorHandler $errorHandler = null): ?array {
|
|
183
|
+
$this->errorHandler = $errorHandler ?: new ErrorHandler\Throwing();
|
|
184
|
+
$this->createdArrays = new \SplObjectStorage();
|
|
160
185
|
|
|
161
|
-
$this->lexer->
|
|
186
|
+
$this->tokens = $this->lexer->tokenize($code, $this->errorHandler);
|
|
162
187
|
$result = $this->doParse();
|
|
163
188
|
|
|
189
|
+
// Report errors for any empty elements used inside arrays. This is delayed until after the main parse,
|
|
190
|
+
// because we don't know a priori whether a given array expression will be used in a destructuring context
|
|
191
|
+
// or not.
|
|
192
|
+
foreach ($this->createdArrays as $node) {
|
|
193
|
+
foreach ($node->items as $item) {
|
|
194
|
+
if ($item->value instanceof Expr\Error) {
|
|
195
|
+
$this->errorHandler->handleError(
|
|
196
|
+
new Error('Cannot use empty array elements in arrays', $item->getAttributes()));
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
164
201
|
// Clear out some of the interior state, so we don't hold onto unnecessary
|
|
165
202
|
// memory between uses of the parser
|
|
166
|
-
$this->
|
|
167
|
-
$this->
|
|
203
|
+
$this->tokenStartStack = [];
|
|
204
|
+
$this->tokenEndStack = [];
|
|
168
205
|
$this->semStack = [];
|
|
169
206
|
$this->semValue = null;
|
|
207
|
+
$this->createdArrays = null;
|
|
208
|
+
|
|
209
|
+
if ($result !== null) {
|
|
210
|
+
$traverser = new NodeTraverser(new CommentAnnotatingVisitor($this->tokens));
|
|
211
|
+
$traverser->traverse($result);
|
|
212
|
+
}
|
|
170
213
|
|
|
171
214
|
return $result;
|
|
172
215
|
}
|
|
173
216
|
|
|
174
|
-
|
|
217
|
+
public function getTokens(): array {
|
|
218
|
+
return $this->tokens;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/** @return Stmt[]|null */
|
|
222
|
+
protected function doParse(): ?array {
|
|
175
223
|
// We start off with no lookahead-token
|
|
176
224
|
$symbol = self::SYMBOL_NONE;
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
// From the first token only the startAttributes are taken and from the last only
|
|
180
|
-
// the endAttributes. Both are merged using the array union operator (+).
|
|
181
|
-
$startAttributes = [];
|
|
182
|
-
$endAttributes = [];
|
|
183
|
-
$this->endAttributes = $endAttributes;
|
|
225
|
+
$tokenValue = null;
|
|
226
|
+
$this->tokenPos = -1;
|
|
184
227
|
|
|
185
228
|
// Keep stack of start and end attributes
|
|
186
|
-
$this->
|
|
187
|
-
$this->
|
|
229
|
+
$this->tokenStartStack = [];
|
|
230
|
+
$this->tokenEndStack = [0];
|
|
188
231
|
|
|
189
232
|
// Start off in the initial state and keep a stack of previous states
|
|
190
233
|
$state = 0;
|
|
@@ -205,26 +248,20 @@ abstract class ParserAbstract implements Parser
|
|
|
205
248
|
$rule = $this->actionDefault[$state];
|
|
206
249
|
} else {
|
|
207
250
|
if ($symbol === self::SYMBOL_NONE) {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
? $this->tokenToSymbol[$tokenId]
|
|
217
|
-
: $this->invalidSymbol;
|
|
218
|
-
|
|
219
|
-
if ($symbol === $this->invalidSymbol) {
|
|
251
|
+
do {
|
|
252
|
+
$token = $this->tokens[++$this->tokenPos];
|
|
253
|
+
$tokenId = $token->id;
|
|
254
|
+
} while (isset($this->dropTokens[$tokenId]));
|
|
255
|
+
|
|
256
|
+
// Map the lexer token id to the internally used symbols.
|
|
257
|
+
$tokenValue = $token->text;
|
|
258
|
+
if (!isset($this->phpTokenToSymbol[$tokenId])) {
|
|
220
259
|
throw new \RangeException(sprintf(
|
|
221
260
|
'The lexer returned an invalid token (id=%d, value=%s)',
|
|
222
261
|
$tokenId, $tokenValue
|
|
223
262
|
));
|
|
224
263
|
}
|
|
225
|
-
|
|
226
|
-
// Allow productions to access the start attributes of the lookahead token.
|
|
227
|
-
$this->lookaheadStartAttributes = $startAttributes;
|
|
264
|
+
$symbol = $this->phpTokenToSymbol[$tokenId];
|
|
228
265
|
|
|
229
266
|
//$this->traceRead($symbol);
|
|
230
267
|
}
|
|
@@ -249,9 +286,8 @@ abstract class ParserAbstract implements Parser
|
|
|
249
286
|
++$stackPos;
|
|
250
287
|
$stateStack[$stackPos] = $state = $action;
|
|
251
288
|
$this->semStack[$stackPos] = $tokenValue;
|
|
252
|
-
$this->
|
|
253
|
-
$this->
|
|
254
|
-
$this->endAttributes = $endAttributes;
|
|
289
|
+
$this->tokenStartStack[$stackPos] = $this->tokenPos;
|
|
290
|
+
$this->tokenEndStack[$stackPos] = $this->tokenPos;
|
|
255
291
|
$symbol = self::SYMBOL_NONE;
|
|
256
292
|
|
|
257
293
|
if ($this->errorState) {
|
|
@@ -277,15 +313,22 @@ abstract class ParserAbstract implements Parser
|
|
|
277
313
|
/* accept */
|
|
278
314
|
//$this->traceAccept();
|
|
279
315
|
return $this->semValue;
|
|
280
|
-
}
|
|
316
|
+
}
|
|
317
|
+
if ($rule !== $this->unexpectedTokenRule) {
|
|
281
318
|
/* reduce */
|
|
282
319
|
//$this->traceReduce($rule);
|
|
283
320
|
|
|
321
|
+
$ruleLength = $this->ruleToLength[$rule];
|
|
284
322
|
try {
|
|
285
|
-
$this->reduceCallbacks[$rule]
|
|
323
|
+
$callback = $this->reduceCallbacks[$rule];
|
|
324
|
+
if ($callback !== null) {
|
|
325
|
+
$callback($this, $stackPos);
|
|
326
|
+
} elseif ($ruleLength > 0) {
|
|
327
|
+
$this->semValue = $this->semStack[$stackPos - $ruleLength + 1];
|
|
328
|
+
}
|
|
286
329
|
} catch (Error $e) {
|
|
287
|
-
if (-1 === $e->getStartLine()
|
|
288
|
-
$e->setStartLine($
|
|
330
|
+
if (-1 === $e->getStartLine()) {
|
|
331
|
+
$e->setStartLine($this->tokens[$this->tokenPos]->line);
|
|
289
332
|
}
|
|
290
333
|
|
|
291
334
|
$this->emitError($e);
|
|
@@ -294,8 +337,7 @@ abstract class ParserAbstract implements Parser
|
|
|
294
337
|
}
|
|
295
338
|
|
|
296
339
|
/* Goto - shift nonterminal */
|
|
297
|
-
$
|
|
298
|
-
$ruleLength = $this->ruleToLength[$rule];
|
|
340
|
+
$lastTokenEnd = $this->tokenEndStack[$stackPos];
|
|
299
341
|
$stackPos -= $ruleLength;
|
|
300
342
|
$nonTerminal = $this->ruleToNonTerminal[$rule];
|
|
301
343
|
$idx = $this->gotoBase[$nonTerminal] + $stateStack[$stackPos];
|
|
@@ -308,18 +350,19 @@ abstract class ParserAbstract implements Parser
|
|
|
308
350
|
++$stackPos;
|
|
309
351
|
$stateStack[$stackPos] = $state;
|
|
310
352
|
$this->semStack[$stackPos] = $this->semValue;
|
|
311
|
-
$this->
|
|
353
|
+
$this->tokenEndStack[$stackPos] = $lastTokenEnd;
|
|
312
354
|
if ($ruleLength === 0) {
|
|
313
355
|
// Empty productions use the start attributes of the lookahead token.
|
|
314
|
-
$this->
|
|
356
|
+
$this->tokenStartStack[$stackPos] = $this->tokenPos;
|
|
315
357
|
}
|
|
316
358
|
} else {
|
|
317
359
|
/* error */
|
|
318
360
|
switch ($this->errorState) {
|
|
319
361
|
case 0:
|
|
320
362
|
$msg = $this->getErrorMessage($symbol, $state);
|
|
321
|
-
$this->emitError(new Error($msg, $
|
|
363
|
+
$this->emitError(new Error($msg, $this->getAttributesForToken($this->tokenPos)));
|
|
322
364
|
// Break missing intentionally
|
|
365
|
+
// no break
|
|
323
366
|
case 1:
|
|
324
367
|
case 2:
|
|
325
368
|
$this->errorState = 3;
|
|
@@ -346,9 +389,8 @@ abstract class ParserAbstract implements Parser
|
|
|
346
389
|
|
|
347
390
|
// We treat the error symbol as being empty, so we reset the end attributes
|
|
348
391
|
// to the end attributes of the last non-error symbol
|
|
349
|
-
$this->
|
|
350
|
-
$this->
|
|
351
|
-
$this->endAttributes = $this->endAttributeStack[$stackPos - 1];
|
|
392
|
+
$this->tokenStartStack[$stackPos] = $this->tokenPos;
|
|
393
|
+
$this->tokenEndStack[$stackPos] = $this->tokenEndStack[$stackPos - 1];
|
|
352
394
|
break;
|
|
353
395
|
|
|
354
396
|
case 3:
|
|
@@ -371,11 +413,9 @@ abstract class ParserAbstract implements Parser
|
|
|
371
413
|
$rule = $state - $this->numNonLeafStates;
|
|
372
414
|
}
|
|
373
415
|
}
|
|
374
|
-
|
|
375
|
-
throw new \RuntimeException('Reached end of parser loop');
|
|
376
416
|
}
|
|
377
417
|
|
|
378
|
-
protected function emitError(Error $error) {
|
|
418
|
+
protected function emitError(Error $error): void {
|
|
379
419
|
$this->errorHandler->handleError($error);
|
|
380
420
|
}
|
|
381
421
|
|
|
@@ -383,11 +423,11 @@ abstract class ParserAbstract implements Parser
|
|
|
383
423
|
* Format error message including expected tokens.
|
|
384
424
|
*
|
|
385
425
|
* @param int $symbol Unexpected symbol
|
|
386
|
-
* @param int $state
|
|
426
|
+
* @param int $state State at time of error
|
|
387
427
|
*
|
|
388
428
|
* @return string Formatted error message
|
|
389
429
|
*/
|
|
390
|
-
protected function getErrorMessage(int $symbol, int $state)
|
|
430
|
+
protected function getErrorMessage(int $symbol, int $state): string {
|
|
391
431
|
$expectedString = '';
|
|
392
432
|
if ($expected = $this->getExpectedTokens($state)) {
|
|
393
433
|
$expectedString = ', expecting ' . implode(' or ', $expected);
|
|
@@ -403,7 +443,7 @@ abstract class ParserAbstract implements Parser
|
|
|
403
443
|
*
|
|
404
444
|
* @return string[] Expected tokens. If too many, an empty array is returned.
|
|
405
445
|
*/
|
|
406
|
-
protected function getExpectedTokens(int $state)
|
|
446
|
+
protected function getExpectedTokens(int $state): array {
|
|
407
447
|
$expected = [];
|
|
408
448
|
|
|
409
449
|
$base = $this->actionBase[$state];
|
|
@@ -431,37 +471,79 @@ abstract class ParserAbstract implements Parser
|
|
|
431
471
|
return $expected;
|
|
432
472
|
}
|
|
433
473
|
|
|
474
|
+
/**
|
|
475
|
+
* Get attributes for a node with the given start and end token positions.
|
|
476
|
+
*
|
|
477
|
+
* @param int $tokenStartPos Token position the node starts at
|
|
478
|
+
* @param int $tokenEndPos Token position the node ends at
|
|
479
|
+
* @return array<string, mixed> Attributes
|
|
480
|
+
*/
|
|
481
|
+
protected function getAttributes(int $tokenStartPos, int $tokenEndPos): array {
|
|
482
|
+
$startToken = $this->tokens[$tokenStartPos];
|
|
483
|
+
$afterEndToken = $this->tokens[$tokenEndPos + 1];
|
|
484
|
+
return [
|
|
485
|
+
'startLine' => $startToken->line,
|
|
486
|
+
'startTokenPos' => $tokenStartPos,
|
|
487
|
+
'startFilePos' => $startToken->pos,
|
|
488
|
+
'endLine' => $afterEndToken->line,
|
|
489
|
+
'endTokenPos' => $tokenEndPos,
|
|
490
|
+
'endFilePos' => $afterEndToken->pos - 1,
|
|
491
|
+
];
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
/**
|
|
495
|
+
* Get attributes for a single token at the given token position.
|
|
496
|
+
*
|
|
497
|
+
* @return array<string, mixed> Attributes
|
|
498
|
+
*/
|
|
499
|
+
protected function getAttributesForToken(int $tokenPos): array {
|
|
500
|
+
if ($tokenPos < \count($this->tokens) - 1) {
|
|
501
|
+
return $this->getAttributes($tokenPos, $tokenPos);
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
// Get attributes for the sentinel token.
|
|
505
|
+
$token = $this->tokens[$tokenPos];
|
|
506
|
+
return [
|
|
507
|
+
'startLine' => $token->line,
|
|
508
|
+
'startTokenPos' => $tokenPos,
|
|
509
|
+
'startFilePos' => $token->pos,
|
|
510
|
+
'endLine' => $token->line,
|
|
511
|
+
'endTokenPos' => $tokenPos,
|
|
512
|
+
'endFilePos' => $token->pos,
|
|
513
|
+
];
|
|
514
|
+
}
|
|
515
|
+
|
|
434
516
|
/*
|
|
435
517
|
* Tracing functions used for debugging the parser.
|
|
436
518
|
*/
|
|
437
519
|
|
|
438
520
|
/*
|
|
439
|
-
protected function traceNewState($state, $symbol) {
|
|
521
|
+
protected function traceNewState($state, $symbol): void {
|
|
440
522
|
echo '% State ' . $state
|
|
441
523
|
. ', Lookahead ' . ($symbol == self::SYMBOL_NONE ? '--none--' : $this->symbolToName[$symbol]) . "\n";
|
|
442
524
|
}
|
|
443
525
|
|
|
444
|
-
protected function traceRead($symbol) {
|
|
526
|
+
protected function traceRead($symbol): void {
|
|
445
527
|
echo '% Reading ' . $this->symbolToName[$symbol] . "\n";
|
|
446
528
|
}
|
|
447
529
|
|
|
448
|
-
protected function traceShift($symbol) {
|
|
530
|
+
protected function traceShift($symbol): void {
|
|
449
531
|
echo '% Shift ' . $this->symbolToName[$symbol] . "\n";
|
|
450
532
|
}
|
|
451
533
|
|
|
452
|
-
protected function traceAccept() {
|
|
534
|
+
protected function traceAccept(): void {
|
|
453
535
|
echo "% Accepted.\n";
|
|
454
536
|
}
|
|
455
537
|
|
|
456
|
-
protected function traceReduce($n) {
|
|
538
|
+
protected function traceReduce($n): void {
|
|
457
539
|
echo '% Reduce by (' . $n . ') ' . $this->productions[$n] . "\n";
|
|
458
540
|
}
|
|
459
541
|
|
|
460
|
-
protected function tracePop($state) {
|
|
542
|
+
protected function tracePop($state): void {
|
|
461
543
|
echo '% Recovering, uncovered state ' . $state . "\n";
|
|
462
544
|
}
|
|
463
545
|
|
|
464
|
-
protected function traceDiscard($symbol) {
|
|
546
|
+
protected function traceDiscard($symbol): void {
|
|
465
547
|
echo '% Discard ' . $this->symbolToName[$symbol] . "\n";
|
|
466
548
|
}
|
|
467
549
|
*/
|
|
@@ -476,13 +558,14 @@ abstract class ParserAbstract implements Parser
|
|
|
476
558
|
* @param Node\Stmt[] $stmts
|
|
477
559
|
* @return Node\Stmt[]
|
|
478
560
|
*/
|
|
479
|
-
protected function handleNamespaces(array $stmts)
|
|
561
|
+
protected function handleNamespaces(array $stmts): array {
|
|
480
562
|
$hasErrored = false;
|
|
481
563
|
$style = $this->getNamespacingStyle($stmts);
|
|
482
564
|
if (null === $style) {
|
|
483
565
|
// not namespaced, nothing to do
|
|
484
566
|
return $stmts;
|
|
485
|
-
}
|
|
567
|
+
}
|
|
568
|
+
if ('brace' === $style) {
|
|
486
569
|
// For braced namespaces we only have to check that there are no invalid statements between the namespaces
|
|
487
570
|
$afterFirstNamespace = false;
|
|
488
571
|
foreach ($stmts as $stmt) {
|
|
@@ -500,7 +583,7 @@ abstract class ParserAbstract implements Parser
|
|
|
500
583
|
} else {
|
|
501
584
|
// For semicolon namespaces we have to move the statements after a namespace declaration into ->stmts
|
|
502
585
|
$resultStmts = [];
|
|
503
|
-
$targetStmts
|
|
586
|
+
$targetStmts = &$resultStmts;
|
|
504
587
|
$lastNs = null;
|
|
505
588
|
foreach ($stmts as $stmt) {
|
|
506
589
|
if ($stmt instanceof Node\Stmt\Namespace_) {
|
|
@@ -509,12 +592,12 @@ abstract class ParserAbstract implements Parser
|
|
|
509
592
|
}
|
|
510
593
|
if ($stmt->stmts === null) {
|
|
511
594
|
$stmt->stmts = [];
|
|
512
|
-
$targetStmts
|
|
595
|
+
$targetStmts = &$stmt->stmts;
|
|
513
596
|
$resultStmts[] = $stmt;
|
|
514
597
|
} else {
|
|
515
598
|
// This handles the invalid case of mixed style namespaces
|
|
516
599
|
$resultStmts[] = $stmt;
|
|
517
|
-
$targetStmts
|
|
600
|
+
$targetStmts = &$resultStmts;
|
|
518
601
|
}
|
|
519
602
|
$lastNs = $stmt;
|
|
520
603
|
} elseif ($stmt instanceof Node\Stmt\HaltCompiler) {
|
|
@@ -531,7 +614,7 @@ abstract class ParserAbstract implements Parser
|
|
|
531
614
|
}
|
|
532
615
|
}
|
|
533
616
|
|
|
534
|
-
private function fixupNamespaceAttributes(Node\Stmt\Namespace_ $stmt) {
|
|
617
|
+
private function fixupNamespaceAttributes(Node\Stmt\Namespace_ $stmt): void {
|
|
535
618
|
// We moved the statements into the namespace node, as such the end of the namespace node
|
|
536
619
|
// needs to be extended to the end of the statements.
|
|
537
620
|
if (empty($stmt->stmts)) {
|
|
@@ -549,6 +632,22 @@ abstract class ParserAbstract implements Parser
|
|
|
549
632
|
}
|
|
550
633
|
}
|
|
551
634
|
|
|
635
|
+
/** @return array<string, mixed> */
|
|
636
|
+
private function getNamespaceErrorAttributes(Namespace_ $node): array {
|
|
637
|
+
$attrs = $node->getAttributes();
|
|
638
|
+
// Adjust end attributes to only cover the "namespace" keyword, not the whole namespace.
|
|
639
|
+
if (isset($attrs['startLine'])) {
|
|
640
|
+
$attrs['endLine'] = $attrs['startLine'];
|
|
641
|
+
}
|
|
642
|
+
if (isset($attrs['startTokenPos'])) {
|
|
643
|
+
$attrs['endTokenPos'] = $attrs['startTokenPos'];
|
|
644
|
+
}
|
|
645
|
+
if (isset($attrs['startFilePos'])) {
|
|
646
|
+
$attrs['endFilePos'] = $attrs['startFilePos'] + \strlen('namespace') - 1;
|
|
647
|
+
}
|
|
648
|
+
return $attrs;
|
|
649
|
+
}
|
|
650
|
+
|
|
552
651
|
/**
|
|
553
652
|
* Determine namespacing style (semicolon or brace)
|
|
554
653
|
*
|
|
@@ -556,7 +655,7 @@ abstract class ParserAbstract implements Parser
|
|
|
556
655
|
*
|
|
557
656
|
* @return null|string One of "semicolon", "brace" or null (no namespaces)
|
|
558
657
|
*/
|
|
559
|
-
private function getNamespacingStyle(array $stmts) {
|
|
658
|
+
private function getNamespacingStyle(array $stmts): ?string {
|
|
560
659
|
$style = null;
|
|
561
660
|
$hasNotAllowedStmts = false;
|
|
562
661
|
foreach ($stmts as $i => $stmt) {
|
|
@@ -567,13 +666,13 @@ abstract class ParserAbstract implements Parser
|
|
|
567
666
|
if ($hasNotAllowedStmts) {
|
|
568
667
|
$this->emitError(new Error(
|
|
569
668
|
'Namespace declaration statement has to be the very first statement in the script',
|
|
570
|
-
$
|
|
669
|
+
$this->getNamespaceErrorAttributes($stmt)
|
|
571
670
|
));
|
|
572
671
|
}
|
|
573
672
|
} elseif ($style !== $currentStyle) {
|
|
574
673
|
$this->emitError(new Error(
|
|
575
674
|
'Cannot mix bracketed namespace declarations with unbracketed namespace declarations',
|
|
576
|
-
$
|
|
675
|
+
$this->getNamespaceErrorAttributes($stmt)
|
|
577
676
|
));
|
|
578
677
|
// Treat like semicolon style for namespace normalization
|
|
579
678
|
return 'semicolon';
|
|
@@ -599,83 +698,14 @@ abstract class ParserAbstract implements Parser
|
|
|
599
698
|
return $style;
|
|
600
699
|
}
|
|
601
700
|
|
|
602
|
-
/**
|
|
603
|
-
* Fix up parsing of static property calls in PHP 5.
|
|
604
|
-
*
|
|
605
|
-
* In PHP 5 A::$b[c][d] and A::$b[c][d]() have very different interpretation. The former is
|
|
606
|
-
* interpreted as (A::$b)[c][d], while the latter is the same as A::{$b[c][d]}(). We parse the
|
|
607
|
-
* latter as the former initially and this method fixes the AST into the correct form when we
|
|
608
|
-
* encounter the "()".
|
|
609
|
-
*
|
|
610
|
-
* @param Node\Expr\StaticPropertyFetch|Node\Expr\ArrayDimFetch $prop
|
|
611
|
-
* @param Node\Arg[] $args
|
|
612
|
-
* @param array $attributes
|
|
613
|
-
*
|
|
614
|
-
* @return Expr\StaticCall
|
|
615
|
-
*/
|
|
616
|
-
protected function fixupPhp5StaticPropCall($prop, array $args, array $attributes) : Expr\StaticCall {
|
|
617
|
-
if ($prop instanceof Node\Expr\StaticPropertyFetch) {
|
|
618
|
-
$name = $prop->name instanceof VarLikeIdentifier
|
|
619
|
-
? $prop->name->toString() : $prop->name;
|
|
620
|
-
$var = new Expr\Variable($name, $prop->name->getAttributes());
|
|
621
|
-
return new Expr\StaticCall($prop->class, $var, $args, $attributes);
|
|
622
|
-
} elseif ($prop instanceof Node\Expr\ArrayDimFetch) {
|
|
623
|
-
$tmp = $prop;
|
|
624
|
-
while ($tmp->var instanceof Node\Expr\ArrayDimFetch) {
|
|
625
|
-
$tmp = $tmp->var;
|
|
626
|
-
}
|
|
627
|
-
|
|
628
|
-
/** @var Expr\StaticPropertyFetch $staticProp */
|
|
629
|
-
$staticProp = $tmp->var;
|
|
630
|
-
|
|
631
|
-
// Set start attributes to attributes of innermost node
|
|
632
|
-
$tmp = $prop;
|
|
633
|
-
$this->fixupStartAttributes($tmp, $staticProp->name);
|
|
634
|
-
while ($tmp->var instanceof Node\Expr\ArrayDimFetch) {
|
|
635
|
-
$tmp = $tmp->var;
|
|
636
|
-
$this->fixupStartAttributes($tmp, $staticProp->name);
|
|
637
|
-
}
|
|
638
|
-
|
|
639
|
-
$name = $staticProp->name instanceof VarLikeIdentifier
|
|
640
|
-
? $staticProp->name->toString() : $staticProp->name;
|
|
641
|
-
$tmp->var = new Expr\Variable($name, $staticProp->name->getAttributes());
|
|
642
|
-
return new Expr\StaticCall($staticProp->class, $prop, $args, $attributes);
|
|
643
|
-
} else {
|
|
644
|
-
throw new \Exception;
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
protected function fixupStartAttributes(Node $to, Node $from) {
|
|
649
|
-
$startAttributes = ['startLine', 'startFilePos', 'startTokenPos'];
|
|
650
|
-
foreach ($startAttributes as $startAttribute) {
|
|
651
|
-
if ($from->hasAttribute($startAttribute)) {
|
|
652
|
-
$to->setAttribute($startAttribute, $from->getAttribute($startAttribute));
|
|
653
|
-
}
|
|
654
|
-
}
|
|
655
|
-
}
|
|
656
|
-
|
|
701
|
+
/** @return Name|Identifier */
|
|
657
702
|
protected function handleBuiltinTypes(Name $name) {
|
|
658
|
-
$builtinTypes = [
|
|
659
|
-
'bool' => true,
|
|
660
|
-
'int' => true,
|
|
661
|
-
'float' => true,
|
|
662
|
-
'string' => true,
|
|
663
|
-
'iterable' => true,
|
|
664
|
-
'void' => true,
|
|
665
|
-
'object' => true,
|
|
666
|
-
'null' => true,
|
|
667
|
-
'false' => true,
|
|
668
|
-
'mixed' => true,
|
|
669
|
-
'never' => true,
|
|
670
|
-
'true' => true,
|
|
671
|
-
];
|
|
672
|
-
|
|
673
703
|
if (!$name->isUnqualified()) {
|
|
674
704
|
return $name;
|
|
675
705
|
}
|
|
676
706
|
|
|
677
707
|
$lowerName = $name->toLowerString();
|
|
678
|
-
if (
|
|
708
|
+
if (!$this->phpVersion->supportsBuiltinType($lowerName)) {
|
|
679
709
|
return $name;
|
|
680
710
|
}
|
|
681
711
|
|
|
@@ -685,16 +715,15 @@ abstract class ParserAbstract implements Parser
|
|
|
685
715
|
/**
|
|
686
716
|
* Get combined start and end attributes at a stack location
|
|
687
717
|
*
|
|
688
|
-
* @param int $
|
|
718
|
+
* @param int $stackPos Stack location
|
|
689
719
|
*
|
|
690
|
-
* @return array Combined start and end attributes
|
|
720
|
+
* @return array<string, mixed> Combined start and end attributes
|
|
691
721
|
*/
|
|
692
|
-
protected function getAttributesAt(int $
|
|
693
|
-
return $this->
|
|
722
|
+
protected function getAttributesAt(int $stackPos): array {
|
|
723
|
+
return $this->getAttributes($this->tokenStartStack[$stackPos], $this->tokenEndStack[$stackPos]);
|
|
694
724
|
}
|
|
695
725
|
|
|
696
|
-
protected function getFloatCastKind(string $cast): int
|
|
697
|
-
{
|
|
726
|
+
protected function getFloatCastKind(string $cast): int {
|
|
698
727
|
$cast = strtolower($cast);
|
|
699
728
|
if (strpos($cast, 'float') !== false) {
|
|
700
729
|
return Double::KIND_FLOAT;
|
|
@@ -707,23 +736,24 @@ abstract class ParserAbstract implements Parser
|
|
|
707
736
|
return Double::KIND_DOUBLE;
|
|
708
737
|
}
|
|
709
738
|
|
|
710
|
-
|
|
739
|
+
/** @param array<string, mixed> $attributes */
|
|
740
|
+
protected function parseLNumber(string $str, array $attributes, bool $allowInvalidOctal = false): Int_ {
|
|
711
741
|
try {
|
|
712
|
-
return
|
|
742
|
+
return Int_::fromString($str, $attributes, $allowInvalidOctal);
|
|
713
743
|
} catch (Error $error) {
|
|
714
744
|
$this->emitError($error);
|
|
715
745
|
// Use dummy value
|
|
716
|
-
return new
|
|
746
|
+
return new Int_(0, $attributes);
|
|
717
747
|
}
|
|
718
748
|
}
|
|
719
749
|
|
|
720
750
|
/**
|
|
721
751
|
* Parse a T_NUM_STRING token into either an integer or string node.
|
|
722
752
|
*
|
|
723
|
-
* @param string $str
|
|
724
|
-
* @param array
|
|
753
|
+
* @param string $str Number string
|
|
754
|
+
* @param array<string, mixed> $attributes Attributes
|
|
725
755
|
*
|
|
726
|
-
* @return
|
|
756
|
+
* @return Int_|String_ Integer or string node.
|
|
727
757
|
*/
|
|
728
758
|
protected function parseNumString(string $str, array $attributes) {
|
|
729
759
|
if (!preg_match('/^(?:0|-?[1-9][0-9]*)$/', $str)) {
|
|
@@ -735,13 +765,14 @@ abstract class ParserAbstract implements Parser
|
|
|
735
765
|
return new String_($str, $attributes);
|
|
736
766
|
}
|
|
737
767
|
|
|
738
|
-
return new
|
|
768
|
+
return new Int_($num, $attributes);
|
|
739
769
|
}
|
|
740
770
|
|
|
771
|
+
/** @param array<string, mixed> $attributes */
|
|
741
772
|
protected function stripIndentation(
|
|
742
773
|
string $string, int $indentLen, string $indentChar,
|
|
743
774
|
bool $newlineAtStart, bool $newlineAtEnd, array $attributes
|
|
744
|
-
) {
|
|
775
|
+
): string {
|
|
745
776
|
if ($indentLen === 0) {
|
|
746
777
|
return $string;
|
|
747
778
|
}
|
|
@@ -770,10 +801,15 @@ abstract class ParserAbstract implements Parser
|
|
|
770
801
|
);
|
|
771
802
|
}
|
|
772
803
|
|
|
804
|
+
/**
|
|
805
|
+
* @param string|(Expr|InterpolatedStringPart)[] $contents
|
|
806
|
+
* @param array<string, mixed> $attributes
|
|
807
|
+
* @param array<string, mixed> $endTokenAttributes
|
|
808
|
+
*/
|
|
773
809
|
protected function parseDocString(
|
|
774
810
|
string $startToken, $contents, string $endToken,
|
|
775
811
|
array $attributes, array $endTokenAttributes, bool $parseUnicodeEscape
|
|
776
|
-
) {
|
|
812
|
+
): Expr {
|
|
777
813
|
$kind = strpos($startToken, "'") === false
|
|
778
814
|
? String_::KIND_HEREDOC : String_::KIND_NOWDOC;
|
|
779
815
|
|
|
@@ -807,6 +843,7 @@ abstract class ParserAbstract implements Parser
|
|
|
807
843
|
|
|
808
844
|
if (\is_string($contents)) {
|
|
809
845
|
if ($contents === '') {
|
|
846
|
+
$attributes['rawValue'] = $contents;
|
|
810
847
|
return new String_('', $attributes);
|
|
811
848
|
}
|
|
812
849
|
|
|
@@ -814,6 +851,7 @@ abstract class ParserAbstract implements Parser
|
|
|
814
851
|
$contents, $indentLen, $indentChar, true, true, $attributes
|
|
815
852
|
);
|
|
816
853
|
$contents = preg_replace('~(\r\n|\n|\r)\z~', '', $contents);
|
|
854
|
+
$attributes['rawValue'] = $contents;
|
|
817
855
|
|
|
818
856
|
if ($kind === String_::KIND_HEREDOC) {
|
|
819
857
|
$contents = String_::parseEscapeSequences($contents, null, $parseUnicodeEscape);
|
|
@@ -822,7 +860,7 @@ abstract class ParserAbstract implements Parser
|
|
|
822
860
|
return new String_($contents, $attributes);
|
|
823
861
|
} else {
|
|
824
862
|
assert(count($contents) > 0);
|
|
825
|
-
if (!$contents[0] instanceof Node\
|
|
863
|
+
if (!$contents[0] instanceof Node\InterpolatedStringPart) {
|
|
826
864
|
// If there is no leading encapsed string part, pretend there is an empty one
|
|
827
865
|
$this->stripIndentation(
|
|
828
866
|
'', $indentLen, $indentChar, true, false, $contents[0]->getAttributes()
|
|
@@ -831,56 +869,139 @@ abstract class ParserAbstract implements Parser
|
|
|
831
869
|
|
|
832
870
|
$newContents = [];
|
|
833
871
|
foreach ($contents as $i => $part) {
|
|
834
|
-
if ($part instanceof Node\
|
|
872
|
+
if ($part instanceof Node\InterpolatedStringPart) {
|
|
835
873
|
$isLast = $i === \count($contents) - 1;
|
|
836
874
|
$part->value = $this->stripIndentation(
|
|
837
875
|
$part->value, $indentLen, $indentChar,
|
|
838
876
|
$i === 0, $isLast, $part->getAttributes()
|
|
839
877
|
);
|
|
840
|
-
$part->value = String_::parseEscapeSequences($part->value, null, $parseUnicodeEscape);
|
|
841
878
|
if ($isLast) {
|
|
842
879
|
$part->value = preg_replace('~(\r\n|\n|\r)\z~', '', $part->value);
|
|
843
880
|
}
|
|
881
|
+
$part->setAttribute('rawValue', $part->value);
|
|
882
|
+
$part->value = String_::parseEscapeSequences($part->value, null, $parseUnicodeEscape);
|
|
844
883
|
if ('' === $part->value) {
|
|
845
884
|
continue;
|
|
846
885
|
}
|
|
847
886
|
}
|
|
848
887
|
$newContents[] = $part;
|
|
849
888
|
}
|
|
850
|
-
return new
|
|
889
|
+
return new InterpolatedString($newContents, $attributes);
|
|
851
890
|
}
|
|
852
891
|
}
|
|
853
892
|
|
|
893
|
+
protected function createCommentFromToken(Token $token, int $tokenPos): Comment {
|
|
894
|
+
assert($token->id === \T_COMMENT || $token->id == \T_DOC_COMMENT);
|
|
895
|
+
return \T_DOC_COMMENT === $token->id
|
|
896
|
+
? new Comment\Doc($token->text, $token->line, $token->pos, $tokenPos,
|
|
897
|
+
$token->getEndLine(), $token->getEndPos() - 1, $tokenPos)
|
|
898
|
+
: new Comment($token->text, $token->line, $token->pos, $tokenPos,
|
|
899
|
+
$token->getEndLine(), $token->getEndPos() - 1, $tokenPos);
|
|
900
|
+
}
|
|
901
|
+
|
|
854
902
|
/**
|
|
855
|
-
*
|
|
856
|
-
*
|
|
857
|
-
* @param Comment[] $comments
|
|
858
|
-
* @return array
|
|
903
|
+
* Get last comment before the given token position, if any
|
|
859
904
|
*/
|
|
860
|
-
protected function
|
|
861
|
-
|
|
905
|
+
protected function getCommentBeforeToken(int $tokenPos): ?Comment {
|
|
906
|
+
while (--$tokenPos >= 0) {
|
|
907
|
+
$token = $this->tokens[$tokenPos];
|
|
908
|
+
if (!isset($this->dropTokens[$token->id])) {
|
|
909
|
+
break;
|
|
910
|
+
}
|
|
911
|
+
|
|
912
|
+
if ($token->id === \T_COMMENT || $token->id === \T_DOC_COMMENT) {
|
|
913
|
+
return $this->createCommentFromToken($token, $tokenPos);
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
return null;
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
/**
|
|
920
|
+
* Create a zero-length nop to capture preceding comments, if any.
|
|
921
|
+
*/
|
|
922
|
+
protected function maybeCreateZeroLengthNop(int $tokenPos): ?Nop {
|
|
923
|
+
$comment = $this->getCommentBeforeToken($tokenPos);
|
|
924
|
+
if ($comment === null) {
|
|
925
|
+
return null;
|
|
926
|
+
}
|
|
927
|
+
|
|
862
928
|
$commentEndLine = $comment->getEndLine();
|
|
863
929
|
$commentEndFilePos = $comment->getEndFilePos();
|
|
864
930
|
$commentEndTokenPos = $comment->getEndTokenPos();
|
|
931
|
+
$attributes = [
|
|
932
|
+
'startLine' => $commentEndLine,
|
|
933
|
+
'endLine' => $commentEndLine,
|
|
934
|
+
'startFilePos' => $commentEndFilePos + 1,
|
|
935
|
+
'endFilePos' => $commentEndFilePos,
|
|
936
|
+
'startTokenPos' => $commentEndTokenPos + 1,
|
|
937
|
+
'endTokenPos' => $commentEndTokenPos,
|
|
938
|
+
];
|
|
939
|
+
return new Nop($attributes);
|
|
940
|
+
}
|
|
865
941
|
|
|
866
|
-
|
|
867
|
-
if (
|
|
868
|
-
|
|
869
|
-
$attributes['endLine'] = $commentEndLine;
|
|
942
|
+
protected function maybeCreateNop(int $tokenStartPos, int $tokenEndPos): ?Nop {
|
|
943
|
+
if ($this->getCommentBeforeToken($tokenStartPos) === null) {
|
|
944
|
+
return null;
|
|
870
945
|
}
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
946
|
+
return new Nop($this->getAttributes($tokenStartPos, $tokenEndPos));
|
|
947
|
+
}
|
|
948
|
+
|
|
949
|
+
protected function handleHaltCompiler(): string {
|
|
950
|
+
// Prevent the lexer from returning any further tokens.
|
|
951
|
+
$nextToken = $this->tokens[$this->tokenPos + 1];
|
|
952
|
+
$this->tokenPos = \count($this->tokens) - 2;
|
|
953
|
+
|
|
954
|
+
// Return text after __halt_compiler.
|
|
955
|
+
return $nextToken->id === \T_INLINE_HTML ? $nextToken->text : '';
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
protected function inlineHtmlHasLeadingNewline(int $stackPos): bool {
|
|
959
|
+
$tokenPos = $this->tokenStartStack[$stackPos];
|
|
960
|
+
$token = $this->tokens[$tokenPos];
|
|
961
|
+
assert($token->id == \T_INLINE_HTML);
|
|
962
|
+
if ($tokenPos > 0) {
|
|
963
|
+
$prevToken = $this->tokens[$tokenPos - 1];
|
|
964
|
+
assert($prevToken->id == \T_CLOSE_TAG);
|
|
965
|
+
return false !== strpos($prevToken->text, "\n")
|
|
966
|
+
|| false !== strpos($prevToken->text, "\r");
|
|
874
967
|
}
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
968
|
+
return true;
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
/**
|
|
972
|
+
* @return array<string, mixed>
|
|
973
|
+
*/
|
|
974
|
+
protected function createEmptyElemAttributes(int $tokenPos): array {
|
|
975
|
+
return $this->getAttributesForToken($tokenPos);
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
protected function fixupArrayDestructuring(Array_ $node): Expr\List_ {
|
|
979
|
+
$this->createdArrays->detach($node);
|
|
980
|
+
return new Expr\List_(array_map(function (Node\ArrayItem $item) {
|
|
981
|
+
if ($item->value instanceof Expr\Error) {
|
|
982
|
+
// We used Error as a placeholder for empty elements, which are legal for destructuring.
|
|
983
|
+
return null;
|
|
984
|
+
}
|
|
985
|
+
if ($item->value instanceof Array_) {
|
|
986
|
+
return new Node\ArrayItem(
|
|
987
|
+
$this->fixupArrayDestructuring($item->value),
|
|
988
|
+
$item->key, $item->byRef, $item->getAttributes());
|
|
989
|
+
}
|
|
990
|
+
return $item;
|
|
991
|
+
}, $node->items), ['kind' => Expr\List_::KIND_ARRAY] + $node->getAttributes());
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
protected function postprocessList(Expr\List_ $node): void {
|
|
995
|
+
foreach ($node->items as $i => $item) {
|
|
996
|
+
if ($item->value instanceof Expr\Error) {
|
|
997
|
+
// We used Error as a placeholder for empty elements, which are legal for destructuring.
|
|
998
|
+
$node->items[$i] = null;
|
|
999
|
+
}
|
|
878
1000
|
}
|
|
879
|
-
return $attributes;
|
|
880
1001
|
}
|
|
881
1002
|
|
|
882
1003
|
/** @param ElseIf_|Else_ $node */
|
|
883
|
-
protected function fixupAlternativeElse($node) {
|
|
1004
|
+
protected function fixupAlternativeElse($node): void {
|
|
884
1005
|
// Make sure a trailing nop statement carrying comments is part of the node.
|
|
885
1006
|
$numStmts = \count($node->stmts);
|
|
886
1007
|
if ($numStmts !== 0 && $node->stmts[$numStmts - 1] instanceof Nop) {
|
|
@@ -897,26 +1018,26 @@ abstract class ParserAbstract implements Parser
|
|
|
897
1018
|
}
|
|
898
1019
|
}
|
|
899
1020
|
|
|
900
|
-
protected function checkClassModifier($a, $b, $modifierPos) {
|
|
1021
|
+
protected function checkClassModifier(int $a, int $b, int $modifierPos): void {
|
|
901
1022
|
try {
|
|
902
|
-
|
|
1023
|
+
Modifiers::verifyClassModifier($a, $b);
|
|
903
1024
|
} catch (Error $error) {
|
|
904
1025
|
$error->setAttributes($this->getAttributesAt($modifierPos));
|
|
905
1026
|
$this->emitError($error);
|
|
906
1027
|
}
|
|
907
1028
|
}
|
|
908
1029
|
|
|
909
|
-
protected function checkModifier($a, $b, $modifierPos) {
|
|
1030
|
+
protected function checkModifier(int $a, int $b, int $modifierPos): void {
|
|
910
1031
|
// Jumping through some hoops here because verifyModifier() is also used elsewhere
|
|
911
1032
|
try {
|
|
912
|
-
|
|
1033
|
+
Modifiers::verifyModifier($a, $b);
|
|
913
1034
|
} catch (Error $error) {
|
|
914
1035
|
$error->setAttributes($this->getAttributesAt($modifierPos));
|
|
915
1036
|
$this->emitError($error);
|
|
916
1037
|
}
|
|
917
1038
|
}
|
|
918
1039
|
|
|
919
|
-
protected function checkParam(Param $node) {
|
|
1040
|
+
protected function checkParam(Param $node): void {
|
|
920
1041
|
if ($node->variadic && null !== $node->default) {
|
|
921
1042
|
$this->emitError(new Error(
|
|
922
1043
|
'Variadic parameter cannot have a default value',
|
|
@@ -925,7 +1046,7 @@ abstract class ParserAbstract implements Parser
|
|
|
925
1046
|
}
|
|
926
1047
|
}
|
|
927
1048
|
|
|
928
|
-
protected function checkTryCatch(TryCatch $node) {
|
|
1049
|
+
protected function checkTryCatch(TryCatch $node): void {
|
|
929
1050
|
if (empty($node->catches) && null === $node->finally) {
|
|
930
1051
|
$this->emitError(new Error(
|
|
931
1052
|
'Cannot use try without catch or finally', $node->getAttributes()
|
|
@@ -933,7 +1054,7 @@ abstract class ParserAbstract implements Parser
|
|
|
933
1054
|
}
|
|
934
1055
|
}
|
|
935
1056
|
|
|
936
|
-
protected function checkNamespace(Namespace_ $node) {
|
|
1057
|
+
protected function checkNamespace(Namespace_ $node): void {
|
|
937
1058
|
if (null !== $node->stmts) {
|
|
938
1059
|
foreach ($node->stmts as $stmt) {
|
|
939
1060
|
if ($stmt instanceof Namespace_) {
|
|
@@ -945,7 +1066,7 @@ abstract class ParserAbstract implements Parser
|
|
|
945
1066
|
}
|
|
946
1067
|
}
|
|
947
1068
|
|
|
948
|
-
private function checkClassName($name, $namePos) {
|
|
1069
|
+
private function checkClassName(?Identifier $name, int $namePos): void {
|
|
949
1070
|
if (null !== $name && $name->isSpecialClassName()) {
|
|
950
1071
|
$this->emitError(new Error(
|
|
951
1072
|
sprintf('Cannot use \'%s\' as class name as it is reserved', $name),
|
|
@@ -954,7 +1075,8 @@ abstract class ParserAbstract implements Parser
|
|
|
954
1075
|
}
|
|
955
1076
|
}
|
|
956
1077
|
|
|
957
|
-
|
|
1078
|
+
/** @param Name[] $interfaces */
|
|
1079
|
+
private function checkImplementedInterfaces(array $interfaces): void {
|
|
958
1080
|
foreach ($interfaces as $interface) {
|
|
959
1081
|
if ($interface->isSpecialClassName()) {
|
|
960
1082
|
$this->emitError(new Error(
|
|
@@ -965,7 +1087,7 @@ abstract class ParserAbstract implements Parser
|
|
|
965
1087
|
}
|
|
966
1088
|
}
|
|
967
1089
|
|
|
968
|
-
protected function checkClass(Class_ $node, $namePos) {
|
|
1090
|
+
protected function checkClass(Class_ $node, int $namePos): void {
|
|
969
1091
|
$this->checkClassName($node->name, $namePos);
|
|
970
1092
|
|
|
971
1093
|
if ($node->extends && $node->extends->isSpecialClassName()) {
|
|
@@ -978,18 +1100,18 @@ abstract class ParserAbstract implements Parser
|
|
|
978
1100
|
$this->checkImplementedInterfaces($node->implements);
|
|
979
1101
|
}
|
|
980
1102
|
|
|
981
|
-
protected function checkInterface(Interface_ $node, $namePos) {
|
|
1103
|
+
protected function checkInterface(Interface_ $node, int $namePos): void {
|
|
982
1104
|
$this->checkClassName($node->name, $namePos);
|
|
983
1105
|
$this->checkImplementedInterfaces($node->extends);
|
|
984
1106
|
}
|
|
985
1107
|
|
|
986
|
-
protected function checkEnum(Enum_ $node, $namePos) {
|
|
1108
|
+
protected function checkEnum(Enum_ $node, int $namePos): void {
|
|
987
1109
|
$this->checkClassName($node->name, $namePos);
|
|
988
1110
|
$this->checkImplementedInterfaces($node->implements);
|
|
989
1111
|
}
|
|
990
1112
|
|
|
991
|
-
protected function checkClassMethod(ClassMethod $node, $modifierPos) {
|
|
992
|
-
if ($node->flags &
|
|
1113
|
+
protected function checkClassMethod(ClassMethod $node, int $modifierPos): void {
|
|
1114
|
+
if ($node->flags & Modifiers::STATIC) {
|
|
993
1115
|
switch ($node->name->toLowerString()) {
|
|
994
1116
|
case '__construct':
|
|
995
1117
|
$this->emitError(new Error(
|
|
@@ -1009,52 +1131,164 @@ abstract class ParserAbstract implements Parser
|
|
|
1009
1131
|
}
|
|
1010
1132
|
}
|
|
1011
1133
|
|
|
1012
|
-
if ($node->flags &
|
|
1134
|
+
if ($node->flags & Modifiers::READONLY) {
|
|
1013
1135
|
$this->emitError(new Error(
|
|
1014
1136
|
sprintf('Method %s() cannot be readonly', $node->name),
|
|
1015
1137
|
$this->getAttributesAt($modifierPos)));
|
|
1016
1138
|
}
|
|
1017
1139
|
}
|
|
1018
1140
|
|
|
1019
|
-
protected function checkClassConst(ClassConst $node, $modifierPos) {
|
|
1020
|
-
|
|
1141
|
+
protected function checkClassConst(ClassConst $node, int $modifierPos): void {
|
|
1142
|
+
foreach ([Modifiers::STATIC, Modifiers::ABSTRACT, Modifiers::READONLY] as $modifier) {
|
|
1143
|
+
if ($node->flags & $modifier) {
|
|
1144
|
+
$this->emitError(new Error(
|
|
1145
|
+
"Cannot use '" . Modifiers::toString($modifier) . "' as constant modifier",
|
|
1146
|
+
$this->getAttributesAt($modifierPos)));
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1150
|
+
|
|
1151
|
+
protected function checkUseUse(UseItem $node, int $namePos): void {
|
|
1152
|
+
if ($node->alias && $node->alias->isSpecialClassName()) {
|
|
1021
1153
|
$this->emitError(new Error(
|
|
1022
|
-
|
|
1023
|
-
|
|
1154
|
+
sprintf(
|
|
1155
|
+
'Cannot use %s as %s because \'%2$s\' is a special class name',
|
|
1156
|
+
$node->name, $node->alias
|
|
1157
|
+
),
|
|
1158
|
+
$this->getAttributesAt($namePos)
|
|
1159
|
+
));
|
|
1024
1160
|
}
|
|
1025
|
-
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
protected function checkPropertyHooksForMultiProperty(Property $property, int $hookPos): void {
|
|
1164
|
+
if (count($property->props) > 1) {
|
|
1026
1165
|
$this->emitError(new Error(
|
|
1027
|
-
|
|
1028
|
-
$this->getAttributesAt($modifierPos)));
|
|
1166
|
+
'Cannot use hooks when declaring multiple properties', $this->getAttributesAt($hookPos)));
|
|
1029
1167
|
}
|
|
1030
|
-
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
/** @param PropertyHook[] $hooks */
|
|
1171
|
+
protected function checkEmptyPropertyHookList(array $hooks, int $hookPos): void {
|
|
1172
|
+
if (empty($hooks)) {
|
|
1031
1173
|
$this->emitError(new Error(
|
|
1032
|
-
|
|
1033
|
-
$this->getAttributesAt($modifierPos)));
|
|
1174
|
+
'Property hook list cannot be empty', $this->getAttributesAt($hookPos)));
|
|
1034
1175
|
}
|
|
1035
1176
|
}
|
|
1036
1177
|
|
|
1037
|
-
protected function
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1178
|
+
protected function checkPropertyHook(PropertyHook $hook, ?int $paramListPos): void {
|
|
1179
|
+
$name = $hook->name->toLowerString();
|
|
1180
|
+
if ($name !== 'get' && $name !== 'set') {
|
|
1181
|
+
$this->emitError(new Error(
|
|
1182
|
+
'Unknown hook "' . $hook->name . '", expected "get" or "set"',
|
|
1183
|
+
$hook->name->getAttributes()));
|
|
1184
|
+
}
|
|
1185
|
+
if ($name === 'get' && $paramListPos !== null) {
|
|
1186
|
+
$this->emitError(new Error(
|
|
1187
|
+
'get hook must not have a parameter list', $this->getAttributesAt($paramListPos)));
|
|
1041
1188
|
}
|
|
1189
|
+
}
|
|
1042
1190
|
|
|
1043
|
-
|
|
1044
|
-
|
|
1191
|
+
protected function checkPropertyHookModifiers(int $a, int $b, int $modifierPos): void {
|
|
1192
|
+
try {
|
|
1193
|
+
Modifiers::verifyModifier($a, $b);
|
|
1194
|
+
} catch (Error $error) {
|
|
1195
|
+
$error->setAttributes($this->getAttributesAt($modifierPos));
|
|
1196
|
+
$this->emitError($error);
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
if ($b != Modifiers::FINAL) {
|
|
1200
|
+
$this->emitError(new Error(
|
|
1201
|
+
'Cannot use the ' . Modifiers::toString($b) . ' modifier on a property hook',
|
|
1045
1202
|
$this->getAttributesAt($modifierPos)));
|
|
1046
1203
|
}
|
|
1047
1204
|
}
|
|
1048
1205
|
|
|
1049
|
-
protected function
|
|
1050
|
-
if ($node->
|
|
1206
|
+
protected function checkConstantAttributes(Const_ $node): void {
|
|
1207
|
+
if ($node->attrGroups !== [] && count($node->consts) > 1) {
|
|
1051
1208
|
$this->emitError(new Error(
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1209
|
+
'Cannot use attributes on multiple constants at once', $node->getAttributes()));
|
|
1210
|
+
}
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
/**
|
|
1214
|
+
* @param Property|Param $node
|
|
1215
|
+
*/
|
|
1216
|
+
protected function addPropertyNameToHooks(Node $node): void {
|
|
1217
|
+
if ($node instanceof Property) {
|
|
1218
|
+
$name = $node->props[0]->name->toString();
|
|
1219
|
+
} else {
|
|
1220
|
+
$name = $node->var->name;
|
|
1221
|
+
}
|
|
1222
|
+
foreach ($node->hooks as $hook) {
|
|
1223
|
+
$hook->setAttribute('propertyName', $name);
|
|
1224
|
+
}
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
/** @param array<Node\Arg|Node\VariadicPlaceholder> $args */
|
|
1228
|
+
private function isSimpleExit(array $args): bool {
|
|
1229
|
+
if (\count($args) === 0) {
|
|
1230
|
+
return true;
|
|
1231
|
+
}
|
|
1232
|
+
if (\count($args) === 1) {
|
|
1233
|
+
$arg = $args[0];
|
|
1234
|
+
return $arg instanceof Arg && $arg->name === null &&
|
|
1235
|
+
$arg->byRef === false && $arg->unpack === false;
|
|
1058
1236
|
}
|
|
1237
|
+
return false;
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1240
|
+
/**
|
|
1241
|
+
* @param array<Node\Arg|Node\VariadicPlaceholder> $args
|
|
1242
|
+
* @param array<string, mixed> $attrs
|
|
1243
|
+
*/
|
|
1244
|
+
protected function createExitExpr(string $name, int $namePos, array $args, array $attrs): Expr {
|
|
1245
|
+
if ($this->isSimpleExit($args)) {
|
|
1246
|
+
// Create Exit node for backwards compatibility.
|
|
1247
|
+
$attrs['kind'] = strtolower($name) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE;
|
|
1248
|
+
return new Expr\Exit_(\count($args) === 1 ? $args[0]->value : null, $attrs);
|
|
1249
|
+
}
|
|
1250
|
+
return new Expr\FuncCall(new Name($name, $this->getAttributesAt($namePos)), $args, $attrs);
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
/**
|
|
1254
|
+
* Creates the token map.
|
|
1255
|
+
*
|
|
1256
|
+
* The token map maps the PHP internal token identifiers
|
|
1257
|
+
* to the identifiers used by the Parser. Additionally it
|
|
1258
|
+
* maps T_OPEN_TAG_WITH_ECHO to T_ECHO and T_CLOSE_TAG to ';'.
|
|
1259
|
+
*
|
|
1260
|
+
* @return array<int, int> The token map
|
|
1261
|
+
*/
|
|
1262
|
+
protected function createTokenMap(): array {
|
|
1263
|
+
$tokenMap = [];
|
|
1264
|
+
|
|
1265
|
+
// Single-char tokens use an identity mapping.
|
|
1266
|
+
for ($i = 0; $i < 256; ++$i) {
|
|
1267
|
+
$tokenMap[$i] = $i;
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
foreach ($this->symbolToName as $name) {
|
|
1271
|
+
if ($name[0] === 'T') {
|
|
1272
|
+
$tokenMap[\constant($name)] = constant(static::class . '::' . $name);
|
|
1273
|
+
}
|
|
1274
|
+
}
|
|
1275
|
+
|
|
1276
|
+
// T_OPEN_TAG_WITH_ECHO with dropped T_OPEN_TAG results in T_ECHO
|
|
1277
|
+
$tokenMap[\T_OPEN_TAG_WITH_ECHO] = static::T_ECHO;
|
|
1278
|
+
// T_CLOSE_TAG is equivalent to ';'
|
|
1279
|
+
$tokenMap[\T_CLOSE_TAG] = ord(';');
|
|
1280
|
+
|
|
1281
|
+
// We have created a map from PHP token IDs to external symbol IDs.
|
|
1282
|
+
// Now map them to the internal symbol ID.
|
|
1283
|
+
$fullTokenMap = [];
|
|
1284
|
+
foreach ($tokenMap as $phpToken => $extSymbol) {
|
|
1285
|
+
$intSymbol = $this->tokenToSymbol[$extSymbol];
|
|
1286
|
+
if ($intSymbol === $this->invalidSymbol) {
|
|
1287
|
+
continue;
|
|
1288
|
+
}
|
|
1289
|
+
$fullTokenMap[$phpToken] = $intSymbol;
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1292
|
+
return $fullTokenMap;
|
|
1059
1293
|
}
|
|
1060
1294
|
}
|