@appthreat/atom-parsetools 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,2266 @@
1
+ /*----------------------------------------------------------------------------*/
2
+ /* This file is generated by the templates/template.rb script and should not */
3
+ /* be modified manually. See */
4
+ /* templates/src/serialize.c.erb */
5
+ /* if you are looking to modify the */
6
+ /* template */
7
+ /*----------------------------------------------------------------------------*/
8
+
9
+ #include "prism.h"
10
+
11
+ // We optionally support serializing to a binary string. For systems that don't
12
+ // want or need this functionality, it can be turned off with the
13
+ // PRISM_EXCLUDE_SERIALIZATION define.
14
+ #ifndef PRISM_EXCLUDE_SERIALIZATION
15
+
16
+ #include <stdio.h>
17
+
18
+ static inline uint32_t
19
+ pm_ptrdifft_to_u32(ptrdiff_t value) {
20
+ assert(value >= 0 && ((unsigned long) value) < UINT32_MAX);
21
+ return (uint32_t) value;
22
+ }
23
+
24
+ static inline uint32_t
25
+ pm_sizet_to_u32(size_t value) {
26
+ assert(value < UINT32_MAX);
27
+ return (uint32_t) value;
28
+ }
29
+
30
+ static void
31
+ pm_serialize_location(const pm_parser_t *parser, const pm_location_t *location, pm_buffer_t *buffer) {
32
+ assert(location->start);
33
+ assert(location->end);
34
+ assert(location->start <= location->end);
35
+
36
+ pm_buffer_append_varuint(buffer, pm_ptrdifft_to_u32(location->start - parser->start));
37
+ pm_buffer_append_varuint(buffer, pm_ptrdifft_to_u32(location->end - location->start));
38
+ }
39
+
40
+ static void
41
+ pm_serialize_string(const pm_parser_t *parser, const pm_string_t *string, pm_buffer_t *buffer) {
42
+ switch (string->type) {
43
+ case PM_STRING_SHARED: {
44
+ pm_buffer_append_byte(buffer, 1);
45
+ pm_buffer_append_varuint(buffer, pm_ptrdifft_to_u32(pm_string_source(string) - parser->start));
46
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(pm_string_length(string)));
47
+ break;
48
+ }
49
+ case PM_STRING_OWNED:
50
+ case PM_STRING_CONSTANT: {
51
+ uint32_t length = pm_sizet_to_u32(pm_string_length(string));
52
+ pm_buffer_append_byte(buffer, 2);
53
+ pm_buffer_append_varuint(buffer, length);
54
+ pm_buffer_append_bytes(buffer, pm_string_source(string), length);
55
+ break;
56
+ }
57
+ #ifdef PRISM_HAS_MMAP
58
+ case PM_STRING_MAPPED:
59
+ assert(false && "Cannot serialize mapped strings.");
60
+ break;
61
+ #endif
62
+ }
63
+ }
64
+
65
+ static void
66
+ pm_serialize_integer(const pm_integer_t *integer, pm_buffer_t *buffer) {
67
+ pm_buffer_append_byte(buffer, integer->negative ? 1 : 0);
68
+ if (integer->values == NULL) {
69
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(1));
70
+ pm_buffer_append_varuint(buffer, integer->value);
71
+ } else {
72
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(integer->length));
73
+ for (size_t i = 0; i < integer->length; i++) {
74
+ pm_buffer_append_varuint(buffer, integer->values[i]);
75
+ }
76
+ }
77
+ }
78
+
79
+ static void
80
+ pm_serialize_node(pm_parser_t *parser, pm_node_t *node, pm_buffer_t *buffer) {
81
+ pm_buffer_append_byte(buffer, (uint8_t) PM_NODE_TYPE(node));
82
+
83
+ size_t offset = buffer->length;
84
+
85
+ pm_buffer_append_varuint(buffer, node->node_id);
86
+ pm_serialize_location(parser, &node->location, buffer);
87
+
88
+ switch (PM_NODE_TYPE(node)) {
89
+ // We do not need to serialize a ScopeNode ever as
90
+ // it is not part of the AST
91
+ case PM_SCOPE_NODE:
92
+ return;
93
+ case PM_ALIAS_GLOBAL_VARIABLE_NODE: {
94
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
95
+ pm_serialize_node(parser, (pm_node_t *)((pm_alias_global_variable_node_t *)node)->new_name, buffer);
96
+ pm_serialize_node(parser, (pm_node_t *)((pm_alias_global_variable_node_t *)node)->old_name, buffer);
97
+ pm_serialize_location(parser, &((pm_alias_global_variable_node_t *)node)->keyword_loc, buffer);
98
+ break;
99
+ }
100
+ case PM_ALIAS_METHOD_NODE: {
101
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
102
+ pm_serialize_node(parser, (pm_node_t *)((pm_alias_method_node_t *)node)->new_name, buffer);
103
+ pm_serialize_node(parser, (pm_node_t *)((pm_alias_method_node_t *)node)->old_name, buffer);
104
+ pm_serialize_location(parser, &((pm_alias_method_node_t *)node)->keyword_loc, buffer);
105
+ break;
106
+ }
107
+ case PM_ALTERNATION_PATTERN_NODE: {
108
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
109
+ pm_serialize_node(parser, (pm_node_t *)((pm_alternation_pattern_node_t *)node)->left, buffer);
110
+ pm_serialize_node(parser, (pm_node_t *)((pm_alternation_pattern_node_t *)node)->right, buffer);
111
+ pm_serialize_location(parser, &((pm_alternation_pattern_node_t *)node)->operator_loc, buffer);
112
+ break;
113
+ }
114
+ case PM_AND_NODE: {
115
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
116
+ pm_serialize_node(parser, (pm_node_t *)((pm_and_node_t *)node)->left, buffer);
117
+ pm_serialize_node(parser, (pm_node_t *)((pm_and_node_t *)node)->right, buffer);
118
+ pm_serialize_location(parser, &((pm_and_node_t *)node)->operator_loc, buffer);
119
+ break;
120
+ }
121
+ case PM_ARGUMENTS_NODE: {
122
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
123
+ uint32_t arguments_size = pm_sizet_to_u32(((pm_arguments_node_t *)node)->arguments.size);
124
+ pm_buffer_append_varuint(buffer, arguments_size);
125
+ for (uint32_t index = 0; index < arguments_size; index++) {
126
+ pm_serialize_node(parser, (pm_node_t *) ((pm_arguments_node_t *)node)->arguments.nodes[index], buffer);
127
+ }
128
+ break;
129
+ }
130
+ case PM_ARRAY_NODE: {
131
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
132
+ uint32_t elements_size = pm_sizet_to_u32(((pm_array_node_t *)node)->elements.size);
133
+ pm_buffer_append_varuint(buffer, elements_size);
134
+ for (uint32_t index = 0; index < elements_size; index++) {
135
+ pm_serialize_node(parser, (pm_node_t *) ((pm_array_node_t *)node)->elements.nodes[index], buffer);
136
+ }
137
+ if (((pm_array_node_t *)node)->opening_loc.start == NULL) {
138
+ pm_buffer_append_byte(buffer, 0);
139
+ } else {
140
+ pm_buffer_append_byte(buffer, 1);
141
+ pm_serialize_location(parser, &((pm_array_node_t *)node)->opening_loc, buffer);
142
+ }
143
+ if (((pm_array_node_t *)node)->closing_loc.start == NULL) {
144
+ pm_buffer_append_byte(buffer, 0);
145
+ } else {
146
+ pm_buffer_append_byte(buffer, 1);
147
+ pm_serialize_location(parser, &((pm_array_node_t *)node)->closing_loc, buffer);
148
+ }
149
+ break;
150
+ }
151
+ case PM_ARRAY_PATTERN_NODE: {
152
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
153
+ if (((pm_array_pattern_node_t *)node)->constant == NULL) {
154
+ pm_buffer_append_byte(buffer, 0);
155
+ } else {
156
+ pm_serialize_node(parser, (pm_node_t *)((pm_array_pattern_node_t *)node)->constant, buffer);
157
+ }
158
+ uint32_t requireds_size = pm_sizet_to_u32(((pm_array_pattern_node_t *)node)->requireds.size);
159
+ pm_buffer_append_varuint(buffer, requireds_size);
160
+ for (uint32_t index = 0; index < requireds_size; index++) {
161
+ pm_serialize_node(parser, (pm_node_t *) ((pm_array_pattern_node_t *)node)->requireds.nodes[index], buffer);
162
+ }
163
+ if (((pm_array_pattern_node_t *)node)->rest == NULL) {
164
+ pm_buffer_append_byte(buffer, 0);
165
+ } else {
166
+ pm_serialize_node(parser, (pm_node_t *)((pm_array_pattern_node_t *)node)->rest, buffer);
167
+ }
168
+ uint32_t posts_size = pm_sizet_to_u32(((pm_array_pattern_node_t *)node)->posts.size);
169
+ pm_buffer_append_varuint(buffer, posts_size);
170
+ for (uint32_t index = 0; index < posts_size; index++) {
171
+ pm_serialize_node(parser, (pm_node_t *) ((pm_array_pattern_node_t *)node)->posts.nodes[index], buffer);
172
+ }
173
+ if (((pm_array_pattern_node_t *)node)->opening_loc.start == NULL) {
174
+ pm_buffer_append_byte(buffer, 0);
175
+ } else {
176
+ pm_buffer_append_byte(buffer, 1);
177
+ pm_serialize_location(parser, &((pm_array_pattern_node_t *)node)->opening_loc, buffer);
178
+ }
179
+ if (((pm_array_pattern_node_t *)node)->closing_loc.start == NULL) {
180
+ pm_buffer_append_byte(buffer, 0);
181
+ } else {
182
+ pm_buffer_append_byte(buffer, 1);
183
+ pm_serialize_location(parser, &((pm_array_pattern_node_t *)node)->closing_loc, buffer);
184
+ }
185
+ break;
186
+ }
187
+ case PM_ASSOC_NODE: {
188
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
189
+ pm_serialize_node(parser, (pm_node_t *)((pm_assoc_node_t *)node)->key, buffer);
190
+ pm_serialize_node(parser, (pm_node_t *)((pm_assoc_node_t *)node)->value, buffer);
191
+ if (((pm_assoc_node_t *)node)->operator_loc.start == NULL) {
192
+ pm_buffer_append_byte(buffer, 0);
193
+ } else {
194
+ pm_buffer_append_byte(buffer, 1);
195
+ pm_serialize_location(parser, &((pm_assoc_node_t *)node)->operator_loc, buffer);
196
+ }
197
+ break;
198
+ }
199
+ case PM_ASSOC_SPLAT_NODE: {
200
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
201
+ if (((pm_assoc_splat_node_t *)node)->value == NULL) {
202
+ pm_buffer_append_byte(buffer, 0);
203
+ } else {
204
+ pm_serialize_node(parser, (pm_node_t *)((pm_assoc_splat_node_t *)node)->value, buffer);
205
+ }
206
+ pm_serialize_location(parser, &((pm_assoc_splat_node_t *)node)->operator_loc, buffer);
207
+ break;
208
+ }
209
+ case PM_BACK_REFERENCE_READ_NODE: {
210
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
211
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_back_reference_read_node_t *)node)->name));
212
+ break;
213
+ }
214
+ case PM_BEGIN_NODE: {
215
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
216
+ if (((pm_begin_node_t *)node)->begin_keyword_loc.start == NULL) {
217
+ pm_buffer_append_byte(buffer, 0);
218
+ } else {
219
+ pm_buffer_append_byte(buffer, 1);
220
+ pm_serialize_location(parser, &((pm_begin_node_t *)node)->begin_keyword_loc, buffer);
221
+ }
222
+ if (((pm_begin_node_t *)node)->statements == NULL) {
223
+ pm_buffer_append_byte(buffer, 0);
224
+ } else {
225
+ pm_serialize_node(parser, (pm_node_t *)((pm_begin_node_t *)node)->statements, buffer);
226
+ }
227
+ if (((pm_begin_node_t *)node)->rescue_clause == NULL) {
228
+ pm_buffer_append_byte(buffer, 0);
229
+ } else {
230
+ pm_serialize_node(parser, (pm_node_t *)((pm_begin_node_t *)node)->rescue_clause, buffer);
231
+ }
232
+ if (((pm_begin_node_t *)node)->else_clause == NULL) {
233
+ pm_buffer_append_byte(buffer, 0);
234
+ } else {
235
+ pm_serialize_node(parser, (pm_node_t *)((pm_begin_node_t *)node)->else_clause, buffer);
236
+ }
237
+ if (((pm_begin_node_t *)node)->ensure_clause == NULL) {
238
+ pm_buffer_append_byte(buffer, 0);
239
+ } else {
240
+ pm_serialize_node(parser, (pm_node_t *)((pm_begin_node_t *)node)->ensure_clause, buffer);
241
+ }
242
+ if (((pm_begin_node_t *)node)->end_keyword_loc.start == NULL) {
243
+ pm_buffer_append_byte(buffer, 0);
244
+ } else {
245
+ pm_buffer_append_byte(buffer, 1);
246
+ pm_serialize_location(parser, &((pm_begin_node_t *)node)->end_keyword_loc, buffer);
247
+ }
248
+ break;
249
+ }
250
+ case PM_BLOCK_ARGUMENT_NODE: {
251
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
252
+ if (((pm_block_argument_node_t *)node)->expression == NULL) {
253
+ pm_buffer_append_byte(buffer, 0);
254
+ } else {
255
+ pm_serialize_node(parser, (pm_node_t *)((pm_block_argument_node_t *)node)->expression, buffer);
256
+ }
257
+ pm_serialize_location(parser, &((pm_block_argument_node_t *)node)->operator_loc, buffer);
258
+ break;
259
+ }
260
+ case PM_BLOCK_LOCAL_VARIABLE_NODE: {
261
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
262
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_block_local_variable_node_t *)node)->name));
263
+ break;
264
+ }
265
+ case PM_BLOCK_NODE: {
266
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
267
+ uint32_t locals_size = pm_sizet_to_u32(((pm_block_node_t *)node)->locals.size);
268
+ pm_buffer_append_varuint(buffer, locals_size);
269
+ for (uint32_t index = 0; index < locals_size; index++) {
270
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_block_node_t *)node)->locals.ids[index]));
271
+ }
272
+ if (((pm_block_node_t *)node)->parameters == NULL) {
273
+ pm_buffer_append_byte(buffer, 0);
274
+ } else {
275
+ pm_serialize_node(parser, (pm_node_t *)((pm_block_node_t *)node)->parameters, buffer);
276
+ }
277
+ if (((pm_block_node_t *)node)->body == NULL) {
278
+ pm_buffer_append_byte(buffer, 0);
279
+ } else {
280
+ pm_serialize_node(parser, (pm_node_t *)((pm_block_node_t *)node)->body, buffer);
281
+ }
282
+ pm_serialize_location(parser, &((pm_block_node_t *)node)->opening_loc, buffer);
283
+ pm_serialize_location(parser, &((pm_block_node_t *)node)->closing_loc, buffer);
284
+ break;
285
+ }
286
+ case PM_BLOCK_PARAMETER_NODE: {
287
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
288
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_block_parameter_node_t *)node)->name));
289
+ if (((pm_block_parameter_node_t *)node)->name_loc.start == NULL) {
290
+ pm_buffer_append_byte(buffer, 0);
291
+ } else {
292
+ pm_buffer_append_byte(buffer, 1);
293
+ pm_serialize_location(parser, &((pm_block_parameter_node_t *)node)->name_loc, buffer);
294
+ }
295
+ pm_serialize_location(parser, &((pm_block_parameter_node_t *)node)->operator_loc, buffer);
296
+ break;
297
+ }
298
+ case PM_BLOCK_PARAMETERS_NODE: {
299
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
300
+ if (((pm_block_parameters_node_t *)node)->parameters == NULL) {
301
+ pm_buffer_append_byte(buffer, 0);
302
+ } else {
303
+ pm_serialize_node(parser, (pm_node_t *)((pm_block_parameters_node_t *)node)->parameters, buffer);
304
+ }
305
+ uint32_t locals_size = pm_sizet_to_u32(((pm_block_parameters_node_t *)node)->locals.size);
306
+ pm_buffer_append_varuint(buffer, locals_size);
307
+ for (uint32_t index = 0; index < locals_size; index++) {
308
+ pm_serialize_node(parser, (pm_node_t *) ((pm_block_parameters_node_t *)node)->locals.nodes[index], buffer);
309
+ }
310
+ if (((pm_block_parameters_node_t *)node)->opening_loc.start == NULL) {
311
+ pm_buffer_append_byte(buffer, 0);
312
+ } else {
313
+ pm_buffer_append_byte(buffer, 1);
314
+ pm_serialize_location(parser, &((pm_block_parameters_node_t *)node)->opening_loc, buffer);
315
+ }
316
+ if (((pm_block_parameters_node_t *)node)->closing_loc.start == NULL) {
317
+ pm_buffer_append_byte(buffer, 0);
318
+ } else {
319
+ pm_buffer_append_byte(buffer, 1);
320
+ pm_serialize_location(parser, &((pm_block_parameters_node_t *)node)->closing_loc, buffer);
321
+ }
322
+ break;
323
+ }
324
+ case PM_BREAK_NODE: {
325
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
326
+ if (((pm_break_node_t *)node)->arguments == NULL) {
327
+ pm_buffer_append_byte(buffer, 0);
328
+ } else {
329
+ pm_serialize_node(parser, (pm_node_t *)((pm_break_node_t *)node)->arguments, buffer);
330
+ }
331
+ pm_serialize_location(parser, &((pm_break_node_t *)node)->keyword_loc, buffer);
332
+ break;
333
+ }
334
+ case PM_CALL_AND_WRITE_NODE: {
335
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
336
+ if (((pm_call_and_write_node_t *)node)->receiver == NULL) {
337
+ pm_buffer_append_byte(buffer, 0);
338
+ } else {
339
+ pm_serialize_node(parser, (pm_node_t *)((pm_call_and_write_node_t *)node)->receiver, buffer);
340
+ }
341
+ if (((pm_call_and_write_node_t *)node)->call_operator_loc.start == NULL) {
342
+ pm_buffer_append_byte(buffer, 0);
343
+ } else {
344
+ pm_buffer_append_byte(buffer, 1);
345
+ pm_serialize_location(parser, &((pm_call_and_write_node_t *)node)->call_operator_loc, buffer);
346
+ }
347
+ if (((pm_call_and_write_node_t *)node)->message_loc.start == NULL) {
348
+ pm_buffer_append_byte(buffer, 0);
349
+ } else {
350
+ pm_buffer_append_byte(buffer, 1);
351
+ pm_serialize_location(parser, &((pm_call_and_write_node_t *)node)->message_loc, buffer);
352
+ }
353
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_call_and_write_node_t *)node)->read_name));
354
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_call_and_write_node_t *)node)->write_name));
355
+ pm_serialize_location(parser, &((pm_call_and_write_node_t *)node)->operator_loc, buffer);
356
+ pm_serialize_node(parser, (pm_node_t *)((pm_call_and_write_node_t *)node)->value, buffer);
357
+ break;
358
+ }
359
+ case PM_CALL_NODE: {
360
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
361
+ if (((pm_call_node_t *)node)->receiver == NULL) {
362
+ pm_buffer_append_byte(buffer, 0);
363
+ } else {
364
+ pm_serialize_node(parser, (pm_node_t *)((pm_call_node_t *)node)->receiver, buffer);
365
+ }
366
+ if (((pm_call_node_t *)node)->call_operator_loc.start == NULL) {
367
+ pm_buffer_append_byte(buffer, 0);
368
+ } else {
369
+ pm_buffer_append_byte(buffer, 1);
370
+ pm_serialize_location(parser, &((pm_call_node_t *)node)->call_operator_loc, buffer);
371
+ }
372
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_call_node_t *)node)->name));
373
+ if (((pm_call_node_t *)node)->message_loc.start == NULL) {
374
+ pm_buffer_append_byte(buffer, 0);
375
+ } else {
376
+ pm_buffer_append_byte(buffer, 1);
377
+ pm_serialize_location(parser, &((pm_call_node_t *)node)->message_loc, buffer);
378
+ }
379
+ if (((pm_call_node_t *)node)->opening_loc.start == NULL) {
380
+ pm_buffer_append_byte(buffer, 0);
381
+ } else {
382
+ pm_buffer_append_byte(buffer, 1);
383
+ pm_serialize_location(parser, &((pm_call_node_t *)node)->opening_loc, buffer);
384
+ }
385
+ if (((pm_call_node_t *)node)->arguments == NULL) {
386
+ pm_buffer_append_byte(buffer, 0);
387
+ } else {
388
+ pm_serialize_node(parser, (pm_node_t *)((pm_call_node_t *)node)->arguments, buffer);
389
+ }
390
+ if (((pm_call_node_t *)node)->closing_loc.start == NULL) {
391
+ pm_buffer_append_byte(buffer, 0);
392
+ } else {
393
+ pm_buffer_append_byte(buffer, 1);
394
+ pm_serialize_location(parser, &((pm_call_node_t *)node)->closing_loc, buffer);
395
+ }
396
+ if (((pm_call_node_t *)node)->block == NULL) {
397
+ pm_buffer_append_byte(buffer, 0);
398
+ } else {
399
+ pm_serialize_node(parser, (pm_node_t *)((pm_call_node_t *)node)->block, buffer);
400
+ }
401
+ break;
402
+ }
403
+ case PM_CALL_OPERATOR_WRITE_NODE: {
404
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
405
+ if (((pm_call_operator_write_node_t *)node)->receiver == NULL) {
406
+ pm_buffer_append_byte(buffer, 0);
407
+ } else {
408
+ pm_serialize_node(parser, (pm_node_t *)((pm_call_operator_write_node_t *)node)->receiver, buffer);
409
+ }
410
+ if (((pm_call_operator_write_node_t *)node)->call_operator_loc.start == NULL) {
411
+ pm_buffer_append_byte(buffer, 0);
412
+ } else {
413
+ pm_buffer_append_byte(buffer, 1);
414
+ pm_serialize_location(parser, &((pm_call_operator_write_node_t *)node)->call_operator_loc, buffer);
415
+ }
416
+ if (((pm_call_operator_write_node_t *)node)->message_loc.start == NULL) {
417
+ pm_buffer_append_byte(buffer, 0);
418
+ } else {
419
+ pm_buffer_append_byte(buffer, 1);
420
+ pm_serialize_location(parser, &((pm_call_operator_write_node_t *)node)->message_loc, buffer);
421
+ }
422
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_call_operator_write_node_t *)node)->read_name));
423
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_call_operator_write_node_t *)node)->write_name));
424
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_call_operator_write_node_t *)node)->binary_operator));
425
+ pm_serialize_location(parser, &((pm_call_operator_write_node_t *)node)->binary_operator_loc, buffer);
426
+ pm_serialize_node(parser, (pm_node_t *)((pm_call_operator_write_node_t *)node)->value, buffer);
427
+ break;
428
+ }
429
+ case PM_CALL_OR_WRITE_NODE: {
430
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
431
+ if (((pm_call_or_write_node_t *)node)->receiver == NULL) {
432
+ pm_buffer_append_byte(buffer, 0);
433
+ } else {
434
+ pm_serialize_node(parser, (pm_node_t *)((pm_call_or_write_node_t *)node)->receiver, buffer);
435
+ }
436
+ if (((pm_call_or_write_node_t *)node)->call_operator_loc.start == NULL) {
437
+ pm_buffer_append_byte(buffer, 0);
438
+ } else {
439
+ pm_buffer_append_byte(buffer, 1);
440
+ pm_serialize_location(parser, &((pm_call_or_write_node_t *)node)->call_operator_loc, buffer);
441
+ }
442
+ if (((pm_call_or_write_node_t *)node)->message_loc.start == NULL) {
443
+ pm_buffer_append_byte(buffer, 0);
444
+ } else {
445
+ pm_buffer_append_byte(buffer, 1);
446
+ pm_serialize_location(parser, &((pm_call_or_write_node_t *)node)->message_loc, buffer);
447
+ }
448
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_call_or_write_node_t *)node)->read_name));
449
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_call_or_write_node_t *)node)->write_name));
450
+ pm_serialize_location(parser, &((pm_call_or_write_node_t *)node)->operator_loc, buffer);
451
+ pm_serialize_node(parser, (pm_node_t *)((pm_call_or_write_node_t *)node)->value, buffer);
452
+ break;
453
+ }
454
+ case PM_CALL_TARGET_NODE: {
455
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
456
+ pm_serialize_node(parser, (pm_node_t *)((pm_call_target_node_t *)node)->receiver, buffer);
457
+ pm_serialize_location(parser, &((pm_call_target_node_t *)node)->call_operator_loc, buffer);
458
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_call_target_node_t *)node)->name));
459
+ pm_serialize_location(parser, &((pm_call_target_node_t *)node)->message_loc, buffer);
460
+ break;
461
+ }
462
+ case PM_CAPTURE_PATTERN_NODE: {
463
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
464
+ pm_serialize_node(parser, (pm_node_t *)((pm_capture_pattern_node_t *)node)->value, buffer);
465
+ pm_serialize_node(parser, (pm_node_t *)((pm_capture_pattern_node_t *)node)->target, buffer);
466
+ pm_serialize_location(parser, &((pm_capture_pattern_node_t *)node)->operator_loc, buffer);
467
+ break;
468
+ }
469
+ case PM_CASE_MATCH_NODE: {
470
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
471
+ if (((pm_case_match_node_t *)node)->predicate == NULL) {
472
+ pm_buffer_append_byte(buffer, 0);
473
+ } else {
474
+ pm_serialize_node(parser, (pm_node_t *)((pm_case_match_node_t *)node)->predicate, buffer);
475
+ }
476
+ uint32_t conditions_size = pm_sizet_to_u32(((pm_case_match_node_t *)node)->conditions.size);
477
+ pm_buffer_append_varuint(buffer, conditions_size);
478
+ for (uint32_t index = 0; index < conditions_size; index++) {
479
+ pm_serialize_node(parser, (pm_node_t *) ((pm_case_match_node_t *)node)->conditions.nodes[index], buffer);
480
+ }
481
+ if (((pm_case_match_node_t *)node)->else_clause == NULL) {
482
+ pm_buffer_append_byte(buffer, 0);
483
+ } else {
484
+ pm_serialize_node(parser, (pm_node_t *)((pm_case_match_node_t *)node)->else_clause, buffer);
485
+ }
486
+ pm_serialize_location(parser, &((pm_case_match_node_t *)node)->case_keyword_loc, buffer);
487
+ pm_serialize_location(parser, &((pm_case_match_node_t *)node)->end_keyword_loc, buffer);
488
+ break;
489
+ }
490
+ case PM_CASE_NODE: {
491
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
492
+ if (((pm_case_node_t *)node)->predicate == NULL) {
493
+ pm_buffer_append_byte(buffer, 0);
494
+ } else {
495
+ pm_serialize_node(parser, (pm_node_t *)((pm_case_node_t *)node)->predicate, buffer);
496
+ }
497
+ uint32_t conditions_size = pm_sizet_to_u32(((pm_case_node_t *)node)->conditions.size);
498
+ pm_buffer_append_varuint(buffer, conditions_size);
499
+ for (uint32_t index = 0; index < conditions_size; index++) {
500
+ pm_serialize_node(parser, (pm_node_t *) ((pm_case_node_t *)node)->conditions.nodes[index], buffer);
501
+ }
502
+ if (((pm_case_node_t *)node)->else_clause == NULL) {
503
+ pm_buffer_append_byte(buffer, 0);
504
+ } else {
505
+ pm_serialize_node(parser, (pm_node_t *)((pm_case_node_t *)node)->else_clause, buffer);
506
+ }
507
+ pm_serialize_location(parser, &((pm_case_node_t *)node)->case_keyword_loc, buffer);
508
+ pm_serialize_location(parser, &((pm_case_node_t *)node)->end_keyword_loc, buffer);
509
+ break;
510
+ }
511
+ case PM_CLASS_NODE: {
512
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
513
+ uint32_t locals_size = pm_sizet_to_u32(((pm_class_node_t *)node)->locals.size);
514
+ pm_buffer_append_varuint(buffer, locals_size);
515
+ for (uint32_t index = 0; index < locals_size; index++) {
516
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_class_node_t *)node)->locals.ids[index]));
517
+ }
518
+ pm_serialize_location(parser, &((pm_class_node_t *)node)->class_keyword_loc, buffer);
519
+ pm_serialize_node(parser, (pm_node_t *)((pm_class_node_t *)node)->constant_path, buffer);
520
+ if (((pm_class_node_t *)node)->inheritance_operator_loc.start == NULL) {
521
+ pm_buffer_append_byte(buffer, 0);
522
+ } else {
523
+ pm_buffer_append_byte(buffer, 1);
524
+ pm_serialize_location(parser, &((pm_class_node_t *)node)->inheritance_operator_loc, buffer);
525
+ }
526
+ if (((pm_class_node_t *)node)->superclass == NULL) {
527
+ pm_buffer_append_byte(buffer, 0);
528
+ } else {
529
+ pm_serialize_node(parser, (pm_node_t *)((pm_class_node_t *)node)->superclass, buffer);
530
+ }
531
+ if (((pm_class_node_t *)node)->body == NULL) {
532
+ pm_buffer_append_byte(buffer, 0);
533
+ } else {
534
+ pm_serialize_node(parser, (pm_node_t *)((pm_class_node_t *)node)->body, buffer);
535
+ }
536
+ pm_serialize_location(parser, &((pm_class_node_t *)node)->end_keyword_loc, buffer);
537
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_class_node_t *)node)->name));
538
+ break;
539
+ }
540
+ case PM_CLASS_VARIABLE_AND_WRITE_NODE: {
541
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
542
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_class_variable_and_write_node_t *)node)->name));
543
+ pm_serialize_location(parser, &((pm_class_variable_and_write_node_t *)node)->name_loc, buffer);
544
+ pm_serialize_location(parser, &((pm_class_variable_and_write_node_t *)node)->operator_loc, buffer);
545
+ pm_serialize_node(parser, (pm_node_t *)((pm_class_variable_and_write_node_t *)node)->value, buffer);
546
+ break;
547
+ }
548
+ case PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE: {
549
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
550
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_class_variable_operator_write_node_t *)node)->name));
551
+ pm_serialize_location(parser, &((pm_class_variable_operator_write_node_t *)node)->name_loc, buffer);
552
+ pm_serialize_location(parser, &((pm_class_variable_operator_write_node_t *)node)->binary_operator_loc, buffer);
553
+ pm_serialize_node(parser, (pm_node_t *)((pm_class_variable_operator_write_node_t *)node)->value, buffer);
554
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_class_variable_operator_write_node_t *)node)->binary_operator));
555
+ break;
556
+ }
557
+ case PM_CLASS_VARIABLE_OR_WRITE_NODE: {
558
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
559
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_class_variable_or_write_node_t *)node)->name));
560
+ pm_serialize_location(parser, &((pm_class_variable_or_write_node_t *)node)->name_loc, buffer);
561
+ pm_serialize_location(parser, &((pm_class_variable_or_write_node_t *)node)->operator_loc, buffer);
562
+ pm_serialize_node(parser, (pm_node_t *)((pm_class_variable_or_write_node_t *)node)->value, buffer);
563
+ break;
564
+ }
565
+ case PM_CLASS_VARIABLE_READ_NODE: {
566
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
567
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_class_variable_read_node_t *)node)->name));
568
+ break;
569
+ }
570
+ case PM_CLASS_VARIABLE_TARGET_NODE: {
571
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
572
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_class_variable_target_node_t *)node)->name));
573
+ break;
574
+ }
575
+ case PM_CLASS_VARIABLE_WRITE_NODE: {
576
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
577
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_class_variable_write_node_t *)node)->name));
578
+ pm_serialize_location(parser, &((pm_class_variable_write_node_t *)node)->name_loc, buffer);
579
+ pm_serialize_node(parser, (pm_node_t *)((pm_class_variable_write_node_t *)node)->value, buffer);
580
+ pm_serialize_location(parser, &((pm_class_variable_write_node_t *)node)->operator_loc, buffer);
581
+ break;
582
+ }
583
+ case PM_CONSTANT_AND_WRITE_NODE: {
584
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
585
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_constant_and_write_node_t *)node)->name));
586
+ pm_serialize_location(parser, &((pm_constant_and_write_node_t *)node)->name_loc, buffer);
587
+ pm_serialize_location(parser, &((pm_constant_and_write_node_t *)node)->operator_loc, buffer);
588
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_and_write_node_t *)node)->value, buffer);
589
+ break;
590
+ }
591
+ case PM_CONSTANT_OPERATOR_WRITE_NODE: {
592
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
593
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_constant_operator_write_node_t *)node)->name));
594
+ pm_serialize_location(parser, &((pm_constant_operator_write_node_t *)node)->name_loc, buffer);
595
+ pm_serialize_location(parser, &((pm_constant_operator_write_node_t *)node)->binary_operator_loc, buffer);
596
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_operator_write_node_t *)node)->value, buffer);
597
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_constant_operator_write_node_t *)node)->binary_operator));
598
+ break;
599
+ }
600
+ case PM_CONSTANT_OR_WRITE_NODE: {
601
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
602
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_constant_or_write_node_t *)node)->name));
603
+ pm_serialize_location(parser, &((pm_constant_or_write_node_t *)node)->name_loc, buffer);
604
+ pm_serialize_location(parser, &((pm_constant_or_write_node_t *)node)->operator_loc, buffer);
605
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_or_write_node_t *)node)->value, buffer);
606
+ break;
607
+ }
608
+ case PM_CONSTANT_PATH_AND_WRITE_NODE: {
609
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
610
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_path_and_write_node_t *)node)->target, buffer);
611
+ pm_serialize_location(parser, &((pm_constant_path_and_write_node_t *)node)->operator_loc, buffer);
612
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_path_and_write_node_t *)node)->value, buffer);
613
+ break;
614
+ }
615
+ case PM_CONSTANT_PATH_NODE: {
616
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
617
+ if (((pm_constant_path_node_t *)node)->parent == NULL) {
618
+ pm_buffer_append_byte(buffer, 0);
619
+ } else {
620
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_path_node_t *)node)->parent, buffer);
621
+ }
622
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_constant_path_node_t *)node)->name));
623
+ pm_serialize_location(parser, &((pm_constant_path_node_t *)node)->delimiter_loc, buffer);
624
+ pm_serialize_location(parser, &((pm_constant_path_node_t *)node)->name_loc, buffer);
625
+ break;
626
+ }
627
+ case PM_CONSTANT_PATH_OPERATOR_WRITE_NODE: {
628
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
629
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_path_operator_write_node_t *)node)->target, buffer);
630
+ pm_serialize_location(parser, &((pm_constant_path_operator_write_node_t *)node)->binary_operator_loc, buffer);
631
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_path_operator_write_node_t *)node)->value, buffer);
632
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_constant_path_operator_write_node_t *)node)->binary_operator));
633
+ break;
634
+ }
635
+ case PM_CONSTANT_PATH_OR_WRITE_NODE: {
636
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
637
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_path_or_write_node_t *)node)->target, buffer);
638
+ pm_serialize_location(parser, &((pm_constant_path_or_write_node_t *)node)->operator_loc, buffer);
639
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_path_or_write_node_t *)node)->value, buffer);
640
+ break;
641
+ }
642
+ case PM_CONSTANT_PATH_TARGET_NODE: {
643
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
644
+ if (((pm_constant_path_target_node_t *)node)->parent == NULL) {
645
+ pm_buffer_append_byte(buffer, 0);
646
+ } else {
647
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_path_target_node_t *)node)->parent, buffer);
648
+ }
649
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_constant_path_target_node_t *)node)->name));
650
+ pm_serialize_location(parser, &((pm_constant_path_target_node_t *)node)->delimiter_loc, buffer);
651
+ pm_serialize_location(parser, &((pm_constant_path_target_node_t *)node)->name_loc, buffer);
652
+ break;
653
+ }
654
+ case PM_CONSTANT_PATH_WRITE_NODE: {
655
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
656
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_path_write_node_t *)node)->target, buffer);
657
+ pm_serialize_location(parser, &((pm_constant_path_write_node_t *)node)->operator_loc, buffer);
658
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_path_write_node_t *)node)->value, buffer);
659
+ break;
660
+ }
661
+ case PM_CONSTANT_READ_NODE: {
662
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
663
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_constant_read_node_t *)node)->name));
664
+ break;
665
+ }
666
+ case PM_CONSTANT_TARGET_NODE: {
667
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
668
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_constant_target_node_t *)node)->name));
669
+ break;
670
+ }
671
+ case PM_CONSTANT_WRITE_NODE: {
672
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
673
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_constant_write_node_t *)node)->name));
674
+ pm_serialize_location(parser, &((pm_constant_write_node_t *)node)->name_loc, buffer);
675
+ pm_serialize_node(parser, (pm_node_t *)((pm_constant_write_node_t *)node)->value, buffer);
676
+ pm_serialize_location(parser, &((pm_constant_write_node_t *)node)->operator_loc, buffer);
677
+ break;
678
+ }
679
+ case PM_DEF_NODE: {
680
+ // serialize length
681
+ // encoding of location u32s make us need to save this offset.
682
+ size_t length_offset = buffer->length;
683
+ pm_buffer_append_string(buffer, "\0\0\0\0", 4); /* consume 4 bytes, updated below */
684
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
685
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_def_node_t *)node)->name));
686
+ pm_serialize_location(parser, &((pm_def_node_t *)node)->name_loc, buffer);
687
+ if (((pm_def_node_t *)node)->receiver == NULL) {
688
+ pm_buffer_append_byte(buffer, 0);
689
+ } else {
690
+ pm_serialize_node(parser, (pm_node_t *)((pm_def_node_t *)node)->receiver, buffer);
691
+ }
692
+ if (((pm_def_node_t *)node)->parameters == NULL) {
693
+ pm_buffer_append_byte(buffer, 0);
694
+ } else {
695
+ pm_serialize_node(parser, (pm_node_t *)((pm_def_node_t *)node)->parameters, buffer);
696
+ }
697
+ if (((pm_def_node_t *)node)->body == NULL) {
698
+ pm_buffer_append_byte(buffer, 0);
699
+ } else {
700
+ pm_serialize_node(parser, (pm_node_t *)((pm_def_node_t *)node)->body, buffer);
701
+ }
702
+ uint32_t locals_size = pm_sizet_to_u32(((pm_def_node_t *)node)->locals.size);
703
+ pm_buffer_append_varuint(buffer, locals_size);
704
+ for (uint32_t index = 0; index < locals_size; index++) {
705
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_def_node_t *)node)->locals.ids[index]));
706
+ }
707
+ pm_serialize_location(parser, &((pm_def_node_t *)node)->def_keyword_loc, buffer);
708
+ if (((pm_def_node_t *)node)->operator_loc.start == NULL) {
709
+ pm_buffer_append_byte(buffer, 0);
710
+ } else {
711
+ pm_buffer_append_byte(buffer, 1);
712
+ pm_serialize_location(parser, &((pm_def_node_t *)node)->operator_loc, buffer);
713
+ }
714
+ if (((pm_def_node_t *)node)->lparen_loc.start == NULL) {
715
+ pm_buffer_append_byte(buffer, 0);
716
+ } else {
717
+ pm_buffer_append_byte(buffer, 1);
718
+ pm_serialize_location(parser, &((pm_def_node_t *)node)->lparen_loc, buffer);
719
+ }
720
+ if (((pm_def_node_t *)node)->rparen_loc.start == NULL) {
721
+ pm_buffer_append_byte(buffer, 0);
722
+ } else {
723
+ pm_buffer_append_byte(buffer, 1);
724
+ pm_serialize_location(parser, &((pm_def_node_t *)node)->rparen_loc, buffer);
725
+ }
726
+ if (((pm_def_node_t *)node)->equal_loc.start == NULL) {
727
+ pm_buffer_append_byte(buffer, 0);
728
+ } else {
729
+ pm_buffer_append_byte(buffer, 1);
730
+ pm_serialize_location(parser, &((pm_def_node_t *)node)->equal_loc, buffer);
731
+ }
732
+ if (((pm_def_node_t *)node)->end_keyword_loc.start == NULL) {
733
+ pm_buffer_append_byte(buffer, 0);
734
+ } else {
735
+ pm_buffer_append_byte(buffer, 1);
736
+ pm_serialize_location(parser, &((pm_def_node_t *)node)->end_keyword_loc, buffer);
737
+ }
738
+ // serialize length
739
+ uint32_t length = pm_sizet_to_u32(buffer->length - offset - sizeof(uint32_t));
740
+ memcpy(buffer->value + length_offset, &length, sizeof(uint32_t));
741
+ break;
742
+ }
743
+ case PM_DEFINED_NODE: {
744
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
745
+ if (((pm_defined_node_t *)node)->lparen_loc.start == NULL) {
746
+ pm_buffer_append_byte(buffer, 0);
747
+ } else {
748
+ pm_buffer_append_byte(buffer, 1);
749
+ pm_serialize_location(parser, &((pm_defined_node_t *)node)->lparen_loc, buffer);
750
+ }
751
+ pm_serialize_node(parser, (pm_node_t *)((pm_defined_node_t *)node)->value, buffer);
752
+ if (((pm_defined_node_t *)node)->rparen_loc.start == NULL) {
753
+ pm_buffer_append_byte(buffer, 0);
754
+ } else {
755
+ pm_buffer_append_byte(buffer, 1);
756
+ pm_serialize_location(parser, &((pm_defined_node_t *)node)->rparen_loc, buffer);
757
+ }
758
+ pm_serialize_location(parser, &((pm_defined_node_t *)node)->keyword_loc, buffer);
759
+ break;
760
+ }
761
+ case PM_ELSE_NODE: {
762
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
763
+ pm_serialize_location(parser, &((pm_else_node_t *)node)->else_keyword_loc, buffer);
764
+ if (((pm_else_node_t *)node)->statements == NULL) {
765
+ pm_buffer_append_byte(buffer, 0);
766
+ } else {
767
+ pm_serialize_node(parser, (pm_node_t *)((pm_else_node_t *)node)->statements, buffer);
768
+ }
769
+ if (((pm_else_node_t *)node)->end_keyword_loc.start == NULL) {
770
+ pm_buffer_append_byte(buffer, 0);
771
+ } else {
772
+ pm_buffer_append_byte(buffer, 1);
773
+ pm_serialize_location(parser, &((pm_else_node_t *)node)->end_keyword_loc, buffer);
774
+ }
775
+ break;
776
+ }
777
+ case PM_EMBEDDED_STATEMENTS_NODE: {
778
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
779
+ pm_serialize_location(parser, &((pm_embedded_statements_node_t *)node)->opening_loc, buffer);
780
+ if (((pm_embedded_statements_node_t *)node)->statements == NULL) {
781
+ pm_buffer_append_byte(buffer, 0);
782
+ } else {
783
+ pm_serialize_node(parser, (pm_node_t *)((pm_embedded_statements_node_t *)node)->statements, buffer);
784
+ }
785
+ pm_serialize_location(parser, &((pm_embedded_statements_node_t *)node)->closing_loc, buffer);
786
+ break;
787
+ }
788
+ case PM_EMBEDDED_VARIABLE_NODE: {
789
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
790
+ pm_serialize_location(parser, &((pm_embedded_variable_node_t *)node)->operator_loc, buffer);
791
+ pm_serialize_node(parser, (pm_node_t *)((pm_embedded_variable_node_t *)node)->variable, buffer);
792
+ break;
793
+ }
794
+ case PM_ENSURE_NODE: {
795
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
796
+ pm_serialize_location(parser, &((pm_ensure_node_t *)node)->ensure_keyword_loc, buffer);
797
+ if (((pm_ensure_node_t *)node)->statements == NULL) {
798
+ pm_buffer_append_byte(buffer, 0);
799
+ } else {
800
+ pm_serialize_node(parser, (pm_node_t *)((pm_ensure_node_t *)node)->statements, buffer);
801
+ }
802
+ pm_serialize_location(parser, &((pm_ensure_node_t *)node)->end_keyword_loc, buffer);
803
+ break;
804
+ }
805
+ case PM_FALSE_NODE: {
806
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
807
+ break;
808
+ }
809
+ case PM_FIND_PATTERN_NODE: {
810
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
811
+ if (((pm_find_pattern_node_t *)node)->constant == NULL) {
812
+ pm_buffer_append_byte(buffer, 0);
813
+ } else {
814
+ pm_serialize_node(parser, (pm_node_t *)((pm_find_pattern_node_t *)node)->constant, buffer);
815
+ }
816
+ pm_serialize_node(parser, (pm_node_t *)((pm_find_pattern_node_t *)node)->left, buffer);
817
+ uint32_t requireds_size = pm_sizet_to_u32(((pm_find_pattern_node_t *)node)->requireds.size);
818
+ pm_buffer_append_varuint(buffer, requireds_size);
819
+ for (uint32_t index = 0; index < requireds_size; index++) {
820
+ pm_serialize_node(parser, (pm_node_t *) ((pm_find_pattern_node_t *)node)->requireds.nodes[index], buffer);
821
+ }
822
+ pm_serialize_node(parser, (pm_node_t *)((pm_find_pattern_node_t *)node)->right, buffer);
823
+ if (((pm_find_pattern_node_t *)node)->opening_loc.start == NULL) {
824
+ pm_buffer_append_byte(buffer, 0);
825
+ } else {
826
+ pm_buffer_append_byte(buffer, 1);
827
+ pm_serialize_location(parser, &((pm_find_pattern_node_t *)node)->opening_loc, buffer);
828
+ }
829
+ if (((pm_find_pattern_node_t *)node)->closing_loc.start == NULL) {
830
+ pm_buffer_append_byte(buffer, 0);
831
+ } else {
832
+ pm_buffer_append_byte(buffer, 1);
833
+ pm_serialize_location(parser, &((pm_find_pattern_node_t *)node)->closing_loc, buffer);
834
+ }
835
+ break;
836
+ }
837
+ case PM_FLIP_FLOP_NODE: {
838
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
839
+ if (((pm_flip_flop_node_t *)node)->left == NULL) {
840
+ pm_buffer_append_byte(buffer, 0);
841
+ } else {
842
+ pm_serialize_node(parser, (pm_node_t *)((pm_flip_flop_node_t *)node)->left, buffer);
843
+ }
844
+ if (((pm_flip_flop_node_t *)node)->right == NULL) {
845
+ pm_buffer_append_byte(buffer, 0);
846
+ } else {
847
+ pm_serialize_node(parser, (pm_node_t *)((pm_flip_flop_node_t *)node)->right, buffer);
848
+ }
849
+ pm_serialize_location(parser, &((pm_flip_flop_node_t *)node)->operator_loc, buffer);
850
+ break;
851
+ }
852
+ case PM_FLOAT_NODE: {
853
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
854
+ pm_buffer_append_double(buffer, ((pm_float_node_t *)node)->value);
855
+ break;
856
+ }
857
+ case PM_FOR_NODE: {
858
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
859
+ pm_serialize_node(parser, (pm_node_t *)((pm_for_node_t *)node)->index, buffer);
860
+ pm_serialize_node(parser, (pm_node_t *)((pm_for_node_t *)node)->collection, buffer);
861
+ if (((pm_for_node_t *)node)->statements == NULL) {
862
+ pm_buffer_append_byte(buffer, 0);
863
+ } else {
864
+ pm_serialize_node(parser, (pm_node_t *)((pm_for_node_t *)node)->statements, buffer);
865
+ }
866
+ pm_serialize_location(parser, &((pm_for_node_t *)node)->for_keyword_loc, buffer);
867
+ pm_serialize_location(parser, &((pm_for_node_t *)node)->in_keyword_loc, buffer);
868
+ if (((pm_for_node_t *)node)->do_keyword_loc.start == NULL) {
869
+ pm_buffer_append_byte(buffer, 0);
870
+ } else {
871
+ pm_buffer_append_byte(buffer, 1);
872
+ pm_serialize_location(parser, &((pm_for_node_t *)node)->do_keyword_loc, buffer);
873
+ }
874
+ pm_serialize_location(parser, &((pm_for_node_t *)node)->end_keyword_loc, buffer);
875
+ break;
876
+ }
877
+ case PM_FORWARDING_ARGUMENTS_NODE: {
878
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
879
+ break;
880
+ }
881
+ case PM_FORWARDING_PARAMETER_NODE: {
882
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
883
+ break;
884
+ }
885
+ case PM_FORWARDING_SUPER_NODE: {
886
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
887
+ if (((pm_forwarding_super_node_t *)node)->block == NULL) {
888
+ pm_buffer_append_byte(buffer, 0);
889
+ } else {
890
+ pm_serialize_node(parser, (pm_node_t *)((pm_forwarding_super_node_t *)node)->block, buffer);
891
+ }
892
+ break;
893
+ }
894
+ case PM_GLOBAL_VARIABLE_AND_WRITE_NODE: {
895
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
896
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_global_variable_and_write_node_t *)node)->name));
897
+ pm_serialize_location(parser, &((pm_global_variable_and_write_node_t *)node)->name_loc, buffer);
898
+ pm_serialize_location(parser, &((pm_global_variable_and_write_node_t *)node)->operator_loc, buffer);
899
+ pm_serialize_node(parser, (pm_node_t *)((pm_global_variable_and_write_node_t *)node)->value, buffer);
900
+ break;
901
+ }
902
+ case PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE: {
903
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
904
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_global_variable_operator_write_node_t *)node)->name));
905
+ pm_serialize_location(parser, &((pm_global_variable_operator_write_node_t *)node)->name_loc, buffer);
906
+ pm_serialize_location(parser, &((pm_global_variable_operator_write_node_t *)node)->binary_operator_loc, buffer);
907
+ pm_serialize_node(parser, (pm_node_t *)((pm_global_variable_operator_write_node_t *)node)->value, buffer);
908
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_global_variable_operator_write_node_t *)node)->binary_operator));
909
+ break;
910
+ }
911
+ case PM_GLOBAL_VARIABLE_OR_WRITE_NODE: {
912
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
913
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_global_variable_or_write_node_t *)node)->name));
914
+ pm_serialize_location(parser, &((pm_global_variable_or_write_node_t *)node)->name_loc, buffer);
915
+ pm_serialize_location(parser, &((pm_global_variable_or_write_node_t *)node)->operator_loc, buffer);
916
+ pm_serialize_node(parser, (pm_node_t *)((pm_global_variable_or_write_node_t *)node)->value, buffer);
917
+ break;
918
+ }
919
+ case PM_GLOBAL_VARIABLE_READ_NODE: {
920
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
921
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_global_variable_read_node_t *)node)->name));
922
+ break;
923
+ }
924
+ case PM_GLOBAL_VARIABLE_TARGET_NODE: {
925
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
926
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_global_variable_target_node_t *)node)->name));
927
+ break;
928
+ }
929
+ case PM_GLOBAL_VARIABLE_WRITE_NODE: {
930
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
931
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_global_variable_write_node_t *)node)->name));
932
+ pm_serialize_location(parser, &((pm_global_variable_write_node_t *)node)->name_loc, buffer);
933
+ pm_serialize_node(parser, (pm_node_t *)((pm_global_variable_write_node_t *)node)->value, buffer);
934
+ pm_serialize_location(parser, &((pm_global_variable_write_node_t *)node)->operator_loc, buffer);
935
+ break;
936
+ }
937
+ case PM_HASH_NODE: {
938
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
939
+ pm_serialize_location(parser, &((pm_hash_node_t *)node)->opening_loc, buffer);
940
+ uint32_t elements_size = pm_sizet_to_u32(((pm_hash_node_t *)node)->elements.size);
941
+ pm_buffer_append_varuint(buffer, elements_size);
942
+ for (uint32_t index = 0; index < elements_size; index++) {
943
+ pm_serialize_node(parser, (pm_node_t *) ((pm_hash_node_t *)node)->elements.nodes[index], buffer);
944
+ }
945
+ pm_serialize_location(parser, &((pm_hash_node_t *)node)->closing_loc, buffer);
946
+ break;
947
+ }
948
+ case PM_HASH_PATTERN_NODE: {
949
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
950
+ if (((pm_hash_pattern_node_t *)node)->constant == NULL) {
951
+ pm_buffer_append_byte(buffer, 0);
952
+ } else {
953
+ pm_serialize_node(parser, (pm_node_t *)((pm_hash_pattern_node_t *)node)->constant, buffer);
954
+ }
955
+ uint32_t elements_size = pm_sizet_to_u32(((pm_hash_pattern_node_t *)node)->elements.size);
956
+ pm_buffer_append_varuint(buffer, elements_size);
957
+ for (uint32_t index = 0; index < elements_size; index++) {
958
+ pm_serialize_node(parser, (pm_node_t *) ((pm_hash_pattern_node_t *)node)->elements.nodes[index], buffer);
959
+ }
960
+ if (((pm_hash_pattern_node_t *)node)->rest == NULL) {
961
+ pm_buffer_append_byte(buffer, 0);
962
+ } else {
963
+ pm_serialize_node(parser, (pm_node_t *)((pm_hash_pattern_node_t *)node)->rest, buffer);
964
+ }
965
+ if (((pm_hash_pattern_node_t *)node)->opening_loc.start == NULL) {
966
+ pm_buffer_append_byte(buffer, 0);
967
+ } else {
968
+ pm_buffer_append_byte(buffer, 1);
969
+ pm_serialize_location(parser, &((pm_hash_pattern_node_t *)node)->opening_loc, buffer);
970
+ }
971
+ if (((pm_hash_pattern_node_t *)node)->closing_loc.start == NULL) {
972
+ pm_buffer_append_byte(buffer, 0);
973
+ } else {
974
+ pm_buffer_append_byte(buffer, 1);
975
+ pm_serialize_location(parser, &((pm_hash_pattern_node_t *)node)->closing_loc, buffer);
976
+ }
977
+ break;
978
+ }
979
+ case PM_IF_NODE: {
980
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
981
+ if (((pm_if_node_t *)node)->if_keyword_loc.start == NULL) {
982
+ pm_buffer_append_byte(buffer, 0);
983
+ } else {
984
+ pm_buffer_append_byte(buffer, 1);
985
+ pm_serialize_location(parser, &((pm_if_node_t *)node)->if_keyword_loc, buffer);
986
+ }
987
+ pm_serialize_node(parser, (pm_node_t *)((pm_if_node_t *)node)->predicate, buffer);
988
+ if (((pm_if_node_t *)node)->then_keyword_loc.start == NULL) {
989
+ pm_buffer_append_byte(buffer, 0);
990
+ } else {
991
+ pm_buffer_append_byte(buffer, 1);
992
+ pm_serialize_location(parser, &((pm_if_node_t *)node)->then_keyword_loc, buffer);
993
+ }
994
+ if (((pm_if_node_t *)node)->statements == NULL) {
995
+ pm_buffer_append_byte(buffer, 0);
996
+ } else {
997
+ pm_serialize_node(parser, (pm_node_t *)((pm_if_node_t *)node)->statements, buffer);
998
+ }
999
+ if (((pm_if_node_t *)node)->subsequent == NULL) {
1000
+ pm_buffer_append_byte(buffer, 0);
1001
+ } else {
1002
+ pm_serialize_node(parser, (pm_node_t *)((pm_if_node_t *)node)->subsequent, buffer);
1003
+ }
1004
+ if (((pm_if_node_t *)node)->end_keyword_loc.start == NULL) {
1005
+ pm_buffer_append_byte(buffer, 0);
1006
+ } else {
1007
+ pm_buffer_append_byte(buffer, 1);
1008
+ pm_serialize_location(parser, &((pm_if_node_t *)node)->end_keyword_loc, buffer);
1009
+ }
1010
+ break;
1011
+ }
1012
+ case PM_IMAGINARY_NODE: {
1013
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1014
+ pm_serialize_node(parser, (pm_node_t *)((pm_imaginary_node_t *)node)->numeric, buffer);
1015
+ break;
1016
+ }
1017
+ case PM_IMPLICIT_NODE: {
1018
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1019
+ pm_serialize_node(parser, (pm_node_t *)((pm_implicit_node_t *)node)->value, buffer);
1020
+ break;
1021
+ }
1022
+ case PM_IMPLICIT_REST_NODE: {
1023
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1024
+ break;
1025
+ }
1026
+ case PM_IN_NODE: {
1027
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1028
+ pm_serialize_node(parser, (pm_node_t *)((pm_in_node_t *)node)->pattern, buffer);
1029
+ if (((pm_in_node_t *)node)->statements == NULL) {
1030
+ pm_buffer_append_byte(buffer, 0);
1031
+ } else {
1032
+ pm_serialize_node(parser, (pm_node_t *)((pm_in_node_t *)node)->statements, buffer);
1033
+ }
1034
+ pm_serialize_location(parser, &((pm_in_node_t *)node)->in_loc, buffer);
1035
+ if (((pm_in_node_t *)node)->then_loc.start == NULL) {
1036
+ pm_buffer_append_byte(buffer, 0);
1037
+ } else {
1038
+ pm_buffer_append_byte(buffer, 1);
1039
+ pm_serialize_location(parser, &((pm_in_node_t *)node)->then_loc, buffer);
1040
+ }
1041
+ break;
1042
+ }
1043
+ case PM_INDEX_AND_WRITE_NODE: {
1044
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1045
+ if (((pm_index_and_write_node_t *)node)->receiver == NULL) {
1046
+ pm_buffer_append_byte(buffer, 0);
1047
+ } else {
1048
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_and_write_node_t *)node)->receiver, buffer);
1049
+ }
1050
+ if (((pm_index_and_write_node_t *)node)->call_operator_loc.start == NULL) {
1051
+ pm_buffer_append_byte(buffer, 0);
1052
+ } else {
1053
+ pm_buffer_append_byte(buffer, 1);
1054
+ pm_serialize_location(parser, &((pm_index_and_write_node_t *)node)->call_operator_loc, buffer);
1055
+ }
1056
+ pm_serialize_location(parser, &((pm_index_and_write_node_t *)node)->opening_loc, buffer);
1057
+ if (((pm_index_and_write_node_t *)node)->arguments == NULL) {
1058
+ pm_buffer_append_byte(buffer, 0);
1059
+ } else {
1060
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_and_write_node_t *)node)->arguments, buffer);
1061
+ }
1062
+ pm_serialize_location(parser, &((pm_index_and_write_node_t *)node)->closing_loc, buffer);
1063
+ if (((pm_index_and_write_node_t *)node)->block == NULL) {
1064
+ pm_buffer_append_byte(buffer, 0);
1065
+ } else {
1066
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_and_write_node_t *)node)->block, buffer);
1067
+ }
1068
+ pm_serialize_location(parser, &((pm_index_and_write_node_t *)node)->operator_loc, buffer);
1069
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_and_write_node_t *)node)->value, buffer);
1070
+ break;
1071
+ }
1072
+ case PM_INDEX_OPERATOR_WRITE_NODE: {
1073
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1074
+ if (((pm_index_operator_write_node_t *)node)->receiver == NULL) {
1075
+ pm_buffer_append_byte(buffer, 0);
1076
+ } else {
1077
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_operator_write_node_t *)node)->receiver, buffer);
1078
+ }
1079
+ if (((pm_index_operator_write_node_t *)node)->call_operator_loc.start == NULL) {
1080
+ pm_buffer_append_byte(buffer, 0);
1081
+ } else {
1082
+ pm_buffer_append_byte(buffer, 1);
1083
+ pm_serialize_location(parser, &((pm_index_operator_write_node_t *)node)->call_operator_loc, buffer);
1084
+ }
1085
+ pm_serialize_location(parser, &((pm_index_operator_write_node_t *)node)->opening_loc, buffer);
1086
+ if (((pm_index_operator_write_node_t *)node)->arguments == NULL) {
1087
+ pm_buffer_append_byte(buffer, 0);
1088
+ } else {
1089
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_operator_write_node_t *)node)->arguments, buffer);
1090
+ }
1091
+ pm_serialize_location(parser, &((pm_index_operator_write_node_t *)node)->closing_loc, buffer);
1092
+ if (((pm_index_operator_write_node_t *)node)->block == NULL) {
1093
+ pm_buffer_append_byte(buffer, 0);
1094
+ } else {
1095
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_operator_write_node_t *)node)->block, buffer);
1096
+ }
1097
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_index_operator_write_node_t *)node)->binary_operator));
1098
+ pm_serialize_location(parser, &((pm_index_operator_write_node_t *)node)->binary_operator_loc, buffer);
1099
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_operator_write_node_t *)node)->value, buffer);
1100
+ break;
1101
+ }
1102
+ case PM_INDEX_OR_WRITE_NODE: {
1103
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1104
+ if (((pm_index_or_write_node_t *)node)->receiver == NULL) {
1105
+ pm_buffer_append_byte(buffer, 0);
1106
+ } else {
1107
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_or_write_node_t *)node)->receiver, buffer);
1108
+ }
1109
+ if (((pm_index_or_write_node_t *)node)->call_operator_loc.start == NULL) {
1110
+ pm_buffer_append_byte(buffer, 0);
1111
+ } else {
1112
+ pm_buffer_append_byte(buffer, 1);
1113
+ pm_serialize_location(parser, &((pm_index_or_write_node_t *)node)->call_operator_loc, buffer);
1114
+ }
1115
+ pm_serialize_location(parser, &((pm_index_or_write_node_t *)node)->opening_loc, buffer);
1116
+ if (((pm_index_or_write_node_t *)node)->arguments == NULL) {
1117
+ pm_buffer_append_byte(buffer, 0);
1118
+ } else {
1119
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_or_write_node_t *)node)->arguments, buffer);
1120
+ }
1121
+ pm_serialize_location(parser, &((pm_index_or_write_node_t *)node)->closing_loc, buffer);
1122
+ if (((pm_index_or_write_node_t *)node)->block == NULL) {
1123
+ pm_buffer_append_byte(buffer, 0);
1124
+ } else {
1125
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_or_write_node_t *)node)->block, buffer);
1126
+ }
1127
+ pm_serialize_location(parser, &((pm_index_or_write_node_t *)node)->operator_loc, buffer);
1128
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_or_write_node_t *)node)->value, buffer);
1129
+ break;
1130
+ }
1131
+ case PM_INDEX_TARGET_NODE: {
1132
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1133
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_target_node_t *)node)->receiver, buffer);
1134
+ pm_serialize_location(parser, &((pm_index_target_node_t *)node)->opening_loc, buffer);
1135
+ if (((pm_index_target_node_t *)node)->arguments == NULL) {
1136
+ pm_buffer_append_byte(buffer, 0);
1137
+ } else {
1138
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_target_node_t *)node)->arguments, buffer);
1139
+ }
1140
+ pm_serialize_location(parser, &((pm_index_target_node_t *)node)->closing_loc, buffer);
1141
+ if (((pm_index_target_node_t *)node)->block == NULL) {
1142
+ pm_buffer_append_byte(buffer, 0);
1143
+ } else {
1144
+ pm_serialize_node(parser, (pm_node_t *)((pm_index_target_node_t *)node)->block, buffer);
1145
+ }
1146
+ break;
1147
+ }
1148
+ case PM_INSTANCE_VARIABLE_AND_WRITE_NODE: {
1149
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1150
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_instance_variable_and_write_node_t *)node)->name));
1151
+ pm_serialize_location(parser, &((pm_instance_variable_and_write_node_t *)node)->name_loc, buffer);
1152
+ pm_serialize_location(parser, &((pm_instance_variable_and_write_node_t *)node)->operator_loc, buffer);
1153
+ pm_serialize_node(parser, (pm_node_t *)((pm_instance_variable_and_write_node_t *)node)->value, buffer);
1154
+ break;
1155
+ }
1156
+ case PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE: {
1157
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1158
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_instance_variable_operator_write_node_t *)node)->name));
1159
+ pm_serialize_location(parser, &((pm_instance_variable_operator_write_node_t *)node)->name_loc, buffer);
1160
+ pm_serialize_location(parser, &((pm_instance_variable_operator_write_node_t *)node)->binary_operator_loc, buffer);
1161
+ pm_serialize_node(parser, (pm_node_t *)((pm_instance_variable_operator_write_node_t *)node)->value, buffer);
1162
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_instance_variable_operator_write_node_t *)node)->binary_operator));
1163
+ break;
1164
+ }
1165
+ case PM_INSTANCE_VARIABLE_OR_WRITE_NODE: {
1166
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1167
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_instance_variable_or_write_node_t *)node)->name));
1168
+ pm_serialize_location(parser, &((pm_instance_variable_or_write_node_t *)node)->name_loc, buffer);
1169
+ pm_serialize_location(parser, &((pm_instance_variable_or_write_node_t *)node)->operator_loc, buffer);
1170
+ pm_serialize_node(parser, (pm_node_t *)((pm_instance_variable_or_write_node_t *)node)->value, buffer);
1171
+ break;
1172
+ }
1173
+ case PM_INSTANCE_VARIABLE_READ_NODE: {
1174
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1175
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_instance_variable_read_node_t *)node)->name));
1176
+ break;
1177
+ }
1178
+ case PM_INSTANCE_VARIABLE_TARGET_NODE: {
1179
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1180
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_instance_variable_target_node_t *)node)->name));
1181
+ break;
1182
+ }
1183
+ case PM_INSTANCE_VARIABLE_WRITE_NODE: {
1184
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1185
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_instance_variable_write_node_t *)node)->name));
1186
+ pm_serialize_location(parser, &((pm_instance_variable_write_node_t *)node)->name_loc, buffer);
1187
+ pm_serialize_node(parser, (pm_node_t *)((pm_instance_variable_write_node_t *)node)->value, buffer);
1188
+ pm_serialize_location(parser, &((pm_instance_variable_write_node_t *)node)->operator_loc, buffer);
1189
+ break;
1190
+ }
1191
+ case PM_INTEGER_NODE: {
1192
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1193
+ pm_serialize_integer(&((pm_integer_node_t *)node)->value, buffer);
1194
+ break;
1195
+ }
1196
+ case PM_INTERPOLATED_MATCH_LAST_LINE_NODE: {
1197
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1198
+ pm_serialize_location(parser, &((pm_interpolated_match_last_line_node_t *)node)->opening_loc, buffer);
1199
+ uint32_t parts_size = pm_sizet_to_u32(((pm_interpolated_match_last_line_node_t *)node)->parts.size);
1200
+ pm_buffer_append_varuint(buffer, parts_size);
1201
+ for (uint32_t index = 0; index < parts_size; index++) {
1202
+ pm_serialize_node(parser, (pm_node_t *) ((pm_interpolated_match_last_line_node_t *)node)->parts.nodes[index], buffer);
1203
+ }
1204
+ pm_serialize_location(parser, &((pm_interpolated_match_last_line_node_t *)node)->closing_loc, buffer);
1205
+ break;
1206
+ }
1207
+ case PM_INTERPOLATED_REGULAR_EXPRESSION_NODE: {
1208
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1209
+ pm_serialize_location(parser, &((pm_interpolated_regular_expression_node_t *)node)->opening_loc, buffer);
1210
+ uint32_t parts_size = pm_sizet_to_u32(((pm_interpolated_regular_expression_node_t *)node)->parts.size);
1211
+ pm_buffer_append_varuint(buffer, parts_size);
1212
+ for (uint32_t index = 0; index < parts_size; index++) {
1213
+ pm_serialize_node(parser, (pm_node_t *) ((pm_interpolated_regular_expression_node_t *)node)->parts.nodes[index], buffer);
1214
+ }
1215
+ pm_serialize_location(parser, &((pm_interpolated_regular_expression_node_t *)node)->closing_loc, buffer);
1216
+ break;
1217
+ }
1218
+ case PM_INTERPOLATED_STRING_NODE: {
1219
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1220
+ if (((pm_interpolated_string_node_t *)node)->opening_loc.start == NULL) {
1221
+ pm_buffer_append_byte(buffer, 0);
1222
+ } else {
1223
+ pm_buffer_append_byte(buffer, 1);
1224
+ pm_serialize_location(parser, &((pm_interpolated_string_node_t *)node)->opening_loc, buffer);
1225
+ }
1226
+ uint32_t parts_size = pm_sizet_to_u32(((pm_interpolated_string_node_t *)node)->parts.size);
1227
+ pm_buffer_append_varuint(buffer, parts_size);
1228
+ for (uint32_t index = 0; index < parts_size; index++) {
1229
+ pm_serialize_node(parser, (pm_node_t *) ((pm_interpolated_string_node_t *)node)->parts.nodes[index], buffer);
1230
+ }
1231
+ if (((pm_interpolated_string_node_t *)node)->closing_loc.start == NULL) {
1232
+ pm_buffer_append_byte(buffer, 0);
1233
+ } else {
1234
+ pm_buffer_append_byte(buffer, 1);
1235
+ pm_serialize_location(parser, &((pm_interpolated_string_node_t *)node)->closing_loc, buffer);
1236
+ }
1237
+ break;
1238
+ }
1239
+ case PM_INTERPOLATED_SYMBOL_NODE: {
1240
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1241
+ if (((pm_interpolated_symbol_node_t *)node)->opening_loc.start == NULL) {
1242
+ pm_buffer_append_byte(buffer, 0);
1243
+ } else {
1244
+ pm_buffer_append_byte(buffer, 1);
1245
+ pm_serialize_location(parser, &((pm_interpolated_symbol_node_t *)node)->opening_loc, buffer);
1246
+ }
1247
+ uint32_t parts_size = pm_sizet_to_u32(((pm_interpolated_symbol_node_t *)node)->parts.size);
1248
+ pm_buffer_append_varuint(buffer, parts_size);
1249
+ for (uint32_t index = 0; index < parts_size; index++) {
1250
+ pm_serialize_node(parser, (pm_node_t *) ((pm_interpolated_symbol_node_t *)node)->parts.nodes[index], buffer);
1251
+ }
1252
+ if (((pm_interpolated_symbol_node_t *)node)->closing_loc.start == NULL) {
1253
+ pm_buffer_append_byte(buffer, 0);
1254
+ } else {
1255
+ pm_buffer_append_byte(buffer, 1);
1256
+ pm_serialize_location(parser, &((pm_interpolated_symbol_node_t *)node)->closing_loc, buffer);
1257
+ }
1258
+ break;
1259
+ }
1260
+ case PM_INTERPOLATED_X_STRING_NODE: {
1261
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1262
+ pm_serialize_location(parser, &((pm_interpolated_x_string_node_t *)node)->opening_loc, buffer);
1263
+ uint32_t parts_size = pm_sizet_to_u32(((pm_interpolated_x_string_node_t *)node)->parts.size);
1264
+ pm_buffer_append_varuint(buffer, parts_size);
1265
+ for (uint32_t index = 0; index < parts_size; index++) {
1266
+ pm_serialize_node(parser, (pm_node_t *) ((pm_interpolated_x_string_node_t *)node)->parts.nodes[index], buffer);
1267
+ }
1268
+ pm_serialize_location(parser, &((pm_interpolated_x_string_node_t *)node)->closing_loc, buffer);
1269
+ break;
1270
+ }
1271
+ case PM_IT_LOCAL_VARIABLE_READ_NODE: {
1272
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1273
+ break;
1274
+ }
1275
+ case PM_IT_PARAMETERS_NODE: {
1276
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1277
+ break;
1278
+ }
1279
+ case PM_KEYWORD_HASH_NODE: {
1280
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1281
+ uint32_t elements_size = pm_sizet_to_u32(((pm_keyword_hash_node_t *)node)->elements.size);
1282
+ pm_buffer_append_varuint(buffer, elements_size);
1283
+ for (uint32_t index = 0; index < elements_size; index++) {
1284
+ pm_serialize_node(parser, (pm_node_t *) ((pm_keyword_hash_node_t *)node)->elements.nodes[index], buffer);
1285
+ }
1286
+ break;
1287
+ }
1288
+ case PM_KEYWORD_REST_PARAMETER_NODE: {
1289
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1290
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_keyword_rest_parameter_node_t *)node)->name));
1291
+ if (((pm_keyword_rest_parameter_node_t *)node)->name_loc.start == NULL) {
1292
+ pm_buffer_append_byte(buffer, 0);
1293
+ } else {
1294
+ pm_buffer_append_byte(buffer, 1);
1295
+ pm_serialize_location(parser, &((pm_keyword_rest_parameter_node_t *)node)->name_loc, buffer);
1296
+ }
1297
+ pm_serialize_location(parser, &((pm_keyword_rest_parameter_node_t *)node)->operator_loc, buffer);
1298
+ break;
1299
+ }
1300
+ case PM_LAMBDA_NODE: {
1301
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1302
+ uint32_t locals_size = pm_sizet_to_u32(((pm_lambda_node_t *)node)->locals.size);
1303
+ pm_buffer_append_varuint(buffer, locals_size);
1304
+ for (uint32_t index = 0; index < locals_size; index++) {
1305
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_lambda_node_t *)node)->locals.ids[index]));
1306
+ }
1307
+ pm_serialize_location(parser, &((pm_lambda_node_t *)node)->operator_loc, buffer);
1308
+ pm_serialize_location(parser, &((pm_lambda_node_t *)node)->opening_loc, buffer);
1309
+ pm_serialize_location(parser, &((pm_lambda_node_t *)node)->closing_loc, buffer);
1310
+ if (((pm_lambda_node_t *)node)->parameters == NULL) {
1311
+ pm_buffer_append_byte(buffer, 0);
1312
+ } else {
1313
+ pm_serialize_node(parser, (pm_node_t *)((pm_lambda_node_t *)node)->parameters, buffer);
1314
+ }
1315
+ if (((pm_lambda_node_t *)node)->body == NULL) {
1316
+ pm_buffer_append_byte(buffer, 0);
1317
+ } else {
1318
+ pm_serialize_node(parser, (pm_node_t *)((pm_lambda_node_t *)node)->body, buffer);
1319
+ }
1320
+ break;
1321
+ }
1322
+ case PM_LOCAL_VARIABLE_AND_WRITE_NODE: {
1323
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1324
+ pm_serialize_location(parser, &((pm_local_variable_and_write_node_t *)node)->name_loc, buffer);
1325
+ pm_serialize_location(parser, &((pm_local_variable_and_write_node_t *)node)->operator_loc, buffer);
1326
+ pm_serialize_node(parser, (pm_node_t *)((pm_local_variable_and_write_node_t *)node)->value, buffer);
1327
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_local_variable_and_write_node_t *)node)->name));
1328
+ pm_buffer_append_varuint(buffer, ((pm_local_variable_and_write_node_t *)node)->depth);
1329
+ break;
1330
+ }
1331
+ case PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE: {
1332
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1333
+ pm_serialize_location(parser, &((pm_local_variable_operator_write_node_t *)node)->name_loc, buffer);
1334
+ pm_serialize_location(parser, &((pm_local_variable_operator_write_node_t *)node)->binary_operator_loc, buffer);
1335
+ pm_serialize_node(parser, (pm_node_t *)((pm_local_variable_operator_write_node_t *)node)->value, buffer);
1336
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_local_variable_operator_write_node_t *)node)->name));
1337
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_local_variable_operator_write_node_t *)node)->binary_operator));
1338
+ pm_buffer_append_varuint(buffer, ((pm_local_variable_operator_write_node_t *)node)->depth);
1339
+ break;
1340
+ }
1341
+ case PM_LOCAL_VARIABLE_OR_WRITE_NODE: {
1342
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1343
+ pm_serialize_location(parser, &((pm_local_variable_or_write_node_t *)node)->name_loc, buffer);
1344
+ pm_serialize_location(parser, &((pm_local_variable_or_write_node_t *)node)->operator_loc, buffer);
1345
+ pm_serialize_node(parser, (pm_node_t *)((pm_local_variable_or_write_node_t *)node)->value, buffer);
1346
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_local_variable_or_write_node_t *)node)->name));
1347
+ pm_buffer_append_varuint(buffer, ((pm_local_variable_or_write_node_t *)node)->depth);
1348
+ break;
1349
+ }
1350
+ case PM_LOCAL_VARIABLE_READ_NODE: {
1351
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1352
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_local_variable_read_node_t *)node)->name));
1353
+ pm_buffer_append_varuint(buffer, ((pm_local_variable_read_node_t *)node)->depth);
1354
+ break;
1355
+ }
1356
+ case PM_LOCAL_VARIABLE_TARGET_NODE: {
1357
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1358
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_local_variable_target_node_t *)node)->name));
1359
+ pm_buffer_append_varuint(buffer, ((pm_local_variable_target_node_t *)node)->depth);
1360
+ break;
1361
+ }
1362
+ case PM_LOCAL_VARIABLE_WRITE_NODE: {
1363
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1364
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_local_variable_write_node_t *)node)->name));
1365
+ pm_buffer_append_varuint(buffer, ((pm_local_variable_write_node_t *)node)->depth);
1366
+ pm_serialize_location(parser, &((pm_local_variable_write_node_t *)node)->name_loc, buffer);
1367
+ pm_serialize_node(parser, (pm_node_t *)((pm_local_variable_write_node_t *)node)->value, buffer);
1368
+ pm_serialize_location(parser, &((pm_local_variable_write_node_t *)node)->operator_loc, buffer);
1369
+ break;
1370
+ }
1371
+ case PM_MATCH_LAST_LINE_NODE: {
1372
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1373
+ pm_serialize_location(parser, &((pm_match_last_line_node_t *)node)->opening_loc, buffer);
1374
+ pm_serialize_location(parser, &((pm_match_last_line_node_t *)node)->content_loc, buffer);
1375
+ pm_serialize_location(parser, &((pm_match_last_line_node_t *)node)->closing_loc, buffer);
1376
+ pm_serialize_string(parser, &((pm_match_last_line_node_t *)node)->unescaped, buffer);
1377
+ break;
1378
+ }
1379
+ case PM_MATCH_PREDICATE_NODE: {
1380
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1381
+ pm_serialize_node(parser, (pm_node_t *)((pm_match_predicate_node_t *)node)->value, buffer);
1382
+ pm_serialize_node(parser, (pm_node_t *)((pm_match_predicate_node_t *)node)->pattern, buffer);
1383
+ pm_serialize_location(parser, &((pm_match_predicate_node_t *)node)->operator_loc, buffer);
1384
+ break;
1385
+ }
1386
+ case PM_MATCH_REQUIRED_NODE: {
1387
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1388
+ pm_serialize_node(parser, (pm_node_t *)((pm_match_required_node_t *)node)->value, buffer);
1389
+ pm_serialize_node(parser, (pm_node_t *)((pm_match_required_node_t *)node)->pattern, buffer);
1390
+ pm_serialize_location(parser, &((pm_match_required_node_t *)node)->operator_loc, buffer);
1391
+ break;
1392
+ }
1393
+ case PM_MATCH_WRITE_NODE: {
1394
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1395
+ pm_serialize_node(parser, (pm_node_t *)((pm_match_write_node_t *)node)->call, buffer);
1396
+ uint32_t targets_size = pm_sizet_to_u32(((pm_match_write_node_t *)node)->targets.size);
1397
+ pm_buffer_append_varuint(buffer, targets_size);
1398
+ for (uint32_t index = 0; index < targets_size; index++) {
1399
+ pm_serialize_node(parser, (pm_node_t *) ((pm_match_write_node_t *)node)->targets.nodes[index], buffer);
1400
+ }
1401
+ break;
1402
+ }
1403
+ case PM_MISSING_NODE: {
1404
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1405
+ break;
1406
+ }
1407
+ case PM_MODULE_NODE: {
1408
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1409
+ uint32_t locals_size = pm_sizet_to_u32(((pm_module_node_t *)node)->locals.size);
1410
+ pm_buffer_append_varuint(buffer, locals_size);
1411
+ for (uint32_t index = 0; index < locals_size; index++) {
1412
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_module_node_t *)node)->locals.ids[index]));
1413
+ }
1414
+ pm_serialize_location(parser, &((pm_module_node_t *)node)->module_keyword_loc, buffer);
1415
+ pm_serialize_node(parser, (pm_node_t *)((pm_module_node_t *)node)->constant_path, buffer);
1416
+ if (((pm_module_node_t *)node)->body == NULL) {
1417
+ pm_buffer_append_byte(buffer, 0);
1418
+ } else {
1419
+ pm_serialize_node(parser, (pm_node_t *)((pm_module_node_t *)node)->body, buffer);
1420
+ }
1421
+ pm_serialize_location(parser, &((pm_module_node_t *)node)->end_keyword_loc, buffer);
1422
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_module_node_t *)node)->name));
1423
+ break;
1424
+ }
1425
+ case PM_MULTI_TARGET_NODE: {
1426
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1427
+ uint32_t lefts_size = pm_sizet_to_u32(((pm_multi_target_node_t *)node)->lefts.size);
1428
+ pm_buffer_append_varuint(buffer, lefts_size);
1429
+ for (uint32_t index = 0; index < lefts_size; index++) {
1430
+ pm_serialize_node(parser, (pm_node_t *) ((pm_multi_target_node_t *)node)->lefts.nodes[index], buffer);
1431
+ }
1432
+ if (((pm_multi_target_node_t *)node)->rest == NULL) {
1433
+ pm_buffer_append_byte(buffer, 0);
1434
+ } else {
1435
+ pm_serialize_node(parser, (pm_node_t *)((pm_multi_target_node_t *)node)->rest, buffer);
1436
+ }
1437
+ uint32_t rights_size = pm_sizet_to_u32(((pm_multi_target_node_t *)node)->rights.size);
1438
+ pm_buffer_append_varuint(buffer, rights_size);
1439
+ for (uint32_t index = 0; index < rights_size; index++) {
1440
+ pm_serialize_node(parser, (pm_node_t *) ((pm_multi_target_node_t *)node)->rights.nodes[index], buffer);
1441
+ }
1442
+ if (((pm_multi_target_node_t *)node)->lparen_loc.start == NULL) {
1443
+ pm_buffer_append_byte(buffer, 0);
1444
+ } else {
1445
+ pm_buffer_append_byte(buffer, 1);
1446
+ pm_serialize_location(parser, &((pm_multi_target_node_t *)node)->lparen_loc, buffer);
1447
+ }
1448
+ if (((pm_multi_target_node_t *)node)->rparen_loc.start == NULL) {
1449
+ pm_buffer_append_byte(buffer, 0);
1450
+ } else {
1451
+ pm_buffer_append_byte(buffer, 1);
1452
+ pm_serialize_location(parser, &((pm_multi_target_node_t *)node)->rparen_loc, buffer);
1453
+ }
1454
+ break;
1455
+ }
1456
+ case PM_MULTI_WRITE_NODE: {
1457
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1458
+ uint32_t lefts_size = pm_sizet_to_u32(((pm_multi_write_node_t *)node)->lefts.size);
1459
+ pm_buffer_append_varuint(buffer, lefts_size);
1460
+ for (uint32_t index = 0; index < lefts_size; index++) {
1461
+ pm_serialize_node(parser, (pm_node_t *) ((pm_multi_write_node_t *)node)->lefts.nodes[index], buffer);
1462
+ }
1463
+ if (((pm_multi_write_node_t *)node)->rest == NULL) {
1464
+ pm_buffer_append_byte(buffer, 0);
1465
+ } else {
1466
+ pm_serialize_node(parser, (pm_node_t *)((pm_multi_write_node_t *)node)->rest, buffer);
1467
+ }
1468
+ uint32_t rights_size = pm_sizet_to_u32(((pm_multi_write_node_t *)node)->rights.size);
1469
+ pm_buffer_append_varuint(buffer, rights_size);
1470
+ for (uint32_t index = 0; index < rights_size; index++) {
1471
+ pm_serialize_node(parser, (pm_node_t *) ((pm_multi_write_node_t *)node)->rights.nodes[index], buffer);
1472
+ }
1473
+ if (((pm_multi_write_node_t *)node)->lparen_loc.start == NULL) {
1474
+ pm_buffer_append_byte(buffer, 0);
1475
+ } else {
1476
+ pm_buffer_append_byte(buffer, 1);
1477
+ pm_serialize_location(parser, &((pm_multi_write_node_t *)node)->lparen_loc, buffer);
1478
+ }
1479
+ if (((pm_multi_write_node_t *)node)->rparen_loc.start == NULL) {
1480
+ pm_buffer_append_byte(buffer, 0);
1481
+ } else {
1482
+ pm_buffer_append_byte(buffer, 1);
1483
+ pm_serialize_location(parser, &((pm_multi_write_node_t *)node)->rparen_loc, buffer);
1484
+ }
1485
+ pm_serialize_location(parser, &((pm_multi_write_node_t *)node)->operator_loc, buffer);
1486
+ pm_serialize_node(parser, (pm_node_t *)((pm_multi_write_node_t *)node)->value, buffer);
1487
+ break;
1488
+ }
1489
+ case PM_NEXT_NODE: {
1490
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1491
+ if (((pm_next_node_t *)node)->arguments == NULL) {
1492
+ pm_buffer_append_byte(buffer, 0);
1493
+ } else {
1494
+ pm_serialize_node(parser, (pm_node_t *)((pm_next_node_t *)node)->arguments, buffer);
1495
+ }
1496
+ pm_serialize_location(parser, &((pm_next_node_t *)node)->keyword_loc, buffer);
1497
+ break;
1498
+ }
1499
+ case PM_NIL_NODE: {
1500
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1501
+ break;
1502
+ }
1503
+ case PM_NO_KEYWORDS_PARAMETER_NODE: {
1504
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1505
+ pm_serialize_location(parser, &((pm_no_keywords_parameter_node_t *)node)->operator_loc, buffer);
1506
+ pm_serialize_location(parser, &((pm_no_keywords_parameter_node_t *)node)->keyword_loc, buffer);
1507
+ break;
1508
+ }
1509
+ case PM_NUMBERED_PARAMETERS_NODE: {
1510
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1511
+ pm_buffer_append_byte(buffer, ((pm_numbered_parameters_node_t *)node)->maximum);
1512
+ break;
1513
+ }
1514
+ case PM_NUMBERED_REFERENCE_READ_NODE: {
1515
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1516
+ pm_buffer_append_varuint(buffer, ((pm_numbered_reference_read_node_t *)node)->number);
1517
+ break;
1518
+ }
1519
+ case PM_OPTIONAL_KEYWORD_PARAMETER_NODE: {
1520
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1521
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_optional_keyword_parameter_node_t *)node)->name));
1522
+ pm_serialize_location(parser, &((pm_optional_keyword_parameter_node_t *)node)->name_loc, buffer);
1523
+ pm_serialize_node(parser, (pm_node_t *)((pm_optional_keyword_parameter_node_t *)node)->value, buffer);
1524
+ break;
1525
+ }
1526
+ case PM_OPTIONAL_PARAMETER_NODE: {
1527
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1528
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_optional_parameter_node_t *)node)->name));
1529
+ pm_serialize_location(parser, &((pm_optional_parameter_node_t *)node)->name_loc, buffer);
1530
+ pm_serialize_location(parser, &((pm_optional_parameter_node_t *)node)->operator_loc, buffer);
1531
+ pm_serialize_node(parser, (pm_node_t *)((pm_optional_parameter_node_t *)node)->value, buffer);
1532
+ break;
1533
+ }
1534
+ case PM_OR_NODE: {
1535
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1536
+ pm_serialize_node(parser, (pm_node_t *)((pm_or_node_t *)node)->left, buffer);
1537
+ pm_serialize_node(parser, (pm_node_t *)((pm_or_node_t *)node)->right, buffer);
1538
+ pm_serialize_location(parser, &((pm_or_node_t *)node)->operator_loc, buffer);
1539
+ break;
1540
+ }
1541
+ case PM_PARAMETERS_NODE: {
1542
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1543
+ uint32_t requireds_size = pm_sizet_to_u32(((pm_parameters_node_t *)node)->requireds.size);
1544
+ pm_buffer_append_varuint(buffer, requireds_size);
1545
+ for (uint32_t index = 0; index < requireds_size; index++) {
1546
+ pm_serialize_node(parser, (pm_node_t *) ((pm_parameters_node_t *)node)->requireds.nodes[index], buffer);
1547
+ }
1548
+ uint32_t optionals_size = pm_sizet_to_u32(((pm_parameters_node_t *)node)->optionals.size);
1549
+ pm_buffer_append_varuint(buffer, optionals_size);
1550
+ for (uint32_t index = 0; index < optionals_size; index++) {
1551
+ pm_serialize_node(parser, (pm_node_t *) ((pm_parameters_node_t *)node)->optionals.nodes[index], buffer);
1552
+ }
1553
+ if (((pm_parameters_node_t *)node)->rest == NULL) {
1554
+ pm_buffer_append_byte(buffer, 0);
1555
+ } else {
1556
+ pm_serialize_node(parser, (pm_node_t *)((pm_parameters_node_t *)node)->rest, buffer);
1557
+ }
1558
+ uint32_t posts_size = pm_sizet_to_u32(((pm_parameters_node_t *)node)->posts.size);
1559
+ pm_buffer_append_varuint(buffer, posts_size);
1560
+ for (uint32_t index = 0; index < posts_size; index++) {
1561
+ pm_serialize_node(parser, (pm_node_t *) ((pm_parameters_node_t *)node)->posts.nodes[index], buffer);
1562
+ }
1563
+ uint32_t keywords_size = pm_sizet_to_u32(((pm_parameters_node_t *)node)->keywords.size);
1564
+ pm_buffer_append_varuint(buffer, keywords_size);
1565
+ for (uint32_t index = 0; index < keywords_size; index++) {
1566
+ pm_serialize_node(parser, (pm_node_t *) ((pm_parameters_node_t *)node)->keywords.nodes[index], buffer);
1567
+ }
1568
+ if (((pm_parameters_node_t *)node)->keyword_rest == NULL) {
1569
+ pm_buffer_append_byte(buffer, 0);
1570
+ } else {
1571
+ pm_serialize_node(parser, (pm_node_t *)((pm_parameters_node_t *)node)->keyword_rest, buffer);
1572
+ }
1573
+ if (((pm_parameters_node_t *)node)->block == NULL) {
1574
+ pm_buffer_append_byte(buffer, 0);
1575
+ } else {
1576
+ pm_serialize_node(parser, (pm_node_t *)((pm_parameters_node_t *)node)->block, buffer);
1577
+ }
1578
+ break;
1579
+ }
1580
+ case PM_PARENTHESES_NODE: {
1581
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1582
+ if (((pm_parentheses_node_t *)node)->body == NULL) {
1583
+ pm_buffer_append_byte(buffer, 0);
1584
+ } else {
1585
+ pm_serialize_node(parser, (pm_node_t *)((pm_parentheses_node_t *)node)->body, buffer);
1586
+ }
1587
+ pm_serialize_location(parser, &((pm_parentheses_node_t *)node)->opening_loc, buffer);
1588
+ pm_serialize_location(parser, &((pm_parentheses_node_t *)node)->closing_loc, buffer);
1589
+ break;
1590
+ }
1591
+ case PM_PINNED_EXPRESSION_NODE: {
1592
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1593
+ pm_serialize_node(parser, (pm_node_t *)((pm_pinned_expression_node_t *)node)->expression, buffer);
1594
+ pm_serialize_location(parser, &((pm_pinned_expression_node_t *)node)->operator_loc, buffer);
1595
+ pm_serialize_location(parser, &((pm_pinned_expression_node_t *)node)->lparen_loc, buffer);
1596
+ pm_serialize_location(parser, &((pm_pinned_expression_node_t *)node)->rparen_loc, buffer);
1597
+ break;
1598
+ }
1599
+ case PM_PINNED_VARIABLE_NODE: {
1600
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1601
+ pm_serialize_node(parser, (pm_node_t *)((pm_pinned_variable_node_t *)node)->variable, buffer);
1602
+ pm_serialize_location(parser, &((pm_pinned_variable_node_t *)node)->operator_loc, buffer);
1603
+ break;
1604
+ }
1605
+ case PM_POST_EXECUTION_NODE: {
1606
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1607
+ if (((pm_post_execution_node_t *)node)->statements == NULL) {
1608
+ pm_buffer_append_byte(buffer, 0);
1609
+ } else {
1610
+ pm_serialize_node(parser, (pm_node_t *)((pm_post_execution_node_t *)node)->statements, buffer);
1611
+ }
1612
+ pm_serialize_location(parser, &((pm_post_execution_node_t *)node)->keyword_loc, buffer);
1613
+ pm_serialize_location(parser, &((pm_post_execution_node_t *)node)->opening_loc, buffer);
1614
+ pm_serialize_location(parser, &((pm_post_execution_node_t *)node)->closing_loc, buffer);
1615
+ break;
1616
+ }
1617
+ case PM_PRE_EXECUTION_NODE: {
1618
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1619
+ if (((pm_pre_execution_node_t *)node)->statements == NULL) {
1620
+ pm_buffer_append_byte(buffer, 0);
1621
+ } else {
1622
+ pm_serialize_node(parser, (pm_node_t *)((pm_pre_execution_node_t *)node)->statements, buffer);
1623
+ }
1624
+ pm_serialize_location(parser, &((pm_pre_execution_node_t *)node)->keyword_loc, buffer);
1625
+ pm_serialize_location(parser, &((pm_pre_execution_node_t *)node)->opening_loc, buffer);
1626
+ pm_serialize_location(parser, &((pm_pre_execution_node_t *)node)->closing_loc, buffer);
1627
+ break;
1628
+ }
1629
+ case PM_PROGRAM_NODE: {
1630
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1631
+ uint32_t locals_size = pm_sizet_to_u32(((pm_program_node_t *)node)->locals.size);
1632
+ pm_buffer_append_varuint(buffer, locals_size);
1633
+ for (uint32_t index = 0; index < locals_size; index++) {
1634
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_program_node_t *)node)->locals.ids[index]));
1635
+ }
1636
+ pm_serialize_node(parser, (pm_node_t *)((pm_program_node_t *)node)->statements, buffer);
1637
+ break;
1638
+ }
1639
+ case PM_RANGE_NODE: {
1640
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1641
+ if (((pm_range_node_t *)node)->left == NULL) {
1642
+ pm_buffer_append_byte(buffer, 0);
1643
+ } else {
1644
+ pm_serialize_node(parser, (pm_node_t *)((pm_range_node_t *)node)->left, buffer);
1645
+ }
1646
+ if (((pm_range_node_t *)node)->right == NULL) {
1647
+ pm_buffer_append_byte(buffer, 0);
1648
+ } else {
1649
+ pm_serialize_node(parser, (pm_node_t *)((pm_range_node_t *)node)->right, buffer);
1650
+ }
1651
+ pm_serialize_location(parser, &((pm_range_node_t *)node)->operator_loc, buffer);
1652
+ break;
1653
+ }
1654
+ case PM_RATIONAL_NODE: {
1655
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1656
+ pm_serialize_integer(&((pm_rational_node_t *)node)->numerator, buffer);
1657
+ pm_serialize_integer(&((pm_rational_node_t *)node)->denominator, buffer);
1658
+ break;
1659
+ }
1660
+ case PM_REDO_NODE: {
1661
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1662
+ break;
1663
+ }
1664
+ case PM_REGULAR_EXPRESSION_NODE: {
1665
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1666
+ pm_serialize_location(parser, &((pm_regular_expression_node_t *)node)->opening_loc, buffer);
1667
+ pm_serialize_location(parser, &((pm_regular_expression_node_t *)node)->content_loc, buffer);
1668
+ pm_serialize_location(parser, &((pm_regular_expression_node_t *)node)->closing_loc, buffer);
1669
+ pm_serialize_string(parser, &((pm_regular_expression_node_t *)node)->unescaped, buffer);
1670
+ break;
1671
+ }
1672
+ case PM_REQUIRED_KEYWORD_PARAMETER_NODE: {
1673
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1674
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_required_keyword_parameter_node_t *)node)->name));
1675
+ pm_serialize_location(parser, &((pm_required_keyword_parameter_node_t *)node)->name_loc, buffer);
1676
+ break;
1677
+ }
1678
+ case PM_REQUIRED_PARAMETER_NODE: {
1679
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1680
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_required_parameter_node_t *)node)->name));
1681
+ break;
1682
+ }
1683
+ case PM_RESCUE_MODIFIER_NODE: {
1684
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1685
+ pm_serialize_node(parser, (pm_node_t *)((pm_rescue_modifier_node_t *)node)->expression, buffer);
1686
+ pm_serialize_location(parser, &((pm_rescue_modifier_node_t *)node)->keyword_loc, buffer);
1687
+ pm_serialize_node(parser, (pm_node_t *)((pm_rescue_modifier_node_t *)node)->rescue_expression, buffer);
1688
+ break;
1689
+ }
1690
+ case PM_RESCUE_NODE: {
1691
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1692
+ pm_serialize_location(parser, &((pm_rescue_node_t *)node)->keyword_loc, buffer);
1693
+ uint32_t exceptions_size = pm_sizet_to_u32(((pm_rescue_node_t *)node)->exceptions.size);
1694
+ pm_buffer_append_varuint(buffer, exceptions_size);
1695
+ for (uint32_t index = 0; index < exceptions_size; index++) {
1696
+ pm_serialize_node(parser, (pm_node_t *) ((pm_rescue_node_t *)node)->exceptions.nodes[index], buffer);
1697
+ }
1698
+ if (((pm_rescue_node_t *)node)->operator_loc.start == NULL) {
1699
+ pm_buffer_append_byte(buffer, 0);
1700
+ } else {
1701
+ pm_buffer_append_byte(buffer, 1);
1702
+ pm_serialize_location(parser, &((pm_rescue_node_t *)node)->operator_loc, buffer);
1703
+ }
1704
+ if (((pm_rescue_node_t *)node)->reference == NULL) {
1705
+ pm_buffer_append_byte(buffer, 0);
1706
+ } else {
1707
+ pm_serialize_node(parser, (pm_node_t *)((pm_rescue_node_t *)node)->reference, buffer);
1708
+ }
1709
+ if (((pm_rescue_node_t *)node)->then_keyword_loc.start == NULL) {
1710
+ pm_buffer_append_byte(buffer, 0);
1711
+ } else {
1712
+ pm_buffer_append_byte(buffer, 1);
1713
+ pm_serialize_location(parser, &((pm_rescue_node_t *)node)->then_keyword_loc, buffer);
1714
+ }
1715
+ if (((pm_rescue_node_t *)node)->statements == NULL) {
1716
+ pm_buffer_append_byte(buffer, 0);
1717
+ } else {
1718
+ pm_serialize_node(parser, (pm_node_t *)((pm_rescue_node_t *)node)->statements, buffer);
1719
+ }
1720
+ if (((pm_rescue_node_t *)node)->subsequent == NULL) {
1721
+ pm_buffer_append_byte(buffer, 0);
1722
+ } else {
1723
+ pm_serialize_node(parser, (pm_node_t *)((pm_rescue_node_t *)node)->subsequent, buffer);
1724
+ }
1725
+ break;
1726
+ }
1727
+ case PM_REST_PARAMETER_NODE: {
1728
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1729
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_rest_parameter_node_t *)node)->name));
1730
+ if (((pm_rest_parameter_node_t *)node)->name_loc.start == NULL) {
1731
+ pm_buffer_append_byte(buffer, 0);
1732
+ } else {
1733
+ pm_buffer_append_byte(buffer, 1);
1734
+ pm_serialize_location(parser, &((pm_rest_parameter_node_t *)node)->name_loc, buffer);
1735
+ }
1736
+ pm_serialize_location(parser, &((pm_rest_parameter_node_t *)node)->operator_loc, buffer);
1737
+ break;
1738
+ }
1739
+ case PM_RETRY_NODE: {
1740
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1741
+ break;
1742
+ }
1743
+ case PM_RETURN_NODE: {
1744
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1745
+ pm_serialize_location(parser, &((pm_return_node_t *)node)->keyword_loc, buffer);
1746
+ if (((pm_return_node_t *)node)->arguments == NULL) {
1747
+ pm_buffer_append_byte(buffer, 0);
1748
+ } else {
1749
+ pm_serialize_node(parser, (pm_node_t *)((pm_return_node_t *)node)->arguments, buffer);
1750
+ }
1751
+ break;
1752
+ }
1753
+ case PM_SELF_NODE: {
1754
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1755
+ break;
1756
+ }
1757
+ case PM_SHAREABLE_CONSTANT_NODE: {
1758
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1759
+ pm_serialize_node(parser, (pm_node_t *)((pm_shareable_constant_node_t *)node)->write, buffer);
1760
+ break;
1761
+ }
1762
+ case PM_SINGLETON_CLASS_NODE: {
1763
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1764
+ uint32_t locals_size = pm_sizet_to_u32(((pm_singleton_class_node_t *)node)->locals.size);
1765
+ pm_buffer_append_varuint(buffer, locals_size);
1766
+ for (uint32_t index = 0; index < locals_size; index++) {
1767
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(((pm_singleton_class_node_t *)node)->locals.ids[index]));
1768
+ }
1769
+ pm_serialize_location(parser, &((pm_singleton_class_node_t *)node)->class_keyword_loc, buffer);
1770
+ pm_serialize_location(parser, &((pm_singleton_class_node_t *)node)->operator_loc, buffer);
1771
+ pm_serialize_node(parser, (pm_node_t *)((pm_singleton_class_node_t *)node)->expression, buffer);
1772
+ if (((pm_singleton_class_node_t *)node)->body == NULL) {
1773
+ pm_buffer_append_byte(buffer, 0);
1774
+ } else {
1775
+ pm_serialize_node(parser, (pm_node_t *)((pm_singleton_class_node_t *)node)->body, buffer);
1776
+ }
1777
+ pm_serialize_location(parser, &((pm_singleton_class_node_t *)node)->end_keyword_loc, buffer);
1778
+ break;
1779
+ }
1780
+ case PM_SOURCE_ENCODING_NODE: {
1781
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1782
+ break;
1783
+ }
1784
+ case PM_SOURCE_FILE_NODE: {
1785
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1786
+ pm_serialize_string(parser, &((pm_source_file_node_t *)node)->filepath, buffer);
1787
+ break;
1788
+ }
1789
+ case PM_SOURCE_LINE_NODE: {
1790
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1791
+ break;
1792
+ }
1793
+ case PM_SPLAT_NODE: {
1794
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1795
+ pm_serialize_location(parser, &((pm_splat_node_t *)node)->operator_loc, buffer);
1796
+ if (((pm_splat_node_t *)node)->expression == NULL) {
1797
+ pm_buffer_append_byte(buffer, 0);
1798
+ } else {
1799
+ pm_serialize_node(parser, (pm_node_t *)((pm_splat_node_t *)node)->expression, buffer);
1800
+ }
1801
+ break;
1802
+ }
1803
+ case PM_STATEMENTS_NODE: {
1804
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1805
+ uint32_t body_size = pm_sizet_to_u32(((pm_statements_node_t *)node)->body.size);
1806
+ pm_buffer_append_varuint(buffer, body_size);
1807
+ for (uint32_t index = 0; index < body_size; index++) {
1808
+ pm_serialize_node(parser, (pm_node_t *) ((pm_statements_node_t *)node)->body.nodes[index], buffer);
1809
+ }
1810
+ break;
1811
+ }
1812
+ case PM_STRING_NODE: {
1813
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1814
+ if (((pm_string_node_t *)node)->opening_loc.start == NULL) {
1815
+ pm_buffer_append_byte(buffer, 0);
1816
+ } else {
1817
+ pm_buffer_append_byte(buffer, 1);
1818
+ pm_serialize_location(parser, &((pm_string_node_t *)node)->opening_loc, buffer);
1819
+ }
1820
+ pm_serialize_location(parser, &((pm_string_node_t *)node)->content_loc, buffer);
1821
+ if (((pm_string_node_t *)node)->closing_loc.start == NULL) {
1822
+ pm_buffer_append_byte(buffer, 0);
1823
+ } else {
1824
+ pm_buffer_append_byte(buffer, 1);
1825
+ pm_serialize_location(parser, &((pm_string_node_t *)node)->closing_loc, buffer);
1826
+ }
1827
+ pm_serialize_string(parser, &((pm_string_node_t *)node)->unescaped, buffer);
1828
+ break;
1829
+ }
1830
+ case PM_SUPER_NODE: {
1831
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1832
+ pm_serialize_location(parser, &((pm_super_node_t *)node)->keyword_loc, buffer);
1833
+ if (((pm_super_node_t *)node)->lparen_loc.start == NULL) {
1834
+ pm_buffer_append_byte(buffer, 0);
1835
+ } else {
1836
+ pm_buffer_append_byte(buffer, 1);
1837
+ pm_serialize_location(parser, &((pm_super_node_t *)node)->lparen_loc, buffer);
1838
+ }
1839
+ if (((pm_super_node_t *)node)->arguments == NULL) {
1840
+ pm_buffer_append_byte(buffer, 0);
1841
+ } else {
1842
+ pm_serialize_node(parser, (pm_node_t *)((pm_super_node_t *)node)->arguments, buffer);
1843
+ }
1844
+ if (((pm_super_node_t *)node)->rparen_loc.start == NULL) {
1845
+ pm_buffer_append_byte(buffer, 0);
1846
+ } else {
1847
+ pm_buffer_append_byte(buffer, 1);
1848
+ pm_serialize_location(parser, &((pm_super_node_t *)node)->rparen_loc, buffer);
1849
+ }
1850
+ if (((pm_super_node_t *)node)->block == NULL) {
1851
+ pm_buffer_append_byte(buffer, 0);
1852
+ } else {
1853
+ pm_serialize_node(parser, (pm_node_t *)((pm_super_node_t *)node)->block, buffer);
1854
+ }
1855
+ break;
1856
+ }
1857
+ case PM_SYMBOL_NODE: {
1858
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1859
+ if (((pm_symbol_node_t *)node)->opening_loc.start == NULL) {
1860
+ pm_buffer_append_byte(buffer, 0);
1861
+ } else {
1862
+ pm_buffer_append_byte(buffer, 1);
1863
+ pm_serialize_location(parser, &((pm_symbol_node_t *)node)->opening_loc, buffer);
1864
+ }
1865
+ if (((pm_symbol_node_t *)node)->value_loc.start == NULL) {
1866
+ pm_buffer_append_byte(buffer, 0);
1867
+ } else {
1868
+ pm_buffer_append_byte(buffer, 1);
1869
+ pm_serialize_location(parser, &((pm_symbol_node_t *)node)->value_loc, buffer);
1870
+ }
1871
+ if (((pm_symbol_node_t *)node)->closing_loc.start == NULL) {
1872
+ pm_buffer_append_byte(buffer, 0);
1873
+ } else {
1874
+ pm_buffer_append_byte(buffer, 1);
1875
+ pm_serialize_location(parser, &((pm_symbol_node_t *)node)->closing_loc, buffer);
1876
+ }
1877
+ pm_serialize_string(parser, &((pm_symbol_node_t *)node)->unescaped, buffer);
1878
+ break;
1879
+ }
1880
+ case PM_TRUE_NODE: {
1881
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1882
+ break;
1883
+ }
1884
+ case PM_UNDEF_NODE: {
1885
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1886
+ uint32_t names_size = pm_sizet_to_u32(((pm_undef_node_t *)node)->names.size);
1887
+ pm_buffer_append_varuint(buffer, names_size);
1888
+ for (uint32_t index = 0; index < names_size; index++) {
1889
+ pm_serialize_node(parser, (pm_node_t *) ((pm_undef_node_t *)node)->names.nodes[index], buffer);
1890
+ }
1891
+ pm_serialize_location(parser, &((pm_undef_node_t *)node)->keyword_loc, buffer);
1892
+ break;
1893
+ }
1894
+ case PM_UNLESS_NODE: {
1895
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1896
+ pm_serialize_location(parser, &((pm_unless_node_t *)node)->keyword_loc, buffer);
1897
+ pm_serialize_node(parser, (pm_node_t *)((pm_unless_node_t *)node)->predicate, buffer);
1898
+ if (((pm_unless_node_t *)node)->then_keyword_loc.start == NULL) {
1899
+ pm_buffer_append_byte(buffer, 0);
1900
+ } else {
1901
+ pm_buffer_append_byte(buffer, 1);
1902
+ pm_serialize_location(parser, &((pm_unless_node_t *)node)->then_keyword_loc, buffer);
1903
+ }
1904
+ if (((pm_unless_node_t *)node)->statements == NULL) {
1905
+ pm_buffer_append_byte(buffer, 0);
1906
+ } else {
1907
+ pm_serialize_node(parser, (pm_node_t *)((pm_unless_node_t *)node)->statements, buffer);
1908
+ }
1909
+ if (((pm_unless_node_t *)node)->else_clause == NULL) {
1910
+ pm_buffer_append_byte(buffer, 0);
1911
+ } else {
1912
+ pm_serialize_node(parser, (pm_node_t *)((pm_unless_node_t *)node)->else_clause, buffer);
1913
+ }
1914
+ if (((pm_unless_node_t *)node)->end_keyword_loc.start == NULL) {
1915
+ pm_buffer_append_byte(buffer, 0);
1916
+ } else {
1917
+ pm_buffer_append_byte(buffer, 1);
1918
+ pm_serialize_location(parser, &((pm_unless_node_t *)node)->end_keyword_loc, buffer);
1919
+ }
1920
+ break;
1921
+ }
1922
+ case PM_UNTIL_NODE: {
1923
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1924
+ pm_serialize_location(parser, &((pm_until_node_t *)node)->keyword_loc, buffer);
1925
+ if (((pm_until_node_t *)node)->do_keyword_loc.start == NULL) {
1926
+ pm_buffer_append_byte(buffer, 0);
1927
+ } else {
1928
+ pm_buffer_append_byte(buffer, 1);
1929
+ pm_serialize_location(parser, &((pm_until_node_t *)node)->do_keyword_loc, buffer);
1930
+ }
1931
+ if (((pm_until_node_t *)node)->closing_loc.start == NULL) {
1932
+ pm_buffer_append_byte(buffer, 0);
1933
+ } else {
1934
+ pm_buffer_append_byte(buffer, 1);
1935
+ pm_serialize_location(parser, &((pm_until_node_t *)node)->closing_loc, buffer);
1936
+ }
1937
+ pm_serialize_node(parser, (pm_node_t *)((pm_until_node_t *)node)->predicate, buffer);
1938
+ if (((pm_until_node_t *)node)->statements == NULL) {
1939
+ pm_buffer_append_byte(buffer, 0);
1940
+ } else {
1941
+ pm_serialize_node(parser, (pm_node_t *)((pm_until_node_t *)node)->statements, buffer);
1942
+ }
1943
+ break;
1944
+ }
1945
+ case PM_WHEN_NODE: {
1946
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1947
+ pm_serialize_location(parser, &((pm_when_node_t *)node)->keyword_loc, buffer);
1948
+ uint32_t conditions_size = pm_sizet_to_u32(((pm_when_node_t *)node)->conditions.size);
1949
+ pm_buffer_append_varuint(buffer, conditions_size);
1950
+ for (uint32_t index = 0; index < conditions_size; index++) {
1951
+ pm_serialize_node(parser, (pm_node_t *) ((pm_when_node_t *)node)->conditions.nodes[index], buffer);
1952
+ }
1953
+ if (((pm_when_node_t *)node)->then_keyword_loc.start == NULL) {
1954
+ pm_buffer_append_byte(buffer, 0);
1955
+ } else {
1956
+ pm_buffer_append_byte(buffer, 1);
1957
+ pm_serialize_location(parser, &((pm_when_node_t *)node)->then_keyword_loc, buffer);
1958
+ }
1959
+ if (((pm_when_node_t *)node)->statements == NULL) {
1960
+ pm_buffer_append_byte(buffer, 0);
1961
+ } else {
1962
+ pm_serialize_node(parser, (pm_node_t *)((pm_when_node_t *)node)->statements, buffer);
1963
+ }
1964
+ break;
1965
+ }
1966
+ case PM_WHILE_NODE: {
1967
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1968
+ pm_serialize_location(parser, &((pm_while_node_t *)node)->keyword_loc, buffer);
1969
+ if (((pm_while_node_t *)node)->do_keyword_loc.start == NULL) {
1970
+ pm_buffer_append_byte(buffer, 0);
1971
+ } else {
1972
+ pm_buffer_append_byte(buffer, 1);
1973
+ pm_serialize_location(parser, &((pm_while_node_t *)node)->do_keyword_loc, buffer);
1974
+ }
1975
+ if (((pm_while_node_t *)node)->closing_loc.start == NULL) {
1976
+ pm_buffer_append_byte(buffer, 0);
1977
+ } else {
1978
+ pm_buffer_append_byte(buffer, 1);
1979
+ pm_serialize_location(parser, &((pm_while_node_t *)node)->closing_loc, buffer);
1980
+ }
1981
+ pm_serialize_node(parser, (pm_node_t *)((pm_while_node_t *)node)->predicate, buffer);
1982
+ if (((pm_while_node_t *)node)->statements == NULL) {
1983
+ pm_buffer_append_byte(buffer, 0);
1984
+ } else {
1985
+ pm_serialize_node(parser, (pm_node_t *)((pm_while_node_t *)node)->statements, buffer);
1986
+ }
1987
+ break;
1988
+ }
1989
+ case PM_X_STRING_NODE: {
1990
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1991
+ pm_serialize_location(parser, &((pm_x_string_node_t *)node)->opening_loc, buffer);
1992
+ pm_serialize_location(parser, &((pm_x_string_node_t *)node)->content_loc, buffer);
1993
+ pm_serialize_location(parser, &((pm_x_string_node_t *)node)->closing_loc, buffer);
1994
+ pm_serialize_string(parser, &((pm_x_string_node_t *)node)->unescaped, buffer);
1995
+ break;
1996
+ }
1997
+ case PM_YIELD_NODE: {
1998
+ pm_buffer_append_varuint(buffer, (uint32_t) node->flags);
1999
+ pm_serialize_location(parser, &((pm_yield_node_t *)node)->keyword_loc, buffer);
2000
+ if (((pm_yield_node_t *)node)->lparen_loc.start == NULL) {
2001
+ pm_buffer_append_byte(buffer, 0);
2002
+ } else {
2003
+ pm_buffer_append_byte(buffer, 1);
2004
+ pm_serialize_location(parser, &((pm_yield_node_t *)node)->lparen_loc, buffer);
2005
+ }
2006
+ if (((pm_yield_node_t *)node)->arguments == NULL) {
2007
+ pm_buffer_append_byte(buffer, 0);
2008
+ } else {
2009
+ pm_serialize_node(parser, (pm_node_t *)((pm_yield_node_t *)node)->arguments, buffer);
2010
+ }
2011
+ if (((pm_yield_node_t *)node)->rparen_loc.start == NULL) {
2012
+ pm_buffer_append_byte(buffer, 0);
2013
+ } else {
2014
+ pm_buffer_append_byte(buffer, 1);
2015
+ pm_serialize_location(parser, &((pm_yield_node_t *)node)->rparen_loc, buffer);
2016
+ }
2017
+ break;
2018
+ }
2019
+ }
2020
+ }
2021
+
2022
+ static void
2023
+ pm_serialize_newline_list(pm_newline_list_t *list, pm_buffer_t *buffer) {
2024
+ uint32_t size = pm_sizet_to_u32(list->size);
2025
+ pm_buffer_append_varuint(buffer, size);
2026
+
2027
+ for (uint32_t i = 0; i < size; i++) {
2028
+ uint32_t offset = pm_sizet_to_u32(list->offsets[i]);
2029
+ pm_buffer_append_varuint(buffer, offset);
2030
+ }
2031
+ }
2032
+
2033
+ static void
2034
+ pm_serialize_comment(pm_parser_t *parser, pm_comment_t *comment, pm_buffer_t *buffer) {
2035
+ // serialize type
2036
+ pm_buffer_append_byte(buffer, (uint8_t) comment->type);
2037
+
2038
+ // serialize location
2039
+ pm_serialize_location(parser, &comment->location, buffer);
2040
+ }
2041
+
2042
+ /**
2043
+ * Serialize the given list of comments to the given buffer.
2044
+ */
2045
+ void
2046
+ pm_serialize_comment_list(pm_parser_t *parser, pm_list_t *list, pm_buffer_t *buffer) {
2047
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(pm_list_size(list)));
2048
+
2049
+ pm_comment_t *comment;
2050
+ for (comment = (pm_comment_t *) list->head; comment != NULL; comment = (pm_comment_t *) comment->node.next) {
2051
+ pm_serialize_comment(parser, comment, buffer);
2052
+ }
2053
+ }
2054
+
2055
+ static void
2056
+ pm_serialize_magic_comment(pm_parser_t *parser, pm_magic_comment_t *magic_comment, pm_buffer_t *buffer) {
2057
+ // serialize key location
2058
+ pm_buffer_append_varuint(buffer, pm_ptrdifft_to_u32(magic_comment->key_start - parser->start));
2059
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(magic_comment->key_length));
2060
+
2061
+ // serialize value location
2062
+ pm_buffer_append_varuint(buffer, pm_ptrdifft_to_u32(magic_comment->value_start - parser->start));
2063
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(magic_comment->value_length));
2064
+ }
2065
+
2066
+ static void
2067
+ pm_serialize_magic_comment_list(pm_parser_t *parser, pm_list_t *list, pm_buffer_t *buffer) {
2068
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(pm_list_size(list)));
2069
+
2070
+ pm_magic_comment_t *magic_comment;
2071
+ for (magic_comment = (pm_magic_comment_t *) list->head; magic_comment != NULL; magic_comment = (pm_magic_comment_t *) magic_comment->node.next) {
2072
+ pm_serialize_magic_comment(parser, magic_comment, buffer);
2073
+ }
2074
+ }
2075
+
2076
+ static void
2077
+ pm_serialize_data_loc(const pm_parser_t *parser, pm_buffer_t *buffer) {
2078
+ if (parser->data_loc.end == NULL) {
2079
+ pm_buffer_append_byte(buffer, 0);
2080
+ } else {
2081
+ pm_buffer_append_byte(buffer, 1);
2082
+ pm_serialize_location(parser, &parser->data_loc, buffer);
2083
+ }
2084
+ }
2085
+
2086
+ static void
2087
+ pm_serialize_diagnostic(pm_parser_t *parser, pm_diagnostic_t *diagnostic, pm_buffer_t *buffer) {
2088
+ // serialize the type
2089
+ pm_buffer_append_varuint(buffer, (uint32_t) diagnostic->diag_id);
2090
+
2091
+ // serialize message
2092
+ size_t message_length = strlen(diagnostic->message);
2093
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(message_length));
2094
+ pm_buffer_append_string(buffer, diagnostic->message, message_length);
2095
+
2096
+ // serialize location
2097
+ pm_serialize_location(parser, &diagnostic->location, buffer);
2098
+
2099
+ pm_buffer_append_byte(buffer, diagnostic->level);
2100
+ }
2101
+
2102
+ static void
2103
+ pm_serialize_diagnostic_list(pm_parser_t *parser, pm_list_t *list, pm_buffer_t *buffer) {
2104
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(pm_list_size(list)));
2105
+
2106
+ pm_diagnostic_t *diagnostic;
2107
+ for (diagnostic = (pm_diagnostic_t *) list->head; diagnostic != NULL; diagnostic = (pm_diagnostic_t *) diagnostic->node.next) {
2108
+ pm_serialize_diagnostic(parser, diagnostic, buffer);
2109
+ }
2110
+ }
2111
+
2112
+ /**
2113
+ * Serialize the name of the encoding to the buffer.
2114
+ */
2115
+ void
2116
+ pm_serialize_encoding(const pm_encoding_t *encoding, pm_buffer_t *buffer) {
2117
+ size_t encoding_length = strlen(encoding->name);
2118
+ pm_buffer_append_varuint(buffer, pm_sizet_to_u32(encoding_length));
2119
+ pm_buffer_append_string(buffer, encoding->name, encoding_length);
2120
+ }
2121
+
2122
+ static void
2123
+ pm_serialize_metadata(pm_parser_t *parser, pm_buffer_t *buffer) {
2124
+ pm_serialize_encoding(parser->encoding, buffer);
2125
+ pm_buffer_append_varsint(buffer, parser->start_line);
2126
+ pm_serialize_newline_list(&parser->newline_list, buffer);
2127
+ pm_serialize_comment_list(parser, &parser->comment_list, buffer);
2128
+ pm_serialize_magic_comment_list(parser, &parser->magic_comment_list, buffer);
2129
+ pm_serialize_data_loc(parser, buffer);
2130
+ pm_serialize_diagnostic_list(parser, &parser->error_list, buffer);
2131
+ pm_serialize_diagnostic_list(parser, &parser->warning_list, buffer);
2132
+ }
2133
+
2134
+ #line 275 "prism/templates/src/serialize.c.erb"
2135
+ /**
2136
+ * Serialize the metadata, nodes, and constant pool.
2137
+ */
2138
+ void
2139
+ pm_serialize_content(pm_parser_t *parser, pm_node_t *node, pm_buffer_t *buffer) {
2140
+ pm_serialize_metadata(parser, buffer);
2141
+
2142
+ // Here we're going to leave space for the offset of the constant pool in
2143
+ // the buffer.
2144
+ size_t offset = buffer->length;
2145
+ pm_buffer_append_zeroes(buffer, 4);
2146
+
2147
+ // Next, encode the length of the constant pool.
2148
+ pm_buffer_append_varuint(buffer, parser->constant_pool.size);
2149
+
2150
+ // Now we're going to serialize the content of the node.
2151
+ pm_serialize_node(parser, node, buffer);
2152
+
2153
+ // Now we're going to serialize the offset of the constant pool back where
2154
+ // we left space for it.
2155
+ uint32_t length = pm_sizet_to_u32(buffer->length);
2156
+ memcpy(buffer->value + offset, &length, sizeof(uint32_t));
2157
+
2158
+ // Now we're going to serialize the constant pool.
2159
+ offset = buffer->length;
2160
+ pm_buffer_append_zeroes(buffer, parser->constant_pool.size * 8);
2161
+
2162
+ for (uint32_t index = 0; index < parser->constant_pool.capacity; index++) {
2163
+ pm_constant_pool_bucket_t *bucket = &parser->constant_pool.buckets[index];
2164
+
2165
+ // If we find a constant at this index, serialize it at the correct
2166
+ // index in the buffer.
2167
+ if (bucket->id != 0) {
2168
+ pm_constant_t *constant = &parser->constant_pool.constants[bucket->id - 1];
2169
+ size_t buffer_offset = offset + ((((size_t)bucket->id) - 1) * 8);
2170
+
2171
+ if (bucket->type == PM_CONSTANT_POOL_BUCKET_OWNED || bucket->type == PM_CONSTANT_POOL_BUCKET_CONSTANT) {
2172
+ // Since this is an owned or constant constant, we are going to
2173
+ // write its contents into the buffer after the constant pool.
2174
+ // So effectively in place of the source offset, we have a
2175
+ // buffer offset. We will add a leading 1 to indicate that this
2176
+ // is a buffer offset.
2177
+ uint32_t content_offset = pm_sizet_to_u32(buffer->length);
2178
+ uint32_t owned_mask = (uint32_t) (1 << 31);
2179
+
2180
+ assert(content_offset < owned_mask);
2181
+ content_offset |= owned_mask;
2182
+
2183
+ memcpy(buffer->value + buffer_offset, &content_offset, 4);
2184
+ pm_buffer_append_bytes(buffer, constant->start, constant->length);
2185
+ } else {
2186
+ // Since this is a shared constant, we are going to write its
2187
+ // source offset directly into the buffer.
2188
+ uint32_t source_offset = pm_ptrdifft_to_u32(constant->start - parser->start);
2189
+ memcpy(buffer->value + buffer_offset, &source_offset, 4);
2190
+ }
2191
+
2192
+ // Now we can write the length of the constant into the buffer.
2193
+ uint32_t constant_length = pm_sizet_to_u32(constant->length);
2194
+ memcpy(buffer->value + buffer_offset + 4, &constant_length, 4);
2195
+ }
2196
+ }
2197
+ }
2198
+
2199
+ static void
2200
+ serialize_token(void *data, pm_parser_t *parser, pm_token_t *token) {
2201
+ pm_buffer_t *buffer = (pm_buffer_t *) data;
2202
+
2203
+ pm_buffer_append_varuint(buffer, token->type);
2204
+ pm_buffer_append_varuint(buffer, pm_ptrdifft_to_u32(token->start - parser->start));
2205
+ pm_buffer_append_varuint(buffer, pm_ptrdifft_to_u32(token->end - token->start));
2206
+ pm_buffer_append_varuint(buffer, parser->lex_state);
2207
+ }
2208
+
2209
+ /**
2210
+ * Lex the given source and serialize to the given buffer.
2211
+ */
2212
+ PRISM_EXPORTED_FUNCTION void
2213
+ pm_serialize_lex(pm_buffer_t *buffer, const uint8_t *source, size_t size, const char *data) {
2214
+ pm_options_t options = { 0 };
2215
+ pm_options_read(&options, data);
2216
+
2217
+ pm_parser_t parser;
2218
+ pm_parser_init(&parser, source, size, &options);
2219
+
2220
+ pm_lex_callback_t lex_callback = (pm_lex_callback_t) {
2221
+ .data = (void *) buffer,
2222
+ .callback = serialize_token,
2223
+ };
2224
+
2225
+ parser.lex_callback = &lex_callback;
2226
+ pm_node_t *node = pm_parse(&parser);
2227
+
2228
+ // Append 0 to mark end of tokens.
2229
+ pm_buffer_append_byte(buffer, 0);
2230
+
2231
+ pm_serialize_metadata(&parser, buffer);
2232
+
2233
+ pm_node_destroy(&parser, node);
2234
+ pm_parser_free(&parser);
2235
+ pm_options_free(&options);
2236
+ }
2237
+
2238
+ /**
2239
+ * Parse and serialize both the AST and the tokens represented by the given
2240
+ * source to the given buffer.
2241
+ */
2242
+ PRISM_EXPORTED_FUNCTION void
2243
+ pm_serialize_parse_lex(pm_buffer_t *buffer, const uint8_t *source, size_t size, const char *data) {
2244
+ pm_options_t options = { 0 };
2245
+ pm_options_read(&options, data);
2246
+
2247
+ pm_parser_t parser;
2248
+ pm_parser_init(&parser, source, size, &options);
2249
+
2250
+ pm_lex_callback_t lex_callback = (pm_lex_callback_t) {
2251
+ .data = (void *) buffer,
2252
+ .callback = serialize_token,
2253
+ };
2254
+
2255
+ parser.lex_callback = &lex_callback;
2256
+ pm_node_t *node = pm_parse(&parser);
2257
+
2258
+ pm_buffer_append_byte(buffer, 0);
2259
+ pm_serialize(&parser, node, buffer);
2260
+
2261
+ pm_node_destroy(&parser, node);
2262
+ pm_parser_free(&parser);
2263
+ pm_options_free(&options);
2264
+ }
2265
+
2266
+ #endif