parser 2.7.1.4 → 3.0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/lib/parser/all.rb +1 -1
  3. data/lib/parser/ast/processor.rb +3 -7
  4. data/lib/parser/base.rb +7 -5
  5. data/lib/parser/builders/default.rb +177 -28
  6. data/lib/parser/context.rb +4 -0
  7. data/lib/parser/current.rb +9 -9
  8. data/lib/parser/current_arg_stack.rb +5 -2
  9. data/lib/parser/lexer.rb +813 -803
  10. data/lib/parser/macruby.rb +1 -1
  11. data/lib/parser/max_numparam_stack.rb +13 -5
  12. data/lib/parser/messages.rb +3 -0
  13. data/lib/parser/meta.rb +7 -6
  14. data/lib/parser/ruby18.rb +7 -3
  15. data/lib/parser/ruby19.rb +1 -1
  16. data/lib/parser/ruby20.rb +1 -1
  17. data/lib/parser/ruby21.rb +1 -1
  18. data/lib/parser/ruby22.rb +1 -1
  19. data/lib/parser/ruby23.rb +1 -1
  20. data/lib/parser/ruby24.rb +1 -1
  21. data/lib/parser/ruby25.rb +1 -1
  22. data/lib/parser/ruby26.rb +1 -1
  23. data/lib/parser/ruby27.rb +3720 -3701
  24. data/lib/parser/ruby30.rb +8060 -0
  25. data/lib/parser/rubymotion.rb +1 -1
  26. data/lib/parser/runner.rb +4 -4
  27. data/lib/parser/source/buffer.rb +45 -27
  28. data/lib/parser/source/comment/associator.rb +1 -1
  29. data/lib/parser/source/comment.rb +1 -1
  30. data/lib/parser/source/map/{endless_definition.rb → method_definition.rb} +5 -3
  31. data/lib/parser/source/range.rb +2 -2
  32. data/lib/parser/static_environment.rb +4 -0
  33. data/lib/parser/variables_stack.rb +4 -0
  34. data/lib/parser/version.rb +1 -1
  35. data/lib/parser.rb +1 -1
  36. data/parser.gemspec +1 -17
  37. metadata +8 -97
  38. data/.gitignore +0 -34
  39. data/.travis.yml +0 -40
  40. data/.yardopts +0 -21
  41. data/CHANGELOG.md +0 -1116
  42. data/CONTRIBUTING.md +0 -17
  43. data/Gemfile +0 -10
  44. data/README.md +0 -309
  45. data/Rakefile +0 -167
  46. data/ci/run_rubocop_specs +0 -14
  47. data/doc/AST_FORMAT.md +0 -2283
  48. data/doc/CUSTOMIZATION.md +0 -37
  49. data/doc/INTERNALS.md +0 -21
  50. data/doc/css/.gitkeep +0 -0
  51. data/doc/css/common.css +0 -68
  52. data/lib/parser/lexer.rl +0 -2550
  53. data/lib/parser/macruby.y +0 -2208
  54. data/lib/parser/ruby18.y +0 -1936
  55. data/lib/parser/ruby19.y +0 -2185
  56. data/lib/parser/ruby20.y +0 -2363
  57. data/lib/parser/ruby21.y +0 -2364
  58. data/lib/parser/ruby22.y +0 -2371
  59. data/lib/parser/ruby23.y +0 -2377
  60. data/lib/parser/ruby24.y +0 -2415
  61. data/lib/parser/ruby25.y +0 -2412
  62. data/lib/parser/ruby26.y +0 -2420
  63. data/lib/parser/ruby27.y +0 -2950
  64. data/lib/parser/ruby28.y +0 -3043
  65. data/lib/parser/rubymotion.y +0 -2192
  66. data/test/bug_163/fixtures/input.rb +0 -5
  67. data/test/bug_163/fixtures/output.rb +0 -5
  68. data/test/bug_163/rewriter.rb +0 -20
  69. data/test/helper.rb +0 -103
  70. data/test/parse_helper.rb +0 -323
  71. data/test/racc_coverage_helper.rb +0 -133
  72. data/test/test_ast_processor.rb +0 -32
  73. data/test/test_base.rb +0 -31
  74. data/test/test_current.rb +0 -31
  75. data/test/test_diagnostic.rb +0 -95
  76. data/test/test_diagnostic_engine.rb +0 -59
  77. data/test/test_encoding.rb +0 -99
  78. data/test/test_lexer.rb +0 -3617
  79. data/test/test_lexer_stack_state.rb +0 -78
  80. data/test/test_meta.rb +0 -12
  81. data/test/test_parse_helper.rb +0 -80
  82. data/test/test_parser.rb +0 -9780
  83. data/test/test_runner_parse.rb +0 -56
  84. data/test/test_runner_rewrite.rb +0 -47
  85. data/test/test_source_buffer.rb +0 -165
  86. data/test/test_source_comment.rb +0 -36
  87. data/test/test_source_comment_associator.rb +0 -399
  88. data/test/test_source_map.rb +0 -14
  89. data/test/test_source_range.rb +0 -192
  90. data/test/test_source_rewriter.rb +0 -541
  91. data/test/test_source_rewriter_action.rb +0 -46
  92. data/test/test_source_tree_rewriter.rb +0 -361
  93. data/test/test_static_environment.rb +0 -45
  94. data/test/using_tree_rewriter/fixtures/input.rb +0 -3
  95. data/test/using_tree_rewriter/fixtures/output.rb +0 -3
  96. data/test/using_tree_rewriter/using_tree_rewriter.rb +0 -9
@@ -1,78 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'helper'
4
-
5
- class TestLexerStackState < Minitest::Test
6
- def setup
7
- @state = Parser::Lexer::StackState.new('state')
8
- end
9
-
10
- def test_push
11
- refute @state.active?
12
-
13
- assert_equal true, @state.push(true)
14
- assert @state.active?
15
-
16
- assert_equal false, @state.push(false)
17
- refute @state.active?
18
- end
19
-
20
- def test_clear
21
- @state.push true
22
- @state.clear
23
-
24
- refute @state.active?
25
- end
26
-
27
- def test_pop
28
- @state.push(true)
29
-
30
- assert_equal true, @state.pop
31
- refute @state.active?
32
- end
33
-
34
- def test_pop_empty
35
- assert_equal false, @state.pop
36
- refute @state.active?
37
- end
38
-
39
- def test_lexpop_10
40
- @state.push(true)
41
- @state.push(false)
42
-
43
- assert_equal true, @state.lexpop
44
- assert_equal true, @state.pop
45
- end
46
-
47
- def test_lexpop_01
48
- @state.push(false)
49
- @state.push(true)
50
-
51
- assert_equal true, @state.lexpop
52
- assert_equal true, @state.pop
53
- end
54
-
55
- def test_lexpop_00
56
- @state.push(false)
57
- @state.push(false)
58
-
59
- assert_equal false, @state.lexpop
60
- assert_equal false, @state.pop
61
- end
62
-
63
- def test_dup
64
- @state.push(true)
65
- new_state = @state.dup
66
-
67
- assert_equal true, @state.pop
68
- assert_equal true, new_state.pop
69
- end
70
-
71
- def test_to_s
72
- @state.push(true)
73
- @state.push(false)
74
- @state.push(false)
75
-
76
- assert_equal '[100 <= state]', @state.to_s
77
- end
78
- end
data/test/test_meta.rb DELETED
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'helper'
4
-
5
- class TestMeta < Minitest::Test
6
- def test_NODE_TYPES
7
- for_each_node do |node|
8
- assert Parser::Meta::NODE_TYPES.include?(node.type),
9
- "Type #{node.type} missing from Parser::Meta::NODE_TYPES"
10
- end
11
- end
12
- end
@@ -1,80 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'helper'
4
- require 'parse_helper'
5
-
6
- class TestParseHelper < Minitest::Test
7
- include ParseHelper
8
-
9
- def test_parser_for_ruby_version
10
- assert_instance_of Parser::Ruby18,
11
- parser_for_ruby_version('1.8')
12
-
13
- assert_instance_of Parser::Ruby19,
14
- parser_for_ruby_version('1.9')
15
-
16
- assert_instance_of Parser::Ruby20,
17
- parser_for_ruby_version('2.0')
18
-
19
- assert_instance_of Parser::Ruby21,
20
- parser_for_ruby_version('2.1')
21
- end
22
-
23
- def parse_maps(what)
24
- parse_source_map_descriptions(what).to_a
25
- end
26
-
27
- def test_parse_mapsation_description
28
- assert_equal [[0, 4, 'expr', [], '~~~~ expr']],
29
- parse_maps('~~~~ expr')
30
-
31
- assert_equal [[0, 4, 'expr', [], '^~~~ expr']],
32
- parse_maps('^~~~ expr')
33
-
34
- assert_equal [[0, 4, 'expr', [], '^^^^ expr']],
35
- parse_maps('^^^^ expr')
36
-
37
- assert_equal [[2, 3, 'op', [], ' ^ op']],
38
- parse_maps(' ^ op')
39
-
40
- assert_equal [[2, 3, 'op', ['foo'], ' ~ op (foo)']],
41
- parse_maps(' ~ op (foo)')
42
-
43
- assert_equal [[2, 4, 'op', ['foo', 'bar'], ' ~~ op (foo.bar)']],
44
- parse_maps(' ~~ op (foo.bar)')
45
-
46
- assert_equal [[2, 4, 'op', ['foo/2', 'bar'], ' ~~ op (foo/2.bar)']],
47
- parse_maps(' ~~ op (foo/2.bar)')
48
-
49
- assert_equal [[0, 4, 'expr', [], '~~~~ expr'],
50
- [5, 7, 'op', ['str', 'e_h'], ' ~~ op (str.e_h)']],
51
- parse_maps(%{
52
- |~~~~ expr
53
- | ~~ op (str.e_h)
54
- })
55
- end
56
-
57
- def test_traverse_ast
58
- ast = s(:send,
59
- s(:int, 1), :+,
60
- s(:dstr,
61
- s(:str, 'foo'),
62
- s(:int, 2),
63
- s(:int, 3)))
64
-
65
- assert_equal ast, traverse_ast(ast, %w())
66
-
67
- assert_equal s(:int, 1), traverse_ast(ast, %w(int))
68
- assert_equal s(:str, 'foo'), traverse_ast(ast, %w(dstr str))
69
- assert_equal s(:int, 2), traverse_ast(ast, %w(dstr int))
70
- assert_equal s(:int, 2), traverse_ast(ast, %w(dstr int/1))
71
- assert_equal s(:int, 3), traverse_ast(ast, %w(dstr int/2))
72
-
73
- assert_nil traverse_ast(ast, %w(str))
74
- assert_nil traverse_ast(ast, %w(dstr int/3))
75
- end
76
-
77
- def test_assert_parses
78
- # Someone more clever and/or motivated than me is going to test this.
79
- end
80
- end