%PDF- %PDF-
| Direktori : /proc/thread-self/root/usr/share/doc/re2c/examples/c/eof/ |
| Current File : //proc/thread-self/root/usr/share/doc/re2c/examples/c/eof/01_sentinel.c |
/* Generated by re2c */
#line 1 "c/eof/01_sentinel.re"
// re2c $INPUT -o $OUTPUT
#include <assert.h>
// Expect a null-terminated string.
static int lex(const char *YYCURSOR) {
int count = 0;
for (;;) {
#line 13 "c/eof/01_sentinel.c"
{
char yych;
yych = *YYCURSOR;
switch (yych) {
case 0x00: goto yy1;
case ' ': goto yy3;
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z': goto yy5;
default: goto yy2;
}
yy1:
++YYCURSOR;
#line 14 "c/eof/01_sentinel.re"
{ return count; }
#line 52 "c/eof/01_sentinel.c"
yy2:
++YYCURSOR;
#line 13 "c/eof/01_sentinel.re"
{ return -1; }
#line 57 "c/eof/01_sentinel.c"
yy3:
yych = *++YYCURSOR;
switch (yych) {
case ' ': goto yy3;
default: goto yy4;
}
yy4:
#line 16 "c/eof/01_sentinel.re"
{ continue; }
#line 67 "c/eof/01_sentinel.c"
yy5:
yych = *++YYCURSOR;
switch (yych) {
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z': goto yy5;
default: goto yy6;
}
yy6:
#line 15 "c/eof/01_sentinel.re"
{ ++count; continue; }
#line 102 "c/eof/01_sentinel.c"
}
#line 17 "c/eof/01_sentinel.re"
}
}
int main() {
assert(lex("") == 0);
assert(lex("one two three") == 3);
assert(lex("f0ur") == -1);
return 0;
}