@appthreat/atom-parsetools 1.3.0 → 1.4.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 (266) hide show
  1. package/README.md +111 -14
  2. package/package.json +2 -1
  3. package/plugins/composer/installed.php +6 -6
  4. package/plugins/rubyastgen/Gemfile +6 -4
  5. package/plugins/rubyastgen/Gemfile.lock +5 -8
  6. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-4ac84327b3af/Gemfile +11 -0
  7. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-4ac84327b3af/exe/ruby_ast_gen +55 -0
  8. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-4ac84327b3af/lib/ruby_ast_gen/cli.rb +133 -0
  9. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-4ac84327b3af/lib/ruby_ast_gen/node_handling.rb +449 -0
  10. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/{ruby_ast_gen-cc312ebf06b4 → ruby_ast_gen-4ac84327b3af}/lib/ruby_ast_gen/version.rb +1 -1
  11. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-4ac84327b3af/lib/ruby_ast_gen.rb +888 -0
  12. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-4ac84327b3af/ruby_ast_gen.gemspec +25 -0
  13. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/current.rb +1 -1
  14. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/version.rb +1 -1
  15. package/plugins/rubyastgen/bundle/ruby/4.0.0/specifications/ast-2.4.3.gemspec +29 -0
  16. package/plugins/rubyastgen/bundle/ruby/4.0.0/specifications/bundler-2.6.9.gemspec +25 -0
  17. package/plugins/rubyastgen/bundle/ruby/4.0.0/specifications/ostruct-0.6.3.gemspec +22 -0
  18. package/plugins/rubyastgen/bundle/ruby/4.0.0/specifications/parser-3.3.12.0.gemspec +37 -0
  19. package/rbastgen.js +102 -13
  20. package/scalasem.js +11 -2
  21. package/plugins/bin/bundler +0 -14
  22. package/plugins/bin/ruby_ast_gen +0 -14
  23. package/plugins/rubyastgen/bundle/bundler/setup.rb +0 -44
  24. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-cc312ebf06b4/exe/ruby_ast_gen +0 -63
  25. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-cc312ebf06b4/lib/ruby_ast_gen/node_handling.rb +0 -269
  26. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-cc312ebf06b4/lib/ruby_ast_gen.rb +0 -218
  27. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/prism-1.9.0/gem.build_complete +0 -0
  28. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/prism-1.9.0/gem_make.out +0 -44
  29. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/prism-1.9.0/mkmf.log +0 -74
  30. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/prism-1.9.0/prism/prism.so +0 -0
  31. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/racc-1.8.1/gem.build_complete +0 -0
  32. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/racc-1.8.1/gem_make.out +0 -18
  33. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/racc-1.8.1/racc/cparse.so +0 -0
  34. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/BSDmakefile +0 -58
  35. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/Makefile +0 -116
  36. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/ext/prism/Makefile +0 -273
  37. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/ext/prism/api_node.c +0 -6945
  38. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/ext/prism/api_pack.c +0 -276
  39. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/ext/prism/extconf.rb +0 -127
  40. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/ext/prism/extension.c +0 -1427
  41. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/ext/prism/extension.h +0 -19
  42. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/ast.h +0 -8254
  43. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/defines.h +0 -260
  44. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/diagnostic.h +0 -458
  45. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/encoding.h +0 -283
  46. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/node.h +0 -129
  47. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/options.h +0 -488
  48. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/pack.h +0 -163
  49. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/parser.h +0 -936
  50. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/prettyprint.h +0 -34
  51. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/regexp.h +0 -43
  52. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/static_literals.h +0 -121
  53. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_buffer.h +0 -236
  54. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_char.h +0 -204
  55. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_constant_pool.h +0 -218
  56. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_integer.h +0 -130
  57. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_list.h +0 -103
  58. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_memchr.h +0 -29
  59. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_newline_list.h +0 -113
  60. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_string.h +0 -200
  61. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_strncasecmp.h +0 -32
  62. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_strpbrk.h +0 -46
  63. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/version.h +0 -29
  64. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism.h +0 -408
  65. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/compiler.rb +0 -801
  66. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/desugar_compiler.rb +0 -392
  67. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/dispatcher.rb +0 -2210
  68. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/dot_visitor.rb +0 -4767
  69. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/dsl.rb +0 -1003
  70. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/ffi.rb +0 -578
  71. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/inspect_visitor.rb +0 -2393
  72. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/lex_compat.rb +0 -911
  73. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/mutation_compiler.rb +0 -772
  74. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/node.rb +0 -19966
  75. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/node_ext.rb +0 -511
  76. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/pack.rb +0 -230
  77. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/parse_result/comments.rb +0 -188
  78. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/parse_result/errors.rb +0 -66
  79. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/parse_result/newlines.rb +0 -155
  80. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/parse_result.rb +0 -907
  81. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/pattern.rb +0 -269
  82. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/polyfill/append_as_bytes.rb +0 -15
  83. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/polyfill/byteindex.rb +0 -13
  84. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/polyfill/scan_byte.rb +0 -14
  85. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/polyfill/unpack1.rb +0 -14
  86. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/polyfill/warn.rb +0 -36
  87. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/prism.so +0 -0
  88. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/reflection.rb +0 -416
  89. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb +0 -505
  90. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/serialize.rb +0 -2400
  91. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/string_query.rb +0 -31
  92. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/parser/builder.rb +0 -62
  93. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/parser/compiler.rb +0 -2234
  94. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/parser/lexer.rb +0 -820
  95. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/parser.rb +0 -376
  96. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/parser_current.rb +0 -26
  97. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/parser_versions.rb +0 -36
  98. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/ripper/filter.rb +0 -53
  99. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/ripper/lexer.rb +0 -135
  100. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/ripper/sexp.rb +0 -126
  101. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/ripper/shim.rb +0 -5
  102. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/ripper.rb +0 -3520
  103. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/ruby_parser.rb +0 -1964
  104. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation.rb +0 -18
  105. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/visitor.rb +0 -813
  106. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism.rb +0 -98
  107. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/compiler.rbi +0 -12
  108. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/dsl.rbi +0 -524
  109. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/inspect_visitor.rbi +0 -12
  110. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/node.rbi +0 -8750
  111. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/node_ext.rbi +0 -107
  112. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/parse_result.rbi +0 -404
  113. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/reflection.rbi +0 -58
  114. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/string_query.rbi +0 -12
  115. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/translation/parser.rbi +0 -11
  116. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/translation/parser_versions.rbi +0 -23
  117. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/translation/ripper.rbi +0 -15
  118. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/visitor.rbi +0 -473
  119. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism.rbi +0 -63
  120. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/compiler.rbs +0 -9
  121. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/dispatcher.rbs +0 -19
  122. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/dot_visitor.rbs +0 -6
  123. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/dsl.rbs +0 -351
  124. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/inspect_visitor.rbs +0 -22
  125. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/lex_compat.rbs +0 -10
  126. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/mutation_compiler.rbs +0 -159
  127. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/node.rbs +0 -4042
  128. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/node_ext.rbs +0 -149
  129. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/pack.rbs +0 -43
  130. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/parse_result/comments.rbs +0 -38
  131. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/parse_result.rbs +0 -197
  132. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/pattern.rbs +0 -13
  133. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/reflection.rbs +0 -50
  134. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/relocation.rbs +0 -185
  135. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/serialize.rbs +0 -8
  136. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/string_query.rbs +0 -11
  137. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/visitor.rbs +0 -169
  138. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism.rbs +0 -272
  139. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/diagnostic.c +0 -854
  140. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/encoding.c +0 -5340
  141. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/node.c +0 -8685
  142. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/options.c +0 -338
  143. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/pack.c +0 -509
  144. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/prettyprint.c +0 -8957
  145. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/prism.c +0 -22679
  146. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/regexp.c +0 -790
  147. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/serialize.c +0 -2274
  148. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/static_literals.c +0 -617
  149. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/token_type.c +0 -703
  150. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_buffer.c +0 -357
  151. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_char.c +0 -318
  152. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_constant_pool.c +0 -342
  153. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_integer.c +0 -670
  154. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_list.c +0 -49
  155. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_memchr.c +0 -35
  156. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_newline_list.c +0 -125
  157. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_string.c +0 -381
  158. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_strncasecmp.c +0 -36
  159. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_strpbrk.c +0 -206
  160. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/BSDL +0 -22
  161. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/COPYING +0 -56
  162. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/ChangeLog +0 -846
  163. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/README.ja.rdoc +0 -58
  164. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/README.rdoc +0 -60
  165. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/TODO +0 -5
  166. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/bin/racc +0 -320
  167. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/ext/racc/cparse/Makefile +0 -273
  168. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/ext/racc/cparse/cparse.c +0 -840
  169. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/ext/racc/cparse/extconf.rb +0 -8
  170. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/compat.rb +0 -33
  171. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/cparse.so +0 -0
  172. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/debugflags.rb +0 -60
  173. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/exception.rb +0 -16
  174. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/grammar.rb +0 -1191
  175. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/grammarfileparser.rb +0 -667
  176. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/info.rb +0 -18
  177. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/iset.rb +0 -92
  178. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/logfilegenerator.rb +0 -212
  179. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/parser-text.rb +0 -644
  180. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/parser.rb +0 -630
  181. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/parserfilegenerator.rb +0 -473
  182. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/sourcetext.rb +0 -35
  183. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/state.rb +0 -976
  184. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/statetransitiontable.rb +0 -311
  185. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/static.rb +0 -5
  186. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc.rb +0 -6
  187. /package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/{ruby_ast_gen-cc312ebf06b4 → ruby_ast_gen-4ac84327b3af}/.rspec +0 -0
  188. /package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/{ruby_ast_gen-cc312ebf06b4 → ruby_ast_gen-4ac84327b3af}/bin/console +0 -0
  189. /package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/{ruby_ast_gen-cc312ebf06b4 → ruby_ast_gen-4ac84327b3af}/bin/setup +0 -0
  190. /package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/{ruby_ast_gen-cc312ebf06b4 → ruby_ast_gen-4ac84327b3af}/update_version.rb +0 -0
  191. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/bin/ruby-parse +0 -0
  192. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/bin/ruby-rewrite +0 -0
  193. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/gauntlet_parser.rb +0 -0
  194. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/all.rb +0 -0
  195. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ast/node.rb +0 -0
  196. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ast/processor.rb +0 -0
  197. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/base.rb +0 -0
  198. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/builders/default.rb +0 -0
  199. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/clobbering_error.rb +0 -0
  200. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/color.rb +0 -0
  201. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/context.rb +0 -0
  202. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/current_arg_stack.rb +0 -0
  203. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/deprecation.rb +0 -0
  204. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/diagnostic/engine.rb +0 -0
  205. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/diagnostic.rb +0 -0
  206. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer/dedenter.rb +0 -0
  207. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer/explanation.rb +0 -0
  208. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer/literal.rb +0 -0
  209. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer/stack_state.rb +0 -0
  210. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer-F0.rb +0 -0
  211. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer-F1.rb +0 -0
  212. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer-strings.rb +0 -0
  213. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/macruby.rb +0 -0
  214. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/max_numparam_stack.rb +0 -0
  215. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/messages.rb +0 -0
  216. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/meta.rb +0 -0
  217. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/rewriter.rb +0 -0
  218. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby18.rb +0 -0
  219. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby19.rb +0 -0
  220. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby20.rb +0 -0
  221. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby21.rb +0 -0
  222. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby22.rb +0 -0
  223. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby23.rb +0 -0
  224. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby24.rb +0 -0
  225. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby25.rb +0 -0
  226. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby26.rb +0 -0
  227. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby27.rb +0 -0
  228. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby30.rb +0 -0
  229. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby31.rb +0 -0
  230. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby32.rb +0 -0
  231. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby33.rb +0 -0
  232. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby34.rb +0 -0
  233. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/rubymotion.rb +0 -0
  234. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/runner/ruby_parse.rb +0 -0
  235. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/runner/ruby_rewrite.rb +0 -0
  236. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/runner.rb +0 -0
  237. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/buffer.rb +0 -0
  238. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/comment/associator.rb +0 -0
  239. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/comment.rb +0 -0
  240. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/collection.rb +0 -0
  241. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/condition.rb +0 -0
  242. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/constant.rb +0 -0
  243. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/definition.rb +0 -0
  244. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/for.rb +0 -0
  245. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/heredoc.rb +0 -0
  246. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/index.rb +0 -0
  247. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/keyword.rb +0 -0
  248. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/method_definition.rb +0 -0
  249. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/objc_kwarg.rb +0 -0
  250. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/operator.rb +0 -0
  251. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/rescue_body.rb +0 -0
  252. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/send.rb +0 -0
  253. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/ternary.rb +0 -0
  254. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/variable.rb +0 -0
  255. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map.rb +0 -0
  256. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/range.rb +0 -0
  257. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/rewriter/action.rb +0 -0
  258. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/rewriter.rb +0 -0
  259. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/tree_rewriter/action.rb +0 -0
  260. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/tree_rewriter.rb +0 -0
  261. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/static_environment.rb +0 -0
  262. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/syntax_error.rb +0 -0
  263. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/tree_rewriter.rb +0 -0
  264. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/unknown_encoding_in_magic_comment_error.rb +0 -0
  265. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/variables_stack.rb +0 -0
  266. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser.rb +0 -0
@@ -1,49 +0,0 @@
1
- #include "prism/util/pm_list.h"
2
-
3
- /**
4
- * Returns true if the given list is empty.
5
- */
6
- PRISM_EXPORTED_FUNCTION bool
7
- pm_list_empty_p(pm_list_t *list) {
8
- return list->head == NULL;
9
- }
10
-
11
- /**
12
- * Returns the size of the list.
13
- */
14
- PRISM_EXPORTED_FUNCTION size_t
15
- pm_list_size(pm_list_t *list) {
16
- return list->size;
17
- }
18
-
19
- /**
20
- * Append a node to the given list.
21
- */
22
- void
23
- pm_list_append(pm_list_t *list, pm_list_node_t *node) {
24
- if (list->head == NULL) {
25
- list->head = node;
26
- } else {
27
- list->tail->next = node;
28
- }
29
-
30
- list->tail = node;
31
- list->size++;
32
- }
33
-
34
- /**
35
- * Deallocate the internal state of the given list.
36
- */
37
- PRISM_EXPORTED_FUNCTION void
38
- pm_list_free(pm_list_t *list) {
39
- pm_list_node_t *node = list->head;
40
- pm_list_node_t *next;
41
-
42
- while (node != NULL) {
43
- next = node->next;
44
- xfree(node);
45
- node = next;
46
- }
47
-
48
- list->size = 0;
49
- }
@@ -1,35 +0,0 @@
1
- #include "prism/util/pm_memchr.h"
2
-
3
- #define PRISM_MEMCHR_TRAILING_BYTE_MINIMUM 0x40
4
-
5
- /**
6
- * We need to roll our own memchr to handle cases where the encoding changes and
7
- * we need to search for a character in a buffer that could be the trailing byte
8
- * of a multibyte character.
9
- */
10
- void *
11
- pm_memchr(const void *memory, int character, size_t number, bool encoding_changed, const pm_encoding_t *encoding) {
12
- if (encoding_changed && encoding->multibyte && character >= PRISM_MEMCHR_TRAILING_BYTE_MINIMUM) {
13
- const uint8_t *source = (const uint8_t *) memory;
14
- size_t index = 0;
15
-
16
- while (index < number) {
17
- if (source[index] == character) {
18
- return (void *) (source + index);
19
- }
20
-
21
- size_t width = encoding->char_width(source + index, (ptrdiff_t) (number - index));
22
- if (width == 0) {
23
- return NULL;
24
- }
25
-
26
- index += width;
27
- }
28
-
29
- return NULL;
30
- } else {
31
- return memchr(memory, character, number);
32
- }
33
- }
34
-
35
- #undef PRISM_MEMCHR_TRAILING_BYTE_MINIMUM
@@ -1,125 +0,0 @@
1
- #include "prism/util/pm_newline_list.h"
2
-
3
- /**
4
- * Initialize a new newline list with the given capacity. Returns true if the
5
- * allocation of the offsets succeeds, otherwise returns false.
6
- */
7
- bool
8
- pm_newline_list_init(pm_newline_list_t *list, const uint8_t *start, size_t capacity) {
9
- list->offsets = (size_t *) xcalloc(capacity, sizeof(size_t));
10
- if (list->offsets == NULL) return false;
11
-
12
- list->start = start;
13
-
14
- // This is 1 instead of 0 because we want to include the first line of the
15
- // file as having offset 0, which is set because of calloc.
16
- list->size = 1;
17
- list->capacity = capacity;
18
-
19
- return true;
20
- }
21
-
22
- /**
23
- * Clear out the newlines that have been appended to the list.
24
- */
25
- void
26
- pm_newline_list_clear(pm_newline_list_t *list) {
27
- list->size = 1;
28
- }
29
-
30
- /**
31
- * Append a new offset to the newline list. Returns true if the reallocation of
32
- * the offsets succeeds (if one was necessary), otherwise returns false.
33
- */
34
- bool
35
- pm_newline_list_append(pm_newline_list_t *list, const uint8_t *cursor) {
36
- if (list->size == list->capacity) {
37
- size_t *original_offsets = list->offsets;
38
-
39
- list->capacity = (list->capacity * 3) / 2;
40
- list->offsets = (size_t *) xcalloc(list->capacity, sizeof(size_t));
41
- if (list->offsets == NULL) return false;
42
-
43
- memcpy(list->offsets, original_offsets, list->size * sizeof(size_t));
44
- xfree(original_offsets);
45
- }
46
-
47
- assert(*cursor == '\n');
48
- assert(cursor >= list->start);
49
- size_t newline_offset = (size_t) (cursor - list->start + 1);
50
-
51
- assert(list->size == 0 || newline_offset > list->offsets[list->size - 1]);
52
- list->offsets[list->size++] = newline_offset;
53
-
54
- return true;
55
- }
56
-
57
- /**
58
- * Returns the line of the given offset. If the offset is not in the list, the
59
- * line of the closest offset less than the given offset is returned.
60
- */
61
- int32_t
62
- pm_newline_list_line(const pm_newline_list_t *list, const uint8_t *cursor, int32_t start_line) {
63
- assert(cursor >= list->start);
64
- size_t offset = (size_t) (cursor - list->start);
65
-
66
- size_t left = 0;
67
- size_t right = list->size - 1;
68
-
69
- while (left <= right) {
70
- size_t mid = left + (right - left) / 2;
71
-
72
- if (list->offsets[mid] == offset) {
73
- return ((int32_t) mid) + start_line;
74
- }
75
-
76
- if (list->offsets[mid] < offset) {
77
- left = mid + 1;
78
- } else {
79
- right = mid - 1;
80
- }
81
- }
82
-
83
- return ((int32_t) left) + start_line - 1;
84
- }
85
-
86
- /**
87
- * Returns the line and column of the given offset. If the offset is not in the
88
- * list, the line and column of the closest offset less than the given offset
89
- * are returned.
90
- */
91
- pm_line_column_t
92
- pm_newline_list_line_column(const pm_newline_list_t *list, const uint8_t *cursor, int32_t start_line) {
93
- assert(cursor >= list->start);
94
- size_t offset = (size_t) (cursor - list->start);
95
-
96
- size_t left = 0;
97
- size_t right = list->size - 1;
98
-
99
- while (left <= right) {
100
- size_t mid = left + (right - left) / 2;
101
-
102
- if (list->offsets[mid] == offset) {
103
- return ((pm_line_column_t) { ((int32_t) mid) + start_line, 0 });
104
- }
105
-
106
- if (list->offsets[mid] < offset) {
107
- left = mid + 1;
108
- } else {
109
- right = mid - 1;
110
- }
111
- }
112
-
113
- return ((pm_line_column_t) {
114
- .line = ((int32_t) left) + start_line - 1,
115
- .column = (uint32_t) (offset - list->offsets[left - 1])
116
- });
117
- }
118
-
119
- /**
120
- * Free the internal memory allocated for the newline list.
121
- */
122
- void
123
- pm_newline_list_free(pm_newline_list_t *list) {
124
- xfree(list->offsets);
125
- }
@@ -1,381 +0,0 @@
1
- #include "prism/util/pm_string.h"
2
-
3
- static const uint8_t empty_source[] = "";
4
-
5
- /**
6
- * Returns the size of the pm_string_t struct. This is necessary to allocate the
7
- * correct amount of memory in the FFI backend.
8
- */
9
- PRISM_EXPORTED_FUNCTION size_t
10
- pm_string_sizeof(void) {
11
- return sizeof(pm_string_t);
12
- }
13
-
14
- /**
15
- * Initialize a shared string that is based on initial input.
16
- */
17
- void
18
- pm_string_shared_init(pm_string_t *string, const uint8_t *start, const uint8_t *end) {
19
- assert(start <= end);
20
-
21
- *string = (pm_string_t) {
22
- .type = PM_STRING_SHARED,
23
- .source = start,
24
- .length = (size_t) (end - start)
25
- };
26
- }
27
-
28
- /**
29
- * Initialize an owned string that is responsible for freeing allocated memory.
30
- */
31
- void
32
- pm_string_owned_init(pm_string_t *string, uint8_t *source, size_t length) {
33
- *string = (pm_string_t) {
34
- .type = PM_STRING_OWNED,
35
- .source = source,
36
- .length = length
37
- };
38
- }
39
-
40
- /**
41
- * Initialize a constant string that doesn't own its memory source.
42
- */
43
- void
44
- pm_string_constant_init(pm_string_t *string, const char *source, size_t length) {
45
- *string = (pm_string_t) {
46
- .type = PM_STRING_CONSTANT,
47
- .source = (const uint8_t *) source,
48
- .length = length
49
- };
50
- }
51
-
52
- #ifdef _WIN32
53
- /**
54
- * Represents a file handle on Windows, where the path will need to be freed
55
- * when the file is closed.
56
- */
57
- typedef struct {
58
- /** The path to the file, which will become allocated memory. */
59
- WCHAR *path;
60
-
61
- /** The handle to the file, which will start as uninitialized memory. */
62
- HANDLE file;
63
- } pm_string_file_handle_t;
64
-
65
- /**
66
- * Open the file indicated by the filepath parameter for reading on Windows.
67
- * Perform any kind of normalization that needs to happen on the filepath.
68
- */
69
- static pm_string_init_result_t
70
- pm_string_file_handle_open(pm_string_file_handle_t *handle, const char *filepath) {
71
- int length = MultiByteToWideChar(CP_UTF8, 0, filepath, -1, NULL, 0);
72
- if (length == 0) return PM_STRING_INIT_ERROR_GENERIC;
73
-
74
- handle->path = xmalloc(sizeof(WCHAR) * ((size_t) length));
75
- if ((handle->path == NULL) || (MultiByteToWideChar(CP_UTF8, 0, filepath, -1, handle->path, length) == 0)) {
76
- xfree(handle->path);
77
- return PM_STRING_INIT_ERROR_GENERIC;
78
- }
79
-
80
- handle->file = CreateFileW(handle->path, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL);
81
- if (handle->file == INVALID_HANDLE_VALUE) {
82
- pm_string_init_result_t result = PM_STRING_INIT_ERROR_GENERIC;
83
-
84
- if (GetLastError() == ERROR_ACCESS_DENIED) {
85
- DWORD attributes = GetFileAttributesW(handle->path);
86
- if ((attributes != INVALID_FILE_ATTRIBUTES) && (attributes & FILE_ATTRIBUTE_DIRECTORY)) {
87
- result = PM_STRING_INIT_ERROR_DIRECTORY;
88
- }
89
- }
90
-
91
- xfree(handle->path);
92
- return result;
93
- }
94
-
95
- return PM_STRING_INIT_SUCCESS;
96
- }
97
-
98
- /**
99
- * Close the file handle and free the path.
100
- */
101
- static void
102
- pm_string_file_handle_close(pm_string_file_handle_t *handle) {
103
- xfree(handle->path);
104
- CloseHandle(handle->file);
105
- }
106
- #endif
107
-
108
- /**
109
- * Read the file indicated by the filepath parameter into source and load its
110
- * contents and size into the given `pm_string_t`. The given `pm_string_t`
111
- * should be freed using `pm_string_free` when it is no longer used.
112
- *
113
- * We want to use demand paging as much as possible in order to avoid having to
114
- * read the entire file into memory (which could be detrimental to performance
115
- * for large files). This means that if we're on windows we'll use
116
- * `MapViewOfFile`, on POSIX systems that have access to `mmap` we'll use
117
- * `mmap`, and on other POSIX systems we'll use `read`.
118
- */
119
- PRISM_EXPORTED_FUNCTION pm_string_init_result_t
120
- pm_string_mapped_init(pm_string_t *string, const char *filepath) {
121
- #ifdef _WIN32
122
- // Open the file for reading.
123
- pm_string_file_handle_t handle;
124
- pm_string_init_result_t result = pm_string_file_handle_open(&handle, filepath);
125
- if (result != PM_STRING_INIT_SUCCESS) return result;
126
-
127
- // Get the file size.
128
- DWORD file_size = GetFileSize(handle.file, NULL);
129
- if (file_size == INVALID_FILE_SIZE) {
130
- pm_string_file_handle_close(&handle);
131
- return PM_STRING_INIT_ERROR_GENERIC;
132
- }
133
-
134
- // If the file is empty, then we don't need to do anything else, we'll set
135
- // the source to a constant empty string and return.
136
- if (file_size == 0) {
137
- pm_string_file_handle_close(&handle);
138
- *string = (pm_string_t) { .type = PM_STRING_CONSTANT, .source = empty_source, .length = 0 };
139
- return PM_STRING_INIT_SUCCESS;
140
- }
141
-
142
- // Create a mapping of the file.
143
- HANDLE mapping = CreateFileMapping(handle.file, NULL, PAGE_READONLY, 0, 0, NULL);
144
- if (mapping == NULL) {
145
- pm_string_file_handle_close(&handle);
146
- return PM_STRING_INIT_ERROR_GENERIC;
147
- }
148
-
149
- // Map the file into memory.
150
- uint8_t *source = (uint8_t *) MapViewOfFile(mapping, FILE_MAP_READ, 0, 0, 0);
151
- CloseHandle(mapping);
152
- pm_string_file_handle_close(&handle);
153
-
154
- if (source == NULL) {
155
- return PM_STRING_INIT_ERROR_GENERIC;
156
- }
157
-
158
- *string = (pm_string_t) { .type = PM_STRING_MAPPED, .source = source, .length = (size_t) file_size };
159
- return PM_STRING_INIT_SUCCESS;
160
- #elif defined(_POSIX_MAPPED_FILES)
161
- // Open the file for reading
162
- int fd = open(filepath, O_RDONLY);
163
- if (fd == -1) {
164
- return PM_STRING_INIT_ERROR_GENERIC;
165
- }
166
-
167
- // Stat the file to get the file size
168
- struct stat sb;
169
- if (fstat(fd, &sb) == -1) {
170
- close(fd);
171
- return PM_STRING_INIT_ERROR_GENERIC;
172
- }
173
-
174
- // Ensure it is a file and not a directory
175
- if (S_ISDIR(sb.st_mode)) {
176
- close(fd);
177
- return PM_STRING_INIT_ERROR_DIRECTORY;
178
- }
179
-
180
- // mmap the file descriptor to virtually get the contents
181
- size_t size = (size_t) sb.st_size;
182
- uint8_t *source = NULL;
183
-
184
- if (size == 0) {
185
- close(fd);
186
- *string = (pm_string_t) { .type = PM_STRING_CONSTANT, .source = empty_source, .length = 0 };
187
- return PM_STRING_INIT_SUCCESS;
188
- }
189
-
190
- source = mmap(NULL, size, PROT_READ, MAP_PRIVATE, fd, 0);
191
- if (source == MAP_FAILED) {
192
- close(fd);
193
- return PM_STRING_INIT_ERROR_GENERIC;
194
- }
195
-
196
- close(fd);
197
- *string = (pm_string_t) { .type = PM_STRING_MAPPED, .source = source, .length = size };
198
- return PM_STRING_INIT_SUCCESS;
199
- #else
200
- return pm_string_file_init(string, filepath);
201
- #endif
202
- }
203
-
204
- /**
205
- * Read the file indicated by the filepath parameter into source and load its
206
- * contents and size into the given `pm_string_t`. The given `pm_string_t`
207
- * should be freed using `pm_string_free` when it is no longer used.
208
- */
209
- PRISM_EXPORTED_FUNCTION pm_string_init_result_t
210
- pm_string_file_init(pm_string_t *string, const char *filepath) {
211
- #ifdef _WIN32
212
- // Open the file for reading.
213
- pm_string_file_handle_t handle;
214
- pm_string_init_result_t result = pm_string_file_handle_open(&handle, filepath);
215
- if (result != PM_STRING_INIT_SUCCESS) return result;
216
-
217
- // Get the file size.
218
- DWORD file_size = GetFileSize(handle.file, NULL);
219
- if (file_size == INVALID_FILE_SIZE) {
220
- pm_string_file_handle_close(&handle);
221
- return PM_STRING_INIT_ERROR_GENERIC;
222
- }
223
-
224
- // If the file is empty, then we don't need to do anything else, we'll set
225
- // the source to a constant empty string and return.
226
- if (file_size == 0) {
227
- pm_string_file_handle_close(&handle);
228
- *string = (pm_string_t) { .type = PM_STRING_CONSTANT, .source = empty_source, .length = 0 };
229
- return PM_STRING_INIT_SUCCESS;
230
- }
231
-
232
- // Create a buffer to read the file into.
233
- uint8_t *source = xmalloc(file_size);
234
- if (source == NULL) {
235
- pm_string_file_handle_close(&handle);
236
- return PM_STRING_INIT_ERROR_GENERIC;
237
- }
238
-
239
- // Read the contents of the file
240
- DWORD bytes_read;
241
- if (!ReadFile(handle.file, source, file_size, &bytes_read, NULL)) {
242
- pm_string_file_handle_close(&handle);
243
- return PM_STRING_INIT_ERROR_GENERIC;
244
- }
245
-
246
- // Check the number of bytes read
247
- if (bytes_read != file_size) {
248
- xfree(source);
249
- pm_string_file_handle_close(&handle);
250
- return PM_STRING_INIT_ERROR_GENERIC;
251
- }
252
-
253
- pm_string_file_handle_close(&handle);
254
- *string = (pm_string_t) { .type = PM_STRING_OWNED, .source = source, .length = (size_t) file_size };
255
- return PM_STRING_INIT_SUCCESS;
256
- #elif defined(PRISM_HAS_FILESYSTEM)
257
- // Open the file for reading
258
- int fd = open(filepath, O_RDONLY);
259
- if (fd == -1) {
260
- return PM_STRING_INIT_ERROR_GENERIC;
261
- }
262
-
263
- // Stat the file to get the file size
264
- struct stat sb;
265
- if (fstat(fd, &sb) == -1) {
266
- close(fd);
267
- return PM_STRING_INIT_ERROR_GENERIC;
268
- }
269
-
270
- // Ensure it is a file and not a directory
271
- if (S_ISDIR(sb.st_mode)) {
272
- close(fd);
273
- return PM_STRING_INIT_ERROR_DIRECTORY;
274
- }
275
-
276
- // Check the size to see if it's empty
277
- size_t size = (size_t) sb.st_size;
278
- if (size == 0) {
279
- close(fd);
280
- *string = (pm_string_t) { .type = PM_STRING_CONSTANT, .source = empty_source, .length = 0 };
281
- return PM_STRING_INIT_SUCCESS;
282
- }
283
-
284
- size_t length = (size_t) size;
285
- uint8_t *source = xmalloc(length);
286
- if (source == NULL) {
287
- close(fd);
288
- return PM_STRING_INIT_ERROR_GENERIC;
289
- }
290
-
291
- long bytes_read = (long) read(fd, source, length);
292
- close(fd);
293
-
294
- if (bytes_read == -1) {
295
- xfree(source);
296
- return PM_STRING_INIT_ERROR_GENERIC;
297
- }
298
-
299
- *string = (pm_string_t) { .type = PM_STRING_OWNED, .source = source, .length = length };
300
- return PM_STRING_INIT_SUCCESS;
301
- #else
302
- (void) string;
303
- (void) filepath;
304
- perror("pm_string_file_init is not implemented for this platform");
305
- return PM_STRING_INIT_ERROR_GENERIC;
306
- #endif
307
- }
308
-
309
- /**
310
- * Ensure the string is owned. If it is not, then reinitialize it as owned and
311
- * copy over the previous source.
312
- */
313
- void
314
- pm_string_ensure_owned(pm_string_t *string) {
315
- if (string->type == PM_STRING_OWNED) return;
316
-
317
- size_t length = pm_string_length(string);
318
- const uint8_t *source = pm_string_source(string);
319
-
320
- uint8_t *memory = xmalloc(length);
321
- if (!memory) return;
322
-
323
- pm_string_owned_init(string, memory, length);
324
- memcpy((void *) string->source, source, length);
325
- }
326
-
327
- /**
328
- * Compare the underlying lengths and bytes of two strings. Returns 0 if the
329
- * strings are equal, a negative number if the left string is less than the
330
- * right string, and a positive number if the left string is greater than the
331
- * right string.
332
- */
333
- int
334
- pm_string_compare(const pm_string_t *left, const pm_string_t *right) {
335
- size_t left_length = pm_string_length(left);
336
- size_t right_length = pm_string_length(right);
337
-
338
- if (left_length < right_length) {
339
- return -1;
340
- } else if (left_length > right_length) {
341
- return 1;
342
- }
343
-
344
- return memcmp(pm_string_source(left), pm_string_source(right), left_length);
345
- }
346
-
347
- /**
348
- * Returns the length associated with the string.
349
- */
350
- PRISM_EXPORTED_FUNCTION size_t
351
- pm_string_length(const pm_string_t *string) {
352
- return string->length;
353
- }
354
-
355
- /**
356
- * Returns the start pointer associated with the string.
357
- */
358
- PRISM_EXPORTED_FUNCTION const uint8_t *
359
- pm_string_source(const pm_string_t *string) {
360
- return string->source;
361
- }
362
-
363
- /**
364
- * Free the associated memory of the given string.
365
- */
366
- PRISM_EXPORTED_FUNCTION void
367
- pm_string_free(pm_string_t *string) {
368
- void *memory = (void *) string->source;
369
-
370
- if (string->type == PM_STRING_OWNED) {
371
- xfree(memory);
372
- #ifdef PRISM_HAS_MMAP
373
- } else if (string->type == PM_STRING_MAPPED && string->length) {
374
- #if defined(_WIN32)
375
- UnmapViewOfFile(memory);
376
- #elif defined(_POSIX_MAPPED_FILES)
377
- munmap(memory, string->length);
378
- #endif
379
- #endif /* PRISM_HAS_MMAP */
380
- }
381
- }
@@ -1,36 +0,0 @@
1
- #include "prism/util/pm_strncasecmp.h"
2
-
3
- /**
4
- * A locale-insensitive version of `tolower(3)`
5
- */
6
- static inline int
7
- pm_tolower(int c)
8
- {
9
- if ('A' <= c && c <= 'Z') {
10
- return c | 0x20;
11
- }
12
- return c;
13
- }
14
-
15
- /**
16
- * Compare two strings, ignoring case, up to the given length. Returns 0 if the
17
- * strings are equal, a negative number if string1 is less than string2, or a
18
- * positive number if string1 is greater than string2.
19
- *
20
- * Note that this is effectively our own implementation of strncasecmp, but it's
21
- * not available on all of the platforms we want to support so we're rolling it
22
- * here.
23
- */
24
- int
25
- pm_strncasecmp(const uint8_t *string1, const uint8_t *string2, size_t length) {
26
- size_t offset = 0;
27
- int difference = 0;
28
-
29
- while (offset < length && string1[offset] != '\0') {
30
- if (string2[offset] == '\0') return string1[offset];
31
- if ((difference = pm_tolower(string1[offset]) - pm_tolower(string2[offset])) != 0) return difference;
32
- offset++;
33
- }
34
-
35
- return difference;
36
- }