@appthreat/atom 2.1.18 → 2.2.0

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 (462) hide show
  1. package/{plugins/composer/LICENSE → LICENSE} +6 -6
  2. package/README.md +2 -2
  3. package/index.js +4 -8
  4. package/package.json +20 -13
  5. package/packages/atom-parsetools/LICENSE +21 -0
  6. package/{astgen.js → packages/atom-parsetools/astgen.js} +1 -1
  7. package/packages/atom-parsetools/index.js +1 -0
  8. package/{phpastgen.js → packages/atom-parsetools/phpastgen.js} +1 -1
  9. package/{rbastgen.js → packages/atom-parsetools/rbastgen.js} +1 -1
  10. package/{scalasem.js → packages/atom-parsetools/scalasem.js} +1 -1
  11. package/plugins/bin/atom +1 -1
  12. package/plugins/bin/atom.bat +1 -1
  13. package/plugins/lib/io.appthreat.atom-2.2.0-classpath.jar +0 -0
  14. package/plugins/lib/{io.appthreat.atom-2.1.18.jar → io.appthreat.atom-2.2.0.jar} +0 -0
  15. package/plugins/lib/{io.appthreat.c2cpg_3-2.3.8.jar → io.appthreat.c2cpg_3-2.4.1.jar} +0 -0
  16. package/plugins/lib/{io.appthreat.dataflowengineoss_3-2.3.8.jar → io.appthreat.dataflowengineoss_3-2.4.1.jar} +0 -0
  17. package/plugins/lib/{io.appthreat.javasrc2cpg_3-2.3.8.jar → io.appthreat.javasrc2cpg_3-2.4.1.jar} +0 -0
  18. package/plugins/lib/{io.appthreat.jimple2cpg_3-2.3.8.jar → io.appthreat.jimple2cpg_3-2.4.1.jar} +0 -0
  19. package/plugins/lib/{io.appthreat.jssrc2cpg_3-2.3.8.jar → io.appthreat.jssrc2cpg_3-2.4.1.jar} +0 -0
  20. package/plugins/lib/{io.appthreat.php2atom_3-2.3.8.jar → io.appthreat.php2atom_3-2.4.1.jar} +0 -0
  21. package/plugins/lib/{io.appthreat.pysrc2cpg_3-2.3.8.jar → io.appthreat.pysrc2cpg_3-2.4.1.jar} +0 -0
  22. package/plugins/lib/{io.appthreat.ruby2atom_3-2.3.8.jar → io.appthreat.ruby2atom_3-2.4.1.jar} +0 -0
  23. package/plugins/lib/{io.appthreat.semanticcpg_3-2.3.8.jar → io.appthreat.semanticcpg_3-2.4.1.jar} +0 -0
  24. package/plugins/lib/{io.appthreat.x2cpg_3-2.3.8.jar → io.appthreat.x2cpg_3-2.4.1.jar} +0 -0
  25. package/plugins/lib/{io.circe.circe-core_3-0.14.12.jar → io.circe.circe-core_3-0.14.13.jar} +0 -0
  26. package/plugins/lib/{io.circe.circe-generic_3-0.14.12.jar → io.circe.circe-generic_3-0.14.13.jar} +0 -0
  27. package/plugins/lib/{io.circe.circe-jawn_3-0.14.12.jar → io.circe.circe-jawn_3-0.14.13.jar} +0 -0
  28. package/plugins/lib/{io.circe.circe-numbers_3-0.14.12.jar → io.circe.circe-numbers_3-0.14.13.jar} +0 -0
  29. package/plugins/lib/{io.circe.circe-parser_3-0.14.12.jar → io.circe.circe-parser_3-0.14.13.jar} +0 -0
  30. package/plugins/lib/{org.scala-lang.scala3-library_3-3.6.2.jar → org.scala-lang.scala3-library_3-3.6.4.jar} +0 -0
  31. package/plugins/autoload.php +0 -22
  32. package/plugins/bin/bundler +0 -14
  33. package/plugins/bin/php-parse +0 -119
  34. package/plugins/bin/ruby_ast_gen +0 -14
  35. package/plugins/composer/ClassLoader.php +0 -579
  36. package/plugins/composer/InstalledVersions.php +0 -396
  37. package/plugins/composer/autoload_classmap.php +0 -260
  38. package/plugins/composer/autoload_namespaces.php +0 -9
  39. package/plugins/composer/autoload_psr4.php +0 -10
  40. package/plugins/composer/autoload_real.php +0 -36
  41. package/plugins/composer/autoload_static.php +0 -286
  42. package/plugins/composer/installed.json +0 -65
  43. package/plugins/composer/installed.php +0 -32
  44. package/plugins/lib/io.appthreat.atom-2.1.18-classpath.jar +0 -0
  45. package/plugins/nikic/php-parser/LICENSE +0 -29
  46. package/plugins/nikic/php-parser/README.md +0 -225
  47. package/plugins/nikic/php-parser/bin/php-parse +0 -205
  48. package/plugins/nikic/php-parser/composer.json +0 -41
  49. package/plugins/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +0 -148
  50. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Class_.php +0 -146
  51. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +0 -43
  52. package/plugins/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php +0 -85
  53. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Enum_.php +0 -117
  54. package/plugins/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +0 -73
  55. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Function_.php +0 -67
  56. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Interface_.php +0 -93
  57. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Method.php +0 -146
  58. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +0 -45
  59. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Param.php +0 -168
  60. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Property.php +0 -161
  61. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php +0 -64
  62. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php +0 -148
  63. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +0 -78
  64. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Use_.php +0 -49
  65. package/plugins/nikic/php-parser/lib/PhpParser/Builder.php +0 -13
  66. package/plugins/nikic/php-parser/lib/PhpParser/BuilderFactory.php +0 -399
  67. package/plugins/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +0 -335
  68. package/plugins/nikic/php-parser/lib/PhpParser/Comment/Doc.php +0 -7
  69. package/plugins/nikic/php-parser/lib/PhpParser/Comment.php +0 -239
  70. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php +0 -6
  71. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +0 -229
  72. package/plugins/nikic/php-parser/lib/PhpParser/Error.php +0 -180
  73. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php +0 -46
  74. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +0 -18
  75. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler.php +0 -13
  76. package/plugins/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php +0 -27
  77. package/plugins/nikic/php-parser/lib/PhpParser/Internal/Differ.php +0 -164
  78. package/plugins/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +0 -64
  79. package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +0 -286
  80. package/plugins/nikic/php-parser/lib/PhpParser/JsonDecoder.php +0 -103
  81. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +0 -251
  82. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php +0 -56
  83. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php +0 -47
  84. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php +0 -31
  85. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php +0 -44
  86. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php +0 -76
  87. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php +0 -23
  88. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +0 -62
  89. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php +0 -23
  90. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php +0 -67
  91. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php +0 -105
  92. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php +0 -31
  93. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php +0 -36
  94. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php +0 -36
  95. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php +0 -25
  96. package/plugins/nikic/php-parser/lib/PhpParser/Lexer.php +0 -560
  97. package/plugins/nikic/php-parser/lib/PhpParser/NameContext.php +0 -285
  98. package/plugins/nikic/php-parser/lib/PhpParser/Node/Arg.php +0 -46
  99. package/plugins/nikic/php-parser/lib/PhpParser/Node/Attribute.php +0 -34
  100. package/plugins/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php +0 -29
  101. package/plugins/nikic/php-parser/lib/PhpParser/Node/ComplexType.php +0 -14
  102. package/plugins/nikic/php-parser/lib/PhpParser/Node/Const_.php +0 -37
  103. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +0 -34
  104. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +0 -41
  105. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +0 -34
  106. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +0 -79
  107. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +0 -34
  108. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +0 -12
  109. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php +0 -12
  110. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php +0 -12
  111. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php +0 -12
  112. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php +0 -12
  113. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php +0 -12
  114. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php +0 -12
  115. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php +0 -12
  116. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php +0 -12
  117. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php +0 -12
  118. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php +0 -12
  119. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php +0 -12
  120. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php +0 -12
  121. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +0 -30
  122. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php +0 -34
  123. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +0 -16
  124. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php +0 -16
  125. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php +0 -16
  126. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php +0 -16
  127. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php +0 -16
  128. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php +0 -16
  129. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php +0 -16
  130. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php +0 -16
  131. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php +0 -16
  132. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php +0 -16
  133. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php +0 -16
  134. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php +0 -16
  135. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php +0 -16
  136. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php +0 -16
  137. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php +0 -16
  138. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php +0 -16
  139. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php +0 -16
  140. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php +0 -16
  141. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php +0 -16
  142. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php +0 -16
  143. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php +0 -16
  144. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php +0 -16
  145. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php +0 -16
  146. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php +0 -16
  147. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php +0 -16
  148. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php +0 -16
  149. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php +0 -16
  150. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +0 -40
  151. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +0 -30
  152. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +0 -30
  153. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +0 -39
  154. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +0 -12
  155. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php +0 -12
  156. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php +0 -17
  157. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php +0 -12
  158. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php +0 -12
  159. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php +0 -12
  160. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php +0 -12
  161. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +0 -26
  162. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +0 -36
  163. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +0 -30
  164. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +0 -79
  165. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +0 -34
  166. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +0 -31
  167. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +0 -30
  168. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +0 -31
  169. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +0 -30
  170. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +0 -30
  171. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +0 -34
  172. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +0 -39
  173. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +0 -39
  174. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +0 -35
  175. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +0 -30
  176. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +0 -30
  177. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php +0 -31
  178. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +0 -45
  179. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +0 -41
  180. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +0 -45
  181. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php +0 -35
  182. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +0 -30
  183. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +0 -30
  184. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +0 -30
  185. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +0 -30
  186. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +0 -30
  187. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +0 -35
  188. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +0 -30
  189. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +0 -46
  190. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +0 -36
  191. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +0 -38
  192. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php +0 -30
  193. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +0 -30
  194. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +0 -30
  195. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +0 -30
  196. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +0 -30
  197. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +0 -34
  198. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr.php +0 -9
  199. package/plugins/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +0 -43
  200. package/plugins/nikic/php-parser/lib/PhpParser/Node/Identifier.php +0 -75
  201. package/plugins/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php +0 -30
  202. package/plugins/nikic/php-parser/lib/PhpParser/Node/MatchArm.php +0 -31
  203. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +0 -50
  204. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php +0 -50
  205. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name.php +0 -254
  206. package/plugins/nikic/php-parser/lib/PhpParser/Node/NullableType.php +0 -28
  207. package/plugins/nikic/php-parser/lib/PhpParser/Node/Param.php +0 -60
  208. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +0 -77
  209. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +0 -31
  210. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +0 -30
  211. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +0 -80
  212. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php +0 -16
  213. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php +0 -16
  214. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php +0 -16
  215. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php +0 -16
  216. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php +0 -16
  217. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php +0 -16
  218. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php +0 -16
  219. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php +0 -16
  220. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +0 -28
  221. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +0 -157
  222. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar.php +0 -7
  223. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +0 -30
  224. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +0 -34
  225. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +0 -41
  226. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +0 -85
  227. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +0 -109
  228. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +0 -161
  229. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +0 -137
  230. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +0 -30
  231. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +0 -30
  232. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +0 -34
  233. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +0 -34
  234. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +0 -34
  235. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +0 -30
  236. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +0 -34
  237. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +0 -30
  238. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +0 -37
  239. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php +0 -40
  240. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +0 -33
  241. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +0 -30
  242. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +0 -43
  243. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +0 -47
  244. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +0 -77
  245. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +0 -30
  246. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +0 -31
  247. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +0 -39
  248. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +0 -30
  249. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +0 -43
  250. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +0 -30
  251. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +0 -37
  252. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +0 -31
  253. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +0 -38
  254. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +0 -17
  255. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +0 -91
  256. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +0 -34
  257. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +0 -30
  258. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +0 -37
  259. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +0 -30
  260. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +0 -34
  261. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php +0 -30
  262. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +0 -34
  263. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php +0 -38
  264. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +0 -34
  265. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +0 -13
  266. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +0 -32
  267. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +0 -38
  268. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +0 -30
  269. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +0 -52
  270. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +0 -47
  271. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +0 -34
  272. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt.php +0 -9
  273. package/plugins/nikic/php-parser/lib/PhpParser/Node/UnionType.php +0 -28
  274. package/plugins/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php +0 -17
  275. package/plugins/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php +0 -27
  276. package/plugins/nikic/php-parser/lib/PhpParser/Node.php +0 -151
  277. package/plugins/nikic/php-parser/lib/PhpParser/NodeAbstract.php +0 -178
  278. package/plugins/nikic/php-parser/lib/PhpParser/NodeDumper.php +0 -206
  279. package/plugins/nikic/php-parser/lib/PhpParser/NodeFinder.php +0 -81
  280. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverser.php +0 -291
  281. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +0 -29
  282. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php +0 -20
  283. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php +0 -48
  284. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php +0 -50
  285. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +0 -260
  286. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php +0 -52
  287. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php +0 -41
  288. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor.php +0 -72
  289. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +0 -25
  290. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Multiple.php +0 -55
  291. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php5.php +0 -2682
  292. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php7.php +0 -2898
  293. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Tokens.php +0 -148
  294. package/plugins/nikic/php-parser/lib/PhpParser/Parser.php +0 -18
  295. package/plugins/nikic/php-parser/lib/PhpParser/ParserAbstract.php +0 -1060
  296. package/plugins/nikic/php-parser/lib/PhpParser/ParserFactory.php +0 -76
  297. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +0 -1126
  298. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +0 -1576
  299. package/plugins/rubyastgen/.bundle/config +0 -5
  300. package/plugins/rubyastgen/Gemfile +0 -12
  301. package/plugins/rubyastgen/Gemfile.lock +0 -34
  302. package/plugins/rubyastgen/bundle/bundler/setup.rb +0 -42
  303. package/plugins/rubyastgen/bundle/ruby/3.4.0/bin/racc +0 -29
  304. package/plugins/rubyastgen/bundle/ruby/3.4.0/bin/ruby-parse +0 -29
  305. package/plugins/rubyastgen/bundle/ruby/3.4.0/bin/ruby-rewrite +0 -29
  306. package/plugins/rubyastgen/bundle/ruby/3.4.0/bin/ruby_ast_gen +0 -29
  307. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/.rspec +0 -3
  308. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/Gemfile +0 -10
  309. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/LICENSE.txt +0 -213
  310. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/README.md +0 -46
  311. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/Rakefile +0 -8
  312. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/bin/console +0 -11
  313. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/bin/setup +0 -6
  314. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/exe/ruby_ast_gen +0 -59
  315. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/lib/ruby_ast_gen/node_handling.rb +0 -232
  316. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/lib/ruby_ast_gen/version.rb +0 -5
  317. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/lib/ruby_ast_gen.rb +0 -140
  318. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/ruby_ast_gen.gemspec +0 -25
  319. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/spec/ruby_ast_gen_spec.rb +0 -175
  320. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/spec/spec_helper.rb +0 -15
  321. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/update_version.rb +0 -36
  322. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/gem.build_complete +0 -0
  323. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/gem_make.out +0 -18
  324. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/racc/cparse.so +0 -0
  325. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/LICENSE.MIT +0 -20
  326. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/README.YARD.md +0 -12
  327. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/lib/ast/node.rb +0 -268
  328. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/lib/ast/processor/mixin.rb +0 -288
  329. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/lib/ast/processor.rb +0 -12
  330. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/lib/ast/sexp.rb +0 -30
  331. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/lib/ast.rb +0 -17
  332. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/BSDL +0 -22
  333. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/COPYING +0 -56
  334. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/Gemfile +0 -10
  335. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/README.md +0 -69
  336. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/Rakefile +0 -18
  337. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/bin/console +0 -14
  338. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/bin/setup +0 -8
  339. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/lib/ostruct.rb +0 -489
  340. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/ostruct.gemspec +0 -24
  341. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/LICENSE.txt +0 -26
  342. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/bin/ruby-parse +0 -7
  343. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/bin/ruby-rewrite +0 -7
  344. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/gauntlet_parser.rb +0 -123
  345. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/all.rb +0 -17
  346. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ast/node.rb +0 -40
  347. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ast/processor.rb +0 -293
  348. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/base.rb +0 -294
  349. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/builders/default.rb +0 -2351
  350. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/clobbering_error.rb +0 -13
  351. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/color.rb +0 -32
  352. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/context.rb +0 -51
  353. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/current.rb +0 -146
  354. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/current_arg_stack.rb +0 -46
  355. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/deprecation.rb +0 -13
  356. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/diagnostic/engine.rb +0 -104
  357. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/diagnostic.rb +0 -163
  358. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer/dedenter.rb +0 -88
  359. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer/explanation.rb +0 -55
  360. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer/literal.rb +0 -284
  361. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer/stack_state.rb +0 -49
  362. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer-F0.rb +0 -12931
  363. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer-F1.rb +0 -14884
  364. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer-strings.rb +0 -5433
  365. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/macruby.rb +0 -9634
  366. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/max_numparam_stack.rb +0 -56
  367. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/messages.rb +0 -125
  368. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/meta.rb +0 -48
  369. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/rewriter.rb +0 -105
  370. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby18.rb +0 -9272
  371. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby19.rb +0 -9558
  372. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby20.rb +0 -10229
  373. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby21.rb +0 -10203
  374. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby22.rb +0 -10302
  375. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby23.rb +0 -10322
  376. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby24.rb +0 -10454
  377. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby25.rb +0 -10374
  378. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby26.rb +0 -10352
  379. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby27.rb +0 -11948
  380. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby30.rb +0 -12244
  381. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby31.rb +0 -12717
  382. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby32.rb +0 -12705
  383. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby33.rb +0 -12590
  384. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby34.rb +0 -12597
  385. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/rubymotion.rb +0 -9515
  386. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/runner/ruby_parse.rb +0 -157
  387. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/runner/ruby_rewrite.rb +0 -101
  388. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/runner.rb +0 -299
  389. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/buffer.rb +0 -369
  390. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/comment/associator.rb +0 -233
  391. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/comment.rb +0 -134
  392. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/collection.rb +0 -18
  393. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/condition.rb +0 -21
  394. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/constant.rb +0 -32
  395. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/definition.rb +0 -23
  396. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/for.rb +0 -19
  397. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/heredoc.rb +0 -19
  398. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/index.rb +0 -33
  399. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/keyword.rb +0 -20
  400. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/method_definition.rb +0 -25
  401. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/objc_kwarg.rb +0 -19
  402. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/operator.rb +0 -17
  403. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/rescue_body.rb +0 -21
  404. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/send.rb +0 -36
  405. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/ternary.rb +0 -18
  406. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/variable.rb +0 -31
  407. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map.rb +0 -186
  408. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/range.rb +0 -326
  409. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/rewriter/action.rb +0 -44
  410. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/rewriter.rb +0 -513
  411. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/tree_rewriter/action.rb +0 -243
  412. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/tree_rewriter.rb +0 -431
  413. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/static_environment.rb +0 -134
  414. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/syntax_error.rb +0 -21
  415. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/tree_rewriter.rb +0 -133
  416. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/unknown_encoding_in_magic_comment_error.rb +0 -15
  417. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/variables_stack.rb +0 -36
  418. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/version.rb +0 -5
  419. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser.rb +0 -91
  420. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/parser.gemspec +0 -43
  421. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/BSDL +0 -22
  422. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/COPYING +0 -56
  423. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/ChangeLog +0 -846
  424. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/README.ja.rdoc +0 -58
  425. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/README.rdoc +0 -60
  426. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/TODO +0 -5
  427. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/bin/racc +0 -320
  428. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/en/grammar.en.rdoc +0 -218
  429. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/en/grammar2.en.rdoc +0 -219
  430. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/ja/command.ja.html +0 -99
  431. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/ja/debug.ja.rdoc +0 -36
  432. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/ja/grammar.ja.rdoc +0 -348
  433. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/ja/index.ja.html +0 -10
  434. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/ja/parser.ja.rdoc +0 -125
  435. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/ja/usage.ja.html +0 -414
  436. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/ext/racc/cparse/Makefile +0 -273
  437. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/ext/racc/cparse/cparse.c +0 -840
  438. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/ext/racc/cparse/extconf.rb +0 -8
  439. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/compat.rb +0 -33
  440. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/cparse.so +0 -0
  441. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/debugflags.rb +0 -60
  442. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/exception.rb +0 -16
  443. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/grammar.rb +0 -1191
  444. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/grammarfileparser.rb +0 -667
  445. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/info.rb +0 -18
  446. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/iset.rb +0 -92
  447. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/logfilegenerator.rb +0 -212
  448. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/parser-text.rb +0 -644
  449. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/parser.rb +0 -630
  450. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/parserfilegenerator.rb +0 -473
  451. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/sourcetext.rb +0 -35
  452. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/state.rb +0 -976
  453. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/statetransitiontable.rb +0 -311
  454. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/static.rb +0 -5
  455. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc.rb +0 -6
  456. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/ast-2.4.3.gemspec +0 -29
  457. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/ostruct-0.6.1.gemspec +0 -21
  458. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/parser-3.3.8.0.gemspec +0 -37
  459. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/racc-1.8.1.gemspec +0 -28
  460. package/plugins/rubyastgen/setup.ps1 +0 -4
  461. package/plugins/rubyastgen/setup.sh +0 -6
  462. package/utils.mjs +0 -139
@@ -1,268 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module AST
4
- # Node is an immutable class, instances of which represent abstract
5
- # syntax tree nodes. It combines semantic information (i.e. anything
6
- # that affects the algorithmic properties of a program) with
7
- # meta-information (line numbers or compiler intermediates).
8
- #
9
- # Notes on inheritance
10
- # ====================
11
- #
12
- # The distinction between semantics and metadata is important. Complete
13
- # semantic information should be contained within just the {#type} and
14
- # {#children} of a Node instance; in other words, if an AST was to be
15
- # stripped of all meta-information, it should remain a valid AST which
16
- # could be successfully processed to yield a result with the same
17
- # algorithmic properties.
18
- #
19
- # Thus, Node should never be inherited in order to define methods which
20
- # affect or return semantic information, such as getters for `class_name`,
21
- # `superclass` and `body` in the case of a hypothetical `ClassNode`. The
22
- # correct solution is to use a generic Node with a {#type} of `:class`
23
- # and three children. See also {Processor} for tips on working with such
24
- # ASTs.
25
- #
26
- # On the other hand, Node can and should be inherited to define
27
- # application-specific metadata (see also {#initialize}) or customize the
28
- # printing format. It is expected that an application would have one or two
29
- # such classes and use them across the entire codebase.
30
- #
31
- # The rationale for this pattern is extensibility and maintainability.
32
- # Unlike static ones, dynamic languages do not require the presence of a
33
- # predefined, rigid structure, nor does it improve dispatch efficiency,
34
- # and while such a structure can certainly be defined, it does not add
35
- # any value but incurs a maintaining cost.
36
- # For example, extending the AST even with a transformation-local
37
- # temporary node type requires making globally visible changes to
38
- # the codebase.
39
- #
40
- class Node
41
- # Returns the type of this node.
42
- # @return [Symbol]
43
- attr_reader :type
44
-
45
- # Returns the children of this node.
46
- # The returned value is frozen.
47
- # The to_a alias is useful for decomposing nodes concisely.
48
- # For example:
49
- #
50
- # node = s(:gasgn, :$foo, s(:integer, 1))
51
- # var_name, value = *node
52
- # p var_name # => :$foo
53
- # p value # => (integer 1)
54
- #
55
- # @return [Array]
56
- attr_reader :children
57
- alias to_a children
58
-
59
- # Returns the precomputed hash value for this node
60
- # @return [Integer]
61
- attr_reader :hash
62
-
63
- # Constructs a new instance of Node.
64
- #
65
- # The arguments `type` and `children` are converted with `to_sym` and
66
- # `to_a` respectively. Additionally, the result of converting `children`
67
- # is frozen. While mutating the arguments is generally considered harmful,
68
- # the most common case is to pass an array literal to the constructor. If
69
- # your code does not expect the argument to be frozen, use `#dup`.
70
- #
71
- # The `properties` hash is passed to {#assign_properties}.
72
- def initialize(type, children=[], properties={})
73
- @type, @children = type.to_sym, children.to_a.freeze
74
-
75
- assign_properties(properties)
76
-
77
- @hash = [@type, @children, self.class].hash
78
-
79
- freeze
80
- end
81
-
82
- # Test if other object is equal to
83
- # @param [Object] other
84
- # @return [Boolean]
85
- def eql?(other)
86
- self.class.eql?(other.class) &&
87
- @type.eql?(other.type) &&
88
- @children.eql?(other.children)
89
- end
90
-
91
- # By default, each entry in the `properties` hash is assigned to
92
- # an instance variable in this instance of Node. A subclass should define
93
- # attribute readers for such variables. The values passed in the hash
94
- # are not frozen or whitelisted; such behavior can also be implemented
95
- # by subclassing Node and overriding this method.
96
- #
97
- # @return [nil]
98
- def assign_properties(properties)
99
- properties.each do |name, value|
100
- instance_variable_set :"@#{name}", value
101
- end
102
-
103
- nil
104
- end
105
- protected :assign_properties
106
-
107
- alias :original_dup :dup
108
- private :original_dup
109
-
110
- # Nodes are already frozen, so there is no harm in returning the
111
- # current node as opposed to initializing from scratch and freezing
112
- # another one.
113
- #
114
- # @return self
115
- def dup
116
- self
117
- end
118
- alias :clone :dup
119
-
120
- # Returns a new instance of Node where non-nil arguments replace the
121
- # corresponding fields of `self`.
122
- #
123
- # For example, `Node.new(:foo, [ 1, 2 ]).updated(:bar)` would yield
124
- # `(bar 1 2)`, and `Node.new(:foo, [ 1, 2 ]).updated(nil, [])` would
125
- # yield `(foo)`.
126
- #
127
- # If the resulting node would be identical to `self`, does nothing.
128
- #
129
- # @param [Symbol, nil] type
130
- # @param [Array, nil] children
131
- # @param [Hash, nil] properties
132
- # @return [AST::Node]
133
- def updated(type=nil, children=nil, properties=nil)
134
- new_type = type || @type
135
- new_children = children || @children
136
- new_properties = properties || {}
137
-
138
- if @type == new_type &&
139
- @children == new_children &&
140
- properties.nil?
141
- self
142
- else
143
- copy = original_dup
144
- copy.send :initialize, new_type, new_children, new_properties
145
- copy
146
- end
147
- end
148
-
149
- # Compares `self` to `other`, possibly converting with `to_ast`. Only
150
- # `type` and `children` are compared; metadata is deliberately ignored.
151
- #
152
- # @return [Boolean]
153
- def ==(other)
154
- if equal?(other)
155
- true
156
- elsif other.respond_to? :to_ast
157
- other = other.to_ast
158
- other.type == self.type &&
159
- other.children == self.children
160
- else
161
- false
162
- end
163
- end
164
-
165
- # Concatenates `array` with `children` and returns the resulting node.
166
- #
167
- # @return [AST::Node]
168
- def concat(array)
169
- updated(nil, @children + array.to_a)
170
- end
171
-
172
- alias + concat
173
-
174
- # Appends `element` to `children` and returns the resulting node.
175
- #
176
- # @return [AST::Node]
177
- def append(element)
178
- updated(nil, @children + [element])
179
- end
180
-
181
- alias << append
182
-
183
- # Converts `self` to a pretty-printed s-expression.
184
- #
185
- # @param [Integer] indent Base indentation level.
186
- # @return [String]
187
- def to_sexp(indent=0)
188
- indented = " " * indent
189
- sexp = "#{indented}(#{fancy_type}"
190
-
191
- children.each do |child|
192
- if child.is_a?(Node)
193
- sexp += "\n#{child.to_sexp(indent + 1)}"
194
- else
195
- sexp += " #{child.inspect}"
196
- end
197
- end
198
-
199
- sexp += ")"
200
-
201
- sexp
202
- end
203
-
204
- alias to_s to_sexp
205
-
206
- # Converts `self` to a s-expression ruby string.
207
- # The code return will recreate the node, using the sexp module s()
208
- #
209
- # @param [Integer] indent Base indentation level.
210
- # @return [String]
211
- def inspect(indent=0)
212
- indented = " " * indent
213
- sexp = "#{indented}s(:#{@type}"
214
-
215
- children.each do |child|
216
- if child.is_a?(Node)
217
- sexp += ",\n#{child.inspect(indent + 1)}"
218
- else
219
- sexp += ", #{child.inspect}"
220
- end
221
- end
222
-
223
- sexp += ")"
224
-
225
- sexp
226
- end
227
-
228
- # @return [AST::Node] self
229
- def to_ast
230
- self
231
- end
232
-
233
- # Converts `self` to an Array where the first element is the type as a Symbol,
234
- # and subsequent elements are the same representation of its children.
235
- #
236
- # @return [Array<Symbol, [...Array]>]
237
- def to_sexp_array
238
- children_sexp_arrs = children.map do |child|
239
- if child.is_a?(Node)
240
- child.to_sexp_array
241
- else
242
- child
243
- end
244
- end
245
-
246
- [type, *children_sexp_arrs]
247
- end
248
-
249
- # Enables matching for Node, where type is the first element
250
- # and the children are remaining items.
251
- #
252
- # @return [Array]
253
- def deconstruct
254
- [type, *children]
255
- end
256
-
257
- protected
258
-
259
- # Returns `@type` with all underscores replaced by dashes. This allows
260
- # to write symbol literals without quotes in Ruby sources and yet have
261
- # nicely looking s-expressions.
262
- #
263
- # @return [String]
264
- def fancy_type
265
- @type.to_s.gsub('_', '-')
266
- end
267
- end
268
- end
@@ -1,288 +0,0 @@
1
- module AST
2
- class Processor
3
- # The processor module is a module which helps transforming one
4
- # AST into another. In a nutshell, the {#process} method accepts
5
- # a {Node} and dispatches it to a handler corresponding to its
6
- # type, and returns a (possibly) updated variant of the node.
7
- #
8
- # The processor module has a set of associated design patterns.
9
- # They are best explained with a concrete example. Let's define a
10
- # simple arithmetic language and an AST format for it:
11
- #
12
- # Terminals (AST nodes which do not have other AST nodes inside):
13
- #
14
- # * `(integer <int-literal>)`,
15
- #
16
- # Nonterminals (AST nodes with other nodes as children):
17
- #
18
- # * `(add <node> <node>)`,
19
- # * `(multiply <node> <node>)`,
20
- # * `(divide <node> <node>)`,
21
- # * `(negate <node>)`,
22
- # * `(store <node> <string-literal>)`: stores value of `<node>`
23
- # into a variable named `<string-literal>`,
24
- # * `(load <string-literal>)`: loads value of a variable named
25
- # `<string-literal>`,
26
- # * `(each <node> ...)`: computes each of the `<node>`s and
27
- # prints the result.
28
- #
29
- # All AST nodes have the same Ruby class, and therefore they don't
30
- # know how to traverse themselves. (A solution which dynamically
31
- # checks the type of children is possible, but is slow and
32
- # error-prone.) So, a class including the module which knows how
33
- # to traverse the entire tree should be defined. Such classes
34
- # have a handler for each nonterminal node which recursively
35
- # processes children nodes:
36
- #
37
- # require 'ast'
38
- #
39
- # class ArithmeticsProcessor
40
- # include AST::Processor::Mixin
41
- # # This method traverses any binary operators such as (add)
42
- # # or (multiply).
43
- # def process_binary_op(node)
44
- # # Children aren't decomposed automatically; it is
45
- # # suggested to use Ruby multiple assignment expansion,
46
- # # as it is very convenient here.
47
- # left_expr, right_expr = *node
48
- #
49
- # # AST::Node#updated won't change node type if nil is
50
- # # passed as a first argument, which allows to reuse the
51
- # # same handler for multiple node types using `alias'
52
- # # (below).
53
- # node.updated(nil, [
54
- # process(left_expr),
55
- # process(right_expr)
56
- # ])
57
- # end
58
- # alias_method :on_add, :process_binary_op
59
- # alias_method :on_multiply, :process_binary_op
60
- # alias_method :on_divide, :process_binary_op
61
- #
62
- # def on_negate(node)
63
- # # It is also possible to use #process_all for more
64
- # # compact code if every child is a Node.
65
- # node.updated(nil, process_all(node))
66
- # end
67
- #
68
- # def on_store(node)
69
- # expr, variable_name = *node
70
- #
71
- # # Note that variable_name is not a Node and thus isn't
72
- # # passed to #process.
73
- # node.updated(nil, [
74
- # process(expr),
75
- # variable_name
76
- # ])
77
- # end
78
- #
79
- # # (load) is effectively a terminal node, and so it does
80
- # # not need an explicit handler, as the following is the
81
- # # default behavior. Essentially, for any nodes that don't
82
- # # have a defined handler, the node remains unchanged.
83
- # def on_load(node)
84
- # nil
85
- # end
86
- #
87
- # def on_each(node)
88
- # node.updated(nil, process_all(node))
89
- # end
90
- # end
91
- #
92
- # Let's test our ArithmeticsProcessor:
93
- #
94
- # include AST::Sexp
95
- # expr = s(:add, s(:integer, 2), s(:integer, 2))
96
- #
97
- # p ArithmeticsProcessor.new.process(expr) == expr # => true
98
- #
99
- # As expected, it does not change anything at all. This isn't
100
- # actually very useful, so let's now define a Calculator, which
101
- # will compute the expression values:
102
- #
103
- # # This Processor folds nonterminal nodes and returns an
104
- # # (integer) terminal node.
105
- # class ArithmeticsCalculator < ArithmeticsProcessor
106
- # def compute_op(node)
107
- # # First, node children are processed and then unpacked
108
- # # to local variables.
109
- # nodes = process_all(node)
110
- #
111
- # if nodes.all? { |node| node.type == :integer }
112
- # # If each of those nodes represents a literal, we can
113
- # # fold this node!
114
- # values = nodes.map { |node| node.children.first }
115
- # AST::Node.new(:integer, [
116
- # yield(values)
117
- # ])
118
- # else
119
- # # Otherwise, we can just leave the current node in the
120
- # # tree and only update it with processed children
121
- # # nodes, which can be partially folded.
122
- # node.updated(nil, nodes)
123
- # end
124
- # end
125
- #
126
- # def on_add(node)
127
- # compute_op(node) { |left, right| left + right }
128
- # end
129
- #
130
- # def on_multiply(node)
131
- # compute_op(node) { |left, right| left * right }
132
- # end
133
- # end
134
- #
135
- # Let's check:
136
- #
137
- # p ArithmeticsCalculator.new.process(expr) # => (integer 4)
138
- #
139
- # Excellent, the calculator works! Now, a careful reader could
140
- # notice that the ArithmeticsCalculator does not know how to
141
- # divide numbers. What if we pass an expression with division to
142
- # it?
143
- #
144
- # expr_with_division = \
145
- # s(:add,
146
- # s(:integer, 1),
147
- # s(:divide,
148
- # s(:add, s(:integer, 8), s(:integer, 4)),
149
- # s(:integer, 3))) # 1 + (8 + 4) / 3
150
- #
151
- # folded_expr_with_division = ArithmeticsCalculator.new.process(expr_with_division)
152
- # p folded_expr_with_division
153
- # # => (add
154
- # # (integer 1)
155
- # # (divide
156
- # # (integer 12)
157
- # # (integer 3)))
158
- #
159
- # As you can see, the expression was folded _partially_: the inner
160
- # `(add)` node which could be computed was folded to
161
- # `(integer 12)`, the `(divide)` node is left as-is because there
162
- # is no computing handler for it, and the root `(add)` node was
163
- # also left as it is because some of its children were not
164
- # literals.
165
- #
166
- # Note that this partial folding is only possible because the
167
- # _data_ format, i.e. the format in which the computed values of
168
- # the nodes are represented, is the same as the AST itself.
169
- #
170
- # Let's extend our ArithmeticsCalculator class further.
171
- #
172
- # class ArithmeticsCalculator
173
- # def on_divide(node)
174
- # compute_op(node) { |left, right| left / right }
175
- # end
176
- #
177
- # def on_negate(node)
178
- # # Note how #compute_op works regardless of the operator
179
- # # arity.
180
- # compute_op(node) { |value| -value }
181
- # end
182
- # end
183
- #
184
- # Now, let's apply our renewed ArithmeticsCalculator to a partial
185
- # result of previous evaluation:
186
- #
187
- # p ArithmeticsCalculator.new.process(expr_with_division) # => (integer 5)
188
- #
189
- # Five! Excellent. This is also pretty much how CRuby 1.8 executed
190
- # its programs.
191
- #
192
- # Now, let's do some automated bug searching. Division by zero is
193
- # an error, right? So if we could detect that someone has divided
194
- # by zero before the program is even run, that could save some
195
- # debugging time.
196
- #
197
- # class DivisionByZeroVerifier < ArithmeticsProcessor
198
- # class VerificationFailure < Exception; end
199
- #
200
- # def on_divide(node)
201
- # # You need to process the children to handle nested divisions
202
- # # such as:
203
- # # (divide
204
- # # (integer 1)
205
- # # (divide (integer 1) (integer 0))
206
- # left, right = process_all(node)
207
- #
208
- # if right.type == :integer &&
209
- # right.children.first == 0
210
- # raise VerificationFailure, "Ouch! This code divides by zero."
211
- # end
212
- # end
213
- #
214
- # def divides_by_zero?(ast)
215
- # process(ast)
216
- # false
217
- # rescue VerificationFailure
218
- # true
219
- # end
220
- # end
221
- #
222
- # nice_expr = \
223
- # s(:divide,
224
- # s(:add, s(:integer, 10), s(:integer, 2)),
225
- # s(:integer, 4))
226
- #
227
- # p DivisionByZeroVerifier.new.divides_by_zero?(nice_expr)
228
- # # => false. Good.
229
- #
230
- # bad_expr = \
231
- # s(:add, s(:integer, 10),
232
- # s(:divide, s(:integer, 1), s(:integer, 0)))
233
- #
234
- # p DivisionByZeroVerifier.new.divides_by_zero?(bad_expr)
235
- # # => true. WHOOPS. DO NOT RUN THIS.
236
- #
237
- # Of course, this won't detect more complex cases... unless you
238
- # use some partial evaluation before! The possibilites are
239
- # endless. Have fun.
240
- module Mixin
241
- # Dispatches `node`. If a node has type `:foo`, then a handler
242
- # named `on_foo` is invoked with one argument, the `node`; if
243
- # there isn't such a handler, {#handler_missing} is invoked
244
- # with the same argument.
245
- #
246
- # If the handler returns `nil`, `node` is returned; otherwise,
247
- # the return value of the handler is passed along.
248
- #
249
- # @param [AST::Node, nil] node
250
- # @return [AST::Node, nil]
251
- def process(node)
252
- return if node.nil?
253
-
254
- node = node.to_ast
255
-
256
- # Invoke a specific handler
257
- on_handler = :"on_#{node.type}"
258
- if respond_to? on_handler
259
- new_node = send on_handler, node
260
- else
261
- new_node = handler_missing(node)
262
- end
263
-
264
- node = new_node if new_node
265
-
266
- node
267
- end
268
-
269
- # {#process}es each node from `nodes` and returns an array of
270
- # results.
271
- #
272
- # @param [Array<AST::Node>] nodes
273
- # @return [Array<AST::Node>]
274
- def process_all(nodes)
275
- nodes.to_a.map do |node|
276
- process node
277
- end
278
- end
279
-
280
- # Default handler. Does nothing.
281
- #
282
- # @param [AST::Node] node
283
- # @return [AST::Node, nil]
284
- def handler_missing(node)
285
- end
286
- end
287
- end
288
- end
@@ -1,12 +0,0 @@
1
- module AST
2
- # This class includes {AST::Processor::Mixin}; however, it is
3
- # deprecated, since the module defines all of the behaviors that
4
- # the processor includes. Any new libraries should use
5
- # {AST::Processor::Mixin} instead of subclassing this.
6
- #
7
- # @deprecated Use {AST::Processor::Mixin} instead.
8
- class Processor
9
- require_relative 'processor/mixin'
10
- include Mixin
11
- end
12
- end
@@ -1,30 +0,0 @@
1
- module AST
2
- # This simple module is very useful in the cases where one needs
3
- # to define deeply nested ASTs from Ruby code, for example, in
4
- # tests. It should be used like this:
5
- #
6
- # describe YourLanguage do
7
- # include ::AST::Sexp
8
- #
9
- # it "should correctly parse expressions" do
10
- # YourLanguage.parse("1 + 2 * 3").should ==
11
- # s(:add,
12
- # s(:integer, 1),
13
- # s(:multiply,
14
- # s(:integer, 2),
15
- # s(:integer, 3)))
16
- # end
17
- # end
18
- #
19
- # This way the amount of boilerplate code is greatly reduced.
20
- module Sexp
21
- # Creates a {Node} with type `type` and children `children`.
22
- # Note that the resulting node is of the type AST::Node and not a
23
- # subclass.
24
- # This would not pose a problem with comparisons, as {Node#==}
25
- # ignores metadata.
26
- def s(type, *children)
27
- Node.new(type, children)
28
- end
29
- end
30
- end
@@ -1,17 +0,0 @@
1
- # {AST} is a library for manipulating abstract syntax trees.
2
- #
3
- # It embraces immutability; each AST node is inherently frozen at
4
- # creation, and updating a child node requires recreating that node
5
- # and its every parent, recursively.
6
- # This is a design choice. It does create some pressure on
7
- # garbage collector, but completely eliminates all concurrency
8
- # and aliasing problems.
9
- #
10
- # See also {AST::Node}, {AST::Processor::Mixin} and {AST::Sexp} for
11
- # additional recommendations and design patterns.
12
- #
13
- module AST
14
- require_relative 'ast/node'
15
- require_relative 'ast/processor'
16
- require_relative 'ast/sexp'
17
- end
@@ -1,22 +0,0 @@
1
- Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved.
2
-
3
- Redistribution and use in source and binary forms, with or without
4
- modification, are permitted provided that the following conditions
5
- are met:
6
- 1. Redistributions of source code must retain the above copyright
7
- notice, this list of conditions and the following disclaimer.
8
- 2. Redistributions in binary form must reproduce the above copyright
9
- notice, this list of conditions and the following disclaimer in the
10
- documentation and/or other materials provided with the distribution.
11
-
12
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22
- SUCH DAMAGE.
@@ -1,56 +0,0 @@
1
- Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
2
- You can redistribute it and/or modify it under either the terms of the
3
- 2-clause BSDL (see the file BSDL), or the conditions below:
4
-
5
- 1. You may make and give away verbatim copies of the source form of the
6
- software without restriction, provided that you duplicate all of the
7
- original copyright notices and associated disclaimers.
8
-
9
- 2. You may modify your copy of the software in any way, provided that
10
- you do at least ONE of the following:
11
-
12
- a. place your modifications in the Public Domain or otherwise
13
- make them Freely Available, such as by posting said
14
- modifications to Usenet or an equivalent medium, or by allowing
15
- the author to include your modifications in the software.
16
-
17
- b. use the modified software only within your corporation or
18
- organization.
19
-
20
- c. give non-standard binaries non-standard names, with
21
- instructions on where to get the original software distribution.
22
-
23
- d. make other distribution arrangements with the author.
24
-
25
- 3. You may distribute the software in object code or binary form,
26
- provided that you do at least ONE of the following:
27
-
28
- a. distribute the binaries and library files of the software,
29
- together with instructions (in the manual page or equivalent)
30
- on where to get the original distribution.
31
-
32
- b. accompany the distribution with the machine-readable source of
33
- the software.
34
-
35
- c. give non-standard binaries non-standard names, with
36
- instructions on where to get the original software distribution.
37
-
38
- d. make other distribution arrangements with the author.
39
-
40
- 4. You may modify and include the part of the software into any other
41
- software (possibly commercial). But some files in the distribution
42
- are not written by the author, so that they are not under these terms.
43
-
44
- For the list of those files and their copying conditions, see the
45
- file LEGAL.
46
-
47
- 5. The scripts and library files supplied as input to or produced as
48
- output from the software do not automatically fall under the
49
- copyright of the software, but belong to whomever generated them,
50
- and may be sold commercially, and may be aggregated with this
51
- software.
52
-
53
- 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
54
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
55
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
56
- PURPOSE.