Root Zanli
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
share
/
doc
/
re2c
/
examples
/
c
/
includes
/
Filename :
include.c
back
Copy
/* Generated by re2c */ // re2c $INPUT -o $OUTPUT -i #include <assert.h> typedef enum { OK, FAIL } Result; Result lex(const char *YYCURSOR) { const char *YYMARKER; { char yych; unsigned int yyaccept = 0; yych = *YYCURSOR; switch (yych) { case '.': goto yy4; case '0': goto yy5; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy6; default: goto yy2; } yy2: ++YYCURSOR; yy3: { return FAIL; } yy4: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy9; default: goto yy3; } yy5: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '.': goto yy9; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy12; case 'E': case 'e': goto yy15; default: goto yy3; } yy6: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '.': goto yy9; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy6; case 'E': case 'e': goto yy15; default: goto yy8; } yy8: { return OK; } yy9: yyaccept = 2; 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': goto yy9; case 'E': case 'e': goto yy15; default: goto yy11; } yy11: { return OK; } yy12: yych = *++YYCURSOR; switch (yych) { case '.': goto yy9; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy12; case 'E': case 'e': goto yy15; default: goto yy14; } yy14: YYCURSOR = YYMARKER; switch (yyaccept) { case 0: goto yy3; case 1: goto yy8; default: goto yy11; } yy15: yych = *++YYCURSOR; switch (yych) { case '+': case '-': goto yy16; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy17; default: goto yy14; } yy16: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy17; default: goto yy14; } yy17: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy17; default: goto yy11; } } } int main() { assert(lex("123") == OK); assert(lex("123.4567") == OK); return 0; }