ruby_parser 3.20.1 → 3.20.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/History.rdoc +6 -0
- data/compare/normalize.rb +1 -0
- data/lib/ruby20_parser.rb +4220 -4273
- data/lib/ruby20_parser.y +0 -10
- data/lib/ruby21_parser.rb +4203 -4238
- data/lib/ruby21_parser.y +0 -10
- data/lib/ruby22_parser.rb +4239 -4276
- data/lib/ruby22_parser.y +0 -10
- data/lib/ruby23_parser.rb +4235 -4240
- data/lib/ruby23_parser.y +0 -10
- data/lib/ruby24_parser.rb +4229 -4284
- data/lib/ruby24_parser.y +0 -10
- data/lib/ruby25_parser.rb +4220 -4275
- data/lib/ruby25_parser.y +0 -10
- data/lib/ruby26_parser.rb +4221 -4276
- data/lib/ruby26_parser.y +0 -10
- data/lib/ruby27_parser.rb +4138 -4207
- data/lib/ruby27_parser.y +0 -10
- data/lib/ruby30_parser.rb +5966 -5957
- data/lib/ruby30_parser.y +71 -70
- data/lib/ruby31_parser.rb +6090 -6213
- data/lib/ruby31_parser.y +71 -70
- data/lib/ruby32_parser.rb +6258 -6339
- data/lib/ruby32_parser.y +92 -90
- data/lib/ruby3_parser.yy +107 -70
- data/lib/ruby_lexer.rb +2 -0
- data/lib/ruby_lexer.rex.rb +1 -1
- data/lib/ruby_lexer_strings.rb +2 -2
- data/lib/ruby_parser.yy +0 -10
- data/lib/ruby_parser_extras.rb +7 -8
- data/test/test_ruby_parser.rb +31 -1
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
data/lib/ruby31_parser.y
CHANGED
@@ -96,9 +96,9 @@ rule
|
|
96
96
|
result = iter
|
97
97
|
}
|
98
98
|
|
99
|
-
begin_block: tLCURLY
|
99
|
+
begin_block: tLCURLY top_compstmt tRCURLY
|
100
100
|
{
|
101
|
-
_, line, stmt, _ = val
|
101
|
+
(_, line), stmt, _ = val
|
102
102
|
result = new_iter s(:preexe).line(line), 0, stmt
|
103
103
|
}
|
104
104
|
|
@@ -621,7 +621,7 @@ rule
|
|
621
621
|
}
|
622
622
|
| tSTAR
|
623
623
|
{
|
624
|
-
l =
|
624
|
+
(_, l), = val
|
625
625
|
result = s(:masgn, s(:array, s(:splat).line(l)).line(l)).line l
|
626
626
|
}
|
627
627
|
| tSTAR tCOMMA mlhs_post
|
@@ -1251,7 +1251,7 @@ rule
|
|
1251
1251
|
args: arg_value
|
1252
1252
|
{
|
1253
1253
|
arg, = val
|
1254
|
-
lineno = arg.line
|
1254
|
+
lineno = arg.line
|
1255
1255
|
|
1256
1256
|
result = s(:array, arg).line lineno
|
1257
1257
|
}
|
@@ -1267,9 +1267,7 @@ rule
|
|
1267
1267
|
}
|
1268
1268
|
| args tCOMMA tSTAR arg_value
|
1269
1269
|
{
|
1270
|
-
|
1271
|
-
args, _, _, id = val
|
1272
|
-
line = lexer.lineno
|
1270
|
+
args, _, (_, line), id = val
|
1273
1271
|
result = self.list_append args, s(:splat, id).line(line)
|
1274
1272
|
}
|
1275
1273
|
|
@@ -1288,7 +1286,6 @@ rule
|
|
1288
1286
|
}
|
1289
1287
|
| args tCOMMA tSTAR arg_value
|
1290
1288
|
{
|
1291
|
-
# TODO: make all tXXXX terminals include lexer.lineno
|
1292
1289
|
arg, _, _, splat = val
|
1293
1290
|
result = self.arg_concat arg, splat
|
1294
1291
|
}
|
@@ -1317,7 +1314,6 @@ rule
|
|
1317
1314
|
| k_begin
|
1318
1315
|
{
|
1319
1316
|
lexer.cmdarg.push false
|
1320
|
-
result = self.lexer.lineno
|
1321
1317
|
}
|
1322
1318
|
bodystmt k_end
|
1323
1319
|
{
|
@@ -1327,11 +1323,10 @@ rule
|
|
1327
1323
|
| tLPAREN_ARG
|
1328
1324
|
{
|
1329
1325
|
lexer.lex_state = EXPR_ENDARG
|
1330
|
-
result = lexer.lineno
|
1331
1326
|
}
|
1332
1327
|
rparen
|
1333
1328
|
{
|
1334
|
-
_, line, _ = val
|
1329
|
+
(_, line), _, _ = val
|
1335
1330
|
result = s(:begin).line line
|
1336
1331
|
}
|
1337
1332
|
| tLPAREN_ARG
|
@@ -1347,9 +1342,8 @@ rule
|
|
1347
1342
|
}
|
1348
1343
|
| tLPAREN compstmt tRPAREN
|
1349
1344
|
{
|
1350
|
-
_, stmt, _ = val
|
1351
|
-
result = stmt
|
1352
|
-
result ||= s(:nil).line lexer.lineno
|
1345
|
+
(_, line), stmt, _ = val
|
1346
|
+
result = stmt || s(:nil).line(line)
|
1353
1347
|
result.paren = true
|
1354
1348
|
}
|
1355
1349
|
| primary_value tCOLON2 tCONSTANT
|
@@ -1362,9 +1356,9 @@ rule
|
|
1362
1356
|
{
|
1363
1357
|
result = wrap :colon3, val[1]
|
1364
1358
|
}
|
1365
|
-
| tLBRACK
|
1359
|
+
| tLBRACK aref_args rbracket
|
1366
1360
|
{
|
1367
|
-
_, line, args, (_, line_max) = val
|
1361
|
+
(_, line), args, (_, line_max) = val
|
1368
1362
|
|
1369
1363
|
result = args || s(:array)
|
1370
1364
|
result.sexp_type = :array # aref_args is :args
|
@@ -1480,9 +1474,6 @@ rule
|
|
1480
1474
|
result = new_for iter, var, body
|
1481
1475
|
}
|
1482
1476
|
| k_class
|
1483
|
-
{
|
1484
|
-
result = self.lexer.lineno
|
1485
|
-
}
|
1486
1477
|
cpath superclass
|
1487
1478
|
{
|
1488
1479
|
if (self.in_def || self.in_single > 0) then
|
@@ -1497,9 +1488,6 @@ rule
|
|
1497
1488
|
self.lexer.ignore_body_comments
|
1498
1489
|
}
|
1499
1490
|
| k_class tLSHFT
|
1500
|
-
{
|
1501
|
-
result = self.lexer.lineno
|
1502
|
-
}
|
1503
1491
|
expr
|
1504
1492
|
{
|
1505
1493
|
result = self.in_def
|
@@ -1511,16 +1499,14 @@ rule
|
|
1511
1499
|
self.in_single = 0
|
1512
1500
|
self.env.extend
|
1513
1501
|
}
|
1514
|
-
bodystmt
|
1502
|
+
bodystmt
|
1503
|
+
k_end
|
1515
1504
|
{
|
1516
1505
|
result = new_sclass val
|
1517
1506
|
self.env.unextend
|
1518
1507
|
self.lexer.ignore_body_comments
|
1519
1508
|
}
|
1520
1509
|
| k_module
|
1521
|
-
{
|
1522
|
-
result = self.lexer.lineno
|
1523
|
-
}
|
1524
1510
|
cpath
|
1525
1511
|
{
|
1526
1512
|
yyerror "module definition in method body" if
|
@@ -1662,20 +1648,33 @@ rule
|
|
1662
1648
|
}
|
1663
1649
|
|
1664
1650
|
f_marg: f_norm_arg
|
1651
|
+
{
|
1652
|
+
(sym, line), = val
|
1653
|
+
|
1654
|
+
result = s(:dummy, sym).line line
|
1655
|
+
}
|
1665
1656
|
| tLPAREN f_margs rparen
|
1666
1657
|
{
|
1667
|
-
|
1658
|
+
_, args, _ = val
|
1659
|
+
result = args
|
1668
1660
|
}
|
1669
1661
|
|
1670
1662
|
f_marg_list: f_marg
|
1671
1663
|
{
|
1672
|
-
|
1664
|
+
arg, = val
|
1665
|
+
line = arg.line
|
1673
1666
|
|
1674
|
-
|
1667
|
+
arg = arg.last if arg.sexp_type == :dummy
|
1668
|
+
|
1669
|
+
result = s(:array, arg).line line
|
1675
1670
|
}
|
1676
1671
|
| f_marg_list tCOMMA f_marg
|
1677
1672
|
{
|
1678
|
-
|
1673
|
+
args, _, arg = val
|
1674
|
+
|
1675
|
+
arg = arg.last if arg.sexp_type == :dummy
|
1676
|
+
|
1677
|
+
result = list_append args, arg
|
1679
1678
|
}
|
1680
1679
|
|
1681
1680
|
f_margs: f_marg_list
|
@@ -1718,8 +1717,8 @@ rule
|
|
1718
1717
|
}
|
1719
1718
|
| tSTAR
|
1720
1719
|
{
|
1721
|
-
|
1722
|
-
result.line
|
1720
|
+
(_, line), = val
|
1721
|
+
result = args([:*]).line line
|
1723
1722
|
}
|
1724
1723
|
|
1725
1724
|
f_any_kwrest: f_kwrest
|
@@ -1832,7 +1831,9 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
1832
1831
|
}
|
1833
1832
|
| tOROP
|
1834
1833
|
{
|
1835
|
-
|
1834
|
+
(_, line), = val
|
1835
|
+
|
1836
|
+
result = s(:args).line line
|
1836
1837
|
}
|
1837
1838
|
| tPIPE block_param opt_bv_decl tPIPE
|
1838
1839
|
{
|
@@ -1864,7 +1865,7 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
1864
1865
|
lambda: tLAMBDA
|
1865
1866
|
{
|
1866
1867
|
self.env.extend :dynamic
|
1867
|
-
result =
|
1868
|
+
result = lexer.lpar_beg
|
1868
1869
|
lexer.paren_nest += 1
|
1869
1870
|
lexer.lpar_beg = lexer.paren_nest
|
1870
1871
|
}
|
@@ -1874,7 +1875,7 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
1874
1875
|
}
|
1875
1876
|
lambda_body
|
1876
1877
|
{
|
1877
|
-
_,
|
1878
|
+
(_, line), lpar, args, _cmdarg, body = val
|
1878
1879
|
lexer.lpar_beg = lpar
|
1879
1880
|
|
1880
1881
|
lexer.cmdarg.pop
|
@@ -1998,7 +1999,8 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
1998
1999
|
}
|
1999
2000
|
| kSUPER
|
2000
2001
|
{
|
2001
|
-
|
2002
|
+
(_, line), = val
|
2003
|
+
result = s(:zsuper).line line
|
2002
2004
|
}
|
2003
2005
|
| primary_value tLBRACK2 opt_call_args rbracket
|
2004
2006
|
{
|
@@ -2008,11 +2010,11 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
2008
2010
|
brace_block: tLCURLY
|
2009
2011
|
{
|
2010
2012
|
self.env.extend :dynamic
|
2011
|
-
result = self.lexer.lineno
|
2012
2013
|
}
|
2013
|
-
brace_body
|
2014
|
+
brace_body
|
2015
|
+
tRCURLY
|
2014
2016
|
{
|
2015
|
-
_, line, body, _ = val
|
2017
|
+
(_, line), _, body, _ = val
|
2016
2018
|
|
2017
2019
|
result = body
|
2018
2020
|
result.line line
|
@@ -2022,11 +2024,11 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
2022
2024
|
| k_do
|
2023
2025
|
{
|
2024
2026
|
self.env.extend :dynamic
|
2025
|
-
result = self.lexer.lineno
|
2026
2027
|
}
|
2027
|
-
do_body
|
2028
|
+
do_body
|
2029
|
+
kEND
|
2028
2030
|
{
|
2029
|
-
_, line, body, _ = val
|
2031
|
+
(_, line), _, body, _ = val
|
2030
2032
|
|
2031
2033
|
result = body
|
2032
2034
|
result.line line
|
@@ -2084,14 +2086,13 @@ opt_block_args_tail: tCOMMA block_args_tail
|
|
2084
2086
|
}
|
2085
2087
|
|
2086
2088
|
case_body: k_when
|
2087
|
-
{
|
2088
|
-
result = self.lexer.lineno
|
2089
|
-
}
|
2090
2089
|
case_args then compstmt cases
|
2091
2090
|
{
|
2092
|
-
|
2093
|
-
|
2094
|
-
result
|
2091
|
+
(_, line), case_args, _then, body, cases = val
|
2092
|
+
|
2093
|
+
result = new_when case_args, body
|
2094
|
+
result.line line
|
2095
|
+
result << cases if cases
|
2095
2096
|
}
|
2096
2097
|
|
2097
2098
|
cases: opt_else | case_body
|
@@ -2882,7 +2883,6 @@ regexp_contents: none
|
|
2882
2883
|
lexer.brace_nest,
|
2883
2884
|
lexer.string_nest, # TODO: remove
|
2884
2885
|
lexer.lex_state,
|
2885
|
-
lexer.lineno,
|
2886
2886
|
]
|
2887
2887
|
|
2888
2888
|
lexer.cmdarg.push false
|
@@ -2897,9 +2897,9 @@ regexp_contents: none
|
|
2897
2897
|
compstmt
|
2898
2898
|
tSTRING_DEND
|
2899
2899
|
{
|
2900
|
-
_, memo, stmt, _ = val
|
2900
|
+
(_, line), memo, stmt, _ = val
|
2901
2901
|
|
2902
|
-
lex_strterm, brace_nest, string_nest, oldlex_state
|
2902
|
+
lex_strterm, brace_nest, string_nest, oldlex_state = memo
|
2903
2903
|
# TODO: heredoc_indent
|
2904
2904
|
|
2905
2905
|
lexer.lex_strterm = lex_strterm
|
@@ -2959,11 +2959,11 @@ regexp_contents: none
|
|
2959
2959
|
|
2960
2960
|
dsym: tSYMBEG string_contents tSTRING_END
|
2961
2961
|
{
|
2962
|
-
_, result, _ = val
|
2962
|
+
(_, line), result, _ = val
|
2963
2963
|
|
2964
2964
|
lexer.lex_state = EXPR_END
|
2965
2965
|
|
2966
|
-
result ||= s(:str, "").line
|
2966
|
+
result ||= s(:str, "").line line
|
2967
2967
|
|
2968
2968
|
case result.sexp_type
|
2969
2969
|
when :dstr then
|
@@ -2999,15 +2999,15 @@ regexp_contents: none
|
|
2999
2999
|
| tCONSTANT
|
3000
3000
|
| tCVAR
|
3001
3001
|
|
3002
|
-
keyword_variable: kNIL { result = s(:nil).line
|
3003
|
-
| kSELF { result = s(:self).line
|
3004
|
-
| kTRUE { result = s(:true).line
|
3005
|
-
| kFALSE { result = s(:false).line
|
3006
|
-
| k__FILE__ { result = s(:str, self.file).line
|
3007
|
-
| k__LINE__ { result = s(:lit,
|
3002
|
+
keyword_variable: kNIL { (_, line), = val; result = s(:nil).line line }
|
3003
|
+
| kSELF { (_, line), = val; result = s(:self).line line }
|
3004
|
+
| kTRUE { (_, line), = val; result = s(:true).line line }
|
3005
|
+
| kFALSE { (_, line), = val; result = s(:false).line line }
|
3006
|
+
| k__FILE__ { (_, line), = val; result = s(:str, self.file).line line }
|
3007
|
+
| k__LINE__ { (_, line), = val; result = s(:lit, line).line line }
|
3008
3008
|
| k__ENCODING__
|
3009
3009
|
{
|
3010
|
-
l =
|
3010
|
+
(_, l), = val
|
3011
3011
|
result =
|
3012
3012
|
if defined? Encoding then
|
3013
3013
|
s(:colon2, s(:const, :Encoding).line(l), :UTF_8).line l
|
@@ -3170,12 +3170,12 @@ f_opt_paren_args: f_paren_args
|
|
3170
3170
|
|
|
3171
3171
|
{
|
3172
3172
|
result = args val
|
3173
|
-
# result.line lexer.lineno
|
3174
3173
|
}
|
3175
3174
|
|
3176
3175
|
args_forward: tBDOT3
|
3177
3176
|
{
|
3178
|
-
|
3177
|
+
(_, line), = val
|
3178
|
+
result = s(:forward_args).line line
|
3179
3179
|
}
|
3180
3180
|
|
3181
3181
|
f_bad_arg: tCONSTANT
|
@@ -3313,9 +3313,10 @@ f_opt_paren_args: f_paren_args
|
|
3313
3313
|
}
|
3314
3314
|
| kwrest_mark
|
3315
3315
|
{
|
3316
|
+
(_, line), = val
|
3316
3317
|
id = :"**"
|
3317
|
-
self.env[id] = :lvar
|
3318
|
-
result = [id,
|
3318
|
+
self.env[id] = :lvar
|
3319
|
+
result = [id, line]
|
3319
3320
|
}
|
3320
3321
|
|
3321
3322
|
f_opt: f_arg_asgn
|
@@ -3373,9 +3374,10 @@ f_opt_paren_args: f_paren_args
|
|
3373
3374
|
}
|
3374
3375
|
| restarg_mark
|
3375
3376
|
{
|
3377
|
+
(_, line), = val
|
3376
3378
|
name = :"*"
|
3377
3379
|
self.env[name] = :lvar
|
3378
|
-
result = [name,
|
3380
|
+
result = [name, line]
|
3379
3381
|
}
|
3380
3382
|
|
3381
3383
|
blkarg_mark: tAMPER2 | tAMPER
|
@@ -3480,11 +3482,10 @@ f_opt_paren_args: f_paren_args
|
|
3480
3482
|
opt_terms: | terms
|
3481
3483
|
opt_nl: | tNL
|
3482
3484
|
rparen: opt_nl tRPAREN
|
3483
|
-
|
3484
|
-
|
3485
|
-
|
3486
|
-
|
3487
|
-
# }
|
3485
|
+
{
|
3486
|
+
_, close = val # TODO: include lineno in close?
|
3487
|
+
result = [close, lexer.lineno]
|
3488
|
+
}
|
3488
3489
|
rbracket: opt_nl tRBRACK
|
3489
3490
|
{
|
3490
3491
|
_, close = val
|