text: /* 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;
  loop:
      
  #line 13 "c/eof/01_sentinel.c"
  {
  	char yych;
  	yych = *YYCURSOR;
  	switch (yych) {
  	case 0x00:	goto yy2;
  	case ' ':	goto yy6;
  	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 yy9;
  	default:	goto yy4;
  	}
  yy2:
  	++YYCURSOR;
  #line 14 "c/eof/01_sentinel.re"
  	{ return count; }
  #line 52 "c/eof/01_sentinel.c"
  yy4:
  	++YYCURSOR;
  #line 13 "c/eof/01_sentinel.re"
  	{ return -1; }
  #line 57 "c/eof/01_sentinel.c"
  yy6:
  	yych = *++YYCURSOR;
  	switch (yych) {
  	case ' ':	goto yy6;
  	default:	goto yy8;
  	}
  yy8:
  #line 16 "c/eof/01_sentinel.re"
  	{ goto loop; }
  #line 67 "c/eof/01_sentinel.c"
  yy9:
  	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 yy9;
  	default:	goto yy11;
  	}
  yy11:
  #line 15 "c/eof/01_sentinel.re"
  	{ ++count; goto loop; }
  #line 102 "c/eof/01_sentinel.c"
  }
  #line 18 "c/eof/01_sentinel.re"
  
  }
  
  int main()
  {
      assert(lex("") == 0);
      assert(lex("one two three") == 3);
      assert(lex("f0ur") == -1);
      return 0;
  }
  