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,62 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'helper'
|
4
|
-
|
5
|
-
class TestDiagnosticEngine < Minitest::Test
|
6
|
-
def setup
|
7
|
-
@buffer = Parser::Source::Buffer.new('(source)')
|
8
|
-
@buffer.source = 'foobar'
|
9
|
-
|
10
|
-
@engine = Parser::Diagnostic::Engine.new
|
11
|
-
|
12
|
-
@queue = []
|
13
|
-
@engine.consumer = lambda { |diag| @queue << diag }
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_process_warnings
|
17
|
-
warn = Parser::Diagnostic.new(:warning, :invalid_escape, @buffer, 1..2)
|
18
|
-
@engine.process(warn)
|
19
|
-
|
20
|
-
assert_equal [warn], @queue
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_ignore_warnings
|
24
|
-
@engine.ignore_warnings = true
|
25
|
-
|
26
|
-
warn = Parser::Diagnostic.new(:warning, :invalid_escape, @buffer, 1..2)
|
27
|
-
@engine.process(warn)
|
28
|
-
|
29
|
-
assert_equal [], @queue
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_all_errors_are_fatal
|
33
|
-
@engine.all_errors_are_fatal = true
|
34
|
-
|
35
|
-
error = Parser::Diagnostic.new(:error, :invalid_escape, @buffer, 1..2)
|
36
|
-
|
37
|
-
err = assert_raises Parser::SyntaxError do
|
38
|
-
@engine.process(error)
|
39
|
-
end
|
40
|
-
|
41
|
-
assert_equal error, err.diagnostic
|
42
|
-
|
43
|
-
assert_equal [error], @queue
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_all_errors_are_collected
|
47
|
-
error = Parser::Diagnostic.new(:error, :invalid_escape, @buffer, 1..2)
|
48
|
-
@engine.process(error)
|
49
|
-
|
50
|
-
assert_equal [error], @queue
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_fatal_error
|
54
|
-
fatal = Parser::Diagnostic.new(:fatal, :invalid_escape, @buffer, 1..2)
|
55
|
-
|
56
|
-
assert_raises Parser::SyntaxError do
|
57
|
-
@engine.process(fatal)
|
58
|
-
end
|
59
|
-
|
60
|
-
assert_equal [fatal], @queue
|
61
|
-
end
|
62
|
-
end
|
data/test/test_encoding.rb
DELETED
@@ -1,99 +0,0 @@
|
|
1
|
-
# encoding: binary
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require 'helper'
|
5
|
-
|
6
|
-
class TestEncoding < Minitest::Test
|
7
|
-
include AST::Sexp
|
8
|
-
|
9
|
-
def recognize(string)
|
10
|
-
Parser::Source::Buffer.recognize_encoding(string)
|
11
|
-
end
|
12
|
-
|
13
|
-
require 'parser/all'
|
14
|
-
|
15
|
-
def test_default
|
16
|
-
assert_nil recognize('foobar')
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_bom
|
20
|
-
assert_equal Encoding::UTF_8, recognize("\xef\xbb\xbf\nfoobar")
|
21
|
-
assert_equal Encoding::UTF_8, recognize("\xef\xbb\xbf# coding:koi8-r\nfoobar")
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_magic_comment
|
25
|
-
assert_equal Encoding::KOI8_R, recognize("# coding:koi8-r\nfoobar")
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_shebang
|
29
|
-
assert_equal Encoding::KOI8_R, recognize("#!/bin/foo\n# coding:koi8-r\nfoobar")
|
30
|
-
assert_nil recognize("#!/bin/foo\n")
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_case
|
34
|
-
assert_equal Encoding::KOI8_R, recognize("# coding:KoI8-r\nfoobar")
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_space
|
38
|
-
assert_equal Encoding::KOI8_R, recognize("# coding : koi8-r\nfoobar")
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_empty
|
42
|
-
assert_nil recognize('')
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_no_comment
|
46
|
-
assert_nil recognize(%{require 'cane/encoding_aware_iterator'})
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_adjacent
|
50
|
-
assert_nil recognize('# codingkoi8-r')
|
51
|
-
assert_nil recognize('# coding koi8-r')
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_utf8_mac
|
55
|
-
assert_equal Encoding::UTF8_MAC, recognize('# coding: utf8-mac')
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_suffix
|
59
|
-
assert_equal Encoding::UTF_8, recognize('# coding: utf-8-dos')
|
60
|
-
assert_equal Encoding::UTF_8, recognize('# coding: utf-8-unix')
|
61
|
-
assert_equal Encoding::UTF_8, recognize('# coding: utf-8-mac')
|
62
|
-
|
63
|
-
assert_raises(ArgumentError) do
|
64
|
-
assert_nil recognize('# coding: utf-8-dicks')
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_parse_18_invalid_enc
|
69
|
-
ast = Parser::Ruby18.parse("# encoding:feynman-diagram\n1")
|
70
|
-
assert_equal ast, s(:int, 1)
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_parse_19_invalid_enc
|
74
|
-
assert_raises(ArgumentError) do
|
75
|
-
Parser::Ruby19.parse("# encoding:feynman-diagram\n1")
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_ending_comment
|
80
|
-
assert_nil recognize('foo # coding: koi8-r')
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_wrong_prefix
|
84
|
-
assert_nil recognize('# decoding: koi8-r')
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_no_spaces
|
88
|
-
assert_equal Encoding::KOI8_R, recognize('#encoding:koi8-r')
|
89
|
-
assert_equal Encoding::KOI8_R, recognize('#coding:koi8-r')
|
90
|
-
end
|
91
|
-
|
92
|
-
def test_underscore_and_star_characters
|
93
|
-
assert_equal Encoding::KOI8_R, recognize('# -*- encoding: koi8-r -*-')
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_garbage_around_encoding_comment
|
97
|
-
assert_equal Encoding::KOI8_R, recognize('# 1$# -*- &)* encoding: koi8-r 1$# -*- &)*')
|
98
|
-
end
|
99
|
-
end
|