c_lexer 2.5.3.0.0 → 2.6.0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|