@appthreat/atom-parsetools 1.0.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 (441) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +78 -0
  3. package/astgen.js +421 -0
  4. package/index.js +1 -0
  5. package/package.json +53 -0
  6. package/phpastgen.js +33 -0
  7. package/plugins/.gitkeep +0 -0
  8. package/plugins/autoload.php +22 -0
  9. package/plugins/bin/bundler +14 -0
  10. package/plugins/bin/php-parse +119 -0
  11. package/plugins/bin/ruby_ast_gen +14 -0
  12. package/plugins/composer/ClassLoader.php +579 -0
  13. package/plugins/composer/InstalledVersions.php +396 -0
  14. package/plugins/composer/LICENSE +21 -0
  15. package/plugins/composer/autoload_classmap.php +260 -0
  16. package/plugins/composer/autoload_namespaces.php +9 -0
  17. package/plugins/composer/autoload_psr4.php +10 -0
  18. package/plugins/composer/autoload_real.php +36 -0
  19. package/plugins/composer/autoload_static.php +286 -0
  20. package/plugins/composer/installed.json +65 -0
  21. package/plugins/composer/installed.php +32 -0
  22. package/plugins/log4j2.xml +13 -0
  23. package/plugins/nikic/php-parser/LICENSE +29 -0
  24. package/plugins/nikic/php-parser/README.md +225 -0
  25. package/plugins/nikic/php-parser/bin/php-parse +205 -0
  26. package/plugins/nikic/php-parser/composer.json +41 -0
  27. package/plugins/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +148 -0
  28. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Class_.php +146 -0
  29. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Declaration.php +43 -0
  30. package/plugins/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php +85 -0
  31. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Enum_.php +117 -0
  32. package/plugins/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +73 -0
  33. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Function_.php +67 -0
  34. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Interface_.php +93 -0
  35. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Method.php +146 -0
  36. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php +45 -0
  37. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Param.php +168 -0
  38. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Property.php +161 -0
  39. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php +64 -0
  40. package/plugins/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php +148 -0
  41. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Trait_.php +78 -0
  42. package/plugins/nikic/php-parser/lib/PhpParser/Builder/Use_.php +49 -0
  43. package/plugins/nikic/php-parser/lib/PhpParser/Builder.php +13 -0
  44. package/plugins/nikic/php-parser/lib/PhpParser/BuilderFactory.php +399 -0
  45. package/plugins/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +335 -0
  46. package/plugins/nikic/php-parser/lib/PhpParser/Comment/Doc.php +7 -0
  47. package/plugins/nikic/php-parser/lib/PhpParser/Comment.php +239 -0
  48. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php +6 -0
  49. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +229 -0
  50. package/plugins/nikic/php-parser/lib/PhpParser/Error.php +180 -0
  51. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php +46 -0
  52. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php +18 -0
  53. package/plugins/nikic/php-parser/lib/PhpParser/ErrorHandler.php +13 -0
  54. package/plugins/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php +27 -0
  55. package/plugins/nikic/php-parser/lib/PhpParser/Internal/Differ.php +164 -0
  56. package/plugins/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +64 -0
  57. package/plugins/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +286 -0
  58. package/plugins/nikic/php-parser/lib/PhpParser/JsonDecoder.php +103 -0
  59. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +251 -0
  60. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php +56 -0
  61. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php +47 -0
  62. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php +31 -0
  63. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php +44 -0
  64. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php +76 -0
  65. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php +23 -0
  66. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +62 -0
  67. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php +23 -0
  68. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php +67 -0
  69. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php +105 -0
  70. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php +31 -0
  71. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php +36 -0
  72. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php +36 -0
  73. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php +25 -0
  74. package/plugins/nikic/php-parser/lib/PhpParser/Lexer.php +560 -0
  75. package/plugins/nikic/php-parser/lib/PhpParser/NameContext.php +285 -0
  76. package/plugins/nikic/php-parser/lib/PhpParser/Node/Arg.php +46 -0
  77. package/plugins/nikic/php-parser/lib/PhpParser/Node/Attribute.php +34 -0
  78. package/plugins/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php +29 -0
  79. package/plugins/nikic/php-parser/lib/PhpParser/Node/ComplexType.php +14 -0
  80. package/plugins/nikic/php-parser/lib/PhpParser/Node/Const_.php +37 -0
  81. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php +34 -0
  82. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +41 -0
  83. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php +34 -0
  84. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +79 -0
  85. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php +34 -0
  86. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php +12 -0
  87. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php +12 -0
  88. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php +12 -0
  89. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php +12 -0
  90. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php +12 -0
  91. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php +12 -0
  92. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php +12 -0
  93. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php +12 -0
  94. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php +12 -0
  95. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php +12 -0
  96. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php +12 -0
  97. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php +12 -0
  98. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php +12 -0
  99. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php +30 -0
  100. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php +34 -0
  101. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php +16 -0
  102. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php +16 -0
  103. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php +16 -0
  104. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php +16 -0
  105. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php +16 -0
  106. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php +16 -0
  107. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php +16 -0
  108. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php +16 -0
  109. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php +16 -0
  110. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php +16 -0
  111. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php +16 -0
  112. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php +16 -0
  113. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php +16 -0
  114. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php +16 -0
  115. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php +16 -0
  116. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php +16 -0
  117. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php +16 -0
  118. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php +16 -0
  119. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php +16 -0
  120. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php +16 -0
  121. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php +16 -0
  122. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php +16 -0
  123. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php +16 -0
  124. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php +16 -0
  125. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php +16 -0
  126. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php +16 -0
  127. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php +16 -0
  128. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php +40 -0
  129. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php +30 -0
  130. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php +30 -0
  131. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php +39 -0
  132. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php +12 -0
  133. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php +12 -0
  134. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php +17 -0
  135. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php +12 -0
  136. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php +12 -0
  137. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php +12 -0
  138. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php +12 -0
  139. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php +26 -0
  140. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +36 -0
  141. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php +30 -0
  142. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +79 -0
  143. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php +34 -0
  144. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php +31 -0
  145. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php +30 -0
  146. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php +31 -0
  147. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php +30 -0
  148. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php +30 -0
  149. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +34 -0
  150. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +39 -0
  151. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php +39 -0
  152. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php +35 -0
  153. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php +30 -0
  154. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php +30 -0
  155. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php +31 -0
  156. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +45 -0
  157. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +41 -0
  158. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +45 -0
  159. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php +35 -0
  160. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php +30 -0
  161. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php +30 -0
  162. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php +30 -0
  163. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php +30 -0
  164. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php +30 -0
  165. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php +35 -0
  166. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php +30 -0
  167. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +46 -0
  168. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php +36 -0
  169. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php +38 -0
  170. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php +30 -0
  171. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php +30 -0
  172. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php +30 -0
  173. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php +30 -0
  174. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php +30 -0
  175. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +34 -0
  176. package/plugins/nikic/php-parser/lib/PhpParser/Node/Expr.php +9 -0
  177. package/plugins/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +43 -0
  178. package/plugins/nikic/php-parser/lib/PhpParser/Node/Identifier.php +75 -0
  179. package/plugins/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php +30 -0
  180. package/plugins/nikic/php-parser/lib/PhpParser/Node/MatchArm.php +31 -0
  181. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php +50 -0
  182. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php +50 -0
  183. package/plugins/nikic/php-parser/lib/PhpParser/Node/Name.php +254 -0
  184. package/plugins/nikic/php-parser/lib/PhpParser/Node/NullableType.php +28 -0
  185. package/plugins/nikic/php-parser/lib/PhpParser/Node/Param.php +60 -0
  186. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +77 -0
  187. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php +31 -0
  188. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php +30 -0
  189. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +80 -0
  190. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php +16 -0
  191. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php +16 -0
  192. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php +16 -0
  193. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php +16 -0
  194. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php +16 -0
  195. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php +16 -0
  196. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php +16 -0
  197. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php +16 -0
  198. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php +28 -0
  199. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +157 -0
  200. package/plugins/nikic/php-parser/lib/PhpParser/Node/Scalar.php +7 -0
  201. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +30 -0
  202. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php +34 -0
  203. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +41 -0
  204. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +85 -0
  205. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +109 -0
  206. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +161 -0
  207. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +137 -0
  208. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php +30 -0
  209. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +30 -0
  210. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php +34 -0
  211. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +34 -0
  212. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php +34 -0
  213. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php +30 -0
  214. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php +34 -0
  215. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php +30 -0
  216. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +37 -0
  217. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php +40 -0
  218. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php +33 -0
  219. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php +30 -0
  220. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php +43 -0
  221. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php +47 -0
  222. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +77 -0
  223. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php +30 -0
  224. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php +31 -0
  225. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php +39 -0
  226. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php +30 -0
  227. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php +43 -0
  228. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php +30 -0
  229. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php +37 -0
  230. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php +31 -0
  231. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +38 -0
  232. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php +17 -0
  233. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +91 -0
  234. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +34 -0
  235. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +30 -0
  236. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +37 -0
  237. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php +30 -0
  238. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php +34 -0
  239. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php +30 -0
  240. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php +34 -0
  241. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php +38 -0
  242. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php +34 -0
  243. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php +13 -0
  244. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php +32 -0
  245. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +38 -0
  246. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php +30 -0
  247. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php +52 -0
  248. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php +47 -0
  249. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php +34 -0
  250. package/plugins/nikic/php-parser/lib/PhpParser/Node/Stmt.php +9 -0
  251. package/plugins/nikic/php-parser/lib/PhpParser/Node/UnionType.php +28 -0
  252. package/plugins/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php +17 -0
  253. package/plugins/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php +27 -0
  254. package/plugins/nikic/php-parser/lib/PhpParser/Node.php +151 -0
  255. package/plugins/nikic/php-parser/lib/PhpParser/NodeAbstract.php +178 -0
  256. package/plugins/nikic/php-parser/lib/PhpParser/NodeDumper.php +206 -0
  257. package/plugins/nikic/php-parser/lib/PhpParser/NodeFinder.php +81 -0
  258. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverser.php +291 -0
  259. package/plugins/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php +29 -0
  260. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php +20 -0
  261. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php +48 -0
  262. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php +50 -0
  263. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +260 -0
  264. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php +52 -0
  265. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php +41 -0
  266. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitor.php +72 -0
  267. package/plugins/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php +25 -0
  268. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Multiple.php +55 -0
  269. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php5.php +2682 -0
  270. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Php7.php +2898 -0
  271. package/plugins/nikic/php-parser/lib/PhpParser/Parser/Tokens.php +148 -0
  272. package/plugins/nikic/php-parser/lib/PhpParser/Parser.php +18 -0
  273. package/plugins/nikic/php-parser/lib/PhpParser/ParserAbstract.php +1060 -0
  274. package/plugins/nikic/php-parser/lib/PhpParser/ParserFactory.php +76 -0
  275. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +1126 -0
  276. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +1576 -0
  277. package/plugins/rubyastgen/.bundle/config +5 -0
  278. package/plugins/rubyastgen/Gemfile +12 -0
  279. package/plugins/rubyastgen/Gemfile.lock +34 -0
  280. package/plugins/rubyastgen/bundle/bundler/setup.rb +42 -0
  281. package/plugins/rubyastgen/bundle/ruby/3.4.0/bin/racc +29 -0
  282. package/plugins/rubyastgen/bundle/ruby/3.4.0/bin/ruby-parse +29 -0
  283. package/plugins/rubyastgen/bundle/ruby/3.4.0/bin/ruby-rewrite +29 -0
  284. package/plugins/rubyastgen/bundle/ruby/3.4.0/bin/ruby_ast_gen +29 -0
  285. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/.rspec +3 -0
  286. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/Gemfile +10 -0
  287. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/LICENSE.txt +213 -0
  288. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/README.md +46 -0
  289. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/Rakefile +8 -0
  290. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/bin/console +11 -0
  291. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/bin/setup +6 -0
  292. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/exe/ruby_ast_gen +59 -0
  293. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/lib/ruby_ast_gen/node_handling.rb +232 -0
  294. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/lib/ruby_ast_gen/version.rb +5 -0
  295. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/lib/ruby_ast_gen.rb +140 -0
  296. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/ruby_ast_gen.gemspec +25 -0
  297. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/spec/ruby_ast_gen_spec.rb +175 -0
  298. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/spec/spec_helper.rb +15 -0
  299. package/plugins/rubyastgen/bundle/ruby/3.4.0/bundler/gems/ruby_ast_gen-d8b5c5740b5a/update_version.rb +36 -0
  300. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/gem.build_complete +0 -0
  301. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/gem_make.out +18 -0
  302. package/plugins/rubyastgen/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/racc-1.8.1/racc/cparse.so +0 -0
  303. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/LICENSE.MIT +20 -0
  304. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/README.YARD.md +12 -0
  305. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/lib/ast/node.rb +268 -0
  306. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/lib/ast/processor/mixin.rb +288 -0
  307. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/lib/ast/processor.rb +12 -0
  308. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/lib/ast/sexp.rb +30 -0
  309. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ast-2.4.3/lib/ast.rb +17 -0
  310. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/BSDL +22 -0
  311. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/COPYING +56 -0
  312. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/Gemfile +10 -0
  313. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/README.md +69 -0
  314. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/Rakefile +18 -0
  315. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/bin/console +14 -0
  316. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/bin/setup +8 -0
  317. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/lib/ostruct.rb +489 -0
  318. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/ostruct-0.6.1/ostruct.gemspec +24 -0
  319. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/LICENSE.txt +26 -0
  320. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/bin/ruby-parse +7 -0
  321. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/bin/ruby-rewrite +7 -0
  322. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/gauntlet_parser.rb +123 -0
  323. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/all.rb +17 -0
  324. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ast/node.rb +40 -0
  325. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ast/processor.rb +293 -0
  326. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/base.rb +294 -0
  327. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/builders/default.rb +2351 -0
  328. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/clobbering_error.rb +13 -0
  329. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/color.rb +32 -0
  330. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/context.rb +51 -0
  331. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/current.rb +146 -0
  332. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/current_arg_stack.rb +46 -0
  333. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/deprecation.rb +13 -0
  334. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/diagnostic/engine.rb +104 -0
  335. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/diagnostic.rb +163 -0
  336. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer/dedenter.rb +88 -0
  337. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer/explanation.rb +55 -0
  338. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer/literal.rb +284 -0
  339. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer/stack_state.rb +49 -0
  340. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer-F0.rb +12931 -0
  341. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer-F1.rb +14884 -0
  342. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/lexer-strings.rb +5433 -0
  343. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/macruby.rb +9634 -0
  344. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/max_numparam_stack.rb +56 -0
  345. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/messages.rb +125 -0
  346. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/meta.rb +48 -0
  347. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/rewriter.rb +105 -0
  348. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby18.rb +9272 -0
  349. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby19.rb +9558 -0
  350. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby20.rb +10229 -0
  351. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby21.rb +10203 -0
  352. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby22.rb +10302 -0
  353. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby23.rb +10322 -0
  354. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby24.rb +10454 -0
  355. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby25.rb +10374 -0
  356. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby26.rb +10352 -0
  357. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby27.rb +11948 -0
  358. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby30.rb +12244 -0
  359. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby31.rb +12717 -0
  360. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby32.rb +12705 -0
  361. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby33.rb +12590 -0
  362. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/ruby34.rb +12597 -0
  363. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/rubymotion.rb +9515 -0
  364. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/runner/ruby_parse.rb +157 -0
  365. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/runner/ruby_rewrite.rb +101 -0
  366. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/runner.rb +299 -0
  367. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/buffer.rb +369 -0
  368. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/comment/associator.rb +233 -0
  369. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/comment.rb +134 -0
  370. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/collection.rb +18 -0
  371. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/condition.rb +21 -0
  372. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/constant.rb +32 -0
  373. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/definition.rb +23 -0
  374. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/for.rb +19 -0
  375. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/heredoc.rb +19 -0
  376. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/index.rb +33 -0
  377. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/keyword.rb +20 -0
  378. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/method_definition.rb +25 -0
  379. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/objc_kwarg.rb +19 -0
  380. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/operator.rb +17 -0
  381. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/rescue_body.rb +21 -0
  382. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/send.rb +36 -0
  383. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/ternary.rb +18 -0
  384. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map/variable.rb +31 -0
  385. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/map.rb +186 -0
  386. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/range.rb +326 -0
  387. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/rewriter/action.rb +44 -0
  388. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/rewriter.rb +513 -0
  389. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/tree_rewriter/action.rb +243 -0
  390. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/source/tree_rewriter.rb +431 -0
  391. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/static_environment.rb +134 -0
  392. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/syntax_error.rb +21 -0
  393. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/tree_rewriter.rb +133 -0
  394. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/unknown_encoding_in_magic_comment_error.rb +15 -0
  395. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/variables_stack.rb +36 -0
  396. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser/version.rb +5 -0
  397. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/lib/parser.rb +91 -0
  398. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/parser-3.3.8.0/parser.gemspec +43 -0
  399. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/BSDL +22 -0
  400. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/COPYING +56 -0
  401. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/ChangeLog +846 -0
  402. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/README.ja.rdoc +58 -0
  403. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/README.rdoc +60 -0
  404. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/TODO +5 -0
  405. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/bin/racc +320 -0
  406. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/en/grammar.en.rdoc +218 -0
  407. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/en/grammar2.en.rdoc +219 -0
  408. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/ja/command.ja.html +99 -0
  409. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/ja/debug.ja.rdoc +36 -0
  410. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/ja/grammar.ja.rdoc +348 -0
  411. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/ja/index.ja.html +10 -0
  412. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/ja/parser.ja.rdoc +125 -0
  413. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/doc/ja/usage.ja.html +414 -0
  414. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/ext/racc/cparse/Makefile +273 -0
  415. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/ext/racc/cparse/cparse.c +840 -0
  416. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/ext/racc/cparse/extconf.rb +8 -0
  417. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/compat.rb +33 -0
  418. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/cparse.so +0 -0
  419. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/debugflags.rb +60 -0
  420. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/exception.rb +16 -0
  421. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/grammar.rb +1191 -0
  422. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/grammarfileparser.rb +667 -0
  423. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/info.rb +18 -0
  424. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/iset.rb +92 -0
  425. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/logfilegenerator.rb +212 -0
  426. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/parser-text.rb +644 -0
  427. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/parser.rb +630 -0
  428. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/parserfilegenerator.rb +473 -0
  429. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/sourcetext.rb +35 -0
  430. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/state.rb +976 -0
  431. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/statetransitiontable.rb +311 -0
  432. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc/static.rb +5 -0
  433. package/plugins/rubyastgen/bundle/ruby/3.4.0/gems/racc-1.8.1/lib/racc.rb +6 -0
  434. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/ast-2.4.3.gemspec +29 -0
  435. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/ostruct-0.6.1.gemspec +21 -0
  436. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/parser-3.3.8.0.gemspec +37 -0
  437. package/plugins/rubyastgen/bundle/ruby/3.4.0/specifications/racc-1.8.1.gemspec +28 -0
  438. package/plugins/rubyastgen/setup.ps1 +4 -0
  439. package/plugins/rubyastgen/setup.sh +6 -0
  440. package/rbastgen.js +53 -0
  441. package/scalasem.js +365 -0
@@ -0,0 +1,840 @@
1
+ /*
2
+
3
+ cparse.c -- Racc Runtime Core
4
+
5
+ Copyright (c) 1999-2006 Minero Aoki
6
+
7
+ This library is free software.
8
+ You can distribute/modify this program under the same terms of ruby.
9
+
10
+ */
11
+
12
+ #include <ruby.h>
13
+
14
+ #ifndef FALSE
15
+ #define FALSE 0
16
+ #endif
17
+ #ifndef TRUE
18
+ #define TRUE 1
19
+ #endif
20
+
21
+ /* -----------------------------------------------------------------------
22
+ Important Constants
23
+ ----------------------------------------------------------------------- */
24
+
25
+ #define RACC_VERSION STRINGIZE(RACC_INFO_VERSION)
26
+
27
+ #define DEFAULT_TOKEN -1
28
+ #define ERROR_TOKEN 1
29
+ #define FINAL_TOKEN 0
30
+
31
+ #define vDEFAULT_TOKEN INT2FIX(DEFAULT_TOKEN)
32
+ #define vERROR_TOKEN INT2FIX(ERROR_TOKEN)
33
+ #define vFINAL_TOKEN INT2FIX(FINAL_TOKEN)
34
+
35
+ /* -----------------------------------------------------------------------
36
+ File Local Variables
37
+ ----------------------------------------------------------------------- */
38
+
39
+ static VALUE RaccBug;
40
+ static VALUE CparseParams;
41
+
42
+ static ID id_yydebug;
43
+ static ID id_nexttoken;
44
+ static ID id_onerror;
45
+ static ID id_noreduce;
46
+ static ID id_errstatus;
47
+
48
+ static ID id_d_shift;
49
+ static ID id_d_reduce;
50
+ static ID id_d_accept;
51
+ static ID id_d_read_token;
52
+ static ID id_d_next_state;
53
+ static ID id_d_e_pop;
54
+
55
+ /* -----------------------------------------------------------------------
56
+ Utils
57
+ ----------------------------------------------------------------------- */
58
+
59
+ /* For backward compatibility */
60
+ #ifndef ID2SYM
61
+ # define ID2SYM(i) ULONG2NUM(i)
62
+ #endif
63
+ #ifndef SYM2ID
64
+ # define SYM2ID(v) ((ID)NUM2ULONG(v))
65
+ #endif
66
+ #ifndef SYMBOL_P
67
+ # define SYMBOL_P(v) FIXNUM_P(v)
68
+ #endif
69
+ #ifndef LONG2NUM
70
+ # define LONG2NUM(i) INT2NUM(i)
71
+ #endif
72
+
73
+ static ID value_to_id(VALUE v);
74
+ static inline long num_to_long(VALUE n);
75
+
76
+ static ID
77
+ value_to_id(VALUE v)
78
+ {
79
+ if (! SYMBOL_P(v)) {
80
+ rb_raise(rb_eTypeError, "not symbol");
81
+ }
82
+ return SYM2ID(v);
83
+ }
84
+
85
+ static inline long
86
+ num_to_long(VALUE n)
87
+ {
88
+ return NUM2LONG(n);
89
+ }
90
+
91
+ #define AREF(s, idx) \
92
+ ((0 <= idx && idx < RARRAY_LEN(s)) ? rb_ary_entry(s, idx) : Qnil)
93
+
94
+ /* -----------------------------------------------------------------------
95
+ Parser Stack Interfaces
96
+ ----------------------------------------------------------------------- */
97
+
98
+ static VALUE get_stack_tail(VALUE stack, long len);
99
+ static void cut_stack_tail(VALUE stack, long len);
100
+
101
+ static VALUE
102
+ get_stack_tail(VALUE stack, long len)
103
+ {
104
+ if (len < 0) return Qnil; /* system error */
105
+ if (len > RARRAY_LEN(stack)) len = RARRAY_LEN(stack);
106
+ return rb_ary_subseq(stack, RARRAY_LEN(stack) - len, len);
107
+ }
108
+
109
+ static void
110
+ cut_stack_tail(VALUE stack, long len)
111
+ {
112
+ while (len > 0) {
113
+ rb_ary_pop(stack);
114
+ len--;
115
+ }
116
+ }
117
+
118
+ #define STACK_INIT_LEN 64
119
+ #define NEW_STACK() rb_ary_new2(STACK_INIT_LEN)
120
+ #define PUSH(s, i) rb_ary_store(s, RARRAY_LEN(s), i)
121
+ #define POP(s) rb_ary_pop(s)
122
+ #define LAST_I(s) \
123
+ ((RARRAY_LEN(s) > 0) ? rb_ary_entry(s, RARRAY_LEN(s) - 1) : Qnil)
124
+ #define GET_TAIL(s, len) get_stack_tail(s, len)
125
+ #define CUT_TAIL(s, len) cut_stack_tail(s, len)
126
+
127
+ /* -----------------------------------------------------------------------
128
+ struct cparse_params
129
+ ----------------------------------------------------------------------- */
130
+
131
+ struct cparse_params {
132
+ VALUE value_v; /* VALUE version of this struct */
133
+
134
+ VALUE parser; /* parser object */
135
+
136
+ int lex_is_iterator;
137
+ VALUE lexer; /* scanner object */
138
+ ID lexmid; /* name of scanner method (must be an iterator) */
139
+
140
+ /* State transition tables (immutable)
141
+ Data structure is from Dragon Book 4.9 */
142
+ /* action table */
143
+ VALUE action_table;
144
+ VALUE action_check;
145
+ VALUE action_default;
146
+ VALUE action_pointer;
147
+ /* goto table */
148
+ VALUE goto_table;
149
+ VALUE goto_check;
150
+ VALUE goto_default;
151
+ VALUE goto_pointer;
152
+
153
+ long nt_base; /* NonTerminal BASE index */
154
+ VALUE reduce_table; /* reduce data table */
155
+ VALUE token_table; /* token conversion table */
156
+
157
+ /* parser stacks and parameters */
158
+ VALUE state;
159
+ long curstate;
160
+ VALUE vstack;
161
+ VALUE tstack;
162
+ VALUE t;
163
+ long shift_n;
164
+ long reduce_n;
165
+ long ruleno;
166
+
167
+ long errstatus; /* nonzero in error recovering mode */
168
+ long nerr; /* number of error */
169
+
170
+ int use_result_var;
171
+
172
+ VALUE retval; /* return value of parser routine */
173
+ long fin; /* parse result status */
174
+ #define CP_FIN_ACCEPT 1
175
+ #define CP_FIN_EOT 2
176
+ #define CP_FIN_CANTPOP 3
177
+
178
+ int debug; /* user level debug */
179
+ int sys_debug; /* system level debug */
180
+
181
+ long i; /* table index */
182
+ };
183
+
184
+ /* -----------------------------------------------------------------------
185
+ Parser Main Routines
186
+ ----------------------------------------------------------------------- */
187
+
188
+ static VALUE racc_cparse(VALUE parser, VALUE arg, VALUE sysdebug);
189
+ static VALUE racc_yyparse(VALUE parser, VALUE lexer, VALUE lexmid,
190
+ VALUE arg, VALUE sysdebug);
191
+
192
+ static void call_lexer(struct cparse_params *v);
193
+ static VALUE lexer_i(RB_BLOCK_CALL_FUNC_ARGLIST(block_args, data));
194
+
195
+ static VALUE assert_array(VALUE a);
196
+ static long assert_integer(VALUE n);
197
+ static VALUE assert_hash(VALUE h);
198
+ static VALUE initialize_params(VALUE vparams, VALUE parser, VALUE arg,
199
+ VALUE lexer, VALUE lexmid);
200
+ static void cparse_params_mark(void *ptr);
201
+ static size_t cparse_params_memsize(const void *ptr);
202
+
203
+ static void parse_main(struct cparse_params *v,
204
+ VALUE tok, VALUE val, int resume);
205
+ static void extract_user_token(struct cparse_params *v,
206
+ VALUE block_args, VALUE *tok, VALUE *val);
207
+ static void shift(struct cparse_params* v, long act, VALUE tok, VALUE val);
208
+ static int reduce(struct cparse_params* v, long act);
209
+ static rb_block_call_func reduce0;
210
+
211
+ #ifdef DEBUG
212
+ # define D_puts(msg) if (v->sys_debug) puts(msg)
213
+ # define D_printf(fmt,arg) if (v->sys_debug) printf(fmt,arg)
214
+ #else
215
+ # define D_puts(msg)
216
+ # define D_printf(fmt,arg)
217
+ #endif
218
+
219
+ #undef RUBY_UNTYPED_DATA_WARNING
220
+ #define RUBY_UNTYPED_DATA_WARNING 1
221
+
222
+ static const rb_data_type_t cparse_params_type = {
223
+ "racc/cparse",
224
+ {
225
+ cparse_params_mark,
226
+ RUBY_TYPED_DEFAULT_FREE,
227
+ cparse_params_memsize,
228
+ },
229
+ #ifdef RUBY_TYPED_FREE_IMMEDIATELY
230
+ 0, 0,
231
+ RUBY_TYPED_FREE_IMMEDIATELY,
232
+ #endif
233
+ };
234
+
235
+ static VALUE
236
+ racc_cparse(VALUE parser, VALUE arg, VALUE sysdebug)
237
+ {
238
+ VALUE vparams;
239
+ struct cparse_params *v;
240
+
241
+ vparams = TypedData_Make_Struct(CparseParams, struct cparse_params,
242
+ &cparse_params_type, v);
243
+ D_puts("starting cparse");
244
+ v->sys_debug = RTEST(sysdebug);
245
+ vparams = initialize_params(vparams, parser, arg, Qnil, Qnil);
246
+ v->lex_is_iterator = FALSE;
247
+ parse_main(v, Qnil, Qnil, 0);
248
+
249
+ RB_GC_GUARD(vparams);
250
+ return v->retval;
251
+ }
252
+
253
+ static VALUE
254
+ racc_yyparse(VALUE parser, VALUE lexer, VALUE lexmid, VALUE arg, VALUE sysdebug)
255
+ {
256
+ VALUE vparams;
257
+ struct cparse_params *v;
258
+
259
+ vparams = TypedData_Make_Struct(CparseParams, struct cparse_params,
260
+ &cparse_params_type, v);
261
+ v->sys_debug = RTEST(sysdebug);
262
+ D_puts("start C yyparse");
263
+ vparams = initialize_params(vparams, parser, arg, lexer, lexmid);
264
+ v->lex_is_iterator = TRUE;
265
+ D_puts("params initialized");
266
+ parse_main(v, Qnil, Qnil, 0);
267
+ call_lexer(v);
268
+ if (!v->fin) {
269
+ rb_raise(rb_eArgError, "%s() is finished before EndOfToken",
270
+ rb_id2name(v->lexmid));
271
+ }
272
+
273
+ RB_GC_GUARD(vparams);
274
+ return v->retval;
275
+ }
276
+
277
+ static void
278
+ call_lexer(struct cparse_params *v)
279
+ {
280
+ rb_block_call(v->lexer, v->lexmid, 0, NULL, lexer_i, v->value_v);
281
+ }
282
+
283
+ static VALUE
284
+ lexer_i(RB_BLOCK_CALL_FUNC_ARGLIST(block_args, data))
285
+ {
286
+ struct cparse_params *v = rb_check_typeddata(data, &cparse_params_type);
287
+ VALUE tok, val;
288
+
289
+ if (v->fin)
290
+ rb_raise(rb_eArgError, "extra token after EndOfToken");
291
+ extract_user_token(v, block_args, &tok, &val);
292
+ parse_main(v, tok, val, 1);
293
+ if (v->fin && v->fin != CP_FIN_ACCEPT)
294
+ rb_iter_break();
295
+ return Qnil;
296
+ }
297
+
298
+ static VALUE
299
+ assert_array(VALUE a)
300
+ {
301
+ Check_Type(a, T_ARRAY);
302
+ return a;
303
+ }
304
+
305
+ static VALUE
306
+ assert_hash(VALUE h)
307
+ {
308
+ Check_Type(h, T_HASH);
309
+ return h;
310
+ }
311
+
312
+ static long
313
+ assert_integer(VALUE n)
314
+ {
315
+ return NUM2LONG(n);
316
+ }
317
+
318
+ static VALUE
319
+ initialize_params(VALUE vparams, VALUE parser, VALUE arg, VALUE lexer, VALUE lexmid)
320
+ {
321
+ struct cparse_params *v = rb_check_typeddata(vparams, &cparse_params_type);
322
+
323
+ v->value_v = vparams;
324
+ v->parser = parser;
325
+ v->lexer = lexer;
326
+ if (! NIL_P(lexmid))
327
+ v->lexmid = value_to_id(lexmid);
328
+
329
+ v->debug = RTEST(rb_ivar_get(parser, id_yydebug));
330
+
331
+ Check_Type(arg, T_ARRAY);
332
+ if (!(13 <= RARRAY_LEN(arg) && RARRAY_LEN(arg) <= 14))
333
+ rb_raise(RaccBug, "[Racc Bug] wrong arg.size %ld", RARRAY_LEN(arg));
334
+ v->action_table = assert_array (rb_ary_entry(arg, 0));
335
+ v->action_check = assert_array (rb_ary_entry(arg, 1));
336
+ v->action_default = assert_array (rb_ary_entry(arg, 2));
337
+ v->action_pointer = assert_array (rb_ary_entry(arg, 3));
338
+ v->goto_table = assert_array (rb_ary_entry(arg, 4));
339
+ v->goto_check = assert_array (rb_ary_entry(arg, 5));
340
+ v->goto_default = assert_array (rb_ary_entry(arg, 6));
341
+ v->goto_pointer = assert_array (rb_ary_entry(arg, 7));
342
+ v->nt_base = assert_integer(rb_ary_entry(arg, 8));
343
+ v->reduce_table = assert_array (rb_ary_entry(arg, 9));
344
+ v->token_table = assert_hash (rb_ary_entry(arg, 10));
345
+ v->shift_n = assert_integer(rb_ary_entry(arg, 11));
346
+ v->reduce_n = assert_integer(rb_ary_entry(arg, 12));
347
+ if (RARRAY_LEN(arg) > 13) {
348
+ v->use_result_var = RTEST(rb_ary_entry(arg, 13));
349
+ }
350
+ else {
351
+ v->use_result_var = TRUE;
352
+ }
353
+
354
+ v->tstack = v->debug ? NEW_STACK() : Qnil;
355
+ v->vstack = NEW_STACK();
356
+ v->state = NEW_STACK();
357
+ v->curstate = 0;
358
+ PUSH(v->state, INT2FIX(0));
359
+ v->t = INT2FIX(FINAL_TOKEN + 1); /* must not init to FINAL_TOKEN */
360
+ v->nerr = 0;
361
+ v->errstatus = 0;
362
+ rb_ivar_set(parser, id_errstatus, LONG2NUM(v->errstatus));
363
+
364
+ v->retval = Qnil;
365
+ v->fin = 0;
366
+
367
+ v->lex_is_iterator = FALSE;
368
+
369
+ rb_iv_set(parser, "@vstack", v->vstack);
370
+ if (v->debug) {
371
+ rb_iv_set(parser, "@tstack", v->tstack);
372
+ }
373
+ else {
374
+ rb_iv_set(parser, "@tstack", Qnil);
375
+ }
376
+
377
+ return vparams;
378
+ }
379
+
380
+ static void
381
+ cparse_params_mark(void *ptr)
382
+ {
383
+ struct cparse_params *v = (struct cparse_params*)ptr;
384
+
385
+ rb_gc_mark(v->value_v);
386
+ rb_gc_mark(v->parser);
387
+ rb_gc_mark(v->lexer);
388
+ rb_gc_mark(v->action_table);
389
+ rb_gc_mark(v->action_check);
390
+ rb_gc_mark(v->action_default);
391
+ rb_gc_mark(v->action_pointer);
392
+ rb_gc_mark(v->goto_table);
393
+ rb_gc_mark(v->goto_check);
394
+ rb_gc_mark(v->goto_default);
395
+ rb_gc_mark(v->goto_pointer);
396
+ rb_gc_mark(v->reduce_table);
397
+ rb_gc_mark(v->token_table);
398
+ rb_gc_mark(v->state);
399
+ rb_gc_mark(v->vstack);
400
+ rb_gc_mark(v->tstack);
401
+ rb_gc_mark(v->t);
402
+ rb_gc_mark(v->retval);
403
+ }
404
+
405
+ static size_t
406
+ cparse_params_memsize(const void *ptr)
407
+ {
408
+ return sizeof(struct cparse_params);
409
+ }
410
+
411
+ static void
412
+ extract_user_token(struct cparse_params *v, VALUE block_args,
413
+ VALUE *tok, VALUE *val)
414
+ {
415
+ if (NIL_P(block_args)) {
416
+ /* EOF */
417
+ *tok = Qfalse;
418
+ *val = rb_str_new("$", 1);
419
+ return;
420
+ }
421
+
422
+ if (!RB_TYPE_P(block_args, T_ARRAY)) {
423
+ rb_raise(rb_eTypeError,
424
+ "%s() %s %"PRIsVALUE" (must be Array[2])",
425
+ v->lex_is_iterator ? rb_id2name(v->lexmid) : "next_token",
426
+ v->lex_is_iterator ? "yielded" : "returned",
427
+ rb_obj_class(block_args));
428
+ }
429
+ if (RARRAY_LEN(block_args) != 2) {
430
+ rb_raise(rb_eArgError,
431
+ "%s() %s wrong size of array (%ld for 2)",
432
+ v->lex_is_iterator ? rb_id2name(v->lexmid) : "next_token",
433
+ v->lex_is_iterator ? "yielded" : "returned",
434
+ RARRAY_LEN(block_args));
435
+ }
436
+ *tok = AREF(block_args, 0);
437
+ *val = AREF(block_args, 1);
438
+ }
439
+
440
+ #define SHIFT(v,act,tok,val) shift(v,act,tok,val)
441
+ #define REDUCE(v,act) do {\
442
+ switch (reduce(v,act)) { \
443
+ case 0: /* normal */ \
444
+ break; \
445
+ case 1: /* yyerror */ \
446
+ goto user_yyerror; \
447
+ case 2: /* yyaccept */ \
448
+ D_puts("u accept"); \
449
+ goto accept; \
450
+ default: \
451
+ break; \
452
+ } \
453
+ } while (0)
454
+
455
+ static void
456
+ parse_main(struct cparse_params *v, VALUE tok, VALUE val, int resume)
457
+ {
458
+ long i; /* table index */
459
+ long act; /* action type */
460
+ VALUE act_value; /* action type, VALUE version */
461
+ int read_next = 1; /* true if we need to read next token */
462
+ VALUE tmp;
463
+
464
+ if (resume)
465
+ goto resume;
466
+
467
+ while (1) {
468
+ D_puts("");
469
+ D_puts("---- enter new loop ----");
470
+ D_puts("");
471
+
472
+ D_printf("(act) k1=%ld\n", v->curstate);
473
+ tmp = AREF(v->action_pointer, v->curstate);
474
+ if (NIL_P(tmp)) goto notfound;
475
+ D_puts("(act) pointer[k1] ok");
476
+ i = NUM2LONG(tmp);
477
+
478
+ D_printf("read_next=%d\n", read_next);
479
+ if (read_next && (v->t != vFINAL_TOKEN)) {
480
+ if (v->lex_is_iterator) {
481
+ D_puts("resuming...");
482
+ if (v->fin) rb_raise(rb_eArgError, "token given after EOF");
483
+ v->i = i; /* save i */
484
+ return;
485
+ resume:
486
+ D_puts("resumed");
487
+ i = v->i; /* load i */
488
+ }
489
+ else {
490
+ D_puts("next_token");
491
+ tmp = rb_funcall(v->parser, id_nexttoken, 0);
492
+ extract_user_token(v, tmp, &tok, &val);
493
+ }
494
+ /* convert token */
495
+ v->t = rb_hash_aref(v->token_table, tok);
496
+ if (NIL_P(v->t)) {
497
+ v->t = vERROR_TOKEN;
498
+ }
499
+ D_printf("(act) t(k2)=%ld\n", NUM2LONG(v->t));
500
+ if (v->debug) {
501
+ rb_funcall(v->parser, id_d_read_token,
502
+ 3, v->t, tok, val);
503
+ }
504
+ }
505
+ read_next = 0;
506
+
507
+ i += NUM2LONG(v->t);
508
+ D_printf("(act) i=%ld\n", i);
509
+ if (i < 0) goto notfound;
510
+
511
+ act_value = AREF(v->action_table, i);
512
+ if (NIL_P(act_value)) goto notfound;
513
+ act = NUM2LONG(act_value);
514
+ D_printf("(act) table[i]=%ld\n", act);
515
+
516
+ tmp = AREF(v->action_check, i);
517
+ if (NIL_P(tmp)) goto notfound;
518
+ if (NUM2LONG(tmp) != v->curstate) goto notfound;
519
+ D_printf("(act) check[i]=%ld\n", NUM2LONG(tmp));
520
+
521
+ D_puts("(act) found");
522
+ act_fixed:
523
+ D_printf("act=%ld\n", act);
524
+ goto handle_act;
525
+
526
+ notfound:
527
+ D_puts("(act) not found: use default");
528
+ act_value = AREF(v->action_default, v->curstate);
529
+ act = NUM2LONG(act_value);
530
+ goto act_fixed;
531
+
532
+
533
+ handle_act:
534
+ if (act > 0 && act < v->shift_n) {
535
+ D_puts("shift");
536
+ if (v->errstatus > 0) {
537
+ v->errstatus--;
538
+ rb_ivar_set(v->parser, id_errstatus, LONG2NUM(v->errstatus));
539
+ }
540
+ SHIFT(v, act, v->t, val);
541
+ read_next = 1;
542
+ }
543
+ else if (act < 0 && act > -(v->reduce_n)) {
544
+ D_puts("reduce");
545
+ REDUCE(v, act);
546
+ }
547
+ else if (act == -(v->reduce_n)) {
548
+ goto error;
549
+ error_recovered:
550
+ ; /* goto label requires stmt */
551
+ }
552
+ else if (act == v->shift_n) {
553
+ D_puts("accept");
554
+ goto accept;
555
+ }
556
+ else {
557
+ rb_raise(RaccBug, "[Racc Bug] unknown act value %ld", act);
558
+ }
559
+
560
+ if (v->debug) {
561
+ rb_funcall(v->parser, id_d_next_state,
562
+ 2, LONG2NUM(v->curstate), v->state);
563
+ }
564
+ }
565
+ /* not reach */
566
+
567
+
568
+ accept:
569
+ if (v->debug) rb_funcall(v->parser, id_d_accept, 0);
570
+ v->retval = rb_ary_entry(v->vstack, 0);
571
+ v->fin = CP_FIN_ACCEPT;
572
+ return;
573
+
574
+
575
+ error:
576
+ D_printf("error detected, status=%ld\n", v->errstatus);
577
+ if (v->errstatus == 0) {
578
+ v->nerr++;
579
+ rb_funcall(v->parser, id_onerror,
580
+ 3, v->t, val, v->vstack);
581
+ }
582
+ user_yyerror:
583
+ if (v->errstatus == 3) {
584
+ if (v->t == vFINAL_TOKEN) {
585
+ v->retval = Qnil;
586
+ v->fin = CP_FIN_EOT;
587
+ return;
588
+ }
589
+ read_next = 1;
590
+ }
591
+ v->errstatus = 3;
592
+ rb_ivar_set(v->parser, id_errstatus, LONG2NUM(v->errstatus));
593
+
594
+ /* check if we can shift/reduce error token */
595
+ D_printf("(err) k1=%ld\n", v->curstate);
596
+ D_printf("(err) k2=%d (error)\n", ERROR_TOKEN);
597
+ while (1) {
598
+ tmp = AREF(v->action_pointer, v->curstate);
599
+ if (NIL_P(tmp)) goto error_pop;
600
+ D_puts("(err) pointer[k1] ok");
601
+
602
+ i = NUM2LONG(tmp) + ERROR_TOKEN;
603
+ D_printf("(err) i=%ld\n", i);
604
+ if (i < 0) goto error_pop;
605
+
606
+ act_value = AREF(v->action_table, i);
607
+ if (NIL_P(act_value)) {
608
+ D_puts("(err) table[i] == nil");
609
+ goto error_pop;
610
+ }
611
+ act = NUM2LONG(act_value);
612
+ D_printf("(err) table[i]=%ld\n", act);
613
+
614
+ tmp = AREF(v->action_check, i);
615
+ if (NIL_P(tmp)) {
616
+ D_puts("(err) check[i] == nil");
617
+ goto error_pop;
618
+ }
619
+ if (NUM2LONG(tmp) != v->curstate) {
620
+ D_puts("(err) check[i] != k1");
621
+ goto error_pop;
622
+ }
623
+
624
+ D_puts("(err) found: can handle error token");
625
+ break;
626
+
627
+ error_pop:
628
+ D_puts("(err) act not found: can't handle error token; pop");
629
+
630
+ if (RARRAY_LEN(v->state) <= 1) {
631
+ v->retval = Qnil;
632
+ v->fin = CP_FIN_CANTPOP;
633
+ return;
634
+ }
635
+ POP(v->state);
636
+ POP(v->vstack);
637
+ v->curstate = num_to_long(LAST_I(v->state));
638
+ if (v->debug) {
639
+ POP(v->tstack);
640
+ rb_funcall(v->parser, id_d_e_pop,
641
+ 3, v->state, v->tstack, v->vstack);
642
+ }
643
+ }
644
+
645
+ /* shift/reduce error token */
646
+ if (act > 0 && act < v->shift_n) {
647
+ D_puts("e shift");
648
+ SHIFT(v, act, ERROR_TOKEN, val);
649
+ }
650
+ else if (act < 0 && act > -(v->reduce_n)) {
651
+ D_puts("e reduce");
652
+ REDUCE(v, act);
653
+ }
654
+ else if (act == v->shift_n) {
655
+ D_puts("e accept");
656
+ goto accept;
657
+ }
658
+ else {
659
+ rb_raise(RaccBug, "[Racc Bug] unknown act value %ld", act);
660
+ }
661
+ goto error_recovered;
662
+ }
663
+
664
+ static void
665
+ shift(struct cparse_params *v, long act, VALUE tok, VALUE val)
666
+ {
667
+ PUSH(v->vstack, val);
668
+ if (v->debug) {
669
+ PUSH(v->tstack, tok);
670
+ rb_funcall(v->parser, id_d_shift,
671
+ 3, tok, v->tstack, v->vstack);
672
+ }
673
+ v->curstate = act;
674
+ PUSH(v->state, LONG2NUM(v->curstate));
675
+ }
676
+
677
+ static int
678
+ reduce(struct cparse_params *v, long act)
679
+ {
680
+ VALUE code;
681
+ v->ruleno = -act * 3;
682
+ code = rb_catch("racc_jump", reduce0, v->value_v);
683
+ v->errstatus = num_to_long(rb_ivar_get(v->parser, id_errstatus));
684
+ return NUM2INT(code);
685
+ }
686
+
687
+ static VALUE
688
+ reduce0(RB_BLOCK_CALL_FUNC_ARGLIST(_, data))
689
+ {
690
+ struct cparse_params *v = rb_check_typeddata(data, &cparse_params_type);
691
+ VALUE reduce_to, reduce_len, method_id;
692
+ long len;
693
+ ID mid;
694
+ VALUE tmp, tmp_t = Qundef, tmp_v = Qundef;
695
+ long i, k1, k2;
696
+ VALUE goto_state;
697
+
698
+ reduce_len = rb_ary_entry(v->reduce_table, v->ruleno);
699
+ reduce_to = rb_ary_entry(v->reduce_table, v->ruleno+1);
700
+ method_id = rb_ary_entry(v->reduce_table, v->ruleno+2);
701
+ len = NUM2LONG(reduce_len);
702
+ mid = value_to_id(method_id);
703
+
704
+ /* call action */
705
+ if (len == 0) {
706
+ tmp = Qnil;
707
+ if (mid != id_noreduce)
708
+ tmp_v = rb_ary_new();
709
+ if (v->debug)
710
+ tmp_t = rb_ary_new();
711
+ }
712
+ else {
713
+ if (mid != id_noreduce) {
714
+ tmp_v = GET_TAIL(v->vstack, len);
715
+ tmp = rb_ary_entry(tmp_v, 0);
716
+ }
717
+ else {
718
+ tmp = rb_ary_entry(v->vstack, RARRAY_LEN(v->vstack) - len);
719
+ }
720
+ CUT_TAIL(v->vstack, len);
721
+ if (v->debug) {
722
+ tmp_t = GET_TAIL(v->tstack, len);
723
+ CUT_TAIL(v->tstack, len);
724
+ }
725
+ CUT_TAIL(v->state, len);
726
+ }
727
+ if (mid != id_noreduce) {
728
+ if (v->use_result_var) {
729
+ tmp = rb_funcall(v->parser, mid,
730
+ 3, tmp_v, v->vstack, tmp);
731
+ }
732
+ else {
733
+ tmp = rb_funcall(v->parser, mid,
734
+ 2, tmp_v, v->vstack);
735
+ }
736
+ }
737
+
738
+ /* then push result */
739
+ PUSH(v->vstack, tmp);
740
+ if (v->debug) {
741
+ PUSH(v->tstack, reduce_to);
742
+ rb_funcall(v->parser, id_d_reduce,
743
+ 4, tmp_t, reduce_to, v->tstack, v->vstack);
744
+ }
745
+
746
+ /* calculate transition state */
747
+ if (RARRAY_LEN(v->state) == 0)
748
+ rb_raise(RaccBug, "state stack unexpectedly empty");
749
+ k2 = num_to_long(LAST_I(v->state));
750
+ k1 = num_to_long(reduce_to) - v->nt_base;
751
+ D_printf("(goto) k1=%ld\n", k1);
752
+ D_printf("(goto) k2=%ld\n", k2);
753
+
754
+ tmp = AREF(v->goto_pointer, k1);
755
+ if (NIL_P(tmp)) goto notfound;
756
+
757
+ i = NUM2LONG(tmp) + k2;
758
+ D_printf("(goto) i=%ld\n", i);
759
+ if (i < 0) goto notfound;
760
+
761
+ goto_state = AREF(v->goto_table, i);
762
+ if (NIL_P(goto_state)) {
763
+ D_puts("(goto) table[i] == nil");
764
+ goto notfound;
765
+ }
766
+ D_printf("(goto) table[i]=%ld (goto_state)\n", NUM2LONG(goto_state));
767
+
768
+ tmp = AREF(v->goto_check, i);
769
+ if (NIL_P(tmp)) {
770
+ D_puts("(goto) check[i] == nil");
771
+ goto notfound;
772
+ }
773
+ if (tmp != LONG2NUM(k1)) {
774
+ D_puts("(goto) check[i] != table[i]");
775
+ goto notfound;
776
+ }
777
+ D_printf("(goto) check[i]=%ld\n", NUM2LONG(tmp));
778
+
779
+ D_puts("(goto) found");
780
+ transit:
781
+ PUSH(v->state, goto_state);
782
+ v->curstate = NUM2LONG(goto_state);
783
+ return INT2FIX(0);
784
+
785
+ notfound:
786
+ D_puts("(goto) not found: use default");
787
+ /* overwrite `goto-state' by default value */
788
+ goto_state = AREF(v->goto_default, k1);
789
+ goto transit;
790
+ }
791
+
792
+ /* -----------------------------------------------------------------------
793
+ Ruby Interface
794
+ ----------------------------------------------------------------------- */
795
+
796
+ void
797
+ Init_cparse(void)
798
+ {
799
+ #ifdef HAVE_RB_EXT_RACTOR_SAFE
800
+ rb_ext_ractor_safe(true);
801
+ #endif
802
+
803
+ VALUE Racc, Parser;
804
+ ID id_racc = rb_intern_const("Racc");
805
+
806
+ if (rb_const_defined(rb_cObject, id_racc)) {
807
+ Racc = rb_const_get(rb_cObject, id_racc);
808
+ Parser = rb_const_get_at(Racc, rb_intern_const("Parser"));
809
+ }
810
+ else {
811
+ Racc = rb_define_module("Racc");
812
+ Parser = rb_define_class_under(Racc, "Parser", rb_cObject);
813
+ }
814
+ rb_define_private_method(Parser, "_racc_do_parse_c", racc_cparse, 2);
815
+ rb_define_private_method(Parser, "_racc_yyparse_c", racc_yyparse, 4);
816
+ rb_define_const(Parser, "Racc_Runtime_Core_Version_C",
817
+ rb_str_new2(RACC_VERSION));
818
+ rb_define_const(Parser, "Racc_Runtime_Core_Id_C",
819
+ rb_str_new2("$originalId: cparse.c,v 1.8 2006/07/06 11:39:46 aamine Exp $"));
820
+
821
+ CparseParams = rb_define_class_under(Racc, "CparseParams", rb_cObject);
822
+ rb_undef_alloc_func(CparseParams);
823
+ rb_undef_method(CparseParams, "initialize");
824
+ rb_undef_method(CparseParams, "initialize_copy");
825
+
826
+ RaccBug = rb_eRuntimeError;
827
+
828
+ id_yydebug = rb_intern_const("@yydebug");
829
+ id_nexttoken = rb_intern_const("next_token");
830
+ id_onerror = rb_intern_const("on_error");
831
+ id_noreduce = rb_intern_const("_reduce_none");
832
+ id_errstatus = rb_intern_const("@racc_error_status");
833
+
834
+ id_d_shift = rb_intern_const("racc_shift");
835
+ id_d_reduce = rb_intern_const("racc_reduce");
836
+ id_d_accept = rb_intern_const("racc_accept");
837
+ id_d_read_token = rb_intern_const("racc_read_token");
838
+ id_d_next_state = rb_intern_const("racc_next_state");
839
+ id_d_e_pop = rb_intern_const("racc_e_pop");
840
+ }