/* Generated by re2c 0.16 on Thu Jan 21 10:47:47 2016 */
#line 1 "../src/parse/lex_conf.re"
#include "src/util/c99_stdint.h"
#include <string>

#include "src/codegen/output.h"
#include "src/conf/opt.h"
#include "src/globals.h"
#include "src/ir/regexp/encoding/enc.h"
#include "src/parse/scanner.h"
#include "src/util/s_to_n32_unsafe.h"

namespace re2c
{

// global re2c config (affects the whole file)
#line 36 "../src/parse/lex_conf.re"


void Scanner::lex_conf ()
{
	tok = cur;

#line 25 "src/parse/lex_conf.cc"
{
	unsigned char yych;
	unsigned int yyaccept = 0;
	static const unsigned char yybm[] = {
		  0,   0,   0,   0,   0,   0,   0,   0, 
		  0,  64,   0,   0,   0,   0,   0,   0, 
		  0,   0,   0,   0,   0,   0,   0,   0, 
		  0,   0,   0,   0,   0,   0,   0,   0, 
		 64,   0,   0,   0,   0,   0,   0,   0, 
		  0,   0,   0,   0,   0,   0,   0,   0, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 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, 
	};
	if ((lim - cur) < 27) fill(27);
	yych = (unsigned char)*cur;
	switch (yych) {
	case 'c':	goto yy4;
	case 'd':	goto yy5;
	case 'f':	goto yy6;
	case 'i':	goto yy7;
	case 'l':	goto yy8;
	case 's':	goto yy9;
	case 'v':	goto yy10;
	case 'y':	goto yy11;
	default:	goto yy2;
	}
yy2:
	++cur;
yy3:
#line 42 "../src/parse/lex_conf.re"
	{ fatal ((tok - pos) - tchar, "unrecognized configuration"); }
#line 81 "src/parse/lex_conf.cc"
yy4:
	yyaccept = 0;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == 'g') goto yy12;
	if (yych == 'o') goto yy14;
	goto yy3;
yy5:
	yyaccept = 0;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == 'e') goto yy15;
	goto yy3;
yy6:
	yyaccept = 0;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == 'l') goto yy16;
	goto yy3;
yy7:
	yyaccept = 0;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == 'n') goto yy17;
	goto yy3;
yy8:
	yyaccept = 0;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == 'a') goto yy18;
	goto yy3;
yy9:
	yyaccept = 0;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == 't') goto yy19;
	goto yy3;
yy10:
	yyaccept = 0;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == 'a') goto yy20;
	goto yy3;
yy11:
	yyaccept = 0;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == 'y') goto yy21;
	goto yy3;
yy12:
	yych = (unsigned char)*++cur;
	if (yych == 'o') goto yy22;
yy13:
	cur = ptr;
	if (yyaccept <= 5) {
		if (yyaccept <= 2) {
			if (yyaccept <= 1) {
				if (yyaccept == 0) {
					goto yy3;
				} else {
					goto yy119;
				}
			} else {
				goto yy161;
			}
		} else {
			if (yyaccept <= 4) {
				if (yyaccept == 3) {
					goto yy206;
				} else {
					goto yy255;
				}
			} else {
				goto yy321;
			}
		}
	} else {
		if (yyaccept <= 8) {
			if (yyaccept <= 7) {
				if (yyaccept == 6) {
					goto yy356;
				} else {
					goto yy377;
				}
			} else {
				goto yy383;
			}
		} else {
			if (yyaccept == 9) {
				goto yy420;
			} else {
				goto yy423;
			}
		}
	}
yy14:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy23;
	goto yy13;
yy15:
	yych = (unsigned char)*++cur;
	if (yych == 'f') goto yy24;
	goto yy13;
yy16:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy25;
	goto yy13;
yy17:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy26;
	goto yy13;
yy18:
	yych = (unsigned char)*++cur;
	if (yych == 'b') goto yy27;
	goto yy13;
yy19:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy28;
	goto yy13;
yy20:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy29;
	goto yy13;
yy21:
	yych = (unsigned char)*++cur;
	if (yych <= 'c') {
		if (yych <= 'a') goto yy13;
		if (yych <= 'b') goto yy30;
		goto yy31;
	} else {
		if (yych == 'f') goto yy32;
		goto yy13;
	}
yy22:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy33;
	goto yy13;
yy23:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy34;
	goto yy13;
yy24:
	yych = (unsigned char)*++cur;
	if (yych == 'i') goto yy35;
	goto yy13;
yy25:
	yych = (unsigned char)*++cur;
	if (yych == 'g') goto yy36;
	goto yy13;
yy26:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy37;
	goto yy13;
yy27:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy38;
	goto yy13;
yy28:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy39;
	if (yych == 't') goto yy40;
	goto yy13;
yy29:
	yych = (unsigned char)*++cur;
	if (yych == 'i') goto yy41;
	goto yy13;
yy30:
	yych = (unsigned char)*++cur;
	if (yych == 'm') goto yy42;
	goto yy13;
yy31:
	yych = (unsigned char)*++cur;
	if (yych == 'h') goto yy43;
	goto yy13;
yy32:
	yych = (unsigned char)*++cur;
	if (yych == 'i') goto yy44;
	goto yy13;
yy33:
	yych = (unsigned char)*++cur;
	if (yych == 'o') goto yy45;
	goto yy13;
yy34:
	yych = (unsigned char)*++cur;
	if (yych <= 'd') {
		if (yych == ':') goto yy46;
		goto yy13;
	} else {
		if (yych <= 'e') goto yy47;
		if (yych == 'p') goto yy48;
		goto yy13;
	}
yy35:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy49;
	goto yy13;
yy36:
	yych = (unsigned char)*++cur;
	if (yych == 's') goto yy50;
	goto yy13;
yy37:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy51;
	goto yy13;
yy38:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy52;
	goto yy13;
yy39:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy53;
	goto yy13;
yy40:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy54;
	goto yy13;
yy41:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy55;
	goto yy13;
yy42:
	yych = (unsigned char)*++cur;
	if (yych == ':') goto yy56;
	goto yy13;
yy43:
	yych = (unsigned char)*++cur;
	if (yych == ':') goto yy57;
	goto yy13;
yy44:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy58;
	goto yy13;
yy45:
	yych = (unsigned char)*++cur;
	if (yych == ':') goto yy59;
	goto yy13;
yy46:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy60;
	if (yych == 'g') goto yy61;
	goto yy13;
yy47:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy62;
	goto yy13;
yy48:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy63;
	goto yy13;
yy49:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy64;
	goto yy13;
yy50:
	yych = (unsigned char)*++cur;
	if (yych == ':') goto yy65;
	goto yy13;
yy51:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy66;
	goto yy13;
yy52:
	yych = (unsigned char)*++cur;
	if (yych == ':') goto yy67;
	if (yych == 'p') goto yy68;
	goto yy13;
yy53:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy69;
	goto yy13;
yy54:
	yych = (unsigned char)*++cur;
	if (yych == ':') goto yy70;
	goto yy13;
yy55:
	yych = (unsigned char)*++cur;
	if (yych == 'b') goto yy71;
	goto yy13;
yy56:
	yych = (unsigned char)*++cur;
	if (yych == 'h') goto yy72;
	goto yy13;
yy57:
	yych = (unsigned char)*++cur;
	if (yych == 'c') goto yy73;
	if (yych == 'e') goto yy74;
	goto yy13;
yy58:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy75;
	goto yy13;
yy59:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy76;
	goto yy13;
yy60:
	yych = (unsigned char)*++cur;
	if (yych == 'i') goto yy77;
	goto yy13;
yy61:
	yych = (unsigned char)*++cur;
	if (yych == 'o') goto yy78;
	goto yy13;
yy62:
	yych = (unsigned char)*++cur;
	if (yych == 'u') goto yy79;
	goto yy13;
yy63:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy80;
	goto yy13;
yy64:
	yych = (unsigned char)*++cur;
	if (yych == ':') goto yy81;
	goto yy13;
yy65:
	yych = (unsigned char)*++cur;
	if (yych <= 'e') {
		if (yych == '8') goto yy82;
		if (yych <= 'd') goto yy13;
		goto yy82;
	} else {
		if (yych <= 'u') {
			if (yych <= 't') goto yy13;
			goto yy82;
		} else {
			if (yych <= 'v') goto yy13;
			if (yych <= 'x') goto yy82;
			goto yy13;
		}
	}
yy66:
	yych = (unsigned char)*++cur;
	if (yych == ':') goto yy84;
	goto yy13;
yy67:
	yych = (unsigned char)*++cur;
	if (yych == 'y') goto yy85;
	goto yy13;
yy68:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy86;
	goto yy13;
yy69:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy87;
	goto yy13;
yy70:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy88;
	if (yych == 'n') goto yy89;
	goto yy13;
yy71:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy90;
	goto yy13;
yy72:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy91;
	goto yy13;
yy73:
	yych = (unsigned char)*++cur;
	if (yych == 'o') goto yy92;
	goto yy13;
yy74:
	yych = (unsigned char)*++cur;
	if (yych == 'm') goto yy93;
	goto yy13;
yy75:
	yych = (unsigned char)*++cur;
	if (yych == ':') goto yy94;
	goto yy13;
yy76:
	yych = (unsigned char)*++cur;
	if (yych == 'h') goto yy95;
	goto yy13;
yy77:
	yych = (unsigned char)*++cur;
	if (yych == 'v') goto yy96;
	goto yy13;
yy78:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy97;
	goto yy13;
yy79:
	yych = (unsigned char)*++cur;
	if (yych == 'm') goto yy98;
	goto yy13;
yy80:
	yych = (unsigned char)*++cur;
	if (yych == 'f') goto yy99;
	goto yy13;
yy81:
	yych = (unsigned char)*++cur;
	if (yych == 'Y') goto yy100;
	goto yy13;
yy82:
	++cur;
#line 45 "../src/parse/lex_conf.re"
	{
		Enc::type_t enc = Enc::ASCII;
		switch (cur[-1])
		{
			case 'e': enc = Enc::EBCDIC; break;
			case 'w': enc = Enc::UCS2;   break;
			case 'x': enc = Enc::UTF16;  break;
			case 'u': enc = Enc::UTF32;  break;
			case '8': enc = Enc::UTF8;   break;
		}
		const int32_t n = lex_conf_number ();
		if (n == 0)
		{
			opts.unset_encoding (enc);
		}
		else if (!opts.set_encoding (enc))
		{
			fatalf ("Cannot set %s encoding: please reset %s encoding first"
				, Enc::name (enc)
				, Enc::name (opts->encoding.type ()));
		}
		return;
	}
#line 496 "src/parse/lex_conf.cc"
yy84:
	yych = (unsigned char)*++cur;
	if (yych <= 'r') goto yy13;
	if (yych <= 's') goto yy101;
	if (yych <= 't') goto yy102;
	goto yy13;
yy85:
	yych = (unsigned char)*++cur;
	if (yych == 'y') goto yy103;
	goto yy13;
yy86:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy104;
	goto yy13;
yy87:
	yych = (unsigned char)*++cur;
	if (yych == 'b') goto yy105;
	goto yy13;
yy88:
	yych = (unsigned char)*++cur;
	if (yych == 'b') goto yy106;
	goto yy13;
yy89:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy107;
	goto yy13;
yy90:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy108;
	goto yy13;
yy91:
	yych = (unsigned char)*++cur;
	if (yych == 'x') goto yy109;
	goto yy13;
yy92:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy111;
	goto yy13;
yy93:
	yych = (unsigned char)*++cur;
	if (yych == 'i') goto yy112;
	goto yy13;
yy94:
	yych = (unsigned char)*++cur;
	if (yych <= 'd') {
		if (yych == 'c') goto yy113;
		goto yy13;
	} else {
		if (yych <= 'e') goto yy114;
		if (yych == 'p') goto yy115;
		goto yy13;
	}
yy95:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy116;
	goto yy13;
yy96:
	yych = (unsigned char)*++cur;
	if (yych == 'i') goto yy117;
	goto yy13;
yy97:
	yych = (unsigned char)*++cur;
	if (yych == 'o') goto yy118;
	goto yy13;
yy98:
	yych = (unsigned char)*++cur;
	if (yych == 'p') goto yy120;
	goto yy13;
yy99:
	yych = (unsigned char)*++cur;
	if (yych == 'i') goto yy121;
	goto yy13;
yy100:
	yych = (unsigned char)*++cur;
	if (yych == 'Y') goto yy122;
	goto yy13;
yy101:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy123;
	goto yy13;
yy102:
	yych = (unsigned char)*++cur;
	if (yych == 'o') goto yy124;
	goto yy13;
yy103:
	yych = (unsigned char)*++cur;
	if (yych == 'F') goto yy125;
	if (yych == 'N') goto yy126;
	goto yy13;
yy104:
	yych = (unsigned char)*++cur;
	if (yych == 'f') goto yy127;
	goto yy13;
yy105:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy128;
	goto yy13;
yy106:
	yych = (unsigned char)*++cur;
	if (yych == 'o') goto yy129;
	goto yy13;
yy107:
	yych = (unsigned char)*++cur;
	if (yych == 'x') goto yy130;
	goto yy13;
yy108:
	yych = (unsigned char)*++cur;
	if (yych == ':') goto yy131;
	goto yy13;
yy109:
	++cur;
#line 95 "../src/parse/lex_conf.re"
	{ opts.set_yybmHexTable (lex_conf_number () != 0); return; }
#line 610 "src/parse/lex_conf.cc"
yy111:
	yych = (unsigned char)*++cur;
	if (yych == 'v') goto yy132;
	goto yy13;
yy112:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy133;
	goto yy13;
yy113:
	yych = (unsigned char)*++cur;
	if (yych == 'h') goto yy135;
	goto yy13;
yy114:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy136;
	goto yy13;
yy115:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy137;
	goto yy13;
yy116:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy138;
	goto yy13;
yy117:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy139;
	goto yy13;
yy118:
	yyaccept = 1;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == '@') goto yy140;
yy119:
#line 79 "../src/parse/lex_conf.re"
	{ opts.set_condGoto         (lex_conf_string ()); return; }
#line 646 "src/parse/lex_conf.cc"
yy120:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy141;
	goto yy13;
yy121:
	yych = (unsigned char)*++cur;
	if (yych == 'x') goto yy142;
	goto yy13;
yy122:
	yych = (unsigned char)*++cur;
	switch (yych) {
	case 'B':	goto yy144;
	case 'C':	goto yy145;
	case 'D':	goto yy146;
	case 'F':	goto yy147;
	case 'G':	goto yy148;
	case 'L':	goto yy149;
	case 'M':	goto yy150;
	case 'P':	goto yy151;
	case 'R':	goto yy152;
	case 'S':	goto yy153;
	default:	goto yy13;
	}
yy123:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy154;
	goto yy13;
yy124:
	yych = (unsigned char)*++cur;
	if (yych == 'p') goto yy155;
	goto yy13;
yy125:
	yych = (unsigned char)*++cur;
	if (yych == 'i') goto yy157;
	goto yy13;
yy126:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy158;
	goto yy13;
yy127:
	yych = (unsigned char)*++cur;
	if (yych == 'i') goto yy159;
	goto yy13;
yy128:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy160;
	goto yy13;
yy129:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy162;
	goto yy13;
yy130:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy163;
	goto yy13;
yy131:
	yych = (unsigned char)*++cur;
	if (yych == 'y') goto yy164;
	goto yy13;
yy132:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy165;
	goto yy13;
yy133:
	++cur;
#line 138 "../src/parse/lex_conf.re"
	{ opts.set_bEmitYYCh      (lex_conf_number () != 0); return; }
#line 714 "src/parse/lex_conf.cc"
yy135:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy166;
	goto yy13;
yy136:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy167;
	goto yy13;
yy137:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy168;
	goto yy13;
yy138:
	yych = (unsigned char)*++cur;
	if (yych == 's') goto yy169;
	goto yy13;
yy139:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy170;
	goto yy13;
yy140:
	yych = (unsigned char)*++cur;
	if (yych == 'c') goto yy171;
	goto yy13;
yy141:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy172;
	goto yy13;
yy142:
	++cur;
#line 75 "../src/parse/lex_conf.re"
	{ opts.set_condPrefix       (lex_conf_string ()); return; }
#line 747 "src/parse/lex_conf.cc"
yy144:
	yych = (unsigned char)*++cur;
	if (yych == 'A') goto yy173;
	goto yy13;
yy145:
	yych = (unsigned char)*++cur;
	if (yych <= 'S') {
		if (yych == 'O') goto yy174;
		goto yy13;
	} else {
		if (yych <= 'T') goto yy175;
		if (yych <= 'U') goto yy176;
		goto yy13;
	}
yy146:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy177;
	goto yy13;
yy147:
	yych = (unsigned char)*++cur;
	if (yych == 'I') goto yy178;
	goto yy13;
yy148:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy179;
	goto yy13;
yy149:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy180;
	if (yych == 'I') goto yy181;
	goto yy13;
yy150:
	yych = (unsigned char)*++cur;
	if (yych == 'A') goto yy182;
	goto yy13;
yy151:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy183;
	goto yy13;
yy152:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy184;
	goto yy13;
yy153:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy185;
	if (yych == 'K') goto yy186;
	goto yy13;
yy154:
	yych = (unsigned char)*++cur;
	if (yych == 'i') goto yy187;
	goto yy13;
yy155:
	++cur;
#line 123 "../src/parse/lex_conf.re"
	{
		const int32_t n = lex_conf_number ();
		if (n < 0)
		{
			fatal ("configuration 'indent:top' must be nonnegative");
		}
		opts.set_topIndent (static_cast<uint32_t> (n));
		return;
	}
#line 812 "src/parse/lex_conf.cc"
yy157:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy188;
	goto yy13;
yy158:
	yych = (unsigned char)*++cur;
	if (yych == 'x') goto yy189;
	goto yy13;
yy159:
	yych = (unsigned char)*++cur;
	if (yych == 'x') goto yy190;
	goto yy13;
yy160:
	yyaccept = 2;
	yych = (unsigned char)*(ptr = ++cur);
	ctx = cur;
	if (yybm[0+yych] & 64) {
		goto yy192;
	}
	if (yych == '=') goto yy194;
yy161:
#line 151 "../src/parse/lex_conf.re"
	{ out.set_user_start_label (lex_conf_string ()); return; }
#line 836 "src/parse/lex_conf.cc"
yy162:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy196;
	goto yy13;
yy163:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy198;
	goto yy13;
yy164:
	yych = (unsigned char)*++cur;
	if (yych == 'y') goto yy199;
	goto yy13;
yy165:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy200;
	goto yy13;
yy166:
	yych = (unsigned char)*++cur;
	if (yych == 'c') goto yy201;
	goto yy13;
yy167:
	yych = (unsigned char)*++cur;
	if (yych == 'b') goto yy202;
	goto yy13;
yy168:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy203;
	goto yy13;
yy169:
	yych = (unsigned char)*++cur;
	if (yych == 'h') goto yy204;
	goto yy13;
yy170:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy205;
	goto yy13;
yy171:
	yych = (unsigned char)*++cur;
	if (yych == 'o') goto yy207;
	goto yy13;
yy172:
	yych = (unsigned char)*++cur;
	if (yych == 'f') goto yy208;
	goto yy13;
yy173:
	yych = (unsigned char)*++cur;
	if (yych == 'C') goto yy209;
	goto yy13;
yy174:
	yych = (unsigned char)*++cur;
	if (yych == 'N') goto yy210;
	goto yy13;
yy175:
	yych = (unsigned char)*++cur;
	if (yych <= 'W') goto yy13;
	if (yych <= 'X') goto yy211;
	if (yych <= 'Y') goto yy212;
	goto yy13;
yy176:
	yych = (unsigned char)*++cur;
	if (yych == 'R') goto yy213;
	goto yy13;
yy177:
	yych = (unsigned char)*++cur;
	if (yych == 'B') goto yy214;
	goto yy13;
yy178:
	yych = (unsigned char)*++cur;
	if (yych == 'L') goto yy215;
	goto yy13;
yy179:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy216;
	goto yy13;
yy180:
	yych = (unsigned char)*++cur;
	if (yych == 'S') goto yy217;
	goto yy13;
yy181:
	yych = (unsigned char)*++cur;
	if (yych == 'M') goto yy218;
	goto yy13;
yy182:
	yych = (unsigned char)*++cur;
	if (yych == 'R') goto yy219;
	goto yy13;
yy183:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy220;
	goto yy13;
yy184:
	yych = (unsigned char)*++cur;
	if (yych == 'S') goto yy221;
	goto yy13;
yy185:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy222;
	goto yy13;
yy186:
	yych = (unsigned char)*++cur;
	if (yych == 'I') goto yy223;
	goto yy13;
yy187:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy224;
	goto yy13;
yy188:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy225;
	goto yy13;
yy189:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy226;
	goto yy13;
yy190:
	++cur;
#line 147 "../src/parse/lex_conf.re"
	{ opts.set_labelPrefix (lex_conf_string ()); return; }
#line 955 "src/parse/lex_conf.cc"
yy192:
	++cur;
	if (lim <= cur) fill(1);
	yych = (unsigned char)*cur;
	if (yybm[0+yych] & 64) {
		goto yy192;
	}
	if (yych != '=') goto yy13;
yy194:
	++cur;
	if ((lim - cur) < 2) fill(2);
	yych = (unsigned char)*cur;
	if (yych <= ',') {
		if (yych <= '\t') {
			if (yych <= 0x08) goto yy13;
			goto yy194;
		} else {
			if (yych == ' ') goto yy194;
			goto yy13;
		}
	} else {
		if (yych <= '/') {
			if (yych <= '-') goto yy228;
			goto yy13;
		} else {
			if (yych <= '0') goto yy229;
			if (yych <= '9') goto yy231;
			goto yy13;
		}
	}
yy196:
	++cur;
#line 90 "../src/parse/lex_conf.re"
	{ opts.set_bUseStateAbort  (lex_conf_number () != 0); return; }
#line 990 "src/parse/lex_conf.cc"
yy198:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy233;
	goto yy13;
yy199:
	yych = (unsigned char)*++cur;
	if (yych <= 'c') {
		if (yych <= '`') goto yy13;
		if (yych <= 'a') goto yy234;
		if (yych <= 'b') goto yy235;
		goto yy236;
	} else {
		if (yych <= 'r') goto yy13;
		if (yych <= 's') goto yy237;
		if (yych <= 't') goto yy238;
		goto yy13;
	}
yy200:
	yych = (unsigned char)*++cur;
	if (yych == 's') goto yy239;
	goto yy13;
yy201:
	yych = (unsigned char)*++cur;
	if (yych == 'k') goto yy240;
	goto yy13;
yy202:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy242;
	goto yy13;
yy203:
	yych = (unsigned char)*++cur;
	if (yych == 'm') goto yy243;
	goto yy13;
yy204:
	yych = (unsigned char)*++cur;
	if (yych == 'o') goto yy244;
	goto yy13;
yy205:
	yyaccept = 3;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == '@') goto yy245;
yy206:
#line 77 "../src/parse/lex_conf.re"
	{ opts.set_condDivider      (lex_conf_string ()); return; }
#line 1035 "src/parse/lex_conf.cc"
yy207:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy246;
	goto yy13;
yy208:
	yych = (unsigned char)*++cur;
	if (yych == 'i') goto yy247;
	goto yy13;
yy209:
	yych = (unsigned char)*++cur;
	if (yych == 'K') goto yy248;
	goto yy13;
yy210:
	yych = (unsigned char)*++cur;
	if (yych == 'D') goto yy249;
	goto yy13;
yy211:
	yych = (unsigned char)*++cur;
	if (yych == 'M') goto yy250;
	goto yy13;
yy212:
	yych = (unsigned char)*++cur;
	if (yych == 'P') goto yy251;
	goto yy13;
yy213:
	yych = (unsigned char)*++cur;
	if (yych == 'S') goto yy252;
	goto yy13;
yy214:
	yych = (unsigned char)*++cur;
	if (yych == 'U') goto yy253;
	goto yy13;
yy215:
	yych = (unsigned char)*++cur;
	if (yych == 'L') goto yy254;
	goto yy13;
yy216:
	yych = (unsigned char)*++cur;
	if (yych == 'C') goto yy256;
	if (yych == 'S') goto yy257;
	goto yy13;
yy217:
	yych = (unsigned char)*++cur;
	if (yych == 'S') goto yy258;
	goto yy13;
yy218:
	yych = (unsigned char)*++cur;
	if (yych == 'I') goto yy259;
	goto yy13;
yy219:
	yych = (unsigned char)*++cur;
	if (yych == 'K') goto yy260;
	goto yy13;
yy220:
	yych = (unsigned char)*++cur;
	if (yych == 'K') goto yy261;
	goto yy13;
yy221:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy263;
	goto yy13;
yy222:
	yych = (unsigned char)*++cur;
	if (yych == 'C') goto yy264;
	if (yych == 'S') goto yy265;
	goto yy13;
yy223:
	yych = (unsigned char)*++cur;
	if (yych == 'P') goto yy266;
	goto yy13;
yy224:
	yych = (unsigned char)*++cur;
	if (yych == 'g') goto yy268;
	goto yy13;
yy225:
	yych = (unsigned char)*++cur;
	if (yych == 'L') goto yy270;
	goto yy13;
yy226:
	++cur;
#line 89 "../src/parse/lex_conf.re"
	{ opts.set_yynext          (lex_conf_string ()); return; }
#line 1118 "src/parse/lex_conf.cc"
yy228:
	yych = (unsigned char)*++cur;
	if (yych <= '0') goto yy13;
	if (yych <= '9') goto yy231;
	goto yy13;
yy229:
	++cur;
yy230:
	cur = ctx;
#line 150 "../src/parse/lex_conf.re"
	{ out.set_force_start_label (lex_conf_number () != 0); return; }
#line 1130 "src/parse/lex_conf.cc"
yy231:
	++cur;
	if (lim <= cur) fill(1);
	yych = (unsigned char)*cur;
	if (yybm[0+yych] & 128) {
		goto yy231;
	}
	goto yy230;
yy233:
	yych = (unsigned char)*++cur;
	if (yych == 'b') goto yy271;
	goto yy13;
yy234:
	yych = (unsigned char)*++cur;
	if (yych == 'c') goto yy272;
	goto yy13;
yy235:
	yych = (unsigned char)*++cur;
	if (yych == 'm') goto yy273;
	goto yy13;
yy236:
	yych = (unsigned char)*++cur;
	if (yych == 'h') goto yy275;
	if (yych == 't') goto yy277;
	goto yy13;
yy237:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy278;
	goto yy13;
yy238:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy279;
	goto yy13;
yy239:
	yych = (unsigned char)*++cur;
	if (yych == 'i') goto yy280;
	goto yy13;
yy240:
	++cur;
#line 145 "../src/parse/lex_conf.re"
	{ opts.set_fill_check   (lex_conf_number () != 0); return; }
#line 1172 "src/parse/lex_conf.cc"
yy242:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy281;
	goto yy13;
yy243:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy283;
	goto yy13;
yy244:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy284;
	goto yy13;
yy245:
	yych = (unsigned char)*++cur;
	if (yych == 'c') goto yy285;
	goto yy13;
yy246:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy286;
	goto yy13;
yy247:
	yych = (unsigned char)*++cur;
	if (yych == 'x') goto yy288;
	goto yy13;
yy248:
	yych = (unsigned char)*++cur;
	if (yych == 'U') goto yy290;
	goto yy13;
yy249:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy291;
	goto yy13;
yy250:
	yych = (unsigned char)*++cur;
	if (yych == 'A') goto yy292;
	goto yy13;
yy251:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy293;
	goto yy13;
yy252:
	yych = (unsigned char)*++cur;
	if (yych == 'O') goto yy295;
	goto yy13;
yy253:
	yych = (unsigned char)*++cur;
	if (yych == 'G') goto yy296;
	goto yy13;
yy254:
	yyaccept = 4;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == ':') goto yy298;
	if (yych == '@') goto yy299;
yy255:
#line 140 "../src/parse/lex_conf.re"
	{ opts.set_fill         (lex_conf_string ()); return; }
#line 1229 "src/parse/lex_conf.cc"
yy256:
	yych = (unsigned char)*++cur;
	if (yych == 'O') goto yy300;
	goto yy13;
yy257:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy301;
	goto yy13;
yy258:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy302;
	goto yy13;
yy259:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy303;
	goto yy13;
yy260:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy305;
	goto yy13;
yy261:
	++cur;
#line 113 "../src/parse/lex_conf.re"
	{ opts.set_yypeek       (lex_conf_string ()); return; }
#line 1254 "src/parse/lex_conf.cc"
yy263:
	yych = (unsigned char)*++cur;
	if (yych == 'O') goto yy306;
	goto yy13;
yy264:
	yych = (unsigned char)*++cur;
	if (yych == 'O') goto yy307;
	goto yy13;
yy265:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy308;
	goto yy13;
yy266:
	++cur;
#line 114 "../src/parse/lex_conf.re"
	{ opts.set_yyskip       (lex_conf_string ()); return; }
#line 1271 "src/parse/lex_conf.cc"
yy268:
	++cur;
#line 121 "../src/parse/lex_conf.re"
	{ opts.set_indString (lex_conf_string ()); return; }
#line 1276 "src/parse/lex_conf.cc"
yy270:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy309;
	goto yy13;
yy271:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy310;
	goto yy13;
yy272:
	yych = (unsigned char)*++cur;
	if (yych == 'c') goto yy311;
	goto yy13;
yy273:
	++cur;
#line 94 "../src/parse/lex_conf.re"
	{ opts.set_yybm         (lex_conf_string ()); return; }
#line 1293 "src/parse/lex_conf.cc"
yy275:
	++cur;
#line 136 "../src/parse/lex_conf.re"
	{ opts.set_yych           (lex_conf_string ()); return; }
#line 1298 "src/parse/lex_conf.cc"
yy277:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy312;
	goto yy13;
yy278:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy313;
	goto yy13;
yy279:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy314;
	goto yy13;
yy280:
	yych = (unsigned char)*++cur;
	if (yych == 'o') goto yy315;
	goto yy13;
yy281:
	++cur;
#line 141 "../src/parse/lex_conf.re"
	{ opts.set_fill_use     (lex_conf_number () != 0); return; }
#line 1319 "src/parse/lex_conf.cc"
yy283:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy316;
	goto yy13;
yy284:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy317;
	goto yy13;
yy285:
	yych = (unsigned char)*++cur;
	if (yych == 'o') goto yy319;
	goto yy13;
yy286:
	++cur;
#line 80 "../src/parse/lex_conf.re"
	{ opts.set_condGotoParam    (lex_conf_string ()); return; }
#line 1336 "src/parse/lex_conf.cc"
yy288:
	++cur;
#line 76 "../src/parse/lex_conf.re"
	{ opts.set_condEnumPrefix   (lex_conf_string ()); return; }
#line 1341 "src/parse/lex_conf.cc"
yy290:
	yych = (unsigned char)*++cur;
	if (yych == 'P') goto yy320;
	goto yy13;
yy291:
	yych = (unsigned char)*++cur;
	if (yych == 'Y') goto yy322;
	goto yy13;
yy292:
	yych = (unsigned char)*++cur;
	if (yych == 'R') goto yy323;
	goto yy13;
yy293:
	++cur;
#line 135 "../src/parse/lex_conf.re"
	{ opts.set_yyctype        (lex_conf_string ()); return; }
#line 1358 "src/parse/lex_conf.cc"
yy295:
	yych = (unsigned char)*++cur;
	if (yych == 'R') goto yy324;
	goto yy13;
yy296:
	++cur;
#line 133 "../src/parse/lex_conf.re"
	{ opts.set_yydebug (lex_conf_string ()); return; }
#line 1367 "src/parse/lex_conf.cc"
yy298:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy326;
	goto yy13;
yy299:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy327;
	goto yy13;
yy300:
	yych = (unsigned char)*++cur;
	if (yych == 'N') goto yy328;
	goto yy13;
yy301:
	yych = (unsigned char)*++cur;
	if (yych == 'A') goto yy329;
	goto yy13;
yy302:
	yych = (unsigned char)*++cur;
	if (yych == 'H') goto yy330;
	goto yy13;
yy303:
	++cur;
#line 111 "../src/parse/lex_conf.re"
	{ opts.set_yylimit     (lex_conf_string ()); return; }
#line 1392 "src/parse/lex_conf.cc"
yy305:
	yych = (unsigned char)*++cur;
	if (yych == 'R') goto yy331;
	goto yy13;
yy306:
	yych = (unsigned char)*++cur;
	if (yych == 'R') goto yy333;
	goto yy13;
yy307:
	yych = (unsigned char)*++cur;
	if (yych == 'N') goto yy334;
	goto yy13;
yy308:
	yych = (unsigned char)*++cur;
	if (yych == 'A') goto yy335;
	goto yy13;
yy309:
	yych = (unsigned char)*++cur;
	if (yych == 'b') goto yy336;
	goto yy13;
yy310:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy337;
	goto yy13;
yy311:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy339;
	goto yy13;
yy312:
	yych = (unsigned char)*++cur;
	if (yych == 'b') goto yy340;
	goto yy13;
yy313:
	yych = (unsigned char)*++cur;
	if (yych == 'b') goto yy341;
	goto yy13;
yy314:
	yych = (unsigned char)*++cur;
	if (yych == 'g') goto yy342;
	goto yy13;
yy315:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy343;
	goto yy13;
yy316:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy345;
	goto yy13;
yy317:
	++cur;
#line 97 "../src/parse/lex_conf.re"
	{
		const int32_t n = lex_conf_number ();
		if (n < 0)
		{
			fatal ("configuration 'cgoto:threshold' must be nonnegative");
		}
		opts.set_cGotoThreshold (static_cast<uint32_t> (n));
		return;
	}
#line 1453 "src/parse/lex_conf.cc"
yy319:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy346;
	goto yy13;
yy320:
	yyaccept = 5;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == 'C') goto yy347;
yy321:
#line 115 "../src/parse/lex_conf.re"
	{ opts.set_yybackup     (lex_conf_string ()); return; }
#line 1465 "src/parse/lex_conf.cc"
yy322:
	yych = (unsigned char)*++cur;
	if (yych == 'P') goto yy348;
	goto yy13;
yy323:
	yych = (unsigned char)*++cur;
	if (yych == 'K') goto yy349;
	goto yy13;
yy324:
	++cur;
#line 108 "../src/parse/lex_conf.re"
	{ opts.set_yycursor    (lex_conf_string ()); return; }
#line 1478 "src/parse/lex_conf.cc"
yy326:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy350;
	goto yy13;
yy327:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy351;
	goto yy13;
yy328:
	yych = (unsigned char)*++cur;
	if (yych == 'D') goto yy352;
	goto yy13;
yy329:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy353;
	goto yy13;
yy330:
	yych = (unsigned char)*++cur;
	if (yych == 'A') goto yy354;
	goto yy13;
yy331:
	++cur;
#line 109 "../src/parse/lex_conf.re"
	{ opts.set_yymarker    (lex_conf_string ()); return; }
#line 1503 "src/parse/lex_conf.cc"
yy333:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy355;
	goto yy13;
yy334:
	yych = (unsigned char)*++cur;
	if (yych == 'D') goto yy357;
	goto yy13;
yy335:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy358;
	goto yy13;
yy336:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy359;
	goto yy13;
yy337:
	++cur;
#line 91 "../src/parse/lex_conf.re"
	{ opts.set_bUseStateNext   (lex_conf_number () != 0); return; }
#line 1524 "src/parse/lex_conf.cc"
yy339:
	yych = (unsigned char)*++cur;
	if (yych == 'p') goto yy360;
	goto yy13;
yy340:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy361;
	goto yy13;
yy341:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy362;
	goto yy13;
yy342:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy363;
	goto yy13;
yy343:
	++cur;
#line 137 "../src/parse/lex_conf.re"
	{ opts.set_yychConversion (lex_conf_number () != 0); return; }
#line 1545 "src/parse/lex_conf.cc"
yy345:
	yych = (unsigned char)*++cur;
	if (yych == 'r') goto yy364;
	goto yy13;
yy346:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy366;
	goto yy13;
yy347:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy368;
	goto yy13;
yy348:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy369;
	goto yy13;
yy349:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy371;
	goto yy13;
yy350:
	yych = (unsigned char)*++cur;
	if (yych == 'k') goto yy372;
	goto yy13;
yy351:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy373;
	goto yy13;
yy352:
	yych = (unsigned char)*++cur;
	if (yych == 'I') goto yy375;
	goto yy13;
yy353:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy376;
	goto yy13;
yy354:
	yych = (unsigned char)*++cur;
	if (yych == 'N') goto yy378;
	goto yy13;
yy355:
	yyaccept = 6;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == 'C') goto yy380;
yy356:
#line 117 "../src/parse/lex_conf.re"
	{ opts.set_yyrestore    (lex_conf_string ()); return; }
#line 1593 "src/parse/lex_conf.cc"
yy357:
	yych = (unsigned char)*++cur;
	if (yych == 'I') goto yy381;
	goto yy13;
yy358:
	yych = (unsigned char)*++cur;
	if (yych == 'E') goto yy382;
	goto yy13;
yy359:
	yych = (unsigned char)*++cur;
	if (yych == 'l') goto yy384;
	goto yy13;
yy360:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy386;
	goto yy13;
yy361:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy388;
	goto yy13;
yy362:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy390;
	goto yy13;
yy363:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy392;
	goto yy13;
yy364:
	++cur;
#line 143 "../src/parse/lex_conf.re"
	{ opts.set_fill_arg_use (lex_conf_number () != 0); return; }
#line 1626 "src/parse/lex_conf.cc"
yy366:
	++cur;
#line 78 "../src/parse/lex_conf.re"
	{ opts.set_condDividerParam (lex_conf_string ()); return; }
#line 1631 "src/parse/lex_conf.cc"
yy368:
	yych = (unsigned char)*++cur;
	if (yych == 'X') goto yy394;
	goto yy13;
yy369:
	++cur;
#line 69 "../src/parse/lex_conf.re"
	{ opts.set_yycondtype       (lex_conf_string ()); return; }
#line 1640 "src/parse/lex_conf.cc"
yy371:
	yych = (unsigned char)*++cur;
	if (yych == 'R') goto yy396;
	goto yy13;
yy372:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy398;
	goto yy13;
yy373:
	++cur;
#line 142 "../src/parse/lex_conf.re"
	{ opts.set_fill_arg     (lex_conf_string ()); return; }
#line 1653 "src/parse/lex_conf.cc"
yy375:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy399;
	goto yy13;
yy376:
	yyaccept = 7;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == ':') goto yy400;
yy377:
#line 83 "../src/parse/lex_conf.re"
	{ opts.set_state_get       (lex_conf_string ()); return; }
#line 1665 "src/parse/lex_conf.cc"
yy378:
	++cur;
#line 119 "../src/parse/lex_conf.re"
	{ opts.set_yylessthan   (lex_conf_string ()); return; }
#line 1670 "src/parse/lex_conf.cc"
yy380:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy401;
	goto yy13;
yy381:
	yych = (unsigned char)*++cur;
	if (yych == 'T') goto yy402;
	goto yy13;
yy382:
	yyaccept = 8;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == ':') goto yy403;
	if (yych == '@') goto yy404;
yy383:
#line 85 "../src/parse/lex_conf.re"
	{ opts.set_state_set       (lex_conf_string ()); return; }
#line 1687 "src/parse/lex_conf.cc"
yy384:
	++cur;
#line 88 "../src/parse/lex_conf.re"
	{ opts.set_yyfilllabel     (lex_conf_string ()); return; }
#line 1692 "src/parse/lex_conf.cc"
yy386:
	++cur;
#line 92 "../src/parse/lex_conf.re"
	{ opts.set_yyaccept        (lex_conf_string ()); return; }
#line 1697 "src/parse/lex_conf.cc"
yy388:
	++cur;
#line 81 "../src/parse/lex_conf.re"
	{ opts.set_yyctable         (lex_conf_string ()); return; }
#line 1702 "src/parse/lex_conf.cc"
yy390:
	++cur;
#line 154 "../src/parse/lex_conf.re"
	{ lex_conf_string (); return; }
#line 1707 "src/parse/lex_conf.cc"
yy392:
	++cur;
#line 106 "../src/parse/lex_conf.re"
	{ opts.set_yytarget (lex_conf_string ()); return; }
#line 1712 "src/parse/lex_conf.cc"
yy394:
	++cur;
#line 116 "../src/parse/lex_conf.re"
	{ opts.set_yybackupctx  (lex_conf_string ()); return; }
#line 1717 "src/parse/lex_conf.cc"
yy396:
	++cur;
#line 110 "../src/parse/lex_conf.re"
	{ opts.set_yyctxmarker (lex_conf_string ()); return; }
#line 1722 "src/parse/lex_conf.cc"
yy398:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy405;
	goto yy13;
yy399:
	yych = (unsigned char)*++cur;
	if (yych == 'I') goto yy407;
	goto yy13;
yy400:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy408;
	goto yy13;
yy401:
	yych = (unsigned char)*++cur;
	if (yych == 'X') goto yy409;
	goto yy13;
yy402:
	yych = (unsigned char)*++cur;
	if (yych == 'I') goto yy411;
	goto yy13;
yy403:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy412;
	goto yy13;
yy404:
	yych = (unsigned char)*++cur;
	if (yych == 's') goto yy413;
	goto yy13;
yy405:
	++cur;
#line 144 "../src/parse/lex_conf.re"
	{ opts.set_fill_naked   (lex_conf_number () != 0); return; }
#line 1755 "src/parse/lex_conf.cc"
yy407:
	yych = (unsigned char)*++cur;
	if (yych == 'O') goto yy414;
	goto yy13;
yy408:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy415;
	goto yy13;
yy409:
	++cur;
#line 118 "../src/parse/lex_conf.re"
	{ opts.set_yyrestorectx (lex_conf_string ()); return; }
#line 1768 "src/parse/lex_conf.cc"
yy411:
	yych = (unsigned char)*++cur;
	if (yych == 'O') goto yy416;
	goto yy13;
yy412:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy417;
	goto yy13;
yy413:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy418;
	goto yy13;
yy414:
	yych = (unsigned char)*++cur;
	if (yych == 'N') goto yy419;
	goto yy13;
yy415:
	yych = (unsigned char)*++cur;
	if (yych == 'k') goto yy421;
	goto yy13;
yy416:
	yych = (unsigned char)*++cur;
	if (yych == 'N') goto yy422;
	goto yy13;
yy417:
	yych = (unsigned char)*++cur;
	if (yych == 'k') goto yy424;
	goto yy13;
yy418:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy425;
	goto yy13;
yy419:
	yyaccept = 9;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == ':') goto yy426;
yy420:
#line 70 "../src/parse/lex_conf.re"
	{ opts.set_cond_get         (lex_conf_string ()); return; }
#line 1808 "src/parse/lex_conf.cc"
yy421:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy427;
	goto yy13;
yy422:
	yyaccept = 10;
	yych = (unsigned char)*(ptr = ++cur);
	if (yych == ':') goto yy428;
	if (yych == '@') goto yy429;
yy423:
#line 72 "../src/parse/lex_conf.re"
	{ opts.set_cond_set         (lex_conf_string ()); return; }
#line 1821 "src/parse/lex_conf.cc"
yy424:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy430;
	goto yy13;
yy425:
	yych = (unsigned char)*++cur;
	if (yych == 't') goto yy431;
	goto yy13;
yy426:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy432;
	goto yy13;
yy427:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy433;
	goto yy13;
yy428:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy435;
	goto yy13;
yy429:
	yych = (unsigned char)*++cur;
	if (yych == 'c') goto yy436;
	goto yy13;
yy430:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy437;
	goto yy13;
yy431:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy439;
	goto yy13;
yy432:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy441;
	goto yy13;
yy433:
	++cur;
#line 84 "../src/parse/lex_conf.re"
	{ opts.set_state_get_naked (lex_conf_number () != 0); return; }
#line 1862 "src/parse/lex_conf.cc"
yy435:
	yych = (unsigned char)*++cur;
	if (yych == 'a') goto yy442;
	goto yy13;
yy436:
	yych = (unsigned char)*++cur;
	if (yych == 'o') goto yy443;
	goto yy13;
yy437:
	++cur;
#line 86 "../src/parse/lex_conf.re"
	{ opts.set_state_set_naked (lex_conf_number () != 0); return; }
#line 1875 "src/parse/lex_conf.cc"
yy439:
	++cur;
#line 87 "../src/parse/lex_conf.re"
	{ opts.set_state_set_arg   (lex_conf_string ()); return; }
#line 1880 "src/parse/lex_conf.cc"
yy441:
	yych = (unsigned char)*++cur;
	if (yych == 'k') goto yy444;
	goto yy13;
yy442:
	yych = (unsigned char)*++cur;
	if (yych == 'k') goto yy445;
	goto yy13;
yy443:
	yych = (unsigned char)*++cur;
	if (yych == 'n') goto yy446;
	goto yy13;
yy444:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy447;
	goto yy13;
yy445:
	yych = (unsigned char)*++cur;
	if (yych == 'e') goto yy448;
	goto yy13;
yy446:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy449;
	goto yy13;
yy447:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy451;
	goto yy13;
yy448:
	yych = (unsigned char)*++cur;
	if (yych == 'd') goto yy453;
	goto yy13;
yy449:
	++cur;
#line 73 "../src/parse/lex_conf.re"
	{ opts.set_cond_set_arg     (lex_conf_string ()); return; }
#line 1917 "src/parse/lex_conf.cc"
yy451:
	++cur;
#line 71 "../src/parse/lex_conf.re"
	{ opts.set_cond_get_naked   (lex_conf_number () != 0); return; }
#line 1922 "src/parse/lex_conf.cc"
yy453:
	++cur;
#line 74 "../src/parse/lex_conf.re"
	{ opts.set_cond_set_naked   (lex_conf_number () != 0); return; }
#line 1927 "src/parse/lex_conf.cc"
}
#line 155 "../src/parse/lex_conf.re"

}

void Scanner::lex_conf_assign ()
{

#line 1936 "src/parse/lex_conf.cc"
{
	unsigned char yych;
	static const unsigned char yybm[] = {
		  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 ((lim - cur) < 2) fill(2);
	yych = (unsigned char)*cur;
	if (yych <= 0x1F) {
		if (yych == '\t') goto yy459;
	} else {
		if (yych <= ' ') goto yy459;
		if (yych == '=') goto yy460;
	}
	++cur;
yy458:
#line 161 "../src/parse/lex_conf.re"
	{ fatal ("missing '=' in configuration"); }
#line 1985 "src/parse/lex_conf.cc"
yy459:
	yych = (unsigned char)*(ptr = ++cur);
	if (yych <= 0x1F) {
		if (yych == '\t') goto yy463;
		goto yy458;
	} else {
		if (yych <= ' ') goto yy463;
		if (yych != '=') goto yy458;
	}
yy460:
	++cur;
	if (lim <= cur) fill(1);
	yych = (unsigned char)*cur;
	if (yybm[0+yych] & 128) {
		goto yy460;
	}
#line 162 "../src/parse/lex_conf.re"
	{ return; }
#line 2004 "src/parse/lex_conf.cc"
yy463:
	++cur;
	if (lim <= cur) fill(1);
	yych = (unsigned char)*cur;
	if (yych <= 0x1F) {
		if (yych == '\t') goto yy463;
	} else {
		if (yych <= ' ') goto yy463;
		if (yych == '=') goto yy460;
	}
	cur = ptr;
	goto yy458;
}
#line 163 "../src/parse/lex_conf.re"

}

void Scanner::lex_conf_semicolon ()
{

#line 2025 "src/parse/lex_conf.cc"
{
	unsigned char yych;
	static const unsigned char yybm[] = {
		  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 ((lim - cur) < 2) fill(2);
	yych = (unsigned char)*cur;
	if (yych <= 0x1F) {
		if (yych == '\t') goto yy470;
	} else {
		if (yych <= ' ') goto yy470;
		if (yych == ';') goto yy471;
	}
	++cur;
yy469:
#line 169 "../src/parse/lex_conf.re"
	{ fatal ("missing ending ';' in configuration"); }
#line 2074 "src/parse/lex_conf.cc"
yy470:
	yych = (unsigned char)*(ptr = ++cur);
	if (yybm[0+yych] & 128) {
		goto yy473;
	}
	if (yych != ';') goto yy469;
yy471:
	++cur;
#line 170 "../src/parse/lex_conf.re"
	{ return; }
#line 2085 "src/parse/lex_conf.cc"
yy473:
	++cur;
	if (lim <= cur) fill(1);
	yych = (unsigned char)*cur;
	if (yybm[0+yych] & 128) {
		goto yy473;
	}
	if (yych == ';') goto yy471;
	cur = ptr;
	goto yy469;
}
#line 171 "../src/parse/lex_conf.re"

}

int32_t Scanner::lex_conf_number ()
{
	lex_conf_assign ();
	tok = cur;

#line 2106 "src/parse/lex_conf.cc"
{
	unsigned char yych;
	static const unsigned char yybm[] = {
		  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, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 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, 
	};
	if ((lim - cur) < 2) fill(2);
	yych = (unsigned char)*cur;
	if (yych <= '/') {
		if (yych == '-') goto yy479;
	} else {
		if (yych <= '0') goto yy480;
		if (yych <= '9') goto yy482;
	}
yy478:
yy479:
	yych = (unsigned char)*++cur;
	if (yych <= '0') goto yy478;
	if (yych <= '9') goto yy482;
	goto yy478;
yy480:
	++cur;
yy481:
#line 180 "../src/parse/lex_conf.re"
	{
		int32_t n = 0;
		if (!s_to_i32_unsafe (tok, cur, n))
		{
			fatal ("configuration value overflow");
		}
		lex_conf_semicolon ();
		return n;
	}
#line 2170 "src/parse/lex_conf.cc"
yy482:
	++cur;
	if (lim <= cur) fill(1);
	yych = (unsigned char)*cur;
	if (yybm[0+yych] & 128) {
		goto yy482;
	}
	goto yy481;
}
#line 189 "../src/parse/lex_conf.re"

}

std::string Scanner::lex_conf_string ()
{
	lex_conf_assign ();
	std::string s;
	tok = cur;

#line 2190 "src/parse/lex_conf.cc"
{
	unsigned char yych;
	static const unsigned char yybm[] = {
		128, 128, 128, 128, 128, 128, 128, 128, 
		128,   0,   0, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		  0, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128,   0, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
		128, 128, 128, 128, 128, 128, 128, 128, 
	};
	if (lim <= cur) fill(1);
	yych = (unsigned char)*cur;
	if (yych <= '!') {
		if (yych <= '\n') {
			if (yych <= 0x08) goto yy487;
		} else {
			if (yych != ' ') goto yy487;
		}
	} else {
		if (yych <= '\'') {
			if (yych <= '"') goto yy489;
			if (yych <= '&') goto yy487;
			goto yy489;
		} else {
			if (yych != ';') goto yy487;
		}
	}
yy486:
#line 212 "../src/parse/lex_conf.re"
	{
		s = std::string(tok, tok_len());
		goto end;
	}
#line 2250 "src/parse/lex_conf.cc"
yy487:
	++cur;
	if (lim <= cur) fill(1);
	yych = (unsigned char)*cur;
	if (yybm[0+yych] & 128) {
		goto yy487;
	}
	goto yy486;
yy489:
	++cur;
#line 198 "../src/parse/lex_conf.re"
	{
		const char quote = tok[0];
		for (bool end;;) {
			const uint32_t c = lex_str_chr(quote, end);
			if (end) {
				goto end;
			}
			if (c > 0xFF) {
				fatalf ("multibyte character in configuration string: 0x%X", c);
			} else {
				s += static_cast<char>(c);
			}
		}
	}
#line 2276 "src/parse/lex_conf.cc"
}
#line 216 "../src/parse/lex_conf.re"

end:
	lex_conf_semicolon ();
	return s;
}

} // end namespace re2c
