sas Tue Jun 3 10:16:44 2003 EDT
Modified files: (Branch: PHP_4_3)
/php4/ext/ircg ircg_scanner.c
Log:
sync
Index: php4/ext/ircg/ircg_scanner.c
diff -u php4/ext/ircg/ircg_scanner.c:1.19.8.2 php4/ext/ircg/ircg_scanner.c:1.19.8.3
--- php4/ext/ircg/ircg_scanner.c:1.19.8.2 Tue Jan 28 09:34:18 2003
+++ php4/ext/ircg/ircg_scanner.c Tue Jun 3 10:16:43 2003
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.5 on Tue Jan 28 15:32:52 2003 */
+/* Generated by re2c 0.5 on Tue Jun 3 16:16:33 2003 */
#line 1 "ircg_scanner.re"
/*
+----------------------------------------------------------------------+
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ircg_scanner.c,v 1.19.8.2 2003/01/28 14:34:18 sas Exp $ */
+/* $Id: ircg_scanner.c,v 1.19.8.3 2003/06/03 14:16:43 sas Exp $ */
#include <ext/standard/php_smart_str.h>
#include <stdio.h>
@@ -38,20 +38,12 @@
"teal",
"lightcyan",
"lightblue",
- "pink",
- "gray",
+ "#ff00ff",
+ "#bebebe",
"lightgrey"
};
-enum {
- STATE_PLAIN,
- STATE_URL,
- STATE_COLOR_FG,
- STATE_COLOR_COMMA,
- STATE_COLOR_BG
-};
-
typedef struct {
int bg_code;
int fg_code;
@@ -59,12 +51,14 @@
int bold_tag_open;
int underline_tag_open;
int italic_tag_open;
+ char fg_color[6];
+ char bg_color[6];
smart_str scheme;
smart_str *result;
} ircg_msg_scanner;
-#line 79
+#line 75
#define YYFILL(n) do { } while (0)
@@ -76,10 +70,13 @@
#define STD_PARA ircg_msg_scanner *ctx, const char *start, const char *YYCURSOR
#define STD_ARGS ctx, start, YYCURSOR
-static inline void passthru(STD_PARA)
-{
- smart_str_appendl_ex(ctx->result, start, YYCURSOR - start, 1);
-}
+#define passthru(na,nb,nc) do {
\
+ size_t __len = xp - start;
\
+ if (__len == 1)
\
+ smart_str_appendc_ex(mctx.result, start, 1); \
+ else
\
+ smart_str_appendl_ex(mctx.result, start, __len, 1); \
+} while (0)
static inline void handle_scheme(STD_PARA)
{
@@ -120,6 +117,11 @@
}
}
+static void handle_hex(STD_PARA, int mode)
+{
+ memcpy(mode == 0 ? ctx->fg_color : ctx->bg_color, start, 6);
+}
+
#define IS_VALID_CODE(n) (n >= 0 && n <= 15)
static void finish_color_stuff(STD_PARA)
@@ -184,6 +186,18 @@
}
}
+static void commit_color_hex(STD_PARA)
+{
+ finish_color_stuff(STD_ARGS);
+
+ if (ctx->fg_color[0] != 0) {
+ smart_str_appends_ex(ctx->result, "<font color=\"", 1);
+ smart_str_appendl_ex(ctx->result, ctx->fg_color, 6, 1);
+ smart_str_appends_ex(ctx->result, "\">", 1);
+ ctx->font_tag_open = 1;
+ }
+}
+
static void add_entity(STD_PARA, const char *entity)
{
smart_str_appends_ex(ctx->result, entity, 1);
@@ -217,14 +231,15 @@
yych = *YYCURSOR;
switch(yych){
case '\000': goto yy2;
- case '\002': goto yy17;
+ case '\002': goto yy19;
case '\003': goto yy5;
- case '\026': goto yy21;
- case '\036': goto yy15;
- case '\037': goto yy19;
- case '&': goto yy11;
- case '<': goto yy7;
- case '>': goto yy9;
+ case '\004': goto yy7;
+ case '\035': goto yy23;
+ case '\036': goto yy17;
+ case '\037': goto yy21;
+ case '&': goto yy13;
+ case '<': goto yy9;
+ case '>': goto yy11;
case 'A':
case 'B':
case 'C':
@@ -277,8 +292,8 @@
case 'y':
case 'z': goto yy3;
case '\204': case '\223':
- case '\224': goto yy13;
- default: goto yy23;
+ case '\224': goto yy15;
+ default: goto yy25;
}
yy2: YYCURSOR = YYMARKER;
switch(yyaccept){
@@ -347,54 +362,58 @@
case 'w':
case 'x':
case 'y':
- case 'z': goto yy25;
+ case 'z': goto yy27;
default: goto yy4;
}
yy4:
-#line 232
+#line 249
{ passthru(STD_ARGS); goto state_plain; }
yy5: yych = *++YYCURSOR;
yy6:
-#line 223
+#line 239
{ mctx.fg_code = mctx.bg_code = -1; goto state_color_fg; }
yy7: yych = *++YYCURSOR;
yy8:
-#line 224
- { add_entity(STD_ARGS, "<"); goto state_plain; }
+#line 240
+ { mctx.fg_color[0] = mctx.bg_color[0] = 0; goto state_color_hex; }
yy9: yych = *++YYCURSOR;
yy10:
-#line 225
- { add_entity(STD_ARGS, ">"); goto state_plain; }
+#line 241
+ { add_entity(STD_ARGS, "<"); goto state_plain; }
yy11: yych = *++YYCURSOR;
yy12:
-#line 226
- { add_entity(STD_ARGS, "&"); goto state_plain; }
+#line 242
+ { add_entity(STD_ARGS, ">"); goto state_plain; }
yy13: yych = *++YYCURSOR;
yy14:
-#line 227
- { add_entity(STD_ARGS, """); goto state_plain; }
+#line 243
+ { add_entity(STD_ARGS, "&"); goto state_plain; }
yy15: yych = *++YYCURSOR;
yy16:
-#line 228
- { if (gen_br) smart_str_appendl_ex(ctx->result, "<br>", 4, 1); goto
state_plain; }
+#line 244
+ { add_entity(STD_ARGS, """); goto state_plain; }
yy17: yych = *++YYCURSOR;
yy18:
-#line 229
- { handle_bold(STD_ARGS, 0); goto state_plain; }
+#line 245
+ { if (gen_br) smart_str_appendl_ex(ctx->result, "<br>", 4, 1); goto
state_plain; }
yy19: yych = *++YYCURSOR;
yy20:
-#line 230
- { handle_underline(STD_ARGS, 0); goto state_plain; }
+#line 246
+ { handle_bold(STD_ARGS, 0); goto state_plain; }
yy21: yych = *++YYCURSOR;
yy22:
-#line 231
- { handle_italic(STD_ARGS, 0); goto state_plain; }
+#line 247
+ { handle_underline(STD_ARGS, 0); goto state_plain; }
yy23: yych = *++YYCURSOR;
+yy24:
+#line 248
+ { handle_italic(STD_ARGS, 0); goto state_plain; }
+yy25: yych = *++YYCURSOR;
goto yy4;
-yy24: ++YYCURSOR;
+yy26: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy25: switch(yych){
+yy27: switch(yych){
case '0':
case '1':
case '2':
@@ -454,36 +473,411 @@
case 'w':
case 'x':
case 'y':
- case 'z': goto yy24;
- case ':': goto yy26;
+ case 'z': goto yy26;
+ case ':': goto yy28;
default: goto yy2;
}
-yy26: yych = *++YYCURSOR;
+yy28: yych = *++YYCURSOR;
switch(yych){
- case '/': goto yy27;
+ case '/': goto yy29;
default: goto yy2;
}
-yy27: yych = *++YYCURSOR;
+yy29: yych = *++YYCURSOR;
switch(yych){
- case '/': goto yy28;
+ case '/': goto yy30;
default: goto yy2;
}
-yy28: yych = *++YYCURSOR;
-yy29:
-#line 222
+yy30: yych = *++YYCURSOR;
+yy31:
+#line 238
{ if (auto_links) { handle_scheme(STD_ARGS); goto state_url; } else {
passthru(STD_ARGS); goto state_plain; } }
}
-#line 233
+#line 250
-state_url:
+statc_color_hex:
start = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
- goto yy30;
-yy31: ++YYCURSOR;
-yy30:
+ goto yy32;
+yy33: ++YYCURSOR;
+yy32:
+ if((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
+ yych = *YYCURSOR;
+ switch(yych){
+ case ',': goto yy36;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy34;
+ default: goto yy38;
+ }
+yy34: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy39;
+ default: goto yy35;
+ }
+yy35:
+#line 257
+ { finish_color_stuff(STD_ARGS); passthru(STD_ARGS); goto state_plain; }
+yy36: yych = *++YYCURSOR;
+yy37:
+#line 256
+ { goto state_color_hex_bg; }
+yy38: yych = *++YYCURSOR;
+ goto yy35;
+yy39: yych = *++YYCURSOR;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy41;
+ default: goto yy40;
+ }
+yy40: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy35;
+ }
+yy41: yych = *++YYCURSOR;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy42;
+ default: goto yy40;
+ }
+yy42: yych = *++YYCURSOR;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy43;
+ default: goto yy40;
+ }
+yy43: yych = *++YYCURSOR;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy44;
+ default: goto yy40;
+ }
+yy44: yych = *++YYCURSOR;
+yy45:
+#line 255
+ { handle_hex(STD_ARGS, 0); goto state_color_hex_bg; }
+}
+#line 258
+
+
+
+state_color_hex_comma:
+ start = YYCURSOR;
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy46;
+yy47: ++YYCURSOR;
+yy46:
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ switch(yych){
+ case ',': goto yy48;
+ default: goto yy50;
+ }
+yy48: yych = *++YYCURSOR;
+yy49:
+#line 264
+ { goto state_color_hex_bg; }
+yy50: yych = *++YYCURSOR;
+yy51:
+#line 265
+ { YYCURSOR--; commit_color_hex(STD_ARGS); goto state_plain; }
+}
+#line 266
+
+
+
+state_color_hex_bg:
+ start = YYCURSOR;
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy52;
+yy53: ++YYCURSOR;
+yy52:
+ if((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
+ yych = *YYCURSOR;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy54;
+ default: goto yy56;
+ }
+yy54: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy57;
+ default: goto yy55;
+ }
+yy55:
+#line 273
+ { commit_color_hex(STD_ARGS); passthru(STD_ARGS); goto state_plain; }
+yy56: yych = *++YYCURSOR;
+ goto yy55;
+yy57: yych = *++YYCURSOR;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy59;
+ default: goto yy58;
+ }
+yy58: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy55;
+ }
+yy59: yych = *++YYCURSOR;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy60;
+ default: goto yy58;
+ }
+yy60: yych = *++YYCURSOR;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy61;
+ default: goto yy58;
+ }
+yy61: yych = *++YYCURSOR;
+ switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f': goto yy62;
+ default: goto yy58;
+ }
+yy62: yych = *++YYCURSOR;
+yy63:
+#line 272
+ { handle_hex(STD_ARGS, 1); commit_color_hex(STD_ARGS); goto state_plain; }
+}
+#line 274
+
+
+state_url:
+ start = YYCURSOR;
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy64;
+yy65: ++YYCURSOR;
+yy64:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
@@ -563,22 +957,22 @@
case 'w':
case 'x':
case 'y':
- case 'z': case '~': goto yy32;
- default: goto yy34;
+ case 'z': case '~': goto yy66;
+ default: goto yy68;
}
-yy32: yych = *++YYCURSOR;
- goto yy37;
-yy33:
-#line 238
+yy66: yych = *++YYCURSOR;
+ goto yy71;
+yy67:
+#line 279
{ handle_url(STD_ARGS); goto state_plain; }
-yy34: yych = *++YYCURSOR;
-yy35:
-#line 239
+yy68: yych = *++YYCURSOR;
+yy69:
+#line 280
{ passthru(STD_ARGS); goto state_plain; }
-yy36: ++YYCURSOR;
+yy70: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy37: switch(yych){
+yy71: switch(yych){
case '!': case '#':
case '$':
case '%':
@@ -655,11 +1049,11 @@
case 'w':
case 'x':
case 'y':
- case 'z': case '~': goto yy36;
- default: goto yy33;
+ case 'z': case '~': goto yy70;
+ default: goto yy67;
}
}
-#line 240
+#line 281
@@ -668,12 +1062,13 @@
{
YYCTYPE yych;
unsigned int yyaccept;
- goto yy38;
-yy39: ++YYCURSOR;
-yy38:
+ goto yy72;
+yy73: ++YYCURSOR;
+yy72:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
+ case ',': goto yy76;
case '0':
case '1':
case '2':
@@ -683,10 +1078,10 @@
case '6':
case '7':
case '8':
- case '9': goto yy40;
- default: goto yy42;
+ case '9': goto yy74;
+ default: goto yy78;
}
-yy40: yych = *++YYCURSOR;
+yy74: yych = *++YYCURSOR;
switch(yych){
case '0':
case '1':
@@ -697,58 +1092,62 @@
case '6':
case '7':
case '8':
- case '9': goto yy44;
- default: goto yy41;
+ case '9': goto yy80;
+ default: goto yy75;
}
-yy41:
-#line 246
+yy75:
+#line 287
{ handle_color_digit(STD_ARGS, 0); goto state_color_comma; }
-yy42: yych = *++YYCURSOR;
-yy43:
-#line 247
+yy76: yych = *++YYCURSOR;
+yy77:
+#line 288
+ { goto state_color_bg; }
+yy78: yych = *++YYCURSOR;
+yy79:
+#line 289
{ finish_color_stuff(STD_ARGS); passthru(STD_ARGS); goto state_plain; }
-yy44: yych = *++YYCURSOR;
- goto yy41;
+yy80: yych = *++YYCURSOR;
+ goto yy75;
}
-#line 248
+#line 290
-
+
state_color_comma:
start = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
- goto yy45;
-yy46: ++YYCURSOR;
-yy45:
+ goto yy81;
+yy82: ++YYCURSOR;
+yy81:
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
- case ',': goto yy47;
- default: goto yy49;
+ case ',': goto yy83;
+ default: goto yy85;
}
-yy47: yych = *++YYCURSOR;
-yy48:
-#line 254
+yy83: yych = *++YYCURSOR;
+yy84:
+#line 296
{ goto state_color_bg; }
-yy49: yych = *++YYCURSOR;
-yy50:
-#line 255
+yy85: yych = *++YYCURSOR;
+yy86:
+#line 297
{ YYCURSOR--; commit_color_stuff(STD_ARGS); goto state_plain; }
}
-#line 256
-
+#line 298
+
state_color_bg:
start = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
- goto yy51;
-yy52: ++YYCURSOR;
-yy51:
+ goto yy87;
+yy88: ++YYCURSOR;
+yy87:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
@@ -761,10 +1160,10 @@
case '6':
case '7':
case '8':
- case '9': goto yy53;
- default: goto yy55;
+ case '9': goto yy89;
+ default: goto yy91;
}
-yy53: yych = *++YYCURSOR;
+yy89: yych = *++YYCURSOR;
switch(yych){
case '0':
case '1':
@@ -775,20 +1174,20 @@
case '6':
case '7':
case '8':
- case '9': goto yy57;
- default: goto yy54;
+ case '9': goto yy93;
+ default: goto yy90;
}
-yy54:
-#line 262
+yy90:
+#line 304
{ handle_color_digit(STD_ARGS, 1); commit_color_stuff(STD_ARGS); goto
state_plain; }
-yy55: yych = *++YYCURSOR;
-yy56:
-#line 263
- { commit_color_stuff(STD_ARGS); goto state_plain; }
-yy57: yych = *++YYCURSOR;
- goto yy54;
+yy91: yych = *++YYCURSOR;
+yy92:
+#line 305
+ { commit_color_stuff(STD_ARGS); passthru(STD_ARGS); goto state_plain; }
+yy93: yych = *++YYCURSOR;
+ goto yy90;
}
-#line 264
+#line 306
stop:
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php