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, "&lt;"); 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, "&gt;"); goto state_plain; }
+#line 241
+       { add_entity(STD_ARGS, "&lt;"); goto state_plain; }
 yy11:  yych = *++YYCURSOR;
 yy12:
-#line 226
-       { add_entity(STD_ARGS, "&amp;"); goto state_plain; }
+#line 242
+       { add_entity(STD_ARGS, "&gt;"); goto state_plain; }
 yy13:  yych = *++YYCURSOR;
 yy14:
-#line 227
-       { add_entity(STD_ARGS, "&quot;"); goto state_plain; }
+#line 243
+       { add_entity(STD_ARGS, "&amp;"); 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, "&quot;"); 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

Reply via email to