From c04ebbb5dad53982e5d16de3413ec365deb5e1bf Mon Sep 17 00:00:00 2001 From: Ulya Trofimovich Date: Thu, 6 Apr 2017 15:18:12 +0100 Subject: [PATCH] Added codegen primitives for tags with history. --- re2c/bootstrap/src/ast/lex_conf.cc | 2132 ++++++++++++++-------------- re2c/src/ast/lex_conf.re | 2 + re2c/src/code/emit_action.cc | 69 +- re2c/src/conf/opt.cc | 6 + re2c/src/conf/opt.h | 2 + 5 files changed, 1140 insertions(+), 1071 deletions(-) diff --git a/re2c/bootstrap/src/ast/lex_conf.cc b/re2c/bootstrap/src/ast/lex_conf.cc index 09250480..2c15bb3b 100644 --- a/re2c/bootstrap/src/ast/lex_conf.cc +++ b/re2c/bootstrap/src/ast/lex_conf.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 0.16 on Tue Mar 7 21:23:26 2017 */ +/* Generated by re2c 0.16 on Thu Apr 6 15:15:40 2017 */ #line 1 "../src/ast/lex_conf.re" #include "src/util/c99_stdint.h" #include @@ -101,7 +101,7 @@ void Scanner::lex_conf(Opt &opts) } } yy2: -#line 158 "../src/ast/lex_conf.re" +#line 160 "../src/ast/lex_conf.re" { fatal_error(cline, get_column(), "unrecognized configuration '%.*s'", @@ -1095,7 +1095,7 @@ yy208: if (yybm[0+yych] & 32) { goto yy3; } -#line 140 "../src/ast/lex_conf.re" +#line 142 "../src/ast/lex_conf.re" { opts.set_bEmitYYCh (lex_conf_bool()); return; } #line 1101 "src/ast/lex_conf.cc" yy210: @@ -1131,17 +1131,17 @@ yy216: goto yy253; } } else { - goto yy322; + goto yy323; } } else { if (yyaccept <= 4) { if (yyaccept == 3) { - goto yy390; + goto yy392; } else { - goto yy585; + goto yy598; } } else { - goto yy665; + goto yy678; } } yy217: @@ -1194,91 +1194,92 @@ yy226: yy227: yych = (unsigned char)*++cur; if (yych == 'E') goto yy278; + if (yych == 'U') goto yy279; goto yy4; yy228: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy279; + if (yych == 'E') goto yy280; goto yy4; yy229: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy280; - if (yych == 'K') goto yy281; + if (yych == 'E') goto yy281; + if (yych == 'K') goto yy282; goto yy4; yy230: yych = (unsigned char)*++cur; - if (yych == 'v') goto yy282; + if (yych == 'v') goto yy283; goto yy4; yy231: yych = (unsigned char)*++cur; - if (yych == '-') goto yy283; + if (yych == '-') goto yy284; goto yy4; yy232: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy284; + if (yych == 'u') goto yy285; goto yy4; yy233: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy285; + if (yych == 'g') goto yy286; goto yy4; yy234: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy286; + if (yych == 'm') goto yy287; goto yy4; yy235: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy287; + if (yych == 'r') goto yy288; goto yy4; yy236: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy288; + if (yych == 'y') goto yy289; goto yy4; yy237: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy289; + if (yych == 'd') goto yy290; goto yy4; yy238: yych = (unsigned char)*++cur; - if (yych == 't') goto yy290; + if (yych == 't') goto yy291; goto yy4; yy239: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy292; + if (yych == 'e') goto yy293; goto yy4; yy240: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy293; + if (yych == 'e') goto yy294; goto yy4; yy241: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy294; + if (yych == 'o') goto yy295; goto yy4; yy242: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy295; + if (yych == 'x') goto yy296; goto yy4; yy243: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy296; + if (yych == 'o') goto yy297; goto yy4; yy244: yych = (unsigned char)*++cur; - if (yych == '1') goto yy297; + if (yych == '1') goto yy298; if (yych == '8') goto yy90; goto yy4; yy245: yych = (unsigned char)*++cur; - if (yych == '-') goto yy298; + if (yych == '-') goto yy299; goto yy4; yy246: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy299; + if (yych == 'i') goto yy300; goto yy4; yy247: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 125 "../src/ast/lex_conf.re" +#line 127 "../src/ast/lex_conf.re" { const int32_t n = lex_conf_number (); if (n < 0) @@ -1288,18 +1289,18 @@ yy247: opts.set_topIndent (static_cast (n)); return; } -#line 1292 "src/ast/lex_conf.cc" +#line 1293 "src/ast/lex_conf.cc" yy249: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy300; + if (yych == 'l') goto yy301; goto yy4; yy250: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy301; + if (yych == 'x') goto yy302; goto yy4; yy251: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy302; + if (yych == 'x') goto yy303; goto yy4; yy252: yyaccept = 1; @@ -1310,595 +1311,603 @@ yy252: if (yych <= 0x1F) { if (yych == '\t') { ctx = cur; - goto yy304; + goto yy305; } } else { if (yych <= ' ') { ctx = cur; - goto yy304; + goto yy305; } if (yych == '=') { ctx = cur; - goto yy306; + goto yy307; } } yy253: -#line 153 "../src/ast/lex_conf.re" +#line 155 "../src/ast/lex_conf.re" { opts.set_startlabel (lex_conf_string()); return; } -#line 1329 "src/ast/lex_conf.cc" +#line 1330 "src/ast/lex_conf.cc" yy254: yych = (unsigned char)*++cur; - if (yych == 't') goto yy308; + if (yych == 't') goto yy309; goto yy4; yy255: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy310; + if (yych == 'l') goto yy311; goto yy4; yy256: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy311; + if (yych == 'l') goto yy312; goto yy4; yy257: yych = (unsigned char)*++cur; - if (yych == 's') goto yy312; + if (yych == 's') goto yy313; goto yy4; yy258: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy313; + if (yych == 'x') goto yy314; goto yy4; yy259: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy315; + if (yych == 'y') goto yy316; goto yy4; yy260: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy316; + if (yych == 'r') goto yy317; goto yy4; yy261: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy317; + if (yych == 'c') goto yy318; goto yy4; yy262: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy318; + if (yych == 'b') goto yy319; goto yy4; yy263: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy319; + if (yych == 'a') goto yy320; goto yy4; yy264: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy320; + if (yych == 'h') goto yy321; goto yy4; yy265: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy321; + if (yych == 'r') goto yy322; goto yy4; yy266: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy323; + if (yych == 'o') goto yy324; goto yy216; yy267: yych = (unsigned char)*++cur; - if (yych == 'f') goto yy324; + if (yych == 'f') goto yy325; goto yy4; yy268: yych = (unsigned char)*++cur; - if (yych == 'C') goto yy325; + if (yych == 'C') goto yy326; goto yy4; yy269: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy326; - if (yych == 'P') goto yy327; + if (yych == 'N') goto yy327; + if (yych == 'P') goto yy328; goto yy4; yy270: yych = (unsigned char)*++cur; if (yych <= 'W') goto yy4; - if (yych <= 'X') goto yy328; - if (yych <= 'Y') goto yy329; + if (yych <= 'X') goto yy329; + if (yych <= 'Y') goto yy330; goto yy4; yy271: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy330; + if (yych == 'R') goto yy331; goto yy4; yy272: yych = (unsigned char)*++cur; - if (yych == 'B') goto yy331; + if (yych == 'B') goto yy332; goto yy4; yy273: yych = (unsigned char)*++cur; - if (yych == 'L') goto yy332; + if (yych == 'L') goto yy333; goto yy4; yy274: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy333; + if (yych == 'T') goto yy334; goto yy4; yy275: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy334; + if (yych == 'S') goto yy335; goto yy4; yy276: yych = (unsigned char)*++cur; - if (yych == 'M') goto yy335; + if (yych == 'M') goto yy336; goto yy4; yy277: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy336; + if (yych == 'R') goto yy337; goto yy4; yy278: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy337; + if (yych == 'E') goto yy338; goto yy4; yy279: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy338; + if (yych == 'S') goto yy339; goto yy4; yy280: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy339; + if (yych == 'S') goto yy340; goto yy4; yy281: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy340; + if (yych == 'T') goto yy341; goto yy4; yy282: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy341; + if (yych == 'I') goto yy342; goto yy4; yy283: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy342; + if (yych == 'e') goto yy343; goto yy4; yy284: yych = (unsigned char)*++cur; - if (yych == 't') goto yy343; + if (yych == 'i') goto yy344; goto yy4; yy285: yych = (unsigned char)*++cur; - if (yych == '-') goto yy344; + if (yych == 't') goto yy345; goto yy4; yy286: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy345; + if (yych == '-') goto yy346; goto yy4; yy287: yych = (unsigned char)*++cur; - if (yych == '-') goto yy346; + if (yych == 'i') goto yy347; goto yy4; yy288: yych = (unsigned char)*++cur; - if (yych == '-') goto yy347; + if (yych == '-') goto yy348; goto yy4; yy289: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy348; + if (yych == '-') goto yy349; goto yy4; yy290: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy350; + goto yy4; +yy291: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 60 "../src/ast/lex_conf.re" { lex_conf_input(opts); return; } -#line 1484 "src/ast/lex_conf.cc" -yy292: - yych = (unsigned char)*++cur; - if (yych == 'd') goto yy349; - goto yy4; +#line 1489 "src/ast/lex_conf.cc" yy293: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy350; + if (yych == 'd') goto yy351; goto yy4; yy294: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy351; + if (yych == 'b') goto yy352; goto yy4; yy295: yych = (unsigned char)*++cur; - if (yych == '-') goto yy352; + if (yych == 'o') goto yy353; goto yy4; yy296: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy353; + if (yych == '-') goto yy354; goto yy4; yy297: yych = (unsigned char)*++cur; - if (yych == '6') goto yy114; + if (yych == 'd') goto yy355; goto yy4; yy298: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy354; + if (yych == '6') goto yy114; goto yy4; yy299: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy355; + if (yych == 'c') goto yy356; goto yy4; yy300: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy356; + if (yych == 'n') goto yy357; goto yy4; yy301: yych = (unsigned char)*++cur; - if (yych == 't') goto yy357; + if (yych == 'l') goto yy358; goto yy4; yy302: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy359; + goto yy4; +yy303: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 149 "../src/ast/lex_conf.re" +#line 151 "../src/ast/lex_conf.re" { opts.set_labelPrefix (lex_conf_string ()); return; } -#line 1532 "src/ast/lex_conf.cc" -yy304: +#line 1537 "src/ast/lex_conf.cc" +yy305: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 64) { - goto yy304; + goto yy305; } if (yych != '=') goto yy216; -yy306: +yy307: ++cur; if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= ',') { if (yych <= '\t') { if (yych <= 0x08) goto yy216; - goto yy306; + goto yy307; } else { - if (yych == ' ') goto yy306; + if (yych == ' ') goto yy307; goto yy216; } } else { if (yych <= '/') { - if (yych <= '-') goto yy359; + if (yych <= '-') goto yy361; goto yy216; } else { - if (yych <= '0') goto yy360; - if (yych <= '9') goto yy362; + if (yych <= '0') goto yy362; + if (yych <= '9') goto yy364; goto yy216; } } -yy308: +yy309: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 85 "../src/ast/lex_conf.re" { opts.set_bUseStateAbort (lex_conf_bool()); return; } -#line 1570 "src/ast/lex_conf.cc" -yy310: - yych = (unsigned char)*++cur; - if (yych == 'a') goto yy364; - goto yy4; +#line 1575 "src/ast/lex_conf.cc" yy311: yych = (unsigned char)*++cur; - if (yych == 't') goto yy365; + if (yych == 'a') goto yy366; goto yy4; yy312: yych = (unsigned char)*++cur; - if (yych == 's') goto yy367; + if (yych == 't') goto yy367; goto yy4; yy313: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy369; + goto yy4; +yy314: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 120 "../src/ast/lex_conf.re" +#line 122 "../src/ast/lex_conf.re" { opts.set_tags_prefix (lex_conf_string ()); return; } -#line 1590 "src/ast/lex_conf.cc" -yy315: +#line 1595 "src/ast/lex_conf.cc" +yy316: yych = (unsigned char)*++cur; if (yych <= 'c') { if (yych <= '`') goto yy4; - if (yych <= 'a') goto yy368; - if (yych <= 'b') goto yy369; - goto yy370; + if (yych <= 'a') goto yy370; + if (yych <= 'b') goto yy371; + goto yy372; } else { if (yych <= 'r') goto yy4; - if (yych <= 's') goto yy371; - if (yych <= 't') goto yy372; + if (yych <= 's') goto yy373; + if (yych <= 't') goto yy374; goto yy4; } -yy316: - yych = (unsigned char)*++cur; - if (yych == 's') goto yy373; - goto yy4; yy317: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy374; + if (yych == 's') goto yy375; goto yy4; yy318: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy376; + if (yych == 'k') goto yy376; goto yy4; yy319: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy377; + if (yych == 'l') goto yy378; goto yy4; yy320: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy378; + if (yych == 'm') goto yy379; goto yy4; yy321: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy380; + goto yy4; +yy322: yyaccept = 2; yych = (unsigned char)*(mar = ++cur); if (yybm[0+yych] & 32) { goto yy3; } - if (yych == '@') goto yy379; -yy322: + if (yych == '@') goto yy381; +yy323: #line 72 "../src/ast/lex_conf.re" { opts.set_condDivider (lex_conf_string ()); return; } -#line 1634 "src/ast/lex_conf.cc" -yy323: - yych = (unsigned char)*++cur; - if (yych == 'n') goto yy380; - goto yy216; +#line 1639 "src/ast/lex_conf.cc" yy324: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy381; - goto yy4; + if (yych == 'n') goto yy382; + goto yy216; yy325: yych = (unsigned char)*++cur; - if (yych == 'K') goto yy382; + if (yych == 'i') goto yy383; goto yy4; yy326: yych = (unsigned char)*++cur; - if (yych == 'D') goto yy383; + if (yych == 'K') goto yy384; goto yy4; yy327: yych = (unsigned char)*++cur; - if (yych == 'Y') goto yy384; + if (yych == 'D') goto yy385; goto yy4; yy328: yych = (unsigned char)*++cur; - if (yych == 'M') goto yy385; + if (yych == 'Y') goto yy386; goto yy4; yy329: yych = (unsigned char)*++cur; - if (yych == 'P') goto yy386; + if (yych == 'M') goto yy387; goto yy4; yy330: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy387; + if (yych == 'P') goto yy388; goto yy4; yy331: yych = (unsigned char)*++cur; - if (yych == 'U') goto yy388; + if (yych == 'S') goto yy389; goto yy4; yy332: yych = (unsigned char)*++cur; - if (yych == 'L') goto yy389; + if (yych == 'U') goto yy390; goto yy4; yy333: yych = (unsigned char)*++cur; - if (yych == 'C') goto yy391; - if (yych == 'S') goto yy392; + if (yych == 'L') goto yy391; goto yy4; yy334: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy393; + if (yych == 'C') goto yy393; + if (yych == 'S') goto yy394; goto yy4; yy335: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy394; + if (yych == 'S') goto yy395; goto yy4; yy336: yych = (unsigned char)*++cur; - if (yych == 'K') goto yy395; + if (yych == 'I') goto yy396; goto yy4; yy337: yych = (unsigned char)*++cur; - if (yych == 'K') goto yy396; + if (yych == 'K') goto yy397; goto yy4; yy338: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy398; + if (yych == 'K') goto yy398; goto yy4; yy339: yych = (unsigned char)*++cur; - if (yych == 'C') goto yy399; - if (yych == 'S') goto yy400; + if (yych == 'H') goto yy400; goto yy4; yy340: yych = (unsigned char)*++cur; - if (yych == 'P') goto yy401; + if (yych == 'T') goto yy401; goto yy4; yy341: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy403; + if (yych == 'C') goto yy402; + if (yych == 'S') goto yy403; goto yy4; yy342: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy404; + if (yych == 'P') goto yy404; goto yy4; yy343: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy405; + if (yych == 'c') goto yy406; goto yy4; yy344: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy406; + if (yych == 'n') goto yy407; goto yy4; yy345: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy407; + if (yych == 'e') goto yy408; goto yy4; yy346: yych = (unsigned char)*++cur; - if (yych == 's') goto yy408; + if (yych == 'o') goto yy409; goto yy4; yy347: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy409; + if (yych == 'n') goto yy410; goto yy4; yy348: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy410; + if (yych == 's') goto yy411; goto yy4; yy349: yych = (unsigned char)*++cur; - if (yych == '-') goto yy411; + if (yych == 'c') goto yy412; goto yy4; yy350: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy412; + if (yych == 'n') goto yy413; goto yy4; yy351: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy413; + if (yych == '-') goto yy414; goto yy4; yy352: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy414; + if (yych == 'u') goto yy415; goto yy4; yy353: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy415; + if (yych == 'k') goto yy416; goto yy4; yy354: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy416; + if (yych == 'c') goto yy417; goto yy4; yy355: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy417; + if (yych == 'e') goto yy418; goto yy4; yy356: yych = (unsigned char)*++cur; - if (yych == 'L') goto yy419; + if (yych == 'h') goto yy419; goto yy4; yy357: + yych = (unsigned char)*++cur; + if (yych == 'g') goto yy420; + goto yy4; +yy358: + yych = (unsigned char)*++cur; + if (yych == 'L') goto yy422; + goto yy4; +yy359: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 84 "../src/ast/lex_conf.re" { opts.set_yynext (lex_conf_string ()); return; } -#line 1780 "src/ast/lex_conf.cc" -yy359: +#line 1789 "src/ast/lex_conf.cc" +yy361: yych = (unsigned char)*++cur; if (yych <= '0') goto yy216; - if (yych <= '9') goto yy362; + if (yych <= '9') goto yy364; goto yy216; -yy360: +yy362: ++cur; -yy361: +yy363: cur = ctx; -#line 152 "../src/ast/lex_conf.re" +#line 154 "../src/ast/lex_conf.re" { opts.set_startlabel_force (lex_conf_bool()); return; } -#line 1792 "src/ast/lex_conf.cc" -yy362: +#line 1801 "src/ast/lex_conf.cc" +yy364: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy362; + goto yy364; } - goto yy361; -yy364: + goto yy363; +yy366: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy420; + if (yych == 'b') goto yy423; goto yy4; -yy365: +yy367: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 119 "../src/ast/lex_conf.re" +#line 121 "../src/ast/lex_conf.re" { opts.set_tags_default (lex_conf_string ()); return; } -#line 1812 "src/ast/lex_conf.cc" -yy367: - yych = (unsigned char)*++cur; - if (yych == 'i') goto yy421; - goto yy4; -yy368: - yych = (unsigned char)*++cur; - if (yych == 'c') goto yy422; - goto yy4; +#line 1821 "src/ast/lex_conf.cc" yy369: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy423; + if (yych == 'i') goto yy424; goto yy4; yy370: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy425; - if (yych == 't') goto yy427; + if (yych == 'c') goto yy425; goto yy4; yy371: yych = (unsigned char)*++cur; - if (yych == 't') goto yy428; + if (yych == 'm') goto yy426; goto yy4; yy372: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy429; + if (yych == 'h') goto yy428; + if (yych == 't') goto yy430; goto yy4; yy373: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy430; + if (yych == 't') goto yy431; goto yy4; yy374: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy432; + goto yy4; +yy375: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy433; + goto yy4; +yy376: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 147 "../src/ast/lex_conf.re" +#line 149 "../src/ast/lex_conf.re" { opts.set_fill_check (lex_conf_bool()); return; } -#line 1849 "src/ast/lex_conf.cc" -yy376: - yych = (unsigned char)*++cur; - if (yych == 'e') goto yy431; - goto yy4; -yy377: - yych = (unsigned char)*++cur; - if (yych == 'e') goto yy433; - goto yy4; +#line 1858 "src/ast/lex_conf.cc" yy378: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy434; + if (yych == 'e') goto yy434; goto yy4; yy379: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy435; - goto yy216; + if (yych == 'e') goto yy436; + goto yy4; yy380: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy436; - goto yy216; + if (yych == 'l') goto yy437; + goto yy4; yy381: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy438; - goto yy4; + if (yych == 'c') goto yy438; + goto yy216; yy382: yych = (unsigned char)*++cur; - if (yych == 'U') goto yy440; - goto yy4; + if (yych == 'd') goto yy439; + goto yy216; yy383: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy441; + if (yych == 'x') goto yy441; goto yy4; yy384: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy442; + if (yych == 'U') goto yy443; goto yy4; yy385: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy443; + if (yych == 'T') goto yy444; goto yy4; yy386: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy444; + if (yych == 'T') goto yy445; goto yy4; yy387: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy446; + if (yych == 'A') goto yy446; goto yy4; yy388: yych = (unsigned char)*++cur; - if (yych == 'G') goto yy447; + if (yych == 'E') goto yy447; goto yy4; yy389: + yych = (unsigned char)*++cur; + if (yych == 'O') goto yy449; + goto yy4; +yy390: + yych = (unsigned char)*++cur; + if (yych == 'G') goto yy450; + goto yy4; +yy391: yyaccept = 3; yych = (unsigned char)*(mar = ++cur); if (yych <= '?') { @@ -1906,372 +1915,365 @@ yy389: if (yych == '-') goto yy3; } else { if (yych <= '9') goto yy3; - if (yych <= ':') goto yy449; + if (yych <= ':') goto yy452; } } else { if (yych <= '^') { - if (yych <= '@') goto yy450; + if (yych <= '@') goto yy453; if (yych <= 'Z') goto yy3; } else { - if (yych == '`') goto yy390; + if (yych == '`') goto yy392; if (yych <= 'z') goto yy3; } } -yy390: -#line 142 "../src/ast/lex_conf.re" - { opts.set_fill (lex_conf_string ()); return; } -#line 1924 "src/ast/lex_conf.cc" -yy391: - yych = (unsigned char)*++cur; - if (yych == 'O') goto yy451; - goto yy4; yy392: - yych = (unsigned char)*++cur; - if (yych == 'T') goto yy452; - goto yy4; +#line 144 "../src/ast/lex_conf.re" + { opts.set_fill (lex_conf_string ()); return; } +#line 1933 "src/ast/lex_conf.cc" yy393: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy453; + if (yych == 'O') goto yy454; goto yy4; yy394: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy454; + if (yych == 'T') goto yy455; goto yy4; yy395: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy456; + if (yych == 'T') goto yy456; goto yy4; yy396: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy457; + goto yy4; +yy397: + yych = (unsigned char)*++cur; + if (yych == 'E') goto yy459; + goto yy4; +yy398: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 108 "../src/ast/lex_conf.re" { opts.set_yypeek (lex_conf_string ()); return; } -#line 1952 "src/ast/lex_conf.cc" -yy398: +#line 1961 "src/ast/lex_conf.cc" +yy400: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy457; + if (yych == 'N') goto yy460; + if (yych == 'P') goto yy461; goto yy4; -yy399: +yy401: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy458; + if (yych == 'O') goto yy462; goto yy4; -yy400: +yy402: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy459; + if (yych == 'O') goto yy463; goto yy4; -yy401: +yy403: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy464; + goto yy4; +yy404: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 109 "../src/ast/lex_conf.re" { opts.set_yyskip (lex_conf_string ()); return; } -#line 1972 "src/ast/lex_conf.cc" -yy403: - yych = (unsigned char)*++cur; - if (yych == 't') goto yy460; - goto yy4; -yy404: - yych = (unsigned char)*++cur; - if (yych == 's') goto yy461; - if (yych == 'v') goto yy462; - goto yy4; -yy405: - yych = (unsigned char)*++cur; - if (yych == 'd') goto yy463; - goto yy4; +#line 1986 "src/ast/lex_conf.cc" yy406: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy464; + if (yych == 't') goto yy465; goto yy4; yy407: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy465; + if (yych == 's') goto yy466; + if (yych == 'v') goto yy467; goto yy4; yy408: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy466; + if (yych == 'd') goto yy468; goto yy4; yy409: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy467; + if (yych == 'u') goto yy469; goto yy4; yy410: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy468; + if (yych == 'i') goto yy470; goto yy4; yy411: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy469; + if (yych == 'k') goto yy471; goto yy4; yy412: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy470; + if (yych == 'l') goto yy472; goto yy4; yy413: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy471; + if (yych == 'g') goto yy473; goto yy4; yy414: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy472; + if (yych == 'i') goto yy474; goto yy4; yy415: + yych = (unsigned char)*++cur; + if (yych == 'g') goto yy475; + goto yy4; +yy416: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy476; + goto yy4; +yy417: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy477; + goto yy4; +yy418: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } goto yy111; -yy416: +yy419: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy473; + if (yych == 'a') goto yy478; goto yy4; -yy417: +yy420: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 123 "../src/ast/lex_conf.re" +#line 125 "../src/ast/lex_conf.re" { opts.set_indString (lex_conf_string ()); return; } -#line 2039 "src/ast/lex_conf.cc" -yy419: +#line 2053 "src/ast/lex_conf.cc" +yy422: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy474; + if (yych == 'a') goto yy479; goto yy4; -yy420: +yy423: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy475; + if (yych == 'e') goto yy480; goto yy4; -yy421: +yy424: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy476; + if (yych == 'o') goto yy481; goto yy4; -yy422: +yy425: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy477; + if (yych == 'c') goto yy482; goto yy4; -yy423: +yy426: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 89 "../src/ast/lex_conf.re" { opts.set_yybm (lex_conf_string ()); return; } -#line 2063 "src/ast/lex_conf.cc" -yy425: +#line 2077 "src/ast/lex_conf.cc" +yy428: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 138 "../src/ast/lex_conf.re" +#line 140 "../src/ast/lex_conf.re" { opts.set_yych (lex_conf_string ()); return; } -#line 2071 "src/ast/lex_conf.cc" -yy427: +#line 2085 "src/ast/lex_conf.cc" +yy430: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy478; + if (yych == 'a') goto yy483; goto yy4; -yy428: +yy431: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy479; + if (yych == 'a') goto yy484; goto yy4; -yy429: +yy432: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy480; + if (yych == 'r') goto yy485; goto yy4; -yy430: +yy433: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy481; + if (yych == 'o') goto yy486; goto yy4; -yy431: +yy434: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 143 "../src/ast/lex_conf.re" +#line 145 "../src/ast/lex_conf.re" { opts.set_fill_use (lex_conf_bool()); return; } -#line 2095 "src/ast/lex_conf.cc" -yy433: +#line 2109 "src/ast/lex_conf.cc" +yy436: yych = (unsigned char)*++cur; - if (yych == 't') goto yy482; + if (yych == 't') goto yy487; goto yy4; -yy434: +yy437: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy483; + if (yych == 'd') goto yy488; goto yy4; -yy435: +yy438: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy485; + if (yych == 'o') goto yy490; goto yy216; -yy436: +yy439: ++cur; #line 75 "../src/ast/lex_conf.re" { opts.set_condGotoParam (lex_conf_string ()); return; } -#line 2112 "src/ast/lex_conf.cc" -yy438: +#line 2126 "src/ast/lex_conf.cc" +yy441: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 71 "../src/ast/lex_conf.re" { opts.set_condEnumPrefix (lex_conf_string ()); return; } -#line 2120 "src/ast/lex_conf.cc" -yy440: +#line 2134 "src/ast/lex_conf.cc" +yy443: yych = (unsigned char)*++cur; - if (yych == 'P') goto yy486; + if (yych == 'P') goto yy491; goto yy4; -yy441: +yy444: yych = (unsigned char)*++cur; - if (yych == 'Y') goto yy488; + if (yych == 'Y') goto yy493; goto yy4; -yy442: +yy445: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy489; + if (yych == 'A') goto yy494; goto yy4; -yy443: +yy446: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy490; + if (yych == 'R') goto yy495; goto yy4; -yy444: +yy447: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 137 "../src/ast/lex_conf.re" +#line 139 "../src/ast/lex_conf.re" { opts.set_yyctype (lex_conf_string ()); return; } -#line 2144 "src/ast/lex_conf.cc" -yy446: +#line 2158 "src/ast/lex_conf.cc" +yy449: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy491; + if (yych == 'R') goto yy496; goto yy4; -yy447: +yy450: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 135 "../src/ast/lex_conf.re" +#line 137 "../src/ast/lex_conf.re" { opts.set_yydebug (lex_conf_string ()); return; } -#line 2156 "src/ast/lex_conf.cc" -yy449: +#line 2170 "src/ast/lex_conf.cc" +yy452: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy493; + if (yych == 'n') goto yy498; goto yy4; -yy450: +yy453: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy494; + if (yych == 'l') goto yy499; goto yy216; -yy451: +yy454: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy495; + if (yych == 'N') goto yy500; goto yy4; -yy452: +yy455: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy496; + if (yych == 'A') goto yy501; goto yy4; -yy453: +yy456: yych = (unsigned char)*++cur; - if (yych == 'H') goto yy497; + if (yych == 'H') goto yy502; goto yy4; -yy454: +yy457: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 106 "../src/ast/lex_conf.re" { opts.set_yylimit (lex_conf_string ()); return; } -#line 2184 "src/ast/lex_conf.cc" -yy456: - yych = (unsigned char)*++cur; - if (yych == 'R') goto yy498; - goto yy4; -yy457: - yych = (unsigned char)*++cur; - if (yych == 'R') goto yy500; - goto yy4; -yy458: - yych = (unsigned char)*++cur; - if (yych == 'N') goto yy501; - goto yy4; +#line 2198 "src/ast/lex_conf.cc" yy459: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy502; + if (yych == 'R') goto yy503; goto yy4; yy460: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy503; + if (yych == 'T') goto yy505; goto yy4; yy461: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy504; + if (yych == 'T') goto yy506; goto yy4; yy462: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy505; + if (yych == 'R') goto yy507; goto yy4; yy463: yych = (unsigned char)*++cur; - if (yych == '-') goto yy506; + if (yych == 'N') goto yy508; goto yy4; yy464: yych = (unsigned char)*++cur; - if (yych == 't') goto yy507; + if (yych == 'A') goto yy509; goto yy4; yy465: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy508; + if (yych == 'o') goto yy510; goto yy4; yy466: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy509; + if (yych == 'e') goto yy511; goto yy4; yy467: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy510; + if (yych == 'e') goto yy512; goto yy4; yy468: yych = (unsigned char)*++cur; - if (yych == '-') goto yy511; + if (yych == '-') goto yy513; goto yy4; yy469: yych = (unsigned char)*++cur; - if (yych == 'f') goto yy512; + if (yych == 't') goto yy514; goto yy4; yy470: yych = (unsigned char)*++cur; - if (yych == '-') goto yy513; + if (yych == 'm') goto yy515; goto yy4; yy471: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy514; + if (yych == 'i') goto yy516; goto yy4; yy472: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy515; + if (yych == 'a') goto yy517; goto yy4; yy473: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy516; + if (yych == '-') goto yy518; goto yy4; yy474: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy517; + if (yych == 'f') goto yy519; goto yy4; yy475: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy518; + if (yych == '-') goto yy520; goto yy4; yy476: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy520; + if (yych == 'h') goto yy521; goto yy4; yy477: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy522; + if (yych == 'p') goto yy522; goto yy4; yy478: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy523; + if (yych == 'r') goto yy523; goto yy4; yy479: yych = (unsigned char)*++cur; @@ -2279,17 +2281,37 @@ yy479: goto yy4; yy480: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy525; + if (yych == 'l') goto yy525; goto yy4; yy481: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy526; + if (yych == 'n') goto yy527; goto yy4; yy482: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy528; + if (yych == 'e') goto yy529; goto yy4; yy483: + yych = (unsigned char)*++cur; + if (yych == 'b') goto yy530; + goto yy4; +yy484: + yych = (unsigned char)*++cur; + if (yych == 'b') goto yy531; + goto yy4; +yy485: + yych = (unsigned char)*++cur; + if (yych == 'g') goto yy532; + goto yy4; +yy486: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy533; + goto yy4; +yy487: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy535; + goto yy4; +yy488: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; @@ -2304,446 +2326,478 @@ yy483: opts.set_cGotoThreshold (static_cast (n)); return; } -#line 2308 "src/ast/lex_conf.cc" -yy485: +#line 2330 "src/ast/lex_conf.cc" +yy490: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy529; + if (yych == 'n') goto yy536; goto yy216; -yy486: +yy491: yych = (unsigned char)*++cur; if (yych <= 'C') { if (yych <= '/') { if (yych == '-') goto yy3; } else { if (yych <= ':') goto yy3; - if (yych <= '@') goto yy487; + if (yych <= '@') goto yy492; if (yych <= 'B') goto yy3; - goto yy530; + goto yy537; } } else { if (yych <= '^') { - if (yych == 'T') goto yy531; + if (yych == 'T') goto yy538; if (yych <= 'Z') goto yy3; } else { - if (yych == '`') goto yy487; + if (yych == '`') goto yy492; if (yych <= 'z') goto yy3; } } -yy487: +yy492: #line 110 "../src/ast/lex_conf.re" { opts.set_yybackup (lex_conf_string ()); return; } -#line 2336 "src/ast/lex_conf.cc" -yy488: +#line 2358 "src/ast/lex_conf.cc" +yy493: yych = (unsigned char)*++cur; - if (yych == 'P') goto yy532; + if (yych == 'P') goto yy539; goto yy4; -yy489: +yy494: yych = (unsigned char)*++cur; - if (yych == 'G') goto yy533; + if (yych == 'G') goto yy540; goto yy4; -yy490: +yy495: yych = (unsigned char)*++cur; - if (yych == 'K') goto yy535; + if (yych == 'K') goto yy542; goto yy4; -yy491: +yy496: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 103 "../src/ast/lex_conf.re" { opts.set_yycursor (lex_conf_string ()); return; } -#line 2356 "src/ast/lex_conf.cc" -yy493: +#line 2378 "src/ast/lex_conf.cc" +yy498: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy536; + if (yych == 'a') goto yy543; goto yy4; -yy494: +yy499: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy537; + if (yych == 'e') goto yy544; goto yy216; -yy495: +yy500: yych = (unsigned char)*++cur; - if (yych == 'D') goto yy538; + if (yych == 'D') goto yy545; goto yy4; -yy496: +yy501: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy539; + if (yych == 'T') goto yy546; goto yy4; -yy497: +yy502: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy540; + if (yych == 'A') goto yy547; goto yy4; -yy498: +yy503: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 104 "../src/ast/lex_conf.re" { opts.set_yymarker (lex_conf_string ()); return; } -#line 2384 "src/ast/lex_conf.cc" -yy500: - yych = (unsigned char)*++cur; - if (yych == 'E') goto yy541; - goto yy4; -yy501: - yych = (unsigned char)*++cur; - if (yych == 'D') goto yy543; - goto yy4; -yy502: - yych = (unsigned char)*++cur; - if (yych == 'T') goto yy544; - goto yy4; -yy503: - yych = (unsigned char)*++cur; - if (yych == 'r') goto yy545; - goto yy4; -yy504: - yych = (unsigned char)*++cur; - if (yych == 'n') goto yy546; - goto yy4; +#line 2406 "src/ast/lex_conf.cc" yy505: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy547; + if (yych == 'A') goto yy548; goto yy4; yy506: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy548; + if (yych == 'A') goto yy549; goto yy4; yy507: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy549; + if (yych == 'E') goto yy550; goto yy4; yy508: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy550; + if (yych == 'D') goto yy552; goto yy4; yy509: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy551; + if (yych == 'T') goto yy553; goto yy4; yy510: yych = (unsigned char)*++cur; - if (yych == 's') goto yy553; + if (yych == 'r') goto yy554; goto yy4; yy511: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy554; + if (yych == 'n') goto yy555; goto yy4; yy512: yych = (unsigned char)*++cur; - if (yych == 's') goto yy107; + if (yych == 'r') goto yy556; goto yy4; yy513: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy555; + if (yych == 'g') goto yy557; goto yy4; yy514: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy556; + if (yych == 'p') goto yy558; goto yy4; yy515: yych = (unsigned char)*++cur; - if (yych == 't') goto yy557; + if (yych == 'i') goto yy559; goto yy4; yy516: yych = (unsigned char)*++cur; - if (yych == 's') goto yy558; + if (yych == 'p') goto yy560; goto yy4; yy517: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy559; + if (yych == 's') goto yy562; goto yy4; yy518: yych = (unsigned char)*++cur; - if (yybm[0+yych] & 32) { - goto yy3; - } -#line 86 "../src/ast/lex_conf.re" - { opts.set_bUseStateNext (lex_conf_bool()); return; } -#line 2464 "src/ast/lex_conf.cc" + if (yych == 'p') goto yy563; + goto yy4; +yy519: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy107; + goto yy4; yy520: yych = (unsigned char)*++cur; - if (yybm[0+yych] & 32) { - goto yy3; - } -#line 121 "../src/ast/lex_conf.re" - { opts.set_tags_expression(lex_conf_string ()); return; } -#line 2472 "src/ast/lex_conf.cc" + if (yych == 'i') goto yy564; + goto yy4; +yy521: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy565; + goto yy4; yy522: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy560; + if (yych == 't') goto yy566; goto yy4; yy523: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy561; + if (yych == 's') goto yy567; goto yy4; yy524: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy562; + if (yych == 'e') goto yy568; goto yy4; yy525: - yych = (unsigned char)*++cur; - if (yych == 'e') goto yy563; - goto yy4; -yy526: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 139 "../src/ast/lex_conf.re" - { opts.set_yychConversion (lex_conf_bool()); return; } -#line 2496 "src/ast/lex_conf.cc" -yy528: +#line 86 "../src/ast/lex_conf.re" + { opts.set_bUseStateNext (lex_conf_bool()); return; } +#line 2494 "src/ast/lex_conf.cc" +yy527: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy564; - goto yy4; + if (yybm[0+yych] & 32) { + goto yy3; + } +#line 123 "../src/ast/lex_conf.re" + { opts.set_tags_expression(lex_conf_string ()); return; } +#line 2502 "src/ast/lex_conf.cc" yy529: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy566; - goto yy216; + if (yych == 'p') goto yy569; + goto yy4; yy530: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy568; + if (yych == 'l') goto yy570; goto yy4; yy531: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy569; + if (yych == 'l') goto yy571; goto yy4; yy532: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy570; + if (yych == 'e') goto yy572; goto yy4; yy533: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 116 "../src/ast/lex_conf.re" - { opts.set_yycopytag (lex_conf_string ()); return; } -#line 2524 "src/ast/lex_conf.cc" +#line 141 "../src/ast/lex_conf.re" + { opts.set_yychConversion (lex_conf_bool()); return; } +#line 2526 "src/ast/lex_conf.cc" yy535: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy572; + if (yych == 'r') goto yy573; goto yy4; yy536: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy573; - goto yy4; + if (yych == 'd') goto yy575; + goto yy216; yy537: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy574; - goto yy216; + if (yych == 'T') goto yy577; + goto yy4; yy538: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy576; + if (yych == 'A') goto yy578; goto yy4; yy539: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy577; + if (yych == 'E') goto yy579; goto yy4; yy540: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy579; + if (yybm[0+yych] & 32) { + goto yy3; + } +#line 116 "../src/ast/lex_conf.re" + { opts.set_yycopytag (lex_conf_string ()); return; } +#line 2554 "src/ast/lex_conf.cc" +yy542: + yych = (unsigned char)*++cur; + if (yych == 'E') goto yy581; goto yy4; -yy541: +yy543: + yych = (unsigned char)*++cur; + if (yych == 'k') goto yy582; + goto yy4; +yy544: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy583; + goto yy216; +yy545: + yych = (unsigned char)*++cur; + if (yych == 'I') goto yy585; + goto yy4; +yy546: + yych = (unsigned char)*++cur; + if (yych == 'E') goto yy586; + goto yy4; +yy547: + yych = (unsigned char)*++cur; + if (yych == 'N') goto yy588; + goto yy4; +yy548: + yych = (unsigned char)*++cur; + if (yych == 'G') goto yy590; + goto yy4; +yy549: + yych = (unsigned char)*++cur; + if (yych == 'G') goto yy592; + goto yy4; +yy550: yych = (unsigned char)*++cur; if (yych <= 'C') { if (yych <= '/') { if (yych == '-') goto yy3; } else { if (yych <= ':') goto yy3; - if (yych <= '@') goto yy542; + if (yych <= '@') goto yy551; if (yych <= 'B') goto yy3; - goto yy581; + goto yy594; } } else { if (yych <= '^') { - if (yych == 'T') goto yy582; + if (yych == 'T') goto yy595; if (yych <= 'Z') goto yy3; } else { - if (yych == '`') goto yy542; + if (yych == '`') goto yy551; if (yych <= 'z') goto yy3; } } -yy542: +yy551: #line 113 "../src/ast/lex_conf.re" { opts.set_yyrestore (lex_conf_string ()); return; } -#line 2572 "src/ast/lex_conf.cc" -yy543: +#line 2610 "src/ast/lex_conf.cc" +yy552: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy583; + if (yych == 'I') goto yy596; goto yy4; -yy544: +yy553: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy584; + if (yych == 'E') goto yy597; goto yy4; -yy545: +yy554: yych = (unsigned char)*++cur; - if (yych == 's') goto yy586; + if (yych == 's') goto yy599; goto yy4; -yy546: +yy555: yych = (unsigned char)*++cur; - if (yych == 's') goto yy587; + if (yych == 's') goto yy600; goto yy4; -yy547: +yy556: yych = (unsigned char)*++cur; - if (yych == 't') goto yy588; + if (yych == 't') goto yy601; goto yy4; -yy548: +yy557: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy589; + if (yych == 'o') goto yy602; goto yy4; -yy549: +yy558: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy590; + if (yych == 'u') goto yy603; goto yy4; -yy550: +yy559: yych = (unsigned char)*++cur; - if (yych == 'z') goto yy591; + if (yych == 'z') goto yy604; goto yy4; -yy551: +yy560: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 51 "../src/ast/lex_conf.re" { opts.set_eager_skip(lex_conf_bool()); return; } -#line 2612 "src/ast/lex_conf.cc" -yy553: +#line 2650 "src/ast/lex_conf.cc" +yy562: yych = (unsigned char)*++cur; - if (yych == 's') goto yy592; + if (yych == 's') goto yy605; goto yy4; -yy554: +yy563: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy594; + if (yych == 'o') goto yy607; goto yy4; -yy555: +yy564: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy595; + if (yych == 'n') goto yy608; goto yy4; -yy556: +yy565: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy596; + if (yych == 'a') goto yy609; goto yy4; -yy557: +yy566: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy597; + if (yych == 'u') goto yy610; goto yy4; -yy558: +yy567: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } goto yy113; -yy559: +yy568: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy598; + if (yych == 'l') goto yy611; goto yy4; -yy560: +yy569: yych = (unsigned char)*++cur; - if (yych == 't') goto yy600; + if (yych == 't') goto yy613; goto yy4; -yy561: +yy570: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy602; + if (yych == 'e') goto yy615; goto yy4; -yy562: +yy571: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy604; + if (yych == 'e') goto yy617; goto yy4; -yy563: +yy572: yych = (unsigned char)*++cur; - if (yych == 't') goto yy606; + if (yych == 't') goto yy619; goto yy4; -yy564: +yy573: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 145 "../src/ast/lex_conf.re" +#line 147 "../src/ast/lex_conf.re" { opts.set_fill_arg_use (lex_conf_bool()); return; } -#line 2666 "src/ast/lex_conf.cc" -yy566: +#line 2704 "src/ast/lex_conf.cc" +yy575: ++cur; #line 73 "../src/ast/lex_conf.re" { opts.set_condDividerParam (lex_conf_string ()); return; } -#line 2671 "src/ast/lex_conf.cc" -yy568: +#line 2709 "src/ast/lex_conf.cc" +yy577: yych = (unsigned char)*++cur; - if (yych == 'X') goto yy608; + if (yych == 'X') goto yy621; goto yy4; -yy569: +yy578: yych = (unsigned char)*++cur; - if (yych == 'G') goto yy610; + if (yych == 'G') goto yy623; goto yy4; -yy570: +yy579: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 64 "../src/ast/lex_conf.re" { opts.set_yycondtype (lex_conf_string ()); return; } -#line 2687 "src/ast/lex_conf.cc" -yy572: +#line 2725 "src/ast/lex_conf.cc" +yy581: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy612; + if (yych == 'R') goto yy625; goto yy4; -yy573: +yy582: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy614; + if (yych == 'e') goto yy627; goto yy4; -yy574: +yy583: ++cur; -#line 144 "../src/ast/lex_conf.re" +#line 146 "../src/ast/lex_conf.re" { opts.set_fill_arg (lex_conf_string ()); return; } -#line 2700 "src/ast/lex_conf.cc" -yy576: +#line 2738 "src/ast/lex_conf.cc" +yy585: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy615; + if (yych == 'T') goto yy628; goto yy4; -yy577: +yy586: yych = (unsigned char)*++cur; if (yych <= '@') { if (yych <= '/') { if (yych == '-') goto yy3; } else { if (yych <= '9') goto yy3; - if (yych <= ':') goto yy616; + if (yych <= ':') goto yy629; } } else { if (yych <= '_') { if (yych <= 'Z') goto yy3; if (yych >= '_') goto yy3; } else { - if (yych <= '`') goto yy578; + if (yych <= '`') goto yy587; if (yych <= 'z') goto yy3; } } -yy578: +yy587: #line 78 "../src/ast/lex_conf.re" { opts.set_state_get (lex_conf_string ()); return; } -#line 2726 "src/ast/lex_conf.cc" -yy579: +#line 2764 "src/ast/lex_conf.cc" +yy588: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 117 "../src/ast/lex_conf.re" +#line 119 "../src/ast/lex_conf.re" { opts.set_yylessthan (lex_conf_string ()); return; } -#line 2734 "src/ast/lex_conf.cc" -yy581: +#line 2772 "src/ast/lex_conf.cc" +yy590: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy617; + if (yybm[0+yych] & 32) { + goto yy3; + } +#line 117 "../src/ast/lex_conf.re" + { opts.set_yypushntag (lex_conf_string ()); return; } +#line 2780 "src/ast/lex_conf.cc" +yy592: + yych = (unsigned char)*++cur; + if (yybm[0+yych] & 32) { + goto yy3; + } +#line 118 "../src/ast/lex_conf.re" + { opts.set_yypushptag (lex_conf_string ()); return; } +#line 2788 "src/ast/lex_conf.cc" +yy594: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy630; goto yy4; -yy582: +yy595: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy618; + if (yych == 'A') goto yy631; goto yy4; -yy583: +yy596: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy619; + if (yych == 'T') goto yy632; goto yy4; -yy584: +yy597: yyaccept = 4; yych = (unsigned char)*(mar = ++cur); if (yych <= '?') { @@ -2751,354 +2805,354 @@ yy584: if (yych == '-') goto yy3; } else { if (yych <= '9') goto yy3; - if (yych <= ':') goto yy620; + if (yych <= ':') goto yy633; } } else { if (yych <= '^') { - if (yych <= '@') goto yy621; + if (yych <= '@') goto yy634; if (yych <= 'Z') goto yy3; } else { - if (yych == '`') goto yy585; + if (yych == '`') goto yy598; if (yych <= 'z') goto yy3; } } -yy585: +yy598: #line 80 "../src/ast/lex_conf.re" { opts.set_state_set (lex_conf_string ()); return; } -#line 2769 "src/ast/lex_conf.cc" -yy586: +#line 2823 "src/ast/lex_conf.cc" +yy599: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } goto yy95; -yy587: +yy600: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy622; + if (yych == 'i') goto yy635; goto yy4; -yy588: +yy601: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy623; + if (yych == 'e') goto yy636; goto yy4; -yy589: +yy602: yych = (unsigned char)*++cur; - if (yych == 't') goto yy624; + if (yych == 't') goto yy637; goto yy4; -yy590: +yy603: yych = (unsigned char)*++cur; - if (yych == 't') goto yy625; + if (yych == 't') goto yy638; goto yy4; -yy591: +yy604: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy626; + if (yych == 'a') goto yy639; goto yy4; -yy592: +yy605: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 61 "../src/ast/lex_conf.re" { lex_conf_empty_class(opts); return; } -#line 2803 "src/ast/lex_conf.cc" -yy594: +#line 2857 "src/ast/lex_conf.cc" +yy607: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy627; + if (yych == 'l') goto yy640; goto yy4; -yy595: +yy608: yych = (unsigned char)*++cur; - if (yych == 'f') goto yy628; + if (yych == 'f') goto yy641; goto yy4; -yy596: +yy609: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy629; + if (yych == 'd') goto yy642; goto yy4; -yy597: +yy610: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy631; + if (yych == 'r') goto yy644; goto yy4; -yy598: +yy611: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 83 "../src/ast/lex_conf.re" { opts.set_yyfilllabel (lex_conf_string ()); return; } -#line 2827 "src/ast/lex_conf.cc" -yy600: +#line 2881 "src/ast/lex_conf.cc" +yy613: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 87 "../src/ast/lex_conf.re" { opts.set_yyaccept (lex_conf_string ()); return; } -#line 2835 "src/ast/lex_conf.cc" -yy602: +#line 2889 "src/ast/lex_conf.cc" +yy615: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 76 "../src/ast/lex_conf.re" { opts.set_yyctable (lex_conf_string ()); return; } -#line 2843 "src/ast/lex_conf.cc" -yy604: +#line 2897 "src/ast/lex_conf.cc" +yy617: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 156 "../src/ast/lex_conf.re" +#line 158 "../src/ast/lex_conf.re" { lex_conf_string (); return; } -#line 2851 "src/ast/lex_conf.cc" -yy606: +#line 2905 "src/ast/lex_conf.cc" +yy619: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 101 "../src/ast/lex_conf.re" { opts.set_yytarget (lex_conf_string ()); return; } -#line 2859 "src/ast/lex_conf.cc" -yy608: +#line 2913 "src/ast/lex_conf.cc" +yy621: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 111 "../src/ast/lex_conf.re" { opts.set_yybackupctx (lex_conf_string ()); return; } -#line 2867 "src/ast/lex_conf.cc" -yy610: +#line 2921 "src/ast/lex_conf.cc" +yy623: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 112 "../src/ast/lex_conf.re" { opts.set_yybackuptag (lex_conf_string ()); return; } -#line 2875 "src/ast/lex_conf.cc" -yy612: +#line 2929 "src/ast/lex_conf.cc" +yy625: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 105 "../src/ast/lex_conf.re" { opts.set_yyctxmarker (lex_conf_string ()); return; } -#line 2883 "src/ast/lex_conf.cc" -yy614: +#line 2937 "src/ast/lex_conf.cc" +yy627: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy632; + if (yych == 'd') goto yy645; goto yy4; -yy615: +yy628: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy634; + if (yych == 'I') goto yy647; goto yy4; -yy616: +yy629: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy635; + if (yych == 'n') goto yy648; goto yy4; -yy617: +yy630: yych = (unsigned char)*++cur; - if (yych == 'X') goto yy636; + if (yych == 'X') goto yy649; goto yy4; -yy618: +yy631: yych = (unsigned char)*++cur; - if (yych == 'G') goto yy638; + if (yych == 'G') goto yy651; goto yy4; -yy619: +yy632: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy640; + if (yych == 'I') goto yy653; goto yy4; -yy620: +yy633: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy641; + if (yych == 'n') goto yy654; goto yy4; -yy621: +yy634: yych = (unsigned char)*++cur; - if (yych == 's') goto yy642; + if (yych == 's') goto yy655; goto yy216; -yy622: +yy635: yych = (unsigned char)*++cur; - if (yych == 't') goto yy643; + if (yych == 't') goto yy656; goto yy4; -yy623: +yy636: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy644; + if (yych == 'd') goto yy657; goto yy4; -yy624: +yy637: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy646; + if (yych == 'o') goto yy659; goto yy4; -yy625: +yy638: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } goto yy98; -yy626: +yy639: yych = (unsigned char)*++cur; - if (yych == 't') goto yy647; + if (yych == 't') goto yy660; goto yy4; -yy627: +yy640: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy648; + if (yych == 'i') goto yy661; goto yy4; -yy628: +yy641: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy649; + if (yych == 'o') goto yy662; goto yy4; -yy629: +yy642: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 50 "../src/ast/lex_conf.re" { opts.set_lookahead(!lex_conf_bool()); return; } -#line 2953 "src/ast/lex_conf.cc" -yy631: +#line 3007 "src/ast/lex_conf.cc" +yy644: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy650; + if (yych == 'e') goto yy663; goto yy4; -yy632: +yy645: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } -#line 146 "../src/ast/lex_conf.re" +#line 148 "../src/ast/lex_conf.re" { opts.set_fill_naked (lex_conf_bool()); return; } -#line 2965 "src/ast/lex_conf.cc" -yy634: +#line 3019 "src/ast/lex_conf.cc" +yy647: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy651; + if (yych == 'O') goto yy664; goto yy4; -yy635: +yy648: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy652; + if (yych == 'a') goto yy665; goto yy4; -yy636: +yy649: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 114 "../src/ast/lex_conf.re" { opts.set_yyrestorectx (lex_conf_string ()); return; } -#line 2981 "src/ast/lex_conf.cc" -yy638: +#line 3035 "src/ast/lex_conf.cc" +yy651: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 115 "../src/ast/lex_conf.re" { opts.set_yyrestoretag (lex_conf_string ()); return; } -#line 2989 "src/ast/lex_conf.cc" -yy640: +#line 3043 "src/ast/lex_conf.cc" +yy653: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy653; + if (yych == 'O') goto yy666; goto yy4; -yy641: +yy654: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy654; + if (yych == 'a') goto yy667; goto yy4; -yy642: +yy655: yych = (unsigned char)*++cur; - if (yych == 't') goto yy655; + if (yych == 't') goto yy668; goto yy216; -yy643: +yy656: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy656; + if (yych == 'i') goto yy669; goto yy4; -yy644: +yy657: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 49 "../src/ast/lex_conf.re" { opts.set_bCaseInverted(lex_conf_bool()); return; } -#line 3013 "src/ast/lex_conf.cc" -yy646: +#line 3067 "src/ast/lex_conf.cc" +yy659: yych = (unsigned char)*++cur; if (yych == 's') goto yy101; goto yy4; -yy647: +yy660: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy657; + if (yych == 'i') goto yy670; goto yy4; -yy648: +yy661: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy658; + if (yych == 'c') goto yy671; goto yy4; -yy649: +yy662: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } goto yy104; -yy650: +yy663: yych = (unsigned char)*++cur; - if (yych == 's') goto yy659; + if (yych == 's') goto yy672; goto yy4; -yy651: +yy664: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy661; + if (yych == 'N') goto yy674; goto yy4; -yy652: +yy665: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy663; + if (yych == 'k') goto yy676; goto yy4; -yy653: +yy666: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy664; + if (yych == 'N') goto yy677; goto yy4; -yy654: +yy667: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy666; + if (yych == 'k') goto yy679; goto yy4; -yy655: +yy668: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy667; + if (yych == 'a') goto yy680; goto yy216; -yy656: +yy669: yych = (unsigned char)*++cur; - if (yych == 'v') goto yy668; + if (yych == 'v') goto yy681; goto yy4; -yy657: +yy670: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy669; + if (yych == 'o') goto yy682; goto yy4; -yy658: +yy671: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy670; + if (yych == 'y') goto yy683; goto yy4; -yy659: +yy672: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 47 "../src/ast/lex_conf.re" { opts.set_posix_captures(lex_conf_bool()); return; } -#line 3075 "src/ast/lex_conf.cc" -yy661: +#line 3129 "src/ast/lex_conf.cc" +yy674: yych = (unsigned char)*++cur; if (yych <= '@') { if (yych <= '/') { if (yych == '-') goto yy3; } else { if (yych <= '9') goto yy3; - if (yych <= ':') goto yy672; + if (yych <= ':') goto yy685; } } else { if (yych <= '_') { if (yych <= 'Z') goto yy3; if (yych >= '_') goto yy3; } else { - if (yych <= '`') goto yy662; + if (yych <= '`') goto yy675; if (yych <= 'z') goto yy3; } } -yy662: +yy675: #line 65 "../src/ast/lex_conf.re" { opts.set_cond_get (lex_conf_string ()); return; } -#line 3097 "src/ast/lex_conf.cc" -yy663: +#line 3151 "src/ast/lex_conf.cc" +yy676: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy673; + if (yych == 'e') goto yy686; goto yy4; -yy664: +yy677: yyaccept = 5; yych = (unsigned char)*(mar = ++cur); if (yych <= '?') { @@ -3106,173 +3160,173 @@ yy664: if (yych == '-') goto yy3; } else { if (yych <= '9') goto yy3; - if (yych <= ':') goto yy674; + if (yych <= ':') goto yy687; } } else { if (yych <= '^') { - if (yych <= '@') goto yy675; + if (yych <= '@') goto yy688; if (yych <= 'Z') goto yy3; } else { - if (yych == '`') goto yy665; + if (yych == '`') goto yy678; if (yych <= 'z') goto yy3; } } -yy665: +yy678: #line 67 "../src/ast/lex_conf.re" { opts.set_cond_set (lex_conf_string ()); return; } -#line 3124 "src/ast/lex_conf.cc" -yy666: +#line 3178 "src/ast/lex_conf.cc" +yy679: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy676; + if (yych == 'e') goto yy689; goto yy4; -yy667: +yy680: yych = (unsigned char)*++cur; - if (yych == 't') goto yy677; + if (yych == 't') goto yy690; goto yy216; -yy668: +yy681: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy678; + if (yych == 'e') goto yy691; goto yy4; -yy669: +yy682: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy680; + if (yych == 'n') goto yy693; goto yy4; -yy670: +yy683: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 59 "../src/ast/lex_conf.re" { lex_conf_encoding_policy(opts); return; } -#line 3148 "src/ast/lex_conf.cc" -yy672: +#line 3202 "src/ast/lex_conf.cc" +yy685: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy682; + if (yych == 'n') goto yy695; goto yy4; -yy673: +yy686: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy683; + if (yych == 'd') goto yy696; goto yy4; -yy674: +yy687: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy685; + if (yych == 'n') goto yy698; goto yy4; -yy675: +yy688: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy686; + if (yych == 'c') goto yy699; goto yy216; -yy676: +yy689: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy687; + if (yych == 'd') goto yy700; goto yy4; -yy677: +yy690: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy689; + if (yych == 'e') goto yy702; goto yy216; -yy678: +yy691: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 48 "../src/ast/lex_conf.re" { opts.set_bCaseInsensitive(lex_conf_bool()); return; } -#line 3180 "src/ast/lex_conf.cc" -yy680: +#line 3234 "src/ast/lex_conf.cc" +yy693: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 62 "../src/ast/lex_conf.re" { lex_conf_dfa_minimization(opts); return; } -#line 3188 "src/ast/lex_conf.cc" -yy682: +#line 3242 "src/ast/lex_conf.cc" +yy695: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy691; + if (yych == 'a') goto yy704; goto yy4; -yy683: +yy696: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 79 "../src/ast/lex_conf.re" { opts.set_state_get_naked (lex_conf_bool()); return; } -#line 3200 "src/ast/lex_conf.cc" -yy685: +#line 3254 "src/ast/lex_conf.cc" +yy698: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy692; + if (yych == 'a') goto yy705; goto yy4; -yy686: +yy699: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy693; + if (yych == 'o') goto yy706; goto yy216; -yy687: +yy700: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 81 "../src/ast/lex_conf.re" { opts.set_state_set_naked (lex_conf_bool()); return; } -#line 3216 "src/ast/lex_conf.cc" -yy689: +#line 3270 "src/ast/lex_conf.cc" +yy702: ++cur; #line 82 "../src/ast/lex_conf.re" { opts.set_state_set_arg (lex_conf_string ()); return; } -#line 3221 "src/ast/lex_conf.cc" -yy691: +#line 3275 "src/ast/lex_conf.cc" +yy704: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy694; + if (yych == 'k') goto yy707; goto yy4; -yy692: +yy705: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy695; + if (yych == 'k') goto yy708; goto yy4; -yy693: +yy706: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy696; + if (yych == 'n') goto yy709; goto yy216; -yy694: +yy707: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy697; + if (yych == 'e') goto yy710; goto yy4; -yy695: +yy708: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy698; + if (yych == 'e') goto yy711; goto yy4; -yy696: +yy709: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy699; + if (yych == 'd') goto yy712; goto yy216; -yy697: +yy710: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy701; + if (yych == 'd') goto yy714; goto yy4; -yy698: +yy711: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy703; + if (yych == 'd') goto yy716; goto yy4; -yy699: +yy712: ++cur; #line 68 "../src/ast/lex_conf.re" { opts.set_cond_set_arg (lex_conf_string ()); return; } -#line 3258 "src/ast/lex_conf.cc" -yy701: +#line 3312 "src/ast/lex_conf.cc" +yy714: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 66 "../src/ast/lex_conf.re" { opts.set_cond_get_naked (lex_conf_bool()); return; } -#line 3266 "src/ast/lex_conf.cc" -yy703: +#line 3320 "src/ast/lex_conf.cc" +yy716: yych = (unsigned char)*++cur; if (yybm[0+yych] & 32) { goto yy3; } #line 69 "../src/ast/lex_conf.re" { opts.set_cond_set_naked (lex_conf_bool()); return; } -#line 3274 "src/ast/lex_conf.cc" +#line 3328 "src/ast/lex_conf.cc" } -#line 163 "../src/ast/lex_conf.re" +#line 165 "../src/ast/lex_conf.re" } @@ -3280,102 +3334,102 @@ void Scanner::lex_conf_encoding_policy(Opt &opts) { lex_conf_assign (); -#line 3284 "src/ast/lex_conf.cc" +#line 3338 "src/ast/lex_conf.cc" { unsigned char yych; if ((lim - cur) < 10) fill(10); yych = (unsigned char)*cur; if (yych <= 'h') { - if (yych == 'f') goto yy709; + if (yych == 'f') goto yy722; } else { - if (yych <= 'i') goto yy710; - if (yych == 's') goto yy711; + if (yych <= 'i') goto yy723; + if (yych == 's') goto yy724; } ++cur; -yy708: -#line 170 "../src/ast/lex_conf.re" +yy721: +#line 172 "../src/ast/lex_conf.re" { fatal("bad configuration value" " (expected: 'ignore', 'substitute', 'fail')"); } -#line 3300 "src/ast/lex_conf.cc" -yy709: +#line 3354 "src/ast/lex_conf.cc" +yy722: yych = (unsigned char)*(mar = ++cur); - if (yych == 'a') goto yy712; - goto yy708; -yy710: + if (yych == 'a') goto yy725; + goto yy721; +yy723: yych = (unsigned char)*(mar = ++cur); - if (yych == 'g') goto yy714; - goto yy708; -yy711: + if (yych == 'g') goto yy727; + goto yy721; +yy724: yych = (unsigned char)*(mar = ++cur); - if (yych == 'u') goto yy715; - goto yy708; -yy712: + if (yych == 'u') goto yy728; + goto yy721; +yy725: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy716; -yy713: + if (yych == 'i') goto yy729; +yy726: cur = mar; - goto yy708; -yy714: + goto yy721; +yy727: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy717; - goto yy713; -yy715: + if (yych == 'n') goto yy730; + goto yy726; +yy728: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy718; - goto yy713; -yy716: + if (yych == 'b') goto yy731; + goto yy726; +yy729: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy719; - goto yy713; -yy717: + if (yych == 'l') goto yy732; + goto yy726; +yy730: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy721; - goto yy713; -yy718: + if (yych == 'o') goto yy734; + goto yy726; +yy731: yych = (unsigned char)*++cur; - if (yych == 's') goto yy722; - goto yy713; -yy719: + if (yych == 's') goto yy735; + goto yy726; +yy732: ++cur; -#line 174 "../src/ast/lex_conf.re" +#line 176 "../src/ast/lex_conf.re" { opts.set_encoding_policy(Enc::POLICY_FAIL); goto end; } -#line 3343 "src/ast/lex_conf.cc" -yy721: +#line 3397 "src/ast/lex_conf.cc" +yy734: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy723; - goto yy713; -yy722: + if (yych == 'r') goto yy736; + goto yy726; +yy735: yych = (unsigned char)*++cur; - if (yych == 't') goto yy724; - goto yy713; -yy723: + if (yych == 't') goto yy737; + goto yy726; +yy736: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy725; - goto yy713; -yy724: + if (yych == 'e') goto yy738; + goto yy726; +yy737: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy727; - goto yy713; -yy725: + if (yych == 'i') goto yy740; + goto yy726; +yy738: ++cur; -#line 172 "../src/ast/lex_conf.re" +#line 174 "../src/ast/lex_conf.re" { opts.set_encoding_policy(Enc::POLICY_IGNORE); goto end; } -#line 3364 "src/ast/lex_conf.cc" -yy727: +#line 3418 "src/ast/lex_conf.cc" +yy740: yych = (unsigned char)*++cur; - if (yych != 't') goto yy713; + if (yych != 't') goto yy726; yych = (unsigned char)*++cur; - if (yych != 'u') goto yy713; + if (yych != 'u') goto yy726; yych = (unsigned char)*++cur; - if (yych != 't') goto yy713; + if (yych != 't') goto yy726; yych = (unsigned char)*++cur; - if (yych != 'e') goto yy713; + if (yych != 'e') goto yy726; ++cur; -#line 173 "../src/ast/lex_conf.re" +#line 175 "../src/ast/lex_conf.re" { opts.set_encoding_policy(Enc::POLICY_SUBSTITUTE); goto end; } -#line 3377 "src/ast/lex_conf.cc" +#line 3431 "src/ast/lex_conf.cc" } -#line 175 "../src/ast/lex_conf.re" +#line 177 "../src/ast/lex_conf.re" end: lex_conf_semicolon(); @@ -3385,77 +3439,77 @@ void Scanner::lex_conf_input(Opt &opts) { lex_conf_assign (); -#line 3389 "src/ast/lex_conf.cc" +#line 3443 "src/ast/lex_conf.cc" { unsigned char yych; if ((lim - cur) < 7) fill(7); yych = (unsigned char)*cur; - if (yych <= 'b') goto yy735; - if (yych <= 'c') goto yy737; - if (yych <= 'd') goto yy738; -yy735: + if (yych <= 'b') goto yy748; + if (yych <= 'c') goto yy750; + if (yych <= 'd') goto yy751; +yy748: ++cur; -yy736: -#line 184 "../src/ast/lex_conf.re" +yy749: +#line 186 "../src/ast/lex_conf.re" { fatal("bad configuration value" " (expected: 'default', 'custom')"); } -#line 3403 "src/ast/lex_conf.cc" -yy737: +#line 3457 "src/ast/lex_conf.cc" +yy750: yych = (unsigned char)*(mar = ++cur); - if (yych == 'u') goto yy739; - goto yy736; -yy738: + if (yych == 'u') goto yy752; + goto yy749; +yy751: yych = (unsigned char)*(mar = ++cur); - if (yych == 'e') goto yy741; - goto yy736; -yy739: + if (yych == 'e') goto yy754; + goto yy749; +yy752: yych = (unsigned char)*++cur; - if (yych == 's') goto yy742; -yy740: + if (yych == 's') goto yy755; +yy753: cur = mar; - goto yy736; -yy741: + goto yy749; +yy754: yych = (unsigned char)*++cur; - if (yych == 'f') goto yy743; - goto yy740; -yy742: + if (yych == 'f') goto yy756; + goto yy753; +yy755: yych = (unsigned char)*++cur; - if (yych == 't') goto yy744; - goto yy740; -yy743: + if (yych == 't') goto yy757; + goto yy753; +yy756: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy745; - goto yy740; -yy744: + if (yych == 'a') goto yy758; + goto yy753; +yy757: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy746; - goto yy740; -yy745: + if (yych == 'o') goto yy759; + goto yy753; +yy758: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy747; - goto yy740; -yy746: + if (yych == 'u') goto yy760; + goto yy753; +yy759: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy748; - goto yy740; -yy747: + if (yych == 'm') goto yy761; + goto yy753; +yy760: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy750; - goto yy740; -yy748: + if (yych == 'l') goto yy763; + goto yy753; +yy761: ++cur; -#line 187 "../src/ast/lex_conf.re" +#line 189 "../src/ast/lex_conf.re" { opts.set_input_api(INPUT_CUSTOM); goto end; } -#line 3450 "src/ast/lex_conf.cc" -yy750: +#line 3504 "src/ast/lex_conf.cc" +yy763: yych = (unsigned char)*++cur; - if (yych != 't') goto yy740; + if (yych != 't') goto yy753; ++cur; -#line 186 "../src/ast/lex_conf.re" +#line 188 "../src/ast/lex_conf.re" { opts.set_input_api(INPUT_DEFAULT); goto end; } -#line 3457 "src/ast/lex_conf.cc" +#line 3511 "src/ast/lex_conf.cc" } -#line 188 "../src/ast/lex_conf.re" +#line 190 "../src/ast/lex_conf.re" end: lex_conf_semicolon(); @@ -3465,105 +3519,105 @@ void Scanner::lex_conf_empty_class(Opt &opts) { lex_conf_assign (); -#line 3469 "src/ast/lex_conf.cc" +#line 3523 "src/ast/lex_conf.cc" { unsigned char yych; if ((lim - cur) < 11) fill(11); yych = (unsigned char)*cur; - if (yych == 'e') goto yy757; - if (yych == 'm') goto yy758; + if (yych == 'e') goto yy770; + if (yych == 'm') goto yy771; ++cur; -yy756: -#line 197 "../src/ast/lex_conf.re" +yy769: +#line 199 "../src/ast/lex_conf.re" { fatal("bad configuration value" " (expected: 'match-empty', 'match-none', 'error')"); } -#line 3481 "src/ast/lex_conf.cc" -yy757: +#line 3535 "src/ast/lex_conf.cc" +yy770: yych = (unsigned char)*(mar = ++cur); - if (yych == 'r') goto yy759; - goto yy756; -yy758: + if (yych == 'r') goto yy772; + goto yy769; +yy771: yych = (unsigned char)*(mar = ++cur); - if (yych == 'a') goto yy761; - goto yy756; -yy759: + if (yych == 'a') goto yy774; + goto yy769; +yy772: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy762; -yy760: + if (yych == 'r') goto yy775; +yy773: cur = mar; - goto yy756; -yy761: + goto yy769; +yy774: yych = (unsigned char)*++cur; - if (yych == 't') goto yy763; - goto yy760; -yy762: + if (yych == 't') goto yy776; + goto yy773; +yy775: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy764; - goto yy760; -yy763: + if (yych == 'o') goto yy777; + goto yy773; +yy776: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy765; - goto yy760; -yy764: + if (yych == 'c') goto yy778; + goto yy773; +yy777: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy766; - goto yy760; -yy765: + if (yych == 'r') goto yy779; + goto yy773; +yy778: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy768; - goto yy760; -yy766: + if (yych == 'h') goto yy781; + goto yy773; +yy779: ++cur; -#line 201 "../src/ast/lex_conf.re" +#line 203 "../src/ast/lex_conf.re" { opts.set_empty_class_policy(EMPTY_CLASS_ERROR); goto end; } -#line 3520 "src/ast/lex_conf.cc" -yy768: +#line 3574 "src/ast/lex_conf.cc" +yy781: yych = (unsigned char)*++cur; - if (yych != '-') goto yy760; + if (yych != '-') goto yy773; yych = (unsigned char)*++cur; - if (yych == 'e') goto yy770; - if (yych == 'n') goto yy771; - goto yy760; -yy770: + if (yych == 'e') goto yy783; + if (yych == 'n') goto yy784; + goto yy773; +yy783: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy772; - goto yy760; -yy771: + if (yych == 'm') goto yy785; + goto yy773; +yy784: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy773; - goto yy760; -yy772: + if (yych == 'o') goto yy786; + goto yy773; +yy785: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy774; - goto yy760; -yy773: + if (yych == 'p') goto yy787; + goto yy773; +yy786: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy775; - goto yy760; -yy774: + if (yych == 'n') goto yy788; + goto yy773; +yy787: yych = (unsigned char)*++cur; - if (yych == 't') goto yy776; - goto yy760; -yy775: + if (yych == 't') goto yy789; + goto yy773; +yy788: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy777; - goto yy760; -yy776: + if (yych == 'e') goto yy790; + goto yy773; +yy789: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy779; - goto yy760; -yy777: + if (yych == 'y') goto yy792; + goto yy773; +yy790: ++cur; -#line 200 "../src/ast/lex_conf.re" +#line 202 "../src/ast/lex_conf.re" { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_NONE); goto end; } -#line 3560 "src/ast/lex_conf.cc" -yy779: +#line 3614 "src/ast/lex_conf.cc" +yy792: ++cur; -#line 199 "../src/ast/lex_conf.re" +#line 201 "../src/ast/lex_conf.re" { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_EMPTY); goto end; } -#line 3565 "src/ast/lex_conf.cc" +#line 3619 "src/ast/lex_conf.cc" } -#line 202 "../src/ast/lex_conf.re" +#line 204 "../src/ast/lex_conf.re" end: lex_conf_semicolon(); @@ -3573,65 +3627,65 @@ void Scanner::lex_conf_dfa_minimization(Opt &opts) { lex_conf_assign (); -#line 3577 "src/ast/lex_conf.cc" +#line 3631 "src/ast/lex_conf.cc" { unsigned char yych; if ((lim - cur) < 5) fill(5); yych = (unsigned char)*cur; - if (yych == 'm') goto yy785; - if (yych == 't') goto yy786; + if (yych == 'm') goto yy798; + if (yych == 't') goto yy799; ++cur; -yy784: -#line 211 "../src/ast/lex_conf.re" +yy797: +#line 213 "../src/ast/lex_conf.re" { fatal("bad configuration value" " (expected: 'table', 'moore')"); } -#line 3589 "src/ast/lex_conf.cc" -yy785: +#line 3643 "src/ast/lex_conf.cc" +yy798: yych = (unsigned char)*(mar = ++cur); - if (yych == 'o') goto yy787; - goto yy784; -yy786: + if (yych == 'o') goto yy800; + goto yy797; +yy799: yych = (unsigned char)*(mar = ++cur); - if (yych == 'a') goto yy789; - goto yy784; -yy787: + if (yych == 'a') goto yy802; + goto yy797; +yy800: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy790; -yy788: + if (yych == 'o') goto yy803; +yy801: cur = mar; - goto yy784; -yy789: + goto yy797; +yy802: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy791; - goto yy788; -yy790: + if (yych == 'b') goto yy804; + goto yy801; +yy803: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy792; - goto yy788; -yy791: + if (yych == 'r') goto yy805; + goto yy801; +yy804: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy793; - goto yy788; -yy792: + if (yych == 'l') goto yy806; + goto yy801; +yy805: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy794; - goto yy788; -yy793: + if (yych == 'e') goto yy807; + goto yy801; +yy806: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy796; - goto yy788; -yy794: + if (yych == 'e') goto yy809; + goto yy801; +yy807: ++cur; -#line 214 "../src/ast/lex_conf.re" +#line 216 "../src/ast/lex_conf.re" { opts.set_dfa_minimization(DFA_MINIMIZATION_MOORE); goto end; } -#line 3628 "src/ast/lex_conf.cc" -yy796: +#line 3682 "src/ast/lex_conf.cc" +yy809: ++cur; -#line 213 "../src/ast/lex_conf.re" +#line 215 "../src/ast/lex_conf.re" { opts.set_dfa_minimization(DFA_MINIMIZATION_TABLE); goto end; } -#line 3633 "src/ast/lex_conf.cc" +#line 3687 "src/ast/lex_conf.cc" } -#line 215 "../src/ast/lex_conf.re" +#line 217 "../src/ast/lex_conf.re" end: lex_conf_semicolon(); @@ -3649,7 +3703,7 @@ void Scanner::lex_conf_enc(Enc::type_t enc, Opt &opts) void Scanner::lex_conf_assign () { -#line 3653 "src/ast/lex_conf.cc" +#line 3707 "src/ast/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -3689,56 +3743,56 @@ void Scanner::lex_conf_assign () if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= 0x1F) { - if (yych == '\t') goto yy802; + if (yych == '\t') goto yy815; } else { - if (yych <= ' ') goto yy802; - if (yych == '=') goto yy803; + if (yych <= ' ') goto yy815; + if (yych == '=') goto yy816; } ++cur; -yy801: -#line 232 "../src/ast/lex_conf.re" +yy814: +#line 234 "../src/ast/lex_conf.re" { fatal ("missing '=' in configuration"); } -#line 3702 "src/ast/lex_conf.cc" -yy802: +#line 3756 "src/ast/lex_conf.cc" +yy815: yych = (unsigned char)*(mar = ++cur); if (yych <= 0x1F) { - if (yych == '\t') goto yy806; - goto yy801; + if (yych == '\t') goto yy819; + goto yy814; } else { - if (yych <= ' ') goto yy806; - if (yych != '=') goto yy801; + if (yych <= ' ') goto yy819; + if (yych != '=') goto yy814; } -yy803: +yy816: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy803; + goto yy816; } -#line 233 "../src/ast/lex_conf.re" +#line 235 "../src/ast/lex_conf.re" { return; } -#line 3721 "src/ast/lex_conf.cc" -yy806: +#line 3775 "src/ast/lex_conf.cc" +yy819: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yych <= 0x1F) { - if (yych == '\t') goto yy806; + if (yych == '\t') goto yy819; } else { - if (yych <= ' ') goto yy806; - if (yych == '=') goto yy803; + if (yych <= ' ') goto yy819; + if (yych == '=') goto yy816; } cur = mar; - goto yy801; + goto yy814; } -#line 234 "../src/ast/lex_conf.re" +#line 236 "../src/ast/lex_conf.re" } void Scanner::lex_conf_semicolon () { -#line 3742 "src/ast/lex_conf.cc" +#line 3796 "src/ast/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -3778,39 +3832,39 @@ void Scanner::lex_conf_semicolon () if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= 0x1F) { - if (yych == '\t') goto yy813; + if (yych == '\t') goto yy826; } else { - if (yych <= ' ') goto yy813; - if (yych == ';') goto yy814; + if (yych <= ' ') goto yy826; + if (yych == ';') goto yy827; } ++cur; -yy812: -#line 240 "../src/ast/lex_conf.re" +yy825: +#line 242 "../src/ast/lex_conf.re" { fatal ("missing ending ';' in configuration"); } -#line 3791 "src/ast/lex_conf.cc" -yy813: +#line 3845 "src/ast/lex_conf.cc" +yy826: yych = (unsigned char)*(mar = ++cur); if (yybm[0+yych] & 128) { - goto yy816; + goto yy829; } - if (yych != ';') goto yy812; -yy814: + if (yych != ';') goto yy825; +yy827: ++cur; -#line 241 "../src/ast/lex_conf.re" +#line 243 "../src/ast/lex_conf.re" { return; } -#line 3802 "src/ast/lex_conf.cc" -yy816: +#line 3856 "src/ast/lex_conf.cc" +yy829: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy816; + goto yy829; } - if (yych == ';') goto yy814; + if (yych == ';') goto yy827; cur = mar; - goto yy812; + goto yy825; } -#line 242 "../src/ast/lex_conf.re" +#line 244 "../src/ast/lex_conf.re" } @@ -3824,7 +3878,7 @@ int32_t Scanner::lex_conf_number () lex_conf_assign (); tok = cur; -#line 3828 "src/ast/lex_conf.cc" +#line 3882 "src/ast/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -3864,21 +3918,21 @@ int32_t Scanner::lex_conf_number () if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= '/') { - if (yych == '-') goto yy822; + if (yych == '-') goto yy835; } else { - if (yych <= '0') goto yy823; - if (yych <= '9') goto yy825; + if (yych <= '0') goto yy836; + if (yych <= '9') goto yy838; } -yy821: -yy822: +yy834: +yy835: yych = (unsigned char)*++cur; - if (yych <= '0') goto yy821; - if (yych <= '9') goto yy825; - goto yy821; -yy823: + if (yych <= '0') goto yy834; + if (yych <= '9') goto yy838; + goto yy834; +yy836: ++cur; -yy824: -#line 256 "../src/ast/lex_conf.re" +yy837: +#line 258 "../src/ast/lex_conf.re" { int32_t n = 0; if (!s_to_i32_unsafe (tok, cur, n)) @@ -3888,17 +3942,17 @@ yy824: lex_conf_semicolon (); return n; } -#line 3892 "src/ast/lex_conf.cc" -yy825: +#line 3946 "src/ast/lex_conf.cc" +yy838: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy825; + goto yy838; } - goto yy824; + goto yy837; } -#line 265 "../src/ast/lex_conf.re" +#line 267 "../src/ast/lex_conf.re" } @@ -3908,7 +3962,7 @@ std::string Scanner::lex_conf_string () std::string s; tok = cur; -#line 3912 "src/ast/lex_conf.cc" +#line 3966 "src/ast/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -3949,38 +4003,38 @@ std::string Scanner::lex_conf_string () yych = (unsigned char)*cur; if (yych <= '!') { if (yych <= '\n') { - if (yych <= 0x08) goto yy830; + if (yych <= 0x08) goto yy843; } else { - if (yych != ' ') goto yy830; + if (yych != ' ') goto yy843; } } else { if (yych <= '\'') { - if (yych <= '"') goto yy833; - if (yych <= '&') goto yy830; - goto yy833; + if (yych <= '"') goto yy846; + if (yych <= '&') goto yy843; + goto yy846; } else { - if (yych != ';') goto yy830; + if (yych != ';') goto yy843; } } -#line 292 "../src/ast/lex_conf.re" +#line 294 "../src/ast/lex_conf.re" { goto end; } -#line 3968 "src/ast/lex_conf.cc" -yy830: +#line 4022 "src/ast/lex_conf.cc" +yy843: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy830; + goto yy843; } -#line 288 "../src/ast/lex_conf.re" +#line 290 "../src/ast/lex_conf.re" { s = std::string(tok, tok_len()); goto end; } -#line 3981 "src/ast/lex_conf.cc" -yy833: +#line 4035 "src/ast/lex_conf.cc" +yy846: ++cur; -#line 274 "../src/ast/lex_conf.re" +#line 276 "../src/ast/lex_conf.re" { const char quote = tok[0]; for (bool end;;) { @@ -3995,9 +4049,9 @@ yy833: } } } -#line 3999 "src/ast/lex_conf.cc" +#line 4053 "src/ast/lex_conf.cc" } -#line 293 "../src/ast/lex_conf.re" +#line 295 "../src/ast/lex_conf.re" end: lex_conf_semicolon (); diff --git a/re2c/src/ast/lex_conf.re b/re2c/src/ast/lex_conf.re index 3b78b126..4c143a8c 100644 --- a/re2c/src/ast/lex_conf.re +++ b/re2c/src/ast/lex_conf.re @@ -114,6 +114,8 @@ void Scanner::lex_conf(Opt &opts) "define:YYRESTORECTX" { opts.set_yyrestorectx (lex_conf_string ()); return; } "define:YYRESTORETAG" { opts.set_yyrestoretag (lex_conf_string ()); return; } "define:YYCOPYTAG" { opts.set_yycopytag (lex_conf_string ()); return; } + "define:YYPUSHNTAG" { opts.set_yypushntag (lex_conf_string ()); return; } + "define:YYPUSHPTAG" { opts.set_yypushptag (lex_conf_string ()); return; } "define:YYLESSTHAN" { opts.set_yylessthan (lex_conf_string ()); return; } "tags:default" { opts.set_tags_default (lex_conf_string ()); return; } diff --git a/re2c/src/code/emit_action.cc b/re2c/src/code/emit_action.cc index 057c5508..08c6ddd0 100644 --- a/re2c/src/code/emit_action.cc +++ b/re2c/src/code/emit_action.cc @@ -311,40 +311,45 @@ void gen_settags(code_lines_t &code, const DFA &dfa, tcid_t tcid, const opt_t *o return; } - // copy commands + std::string s1 = "", s2 = ""; for (const tcmd_t *p = cmd; p; p = p->next) { - const tagver_t l = p->lhs, r = p->rhs; - if (!tcmd_t::iscopy(r)) continue; - - const std::string - le = vartag_expr(l, prefix, expression), - re = vartag_expr(r, prefix, expression), - s = generic - ? opts->yycopytag + " (" + le + ", " + re + ");\n" - : le + " = " + re + ";\n"; - code.push_back(s); - } + const tagver_t l = p->lhs, r = p->rhs, h = p->pred; + + // copy command + if (tcmd_t::iscopy(r)) { + const std::string + le = vartag_expr(l, prefix, expression), + re = vartag_expr(r, prefix, expression), + s = generic + ? opts->yycopytag + " (" + le + ", " + re + ");\n" + : le + " = " + re + ";\n"; + code.push_back(s); - // save commands - if (generic) { - for (const tcmd_t *p = cmd; p; p = p->next) { - const tagver_t l = p->lhs, r = p->rhs; - if (tcmd_t::iscopy(r)) continue; + // save command; history + } else if (h != TAGVER_ZERO) { + const std::string + le = vartag_expr(l, prefix, expression), + he = vartag_expr(h, prefix, expression); + if (l != h) { + const std::string s = opts->yycopytag + " (" + le + ", " + he + ");\n"; + code.push_back(s); + } + const std::string s = r == TAGVER_BOTTOM + ? opts->yypushntag + " (" + le + ");\n" + : opts->yypushptag + " (" + le + ");\n"; + code.push_back(s); + // save command; no history; generic API + } else if (generic) { const std::string v = vartag_expr(l, prefix, expression), s = r == TAGVER_BOTTOM ? opts->yycopytag + " (" + v + ", " + opts->tags_default + ");\n" : opts->yybackuptag + " (" + v + ");\n"; code.push_back(s); - } - } else if (cmd) { - std::string s1 = "", s2 = ""; - - for (const tcmd_t *p = cmd; p; p = p->next) { - const tagver_t l = p->lhs, r = p->rhs; - if (tcmd_t::iscopy(r)) continue; + // save command; no history; default API + } else { const std::string v = vartag_expr(l, prefix, expression); if (r == TAGVER_BOTTOM) { s1 += v + " = "; @@ -352,14 +357,14 @@ void gen_settags(code_lines_t &code, const DFA &dfa, tcid_t tcid, const opt_t *o s2 += v + " = "; } } - if (!s1.empty()) { - s1 += opts->tags_default + ";\n"; - code.push_back(s1); - } - if (!s2.empty()) { - s2 += opts->yycursor + ";\n"; - code.push_back(s2); - } + } + if (!s1.empty()) { + s1 += opts->tags_default + ";\n"; + code.push_back(s1); + } + if (!s2.empty()) { + s2 += opts->yycursor + ";\n"; + code.push_back(s2); } } diff --git a/re2c/src/conf/opt.cc b/re2c/src/conf/opt.cc index 97c79a93..2297791c 100644 --- a/re2c/src/conf/opt.cc +++ b/re2c/src/conf/opt.cc @@ -78,6 +78,8 @@ void mutopt_t::fix(const conopt_t *globopts) yyrestorectx = Opt::baseopt.yyrestorectx; yyrestoretag = Opt::baseopt.yyrestoretag; yycopytag = Opt::baseopt.yycopytag; + yypushntag = Opt::baseopt.yypushntag; + yypushptag = Opt::baseopt.yypushptag; yylessthan = Opt::baseopt.yylessthan; dFlag = Opt::baseopt.dFlag; yydebug = Opt::baseopt.yydebug; @@ -169,6 +171,8 @@ void mutopt_t::fix(const conopt_t *globopts) yyrestorectx = Opt::baseopt.yyrestorectx; yyrestoretag = Opt::baseopt.yyrestoretag; yycopytag = Opt::baseopt.yycopytag; + yypushntag = Opt::baseopt.yypushntag; + yypushptag = Opt::baseopt.yypushptag; yylessthan = Opt::baseopt.yylessthan; } if (!dFlag) @@ -269,6 +273,8 @@ void Opt::reset_mapCodeName () set_yyrestorectx(Opt::baseopt.yyrestorectx); set_yyrestoretag(Opt::baseopt.yyrestoretag); set_yycopytag(Opt::baseopt.yycopytag); + set_yypushntag(Opt::baseopt.yypushntag); + set_yypushptag(Opt::baseopt.yypushptag); set_yyskip(Opt::baseopt.yyskip); set_yyfilllabel(Opt::baseopt.yyfilllabel); set_yynext(Opt::baseopt.yynext); diff --git a/re2c/src/conf/opt.h b/re2c/src/conf/opt.h index 80d520ef..6a7afec9 100644 --- a/re2c/src/conf/opt.h +++ b/re2c/src/conf/opt.h @@ -119,6 +119,8 @@ enum target_t MUTOPT (std::string, yyrestorectx, "YYRESTORECTX") \ MUTOPT (std::string, yyrestoretag, "YYRESTORETAG") \ MUTOPT (std::string, yycopytag, "YYCOPYTAG") \ + MUTOPT (std::string, yypushntag, "YYPUSHNTAG") \ + MUTOPT (std::string, yypushptag, "YYPUSHPTAG") \ MUTOPT (std::string, yylessthan, "YYLESSTHAN") \ /* #line directives */ \ MUTOPT (bool, iFlag, false) \ -- 2.40.0