ruby-next-parser 3.1.0.0 → 3.1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/parser/ruby-next/lexer.rb +11345 -11023
- data/lib/parser/ruby-next/lexer.rl +41 -6
- data/lib/parser/ruby-next/version.rb +1 -1
- data/lib/parser/rubynext.rb +2456 -2438
- data/lib/parser/rubynext.y +21 -14
- metadata +4 -4
data/lib/parser/rubynext.y
CHANGED
@@ -1160,6 +1160,14 @@ rule
|
|
1160
1160
|
{
|
1161
1161
|
result = @builder.block_pass(val[0], val[1])
|
1162
1162
|
}
|
1163
|
+
| tAMPER
|
1164
|
+
{
|
1165
|
+
if !@static_env.declared_anonymous_blockarg?
|
1166
|
+
diagnostic :error, :no_anonymous_blockarg, nil, val[0]
|
1167
|
+
end
|
1168
|
+
|
1169
|
+
result = @builder.block_pass(val[0], nil)
|
1170
|
+
}
|
1163
1171
|
|
1164
1172
|
opt_block_arg: tCOMMA block_arg
|
1165
1173
|
{
|
@@ -2703,20 +2711,6 @@ f_opt_paren_args: f_paren_args
|
|
2703
2711
|
{
|
2704
2712
|
result = @builder.args(val[0], val[1], val[2])
|
2705
2713
|
|
2706
|
-
@lexer.state = :expr_value
|
2707
|
-
}
|
2708
|
-
| tLPAREN2 f_arg tCOMMA args_forward rparen
|
2709
|
-
{
|
2710
|
-
args = [ *val[1], @builder.forward_arg(val[3]) ]
|
2711
|
-
result = @builder.args(val[0], args, val[4])
|
2712
|
-
|
2713
|
-
@static_env.declare_forward_args
|
2714
|
-
}
|
2715
|
-
| tLPAREN2 args_forward rparen
|
2716
|
-
{
|
2717
|
-
result = @builder.forward_only_args(val[0], val[1], val[2])
|
2718
|
-
@static_env.declare_forward_args
|
2719
|
-
|
2720
2714
|
@lexer.state = :expr_value
|
2721
2715
|
}
|
2722
2716
|
|
@@ -2724,9 +2718,11 @@ f_opt_paren_args: f_paren_args
|
|
2724
2718
|
| {
|
2725
2719
|
result = @lexer.in_kwarg
|
2726
2720
|
@lexer.in_kwarg = true
|
2721
|
+
@context.push(:def_open_args)
|
2727
2722
|
}
|
2728
2723
|
f_args term
|
2729
2724
|
{
|
2725
|
+
@context.pop
|
2730
2726
|
@lexer.in_kwarg = val[0]
|
2731
2727
|
result = @builder.args(nil, val[1], nil)
|
2732
2728
|
}
|
@@ -2747,6 +2743,11 @@ f_opt_paren_args: f_paren_args
|
|
2747
2743
|
{
|
2748
2744
|
result = [ val[0] ]
|
2749
2745
|
}
|
2746
|
+
| args_forward
|
2747
|
+
{
|
2748
|
+
@static_env.declare_forward_args
|
2749
|
+
result = [ @builder.forward_arg(val[0]) ]
|
2750
|
+
}
|
2750
2751
|
|
2751
2752
|
opt_args_tail: tCOMMA args_tail
|
2752
2753
|
{
|
@@ -3024,6 +3025,12 @@ f_opt_paren_args: f_paren_args
|
|
3024
3025
|
|
3025
3026
|
result = @builder.blockarg(val[0], val[1])
|
3026
3027
|
}
|
3028
|
+
| blkarg_mark
|
3029
|
+
{
|
3030
|
+
@static_env.declare_anonymous_blockarg
|
3031
|
+
|
3032
|
+
result = @builder.blockarg(val[0], nil)
|
3033
|
+
}
|
3027
3034
|
|
3028
3035
|
opt_f_block_arg: tCOMMA f_block_arg
|
3029
3036
|
{
|
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: 3.1.0.
|
4
|
+
version: 3.1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladimir Dementyev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-11-
|
11
|
+
date: 2021-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.0.3.
|
19
|
+
version: 3.0.3.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.0.3.
|
26
|
+
version: 3.0.3.1
|
27
27
|
description: "\n Parser extension to support edge and experimental Ruby syntax\n
|
28
28
|
\ "
|
29
29
|
email:
|