diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2016-11-21 16:19:38 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2016-11-21 16:19:40 +0900 |
commit | 14bca63037e53bf0aa56649717f4b21554e78670 (patch) | |
tree | a2d491cc9c5f174791426dfe7efb574b0314d508 /bootstrap | |
parent | 918b647f9f238513a420f378f3d6167d769c60ff (diff) | |
download | re2c-14bca63037e53bf0aa56649717f4b21554e78670.tar.gz re2c-14bca63037e53bf0aa56649717f4b21554e78670.tar.bz2 re2c-14bca63037e53bf0aa56649717f4b21554e78670.zip |
Imported Upstream version 0.16upstream/0.16
Change-Id: Ie82f9f945b5a16886ee94905484db55778a2fdaf
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'bootstrap')
-rw-r--r-- | bootstrap/doc/re2c.1 | 75 | ||||
-rw-r--r-- | bootstrap/src/conf/parse_opts.cc | 2562 | ||||
-rw-r--r-- | bootstrap/src/parse/lex.cc | 2833 | ||||
-rw-r--r-- | bootstrap/src/parse/lex_conf.cc | 2250 | ||||
-rw-r--r-- | bootstrap/src/parse/parser.cc | 45 |
5 files changed, 4630 insertions, 3135 deletions
diff --git a/bootstrap/doc/re2c.1 b/bootstrap/doc/re2c.1 index fa278933..b97bab18 100644 --- a/bootstrap/doc/re2c.1 +++ b/bootstrap/doc/re2c.1 @@ -94,7 +94,7 @@ inplace configuration \fBcgoto:threshold\fP\&. .TP .B \fB\-i \-\-no\-debug\-info\fP Do not output \fB#line\fP information. This is -usefull when you want use a CMS tool with the \fBre2c\fP output which you +useful when you want use a CMS tool with the \fBre2c\fP output which you might want if you do not require your users to have \fBre2c\fP themselves when building from your source. .TP @@ -195,6 +195,11 @@ compatibility reason), \fBmatch\-none\fP (fail to match on any input), construct empty class, e.g: [], [^\ex00\-\exFF], [\ex00\-\exFF][\ex00\-\exFF]. .TP +.B \fB\-\-dfa\-minimization <table | moore>\fP +Internal algorithm used by re2c to minimize DFA (defaults to \fBmoore\fP). +Both table filling and Moore\(aqs algorithms should produce identical DFA (up to states relabelling). +Table filling algorithm is much simpler and slower; it serves as a reference implementation. +.TP .B \fB\-1 \-\-single\-pass\fP Deprecated and does nothing (single pass is by default now). .TP @@ -288,7 +293,7 @@ will point to the first character of the following token. .TP .B \fBYYDEBUG (state, current)\fP This is only needed if the \fB\-d\fP flag was -specified. It allows to easily debug the generated parser by calling a +specified. It allows one to easily debug the generated parser by calling a user defined function for every state. The function should have the following signature: \fBvoid YYDEBUG (int state, char current)\fP\&. The first parameter receives the state or \-1 and the second parameter receives the @@ -387,7 +392,7 @@ while \fB[^]\fP matches any valid code point (not code unit) and can consume mul code units. In fact, when variable\-length encoding is used, \fB*\fP is the only possible way to match invalid input character (see \fBENCODINGS\fP for details). .sp -If \fB\-c\fP is active then each regular expression is preceeded by a list +If \fB\-c\fP is active then each regular expression is preceded by a list of comma separated condition names. Besides normal naming rules there are two special cases: \fB<*>\fP (such rules are merged to all conditions) and \fB<>\fP (such the rule cannot have an associated regular expression, @@ -478,17 +483,17 @@ If \fB\-F\fP is active, then named definitions are also of the form: .INDENT 0.0 .TP .B \fBre2c:condprefix = yyc;\fP -Allows to specify the prefix used for +Allows one to specify the prefix used for condition labels. That is this text is prepended to any condition label in the generated output file. .TP .B \fBre2c:condenumprefix = yyc;\fP -Allows to specify the prefix used for +Allows one to specify the prefix used for condition values. That is this text is prepended to any condition enum value in the generated output file. .TP .B \fBre2c:cond:divider = "/* *********************************** */";\fP -Allows to customize the devider for condition blocks. You can use \fB@@\fP +Allows one to customize the devider for condition blocks. You can use \fB@@\fP to put the name of the condition or customize the placeholder using \fBre2c:cond:divider@cond\fP\&. .TP @@ -497,7 +502,7 @@ Specifies the placeholder that will be replaced with the condition name in \fBre2c:cond:divider\fP\&. .TP .B \fBre2c:cond:goto = "goto @@;";\fP -Allows to customize the condition goto statements used with \fB:=>\fP style rules. You can use \fB@@\fP +Allows one to customize the condition goto statements used with \fB:=>\fP style rules. You can use \fB@@\fP to put the name of the condition or ustomize the placeholder using \fBre2c:cond:goto@cond\fP\&. You can also change this to \fBcontinue;\fP, which would allow you to continue with the next loop cycle including any code @@ -507,14 +512,14 @@ between loop start and re2c block. Spcifies the placeholder that will be replaced with the condition label in \fBre2c:cond:goto\fP\&. .TP .B \fBre2c:indent:top = 0;\fP -Specifies the minimum number of indendation to +Specifies the minimum number of indentation to use. Requires a numeric value greater than or equal zero. .TP .B \fBre2c:indent:string = "\et";\fP -Specifies the string to use for indendation. Requires a string that should +Specifies the string to use for indentation. Requires a string that should contain only whitespace unless you need this for external tools. The easiest way to specify spaces is to enclude them in single or double quotes. -If you do not want any indendation at all you can simply set this to "". +If you do not want any indentation at all you can simply set this to "". .TP .B \fBre2c:yych:conversion = 0;\fP When this setting is non zero, then \fBre2c\fP automatically generates @@ -534,7 +539,7 @@ introduce sever security issues to you programs. .TP .B \fBre2c:yyfill:check = 1;\fP This can be set 0 to suppress output of the -pre condition using \fBYYCURSOR\fP and \fBYYLIMIT\fP which becomes usefull when +pre condition using \fBYYCURSOR\fP and \fBYYLIMIT\fP which becomes useful when \fBYYLIMIT + YYMAXFILL\fP is always accessible. .TP .B \fBre2c:define:YYFILL = "YYFILL";\fP @@ -546,7 +551,7 @@ than a call, set \fBre2c:define:YYFILL:naked\fP to non\-zero and use body. .TP .B \fBre2c:define:YYFILL@len = "@@";\fP -Any occurence of this text +Any occurrence of this text inside of \fBYYFILL\fP will be replaced with the actual argument. .TP .B \fBre2c:yyfill:parameter = 1;\fP @@ -571,7 +576,7 @@ being used or not. This setting is being reset to 0 after a start label has been generated. .TP .B \fBre2c:labelprefix = "yy";\fP -Allows to change the prefix of numbered +Allows one to change the prefix of numbered labels. The default is \fByy\fP and can be set any string that is a valid label. .TP @@ -598,7 +603,7 @@ divides the threshold by 2. .TP .B \fBre2c:yych:conversion = 0;\fP When the input uses signed characters and -\fB\-s\fP or \fB\-b\fP switches are in effect re2c allows to automatically convert +\fB\-s\fP or \fB\-b\fP switches are in effect re2c allows one to automatically convert to the unsigned character type that is then necessary for its internal single character. When this setting is zero or an empty string the conversion is disabled. Using a non zero number the conversion is taken @@ -613,22 +618,22 @@ buffer and you are using above mentioned switches you can set Enumeration used for condition support with \fB\-c\fP mode. .TP .B \fBre2c:define:YYCTXMARKER = "YYCTXMARKER";\fP -Allows to overwrite the +Allows one to overwrite the define \fBYYCTXMARKER\fP and thus avoiding it by setting the value to the actual code needed. .TP .B \fBre2c:define:YYCTYPE = "YYCTYPE";\fP -Allows to overwrite the define +Allows one to overwrite the define \fBYYCTYPE\fP and thus avoiding it by setting the value to the actual code needed. .TP .B \fBre2c:define:YYCURSOR = "YYCURSOR";\fP -Allows to overwrite the define +Allows one to overwrite the define \fBYYCURSOR\fP and thus avoiding it by setting the value to the actual code needed. .TP .B \fBre2c:define:YYDEBUG = "YYDEBUG";\fP -Allows to overwrite the define +Allows one to overwrite the define \fBYYDEBUG\fP and thus avoiding it by setting the value to the actual code needed. .TP @@ -653,7 +658,7 @@ braces and semicolon after \fBYYSETCONDITION\fP\&. If you need to make \fBYYSETCONDITION\fP body. .TP .B \fBre2c:define:YYSETCONDITION@cond = "@@";\fP -Any occurence of this +Any occurrence of this text inside of \fBYYSETCONDITION\fP will be replaced with the actual argument. .TP @@ -684,7 +689,7 @@ arbitrary statement rather than a call, set \fBYYSETSTATE\fP body. .TP .B \fBre2c:define:YYSETSTATE@state = "@@";\fP -Any occurence of this text +Any occurrence of this text inside of \fBYYSETSTATE\fP will be replaced with the actual argument. .TP .B \fBre2c:define:YYSETSTATE:naked = 0;\fP @@ -693,29 +698,29 @@ semicolon after \fBYYSETSTATE\fP\&. If zero, both agrument and semicolon are omitted. If non\-zero, both argument and semicolon are generated. .TP .B \fBre2c:define:YYLIMIT = "YYLIMIT";\fP -Allows to overwrite the define +Allows one to overwrite the define \fBYYLIMIT\fP and thus avoiding it by setting the value to the actual code needed. .TP .B \fBre2c:define:YYMARKER = "YYMARKER";\fP -Allows to overwrite the define +Allows one to overwrite the define \fBYYMARKER\fP and thus avoiding it by setting the value to the actual code needed. .TP .B \fBre2c:label:yyFillLabel = "yyFillLabel";\fP -Allows to overwrite the name of the label \fByyFillLabel\fP\&. +Allows one to overwrite the name of the label \fByyFillLabel\fP\&. .TP .B \fBre2c:label:yyNext = "yyNext";\fP -Allows to overwrite the name of the label \fByyNext\fP\&. +Allows one to overwrite the name of the label \fByyNext\fP\&. .TP .B \fBre2c:variable:yyaccept = yyaccept;\fP -Allows to overwrite the name of the variable \fByyaccept\fP\&. +Allows one to overwrite the name of the variable \fByyaccept\fP\&. .TP .B \fBre2c:variable:yybm = "yybm";\fP -Allows to overwrite the name of the variable \fByybm\fP\&. +Allows one to overwrite the name of the variable \fByybm\fP\&. .TP .B \fBre2c:variable:yych = "yych";\fP -Allows to overwrite the name of the variable \fByych\fP\&. +Allows one to overwrite the name of the variable \fByych\fP\&. .TP .B \fBre2c:variable:yyctable = "yyctable";\fP When both \fB\-c\fP and \fB\-g\fP are active then \fBre2c\fP uses this variable to generate a static jump table @@ -725,7 +730,7 @@ for \fBYYGETCONDITION\fP\&. Deprecated. .TP .B \fBre2c:variable:yytarget = "yytarget";\fP -Allows to overwrite the name of the variable \fByytarget\fP\&. +Allows one to overwrite the name of the variable \fByytarget\fP\&. .UNINDENT .SS REGULAR EXPRESSIONS .INDENT 0.0 @@ -751,10 +756,10 @@ match any \fBr\fP which isn\(aqt \fBs\fP\&. \fBr\fP and \fBs\fP must be regular which can be expressed as character classes. .TP .B \fBr*\fP -zero or more occurences of \fBr\fP\&. +zero or more occurrences of \fBr\fP\&. .TP .B \fBr+\fP -one or more occurences of \fBr\fP\&. +one or more occurrences of \fBr\fP\&. .TP .B \fBr?\fP optional \fBr\fP\&. @@ -868,7 +873,7 @@ precondition. The precondition is given by the interface define There are two special rule types. First, the rules of the condition \fB<*>\fP are merged to all conditions (note that they have lower priority than other rules of that condition). And second the empty condition list -allows to provide a code block that does not have a scanner part. +allows one to provide a code block that does not have a scanner part. Meaning it does not allow any regular expression. The condition value referring to this special block is always the one with the enumeration value 0. This way the code of this special rule can be used to @@ -876,11 +881,11 @@ initialize a scanner. It is in no way necessary to have these rules: but sometimes it is helpful to have a dedicated uninitialized condition state. .sp -Non empty rules allow to specify the new condition, which makes them +Non empty rules allow one to specify the new condition, which makes them transition rules. Besides generating calls for the define \fBYYSETCONDTITION\fP no other special code is generated. .sp -There is another kind of special rules that allow to prepend code to any +There is another kind of special rules that allow one to prepend code to any code block of all rules of a certain set of conditions or to all code blocks to all rules. This can be helpful when some operation is common among rules. For instance this can be used to store the length of the @@ -960,7 +965,7 @@ rule \fB*\fP\&. Note, that full range rule \fB[^]\fP won\(aqt catch invalid code \fBre2c\fP usually operates on input using pointer\-like primitives \fBYYCURSOR\fP, \fBYYMARKER\fP, \fBYYCTXMARKER\fP and \fBYYLIMIT\fP\&. .sp -Generic input API (enabled with \fB\-\-input custom\fP switch) allows to +Generic input API (enabled with \fB\-\-input custom\fP switch) allows one to customize input operations. In this mode, \fBre2c\fP will express all operations on input in terms of the following primitives: .INDENT 0.0 @@ -1043,6 +1048,6 @@ Emmanuel Mogenet \fI\%mgix@mgix.com\fP Ulya Trofimovich \fI\%skvadrik@gmail.com\fP .SH VERSION INFORMATION .sp -This manpage describes \fBre2c\fP version 0.15.3, package date 02 Dec 2015. +This manpage describes \fBre2c\fP version 0.16, package date 21 Jan 2016. .\" Generated by docutils manpage writer. . diff --git a/bootstrap/src/conf/parse_opts.cc b/bootstrap/src/conf/parse_opts.cc index a453a10d..9eb07989 100644 --- a/bootstrap/src/conf/parse_opts.cc +++ b/bootstrap/src/conf/parse_opts.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 0.15.3 on Wed Dec 2 12:10:03 2015 */ +/* Generated by re2c 0.16 on Thu Jan 21 10:47:47 2016 */ #line 1 "../src/conf/parse_opts.re" #include "src/codegen/input_api.h" #include "src/conf/msg.h" @@ -87,44 +87,57 @@ yy3: yy4: yyaccept = 0; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - goto yy39; + goto yy10; yy5: ++YYCURSOR; if ((yych = (YYCTYPE)*YYCURSOR) <= '-') { if (yych <= 0x00) goto yy11; - if (yych >= '-') goto yy9; + if (yych >= '-') goto yy13; } else { - if (yych == 'W') goto yy7; + if (yych == 'W') goto yy15; } #line 63 "../src/conf/parse_opts.re" { goto opt_short; } #line 102 "src/conf/parse_opts.cc" yy7: - yyaccept = 1; - yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych <= 'e') { - if (yych <= 0x00) goto yy15; - if (yych >= 'e') goto yy17; - } else { - if (yych == 'n') goto yy19; - } -yy8: -#line 68 "../src/conf/parse_opts.re" - { option = Warn::W; goto opt_warn; } -#line 115 "src/conf/parse_opts.cc" + ++YYCURSOR; +#line 61 "../src/conf/parse_opts.re" + { if (!opts.source (*argv)) return EXIT_FAIL; goto opt; } +#line 107 "src/conf/parse_opts.cc" yy9: ++YYCURSOR; - if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy13; -#line 64 "../src/conf/parse_opts.re" - { goto opt_long; } -#line 121 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*YYCURSOR; +yy10: + if (yybm[0+yych] & 128) { + goto yy9; + } + goto yy7; yy11: ++YYCURSOR; #line 60 "../src/conf/parse_opts.re" { if (!opts.source ("<stdin>")) return EXIT_FAIL; goto opt; } -#line 126 "src/conf/parse_opts.cc" +#line 120 "src/conf/parse_opts.cc" yy13: ++YYCURSOR; + if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy17; +#line 64 "../src/conf/parse_opts.re" + { goto opt_long; } +#line 126 "src/conf/parse_opts.cc" +yy15: + yyaccept = 1; + yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); + if (yych <= 'e') { + if (yych <= 0x00) goto yy19; + if (yych >= 'e') goto yy21; + } else { + if (yych == 'n') goto yy23; + } +yy16: +#line 68 "../src/conf/parse_opts.re" + { option = Warn::W; goto opt_warn; } +#line 139 "src/conf/parse_opts.cc" +yy17: + ++YYCURSOR; #line 46 "../src/conf/parse_opts.re" { // all remaining arguments are non-options @@ -139,90 +152,95 @@ yy13: } goto end; } -#line 143 "src/conf/parse_opts.cc" -yy15: +#line 156 "src/conf/parse_opts.cc" +yy19: ++YYCURSOR; #line 66 "../src/conf/parse_opts.re" { warn.set_all (); goto opt; } -#line 148 "src/conf/parse_opts.cc" -yy17: +#line 161 "src/conf/parse_opts.cc" +yy21: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy30; -yy18: + if (yych == 'r') goto yy24; +yy22: YYCURSOR = YYMARKER; if (yyaccept <= 1) { if (yyaccept == 0) { goto yy3; } else { - goto yy8; + goto yy16; } } else { - goto yy22; + goto yy28; } -yy19: +yy23: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'o') goto yy25; + goto yy22; +yy24: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'r') goto yy26; + goto yy22; +yy25: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy18; + if (yych == '-') goto yy27; + goto yy22; +yy26: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy18; + if (yych == 'o') goto yy29; + goto yy22; +yy27: yyaccept = 2; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'e') goto yy23; -yy22: + if (yych == 'e') goto yy30; +yy28: #line 69 "../src/conf/parse_opts.re" { option = Warn::WNO; goto opt_warn; } -#line 174 "src/conf/parse_opts.cc" -yy23: - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy18; +#line 199 "src/conf/parse_opts.cc" +yy29: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy18; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy18; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy18; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy18; - ++YYCURSOR; -#line 71 "../src/conf/parse_opts.re" - { option = Warn::WNOERROR; goto opt_warn; } -#line 189 "src/conf/parse_opts.cc" + if (yych == 'r') goto yy31; + goto yy22; yy30: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy18; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy18; + if (yych == 'r') goto yy32; + goto yy22; +yy31: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy18; + if (yych <= 0x00) goto yy33; + if (yych == '-') goto yy35; + goto yy22; +yy32: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy36; - if (yych != '-') goto yy18; - ++YYCURSOR; -#line 70 "../src/conf/parse_opts.re" - { option = Warn::WERROR; goto opt_warn; } -#line 203 "src/conf/parse_opts.cc" -yy36: + if (yych == 'r') goto yy37; + goto yy22; +yy33: ++YYCURSOR; #line 67 "../src/conf/parse_opts.re" { warn.set_all_error (); goto opt; } -#line 208 "src/conf/parse_opts.cc" -yy38: +#line 221 "src/conf/parse_opts.cc" +yy35: ++YYCURSOR; - yych = (YYCTYPE)*YYCURSOR; -yy39: - if (yybm[0+yych] & 128) { - goto yy38; - } +#line 70 "../src/conf/parse_opts.re" + { option = Warn::WERROR; goto opt_warn; } +#line 226 "src/conf/parse_opts.cc" +yy37: + yych = (YYCTYPE)*++YYCURSOR; + if (yych != 'o') goto yy22; + yych = (YYCTYPE)*++YYCURSOR; + if (yych != 'r') goto yy22; + yych = (YYCTYPE)*++YYCURSOR; + if (yych != '-') goto yy22; ++YYCURSOR; -#line 61 "../src/conf/parse_opts.re" - { if (!opts.source (*argv)) return EXIT_FAIL; goto opt; } -#line 219 "src/conf/parse_opts.cc" +#line 71 "../src/conf/parse_opts.re" + { option = Warn::WNOERROR; goto opt_warn; } +#line 237 "src/conf/parse_opts.cc" } #line 72 "../src/conf/parse_opts.re" opt_warn: -#line 226 "src/conf/parse_opts.cc" +#line 244 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; @@ -242,301 +260,519 @@ yy45: error ("bad warning: %s", *argv); return EXIT_FAIL; } -#line 246 "src/conf/parse_opts.cc" +#line 264 "src/conf/parse_opts.cc" yy46: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'o') goto yy162; + if (yych == 'o') goto yy51; goto yy45; yy47: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'm') goto yy140; + if (yych == 'm') goto yy53; goto yy45; yy48: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'a') goto yy121; + if (yych == 'a') goto yy54; goto yy45; yy49: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'w') goto yy107; + if (yych == 'w') goto yy55; goto yy45; yy50: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'n') goto yy53; - if (yych != 's') goto yy45; + if (yych == 'n') goto yy56; + if (yych == 's') goto yy57; + goto yy45; +yy51: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy93; + if (yych == 'n') goto yy58; yy52: YYCURSOR = YYMARKER; goto yy45; yy53: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy54; - if (yych == 'r') goto yy55; + if (yych == 'p') goto yy59; goto yy52; yy54: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy72; + if (yych == 't') goto yy60; goto yy52; yy55: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy52; + if (yych == 'a') goto yy61; + goto yy52; +yy56: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy52; + if (yych == 'd') goto yy62; + if (yych == 'r') goto yy63; + goto yy52; +yy57: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy52; + if (yych == 'e') goto yy64; + goto yy52; +yy58: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'h') goto yy52; + if (yych == 'd') goto yy65; + goto yy52; +yy59: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy52; + if (yych == 't') goto yy66; + goto yy52; +yy60: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'b') goto yy52; + if (yych == 'c') goto yy67; + goto yy52; +yy61: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy52; + if (yych == 'p') goto yy68; + goto yy52; +yy62: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy52; + if (yych == 'e') goto yy69; + goto yy52; +yy63: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy52; + if (yych == 'e') goto yy70; + goto yy52; +yy64: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy52; + if (yych == 'l') goto yy71; + goto yy52; +yy65: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy52; + if (yych == 'i') goto yy72; + goto yy52; +yy66: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy52; + if (yych == 'y') goto yy73; + goto yy52; +yy67: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy52; + if (yych == 'h') goto yy74; + goto yy52; +yy68: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy52; + if (yych == 'p') goto yy75; + goto yy52; +yy69: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy52; - ++YYCURSOR; -#line 86 "../src/conf/parse_opts.re" - { warn.set (Warn::UNREACHABLE_RULES, option); goto opt; } -#line 315 "src/conf/parse_opts.cc" -yy72: + if (yych == 'f') goto yy76; + goto yy52; +yy70: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'f') goto yy52; + if (yych == 'a') goto yy77; + goto yy52; +yy71: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy52; + if (yych == 'e') goto yy78; + goto yy52; +yy72: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy52; + if (yych == 't') goto yy79; + goto yy52; +yy73: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy52; + if (yych == '-') goto yy80; + goto yy52; +yy74: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy52; + if (yych == '-') goto yy81; + goto yy52; +yy75: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy52; + if (yych == 'e') goto yy82; + goto yy52; +yy76: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy52; + if (yych == 'i') goto yy83; + goto yy52; +yy77: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy52; + if (yych == 'c') goto yy84; + goto yy52; +yy78: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy52; + if (yych == 's') goto yy85; + goto yy52; +yy79: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy52; + if (yych == 'i') goto yy86; + goto yy52; +yy80: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy52; + if (yych == 'c') goto yy87; + goto yy52; +yy81: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy52; + if (yych == 'e') goto yy88; + goto yy52; +yy82: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy52; + if (yych == 'd') goto yy89; + goto yy52; +yy83: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy52; + if (yych == 'n') goto yy90; + goto yy52; +yy84: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'f') goto yy52; + if (yych == 'h') goto yy91; + goto yy52; +yy85: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy52; + if (yych == 's') goto yy92; + goto yy52; +yy86: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy52; + if (yych == 'o') goto yy93; + goto yy52; +yy87: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'w') goto yy52; + if (yych == 'h') goto yy94; + goto yy52; +yy88: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy52; - ++YYCURSOR; -#line 85 "../src/conf/parse_opts.re" - { warn.set (Warn::UNDEFINED_CONTROL_FLOW, option); goto opt; } -#line 358 "src/conf/parse_opts.cc" -yy93: + if (yych == 'm') goto yy95; + goto yy52; +yy89: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy52; + if (yych == '-') goto yy96; + goto yy52; +yy90: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy52; + if (yych == 'e') goto yy97; + goto yy52; +yy91: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy52; + if (yych == 'a') goto yy98; + goto yy52; +yy92: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy52; + if (yych == '-') goto yy99; + goto yy52; +yy93: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy52; + if (yych == 'n') goto yy100; + goto yy52; +yy94: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy52; + if (yych == 'a') goto yy101; + goto yy52; +yy95: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy52; + if (yych == 'p') goto yy102; + goto yy52; +yy96: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy52; + if (yych == 'r') goto yy103; + goto yy52; +yy97: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy52; + if (yych == 'd') goto yy104; + goto yy52; +yy98: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy52; + if (yych == 'b') goto yy105; + goto yy52; +yy99: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy52; + if (yych == 'e') goto yy106; + goto yy52; +yy100: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy52; - ++YYCURSOR; -#line 87 "../src/conf/parse_opts.re" - { warn.set (Warn::USELESS_ESCAPE, option); goto opt; } -#line 387 "src/conf/parse_opts.cc" -yy107: + if (yych == '-') goto yy107; + goto yy52; +yy101: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy52; + if (yych == 'r') goto yy108; + goto yy52; +yy102: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy52; + if (yych == 't') goto yy109; + goto yy52; +yy103: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy52; + if (yych == 'a') goto yy110; + goto yy52; +yy104: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy52; + if (yych == '-') goto yy111; + goto yy52; +yy105: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy52; + if (yych == 'l') goto yy112; + goto yy52; +yy106: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy52; + if (yych == 's') goto yy113; + goto yy52; +yy107: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy52; + if (yych == 'o') goto yy114; + goto yy52; +yy108: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy52; + if (yych == 'a') goto yy115; + goto yy52; +yy109: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy52; + if (yych == 'y') goto yy116; + goto yy52; +yy110: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'g') goto yy52; + if (yych == 'n') goto yy117; + goto yy52; +yy111: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy52; + if (yych == 'c') goto yy118; + goto yy52; +yy112: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy52; - ++YYCURSOR; -#line 84 "../src/conf/parse_opts.re" - { warn.set (Warn::SWAPPED_RANGE, option); goto opt; } -#line 416 "src/conf/parse_opts.cc" -yy121: + if (yych == 'e') goto yy119; + goto yy52; +yy113: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy52; + if (yych == 'c') goto yy120; + goto yy52; +yy114: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy52; + if (yych == 'r') goto yy121; + goto yy52; +yy115: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'h') goto yy52; + if (yych == 'c') goto yy122; + goto yy52; +yy116: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy52; + if (yych == '-') goto yy123; + goto yy52; +yy117: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy52; + if (yych == 'g') goto yy124; + goto yy52; +yy118: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'm') goto yy52; + if (yych == 'o') goto yy125; + goto yy52; +yy119: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy52; + if (yych == '-') goto yy126; + goto yy52; +yy120: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy52; + if (yych == 'a') goto yy127; + goto yy52; +yy121: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'y') goto yy52; + if (yych == 'd') goto yy128; + goto yy52; +yy122: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy52; + if (yych == 't') goto yy129; + goto yy52; +yy123: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy52; + if (yych == 's') goto yy130; + goto yy52; +yy124: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy52; + if (yych == 'e') goto yy131; + goto yy52; +yy125: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy52; + if (yych == 'n') goto yy132; + goto yy52; +yy126: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy52; + if (yych == 'r') goto yy133; + goto yy52; +yy127: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy52; + if (yych == 'p') goto yy134; + goto yy52; +yy128: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'g') goto yy52; + if (yych == 'e') goto yy135; + goto yy52; +yy129: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy52; - ++YYCURSOR; -#line 83 "../src/conf/parse_opts.re" - { warn.set (Warn::MATCH_EMPTY_STRING, option); goto opt; } -#line 455 "src/conf/parse_opts.cc" -yy140: + if (yych == 'e') goto yy136; + goto yy52; +yy130: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy52; + if (yych == 't') goto yy137; + goto yy52; +yy131: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy52; + if (yych <= 0x00) goto yy138; + goto yy52; +yy132: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'y') goto yy52; + if (yych == 't') goto yy140; + goto yy52; +yy133: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy52; + if (yych == 'u') goto yy141; + goto yy52; +yy134: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy52; + if (yych == 'e') goto yy142; + goto yy52; +yy135: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'h') goto yy52; + if (yych == 'r') goto yy143; + goto yy52; +yy136: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy52; + if (yych == 'r') goto yy144; + goto yy52; +yy137: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy52; + if (yych == 'r') goto yy145; + goto yy52; +yy138: + ++YYCURSOR; +#line 84 "../src/conf/parse_opts.re" + { warn.set (Warn::SWAPPED_RANGE, option); goto opt; } +#line 637 "src/conf/parse_opts.cc" +yy140: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy52; + if (yych == 'r') goto yy146; + goto yy52; +yy141: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy52; + if (yych == 'l') goto yy147; + goto yy52; +yy142: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy52; + if (yych <= 0x00) goto yy148; + goto yy52; +yy143: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy52; + if (yych <= 0x00) goto yy150; + goto yy52; +yy144: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy52; + if (yych == '-') goto yy152; + goto yy52; +yy145: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy52; + if (yych == 'i') goto yy153; + goto yy52; +yy146: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy52; + if (yych == 'o') goto yy154; + goto yy52; +yy147: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy52; + if (yych == 'e') goto yy155; + goto yy52; +yy148: + ++YYCURSOR; +#line 87 "../src/conf/parse_opts.re" + { warn.set (Warn::USELESS_ESCAPE, option); goto opt; } +#line 674 "src/conf/parse_opts.cc" +yy150: + ++YYCURSOR; +#line 81 "../src/conf/parse_opts.re" + { warn.set (Warn::CONDITION_ORDER, option); goto opt; } +#line 679 "src/conf/parse_opts.cc" +yy152: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy52; + if (yych == 'c') goto yy156; + goto yy52; +yy153: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy52; + if (yych == 'n') goto yy157; + goto yy52; +yy154: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy52; + if (yych == 'l') goto yy158; + goto yy52; +yy155: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy52; - ++YYCURSOR; -#line 82 "../src/conf/parse_opts.re" - { warn.set (Warn::EMPTY_CHARACTER_CLASS, option); goto opt; } -#line 500 "src/conf/parse_opts.cc" -yy162: + if (yych == 's') goto yy159; + goto yy52; +yy156: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy52; + if (yych == 'l') goto yy160; + goto yy52; +yy157: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy52; + if (yych == 'g') goto yy161; + goto yy52; +yy158: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy52; + if (yych == '-') goto yy162; + goto yy52; +yy159: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy52; + if (yych <= 0x00) goto yy163; + goto yy52; +yy160: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy52; + if (yych == 'a') goto yy165; + goto yy52; +yy161: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy52; + if (yych <= 0x00) goto yy166; + goto yy52; +yy162: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy52; + if (yych == 'f') goto yy168; + goto yy52; +yy163: + ++YYCURSOR; +#line 86 "../src/conf/parse_opts.re" + { warn.set (Warn::UNREACHABLE_RULES, option); goto opt; } +#line 728 "src/conf/parse_opts.cc" +yy165: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy52; + if (yych == 's') goto yy169; + goto yy52; +yy166: + ++YYCURSOR; +#line 83 "../src/conf/parse_opts.re" + { warn.set (Warn::MATCH_EMPTY_STRING, option); goto opt; } +#line 737 "src/conf/parse_opts.cc" +yy168: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy52; + if (yych == 'l') goto yy170; + goto yy52; +yy169: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy52; + if (yych == 's') goto yy171; + goto yy52; +yy170: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy52; + if (yych == 'o') goto yy172; + goto yy52; +yy171: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy52; + if (yych <= 0x00) goto yy173; + goto yy52; +yy172: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy52; + if (yych == 'w') goto yy175; + goto yy52; +yy173: + ++YYCURSOR; +#line 82 "../src/conf/parse_opts.re" + { warn.set (Warn::EMPTY_CHARACTER_CLASS, option); goto opt; } +#line 762 "src/conf/parse_opts.cc" +yy175: yych = (YYCTYPE)*++YYCURSOR; if (yych >= 0x01) goto yy52; ++YYCURSOR; -#line 81 "../src/conf/parse_opts.re" - { warn.set (Warn::CONDITION_ORDER, option); goto opt; } -#line 533 "src/conf/parse_opts.cc" +#line 85 "../src/conf/parse_opts.re" + { warn.set (Warn::UNDEFINED_CONTROL_FLOW, option); goto opt; } +#line 769 "src/conf/parse_opts.cc" } #line 88 "../src/conf/parse_opts.re" opt_short: -#line 540 "src/conf/parse_opts.cc" +#line 776 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; @@ -606,7 +842,7 @@ yy180: ++YYCURSOR; #line 97 "../src/conf/parse_opts.re" { goto opt; } -#line 610 "src/conf/parse_opts.cc" +#line 846 "src/conf/parse_opts.cc" yy182: ++YYCURSOR; #line 93 "../src/conf/parse_opts.re" @@ -614,136 +850,136 @@ yy182: error ("bad short option: %s", *argv); return EXIT_FAIL; } -#line 618 "src/conf/parse_opts.cc" +#line 854 "src/conf/parse_opts.cc" yy184: ++YYCURSOR; #line 121 "../src/conf/parse_opts.re" { goto opt_short; } -#line 623 "src/conf/parse_opts.cc" +#line 859 "src/conf/parse_opts.cc" yy186: ++YYCURSOR; #line 116 "../src/conf/parse_opts.re" { if (!opts.set_encoding (Enc::UTF8)) { error_encoding (); return EXIT_FAIL; } goto opt_short; } -#line 628 "src/conf/parse_opts.cc" +#line 864 "src/conf/parse_opts.cc" yy188: ++YYCURSOR; #line 98 "../src/conf/parse_opts.re" { usage (); return EXIT_OK; } -#line 633 "src/conf/parse_opts.cc" +#line 869 "src/conf/parse_opts.cc" yy190: ++YYCURSOR; #line 104 "../src/conf/parse_opts.re" { opts.set_target (opt_t::DOT); goto opt_short; } -#line 638 "src/conf/parse_opts.cc" +#line 874 "src/conf/parse_opts.cc" yy192: ++YYCURSOR; #line 106 "../src/conf/parse_opts.re" { opts.set_FFlag (true); goto opt_short; } -#line 643 "src/conf/parse_opts.cc" +#line 879 "src/conf/parse_opts.cc" yy194: ++YYCURSOR; #line 111 "../src/conf/parse_opts.re" { opts.set_target (opt_t::SKELETON); goto opt_short; } -#line 648 "src/conf/parse_opts.cc" +#line 884 "src/conf/parse_opts.cc" yy196: ++YYCURSOR; #line 100 "../src/conf/parse_opts.re" { vernum (); return EXIT_OK; } -#line 653 "src/conf/parse_opts.cc" +#line 889 "src/conf/parse_opts.cc" yy198: ++YYCURSOR; #line 101 "../src/conf/parse_opts.re" { opts.set_bFlag (true); goto opt_short; } -#line 658 "src/conf/parse_opts.cc" +#line 894 "src/conf/parse_opts.cc" yy200: ++YYCURSOR; #line 102 "../src/conf/parse_opts.re" { opts.set_cFlag (true); goto opt_short; } -#line 663 "src/conf/parse_opts.cc" +#line 899 "src/conf/parse_opts.cc" yy202: ++YYCURSOR; #line 103 "../src/conf/parse_opts.re" { opts.set_dFlag (true); goto opt_short; } -#line 668 "src/conf/parse_opts.cc" +#line 904 "src/conf/parse_opts.cc" yy204: ++YYCURSOR; #line 112 "../src/conf/parse_opts.re" { if (!opts.set_encoding (Enc::EBCDIC)) { error_encoding (); return EXIT_FAIL; } goto opt_short; } -#line 673 "src/conf/parse_opts.cc" +#line 909 "src/conf/parse_opts.cc" yy206: ++YYCURSOR; #line 105 "../src/conf/parse_opts.re" { opts.set_fFlag (true); goto opt_short; } -#line 678 "src/conf/parse_opts.cc" +#line 914 "src/conf/parse_opts.cc" yy208: ++YYCURSOR; #line 107 "../src/conf/parse_opts.re" { opts.set_gFlag (true); goto opt_short; } -#line 683 "src/conf/parse_opts.cc" +#line 919 "src/conf/parse_opts.cc" yy210: ++YYCURSOR; #line 108 "../src/conf/parse_opts.re" { opts.set_iFlag (true); goto opt_short; } -#line 688 "src/conf/parse_opts.cc" +#line 924 "src/conf/parse_opts.cc" yy212: ++YYCURSOR; - if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy230; + if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy228; #line 118 "../src/conf/parse_opts.re" { *argv = YYCURSOR; goto opt_output; } -#line 694 "src/conf/parse_opts.cc" +#line 930 "src/conf/parse_opts.cc" yy214: ++YYCURSOR; #line 109 "../src/conf/parse_opts.re" { opts.set_rFlag (true); goto opt_short; } -#line 699 "src/conf/parse_opts.cc" +#line 935 "src/conf/parse_opts.cc" yy216: ++YYCURSOR; #line 110 "../src/conf/parse_opts.re" { opts.set_sFlag (true); goto opt_short; } -#line 704 "src/conf/parse_opts.cc" +#line 940 "src/conf/parse_opts.cc" yy218: ++YYCURSOR; - if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy228; + if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy230; #line 120 "../src/conf/parse_opts.re" { *argv = YYCURSOR; goto opt_header; } -#line 710 "src/conf/parse_opts.cc" +#line 946 "src/conf/parse_opts.cc" yy220: ++YYCURSOR; #line 113 "../src/conf/parse_opts.re" { if (!opts.set_encoding (Enc::UTF32)) { error_encoding (); return EXIT_FAIL; } goto opt_short; } -#line 715 "src/conf/parse_opts.cc" +#line 951 "src/conf/parse_opts.cc" yy222: ++YYCURSOR; #line 99 "../src/conf/parse_opts.re" { version (); return EXIT_OK; } -#line 720 "src/conf/parse_opts.cc" +#line 956 "src/conf/parse_opts.cc" yy224: ++YYCURSOR; #line 114 "../src/conf/parse_opts.re" { if (!opts.set_encoding (Enc::UCS2)) { error_encoding (); return EXIT_FAIL; } goto opt_short; } -#line 725 "src/conf/parse_opts.cc" +#line 961 "src/conf/parse_opts.cc" yy226: ++YYCURSOR; #line 115 "../src/conf/parse_opts.re" { if (!opts.set_encoding (Enc::UTF16)) { error_encoding (); return EXIT_FAIL; } goto opt_short; } -#line 730 "src/conf/parse_opts.cc" +#line 966 "src/conf/parse_opts.cc" yy228: ++YYCURSOR; -#line 119 "../src/conf/parse_opts.re" - { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; } -#line 735 "src/conf/parse_opts.cc" -yy230: - ++YYCURSOR; #line 117 "../src/conf/parse_opts.re" { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; } -#line 740 "src/conf/parse_opts.cc" +#line 971 "src/conf/parse_opts.cc" +yy230: + ++YYCURSOR; +#line 119 "../src/conf/parse_opts.re" + { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; } +#line 976 "src/conf/parse_opts.cc" } #line 122 "../src/conf/parse_opts.re" opt_long: -#line 747 "src/conf/parse_opts.cc" +#line 983 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; @@ -773,767 +1009,1284 @@ yy235: error ("bad long option: %s", *argv); return EXIT_FAIL; } -#line 777 "src/conf/parse_opts.cc" +#line 1013 "src/conf/parse_opts.cc" yy236: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'i') goto yy541; + if (yych == 'i') goto yy251; goto yy235; yy237: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'a') goto yy501; - if (yych == 'o') goto yy502; + if (yych == 'a') goto yy253; + if (yych == 'o') goto yy254; goto yy235; yy238: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'e') goto yy488; + if (yych <= 'd') goto yy235; + if (yych <= 'e') goto yy255; + if (yych <= 'f') goto yy256; goto yy235; yy239: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych <= 'l') { - if (yych == 'c') goto yy450; + if (yych == 'c') goto yy257; goto yy235; } else { - if (yych <= 'm') goto yy448; - if (yych <= 'n') goto yy449; + if (yych <= 'm') goto yy258; + if (yych <= 'n') goto yy259; goto yy235; } yy240: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'l') goto yy436; + if (yych == 'l') goto yy260; goto yy235; yy241: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'e') goto yy431; + if (yych == 'e') goto yy261; goto yy235; yy242: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'n') goto yy425; + if (yych == 'n') goto yy262; goto yy235; yy243: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'e') goto yy375; - if (yych == 'o') goto yy374; + if (yych == 'e') goto yy263; + if (yych == 'o') goto yy264; goto yy235; yy244: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'u') goto yy367; + if (yych == 'u') goto yy265; goto yy235; yy245: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'e') goto yy358; + if (yych == 'e') goto yy266; goto yy235; yy246: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych <= 'j') { - if (yych == 'i') goto yy306; + if (yych == 'i') goto yy267; goto yy235; } else { - if (yych <= 'k') goto yy307; - if (yych == 't') goto yy308; + if (yych <= 'k') goto yy268; + if (yych == 't') goto yy269; goto yy235; } yy247: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'y') goto yy294; + if (yych == 'y') goto yy270; goto yy235; yy248: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'n') goto yy277; - if (yych == 't') goto yy276; + if (yych == 'n') goto yy271; + if (yych == 't') goto yy272; goto yy235; yy249: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'e') goto yy263; + if (yych == 'e') goto yy273; goto yy235; yy250: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych != 'i') goto yy235; + if (yych == 'i') goto yy274; + goto yy235; +yy251: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy253; + if (yych == 't') goto yy275; yy252: YYCURSOR = YYMARKER; goto yy235; yy253: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 's') goto yy276; + goto yy252; +yy254: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'm') goto yy277; + goto yy252; +yy255: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'b') goto yy278; + goto yy252; +yy256: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 'a') goto yy279; + goto yy252; +yy257: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy252; + if (yych == 'b') goto yy280; + goto yy252; +yy258: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'h') goto yy252; + if (yych == 'i') goto yy281; + if (yych == 'p') goto yy282; + goto yy252; +yy259: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy252; + if (yych == 'c') goto yy283; + goto yy252; +yy260: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy252; + if (yych == 'e') goto yy284; + goto yy252; +yy261: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych == 'l') goto yy285; + goto yy252; +yy262: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 151 "../src/conf/parse_opts.re" - { if (!opts.set_encoding (Enc::UCS2)) { error_encoding (); return EXIT_FAIL; } goto opt; } -#line 877 "src/conf/parse_opts.cc" + if (yych == 'p') goto yy286; + goto yy252; yy263: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy252; + if (yych == 's') goto yy287; + goto yy252; +yy264: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy265; - if (yych == 's') goto yy266; + if (yych == '-') goto yy288; goto yy252; yy265: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy272; + if (yych == 't') goto yy289; goto yy252; yy266: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych == 'u') goto yy290; + goto yy252; +yy267: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == 'n') goto yy291; + goto yy252; +yy268: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy252; + if (yych == 'e') goto yy292; + goto yy252; +yy269: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 132 "../src/conf/parse_opts.re" - { version (); return EXIT_OK; } -#line 901 "src/conf/parse_opts.cc" + if (yych == 'a') goto yy293; + if (yych == 'o') goto yy294; + goto yy252; +yy270: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'p') goto yy295; + goto yy252; +yy271: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'i') goto yy296; + goto yy252; yy272: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'm') goto yy252; + if (yych == 'f') goto yy297; + goto yy252; +yy273: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 133 "../src/conf/parse_opts.re" - { vernum (); return EXIT_OK; } -#line 910 "src/conf/parse_opts.cc" + if (yych == 'r') goto yy298; + goto yy252; +yy274: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'd') goto yy299; + goto yy252; +yy275: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '-') goto yy300; + goto yy252; yy276: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy285; + if (yych == 'e') goto yy301; goto yy252; yy277: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych == 'p') goto yy302; + goto yy252; +yy278: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy252; + if (yych == 'u') goto yy303; + goto yy252; +yy279: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == '-') goto yy304; + goto yy252; +yy280: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy252; + if (yych <= 0x00) goto yy305; + goto yy252; +yy281: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 't') goto yy307; + goto yy252; +yy282: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 150 "../src/conf/parse_opts.re" - { if (!opts.set_encoding (Enc::UTF32)) { error_encoding (); return EXIT_FAIL; } goto opt; } -#line 931 "src/conf/parse_opts.cc" + if (yych == 't') goto yy308; + goto yy252; +yy283: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'o') goto yy309; + goto yy252; +yy284: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'x') goto yy310; + goto yy252; yy285: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 'p') goto yy311; + goto yy252; +yy286: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '1') goto yy287; - if (yych == '8') goto yy288; + if (yych == 'u') goto yy312; goto yy252; yy287: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '6') goto yy291; + if (yych == 't') goto yy313; goto yy252; yy288: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 153 "../src/conf/parse_opts.re" - { if (!opts.set_encoding (Enc::UTF8)) { error_encoding (); return EXIT_FAIL; } goto opt; } -#line 949 "src/conf/parse_opts.cc" + if (yych <= 'f') { + if (yych == 'd') goto yy314; + goto yy252; + } else { + if (yych <= 'g') goto yy315; + if (yych == 'v') goto yy316; + goto yy252; + } +yy289: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'p') goto yy317; + goto yy252; +yy290: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy318; + goto yy252; yy291: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 152 "../src/conf/parse_opts.re" - { if (!opts.set_encoding (Enc::UTF16)) { error_encoding (); return EXIT_FAIL; } goto opt; } -#line 956 "src/conf/parse_opts.cc" + if (yych == 'g') goto yy319; + goto yy252; +yy292: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'l') goto yy320; + goto yy252; +yy293: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'r') goto yy321; + goto yy252; yy294: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy252; + if (yych == 'r') goto yy322; + goto yy252; +yy295: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'e') goto yy323; + goto yy252; +yy296: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 'c') goto yy324; + goto yy252; +yy297: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'h') goto yy252; + if (yych == '-') goto yy325; + goto yy252; +yy298: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'n') goto yy326; + if (yych == 's') goto yy327; + goto yy252; +yy299: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy252; + if (yych == 'e') goto yy328; + goto yy252; +yy300: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy252; + if (yych == 'v') goto yy329; + goto yy252; +yy301: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == '-') goto yy330; + goto yy252; +yy302: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy252; + if (yych == 'u') goto yy331; + goto yy252; +yy303: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 155 "../src/conf/parse_opts.re" - { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; } -#line 981 "src/conf/parse_opts.cc" -yy306: + if (yych == 'g') goto yy332; + goto yy252; +yy304: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy347; + if (yych == 'm') goto yy333; goto yy252; +yy305: + ++YYCURSOR; +#line 149 "../src/conf/parse_opts.re" + { if (!opts.set_encoding (Enc::EBCDIC)) { error_encoding (); return EXIT_FAIL; } goto opt; } +#line 1318 "src/conf/parse_opts.cc" yy307: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy339; + if (yych == '-') goto yy334; goto yy252; yy308: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy309; - if (yych == 'o') goto yy310; + if (yych == 'y') goto yy335; goto yy252; yy309: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy324; + if (yych == 'd') goto yy336; goto yy252; yy310: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy252; + if (yych == '-') goto yy337; + goto yy252; +yy311: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy252; + if (yych <= 0x00) goto yy338; + goto yy252; +yy312: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'b') goto yy252; + if (yych == 't') goto yy340; + goto yy252; +yy313: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy252; + if (yych == 'e') goto yy341; + goto yy252; +yy314: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'e') goto yy342; + goto yy252; +yy315: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 'e') goto yy343; + goto yy252; +yy316: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych == 'e') goto yy344; + goto yy252; +yy317: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'u') goto yy345; + goto yy252; +yy318: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy252; + if (yych == 'a') goto yy346; + goto yy252; +yy319: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'l') goto yy347; + goto yy252; +yy320: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'e') goto yy348; + goto yy252; +yy321: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 138 "../src/conf/parse_opts.re" - { opts.set_fFlag (true); goto opt; } -#line 1027 "src/conf/parse_opts.cc" + if (yych == 't') goto yy349; + goto yy252; +yy322: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'a') goto yy350; + goto yy252; +yy323: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '-') goto yy351; + goto yy252; yy324: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'o') goto yy352; + goto yy252; +yy325: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == '1') goto yy353; + if (yych == '8') goto yy354; + goto yy252; +yy326: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy252; + if (yych == 'u') goto yy355; + goto yy252; +yy327: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'i') goto yy356; + goto yy252; +yy328: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == '-') goto yy357; + goto yy252; +yy329: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy252; + if (yych == 'e') goto yy358; + goto yy252; +yy330: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy252; + if (yych == 'i') goto yy359; + goto yy252; +yy331: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych == 't') goto yy360; + goto yy252; +yy332: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == '-') goto yy361; + goto yy252; +yy333: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych == 'i') goto yy362; + goto yy252; +yy334: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == 'd') goto yy363; + goto yy252; +yy335: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy252; + if (yych == '-') goto yy364; + goto yy252; +yy336: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych == 'i') goto yy365; + goto yy252; +yy337: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; + if (yych == 's') goto yy366; + goto yy252; +yy338: ++YYCURSOR; -#line 135 "../src/conf/parse_opts.re" - { opts.set_cFlag (true); goto opt; } -#line 1058 "src/conf/parse_opts.cc" -yy339: +#line 131 "../src/conf/parse_opts.re" + { usage (); return EXIT_OK; } +#line 1448 "src/conf/parse_opts.cc" +yy340: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy252; + if (yych <= 0x00) goto yy367; + goto yy252; +yy341: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'd') goto yy369; + goto yy252; +yy342: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'b') goto yy370; + goto yy252; +yy343: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == 'n') goto yy371; + goto yy252; +yy344: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy252; + if (yych == 'r') goto yy372; + goto yy252; +yy345: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 148 "../src/conf/parse_opts.re" - { opts.set_target (opt_t::SKELETON); goto opt; } -#line 1075 "src/conf/parse_opts.cc" + if (yych == 't') goto yy373; + goto yy252; +yy346: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'b') goto yy374; + goto yy252; yy347: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'g') goto yy252; + if (yych == 'e') goto yy375; + goto yy252; +yy348: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy252; + if (yych == 't') goto yy376; + goto yy252; +yy349: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == '-') goto yy377; + goto yy252; +yy350: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 'b') goto yy378; + goto yy252; +yy351: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy252; + if (yych == 'h') goto yy379; + goto yy252; +yy352: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy252; + if (yych == 'd') goto yy380; + goto yy252; +yy353: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych == '6') goto yy381; + goto yy252; +yy354: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych <= 0x00) goto yy382; + goto yy252; +yy355: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 159 "../src/conf/parse_opts.re" - { goto opt; } -#line 1098 "src/conf/parse_opts.cc" + if (yych == 'm') goto yy384; + goto yy252; +yy356: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'o') goto yy385; + goto yy252; +yy357: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'c') goto yy386; + goto yy252; yy358: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy252; + if (yych == 'c') goto yy387; + goto yy252; +yy359: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych == 'n') goto yy388; + goto yy252; +yy360: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy252; + if (yych == 'e') goto yy389; + goto yy252; +yy361: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'b') goto yy252; + if (yych == 'o') goto yy390; + goto yy252; +yy362: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy252; + if (yych == 'n') goto yy391; + goto yy252; +yy363: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'o') goto yy392; + goto yy252; +yy364: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 142 "../src/conf/parse_opts.re" - { opts.set_rFlag (true); goto opt; } -#line 1117 "src/conf/parse_opts.cc" + if (yych == 'c') goto yy393; + goto yy252; +yy365: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'n') goto yy394; + goto yy252; +yy366: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'y') goto yy395; + goto yy252; yy367: + ++YYCURSOR; +#line 157 "../src/conf/parse_opts.re" + { goto opt_input; } +#line 1561 "src/conf/parse_opts.cc" +yy369: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == '-') goto yy396; + goto yy252; +yy370: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy252; + if (yych == 'u') goto yy397; + goto yy252; +yy371: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy252; + if (yych == 'e') goto yy398; + goto yy252; +yy372: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 's') goto yy399; + goto yy252; +yy373: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 154 "../src/conf/parse_opts.re" - { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; } -#line 1132 "src/conf/parse_opts.cc" + if (yych <= 0x00) goto yy400; + goto yy252; yy374: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy386; + if (yych == 'l') goto yy402; goto yy252; yy375: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych == '-') goto yy403; + goto yy252; +yy376: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'o') goto yy404; + goto yy252; +yy377: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'c') goto yy405; + goto yy252; +yy378: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy252; + if (yych == 'l') goto yy406; + goto yy252; +yy379: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 'e') goto yy407; + goto yy252; +yy380: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych == 'e') goto yy408; + goto yy252; +yy381: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'f') goto yy252; + if (yych <= 0x00) goto yy409; + goto yy252; +yy382: + ++YYCURSOR; +#line 153 "../src/conf/parse_opts.re" + { if (!opts.set_encoding (Enc::UTF8)) { error_encoding (); return EXIT_FAIL; } goto opt; } +#line 1618 "src/conf/parse_opts.cc" +yy384: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych <= 0x00) goto yy411; + goto yy252; +yy385: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 143 "../src/conf/parse_opts.re" - { opts.set_sFlag (true); goto opt; } -#line 1159 "src/conf/parse_opts.cc" + if (yych == 'n') goto yy413; + goto yy252; yy386: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 'f') { - if (yych == 'd') goto yy389; - goto yy252; - } else { - if (yych <= 'g') goto yy388; - if (yych != 'v') goto yy252; - } + if (yych == 'h') goto yy414; + goto yy252; +yy387: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy417; + if (yych == 't') goto yy415; goto yy252; yy388: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy401; + if (yych == 's') goto yy416; + if (yych == 'v') goto yy417; goto yy252; yy389: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'd') goto yy418; + goto yy252; +yy390: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'b') goto yy252; + if (yych == 'u') goto yy419; + goto yy252; +yy391: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy252; + if (yych == 'i') goto yy420; + goto yy252; +yy392: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'g') goto yy252; + if (yych == 't') goto yy421; + goto yy252; +yy393: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 'l') goto yy422; + goto yy252; +yy394: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych == 'g') goto yy423; + goto yy252; +yy395: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy252; + if (yych == 'n') goto yy424; + goto yy252; +yy396: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'f') goto yy252; + if (yych == 'i') goto yy425; + goto yy252; +yy397: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == 'g') goto yy426; + goto yy252; +yy398: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 141 "../src/conf/parse_opts.re" - { opts.set_iFlag (true); goto opt; } -#line 1200 "src/conf/parse_opts.cc" -yy401: + if (yych == 'r') goto yy427; + goto yy252; +yy399: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy252; + if (yych == 'i') goto yy428; + goto yy252; +yy400: + ++YYCURSOR; +#line 154 "../src/conf/parse_opts.re" + { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; } +#line 1688 "src/conf/parse_opts.cc" +yy402: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'e') goto yy429; + goto yy252; +yy403: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy252; + if (yych == 'p') goto yy430; + goto yy252; +yy404: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy252; + if (yych == 'n') goto yy431; + goto yy252; +yy405: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'o') goto yy432; + goto yy252; +yy406: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych == 'e') goto yy433; + goto yy252; +yy407: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == 'a') goto yy434; + goto yy252; +yy408: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy252; + if (yych <= 0x00) goto yy435; + goto yy252; +yy409: + ++YYCURSOR; +#line 152 "../src/conf/parse_opts.re" + { if (!opts.set_encoding (Enc::UTF16)) { error_encoding (); return EXIT_FAIL; } goto opt; } +#line 1721 "src/conf/parse_opts.cc" +yy411: + ++YYCURSOR; +#line 133 "../src/conf/parse_opts.re" + { vernum (); return EXIT_OK; } +#line 1726 "src/conf/parse_opts.cc" +yy413: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych <= 0x00) goto yy437; + goto yy252; +yy414: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy252; + if (yych == 'a') goto yy439; + goto yy252; +yy415: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy252; + if (yych == 'o') goto yy440; + goto yy252; +yy416: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'e') goto yy441; + goto yy252; +yy417: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'e') goto yy442; + goto yy252; +yy418: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 144 "../src/conf/parse_opts.re" - { opts.set_bNoGenerationDate (true); goto opt; } -#line 1233 "src/conf/parse_opts.cc" -yy417: + if (yych == '-') goto yy443; + goto yy252; +yy419: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy252; + if (yych == 't') goto yy444; + goto yy252; +yy420: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych == 'm') goto yy445; + goto yy252; +yy421: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych <= 0x00) goto yy446; + goto yy252; +yy422: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == 'a') goto yy448; + goto yy252; +yy423: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy252; + if (yych == '-') goto yy449; + goto yy252; +yy424: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 145 "../src/conf/parse_opts.re" - { opts.set_version (false); goto opt; } -#line 1250 "src/conf/parse_opts.cc" + if (yych == 't') goto yy450; + goto yy252; yy425: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy252; + if (yych == 'f') goto yy451; + goto yy252; +yy426: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy252; + if (yych == '-') goto yy452; + goto yy252; +yy427: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'a') goto yy453; + goto yy252; +yy428: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 157 "../src/conf/parse_opts.re" - { goto opt_input; } -#line 1263 "src/conf/parse_opts.cc" -yy431: + if (yych == 'o') goto yy454; + goto yy252; +yy429: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy252; + if (yych <= 0x00) goto yy455; + goto yy252; +yy430: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy252; + if (yych == 'a') goto yy457; + goto yy252; +yy431: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 131 "../src/conf/parse_opts.re" - { usage (); return EXIT_OK; } -#line 1274 "src/conf/parse_opts.cc" -yy436: + if (yych <= 0x00) goto yy458; + goto yy252; +yy432: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'n') goto yy460; + goto yy252; +yy433: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'x') goto yy252; + if (yych == '-') goto yy461; + goto yy252; +yy434: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 'd') goto yy462; + goto yy252; +yy435: + ++YYCURSOR; +#line 150 "../src/conf/parse_opts.re" + { if (!opts.set_encoding (Enc::UTF32)) { error_encoding (); return EXIT_FAIL; } goto opt; } +#line 1819 "src/conf/parse_opts.cc" +yy437: + ++YYCURSOR; +#line 132 "../src/conf/parse_opts.re" + { version (); return EXIT_OK; } +#line 1824 "src/conf/parse_opts.cc" +yy439: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych == 'r') goto yy463; + goto yy252; +yy440: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'y') goto yy252; + if (yych == 'r') goto yy464; + goto yy252; +yy441: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy252; + if (yych == 'n') goto yy465; + goto yy252; +yy442: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'r') goto yy466; + goto yy252; +yy443: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy252; + if (yych == 'g') goto yy467; + goto yy252; +yy444: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'x') goto yy252; + if (yych == 'p') goto yy468; + goto yy252; +yy445: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; + if (yych == 'i') goto yy469; + goto yy252; +yy446: ++YYCURSOR; -#line 139 "../src/conf/parse_opts.re" - { opts.set_FFlag (true); goto opt; } -#line 1299 "src/conf/parse_opts.cc" +#line 137 "../src/conf/parse_opts.re" + { opts.set_target (opt_t::DOT); goto opt; } +#line 1857 "src/conf/parse_opts.cc" yy448: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy469; - if (yych == 'p') goto yy470; + if (yych == 's') goto yy470; goto yy252; yy449: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy454; + if (yych == 'p') goto yy471; goto yy252; yy450: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'b') goto yy252; + if (yych == 'a') goto yy472; + goto yy252; +yy451: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 149 "../src/conf/parse_opts.re" - { if (!opts.set_encoding (Enc::EBCDIC)) { error_encoding (); return EXIT_FAIL; } goto opt; } -#line 1317 "src/conf/parse_opts.cc" -yy454: + if (yych == 's') goto yy473; + goto yy252; +yy452: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == 'i') goto yy474; + goto yy252; +yy453: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy252; + if (yych == 't') goto yy475; + goto yy252; +yy454: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych == 'n') goto yy476; + goto yy252; +yy455: + ++YYCURSOR; +#line 142 "../src/conf/parse_opts.re" + { opts.set_rFlag (true); goto opt; } +#line 1890 "src/conf/parse_opts.cc" +yy457: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy252; + if (yych == 's') goto yy477; + goto yy252; +yy458: + ++YYCURSOR; +#line 148 "../src/conf/parse_opts.re" + { opts.set_target (opt_t::SKELETON); goto opt; } +#line 1899 "src/conf/parse_opts.cc" +yy460: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'g') goto yy252; + if (yych == 'd') goto yy478; + goto yy252; +yy461: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 's') goto yy479; + goto yy252; +yy462: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy252; + if (yych == 'e') goto yy480; + goto yy252; +yy463: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == 's') goto yy481; + goto yy252; +yy464: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy252; + if (yych == 's') goto yy482; + goto yy252; +yy465: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych == 's') goto yy483; + goto yy252; +yy466: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy252; + if (yych == 't') goto yy484; + goto yy252; +yy467: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'y') goto yy252; + if (yych == 'o') goto yy485; + goto yy252; +yy468: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 156 "../src/conf/parse_opts.re" - { goto opt_encoding_policy; } -#line 1348 "src/conf/parse_opts.cc" + if (yych == 'u') goto yy486; + goto yy252; yy469: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy481; + if (yych == 'z') goto yy487; goto yy252; yy470: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'y') goto yy252; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy252; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy252; + if (yych == 's') goto yy488; + goto yy252; +yy471: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy252; + if (yych == 'o') goto yy489; + goto yy252; +yy472: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych == 'x') goto yy490; + goto yy252; +yy473: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych <= 0x00) goto yy491; + goto yy252; +yy474: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 158 "../src/conf/parse_opts.re" - { goto opt_empty_class; } -#line 1375 "src/conf/parse_opts.cc" -yy481: + if (yych == 'n') goto yy493; + goto yy252; +yy475: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 'i') goto yy494; + goto yy252; +yy476: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy252; + if (yych <= 0x00) goto yy495; + goto yy252; +yy477: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == 's') goto yy497; + goto yy252; +yy478: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'i') goto yy498; + goto yy252; +yy479: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 137 "../src/conf/parse_opts.re" - { opts.set_target (opt_t::DOT); goto opt; } -#line 1390 "src/conf/parse_opts.cc" -yy488: + if (yych == 't') goto yy499; + goto yy252; +yy480: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'b') goto yy252; + if (yych == 'r') goto yy500; + goto yy252; +yy481: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy252; + if (yych <= 0x00) goto yy501; + goto yy252; +yy482: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'g') goto yy252; + if (yych <= 0x00) goto yy503; + goto yy252; +yy483: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 'i') goto yy505; + goto yy252; +yy484: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == 'e') goto yy506; + goto yy252; +yy485: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy252; + if (yych == 't') goto yy507; + goto yy252; +yy486: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 't') goto yy508; + goto yy252; +yy487: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy252; + if (yych == 'a') goto yy509; + goto yy252; +yy488: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy252; + if (yych <= 0x00) goto yy510; + goto yy252; +yy489: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'l') goto yy512; + goto yy252; +yy490: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; + if (yych <= 0x00) goto yy513; + goto yy252; +yy491: ++YYCURSOR; -#line 136 "../src/conf/parse_opts.re" - { opts.set_dFlag (true); goto opt; } -#line 1417 "src/conf/parse_opts.cc" -yy501: +#line 143 "../src/conf/parse_opts.re" + { opts.set_sFlag (true); goto opt; } +#line 2028 "src/conf/parse_opts.cc" +yy493: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy517; + if (yych == 'f') goto yy515; goto yy252; -yy502: +yy494: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'm') goto yy252; + if (yych == 'o') goto yy516; + goto yy252; +yy495: + ++YYCURSOR; +#line 145 "../src/conf/parse_opts.re" + { opts.set_version (false); goto opt; } +#line 2041 "src/conf/parse_opts.cc" +yy497: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy252; + if (yych <= 0x00) goto yy517; + goto yy252; +yy498: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy252; + if (yych == 't') goto yy519; + goto yy252; +yy499: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'a') goto yy520; + goto yy252; +yy500: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych <= 0x00) goto yy521; + goto yy252; +yy501: + ++YYCURSOR; +#line 151 "../src/conf/parse_opts.re" + { if (!opts.set_encoding (Enc::UCS2)) { error_encoding (); return EXIT_FAIL; } goto opt; } +#line 2062 "src/conf/parse_opts.cc" +yy503: + ++YYCURSOR; +#line 134 "../src/conf/parse_opts.re" + { opts.set_bFlag (true); goto opt; } +#line 2067 "src/conf/parse_opts.cc" +yy505: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy252; + if (yych == 't') goto yy523; + goto yy252; +yy506: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 'd') goto yy524; + goto yy252; +yy507: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'g') goto yy252; + if (yych == 'o') goto yy525; + goto yy252; +yy508: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych <= 0x00) goto yy526; + goto yy252; +yy509: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 't') goto yy528; + goto yy252; +yy510: + ++YYCURSOR; +#line 158 "../src/conf/parse_opts.re" + { goto opt_empty_class; } +#line 2092 "src/conf/parse_opts.cc" +yy512: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == 'i') goto yy529; + goto yy252; +yy513: + ++YYCURSOR; +#line 139 "../src/conf/parse_opts.re" + { opts.set_FFlag (true); goto opt; } +#line 2101 "src/conf/parse_opts.cc" +yy515: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych == 'o') goto yy530; + goto yy252; +yy516: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; - ++YYCURSOR; -#line 140 "../src/conf/parse_opts.re" - { opts.set_gFlag (true); goto opt; } -#line 1452 "src/conf/parse_opts.cc" + if (yych == 'n') goto yy531; + goto yy252; yy517: + ++YYCURSOR; +#line 160 "../src/conf/parse_opts.re" + { goto opt; } +#line 2114 "src/conf/parse_opts.cc" +yy519: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'i') goto yy532; + goto yy252; +yy520: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych == 't') goto yy533; + goto yy252; +yy521: + ++YYCURSOR; +#line 155 "../src/conf/parse_opts.re" + { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; } +#line 2127 "src/conf/parse_opts.cc" +yy523: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych == 'i') goto yy534; + goto yy252; +yy524: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy252; + if (yych <= 0x00) goto yy535; + goto yy252; +yy525: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy523; - if (yych != 'v') goto yy252; + if (yych == 's') goto yy537; + goto yy252; +yy526: + ++YYCURSOR; +#line 136 "../src/conf/parse_opts.re" + { opts.set_dFlag (true); goto opt; } +#line 2144 "src/conf/parse_opts.cc" +yy528: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy534; + if (yych == 'i') goto yy538; goto yy252; -yy523: +yy529: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'c') goto yy539; + goto yy252; +yy530: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy252; + if (yych <= 0x00) goto yy540; + goto yy252; +yy531: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych == '-') goto yy542; + goto yy252; +yy532: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych == 'o') goto yy543; + goto yy252; +yy533: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'e') goto yy544; + goto yy252; +yy534: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy252; + if (yych == 'v') goto yy545; + goto yy252; +yy535: + ++YYCURSOR; +#line 147 "../src/conf/parse_opts.re" + { opts.set_bCaseInverted (true); goto opt; } +#line 2177 "src/conf/parse_opts.cc" +yy537: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'v') goto yy252; + if (yych <= 0x00) goto yy546; + goto yy252; +yy538: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'o') goto yy548; + goto yy252; +yy539: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; + if (yych == 'y') goto yy549; + goto yy252; +yy540: ++YYCURSOR; -#line 146 "../src/conf/parse_opts.re" - { opts.set_bCaseInsensitive (true); goto opt; } -#line 1490 "src/conf/parse_opts.cc" -yy534: - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy252; +#line 141 "../src/conf/parse_opts.re" + { opts.set_iFlag (true); goto opt; } +#line 2194 "src/conf/parse_opts.cc" +yy542: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'd') goto yy550; + goto yy252; +yy543: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 'n') goto yy551; + goto yy252; +yy544: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'd') goto yy252; + if (yych <= 0x00) goto yy552; + goto yy252; +yy545: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy252; + if (yych == 'e') goto yy554; + goto yy252; +yy546: ++YYCURSOR; -#line 147 "../src/conf/parse_opts.re" - { opts.set_bCaseInverted (true); goto opt; } -#line 1505 "src/conf/parse_opts.cc" -yy541: +#line 140 "../src/conf/parse_opts.re" + { opts.set_gFlag (true); goto opt; } +#line 2215 "src/conf/parse_opts.cc" +yy548: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych == 'n') goto yy555; + goto yy252; +yy549: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy252; + if (yych <= 0x00) goto yy556; + goto yy252; +yy550: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'v') goto yy252; + if (yych == 'a') goto yy558; + goto yy252; +yy551: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy252; + if (yych == 's') goto yy559; + goto yy252; +yy552: + ++YYCURSOR; +#line 138 "../src/conf/parse_opts.re" + { opts.set_fFlag (true); goto opt; } +#line 2236 "src/conf/parse_opts.cc" +yy554: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy252; + if (yych <= 0x00) goto yy560; + goto yy252; +yy555: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy252; + if (yych <= 0x00) goto yy562; + goto yy252; +yy556: + ++YYCURSOR; +#line 156 "../src/conf/parse_opts.re" + { goto opt_encoding_policy; } +#line 2249 "src/conf/parse_opts.cc" +yy558: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy252; + if (yych == 't') goto yy564; + goto yy252; +yy559: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy252; + if (yych <= 0x00) goto yy565; + goto yy252; +yy560: + ++YYCURSOR; +#line 146 "../src/conf/parse_opts.re" + { opts.set_bCaseInsensitive (true); goto opt; } +#line 2262 "src/conf/parse_opts.cc" +yy562: + ++YYCURSOR; +#line 159 "../src/conf/parse_opts.re" + { goto opt_dfa_minimization; } +#line 2267 "src/conf/parse_opts.cc" +yy564: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy252; + if (yych == 'e') goto yy567; + goto yy252; +yy565: + ++YYCURSOR; +#line 135 "../src/conf/parse_opts.re" + { opts.set_cFlag (true); goto opt; } +#line 2276 "src/conf/parse_opts.cc" +yy567: yych = (YYCTYPE)*++YYCURSOR; if (yych >= 0x01) goto yy252; ++YYCURSOR; -#line 134 "../src/conf/parse_opts.re" - { opts.set_bFlag (true); goto opt; } -#line 1530 "src/conf/parse_opts.cc" +#line 144 "../src/conf/parse_opts.re" + { opts.set_bNoGenerationDate (true); goto opt; } +#line 2283 "src/conf/parse_opts.cc" } -#line 160 "../src/conf/parse_opts.re" +#line 161 "../src/conf/parse_opts.re" opt_output: -#line 1537 "src/conf/parse_opts.cc" +#line 2290 "src/conf/parse_opts.cc" { YYCTYPE yych; static const unsigned char yybm[] = { @@ -1571,37 +2324,39 @@ opt_output: 128, 128, 128, 128, 128, 128, 128, 128, }; yych = (YYCTYPE)*YYCURSOR; - if (yych <= 0x00) goto yy555; - if (yych != '-') goto yy557; -yy555: + if (yych <= 0x00) goto yy572; + if (yych != '-') goto yy574; +yy572: ++YYCURSOR; -#line 165 "../src/conf/parse_opts.re" +#line 166 "../src/conf/parse_opts.re" { error ("bad argument to option -o, --output: %s", *argv); return EXIT_FAIL; } -#line 1584 "src/conf/parse_opts.cc" -yy557: +#line 2337 "src/conf/parse_opts.cc" +yy574: yych = (YYCTYPE)*++YYCURSOR; - goto yy559; -yy558: + goto yy578; +yy575: + ++YYCURSOR; +#line 170 "../src/conf/parse_opts.re" + { if (!opts.output (*argv)) return EXIT_FAIL; goto opt; } +#line 2345 "src/conf/parse_opts.cc" +yy577: ++YYCURSOR; yych = (YYCTYPE)*YYCURSOR; -yy559: +yy578: if (yybm[0+yych] & 128) { - goto yy558; + goto yy577; } - ++YYCURSOR; -#line 169 "../src/conf/parse_opts.re" - { if (!opts.output (*argv)) return EXIT_FAIL; goto opt; } -#line 1598 "src/conf/parse_opts.cc" + goto yy575; } -#line 170 "../src/conf/parse_opts.re" +#line 171 "../src/conf/parse_opts.re" opt_header: -#line 1605 "src/conf/parse_opts.cc" +#line 2360 "src/conf/parse_opts.cc" { YYCTYPE yych; static const unsigned char yybm[] = { @@ -1639,32 +2394,34 @@ opt_header: 128, 128, 128, 128, 128, 128, 128, 128, }; yych = (YYCTYPE)*YYCURSOR; - if (yych <= 0x00) goto yy564; - if (yych != '-') goto yy566; -yy564: + if (yych <= 0x00) goto yy581; + if (yych != '-') goto yy583; +yy581: ++YYCURSOR; -#line 175 "../src/conf/parse_opts.re" +#line 176 "../src/conf/parse_opts.re" { error ("bad argument to option -t, --type-header: %s", *argv); return EXIT_FAIL; } -#line 1652 "src/conf/parse_opts.cc" -yy566: +#line 2407 "src/conf/parse_opts.cc" +yy583: yych = (YYCTYPE)*++YYCURSOR; - goto yy568; -yy567: + goto yy587; +yy584: + ++YYCURSOR; +#line 180 "../src/conf/parse_opts.re" + { opts.set_header_file (*argv); goto opt; } +#line 2415 "src/conf/parse_opts.cc" +yy586: ++YYCURSOR; yych = (YYCTYPE)*YYCURSOR; -yy568: +yy587: if (yybm[0+yych] & 128) { - goto yy567; + goto yy586; } - ++YYCURSOR; -#line 179 "../src/conf/parse_opts.re" - { opts.set_header_file (*argv); goto opt; } -#line 1666 "src/conf/parse_opts.cc" + goto yy584; } -#line 180 "../src/conf/parse_opts.re" +#line 181 "../src/conf/parse_opts.re" opt_encoding_policy: @@ -1674,89 +2431,115 @@ opt_encoding_policy: return EXIT_FAIL; } -#line 1678 "src/conf/parse_opts.cc" +#line 2435 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; if (yych <= 'h') { - if (yych == 'f') goto yy575; + if (yych == 'f') goto yy592; } else { - if (yych <= 'i') goto yy576; - if (yych == 's') goto yy577; + if (yych <= 'i') goto yy593; + if (yych == 's') goto yy594; } ++YYCURSOR; -yy574: -#line 190 "../src/conf/parse_opts.re" +yy591: +#line 191 "../src/conf/parse_opts.re" { error ("bad argument to option --encoding-policy (expected: ignore | substitute | fail): %s", *argv); return EXIT_FAIL; } -#line 1695 "src/conf/parse_opts.cc" -yy575: +#line 2452 "src/conf/parse_opts.cc" +yy592: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'a') goto yy597; - goto yy574; -yy576: + if (yych == 'a') goto yy595; + goto yy591; +yy593: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'g') goto yy590; - goto yy574; -yy577: + if (yych == 'g') goto yy597; + goto yy591; +yy594: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych != 'u') goto yy574; + if (yych == 'u') goto yy598; + goto yy591; +yy595: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy580; -yy579: + if (yych == 'i') goto yy599; +yy596: YYCURSOR = YYMARKER; - goto yy574; -yy580: + goto yy591; +yy597: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy579; + if (yych == 'n') goto yy600; + goto yy596; +yy598: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy579; + if (yych == 'b') goto yy601; + goto yy596; +yy599: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy579; + if (yych == 'l') goto yy602; + goto yy596; +yy600: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy579; + if (yych == 'o') goto yy603; + goto yy596; +yy601: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy579; + if (yych == 's') goto yy604; + goto yy596; +yy602: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy579; + if (yych <= 0x00) goto yy605; + goto yy596; +yy603: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy579; + if (yych == 'r') goto yy607; + goto yy596; +yy604: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy579; + if (yych == 't') goto yy608; + goto yy596; +yy605: ++YYCURSOR; -#line 195 "../src/conf/parse_opts.re" - { opts.set_encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; } -#line 1732 "src/conf/parse_opts.cc" -yy590: - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy579; +#line 197 "../src/conf/parse_opts.re" + { opts.set_encoding_policy (Enc::POLICY_FAIL); goto opt; } +#line 2507 "src/conf/parse_opts.cc" +yy607: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy579; + if (yych == 'e') goto yy609; + goto yy596; +yy608: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy579; + if (yych == 'i') goto yy610; + goto yy596; +yy609: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy579; + if (yych <= 0x00) goto yy611; + goto yy596; +yy610: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy579; + if (yych == 't') goto yy613; + goto yy596; +yy611: ++YYCURSOR; -#line 194 "../src/conf/parse_opts.re" +#line 195 "../src/conf/parse_opts.re" { opts.set_encoding_policy (Enc::POLICY_IGNORE); goto opt; } -#line 1747 "src/conf/parse_opts.cc" -yy597: +#line 2528 "src/conf/parse_opts.cc" +yy613: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy579; + if (yych != 'u') goto yy596; yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy579; + if (yych != 't') goto yy596; yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy579; + if (yych != 'e') goto yy596; + yych = (YYCTYPE)*++YYCURSOR; + if (yych >= 0x01) goto yy596; ++YYCURSOR; #line 196 "../src/conf/parse_opts.re" - { opts.set_encoding_policy (Enc::POLICY_FAIL); goto opt; } -#line 1758 "src/conf/parse_opts.cc" + { opts.set_encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; } +#line 2541 "src/conf/parse_opts.cc" } -#line 197 "../src/conf/parse_opts.re" +#line 198 "../src/conf/parse_opts.re" opt_input: @@ -1766,66 +2549,86 @@ opt_input: return EXIT_FAIL; } -#line 1770 "src/conf/parse_opts.cc" +#line 2553 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; - if (yych <= 'b') goto yy604; - if (yych <= 'c') goto yy606; - if (yych <= 'd') goto yy607; -yy604: + if (yych <= 'b') goto yy621; + if (yych <= 'c') goto yy623; + if (yych <= 'd') goto yy624; +yy621: ++YYCURSOR; -yy605: -#line 207 "../src/conf/parse_opts.re" +yy622: +#line 208 "../src/conf/parse_opts.re" { error ("bad argument to option --input (expected: default | custom): %s", *argv); return EXIT_FAIL; } -#line 1785 "src/conf/parse_opts.cc" -yy606: +#line 2568 "src/conf/parse_opts.cc" +yy623: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'u') goto yy617; - goto yy605; -yy607: + if (yych == 'u') goto yy625; + goto yy622; +yy624: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych != 'e') goto yy605; + if (yych == 'e') goto yy627; + goto yy622; +yy625: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy610; -yy609: + if (yych == 's') goto yy628; +yy626: YYCURSOR = YYMARKER; - goto yy605; -yy610: + goto yy622; +yy627: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy609; + if (yych == 'f') goto yy629; + goto yy626; +yy628: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy609; + if (yych == 't') goto yy630; + goto yy626; +yy629: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy609; + if (yych == 'a') goto yy631; + goto yy626; +yy630: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy609; + if (yych == 'o') goto yy632; + goto yy626; +yy631: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy609; - ++YYCURSOR; -#line 211 "../src/conf/parse_opts.re" - { opts.set_input_api (InputAPI::DEFAULT); goto opt; } -#line 1812 "src/conf/parse_opts.cc" -yy617: + if (yych == 'u') goto yy633; + goto yy626; +yy632: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy609; + if (yych == 'm') goto yy634; + goto yy626; +yy633: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy609; + if (yych == 'l') goto yy635; + goto yy626; +yy634: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy609; + if (yych <= 0x00) goto yy636; + goto yy626; +yy635: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'm') goto yy609; + if (yych == 't') goto yy638; + goto yy626; +yy636: + ++YYCURSOR; +#line 213 "../src/conf/parse_opts.re" + { opts.set_input_api (InputAPI::CUSTOM); goto opt; } +#line 2623 "src/conf/parse_opts.cc" +yy638: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy609; + if (yych >= 0x01) goto yy626; ++YYCURSOR; #line 212 "../src/conf/parse_opts.re" - { opts.set_input_api (InputAPI::CUSTOM); goto opt; } -#line 1827 "src/conf/parse_opts.cc" + { opts.set_input_api (InputAPI::DEFAULT); goto opt; } +#line 2630 "src/conf/parse_opts.cc" } -#line 213 "../src/conf/parse_opts.re" +#line 214 "../src/conf/parse_opts.re" opt_empty_class: @@ -1835,88 +2638,197 @@ opt_empty_class: return EXIT_FAIL; } -#line 1839 "src/conf/parse_opts.cc" +#line 2642 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; - if (yych == 'e') goto yy628; - if (yych == 'm') goto yy629; + if (yych == 'e') goto yy645; + if (yych == 'm') goto yy646; ++YYCURSOR; -yy627: -#line 223 "../src/conf/parse_opts.re" +yy644: +#line 224 "../src/conf/parse_opts.re" { error ("bad argument to option --empty-class (expected: match-empty | match-none | error): %s", *argv); return EXIT_FAIL; } -#line 1852 "src/conf/parse_opts.cc" -yy628: +#line 2655 "src/conf/parse_opts.cc" +yy645: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'r') goto yy649; - goto yy627; -yy629: + if (yych == 'r') goto yy647; + goto yy644; +yy646: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych != 'a') goto yy627; + if (yych == 'a') goto yy649; + goto yy644; +yy647: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy632; -yy631: + if (yych == 'r') goto yy650; +yy648: YYCURSOR = YYMARKER; - goto yy627; -yy632: + goto yy644; +yy649: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy631; + if (yych == 't') goto yy651; + goto yy648; +yy650: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'h') goto yy631; + if (yych == 'o') goto yy652; + goto yy648; +yy651: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '-') goto yy631; + if (yych == 'c') goto yy653; + goto yy648; +yy652: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy636; - if (yych == 'n') goto yy637; - goto yy631; -yy636: + if (yych == 'r') goto yy654; + goto yy648; +yy653: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'h') goto yy655; + goto yy648; +yy654: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy656; + goto yy648; +yy655: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy643; - goto yy631; -yy637: + if (yych == '-') goto yy658; + goto yy648; +yy656: + ++YYCURSOR; +#line 230 "../src/conf/parse_opts.re" + { opts.set_empty_class_policy (EMPTY_CLASS_ERROR); goto opt; } +#line 2702 "src/conf/parse_opts.cc" +yy658: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy631; + if (yych == 'e') goto yy659; + if (yych == 'n') goto yy660; + goto yy648; +yy659: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy631; + if (yych == 'm') goto yy661; + goto yy648; +yy660: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy631; + if (yych == 'o') goto yy662; + goto yy648; +yy661: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy631; - ++YYCURSOR; -#line 228 "../src/conf/parse_opts.re" - { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_NONE); goto opt; } -#line 1892 "src/conf/parse_opts.cc" -yy643: + if (yych == 'p') goto yy663; + goto yy648; +yy662: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'n') goto yy664; + goto yy648; +yy663: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy631; + if (yych == 't') goto yy665; + goto yy648; +yy664: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy631; + if (yych == 'e') goto yy666; + goto yy648; +yy665: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'y') goto yy631; + if (yych == 'y') goto yy667; + goto yy648; +yy666: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy631; + if (yych <= 0x00) goto yy668; + goto yy648; +yy667: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy670; + goto yy648; +yy668: + ++YYCURSOR; +#line 229 "../src/conf/parse_opts.re" + { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_NONE); goto opt; } +#line 2748 "src/conf/parse_opts.cc" +yy670: ++YYCURSOR; -#line 227 "../src/conf/parse_opts.re" +#line 228 "../src/conf/parse_opts.re" { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_EMPTY); goto opt; } -#line 1905 "src/conf/parse_opts.cc" -yy649: +#line 2753 "src/conf/parse_opts.cc" +} +#line 231 "../src/conf/parse_opts.re" + + +opt_dfa_minimization: + if (!next (YYCURSOR, argv)) + { + error_arg ("--minimization"); + return EXIT_FAIL; + } + +#line 2765 "src/conf/parse_opts.cc" +{ + YYCTYPE yych; + yych = (YYCTYPE)*YYCURSOR; + if (yych == 'm') goto yy676; + if (yych == 't') goto yy677; + ++YYCURSOR; +yy675: +#line 241 "../src/conf/parse_opts.re" + { + error ("bad argument to option --dfa-minimization (expected: table | moore): %s", *argv); + return EXIT_FAIL; + } +#line 2778 "src/conf/parse_opts.cc" +yy676: + yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); + if (yych == 'o') goto yy678; + goto yy675; +yy677: + yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); + if (yych == 'a') goto yy680; + goto yy675; +yy678: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'o') goto yy681; +yy679: + YYCURSOR = YYMARKER; + goto yy675; +yy680: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'b') goto yy682; + goto yy679; +yy681: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy631; + if (yych == 'r') goto yy683; + goto yy679; +yy682: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy631; + if (yych == 'l') goto yy684; + goto yy679; +yy683: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy631; + if (yych == 'e') goto yy685; + goto yy679; +yy684: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy631; + if (yych == 'e') goto yy686; + goto yy679; +yy685: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy687; + goto yy679; +yy686: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy689; + goto yy679; +yy687: ++YYCURSOR; -#line 229 "../src/conf/parse_opts.re" - { opts.set_empty_class_policy (EMPTY_CLASS_ERROR); goto opt; } -#line 1918 "src/conf/parse_opts.cc" +#line 246 "../src/conf/parse_opts.re" + { opts.set_dfa_minimization (DFA_MINIMIZATION_MOORE); goto opt; } +#line 2825 "src/conf/parse_opts.cc" +yy689: + ++YYCURSOR; +#line 245 "../src/conf/parse_opts.re" + { opts.set_dfa_minimization (DFA_MINIMIZATION_TABLE); goto opt; } +#line 2830 "src/conf/parse_opts.cc" } -#line 230 "../src/conf/parse_opts.re" +#line 247 "../src/conf/parse_opts.re" end: diff --git a/bootstrap/src/parse/lex.cc b/bootstrap/src/parse/lex.cc index 9169c2a9..9c7e0143 100644 --- a/bootstrap/src/parse/lex.cc +++ b/bootstrap/src/parse/lex.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 0.15.3 on Wed Dec 2 12:10:03 2015 */ +/* Generated by re2c 0.16 on Thu Jan 21 10:47:47 2016 */ #line 1 "../src/parse/lex.re" #include "src/util/c99_stdint.h" #include <stddef.h> @@ -141,9 +141,9 @@ yy6: yyaccept = 0; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 32) { - goto yy89; + goto yy11; } - if (yych == '#') goto yy91; + if (yych == '#') goto yy14; yy7: #line 189 "../src/parse/lex.re" { @@ -162,19 +162,26 @@ yy7: #line 163 "src/parse/lex.cc" yy8: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '{') goto yy32; + if (yych == '{') goto yy16; goto yy5; yy9: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '/') goto yy84; + if (yych == '/') goto yy18; goto yy5; yy10: yyaccept = 1; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych != '*') goto yy5; - yych = (YYCTYPE)*++YYCURSOR; - if (yych == '!') goto yy13; -yy12: + if (yych == '*') goto yy20; + goto yy5; +yy11: + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = (YYCTYPE)*YYCURSOR; + if (yybm[0+yych] & 32) { + goto yy11; + } + if (yych == '#') goto yy14; +yy13: YYCURSOR = YYMARKER; if (yyaccept <= 1) { if (yyaccept == 0) { @@ -183,84 +190,21 @@ yy12: goto yy5; } } else { - goto yy85; - } -yy13: - yych = (YYCTYPE)*++YYCURSOR; - switch (yych) { - case 'g': goto yy16; - case 'i': goto yy15; - case 'm': goto yy17; - case 'r': goto yy19; - case 't': goto yy14; - case 'u': goto yy18; - default: goto yy12; + goto yy19; } yy14: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'y') goto yy74; - goto yy12; -yy15: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy63; - goto yy12; -yy16: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy50; - goto yy12; -yy17: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy42; - goto yy12; -yy18: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy34; - goto yy12; -yy19: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy20; - if (yych == 'u') goto yy21; - goto yy12; -yy20: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == '2') goto yy31; - goto yy12; -yy21: - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'l') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != ':') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != '2') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy12; ++YYCURSOR; -#line 93 "../src/parse/lex.re" - { - if (opts->rFlag) - { - opts.reset_mapCodeName (); - } - else - { - fatal("found 'rules:re2c' block without -r flag"); - } - tok = cur; - return Rules; - } -#line 260 "src/parse/lex.cc" -yy31: - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy12; -yy32: + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = (YYCTYPE)*YYCURSOR; + if (yych <= 0x1F) { + if (yych == '\t') goto yy14; + goto yy13; + } else { + if (yych <= ' ') goto yy14; + if (yych == 'l') goto yy21; + goto yy13; + } +yy16: ++YYCURSOR; #line 78 "../src/parse/lex.re" { @@ -278,158 +222,13 @@ yy32: tok = cur; return Parse; } -#line 282 "src/parse/lex.cc" -yy34: - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != ':') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != '2') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy12; - ++YYCURSOR; -#line 105 "../src/parse/lex.re" - { - if (!opts->rFlag) - { - fatal("found 'use:re2c' block without -r flag"); - } - reuse(); - if (opts->target == opt_t::CODE) - { - const size_t lexeme_len = sizeof ("/*!use:re2c") - 1; - out.wraw(tok, tok_len () - lexeme_len); - } - tok = cur; - return Reuse; - } -#line 312 "src/parse/lex.cc" -yy42: - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'x') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != ':') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != '2') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy12; - ++YYCURSOR; -#line 119 "../src/parse/lex.re" - { - if (opts->target != opt_t::DOT) - { - out.wdelay_yymaxfill (); - } - tok = pos = cur; - ignore_eoc = true; - goto echo; - } -#line 337 "src/parse/lex.cc" -yy50: - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'a') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != ':') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != '2') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy12; - ++YYCURSOR; -#line 128 "../src/parse/lex.re" - { - tok = pos = cur; - out.wdelay_state_goto (opts->topIndent); - ignore_eoc = true; - goto echo; - } -#line 369 "src/parse/lex.cc" -yy63: - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'o') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != ':') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != '2') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy12; - ++YYCURSOR; -#line 134 "../src/parse/lex.re" - { - tok = pos = cur; - ignore_eoc = true; - goto echo; - } -#line 396 "src/parse/lex.cc" -yy74: - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'p') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 's') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != ':') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'r') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != '2') goto yy12; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'c') goto yy12; - ++YYCURSOR; -#line 139 "../src/parse/lex.re" - { - tok = pos = cur; - ignore_eoc = true; - if (opts->target != opt_t::DOT) - { - out.wdelay_line_info ().ws("\n") - .wdelay_types ().ws("\n") - .wline_info (cline, get_fname ().c_str ()); - } - goto echo; - } -#line 427 "src/parse/lex.cc" -yy84: +#line 226 "src/parse/lex.cc" +yy18: yyaccept = 2; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == '\n') goto yy87; - if (yych == '\r') goto yy86; -yy85: + if (yych == '\n') goto yy22; + if (yych == '\r') goto yy24; +yy19: #line 168 "../src/parse/lex.re" { if (ignore_eoc) @@ -448,11 +247,16 @@ yy85: tok = pos = cur; goto echo; } -#line 452 "src/parse/lex.cc" -yy86: +#line 251 "src/parse/lex.cc" +yy20: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '\n') goto yy12; -yy87: + if (yych == '!') goto yy25; + goto yy13; +yy21: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'i') goto yy26; + goto yy13; +yy22: ++YYCURSOR; #line 150 "../src/parse/lex.re" { @@ -473,79 +277,209 @@ yy87: tok = pos = cur; goto echo; } -#line 477 "src/parse/lex.cc" -yy89: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = (YYCTYPE)*YYCURSOR; - if (yybm[0+yych] & 32) { - goto yy89; - } - if (yych != '#') goto yy12; -yy91: - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); - yych = (YYCTYPE)*YYCURSOR; - if (yych <= 0x1F) { - if (yych == '\t') goto yy91; - goto yy12; - } else { - if (yych <= ' ') goto yy91; - if (yych != 'l') goto yy12; - } +#line 281 "src/parse/lex.cc" +yy24: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '\n') goto yy22; + goto yy13; +yy25: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy12; + switch (yych) { + case 'g': goto yy27; + case 'i': goto yy28; + case 'm': goto yy29; + case 'r': goto yy30; + case 't': goto yy31; + case 'u': goto yy32; + default: goto yy13; + } +yy26: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'n') goto yy33; + goto yy13; +yy27: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy34; + goto yy13; +yy28: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'g') goto yy35; + goto yy13; +yy29: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'a') goto yy36; + goto yy13; +yy30: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy37; + if (yych == 'u') goto yy38; + goto yy13; +yy31: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy12; + if (yych == 'y') goto yy39; + goto yy13; +yy32: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy12; + if (yych == 's') goto yy40; + goto yy13; +yy33: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '0') goto yy98; - if (yych <= '9') goto yy12; - goto yy98; -yy97: + if (yych == 'e') goto yy41; + goto yy13; +yy34: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 't') goto yy42; + goto yy13; +yy35: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'n') goto yy43; + goto yy13; +yy36: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'x') goto yy44; + goto yy13; +yy37: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '2') goto yy45; + goto yy13; +yy38: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'l') goto yy46; + goto yy13; +yy39: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'p') goto yy47; + goto yy13; +yy40: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy48; + goto yy13; +yy41: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= '0') goto yy50; + if (yych <= '9') goto yy13; + goto yy50; +yy42: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy51; + goto yy13; +yy43: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'o') goto yy52; + goto yy13; +yy44: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == ':') goto yy53; + goto yy13; +yy45: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'c') goto yy16; + goto yy13; +yy46: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy54; + goto yy13; +yy47: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy55; + goto yy13; +yy48: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == ':') goto yy56; + goto yy13; +yy49: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; YYCTXMARKER = YYCURSOR; -yy98: +yy50: if (yych <= 0x1F) { - if (yych == '\t') goto yy97; - goto yy12; + if (yych == '\t') goto yy49; + goto yy13; } else { - if (yych <= ' ') goto yy97; - if (yych <= '0') goto yy12; - if (yych >= ':') goto yy12; + if (yych <= ' ') goto yy49; + if (yych <= '0') goto yy13; + if (yych <= '9') goto yy57; + goto yy13; } -yy99: +yy51: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 't') goto yy59; + goto yy13; +yy52: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'r') goto yy60; + goto yy13; +yy53: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'r') goto yy61; + goto yy13; +yy54: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy62; + goto yy13; +yy55: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy63; + goto yy13; +yy56: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'r') goto yy64; + goto yy13; +yy57: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = (YYCTYPE)*YYCURSOR; if (yybm[0+yych] & 64) { - goto yy99; + goto yy57; } if (yych <= '\f') { - if (yych <= 0x08) goto yy12; - if (yych <= '\t') goto yy101; - if (yych <= '\n') goto yy103; - goto yy12; + if (yych <= 0x08) goto yy13; + if (yych <= '\t') goto yy65; + if (yych <= '\n') goto yy67; + goto yy13; } else { - if (yych <= '\r') goto yy105; - if (yych != ' ') goto yy12; + if (yych <= '\r') goto yy69; + if (yych == ' ') goto yy65; + goto yy13; } -yy101: +yy59: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'a') goto yy70; + goto yy13; +yy60: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy71; + goto yy13; +yy61: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy72; + goto yy13; +yy62: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == ':') goto yy73; + goto yy13; +yy63: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == ':') goto yy74; + goto yy13; +yy64: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy75; + goto yy13; +yy65: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; if (yych <= 0x1F) { - if (yych == '\t') goto yy101; - goto yy12; + if (yych == '\t') goto yy65; + goto yy13; } else { - if (yych <= ' ') goto yy101; - if (yych == '"') goto yy106; - goto yy12; + if (yych <= ' ') goto yy65; + if (yych == '"') goto yy76; + goto yy13; } -yy103: +yy67: ++YYCURSOR; YYCURSOR = YYCTXMARKER; #line 185 "../src/parse/lex.re" @@ -553,30 +487,207 @@ yy103: set_sourceline (); goto echo; } -#line 557 "src/parse/lex.cc" -yy105: +#line 491 "src/parse/lex.cc" +yy69: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '\n') goto yy67; + goto yy13; +yy70: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 't') goto yy78; + goto yy13; +yy71: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '\n') goto yy103; - goto yy12; -yy106: + if (yych == ':') goto yy79; + goto yy13; +yy72: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '2') goto yy80; + goto yy13; +yy73: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'r') goto yy81; + goto yy13; +yy74: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'r') goto yy82; + goto yy13; +yy75: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '2') goto yy83; + goto yy13; +yy76: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = (YYCTYPE)*YYCURSOR; if (yybm[0+yych] & 128) { - goto yy106; + goto yy76; } - if (yych <= '\n') goto yy12; - if (yych <= '"') goto yy109; + if (yych <= '\n') goto yy13; + if (yych <= '"') goto yy84; + goto yy85; +yy78: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy86; + goto yy13; +yy79: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'r') goto yy87; + goto yy13; +yy80: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'c') goto yy88; + goto yy13; +yy81: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy90; + goto yy13; +yy82: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy91; + goto yy13; +yy83: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'c') goto yy92; + goto yy13; +yy84: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '\n') goto yy67; + if (yych == '\r') goto yy69; + goto yy13; +yy85: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; - if (yych == '\n') goto yy12; - goto yy106; -yy109: + if (yych == '\n') goto yy13; + goto yy76; +yy86: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == ':') goto yy94; + goto yy13; +yy87: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy95; + goto yy13; +yy88: + ++YYCURSOR; +#line 119 "../src/parse/lex.re" + { + if (opts->target != opt_t::DOT) + { + out.wdelay_yymaxfill (); + } + tok = pos = cur; + ignore_eoc = true; + goto echo; + } +#line 585 "src/parse/lex.cc" +yy90: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '2') goto yy96; + goto yy13; +yy91: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '2') goto yy97; + goto yy13; +yy92: ++YYCURSOR; - if ((yych = (YYCTYPE)*YYCURSOR) == '\n') goto yy103; - if (yych == '\r') goto yy105; - goto yy12; +#line 105 "../src/parse/lex.re" + { + if (!opts->rFlag) + { + fatal("found 'use:re2c' block without -r flag"); + } + reuse(); + if (opts->target == opt_t::CODE) + { + const size_t lexeme_len = sizeof ("/*!use:re2c") - 1; + out.wraw(tok, tok_len () - lexeme_len); + } + tok = cur; + return Reuse; + } +#line 611 "src/parse/lex.cc" +yy94: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'r') goto yy98; + goto yy13; +yy95: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '2') goto yy99; + goto yy13; +yy96: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'c') goto yy100; + goto yy13; +yy97: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'c') goto yy102; + goto yy13; +yy98: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy104; + goto yy13; +yy99: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'c') goto yy105; + goto yy13; +yy100: + ++YYCURSOR; +#line 93 "../src/parse/lex.re" + { + if (opts->rFlag) + { + opts.reset_mapCodeName (); + } + else + { + fatal("found 'rules:re2c' block without -r flag"); + } + tok = cur; + return Rules; + } +#line 651 "src/parse/lex.cc" +yy102: + ++YYCURSOR; +#line 139 "../src/parse/lex.re" + { + tok = pos = cur; + ignore_eoc = true; + if (opts->target != opt_t::DOT) + { + out.wdelay_line_info ().ws("\n") + .wdelay_types ().ws("\n") + .wline_info (cline, get_fname ().c_str ()); + } + goto echo; + } +#line 666 "src/parse/lex.cc" +yy104: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '2') goto yy107; + goto yy13; +yy105: + ++YYCURSOR; +#line 134 "../src/parse/lex.re" + { + tok = pos = cur; + ignore_eoc = true; + goto echo; + } +#line 679 "src/parse/lex.cc" +yy107: + yych = (YYCTYPE)*++YYCURSOR; + if (yych != 'c') goto yy13; + ++YYCURSOR; +#line 128 "../src/parse/lex.re" + { + tok = pos = cur; + out.wdelay_state_goto (opts->topIndent); + ignore_eoc = true; + goto echo; + } +#line 691 "src/parse/lex.cc" } #line 216 "../src/parse/lex.re" @@ -598,19 +709,19 @@ scan: start: -#line 602 "src/parse/lex.cc" +#line 713 "src/parse/lex.cc" { YYCTYPE yych; unsigned int yyaccept = 0; static const unsigned char yybm[] = { 128, 128, 128, 128, 128, 128, 128, 128, - 128, 192, 0, 128, 128, 128, 128, 128, + 128, 144, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 192, 128, 0, 128, 128, 128, 128, 128, + 144, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 128, 128, 128, 128, 128, 128, + 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 128, 128, 128, 128, 128, 128, 128, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, @@ -638,74 +749,64 @@ start: }; if ((YYLIMIT - YYCURSOR) < 6) YYFILL(6); yych = (YYCTYPE)*YYCURSOR; - if (yych <= '.') { - if (yych <= '"') { - if (yych <= '\f') { + if (yybm[0+yych] & 16) { + goto yy114; + } + if (yych <= '9') { + if (yych <= '&') { + if (yych <= '\r') { if (yych <= 0x08) goto yy112; - if (yych <= '\t') goto yy114; - if (yych <= '\n') goto yy116; + if (yych <= '\n') goto yy117; + if (yych >= '\r') goto yy119; } else { - if (yych <= 0x1F) { - if (yych <= '\r') goto yy118; + if (yych <= '"') { + if (yych >= '"') goto yy120; } else { - if (yych <= ' ') goto yy114; - if (yych >= '"') goto yy119; + if (yych == '%') goto yy122; } } } else { - if (yych <= ')') { - if (yych <= '%') { - if (yych >= '%') goto yy121; - } else { - if (yych <= '&') goto yy112; - if (yych <= '\'') goto yy122; - goto yy124; - } + if (yych <= '+') { + if (yych <= '\'') goto yy123; + if (yych <= ')') goto yy125; + if (yych <= '*') goto yy127; + goto yy129; } else { - if (yych <= '+') { - if (yych <= '*') goto yy126; - goto yy128; + if (yych <= '-') { + if (yych <= ',') goto yy125; } else { - if (yych <= ',') goto yy124; - if (yych >= '.') goto yy130; + if (yych <= '.') goto yy131; + if (yych <= '/') goto yy133; + goto yy134; } } } } else { - if (yych <= '[') { - if (yych <= '<') { - if (yych <= '9') { - if (yych <= '/') goto yy132; - goto yy133; - } else { - if (yych <= ':') goto yy134; - if (yych <= ';') goto yy124; - goto yy135; - } + if (yych <= '\\') { + if (yych <= '>') { + if (yych <= ':') goto yy135; + if (yych == '<') goto yy136; + goto yy125; } else { - if (yych <= '?') { - if (yych <= '>') goto yy124; - goto yy128; + if (yych <= '@') { + if (yych <= '?') goto yy129; } else { - if (yych <= '@') goto yy112; - if (yych <= 'Z') goto yy133; - goto yy136; + if (yych <= 'Z') goto yy134; + if (yych <= '[') goto yy137; + goto yy125; } } } else { if (yych <= 'q') { - if (yych <= '^') { - if (yych <= '\\') goto yy124; - } else { - if (yych != '`') goto yy133; - } + if (yych == '_') goto yy134; + if (yych >= 'a') goto yy134; } else { if (yych <= 'z') { - if (yych <= 'r') goto yy138; - goto yy133; + if (yych <= 'r') goto yy139; + goto yy134; } else { - if (yych <= '{') goto yy139; - if (yych <= '|') goto yy124; + if (yych <= '{') goto yy140; + if (yych <= '|') goto yy125; } } } @@ -718,27 +819,29 @@ yy113: fatalf("unexpected character: '%c'", *tok); goto scan; } -#line 722 "src/parse/lex.cc" +#line 823 "src/parse/lex.cc" yy114: ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; - goto yy220; -yy115: + if (yybm[0+yych] & 16) { + goto yy114; + } #line 372 "../src/parse/lex.re" { goto scan; } -#line 732 "src/parse/lex.cc" -yy116: +#line 835 "src/parse/lex.cc" +yy117: yyaccept = 0; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy198; + if (yych == '\t') goto yy142; } else { - if (yych <= ' ') goto yy198; - if (yych == '#') goto yy200; + if (yych <= ' ') goto yy142; + if (yych == '#') goto yy145; } -yy117: +yy118: #line 381 "../src/parse/lex.re" { if (cur == eof) return 0; @@ -746,229 +849,174 @@ yy117: cline++; goto scan; } -#line 750 "src/parse/lex.cc" -yy118: +#line 853 "src/parse/lex.cc" +yy119: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '\n') goto yy197; + if (yych == '\n') goto yy117; goto yy113; -yy119: +yy120: ++YYCURSOR; #line 265 "../src/parse/lex.re" { yylval.regexp = lex_str('"', opts->bCaseInsensitive || opts->bCaseInverted); return TOKEN_REGEXP; } -#line 759 "src/parse/lex.cc" -yy121: +#line 862 "src/parse/lex.cc" +yy122: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '}') goto yy195; + if (yych == '}') goto yy147; goto yy113; -yy122: +yy123: ++YYCURSOR; #line 264 "../src/parse/lex.re" { yylval.regexp = lex_str('\'', opts->bCaseInsensitive || !opts->bCaseInverted); return TOKEN_REGEXP; } -#line 768 "src/parse/lex.cc" -yy124: - ++YYCURSOR; +#line 871 "src/parse/lex.cc" yy125: + ++YYCURSOR; +yy126: #line 275 "../src/parse/lex.re" { return *tok; } -#line 776 "src/parse/lex.cc" -yy126: +#line 879 "src/parse/lex.cc" +yy127: ++YYCURSOR; - if ((yych = (YYCTYPE)*YYCURSOR) == '/') goto yy195; + if ((yych = (YYCTYPE)*YYCURSOR) == '/') goto yy147; #line 279 "../src/parse/lex.re" { yylval.op = *tok; return TOKEN_STAR; } -#line 785 "src/parse/lex.cc" -yy128: +#line 888 "src/parse/lex.cc" +yy129: ++YYCURSOR; #line 283 "../src/parse/lex.re" { yylval.op = *tok; return TOKEN_CLOSE; } -#line 793 "src/parse/lex.cc" -yy130: +#line 896 "src/parse/lex.cc" +yy131: ++YYCURSOR; #line 367 "../src/parse/lex.re" { yylval.regexp = mkDot(); return TOKEN_REGEXP; } -#line 801 "src/parse/lex.cc" -yy132: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == '*') goto yy191; - if (yych == '/') goto yy193; - goto yy125; +#line 904 "src/parse/lex.cc" yy133: yych = (YYCTYPE)*++YYCURSOR; - YYCTXMARKER = YYCURSOR; - goto yy165; + if (yych == '*') goto yy149; + if (yych == '/') goto yy151; + goto yy126; yy134: yych = (YYCTYPE)*++YYCURSOR; YYCTXMARKER = YYCURSOR; - if (yych == '=') goto yy187; - goto yy113; + goto yy159; yy135: + yych = (YYCTYPE)*++YYCURSOR; + YYCTXMARKER = YYCURSOR; + if (yych == '=') goto yy160; + goto yy113; +yy136: yyaccept = 1; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == '!') goto yy178; - if (yych == '>') goto yy180; - goto yy125; -yy136: + if (yych == '!') goto yy162; + if (yych == '>') goto yy164; + goto yy126; +yy137: ++YYCURSOR; - if ((yych = (YYCTYPE)*YYCURSOR) == '^') goto yy176; + if ((yych = (YYCTYPE)*YYCURSOR) == '^') goto yy165; #line 266 "../src/parse/lex.re" { yylval.regexp = lex_cls(false); return TOKEN_REGEXP; } -#line 827 "src/parse/lex.cc" -yy138: +#line 930 "src/parse/lex.cc" +yy139: yych = (YYCTYPE)*++YYCURSOR; YYCTXMARKER = YYCURSOR; - if (yych == 'e') goto yy166; - goto yy165; -yy139: + if (yych == 'e') goto yy167; + goto yy159; +yy140: yyaccept = 2; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy141; + if (yybm[0+yych] & 64) { + goto yy170; } if (yych <= 'Z') { - if (yych == ',') goto yy146; - if (yych >= 'A') goto yy144; + if (yych == ',') goto yy168; + if (yych >= 'A') goto yy172; } else { if (yych <= '_') { - if (yych >= '_') goto yy144; + if (yych >= '_') goto yy172; } else { - if (yych <= '`') goto yy140; - if (yych <= 'z') goto yy144; + if (yych <= '`') goto yy141; + if (yych <= 'z') goto yy172; } } -yy140: +yy141: #line 235 "../src/parse/lex.re" { depth = 1; goto code; } -#line 856 "src/parse/lex.cc" -yy141: +#line 959 "src/parse/lex.cc" +yy142: ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy141; - } - if (yych <= '^') { - if (yych <= ',') { - if (yych >= ',') goto yy152; - } else { - if (yych <= '@') goto yy143; - if (yych <= 'Z') goto yy144; - } + if (yych <= 0x1F) { + if (yych == '\t') goto yy142; } else { - if (yych <= 'z') { - if (yych != '`') goto yy144; - } else { - if (yych == '}') goto yy150; - } + if (yych <= ' ') goto yy142; + if (yych == '#') goto yy145; } -yy143: +yy144: YYCURSOR = YYMARKER; if (yyaccept <= 1) { if (yyaccept == 0) { - goto yy117; + goto yy118; } else { - goto yy125; + goto yy126; } } else { if (yyaccept == 2) { - goto yy140; + goto yy141; } else { - goto yy147; + goto yy169; } } -yy144: +yy145: ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = (YYCTYPE)*YYCURSOR; - if (yybm[0+yych] & 32) { + if (yych <= 0x1F) { + if (yych == '\t') goto yy145; + goto yy144; + } else { + if (yych <= ' ') goto yy145; + if (yych == 'l') goto yy174; goto yy144; } - if (yych == '}') goto yy148; - goto yy143; -yy146: - ++YYCURSOR; yy147: -#line 319 "../src/parse/lex.re" - { - fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers"); - } -#line 909 "src/parse/lex.cc" -yy148: ++YYCURSOR; -#line 323 "../src/parse/lex.re" - { - if (!opts->FFlag) { - fatal("curly braces for names only allowed with -F switch"); - } - yylval.str = new std::string (tok + 1, tok_len () - 2); // -2 to omit braces - return TOKEN_ID; - } -#line 920 "src/parse/lex.cc" -yy150: - ++YYCURSOR; -#line 288 "../src/parse/lex.re" +#line 259 "../src/parse/lex.re" { - if (!s_to_u32_unsafe (tok + 1, cur - 1, yylval.extop.min)) - { - fatal ("repetition count overflow"); - } - yylval.extop.max = yylval.extop.min; - return TOKEN_CLOSESIZE; + tok = cur; + return 0; } -#line 932 "src/parse/lex.cc" -yy152: - yyaccept = 3; - yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy147; - if (yych <= '9') goto yy155; - if (yych != '}') goto yy147; +#line 1004 "src/parse/lex.cc" +yy149: ++YYCURSOR; -#line 310 "../src/parse/lex.re" +#line 253 "../src/parse/lex.re" { - if (!s_to_u32_unsafe (tok + 1, cur - 2, yylval.extop.min)) - { - fatal ("repetition lower bound overflow"); - } - yylval.extop.max = std::numeric_limits<uint32_t>::max(); - return TOKEN_CLOSESIZE; + depth = 1; + goto comment; } -#line 949 "src/parse/lex.cc" -yy155: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = (YYCTYPE)*YYCURSOR; - if (yych <= '/') goto yy143; - if (yych <= '9') goto yy155; - if (yych != '}') goto yy143; +#line 1012 "src/parse/lex.cc" +yy151: ++YYCURSOR; -#line 297 "../src/parse/lex.re" +#line 250 "../src/parse/lex.re" { - const char * p = strchr (tok, ','); - if (!s_to_u32_unsafe (tok + 1, p, yylval.extop.min)) - { - fatal ("repetition lower bound overflow"); - } - if (!s_to_u32_unsafe (p + 1, cur - 1, yylval.extop.max)) - { - fatal ("repetition upper bound overflow"); - } - return TOKEN_CLOSESIZE; - } -#line 971 "src/parse/lex.cc" -yy159: + goto nextLine; + } +#line 1019 "src/parse/lex.cc" +yy153: ++YYCURSOR; YYCURSOR = YYCTXMARKER; #line 351 "../src/parse/lex.re" @@ -987,68 +1035,131 @@ yy159: return TOKEN_REGEXP; } } -#line 991 "src/parse/lex.cc" -yy161: +#line 1039 "src/parse/lex.cc" +yy155: yych = (YYCTYPE)*++YYCURSOR; - goto yy174; -yy162: + goto yy178; +yy156: ++YYCURSOR; -yy163: YYCURSOR = YYCTXMARKER; #line 346 "../src/parse/lex.re" { yylval.str = new std::string (tok, tok_len ()); return TOKEN_ID; } -#line 1004 "src/parse/lex.cc" -yy164: +#line 1051 "src/parse/lex.cc" +yy158: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = (YYCTYPE)*YYCURSOR; YYCTXMARKER = YYCURSOR; -yy165: - if (yych <= '9') { - if (yych <= ' ') { - if (yych == '\t') goto yy161; - if (yych <= 0x1F) goto yy159; - goto yy161; - } else { - if (yych == ',') goto yy162; - if (yych <= '/') goto yy159; - goto yy164; - } +yy159: + if (yybm[0+yych] & 32) { + goto yy158; + } + if (yych <= ' ') { + if (yych == '\t') goto yy155; + if (yych <= 0x1F) goto yy153; + goto yy155; } else { - if (yych <= 'Z') { - if (yych <= '<') goto yy159; - if (yych <= '>') goto yy162; - if (yych <= '@') goto yy159; - goto yy164; + if (yych <= ',') { + if (yych <= '+') goto yy153; + goto yy156; } else { - if (yych <= '_') { - if (yych <= '^') goto yy159; - goto yy164; - } else { - if (yych <= '`') goto yy159; - if (yych <= 'z') goto yy164; - goto yy159; - } + if (yych <= '<') goto yy153; + if (yych <= '>') goto yy156; + goto yy153; } } -yy166: - yych = (YYCTYPE)*++YYCURSOR; - YYCTXMARKER = YYCURSOR; - if (yych != '2') goto yy165; +yy160: + ++YYCURSOR; + if ((yych = (YYCTYPE)*YYCURSOR) == '>') goto yy179; +#line 244 "../src/parse/lex.re" + { + tok += 2; /* skip ":=" */ + depth = 0; + goto code; + } +#line 1084 "src/parse/lex.cc" +yy162: + ++YYCURSOR; +#line 272 "../src/parse/lex.re" + { + return TOKEN_SETUP; + } +#line 1091 "src/parse/lex.cc" +yy164: yych = (YYCTYPE)*++YYCURSOR; YYCTXMARKER = YYCURSOR; - if (yych != 'c') goto yy165; + goto yy182; +yy165: + ++YYCURSOR; +#line 267 "../src/parse/lex.re" + { yylval.regexp = lex_cls(true); return TOKEN_REGEXP; } +#line 1100 "src/parse/lex.cc" +yy167: yych = (YYCTYPE)*++YYCURSOR; YYCTXMARKER = YYCURSOR; - if (yych != ':') goto yy165; + if (yych == '2') goto yy187; + goto yy159; +yy168: ++YYCURSOR; -#line 331 "../src/parse/lex.re" - { lex_conf (); return TOKEN_CONF; } -#line 1051 "src/parse/lex.cc" -yy171: +yy169: +#line 319 "../src/parse/lex.re" + { + fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers"); + } +#line 1113 "src/parse/lex.cc" +yy170: + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = (YYCTYPE)*YYCURSOR; + if (yybm[0+yych] & 64) { + goto yy170; + } + if (yych <= '^') { + if (yych <= ',') { + if (yych <= '+') goto yy144; + goto yy188; + } else { + if (yych <= '@') goto yy144; + if (yych >= '[') goto yy144; + } + } else { + if (yych <= 'z') { + if (yych == '`') goto yy144; + } else { + if (yych == '}') goto yy189; + goto yy144; + } + } +yy172: + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = (YYCTYPE)*YYCURSOR; + if (yych <= '^') { + if (yych <= '9') { + if (yych <= '/') goto yy144; + goto yy172; + } else { + if (yych <= '@') goto yy144; + if (yych <= 'Z') goto yy172; + goto yy144; + } + } else { + if (yych <= 'z') { + if (yych == '`') goto yy144; + goto yy172; + } else { + if (yych == '}') goto yy191; + goto yy144; + } + } +yy174: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'i') goto yy193; + goto yy144; +yy175: ++YYCURSOR; YYCURSOR = YYCTXMARKER; #line 333 "../src/parse/lex.re" @@ -1064,37 +1175,34 @@ yy171: return TOKEN_ID; } } -#line 1068 "src/parse/lex.cc" -yy173: +#line 1179 "src/parse/lex.cc" +yy177: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; -yy174: - if (yybm[0+yych] & 64) { - goto yy173; - } - if (yych == ',') goto yy175; - if (yych <= '<') goto yy171; - if (yych >= '?') goto yy171; -yy175: - yych = (YYCTYPE)*++YYCURSOR; - goto yy163; -yy176: - ++YYCURSOR; -#line 267 "../src/parse/lex.re" - { yylval.regexp = lex_cls(true); return TOKEN_REGEXP; } -#line 1087 "src/parse/lex.cc" yy178: + if (yych <= ' ') { + if (yych == '\t') goto yy177; + if (yych <= 0x1F) goto yy175; + goto yy177; + } else { + if (yych <= ',') { + if (yych <= '+') goto yy175; + goto yy156; + } else { + if (yych <= '<') goto yy175; + if (yych <= '>') goto yy156; + goto yy175; + } + } +yy179: ++YYCURSOR; -#line 272 "../src/parse/lex.re" + YYCURSOR = YYCTXMARKER; +#line 240 "../src/parse/lex.re" { - return TOKEN_SETUP; + return *tok; } -#line 1094 "src/parse/lex.cc" -yy180: - yych = (YYCTYPE)*++YYCURSOR; - YYCTXMARKER = YYCURSOR; - goto yy182; +#line 1206 "src/parse/lex.cc" yy181: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); @@ -1102,168 +1210,179 @@ yy181: yy182: if (yych <= '9') { if (yych <= '\t') { - if (yych <= 0x08) goto yy143; + if (yych <= 0x08) goto yy144; goto yy181; } else { if (yych == ' ') goto yy181; - goto yy143; + goto yy144; } } else { if (yych <= '=') { - if (yych <= ':') goto yy186; - if (yych <= '<') goto yy143; - goto yy185; + if (yych <= ':') goto yy183; + if (yych <= '<') goto yy144; + goto yy184; } else { - if (yych != '{') goto yy143; + if (yych == '{') goto yy185; + goto yy144; } } yy183: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '=') goto yy185; + goto yy144; +yy184: + yych = (YYCTYPE)*++YYCURSOR; + if (yych != '>') goto yy144; +yy185: ++YYCURSOR; YYCURSOR = YYCTXMARKER; #line 269 "../src/parse/lex.re" { return TOKEN_NOCOND; } -#line 1128 "src/parse/lex.cc" -yy185: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == '>') goto yy183; - goto yy143; -yy186: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == '=') goto yy183; - goto yy143; +#line 1244 "src/parse/lex.cc" yy187: - ++YYCURSOR; - if ((yych = (YYCTYPE)*YYCURSOR) == '>') goto yy189; -#line 244 "../src/parse/lex.re" - { - tok += 2; /* skip ":=" */ - depth = 0; - goto code; - } -#line 1146 "src/parse/lex.cc" + yych = (YYCTYPE)*++YYCURSOR; + YYCTXMARKER = YYCURSOR; + if (yych == 'c') goto yy194; + goto yy159; +yy188: + yyaccept = 3; + yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy169; + if (yych <= '9') goto yy195; + if (yych == '}') goto yy197; + goto yy169; yy189: ++YYCURSOR; - YYCURSOR = YYCTXMARKER; -#line 240 "../src/parse/lex.re" +#line 288 "../src/parse/lex.re" { - return *tok; + if (!s_to_u32_unsafe (tok + 1, cur - 1, yylval.extop.min)) + { + fatal ("repetition count overflow"); + } + yylval.extop.max = yylval.extop.min; + return TOKEN_CLOSESIZE; } -#line 1154 "src/parse/lex.cc" +#line 1268 "src/parse/lex.cc" yy191: ++YYCURSOR; -#line 253 "../src/parse/lex.re" +#line 323 "../src/parse/lex.re" { - depth = 1; - goto comment; + if (!opts->FFlag) { + fatal("curly braces for names only allowed with -F switch"); + } + yylval.str = new std::string (tok + 1, tok_len () - 2); // -2 to omit braces + return TOKEN_ID; } -#line 1162 "src/parse/lex.cc" +#line 1279 "src/parse/lex.cc" yy193: - ++YYCURSOR; -#line 250 "../src/parse/lex.re" - { - goto nextLine; - } -#line 1169 "src/parse/lex.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'n') goto yy199; + goto yy144; +yy194: + yych = (YYCTYPE)*++YYCURSOR; + YYCTXMARKER = YYCURSOR; + if (yych == ':') goto yy200; + goto yy159; yy195: ++YYCURSOR; -#line 259 "../src/parse/lex.re" - { - tok = cur; - return 0; - } -#line 1177 "src/parse/lex.cc" -yy197: - yyaccept = 0; - yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych <= 0x1F) { - if (yych != '\t') goto yy117; - } else { - if (yych <= ' ') goto yy198; - if (yych == '#') goto yy200; - goto yy117; - } -yy198: - ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; - if (yych <= 0x1F) { - if (yych == '\t') goto yy198; - goto yy143; - } else { - if (yych <= ' ') goto yy198; - if (yych != '#') goto yy143; - } -yy200: + if (yych <= '/') goto yy144; + if (yych <= '9') goto yy195; + if (yych == '}') goto yy202; + goto yy144; +yy197: ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); - yych = (YYCTYPE)*YYCURSOR; - if (yych <= 0x1F) { - if (yych == '\t') goto yy200; - goto yy143; - } else { - if (yych <= ' ') goto yy200; - if (yych != 'l') goto yy143; - } - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy143; - yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy143; +#line 310 "../src/parse/lex.re" + { + if (!s_to_u32_unsafe (tok + 1, cur - 2, yylval.extop.min)) + { + fatal ("repetition lower bound overflow"); + } + yylval.extop.max = std::numeric_limits<uint32_t>::max(); + return TOKEN_CLOSESIZE; + } +#line 1308 "src/parse/lex.cc" +yy199: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy143; + if (yych == 'e') goto yy204; + goto yy144; +yy200: + ++YYCURSOR; +#line 331 "../src/parse/lex.re" + { lex_conf (); return TOKEN_CONF; } +#line 1317 "src/parse/lex.cc" +yy202: + ++YYCURSOR; +#line 297 "../src/parse/lex.re" + { + const char * p = strchr (tok, ','); + if (!s_to_u32_unsafe (tok + 1, p, yylval.extop.min)) + { + fatal ("repetition lower bound overflow"); + } + if (!s_to_u32_unsafe (p + 1, cur - 1, yylval.extop.max)) + { + fatal ("repetition upper bound overflow"); + } + return TOKEN_CLOSESIZE; + } +#line 1333 "src/parse/lex.cc" +yy204: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '0') goto yy207; - if (yych <= '9') goto yy143; - goto yy207; -yy206: + if (yych <= '0') goto yy206; + if (yych <= '9') goto yy144; + goto yy206; +yy205: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; YYCTXMARKER = YYCURSOR; -yy207: +yy206: if (yych <= 0x1F) { - if (yych == '\t') goto yy206; - goto yy143; + if (yych == '\t') goto yy205; + goto yy144; } else { - if (yych <= ' ') goto yy206; - if (yych <= '0') goto yy143; - if (yych >= ':') goto yy143; + if (yych <= ' ') goto yy205; + if (yych <= '0') goto yy144; + if (yych >= ':') goto yy144; } -yy208: +yy207: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = (YYCTYPE)*YYCURSOR; if (yych <= '\r') { if (yych <= '\t') { - if (yych <= 0x08) goto yy143; + if (yych <= 0x08) goto yy144; } else { - if (yych <= '\n') goto yy212; - if (yych <= '\f') goto yy143; - goto yy214; + if (yych <= '\n') goto yy211; + if (yych <= '\f') goto yy144; + goto yy213; } } else { if (yych <= ' ') { - if (yych <= 0x1F) goto yy143; + if (yych <= 0x1F) goto yy144; } else { - if (yych <= '/') goto yy143; - if (yych <= '9') goto yy208; - goto yy143; + if (yych <= '/') goto yy144; + if (yych <= '9') goto yy207; + goto yy144; } } -yy210: +yy209: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; if (yych <= 0x1F) { - if (yych == '\t') goto yy210; - goto yy143; + if (yych == '\t') goto yy209; + goto yy144; } else { - if (yych <= ' ') goto yy210; - if (yych == '"') goto yy215; - goto yy143; + if (yych <= ' ') goto yy209; + if (yych == '"') goto yy214; + goto yy144; } -yy212: +yy211: ++YYCURSOR; YYCURSOR = YYCTXMARKER; #line 376 "../src/parse/lex.re" @@ -1271,141 +1390,130 @@ yy212: set_sourceline (); goto scan; } -#line 1275 "src/parse/lex.cc" -yy214: +#line 1394 "src/parse/lex.cc" +yy213: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '\n') goto yy212; - goto yy143; -yy215: + if (yych == '\n') goto yy211; + goto yy144; +yy214: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = (YYCTYPE)*YYCURSOR; if (yybm[0+yych] & 128) { - goto yy215; + goto yy214; } - if (yych <= '\n') goto yy143; - if (yych <= '"') goto yy218; - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = (YYCTYPE)*YYCURSOR; - if (yych == '\n') goto yy143; - goto yy215; -yy218: + if (yych <= '\n') goto yy144; + if (yych >= '#') goto yy217; yych = (YYCTYPE)*++YYCURSOR; - if (yych == '\n') goto yy212; - if (yych == '\r') goto yy214; - goto yy143; -yy219: + if (yych == '\n') goto yy211; + if (yych == '\r') goto yy213; + goto yy144; +yy217: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; -yy220: - if (yych == '\t') goto yy219; - if (yych == ' ') goto yy219; - goto yy115; + if (yych == '\n') goto yy144; + goto yy214; } #line 392 "../src/parse/lex.re" flex_name: -#line 1313 "src/parse/lex.cc" +#line 1424 "src/parse/lex.cc" { YYCTYPE yych; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = (YYCTYPE)*YYCURSOR; - if (yych == '\n') goto yy225; - if (yych == '\r') goto yy227; + if (yych == '\n') goto yy222; + if (yych == '\r') goto yy224; ++YYCURSOR; -yy224: +yy221: #line 403 "../src/parse/lex.re" { YYCURSOR = tok; goto start; } -#line 1327 "src/parse/lex.cc" -yy225: +#line 1438 "src/parse/lex.cc" +yy222: ++YYCURSOR; -yy226: #line 397 "../src/parse/lex.re" { YYCURSOR = tok; lexer_state = LEX_NORMAL; return TOKEN_FID_END; } -#line 1337 "src/parse/lex.cc" -yy227: - yych = (YYCTYPE)*++YYCURSOR; - if (yych != '\n') goto yy224; +#line 1447 "src/parse/lex.cc" +yy224: ++YYCURSOR; - yych = (YYCTYPE)*YYCURSOR; - goto yy226; + if ((yych = (YYCTYPE)*YYCURSOR) == '\n') goto yy222; + goto yy221; } #line 407 "../src/parse/lex.re" code: -#line 1350 "src/parse/lex.cc" +#line 1458 "src/parse/lex.cc" { YYCTYPE yych; unsigned int yyaccept = 0; static const unsigned char yybm[] = { - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 112, 0, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 112, 48, 16, 48, 48, 48, 48, 32, - 48, 48, 48, 48, 48, 48, 48, 48, - 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 0, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 112, 0, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 112, 96, 64, 96, 96, 96, 96, 32, + 96, 96, 96, 96, 96, 96, 96, 96, + 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 0, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, }; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = (YYCTYPE)*YYCURSOR; if (yych <= '&') { if (yych <= '\n') { - if (yych <= 0x00) goto yy231; - if (yych <= '\t') goto yy233; - goto yy235; + if (yych <= 0x00) goto yy227; + if (yych <= '\t') goto yy229; + goto yy231; } else { - if (yych == '"') goto yy237; - goto yy233; + if (yych == '"') goto yy233; + goto yy229; } } else { if (yych <= '{') { - if (yych <= '\'') goto yy238; - if (yych <= 'z') goto yy233; - goto yy239; + if (yych <= '\'') goto yy234; + if (yych <= 'z') goto yy229; + goto yy235; } else { - if (yych == '}') goto yy241; - goto yy233; + if (yych == '}') goto yy237; + goto yy229; } } -yy231: +yy227: ++YYCURSOR; #line 470 "../src/parse/lex.re" { @@ -1419,34 +1527,34 @@ yy231: } goto code; } -#line 1423 "src/parse/lex.cc" -yy233: +#line 1531 "src/parse/lex.cc" +yy229: ++YYCURSOR; -yy234: +yy230: #line 484 "../src/parse/lex.re" { goto code; } -#line 1431 "src/parse/lex.cc" -yy235: +#line 1539 "src/parse/lex.cc" +yy231: yyaccept = 0; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); YYCTXMARKER = YYCURSOR; if (yych <= '\r') { if (yych <= '\t') { - if (yych >= '\t') goto yy252; + if (yych >= '\t') goto yy239; } else { - if (yych <= '\n') goto yy254; - if (yych >= '\r') goto yy254; + if (yych <= '\n') goto yy241; + if (yych >= '\r') goto yy241; } } else { if (yych <= ' ') { - if (yych >= ' ') goto yy252; + if (yych >= ' ') goto yy239; } else { - if (yych == '#') goto yy255; + if (yych == '#') goto yy242; } } -yy236: +yy232: #line 451 "../src/parse/lex.re" { if (depth == 0) @@ -1467,18 +1575,18 @@ yy236: cline++; goto code; } -#line 1471 "src/parse/lex.cc" -yy237: +#line 1579 "src/parse/lex.cc" +yy233: yyaccept = 1; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == '\n') goto yy234; - goto yy250; -yy238: + if (yych == '\n') goto yy230; + goto yy246; +yy234: yyaccept = 1; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == '\n') goto yy234; - goto yy244; -yy239: + if (yych == '\n') goto yy230; + goto yy251; +yy235: ++YYCURSOR; #line 423 "../src/parse/lex.re" { @@ -1492,8 +1600,8 @@ yy239: } goto code; } -#line 1496 "src/parse/lex.cc" -yy241: +#line 1604 "src/parse/lex.cc" +yy237: ++YYCURSOR; #line 411 "../src/parse/lex.re" { @@ -1508,147 +1616,159 @@ yy241: } goto code; } -#line 1512 "src/parse/lex.cc" -yy243: +#line 1620 "src/parse/lex.cc" +yy239: + yyaccept = 2; + yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); + if (yych <= 0x1F) { + if (yych == '\t') goto yy253; + } else { + if (yych <= ' ') goto yy253; + if (yych == '#') goto yy242; + } +yy240: + YYCURSOR = YYCTXMARKER; +#line 438 "../src/parse/lex.re" + { + if (depth == 0) + { + goto code; + } + else if (cur == eof) + { + fatal("missing '}'"); + } + pos = cur; + cline++; + goto code; + } +#line 1646 "src/parse/lex.cc" +yy241: + yych = (YYCTYPE)*++YYCURSOR; + goto yy240; +yy242: ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = (YYCTYPE)*YYCURSOR; -yy244: if (yybm[0+yych] & 16) { - goto yy243; + goto yy242; } - if (yych <= '\n') goto yy245; - if (yych <= '\'') goto yy247; - goto yy246; -yy245: + if (yych == 'l') goto yy255; +yy244: YYCURSOR = YYMARKER; if (yyaccept <= 1) { if (yyaccept == 0) { - goto yy236; + goto yy232; } else { - goto yy234; + goto yy230; } } else { - goto yy253; + goto yy240; } -yy246: +yy245: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; - if (yych == '\n') goto yy245; - goto yy243; +yy246: + if (yybm[0+yych] & 32) { + goto yy245; + } + if (yych <= '\n') goto yy244; + if (yych >= '#') goto yy249; yy247: ++YYCURSOR; #line 481 "../src/parse/lex.re" { goto code; } -#line 1547 "src/parse/lex.cc" +#line 1685 "src/parse/lex.cc" yy249: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; + if (yych == '\n') goto yy244; + goto yy245; yy250: - if (yybm[0+yych] & 32) { - goto yy249; - } - if (yych <= '\n') goto yy245; - if (yych <= '"') goto yy247; ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; - if (yych == '\n') goto yy245; - goto yy249; -yy252: - yyaccept = 2; - yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy274; - } else { - if (yych <= ' ') goto yy274; - if (yych == '#') goto yy255; +yy251: + if (yybm[0+yych] & 64) { + goto yy250; } + if (yych <= '\n') goto yy244; + if (yych <= '\'') goto yy247; + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = (YYCTYPE)*YYCURSOR; + if (yych == '\n') goto yy244; + goto yy250; yy253: - YYCURSOR = YYCTXMARKER; -#line 438 "../src/parse/lex.re" - { - if (depth == 0) - { - goto code; - } - else if (cur == eof) - { - fatal("missing '}'"); - } - pos = cur; - cline++; - goto code; - } -#line 1588 "src/parse/lex.cc" -yy254: - yych = (YYCTYPE)*++YYCURSOR; - goto yy253; -yy255: ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; - if (yybm[0+yych] & 64) { - goto yy255; + if (yych <= 0x1F) { + if (yych == '\t') goto yy253; + goto yy244; + } else { + if (yych <= ' ') goto yy253; + if (yych == '#') goto yy242; + goto yy244; } - if (yych != 'l') goto yy245; +yy255: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy245; + if (yych != 'i') goto yy244; yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy245; + if (yych != 'n') goto yy244; yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy245; + if (yych != 'e') goto yy244; yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '0') goto yy262; - if (yych <= '9') goto yy245; - goto yy262; -yy261: + if (yych <= '0') goto yy260; + if (yych <= '9') goto yy244; + goto yy260; +yy259: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; YYCTXMARKER = YYCURSOR; -yy262: +yy260: if (yych <= 0x1F) { - if (yych == '\t') goto yy261; - goto yy245; + if (yych == '\t') goto yy259; + goto yy244; } else { - if (yych <= ' ') goto yy261; - if (yych <= '0') goto yy245; - if (yych >= ':') goto yy245; + if (yych <= ' ') goto yy259; + if (yych <= '0') goto yy244; + if (yych >= ':') goto yy244; } -yy263: +yy261: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = (YYCTYPE)*YYCURSOR; if (yybm[0+yych] & 128) { - goto yy263; + goto yy261; } if (yych <= '\f') { - if (yych <= 0x08) goto yy245; - if (yych <= '\t') goto yy265; - if (yych <= '\n') goto yy267; - goto yy245; + if (yych <= 0x08) goto yy244; + if (yych <= '\t') goto yy263; + if (yych <= '\n') goto yy265; + goto yy244; } else { - if (yych <= '\r') goto yy269; - if (yych != ' ') goto yy245; + if (yych <= '\r') goto yy267; + if (yych != ' ') goto yy244; } -yy265: +yy263: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; if (yych <= 0x1F) { - if (yych == '\t') goto yy265; - goto yy245; + if (yych == '\t') goto yy263; + goto yy244; } else { - if (yych <= ' ') goto yy265; - if (yych == '"') goto yy270; - goto yy245; + if (yych <= ' ') goto yy263; + if (yych == '"') goto yy268; + goto yy244; } -yy267: +yy265: ++YYCURSOR; YYCURSOR = YYCTXMARKER; #line 434 "../src/parse/lex.re" @@ -1656,51 +1776,41 @@ yy267: set_sourceline (); goto code; } -#line 1660 "src/parse/lex.cc" -yy269: +#line 1780 "src/parse/lex.cc" +yy267: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '\n') goto yy267; - goto yy245; -yy270: + if (yych == '\n') goto yy265; + goto yy244; +yy268: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = (YYCTYPE)*YYCURSOR; if (yych <= '!') { - if (yych == '\n') goto yy245; - goto yy270; + if (yych == '\n') goto yy244; + goto yy268; } else { - if (yych <= '"') goto yy273; - if (yych != '\\') goto yy270; + if (yych <= '"') goto yy270; + if (yych == '\\') goto yy271; + goto yy268; } - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = (YYCTYPE)*YYCURSOR; - if (yych == '\n') goto yy245; - goto yy270; -yy273: +yy270: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '\n') goto yy267; - if (yych == '\r') goto yy269; - goto yy245; -yy274: + if (yych == '\n') goto yy265; + if (yych == '\r') goto yy267; + goto yy244; +yy271: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; - if (yych <= 0x1F) { - if (yych == '\t') goto yy274; - goto yy245; - } else { - if (yych <= ' ') goto yy274; - if (yych == '#') goto yy255; - goto yy245; - } + if (yych == '\n') goto yy244; + goto yy268; } #line 487 "../src/parse/lex.re" comment: -#line 1704 "src/parse/lex.cc" +#line 1814 "src/parse/lex.cc" { YYCTYPE yych; static const unsigned char yybm[] = { @@ -1740,13 +1850,13 @@ comment: if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = (YYCTYPE)*YYCURSOR; if (yych <= ')') { - if (yych == '\n') goto yy280; + if (yych == '\n') goto yy276; } else { - if (yych <= '*') goto yy282; - if (yych == '/') goto yy283; + if (yych <= '*') goto yy278; + if (yych == '/') goto yy279; } ++YYCURSOR; -yy279: +yy275: #line 519 "../src/parse/lex.re" { if (cur == eof) @@ -1755,14 +1865,14 @@ yy279: } goto comment; } -#line 1759 "src/parse/lex.cc" -yy280: +#line 1869 "src/parse/lex.cc" +yy276: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 32) { - goto yy288; + goto yy280; } - if (yych == '#') goto yy291; -yy281: + if (yych == '#') goto yy283; +yy277: #line 510 "../src/parse/lex.re" { if (cur == eof) @@ -1773,23 +1883,39 @@ yy281: cline++; goto comment; } -#line 1777 "src/parse/lex.cc" -yy282: +#line 1887 "src/parse/lex.cc" +yy278: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '/') goto yy286; - goto yy279; -yy283: + if (yych == '/') goto yy285; + goto yy275; +yy279: yych = (YYCTYPE)*++YYCURSOR; - if (yych != '*') goto yy279; + if (yych == '*') goto yy287; + goto yy275; +yy280: ++YYCURSOR; -#line 501 "../src/parse/lex.re" - { - ++depth; - fatal("ambiguous /* found"); - goto comment; - } -#line 1792 "src/parse/lex.cc" -yy286: + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = (YYCTYPE)*YYCURSOR; + if (yybm[0+yych] & 32) { + goto yy280; + } + if (yych == '#') goto yy283; +yy282: + YYCURSOR = YYMARKER; + goto yy277; +yy283: + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = (YYCTYPE)*YYCURSOR; + if (yych <= 0x1F) { + if (yych == '\t') goto yy283; + goto yy282; + } else { + if (yych <= ' ') goto yy283; + if (yych == 'l') goto yy289; + goto yy282; + } +yy285: ++YYCURSOR; #line 491 "../src/parse/lex.re" { @@ -1802,82 +1928,70 @@ yy286: goto comment; } } -#line 1806 "src/parse/lex.cc" -yy288: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = (YYCTYPE)*YYCURSOR; - if (yybm[0+yych] & 32) { - goto yy288; - } - if (yych == '#') goto yy291; -yy290: - YYCURSOR = YYMARKER; - goto yy281; -yy291: +#line 1932 "src/parse/lex.cc" +yy287: ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); - yych = (YYCTYPE)*YYCURSOR; - if (yych <= 0x1F) { - if (yych == '\t') goto yy291; - goto yy290; - } else { - if (yych <= ' ') goto yy291; - if (yych != 'l') goto yy290; - } +#line 501 "../src/parse/lex.re" + { + ++depth; + fatal("ambiguous /* found"); + goto comment; + } +#line 1941 "src/parse/lex.cc" +yy289: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'i') goto yy290; + if (yych != 'i') goto yy282; yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'n') goto yy290; + if (yych != 'n') goto yy282; yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy290; + if (yych != 'e') goto yy282; yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '0') goto yy298; - if (yych <= '9') goto yy290; - goto yy298; -yy297: + if (yych <= '0') goto yy294; + if (yych <= '9') goto yy282; + goto yy294; +yy293: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; YYCTXMARKER = YYCURSOR; -yy298: +yy294: if (yych <= 0x1F) { - if (yych == '\t') goto yy297; - goto yy290; + if (yych == '\t') goto yy293; + goto yy282; } else { - if (yych <= ' ') goto yy297; - if (yych <= '0') goto yy290; - if (yych >= ':') goto yy290; + if (yych <= ' ') goto yy293; + if (yych <= '0') goto yy282; + if (yych >= ':') goto yy282; } -yy299: +yy295: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = (YYCTYPE)*YYCURSOR; if (yybm[0+yych] & 64) { - goto yy299; + goto yy295; } if (yych <= '\f') { - if (yych <= 0x08) goto yy290; - if (yych <= '\t') goto yy301; - if (yych <= '\n') goto yy303; - goto yy290; + if (yych <= 0x08) goto yy282; + if (yych <= '\t') goto yy297; + if (yych <= '\n') goto yy299; + goto yy282; } else { - if (yych <= '\r') goto yy305; - if (yych != ' ') goto yy290; + if (yych <= '\r') goto yy301; + if (yych != ' ') goto yy282; } -yy301: +yy297: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; if (yych <= 0x1F) { - if (yych == '\t') goto yy301; - goto yy290; + if (yych == '\t') goto yy297; + goto yy282; } else { - if (yych <= ' ') goto yy301; - if (yych == '"') goto yy306; - goto yy290; + if (yych <= ' ') goto yy297; + if (yych == '"') goto yy302; + goto yy282; } -yy303: +yy299: ++YYCURSOR; YYCURSOR = YYCTXMARKER; #line 506 "../src/parse/lex.re" @@ -1885,42 +1999,42 @@ yy303: set_sourceline (); goto comment; } -#line 1889 "src/parse/lex.cc" -yy305: +#line 2003 "src/parse/lex.cc" +yy301: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '\n') goto yy303; - goto yy290; -yy306: + if (yych == '\n') goto yy299; + goto yy282; +yy302: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = (YYCTYPE)*YYCURSOR; if (yybm[0+yych] & 128) { - goto yy306; + goto yy302; } - if (yych <= '\n') goto yy290; - if (yych <= '"') goto yy309; + if (yych <= '\n') goto yy282; + if (yych >= '#') goto yy305; + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '\n') goto yy299; + if (yych == '\r') goto yy301; + goto yy282; +yy305: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; - if (yych == '\n') goto yy290; - goto yy306; -yy309: - ++YYCURSOR; - if ((yych = (YYCTYPE)*YYCURSOR) == '\n') goto yy303; - if (yych == '\r') goto yy305; - goto yy290; + if (yych == '\n') goto yy282; + goto yy302; } #line 526 "../src/parse/lex.re" nextLine: -#line 1919 "src/parse/lex.cc" +#line 2033 "src/parse/lex.cc" { YYCTYPE yych; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; - if (yych == '\n') goto yy314; + if (yych == '\n') goto yy310; ++YYCURSOR; #line 537 "../src/parse/lex.re" { if(cur == eof) { @@ -1928,8 +2042,8 @@ nextLine: } goto nextLine; } -#line 1932 "src/parse/lex.cc" -yy314: +#line 2046 "src/parse/lex.cc" +yy310: ++YYCURSOR; #line 530 "../src/parse/lex.re" { if(cur == eof) { @@ -1939,7 +2053,7 @@ yy314: cline++; goto scan; } -#line 1943 "src/parse/lex.cc" +#line 2057 "src/parse/lex.cc" } #line 542 "../src/parse/lex.re" @@ -1965,42 +2079,42 @@ RegExp *Scanner::lex_cls(bool neg) uint32_t u, l; fst: -#line 1969 "src/parse/lex.cc" +#line 2083 "src/parse/lex.cc" { YYCTYPE yych; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; - if (yych == ']') goto yy319; + if (yych == ']') goto yy315; #line 566 "../src/parse/lex.re" { l = lex_cls_chr(); goto snd; } -#line 1977 "src/parse/lex.cc" -yy319: +#line 2091 "src/parse/lex.cc" +yy315: ++YYCURSOR; #line 565 "../src/parse/lex.re" { goto end; } -#line 1982 "src/parse/lex.cc" +#line 2096 "src/parse/lex.cc" } #line 567 "../src/parse/lex.re" snd: -#line 1988 "src/parse/lex.cc" +#line 2102 "src/parse/lex.cc" { YYCTYPE yych; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = (YYCTYPE)*(YYMARKER = YYCURSOR); - if (yych == '-') goto yy324; -yy323: + if (yych == '-') goto yy320; +yy319: #line 570 "../src/parse/lex.re" { u = l; goto add; } -#line 1997 "src/parse/lex.cc" -yy324: +#line 2111 "src/parse/lex.cc" +yy320: yych = (YYCTYPE)*++YYCURSOR; YYCTXMARKER = YYCURSOR; - if (yych != ']') goto yy326; + if (yych != ']') goto yy322; YYCURSOR = YYMARKER; - goto yy323; -yy326: + goto yy319; +yy322: ++YYCURSOR; YYCURSOR = YYCTXMARKER; #line 571 "../src/parse/lex.re" @@ -2012,7 +2126,7 @@ yy326: } goto add; } -#line 2016 "src/parse/lex.cc" +#line 2130 "src/parse/lex.cc" } #line 579 "../src/parse/lex.re" @@ -2033,317 +2147,288 @@ uint32_t Scanner::lex_cls_chr() { tok = cur; -#line 2037 "src/parse/lex.cc" +#line 2151 "src/parse/lex.cc" { YYCTYPE yych; unsigned int yyaccept = 0; if ((YYLIMIT - YYCURSOR) < 10) YYFILL(10); yych = (YYCTYPE)*YYCURSOR; - if (yych == '\n') goto yy332; - if (yych == '\\') goto yy334; + if (yych == '\n') goto yy328; + if (yych == '\\') goto yy330; ++YYCURSOR; #line 602 "../src/parse/lex.re" { return static_cast<uint8_t>(tok[0]); } -#line 2048 "src/parse/lex.cc" -yy332: +#line 2162 "src/parse/lex.cc" +yy328: ++YYCURSOR; #line 597 "../src/parse/lex.re" { fatal ((tok - pos) - tchar, "syntax error"); } -#line 2053 "src/parse/lex.cc" -yy334: +#line 2167 "src/parse/lex.cc" +yy330: ++YYCURSOR; if ((yych = (YYCTYPE)*YYCURSOR) <= '`') { if (yych <= '7') { if (yych <= ',') { - if (yych != '\n') goto yy336; + if (yych != '\n') goto yy332; } else { - if (yych <= '-') goto yy338; - if (yych <= '/') goto yy336; - if (yych <= '3') goto yy340; - goto yy342; + if (yych <= '-') goto yy334; + if (yych <= '/') goto yy332; + if (yych <= '3') goto yy336; + goto yy338; } } else { if (yych <= 'X') { - if (yych == 'U') goto yy343; - if (yych <= 'W') goto yy336; - goto yy345; + if (yych == 'U') goto yy339; + if (yych <= 'W') goto yy332; + goto yy341; } else { - if (yych <= '[') goto yy336; - if (yych <= '\\') goto yy346; - if (yych <= ']') goto yy348; - goto yy336; + if (yych <= '[') goto yy332; + if (yych <= '\\') goto yy342; + if (yych <= ']') goto yy344; + goto yy332; } } } else { if (yych <= 'q') { if (yych <= 'e') { - if (yych <= 'a') goto yy350; - if (yych <= 'b') goto yy352; - goto yy336; + if (yych <= 'a') goto yy346; + if (yych <= 'b') goto yy348; + goto yy332; } else { - if (yych <= 'f') goto yy354; - if (yych == 'n') goto yy356; - goto yy336; + if (yych <= 'f') goto yy350; + if (yych == 'n') goto yy352; + goto yy332; } } else { if (yych <= 'u') { - if (yych <= 'r') goto yy358; - if (yych <= 's') goto yy336; - if (yych <= 't') goto yy360; - goto yy345; + if (yych <= 'r') goto yy354; + if (yych <= 's') goto yy332; + if (yych <= 't') goto yy356; + goto yy341; } else { - if (yych <= 'v') goto yy362; - if (yych == 'x') goto yy364; - goto yy336; + if (yych <= 'v') goto yy358; + if (yych == 'x') goto yy360; + goto yy332; } } } #line 600 "../src/parse/lex.re" { fatal ((tok - pos) - tchar, "syntax error in escape sequence"); } -#line 2104 "src/parse/lex.cc" -yy336: +#line 2218 "src/parse/lex.cc" +yy332: ++YYCURSOR; #line 615 "../src/parse/lex.re" { warn.useless_escape(tline, tok - pos, tok[1]); return static_cast<uint8_t>(tok[1]); } -#line 2112 "src/parse/lex.cc" -yy338: +#line 2226 "src/parse/lex.cc" +yy334: ++YYCURSOR; #line 613 "../src/parse/lex.re" { return static_cast<uint8_t>('-'); } -#line 2117 "src/parse/lex.cc" -yy340: +#line 2231 "src/parse/lex.cc" +yy336: yyaccept = 0; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy341; - if (yych <= '7') goto yy379; -yy341: + if (yych <= '/') goto yy337; + if (yych <= '7') goto yy361; +yy337: #line 599 "../src/parse/lex.re" { fatal ((tok - pos) - tchar, "syntax error in octal escape sequence"); } -#line 2126 "src/parse/lex.cc" -yy342: +#line 2240 "src/parse/lex.cc" +yy338: yych = (YYCTYPE)*++YYCURSOR; - goto yy341; -yy343: + goto yy337; +yy339: yyaccept = 1; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych <= '@') { - if (yych <= '/') goto yy344; - if (yych <= '9') goto yy372; + if (yych <= '/') goto yy340; + if (yych <= '9') goto yy363; } else { - if (yych <= 'F') goto yy372; - if (yych <= '`') goto yy344; - if (yych <= 'f') goto yy372; + if (yych <= 'F') goto yy363; + if (yych <= '`') goto yy340; + if (yych <= 'f') goto yy363; } -yy344: +yy340: #line 598 "../src/parse/lex.re" { fatal ((tok - pos) - tchar, "syntax error in hexadecimal escape sequence"); } -#line 2144 "src/parse/lex.cc" -yy345: +#line 2258 "src/parse/lex.cc" +yy341: yyaccept = 1; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych <= '@') { - if (yych <= '/') goto yy344; - if (yych <= '9') goto yy369; - goto yy344; + if (yych <= '/') goto yy340; + if (yych <= '9') goto yy364; + goto yy340; } else { - if (yych <= 'F') goto yy369; - if (yych <= '`') goto yy344; - if (yych <= 'f') goto yy369; - goto yy344; + if (yych <= 'F') goto yy364; + if (yych <= '`') goto yy340; + if (yych <= 'f') goto yy364; + goto yy340; } -yy346: +yy342: ++YYCURSOR; #line 612 "../src/parse/lex.re" { return static_cast<uint8_t>('\\'); } -#line 2162 "src/parse/lex.cc" -yy348: +#line 2276 "src/parse/lex.cc" +yy344: ++YYCURSOR; #line 614 "../src/parse/lex.re" { return static_cast<uint8_t>(']'); } -#line 2167 "src/parse/lex.cc" -yy350: +#line 2281 "src/parse/lex.cc" +yy346: ++YYCURSOR; #line 605 "../src/parse/lex.re" { return static_cast<uint8_t>('\a'); } -#line 2172 "src/parse/lex.cc" -yy352: +#line 2286 "src/parse/lex.cc" +yy348: ++YYCURSOR; #line 606 "../src/parse/lex.re" { return static_cast<uint8_t>('\b'); } -#line 2177 "src/parse/lex.cc" -yy354: +#line 2291 "src/parse/lex.cc" +yy350: ++YYCURSOR; #line 607 "../src/parse/lex.re" { return static_cast<uint8_t>('\f'); } -#line 2182 "src/parse/lex.cc" -yy356: +#line 2296 "src/parse/lex.cc" +yy352: ++YYCURSOR; #line 608 "../src/parse/lex.re" { return static_cast<uint8_t>('\n'); } -#line 2187 "src/parse/lex.cc" -yy358: +#line 2301 "src/parse/lex.cc" +yy354: ++YYCURSOR; #line 609 "../src/parse/lex.re" { return static_cast<uint8_t>('\r'); } -#line 2192 "src/parse/lex.cc" -yy360: +#line 2306 "src/parse/lex.cc" +yy356: ++YYCURSOR; #line 610 "../src/parse/lex.re" { return static_cast<uint8_t>('\t'); } -#line 2197 "src/parse/lex.cc" -yy362: +#line 2311 "src/parse/lex.cc" +yy358: ++YYCURSOR; #line 611 "../src/parse/lex.re" { return static_cast<uint8_t>('\v'); } -#line 2202 "src/parse/lex.cc" -yy364: +#line 2316 "src/parse/lex.cc" +yy360: yyaccept = 1; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych <= '@') { - if (yych <= '/') goto yy344; - if (yych >= ':') goto yy344; + if (yych <= '/') goto yy340; + if (yych <= '9') goto yy365; + goto yy340; } else { if (yych <= 'F') goto yy365; - if (yych <= '`') goto yy344; - if (yych >= 'g') goto yy344; + if (yych <= '`') goto yy340; + if (yych <= 'f') goto yy365; + goto yy340; } -yy365: +yy361: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy366; - if (yych <= '9') goto yy367; - } else { - if (yych <= 'F') goto yy367; - if (yych <= '`') goto yy366; - if (yych <= 'f') goto yy367; - } -yy366: + if (yych <= '/') goto yy362; + if (yych <= '7') goto yy366; +yy362: YYCURSOR = YYMARKER; if (yyaccept == 0) { - goto yy341; - } else { - goto yy344; - } -yy367: - ++YYCURSOR; -#line 603 "../src/parse/lex.re" - { return unesc_hex(tok, cur); } -#line 2235 "src/parse/lex.cc" -yy369: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy366; - if (yych >= ':') goto yy366; - } else { - if (yych <= 'F') goto yy370; - if (yych <= '`') goto yy366; - if (yych >= 'g') goto yy366; - } -yy370: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy366; - if (yych >= ':') goto yy366; + goto yy337; } else { - if (yych <= 'F') goto yy371; - if (yych <= '`') goto yy366; - if (yych >= 'g') goto yy366; + goto yy340; } -yy371: +yy363: yych = (YYCTYPE)*++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy366; - if (yych <= '9') goto yy367; - goto yy366; + if (yych <= '/') goto yy362; + if (yych <= '9') goto yy368; + goto yy362; } else { - if (yych <= 'F') goto yy367; - if (yych <= '`') goto yy366; - if (yych <= 'f') goto yy367; - goto yy366; + if (yych <= 'F') goto yy368; + if (yych <= '`') goto yy362; + if (yych <= 'f') goto yy368; + goto yy362; } -yy372: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy366; - if (yych >= ':') goto yy366; - } else { - if (yych <= 'F') goto yy373; - if (yych <= '`') goto yy366; - if (yych >= 'g') goto yy366; - } -yy373: +yy364: yych = (YYCTYPE)*++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy366; - if (yych >= ':') goto yy366; + if (yych <= '/') goto yy362; + if (yych <= '9') goto yy369; + goto yy362; } else { - if (yych <= 'F') goto yy374; - if (yych <= '`') goto yy366; - if (yych >= 'g') goto yy366; + if (yych <= 'F') goto yy369; + if (yych <= '`') goto yy362; + if (yych <= 'f') goto yy369; + goto yy362; } -yy374: +yy365: yych = (YYCTYPE)*++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy366; - if (yych >= ':') goto yy366; + if (yych <= '/') goto yy362; + if (yych <= '9') goto yy370; + goto yy362; } else { - if (yych <= 'F') goto yy375; - if (yych <= '`') goto yy366; - if (yych >= 'g') goto yy366; + if (yych <= 'F') goto yy370; + if (yych <= '`') goto yy362; + if (yych <= 'f') goto yy370; + goto yy362; } -yy375: +yy366: + ++YYCURSOR; +#line 604 "../src/parse/lex.re" + { return unesc_oct(tok, cur); } +#line 2381 "src/parse/lex.cc" +yy368: yych = (YYCTYPE)*++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy366; - if (yych >= ':') goto yy366; + if (yych <= '/') goto yy362; + if (yych <= '9') goto yy372; + goto yy362; } else { - if (yych <= 'F') goto yy376; - if (yych <= '`') goto yy366; - if (yych >= 'g') goto yy366; + if (yych <= 'F') goto yy372; + if (yych <= '`') goto yy362; + if (yych <= 'f') goto yy372; + goto yy362; } -yy376: +yy369: yych = (YYCTYPE)*++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy366; - if (yych >= ':') goto yy366; + if (yych <= '/') goto yy362; + if (yych <= '9') goto yy365; + goto yy362; } else { - if (yych <= 'F') goto yy377; - if (yych <= '`') goto yy366; - if (yych >= 'g') goto yy366; + if (yych <= 'F') goto yy365; + if (yych <= '`') goto yy362; + if (yych <= 'f') goto yy365; + goto yy362; } -yy377: +yy370: + ++YYCURSOR; +#line 603 "../src/parse/lex.re" + { return unesc_hex(tok, cur); } +#line 2410 "src/parse/lex.cc" +yy372: yych = (YYCTYPE)*++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy366; - if (yych >= ':') goto yy366; + if (yych <= '/') goto yy362; + if (yych >= ':') goto yy362; } else { - if (yych <= 'F') goto yy378; - if (yych <= '`') goto yy366; - if (yych >= 'g') goto yy366; + if (yych <= 'F') goto yy373; + if (yych <= '`') goto yy362; + if (yych >= 'g') goto yy362; } -yy378: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy366; - if (yych <= '9') goto yy367; - goto yy366; +yy373: + ++YYCURSOR; + if ((yych = (YYCTYPE)*YYCURSOR) <= '@') { + if (yych <= '/') goto yy362; + if (yych <= '9') goto yy364; + goto yy362; } else { - if (yych <= 'F') goto yy367; - if (yych <= '`') goto yy366; - if (yych <= 'f') goto yy367; - goto yy366; + if (yych <= 'F') goto yy364; + if (yych <= '`') goto yy362; + if (yych <= 'f') goto yy364; + goto yy362; } -yy379: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '/') goto yy366; - if (yych >= '8') goto yy366; - ++YYCURSOR; -#line 604 "../src/parse/lex.re" - { return unesc_oct(tok, cur); } -#line 2347 "src/parse/lex.cc" } #line 619 "../src/parse/lex.re" @@ -2354,75 +2439,75 @@ uint32_t Scanner::lex_str_chr(char quote, bool &end) end = false; tok = cur; -#line 2358 "src/parse/lex.cc" +#line 2443 "src/parse/lex.cc" { YYCTYPE yych; unsigned int yyaccept = 0; if ((YYLIMIT - YYCURSOR) < 10) YYFILL(10); yych = (YYCTYPE)*YYCURSOR; - if (yych == '\n') goto yy386; - if (yych == '\\') goto yy388; + if (yych == '\n') goto yy378; + if (yych == '\\') goto yy380; ++YYCURSOR; #line 632 "../src/parse/lex.re" { end = tok[0] == quote; return static_cast<uint8_t>(tok[0]); } -#line 2372 "src/parse/lex.cc" -yy386: +#line 2457 "src/parse/lex.cc" +yy378: ++YYCURSOR; #line 627 "../src/parse/lex.re" { fatal ((tok - pos) - tchar, "syntax error"); } -#line 2377 "src/parse/lex.cc" -yy388: +#line 2462 "src/parse/lex.cc" +yy380: ++YYCURSOR; if ((yych = (YYCTYPE)*YYCURSOR) <= 'a') { if (yych <= 'T') { if (yych <= '/') { - if (yych != '\n') goto yy390; + if (yych != '\n') goto yy382; } else { - if (yych <= '3') goto yy392; - if (yych <= '7') goto yy394; - goto yy390; + if (yych <= '3') goto yy384; + if (yych <= '7') goto yy386; + goto yy382; } } else { if (yych <= 'X') { - if (yych <= 'U') goto yy395; - if (yych <= 'W') goto yy390; - goto yy397; + if (yych <= 'U') goto yy387; + if (yych <= 'W') goto yy382; + goto yy389; } else { - if (yych == '\\') goto yy398; - if (yych <= '`') goto yy390; - goto yy400; + if (yych == '\\') goto yy390; + if (yych <= '`') goto yy382; + goto yy392; } } } else { if (yych <= 'r') { if (yych <= 'f') { - if (yych <= 'b') goto yy402; - if (yych <= 'e') goto yy390; - goto yy404; + if (yych <= 'b') goto yy394; + if (yych <= 'e') goto yy382; + goto yy396; } else { - if (yych == 'n') goto yy406; - if (yych <= 'q') goto yy390; - goto yy408; + if (yych == 'n') goto yy398; + if (yych <= 'q') goto yy382; + goto yy400; } } else { if (yych <= 'u') { - if (yych <= 's') goto yy390; - if (yych <= 't') goto yy410; - goto yy397; + if (yych <= 's') goto yy382; + if (yych <= 't') goto yy402; + goto yy389; } else { - if (yych <= 'v') goto yy412; - if (yych == 'x') goto yy414; - goto yy390; + if (yych <= 'v') goto yy404; + if (yych == 'x') goto yy406; + goto yy382; } } } #line 630 "../src/parse/lex.re" { fatal ((tok - pos) - tchar, "syntax error in escape sequence"); } -#line 2425 "src/parse/lex.cc" -yy390: +#line 2510 "src/parse/lex.cc" +yy382: ++YYCURSOR; #line 646 "../src/parse/lex.re" { @@ -2431,232 +2516,203 @@ yy390: } return static_cast<uint8_t>(tok[1]); } -#line 2435 "src/parse/lex.cc" -yy392: +#line 2520 "src/parse/lex.cc" +yy384: yyaccept = 0; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy393; - if (yych <= '7') goto yy429; -yy393: + if (yych <= '/') goto yy385; + if (yych <= '7') goto yy407; +yy385: #line 629 "../src/parse/lex.re" { fatal ((tok - pos) - tchar, "syntax error in octal escape sequence"); } -#line 2444 "src/parse/lex.cc" -yy394: +#line 2529 "src/parse/lex.cc" +yy386: yych = (YYCTYPE)*++YYCURSOR; - goto yy393; -yy395: + goto yy385; +yy387: yyaccept = 1; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych <= '@') { - if (yych <= '/') goto yy396; - if (yych <= '9') goto yy422; + if (yych <= '/') goto yy388; + if (yych <= '9') goto yy409; } else { - if (yych <= 'F') goto yy422; - if (yych <= '`') goto yy396; - if (yych <= 'f') goto yy422; + if (yych <= 'F') goto yy409; + if (yych <= '`') goto yy388; + if (yych <= 'f') goto yy409; } -yy396: +yy388: #line 628 "../src/parse/lex.re" { fatal ((tok - pos) - tchar, "syntax error in hexadecimal escape sequence"); } -#line 2462 "src/parse/lex.cc" -yy397: +#line 2547 "src/parse/lex.cc" +yy389: yyaccept = 1; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych <= '@') { - if (yych <= '/') goto yy396; - if (yych <= '9') goto yy419; - goto yy396; + if (yych <= '/') goto yy388; + if (yych <= '9') goto yy410; + goto yy388; } else { - if (yych <= 'F') goto yy419; - if (yych <= '`') goto yy396; - if (yych <= 'f') goto yy419; - goto yy396; + if (yych <= 'F') goto yy410; + if (yych <= '`') goto yy388; + if (yych <= 'f') goto yy410; + goto yy388; } -yy398: +yy390: ++YYCURSOR; #line 645 "../src/parse/lex.re" { return static_cast<uint8_t>('\\'); } -#line 2480 "src/parse/lex.cc" -yy400: +#line 2565 "src/parse/lex.cc" +yy392: ++YYCURSOR; #line 638 "../src/parse/lex.re" { return static_cast<uint8_t>('\a'); } -#line 2485 "src/parse/lex.cc" -yy402: +#line 2570 "src/parse/lex.cc" +yy394: ++YYCURSOR; #line 639 "../src/parse/lex.re" { return static_cast<uint8_t>('\b'); } -#line 2490 "src/parse/lex.cc" -yy404: +#line 2575 "src/parse/lex.cc" +yy396: ++YYCURSOR; #line 640 "../src/parse/lex.re" { return static_cast<uint8_t>('\f'); } -#line 2495 "src/parse/lex.cc" -yy406: +#line 2580 "src/parse/lex.cc" +yy398: ++YYCURSOR; #line 641 "../src/parse/lex.re" { return static_cast<uint8_t>('\n'); } -#line 2500 "src/parse/lex.cc" -yy408: +#line 2585 "src/parse/lex.cc" +yy400: ++YYCURSOR; #line 642 "../src/parse/lex.re" { return static_cast<uint8_t>('\r'); } -#line 2505 "src/parse/lex.cc" -yy410: +#line 2590 "src/parse/lex.cc" +yy402: ++YYCURSOR; #line 643 "../src/parse/lex.re" { return static_cast<uint8_t>('\t'); } -#line 2510 "src/parse/lex.cc" -yy412: +#line 2595 "src/parse/lex.cc" +yy404: ++YYCURSOR; #line 644 "../src/parse/lex.re" { return static_cast<uint8_t>('\v'); } -#line 2515 "src/parse/lex.cc" -yy414: +#line 2600 "src/parse/lex.cc" +yy406: yyaccept = 1; yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych <= '@') { - if (yych <= '/') goto yy396; - if (yych >= ':') goto yy396; + if (yych <= '/') goto yy388; + if (yych <= '9') goto yy411; + goto yy388; } else { - if (yych <= 'F') goto yy415; - if (yych <= '`') goto yy396; - if (yych >= 'g') goto yy396; + if (yych <= 'F') goto yy411; + if (yych <= '`') goto yy388; + if (yych <= 'f') goto yy411; + goto yy388; } -yy415: +yy407: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy416; - if (yych <= '9') goto yy417; - } else { - if (yych <= 'F') goto yy417; - if (yych <= '`') goto yy416; - if (yych <= 'f') goto yy417; - } -yy416: + if (yych <= '/') goto yy408; + if (yych <= '7') goto yy412; +yy408: YYCURSOR = YYMARKER; if (yyaccept == 0) { - goto yy393; + goto yy385; } else { - goto yy396; + goto yy388; } -yy417: - ++YYCURSOR; -#line 636 "../src/parse/lex.re" - { return unesc_hex(tok, cur); } -#line 2548 "src/parse/lex.cc" -yy419: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy416; - if (yych >= ':') goto yy416; - } else { - if (yych <= 'F') goto yy420; - if (yych <= '`') goto yy416; - if (yych >= 'g') goto yy416; - } -yy420: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy416; - if (yych >= ':') goto yy416; - } else { - if (yych <= 'F') goto yy421; - if (yych <= '`') goto yy416; - if (yych >= 'g') goto yy416; - } -yy421: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy416; - if (yych <= '9') goto yy417; - goto yy416; - } else { - if (yych <= 'F') goto yy417; - if (yych <= '`') goto yy416; - if (yych <= 'f') goto yy417; - goto yy416; - } -yy422: +yy409: yych = (YYCTYPE)*++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy416; - if (yych >= ':') goto yy416; + if (yych <= '/') goto yy408; + if (yych <= '9') goto yy414; + goto yy408; } else { - if (yych <= 'F') goto yy423; - if (yych <= '`') goto yy416; - if (yych >= 'g') goto yy416; + if (yych <= 'F') goto yy414; + if (yych <= '`') goto yy408; + if (yych <= 'f') goto yy414; + goto yy408; } -yy423: +yy410: yych = (YYCTYPE)*++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy416; - if (yych >= ':') goto yy416; + if (yych <= '/') goto yy408; + if (yych <= '9') goto yy415; + goto yy408; } else { - if (yych <= 'F') goto yy424; - if (yych <= '`') goto yy416; - if (yych >= 'g') goto yy416; + if (yych <= 'F') goto yy415; + if (yych <= '`') goto yy408; + if (yych <= 'f') goto yy415; + goto yy408; } -yy424: +yy411: yych = (YYCTYPE)*++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy416; - if (yych >= ':') goto yy416; + if (yych <= '/') goto yy408; + if (yych <= '9') goto yy416; + goto yy408; } else { - if (yych <= 'F') goto yy425; - if (yych <= '`') goto yy416; - if (yych >= 'g') goto yy416; + if (yych <= 'F') goto yy416; + if (yych <= '`') goto yy408; + if (yych <= 'f') goto yy416; + goto yy408; } -yy425: +yy412: + ++YYCURSOR; +#line 637 "../src/parse/lex.re" + { return unesc_oct(tok, cur); } +#line 2665 "src/parse/lex.cc" +yy414: yych = (YYCTYPE)*++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy416; - if (yych >= ':') goto yy416; + if (yych <= '/') goto yy408; + if (yych <= '9') goto yy418; + goto yy408; } else { - if (yych <= 'F') goto yy426; - if (yych <= '`') goto yy416; - if (yych >= 'g') goto yy416; + if (yych <= 'F') goto yy418; + if (yych <= '`') goto yy408; + if (yych <= 'f') goto yy418; + goto yy408; } -yy426: +yy415: yych = (YYCTYPE)*++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy416; - if (yych >= ':') goto yy416; + if (yych <= '/') goto yy408; + if (yych <= '9') goto yy411; + goto yy408; } else { - if (yych <= 'F') goto yy427; - if (yych <= '`') goto yy416; - if (yych >= 'g') goto yy416; + if (yych <= 'F') goto yy411; + if (yych <= '`') goto yy408; + if (yych <= 'f') goto yy411; + goto yy408; } -yy427: +yy416: + ++YYCURSOR; +#line 636 "../src/parse/lex.re" + { return unesc_hex(tok, cur); } +#line 2694 "src/parse/lex.cc" +yy418: yych = (YYCTYPE)*++YYCURSOR; if (yych <= '@') { - if (yych <= '/') goto yy416; - if (yych >= ':') goto yy416; + if (yych <= '/') goto yy408; + if (yych >= ':') goto yy408; } else { - if (yych <= 'F') goto yy428; - if (yych <= '`') goto yy416; - if (yych >= 'g') goto yy416; + if (yych <= 'F') goto yy419; + if (yych <= '`') goto yy408; + if (yych >= 'g') goto yy408; } -yy428: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy416; - if (yych <= '9') goto yy417; - goto yy416; +yy419: + ++YYCURSOR; + if ((yych = (YYCTYPE)*YYCURSOR) <= '@') { + if (yych <= '/') goto yy408; + if (yych <= '9') goto yy410; + goto yy408; } else { - if (yych <= 'F') goto yy417; - if (yych <= '`') goto yy416; - if (yych <= 'f') goto yy417; - goto yy416; + if (yych <= 'F') goto yy410; + if (yych <= '`') goto yy408; + if (yych <= 'f') goto yy410; + goto yy408; } -yy429: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= '/') goto yy416; - if (yych >= '8') goto yy416; - ++YYCURSOR; -#line 637 "../src/parse/lex.re" - { return unesc_oct(tok, cur); } -#line 2660 "src/parse/lex.cc" } #line 652 "../src/parse/lex.re" @@ -2679,7 +2735,7 @@ void Scanner::set_sourceline () sourceline: tok = cur; -#line 2683 "src/parse/lex.cc" +#line 2739 "src/parse/lex.cc" { YYCTYPE yych; static const unsigned char yybm[] = { @@ -2719,21 +2775,21 @@ sourceline: if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = (YYCTYPE)*YYCURSOR; if (yych <= '!') { - if (yych == '\n') goto yy436; + if (yych == '\n') goto yy424; } else { - if (yych <= '"') goto yy438; - if (yych <= '0') goto yy434; - if (yych <= '9') goto yy439; + if (yych <= '"') goto yy426; + if (yych <= '0') goto yy422; + if (yych <= '9') goto yy427; } -yy434: +yy422: ++YYCURSOR; -yy435: +yy423: #line 695 "../src/parse/lex.re" { goto sourceline; } -#line 2736 "src/parse/lex.cc" -yy436: +#line 2792 "src/parse/lex.cc" +yy424: ++YYCURSOR; #line 683 "../src/parse/lex.re" { @@ -2748,16 +2804,18 @@ yy436: tok = cur; return; } -#line 2752 "src/parse/lex.cc" -yy438: +#line 2808 "src/parse/lex.cc" +yy426: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == '\n') goto yy435; - goto yy444; -yy439: + if (yych == '\n') goto yy423; + goto yy431; +yy427: ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; - goto yy442; -yy440: + if (yybm[0+yych] & 64) { + goto yy427; + } #line 672 "../src/parse/lex.re" { if (!s_to_u32_unsafe (tok, cur, cline)) @@ -2766,44 +2824,35 @@ yy440: } goto sourceline; } -#line 2770 "src/parse/lex.cc" -yy441: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = (YYCTYPE)*YYCURSOR; -yy442: - if (yybm[0+yych] & 64) { - goto yy441; - } - goto yy440; -yy443: +#line 2828 "src/parse/lex.cc" +yy430: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = (YYCTYPE)*YYCURSOR; -yy444: +yy431: if (yybm[0+yych] & 128) { - goto yy443; + goto yy430; } - if (yych <= '\n') goto yy445; - if (yych <= '"') goto yy447; - goto yy446; -yy445: - YYCURSOR = YYMARKER; + if (yych <= '\n') goto yy432; + if (yych <= '"') goto yy433; goto yy435; -yy446: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = (YYCTYPE)*YYCURSOR; - if (yych == '\n') goto yy445; - goto yy443; -yy447: +yy432: + YYCURSOR = YYMARKER; + goto yy423; +yy433: ++YYCURSOR; #line 679 "../src/parse/lex.re" { escape (in.file_name, std::string (tok + 1, tok_len () - 2)); // -2 to omit quotes goto sourceline; } -#line 2807 "src/parse/lex.cc" +#line 2850 "src/parse/lex.cc" +yy435: + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = (YYCTYPE)*YYCURSOR; + if (yych == '\n') goto yy432; + goto yy430; } #line 698 "../src/parse/lex.re" diff --git a/bootstrap/src/parse/lex_conf.cc b/bootstrap/src/parse/lex_conf.cc index 2b1c6e3a..eb0aec7f 100644 --- a/bootstrap/src/parse/lex_conf.cc +++ b/bootstrap/src/parse/lex_conf.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 0.15.3 on Wed Dec 2 12:10:03 2015 */ +/* 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> @@ -81,51 +81,47 @@ yy3: yy4: yyaccept = 0; yych = (unsigned char)*(ptr = ++cur); - if (yych == 'g') goto yy393; - if (yych == 'o') goto yy394; + if (yych == 'g') goto yy12; + if (yych == 'o') goto yy14; goto yy3; yy5: yyaccept = 0; yych = (unsigned char)*(ptr = ++cur); - if (yych == 'e') goto yy202; + if (yych == 'e') goto yy15; goto yy3; yy6: yyaccept = 0; yych = (unsigned char)*(ptr = ++cur); - if (yych == 'l') goto yy195; + if (yych == 'l') goto yy16; goto yy3; yy7: yyaccept = 0; yych = (unsigned char)*(ptr = ++cur); - if (yych == 'n') goto yy178; + if (yych == 'n') goto yy17; goto yy3; yy8: yyaccept = 0; yych = (unsigned char)*(ptr = ++cur); - if (yych == 'a') goto yy149; + if (yych == 'a') goto yy18; goto yy3; yy9: yyaccept = 0; yych = (unsigned char)*(ptr = ++cur); - if (yych == 't') goto yy111; + if (yych == 't') goto yy19; goto yy3; yy10: yyaccept = 0; yych = (unsigned char)*(ptr = ++cur); - if (yych == 'a') goto yy68; + if (yych == 'a') goto yy20; goto yy3; yy11: yyaccept = 0; yych = (unsigned char)*(ptr = ++cur); - if (yych != 'y') goto yy3; + if (yych == 'y') goto yy21; + goto yy3; +yy12: yych = (unsigned char)*++cur; - if (yych <= 'c') { - if (yych <= 'a') goto yy13; - if (yych <= 'b') goto yy14; - goto yy15; - } else { - if (yych == 'f') goto yy16; - } + if (yych == 'o') goto yy22; yy13: cur = ptr; if (yyaccept <= 5) { @@ -134,1238 +130,1800 @@ yy13: if (yyaccept == 0) { goto yy3; } else { - goto yy139; + goto yy119; } } else { - goto yy228; + goto yy161; } } else { if (yyaccept <= 4) { if (yyaccept == 3) { - goto yy244; + goto yy206; } else { - goto yy274; + goto yy255; } } else { - goto yy297; + goto yy321; } } } else { if (yyaccept <= 8) { if (yyaccept <= 7) { if (yyaccept == 6) { - goto yy316; + goto yy356; } else { - goto yy327; + goto yy377; } } else { - goto yy380; + goto yy383; } } else { if (yyaccept == 9) { - goto yy408; + goto yy420; } else { - goto yy418; + goto yy423; } } } yy14: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy62; + if (yych == 'n') goto yy23; goto yy13; yy15: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy44; + if (yych == 'f') goto yy24; goto yy13; yy16: yych = (unsigned char)*++cur; - if (yych != 'i') goto yy13; + if (yych == 'a') goto yy25; + goto yy13; +yy17: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; + if (yych == 'd') goto yy26; + goto yy13; +yy18: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; + if (yych == 'b') goto yy27; + goto yy13; +yy19: yych = (unsigned char)*++cur; - if (yych != ':') goto yy13; + if (yych == 'a') goto yy28; + goto yy13; +yy20: yych = (unsigned char)*++cur; - if (yych <= 'd') { - if (yych != 'c') goto yy13; + 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 <= 'e') goto yy23; - if (yych == 'p') goto yy22; + if (yych == 'f') goto yy32; goto yy13; } - yych = (unsigned char)*++cur; - if (yych == 'h') goto yy39; - goto yy13; yy22: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy30; + if (yych == 't') goto yy33; goto yy13; yy23: yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; + if (yych == 'd') goto yy34; + goto yy13; +yy24: yych = (unsigned char)*++cur; - if (yych != 'a') goto yy13; + if (yych == 'i') goto yy35; + goto yy13; +yy25: yych = (unsigned char)*++cur; - if (yych != 'b') goto yy13; + if (yych == 'g') goto yy36; + goto yy13; +yy26: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; + if (yych == 'e') goto yy37; + goto yy13; +yy27: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; - ++cur; -#line 141 "../src/parse/lex_conf.re" - { opts.set_fill_use (lex_conf_number () != 0); return; } -#line 219 "src/parse/lex_conf.cc" + 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 != 'r') goto yy13; + 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 != 'a') goto yy13; + if (yych == 'i') goto yy44; + goto yy13; +yy33: yych = (unsigned char)*++cur; - if (yych != 'm') goto yy13; + if (yych == 'o') goto yy45; + goto yy13; +yy34: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + 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 != 't') goto yy13; + if (yych == 'n') goto yy49; + goto yy13; +yy36: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 's') goto yy50; + goto yy13; +yy37: yych = (unsigned char)*++cur; - if (yych != 'r') goto yy13; - ++cur; -#line 143 "../src/parse/lex_conf.re" - { opts.set_fill_arg_use (lex_conf_number () != 0); return; } -#line 238 "src/parse/lex_conf.cc" + 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 != 'e') goto yy13; + if (yych == 't') goto yy53; + goto yy13; +yy40: yych = (unsigned char)*++cur; - if (yych != 'c') goto yy13; + if (yych == 'e') goto yy54; + goto yy13; +yy41: yych = (unsigned char)*++cur; - if (yych != 'k') goto yy13; - ++cur; -#line 145 "../src/parse/lex_conf.re" - { opts.set_fill_check (lex_conf_number () != 0); return; } -#line 249 "src/parse/lex_conf.cc" + 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 != ':') goto yy13; + if (yych == 'l') goto yy58; + goto yy13; +yy45: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy47; - if (yych != 'e') goto yy13; + if (yych == ':') goto yy59; + goto yy13; +yy46: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy58; + if (yych == 'd') goto yy60; + if (yych == 'g') goto yy61; goto yy13; yy47: yych = (unsigned char)*++cur; - if (yych != 'o') goto yy13; + if (yych == 'n') goto yy62; + goto yy13; +yy48: yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; + if (yych == 'r') goto yy63; + goto yy13; +yy49: yych = (unsigned char)*++cur; - if (yych != 'v') goto yy13; + if (yych == 'e') goto yy64; + goto yy13; +yy50: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == ':') goto yy65; + goto yy13; +yy51: yych = (unsigned char)*++cur; - if (yych != 'r') goto yy13; + if (yych == 't') goto yy66; + goto yy13; +yy52: yych = (unsigned char)*++cur; - if (yych != 's') goto yy13; + if (yych == ':') goto yy67; + if (yych == 'p') goto yy68; + goto yy13; +yy53: yych = (unsigned char)*++cur; - if (yych != 'i') goto yy13; + if (yych == 'l') goto yy69; + goto yy13; +yy54: yych = (unsigned char)*++cur; - if (yych != 'o') goto yy13; + if (yych == ':') goto yy70; + goto yy13; +yy55: yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; - ++cur; -#line 137 "../src/parse/lex_conf.re" - { opts.set_yychConversion (lex_conf_number () != 0); return; } -#line 281 "src/parse/lex_conf.cc" + 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 != 'i') goto yy13; + 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 != 't') goto yy13; - ++cur; -#line 138 "../src/parse/lex_conf.re" - { opts.set_bEmitYYCh (lex_conf_number () != 0); return; } -#line 290 "src/parse/lex_conf.cc" + 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 != ':') goto yy13; + if (yych == 'u') goto yy79; + goto yy13; +yy63: yych = (unsigned char)*++cur; - if (yych != 'h') goto yy13; + if (yych == 'e') goto yy80; + goto yy13; +yy64: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == ':') goto yy81; + goto yy13; +yy65: yych = (unsigned char)*++cur; - if (yych != 'x') goto yy13; - ++cur; -#line 95 "../src/parse/lex_conf.re" - { opts.set_yybmHexTable (lex_conf_number () != 0); return; } -#line 303 "src/parse/lex_conf.cc" + 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 yy13; + if (yych == 'r') goto yy86; + goto yy13; +yy69: yych = (unsigned char)*++cur; - if (yych != 'i') goto yy13; + if (yych == 'a') goto yy87; + goto yy13; +yy70: yych = (unsigned char)*++cur; - if (yych != 'a') goto yy13; + if (yych == 'a') goto yy88; + if (yych == 'n') goto yy89; + goto yy13; +yy71: yych = (unsigned char)*++cur; - if (yych != 'b') goto yy13; + if (yych == 'l') goto yy90; + goto yy13; +yy72: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; + if (yych == 'e') goto yy91; + goto yy13; +yy73: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'o') goto yy92; + goto yy13; +yy74: yych = (unsigned char)*++cur; - if (yych != ':') goto yy13; + if (yych == 'm') goto yy93; + goto yy13; +yy75: yych = (unsigned char)*++cur; - if (yych != 'y') goto yy13; + if (yych == ':') goto yy94; + goto yy13; +yy76: yych = (unsigned char)*++cur; - if (yych != 'y') goto yy13; + if (yych == 'h') goto yy95; + goto yy13; +yy77: yych = (unsigned char)*++cur; - if (yych <= 'c') { - if (yych <= '`') goto yy13; - if (yych <= 'a') goto yy82; - if (yych <= 'b') goto yy81; - goto yy79; - } else { - if (yych <= 'r') goto yy13; - if (yych <= 's') goto yy78; - if (yych <= 't') goto yy80; - goto yy13; - } + if (yych == 'v') goto yy96; + goto yy13; yy78: yych = (unsigned char)*++cur; - if (yych == 't') goto yy105; + if (yych == 't') goto yy97; goto yy13; yy79: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy98; - if (yych == 't') goto yy97; + if (yych == 'm') goto yy98; goto yy13; yy80: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy91; + if (yych == 'f') goto yy99; goto yy13; yy81: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy89; + 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 != 'c') goto yy13; + if (yych <= 'r') goto yy13; + if (yych <= 's') goto yy101; + if (yych <= 't') goto yy102; + goto yy13; +yy85: yych = (unsigned char)*++cur; - if (yych != 'c') goto yy13; + if (yych == 'y') goto yy103; + goto yy13; +yy86: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'e') goto yy104; + goto yy13; +yy87: yych = (unsigned char)*++cur; - if (yych != 'p') goto yy13; + if (yych == 'b') goto yy105; + goto yy13; +yy88: yych = (unsigned char)*++cur; - if (yych != 't') goto yy13; - ++cur; -#line 92 "../src/parse/lex_conf.re" - { opts.set_yyaccept (lex_conf_string ()); return; } -#line 366 "src/parse/lex_conf.cc" + if (yych == 'b') goto yy106; + goto yy13; yy89: - ++cur; -#line 94 "../src/parse/lex_conf.re" - { opts.set_yybm (lex_conf_string ()); return; } -#line 371 "src/parse/lex_conf.cc" + 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 != 'r') goto yy13; + 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 != 'g') goto yy13; + if (yych == 'i') goto yy112; + goto yy13; +yy94: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + 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 != 't') goto yy13; - ++cur; -#line 106 "../src/parse/lex_conf.re" - { opts.set_yytarget (lex_conf_string ()); return; } -#line 384 "src/parse/lex_conf.cc" + 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 == 'a') goto yy100; + if (yych == 'o') goto yy118; goto yy13; yy98: - ++cur; -#line 136 "../src/parse/lex_conf.re" - { opts.set_yych (lex_conf_string ()); return; } -#line 393 "src/parse/lex_conf.cc" + 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 != 'b') goto yy13; + if (yych == 'Y') goto yy122; + goto yy13; +yy101: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; + if (yych == 't') goto yy123; + goto yy13; +yy102: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; - ++cur; -#line 81 "../src/parse/lex_conf.re" - { opts.set_yyctable (lex_conf_string ()); return; } -#line 404 "src/parse/lex_conf.cc" + 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 != 'a') goto yy13; + if (yych == 'e') goto yy128; + goto yy13; +yy106: yych = (unsigned char)*++cur; - if (yych != 'b') goto yy13; + if (yych == 'o') goto yy129; + goto yy13; +yy107: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; + if (yych == 'x') goto yy130; + goto yy13; +yy108: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == ':') goto yy131; + goto yy13; +yy109: ++cur; -#line 154 "../src/parse/lex_conf.re" - { lex_conf_string (); return; } -#line 417 "src/parse/lex_conf.cc" +#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 != 'a') goto yy13; + if (yych == 'v') goto yy132; + goto yy13; +yy112: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy113; - if (yych == 't') goto yy114; + if (yych == 't') goto yy133; goto yy13; yy113: yych = (unsigned char)*++cur; - if (yych == 't') goto yy133; + if (yych == 'h') goto yy135; goto yy13; yy114: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'n') goto yy136; + goto yy13; +yy115: yych = (unsigned char)*++cur; - if (yych != ':') goto yy13; + if (yych == 'a') goto yy137; + goto yy13; +yy116: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy117; - if (yych == 'n') goto yy118; + if (yych == 'e') goto yy138; goto yy13; yy117: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy128; + 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 != 'e') goto yy13; + if (yych == 'r') goto yy141; + goto yy13; +yy121: yych = (unsigned char)*++cur; - if (yych != 'x') goto yy13; + if (yych == 'x') goto yy142; + goto yy13; +yy122: yych = (unsigned char)*++cur; - if (yych != 't') goto yy13; + 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 != 'l') goto yy13; + if (yych == 'r') goto yy154; + goto yy13; +yy124: yych = (unsigned char)*++cur; - if (yych != 'a') goto yy13; + if (yych == 'p') goto yy155; + goto yy13; +yy125: yych = (unsigned char)*++cur; - if (yych != 'b') goto yy13; + if (yych == 'i') goto yy157; + goto yy13; +yy126: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'e') goto yy158; + goto yy13; +yy127: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; - ++cur; -#line 91 "../src/parse/lex_conf.re" - { opts.set_bUseStateNext (lex_conf_number () != 0); return; } -#line 462 "src/parse/lex_conf.cc" + if (yych == 'i') goto yy159; + goto yy13; yy128: yych = (unsigned char)*++cur; - if (yych != 'o') goto yy13; + if (yych == 'l') goto yy160; + goto yy13; +yy129: yych = (unsigned char)*++cur; - if (yych != 'r') goto yy13; + if (yych == 'r') goto yy162; + goto yy13; +yy130: yych = (unsigned char)*++cur; - if (yych != 't') goto yy13; - ++cur; -#line 90 "../src/parse/lex_conf.re" - { opts.set_bUseStateAbort (lex_conf_number () != 0); return; } -#line 473 "src/parse/lex_conf.cc" -yy133: + 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 != 'l') goto yy13; + 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 != 'a') goto yy13; + if (yych == 'e') goto yy166; + goto yy13; +yy136: yych = (unsigned char)*++cur; - if (yych != 'b') goto yy13; + if (yych == 'a') goto yy167; + goto yy13; +yy137: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'r') goto yy168; + goto yy13; +yy138: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; - yyaccept = 1; - yych = (unsigned char)*(ptr = ++cur); - ctx = cur; - if (yybm[0+yych] & 64) { - goto yy140; - } - if (yych == '=') goto yy142; + if (yych == 's') goto yy169; + goto yy13; yy139: -#line 151 "../src/parse/lex_conf.re" - { out.set_user_start_label (lex_conf_string ()); return; } -#line 495 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy170; + goto yy13; yy140: - ++cur; - if (lim <= cur) fill(1); - yych = (unsigned char)*cur; - if (yybm[0+yych] & 64) { - goto yy140; - } - if (yych != '=') goto yy13; + 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; - if ((lim - cur) < 2) fill(2); - yych = (unsigned char)*cur; - if (yych <= ',') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy13; - goto yy142; - } else { - if (yych == ' ') goto yy142; - goto yy13; - } - } else { - if (yych <= '/') { - if (yych <= '-') goto yy146; - goto yy13; - } else { - if (yych <= '0') goto yy144; - if (yych <= '9') goto yy147; - goto yy13; - } - } +#line 75 "../src/parse/lex_conf.re" + { opts.set_condPrefix (lex_conf_string ()); return; } +#line 747 "src/parse/lex_conf.cc" yy144: - ++cur; + yych = (unsigned char)*++cur; + if (yych == 'A') goto yy173; + goto yy13; yy145: - cur = ctx; -#line 150 "../src/parse/lex_conf.re" - { out.set_force_start_label (lex_conf_number () != 0); return; } -#line 532 "src/parse/lex_conf.cc" + 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 <= '0') goto yy13; - if (yych >= ':') goto yy13; + if (yych == 'E') goto yy177; + goto yy13; yy147: - ++cur; - if (lim <= cur) fill(1); - yych = (unsigned char)*cur; - if (yybm[0+yych] & 128) { - goto yy147; - } - goto yy145; -yy149: yych = (unsigned char)*++cur; - if (yych != 'b') goto yy13; + if (yych == 'I') goto yy178; + goto yy13; +yy148: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'E') goto yy179; + goto yy13; +yy149: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; + if (yych == 'E') goto yy180; + if (yych == 'I') goto yy181; + goto yy13; +yy150: yych = (unsigned char)*++cur; - if (yych == ':') goto yy154; - if (yych != 'p') goto yy13; + if (yych == 'A') goto yy182; + goto yy13; +yy151: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy172; + if (yych == 'E') goto yy183; goto yy13; -yy154: +yy152: yych = (unsigned char)*++cur; - if (yych != 'y') goto yy13; + if (yych == 'E') goto yy184; + goto yy13; +yy153: yych = (unsigned char)*++cur; - if (yych != 'y') goto yy13; + if (yych == 'E') goto yy185; + if (yych == 'K') goto yy186; + goto yy13; +yy154: yych = (unsigned char)*++cur; - if (yych == 'F') goto yy157; - if (yych == 'N') goto yy158; + 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 == 'i') goto yy163; + if (yych == 'l') goto yy188; goto yy13; yy158: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'x') goto yy189; + goto yy13; +yy159: yych = (unsigned char)*++cur; - if (yych != 'x') goto yy13; + 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 yy13; - ++cur; -#line 89 "../src/parse/lex_conf.re" - { opts.set_yynext (lex_conf_string ()); return; } -#line 581 "src/parse/lex_conf.cc" + if (yych == 't') goto yy196; + goto yy13; yy163: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; + if (yych == 'l') goto yy198; + goto yy13; +yy164: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; + if (yych == 'y') goto yy199; + goto yy13; +yy165: yych = (unsigned char)*++cur; - if (yych != 'L') goto yy13; + if (yych == 'r') goto yy200; + goto yy13; +yy166: yych = (unsigned char)*++cur; - if (yych != 'a') goto yy13; + if (yych == 'c') goto yy201; + goto yy13; +yy167: yych = (unsigned char)*++cur; - if (yych != 'b') goto yy13; + if (yych == 'b') goto yy202; + goto yy13; +yy168: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'a') goto yy203; + goto yy13; +yy169: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; - ++cur; -#line 88 "../src/parse/lex_conf.re" - { opts.set_yyfilllabel (lex_conf_string ()); return; } -#line 600 "src/parse/lex_conf.cc" + 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 != 'e') goto yy13; + if (yych == 'f') goto yy208; + goto yy13; +yy173: yych = (unsigned char)*++cur; - if (yych != 'f') goto yy13; + if (yych == 'C') goto yy209; + goto yy13; +yy174: yych = (unsigned char)*++cur; - if (yych != 'i') goto yy13; + if (yych == 'N') goto yy210; + goto yy13; +yy175: yych = (unsigned char)*++cur; - if (yych != 'x') goto yy13; - ++cur; -#line 147 "../src/parse/lex_conf.re" - { opts.set_labelPrefix (lex_conf_string ()); return; } -#line 613 "src/parse/lex_conf.cc" + 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 != 'd') goto yy13; + if (yych == 'L') goto yy215; + goto yy13; +yy179: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'T') goto yy216; + goto yy13; +yy180: yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; + if (yych == 'S') goto yy217; + goto yy13; +yy181: yych = (unsigned char)*++cur; - if (yych != 't') goto yy13; + if (yych == 'M') goto yy218; + goto yy13; +yy182: yych = (unsigned char)*++cur; - if (yych != ':') goto yy13; + if (yych == 'R') goto yy219; + goto yy13; +yy183: yych = (unsigned char)*++cur; - if (yych <= 'r') goto yy13; - if (yych <= 's') goto yy185; - if (yych >= 'u') goto yy13; + if (yych == 'E') goto yy220; + goto yy13; +yy184: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy192; + if (yych == 'S') goto yy221; goto yy13; yy185: yych = (unsigned char)*++cur; - if (yych != 't') goto yy13; + if (yych == 'T') goto yy222; + goto yy13; +yy186: yych = (unsigned char)*++cur; - if (yych != 'r') goto yy13; + if (yych == 'I') goto yy223; + goto yy13; +yy187: yych = (unsigned char)*++cur; - if (yych != 'i') goto yy13; + if (yych == 'n') goto yy224; + goto yy13; +yy188: yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; + if (yych == 'l') goto yy225; + goto yy13; +yy189: yych = (unsigned char)*++cur; - if (yych != 'g') goto yy13; + if (yych == 't') goto yy226; + goto yy13; +yy190: ++cur; -#line 121 "../src/parse/lex_conf.re" - { opts.set_indString (lex_conf_string ()); return; } -#line 646 "src/parse/lex_conf.cc" +#line 147 "../src/parse/lex_conf.re" + { opts.set_labelPrefix (lex_conf_string ()); return; } +#line 955 "src/parse/lex_conf.cc" yy192: - yych = (unsigned char)*++cur; - if (yych != 'p') goto yy13; ++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; + if (lim <= cur) fill(1); + yych = (unsigned char)*cur; + if (yybm[0+yych] & 64) { + goto yy192; } -#line 661 "src/parse/lex_conf.cc" -yy195: - yych = (unsigned char)*++cur; - if (yych != 'a') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'g') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 's') goto yy13; - yych = (unsigned char)*++cur; - if (yych != ':') goto yy13; - yych = (unsigned char)*++cur; - if (yych <= 'e') { - if (yych == '8') goto yy200; - if (yych <= 'd') goto yy13; + 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 <= 'u') { - if (yych <= 't') goto yy13; + if (yych <= '/') { + if (yych <= '-') goto yy228; + goto yy13; } else { - if (yych <= 'v') goto yy13; - if (yych >= 'y') goto yy13; + if (yych <= '0') goto yy229; + if (yych <= '9') goto yy231; + goto yy13; } } -yy200: +yy196: ++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 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; } -#line 709 "src/parse/lex_conf.cc" -yy202: +yy200: yych = (unsigned char)*++cur; - if (yych != 'f') goto yy13; + if (yych == 's') goto yy239; + goto yy13; +yy201: yych = (unsigned char)*++cur; - if (yych != 'i') goto yy13; + if (yych == 'k') goto yy240; + goto yy13; +yy202: yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; + if (yych == 'l') goto yy242; + goto yy13; +yy203: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'm') goto yy243; + goto yy13; +yy204: yych = (unsigned char)*++cur; - if (yych != ':') goto yy13; + 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 != 'Y') goto yy13; + if (yych == 'n') goto yy246; + goto yy13; +yy208: yych = (unsigned char)*++cur; - if (yych != 'Y') goto yy13; + if (yych == 'i') goto yy247; + goto yy13; +yy209: yych = (unsigned char)*++cur; - switch (yych) { - case 'B': goto yy215; - case 'C': goto yy211; - case 'D': goto yy212; - case 'F': goto yy210; - case 'G': goto yy219; - case 'L': goto yy213; - case 'M': goto yy218; - case 'P': goto yy217; - case 'R': goto yy214; - case 'S': goto yy216; - default: goto yy13; - } + if (yych == 'K') goto yy248; + goto yy13; yy210: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy377; + if (yych == 'D') goto yy249; goto yy13; yy211: yych = (unsigned char)*++cur; - if (yych <= 'S') { - if (yych == 'O') goto yy350; - goto yy13; - } else { - if (yych <= 'T') goto yy352; - if (yych <= 'U') goto yy351; - goto yy13; - } + if (yych == 'M') goto yy250; + goto yy13; yy212: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy345; + if (yych == 'P') goto yy251; goto yy13; yy213: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy333; - if (yych == 'I') goto yy332; + if (yych == 'S') goto yy252; goto yy13; yy214: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy321; + if (yych == 'U') goto yy253; goto yy13; yy215: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy311; + if (yych == 'L') goto yy254; goto yy13; yy216: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy262; - if (yych == 'K') goto yy263; + if (yych == 'C') goto yy256; + if (yych == 'S') goto yy257; goto yy13; yy217: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy258; + if (yych == 'S') goto yy258; goto yy13; yy218: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy252; + if (yych == 'I') goto yy259; goto yy13; yy219: yych = (unsigned char)*++cur; - if (yych != 'E') goto yy13; + if (yych == 'K') goto yy260; + goto yy13; +yy220: yych = (unsigned char)*++cur; - if (yych != 'T') goto yy13; + if (yych == 'K') goto yy261; + goto yy13; +yy221: yych = (unsigned char)*++cur; - if (yych == 'C') goto yy222; - if (yych == 'S') goto yy223; + if (yych == 'T') goto yy263; goto yy13; yy222: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy236; + if (yych == 'C') goto yy264; + if (yych == 'S') goto yy265; goto yy13; yy223: yych = (unsigned char)*++cur; - if (yych != 'T') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'A') goto yy13; + if (yych == 'P') goto yy266; + goto yy13; +yy224: yych = (unsigned char)*++cur; - if (yych != 'T') goto yy13; + if (yych == 'g') goto yy268; + goto yy13; +yy225: yych = (unsigned char)*++cur; - if (yych != 'E') goto yy13; - yyaccept = 2; - yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy229; + 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: -#line 83 "../src/parse/lex_conf.re" - { opts.set_state_get (lex_conf_string ()); return; } -#line 811 "src/parse/lex_conf.cc" -yy229: - yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; yych = (unsigned char)*++cur; - if (yych != 'a') goto yy13; + 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 != 'k') goto yy13; + if (yych == 'b') goto yy271; + goto yy13; +yy234: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'c') goto yy272; + goto yy13; +yy235: yych = (unsigned char)*++cur; - if (yych != 'd') goto yy13; - ++cur; -#line 84 "../src/parse/lex_conf.re" - { opts.set_state_get_naked (lex_conf_number () != 0); return; } -#line 826 "src/parse/lex_conf.cc" + if (yych == 'm') goto yy273; + goto yy13; yy236: yych = (unsigned char)*++cur; - if (yych != 'N') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'D') goto yy13; + if (yych == 'h') goto yy275; + if (yych == 't') goto yy277; + goto yy13; +yy237: yych = (unsigned char)*++cur; - if (yych != 'I') goto yy13; + if (yych == 't') goto yy278; + goto yy13; +yy238: yych = (unsigned char)*++cur; - if (yych != 'T') goto yy13; + if (yych == 'a') goto yy279; + goto yy13; +yy239: yych = (unsigned char)*++cur; - if (yych != 'I') goto yy13; + 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 != 'O') goto yy13; + if (yych == 'e') goto yy281; + goto yy13; +yy243: yych = (unsigned char)*++cur; - if (yych != 'N') goto yy13; - yyaccept = 3; - yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy245; + if (yych == 'e') goto yy283; + goto yy13; yy244: -#line 70 "../src/parse/lex_conf.re" - { opts.set_cond_get (lex_conf_string ()); return; } -#line 848 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy284; + goto yy13; yy245: yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; + 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 != 'a') goto yy13; + if (yych == 'U') goto yy290; + goto yy13; +yy249: yych = (unsigned char)*++cur; - if (yych != 'k') goto yy13; + if (yych == 'T') goto yy291; + goto yy13; +yy250: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'A') goto yy292; + goto yy13; +yy251: yych = (unsigned char)*++cur; - if (yych != 'd') goto yy13; - ++cur; -#line 71 "../src/parse/lex_conf.re" - { opts.set_cond_get_naked (lex_conf_number () != 0); return; } -#line 863 "src/parse/lex_conf.cc" + if (yych == 'E') goto yy293; + goto yy13; yy252: yych = (unsigned char)*++cur; - if (yych != 'R') goto yy13; + if (yych == 'O') goto yy295; + goto yy13; +yy253: yych = (unsigned char)*++cur; - if (yych != 'K') goto yy13; + 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 != 'E') goto yy13; + if (yych == 'O') goto yy300; + goto yy13; +yy257: yych = (unsigned char)*++cur; - if (yych != 'R') goto yy13; - ++cur; -#line 109 "../src/parse/lex_conf.re" - { opts.set_yymarker (lex_conf_string ()); return; } -#line 876 "src/parse/lex_conf.cc" + if (yych == 'T') goto yy301; + goto yy13; yy258: yych = (unsigned char)*++cur; - if (yych != 'E') goto yy13; + if (yych == 'T') goto yy302; + goto yy13; +yy259: yych = (unsigned char)*++cur; - if (yych != 'K') goto yy13; + 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 885 "src/parse/lex_conf.cc" -yy262: +#line 1254 "src/parse/lex_conf.cc" +yy263: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy267; + if (yych == 'O') goto yy306; goto yy13; -yy263: +yy264: yych = (unsigned char)*++cur; - if (yych != 'I') goto yy13; + if (yych == 'O') goto yy307; + goto yy13; +yy265: yych = (unsigned char)*++cur; - if (yych != 'P') goto yy13; + if (yych == 'T') goto yy308; + goto yy13; +yy266: ++cur; #line 114 "../src/parse/lex_conf.re" { opts.set_yyskip (lex_conf_string ()); return; } -#line 898 "src/parse/lex_conf.cc" -yy267: - yych = (unsigned char)*++cur; - if (yych == 'C') goto yy268; - if (yych == 'S') goto yy269; - goto yy13; +#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 == 'O') goto yy289; + if (yych == 'a') goto yy309; goto yy13; -yy269: - yych = (unsigned char)*++cur; - if (yych != 'T') goto yy13; +yy271: yych = (unsigned char)*++cur; - if (yych != 'A') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'T') goto yy13; + if (yych == 'e') goto yy310; + goto yy13; +yy272: yych = (unsigned char)*++cur; - if (yych != 'E') goto yy13; - yyaccept = 4; - yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy276; - if (yych == '@') goto yy275; -yy274: -#line 85 "../src/parse/lex_conf.re" - { opts.set_state_set (lex_conf_string ()); return; } -#line 924 "src/parse/lex_conf.cc" + 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 == 's') goto yy283; + if (yych == 'a') goto yy312; goto yy13; -yy276: - yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; +yy278: yych = (unsigned char)*++cur; - if (yych != 'a') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'k') goto yy13; + if (yych == 'a') goto yy313; + goto yy13; +yy279: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'r') goto yy314; + goto yy13; +yy280: yych = (unsigned char)*++cur; - if (yych != 'd') goto yy13; + if (yych == 'o') goto yy315; + goto yy13; +yy281: ++cur; -#line 86 "../src/parse/lex_conf.re" - { opts.set_state_set_naked (lex_conf_number () != 0); return; } -#line 943 "src/parse/lex_conf.cc" +#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 yy13; - yych = (unsigned char)*++cur; - if (yych != 'a') goto yy13; + if (yych == 't') goto yy316; + goto yy13; +yy284: yych = (unsigned char)*++cur; - if (yych != 't') goto yy13; + if (yych == 'd') goto yy317; + goto yy13; +yy285: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'o') goto yy319; + goto yy13; +yy286: ++cur; -#line 87 "../src/parse/lex_conf.re" - { opts.set_state_set_arg (lex_conf_string ()); return; } -#line 956 "src/parse/lex_conf.cc" -yy289: - yych = (unsigned char)*++cur; - if (yych != 'N') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'D') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'I') goto yy13; +#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 != 'T') goto yy13; + if (yych == 'P') goto yy320; + goto yy13; +yy291: yych = (unsigned char)*++cur; - if (yych != 'I') goto yy13; + if (yych == 'Y') goto yy322; + goto yy13; +yy292: yych = (unsigned char)*++cur; - if (yych != 'O') goto yy13; + 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 != 'N') goto yy13; - yyaccept = 5; - yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy298; - if (yych == '@') goto yy299; -yy297: -#line 72 "../src/parse/lex_conf.re" - { opts.set_cond_set (lex_conf_string ()); return; } -#line 979 "src/parse/lex_conf.cc" + 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 yy305; + if (yych == 'n') goto yy326; goto yy13; yy299: yych = (unsigned char)*++cur; - if (yych != 'c') goto yy13; + if (yych == 'l') goto yy327; + goto yy13; +yy300: yych = (unsigned char)*++cur; - if (yych != 'o') goto yy13; + if (yych == 'N') goto yy328; + goto yy13; +yy301: yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; + if (yych == 'A') goto yy329; + goto yy13; +yy302: yych = (unsigned char)*++cur; - if (yych != 'd') goto yy13; + if (yych == 'H') goto yy330; + goto yy13; +yy303: ++cur; -#line 73 "../src/parse/lex_conf.re" - { opts.set_cond_set_arg (lex_conf_string ()); return; } -#line 996 "src/parse/lex_conf.cc" +#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 != 'a') goto yy13; + if (yych == 'R') goto yy331; + goto yy13; +yy306: yych = (unsigned char)*++cur; - if (yych != 'k') goto yy13; + if (yych == 'R') goto yy333; + goto yy13; +yy307: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'N') goto yy334; + goto yy13; +yy308: yych = (unsigned char)*++cur; - if (yych != 'd') goto yy13; - ++cur; -#line 74 "../src/parse/lex_conf.re" - { opts.set_cond_set_naked (lex_conf_number () != 0); return; } -#line 1009 "src/parse/lex_conf.cc" + 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 != 'C') goto yy13; + if (yych == 'e') goto yy339; + goto yy13; +yy312: yych = (unsigned char)*++cur; - if (yych != 'K') goto yy13; + if (yych == 'b') goto yy340; + goto yy13; +yy313: yych = (unsigned char)*++cur; - if (yych != 'U') goto yy13; + if (yych == 'b') goto yy341; + goto yy13; +yy314: yych = (unsigned char)*++cur; - if (yych != 'P') goto yy13; - yyaccept = 6; - yych = (unsigned char)*(ptr = ++cur); - if (yych == 'C') goto yy317; -yy316: -#line 115 "../src/parse/lex_conf.re" - { opts.set_yybackup (lex_conf_string ()); return; } -#line 1025 "src/parse/lex_conf.cc" -yy317: + if (yych == 'g') goto yy342; + goto yy13; +yy315: yych = (unsigned char)*++cur; - if (yych != 'T') goto yy13; + if (yych == 'n') goto yy343; + goto yy13; +yy316: yych = (unsigned char)*++cur; - if (yych != 'X') goto yy13; + if (yych == 'e') goto yy345; + goto yy13; +yy317: ++cur; -#line 116 "../src/parse/lex_conf.re" - { opts.set_yybackupctx (lex_conf_string ()); return; } -#line 1034 "src/parse/lex_conf.cc" -yy321: - yych = (unsigned char)*++cur; - if (yych != 'S') goto yy13; +#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 != 'T') goto yy13; + 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 != 'O') goto yy13; + if (yych == 'P') goto yy348; + goto yy13; +yy323: yych = (unsigned char)*++cur; - if (yych != 'R') goto yy13; + 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 != 'E') goto yy13; - yyaccept = 7; - yych = (unsigned char)*(ptr = ++cur); - if (yych == 'C') goto yy328; + if (yych == 'a') goto yy350; + goto yy13; yy327: -#line 117 "../src/parse/lex_conf.re" - { opts.set_yyrestore (lex_conf_string ()); return; } -#line 1052 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy351; + goto yy13; yy328: yych = (unsigned char)*++cur; - if (yych != 'T') goto yy13; + if (yych == 'D') goto yy352; + goto yy13; +yy329: yych = (unsigned char)*++cur; - if (yych != 'X') goto yy13; - ++cur; -#line 118 "../src/parse/lex_conf.re" - { opts.set_yyrestorectx (lex_conf_string ()); return; } -#line 1061 "src/parse/lex_conf.cc" -yy332: + if (yych == 'T') goto yy353; + goto yy13; +yy330: yych = (unsigned char)*++cur; - if (yych == 'M') goto yy341; + 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 != 'S') goto yy13; + if (yych == 'E') goto yy355; + goto yy13; +yy334: yych = (unsigned char)*++cur; - if (yych != 'S') goto yy13; + if (yych == 'D') goto yy357; + goto yy13; +yy335: yych = (unsigned char)*++cur; - if (yych != 'T') goto yy13; + if (yych == 'T') goto yy358; + goto yy13; +yy336: yych = (unsigned char)*++cur; - if (yych != 'H') goto yy13; + 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 != 'A') goto yy13; + if (yych == 'p') goto yy360; + goto yy13; +yy340: yych = (unsigned char)*++cur; - if (yych != 'N') goto yy13; - ++cur; -#line 119 "../src/parse/lex_conf.re" - { opts.set_yylessthan (lex_conf_string ()); return; } -#line 1082 "src/parse/lex_conf.cc" + if (yych == 'l') goto yy361; + goto yy13; yy341: yych = (unsigned char)*++cur; - if (yych != 'I') goto yy13; + if (yych == 'l') goto yy362; + goto yy13; +yy342: yych = (unsigned char)*++cur; - if (yych != 'T') goto yy13; + if (yych == 'e') goto yy363; + goto yy13; +yy343: ++cur; -#line 111 "../src/parse/lex_conf.re" - { opts.set_yylimit (lex_conf_string ()); return; } -#line 1091 "src/parse/lex_conf.cc" +#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 != 'B') goto yy13; + if (yych == 'r') goto yy364; + goto yy13; +yy346: yych = (unsigned char)*++cur; - if (yych != 'U') goto yy13; + if (yych == 'd') goto yy366; + goto yy13; +yy347: yych = (unsigned char)*++cur; - if (yych != 'G') goto yy13; - ++cur; -#line 133 "../src/parse/lex_conf.re" - { opts.set_yydebug (lex_conf_string ()); return; } -#line 1102 "src/parse/lex_conf.cc" + 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 == 'N') goto yy370; + if (yych == 'k') goto yy372; goto yy13; yy351: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy365; + if (yych == 'n') goto yy373; goto yy13; yy352: yych = (unsigned char)*++cur; - if (yych <= 'W') goto yy13; - if (yych <= 'X') goto yy354; - if (yych >= 'Z') goto yy13; + if (yych == 'I') goto yy375; + goto yy13; +yy353: yych = (unsigned char)*++cur; - if (yych == 'P') goto yy362; + if (yych == 'E') goto yy376; goto yy13; yy354: yych = (unsigned char)*++cur; - if (yych != 'M') goto yy13; + 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 != 'A') goto yy13; + if (yych == 'I') goto yy381; + goto yy13; +yy358: yych = (unsigned char)*++cur; - if (yych != 'R') goto yy13; + if (yych == 'E') goto yy382; + goto yy13; +yy359: yych = (unsigned char)*++cur; - if (yych != 'K') goto yy13; + if (yych == 'l') goto yy384; + goto yy13; +yy360: yych = (unsigned char)*++cur; - if (yych != 'E') goto yy13; + if (yych == 't') goto yy386; + goto yy13; +yy361: yych = (unsigned char)*++cur; - if (yych != 'R') goto yy13; - ++cur; -#line 110 "../src/parse/lex_conf.re" - { opts.set_yyctxmarker (lex_conf_string ()); return; } -#line 1135 "src/parse/lex_conf.cc" + if (yych == 'e') goto yy388; + goto yy13; yy362: yych = (unsigned char)*++cur; - if (yych != 'E') goto yy13; - ++cur; -#line 135 "../src/parse/lex_conf.re" - { opts.set_yyctype (lex_conf_string ()); return; } -#line 1142 "src/parse/lex_conf.cc" -yy365: - yych = (unsigned char)*++cur; - if (yych != 'S') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'O') goto yy13; + if (yych == 'e') goto yy390; + goto yy13; +yy363: yych = (unsigned char)*++cur; - if (yych != 'R') goto yy13; + if (yych == 't') goto yy392; + goto yy13; +yy364: ++cur; -#line 108 "../src/parse/lex_conf.re" - { opts.set_yycursor (lex_conf_string ()); return; } -#line 1153 "src/parse/lex_conf.cc" -yy370: - yych = (unsigned char)*++cur; - if (yych != 'D') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'T') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'Y') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'P') goto yy13; +#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 != 'E') goto yy13; + if (yych == 'X') goto yy394; + goto yy13; +yy369: ++cur; #line 69 "../src/parse/lex_conf.re" { opts.set_yycondtype (lex_conf_string ()); return; } -#line 1168 "src/parse/lex_conf.cc" -yy377: +#line 1640 "src/parse/lex_conf.cc" +yy371: yych = (unsigned char)*++cur; - if (yych != 'L') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'L') goto yy13; - yyaccept = 8; - yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy381; - if (yych == '@') goto yy382; -yy380: -#line 140 "../src/parse/lex_conf.re" - { opts.set_fill (lex_conf_string ()); return; } -#line 1181 "src/parse/lex_conf.cc" -yy381: - yych = (unsigned char)*++cur; - if (yych == 'n') goto yy387; + if (yych == 'R') goto yy396; goto yy13; -yy382: - yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; +yy372: yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; + 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 1196 "src/parse/lex_conf.cc" -yy387: - yych = (unsigned char)*++cur; - if (yych != 'a') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'k') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; +#line 1653 "src/parse/lex_conf.cc" +yy375: yych = (unsigned char)*++cur; - if (yych != 'd') goto yy13; + 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 144 "../src/parse/lex_conf.re" - { opts.set_fill_naked (lex_conf_number () != 0); return; } -#line 1209 "src/parse/lex_conf.cc" -yy393: +#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 == 'o') goto yy441; + if (yych == 'T') goto yy401; goto yy13; -yy394: - yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'd') goto yy13; - yych = (unsigned char)*++cur; - if (yych <= 'd') { - if (yych == ':') goto yy399; - goto yy13; - } else { - if (yych <= 'e') goto yy398; - if (yych != 'p') goto yy13; - } +yy381: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy435; + 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 == 'n') goto yy425; + if (yych == 'd') goto yy405; goto yy13; yy399: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy401; - if (yych != 'g') goto yy13; + if (yych == 'I') goto yy407; + goto yy13; +yy400: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy415; + if (yych == 'n') goto yy408; goto yy13; yy401: yych = (unsigned char)*++cur; - if (yych != 'i') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'v') goto yy13; + if (yych == 'X') goto yy409; + goto yy13; +yy402: yych = (unsigned char)*++cur; - if (yych != 'i') goto yy13; + if (yych == 'I') goto yy411; + goto yy13; +yy403: yych = (unsigned char)*++cur; - if (yych != 'd') goto yy13; + if (yych == 'n') goto yy412; + goto yy13; +yy404: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + 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 != 'r') goto yy13; - yyaccept = 9; - yych = (unsigned char)*(ptr = ++cur); - if (yych == '@') goto yy409; + if (yych == 'O') goto yy414; + goto yy13; yy408: -#line 77 "../src/parse/lex_conf.re" - { opts.set_condDivider (lex_conf_string ()); return; } -#line 1260 "src/parse/lex_conf.cc" + 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 != 'c') goto yy13; + if (yych == 'O') goto yy416; + goto yy13; +yy412: yych = (unsigned char)*++cur; - if (yych != 'o') goto yy13; + if (yych == 'a') goto yy417; + goto yy13; +yy413: yych = (unsigned char)*++cur; - if (yych != 'n') goto yy13; + if (yych == 't') goto yy418; + goto yy13; +yy414: yych = (unsigned char)*++cur; - if (yych != 'd') goto yy13; - ++cur; -#line 78 "../src/parse/lex_conf.re" - { opts.set_condDividerParam (lex_conf_string ()); return; } -#line 1273 "src/parse/lex_conf.cc" + if (yych == 'N') goto yy419; + goto yy13; yy415: yych = (unsigned char)*++cur; - if (yych != 't') goto yy13; + if (yych == 'k') goto yy421; + goto yy13; +yy416: yych = (unsigned char)*++cur; - if (yych != 'o') goto yy13; - yyaccept = 10; - yych = (unsigned char)*(ptr = ++cur); - if (yych == '@') goto yy419; -yy418: -#line 79 "../src/parse/lex_conf.re" - { opts.set_condGoto (lex_conf_string ()); return; } -#line 1285 "src/parse/lex_conf.cc" -yy419: + if (yych == 'N') goto yy422; + goto yy13; +yy417: yych = (unsigned char)*++cur; - if (yych != 'c') goto yy13; + if (yych == 'k') goto yy424; + goto yy13; +yy418: yych = (unsigned char)*++cur; - if (yych != 'o') goto yy13; + 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 != 'n') goto yy13; + 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 != 'd') goto yy13; - ++cur; -#line 80 "../src/parse/lex_conf.re" - { opts.set_condGotoParam (lex_conf_string ()); return; } -#line 1298 "src/parse/lex_conf.cc" + if (yych == 'e') goto yy430; + goto yy13; yy425: yych = (unsigned char)*++cur; - if (yych != 'u') goto yy13; + if (yych == 't') goto yy431; + goto yy13; +yy426: yych = (unsigned char)*++cur; - if (yych != 'm') goto yy13; + if (yych == 'n') goto yy432; + goto yy13; +yy427: yych = (unsigned char)*++cur; - if (yych != 'p') goto yy13; + if (yych == 'd') goto yy433; + goto yy13; +yy428: yych = (unsigned char)*++cur; - if (yych != 'r') goto yy13; + if (yych == 'n') goto yy435; + goto yy13; +yy429: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'c') goto yy436; + goto yy13; +yy430: yych = (unsigned char)*++cur; - if (yych != 'f') goto yy13; + if (yych == 'd') goto yy437; + goto yy13; +yy431: yych = (unsigned char)*++cur; - if (yych != 'i') goto yy13; + if (yych == 'e') goto yy439; + goto yy13; +yy432: yych = (unsigned char)*++cur; - if (yych != 'x') goto yy13; + if (yych == 'a') goto yy441; + goto yy13; +yy433: ++cur; -#line 76 "../src/parse/lex_conf.re" - { opts.set_condEnumPrefix (lex_conf_string ()); return; } -#line 1319 "src/parse/lex_conf.cc" +#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 != 'e') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'f') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'i') goto yy13; + if (yych == 'a') goto yy442; + goto yy13; +yy436: yych = (unsigned char)*++cur; - if (yych != 'x') goto yy13; + if (yych == 'o') goto yy443; + goto yy13; +yy437: ++cur; -#line 75 "../src/parse/lex_conf.re" - { opts.set_condPrefix (lex_conf_string ()); return; } -#line 1332 "src/parse/lex_conf.cc" +#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 != 't') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'o') goto yy13; - yych = (unsigned char)*++cur; - if (yych != ':') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 't') goto yy13; - yych = (unsigned char)*++cur; - if (yych != 'h') goto yy13; + if (yych == 'k') goto yy444; + goto yy13; +yy442: yych = (unsigned char)*++cur; - if (yych != 'r') goto yy13; + if (yych == 'k') goto yy445; + goto yy13; +yy443: yych = (unsigned char)*++cur; - if (yych != 'e') goto yy13; + if (yych == 'n') goto yy446; + goto yy13; +yy444: yych = (unsigned char)*++cur; - if (yych != 's') goto yy13; + if (yych == 'e') goto yy447; + goto yy13; +yy445: yych = (unsigned char)*++cur; - if (yych != 'h') goto yy13; + if (yych == 'e') goto yy448; + goto yy13; +yy446: yych = (unsigned char)*++cur; - if (yych != 'o') goto yy13; + if (yych == 'd') goto yy449; + goto yy13; +yy447: yych = (unsigned char)*++cur; - if (yych != 'l') goto yy13; + if (yych == 'd') goto yy451; + goto yy13; +yy448: yych = (unsigned char)*++cur; - if (yych != 'd') goto yy13; + if (yych == 'd') goto yy453; + goto yy13; +yy449: ++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 1369 "src/parse/lex_conf.cc" +#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" @@ -1374,7 +1932,7 @@ yy441: void Scanner::lex_conf_assign () { -#line 1378 "src/parse/lex_conf.cc" +#line 1936 "src/parse/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -1423,43 +1981,35 @@ void Scanner::lex_conf_assign () yy458: #line 161 "../src/parse/lex_conf.re" { fatal ("missing '=' in configuration"); } -#line 1427 "src/parse/lex_conf.cc" +#line 1985 "src/parse/lex_conf.cc" yy459: yych = (unsigned char)*(ptr = ++cur); if (yych <= 0x1F) { - if (yych == '\t') goto yy464; + if (yych == '\t') goto yy463; goto yy458; } else { - if (yych <= ' ') goto yy464; - if (yych == '=') goto yy462; - goto yy458; + if (yych <= ' ') goto yy463; + if (yych != '=') goto yy458; } yy460: ++cur; - yych = (unsigned char)*cur; - goto yy463; -yy461: -#line 162 "../src/parse/lex_conf.re" - { return; } -#line 1445 "src/parse/lex_conf.cc" -yy462: - ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; -yy463: if (yybm[0+yych] & 128) { - goto yy462; + goto yy460; } - goto yy461; -yy464: +#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 yy464; + if (yych == '\t') goto yy463; } else { - if (yych <= ' ') goto yy464; - if (yych == '=') goto yy462; + if (yych <= ' ') goto yy463; + if (yych == '=') goto yy460; } cur = ptr; goto yy458; @@ -1471,7 +2021,7 @@ yy464: void Scanner::lex_conf_semicolon () { -#line 1475 "src/parse/lex_conf.cc" +#line 2025 "src/parse/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -1511,42 +2061,37 @@ void Scanner::lex_conf_semicolon () if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= 0x1F) { - if (yych == '\t') goto yy471; + if (yych == '\t') goto yy470; } else { - if (yych <= ' ') goto yy471; - if (yych == ';') goto yy472; + if (yych <= ' ') goto yy470; + if (yych == ';') goto yy471; } ++cur; -yy470: +yy469: #line 169 "../src/parse/lex_conf.re" { fatal ("missing ending ';' in configuration"); } -#line 1524 "src/parse/lex_conf.cc" -yy471: +#line 2074 "src/parse/lex_conf.cc" +yy470: yych = (unsigned char)*(ptr = ++cur); if (yybm[0+yych] & 128) { - goto yy475; + goto yy473; } - if (yych == ';') goto yy474; - goto yy470; -yy472: + if (yych != ';') goto yy469; +yy471: ++cur; -yy473: #line 170 "../src/parse/lex_conf.re" { return; } -#line 1537 "src/parse/lex_conf.cc" -yy474: - yych = (unsigned char)*++cur; - goto yy473; -yy475: +#line 2085 "src/parse/lex_conf.cc" +yy473: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy475; + goto yy473; } - if (yych == ';') goto yy474; + if (yych == ';') goto yy471; cur = ptr; - goto yy470; + goto yy469; } #line 171 "../src/parse/lex_conf.re" @@ -1557,7 +2102,7 @@ int32_t Scanner::lex_conf_number () lex_conf_assign (); tok = cur; -#line 1561 "src/parse/lex_conf.cc" +#line 2106 "src/parse/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -1597,15 +2142,20 @@ int32_t Scanner::lex_conf_number () if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= '/') { - if (yych == '-') goto yy483; + if (yych == '-') goto yy479; } else { - if (yych <= '0') goto yy481; - if (yych <= '9') goto yy484; + 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: -yy481: ++cur; -yy482: +yy481: #line 180 "../src/parse/lex_conf.re" { int32_t n = 0; @@ -1616,19 +2166,15 @@ yy482: lex_conf_semicolon (); return n; } -#line 1620 "src/parse/lex_conf.cc" -yy483: - yych = (unsigned char)*++cur; - if (yych <= '0') goto yy480; - if (yych >= ':') goto yy480; -yy484: +#line 2170 "src/parse/lex_conf.cc" +yy482: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy484; + goto yy482; } - goto yy482; + goto yy481; } #line 189 "../src/parse/lex_conf.re" @@ -1640,7 +2186,7 @@ std::string Scanner::lex_conf_string () std::string s; tok = cur; -#line 1644 "src/parse/lex_conf.cc" +#line 2190 "src/parse/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -1681,26 +2227,34 @@ std::string Scanner::lex_conf_string () yych = (unsigned char)*cur; if (yych <= '!') { if (yych <= '\n') { - if (yych <= 0x08) goto yy491; + if (yych <= 0x08) goto yy487; } else { - if (yych != ' ') goto yy491; + if (yych != ' ') goto yy487; } } else { if (yych <= '\'') { if (yych <= '"') goto yy489; - if (yych <= '&') goto yy491; + if (yych <= '&') goto yy487; goto yy489; } else { - if (yych != ';') goto yy491; + if (yych != ';') goto yy487; } } -yy488: +yy486: #line 212 "../src/parse/lex_conf.re" { s = std::string(tok, tok_len()); goto end; } -#line 1704 "src/parse/lex_conf.cc" +#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" @@ -1718,15 +2272,7 @@ yy489: } } } -#line 1722 "src/parse/lex_conf.cc" -yy491: - ++cur; - if (lim <= cur) fill(1); - yych = (unsigned char)*cur; - if (yybm[0+yych] & 128) { - goto yy491; - } - goto yy488; +#line 2276 "src/parse/lex_conf.cc" } #line 216 "../src/parse/lex_conf.re" diff --git a/bootstrap/src/parse/parser.cc b/bootstrap/src/parse/parser.cc index 13190ce3..8a795325 100644 --- a/bootstrap/src/parse/parser.cc +++ b/bootstrap/src/parse/parser.cc @@ -81,11 +81,10 @@ #include <vector> #include "src/codegen/output.h" -#include "src/codegen/skeleton/skeleton.h" #include "src/conf/opt.h" #include "src/globals.h" -#include "src/ir/bytecode/bytecode.h" -#include "src/ir/dfa/dfa.h" +#include "src/ir/compile.h" +#include "src/ir/adfa/adfa.h" #include "src/ir/regexp/encoding/enc.h" #include "src/ir/regexp/encoding/range_suffix.h" #include "src/ir/regexp/regexp.h" @@ -94,6 +93,7 @@ #include "src/ir/regexp/regexp_null.h" #include "src/ir/regexp/regexp_rule.h" #include "src/ir/rule_rank.h" +#include "src/ir/skeleton/skeleton.h" #include "src/parse/code.h" #include "src/parse/extop.h" #include "src/parse/loc.h" @@ -162,9 +162,6 @@ void context_rule ) { context_check(clist); - const RegExp::InsAccess ins_access = clist->size() > 1 - ? RegExp::PRIVATE - : RegExp::SHARED; for(CondList::const_iterator it = clist->begin(); it != clist->end(); ++it) { if (specMap.find(*it) == specMap.end()) @@ -177,7 +174,6 @@ void context_rule , expr , look , rank_counter.next () - , ins_access , code , newcond ); @@ -215,7 +211,6 @@ void default_rule(CondList *clist, const Code * code) , in->mkDefault () , new NullOp , rule_rank_t::def () - , RegExp::SHARED , code , NULL ); @@ -598,11 +593,11 @@ static const yytype_int8 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 198, 198, 200, 204, 208, 217, 226, 230, 234, - 238, 255, 273, 277, 283, 288, 294, 298, 313, 330, - 335, 341, 357, 375, 395, 401, 409, 412, 419, 425, - 435, 438, 446, 449, 456, 460, 467, 471, 478, 482, - 489, 493, 508, 528, 532, 536, 540, 547, 557, 561 + 0, 193, 193, 195, 199, 203, 211, 219, 223, 227, + 231, 247, 264, 268, 274, 279, 285, 289, 303, 319, + 324, 330, 345, 362, 381, 387, 395, 398, 405, 411, + 421, 424, 432, 435, 442, 446, 453, 457, 464, 468, + 475, 479, 494, 513, 517, 521, 525, 532, 542, 546 }; #endif @@ -1588,7 +1583,6 @@ yyreduce: in->fatal("sym already defined"); } delete (yyvsp[(1) - (4)].str); - (yyvsp[(3) - (4)].regexp)->ins_access = RegExp::PRIVATE; ;} break; @@ -1600,7 +1594,6 @@ yyreduce: in->fatal("sym already defined"); } delete (yyvsp[(1) - (3)].str); - (yyvsp[(2) - (3)].regexp)->ins_access = RegExp::PRIVATE; ;} break; @@ -1635,7 +1628,6 @@ yyreduce: , (yyvsp[(1) - (3)].regexp) , (yyvsp[(2) - (3)].regexp) , rank_counter.next () - , RegExp::SHARED , (yyvsp[(3) - (3)].code) , NULL ); @@ -1653,7 +1645,6 @@ yyreduce: , in->mkDefault () , new NullOp , rule_rank_t::def () - , RegExp::SHARED , (yyvsp[(2) - (2)].code) , NULL ); @@ -1713,7 +1704,6 @@ yyreduce: , (yyvsp[(4) - (7)].regexp) , (yyvsp[(5) - (7)].regexp) , rank_counter.next () - , RegExp::PRIVATE , (yyvsp[(7) - (7)].code) , (yyvsp[(6) - (7)].str) ); @@ -1733,7 +1723,6 @@ yyreduce: , (yyvsp[(4) - (7)].regexp) , (yyvsp[(5) - (7)].regexp) , rank_counter.next () - , RegExp::PRIVATE , NULL , (yyvsp[(7) - (7)].str) ); @@ -1771,7 +1760,6 @@ yyreduce: , in->mkDefault () , new NullOp , rule_rank_t::def () - , RegExp::PRIVATE , (yyvsp[(5) - (5)].code) , NULL ); @@ -1791,7 +1779,6 @@ yyreduce: , new NullOp , new NullOp , rank_counter.next () - , RegExp::SHARED , (yyvsp[(3) - (3)].code) , (yyvsp[(2) - (3)].str) ); @@ -1814,7 +1801,6 @@ yyreduce: , new NullOp , new NullOp , rank_counter.next () - , RegExp::SHARED , NULL , (yyvsp[(3) - (3)].str) ); @@ -1953,10 +1939,10 @@ yyreduce: switch((yyvsp[(2) - (2)].op)) { case '*': - (yyval.regexp) = mkAlt(new CloseOp((yyvsp[(1) - (2)].regexp)), new NullOp()); + (yyval.regexp) = new CloseOp((yyvsp[(1) - (2)].regexp)); break; case '+': - (yyval.regexp) = new CloseOp((yyvsp[(1) - (2)].regexp)); + (yyval.regexp) = new CatOp (new CloseOp((yyvsp[(1) - (2)].regexp)), (yyvsp[(1) - (2)].regexp)); break; case '?': (yyval.regexp) = mkAlt((yyvsp[(1) - (2)].regexp), new NullOp()); @@ -1968,7 +1954,6 @@ yyreduce: case 42: { - (yyvsp[(1) - (2)].regexp)->ins_access = RegExp::PRIVATE; if ((yyvsp[(2) - (2)].extop).max == std::numeric_limits<uint32_t>::max()) { (yyval.regexp) = repeat_from ((yyvsp[(1) - (2)].regexp), (yyvsp[(2) - (2)].extop).min); @@ -2358,17 +2343,15 @@ void parse(Scanner& i, Output & o) (*itOp)->rank = rank_counter.next (); } // merge <*> rules to all conditions - // note that all conditions use the same regexp for <*> rules, - // but compile it separately because of RegExp::PRIVATE attribute for (it = specMap.begin(); it != specMap.end(); ++it) { for (RuleOpList::const_iterator itOp = specStar.begin(); itOp != specStar.end(); ++itOp) { - it->second.addl (*itOp); + it->second.add (*itOp); } if (star_default) { - it->second.addl (star_default); + it->second.add_def (star_default); } } @@ -2405,7 +2388,7 @@ void parse(Scanner& i, Output & o) } } - dfa_map[it->first] = genCode(it->second, o, it->first, opts->encoding.nCodeUnits ()); + dfa_map[it->first] = compile(it->second, o, it->first, opts->encoding.nCodeUnits ()); } if (parseMode != Scanner::Rules && dfa_map.find(it->first) != dfa_map.end()) { @@ -2419,7 +2402,7 @@ void parse(Scanner& i, Output & o) { if (parseMode != Scanner::Reuse) { - dfa_map[""] = genCode(spec, o, "", opts->encoding.nCodeUnits ()); + dfa_map[""] = compile(spec, o, "", opts->encoding.nCodeUnits ()); } if (parseMode != Scanner::Rules && dfa_map.find("") != dfa_map.end()) { |