parser 2.7.1.1 → 3.0.2.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.rb +1 -0
- data/lib/parser/all.rb +2 -0
- data/lib/parser/ast/processor.rb +5 -0
- data/lib/parser/base.rb +7 -5
- data/lib/parser/builders/default.rb +263 -23
- data/lib/parser/context.rb +5 -0
- data/lib/parser/current.rb +24 -6
- data/lib/parser/current_arg_stack.rb +5 -2
- data/lib/parser/diagnostic.rb +1 -1
- data/lib/parser/diagnostic/engine.rb +1 -2
- data/lib/parser/lexer.rb +887 -803
- data/lib/parser/macruby.rb +2214 -2189
- data/lib/parser/max_numparam_stack.rb +13 -5
- data/lib/parser/messages.rb +18 -0
- data/lib/parser/meta.rb +6 -5
- data/lib/parser/ruby18.rb +9 -3
- data/lib/parser/ruby19.rb +2297 -2289
- data/lib/parser/ruby20.rb +2413 -2397
- data/lib/parser/ruby21.rb +2419 -2411
- data/lib/parser/ruby22.rb +2468 -2460
- data/lib/parser/ruby23.rb +2452 -2452
- data/lib/parser/ruby24.rb +2435 -2430
- data/lib/parser/ruby25.rb +2220 -2214
- data/lib/parser/ruby26.rb +2220 -2214
- data/lib/parser/ruby27.rb +3715 -3615
- data/lib/parser/ruby28.rb +8047 -0
- data/lib/parser/ruby30.rb +8060 -0
- data/lib/parser/ruby31.rb +8226 -0
- data/lib/parser/rubymotion.rb +2190 -2182
- data/lib/parser/runner.rb +31 -2
- data/lib/parser/runner/ruby_rewrite.rb +2 -2
- data/lib/parser/source/buffer.rb +53 -28
- data/lib/parser/source/comment.rb +14 -1
- data/lib/parser/source/comment/associator.rb +31 -8
- data/lib/parser/source/map/method_definition.rb +25 -0
- data/lib/parser/source/range.rb +10 -3
- data/lib/parser/source/tree_rewriter.rb +100 -10
- data/lib/parser/source/tree_rewriter/action.rb +114 -21
- data/lib/parser/static_environment.rb +4 -0
- data/lib/parser/tree_rewriter.rb +1 -2
- data/lib/parser/variables_stack.rb +4 -0
- data/lib/parser/version.rb +1 -1
- data/parser.gemspec +3 -18
- metadata +17 -98
- data/.gitignore +0 -33
- data/.travis.yml +0 -42
- data/.yardopts +0 -21
- data/CHANGELOG.md +0 -1075
- data/CONTRIBUTING.md +0 -17
- data/Gemfile +0 -10
- data/README.md +0 -309
- data/Rakefile +0 -166
- data/ci/run_rubocop_specs +0 -14
- data/doc/AST_FORMAT.md +0 -2180
- 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 -2536
- 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/ruby27.y +0 -2941
- 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 -60
- data/test/parse_helper.rb +0 -319
- data/test/racc_coverage_helper.rb +0 -133
- data/test/test_base.rb +0 -31
- data/test/test_current.rb +0 -29
- 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 -3608
- data/test/test_lexer_stack_state.rb +0 -78
- data/test/test_parse_helper.rb +0 -80
- data/test/test_parser.rb +0 -9430
- data/test/test_runner_parse.rb +0 -35
- 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 -187
- 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 -253
- 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/.gitignore
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
*.gem
|
2
|
-
*.rbc
|
3
|
-
.bundle
|
4
|
-
.config
|
5
|
-
.yardoc
|
6
|
-
Gemfile.lock
|
7
|
-
InstalledFiles
|
8
|
-
_yardoc
|
9
|
-
coverage
|
10
|
-
lib/bundler/man
|
11
|
-
pkg
|
12
|
-
rdoc
|
13
|
-
yardoc
|
14
|
-
spec/reports
|
15
|
-
test/tmp
|
16
|
-
test/version_tmp
|
17
|
-
tmp
|
18
|
-
*.output
|
19
|
-
.ruby-version
|
20
|
-
.ruby-gemset
|
21
|
-
lib/parser/lexer.rb
|
22
|
-
lib/parser/ruby18.rb
|
23
|
-
lib/parser/ruby19.rb
|
24
|
-
lib/parser/ruby20.rb
|
25
|
-
lib/parser/ruby21.rb
|
26
|
-
lib/parser/ruby22.rb
|
27
|
-
lib/parser/ruby23.rb
|
28
|
-
lib/parser/ruby24.rb
|
29
|
-
lib/parser/ruby25.rb
|
30
|
-
lib/parser/ruby26.rb
|
31
|
-
lib/parser/ruby27.rb
|
32
|
-
lib/parser/macruby.rb
|
33
|
-
lib/parser/rubymotion.rb
|
data/.travis.yml
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
dist: trusty
|
2
|
-
language: ruby
|
3
|
-
matrix:
|
4
|
-
include:
|
5
|
-
- name: 2.4.10 / Parser tests
|
6
|
-
rvm: 2.4.10
|
7
|
-
script: bundle exec rake test_cov
|
8
|
-
- name: 2.5.8 / Parser tests
|
9
|
-
rvm: 2.5.8
|
10
|
-
script: bundle exec rake test_cov
|
11
|
-
- name: 2.6.6 / Parser tests
|
12
|
-
rvm: 2.6.6
|
13
|
-
script: bundle exec rake test_cov
|
14
|
-
- name: 2.7.1 / Parser tests
|
15
|
-
rvm: 2.7.1
|
16
|
-
script: bundle exec rake test_cov
|
17
|
-
- name: ruby-head / Parser tests
|
18
|
-
rvm: ruby-head
|
19
|
-
script: bundle exec rake test_cov
|
20
|
-
- name: jruby-9.1.15.0 / Parser tests
|
21
|
-
rvm: jruby-9.1.15.0
|
22
|
-
script: bundle exec rake test_cov
|
23
|
-
- name: rbx-2 / Parser tests
|
24
|
-
rvm: rbx-2
|
25
|
-
script: bundle exec rake test_cov
|
26
|
-
- name: 2.5.8 / Rubocop tests
|
27
|
-
rvm: 2.5.8
|
28
|
-
script: ./ci/run_rubocop_specs
|
29
|
-
- name: 2.6.6 / Rubocop tests
|
30
|
-
rvm: 2.6.6
|
31
|
-
script: ./ci/run_rubocop_specs
|
32
|
-
- name: 2.7.1 / Rubocop tests
|
33
|
-
rvm: 2.7.1
|
34
|
-
script: ./ci/run_rubocop_specs
|
35
|
-
allow_failures:
|
36
|
-
- rvm: ruby-head
|
37
|
-
- rvm: rbx-2
|
38
|
-
- script: ./ci/run_rubocop_specs
|
39
|
-
before_install:
|
40
|
-
- gem install bundler -v '< 2'
|
41
|
-
- bundle --version
|
42
|
-
- gem --version
|
data/.yardopts
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
./lib/parser/**/*.rb ./lib/parser.rb
|
2
|
-
-m markdown
|
3
|
-
-M kramdown
|
4
|
-
-o ./yardoc
|
5
|
-
-r ./README.md
|
6
|
-
--asset ./doc/css/common.css:css/common.css
|
7
|
-
--verbose
|
8
|
-
--api public
|
9
|
-
--exclude lib/parser/lexer.rb
|
10
|
-
--exclude lib/parser/ruby18.rb
|
11
|
-
--exclude lib/parser/ruby19.rb
|
12
|
-
--exclude lib/parser/ruby20.rb
|
13
|
-
--exclude lib/parser/ruby21.rb
|
14
|
-
--exclude lib/parser/ruby22.rb
|
15
|
-
--exclude lib/parser/ruby23.rb
|
16
|
-
--exclude lib/parser/ruby24.rb
|
17
|
-
--exclude lib/parser/macruby.rb
|
18
|
-
--exclude lib/parser/rubymotion.rb
|
19
|
-
-
|
20
|
-
./doc/*.md
|
21
|
-
LICENSE.txt
|
data/CHANGELOG.md
DELETED
@@ -1,1075 +0,0 @@
|
|
1
|
-
Changelog
|
2
|
-
=========
|
3
|
-
|
4
|
-
Not released (2020-04-15)
|
5
|
-
-------------------------
|
6
|
-
|
7
|
-
Features implemented:
|
8
|
-
* Add Source::Range#eql? and hash (#675) (Marc-André Lafortune)
|
9
|
-
* Source::TreeRewriter: Add #merge, #merge! and #empty? (#674) (Marc-André Lafortune)
|
10
|
-
|
11
|
-
v2.7.1.0 (2020-04-03)
|
12
|
-
---------------------
|
13
|
-
|
14
|
-
API modifications:
|
15
|
-
* Bump ruby versions to 2.4.10, 2.5.8, 2.6.6, 2.7.1. (#665) (Ilya Bylich)
|
16
|
-
|
17
|
-
Features implemented:
|
18
|
-
* ruby27.y: allow newlines inside braced pattern. (#664) (Ilya Bylich)
|
19
|
-
* ruby27.y: Allow trailing comma in hash pattern (#661) (Koichi ITO)
|
20
|
-
|
21
|
-
v2.7.0.5 (2020-03-20)
|
22
|
-
---------------------
|
23
|
-
|
24
|
-
Features implemented:
|
25
|
-
* ruby27.y: fix array pattern with tail source map (#659) (Vladimir Dementyev)
|
26
|
-
|
27
|
-
Bugs fixed:
|
28
|
-
* builder.rb: fix constant_pattern source map (#660) (Vladimir Dementyev)
|
29
|
-
|
30
|
-
v2.7.0.4 (2020-03-02)
|
31
|
-
---------------------
|
32
|
-
|
33
|
-
Bugs fixed:
|
34
|
-
* lexer.rl: allow spaces before comments-before-leading-dot. (#654) (Ilya Bylich)
|
35
|
-
|
36
|
-
v2.7.0.2 (2020-01-08)
|
37
|
-
---------------------
|
38
|
-
|
39
|
-
Bugs fixed:
|
40
|
-
* lexer.rl: fix paren_nest for curly braces (#646) (Ilya Bylich)
|
41
|
-
|
42
|
-
v2.7.0.1 (2019-12-30)
|
43
|
-
---------------------
|
44
|
-
|
45
|
-
Bugs fixed:
|
46
|
-
* dedenter.rb: prevent `ArgumentError` when processing binary en… (#642) (Koichi ITO)
|
47
|
-
|
48
|
-
v2.7.0.0 (2019-12-26)
|
49
|
-
---------------------
|
50
|
-
|
51
|
-
API modifications:
|
52
|
-
* README.md: documented compatibility issue with EOF chars after… (#637) (Ilya Bylich)
|
53
|
-
* ruby27.y: refactor logic around 'circular argument reference'(#628) (Ilya Bylich)
|
54
|
-
|
55
|
-
Features implemented:
|
56
|
-
* ruby27.y: added pattern matching (#574) (Ilya Bylich)
|
57
|
-
* lexer.rl: parse embedded ivars/cvars starting with digit as str (#639) (Ilya Bylich)
|
58
|
-
* lexer.rl: warn on `...` at EOL. (#636) (Ilya Bylich)
|
59
|
-
* ruby27.y: removed opt_block_args_tail: tOROP rule. (#635) (Ilya Bylich)
|
60
|
-
* ruby27.y: reverted method reference operator (added in #634) (Ilya Bylich)
|
61
|
-
* ruby27.y: treat numparams as locals outside numblock. (#633) (Ilya Bylich)
|
62
|
-
|
63
|
-
Bugs fixed:
|
64
|
-
* dedenter.rb: fixed over-dedenting of squiggly heredocs (#641) (Ilya Bylich)
|
65
|
-
* ruby27.y: added "arguments forwarding" (#625) (Ilya Bylich)
|
66
|
-
* ruby27.y: reject circular argument reference. (#622) (Ilya Bylich)
|
67
|
-
* ruby27.y: changed prefix of numparams to "_" (#620) (Ilya Bylich)
|
68
|
-
|
69
|
-
v2.6.5.0 (2019-10-03)
|
70
|
-
---------------------
|
71
|
-
|
72
|
-
API modifications:
|
73
|
-
* Bump ruby versions to 2.4.9, 2.5.7 and 2.6.5. (#619) (Ilya Bylich)
|
74
|
-
|
75
|
-
Features implemented:
|
76
|
-
* lexer.rl: changed max numparam to `@9` (#617) (Ilya Bylich)
|
77
|
-
* lexer.rl: support comments before leading dot in 27 mode. (#613) (Ilya Bylich)
|
78
|
-
|
79
|
-
Bugs fixed:
|
80
|
-
* lexer.rl: emit tMETHREF as tDOT+tCOLON for rubies \< 27. (#614) (Ilya Bylich)
|
81
|
-
|
82
|
-
v2.6.4.1 (2019-09-12)
|
83
|
-
---------------------
|
84
|
-
|
85
|
-
Bugs fixed:
|
86
|
-
* lexer.rl: fix parsing of 'm a + b do end' (#605) (Ilya Bylich)
|
87
|
-
|
88
|
-
v2.6.4.0 (2019-08-30)
|
89
|
-
---------------------
|
90
|
-
|
91
|
-
API modifications:
|
92
|
-
* Added specs for heredocs with mixed encoding. (#581) (Ilya Bylich)
|
93
|
-
|
94
|
-
Features implemented:
|
95
|
-
* ruby27.y: Revert "pipeline operator" (#601) (Koichi ITO)
|
96
|
-
* ruby27.y: Fix parsing of mutiple assignment with rescue modifier (#600) (Koichi ITO)
|
97
|
-
* ruby27.y: hoisted out f_rest_marg. (#594) (Ilya Bylich)
|
98
|
-
* ruby27.y: added pipeline operator. (#592) (Ilya Bylich)
|
99
|
-
* ruby27.y: reject safe navigator in LHS of mass-assignment. (#586) (Ilya Bylich)
|
100
|
-
* lexer.rl: reject whitespaces in meta and control chars. (#585) (Ilya Bylich)
|
101
|
-
* lexer.rl: Reject numparams as symbol literals. (#582) (Ilya Bylich)
|
102
|
-
* ruby27.y: Added numbered parameters support. (#565) (Ilya Bylich)
|
103
|
-
* lexer.rl: Reject \n and \r in heredoc identifiers starting from 2.7. (#575) (Ilya Bylich)
|
104
|
-
|
105
|
-
Bugs fixed:
|
106
|
-
* ruby-parse: print empty string when --emit-json and empty input are given. (#590) (Ilya Bylich)
|
107
|
-
* AST_FORMAT: fixed documentation of the string with interpolation. (#589) (Ilya Bylich)
|
108
|
-
* builder.rb, processor.rb: Changed format of the procarg0 node. (#587) (Ilya Bylich)
|
109
|
-
|
110
|
-
v2.6.3.0 (2019-04-28)
|
111
|
-
---------------------
|
112
|
-
|
113
|
-
Features implemented:
|
114
|
-
* ruby27.y: Added beginless ranges support. (#570) (Ilya Bylich)
|
115
|
-
|
116
|
-
v2.6.2.1 (2019-04-05)
|
117
|
-
---------------------
|
118
|
-
|
119
|
-
API modifications:
|
120
|
-
* Bump 2.4 branch to 2.4.6. (#569) (Ilya Bylich)
|
121
|
-
* Lexer should know about current parsing context. (#566) (Ilya Bylich)
|
122
|
-
|
123
|
-
v2.6.2.0 (2019-03-21)
|
124
|
-
---------------------
|
125
|
-
|
126
|
-
API modifications:
|
127
|
-
* Bump ruby versions to 2.5.5 and 2.6.2. (#563) (Ilya Bylich)
|
128
|
-
* Bump Ruby version to 2.6.1. (#554) (Ilya Bylich)
|
129
|
-
|
130
|
-
Features implemented:
|
131
|
-
* ruby27.y: dsym should be treated as string. (#560) (Ilya Bylich)
|
132
|
-
* ruby27.y: Refactored symbol rules. (#557) (Ilya Bylich)
|
133
|
-
* ruby27.y: Added method reference operator. (#556) (Ilya Bylich)
|
134
|
-
* ruby27.y: branch parser. (#546) (Ilya Bylich)
|
135
|
-
|
136
|
-
v2.6.0.0 (2019-01-16)
|
137
|
-
---------------------
|
138
|
-
|
139
|
-
API modifications:
|
140
|
-
* 2.6.0 was released, unmark is as -dev. (#538) (Ilya Bylich)
|
141
|
-
|
142
|
-
Bugs fixed:
|
143
|
-
* Fix parsing of "\\\n" escaped sequences in various literals. (#539) (Ilya Bylich)
|
144
|
-
|
145
|
-
v2.5.3.0 (2018-10-29)
|
146
|
-
---------------------
|
147
|
-
|
148
|
-
Bugs fixed:
|
149
|
-
* lexer.rl: Fix parsing of 'm :key => m do; m() do end; end'. (#526) (Ilya Bylich)
|
150
|
-
* lexer.rl: Fix parsing of ambiguous 1re. (#523) (Ilya Bylich)
|
151
|
-
|
152
|
-
v2.5.1.2 (2018-07-10)
|
153
|
-
---------------------
|
154
|
-
|
155
|
-
Bugs fixed:
|
156
|
-
* lexer.rl: Partially revert 5ba072d and properly handle 'm = -> *args do end'. (Ilya Bylich)
|
157
|
-
|
158
|
-
v2.5.1.1 (2018-07-10)
|
159
|
-
---------------------
|
160
|
-
|
161
|
-
Features implemented:
|
162
|
-
* ruby26.y: Endless ranges support. (Ilya Bylich)
|
163
|
-
|
164
|
-
Bugs fixed:
|
165
|
-
* lexer.rl: Fix parsing of 'm = -> *args do end'. (Ilya Bylich)
|
166
|
-
* AST::Processor: Properly recurse into "kwsplat" nodes (Nelson Elhage)
|
167
|
-
* ruby24, ruby25, ruby26: Fix cmdargs after command_args followed by tLBRACE_ARG. This commit tracks upstream commit ruby/ruby@f168dbd. (Ilya Bylich)
|
168
|
-
* lexer.rl: Fix parsing of `let (:a) { m do; end }`. (Ilya Bylich)
|
169
|
-
|
170
|
-
v2.5.1.0 (2018-04-12)
|
171
|
-
---------------------
|
172
|
-
|
173
|
-
API modifications:
|
174
|
-
* Parser::Current: bump latest 2.2 branch to 2.2.10. (Ilya Bylich)
|
175
|
-
|
176
|
-
Features implemented:
|
177
|
-
* ruby26.y: Raise a syntax error on 'else' without 'rescue'. This commit tracks upstream commit ruby/ruby@140512d. (Ilya Bylich)
|
178
|
-
|
179
|
-
Bugs fixed:
|
180
|
-
* lexer.rl, Dedenter: Treat slash in heredocs as a line continuation. (Ilya Bylich)
|
181
|
-
* lexer.rl: Fix parsing of `a ? b + '': nil`. (Ilya Bylich)
|
182
|
-
* lexer.rl: Reject `m a: {} {}` and `m [] {}` since 25. (Ilya Bylich)
|
183
|
-
* builders/default: allow class/module/dynamic constant definition in the method body if there's a sclass between them. (bug #490) (Ilya Bylich)
|
184
|
-
* lexer.rl: Emit :!@ as :!, :~@ as :~. (Ilya Bylich)
|
185
|
-
* parse{23,24,25}.y: use only CMDARG/COND _PUSH/POP for cmdarg/cond management. (bug #481) (Ilya Bylich)
|
186
|
-
* lexer.rl: emit tSTRING_BEG and tSTRING_DBEG one by one to allow parser to properly manipulate cmdarg stack. (bug #480) (Ilya Bylich)
|
187
|
-
|
188
|
-
v2.5.0.4 (2018-03-13)
|
189
|
-
---------------------
|
190
|
-
|
191
|
-
Bugs fixed:
|
192
|
-
* AST::Processor: handle on_index, on_indexasgn, on_lambda. (Ilya Bylich)
|
193
|
-
|
194
|
-
v2.5.0.3 (2018-03-06)
|
195
|
-
---------------------
|
196
|
-
|
197
|
-
Bugs fixed:
|
198
|
-
* Accept `BEGIN` and `END` as correct method name (#463) (Masataka Pocke Kuwabara)
|
199
|
-
* Parser::Source::Buffer: Fixed parsing of encoding comment when the file contains only shebang. (Ilya Bylich)
|
200
|
-
|
201
|
-
v2.5.0.2 (2018-02-22)
|
202
|
-
---------------------
|
203
|
-
|
204
|
-
Bugs fixed:
|
205
|
-
* ruby24.y, ruby25.y: Replicate cmdargs handling from MRI. (#453) (Ilya Bylich)
|
206
|
-
|
207
|
-
v2.5.0.1 (2018-02-21)
|
208
|
-
---------------------
|
209
|
-
|
210
|
-
Features implemented:
|
211
|
-
* builders/default: __ENCODING__: emit as s(:__ENCODING__) via AST opt-in. (whitequark)
|
212
|
-
* ruby25.y: Extract expr_value_do rule. This commit tracks upstream commit ruby/ruby@508533f. (Ilya Bylich)
|
213
|
-
* ruby25.y: Extract begin_block rule. This commit tracks upstream commit ruby/ruby@762d23c. (Ilya Bylich)
|
214
|
-
* ruby25.y: Allow class and method definition in the while condition. (#432) (Ilya Bylich)
|
215
|
-
* ruby25: Allow `-> do rescue; end`. (#431) (Ilya Bylich)
|
216
|
-
|
217
|
-
Bugs fixed:
|
218
|
-
* parser/current: latest released Ruby series is 2.5.x. (whitequark)
|
219
|
-
* builders/default: x[], x[]=1: emit as s(:index), s(:indexasgn) via AST opt-in. (whitequark)
|
220
|
-
* lexer.rl: "#{-> foo {}}": fix parsing of interpolated lambda with open args. (Ilya Bylich)
|
221
|
-
|
222
|
-
v2.5.0.0 (2018-02-16)
|
223
|
-
---------------------
|
224
|
-
|
225
|
-
API modifications:
|
226
|
-
* Parser::Current: bump to 2.2.9 and 2.3.6. (Stan Hu)
|
227
|
-
* Deprecate Parser::Rewriter (Marc-Andre Lafortune)
|
228
|
-
* Deprecate Parser::Source::Rewriter (Marc-Andre Lafortune)
|
229
|
-
* Change relative order of insert_after_multi and insert_before_multi for non-empty ranges (#399). (Marc-Andre Lafortune)
|
230
|
-
|
231
|
-
Features implemented:
|
232
|
-
* parse.y: Reject brace after literal arg. This commit tracks upstream commits ruby/ruby@9987109 and ruby/ruby@7d6965f. (Ilya Bylich)
|
233
|
-
* ruby-parse: add an option for emitting AST as JSON. (Alex Rattray)
|
234
|
-
* Add Parser::TreeRewriter (Marc-Andre Lafortune)
|
235
|
-
* Add Parser::Rewriter#wrap to ease compatibility (Marc-Andre Lafortune)
|
236
|
-
* Add Parser::Source::TreeRewriter (Marc-Andre Lafortune)
|
237
|
-
* Add Range#\<=> and include Comparable (Marc-Andre Lafortune)
|
238
|
-
* parse.y: disable tLPAREN_ARG state after local variable. (Ilya Bylich)
|
239
|
-
* SourceBuffer#source_range (Marc-Andre Lafortune)
|
240
|
-
* Range#adjust (Marc-Andre Lafortune)
|
241
|
-
* Range#contains?, contained?, crossing? (Marc-Andre Lafortune)
|
242
|
-
* Add Range#with. (Marc-André Lafortune)
|
243
|
-
* lexer.rl: Relax restriction spaces inside "\u{...}". This commit tracks upstream commit ruby/ruby@7e8b910. (Ilya Bylich)
|
244
|
-
* lexer.rl: Allow newlines in heredoc identifiers. This commit tracks upstream commit ruby/ruby@d25faa4. (Ilya Bylich)
|
245
|
-
* lexer.rl: allow do after cmdarg in paren. This commit tracks upstream commit ruby/ruby@046c943. (Ilya Bylich)
|
246
|
-
|
247
|
-
Bugs fixed:
|
248
|
-
* Fixed magic encoding comment parsing when encoding comment is on the first line but not in the beginning. (Ilya Bylich)
|
249
|
-
* lexer.rl: Parse '1if' as '1 if', '1rescue' as '1 rescue'. (Ilya Bylich)
|
250
|
-
* lexer.rl: Save state before entering a block comment to enter it after =end. (Ilya Bylich)
|
251
|
-
* parse.y: Prohibit return in class/module body except for singleton class. Replaced @def_level/in_def? in favor of context.indirectly_in_def?. This commit tracks upstream commit ruby/ruby@8c15f40ac. (Ilya Bylich)
|
252
|
-
* lexer.rl: Emit :&& as tSYMBEG + tANDOP, :|| as tSYMBEG + tOROP. (Ilya Bylich)
|
253
|
-
* ruby{24,25}.y: preserve cmdarg stack around do/end block [Bug #13073]. (Mateusz Lenik)
|
254
|
-
* Parser::Lexer::State: Fixed #lexpop to match MRI behavior. (Ilya Bylich)
|
255
|
-
|
256
|
-
v2.4.0.2 (2017-11-13)
|
257
|
-
---------------------
|
258
|
-
|
259
|
-
API modifications:
|
260
|
-
* parser/current: update for 2.3.5 release. (whitequark)
|
261
|
-
|
262
|
-
v2.4.0.1 (2017-11-13)
|
263
|
-
---------------------
|
264
|
-
|
265
|
-
API modifications:
|
266
|
-
* parser/current: update for 2.3.4 release. (whitequark)
|
267
|
-
* parser/current: update for Ruby 2.1.10 and 2.2.7. (Koichi ITO)
|
268
|
-
|
269
|
-
Features implemented:
|
270
|
-
* Allow rescue/else/ensure inside do/end blocks. [Feature #12906] (Ilya Bylich)
|
271
|
-
* ruby25.y: branch parser. (Ilya Bylich)
|
272
|
-
|
273
|
-
Bugs fixed:
|
274
|
-
* Source::Comment::Associator: skip -*- magic comments -*-. (Denis Defreyne)
|
275
|
-
* lexer.rl: "- 5": allow whitespace after tUNARY_NUM. (whitequark)
|
276
|
-
* *ruby*.y, Builders::Default: "+5": don't lose location of the "+". (whitequark)
|
277
|
-
* ruby-rewrite: allow passing paths to --load. (whitequark)
|
278
|
-
* builders/default: "def x; else; end": don't crash. (whitequark)
|
279
|
-
|
280
|
-
v2.4.0.0 (2017-02-07)
|
281
|
-
---------------------
|
282
|
-
|
283
|
-
API modifications:
|
284
|
-
* parser/current: update for the 2.4 release. (whitequark)
|
285
|
-
* rubymotion.y: "a&.b": implement safe navigation operator in RubyMotion. (Mark Villacampa)
|
286
|
-
|
287
|
-
Bugs fixed:
|
288
|
-
* lexer.rl: "a &. b": accept &. in EXPR_ARG also. (whitequark)
|
289
|
-
|
290
|
-
v2.3.3.1 (2016-12-02)
|
291
|
-
---------------------
|
292
|
-
|
293
|
-
API modifications:
|
294
|
-
* parser/current: update 2.2 warning to 2.2.6 (Jordan Moncharmont)
|
295
|
-
|
296
|
-
v2.3.3.0 (2016-11-28)
|
297
|
-
---------------------
|
298
|
-
|
299
|
-
API modifications:
|
300
|
-
* parser/current: update 2.3 branch to 2.3.3. (Philip Arndt)
|
301
|
-
|
302
|
-
Bugs fixed:
|
303
|
-
* ruby24.y: "a += b += raise :x": fix errors with chained op-assignments. (whitequark)
|
304
|
-
* ruby24.y: "p p{p(p);p p}, tap do end": preserve cmdarg stack. (whitequark)
|
305
|
-
* ruby24.y: "a b{c d}, :e do end": go to EXPR_ENDARG after literal. (whitequark)
|
306
|
-
|
307
|
-
v2.3.2.0 (2016-11-20)
|
308
|
-
---------------------
|
309
|
-
|
310
|
-
API modifications:
|
311
|
-
* parser/current: update 2.3 branch to 2.3.2. (whitequark)
|
312
|
-
* Introduce (procarg0) node for a single required block argument. (Ilya Bylich)
|
313
|
-
|
314
|
-
Bugs fixed:
|
315
|
-
* {macruby,ruby{19,20,21,22,23,24}}.y: "x::A += m x": treat as constant assignment. (whitequark)
|
316
|
-
* ruby24.y: "x += raise y rescue nil": bind rescue tighter than tOP_ASGN. (whitequark)
|
317
|
-
* ruby24.y: "x = raise y rescue nil": bind rescue tighter than =. (whitequark)
|
318
|
-
* Builders::Default: "begin; else; 1; end": fix a crash. (whitequark)
|
319
|
-
|
320
|
-
v2.3.1.3 (2016-09-17)
|
321
|
-
---------------------
|
322
|
-
|
323
|
-
API modifications:
|
324
|
-
* parser/current: latest 2.3 release is 2.3.2. (Chris Riddoch)
|
325
|
-
|
326
|
-
Features implemented:
|
327
|
-
* ruby24.y: "f (g rescue nil)": allow stmt after tLPAREN_ARG. (whitequark)
|
328
|
-
|
329
|
-
Bugs fixed:
|
330
|
-
* ruby{18,19,20,21,22,23,24}.y: parse trailing commas as mlhs for block args "a.b{ |c,| d }" (fixes #312) (John Backus)
|
331
|
-
* Builders::Default: "begin; 1; else; 2; end": do not drop else. (whitequark)
|
332
|
-
* Builders::Default: "a&.b &&= c": fix safe navigation in lhs of op-assignment. (Ilya Bylich)
|
333
|
-
* AST::Processor: handle "csend" as "send". (#301) (Ilya Bylich)
|
334
|
-
* Parser::AST::Processor: do not spuriously modify ASTs. (Ilya Bylich)
|
335
|
-
* lexer.rl: "%w\a b\": lex backslash-delimited words literals. (Masataka Kuwabara)
|
336
|
-
|
337
|
-
v2.3.1.2 (2016-06-02)
|
338
|
-
---------------------
|
339
|
-
|
340
|
-
API modifications:
|
341
|
-
* parser/current: update 2.2 warning to 2.2.5 (#295) (Kohei Suzuki)
|
342
|
-
|
343
|
-
Bugs fixed:
|
344
|
-
* AST_FORMAT: Fix `kwarg` example (#294) (Magnus Holm)
|
345
|
-
|
346
|
-
v2.3.1.1 (2016-06-01)
|
347
|
-
---------------------
|
348
|
-
|
349
|
-
Bugs fixed:
|
350
|
-
* ruby{^18}.y: "lambda{|;a|a}": treat shadowarg as local inside block. (Ilya Bylich)
|
351
|
-
* Builders::Default: "foo&.bar{}": emit csend in block properly. (whitequark)
|
352
|
-
* runner.rb: re-add --23 (cremno)
|
353
|
-
* runner.rb: make --24 actually use the 2.4 parser (cremno)
|
354
|
-
|
355
|
-
v2.3.1.0 (2016-04-27)
|
356
|
-
---------------------
|
357
|
-
|
358
|
-
Features implemented:
|
359
|
-
* Parser::Current: update for Ruby 2.3.1. (whitequark)
|
360
|
-
* Builders::Default: allow masgn in conditional context on >=Ruby 2.4. (whitequark)
|
361
|
-
* ruby24.y: branch parser. (whitequark)
|
362
|
-
|
363
|
-
Bugs fixed:
|
364
|
-
* lexer.rl: "def x y; y A::B, ''; end": reject X:: in EXPR_ENDFN (fixes #285). (whitequark)
|
365
|
-
|
366
|
-
v2.3.0.7 (2016-03-25)
|
367
|
-
---------------------
|
368
|
-
|
369
|
-
API modifications:
|
370
|
-
* Source::Diagnostic: handle ranges pointing to newlines (#273). (whitequark)
|
371
|
-
|
372
|
-
Features implemented:
|
373
|
-
* Parser::Base#tokenize: allow recovery from syntax errors. (whitequark)
|
374
|
-
* lexer.rl: "a=1; a b: 1": allow label after command clashing with local. (whitequark)
|
375
|
-
* lexer.rl: "undef %s(x)": emit %s literals in expr_fname in 2.3 mode. (whitequark)
|
376
|
-
|
377
|
-
Bugs fixed:
|
378
|
-
* Builders::Default: reject non-UTF-8 compatible literals. (whitequark)
|
379
|
-
|
380
|
-
v2.3.0.6 (2016-02-14)
|
381
|
-
---------------------
|
382
|
-
|
383
|
-
Bugs fixed:
|
384
|
-
* lexer.rl: fix EOF location (closes #273). (whitequark)
|
385
|
-
|
386
|
-
v2.3.0.5 (2016-02-12)
|
387
|
-
---------------------
|
388
|
-
|
389
|
-
Bugs fixed:
|
390
|
-
* lexer.rl: "%Q{\あ}": fix encoding of UTF-8 noop escapes. (whitequark)
|
391
|
-
|
392
|
-
v2.3.0.3 (2016-02-06)
|
393
|
-
---------------------
|
394
|
-
|
395
|
-
API modifications:
|
396
|
-
* lexer.rl: "a?=b": lex via tCHARACTER (closes #255). (whitequark)
|
397
|
-
|
398
|
-
v2.3.0.2 (2016-01-24)
|
399
|
-
---------------------
|
400
|
-
|
401
|
-
Bugs fixed:
|
402
|
-
* Add :csend to Parser::Meta::NODE_TYPES (Markus Schirp)
|
403
|
-
* lexer/dedenter: "\<\<x\n y\\n z\nx": don't dedent after escaped newline. (whitequark)
|
404
|
-
|
405
|
-
v2.3.0.1 (2016-01-14)
|
406
|
-
---------------------
|
407
|
-
|
408
|
-
Features implemented:
|
409
|
-
* ruby23.y: implement optional superclass (cremno)
|
410
|
-
|
411
|
-
v2.3.0.0 (2016-01-14)
|
412
|
-
---------------------
|
413
|
-
|
414
|
-
Features implemented:
|
415
|
-
* parser/current: update for released 2.3. (whitequark)
|
416
|
-
* parse.y: "\<\<~HEREDOC": implement dedenting heredocs (fixes #228). (whitequark)
|
417
|
-
|
418
|
-
v2.3.0.pre.6 (2015-12-20)
|
419
|
-
-------------------------
|
420
|
-
|
421
|
-
API modifications:
|
422
|
-
* parser/current: update 2.2 warning to 2.2.4. (whitequark)
|
423
|
-
* ruby{22,23}.y: "1 ? p do end : 0". (whitequark)
|
424
|
-
* lexer.rl: "{%'a':1}": %-string cannot be a label. (whitequark)
|
425
|
-
* parser/current: update 2.1 warning to 2.1.8. (whitequark)
|
426
|
-
|
427
|
-
Features implemented:
|
428
|
-
* ruby-parse: add --emit-ruby option. (whitequark)
|
429
|
-
|
430
|
-
Bugs fixed:
|
431
|
-
* lexer.rl: "f(a ? 'a':1)": disallow quoted label at expr_value. (whitequark)
|
432
|
-
|
433
|
-
v2.3.0.pre.5 (2015-12-16)
|
434
|
-
-------------------------
|
435
|
-
|
436
|
-
API modifications:
|
437
|
-
* Source::Diagnostic: output ^^^^^ instead of ^~~~~ (like clang). (whitequark)
|
438
|
-
|
439
|
-
v2.3.0.pre.4 (2015-11-26)
|
440
|
-
-------------------------
|
441
|
-
|
442
|
-
Bugs fixed:
|
443
|
-
* ruby23.y: add generated grammar to gemspec. (whitequark)
|
444
|
-
|
445
|
-
v2.3.0.pre.3 (2015-11-25)
|
446
|
-
-------------------------
|
447
|
-
|
448
|
-
API modifications:
|
449
|
-
* builders/default: introduce a (lambda) node (fixes #212). (whitequark)
|
450
|
-
* lexer.rl: do not override argument variable. (Keiji, Yoshimi)
|
451
|
-
* lexer.rl: rename variable names from lit to current_literal. (Keiji, Yoshimi)
|
452
|
-
* lexer.rl: use Regexp to match string. (Keiji, Yoshimi)
|
453
|
-
* lib/parser/source/buffer: reduce respond_to?(:bsearch) (Keiji, Yoshimi)
|
454
|
-
* lexer.rl: reduce String literal allocations (Keiji, Yoshimi)
|
455
|
-
* lexer.rl: reduce respond_to?(:encode) method call on #advance (Keiji, Yoshimi)
|
456
|
-
* lexer.rl: reduce Stirng.length method call on #advance (Keiji, Yoshimi)
|
457
|
-
* lexer.rl: reduce .class method call on #advance (Keiji, Yoshimi)
|
458
|
-
|
459
|
-
Features implemented:
|
460
|
-
* lexer.rl, ruby23.y: "a&.b": implement "safe navigation operator" (fixes #209). (whitequark)
|
461
|
-
* ruby23.y: fork grammar. (whitequark)
|
462
|
-
|
463
|
-
Bugs fixed:
|
464
|
-
* lexer.rl: never let EOF token location point past EOF. (whitequark)
|
465
|
-
|
466
|
-
v2.2.3.0 (2015-10-08)
|
467
|
-
---------------------
|
468
|
-
|
469
|
-
Bugs fixed:
|
470
|
-
* lexer.rl: "-> a: {}": state after -> is ENDFN, not END (fixes #203). (whitequark)
|
471
|
-
* ruby{21,22}.y: "p -> { :hello }, a: 1 do end": lexpop cmdarg. (whitequark)
|
472
|
-
|
473
|
-
v2.2.2.6 (2015-06-30)
|
474
|
-
---------------------
|
475
|
-
|
476
|
-
API modifications:
|
477
|
-
* parser/current: link to README from syntax deviation warning. (whitequark)
|
478
|
-
|
479
|
-
v2.3.0.pre.2 (2015-06-15)
|
480
|
-
-------------------------
|
481
|
-
|
482
|
-
Bugs fixed:
|
483
|
-
* {macruby,rubymotion}.rb: add to gemspec. (whitequark)
|
484
|
-
|
485
|
-
v2.3.0.pre.1 (2015-06-13)
|
486
|
-
-------------------------
|
487
|
-
|
488
|
-
API modifications:
|
489
|
-
* ruby20.y: revert 7f7f2a45. (whitequark)
|
490
|
-
|
491
|
-
Features implemented:
|
492
|
-
* Add RubyMotion support. (whitequark)
|
493
|
-
* Add MacRuby support. (whitequark)
|
494
|
-
|
495
|
-
Bugs fixed:
|
496
|
-
* lexer.rl: "[/()\\1/, ?#]": fixes #198. (whitequark)
|
497
|
-
|
498
|
-
v2.2.2.5 (2015-05-25)
|
499
|
-
---------------------
|
500
|
-
|
501
|
-
API modifications:
|
502
|
-
* Source::Comment::Associator: rework entirely; fixes #194 (Oleg Zubchenko)
|
503
|
-
|
504
|
-
Features implemented:
|
505
|
-
* Source::Map: add last_line, last_column delegation (Oleg Zubchenko)
|
506
|
-
* Source::Range: add last_line, last_column methods (Oleg Zubchenko)
|
507
|
-
|
508
|
-
Bugs fixed:
|
509
|
-
* AST::Processor: add missing on_block_pass (fixes #196) (whitequark)
|
510
|
-
|
511
|
-
v2.2.2.3 (2015-05-17)
|
512
|
-
---------------------
|
513
|
-
|
514
|
-
API modifications:
|
515
|
-
* lexer.rl: "a?? 1 : 0": squelch "invalid character syntax" warning. (whitequark)
|
516
|
-
* parser/current: bump warnings to 2.0.1, 2.1.7, 2.2.3. (whitequark)
|
517
|
-
|
518
|
-
Bugs fixed:
|
519
|
-
* Source::Map: do not include :node in to_hash. (whitequark)
|
520
|
-
* ruby{20,21,22}.y: "p ->() do a() do end end": save cmdarg. (whitequark)
|
521
|
-
|
522
|
-
v2.2.2.2 (2015-04-28)
|
523
|
-
---------------------
|
524
|
-
|
525
|
-
Bugs fixed:
|
526
|
-
* lexer.rl: "%r.\..", "%r'\''": leave regexp metacharacters escaped (fixes #192). (whitequark)
|
527
|
-
|
528
|
-
v2.2.2.1 (2015-04-18)
|
529
|
-
---------------------
|
530
|
-
|
531
|
-
Bugs fixed:
|
532
|
-
* builders/default: don't falsely diagnose multiline regexps (fixes #190). (whitequark)
|
533
|
-
|
534
|
-
v2.2.0.4 (2015-04-15)
|
535
|
-
---------------------
|
536
|
-
|
537
|
-
Features implemented:
|
538
|
-
* Add Parser::Source::Map#node. (whitequark)
|
539
|
-
* Add Parser::Source::Comment.associate_locations. (kubicle)
|
540
|
-
|
541
|
-
v2.2.0.1 (2014-12-27)
|
542
|
-
---------------------
|
543
|
-
|
544
|
-
Bugs fixed:
|
545
|
-
* lexer.rl, lexer/literal: "{'a'::": don't parse as quoted label. (Peter Zotov)
|
546
|
-
* Update syntax deviation warning to reflect 2.2 release. (Peter Zotov)
|
547
|
-
|
548
|
-
v2.2.0 (2014-12-25)
|
549
|
-
-------------------
|
550
|
-
|
551
|
-
Bugs fixed:
|
552
|
-
* lexer.rl: "{'x':1,'y':{}}": fix lex_state after tLABEL_END. (Peter Zotov)
|
553
|
-
|
554
|
-
v2.2.0.pre.8 (2014-11-19)
|
555
|
-
-------------------------
|
556
|
-
|
557
|
-
API modifications:
|
558
|
-
* parser/current: update 2.1 to 2.1.5 (fixes #174). (Peter Zotov)
|
559
|
-
|
560
|
-
v2.2.0.pre.7 (2014-11-03)
|
561
|
-
-------------------------
|
562
|
-
|
563
|
-
Bugs fixed:
|
564
|
-
* parser/meta: add missing nodes (fixes #171). (Peter Zotov)
|
565
|
-
|
566
|
-
v2.2.0.pre.6 (2014-10-28)
|
567
|
-
-------------------------
|
568
|
-
|
569
|
-
API modifications:
|
570
|
-
* parser/current: latest stable 2.1.x is 2.1.4, update warning. (hirocaster)
|
571
|
-
|
572
|
-
v2.2.0.pre.5 (2014-10-03)
|
573
|
-
-------------------------
|
574
|
-
|
575
|
-
Features implemented:
|
576
|
-
* parser/current: add syntax deviation warning for 2.1.2. (Peter Zotov)
|
577
|
-
* lexer.rl, ruby22.y: "{'x':1}": add tLABEL_END. (Peter Zotov)
|
578
|
-
|
579
|
-
Bugs fixed:
|
580
|
-
* lexer.rl, ruby{21,22}.y: "def a b:\nreturn": fix #164. (Peter Zotov)
|
581
|
-
* Fix for `ruby-rewrite` not rewriting files if any rewriter was loaded, due to it getting confused about the filename. (Jon Frisby)
|
582
|
-
|
583
|
-
v2.2.0.pre.4 (2014-08-09)
|
584
|
-
-------------------------
|
585
|
-
|
586
|
-
Bugs fixed:
|
587
|
-
* builders/default: "not(x)": fix source map (fixes #158). (Peter Zotov)
|
588
|
-
|
589
|
-
v2.2.0.pre.3 (2014-07-02)
|
590
|
-
-------------------------
|
591
|
-
|
592
|
-
Features implemented:
|
593
|
-
* Raise EncodingError when source includes invalid byte sequence (Yuji Nakayama)
|
594
|
-
|
595
|
-
Bugs fixed:
|
596
|
-
* ruby{19,20,21}.y: "x def y; z do end end": save cmdarg stack to isolate command argument state from outer scope. (Peter Zotov)
|
597
|
-
* ruby{19,20,21}.y: "tap (proc do end)": allow parenthesed do-block in cmdarg. (Peter Zotov)
|
598
|
-
|
599
|
-
v2.2.0.pre.2 (2014-06-14)
|
600
|
-
-------------------------
|
601
|
-
|
602
|
-
Bugs fixed:
|
603
|
-
* ruby22.rb: include in gemspec. (Peter Zotov)
|
604
|
-
|
605
|
-
v2.2.0.pre.1 (2014-06-12)
|
606
|
-
-------------------------
|
607
|
-
|
608
|
-
Features implemented:
|
609
|
-
* Add Source::Rewriter#transaction for atomic rewrite actions (Yuji Nakayama)
|
610
|
-
* Raise Parser::ClobberingError for clobbering rewrite error (Yuji Nakayama)
|
611
|
-
|
612
|
-
Bugs fixed:
|
613
|
-
* parser/current: fix the fallback case (refs #146). (Peter Zotov)
|
614
|
-
* ruby22.y: "tap (proc do end)": allow parenthesed do-block in cmdarg. (Peter Zotov)
|
615
|
-
|
616
|
-
v2.1.9 (2014-04-21)
|
617
|
-
-------------------
|
618
|
-
|
619
|
-
API modifications:
|
620
|
-
* Extend ast dependency to >= 1.1 \< 3.0. (Peter Zotov)
|
621
|
-
* parser/current: fallback to latest released Ruby instead of raising (fixes #140). (Peter Zotov)
|
622
|
-
|
623
|
-
Features implemented:
|
624
|
-
* ruby-rewrite: add a --modify switch for rewriters that modify AST (fixes #143). (Peter Zotov)
|
625
|
-
|
626
|
-
Bugs fixed:
|
627
|
-
* lexer.rl: don't fail to parse string literals in huge files (fixes #142). (Peter Zotov)
|
628
|
-
|
629
|
-
v2.1.7 (2014-03-05)
|
630
|
-
-------------------
|
631
|
-
|
632
|
-
Bugs fixed:
|
633
|
-
* lexer.rl: make sure all invalid escapes lead to fatal errors (fixes #136). (Peter Zotov)
|
634
|
-
|
635
|
-
v2.1.6 (2014-03-04)
|
636
|
-
-------------------
|
637
|
-
|
638
|
-
Features implemented:
|
639
|
-
* Add the list of all node types within Parser::Meta. (Markus Schirp)
|
640
|
-
|
641
|
-
v2.1.5 (2014-02-24)
|
642
|
-
-------------------
|
643
|
-
|
644
|
-
Bugs fixed:
|
645
|
-
* Parser::Base, ruby18.y: don't try to lookup Encoding on 1.8 (fixes #133). (Peter Zotov)
|
646
|
-
|
647
|
-
v2.1.4 (2014-01-11)
|
648
|
-
-------------------
|
649
|
-
|
650
|
-
Features implemented:
|
651
|
-
* ruby22.y: "x def y; z do end end": save cmdarg stack to isolate command argument state from outer scope. (Peter Zotov)
|
652
|
-
* Add Ruby 2.2 syntax. (Peter Zotov)
|
653
|
-
|
654
|
-
Bugs fixed:
|
655
|
-
* Builders::Default: "super do end": super and zsuper are like send (fixes #131). (Peter Zotov)
|
656
|
-
|
657
|
-
v2.1.3 (2014-01-10)
|
658
|
-
-------------------
|
659
|
-
|
660
|
-
Bugs fixed:
|
661
|
-
* lexer.rl: "/\//": don't include escaped delimiter in AST in its escaped form (fixes #125). (Peter Zotov)
|
662
|
-
* Builders::Default: "return x y do end": correctly build AST for keywords followed by command (closes #129). (Peter Zotov)
|
663
|
-
* Fix a bug where "ambiguous first argument" diagnostic was not emitted (Yuji Nakayama)
|
664
|
-
* Source::Comment::Associator: don't die while associating with "__ENCODING__". (Peter Zotov)
|
665
|
-
* ruby-parse: don't die when invoked with -L -e "__ENCODING__". (Peter Zotov)
|
666
|
-
* Add missing source map for match-current-line (Yuji Nakayama)
|
667
|
-
|
668
|
-
v2.1.2 (2014-01-05)
|
669
|
-
-------------------
|
670
|
-
|
671
|
-
Bugs fixed:
|
672
|
-
* lexer.rl: in "foo!= x", foo is tIDENTIFIER, not tFID (closes #126). (Peter Zotov)
|
673
|
-
|
674
|
-
v2.1.1 (2013-12-25)
|
675
|
-
-------------------
|
676
|
-
|
677
|
-
API modifications:
|
678
|
-
* ruby21.y: Ruby 2.1 is released already. (Peter Zotov)
|
679
|
-
|
680
|
-
v2.1.0 (2013-12-25)
|
681
|
-
-------------------
|
682
|
-
|
683
|
-
API modifications:
|
684
|
-
* Parser::Diagnostic: expose reason symbolically (closes #115, #116). (Ian MacLeod)
|
685
|
-
* lexer.rl: coerce literals to UTF-8 in ASCII-encoded files if they contain \uXXXX (Peter Zotov)
|
686
|
-
|
687
|
-
Bugs fixed:
|
688
|
-
* builders/default: represent heredocs with dedicated map (fixes #100). (Peter Zotov)
|
689
|
-
|
690
|
-
v2.1.0.pre1 (2013-11-12)
|
691
|
-
------------------------
|
692
|
-
|
693
|
-
API modifications:
|
694
|
-
* lexer.rl: correctly handle __END__ with non-whitespace after it (Peter Zotov)
|
695
|
-
* lexer.rl: handle \r in middle of a line as mere whitespace (Peter Zotov)
|
696
|
-
* ruby{18,19,20,21}.y, builders/default: precisely point to tUMINUS_NUM. (Peter Zotov)
|
697
|
-
|
698
|
-
Features implemented:
|
699
|
-
* lexer.rl, ruby21.y, builders/default: rational/complex literals. (Peter Zotov)
|
700
|
-
|
701
|
-
v2.0.0 (2013-10-06)
|
702
|
-
-------------------
|
703
|
-
|
704
|
-
API modifications:
|
705
|
-
* Source::Rewriter: raise an exception if updates clobber each other. (Peter Zotov)
|
706
|
-
* Source::Range#inspect: use full class name. (Peter Zotov)
|
707
|
-
* lexer.rl: make EOF tokens actually pointing at EOF and zero-length. (Peter Zotov)
|
708
|
-
* Source::Range#column_range: raise RangeError if range spans >1 line. (Peter Zotov)
|
709
|
-
* Source::Comment::Associator: fix argument order. (Peter Zotov)
|
710
|
-
|
711
|
-
Features implemented:
|
712
|
-
* Source::Comment: implement #inspect. (Peter Zotov)
|
713
|
-
* Backport Array#bsearch from Ruby 2.0. (Peter Zotov)
|
714
|
-
|
715
|
-
v2.0.0.pre8 (2013-09-15)
|
716
|
-
------------------------
|
717
|
-
|
718
|
-
API modifications:
|
719
|
-
* lexer.rl: make lexing faster and improve parsing speed by ~60%. (Peter Zotov)
|
720
|
-
|
721
|
-
v2.0.0.pre7 (2013-09-10)
|
722
|
-
------------------------
|
723
|
-
|
724
|
-
Features implemented:
|
725
|
-
* Parser::Base: add #parse_with_comments, #parse_file_with_comments. (Trent Ogren)
|
726
|
-
* lexer.rl (Ruby 2.1): "1end": lex non-exponent `e' separate from number. (Peter Zotov)
|
727
|
-
|
728
|
-
Bugs fixed:
|
729
|
-
* lexer.rl: "->*{}": tLAMBEG at expr_beg (fixes #103). (Peter Zotov)
|
730
|
-
* Source::Rewriter: apply actions in the insertion order. (Josh Cheek)
|
731
|
-
|
732
|
-
v2.0.0.pre5 (2013-07-31)
|
733
|
-
------------------------
|
734
|
-
|
735
|
-
Bugs fixed:
|
736
|
-
* Remove a forgotten require. (Peter Zotov)
|
737
|
-
|
738
|
-
v2.0.0.pre4 (2013-07-31)
|
739
|
-
------------------------
|
740
|
-
|
741
|
-
API modifications:
|
742
|
-
* source/comment: make #loc/#location return Source::Map for consistency (fixes #96). (Peter Zotov)
|
743
|
-
|
744
|
-
Features implemented:
|
745
|
-
* source/comment/associator: skip shebang and encoding line by default (fixes #95). (Peter Zotov)
|
746
|
-
|
747
|
-
Bugs fixed:
|
748
|
-
* ruby{19,20,21}.y, lexer.rl, builders/default: correct begin for ?a (fixes #92). (Peter Zotov)
|
749
|
-
* ruby{18,19,20,21}.y, builders/default: don't add spurious begin/end for string parts (refs #92). (Peter Zotov)
|
750
|
-
* Activate `diagnostics.all_errors_are_fatal` on non-MRI Rubies as a workaround (closes #93). (Peter Zotov)
|
751
|
-
|
752
|
-
v2.0.0.pre3 (2013-07-26)
|
753
|
-
------------------------
|
754
|
-
|
755
|
-
API modifications:
|
756
|
-
* lexer.rl: add simple explicit output encoding for strings. (Peter Zotov)
|
757
|
-
|
758
|
-
Features implemented:
|
759
|
-
* Source::Buffer: support for -(dos|unix|mac) and utf8-mac encodings. (Peter Zotov)
|
760
|
-
* Source::Range#resize. (Peter Zotov)
|
761
|
-
* Significantly improve speed for large (>100k) and very large (>1M) files. (Peter Zotov)
|
762
|
-
|
763
|
-
Bugs fixed:
|
764
|
-
* ruby21.y: fix typos. (Peter Zotov)
|
765
|
-
* builders/default: respect regexp encoding. (Peter Zotov)
|
766
|
-
* lexer.rl: literal EOF (\0, \x04, \x1a) inside literals and comments. (Peter Zotov)
|
767
|
-
* lexer.rl: "meth (lambda do end)" (1.8), "f x: -> do meth do end end": expr_cmdarg. (Peter Zotov)
|
768
|
-
* lexer.rl: "\<\<E\nE\r\r\n": extraneous CRs are ignored after heredoc delimiter. (Peter Zotov)
|
769
|
-
* lexer.rl: "%\nfoo\n": \n can be used as %-literal delimiter. (Peter Zotov)
|
770
|
-
* source/buffer, lexer.rl: convert CRLF to LF prior to lexing. (Peter Zotov)
|
771
|
-
* lexer.rl: "\<\<w; "\nfoo\nw\n"": interleaved heredoc and non-heredoc literals. (Peter Zotov)
|
772
|
-
* builders/default: 1.8 did not descend into &&/|| in conditional context. (Peter Zotov)
|
773
|
-
* lexer.rl: "1+a:a": respect context sensitivity in 1.8 label fallback. (Peter Zotov)
|
774
|
-
* lexer.rl: ruby 1.8 is context-sensitive wrt/ locals as well. (Peter Zotov)
|
775
|
-
* lexer.rl: "eof??a": expr_arg doesn't need space before character literal. (Peter Zotov)
|
776
|
-
* lexer.rl: interleaved heredoc and interpolated double-quoted string. (Peter Zotov)
|
777
|
-
* lexer.rl: "#{f:a}": interpolation starts expr_value, not expr_beg. (Peter Zotov)
|
778
|
-
* lexer.rl: "\cM" is "\r", not an error. (Peter Zotov)
|
779
|
-
* ruby{20,21}.y: constant op-assignment inside a def is not an error. (Peter Zotov)
|
780
|
-
* lexer.rl: "when Date:" fix label fallback for 1.8 mode. (Peter Zotov)
|
781
|
-
* ruby{19,20,21}.y: "->(scope){}; scope :foo": lambda identifier leakage. (Peter Zotov)
|
782
|
-
* lexer.rl: "eh ?\r\n": don't eat tEH if followed by CRLF. (Peter Zotov)
|
783
|
-
* lexer.rl: "f \<\<-TABLE\ndo |a,b|\nTABLE\nend": leave FSM after lexing heredoc. (Peter Zotov)
|
784
|
-
* lexer.rl: "foo %\n bar": don't % at expr_arg as tSTRING_BEG. (Peter Zotov)
|
785
|
-
* lexer.rl, lexer/literal: use lexer encoding for literal buffer. (Peter Zotov)
|
786
|
-
* lexer.rl: "\u{9}": one-digit braced unicode escapes. (Peter Zotov)
|
787
|
-
* Source::Buffer: don't chew \r from source lines. (Peter Zotov)
|
788
|
-
* builders/default: don't die in eh_keyword_map if else branch is empty. (Peter Zotov)
|
789
|
-
* lexer.rl: "0777_333": octal literals with internal underscores. (Peter Zotov)
|
790
|
-
* lexer.rl: "let [] {}": goto tLBRACE_ARG after any closing braces. (Peter Zotov)
|
791
|
-
* lexer.rl: "while not (1) do end": emit proper kDO* when in cond/cmdarg state. (Peter Zotov)
|
792
|
-
* lexer.rl: "rescue=>": correctly handle rescue+assoc at expr_beg. (Peter Zotov)
|
793
|
-
* lexer.rl: "puts 123do end": only trailing `_' and `e' in number are errors. (Peter Zotov)
|
794
|
-
* lexer.rl: "begin; rescue rescue1; end": accept barewords at expr_mid. (Peter Zotov)
|
795
|
-
* lexer.rl: "f.x!if 1": correct modifier handling in expr_arg. (Peter Zotov)
|
796
|
-
* lexer.rl: "=begin\n#=end\n=end": only recognize =end at bol. (Peter Zotov)
|
797
|
-
* builders/default: don't check for duplicate arguments in 1.8 mode. (Peter Zotov)
|
798
|
-
* Don't attempt to parse magic encoding comment in 1.8 mode. (Peter Zotov)
|
799
|
-
* lexer.rl: "\777": octal literals overflow. (Peter Zotov)
|
800
|
-
* lexer.rl: "foo;\n__END__", "\na:b": whitespace in expr_value. (Peter Zotov)
|
801
|
-
* lexer.rl: "\xE2\x80\x99": concatenation of byte escape sequences. (Peter Zotov)
|
802
|
-
* lexer.rl: "E10", "E4U": don't conflate floats and identifiers. (Peter Zotov)
|
803
|
-
* lexer.rl: "foo.bar= {1=>2}": return fid, = as separate tokens in expr_dot. (Peter Zotov)
|
804
|
-
* lexer.rl: "def defined?": properly return defined? in expr_fname. (Peter Zotov)
|
805
|
-
* lexer.rl: "Rainbows! do end", "foo.S?": allow bareword fid in expr_beg/dot. (Peter Zotov)
|
806
|
-
|
807
|
-
v2.0.0.pre2 (2013-07-11)
|
808
|
-
------------------------
|
809
|
-
|
810
|
-
Features implemented:
|
811
|
-
* Allow to differentiate between __FILE__/__LINE__ and literals (closes #89). (Peter Zotov)
|
812
|
-
* Add attribute `diagnostic' to Parser::SyntaxError (closes #88). (Peter Zotov)
|
813
|
-
|
814
|
-
Bugs fixed:
|
815
|
-
* Don't treat byte order mark as an identifier (closes #91). (Peter Zotov)
|
816
|
-
|
817
|
-
v2.0.0.beta10 (2013-07-02)
|
818
|
-
--------------------------
|
819
|
-
|
820
|
-
Bugs fixed:
|
821
|
-
* ruby-parse, ruby-rewrite: fix require of removed compatibility shim. (Peter Zotov)
|
822
|
-
* lexer.rl: "def !@; end" unary bang. (Peter Zotov)
|
823
|
-
|
824
|
-
v2.0.0.beta9 (2013-06-28)
|
825
|
-
-------------------------
|
826
|
-
|
827
|
-
API modifications:
|
828
|
-
* ruby{18,19,20,21}.y: removed obsolete warnings and linting. (Peter Zotov)
|
829
|
-
|
830
|
-
Features implemented:
|
831
|
-
* builders/default: add keyword source range for BEGIN/END (fixes #85). (Peter Zotov)
|
832
|
-
|
833
|
-
Bugs fixed:
|
834
|
-
* lexer.rl: "t=1;(a)?t:T" context sensitivity in expr_value (fixes #87). (Peter Zotov)
|
835
|
-
* lexer.rl: keywords as labels, e.g. "unless:" (fixes #83, #84). (Peter Zotov)
|
836
|
-
* lexer.rl: rectify usage of c_space/c_space_nl (fixes #81). (Peter Zotov)
|
837
|
-
* ruby{18,19,20,21}.y: fix warnings for class/module in method body. (Peter Zotov)
|
838
|
-
* lexer.rl: fix warning for ?\s. (Peter Zotov)
|
839
|
-
* lexer.rl: expr_fname emits expr_beg-like keywords (fixes #82). (Peter Zotov)
|
840
|
-
* lexer.rl: get rid of harmful nondeterminism in w_space (fixes #80). (Peter Zotov)
|
841
|
-
* lexer/explanation: 1.8, 1.9 compatibility (fixes #76). (Peter Zotov)
|
842
|
-
|
843
|
-
v2.0.0.beta8 (2013-06-24)
|
844
|
-
-------------------------
|
845
|
-
|
846
|
-
Bugs fixed:
|
847
|
-
* ast/processor: add missing node handlers (Yuji Nakayama)
|
848
|
-
* ast/processor: rename some obsolete node handlers (Yuji Nakayama)
|
849
|
-
|
850
|
-
v2.0.0.beta7 (2013-06-22)
|
851
|
-
-------------------------
|
852
|
-
|
853
|
-
API modifications:
|
854
|
-
* Implement a much more sane encoding model (closes #60). (Peter Zotov)
|
855
|
-
|
856
|
-
Features implemented:
|
857
|
-
* builders/default: (while-post) and (until-post); (kwbegin) (fixes #70). (Peter Zotov)
|
858
|
-
|
859
|
-
Bugs fixed:
|
860
|
-
* builders/default: don't swallow (begin) in "if (foo); end" (fixes #75). (Peter Zotov)
|
861
|
-
|
862
|
-
v2.0.0.beta6 (2013-06-17)
|
863
|
-
-------------------------
|
864
|
-
|
865
|
-
API modifications:
|
866
|
-
* Get rid of "synthesized (nil)". If it's not in source, it's not in AST (fixes #71). (Peter Zotov)
|
867
|
-
* lexer.rl, ruby{18,19,20,21}.y: source maps for interpolation (fixes #27). (Peter Zotov)
|
868
|
-
|
869
|
-
Features implemented:
|
870
|
-
* ruby{18,19,20,21}.y, builders/default: lvar-injecting match (closes #69). (Peter Zotov)
|
871
|
-
* builders/default: implicit matches (refs #69). (Peter Zotov)
|
872
|
-
* builders/default: flip-flops (refs #69). (Peter Zotov)
|
873
|
-
|
874
|
-
Bugs fixed:
|
875
|
-
* lexer.rl: fix an off-by-1 error in heredoc parsing. (Peter Zotov)
|
876
|
-
* lexer.rl: don't fail on "alias $a $b\n# comment\nalias $c $d". (Peter Zotov)
|
877
|
-
* builders/default: fix treatment of masgn in &&/|| (refs #69). (Peter Zotov)
|
878
|
-
* ruby-parse: make -L command line option work again. (Peter Zotov)
|
879
|
-
* ruby{18,19,20,21}.y: begin source map for "if foo\nthen bar end" (fixes #68). (Peter Zotov)
|
880
|
-
* Source::Comment::Associator: gracefully terminate when out of comments (fixes #67). (Peter Zotov)
|
881
|
-
|
882
|
-
v2.0.0.beta5 (2013-06-08)
|
883
|
-
-------------------------
|
884
|
-
|
885
|
-
Bugs fixed:
|
886
|
-
* Source::Buffer: better magic encoding comment recognition (fixes #65). (Peter Zotov)
|
887
|
-
* lexer.rl: "{success?: true}" (fixes #66). (Peter Zotov)
|
888
|
-
* Source::Buffer: if in doubt, treat data as UTF-8 (closes #60). (Peter Zotov)
|
889
|
-
|
890
|
-
v2.0.0.beta4 (2013-06-05)
|
891
|
-
-------------------------
|
892
|
-
|
893
|
-
Bugs fixed:
|
894
|
-
* lexer.rl: fix heredoc parsing with CRLF line endings (closes #61). (Peter Zotov)
|
895
|
-
* lexer.rl: fix premature ending of heredoc "\<\<D\nABCDEF\nD" (fixes #59). (Peter Zotov)
|
896
|
-
|
897
|
-
v2.0.0.beta3 (2013-05-29)
|
898
|
-
-------------------------
|
899
|
-
|
900
|
-
Bugs fixed:
|
901
|
-
* AST::Processor: traverse "A, B = foo" (fixes #55). (Peter Zotov)
|
902
|
-
* lexer.rl: correctly handle CRLF line endings (fixes #56). (Peter Zotov)
|
903
|
-
* Fix traversing of "case; when a?; when b?; end" by AST::Processor. (Peter Zotov)
|
904
|
-
* Correctly lex "foo a, b # comment\nbar" (fixes #54). (Peter Zotov)
|
905
|
-
|
906
|
-
v2.0.0.beta2 (2013-05-27)
|
907
|
-
-------------------------
|
908
|
-
|
909
|
-
Bugs fixed:
|
910
|
-
* Actually return comments from Parser::Base#tokenize instead of nil. (Peter Zotov)
|
911
|
-
|
912
|
-
v2.0.0.beta1 (2013-05-25)
|
913
|
-
-------------------------
|
914
|
-
|
915
|
-
API modifications:
|
916
|
-
* Completely rewrite whitespace handling in lexer (fixes #36). (Peter Zotov)
|
917
|
-
* Rename Parser::AST::Node#source_map to #location, #src to #loc (closes #40). (Peter Zotov)
|
918
|
-
* Rename Parser::Source::Range#to_source to #source (refs #40). (Peter Zotov)
|
919
|
-
* Rename (cdecl) node to (casgn), remove (cvdecl) nodes (fixes #26). (Peter Zotov)
|
920
|
-
|
921
|
-
Features implemented:
|
922
|
-
* Add Source::Comment.associate for mapping comments back to nodes (fixes #31). (Peter Zotov)
|
923
|
-
* Return AST and comments from Parser::Base#parse_with_comments. (Peter Zotov)
|
924
|
-
* Return comments from Parser::Base#tokenize (fixes #46). (Peter Zotov)
|
925
|
-
* Add tokenizer, Parser::Base#tokenize (refs #46). (Peter Zotov)
|
926
|
-
* lexer.rl: better location reporting for invalid unicode codepoints (fixes #38). (Peter Zotov)
|
927
|
-
* lexer.rl: better location reporting for unterminated =begin (fixes #37). (Peter Zotov)
|
928
|
-
* Better location reporting for hashes with labels. (Peter Zotov)
|
929
|
-
* Add `dot' source map to (send) nodes (fixes #34). (Peter Zotov)
|
930
|
-
* Significantly improve performance of Source::Buffer (fixes #28). (Peter Zotov)
|
931
|
-
|
932
|
-
Bugs fixed:
|
933
|
-
* lexer.rl: fix lexing label at line_begin "foo:bar" (fixes #48). (Peter Zotov)
|
934
|
-
* lexer.rl: "Option /^I/" is a method call (fixes #32). (Peter Zotov)
|
935
|
-
* Don't allow destructive mutation of line cache in Source::Buffer. (Peter Zotov)
|
936
|
-
* Fix quantifier in magic encoding parser (refs #33). (Peter Zotov)
|
937
|
-
* Better handling of magic encoding comment edge cases (fixes #33). (Peter Zotov)
|
938
|
-
|
939
|
-
v1.3.2 (2013-05-13)
|
940
|
-
-------------------
|
941
|
-
|
942
|
-
Features implemented:
|
943
|
-
* lexer.rl: disallow "$-" (dollar, dash, no character) special. (Peter Zotov)
|
944
|
-
|
945
|
-
Bugs fixed:
|
946
|
-
* Source::Range: fix #to_source for multiline ranges. (Peter Zotov)
|
947
|
-
* builders/default: source map for class/module name (fixes #24). (Peter Zotov)
|
948
|
-
|
949
|
-
v1.3.1 (2013-05-09)
|
950
|
-
-------------------
|
951
|
-
|
952
|
-
Bugs fixed:
|
953
|
-
* ruby{19,20,21}.y: "def foo\n=begin\n=end\nend" (fixes #22). (Peter Zotov)
|
954
|
-
* lexer.rl: "rescue::Exception" (fixes #23). (Peter Zotov)
|
955
|
-
|
956
|
-
v1.3.0 (2013-04-26)
|
957
|
-
-------------------
|
958
|
-
|
959
|
-
Bugs fixed:
|
960
|
-
* lexer.rl: "alias foo bar \n alias bar baz". (Peter Zotov)
|
961
|
-
|
962
|
-
v1.2.0 (2013-04-25)
|
963
|
-
-------------------
|
964
|
-
|
965
|
-
Bugs fixed:
|
966
|
-
* lexer.rl: lex "def String.foo; end" correctly (fixes #16). (Peter Zotov)
|
967
|
-
* lexer.rl: reject "1end", "1.1end". (Peter Zotov)
|
968
|
-
|
969
|
-
v1.1.0 (2013-04-18)
|
970
|
-
-------------------
|
971
|
-
|
972
|
-
API modifications:
|
973
|
-
* ruby19.y, ruby20.y, ruby21.y: check for Encoding support (fixes #9). (Peter Zotov)
|
974
|
-
|
975
|
-
Features implemented:
|
976
|
-
* builders/default: ignore duplicate _ args (>=1.9), _.* args (>1.9) (fixes #5). (Peter Zotov)
|
977
|
-
* builders/default: detect duplicate argument names (refs #5). (Peter Zotov)
|
978
|
-
* lexer.rl: "def foo bar: 1; end" (for ruby 2.1) (fixes #15). (Peter Zotov)
|
979
|
-
* ruby21.y: required keyword arguments. (Peter Zotov)
|
980
|
-
|
981
|
-
Bugs fixed:
|
982
|
-
* ruby20.y, ruby21.y: "foo::A += 1" and friends (scoped constant op-asgn). (Peter Zotov)
|
983
|
-
|
984
|
-
v1.0.1 (2013-04-18)
|
985
|
-
-------------------
|
986
|
-
|
987
|
-
Bugs fixed:
|
988
|
-
* builders/default: %Q{#{1}} and friends (fixes #14). (Peter Zotov)
|
989
|
-
|
990
|
-
v1.0.0 (2013-04-17)
|
991
|
-
-------------------
|
992
|
-
|
993
|
-
Features implemented:
|
994
|
-
* ruby20.y: "meth 1 do end.fun(bar) {}" and friends. (Peter Zotov)
|
995
|
-
* ruby20.y: keyword arguments. (Peter Zotov)
|
996
|
-
* ruby20.y: { **kwsplat }. (Peter Zotov)
|
997
|
-
|
998
|
-
v0.9.2 (2013-04-16)
|
999
|
-
-------------------
|
1000
|
-
|
1001
|
-
Features implemented:
|
1002
|
-
* lexer.rl: "-> (a) {}". (Peter Zotov)
|
1003
|
-
* builders/default: treat &&/|| lhs/rhs as conditional context. (Peter Zotov)
|
1004
|
-
* ruby20.y: "class Foo \< a:b; end". (Peter Zotov)
|
1005
|
-
* lexer.rl: "class \<\< a:b". (Peter Zotov)
|
1006
|
-
* ruby19.y, ruby20.y: "f { || a:b }". (Peter Zotov)
|
1007
|
-
* ruby19.y, ruby20.y: "def foo() a:b end", "def foo\n a:b end". (Peter Zotov)
|
1008
|
-
* lexer.rl: %i/%I. (Peter Zotov)
|
1009
|
-
* lexer.rl: warn at "foo **bar". (Peter Zotov)
|
1010
|
-
* lexer.rl: ** at expr_beg is tDSTAR. (Peter Zotov)
|
1011
|
-
* ruby20.y: "f {|;\nvar\n|}". (Peter Zotov)
|
1012
|
-
* ruby20.y: "p () {}". (Peter Zotov)
|
1013
|
-
* ruby20.y: "p begin 1.times do 1 end end". (Peter Zotov)
|
1014
|
-
* ruby20.y: better error message for BEGIN{} in a method body. (Peter Zotov)
|
1015
|
-
|
1016
|
-
Bugs fixed:
|
1017
|
-
* lexer.rl, ruby18.y, ruby19.y, ruby20.y: "%W[#{a}#@b foo #{c}]". (Peter Zotov)
|
1018
|
-
* lexer.rl: parse "foo=1; foo / bar #/" as method call on 1.8, division on 1.9. (Peter Zotov)
|
1019
|
-
* ruby18.y, ruby19.y: BEGIN{} does not introduce a scope. (Peter Zotov)
|
1020
|
-
* lexer.rl: improve whitespace handling. (Peter Zotov)
|
1021
|
-
|
1022
|
-
v0.9.0 (2013-04-15)
|
1023
|
-
-------------------
|
1024
|
-
|
1025
|
-
API modifications:
|
1026
|
-
* runtime compatibility with 1.8.7. (Peter Zotov)
|
1027
|
-
|
1028
|
-
Features implemented:
|
1029
|
-
* builders/default: check for multiple assignment in conditions (fixes #4). (Peter Zotov)
|
1030
|
-
* builders/default: check if actual block and blockarg are passed (fixes #6). (Peter Zotov)
|
1031
|
-
* ruby19.y: "foo::A += m foo". (Peter Zotov)
|
1032
|
-
* ruby18.y, ruby19.y: "rescue without else is useless" warning. (Peter Zotov)
|
1033
|
-
* ruby19.y: 99.16% coverage, 100% sans error recovery. (Peter Zotov)
|
1034
|
-
* ruby19.y: mlhs arguments "def foo((a, *, p)) end". (Peter Zotov)
|
1035
|
-
* ruby19.y: "fun (1) {}" and friends. (Peter Zotov)
|
1036
|
-
* ruby19.y: mlhs post variables "a, *b, c = ...". (Peter Zotov)
|
1037
|
-
* builders/default: @@a |= 1; def f; @@a |= 1; end. (Peter Zotov)
|
1038
|
-
* ruby18.y: fun (&foo). (Peter Zotov)
|
1039
|
-
* ruby18.y: block formal arguments. 99.33% coverage. (Peter Zotov)
|
1040
|
-
* ruby18.y: fun(meth 1 do end); fun(1, meth 1 do end). (Peter Zotov)
|
1041
|
-
* ruby18.y: "meth 1 do end.fun(bar)" and friends. (Peter Zotov)
|
1042
|
-
* ruby18.y: foo () {}; a.foo () {}; a::foo () {}. (Peter Zotov)
|
1043
|
-
* ruby18.y: various call argument combinations. (Peter Zotov)
|
1044
|
-
* ruby18.y: foo (1, 2); foo (). (Peter Zotov)
|
1045
|
-
* ruby18.y: foo (1).to_i. (Peter Zotov)
|
1046
|
-
* ruby18.y: fun{}; fun(){}; fun(1){}; fun do end. (Peter Zotov)
|
1047
|
-
* ruby18.y: foo.fun bar. (Peter Zotov)
|
1048
|
-
* lexer.rl, ruby18.y: add support for cond/cmdarg stack states. (Peter Zotov)
|
1049
|
-
* ruby18.y: rescue. (Peter Zotov)
|
1050
|
-
* ruby18.y: begin end while|until (tests only). (Peter Zotov)
|
1051
|
-
* ruby18.y: case. (Peter Zotov)
|
1052
|
-
* ruby18.y: foo[m bar]. (Peter Zotov)
|
1053
|
-
* ruby18.y: for..in. (Peter Zotov)
|
1054
|
-
|
1055
|
-
Bugs fixed:
|
1056
|
-
* lexer.rl: handle : at expr_beg as a symbol, at expr_end as tCOLON. (Peter Zotov)
|
1057
|
-
* lexer.rl: handle "rescue #foo\nbar". (Peter Zotov)
|
1058
|
-
* lexer.rl: handle "foo.#bar\nbaz". (Peter Zotov)
|
1059
|
-
* lexer.rl: fix location info for symbols. (Peter Zotov)
|
1060
|
-
* lexer.rl: handle \<backslash>\<nl> at expr_beg. (Peter Zotov)
|
1061
|
-
* lexer.rl: emit tCONSTANT/tIDENTIFIER/tFID in expr_dot. (Peter Zotov)
|
1062
|
-
* lexer.rl: correctly disambiguate "x ::Foo" as tIDENT, tCOLON3, ... (Peter Zotov)
|
1063
|
-
* lexer.rl: correctly disambiguate ident!= as tIDENTIFIER, tNEQ. (Peter Zotov)
|
1064
|
-
* lexer.rl: correctly report the %r%% tREGEXP_BEG value as %r%. (Peter Zotov)
|
1065
|
-
* ruby19.y: emit correct error on "nil = 1" and friends. (Peter Zotov)
|
1066
|
-
* ruby19.y: 1.9 permits empty symbol literals. (Peter Zotov)
|
1067
|
-
* ruby18.y: foo(&bar). (Peter Zotov)
|
1068
|
-
* lexer.rl: don't lookahead two tokens on "func %{str} do". (Peter Zotov)
|
1069
|
-
* lexer.rl: fix lexing of non-interp heredoc with trailing backslash. (Peter Zotov)
|
1070
|
-
* lexer.rl: fix erroneous number and =begin lookahead in expr_beg. (Peter Zotov)
|
1071
|
-
* lexer.rl: fix stack corruption. (Peter Zotov)
|
1072
|
-
* lexer.rl: /= at expr_beg. (Peter Zotov)
|
1073
|
-
* lexer.rl: class\<\<self. (Peter Zotov)
|
1074
|
-
* fix lexing comments at expr_beg "{#1\n}". (Peter Zotov)
|
1075
|
-
|