From: helly Date: Mon, 26 Feb 2007 09:42:45 +0000 (+0000) Subject: - Update docu X-Git-Tag: 0.13.6~220 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=82b2f1923a576d9a828b232359250f074853e322;p=re2c - Update docu --- diff --git a/re2c/htdocs/manual.html b/re2c/htdocs/manual.html index f27ce744..43b8c307 100755 --- a/re2c/htdocs/manual.html +++ b/re2c/htdocs/manual.html @@ -15,7 +15,7 @@ Updated: 20 Feb 2007

re2c - convert regular expressions to C/C++

 

SYNOPSIS

-

re2c [-bdefghisvVw1] [-o output] file

+

re2c [-bdefghisuvVw1] [-o output] file

 

DESCRIPTION

re2c is a preprocessor that generates C-based recognizers from @@ -26,56 +26,49 @@ executed, will find the next input token and then execute some user-supplied token-specific code.

For example, given the following code

-#define NULL            ((char*) 0)
 char *scan(char *p)
 {
-#define YYCTYPE         char
-#define YYCURSOR        p
-#define YYLIMIT         p
-#define YYFILL(n)
 /*!re2c
-        [0-9]+          {return YYCURSOR;}
-        [\000-\377]     {return NULL;}
+        re2c:define:YYCTYPE  = "unsigned char";
+        re2c:define:YYCURSOR = p;
+        re2c:yyfill:enable   = 0;
+        re2c:yych:conversion = 1;
+        re2c:indent:top      = 1;
+        [0-9]+          {return p;}
+        [\000-\377]     {return (char*)0;}
 */
 }
 


-

re2c will generate

+

re2c -is will generate

 /* Generated by re2c on Sat Apr 16 11:40:58 1994 */
-#line 1 "simple.re"
-#define NULL            ((char*) 0)
 char *scan(char *p)
 {
-#define YYCTYPE         char
-#define YYCURSOR        p
-#define YYLIMIT         p
-#define YYFILL(n)
-{
-        YYCTYPE yych;
+    {
+        unsigned char yych;
 
-        if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-        yych = *YYCURSOR;
+        yych = (unsigned char)*p;
         if(yych <= '/') goto yy4;
         if(yych >= ':') goto yy4;
-yy2:    yych = *++YYCURSOR;
+        ++p;
+        yych = (unsigned char)*p;
         goto yy7;
 yy3:
-#line 9
-        {return YYCURSOR;}
-yy4:    yych = *++YYCURSOR;
-yy5:
-#line 10
-        {return NULL;}
-yy6:    ++YYCURSOR;
-        if(YYLIMIT == YYCURSOR) YYFILL(1);
-        yych = *YYCURSOR;
-yy7:    if(yych <= '/') goto yy3;
+        {return p;}
+yy4:
+        ++p;
+        yych = (unsigned char)*p;
+        {return char*)0;}
+yy6:
+        ++p;
+        yych = (unsigned char)*p;
+yy7:
+        if(yych <= '/') goto yy3;
         if(yych <= '9') goto yy6;
         goto yy3;
-}
-#line 11
+    }
 
 }
 
diff --git a/re2c/re2c.1.in b/re2c/re2c.1.in index 810ffb65..df1fc39a 100644 --- a/re2c/re2c.1.in +++ b/re2c/re2c.1.in @@ -10,7 +10,7 @@ re2c \- convert regular expressions to C/C++ .SH SYNOPSIS -\*(re [\fB-bdefghisvVw1\fP] [\fB-o output\fP] file\fP +\*(re [\fB-bdefghisuvVw1\fP] [\fB-o output\fP] file\fP .SH DESCRIPTION \*(re is a preprocessor that generates C-based recognizers from regular @@ -26,61 +26,51 @@ For example, given the following code .in +3 .nf -#define NULL ((char*) 0) char *scan(char *p) { -#define YYCTYPE char -#define YYCURSOR p -#define YYLIMIT p -#define YYFILL(n) /*!re2c - [0-9]+ {return YYCURSOR;} - [\\000-\\377] {return NULL;} + re2c:define:YYCTYPE = "unsigned char"; + re2c:define:YYCURSOR = p; + re2c:yyfill:enable = 0; + re2c:yych:conversion = 1; + re2c:indent:top = 1; + [0-9]+ {return p;} + [\000-\377] {return (char*)0;} */ } .fi .in -3 -\*(re will generate +\*(re -is will generate .in +3 .nf /* Generated by re2c on Sat Apr 16 11:40:58 1994 */ -#line 1 "simple.re" -#define NULL ((char*) 0) char *scan(char *p) { -#define YYCTYPE char -#define YYCURSOR p -#define YYLIMIT p -#define YYFILL(n) -{ - YYCTYPE yych; - unsigned int yyaccept; - goto yy0; -yy1: ++YYCURSOR; -yy0: - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - if(yych <= '/') goto yy4; - if(yych >= ':') goto yy4; -yy2: yych = *++YYCURSOR; + { + unsigned char yych; + + yych = (unsigned char)*p; + if(yych <= '/') goto yy4; + if(yych >= ':') goto yy4; + ++p; + yych = (unsigned char)*p; goto yy7; yy3: -#line 9 - {return YYCURSOR;} -yy4: yych = *++YYCURSOR; -yy5: -#line 10 - {return NULL;} -yy6: ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy7: if(yych <= '/') goto yy3; - if(yych <= '9') goto yy6; + {return p;} +yy4: + ++p; + yych = (unsigned char)*p; + {return char*)0;} +yy6: + ++p; + yych = (unsigned char)*p; +yy7: + if(yych <= '/') goto yy3; + if(yych <= '9') goto yy6; goto yy3; -} -#line 11 + } } .fi