From 4300196e8f78541bb637b4af000b406ed2f28478 Mon Sep 17 00:00:00 2001 From: Ulya Trofimovich Date: Mon, 28 Aug 2017 17:33:46 +0100 Subject: [PATCH] Removed unaccurate example. 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 | 356 ------------------------------ re2c/examples/12_float.i--tags.re | 41 ---- 2 files changed, 397 deletions(-) delete mode 100644 re2c/examples/12_float.i--tags.c delete mode 100644 re2c/examples/12_float.i--tags.re diff --git a/re2c/examples/12_float.i--tags.c b/re2c/examples/12_float.i--tags.c deleted file mode 100644 index 75f01f42..00000000 --- a/re2c/examples/12_float.i--tags.c +++ /dev/null @@ -1,356 +0,0 @@ -/* Generated by re2c */ -#include -#include - -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 index 1b6920c5..00000000 --- a/re2c/examples/12_float.i--tags.re +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include - -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; -} -- 2.40.0