ruby-next-parser 2.8.0.1 → 2.8.0.6

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.
@@ -206,8 +206,26 @@ rule
206
206
  {
207
207
  result = @builder.multi_assign(val[0], val[1], val[2])
208
208
  }
209
+ | rassign
209
210
  | expr
210
211
 
212
+ rassign: arg_value tASSOC lhs
213
+ {
214
+ result = @builder.rassign(val[0], val[1], val[2])
215
+ }
216
+ | arg_value tASSOC mlhs
217
+ {
218
+ result = @builder.multi_rassign(val[0], val[1], val[2])
219
+ }
220
+ | rassign tASSOC lhs
221
+ {
222
+ result = @builder.rassign(val[0], val[1], val[2])
223
+ }
224
+ | rassign tASSOC mlhs
225
+ {
226
+ result = @builder.multi_rassign(val[0], val[1], val[2])
227
+ }
228
+
211
229
  command_asgn: lhs tEQL command_rhs
212
230
  {
213
231
  result = @builder.assign(val[0], val[1], val[2])
@@ -851,6 +869,23 @@ rule
851
869
  result = @builder.def_endless_method(*val[0],
852
870
  val[1], val[2], val[3])
853
871
 
872
+ @lexer.cmdarg.pop
873
+ @lexer.cond.pop
874
+ @static_env.unextend
875
+ @context.pop
876
+ @current_arg_stack.pop
877
+ }
878
+ | defn_head f_paren_args tEQL arg kRESCUE_MOD arg
879
+ {
880
+ rescue_body = @builder.rescue_body(val[4],
881
+ nil, nil, nil,
882
+ nil, val[5])
883
+
884
+ method_body = @builder.begin_body(val[3], [ rescue_body ])
885
+
886
+ result = @builder.def_endless_method(*val[0],
887
+ val[1], val[2], method_body)
888
+
854
889
  @lexer.cmdarg.pop
855
890
  @lexer.cond.pop
856
891
  @static_env.unextend
@@ -862,6 +897,23 @@ rule
862
897
  result = @builder.def_endless_singleton(*val[0],
863
898
  val[1], val[2], val[3])
864
899
 
900
+ @lexer.cmdarg.pop
901
+ @lexer.cond.pop
902
+ @static_env.unextend
903
+ @context.pop
904
+ @current_arg_stack.pop
905
+ }
906
+ | defs_head f_paren_args tEQL arg kRESCUE_MOD arg
907
+ {
908
+ rescue_body = @builder.rescue_body(val[4],
909
+ nil, nil, nil,
910
+ nil, val[5])
911
+
912
+ method_body = @builder.begin_body(val[3], [ rescue_body ])
913
+
914
+ result = @builder.def_endless_singleton(*val[0],
915
+ val[1], val[2], method_body)
916
+
865
917
  @lexer.cmdarg.pop
866
918
  @lexer.cond.pop
867
919
  @static_env.unextend
@@ -2553,10 +2605,9 @@ keyword_variable: kNIL
2553
2605
  f_paren_args: tLPAREN2 f_args rparen
2554
2606
  {
2555
2607
  result = @builder.args(val[0], val[1], val[2])
2608
+
2556
2609
  @lexer.state = :expr_value
2557
2610
  }
2558
-
2559
- f_arglist: f_paren_args
2560
2611
  | tLPAREN2 args_forward rparen
2561
2612
  {
2562
2613
  result = @builder.forward_args(val[0], val[1], val[2])
@@ -2564,6 +2615,8 @@ keyword_variable: kNIL
2564
2615
 
2565
2616
  @lexer.state = :expr_value
2566
2617
  }
2618
+
2619
+ f_arglist: f_paren_args
2567
2620
  | {
2568
2621
  result = @lexer.in_kwarg
2569
2622
  @lexer.in_kwarg = true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-next-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.0.1
4
+ version: 2.8.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladimir Dementyev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-25 00:00:00.000000000 Z
11
+ date: 2020-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -33,6 +33,7 @@ extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
35
  - lib/parser/ruby-next/AST_FORMAT.md
36
+ - lib/parser/ruby-next/ast/processor.rb
36
37
  - lib/parser/ruby-next/builder.rb
37
38
  - lib/parser/ruby-next/lexer.rb
38
39
  - lib/parser/ruby-next/lexer.rl
@@ -56,7 +57,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
56
57
  requirements:
57
58
  - - ">="
58
59
  - !ruby/object:Gem::Version
59
- version: 2.4.0
60
+ version: 2.0.0
60
61
  required_rubygems_version: !ruby/object:Gem::Requirement
61
62
  requirements:
62
63
  - - ">="