c_lexer 2.5.3.0.0 → 2.6.0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -3
- data/Gemfile.lock +4 -4
- data/README.md +6 -2
- data/c_lexer.gemspec +2 -2
- data/ext/lexer/lexer.c +841 -933
- data/ext/lexer/lexer.rl +7 -9
- data/ext/lexer/literal/literal.h +1 -0
- data/ext/lexer/literal/methods.h +20 -0
- data/lib/c_lexer/version.rb +1 -1
- data/lib/c_lexer.rb +10 -0
- metadata +9 -10
data/ext/lexer/lexer.c
CHANGED
@@ -10603,83 +10603,83 @@ _eof_trans:
|
|
10603
10603
|
}
|
10604
10604
|
break;
|
10605
10605
|
case 59:
|
10606
|
-
#line
|
10606
|
+
#line 1542 "ext/lexer/lexer.rl"
|
10607
10607
|
{ sharp_s = p - 1; }
|
10608
10608
|
break;
|
10609
10609
|
case 63:
|
10610
|
-
#line
|
10610
|
+
#line 1543 "ext/lexer/lexer.rl"
|
10611
10611
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
10612
10612
|
break;
|
10613
10613
|
case 292:
|
10614
|
-
#line
|
10614
|
+
#line 1561 "ext/lexer/lexer.rl"
|
10615
10615
|
{ tm = p; }
|
10616
10616
|
break;
|
10617
10617
|
case 36:
|
10618
|
-
#line
|
10618
|
+
#line 1764 "ext/lexer/lexer.rl"
|
10619
10619
|
{ tm = p; }
|
10620
10620
|
break;
|
10621
10621
|
case 38:
|
10622
|
-
#line
|
10622
|
+
#line 1775 "ext/lexer/lexer.rl"
|
10623
10623
|
{ tm = p; }
|
10624
10624
|
break;
|
10625
10625
|
case 40:
|
10626
|
-
#line
|
10626
|
+
#line 1792 "ext/lexer/lexer.rl"
|
10627
10627
|
{ tm = p; }
|
10628
10628
|
break;
|
10629
10629
|
case 69:
|
10630
|
-
#line
|
10630
|
+
#line 1923 "ext/lexer/lexer.rl"
|
10631
10631
|
{ heredoc_e = p; }
|
10632
10632
|
break;
|
10633
10633
|
case 334:
|
10634
|
-
#line
|
10634
|
+
#line 2018 "ext/lexer/lexer.rl"
|
10635
10635
|
{ lexer->escape = Qnil; }
|
10636
10636
|
break;
|
10637
10637
|
case 363:
|
10638
|
-
#line
|
10638
|
+
#line 2075 "ext/lexer/lexer.rl"
|
10639
10639
|
{ tm = p; }
|
10640
10640
|
break;
|
10641
10641
|
case 290:
|
10642
|
-
#line
|
10642
|
+
#line 2114 "ext/lexer/lexer.rl"
|
10643
10643
|
{ ident_tok = tok(lexer, ts, te); ident_ts = ts; ident_te = te; }
|
10644
10644
|
break;
|
10645
10645
|
case 453:
|
10646
|
-
#line
|
10646
|
+
#line 2261 "ext/lexer/lexer.rl"
|
10647
10647
|
{ num_base = 16; num_digits_s = p; }
|
10648
10648
|
break;
|
10649
10649
|
case 445:
|
10650
|
-
#line
|
10650
|
+
#line 2262 "ext/lexer/lexer.rl"
|
10651
10651
|
{ num_base = 10; num_digits_s = p; }
|
10652
10652
|
break;
|
10653
10653
|
case 449:
|
10654
|
-
#line
|
10654
|
+
#line 2263 "ext/lexer/lexer.rl"
|
10655
10655
|
{ num_base = 8; num_digits_s = p; }
|
10656
10656
|
break;
|
10657
10657
|
case 441:
|
10658
|
-
#line
|
10658
|
+
#line 2264 "ext/lexer/lexer.rl"
|
10659
10659
|
{ num_base = 2; num_digits_s = p; }
|
10660
10660
|
break;
|
10661
10661
|
case 460:
|
10662
|
-
#line
|
10662
|
+
#line 2265 "ext/lexer/lexer.rl"
|
10663
10663
|
{ num_base = 10; num_digits_s = ts; }
|
10664
10664
|
break;
|
10665
10665
|
case 417:
|
10666
|
-
#line
|
10666
|
+
#line 2266 "ext/lexer/lexer.rl"
|
10667
10667
|
{ num_base = 8; num_digits_s = ts; }
|
10668
10668
|
break;
|
10669
10669
|
case 433:
|
10670
|
-
#line
|
10670
|
+
#line 2267 "ext/lexer/lexer.rl"
|
10671
10671
|
{ num_suffix_s = p; }
|
10672
10672
|
break;
|
10673
10673
|
case 426:
|
10674
|
-
#line
|
10674
|
+
#line 2334 "ext/lexer/lexer.rl"
|
10675
10675
|
{ num_suffix_s = p; }
|
10676
10676
|
break;
|
10677
10677
|
case 423:
|
10678
|
-
#line
|
10678
|
+
#line 2335 "ext/lexer/lexer.rl"
|
10679
10679
|
{ num_suffix_s = p; }
|
10680
10680
|
break;
|
10681
10681
|
case 85:
|
10682
|
-
#line
|
10682
|
+
#line 2488 "ext/lexer/lexer.rl"
|
10683
10683
|
{ tm = p; }
|
10684
10684
|
break;
|
10685
10685
|
case 7:
|
@@ -10687,7 +10687,7 @@ _eof_trans:
|
|
10687
10687
|
{te = p+1;}
|
10688
10688
|
break;
|
10689
10689
|
case 105:
|
10690
|
-
#line
|
10690
|
+
#line 1437 "ext/lexer/lexer.rl"
|
10691
10691
|
{te = p+1;{
|
10692
10692
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
10693
10693
|
literal_flush_string(current_literal);
|
@@ -10706,7 +10706,7 @@ _eof_trans:
|
|
10706
10706
|
}}
|
10707
10707
|
break;
|
10708
10708
|
case 5:
|
10709
|
-
#line
|
10709
|
+
#line 1386 "ext/lexer/lexer.rl"
|
10710
10710
|
{te = p+1;{
|
10711
10711
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
10712
10712
|
literal_flush_string(current_literal);
|
@@ -10728,7 +10728,7 @@ _eof_trans:
|
|
10728
10728
|
}}
|
10729
10729
|
break;
|
10730
10730
|
case 101:
|
10731
|
-
#line
|
10731
|
+
#line 1335 "ext/lexer/lexer.rl"
|
10732
10732
|
{te = p+1;{
|
10733
10733
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
10734
10734
|
long str_s = current_literal->str_s;
|
@@ -10803,7 +10803,7 @@ _eof_trans:
|
|
10803
10803
|
}}
|
10804
10804
|
break;
|
10805
10805
|
case 106:
|
10806
|
-
#line
|
10806
|
+
#line 1386 "ext/lexer/lexer.rl"
|
10807
10807
|
{te = p;p--;{
|
10808
10808
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
10809
10809
|
literal_flush_string(current_literal);
|
@@ -10825,7 +10825,7 @@ _eof_trans:
|
|
10825
10825
|
}}
|
10826
10826
|
break;
|
10827
10827
|
case 103:
|
10828
|
-
#line
|
10828
|
+
#line 1379 "ext/lexer/lexer.rl"
|
10829
10829
|
{te = p;p--;{
|
10830
10830
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
10831
10831
|
literal_extend_space(current_literal, ts, te);
|
@@ -10873,18 +10873,16 @@ _eof_trans:
|
|
10873
10873
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
10874
10874
|
}
|
10875
10875
|
} else {
|
10876
|
-
if (
|
10876
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
10877
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
10878
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
10879
|
+
VALUE token = tok(lexer, ts, te);
|
10880
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
10881
|
+
literal_extend_string(current_literal, token, ts, te);
|
10882
|
+
} else if (literal_regexp_p(current_literal)) {
|
10877
10883
|
VALUE token = tok(lexer, ts, te);
|
10878
10884
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
10879
10885
|
literal_extend_string(current_literal, token, ts, te);
|
10880
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
10881
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
10882
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
10883
|
-
} else {
|
10884
|
-
VALUE token = tok(lexer, ts, te);
|
10885
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
10886
|
-
literal_extend_string(current_literal, token, ts, te);
|
10887
|
-
}
|
10888
10886
|
} else if (lexer->escape == Qnil) {
|
10889
10887
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
10890
10888
|
} else {
|
@@ -10923,7 +10921,7 @@ _eof_trans:
|
|
10923
10921
|
}}
|
10924
10922
|
break;
|
10925
10923
|
case 133:
|
10926
|
-
#line
|
10924
|
+
#line 1437 "ext/lexer/lexer.rl"
|
10927
10925
|
{te = p+1;{
|
10928
10926
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
10929
10927
|
literal_flush_string(current_literal);
|
@@ -10942,7 +10940,7 @@ _eof_trans:
|
|
10942
10940
|
}}
|
10943
10941
|
break;
|
10944
10942
|
case 10:
|
10945
|
-
#line
|
10943
|
+
#line 1386 "ext/lexer/lexer.rl"
|
10946
10944
|
{te = p+1;{
|
10947
10945
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
10948
10946
|
literal_flush_string(current_literal);
|
@@ -10964,7 +10962,7 @@ _eof_trans:
|
|
10964
10962
|
}}
|
10965
10963
|
break;
|
10966
10964
|
case 130:
|
10967
|
-
#line
|
10965
|
+
#line 1335 "ext/lexer/lexer.rl"
|
10968
10966
|
{te = p+1;{
|
10969
10967
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
10970
10968
|
long str_s = current_literal->str_s;
|
@@ -11039,7 +11037,7 @@ _eof_trans:
|
|
11039
11037
|
}}
|
11040
11038
|
break;
|
11041
11039
|
case 134:
|
11042
|
-
#line
|
11040
|
+
#line 1386 "ext/lexer/lexer.rl"
|
11043
11041
|
{te = p;p--;{
|
11044
11042
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11045
11043
|
literal_flush_string(current_literal);
|
@@ -11102,18 +11100,16 @@ _eof_trans:
|
|
11102
11100
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
11103
11101
|
}
|
11104
11102
|
} else {
|
11105
|
-
if (
|
11103
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
11104
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
11105
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
11106
|
+
VALUE token = tok(lexer, ts, te);
|
11107
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
11108
|
+
literal_extend_string(current_literal, token, ts, te);
|
11109
|
+
} else if (literal_regexp_p(current_literal)) {
|
11106
11110
|
VALUE token = tok(lexer, ts, te);
|
11107
11111
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
11108
11112
|
literal_extend_string(current_literal, token, ts, te);
|
11109
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
11110
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
11111
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
11112
|
-
} else {
|
11113
|
-
VALUE token = tok(lexer, ts, te);
|
11114
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
11115
|
-
literal_extend_string(current_literal, token, ts, te);
|
11116
|
-
}
|
11117
11113
|
} else if (lexer->escape == Qnil) {
|
11118
11114
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
11119
11115
|
} else {
|
@@ -11152,7 +11148,7 @@ _eof_trans:
|
|
11152
11148
|
}}
|
11153
11149
|
break;
|
11154
11150
|
case 157:
|
11155
|
-
#line
|
11151
|
+
#line 1335 "ext/lexer/lexer.rl"
|
11156
11152
|
{te = p+1;{
|
11157
11153
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11158
11154
|
long str_s = current_literal->str_s;
|
@@ -11227,7 +11223,7 @@ _eof_trans:
|
|
11227
11223
|
}}
|
11228
11224
|
break;
|
11229
11225
|
case 159:
|
11230
|
-
#line
|
11226
|
+
#line 1379 "ext/lexer/lexer.rl"
|
11231
11227
|
{te = p;p--;{
|
11232
11228
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11233
11229
|
literal_extend_space(current_literal, ts, te);
|
@@ -11263,7 +11259,7 @@ _eof_trans:
|
|
11263
11259
|
}}
|
11264
11260
|
break;
|
11265
11261
|
case 163:
|
11266
|
-
#line
|
11262
|
+
#line 1335 "ext/lexer/lexer.rl"
|
11267
11263
|
{te = p+1;{
|
11268
11264
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11269
11265
|
long str_s = current_literal->str_s;
|
@@ -11367,7 +11363,7 @@ _eof_trans:
|
|
11367
11363
|
}}
|
11368
11364
|
break;
|
11369
11365
|
case 172:
|
11370
|
-
#line
|
11366
|
+
#line 1437 "ext/lexer/lexer.rl"
|
11371
11367
|
{te = p+1;{
|
11372
11368
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11373
11369
|
literal_flush_string(current_literal);
|
@@ -11386,7 +11382,7 @@ _eof_trans:
|
|
11386
11382
|
}}
|
11387
11383
|
break;
|
11388
11384
|
case 13:
|
11389
|
-
#line
|
11385
|
+
#line 1386 "ext/lexer/lexer.rl"
|
11390
11386
|
{te = p+1;{
|
11391
11387
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11392
11388
|
literal_flush_string(current_literal);
|
@@ -11408,7 +11404,7 @@ _eof_trans:
|
|
11408
11404
|
}}
|
11409
11405
|
break;
|
11410
11406
|
case 169:
|
11411
|
-
#line
|
11407
|
+
#line 1335 "ext/lexer/lexer.rl"
|
11412
11408
|
{te = p+1;{
|
11413
11409
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11414
11410
|
long str_s = current_literal->str_s;
|
@@ -11483,7 +11479,7 @@ _eof_trans:
|
|
11483
11479
|
}}
|
11484
11480
|
break;
|
11485
11481
|
case 173:
|
11486
|
-
#line
|
11482
|
+
#line 1386 "ext/lexer/lexer.rl"
|
11487
11483
|
{te = p;p--;{
|
11488
11484
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11489
11485
|
literal_flush_string(current_literal);
|
@@ -11563,7 +11559,7 @@ _eof_trans:
|
|
11563
11559
|
}}
|
11564
11560
|
break;
|
11565
11561
|
case 175:
|
11566
|
-
#line
|
11562
|
+
#line 1335 "ext/lexer/lexer.rl"
|
11567
11563
|
{te = p+1;{
|
11568
11564
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11569
11565
|
long str_s = current_literal->str_s;
|
@@ -11638,7 +11634,7 @@ _eof_trans:
|
|
11638
11634
|
}}
|
11639
11635
|
break;
|
11640
11636
|
case 182:
|
11641
|
-
#line
|
11637
|
+
#line 1437 "ext/lexer/lexer.rl"
|
11642
11638
|
{te = p+1;{
|
11643
11639
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11644
11640
|
literal_flush_string(current_literal);
|
@@ -11657,7 +11653,7 @@ _eof_trans:
|
|
11657
11653
|
}}
|
11658
11654
|
break;
|
11659
11655
|
case 15:
|
11660
|
-
#line
|
11656
|
+
#line 1386 "ext/lexer/lexer.rl"
|
11661
11657
|
{te = p+1;{
|
11662
11658
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11663
11659
|
literal_flush_string(current_literal);
|
@@ -11679,7 +11675,7 @@ _eof_trans:
|
|
11679
11675
|
}}
|
11680
11676
|
break;
|
11681
11677
|
case 178:
|
11682
|
-
#line
|
11678
|
+
#line 1335 "ext/lexer/lexer.rl"
|
11683
11679
|
{te = p+1;{
|
11684
11680
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11685
11681
|
long str_s = current_literal->str_s;
|
@@ -11754,7 +11750,7 @@ _eof_trans:
|
|
11754
11750
|
}}
|
11755
11751
|
break;
|
11756
11752
|
case 183:
|
11757
|
-
#line
|
11753
|
+
#line 1386 "ext/lexer/lexer.rl"
|
11758
11754
|
{te = p;p--;{
|
11759
11755
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11760
11756
|
literal_flush_string(current_literal);
|
@@ -11776,7 +11772,7 @@ _eof_trans:
|
|
11776
11772
|
}}
|
11777
11773
|
break;
|
11778
11774
|
case 180:
|
11779
|
-
#line
|
11775
|
+
#line 1379 "ext/lexer/lexer.rl"
|
11780
11776
|
{te = p;p--;{
|
11781
11777
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11782
11778
|
literal_extend_space(current_literal, ts, te);
|
@@ -11841,7 +11837,7 @@ _eof_trans:
|
|
11841
11837
|
}}
|
11842
11838
|
break;
|
11843
11839
|
case 185:
|
11844
|
-
#line
|
11840
|
+
#line 1335 "ext/lexer/lexer.rl"
|
11845
11841
|
{te = p+1;{
|
11846
11842
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11847
11843
|
long str_s = current_literal->str_s;
|
@@ -11916,14 +11912,14 @@ _eof_trans:
|
|
11916
11912
|
}}
|
11917
11913
|
break;
|
11918
11914
|
case 187:
|
11919
|
-
#line
|
11915
|
+
#line 1379 "ext/lexer/lexer.rl"
|
11920
11916
|
{te = p;p--;{
|
11921
11917
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
11922
11918
|
literal_extend_space(current_literal, ts, te);
|
11923
11919
|
}}
|
11924
11920
|
break;
|
11925
11921
|
case 188:
|
11926
|
-
#line
|
11922
|
+
#line 1529 "ext/lexer/lexer.rl"
|
11927
11923
|
{te = p+1;{
|
11928
11924
|
emit_token(lexer, tREGEXP_OPT, tok(lexer, ts, te - 1), ts, te - 1);
|
11929
11925
|
p--;
|
@@ -11931,7 +11927,7 @@ _eof_trans:
|
|
11931
11927
|
}}
|
11932
11928
|
break;
|
11933
11929
|
case 189:
|
11934
|
-
#line
|
11930
|
+
#line 1513 "ext/lexer/lexer.rl"
|
11935
11931
|
{te = p;p--;{
|
11936
11932
|
VALUE unknown_options = find_unknown_options(tok(lexer, ts, te));
|
11937
11933
|
|
@@ -11948,7 +11944,7 @@ _eof_trans:
|
|
11948
11944
|
}}
|
11949
11945
|
break;
|
11950
11946
|
case 16:
|
11951
|
-
#line
|
11947
|
+
#line 1610 "ext/lexer/lexer.rl"
|
11952
11948
|
{te = p+1;{
|
11953
11949
|
VALUE str = tok(lexer, ts, te);
|
11954
11950
|
|
@@ -11965,7 +11961,7 @@ _eof_trans:
|
|
11965
11961
|
}}
|
11966
11962
|
break;
|
11967
11963
|
case 190:
|
11968
|
-
#line
|
11964
|
+
#line 1610 "ext/lexer/lexer.rl"
|
11969
11965
|
{te = p;p--;{
|
11970
11966
|
VALUE str = tok(lexer, ts, te);
|
11971
11967
|
|
@@ -11982,7 +11978,7 @@ _eof_trans:
|
|
11982
11978
|
}}
|
11983
11979
|
break;
|
11984
11980
|
case 192:
|
11985
|
-
#line
|
11981
|
+
#line 1625 "ext/lexer/lexer.rl"
|
11986
11982
|
{te = p;p--;{
|
11987
11983
|
VALUE str = tok(lexer, ts, te);
|
11988
11984
|
|
@@ -11997,7 +11993,7 @@ _eof_trans:
|
|
11997
11993
|
}}
|
11998
11994
|
break;
|
11999
11995
|
case 191:
|
12000
|
-
#line
|
11996
|
+
#line 1638 "ext/lexer/lexer.rl"
|
12001
11997
|
{te = p;p--;{
|
12002
11998
|
VALUE str = tok(lexer, ts, te);
|
12003
11999
|
|
@@ -12012,16 +12008,16 @@ _eof_trans:
|
|
12012
12008
|
}}
|
12013
12009
|
break;
|
12014
12010
|
case 213:
|
12015
|
-
#line
|
12011
|
+
#line 1654 "ext/lexer/lexer.rl"
|
12016
12012
|
{te = p+1;{ emit_table_KEYWORDS_BEGIN(lexer, tok(lexer, ts, te), ts, te);
|
12017
12013
|
cs = 439; {p++; goto _out; } }}
|
12018
12014
|
break;
|
12019
12015
|
case 199:
|
12020
|
-
#line
|
12016
|
+
#line 1659 "ext/lexer/lexer.rl"
|
12021
12017
|
{te = p+1;{ emit(tIDENTIFIER); cs = 439; {p++; goto _out; } }}
|
12022
12018
|
break;
|
12023
12019
|
case 18:
|
12024
|
-
#line
|
12020
|
+
#line 1661 "ext/lexer/lexer.rl"
|
12025
12021
|
{te = p+1;{ p = ts - 1; cs = 768; {
|
12026
12022
|
/* grow the state stack as needed */
|
12027
12023
|
if (lexer->cs_stack_top == lexer->cs_stack_size) {
|
@@ -12034,16 +12030,16 @@ _eof_trans:
|
|
12034
12030
|
{stack[top++] = cs; cs = 321;goto _again;}} }}
|
12035
12031
|
break;
|
12036
12032
|
case 196:
|
12037
|
-
#line
|
12033
|
+
#line 1666 "ext/lexer/lexer.rl"
|
12038
12034
|
{te = p+1;{ emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12039
12035
|
cs = 439; {p++; goto _out; } }}
|
12040
12036
|
break;
|
12041
12037
|
case 208:
|
12042
|
-
#line
|
12038
|
+
#line 1669 "ext/lexer/lexer.rl"
|
12043
12039
|
{te = p+1;{ p--; p--; {cs = 768;goto _again;} }}
|
12044
12040
|
break;
|
12045
12041
|
case 20:
|
12046
|
-
#line
|
12042
|
+
#line 1674 "ext/lexer/lexer.rl"
|
12047
12043
|
{te = p+1;{
|
12048
12044
|
if (lexer->version == 23) {
|
12049
12045
|
VALUE type = rb_str_substr(lexer->source, ts, te - ts - 1);
|
@@ -12059,7 +12055,7 @@ _eof_trans:
|
|
12059
12055
|
}}
|
12060
12056
|
break;
|
12061
12057
|
case 195:
|
12062
|
-
#line
|
12058
|
+
#line 1690 "ext/lexer/lexer.rl"
|
12063
12059
|
{te = p+1;{ p--; {cs = 768;goto _again;} }}
|
12064
12060
|
break;
|
12065
12061
|
case 194:
|
@@ -12067,20 +12063,20 @@ _eof_trans:
|
|
12067
12063
|
{te = p+1;{ p--; {p++; goto _out; } }}
|
12068
12064
|
break;
|
12069
12065
|
case 212:
|
12070
|
-
#line
|
12066
|
+
#line 1654 "ext/lexer/lexer.rl"
|
12071
12067
|
{te = p;p--;{ emit_table_KEYWORDS_BEGIN(lexer, tok(lexer, ts, te), ts, te);
|
12072
12068
|
cs = 439; {p++; goto _out; } }}
|
12073
12069
|
break;
|
12074
12070
|
case 209:
|
12075
|
-
#line
|
12071
|
+
#line 1657 "ext/lexer/lexer.rl"
|
12076
12072
|
{te = p;p--;{ emit(tCONSTANT); cs = 439; {p++; goto _out; } }}
|
12077
12073
|
break;
|
12078
12074
|
case 211:
|
12079
|
-
#line
|
12075
|
+
#line 1659 "ext/lexer/lexer.rl"
|
12080
12076
|
{te = p;p--;{ emit(tIDENTIFIER); cs = 439; {p++; goto _out; } }}
|
12081
12077
|
break;
|
12082
12078
|
case 206:
|
12083
|
-
#line
|
12079
|
+
#line 1661 "ext/lexer/lexer.rl"
|
12084
12080
|
{te = p;p--;{ p = ts - 1; cs = 768; {
|
12085
12081
|
/* grow the state stack as needed */
|
12086
12082
|
if (lexer->cs_stack_top == lexer->cs_stack_size) {
|
@@ -12093,29 +12089,29 @@ _eof_trans:
|
|
12093
12089
|
{stack[top++] = cs; cs = 321;goto _again;}} }}
|
12094
12090
|
break;
|
12095
12091
|
case 202:
|
12096
|
-
#line
|
12092
|
+
#line 1666 "ext/lexer/lexer.rl"
|
12097
12093
|
{te = p;p--;{ emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12098
12094
|
cs = 439; {p++; goto _out; } }}
|
12099
12095
|
break;
|
12100
12096
|
case 207:
|
12101
|
-
#line
|
12097
|
+
#line 1671 "ext/lexer/lexer.rl"
|
12102
12098
|
{te = p;p--;{ p--; {cs = 536;goto _again;} }}
|
12103
12099
|
break;
|
12104
12100
|
case 200:
|
12105
|
-
#line
|
12101
|
+
#line 1688 "ext/lexer/lexer.rl"
|
12106
12102
|
{te = p;p--;}
|
12107
12103
|
break;
|
12108
12104
|
case 205:
|
12109
|
-
#line
|
12105
|
+
#line 1690 "ext/lexer/lexer.rl"
|
12110
12106
|
{te = p;p--;{ p--; {cs = 768;goto _again;} }}
|
12111
12107
|
break;
|
12112
12108
|
case 19:
|
12113
|
-
#line
|
12109
|
+
#line 1666 "ext/lexer/lexer.rl"
|
12114
12110
|
{{p = ((te))-1;}{ emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12115
12111
|
cs = 439; {p++; goto _out; } }}
|
12116
12112
|
break;
|
12117
12113
|
case 17:
|
12118
|
-
#line
|
12114
|
+
#line 1690 "ext/lexer/lexer.rl"
|
12119
12115
|
{{p = ((te))-1;}{ p--; {cs = 768;goto _again;} }}
|
12120
12116
|
break;
|
12121
12117
|
case 198:
|
@@ -12135,14 +12131,14 @@ _eof_trans:
|
|
12135
12131
|
}
|
12136
12132
|
break;
|
12137
12133
|
case 22:
|
12138
|
-
#line
|
12134
|
+
#line 1696 "ext/lexer/lexer.rl"
|
12139
12135
|
{te = p+1;{
|
12140
12136
|
emit_token(lexer, tLABEL, tok(lexer, ts, te - 2), ts, te - 1);
|
12141
12137
|
p--; cs = 753; {p++; goto _out; }
|
12142
12138
|
}}
|
12143
12139
|
break;
|
12144
12140
|
case 215:
|
12145
|
-
#line
|
12141
|
+
#line 1703 "ext/lexer/lexer.rl"
|
12146
12142
|
{te = p+1;{ p--; {cs = 768;goto _again;} }}
|
12147
12143
|
break;
|
12148
12144
|
case 214:
|
@@ -12150,24 +12146,24 @@ _eof_trans:
|
|
12150
12146
|
{te = p+1;{ p--; {p++; goto _out; } }}
|
12151
12147
|
break;
|
12152
12148
|
case 217:
|
12153
|
-
#line
|
12149
|
+
#line 1701 "ext/lexer/lexer.rl"
|
12154
12150
|
{te = p;p--;}
|
12155
12151
|
break;
|
12156
12152
|
case 216:
|
12157
|
-
#line
|
12153
|
+
#line 1703 "ext/lexer/lexer.rl"
|
12158
12154
|
{te = p;p--;{ p--; {cs = 768;goto _again;} }}
|
12159
12155
|
break;
|
12160
12156
|
case 21:
|
12161
|
-
#line
|
12157
|
+
#line 1703 "ext/lexer/lexer.rl"
|
12162
12158
|
{{p = ((te))-1;}{ p--; {cs = 768;goto _again;} }}
|
12163
12159
|
break;
|
12164
12160
|
case 223:
|
12165
|
-
#line
|
12161
|
+
#line 1720 "ext/lexer/lexer.rl"
|
12166
12162
|
{te = p+1;{ emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12167
12163
|
cs = 467; {p++; goto _out; } }}
|
12168
12164
|
break;
|
12169
12165
|
case 222:
|
12170
|
-
#line
|
12166
|
+
#line 1726 "ext/lexer/lexer.rl"
|
12171
12167
|
{te = p+1;{ p--; {cs = 768;goto _again;} }}
|
12172
12168
|
break;
|
12173
12169
|
case 221:
|
@@ -12175,32 +12171,32 @@ _eof_trans:
|
|
12175
12171
|
{te = p+1;{ p--; {p++; goto _out; } }}
|
12176
12172
|
break;
|
12177
12173
|
case 233:
|
12178
|
-
#line
|
12174
|
+
#line 1709 "ext/lexer/lexer.rl"
|
12179
12175
|
{te = p;p--;{ emit(tCONSTANT); cs = (arg_or_cmdarg(command_state)); {p++; goto _out; } }}
|
12180
12176
|
break;
|
12181
12177
|
case 224:
|
12182
|
-
#line
|
12178
|
+
#line 1711 "ext/lexer/lexer.rl"
|
12183
12179
|
{te = p;p--;{ emit(tIDENTIFIER); cs = (arg_or_cmdarg(command_state)); {p++; goto _out; } }}
|
12184
12180
|
break;
|
12185
12181
|
case 229:
|
12186
|
-
#line
|
12182
|
+
#line 1720 "ext/lexer/lexer.rl"
|
12187
12183
|
{te = p;p--;{ emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12188
12184
|
cs = 467; {p++; goto _out; } }}
|
12189
12185
|
break;
|
12190
12186
|
case 227:
|
12191
|
-
#line
|
12187
|
+
#line 1723 "ext/lexer/lexer.rl"
|
12192
12188
|
{te = p;p--;}
|
12193
12189
|
break;
|
12194
12190
|
case 232:
|
12195
|
-
#line
|
12191
|
+
#line 1726 "ext/lexer/lexer.rl"
|
12196
12192
|
{te = p;p--;{ p--; {cs = 768;goto _again;} }}
|
12197
12193
|
break;
|
12198
12194
|
case 256:
|
12199
|
-
#line
|
12195
|
+
#line 1760 "ext/lexer/lexer.rl"
|
12200
12196
|
{te = p+1;{ p = ts - 1; {cs = 768;goto _again;} }}
|
12201
12197
|
break;
|
12202
12198
|
case 239:
|
12203
|
-
#line
|
12199
|
+
#line 1765 "ext/lexer/lexer.rl"
|
12204
12200
|
{te = p+1;{
|
12205
12201
|
if (NUM2INT(rb_ary_entry(lexer->source_pts, tm)) == '/') {
|
12206
12202
|
diagnostic(lexer, warning, ambiguous_literal, Qnil,
|
@@ -12212,26 +12208,26 @@ _eof_trans:
|
|
12212
12208
|
}}
|
12213
12209
|
break;
|
12214
12210
|
case 245:
|
12215
|
-
#line
|
12211
|
+
#line 1786 "ext/lexer/lexer.rl"
|
12216
12212
|
{te = p+1;{ p--; p--; {cs = 536;goto _again;} }}
|
12217
12213
|
break;
|
12218
12214
|
case 24:
|
12219
|
-
#line
|
12215
|
+
#line 1790 "ext/lexer/lexer.rl"
|
12220
12216
|
{te = p+1;{ p = ts - 1; {cs = 536;goto _again;} }}
|
12221
12217
|
break;
|
12222
12218
|
case 247:
|
12223
|
-
#line
|
12219
|
+
#line 1792 "ext/lexer/lexer.rl"
|
12224
12220
|
{te = p+1;{ p = tm - 1; {cs = 768;goto _again;} }}
|
12225
12221
|
break;
|
12226
12222
|
case 39:
|
12227
|
-
#line
|
12223
|
+
#line 1799 "ext/lexer/lexer.rl"
|
12228
12224
|
{te = p+1;{
|
12229
12225
|
p = ts - 1;
|
12230
12226
|
{cs = 768;goto _again;}
|
12231
12227
|
}}
|
12232
12228
|
break;
|
12233
12229
|
case 234:
|
12234
|
-
#line
|
12230
|
+
#line 1810 "ext/lexer/lexer.rl"
|
12235
12231
|
{te = p+1;{ p--; {cs = 536;goto _again;} }}
|
12236
12232
|
break;
|
12237
12233
|
case 235:
|
@@ -12239,11 +12235,11 @@ _eof_trans:
|
|
12239
12235
|
{te = p+1;{ p--; {p++; goto _out; } }}
|
12240
12236
|
break;
|
12241
12237
|
case 246:
|
12242
|
-
#line
|
12238
|
+
#line 1762 "ext/lexer/lexer.rl"
|
12243
12239
|
{te = p;p--;{ p--; {cs = 536;goto _again;} }}
|
12244
12240
|
break;
|
12245
12241
|
case 242:
|
12246
|
-
#line
|
12242
|
+
#line 1775 "ext/lexer/lexer.rl"
|
12247
12243
|
{te = p;p--;{
|
12248
12244
|
VALUE hash = rb_hash_new();
|
12249
12245
|
VALUE str = tok(lexer, tm, te);
|
@@ -12256,30 +12252,30 @@ _eof_trans:
|
|
12256
12252
|
}}
|
12257
12253
|
break;
|
12258
12254
|
case 244:
|
12259
|
-
#line
|
12255
|
+
#line 1788 "ext/lexer/lexer.rl"
|
12260
12256
|
{te = p;p--;{ p--; {cs = 536;goto _again;} }}
|
12261
12257
|
break;
|
12262
12258
|
case 238:
|
12263
|
-
#line
|
12259
|
+
#line 1799 "ext/lexer/lexer.rl"
|
12264
12260
|
{te = p;p--;{
|
12265
12261
|
p = ts - 1;
|
12266
12262
|
{cs = 768;goto _again;}
|
12267
12263
|
}}
|
12268
12264
|
break;
|
12269
12265
|
case 237:
|
12270
|
-
#line
|
12266
|
+
#line 1804 "ext/lexer/lexer.rl"
|
12271
12267
|
{te = p;p--;}
|
12272
12268
|
break;
|
12273
12269
|
case 255:
|
12274
|
-
#line
|
12270
|
+
#line 1810 "ext/lexer/lexer.rl"
|
12275
12271
|
{te = p;p--;{ p--; {cs = 536;goto _again;} }}
|
12276
12272
|
break;
|
12277
12273
|
case 25:
|
12278
|
-
#line
|
12274
|
+
#line 1804 "ext/lexer/lexer.rl"
|
12279
12275
|
{{p = ((te))-1;}}
|
12280
12276
|
break;
|
12281
12277
|
case 41:
|
12282
|
-
#line
|
12278
|
+
#line 1810 "ext/lexer/lexer.rl"
|
12283
12279
|
{{p = ((te))-1;}{ p--; {cs = 536;goto _again;} }}
|
12284
12280
|
break;
|
12285
12281
|
case 23:
|
@@ -12321,7 +12317,7 @@ _eof_trans:
|
|
12321
12317
|
}
|
12322
12318
|
break;
|
12323
12319
|
case 43:
|
12324
|
-
#line
|
12320
|
+
#line 1839 "ext/lexer/lexer.rl"
|
12325
12321
|
{te = p+1;{ p = ts - 1;
|
12326
12322
|
{cs = 467;goto _again;} }}
|
12327
12323
|
break;
|
@@ -12330,12 +12326,12 @@ _eof_trans:
|
|
12330
12326
|
{te = p+1;{ p--; {p++; goto _out; } }}
|
12331
12327
|
break;
|
12332
12328
|
case 261:
|
12333
|
-
#line
|
12329
|
+
#line 1839 "ext/lexer/lexer.rl"
|
12334
12330
|
{te = p;p--;{ p = ts - 1;
|
12335
12331
|
{cs = 467;goto _again;} }}
|
12336
12332
|
break;
|
12337
12333
|
case 44:
|
12338
|
-
#line
|
12334
|
+
#line 1839 "ext/lexer/lexer.rl"
|
12339
12335
|
{{p = ((te))-1;}{ p = ts - 1;
|
12340
12336
|
{cs = 467;goto _again;} }}
|
12341
12337
|
break;
|
@@ -12360,11 +12356,11 @@ _eof_trans:
|
|
12360
12356
|
}
|
12361
12357
|
break;
|
12362
12358
|
case 271:
|
12363
|
-
#line
|
12359
|
+
#line 1857 "ext/lexer/lexer.rl"
|
12364
12360
|
{te = p+1;{ emit_do(lexer, 1, ts, te); cs = 760; {p++; goto _out; } }}
|
12365
12361
|
break;
|
12366
12362
|
case 264:
|
12367
|
-
#line
|
12363
|
+
#line 1862 "ext/lexer/lexer.rl"
|
12368
12364
|
{te = p+1;{ p--; {cs = 768;goto _again;} }}
|
12369
12365
|
break;
|
12370
12366
|
case 265:
|
@@ -12372,15 +12368,15 @@ _eof_trans:
|
|
12372
12368
|
{te = p+1;{ p--; {p++; goto _out; } }}
|
12373
12369
|
break;
|
12374
12370
|
case 266:
|
12375
|
-
#line
|
12371
|
+
#line 1859 "ext/lexer/lexer.rl"
|
12376
12372
|
{te = p;p--;}
|
12377
12373
|
break;
|
12378
12374
|
case 269:
|
12379
|
-
#line
|
12375
|
+
#line 1862 "ext/lexer/lexer.rl"
|
12380
12376
|
{te = p;p--;{ p--; {cs = 768;goto _again;} }}
|
12381
12377
|
break;
|
12382
12378
|
case 275:
|
12383
|
-
#line
|
12379
|
+
#line 1878 "ext/lexer/lexer.rl"
|
12384
12380
|
{te = p+1;{ p--; {cs = 536;goto _again;} }}
|
12385
12381
|
break;
|
12386
12382
|
case 274:
|
@@ -12388,15 +12384,15 @@ _eof_trans:
|
|
12388
12384
|
{te = p+1;{ p--; {p++; goto _out; } }}
|
12389
12385
|
break;
|
12390
12386
|
case 283:
|
12391
|
-
#line
|
12387
|
+
#line 1872 "ext/lexer/lexer.rl"
|
12392
12388
|
{te = p;p--;{ p = ts - 1; {cs = 536;goto _again;} }}
|
12393
12389
|
break;
|
12394
12390
|
case 277:
|
12395
|
-
#line
|
12391
|
+
#line 1874 "ext/lexer/lexer.rl"
|
12396
12392
|
{te = p;p--;}
|
12397
12393
|
break;
|
12398
12394
|
case 281:
|
12399
|
-
#line
|
12395
|
+
#line 1878 "ext/lexer/lexer.rl"
|
12400
12396
|
{te = p;p--;{ p--; {cs = 536;goto _again;} }}
|
12401
12397
|
break;
|
12402
12398
|
case 276:
|
@@ -12413,21 +12409,21 @@ _eof_trans:
|
|
12413
12409
|
}
|
12414
12410
|
break;
|
12415
12411
|
case 56:
|
12416
|
-
#line
|
12412
|
+
#line 1884 "ext/lexer/lexer.rl"
|
12417
12413
|
{te = p+1;{
|
12418
12414
|
emit_token(lexer, tUNARY_NUM, tok(lexer, ts, ts + 1), ts, ts + 1);
|
12419
12415
|
p--; cs = 768; {p++; goto _out; }
|
12420
12416
|
}}
|
12421
12417
|
break;
|
12422
12418
|
case 314:
|
12423
|
-
#line
|
12419
|
+
#line 1891 "ext/lexer/lexer.rl"
|
12424
12420
|
{te = p+1;{
|
12425
12421
|
VALUE delimiter = rb_str_substr(lexer->source, ts, 1);
|
12426
12422
|
p--; {cs = (push_literal(lexer, delimiter, delimiter, ts, 0, 0, 0, 0)); goto _again;}
|
12427
12423
|
}}
|
12428
12424
|
break;
|
12429
12425
|
case 308:
|
12430
|
-
#line
|
12426
|
+
#line 1896 "ext/lexer/lexer.rl"
|
12431
12427
|
{te = p+1;{
|
12432
12428
|
VALUE type = rb_str_substr(lexer->source, ts, 1);
|
12433
12429
|
VALUE delimiter = rb_str_substr(lexer->source, te - 1, 1);
|
@@ -12438,7 +12434,7 @@ _eof_trans:
|
|
12438
12434
|
}}
|
12439
12435
|
break;
|
12440
12436
|
case 54:
|
12441
|
-
#line
|
12437
|
+
#line 1905 "ext/lexer/lexer.rl"
|
12442
12438
|
{te = p+1;{
|
12443
12439
|
VALUE type = rb_str_substr(lexer->source, ts, te - ts - 1);
|
12444
12440
|
VALUE delimiter = rb_str_substr(lexer->source, te - 1, 1);
|
@@ -12449,7 +12445,7 @@ _eof_trans:
|
|
12449
12445
|
}}
|
12450
12446
|
break;
|
12451
12447
|
case 327:
|
12452
|
-
#line
|
12448
|
+
#line 1987 "ext/lexer/lexer.rl"
|
12453
12449
|
{te = p+1;{
|
12454
12450
|
p--; p--;
|
12455
12451
|
emit_token(lexer, tSYMBEG, tok(lexer, ts, ts + 1), ts, ts + 1);
|
@@ -12457,7 +12453,7 @@ _eof_trans:
|
|
12457
12453
|
}}
|
12458
12454
|
break;
|
12459
12455
|
case 315:
|
12460
|
-
#line
|
12456
|
+
#line 1993 "ext/lexer/lexer.rl"
|
12461
12457
|
{te = p+1;{ /* ' */
|
12462
12458
|
VALUE type = tok(lexer, ts, te);
|
12463
12459
|
VALUE delimiter = tok(lexer, te - 1, te);
|
@@ -12465,21 +12461,21 @@ _eof_trans:
|
|
12465
12461
|
}}
|
12466
12462
|
break;
|
12467
12463
|
case 326:
|
12468
|
-
#line
|
12464
|
+
#line 2000 "ext/lexer/lexer.rl"
|
12469
12465
|
{te = p+1;{
|
12470
12466
|
emit_token(lexer, tSYMBOL, tok(lexer, ts + 1, ts + 2), ts, te);
|
12471
12467
|
cs = 768; {p++; goto _out; }
|
12472
12468
|
}}
|
12473
12469
|
break;
|
12474
12470
|
case 68:
|
12475
|
-
#line
|
12471
|
+
#line 2012 "ext/lexer/lexer.rl"
|
12476
12472
|
{te = p+1;{
|
12477
12473
|
emit_token(lexer, tSYMBOL, tok(lexer, ts + 1, te), ts, te);
|
12478
12474
|
cs = 768; {p++; goto _out; }
|
12479
12475
|
}}
|
12480
12476
|
break;
|
12481
12477
|
case 331:
|
12482
|
-
#line
|
12478
|
+
#line 2032 "ext/lexer/lexer.rl"
|
12483
12479
|
{te = p+1;{
|
12484
12480
|
VALUE escape = escape_char(rb_str_subseq(lexer->source, ts + 1, 1));
|
12485
12481
|
VALUE hash = rb_hash_new();
|
@@ -12492,19 +12488,19 @@ _eof_trans:
|
|
12492
12488
|
}}
|
12493
12489
|
break;
|
12494
12490
|
case 330:
|
12495
|
-
#line
|
12491
|
+
#line 2043 "ext/lexer/lexer.rl"
|
12496
12492
|
{te = p+1;{
|
12497
12493
|
diagnostic(lexer, fatal, incomplete_escape, Qnil,
|
12498
12494
|
range(lexer, ts, ts + 1), empty_array);
|
12499
12495
|
}}
|
12500
12496
|
break;
|
12501
12497
|
case 316:
|
12502
|
-
#line
|
12498
|
+
#line 2072 "ext/lexer/lexer.rl"
|
12503
12499
|
{te = p+1;{ emit_table_PUNCTUATION_BEGIN(lexer, tok(lexer, ts, te), ts, te);
|
12504
12500
|
{p++; goto _out; } }}
|
12505
12501
|
break;
|
12506
12502
|
case 51:
|
12507
|
-
#line
|
12503
|
+
#line 2086 "ext/lexer/lexer.rl"
|
12508
12504
|
{te = p+1;{
|
12509
12505
|
p--;
|
12510
12506
|
|
@@ -12529,7 +12525,7 @@ _eof_trans:
|
|
12529
12525
|
}}
|
12530
12526
|
break;
|
12531
12527
|
case 48:
|
12532
|
-
#line
|
12528
|
+
#line 2116 "ext/lexer/lexer.rl"
|
12533
12529
|
{te = p+1;{
|
12534
12530
|
emit_token(lexer, tIDENTIFIER, ident_tok, ident_ts, ident_te);
|
12535
12531
|
p = ident_te - 1;
|
@@ -12544,7 +12540,7 @@ _eof_trans:
|
|
12544
12540
|
}}
|
12545
12541
|
break;
|
12546
12542
|
case 302:
|
12547
|
-
#line
|
12543
|
+
#line 2131 "ext/lexer/lexer.rl"
|
12548
12544
|
{te = p+1;{
|
12549
12545
|
p = ts - 1;
|
12550
12546
|
lexer->cs_before_block_comment = lexer->cs;
|
@@ -12552,7 +12548,7 @@ _eof_trans:
|
|
12552
12548
|
}}
|
12553
12549
|
break;
|
12554
12550
|
case 55:
|
12555
|
-
#line
|
12551
|
+
#line 2141 "ext/lexer/lexer.rl"
|
12556
12552
|
{te = p+1;{ p = ts - 1; {cs = 768;goto _again;} }}
|
12557
12553
|
break;
|
12558
12554
|
case 286:
|
@@ -12560,18 +12556,18 @@ _eof_trans:
|
|
12560
12556
|
{te = p+1;{ p--; {p++; goto _out; } }}
|
12561
12557
|
break;
|
12562
12558
|
case 313:
|
12563
|
-
#line
|
12559
|
+
#line 1884 "ext/lexer/lexer.rl"
|
12564
12560
|
{te = p;p--;{
|
12565
12561
|
emit_token(lexer, tUNARY_NUM, tok(lexer, ts, ts + 1), ts, ts + 1);
|
12566
12562
|
p--; cs = 768; {p++; goto _out; }
|
12567
12563
|
}}
|
12568
12564
|
break;
|
12569
12565
|
case 312:
|
12570
|
-
#line
|
12566
|
+
#line 1889 "ext/lexer/lexer.rl"
|
12571
12567
|
{te = p;p--;{ emit(tSTAR); {p++; goto _out; } }}
|
12572
12568
|
break;
|
12573
12569
|
case 309:
|
12574
|
-
#line
|
12570
|
+
#line 1905 "ext/lexer/lexer.rl"
|
12575
12571
|
{te = p;p--;{
|
12576
12572
|
VALUE type = rb_str_substr(lexer->source, ts, te - ts - 1);
|
12577
12573
|
VALUE delimiter = rb_str_substr(lexer->source, te - 1, 1);
|
@@ -12582,37 +12578,37 @@ _eof_trans:
|
|
12582
12578
|
}}
|
12583
12579
|
break;
|
12584
12580
|
case 307:
|
12585
|
-
#line
|
12581
|
+
#line 1914 "ext/lexer/lexer.rl"
|
12586
12582
|
{te = p;p--;{
|
12587
12583
|
diagnostic(lexer, fatal, string_eof, Qnil,
|
12588
12584
|
range(lexer, ts, ts + 1), empty_array);
|
12589
12585
|
}}
|
12590
12586
|
break;
|
12591
12587
|
case 317:
|
12592
|
-
#line
|
12588
|
+
#line 2012 "ext/lexer/lexer.rl"
|
12593
12589
|
{te = p;p--;{
|
12594
12590
|
emit_token(lexer, tSYMBOL, tok(lexer, ts + 1, te), ts, te);
|
12595
12591
|
cs = 768; {p++; goto _out; }
|
12596
12592
|
}}
|
12597
12593
|
break;
|
12598
12594
|
case 329:
|
12599
|
-
#line
|
12595
|
+
#line 2043 "ext/lexer/lexer.rl"
|
12600
12596
|
{te = p;p--;{
|
12601
12597
|
diagnostic(lexer, fatal, incomplete_escape, Qnil,
|
12602
12598
|
range(lexer, ts, ts + 1), empty_array);
|
12603
12599
|
}}
|
12604
12600
|
break;
|
12605
12601
|
case 335:
|
12606
|
-
#line
|
12602
|
+
#line 2048 "ext/lexer/lexer.rl"
|
12607
12603
|
{te = p;p--;{ p = ts - 1; {cs = 768;goto _again;} }}
|
12608
12604
|
break;
|
12609
12605
|
case 310:
|
12610
|
-
#line
|
12606
|
+
#line 2072 "ext/lexer/lexer.rl"
|
12611
12607
|
{te = p;p--;{ emit_table_PUNCTUATION_BEGIN(lexer, tok(lexer, ts, te), ts, te);
|
12612
12608
|
{p++; goto _out; } }}
|
12613
12609
|
break;
|
12614
12610
|
case 289:
|
12615
|
-
#line
|
12611
|
+
#line 1598 "ext/lexer/lexer.rl"
|
12616
12612
|
{te = p;p--;{
|
12617
12613
|
VALUE str = tok(lexer, ts, te);
|
12618
12614
|
emit(tIDENTIFIER);
|
@@ -12625,11 +12621,11 @@ _eof_trans:
|
|
12625
12621
|
}}
|
12626
12622
|
break;
|
12627
12623
|
case 299:
|
12628
|
-
#line
|
12624
|
+
#line 2129 "ext/lexer/lexer.rl"
|
12629
12625
|
{te = p;p--;}
|
12630
12626
|
break;
|
12631
12627
|
case 301:
|
12632
|
-
#line
|
12628
|
+
#line 2131 "ext/lexer/lexer.rl"
|
12633
12629
|
{te = p;p--;{
|
12634
12630
|
p = ts - 1;
|
12635
12631
|
lexer->cs_before_block_comment = lexer->cs;
|
@@ -12637,18 +12633,18 @@ _eof_trans:
|
|
12637
12633
|
}}
|
12638
12634
|
break;
|
12639
12635
|
case 304:
|
12640
|
-
#line
|
12636
|
+
#line 2141 "ext/lexer/lexer.rl"
|
12641
12637
|
{te = p;p--;{ p = ts - 1; {cs = 768;goto _again;} }}
|
12642
12638
|
break;
|
12643
12639
|
case 53:
|
12644
|
-
#line
|
12640
|
+
#line 1914 "ext/lexer/lexer.rl"
|
12645
12641
|
{{p = ((te))-1;}{
|
12646
12642
|
diagnostic(lexer, fatal, string_eof, Qnil,
|
12647
12643
|
range(lexer, ts, ts + 1), empty_array);
|
12648
12644
|
}}
|
12649
12645
|
break;
|
12650
12646
|
case 71:
|
12651
|
-
#line
|
12647
|
+
#line 2019 "ext/lexer/lexer.rl"
|
12652
12648
|
{{p = ((te))-1;}{
|
12653
12649
|
VALUE value = lexer->escape;
|
12654
12650
|
if (value == Qnil)
|
@@ -12663,7 +12659,7 @@ _eof_trans:
|
|
12663
12659
|
}}
|
12664
12660
|
break;
|
12665
12661
|
case 47:
|
12666
|
-
#line
|
12662
|
+
#line 1598 "ext/lexer/lexer.rl"
|
12667
12663
|
{{p = ((te))-1;}{
|
12668
12664
|
VALUE str = tok(lexer, ts, te);
|
12669
12665
|
emit(tIDENTIFIER);
|
@@ -12676,11 +12672,11 @@ _eof_trans:
|
|
12676
12672
|
}}
|
12677
12673
|
break;
|
12678
12674
|
case 52:
|
12679
|
-
#line
|
12675
|
+
#line 2129 "ext/lexer/lexer.rl"
|
12680
12676
|
{{p = ((te))-1;}}
|
12681
12677
|
break;
|
12682
12678
|
case 67:
|
12683
|
-
#line
|
12679
|
+
#line 2141 "ext/lexer/lexer.rl"
|
12684
12680
|
{{p = ((te))-1;}{ p = ts - 1; {cs = 768;goto _again;} }}
|
12685
12681
|
break;
|
12686
12682
|
case 50:
|
@@ -12729,7 +12725,7 @@ _eof_trans:
|
|
12729
12725
|
}
|
12730
12726
|
break;
|
12731
12727
|
case 365:
|
12732
|
-
#line
|
12728
|
+
#line 2157 "ext/lexer/lexer.rl"
|
12733
12729
|
{te = p+1;{ p--; {cs = 536;goto _again;} }}
|
12734
12730
|
break;
|
12735
12731
|
case 366:
|
@@ -12737,26 +12733,26 @@ _eof_trans:
|
|
12737
12733
|
{te = p+1;{ p--; {p++; goto _out; } }}
|
12738
12734
|
break;
|
12739
12735
|
case 367:
|
12740
|
-
#line
|
12736
|
+
#line 2147 "ext/lexer/lexer.rl"
|
12741
12737
|
{te = p;p--;}
|
12742
12738
|
break;
|
12743
12739
|
case 371:
|
12744
|
-
#line
|
12740
|
+
#line 2157 "ext/lexer/lexer.rl"
|
12745
12741
|
{te = p;p--;{ p--; {cs = 536;goto _again;} }}
|
12746
12742
|
break;
|
12747
12743
|
case 74:
|
12748
|
-
#line
|
12744
|
+
#line 2163 "ext/lexer/lexer.rl"
|
12749
12745
|
{te = p+1;{ p = ts - 1; {cs = 768;goto _again;} }}
|
12750
12746
|
break;
|
12751
12747
|
case 375:
|
12752
|
-
#line
|
12748
|
+
#line 2165 "ext/lexer/lexer.rl"
|
12753
12749
|
{te = p+1;{ /* ' */
|
12754
12750
|
VALUE type = tok(lexer, ts, te);
|
12755
12751
|
{cs = (push_literal(lexer, type, type, ts, 0, 0, 0, 0)); goto _again;}
|
12756
12752
|
}}
|
12757
12753
|
break;
|
12758
12754
|
case 374:
|
12759
|
-
#line
|
12755
|
+
#line 2174 "ext/lexer/lexer.rl"
|
12760
12756
|
{te = p+1;{ p--; {cs = 536;goto _again;} }}
|
12761
12757
|
break;
|
12762
12758
|
case 373:
|
@@ -12764,19 +12760,19 @@ _eof_trans:
|
|
12764
12760
|
{te = p+1;{ p--; {p++; goto _out; } }}
|
12765
12761
|
break;
|
12766
12762
|
case 377:
|
12767
|
-
#line
|
12763
|
+
#line 2170 "ext/lexer/lexer.rl"
|
12768
12764
|
{te = p;p--;}
|
12769
12765
|
break;
|
12770
12766
|
case 376:
|
12771
|
-
#line
|
12767
|
+
#line 2174 "ext/lexer/lexer.rl"
|
12772
12768
|
{te = p;p--;{ p--; {cs = 536;goto _again;} }}
|
12773
12769
|
break;
|
12774
12770
|
case 73:
|
12775
|
-
#line
|
12771
|
+
#line 2174 "ext/lexer/lexer.rl"
|
12776
12772
|
{{p = ((te))-1;}{ p--; {cs = 536;goto _again;} }}
|
12777
12773
|
break;
|
12778
12774
|
case 411:
|
12779
|
-
#line
|
12775
|
+
#line 2180 "ext/lexer/lexer.rl"
|
12780
12776
|
{te = p+1;{
|
12781
12777
|
emit_token(lexer, tLAMBDA, tok(lexer, ts, ts + 2), ts, ts + 2);
|
12782
12778
|
rb_ary_push(lexer->lambda_stack, INT2NUM(lexer->paren_nest));
|
@@ -12784,13 +12780,13 @@ _eof_trans:
|
|
12784
12780
|
}}
|
12785
12781
|
break;
|
12786
12782
|
case 83:
|
12787
|
-
#line
|
12783
|
+
#line 2213 "ext/lexer/lexer.rl"
|
12788
12784
|
{te = p+1;{ emit_token(lexer, kCLASS, rb_str_new2("class"), ts, ts + 5);
|
12789
12785
|
emit_token(lexer, tLSHFT, rb_str_new2("<<"), te - 2, te);
|
12790
12786
|
cs = 760; {p++; goto _out; } }}
|
12791
12787
|
break;
|
12792
12788
|
case 385:
|
12793
|
-
#line
|
12789
|
+
#line 2350 "ext/lexer/lexer.rl"
|
12794
12790
|
{te = p+1;{ /* ' */
|
12795
12791
|
VALUE type = tok(lexer, ts, te);
|
12796
12792
|
VALUE delimiter = tok(lexer, te - 1, te);
|
@@ -12798,7 +12794,7 @@ _eof_trans:
|
|
12798
12794
|
}}
|
12799
12795
|
break;
|
12800
12796
|
case 76:
|
12801
|
-
#line
|
12797
|
+
#line 2365 "ext/lexer/lexer.rl"
|
12802
12798
|
{te = p+1;{ p = ts - 1; {
|
12803
12799
|
/* grow the state stack as needed */
|
12804
12800
|
if (lexer->cs_stack_top == lexer->cs_stack_size) {
|
@@ -12811,26 +12807,26 @@ _eof_trans:
|
|
12811
12807
|
{stack[top++] = cs; cs = 321;goto _again;}} }}
|
12812
12808
|
break;
|
12813
12809
|
case 407:
|
12814
|
-
#line
|
12810
|
+
#line 2368 "ext/lexer/lexer.rl"
|
12815
12811
|
{te = p+1;{ emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12816
12812
|
cs = 446; {p++; goto _out; } }}
|
12817
12813
|
break;
|
12818
12814
|
case 465:
|
12819
|
-
#line
|
12815
|
+
#line 2383 "ext/lexer/lexer.rl"
|
12820
12816
|
{te = p+1;{
|
12821
12817
|
emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12822
12818
|
{cs = 760;goto _again;}
|
12823
12819
|
}}
|
12824
12820
|
break;
|
12825
12821
|
case 400:
|
12826
|
-
#line
|
12822
|
+
#line 2389 "ext/lexer/lexer.rl"
|
12827
12823
|
{te = p+1;{
|
12828
12824
|
emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12829
12825
|
cs = 760; {p++; goto _out; }
|
12830
12826
|
}}
|
12831
12827
|
break;
|
12832
12828
|
case 392:
|
12833
|
-
#line
|
12829
|
+
#line 2432 "ext/lexer/lexer.rl"
|
12834
12830
|
{te = p+1;{
|
12835
12831
|
emit(tRBRACK);
|
12836
12832
|
|
@@ -12852,25 +12848,25 @@ _eof_trans:
|
|
12852
12848
|
}}
|
12853
12849
|
break;
|
12854
12850
|
case 405:
|
12855
|
-
#line
|
12851
|
+
#line 2453 "ext/lexer/lexer.rl"
|
12856
12852
|
{te = p+1;{ emit_token(lexer, tOP_ASGN, tok(lexer, ts, te - 1), ts, te);
|
12857
12853
|
cs = 536; {p++; goto _out; } }}
|
12858
12854
|
break;
|
12859
12855
|
case 390:
|
12860
|
-
#line
|
12856
|
+
#line 2456 "ext/lexer/lexer.rl"
|
12861
12857
|
{te = p+1;{ emit(tEH); cs = 760; {p++; goto _out; } }}
|
12862
12858
|
break;
|
12863
12859
|
case 387:
|
12864
|
-
#line
|
12860
|
+
#line 2461 "ext/lexer/lexer.rl"
|
12865
12861
|
{te = p+1;{ emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12866
12862
|
cs = 536; {p++; goto _out; } }}
|
12867
12863
|
break;
|
12868
12864
|
case 389:
|
12869
|
-
#line
|
12865
|
+
#line 2468 "ext/lexer/lexer.rl"
|
12870
12866
|
{te = p+1;{ emit(tSEMI); cs = 760; {p++; goto _out; } }}
|
12871
12867
|
break;
|
12872
12868
|
case 470:
|
12873
|
-
#line
|
12869
|
+
#line 2470 "ext/lexer/lexer.rl"
|
12874
12870
|
{te = p+1;{
|
12875
12871
|
diagnostic(lexer, severity_error, bare_backslash, Qnil,
|
12876
12872
|
range(lexer, ts, ts + 1), empty_array);
|
@@ -12878,7 +12874,7 @@ _eof_trans:
|
|
12878
12874
|
}}
|
12879
12875
|
break;
|
12880
12876
|
case 384:
|
12881
|
-
#line
|
12877
|
+
#line 2477 "ext/lexer/lexer.rl"
|
12882
12878
|
{te = p+1;{
|
12883
12879
|
VALUE hash = rb_hash_new();
|
12884
12880
|
VALUE str = rb_str_inspect(tok(lexer, ts, te));
|
@@ -12891,34 +12887,34 @@ _eof_trans:
|
|
12891
12887
|
{te = p+1;{ p--; {p++; goto _out; } }}
|
12892
12888
|
break;
|
12893
12889
|
case 480:
|
12894
|
-
#line
|
12890
|
+
#line 2209 "ext/lexer/lexer.rl"
|
12895
12891
|
{te = p;p--;{ emit_table_KEYWORDS(lexer, tok(lexer, ts, te), ts, te);
|
12896
12892
|
cs = 326; {p++; goto _out; } }}
|
12897
12893
|
break;
|
12898
12894
|
case 478:
|
12899
|
-
#line
|
12895
|
+
#line 2213 "ext/lexer/lexer.rl"
|
12900
12896
|
{te = p;p--;{ emit_token(lexer, kCLASS, rb_str_new2("class"), ts, ts + 5);
|
12901
12897
|
emit_token(lexer, tLSHFT, rb_str_new2("<<"), te - 2, te);
|
12902
12898
|
cs = 760; {p++; goto _out; } }}
|
12903
12899
|
break;
|
12904
12900
|
case 477:
|
12905
|
-
#line
|
12901
|
+
#line 2222 "ext/lexer/lexer.rl"
|
12906
12902
|
{te = p;p--;{ emit_table_KEYWORDS(lexer, tok(lexer, ts, te), ts, te);
|
12907
12903
|
cs = 760; {p++; goto _out; } }}
|
12908
12904
|
break;
|
12909
12905
|
case 414:
|
12910
|
-
#line
|
12906
|
+
#line 2300 "ext/lexer/lexer.rl"
|
12911
12907
|
{te = p;p--;{
|
12912
12908
|
diagnostic(lexer, severity_error, no_dot_digit_literal, Qnil,
|
12913
12909
|
range(lexer, ts, te), empty_array);
|
12914
12910
|
}}
|
12915
12911
|
break;
|
12916
12912
|
case 467:
|
12917
|
-
#line
|
12913
|
+
#line 2356 "ext/lexer/lexer.rl"
|
12918
12914
|
{te = p;p--;{ emit(tCONSTANT); cs = (arg_or_cmdarg(command_state)); {p++; goto _out; } }}
|
12919
12915
|
break;
|
12920
12916
|
case 404:
|
12921
|
-
#line
|
12917
|
+
#line 2365 "ext/lexer/lexer.rl"
|
12922
12918
|
{te = p;p--;{ p = ts - 1; {
|
12923
12919
|
/* grow the state stack as needed */
|
12924
12920
|
if (lexer->cs_stack_top == lexer->cs_stack_size) {
|
@@ -12931,12 +12927,12 @@ _eof_trans:
|
|
12931
12927
|
{stack[top++] = cs; cs = 321;goto _again;}} }}
|
12932
12928
|
break;
|
12933
12929
|
case 412:
|
12934
|
-
#line
|
12930
|
+
#line 2368 "ext/lexer/lexer.rl"
|
12935
12931
|
{te = p;p--;{ emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12936
12932
|
cs = 446; {p++; goto _out; } }}
|
12937
12933
|
break;
|
12938
12934
|
case 472:
|
12939
|
-
#line
|
12935
|
+
#line 1598 "ext/lexer/lexer.rl"
|
12940
12936
|
{te = p;p--;{
|
12941
12937
|
VALUE str = tok(lexer, ts, te);
|
12942
12938
|
emit(tIDENTIFIER);
|
@@ -12949,35 +12945,35 @@ _eof_trans:
|
|
12949
12945
|
}}
|
12950
12946
|
break;
|
12951
12947
|
case 410:
|
12952
|
-
#line
|
12948
|
+
#line 2383 "ext/lexer/lexer.rl"
|
12953
12949
|
{te = p;p--;{
|
12954
12950
|
emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12955
12951
|
{cs = 760;goto _again;}
|
12956
12952
|
}}
|
12957
12953
|
break;
|
12958
12954
|
case 406:
|
12959
|
-
#line
|
12955
|
+
#line 2389 "ext/lexer/lexer.rl"
|
12960
12956
|
{te = p;p--;{
|
12961
12957
|
emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12962
12958
|
cs = 760; {p++; goto _out; }
|
12963
12959
|
}}
|
12964
12960
|
break;
|
12965
12961
|
case 399:
|
12966
|
-
#line
|
12962
|
+
#line 2395 "ext/lexer/lexer.rl"
|
12967
12963
|
{te = p;p--;{ emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12968
12964
|
cs = 536; {p++; goto _out; } }}
|
12969
12965
|
break;
|
12970
12966
|
case 413:
|
12971
|
-
#line
|
12967
|
+
#line 2461 "ext/lexer/lexer.rl"
|
12972
12968
|
{te = p;p--;{ emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
12973
12969
|
cs = 536; {p++; goto _out; } }}
|
12974
12970
|
break;
|
12975
12971
|
case 397:
|
12976
|
-
#line
|
12972
|
+
#line 2464 "ext/lexer/lexer.rl"
|
12977
12973
|
{te = p;p--;}
|
12978
12974
|
break;
|
12979
12975
|
case 403:
|
12980
|
-
#line
|
12976
|
+
#line 2477 "ext/lexer/lexer.rl"
|
12981
12977
|
{te = p;p--;{
|
12982
12978
|
VALUE hash = rb_hash_new();
|
12983
12979
|
VALUE str = rb_str_inspect(tok(lexer, ts, te));
|
@@ -12986,7 +12982,7 @@ _eof_trans:
|
|
12986
12982
|
}}
|
12987
12983
|
break;
|
12988
12984
|
case 81:
|
12989
|
-
#line
|
12985
|
+
#line 2268 "ext/lexer/lexer.rl"
|
12990
12986
|
{{p = ((te))-1;}{
|
12991
12987
|
int invalid_idx;
|
12992
12988
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -13019,14 +13015,14 @@ _eof_trans:
|
|
13019
13015
|
}}
|
13020
13016
|
break;
|
13021
13017
|
case 77:
|
13022
|
-
#line
|
13018
|
+
#line 2300 "ext/lexer/lexer.rl"
|
13023
13019
|
{{p = ((te))-1;}{
|
13024
13020
|
diagnostic(lexer, severity_error, no_dot_digit_literal, Qnil,
|
13025
13021
|
range(lexer, ts, te), empty_array);
|
13026
13022
|
}}
|
13027
13023
|
break;
|
13028
13024
|
case 80:
|
13029
|
-
#line
|
13025
|
+
#line 2337 "ext/lexer/lexer.rl"
|
13030
13026
|
{{p = ((te))-1;}{
|
13031
13027
|
VALUE digits = tok(lexer, ts, num_suffix_s);
|
13032
13028
|
|
@@ -13041,7 +13037,7 @@ _eof_trans:
|
|
13041
13037
|
}}
|
13042
13038
|
break;
|
13043
13039
|
case 75:
|
13044
|
-
#line
|
13040
|
+
#line 2477 "ext/lexer/lexer.rl"
|
13045
13041
|
{{p = ((te))-1;}{
|
13046
13042
|
VALUE hash = rb_hash_new();
|
13047
13043
|
VALUE str = rb_str_inspect(tok(lexer, ts, te));
|
@@ -13232,39 +13228,39 @@ _eof_trans:
|
|
13232
13228
|
}
|
13233
13229
|
break;
|
13234
13230
|
case 87:
|
13235
|
-
#line
|
13231
|
+
#line 2488 "ext/lexer/lexer.rl"
|
13236
13232
|
{te = p+1;{ p = tm - 1; {cs = 768;goto _again;} }}
|
13237
13233
|
break;
|
13238
13234
|
case 485:
|
13239
|
-
#line
|
13235
|
+
#line 2490 "ext/lexer/lexer.rl"
|
13240
13236
|
{te = p+1;{
|
13241
13237
|
emit_token(lexer, tNL, Qnil, lexer->newline_s, lexer->newline_s + 1);
|
13242
13238
|
p--; cs = 182; {p++; goto _out; }
|
13243
13239
|
}}
|
13244
13240
|
break;
|
13245
13241
|
case 486:
|
13246
|
-
#line
|
13242
|
+
#line 2490 "ext/lexer/lexer.rl"
|
13247
13243
|
{te = p;p--;{
|
13248
13244
|
emit_token(lexer, tNL, Qnil, lexer->newline_s, lexer->newline_s + 1);
|
13249
13245
|
p--; cs = 182; {p++; goto _out; }
|
13250
13246
|
}}
|
13251
13247
|
break;
|
13252
13248
|
case 84:
|
13253
|
-
#line
|
13249
|
+
#line 2490 "ext/lexer/lexer.rl"
|
13254
13250
|
{{p = ((te))-1;}{
|
13255
13251
|
emit_token(lexer, tNL, Qnil, lexer->newline_s, lexer->newline_s + 1);
|
13256
13252
|
p--; cs = 182; {p++; goto _out; }
|
13257
13253
|
}}
|
13258
13254
|
break;
|
13259
13255
|
case 489:
|
13260
|
-
#line
|
13256
|
+
#line 2497 "ext/lexer/lexer.rl"
|
13261
13257
|
{te = p;p--;{
|
13262
13258
|
emit_comment(lexer, lexer->eq_begin_s, te);
|
13263
13259
|
{cs = (lexer->cs_before_block_comment); goto _again;}
|
13264
13260
|
}}
|
13265
13261
|
break;
|
13266
13262
|
case 488:
|
13267
|
-
#line
|
13263
|
+
#line 2504 "ext/lexer/lexer.rl"
|
13268
13264
|
{te = p;p--;{
|
13269
13265
|
diagnostic(lexer, fatal, embedded_document, Qnil,
|
13270
13266
|
range(lexer, lexer->eq_begin_s, lexer->eq_begin_s + 6),
|
@@ -13272,18 +13268,18 @@ _eof_trans:
|
|
13272
13268
|
}}
|
13273
13269
|
break;
|
13274
13270
|
case 98:
|
13275
|
-
#line
|
13271
|
+
#line 2514 "ext/lexer/lexer.rl"
|
13276
13272
|
{te = p+1;{
|
13277
13273
|
lexer->eq_begin_s = ts;
|
13278
13274
|
{cs = 948;goto _again;}
|
13279
13275
|
}}
|
13280
13276
|
break;
|
13281
13277
|
case 2:
|
13282
|
-
#line
|
13278
|
+
#line 2519 "ext/lexer/lexer.rl"
|
13283
13279
|
{te = p+1;{ p = pe - 3; }}
|
13284
13280
|
break;
|
13285
13281
|
case 90:
|
13286
|
-
#line
|
13282
|
+
#line 2521 "ext/lexer/lexer.rl"
|
13287
13283
|
{te = p+1;{ p--; {cs = 760;goto _again;} }}
|
13288
13284
|
break;
|
13289
13285
|
case 91:
|
@@ -13291,34 +13287,34 @@ _eof_trans:
|
|
13291
13287
|
{te = p+1;{ p--; {p++; goto _out; } }}
|
13292
13288
|
break;
|
13293
13289
|
case 92:
|
13294
|
-
#line
|
13290
|
+
#line 2512 "ext/lexer/lexer.rl"
|
13295
13291
|
{te = p;p--;}
|
13296
13292
|
break;
|
13297
13293
|
case 97:
|
13298
|
-
#line
|
13294
|
+
#line 2514 "ext/lexer/lexer.rl"
|
13299
13295
|
{te = p;p--;{
|
13300
13296
|
lexer->eq_begin_s = ts;
|
13301
13297
|
{cs = 948;goto _again;}
|
13302
13298
|
}}
|
13303
13299
|
break;
|
13304
13300
|
case 96:
|
13305
|
-
#line
|
13301
|
+
#line 2521 "ext/lexer/lexer.rl"
|
13306
13302
|
{te = p;p--;{ p--; {cs = 760;goto _again;} }}
|
13307
13303
|
break;
|
13308
13304
|
case 1:
|
13309
|
-
#line
|
13305
|
+
#line 2521 "ext/lexer/lexer.rl"
|
13310
13306
|
{{p = ((te))-1;}{ p--; {cs = 760;goto _again;} }}
|
13311
13307
|
break;
|
13312
13308
|
case 66:
|
13313
13309
|
#line 1002 "ext/lexer/lexer.rl"
|
13314
13310
|
{ lexer->newline_s = p; }
|
13315
|
-
#line
|
13311
|
+
#line 1543 "ext/lexer/lexer.rl"
|
13316
13312
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
13317
13313
|
break;
|
13318
13314
|
case 102:
|
13319
13315
|
#line 1002 "ext/lexer/lexer.rl"
|
13320
13316
|
{ lexer->newline_s = p; }
|
13321
|
-
#line
|
13317
|
+
#line 1335 "ext/lexer/lexer.rl"
|
13322
13318
|
{te = p+1;{
|
13323
13319
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
13324
13320
|
long str_s = current_literal->str_s;
|
@@ -13366,7 +13362,7 @@ _eof_trans:
|
|
13366
13362
|
case 131:
|
13367
13363
|
#line 1002 "ext/lexer/lexer.rl"
|
13368
13364
|
{ lexer->newline_s = p; }
|
13369
|
-
#line
|
13365
|
+
#line 1335 "ext/lexer/lexer.rl"
|
13370
13366
|
{te = p+1;{
|
13371
13367
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
13372
13368
|
long str_s = current_literal->str_s;
|
@@ -13414,7 +13410,7 @@ _eof_trans:
|
|
13414
13410
|
case 158:
|
13415
13411
|
#line 1002 "ext/lexer/lexer.rl"
|
13416
13412
|
{ lexer->newline_s = p; }
|
13417
|
-
#line
|
13413
|
+
#line 1335 "ext/lexer/lexer.rl"
|
13418
13414
|
{te = p+1;{
|
13419
13415
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
13420
13416
|
long str_s = current_literal->str_s;
|
@@ -13462,7 +13458,7 @@ _eof_trans:
|
|
13462
13458
|
case 164:
|
13463
13459
|
#line 1002 "ext/lexer/lexer.rl"
|
13464
13460
|
{ lexer->newline_s = p; }
|
13465
|
-
#line
|
13461
|
+
#line 1335 "ext/lexer/lexer.rl"
|
13466
13462
|
{te = p+1;{
|
13467
13463
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
13468
13464
|
long str_s = current_literal->str_s;
|
@@ -13510,7 +13506,7 @@ _eof_trans:
|
|
13510
13506
|
case 170:
|
13511
13507
|
#line 1002 "ext/lexer/lexer.rl"
|
13512
13508
|
{ lexer->newline_s = p; }
|
13513
|
-
#line
|
13509
|
+
#line 1335 "ext/lexer/lexer.rl"
|
13514
13510
|
{te = p+1;{
|
13515
13511
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
13516
13512
|
long str_s = current_literal->str_s;
|
@@ -13558,7 +13554,7 @@ _eof_trans:
|
|
13558
13554
|
case 176:
|
13559
13555
|
#line 1002 "ext/lexer/lexer.rl"
|
13560
13556
|
{ lexer->newline_s = p; }
|
13561
|
-
#line
|
13557
|
+
#line 1335 "ext/lexer/lexer.rl"
|
13562
13558
|
{te = p+1;{
|
13563
13559
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
13564
13560
|
long str_s = current_literal->str_s;
|
@@ -13606,7 +13602,7 @@ _eof_trans:
|
|
13606
13602
|
case 179:
|
13607
13603
|
#line 1002 "ext/lexer/lexer.rl"
|
13608
13604
|
{ lexer->newline_s = p; }
|
13609
|
-
#line
|
13605
|
+
#line 1335 "ext/lexer/lexer.rl"
|
13610
13606
|
{te = p+1;{
|
13611
13607
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
13612
13608
|
long str_s = current_literal->str_s;
|
@@ -13654,7 +13650,7 @@ _eof_trans:
|
|
13654
13650
|
case 186:
|
13655
13651
|
#line 1002 "ext/lexer/lexer.rl"
|
13656
13652
|
{ lexer->newline_s = p; }
|
13657
|
-
#line
|
13653
|
+
#line 1335 "ext/lexer/lexer.rl"
|
13658
13654
|
{te = p+1;{
|
13659
13655
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
13660
13656
|
long str_s = current_literal->str_s;
|
@@ -13702,19 +13698,19 @@ _eof_trans:
|
|
13702
13698
|
case 257:
|
13703
13699
|
#line 1002 "ext/lexer/lexer.rl"
|
13704
13700
|
{ lexer->newline_s = p; }
|
13705
|
-
#line
|
13701
|
+
#line 1760 "ext/lexer/lexer.rl"
|
13706
13702
|
{te = p+1;{ p = ts - 1; {cs = 768;goto _again;} }}
|
13707
13703
|
break;
|
13708
13704
|
case 248:
|
13709
13705
|
#line 1002 "ext/lexer/lexer.rl"
|
13710
13706
|
{ lexer->newline_s = p; }
|
13711
|
-
#line
|
13707
|
+
#line 1792 "ext/lexer/lexer.rl"
|
13712
13708
|
{te = p+1;{ p = tm - 1; {cs = 768;goto _again;} }}
|
13713
13709
|
break;
|
13714
13710
|
case 240:
|
13715
13711
|
#line 1002 "ext/lexer/lexer.rl"
|
13716
13712
|
{ lexer->newline_s = p; }
|
13717
|
-
#line
|
13713
|
+
#line 1799 "ext/lexer/lexer.rl"
|
13718
13714
|
{te = p+1;{
|
13719
13715
|
p = ts - 1;
|
13720
13716
|
{cs = 768;goto _again;}
|
@@ -13723,7 +13719,7 @@ _eof_trans:
|
|
13723
13719
|
case 332:
|
13724
13720
|
#line 1002 "ext/lexer/lexer.rl"
|
13725
13721
|
{ lexer->newline_s = p; }
|
13726
|
-
#line
|
13722
|
+
#line 2032 "ext/lexer/lexer.rl"
|
13727
13723
|
{te = p+1;{
|
13728
13724
|
VALUE escape = escape_char(rb_str_subseq(lexer->source, ts + 1, 1));
|
13729
13725
|
VALUE hash = rb_hash_new();
|
@@ -13738,7 +13734,7 @@ _eof_trans:
|
|
13738
13734
|
case 303:
|
13739
13735
|
#line 1002 "ext/lexer/lexer.rl"
|
13740
13736
|
{ lexer->newline_s = p; }
|
13741
|
-
#line
|
13737
|
+
#line 2131 "ext/lexer/lexer.rl"
|
13742
13738
|
{te = p+1;{
|
13743
13739
|
p = ts - 1;
|
13744
13740
|
lexer->cs_before_block_comment = lexer->cs;
|
@@ -13748,7 +13744,7 @@ _eof_trans:
|
|
13748
13744
|
case 490:
|
13749
13745
|
#line 1002 "ext/lexer/lexer.rl"
|
13750
13746
|
{ lexer->newline_s = p; }
|
13751
|
-
#line
|
13747
|
+
#line 2497 "ext/lexer/lexer.rl"
|
13752
13748
|
{te = p+1;{
|
13753
13749
|
emit_comment(lexer, lexer->eq_begin_s, te);
|
13754
13750
|
{cs = (lexer->cs_before_block_comment); goto _again;}
|
@@ -13757,13 +13753,13 @@ _eof_trans:
|
|
13757
13753
|
case 487:
|
13758
13754
|
#line 1002 "ext/lexer/lexer.rl"
|
13759
13755
|
{ lexer->newline_s = p; }
|
13760
|
-
#line
|
13756
|
+
#line 2502 "ext/lexer/lexer.rl"
|
13761
13757
|
{te = p+1;}
|
13762
13758
|
break;
|
13763
13759
|
case 99:
|
13764
13760
|
#line 1002 "ext/lexer/lexer.rl"
|
13765
13761
|
{ lexer->newline_s = p; }
|
13766
|
-
#line
|
13762
|
+
#line 2514 "ext/lexer/lexer.rl"
|
13767
13763
|
{te = p+1;{
|
13768
13764
|
lexer->eq_begin_s = ts;
|
13769
13765
|
{cs = 948;goto _again;}
|
@@ -13772,13 +13768,13 @@ _eof_trans:
|
|
13772
13768
|
case 3:
|
13773
13769
|
#line 1002 "ext/lexer/lexer.rl"
|
13774
13770
|
{ lexer->newline_s = p; }
|
13775
|
-
#line
|
13771
|
+
#line 2519 "ext/lexer/lexer.rl"
|
13776
13772
|
{te = p+1;{ p = pe - 3; }}
|
13777
13773
|
break;
|
13778
13774
|
case 437:
|
13779
13775
|
#line 1077 "ext/lexer/lexer.rl"
|
13780
13776
|
{ num_xfrm = emit_rational; numeric_s = ts; }
|
13781
|
-
#line
|
13777
|
+
#line 2268 "ext/lexer/lexer.rl"
|
13782
13778
|
{te = p;p--;{
|
13783
13779
|
int invalid_idx;
|
13784
13780
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -13813,7 +13809,7 @@ _eof_trans:
|
|
13813
13809
|
case 435:
|
13814
13810
|
#line 1078 "ext/lexer/lexer.rl"
|
13815
13811
|
{ num_xfrm = emit_complex; numeric_s = ts; }
|
13816
|
-
#line
|
13812
|
+
#line 2268 "ext/lexer/lexer.rl"
|
13817
13813
|
{te = p;p--;{
|
13818
13814
|
int invalid_idx;
|
13819
13815
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -13848,7 +13844,7 @@ _eof_trans:
|
|
13848
13844
|
case 439:
|
13849
13845
|
#line 1079 "ext/lexer/lexer.rl"
|
13850
13846
|
{ num_xfrm = emit_complex_rational; numeric_s = ts; }
|
13851
|
-
#line
|
13847
|
+
#line 2268 "ext/lexer/lexer.rl"
|
13852
13848
|
{te = p;p--;{
|
13853
13849
|
int invalid_idx;
|
13854
13850
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -13883,7 +13879,7 @@ _eof_trans:
|
|
13883
13879
|
case 436:
|
13884
13880
|
#line 1080 "ext/lexer/lexer.rl"
|
13885
13881
|
{ num_xfrm = emit_int_followed_by_if; numeric_s = ts; p -= 2; }
|
13886
|
-
#line
|
13882
|
+
#line 2268 "ext/lexer/lexer.rl"
|
13887
13883
|
{te = p;p--;{
|
13888
13884
|
int invalid_idx;
|
13889
13885
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -13918,7 +13914,7 @@ _eof_trans:
|
|
13918
13914
|
case 438:
|
13919
13915
|
#line 1081 "ext/lexer/lexer.rl"
|
13920
13916
|
{ num_xfrm = emit_int_followed_by_rescue; numeric_s = ts; p -= 6; }
|
13921
|
-
#line
|
13917
|
+
#line 2268 "ext/lexer/lexer.rl"
|
13922
13918
|
{te = p;p--;{
|
13923
13919
|
int invalid_idx;
|
13924
13920
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -13953,7 +13949,7 @@ _eof_trans:
|
|
13953
13949
|
case 427:
|
13954
13950
|
#line 1085 "ext/lexer/lexer.rl"
|
13955
13951
|
{ num_xfrm = emit_complex_float; numeric_s = ts; }
|
13956
|
-
#line
|
13952
|
+
#line 2337 "ext/lexer/lexer.rl"
|
13957
13953
|
{te = p;p--;{
|
13958
13954
|
VALUE digits = tok(lexer, ts, num_suffix_s);
|
13959
13955
|
|
@@ -13970,7 +13966,7 @@ _eof_trans:
|
|
13970
13966
|
case 428:
|
13971
13967
|
#line 1086 "ext/lexer/lexer.rl"
|
13972
13968
|
{ num_xfrm = emit_float_followed_by_if; numeric_s = ts; p -= 2; }
|
13973
|
-
#line
|
13969
|
+
#line 2337 "ext/lexer/lexer.rl"
|
13974
13970
|
{te = p;p--;{
|
13975
13971
|
VALUE digits = tok(lexer, ts, num_suffix_s);
|
13976
13972
|
|
@@ -13987,7 +13983,7 @@ _eof_trans:
|
|
13987
13983
|
case 429:
|
13988
13984
|
#line 1090 "ext/lexer/lexer.rl"
|
13989
13985
|
{ num_xfrm = emit_rational; numeric_s = ts; }
|
13990
|
-
#line
|
13986
|
+
#line 2337 "ext/lexer/lexer.rl"
|
13991
13987
|
{te = p;p--;{
|
13992
13988
|
VALUE digits = tok(lexer, ts, num_suffix_s);
|
13993
13989
|
|
@@ -14004,7 +14000,7 @@ _eof_trans:
|
|
14004
14000
|
case 431:
|
14005
14001
|
#line 1091 "ext/lexer/lexer.rl"
|
14006
14002
|
{ num_xfrm = emit_complex_rational; numeric_s = ts; }
|
14007
|
-
#line
|
14003
|
+
#line 2337 "ext/lexer/lexer.rl"
|
14008
14004
|
{te = p;p--;{
|
14009
14005
|
VALUE digits = tok(lexer, ts, num_suffix_s);
|
14010
14006
|
|
@@ -14021,7 +14017,7 @@ _eof_trans:
|
|
14021
14017
|
case 430:
|
14022
14018
|
#line 1092 "ext/lexer/lexer.rl"
|
14023
14019
|
{ num_xfrm = emit_float_followed_by_rescue; numeric_s = ts; p -= 6; }
|
14024
|
-
#line
|
14020
|
+
#line 2337 "ext/lexer/lexer.rl"
|
14025
14021
|
{te = p;p--;{
|
14026
14022
|
VALUE digits = tok(lexer, ts, num_suffix_s);
|
14027
14023
|
|
@@ -14103,18 +14099,16 @@ _eof_trans:
|
|
14103
14099
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14104
14100
|
}
|
14105
14101
|
} else {
|
14106
|
-
if (
|
14102
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14103
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14104
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14105
|
+
VALUE token = tok(lexer, ts, te);
|
14106
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14107
|
+
literal_extend_string(current_literal, token, ts, te);
|
14108
|
+
} else if (literal_regexp_p(current_literal)) {
|
14107
14109
|
VALUE token = tok(lexer, ts, te);
|
14108
14110
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14109
14111
|
literal_extend_string(current_literal, token, ts, te);
|
14110
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14111
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14112
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14113
|
-
} else {
|
14114
|
-
VALUE token = tok(lexer, ts, te);
|
14115
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14116
|
-
literal_extend_string(current_literal, token, ts, te);
|
14117
|
-
}
|
14118
14112
|
} else if (lexer->escape == Qnil) {
|
14119
14113
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14120
14114
|
} else {
|
@@ -14191,18 +14185,16 @@ _eof_trans:
|
|
14191
14185
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14192
14186
|
}
|
14193
14187
|
} else {
|
14194
|
-
if (
|
14188
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14189
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14190
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14191
|
+
VALUE token = tok(lexer, ts, te);
|
14192
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14193
|
+
literal_extend_string(current_literal, token, ts, te);
|
14194
|
+
} else if (literal_regexp_p(current_literal)) {
|
14195
14195
|
VALUE token = tok(lexer, ts, te);
|
14196
14196
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14197
14197
|
literal_extend_string(current_literal, token, ts, te);
|
14198
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14199
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14200
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14201
|
-
} else {
|
14202
|
-
VALUE token = tok(lexer, ts, te);
|
14203
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14204
|
-
literal_extend_string(current_literal, token, ts, te);
|
14205
|
-
}
|
14206
14198
|
} else if (lexer->escape == Qnil) {
|
14207
14199
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14208
14200
|
} else {
|
@@ -14267,7 +14259,7 @@ _eof_trans:
|
|
14267
14259
|
}
|
14268
14260
|
}
|
14269
14261
|
}
|
14270
|
-
#line
|
14262
|
+
#line 2019 "ext/lexer/lexer.rl"
|
14271
14263
|
{te = p;p--;{
|
14272
14264
|
VALUE value = lexer->escape;
|
14273
14265
|
if (value == Qnil)
|
@@ -14305,18 +14297,16 @@ _eof_trans:
|
|
14305
14297
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14306
14298
|
}
|
14307
14299
|
} else {
|
14308
|
-
if (
|
14300
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14301
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14302
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14303
|
+
VALUE token = tok(lexer, ts, te);
|
14304
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14305
|
+
literal_extend_string(current_literal, token, ts, te);
|
14306
|
+
} else if (literal_regexp_p(current_literal)) {
|
14309
14307
|
VALUE token = tok(lexer, ts, te);
|
14310
14308
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14311
14309
|
literal_extend_string(current_literal, token, ts, te);
|
14312
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14313
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14314
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14315
|
-
} else {
|
14316
|
-
VALUE token = tok(lexer, ts, te);
|
14317
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14318
|
-
literal_extend_string(current_literal, token, ts, te);
|
14319
|
-
}
|
14320
14310
|
} else if (lexer->escape == Qnil) {
|
14321
14311
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14322
14312
|
} else {
|
@@ -14349,18 +14339,16 @@ _eof_trans:
|
|
14349
14339
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14350
14340
|
}
|
14351
14341
|
} else {
|
14352
|
-
if (
|
14342
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14343
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14344
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14345
|
+
VALUE token = tok(lexer, ts, te);
|
14346
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14347
|
+
literal_extend_string(current_literal, token, ts, te);
|
14348
|
+
} else if (literal_regexp_p(current_literal)) {
|
14353
14349
|
VALUE token = tok(lexer, ts, te);
|
14354
14350
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14355
14351
|
literal_extend_string(current_literal, token, ts, te);
|
14356
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14357
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14358
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14359
|
-
} else {
|
14360
|
-
VALUE token = tok(lexer, ts, te);
|
14361
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14362
|
-
literal_extend_string(current_literal, token, ts, te);
|
14363
|
-
}
|
14364
14352
|
} else if (lexer->escape == Qnil) {
|
14365
14353
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14366
14354
|
} else {
|
@@ -14381,7 +14369,7 @@ _eof_trans:
|
|
14381
14369
|
force_encoding(codepoint, lexer->encoding);
|
14382
14370
|
}
|
14383
14371
|
}
|
14384
|
-
#line
|
14372
|
+
#line 2019 "ext/lexer/lexer.rl"
|
14385
14373
|
{te = p;p--;{
|
14386
14374
|
VALUE value = lexer->escape;
|
14387
14375
|
if (value == Qnil)
|
@@ -14413,18 +14401,16 @@ _eof_trans:
|
|
14413
14401
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14414
14402
|
}
|
14415
14403
|
} else {
|
14416
|
-
if (
|
14404
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14405
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14406
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14407
|
+
VALUE token = tok(lexer, ts, te);
|
14408
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14409
|
+
literal_extend_string(current_literal, token, ts, te);
|
14410
|
+
} else if (literal_regexp_p(current_literal)) {
|
14417
14411
|
VALUE token = tok(lexer, ts, te);
|
14418
14412
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14419
14413
|
literal_extend_string(current_literal, token, ts, te);
|
14420
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14421
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14422
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14423
|
-
} else {
|
14424
|
-
VALUE token = tok(lexer, ts, te);
|
14425
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14426
|
-
literal_extend_string(current_literal, token, ts, te);
|
14427
|
-
}
|
14428
14414
|
} else if (lexer->escape == Qnil) {
|
14429
14415
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14430
14416
|
} else {
|
@@ -14451,18 +14437,16 @@ _eof_trans:
|
|
14451
14437
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14452
14438
|
}
|
14453
14439
|
} else {
|
14454
|
-
if (
|
14440
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14441
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14442
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14443
|
+
VALUE token = tok(lexer, ts, te);
|
14444
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14445
|
+
literal_extend_string(current_literal, token, ts, te);
|
14446
|
+
} else if (literal_regexp_p(current_literal)) {
|
14455
14447
|
VALUE token = tok(lexer, ts, te);
|
14456
14448
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14457
14449
|
literal_extend_string(current_literal, token, ts, te);
|
14458
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14459
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14460
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14461
|
-
} else {
|
14462
|
-
VALUE token = tok(lexer, ts, te);
|
14463
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14464
|
-
literal_extend_string(current_literal, token, ts, te);
|
14465
|
-
}
|
14466
14450
|
} else if (lexer->escape == Qnil) {
|
14467
14451
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14468
14452
|
} else {
|
@@ -14477,7 +14461,7 @@ _eof_trans:
|
|
14477
14461
|
diagnostic(lexer, fatal, invalid_escape, Qnil, range(lexer, ts, te),
|
14478
14462
|
empty_array);
|
14479
14463
|
}
|
14480
|
-
#line
|
14464
|
+
#line 2019 "ext/lexer/lexer.rl"
|
14481
14465
|
{te = p;p--;{
|
14482
14466
|
VALUE value = lexer->escape;
|
14483
14467
|
if (value == Qnil)
|
@@ -14506,18 +14490,16 @@ _eof_trans:
|
|
14506
14490
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14507
14491
|
}
|
14508
14492
|
} else {
|
14509
|
-
if (
|
14493
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14494
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14495
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14496
|
+
VALUE token = tok(lexer, ts, te);
|
14497
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14498
|
+
literal_extend_string(current_literal, token, ts, te);
|
14499
|
+
} else if (literal_regexp_p(current_literal)) {
|
14510
14500
|
VALUE token = tok(lexer, ts, te);
|
14511
14501
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14512
14502
|
literal_extend_string(current_literal, token, ts, te);
|
14513
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14514
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14515
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14516
|
-
} else {
|
14517
|
-
VALUE token = tok(lexer, ts, te);
|
14518
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14519
|
-
literal_extend_string(current_literal, token, ts, te);
|
14520
|
-
}
|
14521
14503
|
} else if (lexer->escape == Qnil) {
|
14522
14504
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14523
14505
|
} else {
|
@@ -14541,18 +14523,16 @@ _eof_trans:
|
|
14541
14523
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14542
14524
|
}
|
14543
14525
|
} else {
|
14544
|
-
if (
|
14526
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14527
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14528
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14529
|
+
VALUE token = tok(lexer, ts, te);
|
14530
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14531
|
+
literal_extend_string(current_literal, token, ts, te);
|
14532
|
+
} else if (literal_regexp_p(current_literal)) {
|
14545
14533
|
VALUE token = tok(lexer, ts, te);
|
14546
14534
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14547
14535
|
literal_extend_string(current_literal, token, ts, te);
|
14548
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14549
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14550
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14551
|
-
} else {
|
14552
|
-
VALUE token = tok(lexer, ts, te);
|
14553
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14554
|
-
literal_extend_string(current_literal, token, ts, te);
|
14555
|
-
}
|
14556
14536
|
} else if (lexer->escape == Qnil) {
|
14557
14537
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14558
14538
|
} else {
|
@@ -14564,7 +14544,7 @@ _eof_trans:
|
|
14564
14544
|
case 342:
|
14565
14545
|
#line 1186 "ext/lexer/lexer.rl"
|
14566
14546
|
{ lexer->escape = rb_str_new2("\x7f"); }
|
14567
|
-
#line
|
14547
|
+
#line 2019 "ext/lexer/lexer.rl"
|
14568
14548
|
{te = p;p--;{
|
14569
14549
|
VALUE value = lexer->escape;
|
14570
14550
|
if (value == Qnil)
|
@@ -14599,18 +14579,16 @@ _eof_trans:
|
|
14599
14579
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14600
14580
|
}
|
14601
14581
|
} else {
|
14602
|
-
if (
|
14582
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14583
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14584
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14585
|
+
VALUE token = tok(lexer, ts, te);
|
14586
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14587
|
+
literal_extend_string(current_literal, token, ts, te);
|
14588
|
+
} else if (literal_regexp_p(current_literal)) {
|
14603
14589
|
VALUE token = tok(lexer, ts, te);
|
14604
14590
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14605
14591
|
literal_extend_string(current_literal, token, ts, te);
|
14606
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14607
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14608
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14609
|
-
} else {
|
14610
|
-
VALUE token = tok(lexer, ts, te);
|
14611
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14612
|
-
literal_extend_string(current_literal, token, ts, te);
|
14613
|
-
}
|
14614
14592
|
} else if (lexer->escape == Qnil) {
|
14615
14593
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14616
14594
|
} else {
|
@@ -14640,18 +14618,16 @@ _eof_trans:
|
|
14640
14618
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14641
14619
|
}
|
14642
14620
|
} else {
|
14643
|
-
if (
|
14621
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14622
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14623
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14624
|
+
VALUE token = tok(lexer, ts, te);
|
14625
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14626
|
+
literal_extend_string(current_literal, token, ts, te);
|
14627
|
+
} else if (literal_regexp_p(current_literal)) {
|
14644
14628
|
VALUE token = tok(lexer, ts, te);
|
14645
14629
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14646
14630
|
literal_extend_string(current_literal, token, ts, te);
|
14647
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14648
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14649
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14650
|
-
} else {
|
14651
|
-
VALUE token = tok(lexer, ts, te);
|
14652
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14653
|
-
literal_extend_string(current_literal, token, ts, te);
|
14654
|
-
}
|
14655
14631
|
} else if (lexer->escape == Qnil) {
|
14656
14632
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14657
14633
|
} else {
|
@@ -14669,7 +14645,7 @@ _eof_trans:
|
|
14669
14645
|
lexer->escape = rb_str_new(&c, 1);
|
14670
14646
|
force_encoding(lexer->escape, lexer->encoding);
|
14671
14647
|
}
|
14672
|
-
#line
|
14648
|
+
#line 2019 "ext/lexer/lexer.rl"
|
14673
14649
|
{te = p;p--;{
|
14674
14650
|
VALUE value = lexer->escape;
|
14675
14651
|
if (value == Qnil)
|
@@ -14703,18 +14679,16 @@ _eof_trans:
|
|
14703
14679
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14704
14680
|
}
|
14705
14681
|
} else {
|
14706
|
-
if (
|
14682
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14683
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14684
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14685
|
+
VALUE token = tok(lexer, ts, te);
|
14686
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14687
|
+
literal_extend_string(current_literal, token, ts, te);
|
14688
|
+
} else if (literal_regexp_p(current_literal)) {
|
14707
14689
|
VALUE token = tok(lexer, ts, te);
|
14708
14690
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14709
14691
|
literal_extend_string(current_literal, token, ts, te);
|
14710
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14711
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14712
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14713
|
-
} else {
|
14714
|
-
VALUE token = tok(lexer, ts, te);
|
14715
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14716
|
-
literal_extend_string(current_literal, token, ts, te);
|
14717
|
-
}
|
14718
14692
|
} else if (lexer->escape == Qnil) {
|
14719
14693
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14720
14694
|
} else {
|
@@ -14743,18 +14717,16 @@ _eof_trans:
|
|
14743
14717
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14744
14718
|
}
|
14745
14719
|
} else {
|
14746
|
-
if (
|
14720
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14721
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14722
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14723
|
+
VALUE token = tok(lexer, ts, te);
|
14724
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14725
|
+
literal_extend_string(current_literal, token, ts, te);
|
14726
|
+
} else if (literal_regexp_p(current_literal)) {
|
14747
14727
|
VALUE token = tok(lexer, ts, te);
|
14748
14728
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14749
14729
|
literal_extend_string(current_literal, token, ts, te);
|
14750
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14751
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14752
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14753
|
-
} else {
|
14754
|
-
VALUE token = tok(lexer, ts, te);
|
14755
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14756
|
-
literal_extend_string(current_literal, token, ts, te);
|
14757
|
-
}
|
14758
14730
|
} else if (lexer->escape == Qnil) {
|
14759
14731
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14760
14732
|
} else {
|
@@ -14771,7 +14743,7 @@ _eof_trans:
|
|
14771
14743
|
lexer->escape = rb_str_new(&c, 1);
|
14772
14744
|
force_encoding(lexer->escape, lexer->encoding);
|
14773
14745
|
}
|
14774
|
-
#line
|
14746
|
+
#line 2019 "ext/lexer/lexer.rl"
|
14775
14747
|
{te = p;p--;{
|
14776
14748
|
VALUE value = lexer->escape;
|
14777
14749
|
if (value == Qnil)
|
@@ -14803,18 +14775,16 @@ _eof_trans:
|
|
14803
14775
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14804
14776
|
}
|
14805
14777
|
} else {
|
14806
|
-
if (
|
14778
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14779
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14780
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14781
|
+
VALUE token = tok(lexer, ts, te);
|
14782
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14783
|
+
literal_extend_string(current_literal, token, ts, te);
|
14784
|
+
} else if (literal_regexp_p(current_literal)) {
|
14807
14785
|
VALUE token = tok(lexer, ts, te);
|
14808
14786
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14809
14787
|
literal_extend_string(current_literal, token, ts, te);
|
14810
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14811
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14812
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14813
|
-
} else {
|
14814
|
-
VALUE token = tok(lexer, ts, te);
|
14815
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14816
|
-
literal_extend_string(current_literal, token, ts, te);
|
14817
|
-
}
|
14818
14788
|
} else if (lexer->escape == Qnil) {
|
14819
14789
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14820
14790
|
} else {
|
@@ -14841,18 +14811,16 @@ _eof_trans:
|
|
14841
14811
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14842
14812
|
}
|
14843
14813
|
} else {
|
14844
|
-
if (
|
14814
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14815
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14816
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14817
|
+
VALUE token = tok(lexer, ts, te);
|
14818
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14819
|
+
literal_extend_string(current_literal, token, ts, te);
|
14820
|
+
} else if (literal_regexp_p(current_literal)) {
|
14845
14821
|
VALUE token = tok(lexer, ts, te);
|
14846
14822
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14847
14823
|
literal_extend_string(current_literal, token, ts, te);
|
14848
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14849
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14850
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14851
|
-
} else {
|
14852
|
-
VALUE token = tok(lexer, ts, te);
|
14853
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14854
|
-
literal_extend_string(current_literal, token, ts, te);
|
14855
|
-
}
|
14856
14824
|
} else if (lexer->escape == Qnil) {
|
14857
14825
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14858
14826
|
} else {
|
@@ -14867,7 +14835,7 @@ _eof_trans:
|
|
14867
14835
|
diagnostic(lexer, fatal, invalid_hex_escape, Qnil,
|
14868
14836
|
range(lexer, lexer->escape_s - 1, p + 2), empty_array);
|
14869
14837
|
}
|
14870
|
-
#line
|
14838
|
+
#line 2019 "ext/lexer/lexer.rl"
|
14871
14839
|
{te = p;p--;{
|
14872
14840
|
VALUE value = lexer->escape;
|
14873
14841
|
if (value == Qnil)
|
@@ -14900,18 +14868,16 @@ _eof_trans:
|
|
14900
14868
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14901
14869
|
}
|
14902
14870
|
} else {
|
14903
|
-
if (
|
14871
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14872
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14873
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14874
|
+
VALUE token = tok(lexer, ts, te);
|
14875
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14876
|
+
literal_extend_string(current_literal, token, ts, te);
|
14877
|
+
} else if (literal_regexp_p(current_literal)) {
|
14904
14878
|
VALUE token = tok(lexer, ts, te);
|
14905
14879
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14906
14880
|
literal_extend_string(current_literal, token, ts, te);
|
14907
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14908
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14909
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14910
|
-
} else {
|
14911
|
-
VALUE token = tok(lexer, ts, te);
|
14912
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14913
|
-
literal_extend_string(current_literal, token, ts, te);
|
14914
|
-
}
|
14915
14881
|
} else if (lexer->escape == Qnil) {
|
14916
14882
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14917
14883
|
} else {
|
@@ -14939,18 +14905,16 @@ _eof_trans:
|
|
14939
14905
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14940
14906
|
}
|
14941
14907
|
} else {
|
14942
|
-
if (
|
14908
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14909
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14910
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14911
|
+
VALUE token = tok(lexer, ts, te);
|
14912
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14913
|
+
literal_extend_string(current_literal, token, ts, te);
|
14914
|
+
} else if (literal_regexp_p(current_literal)) {
|
14943
14915
|
VALUE token = tok(lexer, ts, te);
|
14944
14916
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14945
14917
|
literal_extend_string(current_literal, token, ts, te);
|
14946
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14947
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
14948
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14949
|
-
} else {
|
14950
|
-
VALUE token = tok(lexer, ts, te);
|
14951
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14952
|
-
literal_extend_string(current_literal, token, ts, te);
|
14953
|
-
}
|
14954
14918
|
} else if (lexer->escape == Qnil) {
|
14955
14919
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14956
14920
|
} else {
|
@@ -14966,7 +14930,7 @@ _eof_trans:
|
|
14966
14930
|
int i = NUM2INT(rb_str_to_inum(token, 16, 0));
|
14967
14931
|
lexer->escape = rb_enc_uint_chr(i, rb_to_encoding(utf8_encoding));
|
14968
14932
|
}
|
14969
|
-
#line
|
14933
|
+
#line 2019 "ext/lexer/lexer.rl"
|
14970
14934
|
{te = p;p--;{
|
14971
14935
|
VALUE value = lexer->escape;
|
14972
14936
|
if (value == Qnil)
|
@@ -14998,18 +14962,16 @@ _eof_trans:
|
|
14998
14962
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
14999
14963
|
}
|
15000
14964
|
} else {
|
15001
|
-
if (
|
14965
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
14966
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
14967
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
14968
|
+
VALUE token = tok(lexer, ts, te);
|
14969
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
14970
|
+
literal_extend_string(current_literal, token, ts, te);
|
14971
|
+
} else if (literal_regexp_p(current_literal)) {
|
15002
14972
|
VALUE token = tok(lexer, ts, te);
|
15003
14973
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15004
14974
|
literal_extend_string(current_literal, token, ts, te);
|
15005
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15006
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
15007
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15008
|
-
} else {
|
15009
|
-
VALUE token = tok(lexer, ts, te);
|
15010
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15011
|
-
literal_extend_string(current_literal, token, ts, te);
|
15012
|
-
}
|
15013
14975
|
} else if (lexer->escape == Qnil) {
|
15014
14976
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15015
14977
|
} else {
|
@@ -15036,18 +14998,16 @@ _eof_trans:
|
|
15036
14998
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
15037
14999
|
}
|
15038
15000
|
} else {
|
15039
|
-
if (
|
15001
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15002
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15003
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
15004
|
+
VALUE token = tok(lexer, ts, te);
|
15005
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15006
|
+
literal_extend_string(current_literal, token, ts, te);
|
15007
|
+
} else if (literal_regexp_p(current_literal)) {
|
15040
15008
|
VALUE token = tok(lexer, ts, te);
|
15041
15009
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15042
15010
|
literal_extend_string(current_literal, token, ts, te);
|
15043
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15044
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
15045
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15046
|
-
} else {
|
15047
|
-
VALUE token = tok(lexer, ts, te);
|
15048
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15049
|
-
literal_extend_string(current_literal, token, ts, te);
|
15050
|
-
}
|
15051
15011
|
} else if (lexer->escape == Qnil) {
|
15052
15012
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15053
15013
|
} else {
|
@@ -15062,7 +15022,7 @@ _eof_trans:
|
|
15062
15022
|
diagnostic(lexer, fatal, invalid_unicode_escape, Qnil,
|
15063
15023
|
range(lexer, lexer->escape_s - 1, p), empty_array);
|
15064
15024
|
}
|
15065
|
-
#line
|
15025
|
+
#line 2019 "ext/lexer/lexer.rl"
|
15066
15026
|
{te = p;p--;{
|
15067
15027
|
VALUE value = lexer->escape;
|
15068
15028
|
if (value == Qnil)
|
@@ -15094,18 +15054,16 @@ _eof_trans:
|
|
15094
15054
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
15095
15055
|
}
|
15096
15056
|
} else {
|
15097
|
-
if (
|
15057
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15058
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15059
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
15060
|
+
VALUE token = tok(lexer, ts, te);
|
15061
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15062
|
+
literal_extend_string(current_literal, token, ts, te);
|
15063
|
+
} else if (literal_regexp_p(current_literal)) {
|
15098
15064
|
VALUE token = tok(lexer, ts, te);
|
15099
15065
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15100
15066
|
literal_extend_string(current_literal, token, ts, te);
|
15101
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15102
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
15103
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15104
|
-
} else {
|
15105
|
-
VALUE token = tok(lexer, ts, te);
|
15106
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15107
|
-
literal_extend_string(current_literal, token, ts, te);
|
15108
|
-
}
|
15109
15067
|
} else if (lexer->escape == Qnil) {
|
15110
15068
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15111
15069
|
} else {
|
@@ -15132,18 +15090,16 @@ _eof_trans:
|
|
15132
15090
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
15133
15091
|
}
|
15134
15092
|
} else {
|
15135
|
-
if (
|
15093
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15094
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15095
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
15096
|
+
VALUE token = tok(lexer, ts, te);
|
15097
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15098
|
+
literal_extend_string(current_literal, token, ts, te);
|
15099
|
+
} else if (literal_regexp_p(current_literal)) {
|
15136
15100
|
VALUE token = tok(lexer, ts, te);
|
15137
15101
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15138
15102
|
literal_extend_string(current_literal, token, ts, te);
|
15139
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15140
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
15141
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15142
|
-
} else {
|
15143
|
-
VALUE token = tok(lexer, ts, te);
|
15144
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15145
|
-
literal_extend_string(current_literal, token, ts, te);
|
15146
|
-
}
|
15147
15103
|
} else if (lexer->escape == Qnil) {
|
15148
15104
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15149
15105
|
} else {
|
@@ -15158,7 +15114,7 @@ _eof_trans:
|
|
15158
15114
|
diagnostic(lexer, fatal, invalid_unicode_escape, Qnil,
|
15159
15115
|
range(lexer, lexer->escape_s - 1, p), empty_array);
|
15160
15116
|
}
|
15161
|
-
#line
|
15117
|
+
#line 2019 "ext/lexer/lexer.rl"
|
15162
15118
|
{te = p;p--;{
|
15163
15119
|
VALUE value = lexer->escape;
|
15164
15120
|
if (value == Qnil)
|
@@ -15190,18 +15146,16 @@ _eof_trans:
|
|
15190
15146
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
15191
15147
|
}
|
15192
15148
|
} else {
|
15193
|
-
if (
|
15149
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15150
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15151
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
15152
|
+
VALUE token = tok(lexer, ts, te);
|
15153
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15154
|
+
literal_extend_string(current_literal, token, ts, te);
|
15155
|
+
} else if (literal_regexp_p(current_literal)) {
|
15194
15156
|
VALUE token = tok(lexer, ts, te);
|
15195
15157
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15196
15158
|
literal_extend_string(current_literal, token, ts, te);
|
15197
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15198
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
15199
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15200
|
-
} else {
|
15201
|
-
VALUE token = tok(lexer, ts, te);
|
15202
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15203
|
-
literal_extend_string(current_literal, token, ts, te);
|
15204
|
-
}
|
15205
15159
|
} else if (lexer->escape == Qnil) {
|
15206
15160
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15207
15161
|
} else {
|
@@ -15228,18 +15182,16 @@ _eof_trans:
|
|
15228
15182
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
15229
15183
|
}
|
15230
15184
|
} else {
|
15231
|
-
if (
|
15185
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15186
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15187
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
15188
|
+
VALUE token = tok(lexer, ts, te);
|
15189
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15190
|
+
literal_extend_string(current_literal, token, ts, te);
|
15191
|
+
} else if (literal_regexp_p(current_literal)) {
|
15232
15192
|
VALUE token = tok(lexer, ts, te);
|
15233
15193
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15234
15194
|
literal_extend_string(current_literal, token, ts, te);
|
15235
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15236
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
15237
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15238
|
-
} else {
|
15239
|
-
VALUE token = tok(lexer, ts, te);
|
15240
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15241
|
-
literal_extend_string(current_literal, token, ts, te);
|
15242
|
-
}
|
15243
15195
|
} else if (lexer->escape == Qnil) {
|
15244
15196
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15245
15197
|
} else {
|
@@ -15254,7 +15206,7 @@ _eof_trans:
|
|
15254
15206
|
diagnostic(lexer, fatal, invalid_unicode_escape, Qnil,
|
15255
15207
|
range(lexer, p - 1, p), empty_array);
|
15256
15208
|
}
|
15257
|
-
#line
|
15209
|
+
#line 2019 "ext/lexer/lexer.rl"
|
15258
15210
|
{te = p;p--;{
|
15259
15211
|
VALUE value = lexer->escape;
|
15260
15212
|
if (value == Qnil)
|
@@ -15286,20 +15238,18 @@ _eof_trans:
|
|
15286
15238
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
15287
15239
|
}
|
15288
15240
|
} else {
|
15289
|
-
if (
|
15241
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15242
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15243
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
15290
15244
|
VALUE token = tok(lexer, ts, te);
|
15291
15245
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15292
15246
|
literal_extend_string(current_literal, token, ts, te);
|
15293
|
-
} else if (
|
15294
|
-
|
15295
|
-
|
15296
|
-
|
15297
|
-
|
15298
|
-
|
15299
|
-
literal_extend_string(current_literal, token, ts, te);
|
15300
|
-
}
|
15301
|
-
} else if (lexer->escape == Qnil) {
|
15302
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15247
|
+
} else if (literal_regexp_p(current_literal)) {
|
15248
|
+
VALUE token = tok(lexer, ts, te);
|
15249
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15250
|
+
literal_extend_string(current_literal, token, ts, te);
|
15251
|
+
} else if (lexer->escape == Qnil) {
|
15252
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15303
15253
|
} else {
|
15304
15254
|
literal_extend_string(current_literal, lexer->escape, ts, te);
|
15305
15255
|
}
|
@@ -15324,18 +15274,16 @@ _eof_trans:
|
|
15324
15274
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
15325
15275
|
}
|
15326
15276
|
} else {
|
15327
|
-
if (
|
15277
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15278
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15279
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
15280
|
+
VALUE token = tok(lexer, ts, te);
|
15281
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15282
|
+
literal_extend_string(current_literal, token, ts, te);
|
15283
|
+
} else if (literal_regexp_p(current_literal)) {
|
15328
15284
|
VALUE token = tok(lexer, ts, te);
|
15329
15285
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15330
15286
|
literal_extend_string(current_literal, token, ts, te);
|
15331
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15332
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
15333
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15334
|
-
} else {
|
15335
|
-
VALUE token = tok(lexer, ts, te);
|
15336
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15337
|
-
literal_extend_string(current_literal, token, ts, te);
|
15338
|
-
}
|
15339
15287
|
} else if (lexer->escape == Qnil) {
|
15340
15288
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15341
15289
|
} else {
|
@@ -15350,7 +15298,7 @@ _eof_trans:
|
|
15350
15298
|
diagnostic(lexer, fatal, escape_eof, Qnil, range(lexer, p - 1, p),
|
15351
15299
|
empty_array);
|
15352
15300
|
}
|
15353
|
-
#line
|
15301
|
+
#line 2019 "ext/lexer/lexer.rl"
|
15354
15302
|
{te = p;p--;{
|
15355
15303
|
VALUE value = lexer->escape;
|
15356
15304
|
if (value == Qnil)
|
@@ -15382,18 +15330,16 @@ _eof_trans:
|
|
15382
15330
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
15383
15331
|
}
|
15384
15332
|
} else {
|
15385
|
-
if (
|
15333
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15334
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15335
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
15336
|
+
VALUE token = tok(lexer, ts, te);
|
15337
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15338
|
+
literal_extend_string(current_literal, token, ts, te);
|
15339
|
+
} else if (literal_regexp_p(current_literal)) {
|
15386
15340
|
VALUE token = tok(lexer, ts, te);
|
15387
15341
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15388
15342
|
literal_extend_string(current_literal, token, ts, te);
|
15389
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15390
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
15391
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15392
|
-
} else {
|
15393
|
-
VALUE token = tok(lexer, ts, te);
|
15394
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15395
|
-
literal_extend_string(current_literal, token, ts, te);
|
15396
|
-
}
|
15397
15343
|
} else if (lexer->escape == Qnil) {
|
15398
15344
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15399
15345
|
} else {
|
@@ -15420,18 +15366,16 @@ _eof_trans:
|
|
15420
15366
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
15421
15367
|
}
|
15422
15368
|
} else {
|
15423
|
-
if (
|
15369
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15370
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15371
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
15372
|
+
VALUE token = tok(lexer, ts, te);
|
15373
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15374
|
+
literal_extend_string(current_literal, token, ts, te);
|
15375
|
+
} else if (literal_regexp_p(current_literal)) {
|
15424
15376
|
VALUE token = tok(lexer, ts, te);
|
15425
15377
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15426
15378
|
literal_extend_string(current_literal, token, ts, te);
|
15427
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
15428
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
15429
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15430
|
-
} else {
|
15431
|
-
VALUE token = tok(lexer, ts, te);
|
15432
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
15433
|
-
literal_extend_string(current_literal, token, ts, te);
|
15434
|
-
}
|
15435
15379
|
} else if (lexer->escape == Qnil) {
|
15436
15380
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
15437
15381
|
} else {
|
@@ -15459,7 +15403,7 @@ _eof_trans:
|
|
15459
15403
|
lexer->herebody_s = 0;
|
15460
15404
|
}
|
15461
15405
|
}
|
15462
|
-
#line
|
15406
|
+
#line 1764 "ext/lexer/lexer.rl"
|
15463
15407
|
{ tm = p; }
|
15464
15408
|
break;
|
15465
15409
|
case 32:
|
@@ -15470,7 +15414,7 @@ _eof_trans:
|
|
15470
15414
|
lexer->herebody_s = 0;
|
15471
15415
|
}
|
15472
15416
|
}
|
15473
|
-
#line
|
15417
|
+
#line 1775 "ext/lexer/lexer.rl"
|
15474
15418
|
{ tm = p; }
|
15475
15419
|
break;
|
15476
15420
|
case 34:
|
@@ -15481,7 +15425,7 @@ _eof_trans:
|
|
15481
15425
|
lexer->herebody_s = 0;
|
15482
15426
|
}
|
15483
15427
|
}
|
15484
|
-
#line
|
15428
|
+
#line 1792 "ext/lexer/lexer.rl"
|
15485
15429
|
{ tm = p; }
|
15486
15430
|
break;
|
15487
15431
|
case 201:
|
@@ -15492,7 +15436,7 @@ _eof_trans:
|
|
15492
15436
|
lexer->herebody_s = 0;
|
15493
15437
|
}
|
15494
15438
|
}
|
15495
|
-
#line
|
15439
|
+
#line 1688 "ext/lexer/lexer.rl"
|
15496
15440
|
{te = p;p--;}
|
15497
15441
|
break;
|
15498
15442
|
case 220:
|
@@ -15503,7 +15447,7 @@ _eof_trans:
|
|
15503
15447
|
lexer->herebody_s = 0;
|
15504
15448
|
}
|
15505
15449
|
}
|
15506
|
-
#line
|
15450
|
+
#line 1701 "ext/lexer/lexer.rl"
|
15507
15451
|
{te = p;p--;}
|
15508
15452
|
break;
|
15509
15453
|
case 228:
|
@@ -15514,7 +15458,7 @@ _eof_trans:
|
|
15514
15458
|
lexer->herebody_s = 0;
|
15515
15459
|
}
|
15516
15460
|
}
|
15517
|
-
#line
|
15461
|
+
#line 1723 "ext/lexer/lexer.rl"
|
15518
15462
|
{te = p;p--;}
|
15519
15463
|
break;
|
15520
15464
|
case 33:
|
@@ -15525,7 +15469,7 @@ _eof_trans:
|
|
15525
15469
|
lexer->herebody_s = 0;
|
15526
15470
|
}
|
15527
15471
|
}
|
15528
|
-
#line
|
15472
|
+
#line 1799 "ext/lexer/lexer.rl"
|
15529
15473
|
{te = p+1;{
|
15530
15474
|
p = ts - 1;
|
15531
15475
|
{cs = 768;goto _again;}
|
@@ -15539,7 +15483,7 @@ _eof_trans:
|
|
15539
15483
|
lexer->herebody_s = 0;
|
15540
15484
|
}
|
15541
15485
|
}
|
15542
|
-
#line
|
15486
|
+
#line 1804 "ext/lexer/lexer.rl"
|
15543
15487
|
{te = p;p--;}
|
15544
15488
|
break;
|
15545
15489
|
case 251:
|
@@ -15550,7 +15494,7 @@ _eof_trans:
|
|
15550
15494
|
lexer->herebody_s = 0;
|
15551
15495
|
}
|
15552
15496
|
}
|
15553
|
-
#line
|
15497
|
+
#line 1808 "ext/lexer/lexer.rl"
|
15554
15498
|
{te = p;p--;{ p--; {cs = 768;goto _again;} }}
|
15555
15499
|
break;
|
15556
15500
|
case 270:
|
@@ -15561,7 +15505,7 @@ _eof_trans:
|
|
15561
15505
|
lexer->herebody_s = 0;
|
15562
15506
|
}
|
15563
15507
|
}
|
15564
|
-
#line
|
15508
|
+
#line 1859 "ext/lexer/lexer.rl"
|
15565
15509
|
{te = p;p--;}
|
15566
15510
|
break;
|
15567
15511
|
case 282:
|
@@ -15572,7 +15516,7 @@ _eof_trans:
|
|
15572
15516
|
lexer->herebody_s = 0;
|
15573
15517
|
}
|
15574
15518
|
}
|
15575
|
-
#line
|
15519
|
+
#line 1874 "ext/lexer/lexer.rl"
|
15576
15520
|
{te = p;p--;}
|
15577
15521
|
break;
|
15578
15522
|
case 278:
|
@@ -15583,7 +15527,7 @@ _eof_trans:
|
|
15583
15527
|
lexer->herebody_s = 0;
|
15584
15528
|
}
|
15585
15529
|
}
|
15586
|
-
#line
|
15530
|
+
#line 1876 "ext/lexer/lexer.rl"
|
15587
15531
|
{te = p;p--;{ p--; {cs = 768;goto _again;} }}
|
15588
15532
|
break;
|
15589
15533
|
case 58:
|
@@ -15594,7 +15538,7 @@ _eof_trans:
|
|
15594
15538
|
lexer->herebody_s = 0;
|
15595
15539
|
}
|
15596
15540
|
}
|
15597
|
-
#line
|
15541
|
+
#line 1884 "ext/lexer/lexer.rl"
|
15598
15542
|
{te = p+1;{
|
15599
15543
|
emit_token(lexer, tUNARY_NUM, tok(lexer, ts, ts + 1), ts, ts + 1);
|
15600
15544
|
p--; cs = 768; {p++; goto _out; }
|
@@ -15608,7 +15552,7 @@ _eof_trans:
|
|
15608
15552
|
lexer->herebody_s = 0;
|
15609
15553
|
}
|
15610
15554
|
}
|
15611
|
-
#line
|
15555
|
+
#line 2116 "ext/lexer/lexer.rl"
|
15612
15556
|
{te = p+1;{
|
15613
15557
|
emit_token(lexer, tIDENTIFIER, ident_tok, ident_ts, ident_te);
|
15614
15558
|
p = ident_te - 1;
|
@@ -15630,7 +15574,7 @@ _eof_trans:
|
|
15630
15574
|
lexer->herebody_s = 0;
|
15631
15575
|
}
|
15632
15576
|
}
|
15633
|
-
#line
|
15577
|
+
#line 2129 "ext/lexer/lexer.rl"
|
15634
15578
|
{te = p;p--;}
|
15635
15579
|
break;
|
15636
15580
|
case 372:
|
@@ -15641,7 +15585,7 @@ _eof_trans:
|
|
15641
15585
|
lexer->herebody_s = 0;
|
15642
15586
|
}
|
15643
15587
|
}
|
15644
|
-
#line
|
15588
|
+
#line 2147 "ext/lexer/lexer.rl"
|
15645
15589
|
{te = p;p--;}
|
15646
15590
|
break;
|
15647
15591
|
case 368:
|
@@ -15652,7 +15596,7 @@ _eof_trans:
|
|
15652
15596
|
lexer->herebody_s = 0;
|
15653
15597
|
}
|
15654
15598
|
}
|
15655
|
-
#line
|
15599
|
+
#line 2149 "ext/lexer/lexer.rl"
|
15656
15600
|
{te = p;p--;{
|
15657
15601
|
if (lexer->in_kwarg) {
|
15658
15602
|
p--; {cs = 768;goto _again;}
|
@@ -15669,7 +15613,7 @@ _eof_trans:
|
|
15669
15613
|
lexer->herebody_s = 0;
|
15670
15614
|
}
|
15671
15615
|
}
|
15672
|
-
#line
|
15616
|
+
#line 2170 "ext/lexer/lexer.rl"
|
15673
15617
|
{te = p;p--;}
|
15674
15618
|
break;
|
15675
15619
|
case 378:
|
@@ -15680,7 +15624,7 @@ _eof_trans:
|
|
15680
15624
|
lexer->herebody_s = 0;
|
15681
15625
|
}
|
15682
15626
|
}
|
15683
|
-
#line
|
15627
|
+
#line 2172 "ext/lexer/lexer.rl"
|
15684
15628
|
{te = p;p--;{ {cs = 182;goto _again;} }}
|
15685
15629
|
break;
|
15686
15630
|
case 471:
|
@@ -15691,7 +15635,7 @@ _eof_trans:
|
|
15691
15635
|
lexer->herebody_s = 0;
|
15692
15636
|
}
|
15693
15637
|
}
|
15694
|
-
#line
|
15638
|
+
#line 2464 "ext/lexer/lexer.rl"
|
15695
15639
|
{te = p;p--;}
|
15696
15640
|
break;
|
15697
15641
|
case 398:
|
@@ -15702,7 +15646,7 @@ _eof_trans:
|
|
15702
15646
|
lexer->herebody_s = 0;
|
15703
15647
|
}
|
15704
15648
|
}
|
15705
|
-
#line
|
15649
|
+
#line 2466 "ext/lexer/lexer.rl"
|
15706
15650
|
{te = p;p--;{ {cs = 945;goto _again;} }}
|
15707
15651
|
break;
|
15708
15652
|
case 93:
|
@@ -15713,11 +15657,11 @@ _eof_trans:
|
|
15713
15657
|
lexer->herebody_s = 0;
|
15714
15658
|
}
|
15715
15659
|
}
|
15716
|
-
#line
|
15660
|
+
#line 2512 "ext/lexer/lexer.rl"
|
15717
15661
|
{te = p;p--;}
|
15718
15662
|
break;
|
15719
15663
|
case 250:
|
15720
|
-
#line
|
15664
|
+
#line 1399 "ext/lexer/lexer.rl"
|
15721
15665
|
{
|
15722
15666
|
stack_state_push(&lexer->cond, 0);
|
15723
15667
|
stack_state_push(&lexer->cmdarg, 0);
|
@@ -15727,7 +15671,7 @@ _eof_trans:
|
|
15727
15671
|
literal_start_interp_brace(current_literal);
|
15728
15672
|
}
|
15729
15673
|
}
|
15730
|
-
#line
|
15674
|
+
#line 1749 "ext/lexer/lexer.rl"
|
15731
15675
|
{te = p;p--;{
|
15732
15676
|
VALUE val = array_last(lexer->lambda_stack);
|
15733
15677
|
if (val != Qnil && NUM2INT(val) == lexer->paren_nest) {
|
@@ -15740,7 +15684,7 @@ _eof_trans:
|
|
15740
15684
|
}}
|
15741
15685
|
break;
|
15742
15686
|
case 272:
|
15743
|
-
#line
|
15687
|
+
#line 1399 "ext/lexer/lexer.rl"
|
15744
15688
|
{
|
15745
15689
|
stack_state_push(&lexer->cond, 0);
|
15746
15690
|
stack_state_push(&lexer->cmdarg, 0);
|
@@ -15750,7 +15694,7 @@ _eof_trans:
|
|
15750
15694
|
literal_start_interp_brace(current_literal);
|
15751
15695
|
}
|
15752
15696
|
}
|
15753
|
-
#line
|
15697
|
+
#line 1846 "ext/lexer/lexer.rl"
|
15754
15698
|
{te = p;p--;{
|
15755
15699
|
VALUE val = array_last(lexer->lambda_stack);
|
15756
15700
|
if (val != Qnil && NUM2INT(val) == lexer->paren_nest) {
|
@@ -15763,7 +15707,7 @@ _eof_trans:
|
|
15763
15707
|
}}
|
15764
15708
|
break;
|
15765
15709
|
case 364:
|
15766
|
-
#line
|
15710
|
+
#line 1399 "ext/lexer/lexer.rl"
|
15767
15711
|
{
|
15768
15712
|
stack_state_push(&lexer->cond, 0);
|
15769
15713
|
stack_state_push(&lexer->cmdarg, 0);
|
@@ -15773,7 +15717,7 @@ _eof_trans:
|
|
15773
15717
|
literal_start_interp_brace(current_literal);
|
15774
15718
|
}
|
15775
15719
|
}
|
15776
|
-
#line
|
15720
|
+
#line 2050 "ext/lexer/lexer.rl"
|
15777
15721
|
{te = p;p--;{
|
15778
15722
|
VALUE val = array_last(lexer->lambda_stack);
|
15779
15723
|
if (val != Qnil && NUM2INT(val) == lexer->paren_nest) {
|
@@ -15786,7 +15730,7 @@ _eof_trans:
|
|
15786
15730
|
}}
|
15787
15731
|
break;
|
15788
15732
|
case 483:
|
15789
|
-
#line
|
15733
|
+
#line 1399 "ext/lexer/lexer.rl"
|
15790
15734
|
{
|
15791
15735
|
stack_state_push(&lexer->cond, 0);
|
15792
15736
|
stack_state_push(&lexer->cmdarg, 0);
|
@@ -15796,7 +15740,7 @@ _eof_trans:
|
|
15796
15740
|
literal_start_interp_brace(current_literal);
|
15797
15741
|
}
|
15798
15742
|
}
|
15799
|
-
#line
|
15743
|
+
#line 2186 "ext/lexer/lexer.rl"
|
15800
15744
|
{te = p;p--;{
|
15801
15745
|
VALUE val = array_last(lexer->lambda_stack);
|
15802
15746
|
if (val != Qnil && NUM2INT(val) == lexer->paren_nest) {
|
@@ -15809,7 +15753,7 @@ _eof_trans:
|
|
15809
15753
|
}}
|
15810
15754
|
break;
|
15811
15755
|
case 484:
|
15812
|
-
#line
|
15756
|
+
#line 1409 "ext/lexer/lexer.rl"
|
15813
15757
|
{
|
15814
15758
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
15815
15759
|
if (current_literal != NULL) {
|
@@ -15837,7 +15781,7 @@ _eof_trans:
|
|
15837
15781
|
}
|
15838
15782
|
}
|
15839
15783
|
}
|
15840
|
-
#line
|
15784
|
+
#line 2398 "ext/lexer/lexer.rl"
|
15841
15785
|
{te = p;p--;{
|
15842
15786
|
emit(tRCURLY);
|
15843
15787
|
|
@@ -15859,94 +15803,94 @@ _eof_trans:
|
|
15859
15803
|
}}
|
15860
15804
|
break;
|
15861
15805
|
case 60:
|
15862
|
-
#line
|
15806
|
+
#line 1542 "ext/lexer/lexer.rl"
|
15863
15807
|
{ sharp_s = p - 1; }
|
15864
|
-
#line
|
15808
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15865
15809
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15866
15810
|
break;
|
15867
15811
|
case 64:
|
15868
|
-
#line
|
15812
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15869
15813
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15870
15814
|
#line 1002 "ext/lexer/lexer.rl"
|
15871
15815
|
{ lexer->newline_s = p; }
|
15872
15816
|
break;
|
15873
15817
|
case 204:
|
15874
|
-
#line
|
15818
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15875
15819
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15876
|
-
#line
|
15820
|
+
#line 1688 "ext/lexer/lexer.rl"
|
15877
15821
|
{te = p;p--;}
|
15878
15822
|
break;
|
15879
15823
|
case 219:
|
15880
|
-
#line
|
15824
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15881
15825
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15882
|
-
#line
|
15826
|
+
#line 1701 "ext/lexer/lexer.rl"
|
15883
15827
|
{te = p;p--;}
|
15884
15828
|
break;
|
15885
15829
|
case 231:
|
15886
|
-
#line
|
15830
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15887
15831
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15888
|
-
#line
|
15832
|
+
#line 1723 "ext/lexer/lexer.rl"
|
15889
15833
|
{te = p;p--;}
|
15890
15834
|
break;
|
15891
15835
|
case 253:
|
15892
|
-
#line
|
15836
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15893
15837
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15894
|
-
#line
|
15838
|
+
#line 1806 "ext/lexer/lexer.rl"
|
15895
15839
|
{te = p;p--;{ {cs = 768;goto _again;} }}
|
15896
15840
|
break;
|
15897
15841
|
case 268:
|
15898
|
-
#line
|
15842
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15899
15843
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15900
|
-
#line
|
15844
|
+
#line 1859 "ext/lexer/lexer.rl"
|
15901
15845
|
{te = p;p--;}
|
15902
15846
|
break;
|
15903
15847
|
case 280:
|
15904
|
-
#line
|
15848
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15905
15849
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15906
|
-
#line
|
15850
|
+
#line 1874 "ext/lexer/lexer.rl"
|
15907
15851
|
{te = p;p--;}
|
15908
15852
|
break;
|
15909
15853
|
case 306:
|
15910
|
-
#line
|
15854
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15911
15855
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15912
|
-
#line
|
15856
|
+
#line 2129 "ext/lexer/lexer.rl"
|
15913
15857
|
{te = p;p--;}
|
15914
15858
|
break;
|
15915
15859
|
case 370:
|
15916
|
-
#line
|
15860
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15917
15861
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15918
|
-
#line
|
15862
|
+
#line 2147 "ext/lexer/lexer.rl"
|
15919
15863
|
{te = p;p--;}
|
15920
15864
|
break;
|
15921
15865
|
case 380:
|
15922
|
-
#line
|
15866
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15923
15867
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15924
|
-
#line
|
15868
|
+
#line 2170 "ext/lexer/lexer.rl"
|
15925
15869
|
{te = p;p--;}
|
15926
15870
|
break;
|
15927
15871
|
case 402:
|
15928
|
-
#line
|
15872
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15929
15873
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15930
|
-
#line
|
15874
|
+
#line 2464 "ext/lexer/lexer.rl"
|
15931
15875
|
{te = p;p--;}
|
15932
15876
|
break;
|
15933
15877
|
case 95:
|
15934
|
-
#line
|
15878
|
+
#line 1543 "ext/lexer/lexer.rl"
|
15935
15879
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
15936
|
-
#line
|
15880
|
+
#line 2512 "ext/lexer/lexer.rl"
|
15937
15881
|
{te = p;p--;}
|
15938
15882
|
break;
|
15939
15883
|
case 225:
|
15940
|
-
#line
|
15884
|
+
#line 1561 "ext/lexer/lexer.rl"
|
15941
15885
|
{ tm = p; }
|
15942
|
-
#line
|
15886
|
+
#line 1714 "ext/lexer/lexer.rl"
|
15943
15887
|
{te = p;p--;{ emit_token(lexer, tFID, tok(lexer, ts, tm), ts, tm);
|
15944
15888
|
cs = (arg_or_cmdarg(command_state)); p = tm - 1; {p++; goto _out; } }}
|
15945
15889
|
break;
|
15946
15890
|
case 318:
|
15947
|
-
#line
|
15891
|
+
#line 1561 "ext/lexer/lexer.rl"
|
15948
15892
|
{ tm = p; }
|
15949
|
-
#line
|
15893
|
+
#line 2005 "ext/lexer/lexer.rl"
|
15950
15894
|
{te = p;p--;{
|
15951
15895
|
emit_token(lexer, tSYMBOL, tok(lexer, ts + 1, tm), ts, tm);
|
15952
15896
|
p = tm - 1;
|
@@ -15954,13 +15898,13 @@ _eof_trans:
|
|
15954
15898
|
}}
|
15955
15899
|
break;
|
15956
15900
|
case 291:
|
15957
|
-
#line
|
15901
|
+
#line 1561 "ext/lexer/lexer.rl"
|
15958
15902
|
{ tm = p; }
|
15959
|
-
#line
|
15903
|
+
#line 2109 "ext/lexer/lexer.rl"
|
15960
15904
|
{te = p;p--;{ p = ts - 1; {cs = 768;goto _again;} }}
|
15961
15905
|
break;
|
15962
15906
|
case 395:
|
15963
|
-
#line
|
15907
|
+
#line 1561 "ext/lexer/lexer.rl"
|
15964
15908
|
{ tm = p; }
|
15965
15909
|
#line 1 "NONE"
|
15966
15910
|
{ switch( act ) {
|
@@ -16144,16 +16088,16 @@ _eof_trans:
|
|
16144
16088
|
}
|
16145
16089
|
break;
|
16146
16090
|
case 226:
|
16147
|
-
#line
|
16091
|
+
#line 1562 "ext/lexer/lexer.rl"
|
16148
16092
|
{ tm = p - 2; }
|
16149
|
-
#line
|
16093
|
+
#line 1714 "ext/lexer/lexer.rl"
|
16150
16094
|
{te = p;p--;{ emit_token(lexer, tFID, tok(lexer, ts, tm), ts, tm);
|
16151
16095
|
cs = (arg_or_cmdarg(command_state)); p = tm - 1; {p++; goto _out; } }}
|
16152
16096
|
break;
|
16153
16097
|
case 319:
|
16154
|
-
#line
|
16098
|
+
#line 1562 "ext/lexer/lexer.rl"
|
16155
16099
|
{ tm = p - 2; }
|
16156
|
-
#line
|
16100
|
+
#line 2005 "ext/lexer/lexer.rl"
|
16157
16101
|
{te = p;p--;{
|
16158
16102
|
emit_token(lexer, tSYMBOL, tok(lexer, ts + 1, tm), ts, tm);
|
16159
16103
|
p = tm - 1;
|
@@ -16161,15 +16105,15 @@ _eof_trans:
|
|
16161
16105
|
}}
|
16162
16106
|
break;
|
16163
16107
|
case 293:
|
16164
|
-
#line
|
16108
|
+
#line 1562 "ext/lexer/lexer.rl"
|
16165
16109
|
{ tm = p - 2; }
|
16166
|
-
#line
|
16110
|
+
#line 2109 "ext/lexer/lexer.rl"
|
16167
16111
|
{te = p;p--;{ p = ts - 1; {cs = 768;goto _again;} }}
|
16168
16112
|
break;
|
16169
16113
|
case 396:
|
16170
|
-
#line
|
16114
|
+
#line 1562 "ext/lexer/lexer.rl"
|
16171
16115
|
{ tm = p - 2; }
|
16172
|
-
#line
|
16116
|
+
#line 2373 "ext/lexer/lexer.rl"
|
16173
16117
|
{te = p;p--;{
|
16174
16118
|
if (tm == te) {
|
16175
16119
|
emit(tFID);
|
@@ -16181,9 +16125,9 @@ _eof_trans:
|
|
16181
16125
|
}}
|
16182
16126
|
break;
|
16183
16127
|
case 320:
|
16184
|
-
#line
|
16128
|
+
#line 1567 "ext/lexer/lexer.rl"
|
16185
16129
|
{ tm = p; }
|
16186
|
-
#line
|
16130
|
+
#line 2005 "ext/lexer/lexer.rl"
|
16187
16131
|
{te = p;p--;{
|
16188
16132
|
emit_token(lexer, tSYMBOL, tok(lexer, ts + 1, tm), ts, tm);
|
16189
16133
|
p = tm - 1;
|
@@ -16191,15 +16135,15 @@ _eof_trans:
|
|
16191
16135
|
}}
|
16192
16136
|
break;
|
16193
16137
|
case 294:
|
16194
|
-
#line
|
16138
|
+
#line 1567 "ext/lexer/lexer.rl"
|
16195
16139
|
{ tm = p; }
|
16196
|
-
#line
|
16140
|
+
#line 2109 "ext/lexer/lexer.rl"
|
16197
16141
|
{te = p;p--;{ p = ts - 1; {cs = 768;goto _again;} }}
|
16198
16142
|
break;
|
16199
16143
|
case 321:
|
16200
|
-
#line
|
16144
|
+
#line 1568 "ext/lexer/lexer.rl"
|
16201
16145
|
{ tm = p - 2; }
|
16202
|
-
#line
|
16146
|
+
#line 2005 "ext/lexer/lexer.rl"
|
16203
16147
|
{te = p;p--;{
|
16204
16148
|
emit_token(lexer, tSYMBOL, tok(lexer, ts + 1, tm), ts, tm);
|
16205
16149
|
p = tm - 1;
|
@@ -16207,15 +16151,15 @@ _eof_trans:
|
|
16207
16151
|
}}
|
16208
16152
|
break;
|
16209
16153
|
case 295:
|
16210
|
-
#line
|
16154
|
+
#line 1568 "ext/lexer/lexer.rl"
|
16211
16155
|
{ tm = p - 2; }
|
16212
|
-
#line
|
16156
|
+
#line 2109 "ext/lexer/lexer.rl"
|
16213
16157
|
{te = p;p--;{ p = ts - 1; {cs = 768;goto _again;} }}
|
16214
16158
|
break;
|
16215
16159
|
case 325:
|
16216
|
-
#line
|
16160
|
+
#line 1569 "ext/lexer/lexer.rl"
|
16217
16161
|
{ tm = p - 2; }
|
16218
|
-
#line
|
16162
|
+
#line 2005 "ext/lexer/lexer.rl"
|
16219
16163
|
{te = p;p--;{
|
16220
16164
|
emit_token(lexer, tSYMBOL, tok(lexer, ts + 1, tm), ts, tm);
|
16221
16165
|
p = tm - 1;
|
@@ -16223,15 +16167,15 @@ _eof_trans:
|
|
16223
16167
|
}}
|
16224
16168
|
break;
|
16225
16169
|
case 298:
|
16226
|
-
#line
|
16170
|
+
#line 1569 "ext/lexer/lexer.rl"
|
16227
16171
|
{ tm = p - 2; }
|
16228
|
-
#line
|
16172
|
+
#line 2109 "ext/lexer/lexer.rl"
|
16229
16173
|
{te = p;p--;{ p = ts - 1; {cs = 768;goto _again;} }}
|
16230
16174
|
break;
|
16231
16175
|
case 324:
|
16232
|
-
#line
|
16176
|
+
#line 1570 "ext/lexer/lexer.rl"
|
16233
16177
|
{ tm = p - 2; }
|
16234
|
-
#line
|
16178
|
+
#line 2005 "ext/lexer/lexer.rl"
|
16235
16179
|
{te = p;p--;{
|
16236
16180
|
emit_token(lexer, tSYMBOL, tok(lexer, ts + 1, tm), ts, tm);
|
16237
16181
|
p = tm - 1;
|
@@ -16239,7 +16183,7 @@ _eof_trans:
|
|
16239
16183
|
}}
|
16240
16184
|
break;
|
16241
16185
|
case 297:
|
16242
|
-
#line
|
16186
|
+
#line 1570 "ext/lexer/lexer.rl"
|
16243
16187
|
{ tm = p - 2; }
|
16244
16188
|
#line 1 "NONE"
|
16245
16189
|
{ switch( act ) {
|
@@ -16286,9 +16230,9 @@ _eof_trans:
|
|
16286
16230
|
}
|
16287
16231
|
break;
|
16288
16232
|
case 322:
|
16289
|
-
#line
|
16233
|
+
#line 1571 "ext/lexer/lexer.rl"
|
16290
16234
|
{ tm = p - 3; }
|
16291
|
-
#line
|
16235
|
+
#line 2005 "ext/lexer/lexer.rl"
|
16292
16236
|
{te = p;p--;{
|
16293
16237
|
emit_token(lexer, tSYMBOL, tok(lexer, ts + 1, tm), ts, tm);
|
16294
16238
|
p = tm - 1;
|
@@ -16296,15 +16240,15 @@ _eof_trans:
|
|
16296
16240
|
}}
|
16297
16241
|
break;
|
16298
16242
|
case 296:
|
16299
|
-
#line
|
16243
|
+
#line 1571 "ext/lexer/lexer.rl"
|
16300
16244
|
{ tm = p - 3; }
|
16301
|
-
#line
|
16245
|
+
#line 2109 "ext/lexer/lexer.rl"
|
16302
16246
|
{te = p;p--;{ p = ts - 1; {cs = 768;goto _again;} }}
|
16303
16247
|
break;
|
16304
16248
|
case 323:
|
16305
|
-
#line
|
16249
|
+
#line 1576 "ext/lexer/lexer.rl"
|
16306
16250
|
{ tm = p - 2; }
|
16307
|
-
#line
|
16251
|
+
#line 2005 "ext/lexer/lexer.rl"
|
16308
16252
|
{te = p;p--;{
|
16309
16253
|
emit_token(lexer, tSYMBOL, tok(lexer, ts + 1, tm), ts, tm);
|
16310
16254
|
p = tm - 1;
|
@@ -16312,9 +16256,9 @@ _eof_trans:
|
|
16312
16256
|
}}
|
16313
16257
|
break;
|
16314
16258
|
case 466:
|
16315
|
-
#line
|
16259
|
+
#line 1580 "ext/lexer/lexer.rl"
|
16316
16260
|
{ tm = p - 2; }
|
16317
|
-
#line
|
16261
|
+
#line 2358 "ext/lexer/lexer.rl"
|
16318
16262
|
{te = p;p--;{
|
16319
16263
|
emit_token(lexer, tCONSTANT, tok(lexer, ts, tm), ts, tm);
|
16320
16264
|
p = tm - 1;
|
@@ -16322,46 +16266,46 @@ _eof_trans:
|
|
16322
16266
|
}}
|
16323
16267
|
break;
|
16324
16268
|
case 249:
|
16325
|
-
#line
|
16269
|
+
#line 1583 "ext/lexer/lexer.rl"
|
16326
16270
|
{
|
16327
16271
|
stack_state_push(&lexer->cond, 0);
|
16328
16272
|
stack_state_push(&lexer->cmdarg, 0);
|
16329
16273
|
}
|
16330
|
-
#line
|
16274
|
+
#line 1744 "ext/lexer/lexer.rl"
|
16331
16275
|
{te = p;p--;{
|
16332
16276
|
emit_token(lexer, tLBRACK, rb_str_new2("["), te - 1, te);
|
16333
16277
|
cs = 536; {p++; goto _out; }
|
16334
16278
|
}}
|
16335
16279
|
break;
|
16336
16280
|
case 357:
|
16337
|
-
#line
|
16281
|
+
#line 1583 "ext/lexer/lexer.rl"
|
16338
16282
|
{
|
16339
16283
|
stack_state_push(&lexer->cond, 0);
|
16340
16284
|
stack_state_push(&lexer->cmdarg, 0);
|
16341
16285
|
}
|
16342
|
-
#line
|
16286
|
+
#line 2061 "ext/lexer/lexer.rl"
|
16343
16287
|
{te = p;p--;{
|
16344
16288
|
emit_token(lexer, tLBRACK, tok(lexer, ts, te), ts, te);
|
16345
16289
|
{p++; goto _out; }
|
16346
16290
|
}}
|
16347
16291
|
break;
|
16348
16292
|
case 469:
|
16349
|
-
#line
|
16293
|
+
#line 1583 "ext/lexer/lexer.rl"
|
16350
16294
|
{
|
16351
16295
|
stack_state_push(&lexer->cond, 0);
|
16352
16296
|
stack_state_push(&lexer->cmdarg, 0);
|
16353
16297
|
}
|
16354
|
-
#line
|
16298
|
+
#line 2458 "ext/lexer/lexer.rl"
|
16355
16299
|
{te = p;p--;{ emit(tLBRACK2); cs = 536; {p++; goto _out; } }}
|
16356
16300
|
break;
|
16357
16301
|
case 241:
|
16358
|
-
#line
|
16302
|
+
#line 1588 "ext/lexer/lexer.rl"
|
16359
16303
|
{
|
16360
16304
|
stack_state_push(&lexer->cond, 0);
|
16361
16305
|
stack_state_push(&lexer->cmdarg, 0);
|
16362
16306
|
lexer->paren_nest += 1;
|
16363
16307
|
}
|
16364
|
-
#line
|
16308
|
+
#line 1732 "ext/lexer/lexer.rl"
|
16365
16309
|
{te = p;p--;{
|
16366
16310
|
if (lexer->version == 18) {
|
16367
16311
|
emit_token(lexer, tLPAREN2, rb_str_new2("("), te - 1, te);
|
@@ -16373,23 +16317,23 @@ _eof_trans:
|
|
16373
16317
|
}}
|
16374
16318
|
break;
|
16375
16319
|
case 254:
|
16376
|
-
#line
|
16320
|
+
#line 1588 "ext/lexer/lexer.rl"
|
16377
16321
|
{
|
16378
16322
|
stack_state_push(&lexer->cond, 0);
|
16379
16323
|
stack_state_push(&lexer->cmdarg, 0);
|
16380
16324
|
lexer->paren_nest += 1;
|
16381
16325
|
}
|
16382
|
-
#line
|
16326
|
+
#line 1742 "ext/lexer/lexer.rl"
|
16383
16327
|
{te = p;p--;{ emit(tLPAREN2); cs = 536; {p++; goto _out; } }}
|
16384
16328
|
break;
|
16385
16329
|
case 262:
|
16386
|
-
#line
|
16330
|
+
#line 1588 "ext/lexer/lexer.rl"
|
16387
16331
|
{
|
16388
16332
|
stack_state_push(&lexer->cond, 0);
|
16389
16333
|
stack_state_push(&lexer->cmdarg, 0);
|
16390
16334
|
lexer->paren_nest += 1;
|
16391
16335
|
}
|
16392
|
-
#line
|
16336
|
+
#line 1817 "ext/lexer/lexer.rl"
|
16393
16337
|
{te = p;p--;{
|
16394
16338
|
emit_token(lexer, tLPAREN_ARG, rb_str_new2("("), te - 1, te);
|
16395
16339
|
if (lexer->version == 18) {
|
@@ -16400,35 +16344,35 @@ _eof_trans:
|
|
16400
16344
|
}}
|
16401
16345
|
break;
|
16402
16346
|
case 311:
|
16403
|
-
#line
|
16347
|
+
#line 1588 "ext/lexer/lexer.rl"
|
16404
16348
|
{
|
16405
16349
|
stack_state_push(&lexer->cond, 0);
|
16406
16350
|
stack_state_push(&lexer->cmdarg, 0);
|
16407
16351
|
lexer->paren_nest += 1;
|
16408
16352
|
}
|
16409
|
-
#line
|
16353
|
+
#line 2066 "ext/lexer/lexer.rl"
|
16410
16354
|
{te = p;p--;{
|
16411
16355
|
emit_token(lexer, tLPAREN, tok(lexer, ts, te), ts, te);
|
16412
16356
|
{p++; goto _out; }
|
16413
16357
|
}}
|
16414
16358
|
break;
|
16415
16359
|
case 408:
|
16416
|
-
#line
|
16360
|
+
#line 1588 "ext/lexer/lexer.rl"
|
16417
16361
|
{
|
16418
16362
|
stack_state_push(&lexer->cond, 0);
|
16419
16363
|
stack_state_push(&lexer->cmdarg, 0);
|
16420
16364
|
lexer->paren_nest += 1;
|
16421
16365
|
}
|
16422
|
-
#line
|
16366
|
+
#line 2395 "ext/lexer/lexer.rl"
|
16423
16367
|
{te = p;p--;{ emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
16424
16368
|
cs = 536; {p++; goto _out; } }}
|
16425
16369
|
break;
|
16426
16370
|
case 409:
|
16427
|
-
#line
|
16371
|
+
#line 1594 "ext/lexer/lexer.rl"
|
16428
16372
|
{
|
16429
16373
|
lexer->paren_nest -= 1;
|
16430
16374
|
}
|
16431
|
-
#line
|
16375
|
+
#line 2418 "ext/lexer/lexer.rl"
|
16432
16376
|
{te = p;p--;{
|
16433
16377
|
emit(tRPAREN);
|
16434
16378
|
|
@@ -16444,15 +16388,15 @@ _eof_trans:
|
|
16444
16388
|
}}
|
16445
16389
|
break;
|
16446
16390
|
case 70:
|
16447
|
-
#line
|
16391
|
+
#line 1923 "ext/lexer/lexer.rl"
|
16448
16392
|
{ heredoc_e = p; }
|
16449
16393
|
#line 1002 "ext/lexer/lexer.rl"
|
16450
16394
|
{ lexer->newline_s = p; }
|
16451
16395
|
break;
|
16452
16396
|
case 328:
|
16453
|
-
#line
|
16397
|
+
#line 1924 "ext/lexer/lexer.rl"
|
16454
16398
|
{ if (!lexer->herebody_s) lexer->herebody_s = p; }
|
16455
|
-
#line
|
16399
|
+
#line 1924 "ext/lexer/lexer.rl"
|
16456
16400
|
{te = p;p--;{
|
16457
16401
|
|
16458
16402
|
VALUE heredoc = tok(lexer, ts, heredoc_e);
|
@@ -16517,9 +16461,9 @@ _eof_trans:
|
|
16517
16461
|
}}
|
16518
16462
|
break;
|
16519
16463
|
case 333:
|
16520
|
-
#line
|
16464
|
+
#line 2018 "ext/lexer/lexer.rl"
|
16521
16465
|
{ lexer->escape = Qnil; }
|
16522
|
-
#line
|
16466
|
+
#line 2019 "ext/lexer/lexer.rl"
|
16523
16467
|
{te = p;p--;{
|
16524
16468
|
VALUE value = lexer->escape;
|
16525
16469
|
if (value == Qnil)
|
@@ -16534,9 +16478,9 @@ _eof_trans:
|
|
16534
16478
|
}}
|
16535
16479
|
break;
|
16536
16480
|
case 360:
|
16537
|
-
#line
|
16481
|
+
#line 2075 "ext/lexer/lexer.rl"
|
16538
16482
|
{ tm = p; }
|
16539
|
-
#line
|
16483
|
+
#line 2075 "ext/lexer/lexer.rl"
|
16540
16484
|
{te = p;p--;{
|
16541
16485
|
emit_token(lexer, kRESCUE, tok(lexer, ts, tm), ts, tm);
|
16542
16486
|
p = tm - 1;
|
@@ -16544,51 +16488,51 @@ _eof_trans:
|
|
16544
16488
|
}}
|
16545
16489
|
break;
|
16546
16490
|
case 454:
|
16547
|
-
#line
|
16491
|
+
#line 2261 "ext/lexer/lexer.rl"
|
16548
16492
|
{ num_base = 16; num_digits_s = p; }
|
16549
|
-
#line
|
16493
|
+
#line 2267 "ext/lexer/lexer.rl"
|
16550
16494
|
{ num_suffix_s = p; }
|
16551
16495
|
break;
|
16552
16496
|
case 446:
|
16553
|
-
#line
|
16497
|
+
#line 2262 "ext/lexer/lexer.rl"
|
16554
16498
|
{ num_base = 10; num_digits_s = p; }
|
16555
|
-
#line
|
16499
|
+
#line 2267 "ext/lexer/lexer.rl"
|
16556
16500
|
{ num_suffix_s = p; }
|
16557
16501
|
break;
|
16558
16502
|
case 450:
|
16559
|
-
#line
|
16503
|
+
#line 2263 "ext/lexer/lexer.rl"
|
16560
16504
|
{ num_base = 8; num_digits_s = p; }
|
16561
|
-
#line
|
16505
|
+
#line 2267 "ext/lexer/lexer.rl"
|
16562
16506
|
{ num_suffix_s = p; }
|
16563
16507
|
break;
|
16564
16508
|
case 442:
|
16565
|
-
#line
|
16509
|
+
#line 2264 "ext/lexer/lexer.rl"
|
16566
16510
|
{ num_base = 2; num_digits_s = p; }
|
16567
|
-
#line
|
16511
|
+
#line 2267 "ext/lexer/lexer.rl"
|
16568
16512
|
{ num_suffix_s = p; }
|
16569
16513
|
break;
|
16570
16514
|
case 461:
|
16571
|
-
#line
|
16515
|
+
#line 2265 "ext/lexer/lexer.rl"
|
16572
16516
|
{ num_base = 10; num_digits_s = ts; }
|
16573
|
-
#line
|
16517
|
+
#line 2267 "ext/lexer/lexer.rl"
|
16574
16518
|
{ num_suffix_s = p; }
|
16575
16519
|
break;
|
16576
16520
|
case 419:
|
16577
|
-
#line
|
16521
|
+
#line 2266 "ext/lexer/lexer.rl"
|
16578
16522
|
{ num_base = 8; num_digits_s = ts; }
|
16579
|
-
#line
|
16523
|
+
#line 2267 "ext/lexer/lexer.rl"
|
16580
16524
|
{ num_suffix_s = p; }
|
16581
16525
|
break;
|
16582
16526
|
case 463:
|
16583
|
-
#line
|
16527
|
+
#line 2267 "ext/lexer/lexer.rl"
|
16584
16528
|
{ num_suffix_s = p; }
|
16585
16529
|
#line 1076 "ext/lexer/lexer.rl"
|
16586
16530
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
16587
16531
|
break;
|
16588
16532
|
case 86:
|
16589
|
-
#line
|
16533
|
+
#line 2488 "ext/lexer/lexer.rl"
|
16590
16534
|
{ tm = p; }
|
16591
|
-
#line
|
16535
|
+
#line 2488 "ext/lexer/lexer.rl"
|
16592
16536
|
{te = p+1;{ p = tm - 1; {cs = 768;goto _again;} }}
|
16593
16537
|
break;
|
16594
16538
|
case 8:
|
@@ -16600,217 +16544,217 @@ _eof_trans:
|
|
16600
16544
|
case 434:
|
16601
16545
|
#line 1 "NONE"
|
16602
16546
|
{te = p+1;}
|
16603
|
-
#line
|
16547
|
+
#line 2267 "ext/lexer/lexer.rl"
|
16604
16548
|
{ num_suffix_s = p; }
|
16605
16549
|
break;
|
16606
16550
|
case 424:
|
16607
16551
|
#line 1 "NONE"
|
16608
16552
|
{te = p+1;}
|
16609
|
-
#line
|
16553
|
+
#line 2335 "ext/lexer/lexer.rl"
|
16610
16554
|
{ num_suffix_s = p; }
|
16611
16555
|
break;
|
16612
16556
|
case 210:
|
16613
16557
|
#line 1 "NONE"
|
16614
16558
|
{te = p+1;}
|
16615
|
-
#line
|
16559
|
+
#line 1654 "ext/lexer/lexer.rl"
|
16616
16560
|
{act = 39;}
|
16617
16561
|
break;
|
16618
16562
|
case 197:
|
16619
16563
|
#line 1 "NONE"
|
16620
16564
|
{te = p+1;}
|
16621
|
-
#line
|
16565
|
+
#line 1657 "ext/lexer/lexer.rl"
|
16622
16566
|
{act = 40;}
|
16623
16567
|
break;
|
16624
16568
|
case 193:
|
16625
16569
|
#line 1 "NONE"
|
16626
16570
|
{te = p+1;}
|
16627
|
-
#line
|
16571
|
+
#line 1659 "ext/lexer/lexer.rl"
|
16628
16572
|
{act = 41;}
|
16629
16573
|
break;
|
16630
16574
|
case 26:
|
16631
16575
|
#line 1 "NONE"
|
16632
16576
|
{te = p+1;}
|
16633
|
-
#line
|
16577
|
+
#line 1765 "ext/lexer/lexer.rl"
|
16634
16578
|
{act = 67;}
|
16635
16579
|
break;
|
16636
16580
|
case 243:
|
16637
16581
|
#line 1 "NONE"
|
16638
16582
|
{te = p+1;}
|
16639
|
-
#line
|
16583
|
+
#line 1775 "ext/lexer/lexer.rl"
|
16640
16584
|
{act = 68;}
|
16641
16585
|
break;
|
16642
16586
|
case 27:
|
16643
16587
|
#line 1 "NONE"
|
16644
16588
|
{te = p+1;}
|
16645
|
-
#line
|
16589
|
+
#line 1799 "ext/lexer/lexer.rl"
|
16646
16590
|
{act = 73;}
|
16647
16591
|
break;
|
16648
16592
|
case 236:
|
16649
16593
|
#line 1 "NONE"
|
16650
16594
|
{te = p+1;}
|
16651
|
-
#line
|
16595
|
+
#line 1804 "ext/lexer/lexer.rl"
|
16652
16596
|
{act = 74;}
|
16653
16597
|
break;
|
16654
16598
|
case 263:
|
16655
16599
|
#line 1 "NONE"
|
16656
16600
|
{te = p+1;}
|
16657
|
-
#line
|
16601
|
+
#line 1827 "ext/lexer/lexer.rl"
|
16658
16602
|
{act = 80;}
|
16659
16603
|
break;
|
16660
16604
|
case 45:
|
16661
16605
|
#line 1 "NONE"
|
16662
16606
|
{te = p+1;}
|
16663
|
-
#line
|
16607
|
+
#line 1839 "ext/lexer/lexer.rl"
|
16664
16608
|
{act = 81;}
|
16665
16609
|
break;
|
16666
16610
|
case 284:
|
16667
16611
|
#line 1 "NONE"
|
16668
16612
|
{te = p+1;}
|
16669
|
-
#line
|
16613
|
+
#line 1869 "ext/lexer/lexer.rl"
|
16670
16614
|
{act = 88;}
|
16671
16615
|
break;
|
16672
16616
|
case 273:
|
16673
16617
|
#line 1 "NONE"
|
16674
16618
|
{te = p+1;}
|
16675
|
-
#line
|
16619
|
+
#line 1872 "ext/lexer/lexer.rl"
|
16676
16620
|
{act = 89;}
|
16677
16621
|
break;
|
16678
16622
|
case 287:
|
16679
16623
|
#line 1 "NONE"
|
16680
16624
|
{te = p+1;}
|
16681
|
-
#line
|
16625
|
+
#line 2072 "ext/lexer/lexer.rl"
|
16682
16626
|
{act = 113;}
|
16683
16627
|
break;
|
16684
16628
|
case 359:
|
16685
16629
|
#line 1 "NONE"
|
16686
16630
|
{te = p+1;}
|
16687
|
-
#line
|
16631
|
+
#line 2075 "ext/lexer/lexer.rl"
|
16688
16632
|
{act = 114;}
|
16689
16633
|
break;
|
16690
16634
|
case 358:
|
16691
16635
|
#line 1 "NONE"
|
16692
16636
|
{te = p+1;}
|
16693
|
-
#line
|
16637
|
+
#line 2082 "ext/lexer/lexer.rl"
|
16694
16638
|
{act = 115;}
|
16695
16639
|
break;
|
16696
16640
|
case 72:
|
16697
16641
|
#line 1 "NONE"
|
16698
16642
|
{te = p+1;}
|
16699
|
-
#line
|
16643
|
+
#line 2109 "ext/lexer/lexer.rl"
|
16700
16644
|
{act = 117;}
|
16701
16645
|
break;
|
16702
16646
|
case 285:
|
16703
16647
|
#line 1 "NONE"
|
16704
16648
|
{te = p+1;}
|
16705
|
-
#line
|
16649
|
+
#line 1598 "ext/lexer/lexer.rl"
|
16706
16650
|
{act = 118;}
|
16707
16651
|
break;
|
16708
16652
|
case 288:
|
16709
16653
|
#line 1 "NONE"
|
16710
16654
|
{te = p+1;}
|
16711
|
-
#line
|
16655
|
+
#line 2141 "ext/lexer/lexer.rl"
|
16712
16656
|
{act = 122;}
|
16713
16657
|
break;
|
16714
16658
|
case 479:
|
16715
16659
|
#line 1 "NONE"
|
16716
16660
|
{te = p+1;}
|
16717
|
-
#line
|
16661
|
+
#line 2197 "ext/lexer/lexer.rl"
|
16718
16662
|
{act = 136;}
|
16719
16663
|
break;
|
16720
16664
|
case 474:
|
16721
16665
|
#line 1 "NONE"
|
16722
16666
|
{te = p+1;}
|
16723
|
-
#line
|
16667
|
+
#line 2209 "ext/lexer/lexer.rl"
|
16724
16668
|
{act = 137;}
|
16725
16669
|
break;
|
16726
16670
|
case 482:
|
16727
16671
|
#line 1 "NONE"
|
16728
16672
|
{te = p+1;}
|
16729
|
-
#line
|
16673
|
+
#line 2218 "ext/lexer/lexer.rl"
|
16730
16674
|
{act = 139;}
|
16731
16675
|
break;
|
16732
16676
|
case 475:
|
16733
16677
|
#line 1 "NONE"
|
16734
16678
|
{te = p+1;}
|
16735
|
-
#line
|
16679
|
+
#line 2222 "ext/lexer/lexer.rl"
|
16736
16680
|
{act = 140;}
|
16737
16681
|
break;
|
16738
16682
|
case 476:
|
16739
16683
|
#line 1 "NONE"
|
16740
16684
|
{te = p+1;}
|
16741
|
-
#line
|
16685
|
+
#line 2226 "ext/lexer/lexer.rl"
|
16742
16686
|
{act = 141;}
|
16743
16687
|
break;
|
16744
16688
|
case 481:
|
16745
16689
|
#line 1 "NONE"
|
16746
16690
|
{te = p+1;}
|
16747
|
-
#line
|
16691
|
+
#line 2230 "ext/lexer/lexer.rl"
|
16748
16692
|
{act = 142;}
|
16749
16693
|
break;
|
16750
16694
|
case 473:
|
16751
16695
|
#line 1 "NONE"
|
16752
16696
|
{te = p+1;}
|
16753
|
-
#line
|
16697
|
+
#line 2241 "ext/lexer/lexer.rl"
|
16754
16698
|
{act = 143;}
|
16755
16699
|
break;
|
16756
16700
|
case 468:
|
16757
16701
|
#line 1 "NONE"
|
16758
16702
|
{te = p+1;}
|
16759
|
-
#line
|
16703
|
+
#line 2258 "ext/lexer/lexer.rl"
|
16760
16704
|
{act = 144;}
|
16761
16705
|
break;
|
16762
16706
|
case 388:
|
16763
16707
|
#line 1 "NONE"
|
16764
16708
|
{te = p+1;}
|
16765
|
-
#line
|
16709
|
+
#line 2268 "ext/lexer/lexer.rl"
|
16766
16710
|
{act = 145;}
|
16767
16711
|
break;
|
16768
16712
|
case 422:
|
16769
16713
|
#line 1 "NONE"
|
16770
16714
|
{te = p+1;}
|
16771
|
-
#line
|
16715
|
+
#line 2320 "ext/lexer/lexer.rl"
|
16772
16716
|
{act = 148;}
|
16773
16717
|
break;
|
16774
16718
|
case 79:
|
16775
16719
|
#line 1 "NONE"
|
16776
16720
|
{te = p+1;}
|
16777
|
-
#line
|
16721
|
+
#line 2337 "ext/lexer/lexer.rl"
|
16778
16722
|
{act = 149;}
|
16779
16723
|
break;
|
16780
16724
|
case 391:
|
16781
16725
|
#line 1 "NONE"
|
16782
16726
|
{te = p+1;}
|
16783
|
-
#line
|
16727
|
+
#line 2356 "ext/lexer/lexer.rl"
|
16784
16728
|
{act = 151;}
|
16785
16729
|
break;
|
16786
16730
|
case 382:
|
16787
16731
|
#line 1 "NONE"
|
16788
16732
|
{te = p+1;}
|
16789
|
-
#line
|
16733
|
+
#line 1598 "ext/lexer/lexer.rl"
|
16790
16734
|
{act = 155;}
|
16791
16735
|
break;
|
16792
16736
|
case 394:
|
16793
16737
|
#line 1 "NONE"
|
16794
16738
|
{te = p+1;}
|
16795
|
-
#line
|
16739
|
+
#line 2373 "ext/lexer/lexer.rl"
|
16796
16740
|
{act = 156;}
|
16797
16741
|
break;
|
16798
16742
|
case 386:
|
16799
16743
|
#line 1 "NONE"
|
16800
16744
|
{te = p+1;}
|
16801
|
-
#line
|
16745
|
+
#line 2389 "ext/lexer/lexer.rl"
|
16802
16746
|
{act = 158;}
|
16803
16747
|
break;
|
16804
16748
|
case 393:
|
16805
16749
|
#line 1 "NONE"
|
16806
16750
|
{te = p+1;}
|
16807
|
-
#line
|
16751
|
+
#line 2395 "ext/lexer/lexer.rl"
|
16808
16752
|
{act = 159;}
|
16809
16753
|
break;
|
16810
16754
|
case 167:
|
16811
16755
|
#line 1002 "ext/lexer/lexer.rl"
|
16812
16756
|
{ lexer->newline_s = p; }
|
16813
|
-
#line
|
16757
|
+
#line 1335 "ext/lexer/lexer.rl"
|
16814
16758
|
{te = p+1;{
|
16815
16759
|
literal *current_literal = lit_stack_top(&lexer->literal_stack);
|
16816
16760
|
long str_s = current_literal->str_s;
|
@@ -16890,18 +16834,16 @@ _eof_trans:
|
|
16890
16834
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
16891
16835
|
}
|
16892
16836
|
} else {
|
16893
|
-
if (
|
16837
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
16838
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
16839
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
16840
|
+
VALUE token = tok(lexer, ts, te);
|
16841
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
16842
|
+
literal_extend_string(current_literal, token, ts, te);
|
16843
|
+
} else if (literal_regexp_p(current_literal)) {
|
16894
16844
|
VALUE token = tok(lexer, ts, te);
|
16895
16845
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
16896
16846
|
literal_extend_string(current_literal, token, ts, te);
|
16897
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
16898
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
16899
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
16900
|
-
} else {
|
16901
|
-
VALUE token = tok(lexer, ts, te);
|
16902
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
16903
|
-
literal_extend_string(current_literal, token, ts, te);
|
16904
|
-
}
|
16905
16847
|
} else if (lexer->escape == Qnil) {
|
16906
16848
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
16907
16849
|
} else {
|
@@ -16940,18 +16882,16 @@ _eof_trans:
|
|
16940
16882
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
16941
16883
|
}
|
16942
16884
|
} else {
|
16943
|
-
if (
|
16885
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
16886
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
16887
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
16888
|
+
VALUE token = tok(lexer, ts, te);
|
16889
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
16890
|
+
literal_extend_string(current_literal, token, ts, te);
|
16891
|
+
} else if (literal_regexp_p(current_literal)) {
|
16944
16892
|
VALUE token = tok(lexer, ts, te);
|
16945
16893
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
16946
16894
|
literal_extend_string(current_literal, token, ts, te);
|
16947
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
16948
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
16949
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
16950
|
-
} else {
|
16951
|
-
VALUE token = tok(lexer, ts, te);
|
16952
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
16953
|
-
literal_extend_string(current_literal, token, ts, te);
|
16954
|
-
}
|
16955
16895
|
} else if (lexer->escape == Qnil) {
|
16956
16896
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
16957
16897
|
} else {
|
@@ -16978,7 +16918,7 @@ _eof_trans:
|
|
16978
16918
|
lexer->escape = rb_str_new(&c, 1);
|
16979
16919
|
force_encoding(lexer->escape, lexer->encoding);
|
16980
16920
|
}
|
16981
|
-
#line
|
16921
|
+
#line 2019 "ext/lexer/lexer.rl"
|
16982
16922
|
{te = p;p--;{
|
16983
16923
|
VALUE value = lexer->escape;
|
16984
16924
|
if (value == Qnil)
|
@@ -17022,18 +16962,16 @@ _eof_trans:
|
|
17022
16962
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
17023
16963
|
}
|
17024
16964
|
} else {
|
17025
|
-
if (
|
16965
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
16966
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
16967
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
16968
|
+
VALUE token = tok(lexer, ts, te);
|
16969
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
16970
|
+
literal_extend_string(current_literal, token, ts, te);
|
16971
|
+
} else if (literal_regexp_p(current_literal)) {
|
17026
16972
|
VALUE token = tok(lexer, ts, te);
|
17027
16973
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17028
16974
|
literal_extend_string(current_literal, token, ts, te);
|
17029
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17030
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
17031
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17032
|
-
} else {
|
17033
|
-
VALUE token = tok(lexer, ts, te);
|
17034
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17035
|
-
literal_extend_string(current_literal, token, ts, te);
|
17036
|
-
}
|
17037
16975
|
} else if (lexer->escape == Qnil) {
|
17038
16976
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17039
16977
|
} else {
|
@@ -17072,18 +17010,16 @@ _eof_trans:
|
|
17072
17010
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
17073
17011
|
}
|
17074
17012
|
} else {
|
17075
|
-
if (
|
17013
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17014
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17015
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17016
|
+
VALUE token = tok(lexer, ts, te);
|
17017
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17018
|
+
literal_extend_string(current_literal, token, ts, te);
|
17019
|
+
} else if (literal_regexp_p(current_literal)) {
|
17076
17020
|
VALUE token = tok(lexer, ts, te);
|
17077
17021
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17078
17022
|
literal_extend_string(current_literal, token, ts, te);
|
17079
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17080
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
17081
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17082
|
-
} else {
|
17083
|
-
VALUE token = tok(lexer, ts, te);
|
17084
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17085
|
-
literal_extend_string(current_literal, token, ts, te);
|
17086
|
-
}
|
17087
17023
|
} else if (lexer->escape == Qnil) {
|
17088
17024
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17089
17025
|
} else {
|
@@ -17110,7 +17046,7 @@ _eof_trans:
|
|
17110
17046
|
lexer->escape = rb_str_new(&c, 1);
|
17111
17047
|
force_encoding(lexer->escape, lexer->encoding);
|
17112
17048
|
}
|
17113
|
-
#line
|
17049
|
+
#line 2019 "ext/lexer/lexer.rl"
|
17114
17050
|
{te = p;p--;{
|
17115
17051
|
VALUE value = lexer->escape;
|
17116
17052
|
if (value == Qnil)
|
@@ -17145,18 +17081,16 @@ _eof_trans:
|
|
17145
17081
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
17146
17082
|
}
|
17147
17083
|
} else {
|
17148
|
-
if (
|
17084
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17085
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17086
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17087
|
+
VALUE token = tok(lexer, ts, te);
|
17088
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17089
|
+
literal_extend_string(current_literal, token, ts, te);
|
17090
|
+
} else if (literal_regexp_p(current_literal)) {
|
17149
17091
|
VALUE token = tok(lexer, ts, te);
|
17150
17092
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17151
17093
|
literal_extend_string(current_literal, token, ts, te);
|
17152
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17153
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
17154
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17155
|
-
} else {
|
17156
|
-
VALUE token = tok(lexer, ts, te);
|
17157
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17158
|
-
literal_extend_string(current_literal, token, ts, te);
|
17159
|
-
}
|
17160
17094
|
} else if (lexer->escape == Qnil) {
|
17161
17095
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17162
17096
|
} else {
|
@@ -17186,18 +17120,16 @@ _eof_trans:
|
|
17186
17120
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
17187
17121
|
}
|
17188
17122
|
} else {
|
17189
|
-
if (
|
17123
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17124
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17125
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17126
|
+
VALUE token = tok(lexer, ts, te);
|
17127
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17128
|
+
literal_extend_string(current_literal, token, ts, te);
|
17129
|
+
} else if (literal_regexp_p(current_literal)) {
|
17190
17130
|
VALUE token = tok(lexer, ts, te);
|
17191
17131
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17192
17132
|
literal_extend_string(current_literal, token, ts, te);
|
17193
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17194
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
17195
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17196
|
-
} else {
|
17197
|
-
VALUE token = tok(lexer, ts, te);
|
17198
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17199
|
-
literal_extend_string(current_literal, token, ts, te);
|
17200
|
-
}
|
17201
17133
|
} else if (lexer->escape == Qnil) {
|
17202
17134
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17203
17135
|
} else {
|
@@ -17215,7 +17147,7 @@ _eof_trans:
|
|
17215
17147
|
lexer->escape = rb_str_new(&c, 1);
|
17216
17148
|
force_encoding(lexer->escape, lexer->encoding);
|
17217
17149
|
}
|
17218
|
-
#line
|
17150
|
+
#line 2019 "ext/lexer/lexer.rl"
|
17219
17151
|
{te = p;p--;{
|
17220
17152
|
VALUE value = lexer->escape;
|
17221
17153
|
if (value == Qnil)
|
@@ -17250,18 +17182,16 @@ _eof_trans:
|
|
17250
17182
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
17251
17183
|
}
|
17252
17184
|
} else {
|
17253
|
-
if (
|
17185
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17186
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17187
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17188
|
+
VALUE token = tok(lexer, ts, te);
|
17189
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17190
|
+
literal_extend_string(current_literal, token, ts, te);
|
17191
|
+
} else if (literal_regexp_p(current_literal)) {
|
17254
17192
|
VALUE token = tok(lexer, ts, te);
|
17255
17193
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17256
17194
|
literal_extend_string(current_literal, token, ts, te);
|
17257
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17258
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
17259
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17260
|
-
} else {
|
17261
|
-
VALUE token = tok(lexer, ts, te);
|
17262
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17263
|
-
literal_extend_string(current_literal, token, ts, te);
|
17264
|
-
}
|
17265
17195
|
} else if (lexer->escape == Qnil) {
|
17266
17196
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17267
17197
|
} else {
|
@@ -17291,18 +17221,16 @@ _eof_trans:
|
|
17291
17221
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
17292
17222
|
}
|
17293
17223
|
} else {
|
17294
|
-
if (
|
17224
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17225
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17226
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17227
|
+
VALUE token = tok(lexer, ts, te);
|
17228
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17229
|
+
literal_extend_string(current_literal, token, ts, te);
|
17230
|
+
} else if (literal_regexp_p(current_literal)) {
|
17295
17231
|
VALUE token = tok(lexer, ts, te);
|
17296
17232
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17297
17233
|
literal_extend_string(current_literal, token, ts, te);
|
17298
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17299
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
17300
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17301
|
-
} else {
|
17302
|
-
VALUE token = tok(lexer, ts, te);
|
17303
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17304
|
-
literal_extend_string(current_literal, token, ts, te);
|
17305
|
-
}
|
17306
17234
|
} else if (lexer->escape == Qnil) {
|
17307
17235
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17308
17236
|
} else {
|
@@ -17320,7 +17248,7 @@ _eof_trans:
|
|
17320
17248
|
lexer->escape = rb_str_new(&c, 1);
|
17321
17249
|
force_encoding(lexer->escape, lexer->encoding);
|
17322
17250
|
}
|
17323
|
-
#line
|
17251
|
+
#line 2019 "ext/lexer/lexer.rl"
|
17324
17252
|
{te = p;p--;{
|
17325
17253
|
VALUE value = lexer->escape;
|
17326
17254
|
if (value == Qnil)
|
@@ -17355,18 +17283,16 @@ _eof_trans:
|
|
17355
17283
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
17356
17284
|
}
|
17357
17285
|
} else {
|
17358
|
-
if (
|
17286
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17287
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17288
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17289
|
+
VALUE token = tok(lexer, ts, te);
|
17290
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17291
|
+
literal_extend_string(current_literal, token, ts, te);
|
17292
|
+
} else if (literal_regexp_p(current_literal)) {
|
17359
17293
|
VALUE token = tok(lexer, ts, te);
|
17360
17294
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17361
17295
|
literal_extend_string(current_literal, token, ts, te);
|
17362
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17363
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
17364
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17365
|
-
} else {
|
17366
|
-
VALUE token = tok(lexer, ts, te);
|
17367
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17368
|
-
literal_extend_string(current_literal, token, ts, te);
|
17369
|
-
}
|
17370
17296
|
} else if (lexer->escape == Qnil) {
|
17371
17297
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17372
17298
|
} else {
|
@@ -17396,18 +17322,16 @@ _eof_trans:
|
|
17396
17322
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
17397
17323
|
}
|
17398
17324
|
} else {
|
17399
|
-
if (
|
17325
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17326
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17327
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17328
|
+
VALUE token = tok(lexer, ts, te);
|
17329
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17330
|
+
literal_extend_string(current_literal, token, ts, te);
|
17331
|
+
} else if (literal_regexp_p(current_literal)) {
|
17400
17332
|
VALUE token = tok(lexer, ts, te);
|
17401
17333
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17402
17334
|
literal_extend_string(current_literal, token, ts, te);
|
17403
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17404
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
17405
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17406
|
-
} else {
|
17407
|
-
VALUE token = tok(lexer, ts, te);
|
17408
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17409
|
-
literal_extend_string(current_literal, token, ts, te);
|
17410
|
-
}
|
17411
17335
|
} else if (lexer->escape == Qnil) {
|
17412
17336
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17413
17337
|
} else {
|
@@ -17425,7 +17349,7 @@ _eof_trans:
|
|
17425
17349
|
lexer->escape = rb_str_new(&c, 1);
|
17426
17350
|
force_encoding(lexer->escape, lexer->encoding);
|
17427
17351
|
}
|
17428
|
-
#line
|
17352
|
+
#line 2019 "ext/lexer/lexer.rl"
|
17429
17353
|
{te = p;p--;{
|
17430
17354
|
VALUE value = lexer->escape;
|
17431
17355
|
if (value == Qnil)
|
@@ -17462,18 +17386,16 @@ _eof_trans:
|
|
17462
17386
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
17463
17387
|
}
|
17464
17388
|
} else {
|
17465
|
-
if (
|
17389
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17390
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17391
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17392
|
+
VALUE token = tok(lexer, ts, te);
|
17393
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17394
|
+
literal_extend_string(current_literal, token, ts, te);
|
17395
|
+
} else if (literal_regexp_p(current_literal)) {
|
17466
17396
|
VALUE token = tok(lexer, ts, te);
|
17467
17397
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17468
17398
|
literal_extend_string(current_literal, token, ts, te);
|
17469
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17470
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
17471
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17472
|
-
} else {
|
17473
|
-
VALUE token = tok(lexer, ts, te);
|
17474
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17475
|
-
literal_extend_string(current_literal, token, ts, te);
|
17476
|
-
}
|
17477
17399
|
} else if (lexer->escape == Qnil) {
|
17478
17400
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17479
17401
|
} else {
|
@@ -17505,18 +17427,16 @@ _eof_trans:
|
|
17505
17427
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
17506
17428
|
}
|
17507
17429
|
} else {
|
17508
|
-
if (
|
17430
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17431
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17432
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17433
|
+
VALUE token = tok(lexer, ts, te);
|
17434
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17435
|
+
literal_extend_string(current_literal, token, ts, te);
|
17436
|
+
} else if (literal_regexp_p(current_literal)) {
|
17509
17437
|
VALUE token = tok(lexer, ts, te);
|
17510
17438
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17511
17439
|
literal_extend_string(current_literal, token, ts, te);
|
17512
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17513
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
17514
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17515
|
-
} else {
|
17516
|
-
VALUE token = tok(lexer, ts, te);
|
17517
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17518
|
-
literal_extend_string(current_literal, token, ts, te);
|
17519
|
-
}
|
17520
17440
|
} else if (lexer->escape == Qnil) {
|
17521
17441
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17522
17442
|
} else {
|
@@ -17536,7 +17456,7 @@ _eof_trans:
|
|
17536
17456
|
diagnostic(lexer, fatal, invalid_unicode_escape, Qnil,
|
17537
17457
|
range(lexer, p - 1, p), empty_array);
|
17538
17458
|
}
|
17539
|
-
#line
|
17459
|
+
#line 2019 "ext/lexer/lexer.rl"
|
17540
17460
|
{te = p;p--;{
|
17541
17461
|
VALUE value = lexer->escape;
|
17542
17462
|
if (value == Qnil)
|
@@ -17573,18 +17493,16 @@ _eof_trans:
|
|
17573
17493
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
17574
17494
|
}
|
17575
17495
|
} else {
|
17576
|
-
if (
|
17496
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17497
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17498
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17499
|
+
VALUE token = tok(lexer, ts, te);
|
17500
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17501
|
+
literal_extend_string(current_literal, token, ts, te);
|
17502
|
+
} else if (literal_regexp_p(current_literal)) {
|
17577
17503
|
VALUE token = tok(lexer, ts, te);
|
17578
17504
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17579
17505
|
literal_extend_string(current_literal, token, ts, te);
|
17580
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17581
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
17582
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17583
|
-
} else {
|
17584
|
-
VALUE token = tok(lexer, ts, te);
|
17585
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17586
|
-
literal_extend_string(current_literal, token, ts, te);
|
17587
|
-
}
|
17588
17506
|
} else if (lexer->escape == Qnil) {
|
17589
17507
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17590
17508
|
} else {
|
@@ -17616,18 +17534,16 @@ _eof_trans:
|
|
17616
17534
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
17617
17535
|
}
|
17618
17536
|
} else {
|
17619
|
-
if (
|
17537
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17538
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17539
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17540
|
+
VALUE token = tok(lexer, ts, te);
|
17541
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17542
|
+
literal_extend_string(current_literal, token, ts, te);
|
17543
|
+
} else if (literal_regexp_p(current_literal)) {
|
17620
17544
|
VALUE token = tok(lexer, ts, te);
|
17621
17545
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17622
17546
|
literal_extend_string(current_literal, token, ts, te);
|
17623
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17624
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
17625
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17626
|
-
} else {
|
17627
|
-
VALUE token = tok(lexer, ts, te);
|
17628
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17629
|
-
literal_extend_string(current_literal, token, ts, te);
|
17630
|
-
}
|
17631
17547
|
} else if (lexer->escape == Qnil) {
|
17632
17548
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17633
17549
|
} else {
|
@@ -17647,7 +17563,7 @@ _eof_trans:
|
|
17647
17563
|
diagnostic(lexer, fatal, escape_eof, Qnil, range(lexer, p - 1, p),
|
17648
17564
|
empty_array);
|
17649
17565
|
}
|
17650
|
-
#line
|
17566
|
+
#line 2019 "ext/lexer/lexer.rl"
|
17651
17567
|
{te = p;p--;{
|
17652
17568
|
VALUE value = lexer->escape;
|
17653
17569
|
if (value == Qnil)
|
@@ -17662,123 +17578,123 @@ _eof_trans:
|
|
17662
17578
|
}}
|
17663
17579
|
break;
|
17664
17580
|
case 61:
|
17665
|
-
#line
|
17581
|
+
#line 1542 "ext/lexer/lexer.rl"
|
17666
17582
|
{ sharp_s = p - 1; }
|
17667
|
-
#line
|
17583
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17668
17584
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17669
17585
|
#line 1002 "ext/lexer/lexer.rl"
|
17670
17586
|
{ lexer->newline_s = p; }
|
17671
17587
|
break;
|
17672
17588
|
case 203:
|
17673
|
-
#line
|
17589
|
+
#line 1542 "ext/lexer/lexer.rl"
|
17674
17590
|
{ sharp_s = p - 1; }
|
17675
|
-
#line
|
17591
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17676
17592
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17677
|
-
#line
|
17593
|
+
#line 1688 "ext/lexer/lexer.rl"
|
17678
17594
|
{te = p;p--;}
|
17679
17595
|
break;
|
17680
17596
|
case 218:
|
17681
|
-
#line
|
17597
|
+
#line 1542 "ext/lexer/lexer.rl"
|
17682
17598
|
{ sharp_s = p - 1; }
|
17683
|
-
#line
|
17599
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17684
17600
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17685
|
-
#line
|
17601
|
+
#line 1701 "ext/lexer/lexer.rl"
|
17686
17602
|
{te = p;p--;}
|
17687
17603
|
break;
|
17688
17604
|
case 230:
|
17689
|
-
#line
|
17605
|
+
#line 1542 "ext/lexer/lexer.rl"
|
17690
17606
|
{ sharp_s = p - 1; }
|
17691
|
-
#line
|
17607
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17692
17608
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17693
|
-
#line
|
17609
|
+
#line 1723 "ext/lexer/lexer.rl"
|
17694
17610
|
{te = p;p--;}
|
17695
17611
|
break;
|
17696
17612
|
case 252:
|
17697
|
-
#line
|
17613
|
+
#line 1542 "ext/lexer/lexer.rl"
|
17698
17614
|
{ sharp_s = p - 1; }
|
17699
|
-
#line
|
17615
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17700
17616
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17701
|
-
#line
|
17617
|
+
#line 1806 "ext/lexer/lexer.rl"
|
17702
17618
|
{te = p;p--;{ {cs = 768;goto _again;} }}
|
17703
17619
|
break;
|
17704
17620
|
case 267:
|
17705
|
-
#line
|
17621
|
+
#line 1542 "ext/lexer/lexer.rl"
|
17706
17622
|
{ sharp_s = p - 1; }
|
17707
|
-
#line
|
17623
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17708
17624
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17709
|
-
#line
|
17625
|
+
#line 1859 "ext/lexer/lexer.rl"
|
17710
17626
|
{te = p;p--;}
|
17711
17627
|
break;
|
17712
17628
|
case 279:
|
17713
|
-
#line
|
17629
|
+
#line 1542 "ext/lexer/lexer.rl"
|
17714
17630
|
{ sharp_s = p - 1; }
|
17715
|
-
#line
|
17631
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17716
17632
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17717
|
-
#line
|
17633
|
+
#line 1874 "ext/lexer/lexer.rl"
|
17718
17634
|
{te = p;p--;}
|
17719
17635
|
break;
|
17720
17636
|
case 305:
|
17721
|
-
#line
|
17637
|
+
#line 1542 "ext/lexer/lexer.rl"
|
17722
17638
|
{ sharp_s = p - 1; }
|
17723
|
-
#line
|
17639
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17724
17640
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17725
|
-
#line
|
17641
|
+
#line 2129 "ext/lexer/lexer.rl"
|
17726
17642
|
{te = p;p--;}
|
17727
17643
|
break;
|
17728
17644
|
case 369:
|
17729
|
-
#line
|
17645
|
+
#line 1542 "ext/lexer/lexer.rl"
|
17730
17646
|
{ sharp_s = p - 1; }
|
17731
|
-
#line
|
17647
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17732
17648
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17733
|
-
#line
|
17649
|
+
#line 2147 "ext/lexer/lexer.rl"
|
17734
17650
|
{te = p;p--;}
|
17735
17651
|
break;
|
17736
17652
|
case 379:
|
17737
|
-
#line
|
17653
|
+
#line 1542 "ext/lexer/lexer.rl"
|
17738
17654
|
{ sharp_s = p - 1; }
|
17739
|
-
#line
|
17655
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17740
17656
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17741
|
-
#line
|
17657
|
+
#line 2170 "ext/lexer/lexer.rl"
|
17742
17658
|
{te = p;p--;}
|
17743
17659
|
break;
|
17744
17660
|
case 401:
|
17745
|
-
#line
|
17661
|
+
#line 1542 "ext/lexer/lexer.rl"
|
17746
17662
|
{ sharp_s = p - 1; }
|
17747
|
-
#line
|
17663
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17748
17664
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17749
|
-
#line
|
17665
|
+
#line 2464 "ext/lexer/lexer.rl"
|
17750
17666
|
{te = p;p--;}
|
17751
17667
|
break;
|
17752
17668
|
case 94:
|
17753
|
-
#line
|
17669
|
+
#line 1542 "ext/lexer/lexer.rl"
|
17754
17670
|
{ sharp_s = p - 1; }
|
17755
|
-
#line
|
17671
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17756
17672
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17757
|
-
#line
|
17673
|
+
#line 2512 "ext/lexer/lexer.rl"
|
17758
17674
|
{te = p;p--;}
|
17759
17675
|
break;
|
17760
17676
|
case 457:
|
17761
|
-
#line
|
17677
|
+
#line 2265 "ext/lexer/lexer.rl"
|
17762
17678
|
{ num_base = 10; num_digits_s = ts; }
|
17763
|
-
#line
|
17679
|
+
#line 2267 "ext/lexer/lexer.rl"
|
17764
17680
|
{ num_suffix_s = p; }
|
17765
17681
|
#line 1076 "ext/lexer/lexer.rl"
|
17766
17682
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
17767
17683
|
break;
|
17768
17684
|
case 416:
|
17769
|
-
#line
|
17685
|
+
#line 2266 "ext/lexer/lexer.rl"
|
17770
17686
|
{ num_base = 8; num_digits_s = ts; }
|
17771
|
-
#line
|
17687
|
+
#line 2267 "ext/lexer/lexer.rl"
|
17772
17688
|
{ num_suffix_s = p; }
|
17773
17689
|
#line 1076 "ext/lexer/lexer.rl"
|
17774
17690
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
17775
17691
|
break;
|
17776
17692
|
case 432:
|
17777
|
-
#line
|
17693
|
+
#line 2267 "ext/lexer/lexer.rl"
|
17778
17694
|
{ num_suffix_s = p; }
|
17779
17695
|
#line 1076 "ext/lexer/lexer.rl"
|
17780
17696
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
17781
|
-
#line
|
17697
|
+
#line 2268 "ext/lexer/lexer.rl"
|
17782
17698
|
{te = p;p--;{
|
17783
17699
|
int invalid_idx;
|
17784
17700
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -17811,11 +17727,11 @@ _eof_trans:
|
|
17811
17727
|
}}
|
17812
17728
|
break;
|
17813
17729
|
case 425:
|
17814
|
-
#line
|
17730
|
+
#line 2334 "ext/lexer/lexer.rl"
|
17815
17731
|
{ num_suffix_s = p; }
|
17816
17732
|
#line 1084 "ext/lexer/lexer.rl"
|
17817
17733
|
{ num_xfrm = emit_float; numeric_s = ts; }
|
17818
|
-
#line
|
17734
|
+
#line 2337 "ext/lexer/lexer.rl"
|
17819
17735
|
{te = p;p--;{
|
17820
17736
|
VALUE digits = tok(lexer, ts, num_suffix_s);
|
17821
17737
|
|
@@ -17830,11 +17746,11 @@ _eof_trans:
|
|
17830
17746
|
}}
|
17831
17747
|
break;
|
17832
17748
|
case 421:
|
17833
|
-
#line
|
17749
|
+
#line 2335 "ext/lexer/lexer.rl"
|
17834
17750
|
{ num_suffix_s = p; }
|
17835
17751
|
#line 1084 "ext/lexer/lexer.rl"
|
17836
17752
|
{ num_xfrm = emit_float; numeric_s = ts; }
|
17837
|
-
#line
|
17753
|
+
#line 2337 "ext/lexer/lexer.rl"
|
17838
17754
|
{te = p;p--;{
|
17839
17755
|
VALUE digits = tok(lexer, ts, num_suffix_s);
|
17840
17756
|
|
@@ -17853,7 +17769,7 @@ _eof_trans:
|
|
17853
17769
|
{te = p+1;}
|
17854
17770
|
#line 1002 "ext/lexer/lexer.rl"
|
17855
17771
|
{ lexer->newline_s = p; }
|
17856
|
-
#line
|
17772
|
+
#line 1804 "ext/lexer/lexer.rl"
|
17857
17773
|
{act = 74;}
|
17858
17774
|
break;
|
17859
17775
|
case 35:
|
@@ -17866,7 +17782,7 @@ _eof_trans:
|
|
17866
17782
|
lexer->herebody_s = 0;
|
17867
17783
|
}
|
17868
17784
|
}
|
17869
|
-
#line
|
17785
|
+
#line 1799 "ext/lexer/lexer.rl"
|
17870
17786
|
{act = 73;}
|
17871
17787
|
break;
|
17872
17788
|
case 46:
|
@@ -17879,103 +17795,103 @@ _eof_trans:
|
|
17879
17795
|
lexer->herebody_s = 0;
|
17880
17796
|
}
|
17881
17797
|
}
|
17882
|
-
#line
|
17798
|
+
#line 1839 "ext/lexer/lexer.rl"
|
17883
17799
|
{act = 81;}
|
17884
17800
|
break;
|
17885
17801
|
case 65:
|
17886
17802
|
#line 1 "NONE"
|
17887
17803
|
{te = p+1;}
|
17888
|
-
#line
|
17804
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17889
17805
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17890
|
-
#line
|
17806
|
+
#line 1884 "ext/lexer/lexer.rl"
|
17891
17807
|
{act = 94;}
|
17892
17808
|
break;
|
17893
17809
|
case 82:
|
17894
17810
|
#line 1 "NONE"
|
17895
17811
|
{te = p+1;}
|
17896
|
-
#line
|
17812
|
+
#line 1543 "ext/lexer/lexer.rl"
|
17897
17813
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
17898
|
-
#line
|
17814
|
+
#line 2213 "ext/lexer/lexer.rl"
|
17899
17815
|
{act = 138;}
|
17900
17816
|
break;
|
17901
17817
|
case 37:
|
17902
17818
|
#line 1 "NONE"
|
17903
17819
|
{te = p+1;}
|
17904
|
-
#line
|
17820
|
+
#line 1775 "ext/lexer/lexer.rl"
|
17905
17821
|
{ tm = p; }
|
17906
|
-
#line
|
17822
|
+
#line 1775 "ext/lexer/lexer.rl"
|
17907
17823
|
{act = 68;}
|
17908
17824
|
break;
|
17909
17825
|
case 362:
|
17910
17826
|
#line 1 "NONE"
|
17911
17827
|
{te = p+1;}
|
17912
|
-
#line
|
17828
|
+
#line 2075 "ext/lexer/lexer.rl"
|
17913
17829
|
{ tm = p; }
|
17914
|
-
#line
|
17830
|
+
#line 2109 "ext/lexer/lexer.rl"
|
17915
17831
|
{act = 117;}
|
17916
17832
|
break;
|
17917
17833
|
case 361:
|
17918
17834
|
#line 1 "NONE"
|
17919
17835
|
{te = p+1;}
|
17920
|
-
#line
|
17836
|
+
#line 2075 "ext/lexer/lexer.rl"
|
17921
17837
|
{ tm = p; }
|
17922
|
-
#line
|
17838
|
+
#line 1598 "ext/lexer/lexer.rl"
|
17923
17839
|
{act = 118;}
|
17924
17840
|
break;
|
17925
17841
|
case 455:
|
17926
17842
|
#line 1 "NONE"
|
17927
17843
|
{te = p+1;}
|
17928
|
-
#line
|
17844
|
+
#line 2261 "ext/lexer/lexer.rl"
|
17929
17845
|
{ num_base = 16; num_digits_s = p; }
|
17930
|
-
#line
|
17846
|
+
#line 2267 "ext/lexer/lexer.rl"
|
17931
17847
|
{ num_suffix_s = p; }
|
17932
17848
|
break;
|
17933
17849
|
case 447:
|
17934
17850
|
#line 1 "NONE"
|
17935
17851
|
{te = p+1;}
|
17936
|
-
#line
|
17852
|
+
#line 2262 "ext/lexer/lexer.rl"
|
17937
17853
|
{ num_base = 10; num_digits_s = p; }
|
17938
|
-
#line
|
17854
|
+
#line 2267 "ext/lexer/lexer.rl"
|
17939
17855
|
{ num_suffix_s = p; }
|
17940
17856
|
break;
|
17941
17857
|
case 451:
|
17942
17858
|
#line 1 "NONE"
|
17943
17859
|
{te = p+1;}
|
17944
|
-
#line
|
17860
|
+
#line 2263 "ext/lexer/lexer.rl"
|
17945
17861
|
{ num_base = 8; num_digits_s = p; }
|
17946
|
-
#line
|
17862
|
+
#line 2267 "ext/lexer/lexer.rl"
|
17947
17863
|
{ num_suffix_s = p; }
|
17948
17864
|
break;
|
17949
17865
|
case 443:
|
17950
17866
|
#line 1 "NONE"
|
17951
17867
|
{te = p+1;}
|
17952
|
-
#line
|
17868
|
+
#line 2264 "ext/lexer/lexer.rl"
|
17953
17869
|
{ num_base = 2; num_digits_s = p; }
|
17954
|
-
#line
|
17870
|
+
#line 2267 "ext/lexer/lexer.rl"
|
17955
17871
|
{ num_suffix_s = p; }
|
17956
17872
|
break;
|
17957
17873
|
case 462:
|
17958
17874
|
#line 1 "NONE"
|
17959
17875
|
{te = p+1;}
|
17960
|
-
#line
|
17876
|
+
#line 2265 "ext/lexer/lexer.rl"
|
17961
17877
|
{ num_base = 10; num_digits_s = ts; }
|
17962
|
-
#line
|
17878
|
+
#line 2267 "ext/lexer/lexer.rl"
|
17963
17879
|
{ num_suffix_s = p; }
|
17964
17880
|
break;
|
17965
17881
|
case 458:
|
17966
17882
|
#line 1 "NONE"
|
17967
17883
|
{te = p+1;}
|
17968
|
-
#line
|
17884
|
+
#line 2265 "ext/lexer/lexer.rl"
|
17969
17885
|
{ num_base = 10; num_digits_s = ts; }
|
17970
|
-
#line
|
17886
|
+
#line 2268 "ext/lexer/lexer.rl"
|
17971
17887
|
{act = 145;}
|
17972
17888
|
break;
|
17973
17889
|
case 420:
|
17974
17890
|
#line 1 "NONE"
|
17975
17891
|
{te = p+1;}
|
17976
|
-
#line
|
17892
|
+
#line 2266 "ext/lexer/lexer.rl"
|
17977
17893
|
{ num_base = 8; num_digits_s = ts; }
|
17978
|
-
#line
|
17894
|
+
#line 2267 "ext/lexer/lexer.rl"
|
17979
17895
|
{ num_suffix_s = p; }
|
17980
17896
|
break;
|
17981
17897
|
case 118:
|
@@ -18014,18 +17930,16 @@ _eof_trans:
|
|
18014
17930
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
18015
17931
|
}
|
18016
17932
|
} else {
|
18017
|
-
if (
|
17933
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17934
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17935
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17936
|
+
VALUE token = tok(lexer, ts, te);
|
17937
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17938
|
+
literal_extend_string(current_literal, token, ts, te);
|
17939
|
+
} else if (literal_regexp_p(current_literal)) {
|
18018
17940
|
VALUE token = tok(lexer, ts, te);
|
18019
17941
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
18020
17942
|
literal_extend_string(current_literal, token, ts, te);
|
18021
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
18022
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
18023
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
18024
|
-
} else {
|
18025
|
-
VALUE token = tok(lexer, ts, te);
|
18026
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
18027
|
-
literal_extend_string(current_literal, token, ts, te);
|
18028
|
-
}
|
18029
17943
|
} else if (lexer->escape == Qnil) {
|
18030
17944
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
18031
17945
|
} else {
|
@@ -18070,18 +17984,16 @@ _eof_trans:
|
|
18070
17984
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
18071
17985
|
}
|
18072
17986
|
} else {
|
18073
|
-
if (
|
17987
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
17988
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
17989
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
17990
|
+
VALUE token = tok(lexer, ts, te);
|
17991
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
17992
|
+
literal_extend_string(current_literal, token, ts, te);
|
17993
|
+
} else if (literal_regexp_p(current_literal)) {
|
18074
17994
|
VALUE token = tok(lexer, ts, te);
|
18075
17995
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
18076
17996
|
literal_extend_string(current_literal, token, ts, te);
|
18077
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
18078
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
18079
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
18080
|
-
} else {
|
18081
|
-
VALUE token = tok(lexer, ts, te);
|
18082
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
18083
|
-
literal_extend_string(current_literal, token, ts, te);
|
18084
|
-
}
|
18085
17997
|
} else if (lexer->escape == Qnil) {
|
18086
17998
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
18087
17999
|
} else {
|
@@ -18114,7 +18026,7 @@ _eof_trans:
|
|
18114
18026
|
lexer->escape = rb_str_new(&c, 1);
|
18115
18027
|
force_encoding(lexer->escape, lexer->encoding);
|
18116
18028
|
}
|
18117
|
-
#line
|
18029
|
+
#line 2019 "ext/lexer/lexer.rl"
|
18118
18030
|
{te = p;p--;{
|
18119
18031
|
VALUE value = lexer->escape;
|
18120
18032
|
if (value == Qnil)
|
@@ -18155,18 +18067,16 @@ _eof_trans:
|
|
18155
18067
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
18156
18068
|
}
|
18157
18069
|
} else {
|
18158
|
-
if (
|
18070
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
18071
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
18072
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
18073
|
+
VALUE token = tok(lexer, ts, te);
|
18074
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
18075
|
+
literal_extend_string(current_literal, token, ts, te);
|
18076
|
+
} else if (literal_regexp_p(current_literal)) {
|
18159
18077
|
VALUE token = tok(lexer, ts, te);
|
18160
18078
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
18161
18079
|
literal_extend_string(current_literal, token, ts, te);
|
18162
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
18163
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
18164
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
18165
|
-
} else {
|
18166
|
-
VALUE token = tok(lexer, ts, te);
|
18167
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
18168
|
-
literal_extend_string(current_literal, token, ts, te);
|
18169
|
-
}
|
18170
18080
|
} else if (lexer->escape == Qnil) {
|
18171
18081
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
18172
18082
|
} else {
|
@@ -18202,18 +18112,16 @@ _eof_trans:
|
|
18202
18112
|
literal_extend_string(current_literal, escaped_char, ts, te);
|
18203
18113
|
}
|
18204
18114
|
} else {
|
18205
|
-
if (
|
18115
|
+
if (literal_squiggly_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
18116
|
+
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
18117
|
+
} else if (literal_supports_line_continuation_via_slash_p(current_literal) && newline_char_p(escaped_char)) {
|
18118
|
+
VALUE token = tok(lexer, ts, te);
|
18119
|
+
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
18120
|
+
literal_extend_string(current_literal, token, ts, te);
|
18121
|
+
} else if (literal_regexp_p(current_literal)) {
|
18206
18122
|
VALUE token = tok(lexer, ts, te);
|
18207
18123
|
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
18208
18124
|
literal_extend_string(current_literal, token, ts, te);
|
18209
|
-
} else if (literal_heredoc_p(current_literal) && newline_char_p(escaped_char)) {
|
18210
|
-
if (literal_squiggly_heredoc_p(current_literal)) {
|
18211
|
-
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
18212
|
-
} else {
|
18213
|
-
VALUE token = tok(lexer, ts, te);
|
18214
|
-
rb_funcall(token, rb_intern("gsub!"), 2, escaped_newline, blank_string);
|
18215
|
-
literal_extend_string(current_literal, token, ts, te);
|
18216
|
-
}
|
18217
18125
|
} else if (lexer->escape == Qnil) {
|
18218
18126
|
literal_extend_string(current_literal, tok(lexer, ts, te), ts, te);
|
18219
18127
|
} else {
|
@@ -18237,7 +18145,7 @@ _eof_trans:
|
|
18237
18145
|
lexer->escape = rb_str_new(&c, 1);
|
18238
18146
|
force_encoding(lexer->escape, lexer->encoding);
|
18239
18147
|
}
|
18240
|
-
#line
|
18148
|
+
#line 2019 "ext/lexer/lexer.rl"
|
18241
18149
|
{te = p;p--;{
|
18242
18150
|
VALUE value = lexer->escape;
|
18243
18151
|
if (value == Qnil)
|
@@ -18252,13 +18160,13 @@ _eof_trans:
|
|
18252
18160
|
}}
|
18253
18161
|
break;
|
18254
18162
|
case 452:
|
18255
|
-
#line
|
18163
|
+
#line 2261 "ext/lexer/lexer.rl"
|
18256
18164
|
{ num_base = 16; num_digits_s = p; }
|
18257
|
-
#line
|
18165
|
+
#line 2267 "ext/lexer/lexer.rl"
|
18258
18166
|
{ num_suffix_s = p; }
|
18259
18167
|
#line 1076 "ext/lexer/lexer.rl"
|
18260
18168
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
18261
|
-
#line
|
18169
|
+
#line 2268 "ext/lexer/lexer.rl"
|
18262
18170
|
{te = p;p--;{
|
18263
18171
|
int invalid_idx;
|
18264
18172
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -18291,13 +18199,13 @@ _eof_trans:
|
|
18291
18199
|
}}
|
18292
18200
|
break;
|
18293
18201
|
case 444:
|
18294
|
-
#line
|
18202
|
+
#line 2262 "ext/lexer/lexer.rl"
|
18295
18203
|
{ num_base = 10; num_digits_s = p; }
|
18296
|
-
#line
|
18204
|
+
#line 2267 "ext/lexer/lexer.rl"
|
18297
18205
|
{ num_suffix_s = p; }
|
18298
18206
|
#line 1076 "ext/lexer/lexer.rl"
|
18299
18207
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
18300
|
-
#line
|
18208
|
+
#line 2268 "ext/lexer/lexer.rl"
|
18301
18209
|
{te = p;p--;{
|
18302
18210
|
int invalid_idx;
|
18303
18211
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -18330,13 +18238,13 @@ _eof_trans:
|
|
18330
18238
|
}}
|
18331
18239
|
break;
|
18332
18240
|
case 448:
|
18333
|
-
#line
|
18241
|
+
#line 2263 "ext/lexer/lexer.rl"
|
18334
18242
|
{ num_base = 8; num_digits_s = p; }
|
18335
|
-
#line
|
18243
|
+
#line 2267 "ext/lexer/lexer.rl"
|
18336
18244
|
{ num_suffix_s = p; }
|
18337
18245
|
#line 1076 "ext/lexer/lexer.rl"
|
18338
18246
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
18339
|
-
#line
|
18247
|
+
#line 2268 "ext/lexer/lexer.rl"
|
18340
18248
|
{te = p;p--;{
|
18341
18249
|
int invalid_idx;
|
18342
18250
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -18369,13 +18277,13 @@ _eof_trans:
|
|
18369
18277
|
}}
|
18370
18278
|
break;
|
18371
18279
|
case 440:
|
18372
|
-
#line
|
18280
|
+
#line 2264 "ext/lexer/lexer.rl"
|
18373
18281
|
{ num_base = 2; num_digits_s = p; }
|
18374
|
-
#line
|
18282
|
+
#line 2267 "ext/lexer/lexer.rl"
|
18375
18283
|
{ num_suffix_s = p; }
|
18376
18284
|
#line 1076 "ext/lexer/lexer.rl"
|
18377
18285
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
18378
|
-
#line
|
18286
|
+
#line 2268 "ext/lexer/lexer.rl"
|
18379
18287
|
{te = p;p--;{
|
18380
18288
|
int invalid_idx;
|
18381
18289
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -18408,13 +18316,13 @@ _eof_trans:
|
|
18408
18316
|
}}
|
18409
18317
|
break;
|
18410
18318
|
case 456:
|
18411
|
-
#line
|
18319
|
+
#line 2265 "ext/lexer/lexer.rl"
|
18412
18320
|
{ num_base = 10; num_digits_s = ts; }
|
18413
|
-
#line
|
18321
|
+
#line 2267 "ext/lexer/lexer.rl"
|
18414
18322
|
{ num_suffix_s = p; }
|
18415
18323
|
#line 1076 "ext/lexer/lexer.rl"
|
18416
18324
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
18417
|
-
#line
|
18325
|
+
#line 2268 "ext/lexer/lexer.rl"
|
18418
18326
|
{te = p;p--;{
|
18419
18327
|
int invalid_idx;
|
18420
18328
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -18447,13 +18355,13 @@ _eof_trans:
|
|
18447
18355
|
}}
|
18448
18356
|
break;
|
18449
18357
|
case 415:
|
18450
|
-
#line
|
18358
|
+
#line 2266 "ext/lexer/lexer.rl"
|
18451
18359
|
{ num_base = 8; num_digits_s = ts; }
|
18452
|
-
#line
|
18360
|
+
#line 2267 "ext/lexer/lexer.rl"
|
18453
18361
|
{ num_suffix_s = p; }
|
18454
18362
|
#line 1076 "ext/lexer/lexer.rl"
|
18455
18363
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
18456
|
-
#line
|
18364
|
+
#line 2268 "ext/lexer/lexer.rl"
|
18457
18365
|
{te = p;p--;{
|
18458
18366
|
int invalid_idx;
|
18459
18367
|
VALUE digits = tok(lexer, num_digits_s, num_suffix_s);
|
@@ -18495,56 +18403,56 @@ _eof_trans:
|
|
18495
18403
|
lexer->herebody_s = 0;
|
18496
18404
|
}
|
18497
18405
|
}
|
18498
|
-
#line
|
18406
|
+
#line 1775 "ext/lexer/lexer.rl"
|
18499
18407
|
{ tm = p; }
|
18500
|
-
#line
|
18408
|
+
#line 1775 "ext/lexer/lexer.rl"
|
18501
18409
|
{act = 68;}
|
18502
18410
|
break;
|
18503
18411
|
case 62:
|
18504
18412
|
#line 1 "NONE"
|
18505
18413
|
{te = p+1;}
|
18506
|
-
#line
|
18414
|
+
#line 1542 "ext/lexer/lexer.rl"
|
18507
18415
|
{ sharp_s = p - 1; }
|
18508
|
-
#line
|
18416
|
+
#line 1543 "ext/lexer/lexer.rl"
|
18509
18417
|
{ emit_comment(lexer, sharp_s, p == pe ? p - 2 : p); }
|
18510
|
-
#line
|
18418
|
+
#line 1884 "ext/lexer/lexer.rl"
|
18511
18419
|
{act = 94;}
|
18512
18420
|
break;
|
18513
18421
|
case 464:
|
18514
18422
|
#line 1 "NONE"
|
18515
18423
|
{te = p+1;}
|
18516
|
-
#line
|
18424
|
+
#line 2267 "ext/lexer/lexer.rl"
|
18517
18425
|
{ num_suffix_s = p; }
|
18518
18426
|
#line 1076 "ext/lexer/lexer.rl"
|
18519
18427
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
18520
|
-
#line
|
18428
|
+
#line 2306 "ext/lexer/lexer.rl"
|
18521
18429
|
{act = 147;}
|
18522
18430
|
break;
|
18523
18431
|
case 459:
|
18524
18432
|
#line 1 "NONE"
|
18525
18433
|
{te = p+1;}
|
18526
|
-
#line
|
18434
|
+
#line 2265 "ext/lexer/lexer.rl"
|
18527
18435
|
{ num_base = 10; num_digits_s = ts; }
|
18528
|
-
#line
|
18436
|
+
#line 2267 "ext/lexer/lexer.rl"
|
18529
18437
|
{ num_suffix_s = p; }
|
18530
18438
|
#line 1076 "ext/lexer/lexer.rl"
|
18531
18439
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
18532
|
-
#line
|
18440
|
+
#line 2306 "ext/lexer/lexer.rl"
|
18533
18441
|
{act = 147;}
|
18534
18442
|
break;
|
18535
18443
|
case 418:
|
18536
18444
|
#line 1 "NONE"
|
18537
18445
|
{te = p+1;}
|
18538
|
-
#line
|
18446
|
+
#line 2266 "ext/lexer/lexer.rl"
|
18539
18447
|
{ num_base = 8; num_digits_s = ts; }
|
18540
|
-
#line
|
18448
|
+
#line 2267 "ext/lexer/lexer.rl"
|
18541
18449
|
{ num_suffix_s = p; }
|
18542
18450
|
#line 1076 "ext/lexer/lexer.rl"
|
18543
18451
|
{ num_xfrm = emit_int; numeric_s = ts; }
|
18544
|
-
#line
|
18452
|
+
#line 2306 "ext/lexer/lexer.rl"
|
18545
18453
|
{act = 147;}
|
18546
18454
|
break;
|
18547
|
-
#line
|
18455
|
+
#line 18456 "ext/lexer/lexer.c"
|
18548
18456
|
}
|
18549
18457
|
|
18550
18458
|
_again:
|
@@ -18553,7 +18461,7 @@ _again:
|
|
18553
18461
|
#line 1 "NONE"
|
18554
18462
|
{ts = 0;}
|
18555
18463
|
break;
|
18556
|
-
#line
|
18464
|
+
#line 18465 "ext/lexer/lexer.c"
|
18557
18465
|
}
|
18558
18466
|
|
18559
18467
|
if ( cs == 0 )
|
@@ -19210,5 +19118,5 @@ void Init_lexer()
|
|
19210
19118
|
}
|
19211
19119
|
|
19212
19120
|
|
19213
|
-
#line
|
19121
|
+
#line 2525 "ext/lexer/lexer.rl"
|
19214
19122
|
|