prism 1.4.0 → 1.8.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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +89 -1
  3. data/Makefile +14 -6
  4. data/README.md +3 -1
  5. data/config.yml +294 -41
  6. data/docs/build_system.md +2 -2
  7. data/docs/cruby_compilation.md +1 -1
  8. data/docs/design.md +2 -2
  9. data/docs/parser_translation.md +8 -23
  10. data/docs/releasing.md +4 -25
  11. data/docs/ripper_translation.md +1 -1
  12. data/docs/ruby_api.md +1 -0
  13. data/ext/prism/api_node.c +9 -3
  14. data/ext/prism/extconf.rb +1 -1
  15. data/ext/prism/extension.c +24 -3
  16. data/ext/prism/extension.h +1 -1
  17. data/include/prism/ast.h +360 -70
  18. data/include/prism/diagnostic.h +7 -0
  19. data/include/prism/options.h +49 -3
  20. data/include/prism/parser.h +3 -0
  21. data/include/prism/regexp.h +2 -2
  22. data/include/prism/util/pm_buffer.h +8 -0
  23. data/include/prism/util/pm_integer.h +4 -0
  24. data/include/prism/util/pm_list.h +6 -0
  25. data/include/prism/util/pm_string.h +12 -2
  26. data/include/prism/version.h +2 -2
  27. data/include/prism.h +40 -15
  28. data/lib/prism/compiler.rb +457 -152
  29. data/lib/prism/desugar_compiler.rb +1 -0
  30. data/lib/prism/dispatcher.rb +16 -0
  31. data/lib/prism/dot_visitor.rb +10 -1
  32. data/lib/prism/dsl.rb +5 -2
  33. data/lib/prism/ffi.rb +28 -10
  34. data/lib/prism/inspect_visitor.rb +4 -0
  35. data/lib/prism/lex_compat.rb +18 -75
  36. data/lib/prism/lex_ripper.rb +64 -0
  37. data/lib/prism/mutation_compiler.rb +3 -0
  38. data/lib/prism/node.rb +1663 -350
  39. data/lib/prism/node_ext.rb +4 -1
  40. data/lib/prism/pack.rb +2 -0
  41. data/lib/prism/parse_result/comments.rb +1 -0
  42. data/lib/prism/parse_result/errors.rb +1 -0
  43. data/lib/prism/parse_result/newlines.rb +1 -0
  44. data/lib/prism/parse_result.rb +3 -15
  45. data/lib/prism/pattern.rb +1 -0
  46. data/lib/prism/polyfill/scan_byte.rb +14 -0
  47. data/lib/prism/polyfill/warn.rb +36 -0
  48. data/lib/prism/reflection.rb +4 -1
  49. data/lib/prism/relocation.rb +1 -0
  50. data/lib/prism/serialize.rb +30 -22
  51. data/lib/prism/string_query.rb +1 -0
  52. data/lib/prism/translation/parser/builder.rb +1 -0
  53. data/lib/prism/translation/parser/compiler.rb +63 -41
  54. data/lib/prism/translation/parser/lexer.rb +29 -21
  55. data/lib/prism/translation/parser.rb +25 -4
  56. data/lib/prism/translation/parser_current.rb +26 -0
  57. data/lib/prism/translation/parser_versions.rb +36 -0
  58. data/lib/prism/translation/ripper/lexer.rb +46 -0
  59. data/lib/prism/translation/ripper/sexp.rb +1 -0
  60. data/lib/prism/translation/ripper.rb +44 -5
  61. data/lib/prism/translation/ruby_parser.rb +341 -23
  62. data/lib/prism/translation.rb +7 -3
  63. data/lib/prism/visitor.rb +458 -153
  64. data/lib/prism.rb +23 -1
  65. data/prism.gemspec +9 -7
  66. data/rbi/prism/dsl.rbi +6 -6
  67. data/rbi/prism/node.rbi +42 -17
  68. data/rbi/prism/translation/parser_versions.rbi +23 -0
  69. data/sig/prism/dispatcher.rbs +3 -0
  70. data/sig/prism/dsl.rbs +5 -5
  71. data/sig/prism/node.rbs +463 -38
  72. data/sig/prism/node_ext.rbs +84 -17
  73. data/sig/prism/parse_result/comments.rbs +38 -0
  74. data/sig/prism/parse_result.rbs +4 -0
  75. data/sig/prism/reflection.rbs +1 -1
  76. data/sig/prism.rbs +4 -0
  77. data/src/diagnostic.c +13 -1
  78. data/src/encoding.c +172 -67
  79. data/src/node.c +11 -0
  80. data/src/options.c +17 -7
  81. data/src/prettyprint.c +18 -0
  82. data/src/prism.c +1533 -2038
  83. data/src/serialize.c +9 -1
  84. data/src/token_type.c +38 -36
  85. data/src/util/pm_constant_pool.c +1 -1
  86. data/src/util/pm_string.c +6 -8
  87. metadata +11 -9
  88. data/lib/prism/translation/parser33.rb +0 -12
  89. data/lib/prism/translation/parser34.rb +0 -12
  90. data/lib/prism/translation/parser35.rb +0 -12
  91. data/rbi/prism/translation/parser33.rbi +0 -6
  92. data/rbi/prism/translation/parser34.rbi +0 -6
  93. data/rbi/prism/translation/parser35.rbi +0 -6
@@ -1,13 +1,17 @@
1
1
  # frozen_string_literal: true
2
+ # :markup: markdown
2
3
 
3
4
  module Prism
4
5
  # This module is responsible for converting the prism syntax tree into other
5
6
  # syntax trees.
6
7
  module Translation # steep:ignore
7
8
  autoload :Parser, "prism/translation/parser"
8
- autoload :Parser33, "prism/translation/parser33"
9
- autoload :Parser34, "prism/translation/parser34"
10
- autoload :Parser35, "prism/translation/parser35"
9
+ autoload :ParserCurrent, "prism/translation/parser_current"
10
+ autoload :Parser33, "prism/translation/parser_versions"
11
+ autoload :Parser34, "prism/translation/parser_versions"
12
+ autoload :Parser35, "prism/translation/parser_versions"
13
+ autoload :Parser40, "prism/translation/parser_versions"
14
+ autoload :Parser41, "prism/translation/parser_versions"
11
15
  autoload :Ripper, "prism/translation/ripper"
12
16
  autoload :RubyParser, "prism/translation/ruby_parser"
13
17
  end