parser 2.6.0.0 → 3.1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/parser/all.rb +3 -0
- data/lib/parser/ast/processor.rb +48 -1
- data/lib/parser/base.rb +30 -6
- data/lib/parser/builders/default.rb +670 -38
- data/lib/parser/context.rb +24 -26
- data/lib/parser/current.rb +36 -9
- data/lib/parser/current_arg_stack.rb +46 -0
- data/lib/parser/diagnostic/engine.rb +1 -2
- data/lib/parser/diagnostic.rb +1 -1
- data/lib/parser/lexer/dedenter.rb +58 -49
- data/lib/parser/lexer/explanation.rb +1 -1
- data/lib/parser/lexer.rb +13837 -11893
- data/lib/parser/macruby.rb +2544 -2489
- data/lib/parser/max_numparam_stack.rb +56 -0
- data/lib/parser/messages.rb +78 -44
- data/lib/parser/meta.rb +13 -3
- data/lib/parser/ruby18.rb +2313 -2259
- data/lib/parser/ruby19.rb +2537 -2488
- data/lib/parser/ruby20.rb +2724 -2673
- data/lib/parser/ruby21.rb +2766 -2727
- data/lib/parser/ruby22.rb +2683 -2628
- data/lib/parser/ruby23.rb +2796 -2755
- data/lib/parser/ruby24.rb +2812 -2771
- data/lib/parser/ruby25.rb +2703 -2670
- data/lib/parser/ruby26.rb +2794 -2747
- data/lib/parser/ruby27.rb +7914 -0
- data/lib/parser/ruby28.rb +8047 -0
- data/lib/parser/ruby30.rb +8096 -0
- data/lib/parser/ruby31.rb +8354 -0
- data/lib/parser/rubymotion.rb +2527 -2485
- data/lib/parser/runner/ruby_parse.rb +2 -2
- data/lib/parser/runner/ruby_rewrite.rb +2 -2
- data/lib/parser/runner.rb +36 -2
- data/lib/parser/source/buffer.rb +53 -28
- data/lib/parser/source/comment/associator.rb +31 -8
- data/lib/parser/source/comment.rb +14 -1
- data/lib/parser/source/map/method_definition.rb +25 -0
- data/lib/parser/source/range.rb +19 -3
- data/lib/parser/source/tree_rewriter/action.rb +137 -28
- data/lib/parser/source/tree_rewriter.rb +144 -14
- data/lib/parser/static_environment.rb +23 -0
- data/lib/parser/tree_rewriter.rb +3 -3
- data/lib/parser/variables_stack.rb +36 -0
- data/lib/parser/version.rb +1 -1
- data/lib/parser.rb +4 -0
- data/parser.gemspec +12 -19
- metadata +34 -99
- data/.gitignore +0 -32
- data/.travis.yml +0 -45
- data/.yardopts +0 -21
- data/CHANGELOG.md +0 -943
- data/CONTRIBUTING.md +0 -17
- data/Gemfile +0 -10
- data/README.md +0 -301
- data/Rakefile +0 -165
- data/ci/run_rubocop_specs +0 -14
- data/doc/AST_FORMAT.md +0 -1735
- data/doc/CUSTOMIZATION.md +0 -37
- data/doc/INTERNALS.md +0 -21
- data/doc/css/.gitkeep +0 -0
- data/doc/css/common.css +0 -68
- data/lib/parser/lexer.rl +0 -2383
- data/lib/parser/macruby.y +0 -2198
- data/lib/parser/ruby18.y +0 -1934
- data/lib/parser/ruby19.y +0 -2175
- data/lib/parser/ruby20.y +0 -2353
- data/lib/parser/ruby21.y +0 -2357
- data/lib/parser/ruby22.y +0 -2364
- data/lib/parser/ruby23.y +0 -2370
- data/lib/parser/ruby24.y +0 -2408
- data/lib/parser/ruby25.y +0 -2405
- data/lib/parser/ruby26.y +0 -2413
- data/lib/parser/rubymotion.y +0 -2182
- data/test/bug_163/fixtures/input.rb +0 -5
- data/test/bug_163/fixtures/output.rb +0 -5
- data/test/bug_163/rewriter.rb +0 -20
- data/test/helper.rb +0 -52
- data/test/parse_helper.rb +0 -315
- data/test/racc_coverage_helper.rb +0 -133
- data/test/test_base.rb +0 -31
- data/test/test_current.rb +0 -27
- data/test/test_diagnostic.rb +0 -96
- data/test/test_diagnostic_engine.rb +0 -62
- data/test/test_encoding.rb +0 -99
- data/test/test_lexer.rb +0 -3543
- data/test/test_lexer_stack_state.rb +0 -78
- data/test/test_parse_helper.rb +0 -80
- data/test/test_parser.rb +0 -7087
- data/test/test_runner_rewrite.rb +0 -47
- data/test/test_source_buffer.rb +0 -162
- data/test/test_source_comment.rb +0 -36
- data/test/test_source_comment_associator.rb +0 -367
- data/test/test_source_map.rb +0 -15
- data/test/test_source_range.rb +0 -172
- data/test/test_source_rewriter.rb +0 -541
- data/test/test_source_rewriter_action.rb +0 -46
- data/test/test_source_tree_rewriter.rb +0 -173
- data/test/test_static_environment.rb +0 -45
- data/test/using_tree_rewriter/fixtures/input.rb +0 -3
- data/test/using_tree_rewriter/fixtures/output.rb +0 -3
- 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_parse_helper.rb
DELETED
@@ -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
|