]> granicus.if.org Git - re2c/commitdiff
Removed unaccurate example.
authorUlya Trofimovich <skvadrik@gmail.com>
Mon, 28 Aug 2017 16:33:46 +0000 (17:33 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Mon, 28 Aug 2017 16:33:46 +0000 (17:33 +0100)
Parsing floating-point numbers is hard and re2c doesn't help much,
so this example was somewhat misleading.

re2c/examples/12_float.i--tags.c [deleted file]
re2c/examples/12_float.i--tags.re [deleted file]

diff --git a/re2c/examples/12_float.i--tags.c b/re2c/examples/12_float.i--tags.c
deleted file mode 100644 (file)
index 75f01f4..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-/* Generated by re2c */
-#include <math.h>
-#include <stdio.h>
-
-static double lex(const char *YYCURSOR)
-{
-    const char *YYMARKER, *h1, *h2, *l1, *l2, *e1, *e2, *n;
-    long e = 0;
-    double d = 0;
-    const char *yyt1;const char *yyt2;const char *yyt3;const char *yyt4;const char *yyt5;const char *yyt6;const char *yyt7;
-    
-{
-       char yych;
-       yych = *YYCURSOR;
-       switch (yych) {
-       case 0x00:
-               yyt2 = yyt4 = yyt5 = yyt6 = yyt7 = NULL;
-               yyt1 = yyt3 = YYCURSOR;
-               goto yy2;
-       case '.':
-               yyt1 = yyt3 = YYCURSOR;
-               goto yy6;
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-               yyt1 = YYCURSOR;
-               goto yy7;
-       case 'E':
-       case 'e':       goto yy8;
-       default:        goto yy4;
-       }
-yy2:
-       ++YYCURSOR;
-       h1 = yyt1;
-       h2 = yyt3;
-       l1 = yyt4;
-       l2 = yyt5;
-       n = yyt7;
-       e1 = yyt6;
-       e2 = yyt2;
-       {
-            for (; e1 < e2; ++e1) e = e * 10 + *e1 - '0';
-            e = (n ? -e : e) - (l2 - l1);
-            for (; h1 < h2; ++h1) d = d * 10 + *h1 - '0';
-            for (; l1 < l2; ++l1) d = d * 10 + *l1 - '0';
-            for (; e < 0; ++e) d /= 10;
-            for (; e > 0; --e) d *= 10;
-            return d;
-        }
-yy4:
-       ++YYCURSOR;
-yy5:
-       { return NAN; }
-yy6:
-       yych = *(YYMARKER = ++YYCURSOR);
-       switch (yych) {
-       case 0x00:
-               yyt1 = yyt2 = yyt3 = NULL;
-               goto yy9;
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-               yyt4 = YYCURSOR;
-               goto yy11;
-       case 'E':
-       case 'e':
-               yyt4 = yyt5 = YYCURSOR;
-               goto yy14;
-       default:        goto yy5;
-       }
-yy7:
-       yych = *(YYMARKER = ++YYCURSOR);
-       switch (yych) {
-       case 0x00:
-               yyt2 = yyt4 = yyt5 = yyt6 = yyt7 = NULL;
-               yyt3 = YYCURSOR;
-               goto yy2;
-       case '.':
-               yyt3 = YYCURSOR;
-               goto yy15;
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':       goto yy16;
-       case 'E':
-       case 'e':
-               yyt4 = yyt5 = NULL;
-               yyt3 = YYCURSOR;
-               goto yy14;
-       default:        goto yy5;
-       }
-yy8:
-       yych = *(YYMARKER = ++YYCURSOR);
-       switch (yych) {
-       case '+':       goto yy18;
-       case '-':
-               yyt3 = YYCURSOR;
-               goto yy19;
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-               yyt3 = NULL;
-               yyt2 = YYCURSOR;
-               goto yy20;
-       default:        goto yy5;
-       }
-yy9:
-       ++YYCURSOR;
-       n = yyt3;
-       e1 = yyt2;
-       e2 = yyt1;
-       { return NAN; }
-yy11:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:
-               yyt2 = yyt6 = yyt7 = NULL;
-               yyt5 = YYCURSOR;
-               goto yy2;
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':       goto yy11;
-       case 'E':
-       case 'e':
-               yyt5 = YYCURSOR;
-               goto yy14;
-       default:        goto yy13;
-       }
-yy13:
-       YYCURSOR = YYMARKER;
-       goto yy5;
-yy14:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '+':       goto yy22;
-       case '-':
-               yyt7 = YYCURSOR;
-               goto yy23;
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-               yyt7 = NULL;
-               yyt6 = YYCURSOR;
-               goto yy24;
-       default:        goto yy13;
-       }
-yy15:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:
-               yyt2 = yyt6 = yyt7 = NULL;
-               yyt4 = yyt5 = YYCURSOR;
-               goto yy2;
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-               yyt4 = YYCURSOR;
-               goto yy11;
-       case 'E':
-       case 'e':
-               yyt4 = yyt5 = YYCURSOR;
-               goto yy14;
-       default:        goto yy13;
-       }
-yy16:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:
-               yyt2 = yyt4 = yyt5 = yyt6 = yyt7 = NULL;
-               yyt3 = YYCURSOR;
-               goto yy2;
-       case '.':
-               yyt3 = YYCURSOR;
-               goto yy15;
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':       goto yy16;
-       case 'E':
-       case 'e':
-               yyt4 = yyt5 = NULL;
-               yyt3 = YYCURSOR;
-               goto yy14;
-       default:        goto yy13;
-       }
-yy18:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-               yyt3 = NULL;
-               yyt2 = YYCURSOR;
-               goto yy20;
-       default:        goto yy13;
-       }
-yy19:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-               yyt2 = YYCURSOR;
-               goto yy20;
-       default:        goto yy13;
-       }
-yy20:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:
-               yyt1 = YYCURSOR;
-               goto yy9;
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':       goto yy20;
-       default:        goto yy13;
-       }
-yy22:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-               yyt7 = NULL;
-               yyt6 = YYCURSOR;
-               goto yy24;
-       default:        goto yy13;
-       }
-yy23:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-               yyt6 = YYCURSOR;
-               goto yy24;
-       default:        goto yy13;
-       }
-yy24:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:
-               yyt2 = YYCURSOR;
-               goto yy2;
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':       goto yy24;
-       default:        goto yy13;
-       }
-}
-
-}
-
-int main(int argc, char **argv)
-{
-    for (int i = 1; i < argc; ++i) {
-        printf("%g\n", lex(argv[i]));
-    }
-    return 0;
-}
diff --git a/re2c/examples/12_float.i--tags.re b/re2c/examples/12_float.i--tags.re
deleted file mode 100644 (file)
index 1b6920c..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <math.h>
-#include <stdio.h>
-
-static double lex(const char *YYCURSOR)
-{
-    const char *YYMARKER, *h1, *h2, *l1, *l2, *e1, *e2, *n;
-    long e = 0;
-    double d = 0;
-    /*!stags:re2c format = 'const char *@@;'; */
-    /*!re2c
-        re2c:define:YYCTYPE = char;
-        re2c:yyfill:enable = 0;
-
-        end  = [\x00];
-        dot  = ".";
-        high = @h1 [0-9]* @h2;
-        low  = @l1 [0-9]* @l2;
-        exp  = 'e' ([+]? | @n [-]) @e1 [0-9]+ @e2;
-
-        *               { return NAN; }
-        (exp | dot) end { return NAN; }
-
-        high (dot low)? exp? end {
-            for (; e1 < e2; ++e1) e = e * 10 + *e1 - '0';
-            e = (n ? -e : e) - (l2 - l1);
-            for (; h1 < h2; ++h1) d = d * 10 + *h1 - '0';
-            for (; l1 < l2; ++l1) d = d * 10 + *l1 - '0';
-            for (; e < 0; ++e) d /= 10;
-            for (; e > 0; --e) d *= 10;
-            return d;
-        }
-    */
-}
-
-int main(int argc, char **argv)
-{
-    for (int i = 1; i < argc; ++i) {
-        printf("%g\n", lex(argv[i]));
-    }
-    return 0;
-}