void Scanner::lex_string(char delim)
{
loop:

#line 3639 "src/parse/lex.cc"
{
	unsigned char yych;
	if ((lim - cur) < 2) { if (!fill(2)) { error("unexpected end of input"); exit(1); } }
	yych = (unsigned char)*cur;
	if (yych <= '!') {
		if (yych <= '\n') {
			if (yych <= 0x00) goto yy399;
			if (yych <= '\t') goto yy400;
			goto yy402;
		} else {
			if (yych == '\r') goto yy403;
			goto yy400;
		}
	} else {
		if (yych <= '\'') {
			if (yych <= '"') goto yy404;
			if (yych <= '&') goto yy400;
			goto yy404;
		} else {
			if (yych == '\\') goto yy405;
			goto yy400;
		}
	}
yy399:
	++cur;
#line 713 "../src/parse/lex.re"
	{ fail_if_eof(); goto loop; }
#line 3667 "src/parse/lex.cc"
yy400:
	++cur;
yy401:
#line 714 "../src/parse/lex.re"
	{ goto loop; }
#line 3673 "src/parse/lex.cc"
yy402:
	++cur;
#line 712 "../src/parse/lex.re"
	{ next_line(); goto loop; }
#line 3678 "src/parse/lex.cc"
yy403:
	yych = (unsigned char)*++cur;
	if (yych == '\n') goto yy402;
	goto yy401;
yy404:
	++cur;
#line 710 "../src/parse/lex.re"
	{ if (cur[-1] == delim) return; else goto loop; }
#line 3687 "src/parse/lex.cc"
yy405:
	yych = (unsigned char)*++cur;
	if (yych <= '&') {
		if (yych != '"') goto yy401;
	} else {
		if (yych <= '\'') goto yy406;
		if (yych != '\\') goto yy401;
	}
yy406:
	++cur;
#line 711 "../src/parse/lex.re"
	{ goto loop; }
#line 3700 "src/parse/lex.cc"
}
#line 715 "../src/parse/lex.re"

}
void Scanner::lex_string(char delim)
{
loop:

#line 3639 "src/parse/lex.cc"
{
	unsigned char yych;
	if ((lim - cur) < 2) { if (!fill(2)) { error("unexpected end of input"); exit(1); } }
	yych = (unsigned char)*cur;
	if (yych <= '!') {
		if (yych <= '\n') {
			if (yych <= 0x00) goto yy399;
			if (yych <= '\t') goto yy400;
			goto yy402;
		} else {
			if (yych == '\r') goto yy403;
			goto yy400;
		}
	} else {
		if (yych <= '\'') {
			if (yych <= '"') goto yy404;
			if (yych <= '&') goto yy400;
			goto yy404;
		} else {
			if (yych == '\\') goto yy405;
			goto yy400;
		}
	}
yy399:
	++cur;
#line 713 "../src/parse/lex.re"
	{ fail_if_eof(); goto loop; }
#line 3667 "src/parse/lex.cc"
yy400:
	++cur;
yy401:
#line 714 "../src/parse/lex.re"
	{ goto loop; }
#line 3673 "src/parse/lex.cc"
yy402:
	++cur;
#line 712 "../src/parse/lex.re"
	{ next_line(); goto loop; }
#line 3678 "src/parse/lex.cc"
yy403:
	yych = (unsigned char)*++cur;
	if (yych == '\n') goto yy402;
	goto yy401;
yy404:
	++cur;
#line 710 "../src/parse/lex.re"
	{ if (cur[-1] == delim) return; else goto loop; }
#line 3687 "src/parse/lex.cc"
yy405:
	yych = (unsigned char)*++cur;
	if (yych <= '&') {
		if (yych != '"') goto yy401;
	} else {
		if (yych <= '\'') goto yy406;
		if (yych != '\\') goto yy401;
	}
yy406:
	++cur;
#line 711 "../src/parse/lex.re"
	{ goto loop; }
#line 3700 "src/parse/lex.cc"
}
#line 715 "../src/parse/lex.re"

}