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("&lt;"); goto state_plain; }
 yy9:   yych = *++YYCURSOR;
 yy10:
-#line 234
+#line 251
        { ADD_CONST("&gt;"); goto state_plain; }
 yy11:  yych = *++YYCURSOR;
 yy12:
-#line 235
+#line 252
        { ADD_CONST("&amp;"); goto state_plain; }
 yy13:  yych = *++YYCURSOR;
 yy14:
-#line 236
+#line 253
        { ADD_CONST("&quot;"); 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

Reply via email to