sas Tue Jun 3 10:26:38 2003 EDT
Modified files:
/php4/ext/ircg ircg_scanner.c
Log:
sync
Index: php4/ext/ircg/ircg_scanner.c
diff -u php4/ext/ircg/ircg_scanner.c:1.25 php4/ext/ircg/ircg_scanner.c:1.26
--- php4/ext/ircg/ircg_scanner.c:1.25 Sat Apr 26 16:43:36 2003
+++ php4/ext/ircg/ircg_scanner.c Tue Jun 3 10:26:38 2003
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.5 on Sat Apr 26 22:43:29 2003 */
+/* Generated by re2c 0.5 on Tue Jun 3 16:26:05 2003 */
#line 1 "ircg_scanner.re"
/*
+----------------------------------------------------------------------+
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ircg_scanner.c,v 1.25 2003/04/26 20:43:36 sas Exp $ */
+/* $Id: ircg_scanner.c,v 1.26 2003/06/03 14:26:38 sas Exp $ */
#include "php_ircg_alloc.h"
@@ -40,20 +40,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;
@@ -61,12 +53,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 82
+#line 78
#define YYFILL(n) do { } while (0)
@@ -78,8 +72,12 @@
#define STD_PARA ircg_msg_scanner *ctx, const char *start, const char *YYCURSOR
#define STD_ARGS ctx, start, YYCURSOR
-#define PASSTHRU() do {
\
- smart_str_appendl_ex(result, start, YYCURSOR - start, 1); \
+#define PASSTHRU() 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)
@@ -121,6 +119,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)
@@ -189,6 +192,18 @@
smart_str_appends_ex(result, entity, 1);
\
} while (0)
+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 do_reset(STD_PARA)
{
finish_color_stuff(STD_ARGS);
@@ -225,12 +240,13 @@
yych = *YYCURSOR;
switch(yych){
case '\000': goto yy2;
- case '\002': goto yy17;
+ case '\002': goto yy19;
case '\003': goto yy5;
- case '\017': goto yy23;
- case '\026': goto yy21;
+ case '\004': goto yy17;
+ case '\017': goto yy25;
+ case '\035': goto yy23;
case '\036': goto yy15;
- case '\037': goto yy19;
+ case '\037': goto yy21;
case '&': goto yy11;
case '<': goto yy7;
case '>': goto yy9;
@@ -287,7 +303,7 @@
case 'z': goto yy3;
case '\204': case '\223':
case '\224': goto yy13;
- default: goto yy25;
+ default: goto yy27;
}
yy2: YYCURSOR = YYMARKER;
switch(yyaccept){
@@ -356,58 +372,62 @@
case 'w':
case 'x':
case 'y':
- case 'z': goto yy27;
+ case 'z': goto yy29;
default: goto yy4;
}
yy4:
-#line 242
+#line 260
{ PASSTHRU(); goto state_plain; }
yy5: yych = *++YYCURSOR;
yy6:
-#line 232
+#line 249
{ mctx.fg_code = mctx.bg_code = -1; goto state_color_fg; }
yy7: yych = *++YYCURSOR;
yy8:
-#line 233
+#line 250
{ ADD_CONST("<"); goto state_plain; }
yy9: yych = *++YYCURSOR;
yy10:
-#line 234
+#line 251
{ ADD_CONST(">"); goto state_plain; }
yy11: yych = *++YYCURSOR;
yy12:
-#line 235
+#line 252
{ ADD_CONST("&"); goto state_plain; }
yy13: yych = *++YYCURSOR;
yy14:
-#line 236
+#line 253
{ ADD_CONST("""); goto state_plain; }
yy15: yych = *++YYCURSOR;
yy16:
-#line 237
+#line 254
{ if (gen_br) ADD_CONST("<br>"); goto state_plain; }
yy17: yych = *++YYCURSOR;
yy18:
-#line 238
- { handle_bold(STD_ARGS, 0); goto state_plain; }
+#line 255
+ { mctx.fg_color[0] = mctx.bg_color[0] = 0; goto state_color_hex; }
yy19: yych = *++YYCURSOR;
yy20:
-#line 239
- { handle_underline(STD_ARGS, 0); goto state_plain; }
+#line 256
+ { handle_bold(STD_ARGS, 0); goto state_plain; }
yy21: yych = *++YYCURSOR;
yy22:
-#line 240
- { handle_italic(STD_ARGS, 0); goto state_plain; }
+#line 257
+ { handle_underline(STD_ARGS, 0); goto state_plain; }
yy23: yych = *++YYCURSOR;
yy24:
-#line 241
- { do_reset(STD_ARGS); goto state_plain; }
+#line 258
+ { handle_italic(STD_ARGS, 0); goto state_plain; }
yy25: yych = *++YYCURSOR;
+yy26:
+#line 259
+ { do_reset(STD_ARGS); goto state_plain; }
+yy27: yych = *++YYCURSOR;
goto yy4;
-yy26: ++YYCURSOR;
+yy28: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy27: switch(yych){
+yy29: switch(yych){
case '0':
case '1':
case '2':
@@ -467,36 +487,411 @@
case 'w':
case 'x':
case 'y':
- case 'z': goto yy26;
- case ':': goto yy28;
+ case 'z': goto yy28;
+ case ':': goto yy30;
default: goto yy2;
}
-yy28: yych = *++YYCURSOR;
+yy30: yych = *++YYCURSOR;
switch(yych){
- case '/': goto yy29;
+ case '/': goto yy31;
default: goto yy2;
}
-yy29: yych = *++YYCURSOR;
+yy31: yych = *++YYCURSOR;
switch(yych){
- case '/': goto yy30;
+ case '/': goto yy32;
default: goto yy2;
}
-yy30: yych = *++YYCURSOR;
-yy31:
-#line 231
+yy32: yych = *++YYCURSOR;
+yy33:
+#line 248
{ if (auto_links) { handle_scheme(STD_ARGS); goto state_url; } else {
PASSTHRU(); goto state_plain; } }
}
-#line 243
+#line 261
+
+
+statc_color_hex:
+ start = YYCURSOR;
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy34;
+yy35: ++YYCURSOR;
+yy34:
+ if((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
+ yych = *YYCURSOR;
+ switch(yych){
+ case ',': goto yy38;
+ 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 yy36;
+ default: goto yy40;
+ }
+yy36: 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 yy41;
+ default: goto yy37;
+ }
+yy37:
+#line 268
+ { finish_color_stuff(STD_ARGS); PASSTHRU(); goto state_plain; }
+yy38: yych = *++YYCURSOR;
+yy39:
+#line 267
+ { goto state_color_hex_bg; }
+yy40: yych = *++YYCURSOR;
+ goto yy37;
+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 yy43;
+ default: goto yy42;
+ }
+yy42: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy37;
+ }
+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 yy42;
+ }
+yy44: 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 yy45;
+ default: goto yy42;
+ }
+yy45: 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 yy46;
+ default: goto yy42;
+ }
+yy46: yych = *++YYCURSOR;
+yy47:
+#line 266
+ { handle_hex(STD_ARGS, 0); goto state_color_hex_bg; }
+}
+#line 269
+
+
+
+state_color_hex_comma:
+ start = YYCURSOR;
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy48;
+yy49: ++YYCURSOR;
+yy48:
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ switch(yych){
+ case ',': goto yy50;
+ default: goto yy52;
+ }
+yy50: yych = *++YYCURSOR;
+yy51:
+#line 275
+ { goto state_color_hex_bg; }
+yy52: yych = *++YYCURSOR;
+yy53:
+#line 276
+ { YYCURSOR--; commit_color_hex(STD_ARGS); goto state_plain; }
+}
+#line 277
+
+
+
+state_color_hex_bg:
+ start = YYCURSOR;
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy54;
+yy55: ++YYCURSOR;
+yy54:
+ 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 yy56;
+ default: goto yy58;
+ }
+yy56: 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 yy59;
+ default: goto yy57;
+ }
+yy57:
+#line 284
+ { commit_color_hex(STD_ARGS); PASSTHRU(); goto state_plain; }
+yy58: yych = *++YYCURSOR;
+ goto yy57;
+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 yy61;
+ default: goto yy60;
+ }
+yy60: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy57;
+ }
+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 yy60;
+ }
+yy62: 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 yy63;
+ default: goto yy60;
+ }
+yy63: 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 yy64;
+ default: goto yy60;
+ }
+yy64: yych = *++YYCURSOR;
+yy65:
+#line 283
+ { handle_hex(STD_ARGS, 1); commit_color_hex(STD_ARGS); goto state_plain; }
+}
+#line 285
-state_url:
+state_url:
start = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
- goto yy32;
-yy33: ++YYCURSOR;
-yy32:
+ goto yy66;
+yy67: ++YYCURSOR;
+yy66:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
@@ -576,22 +971,22 @@
case 'w':
case 'x':
case 'y':
- case 'z': case '~': goto yy34;
- default: goto yy36;
+ case 'z': case '~': goto yy68;
+ default: goto yy70;
}
-yy34: yych = *++YYCURSOR;
- goto yy39;
-yy35:
-#line 248
+yy68: yych = *++YYCURSOR;
+ goto yy73;
+yy69:
+#line 290
{ handle_url(STD_ARGS); goto state_plain; }
-yy36: yych = *++YYCURSOR;
-yy37:
-#line 249
+yy70: yych = *++YYCURSOR;
+yy71:
+#line 291
{ PASSTHRU(); goto state_plain; }
-yy38: ++YYCURSOR;
+yy72: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy39: switch(yych){
+yy73: switch(yych){
case '!': case '#':
case '$':
case '%':
@@ -668,11 +1063,11 @@
case 'w':
case 'x':
case 'y':
- case 'z': case '~': goto yy38;
- default: goto yy35;
+ case 'z': case '~': goto yy72;
+ default: goto yy69;
}
}
-#line 250
+#line 292
@@ -681,12 +1076,13 @@
{
YYCTYPE yych;
unsigned int yyaccept;
- goto yy40;
-yy41: ++YYCURSOR;
-yy40:
+ goto yy74;
+yy75: ++YYCURSOR;
+yy74:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
+ case ',': goto yy78;
case '0':
case '1':
case '2':
@@ -696,10 +1092,10 @@
case '6':
case '7':
case '8':
- case '9': goto yy42;
- default: goto yy44;
+ case '9': goto yy76;
+ default: goto yy80;
}
-yy42: yych = *++YYCURSOR;
+yy76: yych = *++YYCURSOR;
switch(yych){
case '0':
case '1':
@@ -710,58 +1106,62 @@
case '6':
case '7':
case '8':
- case '9': goto yy46;
- default: goto yy43;
+ case '9': goto yy82;
+ default: goto yy77;
}
-yy43:
-#line 256
+yy77:
+#line 298
{ handle_color_digit(STD_ARGS, 0); goto state_color_comma; }
-yy44: yych = *++YYCURSOR;
-yy45:
-#line 257
+yy78: yych = *++YYCURSOR;
+yy79:
+#line 299
+ { goto state_color_bg; }
+yy80: yych = *++YYCURSOR;
+yy81:
+#line 300
{ finish_color_stuff(STD_ARGS); PASSTHRU(); goto state_plain; }
-yy46: yych = *++YYCURSOR;
- goto yy43;
+yy82: yych = *++YYCURSOR;
+ goto yy77;
}
-#line 258
+#line 301
-
+
state_color_comma:
start = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
- goto yy47;
-yy48: ++YYCURSOR;
-yy47:
+ goto yy83;
+yy84: ++YYCURSOR;
+yy83:
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych){
- case ',': goto yy49;
- default: goto yy51;
+ case ',': goto yy85;
+ default: goto yy87;
}
-yy49: yych = *++YYCURSOR;
-yy50:
-#line 264
+yy85: yych = *++YYCURSOR;
+yy86:
+#line 307
{ goto state_color_bg; }
-yy51: yych = *++YYCURSOR;
-yy52:
-#line 265
+yy87: yych = *++YYCURSOR;
+yy88:
+#line 308
{ YYCURSOR--; commit_color_stuff(STD_ARGS); goto state_plain; }
}
-#line 266
-
+#line 309
+
state_color_bg:
start = YYCURSOR;
{
YYCTYPE yych;
unsigned int yyaccept;
- goto yy53;
-yy54: ++YYCURSOR;
-yy53:
+ goto yy89;
+yy90: ++YYCURSOR;
+yy89:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych){
@@ -774,10 +1174,10 @@
case '6':
case '7':
case '8':
- case '9': goto yy55;
- default: goto yy57;
+ case '9': goto yy91;
+ default: goto yy93;
}
-yy55: yych = *++YYCURSOR;
+yy91: yych = *++YYCURSOR;
switch(yych){
case '0':
case '1':
@@ -788,20 +1188,20 @@
case '6':
case '7':
case '8':
- case '9': goto yy59;
- default: goto yy56;
+ case '9': goto yy95;
+ default: goto yy92;
}
-yy56:
-#line 272
+yy92:
+#line 315
{ handle_color_digit(STD_ARGS, 1); commit_color_stuff(STD_ARGS); goto
state_plain; }
-yy57: yych = *++YYCURSOR;
-yy58:
-#line 273
- { commit_color_stuff(STD_ARGS); goto state_plain; }
-yy59: yych = *++YYCURSOR;
- goto yy56;
+yy93: yych = *++YYCURSOR;
+yy94:
+#line 316
+ { commit_color_stuff(STD_ARGS); PASSTHRU(); goto state_plain; }
+yy95: yych = *++YYCURSOR;
+ goto yy92;
}
-#line 274
+#line 317
stop:
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php