@appthreat/atom-parsetools 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (838) hide show
  1. package/package.json +3 -3
  2. package/plugins/autoload.php +1 -1
  3. package/plugins/bin/bundler +1 -1
  4. package/plugins/bin/ruby_ast_gen +1 -1
  5. package/plugins/composer/autoload_classmap.php +22 -8
  6. package/plugins/composer/autoload_real.php +4 -4
  7. package/plugins/composer/autoload_static.php +26 -12
  8. package/plugins/composer/installed.json +12 -10
  9. package/plugins/composer/installed.php +9 -9
  10. package/plugins/nikic/php-parser/README.md +20 -12
  11. package/plugins/nikic/php-parser/bin/php-parse +11 -10
  12. package/plugins/nikic/php-parser/composer.json +6 -4
  13. package/plugins/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +19 -17
  14. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Class_.php +35 -30
  15. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +11 -4
  16. package/plugins/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php +8 -7
  17. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Enum_.php +26 -27
  18. package/plugins/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +7 -7
  19. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Function_.php +7 -7
  20. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Interface_.php +11 -10
  21. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Method.php +16 -15
  22. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +5 -5
  23. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Param.php +38 -35
  24. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Property.php +82 -20
  25. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php +6 -5
  26. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php +25 -28
  27. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +16 -11
  28. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Use_.php +8 -8
  29. package/plugins/nikic/php-parser/lib/PhpParser/Builder.php +2 -3
  30. package/plugins/nikic/php-parser/lib/PhpParser/BuilderFactory.php +46 -70
  31. package/plugins/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +23 -20
  32. package/plugins/nikic/php-parser/lib/PhpParser/Comment/Doc.php +1 -2
  33. package/plugins/nikic/php-parser/lib/PhpParser/Comment.php +37 -67
  34. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php +3 -3
  35. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +15 -10
  36. package/plugins/nikic/php-parser/lib/PhpParser/Error.php +26 -33
  37. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php +6 -9
  38. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +2 -3
  39. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler.php +2 -3
  40. package/plugins/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php +11 -7
  41. package/plugins/nikic/php-parser/lib/PhpParser/Internal/Differ.php +36 -22
  42. package/plugins/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +20 -13
  43. package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php +237 -0
  44. package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +70 -74
  45. package/plugins/nikic/php-parser/lib/PhpParser/JsonDecoder.php +15 -10
  46. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +72 -97
  47. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AsymmetricVisibilityTokenEmulator.php +93 -0
  48. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php +11 -18
  49. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php +10 -15
  50. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php +12 -11
  51. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +24 -26
  52. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php +6 -10
  53. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php +22 -29
  54. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/PropertyTokenEmulator.php +19 -0
  55. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php +3 -3
  56. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php +10 -15
  57. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php +6 -5
  58. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php +10 -5
  59. package/plugins/nikic/php-parser/lib/PhpParser/Lexer.php +69 -513
  60. package/plugins/nikic/php-parser/lib/PhpParser/Modifiers.php +85 -0
  61. package/plugins/nikic/php-parser/lib/PhpParser/NameContext.php +24 -25
  62. package/plugins/nikic/php-parser/lib/PhpParser/Node/Arg.php +13 -15
  63. package/plugins/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php +43 -0
  64. package/plugins/nikic/php-parser/lib/PhpParser/Node/Attribute.php +9 -10
  65. package/plugins/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php +5 -7
  66. package/plugins/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php +36 -0
  67. package/plugins/nikic/php-parser/lib/PhpParser/Node/ComplexType.php +1 -2
  68. package/plugins/nikic/php-parser/lib/PhpParser/Node/Const_.php +9 -10
  69. package/plugins/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php +37 -0
  70. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +10 -11
  71. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +4 -34
  72. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +11 -11
  73. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +33 -28
  74. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +9 -10
  75. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +2 -3
  76. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php +2 -3
  77. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php +2 -3
  78. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php +2 -3
  79. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php +2 -3
  80. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php +2 -3
  81. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php +2 -3
  82. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php +2 -3
  83. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php +2 -3
  84. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php +2 -3
  85. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php +2 -3
  86. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php +2 -3
  87. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php +2 -3
  88. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +7 -8
  89. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php +9 -10
  90. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +4 -5
  91. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php +4 -5
  92. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php +4 -5
  93. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php +4 -5
  94. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php +4 -5
  95. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php +4 -5
  96. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php +4 -5
  97. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php +4 -5
  98. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php +4 -5
  99. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php +4 -5
  100. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php +4 -5
  101. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php +4 -5
  102. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php +4 -5
  103. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php +4 -5
  104. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php +4 -5
  105. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php +4 -5
  106. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php +4 -5
  107. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php +4 -5
  108. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php +4 -5
  109. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php +4 -5
  110. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php +4 -5
  111. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php +4 -5
  112. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php +4 -5
  113. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php +4 -5
  114. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php +4 -5
  115. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php +4 -5
  116. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php +4 -5
  117. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +8 -11
  118. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +7 -8
  119. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +7 -8
  120. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +3 -7
  121. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +2 -3
  122. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php +2 -3
  123. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php +5 -6
  124. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php +2 -3
  125. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php +2 -3
  126. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php +2 -3
  127. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php +2 -3
  128. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +5 -6
  129. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +10 -10
  130. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +7 -8
  131. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +33 -26
  132. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +4 -27
  133. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +7 -8
  134. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +7 -8
  135. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +5 -6
  136. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +7 -8
  137. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +7 -8
  138. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +10 -11
  139. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +10 -11
  140. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +13 -14
  141. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +11 -11
  142. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +7 -8
  143. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +12 -8
  144. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php +8 -7
  145. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +12 -12
  146. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +10 -11
  147. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +12 -12
  148. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php +10 -10
  149. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +7 -8
  150. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +7 -8
  151. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +6 -7
  152. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +7 -8
  153. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +7 -8
  154. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +10 -10
  155. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +9 -9
  156. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +12 -13
  157. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +11 -11
  158. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +12 -13
  159. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php +6 -7
  160. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +7 -8
  161. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +7 -8
  162. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +6 -7
  163. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +7 -8
  164. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +10 -11
  165. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr.php +1 -2
  166. package/plugins/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +5 -8
  167. package/plugins/nikic/php-parser/lib/PhpParser/Node/Identifier.php +24 -14
  168. package/plugins/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php +32 -0
  169. package/plugins/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php +6 -9
  170. package/plugins/nikic/php-parser/lib/PhpParser/Node/MatchArm.php +8 -10
  171. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +8 -9
  172. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php +8 -9
  173. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name.php +78 -54
  174. package/plugins/nikic/php-parser/lib/PhpParser/Node/NullableType.php +11 -10
  175. package/plugins/nikic/php-parser/lib/PhpParser/Node/Param.php +83 -24
  176. package/plugins/nikic/php-parser/lib/PhpParser/Node/PropertyHook.php +105 -0
  177. package/plugins/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php +37 -0
  178. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +4 -70
  179. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +4 -24
  180. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +5 -22
  181. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php +78 -0
  182. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php +82 -0
  183. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php +34 -0
  184. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +4 -73
  185. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php +4 -5
  186. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php +4 -5
  187. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php +4 -5
  188. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php +4 -5
  189. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php +4 -5
  190. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php +4 -5
  191. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php +4 -5
  192. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Property.php +15 -0
  193. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php +4 -5
  194. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +4 -5
  195. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +30 -26
  196. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar.php +1 -2
  197. package/plugins/nikic/php-parser/lib/PhpParser/Node/StaticVar.php +39 -0
  198. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php +29 -0
  199. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +8 -9
  200. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +10 -11
  201. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +11 -12
  202. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +24 -32
  203. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +17 -17
  204. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +47 -54
  205. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +46 -89
  206. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +17 -10
  207. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +8 -9
  208. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +5 -26
  209. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +12 -12
  210. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +9 -10
  211. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +7 -8
  212. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +9 -10
  213. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +7 -8
  214. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +11 -12
  215. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php +17 -13
  216. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +7 -8
  217. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +7 -8
  218. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +19 -15
  219. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +20 -17
  220. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +28 -24
  221. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +7 -8
  222. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +7 -8
  223. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +16 -14
  224. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +7 -8
  225. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +18 -15
  226. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +7 -8
  227. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +13 -10
  228. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +7 -8
  229. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +11 -12
  230. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +4 -5
  231. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +68 -38
  232. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +5 -26
  233. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +8 -9
  234. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +4 -30
  235. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +8 -8
  236. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +9 -10
  237. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +8 -9
  238. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php +12 -13
  239. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +9 -10
  240. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +3 -4
  241. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +10 -8
  242. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +11 -12
  243. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +7 -8
  244. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +5 -44
  245. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +16 -16
  246. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +9 -10
  247. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt.php +1 -2
  248. package/plugins/nikic/php-parser/lib/PhpParser/Node/UnionType.php +7 -8
  249. package/plugins/nikic/php-parser/lib/PhpParser/Node/UseItem.php +55 -0
  250. package/plugins/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php +2 -3
  251. package/plugins/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php +2 -2
  252. package/plugins/nikic/php-parser/lib/PhpParser/Node.php +28 -29
  253. package/plugins/nikic/php-parser/lib/PhpParser/NodeAbstract.php +23 -20
  254. package/plugins/nikic/php-parser/lib/PhpParser/NodeDumper.php +177 -84
  255. package/plugins/nikic/php-parser/lib/PhpParser/NodeFinder.php +28 -19
  256. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverser.php +156 -160
  257. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +4 -7
  258. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php +1 -2
  259. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php +82 -0
  260. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php +6 -7
  261. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php +6 -7
  262. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +37 -28
  263. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php +29 -8
  264. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php +23 -13
  265. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor.php +59 -7
  266. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +1 -2
  267. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php7.php +2034 -2141
  268. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php8.php +2814 -0
  269. package/plugins/nikic/php-parser/lib/PhpParser/Parser.php +9 -3
  270. package/plugins/nikic/php-parser/lib/PhpParser/ParserAbstract.php +503 -269
  271. package/plugins/nikic/php-parser/lib/PhpParser/ParserFactory.php +15 -49
  272. package/plugins/nikic/php-parser/lib/PhpParser/PhpVersion.php +171 -0
  273. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +428 -339
  274. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter.php +51 -0
  275. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +563 -445
  276. package/plugins/nikic/php-parser/lib/PhpParser/Token.php +18 -0
  277. package/plugins/nikic/php-parser/lib/PhpParser/compatibility_tokens.php +68 -0
  278. package/plugins/rubyastgen/Gemfile +3 -2
  279. package/plugins/rubyastgen/Gemfile.lock +10 -5
  280. package/plugins/rubyastgen/bundle/bundler/setup.rb +4 -2
  281. package/plugins/rubyastgen/bundle/ruby/3.4.0/bin/bundle +29 -0
  282. package/plugins/rubyastgen/bundle/ruby/3.4.0/bin/bundler +29 -0
  283. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/Gemfile +2 -1
  284. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/README.md +7 -4
  285. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-8738b155eb4f/bin/console +11 -0
  286. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-8738b155eb4f/exe/ruby_ast_gen +60 -0
  287. 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
  288. 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
  289. 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
  290. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/ruby_ast_gen.gemspec +4 -4
  291. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-8738b155eb4f/spec/ruby_ast_gen_spec.rb +299 -0
  292. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/update_version.rb +6 -5
  293. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.4.0/gem.build_complete +0 -0
  294. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.4.0/gem_make.out +44 -0
  295. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.4.0/mkmf.log +74 -0
  296. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/prism-1.4.0/prism/prism.so +0 -0
  297. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/gem_make.out +6 -6
  298. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/racc/cparse.so +0 -0
  299. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/CHANGELOG.md +5239 -0
  300. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/LICENSE.md +22 -0
  301. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/README.md +58 -0
  302. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/bundler.gemspec +46 -0
  303. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/exe/bundle +29 -0
  304. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/exe/bundler +4 -0
  305. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/.document +1 -0
  306. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/build_metadata.rb +45 -0
  307. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/capistrano.rb +22 -0
  308. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/checksum.rb +264 -0
  309. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ci_detector.rb +75 -0
  310. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/add.rb +49 -0
  311. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/binstubs.rb +57 -0
  312. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/cache.rb +43 -0
  313. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/check.rb +40 -0
  314. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/clean.rb +25 -0
  315. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/common.rb +138 -0
  316. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/config.rb +204 -0
  317. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/console.rb +42 -0
  318. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/doctor.rb +161 -0
  319. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/exec.rb +89 -0
  320. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/fund.rb +36 -0
  321. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/gem.rb +467 -0
  322. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/info.rb +83 -0
  323. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/init.rb +51 -0
  324. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/inject.rb +60 -0
  325. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/install.rb +199 -0
  326. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/issue.rb +41 -0
  327. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/list.rb +66 -0
  328. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/lock.rb +94 -0
  329. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/open.rb +29 -0
  330. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/outdated.rb +297 -0
  331. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/platform.rb +48 -0
  332. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/plugin.rb +35 -0
  333. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/pristine.rb +60 -0
  334. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/remove.rb +17 -0
  335. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/show.rb +75 -0
  336. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/update.rb +123 -0
  337. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli/viz.rb +31 -0
  338. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/cli.rb +799 -0
  339. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/compact_index_client/cache.rb +96 -0
  340. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/compact_index_client/cache_file.rb +148 -0
  341. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/compact_index_client/parser.rb +84 -0
  342. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/compact_index_client/updater.rb +105 -0
  343. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/compact_index_client.rb +97 -0
  344. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/constants.rb +14 -0
  345. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/current_ruby.rb +82 -0
  346. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/definition.rb +1170 -0
  347. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/dependency.rb +151 -0
  348. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/deployment.rb +69 -0
  349. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/deprecate.rb +44 -0
  350. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/digest.rb +71 -0
  351. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/dsl.rb +638 -0
  352. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/endpoint_specification.rb +174 -0
  353. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/env.rb +148 -0
  354. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/environment_preserver.rb +68 -0
  355. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/errors.rb +281 -0
  356. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/feature_flag.rb +50 -0
  357. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher/base.rb +52 -0
  358. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher/compact_index.rb +120 -0
  359. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher/dependency.rb +78 -0
  360. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher/downloader.rb +91 -0
  361. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  362. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher/index.rb +25 -0
  363. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/fetcher.rb +331 -0
  364. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/force_platform.rb +16 -0
  365. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/friendly_errors.rb +126 -0
  366. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/gem_helper.rb +237 -0
  367. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/gem_helpers.rb +144 -0
  368. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/gem_tasks.rb +7 -0
  369. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/gem_version_promoter.rb +147 -0
  370. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/graph.rb +152 -0
  371. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/index.rb +205 -0
  372. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/injector.rb +285 -0
  373. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/inline.rb +98 -0
  374. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/installer/gem_installer.rb +85 -0
  375. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/installer/parallel_installer.rb +203 -0
  376. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/installer/standalone.rb +113 -0
  377. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/installer.rb +243 -0
  378. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/lazy_specification.rb +234 -0
  379. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/lockfile_generator.rb +104 -0
  380. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/lockfile_parser.rb +300 -0
  381. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/.document +1 -0
  382. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-add.1 +76 -0
  383. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-add.1.ronn +87 -0
  384. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-binstubs.1 +33 -0
  385. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-binstubs.1.ronn +44 -0
  386. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-cache.1 +68 -0
  387. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-cache.1.ronn +108 -0
  388. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-check.1 +24 -0
  389. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-check.1.ronn +31 -0
  390. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-clean.1 +17 -0
  391. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-clean.1.ronn +18 -0
  392. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-config.1 +317 -0
  393. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-config.1.ronn +408 -0
  394. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-console.1 +33 -0
  395. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-console.1.ronn +39 -0
  396. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-doctor.1 +30 -0
  397. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-doctor.1.ronn +33 -0
  398. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-env.1 +9 -0
  399. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-env.1.ronn +10 -0
  400. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-exec.1 +107 -0
  401. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-exec.1.ronn +154 -0
  402. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-fund.1 +22 -0
  403. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-fund.1.ronn +25 -0
  404. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-gem.1 +87 -0
  405. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-gem.1.ronn +149 -0
  406. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-help.1 +9 -0
  407. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-help.1.ronn +12 -0
  408. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-info.1 +17 -0
  409. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-info.1.ronn +21 -0
  410. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-init.1 +20 -0
  411. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-init.1.ronn +32 -0
  412. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-inject.1 +31 -0
  413. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-inject.1.ronn +32 -0
  414. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-install.1 +218 -0
  415. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-install.1.ronn +387 -0
  416. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-issue.1 +45 -0
  417. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-issue.1.ronn +37 -0
  418. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-licenses.1 +9 -0
  419. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-licenses.1.ronn +10 -0
  420. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-list.1 +35 -0
  421. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-list.1.ronn +36 -0
  422. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-lock.1 +75 -0
  423. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-lock.1.ronn +115 -0
  424. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-open.1 +32 -0
  425. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-open.1.ronn +28 -0
  426. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-outdated.1 +103 -0
  427. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-outdated.1.ronn +110 -0
  428. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-platform.1 +49 -0
  429. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-platform.1.ronn +49 -0
  430. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-plugin.1 +58 -0
  431. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-plugin.1.ronn +63 -0
  432. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-pristine.1 +23 -0
  433. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-pristine.1.ronn +34 -0
  434. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-remove.1 +21 -0
  435. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-remove.1.ronn +23 -0
  436. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-show.1 +19 -0
  437. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-show.1.ronn +25 -0
  438. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-update.1 +281 -0
  439. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-update.1.ronn +359 -0
  440. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-version.1 +22 -0
  441. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-version.1.ronn +24 -0
  442. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-viz.1 +30 -0
  443. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle-viz.1.ronn +36 -0
  444. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle.1 +102 -0
  445. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/bundle.1.ronn +116 -0
  446. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/gemfile.5 +472 -0
  447. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/gemfile.5.ronn +558 -0
  448. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/man/index.txt +33 -0
  449. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/match_metadata.rb +30 -0
  450. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/match_platform.rb +23 -0
  451. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/match_remote_metadata.rb +29 -0
  452. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/materialization.rb +59 -0
  453. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/mirror.rb +221 -0
  454. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/api/source.rb +322 -0
  455. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/api.rb +81 -0
  456. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/dsl.rb +53 -0
  457. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/events.rb +85 -0
  458. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/index.rb +197 -0
  459. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/installer/git.rb +34 -0
  460. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/installer/path.rb +26 -0
  461. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/installer/rubygems.rb +19 -0
  462. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/installer.rb +132 -0
  463. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin/source_list.rb +31 -0
  464. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/plugin.rb +378 -0
  465. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/process_lock.rb +20 -0
  466. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/remote_specification.rb +126 -0
  467. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/base.rb +118 -0
  468. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/candidate.rb +85 -0
  469. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/incompatibility.rb +15 -0
  470. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/package.rb +94 -0
  471. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/root.rb +25 -0
  472. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/spec_group.rb +74 -0
  473. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver/strategy.rb +40 -0
  474. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/resolver.rb +522 -0
  475. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/retry.rb +66 -0
  476. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ruby_dsl.rb +62 -0
  477. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ruby_version.rb +137 -0
  478. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/rubygems_ext.rb +485 -0
  479. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/rubygems_gem_installer.rb +172 -0
  480. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/rubygems_integration.rb +455 -0
  481. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/runtime.rb +320 -0
  482. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/safe_marshal.rb +31 -0
  483. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/self_manager.rb +206 -0
  484. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/settings/validator.rb +102 -0
  485. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/settings.rb +599 -0
  486. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/setup.rb +39 -0
  487. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/shared_helpers.rb +398 -0
  488. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/similarity_detector.rb +63 -0
  489. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/gemspec.rb +15 -0
  490. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/git/git_proxy.rb +472 -0
  491. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/git.rb +452 -0
  492. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/metadata.rb +63 -0
  493. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/path/installer.rb +53 -0
  494. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/path.rb +250 -0
  495. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/rubygems/remote.rb +76 -0
  496. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/rubygems.rb +522 -0
  497. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source/rubygems_aggregate.rb +68 -0
  498. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source.rb +118 -0
  499. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source_list.rb +273 -0
  500. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/source_map.rb +71 -0
  501. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/spec_set.rb +367 -0
  502. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/stub_specification.rb +146 -0
  503. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/.document +1 -0
  504. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/Executable +27 -0
  505. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/Executable.bundler +109 -0
  506. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/Executable.standalone +14 -0
  507. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/Gemfile +5 -0
  508. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  509. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +132 -0
  510. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  511. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/Gemfile.tt +24 -0
  512. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/LICENSE.txt.tt +21 -0
  513. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/README.md.tt +49 -0
  514. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/Rakefile.tt +67 -0
  515. 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
  516. 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
  517. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/circleci/config.yml.tt +25 -0
  518. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/exe/newgem.tt +3 -0
  519. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  520. 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
  521. 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
  522. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +9 -0
  523. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +6 -0
  524. 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
  525. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/github/workflows/main.yml.tt +37 -0
  526. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/gitignore.tt +23 -0
  527. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/gitlab-ci.yml.tt +18 -0
  528. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +9 -0
  529. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/lib/newgem.rb.tt +15 -0
  530. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/newgem.gemspec.tt +52 -0
  531. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/rspec.tt +3 -0
  532. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/rubocop.yml.tt +8 -0
  533. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  534. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +11 -0
  535. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +15 -0
  536. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  537. 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
  538. 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
  539. 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
  540. 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
  541. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ui/rg_proxy.rb +19 -0
  542. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ui/shell.rb +187 -0
  543. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ui/silent.rb +96 -0
  544. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/ui.rb +9 -0
  545. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/uri_credentials_filter.rb +43 -0
  546. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/uri_normalizer.rb +23 -0
  547. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/.document +1 -0
  548. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/connection_pool/.document +1 -0
  549. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  550. 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
  551. 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
  552. 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
  553. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +186 -0
  554. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/fileutils/.document +1 -0
  555. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/fileutils/lib/fileutils.rb +2696 -0
  556. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/net-http-persistent/.document +1 -0
  557. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  558. 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
  559. 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
  560. 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
  561. 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
  562. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/.document +1 -0
  563. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  564. 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
  565. 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
  566. 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
  567. 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
  568. 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
  569. 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
  570. 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
  571. 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
  572. 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
  573. 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
  574. 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
  575. 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
  576. 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
  577. 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
  578. 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
  579. 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
  580. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  581. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/securerandom/.document +1 -0
  582. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/securerandom/COPYING +56 -0
  583. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/securerandom/lib/securerandom.rb +102 -0
  584. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/.document +1 -0
  585. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/LICENSE.md +20 -0
  586. 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
  587. 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
  588. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +108 -0
  589. 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
  590. 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
  591. 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
  592. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/actions.rb +340 -0
  593. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/base.rb +825 -0
  594. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/command.rb +151 -0
  595. 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
  596. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/error.rb +106 -0
  597. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/group.rb +292 -0
  598. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/invocation.rb +178 -0
  599. 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
  600. 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
  601. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/line_editor.rb +17 -0
  602. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
  603. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +86 -0
  604. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +195 -0
  605. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/parser/option.rb +178 -0
  606. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/parser/options.rb +294 -0
  607. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -0
  608. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +72 -0
  609. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/runner.rb +335 -0
  610. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +388 -0
  611. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell/color.rb +112 -0
  612. 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
  613. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell/html.rb +81 -0
  614. 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
  615. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
  616. 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
  617. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/shell.rb +81 -0
  618. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/util.rb +285 -0
  619. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor/version.rb +3 -0
  620. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/thor/lib/thor.rb +674 -0
  621. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/tsort/.document +1 -0
  622. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  623. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/tsort/lib/tsort.rb +455 -0
  624. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/.document +1 -0
  625. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/COPYING +56 -0
  626. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/common.rb +880 -0
  627. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/file.rb +100 -0
  628. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
  629. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/generic.rb +1579 -0
  630. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/http.rb +125 -0
  631. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
  632. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
  633. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/ldaps.rb +22 -0
  634. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/mailto.rb +293 -0
  635. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +546 -0
  636. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +206 -0
  637. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
  638. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
  639. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
  640. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendor/uri/lib/uri.rb +104 -0
  641. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_fileutils.rb +4 -0
  642. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_net_http.rb +23 -0
  643. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_persistent.rb +11 -0
  644. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_pub_grub.rb +4 -0
  645. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_securerandom.rb +12 -0
  646. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_thor.rb +8 -0
  647. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_timeout.rb +12 -0
  648. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_tsort.rb +4 -0
  649. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vendored_uri.rb +21 -0
  650. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/version.rb +13 -0
  651. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/vlad.rb +17 -0
  652. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/worker.rb +117 -0
  653. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler/yaml_serializer.rb +98 -0
  654. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/bundler-2.6.7/lib/bundler.rb +701 -0
  655. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.3/COPYING +56 -0
  656. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.3/bin/setup +8 -0
  657. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/lib/ostruct.rb +5 -2
  658. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/ostruct.gemspec +2 -0
  659. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/BSDmakefile +58 -0
  660. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/CHANGELOG.md +684 -0
  661. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/CODE_OF_CONDUCT.md +76 -0
  662. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/CONTRIBUTING.md +58 -0
  663. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/LICENSE.md +7 -0
  664. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/Makefile +108 -0
  665. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/README.md +141 -0
  666. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/config.yml +4486 -0
  667. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/build_system.md +119 -0
  668. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/configuration.md +68 -0
  669. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/cruby_compilation.md +27 -0
  670. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/design.md +53 -0
  671. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/encoding.md +121 -0
  672. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/fuzzing.md +88 -0
  673. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/heredocs.md +36 -0
  674. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/javascript.md +118 -0
  675. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/local_variable_depth.md +229 -0
  676. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/mapping.md +117 -0
  677. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/parser_translation.md +39 -0
  678. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/parsing_rules.md +22 -0
  679. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/releasing.md +96 -0
  680. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/relocation.md +34 -0
  681. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/ripper_translation.md +72 -0
  682. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/ruby_api.md +44 -0
  683. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/ruby_parser_translation.md +19 -0
  684. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/serialization.md +233 -0
  685. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/docs/testing.md +55 -0
  686. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/ext/prism/Makefile +273 -0
  687. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/ext/prism/api_node.c +6939 -0
  688. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/ext/prism/api_pack.c +276 -0
  689. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/ext/prism/extconf.rb +127 -0
  690. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/ext/prism/extension.c +1406 -0
  691. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/ext/prism/extension.h +19 -0
  692. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/ast.h +7964 -0
  693. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/defines.h +260 -0
  694. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/diagnostic.h +451 -0
  695. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/encoding.h +283 -0
  696. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/node.h +129 -0
  697. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/options.h +442 -0
  698. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/pack.h +163 -0
  699. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/parser.h +933 -0
  700. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/prettyprint.h +34 -0
  701. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/regexp.h +43 -0
  702. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/static_literals.h +121 -0
  703. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_buffer.h +228 -0
  704. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_char.h +204 -0
  705. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_constant_pool.h +218 -0
  706. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_integer.h +126 -0
  707. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_list.h +97 -0
  708. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_memchr.h +29 -0
  709. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_newline_list.h +113 -0
  710. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_string.h +190 -0
  711. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_strncasecmp.h +32 -0
  712. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/util/pm_strpbrk.h +46 -0
  713. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism/version.h +29 -0
  714. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/include/prism.h +383 -0
  715. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/compiler.rb +496 -0
  716. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/desugar_compiler.rb +391 -0
  717. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/dispatcher.rb +2194 -0
  718. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/dot_visitor.rb +4758 -0
  719. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/dsl.rb +1000 -0
  720. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/ffi.rb +560 -0
  721. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/inspect_visitor.rb +2389 -0
  722. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/lex_compat.rb +927 -0
  723. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/mutation_compiler.rb +769 -0
  724. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/node.rb +18645 -0
  725. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/node_ext.rb +508 -0
  726. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/pack.rb +228 -0
  727. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/parse_result/comments.rb +187 -0
  728. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/parse_result/errors.rb +65 -0
  729. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/parse_result/newlines.rb +154 -0
  730. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/parse_result.rb +910 -0
  731. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/pattern.rb +268 -0
  732. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/polyfill/append_as_bytes.rb +15 -0
  733. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/polyfill/byteindex.rb +13 -0
  734. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/polyfill/unpack1.rb +14 -0
  735. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/prism.so +0 -0
  736. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/reflection.rb +413 -0
  737. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/relocation.rb +504 -0
  738. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/serialize.rb +2392 -0
  739. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/string_query.rb +30 -0
  740. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser/builder.rb +61 -0
  741. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser/compiler.rb +2212 -0
  742. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser/lexer.rb +812 -0
  743. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser.rb +355 -0
  744. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser33.rb +12 -0
  745. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser34.rb +12 -0
  746. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/parser35.rb +12 -0
  747. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/ripper/sexp.rb +125 -0
  748. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/ripper/shim.rb +5 -0
  749. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/ripper.rb +3458 -0
  750. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation/ruby_parser.rb +1646 -0
  751. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/translation.rb +14 -0
  752. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism/visitor.rb +508 -0
  753. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/lib/prism.rb +89 -0
  754. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/prism.gemspec +170 -0
  755. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/compiler.rbi +12 -0
  756. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/dsl.rbi +524 -0
  757. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/inspect_visitor.rbi +12 -0
  758. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/node.rbi +8722 -0
  759. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/node_ext.rbi +107 -0
  760. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/parse_result.rbi +404 -0
  761. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/reflection.rbi +58 -0
  762. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/string_query.rbi +12 -0
  763. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/translation/parser.rbi +11 -0
  764. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/translation/parser33.rbi +6 -0
  765. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/translation/parser34.rbi +6 -0
  766. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/translation/parser35.rbi +6 -0
  767. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/translation/ripper.rbi +15 -0
  768. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism/visitor.rbi +473 -0
  769. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/rbi/prism.rbi +66 -0
  770. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/compiler.rbs +9 -0
  771. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/dispatcher.rbs +16 -0
  772. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/dot_visitor.rbs +6 -0
  773. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/dsl.rbs +351 -0
  774. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/inspect_visitor.rbs +22 -0
  775. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/lex_compat.rbs +10 -0
  776. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/mutation_compiler.rbs +159 -0
  777. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/node.rbs +3614 -0
  778. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/node_ext.rbs +82 -0
  779. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/pack.rbs +43 -0
  780. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/parse_result.rbs +192 -0
  781. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/pattern.rbs +13 -0
  782. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/reflection.rbs +50 -0
  783. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/relocation.rbs +185 -0
  784. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/serialize.rbs +8 -0
  785. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/string_query.rbs +11 -0
  786. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism/visitor.rbs +169 -0
  787. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/sig/prism.rbs +254 -0
  788. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/diagnostic.c +842 -0
  789. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/encoding.c +5235 -0
  790. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/node.c +8674 -0
  791. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/options.c +328 -0
  792. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/pack.c +509 -0
  793. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/prettyprint.c +8939 -0
  794. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/prism.c +23184 -0
  795. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/regexp.c +790 -0
  796. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/serialize.c +2266 -0
  797. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/static_literals.c +617 -0
  798. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/token_type.c +701 -0
  799. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_buffer.c +357 -0
  800. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_char.c +318 -0
  801. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_constant_pool.c +342 -0
  802. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_integer.c +670 -0
  803. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_list.c +49 -0
  804. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_memchr.c +35 -0
  805. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_newline_list.c +125 -0
  806. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_string.c +383 -0
  807. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_strncasecmp.c +36 -0
  808. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/prism-1.4.0/src/util/pm_strpbrk.c +206 -0
  809. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/ext/racc/cparse/Makefile +3 -3
  810. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/cparse.so +0 -0
  811. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/ast-2.4.3.gemspec +1 -1
  812. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/bundler-2.6.7.gemspec +25 -0
  813. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/{ostruct-0.6.1.gemspec → ostruct-0.6.3.gemspec} +5 -4
  814. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/parser-3.3.8.0.gemspec +1 -1
  815. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/prism-1.4.0.gemspec +24 -0
  816. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/racc-1.8.1.gemspec +1 -1
  817. package/rbastgen.js +1 -1
  818. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php +0 -47
  819. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php +0 -76
  820. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php +0 -23
  821. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php +0 -105
  822. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php +0 -30
  823. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Multiple.php +0 -55
  824. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php5.php +0 -2682
  825. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Tokens.php +0 -148
  826. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-2a9186207494/exe/ruby_ast_gen +0 -59
  827. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-2a9186207494/spec/ruby_ast_gen_spec.rb +0 -175
  828. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/.rspec +0 -0
  829. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/LICENSE.txt +0 -0
  830. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/Rakefile +0 -0
  831. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/bin/setup +0 -0
  832. /package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/{ruby_ast_gen-2a9186207494 → ruby_ast_gen-8738b155eb4f}/spec/spec_helper.rb +0 -0
  833. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → bundler-2.6.7/lib/bundler/vendor/fileutils}/COPYING +0 -0
  834. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/BSDL +0 -0
  835. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/Gemfile +0 -0
  836. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/README.md +0 -0
  837. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/Rakefile +0 -0
  838. /package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/{ostruct-0.6.1 → ostruct-0.6.3}/bin/console +0 -0
@@ -0,0 +1,1646 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require "ruby_parser"
5
+ rescue LoadError
6
+ warn(%q{Error: Unable to load ruby_parser. Add `gem "ruby_parser"` to your Gemfile.})
7
+ exit(1)
8
+ end
9
+
10
+ module Prism
11
+ module Translation
12
+ # This module is the entry-point for converting a prism syntax tree into the
13
+ # seattlerb/ruby_parser gem's syntax tree.
14
+ class RubyParser
15
+ # A prism visitor that builds Sexp objects.
16
+ class Compiler < ::Prism::Compiler
17
+ # This is the name of the file that we are compiling. We set it on every
18
+ # Sexp object that is generated, and also use it to compile __FILE__
19
+ # nodes.
20
+ attr_reader :file
21
+
22
+ # Class variables will change their type based on if they are inside of
23
+ # a method definition or not, so we need to track that state.
24
+ attr_reader :in_def
25
+
26
+ # Some nodes will change their representation if they are inside of a
27
+ # pattern, so we need to track that state.
28
+ attr_reader :in_pattern
29
+
30
+ # Initialize a new compiler with the given file name.
31
+ def initialize(file, in_def: false, in_pattern: false)
32
+ @file = file
33
+ @in_def = in_def
34
+ @in_pattern = in_pattern
35
+ end
36
+
37
+ # alias foo bar
38
+ # ^^^^^^^^^^^^^
39
+ def visit_alias_method_node(node)
40
+ s(node, :alias, visit(node.new_name), visit(node.old_name))
41
+ end
42
+
43
+ # alias $foo $bar
44
+ # ^^^^^^^^^^^^^^^
45
+ def visit_alias_global_variable_node(node)
46
+ s(node, :valias, node.new_name.name, node.old_name.name)
47
+ end
48
+
49
+ # foo => bar | baz
50
+ # ^^^^^^^^^
51
+ def visit_alternation_pattern_node(node)
52
+ s(node, :or, visit(node.left), visit(node.right))
53
+ end
54
+
55
+ # a and b
56
+ # ^^^^^^^
57
+ def visit_and_node(node)
58
+ left = visit(node.left)
59
+
60
+ if left[0] == :and
61
+ # ruby_parser has the and keyword as right-associative as opposed to
62
+ # prism which has it as left-associative. We reverse that
63
+ # associativity here.
64
+ nest = left
65
+ nest = nest[2] while nest[2][0] == :and
66
+ nest[2] = s(node, :and, nest[2], visit(node.right))
67
+ left
68
+ else
69
+ s(node, :and, left, visit(node.right))
70
+ end
71
+ end
72
+
73
+ # []
74
+ # ^^
75
+ def visit_array_node(node)
76
+ if in_pattern
77
+ s(node, :array_pat, nil).concat(visit_all(node.elements))
78
+ else
79
+ s(node, :array).concat(visit_all(node.elements))
80
+ end
81
+ end
82
+
83
+ # foo => [bar]
84
+ # ^^^^^
85
+ def visit_array_pattern_node(node)
86
+ if node.constant.nil? && node.requireds.empty? && node.rest.nil? && node.posts.empty?
87
+ s(node, :array_pat)
88
+ else
89
+ result = s(node, :array_pat, visit_pattern_constant(node.constant)).concat(visit_all(node.requireds))
90
+
91
+ case node.rest
92
+ when SplatNode
93
+ result << :"*#{node.rest.expression&.name}"
94
+ when ImplicitRestNode
95
+ result << :*
96
+
97
+ # This doesn't make any sense at all, but since we're trying to
98
+ # replicate the behavior directly, we'll copy it.
99
+ result.line(666)
100
+ end
101
+
102
+ result.concat(visit_all(node.posts))
103
+ end
104
+ end
105
+
106
+ # foo(bar)
107
+ # ^^^
108
+ def visit_arguments_node(node)
109
+ raise "Cannot visit arguments directly"
110
+ end
111
+
112
+ # { a: 1 }
113
+ # ^^^^
114
+ def visit_assoc_node(node)
115
+ [visit(node.key), visit(node.value)]
116
+ end
117
+
118
+ # def foo(**); bar(**); end
119
+ # ^^
120
+ #
121
+ # { **foo }
122
+ # ^^^^^
123
+ def visit_assoc_splat_node(node)
124
+ if node.value.nil?
125
+ [s(node, :kwsplat)]
126
+ else
127
+ [s(node, :kwsplat, visit(node.value))]
128
+ end
129
+ end
130
+
131
+ # $+
132
+ # ^^
133
+ def visit_back_reference_read_node(node)
134
+ s(node, :back_ref, node.name.name.delete_prefix("$").to_sym)
135
+ end
136
+
137
+ # begin end
138
+ # ^^^^^^^^^
139
+ def visit_begin_node(node)
140
+ result = node.statements.nil? ? s(node, :nil) : visit(node.statements)
141
+
142
+ if !node.rescue_clause.nil?
143
+ if !node.statements.nil?
144
+ result = s(node.statements, :rescue, result, visit(node.rescue_clause))
145
+ else
146
+ result = s(node.rescue_clause, :rescue, visit(node.rescue_clause))
147
+ end
148
+
149
+ current = node.rescue_clause
150
+ until (current = current.subsequent).nil?
151
+ result << visit(current)
152
+ end
153
+ end
154
+
155
+ if !node.else_clause&.statements.nil?
156
+ result << visit(node.else_clause)
157
+ end
158
+
159
+ if !node.ensure_clause.nil?
160
+ if !node.statements.nil? || !node.rescue_clause.nil? || !node.else_clause.nil?
161
+ result = s(node.statements || node.rescue_clause || node.else_clause || node.ensure_clause, :ensure, result, visit(node.ensure_clause))
162
+ else
163
+ result = s(node.ensure_clause, :ensure, visit(node.ensure_clause))
164
+ end
165
+ end
166
+
167
+ result
168
+ end
169
+
170
+ # foo(&bar)
171
+ # ^^^^
172
+ def visit_block_argument_node(node)
173
+ s(node, :block_pass).tap do |result|
174
+ result << visit(node.expression) unless node.expression.nil?
175
+ end
176
+ end
177
+
178
+ # foo { |; bar| }
179
+ # ^^^
180
+ def visit_block_local_variable_node(node)
181
+ node.name
182
+ end
183
+
184
+ # A block on a keyword or method call.
185
+ def visit_block_node(node)
186
+ s(node, :block_pass, visit(node.expression))
187
+ end
188
+
189
+ # def foo(&bar); end
190
+ # ^^^^
191
+ def visit_block_parameter_node(node)
192
+ :"&#{node.name}"
193
+ end
194
+
195
+ # A block's parameters.
196
+ def visit_block_parameters_node(node)
197
+ # If this block parameters has no parameters and is using pipes, then
198
+ # it inherits its location from its shadow locals, even if they're not
199
+ # on the same lines as the pipes.
200
+ shadow_loc = true
201
+
202
+ result =
203
+ if node.parameters.nil?
204
+ s(node, :args)
205
+ else
206
+ shadow_loc = false
207
+ visit(node.parameters)
208
+ end
209
+
210
+ if node.opening == "("
211
+ result.line = node.opening_loc.start_line
212
+ result.line_max = node.closing_loc.end_line
213
+ shadow_loc = false
214
+ end
215
+
216
+ if node.locals.any?
217
+ shadow = s(node, :shadow).concat(visit_all(node.locals))
218
+ shadow.line = node.locals.first.location.start_line
219
+ shadow.line_max = node.locals.last.location.end_line
220
+ result << shadow
221
+
222
+ if shadow_loc
223
+ result.line = shadow.line
224
+ result.line_max = shadow.line_max
225
+ end
226
+ end
227
+
228
+ result
229
+ end
230
+
231
+ # break
232
+ # ^^^^^
233
+ #
234
+ # break foo
235
+ # ^^^^^^^^^
236
+ def visit_break_node(node)
237
+ if node.arguments.nil?
238
+ s(node, :break)
239
+ elsif node.arguments.arguments.length == 1
240
+ s(node, :break, visit(node.arguments.arguments.first))
241
+ else
242
+ s(node, :break, s(node.arguments, :array).concat(visit_all(node.arguments.arguments)))
243
+ end
244
+ end
245
+
246
+ # foo
247
+ # ^^^
248
+ #
249
+ # foo.bar
250
+ # ^^^^^^^
251
+ #
252
+ # foo.bar() {}
253
+ # ^^^^^^^^^^^^
254
+ def visit_call_node(node)
255
+ case node.name
256
+ when :!~
257
+ return s(node, :not, visit(node.copy(name: :"=~")))
258
+ when :=~
259
+ if node.arguments&.arguments&.length == 1 && node.block.nil?
260
+ case node.receiver
261
+ when StringNode
262
+ return s(node, :match3, visit(node.arguments.arguments.first), visit(node.receiver))
263
+ when RegularExpressionNode, InterpolatedRegularExpressionNode
264
+ return s(node, :match2, visit(node.receiver), visit(node.arguments.arguments.first))
265
+ end
266
+
267
+ case node.arguments.arguments.first
268
+ when RegularExpressionNode, InterpolatedRegularExpressionNode
269
+ return s(node, :match3, visit(node.arguments.arguments.first), visit(node.receiver))
270
+ end
271
+ end
272
+ end
273
+
274
+ type = node.attribute_write? ? :attrasgn : :call
275
+ type = :"safe_#{type}" if node.safe_navigation?
276
+
277
+ arguments = node.arguments&.arguments || []
278
+ write_value = arguments.pop if type == :attrasgn
279
+ block = node.block
280
+
281
+ if block.is_a?(BlockArgumentNode)
282
+ arguments << block
283
+ block = nil
284
+ end
285
+
286
+ result = s(node, type, visit(node.receiver), node.name).concat(visit_all(arguments))
287
+ result << visit_write_value(write_value) unless write_value.nil?
288
+
289
+ visit_block(node, result, block)
290
+ end
291
+
292
+ # foo.bar += baz
293
+ # ^^^^^^^^^^^^^^^
294
+ def visit_call_operator_write_node(node)
295
+ if op_asgn?(node)
296
+ s(node, op_asgn_type(node, :op_asgn), visit(node.receiver), visit_write_value(node.value), node.read_name, node.binary_operator)
297
+ else
298
+ s(node, op_asgn_type(node, :op_asgn2), visit(node.receiver), node.write_name, node.binary_operator, visit_write_value(node.value))
299
+ end
300
+ end
301
+
302
+ # foo.bar &&= baz
303
+ # ^^^^^^^^^^^^^^^
304
+ def visit_call_and_write_node(node)
305
+ if op_asgn?(node)
306
+ s(node, op_asgn_type(node, :op_asgn), visit(node.receiver), visit_write_value(node.value), node.read_name, :"&&")
307
+ else
308
+ s(node, op_asgn_type(node, :op_asgn2), visit(node.receiver), node.write_name, :"&&", visit_write_value(node.value))
309
+ end
310
+ end
311
+
312
+ # foo.bar ||= baz
313
+ # ^^^^^^^^^^^^^^^
314
+ def visit_call_or_write_node(node)
315
+ if op_asgn?(node)
316
+ s(node, op_asgn_type(node, :op_asgn), visit(node.receiver), visit_write_value(node.value), node.read_name, :"||")
317
+ else
318
+ s(node, op_asgn_type(node, :op_asgn2), visit(node.receiver), node.write_name, :"||", visit_write_value(node.value))
319
+ end
320
+ end
321
+
322
+ # Call nodes with operators following them will either be op_asgn or
323
+ # op_asgn2 nodes. That is determined by their call operator and their
324
+ # right-hand side.
325
+ private def op_asgn?(node)
326
+ node.call_operator == "::" || (node.value.is_a?(CallNode) && node.value.opening_loc.nil? && !node.value.arguments.nil?)
327
+ end
328
+
329
+ # Call nodes with operators following them can use &. as an operator,
330
+ # which changes their type by prefixing "safe_".
331
+ private def op_asgn_type(node, type)
332
+ node.safe_navigation? ? :"safe_#{type}" : type
333
+ end
334
+
335
+ # foo.bar, = 1
336
+ # ^^^^^^^
337
+ def visit_call_target_node(node)
338
+ s(node, :attrasgn, visit(node.receiver), node.name)
339
+ end
340
+
341
+ # foo => bar => baz
342
+ # ^^^^^^^^^^
343
+ def visit_capture_pattern_node(node)
344
+ visit(node.target) << visit(node.value)
345
+ end
346
+
347
+ # case foo; when bar; end
348
+ # ^^^^^^^^^^^^^^^^^^^^^^^
349
+ def visit_case_node(node)
350
+ s(node, :case, visit(node.predicate)).concat(visit_all(node.conditions)) << visit(node.else_clause)
351
+ end
352
+
353
+ # case foo; in bar; end
354
+ # ^^^^^^^^^^^^^^^^^^^^^
355
+ def visit_case_match_node(node)
356
+ s(node, :case, visit(node.predicate)).concat(visit_all(node.conditions)) << visit(node.else_clause)
357
+ end
358
+
359
+ # class Foo; end
360
+ # ^^^^^^^^^^^^^^
361
+ def visit_class_node(node)
362
+ name =
363
+ if node.constant_path.is_a?(ConstantReadNode)
364
+ node.name
365
+ else
366
+ visit(node.constant_path)
367
+ end
368
+
369
+ if node.body.nil?
370
+ s(node, :class, name, visit(node.superclass))
371
+ elsif node.body.is_a?(StatementsNode)
372
+ compiler = copy_compiler(in_def: false)
373
+ s(node, :class, name, visit(node.superclass)).concat(node.body.body.map { |child| child.accept(compiler) })
374
+ else
375
+ s(node, :class, name, visit(node.superclass), node.body.accept(copy_compiler(in_def: false)))
376
+ end
377
+ end
378
+
379
+ # @@foo
380
+ # ^^^^^
381
+ def visit_class_variable_read_node(node)
382
+ s(node, :cvar, node.name)
383
+ end
384
+
385
+ # @@foo = 1
386
+ # ^^^^^^^^^
387
+ #
388
+ # @@foo, @@bar = 1
389
+ # ^^^^^ ^^^^^
390
+ def visit_class_variable_write_node(node)
391
+ s(node, class_variable_write_type, node.name, visit_write_value(node.value))
392
+ end
393
+
394
+ # @@foo += bar
395
+ # ^^^^^^^^^^^^
396
+ def visit_class_variable_operator_write_node(node)
397
+ s(node, class_variable_write_type, node.name, s(node, :call, s(node, :cvar, node.name), node.binary_operator, visit_write_value(node.value)))
398
+ end
399
+
400
+ # @@foo &&= bar
401
+ # ^^^^^^^^^^^^^
402
+ def visit_class_variable_and_write_node(node)
403
+ s(node, :op_asgn_and, s(node, :cvar, node.name), s(node, class_variable_write_type, node.name, visit_write_value(node.value)))
404
+ end
405
+
406
+ # @@foo ||= bar
407
+ # ^^^^^^^^^^^^^
408
+ def visit_class_variable_or_write_node(node)
409
+ s(node, :op_asgn_or, s(node, :cvar, node.name), s(node, class_variable_write_type, node.name, visit_write_value(node.value)))
410
+ end
411
+
412
+ # @@foo, = bar
413
+ # ^^^^^
414
+ def visit_class_variable_target_node(node)
415
+ s(node, class_variable_write_type, node.name)
416
+ end
417
+
418
+ # If a class variable is written within a method definition, it has a
419
+ # different type than everywhere else.
420
+ private def class_variable_write_type
421
+ in_def ? :cvasgn : :cvdecl
422
+ end
423
+
424
+ # Foo
425
+ # ^^^
426
+ def visit_constant_read_node(node)
427
+ s(node, :const, node.name)
428
+ end
429
+
430
+ # Foo = 1
431
+ # ^^^^^^^
432
+ #
433
+ # Foo, Bar = 1
434
+ # ^^^ ^^^
435
+ def visit_constant_write_node(node)
436
+ s(node, :cdecl, node.name, visit_write_value(node.value))
437
+ end
438
+
439
+ # Foo += bar
440
+ # ^^^^^^^^^^^
441
+ def visit_constant_operator_write_node(node)
442
+ s(node, :cdecl, node.name, s(node, :call, s(node, :const, node.name), node.binary_operator, visit_write_value(node.value)))
443
+ end
444
+
445
+ # Foo &&= bar
446
+ # ^^^^^^^^^^^^
447
+ def visit_constant_and_write_node(node)
448
+ s(node, :op_asgn_and, s(node, :const, node.name), s(node, :cdecl, node.name, visit(node.value)))
449
+ end
450
+
451
+ # Foo ||= bar
452
+ # ^^^^^^^^^^^^
453
+ def visit_constant_or_write_node(node)
454
+ s(node, :op_asgn_or, s(node, :const, node.name), s(node, :cdecl, node.name, visit(node.value)))
455
+ end
456
+
457
+ # Foo, = bar
458
+ # ^^^
459
+ def visit_constant_target_node(node)
460
+ s(node, :cdecl, node.name)
461
+ end
462
+
463
+ # Foo::Bar
464
+ # ^^^^^^^^
465
+ def visit_constant_path_node(node)
466
+ if node.parent.nil?
467
+ s(node, :colon3, node.name)
468
+ else
469
+ s(node, :colon2, visit(node.parent), node.name)
470
+ end
471
+ end
472
+
473
+ # Foo::Bar = 1
474
+ # ^^^^^^^^^^^^
475
+ #
476
+ # Foo::Foo, Bar::Bar = 1
477
+ # ^^^^^^^^ ^^^^^^^^
478
+ def visit_constant_path_write_node(node)
479
+ s(node, :cdecl, visit(node.target), visit_write_value(node.value))
480
+ end
481
+
482
+ # Foo::Bar += baz
483
+ # ^^^^^^^^^^^^^^^
484
+ def visit_constant_path_operator_write_node(node)
485
+ s(node, :op_asgn, visit(node.target), node.binary_operator, visit_write_value(node.value))
486
+ end
487
+
488
+ # Foo::Bar &&= baz
489
+ # ^^^^^^^^^^^^^^^^
490
+ def visit_constant_path_and_write_node(node)
491
+ s(node, :op_asgn_and, visit(node.target), visit_write_value(node.value))
492
+ end
493
+
494
+ # Foo::Bar ||= baz
495
+ # ^^^^^^^^^^^^^^^^
496
+ def visit_constant_path_or_write_node(node)
497
+ s(node, :op_asgn_or, visit(node.target), visit_write_value(node.value))
498
+ end
499
+
500
+ # Foo::Bar, = baz
501
+ # ^^^^^^^^
502
+ def visit_constant_path_target_node(node)
503
+ inner =
504
+ if node.parent.nil?
505
+ s(node, :colon3, node.name)
506
+ else
507
+ s(node, :colon2, visit(node.parent), node.name)
508
+ end
509
+
510
+ s(node, :const, inner)
511
+ end
512
+
513
+ # def foo; end
514
+ # ^^^^^^^^^^^^
515
+ #
516
+ # def self.foo; end
517
+ # ^^^^^^^^^^^^^^^^^
518
+ def visit_def_node(node)
519
+ name = node.name_loc.slice.to_sym
520
+ result =
521
+ if node.receiver.nil?
522
+ s(node, :defn, name)
523
+ else
524
+ s(node, :defs, visit(node.receiver), name)
525
+ end
526
+
527
+ result.line(node.name_loc.start_line)
528
+ if node.parameters.nil?
529
+ result << s(node, :args).line(node.name_loc.start_line)
530
+ else
531
+ result << visit(node.parameters)
532
+ end
533
+
534
+ if node.body.nil?
535
+ result << s(node, :nil)
536
+ elsif node.body.is_a?(StatementsNode)
537
+ compiler = copy_compiler(in_def: true)
538
+ result.concat(node.body.body.map { |child| child.accept(compiler) })
539
+ else
540
+ result << node.body.accept(copy_compiler(in_def: true))
541
+ end
542
+ end
543
+
544
+ # defined? a
545
+ # ^^^^^^^^^^
546
+ #
547
+ # defined?(a)
548
+ # ^^^^^^^^^^^
549
+ def visit_defined_node(node)
550
+ s(node, :defined, visit(node.value))
551
+ end
552
+
553
+ # if foo then bar else baz end
554
+ # ^^^^^^^^^^^^
555
+ def visit_else_node(node)
556
+ visit(node.statements)
557
+ end
558
+
559
+ # "foo #{bar}"
560
+ # ^^^^^^
561
+ def visit_embedded_statements_node(node)
562
+ result = s(node, :evstr)
563
+ result << visit(node.statements) unless node.statements.nil?
564
+ result
565
+ end
566
+
567
+ # "foo #@bar"
568
+ # ^^^^^
569
+ def visit_embedded_variable_node(node)
570
+ s(node, :evstr, visit(node.variable))
571
+ end
572
+
573
+ # begin; foo; ensure; bar; end
574
+ # ^^^^^^^^^^^^
575
+ def visit_ensure_node(node)
576
+ node.statements.nil? ? s(node, :nil) : visit(node.statements)
577
+ end
578
+
579
+ # false
580
+ # ^^^^^
581
+ def visit_false_node(node)
582
+ s(node, :false)
583
+ end
584
+
585
+ # foo => [*, bar, *]
586
+ # ^^^^^^^^^^^
587
+ def visit_find_pattern_node(node)
588
+ s(node, :find_pat, visit_pattern_constant(node.constant), :"*#{node.left.expression&.name}", *visit_all(node.requireds), :"*#{node.right.expression&.name}")
589
+ end
590
+
591
+ # if foo .. bar; end
592
+ # ^^^^^^^^^^
593
+ def visit_flip_flop_node(node)
594
+ if node.left.is_a?(IntegerNode) && node.right.is_a?(IntegerNode)
595
+ s(node, :lit, Range.new(node.left.value, node.right.value, node.exclude_end?))
596
+ else
597
+ s(node, node.exclude_end? ? :flip3 : :flip2, visit(node.left), visit(node.right))
598
+ end
599
+ end
600
+
601
+ # 1.0
602
+ # ^^^
603
+ def visit_float_node(node)
604
+ s(node, :lit, node.value)
605
+ end
606
+
607
+ # for foo in bar do end
608
+ # ^^^^^^^^^^^^^^^^^^^^^
609
+ def visit_for_node(node)
610
+ s(node, :for, visit(node.collection), visit(node.index), visit(node.statements))
611
+ end
612
+
613
+ # def foo(...); bar(...); end
614
+ # ^^^
615
+ def visit_forwarding_arguments_node(node)
616
+ s(node, :forward_args)
617
+ end
618
+
619
+ # def foo(...); end
620
+ # ^^^
621
+ def visit_forwarding_parameter_node(node)
622
+ s(node, :forward_args)
623
+ end
624
+
625
+ # super
626
+ # ^^^^^
627
+ #
628
+ # super {}
629
+ # ^^^^^^^^
630
+ def visit_forwarding_super_node(node)
631
+ visit_block(node, s(node, :zsuper), node.block)
632
+ end
633
+
634
+ # $foo
635
+ # ^^^^
636
+ def visit_global_variable_read_node(node)
637
+ s(node, :gvar, node.name)
638
+ end
639
+
640
+ # $foo = 1
641
+ # ^^^^^^^^
642
+ #
643
+ # $foo, $bar = 1
644
+ # ^^^^ ^^^^
645
+ def visit_global_variable_write_node(node)
646
+ s(node, :gasgn, node.name, visit_write_value(node.value))
647
+ end
648
+
649
+ # $foo += bar
650
+ # ^^^^^^^^^^^
651
+ def visit_global_variable_operator_write_node(node)
652
+ s(node, :gasgn, node.name, s(node, :call, s(node, :gvar, node.name), node.binary_operator, visit(node.value)))
653
+ end
654
+
655
+ # $foo &&= bar
656
+ # ^^^^^^^^^^^^
657
+ def visit_global_variable_and_write_node(node)
658
+ s(node, :op_asgn_and, s(node, :gvar, node.name), s(node, :gasgn, node.name, visit_write_value(node.value)))
659
+ end
660
+
661
+ # $foo ||= bar
662
+ # ^^^^^^^^^^^^
663
+ def visit_global_variable_or_write_node(node)
664
+ s(node, :op_asgn_or, s(node, :gvar, node.name), s(node, :gasgn, node.name, visit_write_value(node.value)))
665
+ end
666
+
667
+ # $foo, = bar
668
+ # ^^^^
669
+ def visit_global_variable_target_node(node)
670
+ s(node, :gasgn, node.name)
671
+ end
672
+
673
+ # {}
674
+ # ^^
675
+ def visit_hash_node(node)
676
+ s(node, :hash).concat(node.elements.flat_map { |element| visit(element) })
677
+ end
678
+
679
+ # foo => {}
680
+ # ^^
681
+ def visit_hash_pattern_node(node)
682
+ result = s(node, :hash_pat, visit_pattern_constant(node.constant)).concat(node.elements.flat_map { |element| visit(element) })
683
+
684
+ case node.rest
685
+ when AssocSplatNode
686
+ result << s(node.rest, :kwrest, :"**#{node.rest.value&.name}")
687
+ when NoKeywordsParameterNode
688
+ result << visit(node.rest)
689
+ end
690
+
691
+ result
692
+ end
693
+
694
+ # if foo then bar end
695
+ # ^^^^^^^^^^^^^^^^^^^
696
+ #
697
+ # bar if foo
698
+ # ^^^^^^^^^^
699
+ #
700
+ # foo ? bar : baz
701
+ # ^^^^^^^^^^^^^^^
702
+ def visit_if_node(node)
703
+ s(node, :if, visit(node.predicate), visit(node.statements), visit(node.subsequent))
704
+ end
705
+
706
+ # 1i
707
+ def visit_imaginary_node(node)
708
+ s(node, :lit, node.value)
709
+ end
710
+
711
+ # { foo: }
712
+ # ^^^^
713
+ def visit_implicit_node(node)
714
+ end
715
+
716
+ # foo { |bar,| }
717
+ # ^
718
+ def visit_implicit_rest_node(node)
719
+ end
720
+
721
+ # case foo; in bar; end
722
+ # ^^^^^^^^^^^^^^^^^^^^^
723
+ def visit_in_node(node)
724
+ pattern =
725
+ if node.pattern.is_a?(ConstantPathNode)
726
+ s(node.pattern, :const, visit(node.pattern))
727
+ else
728
+ node.pattern.accept(copy_compiler(in_pattern: true))
729
+ end
730
+
731
+ s(node, :in, pattern).concat(node.statements.nil? ? [nil] : visit_all(node.statements.body))
732
+ end
733
+
734
+ # foo[bar] += baz
735
+ # ^^^^^^^^^^^^^^^
736
+ def visit_index_operator_write_node(node)
737
+ arglist = nil
738
+
739
+ if !node.arguments.nil? || !node.block.nil?
740
+ arglist = s(node, :arglist).concat(visit_all(node.arguments&.arguments || []))
741
+ arglist << visit(node.block) if !node.block.nil?
742
+ end
743
+
744
+ s(node, :op_asgn1, visit(node.receiver), arglist, node.binary_operator, visit_write_value(node.value))
745
+ end
746
+
747
+ # foo[bar] &&= baz
748
+ # ^^^^^^^^^^^^^^^^
749
+ def visit_index_and_write_node(node)
750
+ arglist = nil
751
+
752
+ if !node.arguments.nil? || !node.block.nil?
753
+ arglist = s(node, :arglist).concat(visit_all(node.arguments&.arguments || []))
754
+ arglist << visit(node.block) if !node.block.nil?
755
+ end
756
+
757
+ s(node, :op_asgn1, visit(node.receiver), arglist, :"&&", visit_write_value(node.value))
758
+ end
759
+
760
+ # foo[bar] ||= baz
761
+ # ^^^^^^^^^^^^^^^^
762
+ def visit_index_or_write_node(node)
763
+ arglist = nil
764
+
765
+ if !node.arguments.nil? || !node.block.nil?
766
+ arglist = s(node, :arglist).concat(visit_all(node.arguments&.arguments || []))
767
+ arglist << visit(node.block) if !node.block.nil?
768
+ end
769
+
770
+ s(node, :op_asgn1, visit(node.receiver), arglist, :"||", visit_write_value(node.value))
771
+ end
772
+
773
+ # foo[bar], = 1
774
+ # ^^^^^^^^
775
+ def visit_index_target_node(node)
776
+ arguments = visit_all(node.arguments&.arguments || [])
777
+ arguments << visit(node.block) unless node.block.nil?
778
+
779
+ s(node, :attrasgn, visit(node.receiver), :[]=).concat(arguments)
780
+ end
781
+
782
+ # @foo
783
+ # ^^^^
784
+ def visit_instance_variable_read_node(node)
785
+ s(node, :ivar, node.name)
786
+ end
787
+
788
+ # @foo = 1
789
+ # ^^^^^^^^
790
+ #
791
+ # @foo, @bar = 1
792
+ # ^^^^ ^^^^
793
+ def visit_instance_variable_write_node(node)
794
+ s(node, :iasgn, node.name, visit_write_value(node.value))
795
+ end
796
+
797
+ # @foo += bar
798
+ # ^^^^^^^^^^^
799
+ def visit_instance_variable_operator_write_node(node)
800
+ s(node, :iasgn, node.name, s(node, :call, s(node, :ivar, node.name), node.binary_operator, visit_write_value(node.value)))
801
+ end
802
+
803
+ # @foo &&= bar
804
+ # ^^^^^^^^^^^^
805
+ def visit_instance_variable_and_write_node(node)
806
+ s(node, :op_asgn_and, s(node, :ivar, node.name), s(node, :iasgn, node.name, visit(node.value)))
807
+ end
808
+
809
+ # @foo ||= bar
810
+ # ^^^^^^^^^^^^
811
+ def visit_instance_variable_or_write_node(node)
812
+ s(node, :op_asgn_or, s(node, :ivar, node.name), s(node, :iasgn, node.name, visit(node.value)))
813
+ end
814
+
815
+ # @foo, = bar
816
+ # ^^^^
817
+ def visit_instance_variable_target_node(node)
818
+ s(node, :iasgn, node.name)
819
+ end
820
+
821
+ # 1
822
+ # ^
823
+ def visit_integer_node(node)
824
+ s(node, :lit, node.value)
825
+ end
826
+
827
+ # if /foo #{bar}/ then end
828
+ # ^^^^^^^^^^^^
829
+ def visit_interpolated_match_last_line_node(node)
830
+ parts = visit_interpolated_parts(node.parts)
831
+ regexp =
832
+ if parts.length == 1
833
+ s(node, :lit, Regexp.new(parts.first, node.options))
834
+ else
835
+ s(node, :dregx).concat(parts).tap do |result|
836
+ options = node.options
837
+ result << options if options != 0
838
+ end
839
+ end
840
+
841
+ s(node, :match, regexp)
842
+ end
843
+
844
+ # /foo #{bar}/
845
+ # ^^^^^^^^^^^^
846
+ def visit_interpolated_regular_expression_node(node)
847
+ parts = visit_interpolated_parts(node.parts)
848
+
849
+ if parts.length == 1
850
+ s(node, :lit, Regexp.new(parts.first, node.options))
851
+ else
852
+ s(node, :dregx).concat(parts).tap do |result|
853
+ options = node.options
854
+ result << options if options != 0
855
+ end
856
+ end
857
+ end
858
+
859
+ # "foo #{bar}"
860
+ # ^^^^^^^^^^^^
861
+ def visit_interpolated_string_node(node)
862
+ parts = visit_interpolated_parts(node.parts)
863
+ parts.length == 1 ? s(node, :str, parts.first) : s(node, :dstr).concat(parts)
864
+ end
865
+
866
+ # :"foo #{bar}"
867
+ # ^^^^^^^^^^^^^
868
+ def visit_interpolated_symbol_node(node)
869
+ parts = visit_interpolated_parts(node.parts)
870
+ parts.length == 1 ? s(node, :lit, parts.first.to_sym) : s(node, :dsym).concat(parts)
871
+ end
872
+
873
+ # `foo #{bar}`
874
+ # ^^^^^^^^^^^^
875
+ def visit_interpolated_x_string_node(node)
876
+ source = node.heredoc? ? node.parts.first : node
877
+ parts = visit_interpolated_parts(node.parts)
878
+ parts.length == 1 ? s(source, :xstr, parts.first) : s(source, :dxstr).concat(parts)
879
+ end
880
+
881
+ # Visit the interpolated content of the string-like node.
882
+ private def visit_interpolated_parts(parts)
883
+ visited = []
884
+
885
+ parts.each do |part|
886
+ result = visit(part)
887
+
888
+ if result[0] == :evstr && result[1]
889
+ if result[1][0] == :str
890
+ visited << result[1]
891
+ elsif result[1][0] == :dstr
892
+ visited.concat(result[1][1..-1])
893
+ else
894
+ visited << result
895
+ end
896
+ visited << :space
897
+ elsif result[0] == :dstr
898
+ if !visited.empty? && part.parts[0].is_a?(StringNode)
899
+ # If we are in the middle of an implicitly concatenated string,
900
+ # we should not have a bare string as the first part. In this
901
+ # case we need to visit just that first part and then we can
902
+ # push the rest of the parts onto the visited array.
903
+ result[1] = visit(part.parts[0])
904
+ end
905
+ visited.concat(result[1..-1])
906
+ else
907
+ visited << result
908
+ end
909
+ end
910
+
911
+ state = :beginning #: :beginning | :string_content | :interpolated_content
912
+ results = []
913
+
914
+ visited.each_with_index do |result, index|
915
+ case state
916
+ when :beginning
917
+ if result.is_a?(String)
918
+ results << result
919
+ state = :string_content
920
+ elsif result.is_a?(Array) && result[0] == :str
921
+ results << result[1]
922
+ state = :string_content
923
+ else
924
+ results << ""
925
+ results << result
926
+ state = :interpolated_content
927
+ end
928
+ when :string_content
929
+ if result == :space
930
+ # continue
931
+ elsif result.is_a?(String)
932
+ results[0] = "#{results[0]}#{result}"
933
+ elsif result.is_a?(Array) && result[0] == :str
934
+ results[0] = "#{results[0]}#{result[1]}"
935
+ else
936
+ results << result
937
+ state = :interpolated_content
938
+ end
939
+ when :interpolated_content
940
+ if result == :space
941
+ # continue
942
+ elsif visited[index - 1] != :space && result.is_a?(Array) && result[0] == :str && results[-1][0] == :str && (results[-1].line_max == result.line)
943
+ results[-1][1] = "#{results[-1][1]}#{result[1]}"
944
+ results[-1].line_max = result.line_max
945
+ else
946
+ results << result
947
+ end
948
+ end
949
+ end
950
+
951
+ results
952
+ end
953
+
954
+ # -> { it }
955
+ # ^^
956
+ def visit_it_local_variable_read_node(node)
957
+ s(node, :call, nil, :it)
958
+ end
959
+
960
+ # foo(bar: baz)
961
+ # ^^^^^^^^
962
+ def visit_keyword_hash_node(node)
963
+ s(node, :hash).concat(node.elements.flat_map { |element| visit(element) })
964
+ end
965
+
966
+ # def foo(**bar); end
967
+ # ^^^^^
968
+ #
969
+ # def foo(**); end
970
+ # ^^
971
+ def visit_keyword_rest_parameter_node(node)
972
+ :"**#{node.name}"
973
+ end
974
+
975
+ # -> {}
976
+ def visit_lambda_node(node)
977
+ parameters =
978
+ case node.parameters
979
+ when nil, NumberedParametersNode
980
+ s(node, :args)
981
+ else
982
+ visit(node.parameters)
983
+ end
984
+
985
+ if node.body.nil?
986
+ s(node, :iter, s(node, :lambda), parameters)
987
+ else
988
+ s(node, :iter, s(node, :lambda), parameters, visit(node.body))
989
+ end
990
+ end
991
+
992
+ # foo
993
+ # ^^^
994
+ def visit_local_variable_read_node(node)
995
+ if node.name.match?(/^_\d$/)
996
+ s(node, :call, nil, node.name)
997
+ else
998
+ s(node, :lvar, node.name)
999
+ end
1000
+ end
1001
+
1002
+ # foo = 1
1003
+ # ^^^^^^^
1004
+ #
1005
+ # foo, bar = 1
1006
+ # ^^^ ^^^
1007
+ def visit_local_variable_write_node(node)
1008
+ s(node, :lasgn, node.name, visit_write_value(node.value))
1009
+ end
1010
+
1011
+ # foo += bar
1012
+ # ^^^^^^^^^^
1013
+ def visit_local_variable_operator_write_node(node)
1014
+ s(node, :lasgn, node.name, s(node, :call, s(node, :lvar, node.name), node.binary_operator, visit_write_value(node.value)))
1015
+ end
1016
+
1017
+ # foo &&= bar
1018
+ # ^^^^^^^^^^^
1019
+ def visit_local_variable_and_write_node(node)
1020
+ s(node, :op_asgn_and, s(node, :lvar, node.name), s(node, :lasgn, node.name, visit_write_value(node.value)))
1021
+ end
1022
+
1023
+ # foo ||= bar
1024
+ # ^^^^^^^^^^^
1025
+ def visit_local_variable_or_write_node(node)
1026
+ s(node, :op_asgn_or, s(node, :lvar, node.name), s(node, :lasgn, node.name, visit_write_value(node.value)))
1027
+ end
1028
+
1029
+ # foo, = bar
1030
+ # ^^^
1031
+ def visit_local_variable_target_node(node)
1032
+ s(node, :lasgn, node.name)
1033
+ end
1034
+
1035
+ # if /foo/ then end
1036
+ # ^^^^^
1037
+ def visit_match_last_line_node(node)
1038
+ s(node, :match, s(node, :lit, Regexp.new(node.unescaped, node.options)))
1039
+ end
1040
+
1041
+ # foo in bar
1042
+ # ^^^^^^^^^^
1043
+ def visit_match_predicate_node(node)
1044
+ s(node, :case, visit(node.value), s(node, :in, node.pattern.accept(copy_compiler(in_pattern: true)), nil), nil)
1045
+ end
1046
+
1047
+ # foo => bar
1048
+ # ^^^^^^^^^^
1049
+ def visit_match_required_node(node)
1050
+ s(node, :case, visit(node.value), s(node, :in, node.pattern.accept(copy_compiler(in_pattern: true)), nil), nil)
1051
+ end
1052
+
1053
+ # /(?<foo>foo)/ =~ bar
1054
+ # ^^^^^^^^^^^^^^^^^^^^
1055
+ def visit_match_write_node(node)
1056
+ s(node, :match2, visit(node.call.receiver), visit(node.call.arguments.arguments.first))
1057
+ end
1058
+
1059
+ # A node that is missing from the syntax tree. This is only used in the
1060
+ # case of a syntax error. The parser gem doesn't have such a concept, so
1061
+ # we invent our own here.
1062
+ def visit_missing_node(node)
1063
+ raise "Cannot visit missing node directly"
1064
+ end
1065
+
1066
+ # module Foo; end
1067
+ # ^^^^^^^^^^^^^^^
1068
+ def visit_module_node(node)
1069
+ name =
1070
+ if node.constant_path.is_a?(ConstantReadNode)
1071
+ node.name
1072
+ else
1073
+ visit(node.constant_path)
1074
+ end
1075
+
1076
+ if node.body.nil?
1077
+ s(node, :module, name)
1078
+ elsif node.body.is_a?(StatementsNode)
1079
+ compiler = copy_compiler(in_def: false)
1080
+ s(node, :module, name).concat(node.body.body.map { |child| child.accept(compiler) })
1081
+ else
1082
+ s(node, :module, name, node.body.accept(copy_compiler(in_def: false)))
1083
+ end
1084
+ end
1085
+
1086
+ # foo, bar = baz
1087
+ # ^^^^^^^^
1088
+ def visit_multi_target_node(node)
1089
+ targets = [*node.lefts]
1090
+ targets << node.rest if !node.rest.nil? && !node.rest.is_a?(ImplicitRestNode)
1091
+ targets.concat(node.rights)
1092
+
1093
+ s(node, :masgn, s(node, :array).concat(visit_all(targets)))
1094
+ end
1095
+
1096
+ # foo, bar = baz
1097
+ # ^^^^^^^^^^^^^^
1098
+ def visit_multi_write_node(node)
1099
+ targets = [*node.lefts]
1100
+ targets << node.rest if !node.rest.nil? && !node.rest.is_a?(ImplicitRestNode)
1101
+ targets.concat(node.rights)
1102
+
1103
+ value =
1104
+ if node.value.is_a?(ArrayNode) && node.value.opening_loc.nil?
1105
+ if node.value.elements.length == 1 && node.value.elements.first.is_a?(SplatNode)
1106
+ visit(node.value.elements.first)
1107
+ else
1108
+ visit(node.value)
1109
+ end
1110
+ else
1111
+ s(node.value, :to_ary, visit(node.value))
1112
+ end
1113
+
1114
+ s(node, :masgn, s(node, :array).concat(visit_all(targets)), value)
1115
+ end
1116
+
1117
+ # next
1118
+ # ^^^^
1119
+ #
1120
+ # next foo
1121
+ # ^^^^^^^^
1122
+ def visit_next_node(node)
1123
+ if node.arguments.nil?
1124
+ s(node, :next)
1125
+ elsif node.arguments.arguments.length == 1
1126
+ argument = node.arguments.arguments.first
1127
+ s(node, :next, argument.is_a?(SplatNode) ? s(node, :svalue, visit(argument)) : visit(argument))
1128
+ else
1129
+ s(node, :next, s(node, :array).concat(visit_all(node.arguments.arguments)))
1130
+ end
1131
+ end
1132
+
1133
+ # nil
1134
+ # ^^^
1135
+ def visit_nil_node(node)
1136
+ s(node, :nil)
1137
+ end
1138
+
1139
+ # def foo(**nil); end
1140
+ # ^^^^^
1141
+ def visit_no_keywords_parameter_node(node)
1142
+ in_pattern ? s(node, :kwrest, :"**nil") : :"**nil"
1143
+ end
1144
+
1145
+ # -> { _1 + _2 }
1146
+ # ^^^^^^^^^^^^^^
1147
+ def visit_numbered_parameters_node(node)
1148
+ raise "Cannot visit numbered parameters directly"
1149
+ end
1150
+
1151
+ # $1
1152
+ # ^^
1153
+ def visit_numbered_reference_read_node(node)
1154
+ s(node, :nth_ref, node.number)
1155
+ end
1156
+
1157
+ # def foo(bar: baz); end
1158
+ # ^^^^^^^^
1159
+ def visit_optional_keyword_parameter_node(node)
1160
+ s(node, :kwarg, node.name, visit(node.value))
1161
+ end
1162
+
1163
+ # def foo(bar = 1); end
1164
+ # ^^^^^^^
1165
+ def visit_optional_parameter_node(node)
1166
+ s(node, :lasgn, node.name, visit(node.value))
1167
+ end
1168
+
1169
+ # a or b
1170
+ # ^^^^^^
1171
+ def visit_or_node(node)
1172
+ left = visit(node.left)
1173
+
1174
+ if left[0] == :or
1175
+ # ruby_parser has the or keyword as right-associative as opposed to
1176
+ # prism which has it as left-associative. We reverse that
1177
+ # associativity here.
1178
+ nest = left
1179
+ nest = nest[2] while nest[2][0] == :or
1180
+ nest[2] = s(node, :or, nest[2], visit(node.right))
1181
+ left
1182
+ else
1183
+ s(node, :or, left, visit(node.right))
1184
+ end
1185
+ end
1186
+
1187
+ # def foo(bar, *baz); end
1188
+ # ^^^^^^^^^
1189
+ def visit_parameters_node(node)
1190
+ children =
1191
+ node.compact_child_nodes.map do |element|
1192
+ if element.is_a?(MultiTargetNode)
1193
+ visit_destructured_parameter(element)
1194
+ else
1195
+ visit(element)
1196
+ end
1197
+ end
1198
+
1199
+ s(node, :args).concat(children)
1200
+ end
1201
+
1202
+ # def foo((bar, baz)); end
1203
+ # ^^^^^^^^^^
1204
+ private def visit_destructured_parameter(node)
1205
+ children =
1206
+ [*node.lefts, *node.rest, *node.rights].map do |child|
1207
+ case child
1208
+ when RequiredParameterNode
1209
+ visit(child)
1210
+ when MultiTargetNode
1211
+ visit_destructured_parameter(child)
1212
+ when SplatNode
1213
+ :"*#{child.expression&.name}"
1214
+ else
1215
+ raise
1216
+ end
1217
+ end
1218
+
1219
+ s(node, :masgn).concat(children)
1220
+ end
1221
+
1222
+ # ()
1223
+ # ^^
1224
+ #
1225
+ # (1)
1226
+ # ^^^
1227
+ def visit_parentheses_node(node)
1228
+ if node.body.nil?
1229
+ s(node, :nil)
1230
+ else
1231
+ visit(node.body)
1232
+ end
1233
+ end
1234
+
1235
+ # foo => ^(bar)
1236
+ # ^^^^^^
1237
+ def visit_pinned_expression_node(node)
1238
+ node.expression.accept(copy_compiler(in_pattern: false))
1239
+ end
1240
+
1241
+ # foo = 1 and bar => ^foo
1242
+ # ^^^^
1243
+ def visit_pinned_variable_node(node)
1244
+ if node.variable.is_a?(LocalVariableReadNode) && node.variable.name.match?(/^_\d$/)
1245
+ s(node, :lvar, node.variable.name)
1246
+ else
1247
+ visit(node.variable)
1248
+ end
1249
+ end
1250
+
1251
+ # END {}
1252
+ def visit_post_execution_node(node)
1253
+ s(node, :iter, s(node, :postexe), 0, visit(node.statements))
1254
+ end
1255
+
1256
+ # BEGIN {}
1257
+ def visit_pre_execution_node(node)
1258
+ s(node, :iter, s(node, :preexe), 0, visit(node.statements))
1259
+ end
1260
+
1261
+ # The top-level program node.
1262
+ def visit_program_node(node)
1263
+ visit(node.statements)
1264
+ end
1265
+
1266
+ # 0..5
1267
+ # ^^^^
1268
+ def visit_range_node(node)
1269
+ if !in_pattern && !node.left.nil? && !node.right.nil? && ([node.left.type, node.right.type] - %i[nil_node integer_node]).empty?
1270
+ left = node.left.value if node.left.is_a?(IntegerNode)
1271
+ right = node.right.value if node.right.is_a?(IntegerNode)
1272
+ s(node, :lit, Range.new(left, right, node.exclude_end?))
1273
+ else
1274
+ s(node, node.exclude_end? ? :dot3 : :dot2, visit_range_bounds_node(node.left), visit_range_bounds_node(node.right))
1275
+ end
1276
+ end
1277
+
1278
+ # If the bounds of a range node are empty parentheses, then they do not
1279
+ # get replaced by their usual s(:nil), but instead are s(:begin).
1280
+ private def visit_range_bounds_node(node)
1281
+ if node.is_a?(ParenthesesNode) && node.body.nil?
1282
+ s(node, :begin)
1283
+ else
1284
+ visit(node)
1285
+ end
1286
+ end
1287
+
1288
+ # 1r
1289
+ # ^^
1290
+ def visit_rational_node(node)
1291
+ s(node, :lit, node.value)
1292
+ end
1293
+
1294
+ # redo
1295
+ # ^^^^
1296
+ def visit_redo_node(node)
1297
+ s(node, :redo)
1298
+ end
1299
+
1300
+ # /foo/
1301
+ # ^^^^^
1302
+ def visit_regular_expression_node(node)
1303
+ s(node, :lit, Regexp.new(node.unescaped, node.options))
1304
+ end
1305
+
1306
+ # def foo(bar:); end
1307
+ # ^^^^
1308
+ def visit_required_keyword_parameter_node(node)
1309
+ s(node, :kwarg, node.name)
1310
+ end
1311
+
1312
+ # def foo(bar); end
1313
+ # ^^^
1314
+ def visit_required_parameter_node(node)
1315
+ node.name
1316
+ end
1317
+
1318
+ # foo rescue bar
1319
+ # ^^^^^^^^^^^^^^
1320
+ def visit_rescue_modifier_node(node)
1321
+ s(node, :rescue, visit(node.expression), s(node.rescue_expression, :resbody, s(node.rescue_expression, :array), visit(node.rescue_expression)))
1322
+ end
1323
+
1324
+ # begin; rescue; end
1325
+ # ^^^^^^^
1326
+ def visit_rescue_node(node)
1327
+ exceptions =
1328
+ if node.exceptions.length == 1 && node.exceptions.first.is_a?(SplatNode)
1329
+ visit(node.exceptions.first)
1330
+ else
1331
+ s(node, :array).concat(visit_all(node.exceptions))
1332
+ end
1333
+
1334
+ if !node.reference.nil?
1335
+ exceptions << (visit(node.reference) << s(node.reference, :gvar, :"$!"))
1336
+ end
1337
+
1338
+ s(node, :resbody, exceptions).concat(node.statements.nil? ? [nil] : visit_all(node.statements.body))
1339
+ end
1340
+
1341
+ # def foo(*bar); end
1342
+ # ^^^^
1343
+ #
1344
+ # def foo(*); end
1345
+ # ^
1346
+ def visit_rest_parameter_node(node)
1347
+ :"*#{node.name}"
1348
+ end
1349
+
1350
+ # retry
1351
+ # ^^^^^
1352
+ def visit_retry_node(node)
1353
+ s(node, :retry)
1354
+ end
1355
+
1356
+ # return
1357
+ # ^^^^^^
1358
+ #
1359
+ # return 1
1360
+ # ^^^^^^^^
1361
+ def visit_return_node(node)
1362
+ if node.arguments.nil?
1363
+ s(node, :return)
1364
+ elsif node.arguments.arguments.length == 1
1365
+ argument = node.arguments.arguments.first
1366
+ s(node, :return, argument.is_a?(SplatNode) ? s(node, :svalue, visit(argument)) : visit(argument))
1367
+ else
1368
+ s(node, :return, s(node, :array).concat(visit_all(node.arguments.arguments)))
1369
+ end
1370
+ end
1371
+
1372
+ # self
1373
+ # ^^^^
1374
+ def visit_self_node(node)
1375
+ s(node, :self)
1376
+ end
1377
+
1378
+ # A shareable constant.
1379
+ def visit_shareable_constant_node(node)
1380
+ visit(node.write)
1381
+ end
1382
+
1383
+ # class << self; end
1384
+ # ^^^^^^^^^^^^^^^^^^
1385
+ def visit_singleton_class_node(node)
1386
+ s(node, :sclass, visit(node.expression)).tap do |sexp|
1387
+ sexp << node.body.accept(copy_compiler(in_def: false)) unless node.body.nil?
1388
+ end
1389
+ end
1390
+
1391
+ # __ENCODING__
1392
+ # ^^^^^^^^^^^^
1393
+ def visit_source_encoding_node(node)
1394
+ # TODO
1395
+ s(node, :colon2, s(node, :const, :Encoding), :UTF_8)
1396
+ end
1397
+
1398
+ # __FILE__
1399
+ # ^^^^^^^^
1400
+ def visit_source_file_node(node)
1401
+ s(node, :str, node.filepath)
1402
+ end
1403
+
1404
+ # __LINE__
1405
+ # ^^^^^^^^
1406
+ def visit_source_line_node(node)
1407
+ s(node, :lit, node.location.start_line)
1408
+ end
1409
+
1410
+ # foo(*bar)
1411
+ # ^^^^
1412
+ #
1413
+ # def foo((bar, *baz)); end
1414
+ # ^^^^
1415
+ #
1416
+ # def foo(*); bar(*); end
1417
+ # ^
1418
+ def visit_splat_node(node)
1419
+ if node.expression.nil?
1420
+ s(node, :splat)
1421
+ else
1422
+ s(node, :splat, visit(node.expression))
1423
+ end
1424
+ end
1425
+
1426
+ # A list of statements.
1427
+ def visit_statements_node(node)
1428
+ first, *rest = node.body
1429
+
1430
+ if rest.empty?
1431
+ visit(first)
1432
+ else
1433
+ s(node, :block).concat(visit_all(node.body))
1434
+ end
1435
+ end
1436
+
1437
+ # "foo"
1438
+ # ^^^^^
1439
+ def visit_string_node(node)
1440
+ unescaped = node.unescaped
1441
+
1442
+ if node.forced_binary_encoding?
1443
+ unescaped = unescaped.dup
1444
+ unescaped.force_encoding(Encoding::BINARY)
1445
+ end
1446
+
1447
+ s(node, :str, unescaped)
1448
+ end
1449
+
1450
+ # super(foo)
1451
+ # ^^^^^^^^^^
1452
+ def visit_super_node(node)
1453
+ arguments = node.arguments&.arguments || []
1454
+ block = node.block
1455
+
1456
+ if block.is_a?(BlockArgumentNode)
1457
+ arguments << block
1458
+ block = nil
1459
+ end
1460
+
1461
+ visit_block(node, s(node, :super).concat(visit_all(arguments)), block)
1462
+ end
1463
+
1464
+ # :foo
1465
+ # ^^^^
1466
+ def visit_symbol_node(node)
1467
+ node.value == "!@" ? s(node, :lit, :"!@") : s(node, :lit, node.unescaped.to_sym)
1468
+ end
1469
+
1470
+ # true
1471
+ # ^^^^
1472
+ def visit_true_node(node)
1473
+ s(node, :true)
1474
+ end
1475
+
1476
+ # undef foo
1477
+ # ^^^^^^^^^
1478
+ def visit_undef_node(node)
1479
+ names = node.names.map { |name| s(node, :undef, visit(name)) }
1480
+ names.length == 1 ? names.first : s(node, :block).concat(names)
1481
+ end
1482
+
1483
+ # unless foo; bar end
1484
+ # ^^^^^^^^^^^^^^^^^^^
1485
+ #
1486
+ # bar unless foo
1487
+ # ^^^^^^^^^^^^^^
1488
+ def visit_unless_node(node)
1489
+ s(node, :if, visit(node.predicate), visit(node.else_clause), visit(node.statements))
1490
+ end
1491
+
1492
+ # until foo; bar end
1493
+ # ^^^^^^^^^^^^^^^^^
1494
+ #
1495
+ # bar until foo
1496
+ # ^^^^^^^^^^^^^
1497
+ def visit_until_node(node)
1498
+ s(node, :until, visit(node.predicate), visit(node.statements), !node.begin_modifier?)
1499
+ end
1500
+
1501
+ # case foo; when bar; end
1502
+ # ^^^^^^^^^^^^^
1503
+ def visit_when_node(node)
1504
+ s(node, :when, s(node, :array).concat(visit_all(node.conditions))).concat(node.statements.nil? ? [nil] : visit_all(node.statements.body))
1505
+ end
1506
+
1507
+ # while foo; bar end
1508
+ # ^^^^^^^^^^^^^^^^^^
1509
+ #
1510
+ # bar while foo
1511
+ # ^^^^^^^^^^^^^
1512
+ def visit_while_node(node)
1513
+ s(node, :while, visit(node.predicate), visit(node.statements), !node.begin_modifier?)
1514
+ end
1515
+
1516
+ # `foo`
1517
+ # ^^^^^
1518
+ def visit_x_string_node(node)
1519
+ result = s(node, :xstr, node.unescaped)
1520
+
1521
+ if node.heredoc?
1522
+ result.line = node.content_loc.start_line
1523
+ result.line_max = node.content_loc.end_line
1524
+ end
1525
+
1526
+ result
1527
+ end
1528
+
1529
+ # yield
1530
+ # ^^^^^
1531
+ #
1532
+ # yield 1
1533
+ # ^^^^^^^
1534
+ def visit_yield_node(node)
1535
+ s(node, :yield).concat(visit_all(node.arguments&.arguments || []))
1536
+ end
1537
+
1538
+ private
1539
+
1540
+ # Create a new compiler with the given options.
1541
+ def copy_compiler(in_def: self.in_def, in_pattern: self.in_pattern)
1542
+ Compiler.new(file, in_def: in_def, in_pattern: in_pattern)
1543
+ end
1544
+
1545
+ # Create a new Sexp object from the given prism node and arguments.
1546
+ def s(node, *arguments)
1547
+ result = Sexp.new(*arguments)
1548
+ result.file = file
1549
+ result.line = node.location.start_line
1550
+ result.line_max = node.location.end_line
1551
+ result
1552
+ end
1553
+
1554
+ # Visit a block node, which will modify the AST by wrapping the given
1555
+ # visited node in an iter node.
1556
+ def visit_block(node, sexp, block)
1557
+ if block.nil?
1558
+ sexp
1559
+ else
1560
+ parameters =
1561
+ case block.parameters
1562
+ when nil, ItParametersNode, NumberedParametersNode
1563
+ 0
1564
+ else
1565
+ visit(block.parameters)
1566
+ end
1567
+
1568
+ if block.body.nil?
1569
+ s(node, :iter, sexp, parameters)
1570
+ else
1571
+ s(node, :iter, sexp, parameters, visit(block.body))
1572
+ end
1573
+ end
1574
+ end
1575
+
1576
+ # Pattern constants get wrapped in another layer of :const.
1577
+ def visit_pattern_constant(node)
1578
+ case node
1579
+ when nil
1580
+ # nothing
1581
+ when ConstantReadNode
1582
+ visit(node)
1583
+ else
1584
+ s(node, :const, visit(node))
1585
+ end
1586
+ end
1587
+
1588
+ # Visit the value of a write, which will be on the right-hand side of
1589
+ # a write operator. Because implicit arrays can have splats, those could
1590
+ # potentially be wrapped in an svalue node.
1591
+ def visit_write_value(node)
1592
+ if node.is_a?(ArrayNode) && node.opening_loc.nil?
1593
+ if node.elements.length == 1 && node.elements.first.is_a?(SplatNode)
1594
+ s(node, :svalue, visit(node.elements.first))
1595
+ else
1596
+ s(node, :svalue, visit(node))
1597
+ end
1598
+ else
1599
+ visit(node)
1600
+ end
1601
+ end
1602
+ end
1603
+
1604
+ private_constant :Compiler
1605
+
1606
+ # Parse the given source and translate it into the seattlerb/ruby_parser
1607
+ # gem's Sexp format.
1608
+ def parse(source, filepath = "(string)")
1609
+ translate(Prism.parse(source, filepath: filepath, partial_script: true), filepath)
1610
+ end
1611
+
1612
+ # Parse the given file and translate it into the seattlerb/ruby_parser
1613
+ # gem's Sexp format.
1614
+ def parse_file(filepath)
1615
+ translate(Prism.parse_file(filepath, partial_script: true), filepath)
1616
+ end
1617
+
1618
+ class << self
1619
+ # Parse the given source and translate it into the seattlerb/ruby_parser
1620
+ # gem's Sexp format.
1621
+ def parse(source, filepath = "(string)")
1622
+ new.parse(source, filepath)
1623
+ end
1624
+
1625
+ # Parse the given file and translate it into the seattlerb/ruby_parser
1626
+ # gem's Sexp format.
1627
+ def parse_file(filepath)
1628
+ new.parse_file(filepath)
1629
+ end
1630
+ end
1631
+
1632
+ private
1633
+
1634
+ # Translate the given parse result and filepath into the
1635
+ # seattlerb/ruby_parser gem's Sexp format.
1636
+ def translate(result, filepath)
1637
+ if result.failure?
1638
+ error = result.errors.first
1639
+ raise ::RubyParser::SyntaxError, "#{filepath}:#{error.location.start_line} :: #{error.message}"
1640
+ end
1641
+
1642
+ result.value.accept(Compiler.new(filepath))
1643
+ end
1644
+ end
1645
+ end
1646
+ end