/* Generated by re2c */
// re2c $INPUT -o $OUTPUT --case-ranges --recursive-functions -i

#include <assert.h>


int yy0(const char* YYCURSOR);
int yy1(const char* YYCURSOR);
int yy2(const char* YYCURSOR);
int yy3(const char* YYCURSOR);
int lex(const char* YYCURSOR);

int yy0(const char* YYCURSOR) {
	char yych = *YYCURSOR++;
	switch (yych) {
		case 'A' ... 'Z':
		case 'a' ... 'z': return yy2(YYCURSOR);
		default: return yy1(YYCURSOR);
	}
}

int yy1(const char* YYCURSOR) {
	return 1;
}

int yy2(const char* YYCURSOR) {
	char yych = *YYCURSOR;
	switch (yych) {
		case '0' ... '9':
		case 'A' ... 'Z':
		case 'a' ... 'z':
			++YYCURSOR;
			return yy2(YYCURSOR);
		default: return yy3(YYCURSOR);
	}
}

int yy3(const char* YYCURSOR) {
	return 0;
}

int lex(const char* YYCURSOR) {
	return yy0(YYCURSOR);
}



int main() {
    assert(lex("qwerty42") == 0);
    assert(lex("??") == 1);
}
