/* Generated by re2c */
// re2c $INPUT -o $OUTPUT -bci --eager-skip
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define YYGETCONDITION()  yy_state
#define YYSETCONDITION(s) yy_state = s
#define YYCTYPE         char
#define YYCURSOR        p
#define YYLIMIT         (s+l)
#define YYMARKER        q
#define YYFILL(n)

#define STATE(name)  yyc##name

static enum YYCONDTYPE yy_state;

enum YYCONDTYPE {
	yycINITIAL,
	yycST_VALUE
};


int scan(char *s, int l)
{
	char *p = s;
	char *q = 0;
	char *t;

	for(;;)
	{
		t = p;

		{
			YYCTYPE yych;
			unsigned int yyaccept = 0;
			static const unsigned char yybm_ST_VALUE[256] = {
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0, 128,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				128,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0,
				  0,   0,   0,   0,   0,   0,   0,   0
			};
			if (YYGETCONDITION() < 1) goto yyc_INITIAL;
			else goto yyc_ST_VALUE;
/* *********************************** */
yyc_INITIAL:
			if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
			yych = *YYCURSOR++;
			if (yych <= 0x00) goto yy1;
			if (yych == '$') goto yy4;
			goto yy2;
yy1:
			{ printf("EOF\n");	return 0; }
yy2:
yy3:
			{ printf("ERR\n");	return 1; }
yy4:
			yych = *YYCURSOR;
			if (yych <= '@') goto yy3;
			if (yych <= 'Z') {
				++YYCURSOR;
				goto yy5;
			}
			if (yych <= '`') goto yy3;
			if (yych >= '{') goto yy3;
			++YYCURSOR;
yy5:
			{
		printf("FOUND %s\n", t);
		continue;
	}
/* *********************************** */
yyc_ST_VALUE:
			YYMARKER = YYCURSOR;
			if (YYLIMIT <= YYCURSOR) YYFILL(1);
			yych = *YYCURSOR;
			if (yybm_ST_VALUE[0+yych] & 128) {
				++YYCURSOR;
				goto yy8;
			}
			if (yych == '$') {
				++YYCURSOR;
				goto yy9;
			}
yy7:
			{
		YYSETCONDITION(STATE(INITIAL));
		printf("Found spaces\n");
	}
yy8:
			if (YYLIMIT <= YYCURSOR) YYFILL(1);
			yych = *YYCURSOR;
			if (yybm_ST_VALUE[0+yych] & 128) {
				++YYCURSOR;
				goto yy8;
			}
			goto yy7;
yy9:
			if (YYLIMIT <= YYCURSOR) YYFILL(1);
			yych = *YYCURSOR;
			if (yych <= '@') goto yy10;
			if (yych <= 'Z') {
				++YYCURSOR;
				goto yy11;
			}
			if (yych <= '`') goto yy10;
			if (yych <= 'z') {
				++YYCURSOR;
				goto yy11;
			}
yy10:
			YYCURSOR = YYMARKER;
			if (yyaccept == 0) goto yy7;
			else goto yy12;
yy11:
			yyaccept = 1;
			YYMARKER = YYCURSOR;
			if (YYLIMIT <= YYCURSOR) YYFILL(1);
			yych = *YYCURSOR;
			if (yych == '$') {
				++YYCURSOR;
				goto yy9;
			}
yy12:
			{
		printf("Found $ or $\\<x>\n");
		continue;
	}
		}

	}
}

int main(int argc, char **argv)
{
	if (argc > 1)
	{
		return scan(argv[1], strlen(argv[1]));
	}
	else
	{
		fprintf(stderr, "%s <expr>\n", argv[0]);
		return 1;
	}
}
yyaccept_missing_bci_eager_skip.re:45:27: warning: rule in condition 'ST_VALUE' matches empty string [-Wmatch-empty-string]
