summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/url_scanner_ex.c321
1 files changed, 127 insertions, 194 deletions
diff --git a/ext/standard/url_scanner_ex.c b/ext/standard/url_scanner_ex.c
index af8a3781d6..3d8aa98fef 100644
--- a/ext/standard/url_scanner_ex.c
+++ b/ext/standard/url_scanner_ex.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 */
+/* Generated by re2c 0.16 */
#line 1 "ext/standard/url_scanner_ex.re"
/*
+----------------------------------------------------------------------+
@@ -548,26 +548,27 @@ state_plain:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
-
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if (yybm[0+yych] & 128) {
- goto yy4;
+ goto yy2;
}
- ++YYCURSOR;
-#line 517 "ext/standard/url_scanner_ex.re"
- { passthru(STD_ARGS); STATE = STATE_TAG; goto state_tag; }
-#line 561 "ext/standard/url_scanner_ex.c"
-yy4:
+ goto yy5;
+yy2:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if (yybm[0+yych] & 128) {
- goto yy4;
+ goto yy2;
}
#line 518 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); goto state_plain; }
-#line 571 "ext/standard/url_scanner_ex.c"
+#line 567 "ext/standard/url_scanner_ex.c"
+yy5:
+ ++YYCURSOR;
+#line 517 "ext/standard/url_scanner_ex.re"
+ { passthru(STD_ARGS); STATE = STATE_TAG; goto state_tag; }
+#line 572 "ext/standard/url_scanner_ex.c"
}
#line 519 "ext/standard/url_scanner_ex.re"
@@ -575,7 +576,7 @@ yy4:
state_tag:
start = YYCURSOR;
-#line 579 "ext/standard/url_scanner_ex.c"
+#line 580 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
@@ -612,37 +613,25 @@ state_tag:
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
};
- if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if (yych <= '@') {
- if (yych != ':') goto yy11;
- } else {
- if (yych <= 'Z') goto yy9;
- if (yych <= '`') goto yy11;
- if (yych >= '{') goto yy11;
+ if (yybm[0+yych] & 128) {
+ goto yy11;
}
-yy9:
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy14;
-yy10:
-#line 524 "ext/standard/url_scanner_ex.re"
- { handle_tag(STD_ARGS); /* Sets STATE */; passthru(STD_ARGS); if (STATE == STATE_PLAIN) goto state_plain; else goto state_next_arg; }
-#line 632 "ext/standard/url_scanner_ex.c"
-yy11:
++YYCURSOR;
#line 525 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); goto state_plain_begin; }
-#line 637 "ext/standard/url_scanner_ex.c"
-yy13:
+#line 625 "ext/standard/url_scanner_ex.c"
+yy11:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy14:
if (yybm[0+yych] & 128) {
- goto yy13;
+ goto yy11;
}
- goto yy10;
+#line 524 "ext/standard/url_scanner_ex.re"
+ { handle_tag(STD_ARGS); /* Sets STATE */; passthru(STD_ARGS); if (STATE == STATE_PLAIN) goto state_plain; else goto state_next_arg; }
+#line 635 "ext/standard/url_scanner_ex.c"
}
#line 526 "ext/standard/url_scanner_ex.re"
@@ -653,7 +642,7 @@ state_next_arg_begin:
state_next_arg:
start = YYCURSOR;
-#line 657 "ext/standard/url_scanner_ex.c"
+#line 646 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
@@ -692,70 +681,49 @@ state_next_arg:
};
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if (yych <= '.') {
- if (yych <= '\f') {
- if (yych <= 0x08) goto yy25;
- if (yych <= '\v') goto yy21;
- goto yy25;
- } else {
- if (yych <= '\r') goto yy21;
- if (yych == ' ') goto yy21;
- goto yy25;
- }
+ if (yybm[0+yych] & 128) {
+ goto yy18;
+ }
+ if (yych <= '>') {
+ if (yych == '/') goto yy21;
+ if (yych >= '>') goto yy22;
} else {
- if (yych <= '@') {
- if (yych <= '/') goto yy17;
- if (yych == '>') goto yy19;
- goto yy25;
+ if (yych <= 'Z') {
+ if (yych >= 'A') goto yy24;
} else {
- if (yych <= 'Z') goto yy23;
- if (yych <= '`') goto yy25;
- if (yych <= 'z') goto yy23;
- goto yy25;
+ if (yych <= '`') goto yy16;
+ if (yych <= 'z') goto yy24;
}
}
-yy17:
+yy16:
++YYCURSOR;
- if ((yych = *YYCURSOR) == '>') goto yy28;
-yy18:
+yy17:
#line 537 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); goto state_plain_begin; }
-#line 724 "ext/standard/url_scanner_ex.c"
-yy19:
- ++YYCURSOR;
-yy20:
-#line 534 "ext/standard/url_scanner_ex.re"
- { passthru(STD_ARGS); handle_form(STD_ARGS); goto state_plain_begin; }
-#line 730 "ext/standard/url_scanner_ex.c"
-yy21:
+#line 704 "ext/standard/url_scanner_ex.c"
+yy18:
++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy27;
-yy22:
+ if (yybm[0+yych] & 128) {
+ goto yy18;
+ }
#line 535 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); goto state_next_arg; }
-#line 738 "ext/standard/url_scanner_ex.c"
-yy23:
- ++YYCURSOR;
-#line 536 "ext/standard/url_scanner_ex.re"
- { --YYCURSOR; STATE = STATE_ARG; goto state_arg; }
-#line 743 "ext/standard/url_scanner_ex.c"
-yy25:
+#line 714 "ext/standard/url_scanner_ex.c"
+yy21:
yych = *++YYCURSOR;
- goto yy18;
-yy26:
+ if (yych != '>') goto yy17;
+yy22:
++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
- yych = *YYCURSOR;
-yy27:
- if (yybm[0+yych] & 128) {
- goto yy26;
- }
- goto yy22;
-yy28:
+#line 534 "ext/standard/url_scanner_ex.re"
+ { passthru(STD_ARGS); handle_form(STD_ARGS); goto state_plain_begin; }
+#line 722 "ext/standard/url_scanner_ex.c"
+yy24:
++YYCURSOR;
- yych = *YYCURSOR;
- goto yy20;
+#line 536 "ext/standard/url_scanner_ex.re"
+ { --YYCURSOR; STATE = STATE_ARG; goto state_arg; }
+#line 727 "ext/standard/url_scanner_ex.c"
}
#line 538 "ext/standard/url_scanner_ex.re"
@@ -763,7 +731,7 @@ yy28:
state_arg:
start = YYCURSOR;
-#line 767 "ext/standard/url_scanner_ex.c"
+#line 735 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
@@ -800,34 +768,27 @@ state_arg:
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
};
- if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
- yych = *YYCURSOR;
- if (yych <= '@') goto yy33;
- if (yych <= 'Z') goto yy31;
- if (yych <= '`') goto yy33;
- if (yych >= '{') goto yy33;
-yy31:
- ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy36;
-yy32:
-#line 543 "ext/standard/url_scanner_ex.re"
- { passthru(STD_ARGS); handle_arg(STD_ARGS); STATE = STATE_BEFORE_VAL; goto state_before_val; }
-#line 817 "ext/standard/url_scanner_ex.c"
-yy33:
+ if (yych <= '@') goto yy28;
+ if (yych <= 'Z') goto yy30;
+ if (yych <= '`') goto yy28;
+ if (yych <= 'z') goto yy30;
+yy28:
++YYCURSOR;
#line 544 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); STATE = STATE_NEXT_ARG; goto state_next_arg; }
-#line 822 "ext/standard/url_scanner_ex.c"
-yy35:
+#line 782 "ext/standard/url_scanner_ex.c"
+yy30:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy36:
if (yybm[0+yych] & 128) {
- goto yy35;
+ goto yy30;
}
- goto yy32;
+#line 543 "ext/standard/url_scanner_ex.re"
+ { passthru(STD_ARGS); handle_arg(STD_ARGS); STATE = STATE_BEFORE_VAL; goto state_before_val; }
+#line 792 "ext/standard/url_scanner_ex.c"
}
#line 545 "ext/standard/url_scanner_ex.re"
@@ -835,7 +796,7 @@ yy36:
state_before_val:
start = YYCURSOR;
-#line 839 "ext/standard/url_scanner_ex.c"
+#line 800 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
@@ -874,45 +835,35 @@ state_before_val:
};
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if (yych == ' ') goto yy39;
- if (yych == '=') goto yy41;
- goto yy43;
-yy39:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == ' ') goto yy46;
- if (yych == '=') goto yy44;
-yy40:
+ if (yych == ' ') goto yy37;
+ if (yych == '=') goto yy38;
+ ++YYCURSOR;
+yy36:
#line 551 "ext/standard/url_scanner_ex.re"
{ --YYCURSOR; goto state_next_arg_begin; }
-#line 888 "ext/standard/url_scanner_ex.c"
-yy41:
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy45;
-yy42:
-#line 550 "ext/standard/url_scanner_ex.re"
- { passthru(STD_ARGS); STATE = STATE_VAL; goto state_val; }
-#line 896 "ext/standard/url_scanner_ex.c"
-yy43:
- yych = *++YYCURSOR;
- goto yy40;
-yy44:
+#line 845 "ext/standard/url_scanner_ex.c"
+yy37:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == ' ') goto yy41;
+ if (yych != '=') goto yy36;
+yy38:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy45:
if (yybm[0+yych] & 128) {
- goto yy44;
+ goto yy38;
}
- goto yy42;
-yy46:
+#line 550 "ext/standard/url_scanner_ex.re"
+ { passthru(STD_ARGS); STATE = STATE_VAL; goto state_val; }
+#line 859 "ext/standard/url_scanner_ex.c"
+yy41:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if (yych == ' ') goto yy46;
- if (yych == '=') goto yy44;
+ if (yych == ' ') goto yy41;
+ if (yych == '=') goto yy38;
YYCURSOR = YYMARKER;
- goto yy40;
+ goto yy36;
}
#line 552 "ext/standard/url_scanner_ex.re"
@@ -921,7 +872,7 @@ yy46:
state_val:
start = YYCURSOR;
-#line 925 "ext/standard/url_scanner_ex.c"
+#line 876 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
static const unsigned char yybm[] = {
@@ -929,7 +880,7 @@ state_val:
224, 192, 192, 224, 224, 192, 224, 224,
224, 224, 224, 224, 224, 224, 224, 224,
224, 224, 224, 224, 224, 224, 224, 224,
- 192, 224, 64, 224, 224, 224, 224, 128,
+ 192, 224, 128, 224, 224, 224, 224, 64,
224, 224, 224, 224, 224, 224, 224, 224,
224, 224, 224, 224, 224, 224, 224, 224,
224, 224, 224, 224, 224, 224, 0, 224,
@@ -960,85 +911,67 @@ state_val:
};
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if (yych <= ' ') {
- if (yych <= '\f') {
- if (yych <= 0x08) goto yy54;
- if (yych <= '\n') goto yy56;
- goto yy54;
- } else {
- if (yych <= '\r') goto yy56;
- if (yych <= 0x1F) goto yy54;
- goto yy56;
- }
- } else {
- if (yych <= '&') {
- if (yych != '"') goto yy54;
- } else {
- if (yych <= '\'') goto yy53;
- if (yych == '>') goto yy56;
- goto yy54;
- }
+ if (yybm[0+yych] & 32) {
+ goto yy46;
}
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych != '>') goto yy65;
-yy52:
-#line 561 "ext/standard/url_scanner_ex.re"
- { passthru(STD_ARGS); goto state_next_arg_begin; }
-#line 988 "ext/standard/url_scanner_ex.c"
-yy53:
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych == '>') goto yy52;
- goto yy60;
-yy54:
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy58;
-yy55:
-#line 560 "ext/standard/url_scanner_ex.re"
- { handle_val(STD_ARGS, 0, ' '); goto state_next_arg_begin; }
-#line 1000 "ext/standard/url_scanner_ex.c"
-yy56:
- yych = *++YYCURSOR;
- goto yy52;
-yy57:
+ if (yych <= ' ') goto yy49;
+ if (yych <= '"') goto yy51;
+ if (yych <= '\'') goto yy52;
+ goto yy49;
+yy46:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy58:
if (yybm[0+yych] & 32) {
- goto yy57;
+ goto yy46;
}
- goto yy55;
-yy59:
+#line 560 "ext/standard/url_scanner_ex.re"
+ { handle_val(STD_ARGS, 0, ' '); goto state_next_arg_begin; }
+#line 931 "ext/standard/url_scanner_ex.c"
+yy49:
+ ++YYCURSOR;
+yy50:
+#line 561 "ext/standard/url_scanner_ex.re"
+ { passthru(STD_ARGS); goto state_next_arg_begin; }
+#line 937 "ext/standard/url_scanner_ex.c"
+yy51:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '>') goto yy50;
+ goto yy54;
+yy52:
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych == '>') goto yy50;
+ goto yy59;
+yy53:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy60:
+yy54:
if (yybm[0+yych] & 64) {
- goto yy59;
+ goto yy53;
}
- if (yych <= '=') goto yy62;
-yy61:
+ if (yych <= '"') goto yy56;
+yy55:
YYCURSOR = YYMARKER;
- goto yy52;
-yy62:
+ goto yy50;
+yy56:
++YYCURSOR;
-#line 559 "ext/standard/url_scanner_ex.re"
- { handle_val(STD_ARGS, 1, '\''); goto state_next_arg_begin; }
-#line 1029 "ext/standard/url_scanner_ex.c"
-yy64:
+#line 558 "ext/standard/url_scanner_ex.re"
+ { handle_val(STD_ARGS, 1, '"'); goto state_next_arg_begin; }
+#line 962 "ext/standard/url_scanner_ex.c"
+yy58:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy65:
+yy59:
if (yybm[0+yych] & 128) {
- goto yy64;
+ goto yy58;
}
- if (yych >= '>') goto yy61;
+ if (yych >= '(') goto yy55;
++YYCURSOR;
-#line 558 "ext/standard/url_scanner_ex.re"
- { handle_val(STD_ARGS, 1, '"'); goto state_next_arg_begin; }
-#line 1042 "ext/standard/url_scanner_ex.c"
+#line 559 "ext/standard/url_scanner_ex.re"
+ { handle_val(STD_ARGS, 1, '\''); goto state_next_arg_begin; }
+#line 975 "ext/standard/url_scanner_ex.c"
}
#line 562 "ext/standard/url_scanner_ex.re"