@appthreat/atom-parsetools 1.3.0 → 1.5.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 (281) hide show
  1. package/README.md +111 -14
  2. package/package.json +8 -1
  3. package/phpastgen.js +1764 -18
  4. package/plugins/autoload.php +1 -1
  5. package/plugins/composer/autoload_classmap.php +1 -0
  6. package/plugins/composer/autoload_real.php +4 -4
  7. package/plugins/composer/autoload_static.php +5 -4
  8. package/plugins/composer/installed.json +7 -8
  9. package/plugins/composer/installed.php +9 -9
  10. package/plugins/composer.json +1 -1
  11. package/plugins/composer.lock +7 -8
  12. package/plugins/nikic/php-parser/composer.json +1 -2
  13. package/plugins/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +1 -3
  14. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +2 -0
  15. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php +20 -0
  16. package/plugins/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +5 -4
  17. package/plugins/nikic/php-parser/lib/PhpParser/ParserAbstract.php +7 -0
  18. package/plugins/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +20 -4
  19. package/plugins/rubyastgen/Gemfile +6 -4
  20. package/plugins/rubyastgen/Gemfile.lock +5 -8
  21. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-4ac84327b3af/Gemfile +11 -0
  22. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-4ac84327b3af/exe/ruby_ast_gen +55 -0
  23. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-4ac84327b3af/lib/ruby_ast_gen/cli.rb +133 -0
  24. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-4ac84327b3af/lib/ruby_ast_gen/node_handling.rb +449 -0
  25. 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
  26. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-4ac84327b3af/lib/ruby_ast_gen.rb +888 -0
  27. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-4ac84327b3af/ruby_ast_gen.gemspec +25 -0
  28. 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
  29. 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
  30. package/plugins/rubyastgen/bundle/ruby/4.0.0/specifications/ast-2.4.3.gemspec +29 -0
  31. package/plugins/rubyastgen/bundle/ruby/4.0.0/specifications/bundler-2.6.9.gemspec +25 -0
  32. package/plugins/rubyastgen/bundle/ruby/4.0.0/specifications/ostruct-0.6.3.gemspec +22 -0
  33. package/plugins/rubyastgen/bundle/ruby/4.0.0/specifications/parser-3.3.12.0.gemspec +37 -0
  34. package/rbastgen.js +102 -13
  35. package/scalasem.js +11 -2
  36. package/plugins/bin/bundler +0 -14
  37. package/plugins/bin/ruby_ast_gen +0 -14
  38. package/plugins/rubyastgen/bundle/bundler/setup.rb +0 -44
  39. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-cc312ebf06b4/exe/ruby_ast_gen +0 -63
  40. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-cc312ebf06b4/lib/ruby_ast_gen/node_handling.rb +0 -269
  41. package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/ruby_ast_gen-cc312ebf06b4/lib/ruby_ast_gen.rb +0 -218
  42. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/prism-1.9.0/gem.build_complete +0 -0
  43. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/prism-1.9.0/gem_make.out +0 -44
  44. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/prism-1.9.0/mkmf.log +0 -74
  45. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/prism-1.9.0/prism/prism.so +0 -0
  46. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/racc-1.8.1/gem.build_complete +0 -0
  47. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/racc-1.8.1/gem_make.out +0 -18
  48. package/plugins/rubyastgen/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/racc-1.8.1/racc/cparse.so +0 -0
  49. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/BSDmakefile +0 -58
  50. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/Makefile +0 -116
  51. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/ext/prism/Makefile +0 -273
  52. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/ext/prism/api_node.c +0 -6945
  53. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/ext/prism/api_pack.c +0 -276
  54. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/ext/prism/extconf.rb +0 -127
  55. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/ext/prism/extension.c +0 -1427
  56. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/ext/prism/extension.h +0 -19
  57. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/ast.h +0 -8254
  58. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/defines.h +0 -260
  59. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/diagnostic.h +0 -458
  60. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/encoding.h +0 -283
  61. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/node.h +0 -129
  62. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/options.h +0 -488
  63. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/pack.h +0 -163
  64. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/parser.h +0 -936
  65. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/prettyprint.h +0 -34
  66. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/regexp.h +0 -43
  67. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/static_literals.h +0 -121
  68. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_buffer.h +0 -236
  69. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_char.h +0 -204
  70. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_constant_pool.h +0 -218
  71. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_integer.h +0 -130
  72. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_list.h +0 -103
  73. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_memchr.h +0 -29
  74. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_newline_list.h +0 -113
  75. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_string.h +0 -200
  76. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_strncasecmp.h +0 -32
  77. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/util/pm_strpbrk.h +0 -46
  78. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism/version.h +0 -29
  79. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/include/prism.h +0 -408
  80. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/compiler.rb +0 -801
  81. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/desugar_compiler.rb +0 -392
  82. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/dispatcher.rb +0 -2210
  83. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/dot_visitor.rb +0 -4767
  84. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/dsl.rb +0 -1003
  85. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/ffi.rb +0 -578
  86. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/inspect_visitor.rb +0 -2393
  87. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/lex_compat.rb +0 -911
  88. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/mutation_compiler.rb +0 -772
  89. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/node.rb +0 -19966
  90. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/node_ext.rb +0 -511
  91. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/pack.rb +0 -230
  92. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/parse_result/comments.rb +0 -188
  93. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/parse_result/errors.rb +0 -66
  94. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/parse_result/newlines.rb +0 -155
  95. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/parse_result.rb +0 -907
  96. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/pattern.rb +0 -269
  97. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/polyfill/append_as_bytes.rb +0 -15
  98. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/polyfill/byteindex.rb +0 -13
  99. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/polyfill/scan_byte.rb +0 -14
  100. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/polyfill/unpack1.rb +0 -14
  101. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/polyfill/warn.rb +0 -36
  102. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/prism.so +0 -0
  103. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/reflection.rb +0 -416
  104. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb +0 -505
  105. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/serialize.rb +0 -2400
  106. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/string_query.rb +0 -31
  107. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/parser/builder.rb +0 -62
  108. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/parser/compiler.rb +0 -2234
  109. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/parser/lexer.rb +0 -820
  110. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/parser.rb +0 -376
  111. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/parser_current.rb +0 -26
  112. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/parser_versions.rb +0 -36
  113. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/ripper/filter.rb +0 -53
  114. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/ripper/lexer.rb +0 -135
  115. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/ripper/sexp.rb +0 -126
  116. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/ripper/shim.rb +0 -5
  117. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/ripper.rb +0 -3520
  118. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation/ruby_parser.rb +0 -1964
  119. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/translation.rb +0 -18
  120. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/visitor.rb +0 -813
  121. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism.rb +0 -98
  122. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/compiler.rbi +0 -12
  123. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/dsl.rbi +0 -524
  124. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/inspect_visitor.rbi +0 -12
  125. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/node.rbi +0 -8750
  126. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/node_ext.rbi +0 -107
  127. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/parse_result.rbi +0 -404
  128. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/reflection.rbi +0 -58
  129. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/string_query.rbi +0 -12
  130. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/translation/parser.rbi +0 -11
  131. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/translation/parser_versions.rbi +0 -23
  132. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/translation/ripper.rbi +0 -15
  133. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism/visitor.rbi +0 -473
  134. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/rbi/prism.rbi +0 -63
  135. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/compiler.rbs +0 -9
  136. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/dispatcher.rbs +0 -19
  137. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/dot_visitor.rbs +0 -6
  138. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/dsl.rbs +0 -351
  139. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/inspect_visitor.rbs +0 -22
  140. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/lex_compat.rbs +0 -10
  141. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/mutation_compiler.rbs +0 -159
  142. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/node.rbs +0 -4042
  143. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/node_ext.rbs +0 -149
  144. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/pack.rbs +0 -43
  145. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/parse_result/comments.rbs +0 -38
  146. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/parse_result.rbs +0 -197
  147. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/pattern.rbs +0 -13
  148. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/reflection.rbs +0 -50
  149. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/relocation.rbs +0 -185
  150. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/serialize.rbs +0 -8
  151. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/string_query.rbs +0 -11
  152. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism/visitor.rbs +0 -169
  153. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/sig/prism.rbs +0 -272
  154. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/diagnostic.c +0 -854
  155. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/encoding.c +0 -5340
  156. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/node.c +0 -8685
  157. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/options.c +0 -338
  158. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/pack.c +0 -509
  159. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/prettyprint.c +0 -8957
  160. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/prism.c +0 -22679
  161. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/regexp.c +0 -790
  162. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/serialize.c +0 -2274
  163. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/static_literals.c +0 -617
  164. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/token_type.c +0 -703
  165. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_buffer.c +0 -357
  166. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_char.c +0 -318
  167. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_constant_pool.c +0 -342
  168. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_integer.c +0 -670
  169. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_list.c +0 -49
  170. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_memchr.c +0 -35
  171. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_newline_list.c +0 -125
  172. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_string.c +0 -381
  173. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_strncasecmp.c +0 -36
  174. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/prism-1.9.0/src/util/pm_strpbrk.c +0 -206
  175. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/BSDL +0 -22
  176. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/COPYING +0 -56
  177. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/ChangeLog +0 -846
  178. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/README.ja.rdoc +0 -58
  179. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/README.rdoc +0 -60
  180. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/TODO +0 -5
  181. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/bin/racc +0 -320
  182. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/ext/racc/cparse/Makefile +0 -273
  183. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/ext/racc/cparse/cparse.c +0 -840
  184. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/ext/racc/cparse/extconf.rb +0 -8
  185. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/compat.rb +0 -33
  186. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/cparse.so +0 -0
  187. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/debugflags.rb +0 -60
  188. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/exception.rb +0 -16
  189. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/grammar.rb +0 -1191
  190. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/grammarfileparser.rb +0 -667
  191. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/info.rb +0 -18
  192. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/iset.rb +0 -92
  193. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/logfilegenerator.rb +0 -212
  194. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/parser-text.rb +0 -644
  195. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/parser.rb +0 -630
  196. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/parserfilegenerator.rb +0 -473
  197. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/sourcetext.rb +0 -35
  198. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/state.rb +0 -976
  199. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/statetransitiontable.rb +0 -311
  200. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc/static.rb +0 -5
  201. package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/racc-1.8.1/lib/racc.rb +0 -6
  202. /package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/{ruby_ast_gen-cc312ebf06b4 → ruby_ast_gen-4ac84327b3af}/.rspec +0 -0
  203. /package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/{ruby_ast_gen-cc312ebf06b4 → ruby_ast_gen-4ac84327b3af}/bin/console +0 -0
  204. /package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/{ruby_ast_gen-cc312ebf06b4 → ruby_ast_gen-4ac84327b3af}/bin/setup +0 -0
  205. /package/plugins/rubyastgen/bundle/ruby/4.0.0/bundler/gems/{ruby_ast_gen-cc312ebf06b4 → ruby_ast_gen-4ac84327b3af}/update_version.rb +0 -0
  206. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/bin/ruby-parse +0 -0
  207. /package/plugins/rubyastgen/bundle/ruby/4.0.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/bin/ruby-rewrite +0 -0
  208. /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
  209. /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
  210. /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
  211. /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
  212. /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
  213. /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
  214. /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
  215. /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
  216. /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
  217. /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
  218. /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
  219. /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
  220. /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
  221. /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
  222. /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
  223. /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
  224. /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
  225. /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
  226. /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
  227. /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
  228. /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
  229. /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
  230. /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
  231. /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
  232. /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
  233. /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
  234. /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
  235. /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
  236. /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
  237. /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
  238. /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
  239. /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
  240. /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
  241. /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
  242. /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
  243. /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
  244. /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
  245. /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
  246. /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
  247. /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
  248. /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
  249. /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
  250. /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
  251. /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
  252. /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
  253. /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
  254. /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
  255. /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
  256. /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
  257. /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
  258. /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
  259. /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
  260. /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
  261. /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
  262. /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
  263. /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
  264. /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
  265. /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
  266. /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
  267. /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
  268. /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
  269. /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
  270. /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
  271. /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
  272. /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
  273. /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
  274. /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
  275. /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
  276. /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
  277. /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
  278. /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
  279. /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
  280. /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
  281. /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
- }