parser 2.6.0.0 → 3.1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|