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
data/doc/CUSTOMIZATION.md
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
# Customizing Parsers
|
2
|
-
|
3
|
-
While the default setup of the parsers provided by this Gem should be suitable
|
4
|
-
for most some developers might want to change parts of it. An example would be
|
5
|
-
the use of a custom class for nodes instead of `Parser::AST::Node`.
|
6
|
-
|
7
|
-
Customizing the AST is done by creating a custom builder class and passing it
|
8
|
-
to the constructor method of a parser. The default setup comes down to the
|
9
|
-
following:
|
10
|
-
|
11
|
-
builder = Parser::Builders::Default.new
|
12
|
-
parser = Parser::Ruby19.new(builder)
|
13
|
-
|
14
|
-
When creating your own builder class it's best to subclass the default one so
|
15
|
-
that you don't have to redefine every used method again:
|
16
|
-
|
17
|
-
class MyBuilder < Parser::Builders::Default
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
builder = MyBuilder.new
|
22
|
-
parser = Parser::Ruby19.new(builder)
|
23
|
-
|
24
|
-
## Custom Node Classes
|
25
|
-
|
26
|
-
To use a custom node class you have to override the method
|
27
|
-
`Parser::Builders::Default#n`:
|
28
|
-
|
29
|
-
class MyBuilder < Parser::Builders::Default
|
30
|
-
def n(type, children, location)
|
31
|
-
return MyNodeClass.new(type, children, :location => location)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
Note that the used class (and corresponding instance) must be compatible with
|
36
|
-
`Parser::AST::Node` so it's best to subclass it and override/add code where
|
37
|
-
needed.
|
data/doc/INTERNALS.md
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
Entry points
|
2
|
-
------------
|
3
|
-
|
4
|
-
Parser should be kept as slim as possible. This includes not loading
|
5
|
-
any potentially large files when they are likely to be unused in practice.
|
6
|
-
|
7
|
-
Parser has five main (classes of) `require` entry points:
|
8
|
-
|
9
|
-
* `require 'parser'`. Main entry point, requires all classes which
|
10
|
-
are used across the entire library.
|
11
|
-
* `require 'parser/rubyXX'`. Version-specific entry point. Can raise
|
12
|
-
a NotImplementedError if current Ruby runtime is unable to parse the
|
13
|
-
requested Ruby version.
|
14
|
-
* `require 'parser/all'`. Requires all available parsers for released
|
15
|
-
versions of Ruby. Can raise NotImplementedError.
|
16
|
-
* `require 'parser/runner'`. Requires all the stuff which is useful for
|
17
|
-
command-line tools but not otherwise.
|
18
|
-
* `require 'parser/runner/X'`. Runner-specific entry point.
|
19
|
-
|
20
|
-
All non-main entry points internally `require 'parser'`. Additionally, all
|
21
|
-
runner-specific entry points internally `requre 'parser/runner'`.
|
data/doc/css/.gitkeep
DELETED
File without changes
|
data/doc/css/common.css
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
body
|
2
|
-
{
|
3
|
-
font-size: 14px;
|
4
|
-
line-height: 1.6;
|
5
|
-
margin: 0 auto;
|
6
|
-
max-width: 960px;
|
7
|
-
}
|
8
|
-
|
9
|
-
p code
|
10
|
-
{
|
11
|
-
background: #f2f2f2;
|
12
|
-
padding-left: 3px;
|
13
|
-
padding-right: 3px;
|
14
|
-
}
|
15
|
-
|
16
|
-
pre.code
|
17
|
-
{
|
18
|
-
font-size: 13px;
|
19
|
-
line-height: 1.4;
|
20
|
-
}
|
21
|
-
|
22
|
-
/**
|
23
|
-
* YARD uses generic table styles, using a special class means those tables
|
24
|
-
* don't get messed up.
|
25
|
-
*/
|
26
|
-
.table
|
27
|
-
{
|
28
|
-
border: 1px solid #ccc;
|
29
|
-
border-right: none;
|
30
|
-
border-collapse: separate;
|
31
|
-
border-spacing: 0;
|
32
|
-
text-align: left;
|
33
|
-
}
|
34
|
-
|
35
|
-
.table.full
|
36
|
-
{
|
37
|
-
width: 100%;
|
38
|
-
}
|
39
|
-
|
40
|
-
.table .field_name
|
41
|
-
{
|
42
|
-
min-width: 160px;
|
43
|
-
}
|
44
|
-
|
45
|
-
.table thead tr th.no_sort:first-child
|
46
|
-
{
|
47
|
-
width: 25px;
|
48
|
-
}
|
49
|
-
|
50
|
-
.table thead tr th, .table tbody tr td
|
51
|
-
{
|
52
|
-
border-bottom: 1px solid #ccc;
|
53
|
-
border-right: 1px solid #ccc;
|
54
|
-
min-width: 20px;
|
55
|
-
padding: 8px 5px;
|
56
|
-
text-align: left;
|
57
|
-
vertical-align: top;
|
58
|
-
}
|
59
|
-
|
60
|
-
.table tbody tr:last-child td
|
61
|
-
{
|
62
|
-
border-bottom: none;
|
63
|
-
}
|
64
|
-
|
65
|
-
.table tr:nth-child(odd) td
|
66
|
-
{
|
67
|
-
background: #f9f9f9;
|
68
|
-
}
|