/* Generated by re2c */
// re2c $INPUT -o $OUTPUT -i --type-header src/lexer/lexer.h
#include <assert.h>
#include "src/lexer/lexer.h" // generated by re2c



int lex(LexerState *st)
{
    
{
	char yych;
	yych = *st->cur;
	switch (yych) {
	case 'x':	goto yy4;
	default:	goto yy2;
	}
yy2:
	++st->cur;
yy3:
	{ return 1; }
yy4:
	yych = *(st->mar = ++st->cur);
	switch (yych) {
	case 'x':
		st->yyt1 = st->cur;
		goto yy5;
	default:	goto yy3;
	}
yy5:
	yych = *++st->cur;
	switch (yych) {
	case 'x':
		st->yyt2 = st->cur;
		goto yy7;
	default:	goto yy6;
	}
yy6:
	st->cur = st->mar;
	goto yy3;
yy7:
	yych = *++st->cur;
	switch (yych) {
	case 'x':
		st->yyt3 = st->cur;
		goto yy8;
	default:	goto yy6;
	}
yy8:
	yych = *++st->cur;
	switch (yych) {
	case 'x':
		st->yyt1 = st->cur;
		goto yy10;
	default:	goto yy9;
	}
yy9:
	st->cur = st->yyt1;
	{ return 0; }
yy10:
	yych = *++st->cur;
	switch (yych) {
	case 'x':	goto yy11;
	default:
		st->yyt1 = st->yyt2;
		goto yy9;
	}
yy11:
	yych = *++st->cur;
	switch (yych) {
	case 'x':	goto yy12;
	default:
		st->yyt1 = st->yyt3;
		goto yy9;
	}
yy12:
	yych = *++st->cur;
	switch (yych) {
	case 'x':	goto yy13;
	default:	goto yy9;
	}
yy13:
	yych = *++st->cur;
	switch (yych) {
	case 'x':	goto yy14;
	default:	goto yy9;
	}
yy14:
	++st->cur;
	goto yy9;
}

}

int main()
{
    LexerState st;
    st.str = st.cur = "xxxxxxxx";
    assert(lex(&st) == 0 && st.cur - st.str == 4);
    return 0;
}
/* Generated by re2c */


typedef struct {
    const char *str, *cur, *mar;
    const char *yyt1; const char *yyt2; const char *yyt3; 
} LexerState;

c/headers/header.re:25:24: warning: trailing context has 4th degree of nondeterminism [-Wnondeterministic-tags]
