--- /dev/null
- <div class="paragraph"><p>This manpage describes <strong>re2c</strong>, version 0.14.1.dev, package date 28 Sep 2015.</p></div>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>RE2C (1)</title>\r
+<style type="text/css">\r
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */\r
+\r
+/* Default font. */\r
+body {\r
+ font-family: Georgia,serif;\r
+}\r
+\r
+/* Title font. */\r
+h1, h2, h3, h4, h5, h6,\r
+div.title, caption.title,\r
+thead, p.table.header,\r
+#toctitle,\r
+#author, #revnumber, #revdate, #revremark,\r
+#footer {\r
+ font-family: Arial,Helvetica,sans-serif;\r
+}\r
+\r
+body {\r
+ margin: 1em 5% 1em 5%;\r
+}\r
+\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
+\r
+em {\r
+ font-style: italic;\r
+ color: navy;\r
+}\r
+\r
+strong {\r
+ font-weight: bold;\r
+ color: #083194;\r
+}\r
+\r
+h1, h2, h3, h4, h5, h6 {\r
+ color: #527bbd;\r
+ margin-top: 1.2em;\r
+ margin-bottom: 0.5em;\r
+ line-height: 1.3;\r
+}\r
+\r
+h1, h2, h3 {\r
+ border-bottom: 2px solid silver;\r
+}\r
+h2 {\r
+ padding-top: 0.5em;\r
+}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
+h5 {\r
+ font-size: 1.0em;\r
+}\r
+\r
+div.sectionbody {\r
+ margin-left: 0;\r
+}\r
+\r
+hr {\r
+ border: 1px solid silver;\r
+}\r
+\r
+p {\r
+ margin-top: 0.5em;\r
+ margin-bottom: 0.5em;\r
+}\r
+\r
+ul, ol, li > p {\r
+ margin-top: 0;\r
+}\r
+ul > li { color: #aaa; }\r
+ul > li > * { color: black; }\r
+\r
+.monospaced, code, pre {\r
+ font-family: "Courier New", Courier, monospace;\r
+ font-size: inherit;\r
+ color: navy;\r
+ padding: 0;\r
+ margin: 0;\r
+}\r
+pre {\r
+ white-space: pre-wrap;\r
+}\r
+\r
+#author {\r
+ color: #527bbd;\r
+ font-weight: bold;\r
+ font-size: 1.1em;\r
+}\r
+#email {\r
+}\r
+#revnumber, #revdate, #revremark {\r
+}\r
+\r
+#footer {\r
+ font-size: small;\r
+ border-top: 2px solid silver;\r
+ padding-top: 0.5em;\r
+ margin-top: 4.0em;\r
+}\r
+#footer-text {\r
+ float: left;\r
+ padding-bottom: 0.5em;\r
+}\r
+#footer-badges {\r
+ float: right;\r
+ padding-bottom: 0.5em;\r
+}\r
+\r
+#preamble {\r
+ margin-top: 1.5em;\r
+ margin-bottom: 1.5em;\r
+}\r
+div.imageblock, div.exampleblock, div.verseblock,\r
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,\r
+div.admonitionblock {\r
+ margin-top: 1.0em;\r
+ margin-bottom: 1.5em;\r
+}\r
+div.admonitionblock {\r
+ margin-top: 2.0em;\r
+ margin-bottom: 2.0em;\r
+ margin-right: 10%;\r
+ color: #606060;\r
+}\r
+\r
+div.content { /* Block element content. */\r
+ padding: 0;\r
+}\r
+\r
+/* Block element titles. */\r
+div.title, caption.title {\r
+ color: #527bbd;\r
+ font-weight: bold;\r
+ text-align: left;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.5em;\r
+}\r
+div.title + * {\r
+ margin-top: 0;\r
+}\r
+\r
+td div.title:first-child {\r
+ margin-top: 0.0em;\r
+}\r
+div.content div.title:first-child {\r
+ margin-top: 0.0em;\r
+}\r
+div.content + div.title {\r
+ margin-top: 0.0em;\r
+}\r
+\r
+div.sidebarblock > div.content {\r
+ background: #ffffee;\r
+ border: 1px solid #dddddd;\r
+ border-left: 4px solid #f0f0f0;\r
+ padding: 0.5em;\r
+}\r
+\r
+div.listingblock > div.content {\r
+ border: 1px solid #dddddd;\r
+ border-left: 5px solid #f0f0f0;\r
+ background: #f8f8f8;\r
+ padding: 0.5em;\r
+}\r
+\r
+div.quoteblock, div.verseblock {\r
+ padding-left: 1.0em;\r
+ margin-left: 1.0em;\r
+ margin-right: 10%;\r
+ border-left: 5px solid #f0f0f0;\r
+ color: #888;\r
+}\r
+\r
+div.quoteblock > div.attribution {\r
+ padding-top: 0.5em;\r
+ text-align: right;\r
+}\r
+\r
+div.verseblock > pre.content {\r
+ font-family: inherit;\r
+ font-size: inherit;\r
+}\r
+div.verseblock > div.attribution {\r
+ padding-top: 0.75em;\r
+ text-align: left;\r
+}\r
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
+\r
+div.admonitionblock .icon {\r
+ vertical-align: top;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ text-decoration: underline;\r
+ color: #527bbd;\r
+ padding-right: 0.5em;\r
+}\r
+div.admonitionblock td.content {\r
+ padding-left: 0.5em;\r
+ border-left: 3px solid #dddddd;\r
+}\r
+\r
+div.exampleblock > div.content {\r
+ border-left: 3px solid #dddddd;\r
+ padding-left: 0.5em;\r
+}\r
+\r
+div.imageblock div.content { padding-left: 0; }\r
+span.image img { border-style: none; vertical-align: text-bottom; }\r
+a.image:visited { color: white; }\r
+\r
+dl {\r
+ margin-top: 0.8em;\r
+ margin-bottom: 0.8em;\r
+}\r
+dt {\r
+ margin-top: 0.5em;\r
+ margin-bottom: 0;\r
+ font-style: normal;\r
+ color: navy;\r
+}\r
+dd > *:first-child {\r
+ margin-top: 0.1em;\r
+}\r
+\r
+ul, ol {\r
+ list-style-position: outside;\r
+}\r
+ol.arabic {\r
+ list-style-type: decimal;\r
+}\r
+ol.loweralpha {\r
+ list-style-type: lower-alpha;\r
+}\r
+ol.upperalpha {\r
+ list-style-type: upper-alpha;\r
+}\r
+ol.lowerroman {\r
+ list-style-type: lower-roman;\r
+}\r
+ol.upperroman {\r
+ list-style-type: upper-roman;\r
+}\r
+\r
+div.compact ul, div.compact ol,\r
+div.compact p, div.compact p,\r
+div.compact div, div.compact div {\r
+ margin-top: 0.1em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+tfoot {\r
+ font-weight: bold;\r
+}\r
+td > div.verse {\r
+ white-space: pre;\r
+}\r
+\r
+div.hdlist {\r
+ margin-top: 0.8em;\r
+ margin-bottom: 0.8em;\r
+}\r
+div.hdlist tr {\r
+ padding-bottom: 15px;\r
+}\r
+dt.hdlist1.strong, td.hdlist1.strong {\r
+ font-weight: bold;\r
+}\r
+td.hdlist1 {\r
+ vertical-align: top;\r
+ font-style: normal;\r
+ padding-right: 0.8em;\r
+ color: navy;\r
+}\r
+td.hdlist2 {\r
+ vertical-align: top;\r
+}\r
+div.hdlist.compact tr {\r
+ margin: 0;\r
+ padding-bottom: 0;\r
+}\r
+\r
+.comment {\r
+ background: yellow;\r
+}\r
+\r
+.footnote, .footnoteref {\r
+ font-size: 0.8em;\r
+}\r
+\r
+span.footnote, span.footnoteref {\r
+ vertical-align: super;\r
+}\r
+\r
+#footnotes {\r
+ margin: 20px 0 20px 0;\r
+ padding: 7px 0 0 0;\r
+}\r
+\r
+#footnotes div.footnote {\r
+ margin: 0 0 5px 0;\r
+}\r
+\r
+#footnotes hr {\r
+ border: none;\r
+ border-top: 1px solid silver;\r
+ height: 1px;\r
+ text-align: left;\r
+ margin-left: 0;\r
+ width: 20%;\r
+ min-width: 100px;\r
+}\r
+\r
+div.colist td {\r
+ padding-right: 0.5em;\r
+ padding-bottom: 0.3em;\r
+ vertical-align: top;\r
+}\r
+div.colist td img {\r
+ margin-top: 0.3em;\r
+}\r
+\r
+@media print {\r
+ #footer-badges { display: none; }\r
+}\r
+\r
+#toc {\r
+ margin-bottom: 2.5em;\r
+}\r
+\r
+#toctitle {\r
+ color: #527bbd;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+\r
+span.aqua { color: aqua; }\r
+span.black { color: black; }\r
+span.blue { color: blue; }\r
+span.fuchsia { color: fuchsia; }\r
+span.gray { color: gray; }\r
+span.green { color: green; }\r
+span.lime { color: lime; }\r
+span.maroon { color: maroon; }\r
+span.navy { color: navy; }\r
+span.olive { color: olive; }\r
+span.purple { color: purple; }\r
+span.red { color: red; }\r
+span.silver { color: silver; }\r
+span.teal { color: teal; }\r
+span.white { color: white; }\r
+span.yellow { color: yellow; }\r
+\r
+span.aqua-background { background: aqua; }\r
+span.black-background { background: black; }\r
+span.blue-background { background: blue; }\r
+span.fuchsia-background { background: fuchsia; }\r
+span.gray-background { background: gray; }\r
+span.green-background { background: green; }\r
+span.lime-background { background: lime; }\r
+span.maroon-background { background: maroon; }\r
+span.navy-background { background: navy; }\r
+span.olive-background { background: olive; }\r
+span.purple-background { background: purple; }\r
+span.red-background { background: red; }\r
+span.silver-background { background: silver; }\r
+span.teal-background { background: teal; }\r
+span.white-background { background: white; }\r
+span.yellow-background { background: yellow; }\r
+\r
+span.big { font-size: 2em; }\r
+span.small { font-size: 0.6em; }\r
+\r
+span.underline { text-decoration: underline; }\r
+span.overline { text-decoration: overline; }\r
+span.line-through { text-decoration: line-through; }\r
+\r
+div.unbreakable { page-break-inside: avoid; }\r
+\r
+\r
+/*\r
+ * xhtml11 specific\r
+ *\r
+ * */\r
+\r
+div.tableblock {\r
+ margin-top: 1.0em;\r
+ margin-bottom: 1.5em;\r
+}\r
+div.tableblock > table {\r
+ border: 3px solid #527bbd;\r
+}\r
+thead, p.table.header {\r
+ font-weight: bold;\r
+ color: #527bbd;\r
+}\r
+p.table {\r
+ margin-top: 0;\r
+}\r
+/* Because the table frame attribute is overriden by CSS in most browsers. */\r
+div.tableblock > table[frame="void"] {\r
+ border-style: none;\r
+}\r
+div.tableblock > table[frame="hsides"] {\r
+ border-left-style: none;\r
+ border-right-style: none;\r
+}\r
+div.tableblock > table[frame="vsides"] {\r
+ border-top-style: none;\r
+ border-bottom-style: none;\r
+}\r
+\r
+\r
+/*\r
+ * html5 specific\r
+ *\r
+ * */\r
+\r
+table.tableblock {\r
+ margin-top: 1.0em;\r
+ margin-bottom: 1.5em;\r
+}\r
+thead, p.tableblock.header {\r
+ font-weight: bold;\r
+ color: #527bbd;\r
+}\r
+p.tableblock {\r
+ margin-top: 0;\r
+}\r
+table.tableblock {\r
+ border-width: 3px;\r
+ border-spacing: 0px;\r
+ border-style: solid;\r
+ border-color: #527bbd;\r
+ border-collapse: collapse;\r
+}\r
+th.tableblock, td.tableblock {\r
+ border-width: 1px;\r
+ padding: 4px;\r
+ border-style: solid;\r
+ border-color: #527bbd;\r
+}\r
+\r
+table.tableblock.frame-topbot {\r
+ border-left-style: hidden;\r
+ border-right-style: hidden;\r
+}\r
+table.tableblock.frame-sides {\r
+ border-top-style: hidden;\r
+ border-bottom-style: hidden;\r
+}\r
+table.tableblock.frame-none {\r
+ border-style: hidden;\r
+}\r
+\r
+th.tableblock.halign-left, td.tableblock.halign-left {\r
+ text-align: left;\r
+}\r
+th.tableblock.halign-center, td.tableblock.halign-center {\r
+ text-align: center;\r
+}\r
+th.tableblock.halign-right, td.tableblock.halign-right {\r
+ text-align: right;\r
+}\r
+\r
+th.tableblock.valign-top, td.tableblock.valign-top {\r
+ vertical-align: top;\r
+}\r
+th.tableblock.valign-middle, td.tableblock.valign-middle {\r
+ vertical-align: middle;\r
+}\r
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {\r
+ vertical-align: bottom;\r
+}\r
+\r
+\r
+/*\r
+ * manpage specific\r
+ *\r
+ * */\r
+\r
+body.manpage h1 {\r
+ padding-top: 0.5em;\r
+ padding-bottom: 0.5em;\r
+ border-top: 2px solid silver;\r
+ border-bottom: 2px solid silver;\r
+}\r
+body.manpage h2 {\r
+ border-style: none;\r
+}\r
+body.manpage div.sectionbody {\r
+ margin-left: 3em;\r
+}\r
+\r
+@media print {\r
+ body.manpage div#toc { display: none; }\r
+}\r
+\r
+\r
+</style>\r
+<script type="text/javascript">\r
+/*<+'])');\r
+ // Function that scans the DOM tree for header elements (the DOM2\r
+ // nodeIterator API would be a better technique but not supported by all\r
+ // browsers).\r
+ var iterate = function (el) {\r
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {\r
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {\r
+ var mo = re.exec(i.tagName);\r
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {\r
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);\r
+ }\r
+ iterate(i);\r
+ }\r
+ }\r
+ }\r
+ iterate(el);\r
+ return result;\r
+ }\r
+\r
+ var toc = document.getElementById("toc");\r
+ if (!toc) {\r
+ return;\r
+ }\r
+\r
+ // Delete existing TOC entries in case we're reloading the TOC.\r
+ var tocEntriesToRemove = [];\r
+ var i;\r
+ for (i = 0; i < toc.childNodes.length; i++) {\r
+ var entry = toc.childNodes[i];\r
+ if (entry.nodeName.toLowerCase() == 'div'\r
+ && entry.getAttribute("class")\r
+ && entry.getAttribute("class").match(/^toclevel/))\r
+ tocEntriesToRemove.push(entry);\r
+ }\r
+ for (i = 0; i < tocEntriesToRemove.length; i++) {\r
+ toc.removeChild(tocEntriesToRemove[i]);\r
+ }\r
+\r
+ // Rebuild TOC entries.\r
+ var entries = tocEntries(document.getElementById("content"), toclevels);\r
+ for (var i = 0; i < entries.length; ++i) {\r
+ var entry = entries[i];\r
+ if (entry.element.id == "")\r
+ entry.element.id = "_toc_" + i;\r
+ var a = document.createElement("a");\r
+ a.href = "#" + entry.element.id;\r
+ a.appendChild(document.createTextNode(entry.text));\r
+ var div = document.createElement("div");\r
+ div.appendChild(a);\r
+ div.className = "toclevel" + entry.toclevel;\r
+ toc.appendChild(div);\r
+ }\r
+ if (entries.length == 0)\r
+ toc.parentNode.removeChild(toc);\r
+},\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////\r
+// Footnotes generator\r
+/////////////////////////////////////////////////////////////////////\r
+\r
+/* Based on footnote generation code from:\r
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html\r
+ */\r
+\r
+footnotes: function () {\r
+ // Delete existing footnote entries in case we're reloading the footnodes.\r
+ var i;\r
+ var noteholder = document.getElementById("footnotes");\r
+ if (!noteholder) {\r
+ return;\r
+ }\r
+ var entriesToRemove = [];\r
+ for (i = 0; i < noteholder.childNodes.length; i++) {\r
+ var entry = noteholder.childNodes[i];\r
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")\r
+ entriesToRemove.push(entry);\r
+ }\r
+ for (i = 0; i < entriesToRemove.length; i++) {\r
+ noteholder.removeChild(entriesToRemove[i]);\r
+ }\r
+\r
+ // Rebuild footnote entries.\r
+ var cont = document.getElementById("content");\r
+ var spans = cont.getElementsByTagName("span");\r
+ var refs = {};\r
+ var n = 0;\r
+ for (i=0; i<spans.length; i++) {\r
+ if (spans[i].className == "footnote") {\r
+ n++;\r
+ var note = spans[i].getAttribute("data-note");\r
+ if (!note) {\r
+ // Use [\s\S] in place of . so multi-line matches work.\r
+ // Because JavaScript has no s (dotall) regex flag.\r
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];\r
+ spans[i].innerHTML =\r
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +\r
+ "' title='View footnote' class='footnote'>" + n + "</a>]";\r
+ spans[i].setAttribute("data-note", note);\r
+ }\r
+ noteholder.innerHTML +=\r
+ "<div class='footnote' id='_footnote_" + n + "'>" +\r
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +\r
+ n + "</a>. " + note + "</div>";\r
+ var id =spans[i].getAttribute("id");\r
+ if (id != null) refs["#"+id] = n;\r
+ }\r
+ }\r
+ if (n == 0)\r
+ noteholder.parentNode.removeChild(noteholder);\r
+ else {\r
+ // Process footnoterefs.\r
+ for (i=0; i<spans.length; i++) {\r
+ if (spans[i].className == "footnoteref") {\r
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");\r
+ href = href.match(/#.*/)[0]; // Because IE return full URL.\r
+ n = refs[href];\r
+ spans[i].innerHTML =\r
+ "[<a href='#_footnote_" + n +\r
+ "' title='View footnote' class='footnote'>" + n + "</a>]";\r
+ }\r
+ }\r
+ }\r
+},\r
+\r
+install: function(toclevels) {\r
+ var timerId;\r
+\r
+ function reinstall() {\r
+ asciidoc.footnotes();\r
+ if (toclevels) {\r
+ asciidoc.toc(toclevels);\r
+ }\r
+ }\r
+\r
+ function reinstallAndRemoveTimer() {\r
+ clearInterval(timerId);\r
+ reinstall();\r
+ }\r
+\r
+ timerId = setInterval(reinstall, 500);\r
+ if (document.addEventListener)\r
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);\r
+ else\r
+ window.onload = reinstallAndRemoveTimer;\r
+}\r
+\r
+}\r
+asciidoc.install();\r
+/*]]>*/\r
+</script>\r
+</head>\r
+<body class="manpage">\r
+<div id="header">\r
+<h1>\r
+RE2C (1) Manual Page\r
+</h1>\r
+<h2>NAME</h2>\r
+<div class="sectionbody">\r
+<p>re2c -\r
+ convert regular expressions to C/C++\r
+</p>\r
+</div>\r
+</div>\r
+<div id="content">\r
+<div class="sect1">\r
+<h2 id="_synopsis">SYNOPSIS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p><strong>re2c</strong> [<em>OPTIONS</em>] <em>FILE</em></p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_description">DESCRIPTION</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p><strong>re2c</strong> is a lexer generator for C/C++.\r
+It finds regular expression specifications inside of C/C++ comments and replaces them with a hard-coded DFA.\r
+The user must supply some interface code in order to control and customize the generated DFA.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_example">EXAMPLE</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Given the following code:</p></div>\r
+<div class="listingblock">\r
+<div class="content"><!-- Generator: GNU source-highlight 3.1.7\r
+by Lorenzo Bettini\r
+http://www.lorenzobettini.it\r
+http://www.gnu.org/software/src-highlite -->\r
+<pre><tt><span style="color: #009900">unsigned</span> <span style="color: #009900">int</span> <span style="font-weight: bold"><span style="color: #000000">stou</span></span> <span style="color: #990000">(</span><span style="font-weight: bold"><span style="color: #0000FF">const</span></span> <span style="color: #009900">char</span> <span style="color: #990000">*</span> s<span style="color: #990000">)</span>\r
+<span style="color: #FF0000">{</span>\r
+<span style="font-weight: bold"><span style="color: #000080"># define</span></span> YYCTYPE <span style="color: #009900">char</span>\r
+ <span style="font-weight: bold"><span style="color: #0000FF">const</span></span> YYCTYPE <span style="color: #990000">*</span> YYCURSOR <span style="color: #990000">=</span> s<span style="color: #990000">;</span>\r
+ <span style="color: #009900">unsigned</span> <span style="color: #009900">int</span> result <span style="color: #990000">=</span> <span style="color: #993399">0</span><span style="color: #990000">;</span>\r
+\r
+ <span style="font-weight: bold"><span style="color: #0000FF">for</span></span> <span style="color: #990000">(;;)</span>\r
+ <span style="color: #FF0000">{</span>\r
+ <span style="font-style: italic"><span style="color: #9A1900">/*!re2c</span></span>\r
+<span style="font-style: italic"><span style="color: #9A1900"> re2c:yyfill:enable = 0;</span></span>\r
+\r
+<span style="font-style: italic"><span style="color: #9A1900"> "\x00" { return result; }</span></span>\r
+<span style="font-style: italic"><span style="color: #9A1900"> [0-9] { result = result * 10 + c; continue; }</span></span>\r
+<span style="font-style: italic"><span style="color: #9A1900"> */</span></span>\r
+ <span style="color: #FF0000">}</span>\r
+<span style="color: #FF0000">}</span></tt></pre></div></div>\r
+<div class="paragraph"><p><code>re2c -is</code> will generate:</p></div>\r
+<div class="listingblock">\r
+<div class="content"><!-- Generator: GNU source-highlight 3.1.7\r
+by Lorenzo Bettini\r
+http://www.lorenzobettini.it\r
+http://www.gnu.org/software/src-highlite -->\r
+<pre><tt><span style="font-style: italic"><span style="color: #9A1900">/* Generated by re2c 0.13.7.dev on Mon Jul 14 13:37:46 2014 */</span></span>\r
+<span style="color: #009900">unsigned</span> <span style="color: #009900">int</span> <span style="font-weight: bold"><span style="color: #000000">stou</span></span> <span style="color: #990000">(</span><span style="font-weight: bold"><span style="color: #0000FF">const</span></span> <span style="color: #009900">char</span> <span style="color: #990000">*</span> s<span style="color: #990000">)</span>\r
+<span style="color: #FF0000">{</span>\r
+<span style="font-weight: bold"><span style="color: #000080"># define</span></span> YYCTYPE <span style="color: #009900">char</span>\r
+ <span style="font-weight: bold"><span style="color: #0000FF">const</span></span> YYCTYPE <span style="color: #990000">*</span> YYCURSOR <span style="color: #990000">=</span> s<span style="color: #990000">;</span>\r
+ <span style="color: #009900">unsigned</span> <span style="color: #009900">int</span> result <span style="color: #990000">=</span> <span style="color: #993399">0</span><span style="color: #990000">;</span>\r
+\r
+ <span style="font-weight: bold"><span style="color: #0000FF">for</span></span> <span style="color: #990000">(;;)</span>\r
+ <span style="color: #FF0000">{</span>\r
+\r
+<span style="color: #FF0000">{</span>\r
+ <span style="color: #008080">YYCTYPE</span> yych<span style="color: #990000">;</span>\r
+\r
+ yych <span style="color: #990000">=</span> <span style="color: #990000">*</span>YYCURSOR<span style="color: #990000">;</span>\r
+ <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="color: #990000">(</span>yych <span style="color: #990000"><=</span> <span style="color: #993399">0x00</span><span style="color: #990000">)</span> <span style="font-weight: bold"><span style="color: #0000FF">goto</span></span> yy3<span style="color: #990000">;</span>\r
+ <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="color: #990000">(</span>yych <span style="color: #990000"><=</span> <span style="color: #FF0000">'/'</span><span style="color: #990000">)</span> <span style="font-weight: bold"><span style="color: #0000FF">goto</span></span> yy2<span style="color: #990000">;</span>\r
+ <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="color: #990000">(</span>yych <span style="color: #990000"><=</span> <span style="color: #FF0000">'9'</span><span style="color: #990000">)</span> <span style="font-weight: bold"><span style="color: #0000FF">goto</span></span> yy5<span style="color: #990000">;</span>\r
+<span style="font-weight: bold"><span style="color: #008080">yy2:</span></span>\r
+<span style="font-weight: bold"><span style="color: #008080">yy3:</span></span>\r
+ <span style="color: #990000">++</span>YYCURSOR<span style="color: #990000">;</span>\r
+ <span style="color: #FF0000">{</span> <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> result<span style="color: #990000">;</span> <span style="color: #FF0000">}</span>\r
+<span style="font-weight: bold"><span style="color: #008080">yy5:</span></span>\r
+ <span style="color: #990000">++</span>YYCURSOR<span style="color: #990000">;</span>\r
+ <span style="color: #FF0000">{</span> result <span style="color: #990000">=</span> result <span style="color: #990000">*</span> <span style="color: #993399">10</span> <span style="color: #990000">+</span> c<span style="color: #990000">;</span> <span style="font-weight: bold"><span style="color: #0000FF">continue</span></span><span style="color: #990000">;</span> <span style="color: #FF0000">}</span>\r
+<span style="color: #FF0000">}</span>\r
+\r
+ <span style="color: #FF0000">}</span>\r
+<span style="color: #FF0000">}</span></tt></pre></div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_options">OPTIONS</h2>\r
+<div class="sectionbody">\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+<strong>-?</strong> <strong>-h</strong> <strong>--help</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Invoke a short help.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-b</strong> <strong>--bit-vectors</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Implies <strong>-s</strong>. Use bit vectors as well in the attempt to coax better\r
+ code out of the compiler. Most useful for specifications with more than a\r
+ few keywords (e.g. for most programming languages).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-c</strong> <strong>--conditions</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Used to support (f)lex-like condition support.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-d</strong> <strong>--debug-output</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Creates a parser that dumps information about the current position and in\r
+ which state the parser is while parsing the input. This is useful to debug\r
+ parser issues and states. If you use this switch you need to define a macro\r
+ <strong>YYDEBUG</strong> that is called like a function with two parameters:\r
+ <strong>void YYDEBUG (int state, char current)</strong>. The first parameter receives the\r
+ state or -1 and the second parameter receives the input at the current cursor.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-D</strong> <strong>--emit-dot</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Emit Graphviz dot data. It can then be processed with e.g.\r
+ <code>dot -Tpng input.dot > output.png</code>. Please note that scanners with many states\r
+ may crash dot.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-e</strong> <strong>--ecb</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Generate a parser that supports EBCDIC. The generated code can deal with any\r
+ character up to 0xFF. In this mode <strong>re2c</strong> assumes that input character size is\r
+ 1 byte. This switch is incompatible with <strong>-w</strong>, <strong>-x</strong>, <strong>-u</strong> and <strong>-8</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-f</strong> <strong>--storable-state</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Generate a scanner with support for storable state.\r
+ For details see below at <strong>SCANNER WITH STORABLE STATES</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-F</strong> <strong>--flex-syntax</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Partial support for flex syntax. When this flag is active then named\r
+ definitions must be surrounded by curly braces and can be defined without an\r
+ equal sign and the terminating semi colon. Instead names are treated as direct\r
+ double quoted strings.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-g</strong> <strong>--computed-gotos</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Generate a scanner that utilizes GCC’s computed goto feature. That is <strong>re2c</strong>\r
+ generates jump tables whenever a decision is of a certain complexity (e.g. a\r
+ lot of if conditions are otherwise necessary). This is only useable with GCC\r
+ and produces output that cannot be compiled with any other compiler. Note that\r
+ this implies <strong>-b</strong> and that the complexity threshold can be configured using the\r
+ inplace configuration <strong>cgoto:threshold</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-i</strong> <strong>--no-debug-info</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Do not output <strong>#line</strong> information. This is usefull when you want use a CMS tool\r
+ with the <strong>re2c</strong> output which you might want if you do not require your users to\r
+ have <strong>re2c</strong> themselves when building from your source.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-o OUTPUT</strong> <strong>--output=OUTPUT</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Specify the <strong>OUTPUT</strong> file.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-r</strong> <strong>--reusable</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Allows reuse of scanner definitions with <strong>/*!use:re2c</strong> after\r
+ <strong>/*!rules:re2c</strong>. In this mode no <strong>/*!re2c</strong> block and exactly one\r
+ <strong>/*!rules:re2c</strong> must be present. The rules are being saved and used by\r
+ every <strong>/*!use:re2c</strong> block that follows. These blocks can contain\r
+ inplace configurations, especially <strong>re2c:flags:e</strong>, <strong>re2c:flags:w</strong>,\r
+ <strong>re2c:flags:x</strong>, <strong>re2c:flags:u</strong> and <strong>re2c:flags:8</strong>.\r
+ That way it is possible to create the same scanner multiple times for different\r
+ character types, different input mechanisms or different output mechanisms.\r
+ The <strong>/*!use:re2c</strong> blocks can also contain additional rules that will be\r
+ appended to the set of rules in <strong>/*!rules:re2c</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-s</strong> <strong>--nested-ifs</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Generate nested ifs for some switches. Many compilers need this\r
+ assist to generate better code.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-t HEADER</strong> <strong>--type-header=HEADER</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Create a <strong>HEADER</strong> file that contains types for the (f)lex-like condition support.\r
+ This can only be activated when <strong>-c</strong> is in use.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-u</strong> <strong>--unicode</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Generate a parser that supports UTF-32. The generated code can deal with any\r
+ valid Unicode character up to 0x10FFFF. In this mode <strong>re2c</strong> assumes that input\r
+ character size is 4 bytes. This switch is incompatible with <strong>-e</strong>, <strong>-w</strong>, <strong>-x</strong>\r
+ and <strong>-8</strong>. This implies <strong>-s</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-v</strong> <strong>--version</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Show version information.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-V</strong> <strong>--vernum</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Show the version as a number XXYYZZ.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-w</strong> <strong>--wide-chars</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Generate a parser that supports UCS-2. The generated code can deal with any\r
+ valid Unicode character up to 0xFFFF. In this mode <strong>re2c</strong> assumes that input\r
+ character size is 2 bytes. This switch is incompatible with <strong>-e</strong>, <strong>-x</strong>, <strong>-u</strong>\r
+ and <strong>-8</strong>. This implies <strong>-s</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-x</strong> <strong>--utf-16</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Generate a parser that supports UTF-16. The generated code can deal with any\r
+ valid Unicode character up to 0x10FFFF. In this mode <strong>re2c</strong> assumes that input\r
+ character size is 2 bytes. This switch is incompatible with <strong>-e</strong>, <strong>-w</strong>, <strong>-u</strong>\r
+ and <strong>-8</strong>. This implies <strong>-s</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-8</strong> <strong>--utf-8</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Generate a parser that supports UTF-8. The generated code can deal with any\r
+ valid Unicode character up to 0x10FFFF. In this mode <strong>re2c</strong> assumes that input\r
+ character size is 1 byte. This switch is incompatible with <strong>-e</strong>, <strong>-w</strong>, <strong>-x</strong>\r
+ and <strong>-u</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>--case-insensitive</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ All strings are case insensitive, so all "-expressions are treated\r
+ in the same way '-expressions are.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>--case-inverted</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Invert the meaning of single and double quoted strings.\r
+ With this switch single quotes are case sensitive and\r
+ double quotes are case insensitive.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>--no-generation-date</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Suppress date output in the generated output so that it only shows the re2c\r
+ version.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>--encoding-policy POLICY</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Specify how <strong>re2c</strong> must treat Unicode surrogates. <strong>POLICY</strong> can be one of the following:\r
+ <strong>fail</strong> (abort with error when surrogate encountered),\r
+ <strong>substitute</strong> (silently substitute surrogate with error code point 0xFFFD),\r
+ <strong>ignore</strong> (treat surrogates as normal code points).\r
+ By default <strong>re2c</strong> ignores surrogates (for backward compatibility).\r
+ Unicode standard says that standalone surrogates are invalid code points,\r
+ but different libraries and programs treat them differently.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>--input INPUT</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Specify re2c input API. <strong>INPUT</strong> can be one of the following: <strong>default</strong>, <strong>custom</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>--skeleton</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Instead of embedding re2c-generated code into C/C++ source,\r
+ generate a self-contained program for the same DFA.\r
+ Most useful for correctness and performance testing.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>--empty-class POLICY</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ What to do if user inputs empty character class. <strong>POLICY</strong> can be\r
+ one of the following: <strong>match-empty</strong> (match empty input: pretty illogical,\r
+ but this is the default for backwards compatibility reason),\r
+ <strong>match-none</strong> (fail to match on any input), <strong>error</strong> (compilation\r
+ error). Note that there are various ways to construct empty class,\r
+ e.g: [], [^\x00-\xFF], [\x00-\xFF]\[\x00-\xFF].\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-1</strong> <strong>--single-pass</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Deprecated and does nothing (single pass is by default now).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-W</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Turn on all warnings.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-Werror</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Turn warnings into errors. Note that this option along doesn’t\r
+ turn on any warnings, it only affects those warnings that have\r
+ been turned on so far or will be turned on later.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-W<warning></strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Turn on individual warning.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-Wno-<warning></strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Turn off individual warning.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-Werror-<warning></strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Turn on individual warning and treat it as error (this implies\r
+ <strong>-W<warning></strong>).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-Wno-error-<warning></strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Don’t treat this particular warning as error. This doesn’t turn\r
+ off the warning itself.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_warnings">WARNINGS</h2>\r
+<div class="sectionbody">\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+<strong>-Wcondition-order</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Warn if the generated program makes implicit assumptions about\r
+ condition numbering. One should use either <strong>-t, --type-header</strong>\r
+ option or <strong>/*!types:re2c*/</strong> directive to generate mapping of\r
+ condition names to numbers and use autogenerated condition names.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-Wempty-character-class</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Warn if regular expression contains empty character class. From\r
+ the rational point of view trying to match empty character class\r
+ makes no sense: it should always fail. However, for backwards\r
+ compatibility reasons <strong>re2c</strong> allows empty character class and treats\r
+ it as empty string. Use <strong>--empty-class</strong> option to change default\r
+ behaviour.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-Wmatch-empty-string</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Warn if regular expression in a rule is nullable (matches empty\r
+ string). If DFA runs in a loop and empty match is unintentional\r
+ (input position in not advanced manually), lexer may get stuck\r
+ in eternal loop.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-Wswapped-range</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Warn if range lower bound is greater that upper bound. Default\r
+ <strong>re2c</strong> behaviour is to silently swap range bounds.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-Wundefined-control-flow</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Warn if some input strings cause undefined control flow in lexer\r
+ (the faulty patterns are reported). This is the most dangerous\r
+ and common mistake. It can be easily fixed by adding default rule\r
+ <strong>*</strong> (this rule has the lowest priority, matches any code unit\r
+ and consumes exactly one code unit).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>-Wuseless-escape</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Warn if a symbol is escaped when it shouldn’t be. By default re2c\r
+ silently ignores escape, but this may as well indicate a typo\r
+ or an error in escape sequence.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_interface_code">INTERFACE CODE</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The user must supply interface code either in the form of C/C++ code\r
+(macros, functions, variables, etc.) or in the form of <em>inplace configurations</em>.\r
+Which symbols must be defined and which are optional depends on a particular use case.</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+<strong>YYCONDTYPE</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ In <strong>-c</strong> mode you can use <strong>-t</strong> to generate a file that contains the\r
+ enumeration used as conditions. Each of the values refers to a condition of\r
+ a rule set.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>YYCTXMARKER</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ l-value of type <strong>* YYCTYPE</strong>.\r
+ The generated code saves trailing context backtracking information in <strong>YYCTXMARKER</strong>.\r
+ The user only needs to define this macro if a scanner specification uses trailing\r
+ context in one or more of its regular expressions.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>YYCTYPE</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Type used to hold an input symbol (code unit).\r
+ Usually <strong>char</strong> or <strong>unsigned char</strong> for ASCII, EBCDIC and UTF-8, <strong>unsigned short</strong> for UTF-16 or UCS-2 and <strong>unsigned int</strong> for UTF-32.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>YYCURSOR</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ l-value of type <strong>* YYCTYPE</strong> that points to the current input symbol.\r
+ The generated code advances <strong>YYCURSOR</strong> as symbols are matched.\r
+ On entry, <strong>YYCURSOR</strong> is assumed to point to the first character of the\r
+ current token. On exit, <strong>YYCURSOR</strong> will point to the first character of\r
+ the following token.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>YYDEBUG (state, current)</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ This is only needed if the <strong>-d</strong> flag was specified. It allows to easily debug\r
+ the generated parser by calling a user defined function for every state. The function\r
+ should have the following signature: <strong>void YYDEBUG (int state, char current)</strong>.\r
+ The first parameter receives the state or -1 and the second parameter receives the\r
+ input at the current cursor.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>YYFILL (n)</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ The generated code “calls” <strong>YYFILL (n)</strong> when the buffer needs\r
+ (re)filling: at least <strong>n</strong> additional characters should\r
+ be provided. <strong>YYFILL (n)</strong> should adjust <strong>YYCURSOR</strong>, <strong>YYLIMIT</strong>,\r
+ <strong>YYMARKER</strong> and <strong>YYCTXMARKER</strong> as needed. Note that for typical\r
+ programming languages <strong>n</strong> will be the length of the longest keyword plus one.\r
+ The user can place a comment of the form <strong>/*!max:re2c*/</strong> once to insert\r
+ a <strong>YYMAXFILL (n)</strong> definition that is set to the maximum length value. If -1\r
+ switch is used then <strong>YYMAXFILL</strong> can be triggered only once after the\r
+ last <strong>/*!re2c ... */</strong> block.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>YYGETCONDITION ()</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ This define is used to get the condition prior to entering the scanner code\r
+ when using <strong>-c</strong> switch. The value must be initialized with a value from\r
+ the enumeration <strong>YYCONDTYPE</strong> type.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>YYGETSTATE ()</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ The user only needs to define this macro if the <strong>-f</strong> flag was specified.\r
+ In that case, the generated code “calls” <strong>YYGETSTATE ()</strong> at the very beginning\r
+ of the scanner in order to obtain the saved state. <strong>YYGETSTATE ()</strong> must return a signed\r
+ integer. The value must be either -1, indicating that the scanner is entered for the\r
+ first time, or a value previously saved by <strong>YYSETSTATE (s)</strong>. In the second case, the\r
+ scanner will resume operations right after where the last <strong>YYFILL (n)</strong> was called.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>YYLIMIT</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Expression of type <strong>* YYCTYPE</strong> that marks the end of the buffer\r
+ (<strong>YYLIMIT[-1]</strong> is the last character in the buffer).\r
+ The generated code repeatedly compares <strong>YYCURSOR</strong> to <strong>YYLIMIT</strong>\r
+ to determine when the buffer needs (re)filling.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>YYMARKER</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ l-value of type <strong>* YYCTYPE</strong>.\r
+ The generated code saves backtracking information in <strong>YYMARKER</strong>. Some easy\r
+ scanners might not use this.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>YYMAXFILL</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ This will be automatically defined by <strong>/*!max:re2c*/</strong> blocks as explained above.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>YYSETCONDITION (c)</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ This define is used to set the condition in transition rules. This is only\r
+ being used when <strong>-c</strong> is active and transition rules are being used.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>YYSETSTATE (s)</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+ The user only needs to define this macro if the <strong>-f</strong> flag was specified.\r
+ In that case, the generated code “calls” <strong>YYSETSTATE</strong> just before calling\r
+ <strong>YYFILL (n)</strong>. The parameter to <strong>YYSETSTATE</strong> is a signed integer that uniquely\r
+ identifies the specific instance of <strong>YYFILL (n)</strong> that is about to be called.\r
+ Should the user wish to save the state of the scanner and have <strong>YYFILL (n)</strong> return\r
+ to the caller, all he has to do is store that unique identifer in a variable.\r
+ Later, when the scannered is called again, it will call <strong>YYGETSTATE ()</strong> and\r
+ resume execution right where it left off. The generated code will contain\r
+ both <strong>YYSETSTATE (s)</strong> and <strong>YYGETSTATE</strong> even if <strong>YYFILL (n)</strong> is being disabled.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_syntax">SYNTAX</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Code for <strong>re2c</strong> consists of a set of <em>rules</em>, <em>named definitions</em> and <em>inplace configurations</em>.</p></div>\r
+<div class="paragraph"><p><em>rules</em> consist of a <em>regular-expressions</em> along with a block of <em>C/C++ code</em> that\r
+is to be executed when the associated <em>regular-expression</em> is matched. You can either\r
+start the code with an opening curly brace or the sequence <strong>:=</strong>. When\r
+the code with a curly brace then <strong>re2c</strong> counts the brace depth and stops looking\r
+for code automatically. Otherwise curly braces are not allowed and <strong>re2c</strong> stops\r
+looking for code at the first line that does not begin with whitespace. If two\r
+or more rules overlap, the first rule is preferred.</p></div>\r
+<div class="sidebarblock">\r
+<div class="content">\r
+<div class="paragraph"><p><em>regular-expression</em> { <em>C/C++ code</em> }</p></div>\r
+<div class="paragraph"><p><em>regular-expression</em> := <em>C/C++ code</em></p></div>\r
+</div></div>\r
+<div class="paragraph"><p>There is one special rule: default rule <strong>*</strong>:</p></div>\r
+<div class="sidebarblock">\r
+<div class="content">\r
+<div class="paragraph"><p>* { <em>C/C++ code</em> }</p></div>\r
+<div class="paragraph"><p>* := <em>C/C++ code</em></p></div>\r
+</div></div>\r
+<div class="admonitionblock">\r
+<table><tr>\r
+<td class="icon">\r
+<div class="title">Note</div>\r
+</td>\r
+<td class="content">\r
+<div class="paragraph"><p><strong>[^]</strong> differs from <strong>*</strong>:\r
+<strong>*</strong> has the lowest priority, matches any code unit (either valid or invalid) and always consumes one character;\r
+<strong>[^]</strong> matches any valid code point (not code unit) and can consume multiple characters.\r
+In fact, when variable-length encoding is used, <strong>*</strong> is the only possible way to match invalid input character.</p></div>\r
+</td>\r
+</tr></table>\r
+</div>\r
+<div class="paragraph"><p>If <strong>-c</strong> is active then each <em>regular-expression</em> is preceeded by a list of\r
+comma separated condition names. Besides normal naming rules there are two\r
+special cases. A rule may contain the single condition name <strong>*</strong> and no contition\r
+name at all. In the latter case the rule cannot have a <em>regular-expression</em>. Non\r
+empty rules may further more specify the new condition. In that case <strong>re2c</strong> will\r
+generated the necessary code to change the condition automatically. Just as above\r
+code can be started with a curly brace of the sequence <strong>:=</strong>. Further more\r
+rules can use <strong>:=></strong> as a shortcut to automatically generate code that not only\r
+sets the new condition state but also continues execution with the new state. A\r
+shortcut rule should not be used in a loop where there is code between the start\r
+of the loop and the <strong>re2c</strong> block unless <strong>re2c:cond:goto</strong> is changed\r
+to <strong>continue</strong>. If code is necessary before all rule (though not simple\r
+jumps) you can doso by using <strong><!</strong> pseudo-rules.</p></div>\r
+<div class="sidebarblock">\r
+<div class="content">\r
+<div class="paragraph"><p><<em>condition-list</em>> <em>regular-expression</em> { <em>C/C++ code</em> }</p></div>\r
+<div class="paragraph"><p><<em>condition-list</em>> <em>regular-expression</em> := <em>C/C++ code</em></p></div>\r
+<div class="paragraph"><p><<em>condition-list</em>> * { <em>C/C++ code</em> }</p></div>\r
+<div class="paragraph"><p><<em>condition-list</em>> * := <em>C/C++ code</em></p></div>\r
+<div class="paragraph"><p><<em>condition-list</em>> <em>regular-expression</em> => <em>condition</em> { <em>C/C++ code</em> }</p></div>\r
+<div class="paragraph"><p><<em>condition-list</em>> <em>regular-expression</em> => <em>condition</em> := <em>C/C++ code</em></p></div>\r
+<div class="paragraph"><p><<em>condition-list</em>> <em>regular-expression</em> :=> <em>condition</em></p></div>\r
+<div class="paragraph"><p><*> <em>regular-expression</em> { <em>C/C++ code</em> }</p></div>\r
+<div class="paragraph"><p><*> <em>regular-expression</em> := <em>C/C++ code</em></p></div>\r
+<div class="paragraph"><p><*> * { <em>C/C++ code</em> }</p></div>\r
+<div class="paragraph"><p><*> * := <em>C/C++ code</em></p></div>\r
+<div class="paragraph"><p><*> <em>regular-expression</em> => <em>condition</em> { <em>C/C++ code</em> }</p></div>\r
+<div class="paragraph"><p><*> <em>regular-expression</em> => <em>condition</em> := <em>C/C++ code</em></p></div>\r
+<div class="paragraph"><p><*> <em>regular-expression</em> :=> <em>condition</em></p></div>\r
+<div class="paragraph"><p><> { <em>C/C++ code</em> }</p></div>\r
+<div class="paragraph"><p><> := <em>C/C++ code</em></p></div>\r
+<div class="paragraph"><p><> => <em>condition</em> { <em>C/C++ code</em> }</p></div>\r
+<div class="paragraph"><p><> => <em>condition</em> := <em>C/C++ code</em></p></div>\r
+<div class="paragraph"><p><> :=> <em>condition</em></p></div>\r
+<div class="paragraph"><p><!<em>condition-list</em>> { <em>C/C++ code</em> }</p></div>\r
+<div class="paragraph"><p><!<em>condition-list</em>> := <em>C/C++ code</em></p></div>\r
+<div class="paragraph"><p><!*> { <em>C/C++ code</em> }</p></div>\r
+<div class="paragraph"><p><!*> := <em>C/C++ code</em></p></div>\r
+</div></div>\r
+<div class="paragraph"><p><em>named definitions</em> are of the form:</p></div>\r
+<div class="sidebarblock">\r
+<div class="content">\r
+<div class="paragraph"><p><em>name</em> = <em>regular-expression</em>;</p></div>\r
+</div></div>\r
+<div class="paragraph"><p>If <strong>-F</strong> is active, then named definitions are also of the form:</p></div>\r
+<div class="sidebarblock">\r
+<div class="content">\r
+<div class="paragraph"><p><em>name</em> <em>regular-expression</em></p></div>\r
+</div></div>\r
+<div class="paragraph"><p><em>inplace configurations</em> are of the form:</p></div>\r
+<div class="sidebarblock">\r
+<div class="content">\r
+<div class="paragraph"><p>re2c:<em>name</em> = <em>value</em>;</p></div>\r
+<div class="paragraph"><p>re2c:<em>name</em> = “_value_”;</p></div>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_regular_expressions">REGULAR EXPRESSIONS</h2>\r
+<div class="sectionbody">\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+“foo” \r
+</dt>\r
+<dd>\r
+<p>\r
+ literal string “foo”. ANSI-C escape sequences can be used.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+‘foo’ \r
+</dt>\r
+<dd>\r
+<p>\r
+ literal string “foo” (characters [a-zA-Z] treated case-insensitive). ANSI-C escape sequences can be used.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+[xyz] \r
+</dt>\r
+<dd>\r
+<p>\r
+ character class; in this case, <em>regular-expression</em> matches either ‘x’, ‘y’, or ‘z’.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+[abj-oZ] \r
+</dt>\r
+<dd>\r
+<p>\r
+ character class with a range in it; matches ‘a’, ‘b’, any letter from ‘j’ through ‘o’ or ‘Z’.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+[^<em>class</em>] \r
+</dt>\r
+<dd>\r
+<p>\r
+ inverted character class.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<em>r</em> \ <em>s</em> \r
+</dt>\r
+<dd>\r
+<p>\r
+ match any <em>r</em> which isn’t <em>s</em>. <em>r</em> and <em>s</em> must be <em>regular-expression</em>s which can be expressed as character classes.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<em>r</em> * \r
+</dt>\r
+<dd>\r
+<p>\r
+ zero or more <em>r</em>'s, where <em>r</em> is any <em>regular-expression</em>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<em>r</em> + \r
+</dt>\r
+<dd>\r
+<p>\r
+ one or more <em>r</em>'s.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<em>r</em> ? \r
+</dt>\r
+<dd>\r
+<p>\r
+ zero or one <em>r</em>'s (that is, an optional <em>r</em>).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<em>name</em> \r
+</dt>\r
+<dd>\r
+<p>\r
+ the expansion of the <em>named definition</em>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+( <em>r</em> ) \r
+</dt>\r
+<dd>\r
+<p>\r
+ <em>r</em>; parentheses are used to override precedence.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<em>r</em> <em>s</em> \r
+</dt>\r
+<dd>\r
+<p>\r
+ <em>r</em> followed by <em>s</em> (concatenation).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<em>r</em> | <em>s</em> \r
+</dt>\r
+<dd>\r
+<p>\r
+ either <em>r</em> or <em>s</em> (alternative).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<em>r</em> / <em>s</em> \r
+</dt>\r
+<dd>\r
+<p>\r
+ <em>r</em> but only if it is followed by <em>s</em>. Note that <em>s</em> is not part of the matched text.\r
+ This type of <em>regular-expression</em> is called “trailing context”.\r
+ Trailing context can only be the end of a rule and not part of a named definition.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<em>r</em> { <em>n</em> } \r
+</dt>\r
+<dd>\r
+<p>\r
+ matches <em>r</em> exactly <em>n</em> times.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<em>r</em> { <em>n</em> , } \r
+</dt>\r
+<dd>\r
+<p>\r
+ matches <em>r</em> at least <em>n</em> times.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<em>r</em> { <em>n</em> , <em>m</em> } \r
+</dt>\r
+<dd>\r
+<p>\r
+ matches <em>r</em> at least <em>n</em> times, but not more than <em>m</em> times.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+. \r
+</dt>\r
+<dd>\r
+<p>\r
+ match any character except newline.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<em>def</em> \r
+</dt>\r
+<dd>\r
+<p>\r
+ matches named definition as specified by <em>def</em> only if <strong>-F</strong> is off.\r
+ If <strong>-F</strong> is active then this behaves like it was enclosed in double quotes and matches the string “def”.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>Character classes and string literals may contain octal or hexadecimal\r
+character definitions and the following set of escape sequences:\r
+<strong>\a</strong>, <strong>\b</strong>, <strong>\f</strong>, <strong>\n</strong>, <strong>\r</strong>, <strong>\t</strong>, <strong>\v</strong>, <strong>\\</strong>.\r
+An octal character is defined by a backslash followed by its three octal digits (e.g. <strong>\377</strong>).\r
+Hexadecimal characters from 0 to 0xFF are defined by backslash, a lower cased ‘x’ and two hexadecimal digits (e.g. <strong>\x12</strong>).\r
+Hexadecimal characters from 0x100 to 0xFFFF are defined by backslash, a lower cased ‘u’ (or an upper cased ‘X’) and four hexadecimal digits (e.g. <strong>\u1234</strong>).\r
+Hexadecimal characters from 0x10000 to 0xFFFFffff are defined by backslash, an upper cased ‘U’ and eight hexadecimal digits (e.g. <strong>\U12345678</strong>).</p></div>\r
+<div class="paragraph"><p>The only portable “any” rule is the default rule <strong>*</strong>.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_inplace_configurations">INPLACE CONFIGURATIONS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>It is possible to configure code generation inside <strong>re2c</strong> blocks. The following lists the available configurations:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+<strong>re2c:condprefix</strong> = yyc_; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to specify the prefix used for condition labels. That is this text is\r
+prepended to any condition label in the generated output file.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:condenumprefix</strong> = yyc; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to specify the prefix used for condition values. That is this text is\r
+prepended to any condition enum value in the generated output file.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:cond:divider</strong> = “/* *********************************** */”; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to customize the devider for condition blocks. You can use ‘@@’ to\r
+put the name of the condition or ustomize the placeholder\r
+using <strong>re2c:cond:divider@cond</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:cond:divider@cond</strong> = @@; \r
+</dt>\r
+<dd>\r
+<p>\r
+Specifies the placeholder that will be replaced with the condition name\r
+in <strong>re2c:cond:divider</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:cond:goto</strong> = “goto @@;”; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to customize the condition goto statements used with <strong>:=></strong> style rules.\r
+You can use ‘@@’ to put the name of the condition or ustomize the placeholder\r
+using <strong>re2c:cond:goto@cond</strong>. You can also change this to ‘continue;’,\r
+which would allow you to continue with the next loop cycle including any code\r
+between loop start and re2c block.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:cond:goto@cond</strong> = @@; \r
+</dt>\r
+<dd>\r
+<p>\r
+Spcifies the placeholder that will be replaced with the condition label\r
+in <strong>re2c:cond:goto</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:indent:top</strong> = 0; \r
+</dt>\r
+<dd>\r
+<p>\r
+Specifies the minimum number of indendation to use. Requires a numeric value\r
+greater than or equal zero.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:indent:string</strong> = “\t”; \r
+</dt>\r
+<dd>\r
+<p>\r
+Specifies the string to use for indendation. Requires a string that should\r
+contain only whitespace unless you need this for external tools. The easiest\r
+way to specify spaces is to enclude them in single or double quotes. If you do\r
+not want any indendation at all you can simply set this to “”.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:yych:conversion</strong> = 0; \r
+</dt>\r
+<dd>\r
+<p>\r
+When this setting is non zero, then <strong>re2c</strong> automatically generates conversion\r
+code whenever yych gets read. In this case the type must be defined using\r
+<strong>re2c:define:YYCTYPE</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:yych:emit</strong> = 1; \r
+</dt>\r
+<dd>\r
+<p>\r
+Generation of <strong>yych</strong> can be suppressed by setting this to 0.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:yybm:hex</strong> = 0; \r
+</dt>\r
+<dd>\r
+<p>\r
+If set to zero then a decimal table is being used else a hexadecimal table\r
+will be generated.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:yyfill:enable</strong> = 1; \r
+</dt>\r
+<dd>\r
+<p>\r
+Set this to zero to suppress generation of <strong>YYFILL (n)</strong>. When using this be sure\r
+to verify that the generated scanner does not read behind input. Allowing\r
+this behavior might introduce sever security issues to you programs.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:yyfill:check</strong> = 1; \r
+</dt>\r
+<dd>\r
+<p>\r
+This can be set 0 to suppress output of the pre condition using <strong>YYCURSOR</strong> and\r
+<strong>YYLIMIT</strong> which becomes usefull when <strong>YYLIMIT + max (YYFILL)</strong> is always accessible.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYFILL</strong> = “YYFILL”; \r
+</dt>\r
+<dd>\r
+<p>\r
+Substitution for <strong>YYFILL</strong>.\r
+Note that by default <strong>re2c</strong> generates argument in braces and semicolon after <strong>YYFILL</strong>.\r
+If you need to make <strong>YYFILL</strong> an arbitrary statement rather than a call,\r
+set <strong>re2c:define:YYFILL:naked</strong> to non-zero and use <strong>re2c:define:YYFILL@len</strong> to denote\r
+formal parameter inside of <strong>YYFILL</strong> body.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYFILL@len</strong> = “@@”; \r
+</dt>\r
+<dd>\r
+<p>\r
+Any occurence of this text inside of <strong>YYFILL</strong> will be replaced with the actual argument.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:yyfill:parameter</strong> = 1; \r
+</dt>\r
+<dd>\r
+<p>\r
+Controls argument in braces after <strong>YYFILL</strong>.\r
+If zero, agrument is omitted.\r
+If non-zero, argument is generated unless <strong>re2c:define:YYFILL:naked</strong> is set to non-zero.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYFILL:naked</strong> = 0; \r
+</dt>\r
+<dd>\r
+<p>\r
+Controls argument in braces and semicolon after <strong>YYFILL</strong>.\r
+If zero, both agrument and semicolon are omitted.\r
+If non-zero, argument is generated unless <strong>re2c:yyfill:parameter</strong> is set to zero\r
+and semicolon is generated unconditionally.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:startlabel</strong> = 0; \r
+</dt>\r
+<dd>\r
+<p>\r
+If set to a non zero integer then the start label of the next scanner blocks\r
+will be generated even if not used by the scanner itself. Otherwise the normal\r
+<strong>yy0</strong> like start label is only being generated if needed. If set to a text\r
+value then a label with that text will be generated regardless of whether the\r
+normal start label is being used or not. This setting is being reset to <strong>0</strong>\r
+after a start label has been generated.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:labelprefix</strong> = yy; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to change the prefix of numbered labels. The default is <strong>yy</strong> and\r
+can be set any string that is a valid label.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:state:abort</strong> = 0; \r
+</dt>\r
+<dd>\r
+<p>\r
+When not zero and switch <strong>-f</strong> is active then the <strong>YYGETSTATE</strong> block will\r
+contain a default case that aborts and a -1 case is used for initialization.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:state:nextlabel</strong> = 0; \r
+</dt>\r
+<dd>\r
+<p>\r
+Used when <strong>-f</strong> is active to control whether the <strong>YYGETSTATE</strong> block is\r
+followed by a <strong>yyNext:</strong> label line. Instead of using <strong>yyNext</strong> you can\r
+usually also use configuration <strong>startlabel</strong> to force a specific start label\r
+or default to <strong>yy0</strong> as start label. Instead of using a dedicated label it\r
+is often better to separate the <strong>YYGETSTATE</strong> code from the actual scanner code by\r
+placing a <strong>/*!getstate:re2c*/</strong> comment.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:cgoto:threshold</strong> = 9; \r
+</dt>\r
+<dd>\r
+<p>\r
+When <strong>-g</strong> is active this value specifies the complexity threshold that triggers\r
+generation of jump tables rather than using nested if’s and decision bitfields.\r
+The threshold is compared against a calculated estimation of if-s needed where\r
+every used bitmap divides the threshold by 2.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:yych:conversion</strong> = 0; \r
+</dt>\r
+<dd>\r
+<p>\r
+When the input uses signed characters and <strong>-s</strong> or <strong>-b</strong> switches are\r
+in effect re2c allows to automatically convert to the unsigned character type\r
+that is then necessary for its internal single character. When this setting\r
+is zero or an empty string the conversion is disabled. Using a non zero number\r
+the conversion is taken from <strong>YYCTYPE</strong>. If that is given by an inplace\r
+configuration that value is being used. Otherwise it will be <strong>(YYCTYPE)</strong>\r
+and changes to that configuration are no longer possible. When this setting is\r
+a string the braces must be specified. Now assuming your input is a <strong>char *</strong>\r
+buffer and you are using above mentioned switches you can set <strong>YYCTYPE</strong> to\r
+<strong>unsigned char</strong> and this setting to either <strong>1</strong> or <strong>(unsigned char)</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYCONDTYPE</strong> = <strong>YYCONDTYPE</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Enumeration used for condition support with <strong>-c</strong> mode.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYCTXMARKER</strong> = <strong>YYCTXMARKER</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to overwrite the define <strong>YYCTXMARKER</strong> and thus avoiding it by setting the\r
+value to the actual code needed.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYCTYPE</strong> = <strong>YYCTYPE</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to overwrite the define <strong>YYCTYPE</strong> and thus avoiding it by setting the\r
+value to the actual code needed.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYCURSOR</strong> = <strong>YYCURSOR</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to overwrite the define <strong>YYCURSOR</strong> and thus avoiding it by setting the\r
+value to the actual code needed.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYDEBUG</strong> = <strong>YYDEBUG</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to overwrite the define <strong>YYDEBUG</strong> and thus avoiding it by setting the\r
+value to the actual code needed.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYGETCONDITION</strong> = “YYGETCONDITION”; \r
+</dt>\r
+<dd>\r
+<p>\r
+Substitution for <strong>YYGETCONDITION</strong>.\r
+Note that by default <strong>re2c</strong> generates braces after <strong>YYGETCONDITION</strong>.\r
+Set <strong>re2c:define:YYGETCONDITION:naked</strong> to non-zero to omit braces.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYGETCONDITION:naked</strong> = 0; \r
+</dt>\r
+<dd>\r
+<p>\r
+Controls braces after <strong>YYGETCONDITION</strong>.\r
+If zero, braces are omitted.\r
+If non-zero, braces are generated.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYSETCONDITION</strong> = “YYSETCONDITION”; \r
+</dt>\r
+<dd>\r
+<p>\r
+Substitution for <strong>YYSETCONDITION</strong>.\r
+Note that by default <strong>re2c</strong> generates argument in braces and semicolon after <strong>YYSETCONDITION</strong>.\r
+If you need to make <strong>YYSETCONDITION</strong> an arbitrary statement rather than a call,\r
+set <strong>re2c:define:YYSETCONDITION:naked</strong> to non-zero and use <strong>re2c:define:YYSETCONDITION@cond</strong> to denote\r
+formal parameter inside of <strong>YYSETCONDITION</strong> body.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYSETCONDITION@cond</strong> = “@@”; \r
+</dt>\r
+<dd>\r
+<p>\r
+Any occurence of this text inside of <strong>YYSETCONDITION</strong> will be replaced with the actual argument.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYSETCONDITION:naked</strong> = 0; \r
+</dt>\r
+<dd>\r
+<p>\r
+Controls argument in braces and semicolon after <strong>YYSETCONDITION</strong>.\r
+If zero, both agrument and semicolon are omitted.\r
+If non-zero, both argument and semicolon are generated.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYGETSTATE</strong> = “YYGETSTATE”; \r
+</dt>\r
+<dd>\r
+<p>\r
+Substitution for <strong>YYGETSTATE</strong>.\r
+Note that by default <strong>re2c</strong> generates braces after <strong>YYGETSTATE</strong>.\r
+Set <strong>re2c:define:YYGETSTATE:naked</strong> to non-zero to omit braces.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYGETSTATE:naked</strong> = 0; \r
+</dt>\r
+<dd>\r
+<p>\r
+Controls braces after <strong>YYGETSTATE</strong>.\r
+If zero, braces are omitted.\r
+If non-zero, braces are generated.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYSETSTATE</strong> = “YYSETSTATE”; \r
+</dt>\r
+<dd>\r
+<p>\r
+Substitution for <strong>YYSETSTATE</strong>.\r
+Note that by default <strong>re2c</strong> generates argument in braces and semicolon after <strong>YYSETSTATE</strong>.\r
+If you need to make <strong>YYSETSTATE</strong> an arbitrary statement rather than a call,\r
+set <strong>re2c:define:YYSETSTATE:naked</strong> to non-zero and use <strong>re2c:define:YYSETSTATE@cond</strong> to denote\r
+formal parameter inside of <strong>YYSETSTATE</strong> body.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYSETSTATE@state</strong> = “@@”; \r
+</dt>\r
+<dd>\r
+<p>\r
+Any occurence of this text inside of <strong>YYSETSTATE</strong> will be replaced with the actual argument.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYSETSTATE:naked</strong> = <strong>0</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Controls argument in braces and semicolon after <strong>YYSETSTATE</strong>.\r
+If zero, both agrument and semicolon are omitted.\r
+If non-zero, both argument and semicolon are generated.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYLIMIT</strong> = <strong>YYLIMIT</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to overwrite the define <strong>YYLIMIT</strong> and thus avoiding it by setting the\r
+value to the actual code needed.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:define:YYMARKER</strong> = <strong>YYMARKER</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to overwrite the define <strong>YYMARKER</strong> and thus avoiding it by setting the\r
+value to the actual code needed.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:label:yyFillLabel</strong> = <strong>yyFillLabel</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to overwrite the name of the label <strong>yyFillLabel</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:label:yyNext</strong> = <strong>yyNext</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to overwrite the name of the label <strong>yyNext</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:variable:yyaccept</strong> = <strong>yyaccept</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to overwrite the name of the variable <strong>yyaccept</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:variable:yybm</strong> = <strong>yybm</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to overwrite the name of the variable <strong>yybm</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:variable:yych</strong> = <strong>yych</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to overwrite the name of the variable <strong>yych</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:variable:yyctable</strong> = <strong>yyctable</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+When both <strong>-c</strong> and <strong>-g</strong> are active then <strong>re2c</strong> uses this variable to\r
+generate a static jump table for <strong>YYGETCONDITION</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:variable:yystable</strong> = <strong>yystable</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+When both <strong>-f</strong> and <strong>-g</strong> are active then <strong>re2c</strong> uses this variable to\r
+generate a static jump table for <strong>YYGETSTATE</strong>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>re2c:variable:yytarget</strong> = <strong>yytarget</strong>; \r
+</dt>\r
+<dd>\r
+<p>\r
+Allows to overwrite the name of the variable <strong>yytarget</strong>.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_scanner_with_storable_states">SCANNER WITH STORABLE STATES</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>When the <strong>-f</strong> flag is specified, <strong>re2c</strong> generates a scanner that\r
+can store its current state, return to the caller, and later resume\r
+operations exactly where it left off.</p></div>\r
+<div class="paragraph"><p>The default operation of <strong>re2c</strong> is a “pull” model, where the scanner asks\r
+for extra input whenever it needs it. However, this mode of operation\r
+assumes that the scanner is the “owner” the parsing loop, and that may\r
+not always be convenient.</p></div>\r
+<div class="paragraph"><p>Typically, if there is a preprocessor ahead of the scanner in the stream,\r
+or for that matter any other procedural source of data, the scanner cannot\r
+“ask” for more data unless both scanner and source live in a separate threads.</p></div>\r
+<div class="paragraph"><p>The <strong>-f</strong> flag is useful for just this situation: it lets users design\r
+scanners that work in a “push” model, i.e. where data is fed to the scanner\r
+chunk by chunk. When the scanner runs out of data to consume, it just stores\r
+its state, and return to the caller. When more input data is fed to the scanner,\r
+it resumes operations exactly where it left off.</p></div>\r
+<div class="paragraph"><p>Changes needed compared to the “pull” model:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+User has to supply macros <strong>YYSETSTATE ()</strong> and <strong>YYGETSTATE (state)</strong>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The <strong>-f</strong> option inhibits declaration of <strong>yych</strong> and\r
+<strong>yyaccept</strong>. So the user has to declare these. Also the user has\r
+to save and restore these. In the example <strong>examples/push_model/push.re</strong> these\r
+are declared as fields of the (C\++) class of which the scanner is a\r
+method, so they do not need to be saved/restored explicitly. For C\r
+they could e.g. be made macros that select fields from a structure\r
+passed in as parameter. Alternatively, they could be declared as local\r
+variables, saved with <strong>YYFILL (n)</strong> when it decides to return and restored\r
+at entry to the function. Also, it could be more efficient to save the\r
+state from <strong>YYFILL (n)</strong> because <strong>YYSETSTATE (state)</strong> is called\r
+unconditionally. <strong>YYFILL (n)</strong> however does not get <strong>state</strong> as\r
+parameter, so we would have to store state in a local variable by\r
+<strong>YYSETSTATE (state)</strong>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Modify <strong>YYFILL (n)</strong> to return (from the function calling it) if more input is needed.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Modify caller to recognise “more input is needed” and respond appropriately.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The generated code will contain a switch block that is used to restores\r
+the last state by jumping behind the corrspoding <strong>YYFILL (n)</strong> call. This code is\r
+automatically generated in the epilog of the first <strong>/*!re2c */</strong> block.\r
+It is possible to trigger generation of the <strong>YYGETSTATE ()</strong> block earlier by\r
+placing a <strong>/*!getstate:re2c*/</strong> comment. This is especially useful when\r
+the scanner code should be wrapped inside a loop.\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>Please see <strong>examples/push_model/push.re</strong> for push-model scanner. The generated code can be\r
+tweaked using inplace configurations <strong>state:abort</strong> and <strong>state:nextlabel</strong>.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_scanner_with_condition_support">SCANNER WITH CONDITION SUPPORT</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>You can preceed regular expressions with a list of condition names when using the <strong>-c</strong>\r
+switch. In this case <strong>re2c</strong> generates scanner blocks for each conditon. Where each of the\r
+generated blocks has its own precondition. The precondition is given by the\r
+interface define <strong>YYGETCONDITON()</strong> and must be of type <strong>YYCONDTYPE</strong>.</p></div>\r
+<div class="paragraph"><p>There are two special rule types. First, the rules of the condition <strong>*</strong> are\r
+merged to all conditions (note that they have lower priority than other rules\r
+of that condition). And second the empty condition list allows to\r
+provide a code block that does not have a scanner part. Meaning it does not\r
+allow any regular expression. The condition value referring to this special\r
+block is always the one with the enumeration value 0. This way the code of this\r
+special rule can be used to initialize a scanner. It is in no way necessary to\r
+have these rules: but sometimes it is helpful to have a dedicated uninitialized\r
+condition state.</p></div>\r
+<div class="paragraph"><p>Non empty rules allow to specify the new condition, which makes them\r
+transition rules. Besides generating calls for the define <strong>YYSETCONDTITION</strong>\r
+no other special code is generated.</p></div>\r
+<div class="paragraph"><p>There is another kind of special rules that allow to prepend code to any code\r
+block of all rules of a certain set of conditions or to all code blocks to all\r
+rules. This can be helpful when some operation is common among rules. For\r
+instance this can be used to store the length of the scanned string. These\r
+special setup rules start with an exclamation mark followed by either a list\r
+of conditions <strong><! condition, ... ></strong> or a star <strong><!*></strong>.\r
+When <strong>re2c</strong> generates the code for a rule whose state does not have a\r
+setup rule and a star’d setup rule is present, than that code will be used\r
+as setup code.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_encodings">ENCODINGS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p><strong>re2c</strong> supports the following encodings: ASCII (default), EBCDIC (<strong>-e</strong>), UCS-2 (<strong>-w</strong>),\r
+UTF-16 (<strong>-x</strong>), UTF-32 (<strong>-u</strong>) and UTF-8 (<strong>-8</strong>). ASCII is default. You can\r
+either pass cmd flag or use <em>inplace configuration</em> in the form <strong>re2c:flags</strong>.</p></div>\r
+<div class="paragraph"><p>The following concepts should be clarified when talking about encoding. <em>Code point</em>\r
+is an abstract number, which represents single encoding symbol. <em>Code unit</em> is the\r
+smallest unit of memory, which is used in the encoded text (it corresponds to one\r
+character in the input stream). One or more code units can be needed to represent\r
+a single code point, depending on the encoding. In <em>fixed-length</em> encoding, each\r
+code point is represented with equal number of code units. In <em>variable-length</em>\r
+encoding, different code points can be represented with different number of code units.</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+<strong>ASCII</strong> \r
+</dt>\r
+<dd>\r
+<p>\r
+is a fixed-length encoding. Its code space includes 0x100 code points, from 0\r
+to 0xFF (note that this is <strong>re2c</strong>-specific understanding of ASCII). One code point\r
+is represented with exactly one 1-byte code unit, which has the same value as the\r
+code point. Size of <strong>YYCTYPE</strong> must be 1 byte.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>EBCDIC</strong> \r
+</dt>\r
+<dd>\r
+<p>\r
+is a fixed-length encoding. Its code space includes 0x100 code points, from 0\r
+to 0xFF. One code point is represented with exactly one 1-byte code unit, which has\r
+the same value as the code point. Size of <strong>YYCTYPE</strong> must be 1 byte.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>UCS-2</strong> \r
+</dt>\r
+<dd>\r
+<p>\r
+is a fixed-length encoding. Its code space includes 0x10000 code points, from 0\r
+to 0xFFFF. One code point is represented with exactly one 2-byte code unit, which has\r
+the same value as the code point. Size of <strong>YYCTYPE</strong> must be 2 bytes.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>UTF-16</strong> \r
+</dt>\r
+<dd>\r
+<p>\r
+is a variable-length encoding. Its code space includes all Unicode code points,\r
+from 0 to 0xD7FF and from 0xE000 to 0x10FFFF. One code point is represented with one or\r
+two 2-byte code units. Size of <strong>YYCTYPE</strong> must be 2 bytes.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>UTF-32</strong> \r
+</dt>\r
+<dd>\r
+<p>\r
+is a fixed-length encoding. Its code space includes all Unicode code points,\r
+from 0 to 0xD7FF and from 0xE000 to 0x10FFFF. One code point is represented with exactly\r
+one 4-byte code unit. Size of <strong>YYCTYPE</strong> must be 4 bytes.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+<strong>UTF-8</strong> \r
+</dt>\r
+<dd>\r
+<p>\r
+is a variable-length encoding. Its code space includes all\r
+Unicode code points, from 0 to 0xD7FF and from 0xE000 to 0x10FFFF. One code point\r
+is represented with sequence of one, two, three or four 1-byte code units. Size of\r
+<strong>YYCTYPE</strong> must be 1 bytes.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>In Unicode, values from range 0xD800 to 0xDFFF (surrogates) are not valid Unicode\r
+code points, any encoded sequence of code units, that would map to Unicode code points\r
+in the range 0xD800-0xDFFF, is ill-formed.\r
+The user can control how <strong>re2c</strong> treats such ill-formed sequences with <strong>--encoding-policy</strong> <em>policy</em>\r
+flag (see <strong>OPTIONS</strong> section for full explanation).</p></div>\r
+<div class="paragraph"><p>For some encodings, there are code units, that never occur in valid encoded stream\r
+(e.g. 0xFF byte in UTF-8). If the generated scanner must check for invalid input,\r
+the only true way to do so is to use default rule <strong>*</strong>.\r
+Note, that full range rule <strong>[^]</strong> won’t catch invalid code units when variable-length encoding is used\r
+(<strong>[^]</strong> means “all valid code points”, while default rule <strong>*</strong> means “all possible code units”:\r
+see <strong>Note</strong> about default rule in <strong>SYNTAX</strong> section).</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_generic_input_api">GENERIC INPUT API</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p><strong>re2c</strong> usually operates on input using pointer-like primitives <strong>YYCURSOR</strong>, <strong>YYMARKER</strong>, <strong>YYCTXMARKER</strong> and <strong>YYLIMIT</strong>.</p></div>\r
+<div class="paragraph"><p>Generic input API (enabled with <strong>--input custom</strong> switch) allows to customize input operations.\r
+In this mode, <strong>re2c</strong> will express all operations on input in terms of the following primitives:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+<strong>YYPEEK ()</strong> --- get current input character\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>YYSKIP ()</strong> --- advance to the next character\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>YYBACKUP ()</strong> --- backup current input position\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>YYBACKUPCTX ()</strong> --- backup current input position for trailing context\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>YYRESTORE ()</strong> --- restore current input position\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>YYRESTORECTX ()</strong> --- restore current input position for trailing context\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>YYLESSTHAN (n)</strong> --- check if less than <strong>n</strong> input characters are left\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>This article (<a href="http://skvadrik.github.io/aleph_null/posts/re2c/2015-01-13-input_model.html">http://skvadrik.github.io/aleph_null/posts/re2c/2015-01-13-input_model.html</a>)\r
+has more details, and you can find some usage examples:\r
+<a href="http://skvadrik.github.io/aleph_null/posts/re2c/2015-01-15-input_model_custom.html">http://skvadrik.github.io/aleph_null/posts/re2c/2015-01-15-input_model_custom.html</a> .</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_understanding_re2c">UNDERSTANDING RE2C</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The subdirectory examples of the <strong>re2c</strong> distribution contains a few step by step\r
+examples to get you started with <strong>re2c</strong>. All examples in the lessons subdirectory\r
+can be compiled and actually work.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_bugs">BUGS</h2>\r
+<div class="sectionbody">\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Difference only works for character sets, and not in UTF-8 mode.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The generated DFA is not minimal.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Features, that are naturally orthogonal (such as reusable rules, conditions,\r
+setup rules and default rules), cannot always be combined. E.g., one cannot set\r
+setup/default rule for condition in scanner with reusable rules.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>re2c</strong> does too much unnecessary work: e.g., if <strong>/*!use:re2c ... */</strong> block has\r
+additional rules, these rules are parsed 4 times, while they should be parsed only once.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The <strong>re2c</strong> internal algorithms need documentation.\r
+</p>\r
+</li>\r
+</ol></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_see_also">SEE ALSO</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>flex(1), lex(1), quex (<a href="http://quex.sourceforge.net">http://quex.sourceforge.net</a>)</p></div>\r
+<div class="paragraph"><p>More information on <strong>re2c</strong> can be found here: <a href="http://re2c.org/">http://re2c.org/</a>.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_authors">AUTHORS</h2>\r
+<div class="sectionbody">\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Peter Bumbulis <a href="mailto:peter@csg.uwaterloo.ca">peter@csg.uwaterloo.ca</a>\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Brian Young <a href="mailto:bayoung@acm.org">bayoung@acm.org</a>\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Dan Nuffer <a href="mailto:nuffer@users.sourceforge.net">nuffer@users.sourceforge.net</a>\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Marcus Boerger <a href="mailto:helly@users.sourceforge.net">helly@users.sourceforge.net</a>\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Hartmut Kaiser <a href="mailto:hkaiser@users.sourceforge.net">hkaiser@users.sourceforge.net</a>\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Emmanuel Mogenet <a href="mailto:mgix@mgix.com">mgix@mgix.com</a> (added storable state)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Ulya Trofimovich <a href="mailto:skvadrik@gmail.com">skvadrik@gmail.com</a>\r
+</p>\r
+</li>\r
+</ol></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_version_information">VERSION INFORMATION</h2>\r
+<div class="sectionbody">\r
- Last updated 2015-09-28 15:25:09 BST\r
++<div class="paragraph"><p>This manpage describes <strong>re2c</strong>, version 0.14.1.dev, package date 21 Nov 2015.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer">\r
+<div id="footer-text">\r
++Last updated 2015-11-21 19:45:59 GMT\r
+</div>\r
+</div>\r
+</body>\r
+</html>\r
.\" Title: re2c
.\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.78.0 <http://docbook.sf.net/>
- .\" Date: 09/28/2015
-.\" Date: 05/20/2015
++.\" Date: 11/21/2015
.\" Manual: \ \&
.\" Source: \ \&
.\" Language: English
.\"
- .TH "RE2C" "1" "09/28/2015" "\ \&" "\ \&"
-.TH "RE2C" "1" "05/20/2015" "\ \&" "\ \&"
++.TH "RE2C" "1" "11/21/2015" "\ \&" "\ \&"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.RE
.SH "VERSION INFORMATION"
.sp
- This manpage describes \fBre2c\fR, version 0\&.14\&.1\&.dev, package date 28 Sep 2015\&.
-This manpage describes \fBre2c\fR, version 0\&.14\&.3, package date 20 May 2015\&.
++This manpage describes \fBre2c\fR, version 0\&.14\&.1\&.dev, package date 21 Nov 2015\&.
--- /dev/null
- /* Generated by re2c 0.14.3 on Thu Oct 8 10:55:24 2015 */
++/* Generated by re2c 0.14.3 on Sat Nov 21 19:46:24 2015 */
+#line 1 "../src/conf/parse_opts.re"
+#include <stdio.h>
+
+#include "src/conf/msg.h"
+#include "src/conf/opt.h"
+#include "src/globals.h"
+
+namespace re2c
+{
+
+static inline bool next (char * & arg, char ** & argv)
+{
+ arg = *++argv;
+ return arg != NULL;
+}
+
+parse_opts_t parse_opts (char ** argv, Opt & opts)
+{
+#define YYCTYPE unsigned char
+ char * YYCURSOR;
+ char * YYMARKER;
+ Warn::option_t option;
+
+#line 29 "../src/conf/parse_opts.re"
+
+
+opt:
+ if (!next (YYCURSOR, argv))
+ {
+ goto end;
+ }
+
+#line 35 "src/conf/parse_opts.cc"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ static const unsigned char yybm[] = {
+ 0, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ };
+
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= 0x00) goto yy2;
+ if (yych == '-') goto yy5;
+ goto yy4;
+yy2:
+ ++YYCURSOR;
+yy3:
+#line 38 "../src/conf/parse_opts.re"
+ {
+ error ("bad option: %s", *argv);
+ return EXIT_FAIL;
+ }
+#line 86 "src/conf/parse_opts.cc"
+yy4:
+ yyaccept = 0;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ goto yy39;
+yy5:
+ ++YYCURSOR;
+ if ((yych = (YYCTYPE)*YYCURSOR) <= '-') {
+ if (yych <= 0x00) goto yy11;
+ if (yych >= '-') goto yy9;
+ } else {
+ if (yych == 'W') goto yy7;
+ }
+#line 61 "../src/conf/parse_opts.re"
+ { goto opt_short; }
+#line 101 "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 66 "../src/conf/parse_opts.re"
+ { option = Warn::W; goto opt_warn; }
+#line 114 "src/conf/parse_opts.cc"
+yy9:
+ ++YYCURSOR;
+ if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy13;
+#line 62 "../src/conf/parse_opts.re"
+ { goto opt_long; }
+#line 120 "src/conf/parse_opts.cc"
+yy11:
+ ++YYCURSOR;
+#line 58 "../src/conf/parse_opts.re"
+ { if (!opts.source ("<stdin>")) return EXIT_FAIL; goto opt; }
+#line 125 "src/conf/parse_opts.cc"
+yy13:
+ ++YYCURSOR;
+#line 44 "../src/conf/parse_opts.re"
+ {
+ // all remaining arguments are non-options
+ // so they must be input files
+ // re2c expects exactly one input file
+ for (char * f; next (f, argv);)
+ {
+ if (!opts.source (f))
+ {
+ return EXIT_FAIL;
+ }
+ }
+ goto end;
+ }
+#line 142 "src/conf/parse_opts.cc"
+yy15:
+ ++YYCURSOR;
+#line 64 "../src/conf/parse_opts.re"
+ { warn.set_all (); goto opt; }
+#line 147 "src/conf/parse_opts.cc"
+yy17:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'r') goto yy30;
+yy18:
+ YYCURSOR = YYMARKER;
+ if (yyaccept <= 1) {
+ if (yyaccept == 0) {
+ goto yy3;
+ } else {
+ goto yy8;
+ }
+ } else {
+ goto yy22;
+ }
+yy19:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy18;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy18;
+ yyaccept = 2;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy23;
+yy22:
+#line 67 "../src/conf/parse_opts.re"
+ { option = Warn::WNO; goto opt_warn; }
+#line 173 "src/conf/parse_opts.cc"
+yy23:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy18;
+ 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 69 "../src/conf/parse_opts.re"
+ { option = Warn::WNOERROR; goto opt_warn; }
+#line 188 "src/conf/parse_opts.cc"
+yy30:
+ 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 <= 0x00) goto yy36;
+ if (yych != '-') goto yy18;
+ ++YYCURSOR;
+#line 68 "../src/conf/parse_opts.re"
+ { option = Warn::WERROR; goto opt_warn; }
+#line 202 "src/conf/parse_opts.cc"
+yy36:
+ ++YYCURSOR;
+#line 65 "../src/conf/parse_opts.re"
+ { warn.set_all_error (); goto opt; }
+#line 207 "src/conf/parse_opts.cc"
+yy38:
+ ++YYCURSOR;
+ yych = (YYCTYPE)*YYCURSOR;
+yy39:
+ if (yybm[0+yych] & 128) {
+ goto yy38;
+ }
+ ++YYCURSOR;
+#line 59 "../src/conf/parse_opts.re"
+ { if (!opts.source (*argv)) return EXIT_FAIL; goto opt; }
+#line 218 "src/conf/parse_opts.cc"
+}
+#line 70 "../src/conf/parse_opts.re"
+
+
+opt_warn:
+
+#line 225 "src/conf/parse_opts.cc"
+{
+ YYCTYPE yych;
+ yych = (YYCTYPE)*YYCURSOR;
+ switch (yych) {
+ case 'c': goto yy46;
+ case 'e': goto yy47;
+ case 'm': goto yy48;
+ case 's': goto yy49;
+ case 'u': goto yy50;
+ default: goto yy44;
+ }
+yy44:
+ ++YYCURSOR;
+yy45:
+#line 75 "../src/conf/parse_opts.re"
+ {
+ error ("bad warning: %s", *argv);
+ return EXIT_FAIL;
+ }
+#line 245 "src/conf/parse_opts.cc"
+yy46:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'o') goto yy162;
+ goto yy45;
+yy47:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'm') goto yy140;
+ goto yy45;
+yy48:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy121;
+ goto yy45;
+yy49:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'w') goto yy107;
+ goto yy45;
+yy50:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy53;
+ if (yych != 's') goto yy45;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'e') goto yy93;
+yy52:
+ YYCURSOR = YYMARKER;
+ goto yy45;
+yy53:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'd') goto yy54;
+ if (yych == 'r') goto yy55;
+ goto yy52;
+yy54:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'e') goto yy72;
+ goto yy52;
+yy55:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'h') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'b') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'u') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy52;
+ ++YYCURSOR;
+#line 84 "../src/conf/parse_opts.re"
+ { warn.set (Warn::UNREACHABLE_RULES, option); goto opt; }
+#line 314 "src/conf/parse_opts.cc"
+yy72:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'f') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'f') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'w') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy52;
+ ++YYCURSOR;
+#line 83 "../src/conf/parse_opts.re"
+ { warn.set (Warn::UNDEFINED_CONTROL_FLOW, option); goto opt; }
+#line 357 "src/conf/parse_opts.cc"
+yy93:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy52;
+ ++YYCURSOR;
+#line 85 "../src/conf/parse_opts.re"
+ { warn.set (Warn::USELESS_ESCAPE, option); goto opt; }
+#line 386 "src/conf/parse_opts.cc"
+yy107:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'g') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy52;
+ ++YYCURSOR;
+#line 82 "../src/conf/parse_opts.re"
+ { warn.set (Warn::SWAPPED_RANGE, option); goto opt; }
+#line 415 "src/conf/parse_opts.cc"
+yy121:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'h') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'm') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'y') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'g') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy52;
+ ++YYCURSOR;
+#line 81 "../src/conf/parse_opts.re"
+ { warn.set (Warn::MATCH_EMPTY_STRING, option); goto opt; }
+#line 454 "src/conf/parse_opts.cc"
+yy140:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'y') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'h') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy52;
+ ++YYCURSOR;
+#line 80 "../src/conf/parse_opts.re"
+ { warn.set (Warn::EMPTY_CHARACTER_CLASS, option); goto opt; }
+#line 499 "src/conf/parse_opts.cc"
+yy162:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy52;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy52;
+ ++YYCURSOR;
+#line 79 "../src/conf/parse_opts.re"
+ { warn.set (Warn::CONDITION_ORDER, option); goto opt; }
+#line 532 "src/conf/parse_opts.cc"
+}
+#line 86 "../src/conf/parse_opts.re"
+
+
+opt_short:
+
+#line 539 "src/conf/parse_opts.cc"
+{
+ YYCTYPE yych;
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= 'b') {
+ if (yych <= 'C') {
+ if (yych <= '7') {
+ if (yych <= 0x00) goto yy180;
+ if (yych == '1') goto yy184;
+ goto yy182;
+ } else {
+ if (yych <= '8') goto yy186;
+ if (yych == '?') goto yy188;
+ goto yy182;
+ }
+ } else {
+ if (yych <= 'R') {
+ if (yych <= 'D') goto yy190;
+ if (yych == 'F') goto yy192;
+ goto yy182;
+ } else {
+ if (yych <= 'U') {
+ if (yych <= 'S') goto yy194;
+ goto yy182;
+ } else {
+ if (yych <= 'V') goto yy196;
+ if (yych <= 'a') goto yy182;
+ goto yy198;
+ }
+ }
+ }
+ } else {
+ if (yych <= 'o') {
+ if (yych <= 'f') {
+ if (yych <= 'c') goto yy200;
+ if (yych <= 'd') goto yy202;
+ if (yych <= 'e') goto yy204;
+ goto yy206;
+ } else {
+ if (yych <= 'h') {
+ if (yych <= 'g') goto yy208;
+ goto yy188;
+ } else {
+ if (yych <= 'i') goto yy210;
+ if (yych <= 'n') goto yy182;
+ goto yy212;
+ }
+ }
+ } else {
+ if (yych <= 't') {
+ if (yych <= 'q') goto yy182;
+ if (yych <= 'r') goto yy214;
+ if (yych <= 's') goto yy216;
+ goto yy218;
+ } else {
+ if (yych <= 'v') {
+ if (yych <= 'u') goto yy220;
+ goto yy222;
+ } else {
+ if (yych <= 'w') goto yy224;
+ if (yych <= 'x') goto yy226;
+ goto yy182;
+ }
+ }
+ }
+ }
+yy180:
+ ++YYCURSOR;
+#line 95 "../src/conf/parse_opts.re"
+ { goto opt; }
+#line 609 "src/conf/parse_opts.cc"
+yy182:
+ ++YYCURSOR;
+#line 91 "../src/conf/parse_opts.re"
+ {
+ error ("bad short option: %s", *argv);
+ return EXIT_FAIL;
+ }
+#line 617 "src/conf/parse_opts.cc"
+yy184:
+ ++YYCURSOR;
+#line 119 "../src/conf/parse_opts.re"
+ { goto opt_short; }
+#line 622 "src/conf/parse_opts.cc"
+yy186:
+ ++YYCURSOR;
+#line 114 "../src/conf/parse_opts.re"
+ { if (!opts.set_encoding (Enc::UTF8)) { error_encoding (); return EXIT_FAIL; } goto opt_short; }
+#line 627 "src/conf/parse_opts.cc"
+yy188:
+ ++YYCURSOR;
+#line 96 "../src/conf/parse_opts.re"
+ { usage (); return EXIT_OK; }
+#line 632 "src/conf/parse_opts.cc"
+yy190:
+ ++YYCURSOR;
+#line 102 "../src/conf/parse_opts.re"
+ { opts.set_target (opt_t::DOT); goto opt_short; }
+#line 637 "src/conf/parse_opts.cc"
+yy192:
+ ++YYCURSOR;
+#line 104 "../src/conf/parse_opts.re"
+ { opts.set_FFlag (true); goto opt_short; }
+#line 642 "src/conf/parse_opts.cc"
+yy194:
+ ++YYCURSOR;
+#line 109 "../src/conf/parse_opts.re"
+ { opts.set_target (opt_t::SKELETON); goto opt_short; }
+#line 647 "src/conf/parse_opts.cc"
+yy196:
+ ++YYCURSOR;
+#line 98 "../src/conf/parse_opts.re"
+ { vernum (); return EXIT_OK; }
+#line 652 "src/conf/parse_opts.cc"
+yy198:
+ ++YYCURSOR;
+#line 99 "../src/conf/parse_opts.re"
+ { opts.set_bFlag (true); goto opt_short; }
+#line 657 "src/conf/parse_opts.cc"
+yy200:
+ ++YYCURSOR;
+#line 100 "../src/conf/parse_opts.re"
+ { opts.set_cFlag (true); goto opt_short; }
+#line 662 "src/conf/parse_opts.cc"
+yy202:
+ ++YYCURSOR;
+#line 101 "../src/conf/parse_opts.re"
+ { opts.set_dFlag (true); goto opt_short; }
+#line 667 "src/conf/parse_opts.cc"
+yy204:
+ ++YYCURSOR;
+#line 110 "../src/conf/parse_opts.re"
+ { if (!opts.set_encoding (Enc::EBCDIC)) { error_encoding (); return EXIT_FAIL; } goto opt_short; }
+#line 672 "src/conf/parse_opts.cc"
+yy206:
+ ++YYCURSOR;
+#line 103 "../src/conf/parse_opts.re"
+ { opts.set_fFlag (true); goto opt_short; }
+#line 677 "src/conf/parse_opts.cc"
+yy208:
+ ++YYCURSOR;
+#line 105 "../src/conf/parse_opts.re"
+ { opts.set_gFlag (true); goto opt_short; }
+#line 682 "src/conf/parse_opts.cc"
+yy210:
+ ++YYCURSOR;
+#line 106 "../src/conf/parse_opts.re"
+ { opts.set_iFlag (true); goto opt_short; }
+#line 687 "src/conf/parse_opts.cc"
+yy212:
+ ++YYCURSOR;
+ if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy230;
+#line 116 "../src/conf/parse_opts.re"
+ { *argv = YYCURSOR; goto opt_output; }
+#line 693 "src/conf/parse_opts.cc"
+yy214:
+ ++YYCURSOR;
+#line 107 "../src/conf/parse_opts.re"
+ { opts.set_rFlag (true); goto opt_short; }
+#line 698 "src/conf/parse_opts.cc"
+yy216:
+ ++YYCURSOR;
+#line 108 "../src/conf/parse_opts.re"
+ { opts.set_sFlag (true); goto opt_short; }
+#line 703 "src/conf/parse_opts.cc"
+yy218:
+ ++YYCURSOR;
+ if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy228;
+#line 118 "../src/conf/parse_opts.re"
+ { *argv = YYCURSOR; goto opt_header; }
+#line 709 "src/conf/parse_opts.cc"
+yy220:
+ ++YYCURSOR;
+#line 111 "../src/conf/parse_opts.re"
+ { if (!opts.set_encoding (Enc::UTF32)) { error_encoding (); return EXIT_FAIL; } goto opt_short; }
+#line 714 "src/conf/parse_opts.cc"
+yy222:
+ ++YYCURSOR;
+#line 97 "../src/conf/parse_opts.re"
+ { version (); return EXIT_OK; }
+#line 719 "src/conf/parse_opts.cc"
+yy224:
+ ++YYCURSOR;
+#line 112 "../src/conf/parse_opts.re"
+ { if (!opts.set_encoding (Enc::UCS2)) { error_encoding (); return EXIT_FAIL; } goto opt_short; }
+#line 724 "src/conf/parse_opts.cc"
+yy226:
+ ++YYCURSOR;
+#line 113 "../src/conf/parse_opts.re"
+ { if (!opts.set_encoding (Enc::UTF16)) { error_encoding (); return EXIT_FAIL; } goto opt_short; }
+#line 729 "src/conf/parse_opts.cc"
+yy228:
+ ++YYCURSOR;
+#line 117 "../src/conf/parse_opts.re"
+ { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; }
+#line 734 "src/conf/parse_opts.cc"
+yy230:
+ ++YYCURSOR;
+#line 115 "../src/conf/parse_opts.re"
+ { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; }
+#line 739 "src/conf/parse_opts.cc"
+}
+#line 120 "../src/conf/parse_opts.re"
+
+
+opt_long:
+
+#line 746 "src/conf/parse_opts.cc"
+{
+ YYCTYPE yych;
+ yych = (YYCTYPE)*YYCURSOR;
+ switch (yych) {
+ case 'b': goto yy236;
+ case 'c': goto yy237;
+ case 'd': goto yy238;
+ case 'e': goto yy239;
+ case 'f': goto yy240;
+ case 'h': goto yy241;
+ case 'i': goto yy242;
+ case 'n': goto yy243;
+ case 'o': goto yy244;
+ case 'r': goto yy245;
+ case 's': goto yy246;
+ case 't': goto yy247;
+ case 'u': goto yy248;
+ case 'v': goto yy249;
+ case 'w': goto yy250;
+ default: goto yy234;
+ }
+yy234:
+ ++YYCURSOR;
+yy235:
+#line 125 "../src/conf/parse_opts.re"
+ {
+ error ("bad long option: %s", *argv);
+ return EXIT_FAIL;
+ }
+#line 776 "src/conf/parse_opts.cc"
+yy236:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'i') goto yy532;
+ goto yy235;
+yy237:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy492;
+ if (yych == 'o') goto yy493;
+ goto yy235;
+yy238:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy479;
+ goto yy235;
+yy239:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= 'l') {
+ if (yych == 'c') goto yy441;
+ goto yy235;
+ } else {
+ if (yych <= 'm') goto yy439;
+ if (yych <= 'n') goto yy440;
+ goto yy235;
+ }
+yy240:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'l') goto yy427;
+ goto yy235;
+yy241:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy422;
+ goto yy235;
+yy242:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy416;
+ goto yy235;
+yy243:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy375;
+ if (yych == 'o') goto yy374;
+ goto yy235;
+yy244:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy367;
+ goto yy235;
+yy245:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy358;
+ goto yy235;
+yy246:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= 'j') {
+ if (yych == 'i') goto yy306;
+ goto yy235;
+ } else {
+ if (yych <= 'k') goto yy307;
+ if (yych == 't') goto yy308;
+ goto yy235;
+ }
+yy247:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'y') goto yy294;
+ goto yy235;
+yy248:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'n') goto yy277;
+ if (yych == 't') goto yy276;
+ goto yy235;
+yy249:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'e') goto yy263;
+ goto yy235;
+yy250:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych != 'i') goto yy235;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'd') goto yy253;
+yy252:
+ YYCURSOR = YYMARKER;
+ goto yy235;
+yy253:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'h') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 148 "../src/conf/parse_opts.re"
+ { if (!opts.set_encoding (Enc::UCS2)) { error_encoding (); return EXIT_FAIL; } goto opt; }
+#line 876 "src/conf/parse_opts.cc"
+yy263:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'n') goto yy265;
+ if (yych == 's') goto yy266;
+ goto yy252;
+yy265:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'u') goto yy272;
+ goto yy252;
+yy266:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 130 "../src/conf/parse_opts.re"
+ { version (); return EXIT_OK; }
+#line 900 "src/conf/parse_opts.cc"
+yy272:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'm') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 131 "../src/conf/parse_opts.re"
+ { vernum (); return EXIT_OK; }
+#line 909 "src/conf/parse_opts.cc"
+yy276:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'f') goto yy285;
+ goto yy252;
+yy277:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 147 "../src/conf/parse_opts.re"
+ { if (!opts.set_encoding (Enc::UTF32)) { error_encoding (); return EXIT_FAIL; } goto opt; }
+#line 930 "src/conf/parse_opts.cc"
+yy285:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '1') goto yy287;
+ if (yych == '8') goto yy288;
+ goto yy252;
+yy287:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '6') goto yy291;
+ goto yy252;
+yy288:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 150 "../src/conf/parse_opts.re"
+ { if (!opts.set_encoding (Enc::UTF8)) { error_encoding (); return EXIT_FAIL; } goto opt; }
+#line 948 "src/conf/parse_opts.cc"
+yy291:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 149 "../src/conf/parse_opts.re"
+ { if (!opts.set_encoding (Enc::UTF16)) { error_encoding (); return EXIT_FAIL; } goto opt; }
+#line 955 "src/conf/parse_opts.cc"
+yy294:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'h') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 152 "../src/conf/parse_opts.re"
+ { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; }
+#line 980 "src/conf/parse_opts.cc"
+yy306:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'n') goto yy347;
+ goto yy252;
+yy307:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'e') goto yy339;
+ goto yy252;
+yy308:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'a') goto yy309;
+ if (yych == 'o') goto yy310;
+ goto yy252;
+yy309:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'r') goto yy324;
+ goto yy252;
+yy310:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'b') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 136 "../src/conf/parse_opts.re"
+ { opts.set_fFlag (true); goto opt; }
+#line 1026 "src/conf/parse_opts.cc"
+yy324:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 133 "../src/conf/parse_opts.re"
+ { opts.set_cFlag (true); goto opt; }
+#line 1057 "src/conf/parse_opts.cc"
+yy339:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 145 "../src/conf/parse_opts.re"
+ { opts.set_target (opt_t::SKELETON); goto opt; }
+#line 1074 "src/conf/parse_opts.cc"
+yy347:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'g') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 156 "../src/conf/parse_opts.re"
+ { goto opt; }
+#line 1097 "src/conf/parse_opts.cc"
+yy358:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'u') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'b') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 140 "../src/conf/parse_opts.re"
+ { opts.set_rFlag (true); goto opt; }
+#line 1116 "src/conf/parse_opts.cc"
+yy367:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'u') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 151 "../src/conf/parse_opts.re"
+ { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; }
+#line 1131 "src/conf/parse_opts.cc"
+yy374:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '-') goto yy386;
+ goto yy252;
+yy375:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'f') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 141 "../src/conf/parse_opts.re"
+ { opts.set_sFlag (true); goto opt; }
+#line 1158 "src/conf/parse_opts.cc"
+yy386:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'd') goto yy388;
+ if (yych != 'g') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'e') goto yy400;
+ goto yy252;
+yy388:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'b') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'u') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'g') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'f') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 139 "../src/conf/parse_opts.re"
+ { opts.set_iFlag (true); goto opt; }
+#line 1190 "src/conf/parse_opts.cc"
+yy400:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 142 "../src/conf/parse_opts.re"
+ { opts.set_bNoGenerationDate (true); goto opt; }
+#line 1223 "src/conf/parse_opts.cc"
+yy416:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'u') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 154 "../src/conf/parse_opts.re"
+ { goto opt_input; }
+#line 1236 "src/conf/parse_opts.cc"
+yy422:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 129 "../src/conf/parse_opts.re"
+ { usage (); return EXIT_OK; }
+#line 1247 "src/conf/parse_opts.cc"
+yy427:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'x') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'y') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'x') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 137 "../src/conf/parse_opts.re"
+ { opts.set_FFlag (true); goto opt; }
+#line 1272 "src/conf/parse_opts.cc"
+yy439:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'i') goto yy460;
+ if (yych == 'p') goto yy461;
+ goto yy252;
+yy440:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'c') goto yy445;
+ goto yy252;
+yy441:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'b') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 146 "../src/conf/parse_opts.re"
+ { if (!opts.set_encoding (Enc::EBCDIC)) { error_encoding (); return EXIT_FAIL; } goto opt; }
+#line 1290 "src/conf/parse_opts.cc"
+yy445:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'g') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'y') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 153 "../src/conf/parse_opts.re"
+ { goto opt_encoding_policy; }
+#line 1321 "src/conf/parse_opts.cc"
+yy460:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 't') goto yy472;
+ goto yy252;
+yy461:
+ 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;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 155 "../src/conf/parse_opts.re"
+ { goto opt_empty_class; }
+#line 1348 "src/conf/parse_opts.cc"
+yy472:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 135 "../src/conf/parse_opts.re"
+ { opts.set_target (opt_t::DOT); goto opt; }
+#line 1363 "src/conf/parse_opts.cc"
+yy479:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'b') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'u') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'g') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'u') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'u') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 134 "../src/conf/parse_opts.re"
+ { opts.set_dFlag (true); goto opt; }
+#line 1390 "src/conf/parse_opts.cc"
+yy492:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 's') goto yy508;
+ goto yy252;
+yy493:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'm') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'u') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'g') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 138 "../src/conf/parse_opts.re"
+ { opts.set_gFlag (true); goto opt; }
+#line 1425 "src/conf/parse_opts.cc"
+yy508:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 's') goto yy514;
+ if (yych != 'v') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'e') goto yy525;
+ goto yy252;
+yy514:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'v') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 143 "../src/conf/parse_opts.re"
+ { opts.set_bCaseInsensitive (true); goto opt; }
+#line 1463 "src/conf/parse_opts.cc"
+yy525:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'd') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 144 "../src/conf/parse_opts.re"
+ { opts.set_bCaseInverted (true); goto opt; }
+#line 1478 "src/conf/parse_opts.cc"
+yy532:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'v') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy252;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy252;
+ ++YYCURSOR;
+#line 132 "../src/conf/parse_opts.re"
+ { opts.set_bFlag (true); goto opt; }
+#line 1503 "src/conf/parse_opts.cc"
+}
+#line 157 "../src/conf/parse_opts.re"
+
+
+opt_output:
+
+#line 1510 "src/conf/parse_opts.cc"
+{
+ YYCTYPE yych;
+ static const unsigned char yybm[] = {
+ 0, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ };
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= 0x00) goto yy546;
+ if (yych != '-') goto yy548;
+yy546:
+ ++YYCURSOR;
+#line 162 "../src/conf/parse_opts.re"
+ {
+ error ("bad argument to option -o, --output: %s", *argv);
+ return EXIT_FAIL;
+ }
+#line 1557 "src/conf/parse_opts.cc"
+yy548:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ goto yy550;
+yy549:
+ ++YYCURSOR;
+ yych = (YYCTYPE)*YYCURSOR;
+yy550:
+ if (yybm[0+yych] & 128) {
+ goto yy549;
+ }
+ ++YYCURSOR;
+#line 166 "../src/conf/parse_opts.re"
+ { if (!opts.output (*argv)) return EXIT_FAIL; goto opt; }
+#line 1571 "src/conf/parse_opts.cc"
+}
+#line 167 "../src/conf/parse_opts.re"
+
+
+opt_header:
+
+#line 1578 "src/conf/parse_opts.cc"
+{
+ YYCTYPE yych;
+ static const unsigned char yybm[] = {
+ 0, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ };
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= 0x00) goto yy555;
+ if (yych != '-') goto yy557;
+yy555:
+ ++YYCURSOR;
+#line 172 "../src/conf/parse_opts.re"
+ {
+ error ("bad argument to option -t, --type-header: %s", *argv);
+ return EXIT_FAIL;
+ }
+#line 1625 "src/conf/parse_opts.cc"
+yy557:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ goto yy559;
+yy558:
+ ++YYCURSOR;
+ yych = (YYCTYPE)*YYCURSOR;
+yy559:
+ if (yybm[0+yych] & 128) {
+ goto yy558;
+ }
+ ++YYCURSOR;
+#line 176 "../src/conf/parse_opts.re"
+ { opts.set_header_file (*argv); goto opt; }
+#line 1639 "src/conf/parse_opts.cc"
+}
+#line 177 "../src/conf/parse_opts.re"
+
+
+opt_encoding_policy:
+ if (!next (YYCURSOR, argv))
+ {
+ error_arg ("--encoding-policy");
+ return EXIT_FAIL;
+ }
+
+#line 1651 "src/conf/parse_opts.cc"
+{
+ YYCTYPE yych;
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= 'h') {
+ if (yych == 'f') goto yy566;
+ } else {
+ if (yych <= 'i') goto yy567;
+ if (yych == 's') goto yy568;
+ }
+ ++YYCURSOR;
+yy565:
+#line 187 "../src/conf/parse_opts.re"
+ {
+ error ("bad argument to option --encoding-policy (expected: ignore | substitute | fail): %s", *argv);
+ return EXIT_FAIL;
+ }
+#line 1668 "src/conf/parse_opts.cc"
+yy566:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'a') goto yy588;
+ goto yy565;
+yy567:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'g') goto yy581;
+ goto yy565;
+yy568:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych != 'u') goto yy565;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'b') goto yy571;
+yy570:
+ YYCURSOR = YYMARKER;
+ goto yy565;
+yy571:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'u') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy570;
+ ++YYCURSOR;
+#line 192 "../src/conf/parse_opts.re"
+ { opts.set_encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; }
+#line 1705 "src/conf/parse_opts.cc"
+yy581:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy570;
+ ++YYCURSOR;
+#line 191 "../src/conf/parse_opts.re"
+ { opts.set_encoding_policy (Enc::POLICY_IGNORE); goto opt; }
+#line 1720 "src/conf/parse_opts.cc"
+yy588:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy570;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy570;
+ ++YYCURSOR;
+#line 193 "../src/conf/parse_opts.re"
+ { opts.set_encoding_policy (Enc::POLICY_FAIL); goto opt; }
+#line 1731 "src/conf/parse_opts.cc"
+}
+#line 194 "../src/conf/parse_opts.re"
+
+
+opt_input:
+ if (!next (YYCURSOR, argv))
+ {
+ error_arg ("--input");
+ return EXIT_FAIL;
+ }
+
+#line 1743 "src/conf/parse_opts.cc"
+{
+ YYCTYPE yych;
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= 'b') goto yy595;
+ if (yych <= 'c') goto yy597;
+ if (yych <= 'd') goto yy598;
+yy595:
+ ++YYCURSOR;
+yy596:
+#line 204 "../src/conf/parse_opts.re"
+ {
+ error ("bad argument to option --input (expected: default | custom): %s", *argv);
+ return EXIT_FAIL;
+ }
+#line 1758 "src/conf/parse_opts.cc"
+yy597:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'u') goto yy608;
+ goto yy596;
+yy598:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych != 'e') goto yy596;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'f') goto yy601;
+yy600:
+ YYCURSOR = YYMARKER;
+ goto yy596;
+yy601:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'a') goto yy600;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'u') goto yy600;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'l') goto yy600;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy600;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy600;
+ ++YYCURSOR;
+#line 208 "../src/conf/parse_opts.re"
+ { opts.set_input_api (InputAPI::DEFAULT); goto opt; }
+#line 1785 "src/conf/parse_opts.cc"
+yy608:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 's') goto yy600;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy600;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy600;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'm') goto yy600;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy600;
+ ++YYCURSOR;
+#line 209 "../src/conf/parse_opts.re"
+ { opts.set_input_api (InputAPI::CUSTOM); goto opt; }
+#line 1800 "src/conf/parse_opts.cc"
+}
+#line 210 "../src/conf/parse_opts.re"
+
+
+opt_empty_class:
+ if (!next (YYCURSOR, argv))
+ {
+ error_arg ("--empty-class");
+ return EXIT_FAIL;
+ }
+
+#line 1812 "src/conf/parse_opts.cc"
+{
+ YYCTYPE yych;
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych == 'e') goto yy619;
+ if (yych == 'm') goto yy620;
+ ++YYCURSOR;
+yy618:
+#line 220 "../src/conf/parse_opts.re"
+ {
+ error ("bad argument to option --empty-class (expected: match-empty | match-none | error): %s", *argv);
+ return EXIT_FAIL;
+ }
+#line 1825 "src/conf/parse_opts.cc"
+yy619:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == 'r') goto yy640;
+ goto yy618;
+yy620:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych != 'a') goto yy618;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 't') goto yy623;
+yy622:
+ YYCURSOR = YYMARKER;
+ goto yy618;
+yy623:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy622;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'h') goto yy622;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '-') goto yy622;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'e') goto yy627;
+ if (yych == 'n') goto yy628;
+ goto yy622;
+yy627:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'm') goto yy634;
+ goto yy622;
+yy628:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy622;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy622;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy622;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy622;
+ ++YYCURSOR;
+#line 225 "../src/conf/parse_opts.re"
+ { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_NONE); goto opt; }
+#line 1865 "src/conf/parse_opts.cc"
+yy634:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'p') goto yy622;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 't') goto yy622;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'y') goto yy622;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy622;
+ ++YYCURSOR;
+#line 224 "../src/conf/parse_opts.re"
+ { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_EMPTY); goto opt; }
+#line 1878 "src/conf/parse_opts.cc"
+yy640:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy622;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'o') goto yy622;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'r') goto yy622;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych >= 0x01) goto yy622;
+ ++YYCURSOR;
+#line 226 "../src/conf/parse_opts.re"
+ { opts.set_empty_class_policy (EMPTY_CLASS_ERROR); goto opt; }
+#line 1891 "src/conf/parse_opts.cc"
+}
+#line 227 "../src/conf/parse_opts.re"
+
+
+end:
+ if (!opts.source_file)
+ {
+ error ("no source file");
+ return EXIT_FAIL;
+ }
+
+ return OK;
+
+#undef YYCTYPE
+}
+
+} // namespace re2c
--- /dev/null
- /* Generated by re2c 0.14.3 on Tue Nov 10 15:25:44 2015 */
++/* Generated by re2c 0.14.3 on Sat Nov 21 19:46:24 2015 */
+#line 1 "../src/parse/lex.re"
+#include <stdlib.h>
+#include <string.h>
+#include <iostream>
+#include <sstream>
+
+#include "src/ir/dfa/dfa.h"
+#include "src/ir/regexp/regexp_null.h"
+#include "src/globals.h"
+#include "src/parse/extop.h"
+#include "src/parse/parser.h"
+#include "src/parse/scanner.h"
+#include "src/parse/unescape.h"
+#include "y.tab.h"
+#include "src/util/s_to_n32_unsafe.h"
+
+extern YYSTYPE yylval;
+
+#define YYCTYPE unsigned char
+#define YYCURSOR cur
+#define YYLIMIT lim
+#define YYMARKER ptr
+#define YYCTXMARKER ctx
+#define YYFILL(n) { fill (n); }
+
+namespace re2c
+{
+
+// source code is in ASCII: pointers have type 'char *'
+// but re2c makes an implicit assumption that YYCTYPE is unsigned
+// when it generates comparisons
+#line 33 "../src/parse/lex.re"
+
+
+#line 53 "../src/parse/lex.re"
+
+
+Scanner::ParseMode Scanner::echo()
+{
+ bool ignore_eoc = false;
+ int ignore_cnt = 0;
+
+ if (eof && cur == eof) // Catch EOF
+ {
+ return Stop;
+ }
+
+ tok = cur;
+echo:
+
+#line 53 "src/parse/lex.cc"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ static const unsigned char yybm[] = {
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 160, 0, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 160, 128, 0, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 192, 192, 192, 192, 192, 192, 192, 192,
+ 192, 192, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 0, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ };
+
+ if ((YYLIMIT - YYCURSOR) < 16) YYFILL(16);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= '%') {
+ if (yych <= '\t') {
+ if (yych >= 0x01) goto yy4;
+ } else {
+ if (yych <= '\n') goto yy6;
+ if (yych <= '$') goto yy4;
+ goto yy8;
+ }
+ } else {
+ if (yych <= '*') {
+ if (yych <= ')') goto yy4;
+ goto yy9;
+ } else {
+ if (yych == '/') goto yy10;
+ goto yy4;
+ }
+ }
+ ++YYCURSOR;
+#line 196 "../src/parse/lex.re"
+ {
+ if (!ignore_eoc && opts->target == opt_t::CODE)
+ {
+ out.write(tok, tok_len () - 1);
+ // -1 so we don't write out the \0
+ }
+ if(cur == eof)
+ {
+ return Stop;
+ }
+ }
+#line 124 "src/parse/lex.cc"
+yy4:
+ ++YYCURSOR;
+yy5:
+#line 207 "../src/parse/lex.re"
+ {
+ goto echo;
+ }
+#line 132 "src/parse/lex.cc"
+yy6:
+ yyaccept = 0;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 32) {
+ goto yy89;
+ }
+ if (yych == '#') goto yy91;
+yy7:
+#line 183 "../src/parse/lex.re"
+ {
+ if (ignore_eoc)
+ {
+ ignore_cnt++;
+ }
+ else if (opts->target == opt_t::CODE)
+ {
+ out.write(tok, tok_len ());
+ }
+ tok = pos = cur;
+ cline++;
+ goto echo;
+ }
+#line 155 "src/parse/lex.cc"
+yy8:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '{') goto yy32;
+ goto yy5;
+yy9:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '/') goto yy84;
+ goto yy5;
+yy10:
+ yyaccept = 1;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych != '*') goto yy5;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '!') goto yy13;
+yy12:
+ YYCURSOR = YYMARKER;
+ if (yyaccept <= 1) {
+ if (yyaccept == 0) {
+ goto yy7;
+ } else {
+ 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;
+ }
+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 84 "../src/parse/lex.re"
+ {
+ if (opts->rFlag)
+ {
+ opts.reset_mapCodeName ();
+ }
+ else
+ {
+ fatal("found 'rules:re2c' block without -r flag");
+ }
+ tok = cur;
+ return Rules;
+ }
+#line 252 "src/parse/lex.cc"
+yy31:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy12;
+yy32:
+ ++YYCURSOR;
+#line 69 "../src/parse/lex.re"
+ {
+ if (opts->rFlag)
+ {
+ fatal("found standard 're2c' block while using -r flag");
+ }
+ if (opts->target == opt_t::CODE)
+ {
+ const size_t lexeme_len = cur[-1] == '{'
+ ? sizeof ("%{") - 1
+ : sizeof ("/*!re2c") - 1;
+ out.write(tok, tok_len () - lexeme_len);
+ }
+ tok = cur;
+ return Parse;
+ }
+#line 274 "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 96 "../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.write(tok, tok_len () - lexeme_len);
+ }
+ tok = cur;
+ return Reuse;
+ }
+#line 304 "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 110 "../src/parse/lex.re"
+ {
+ if (opts->target != opt_t::DOT)
+ {
+ out.insert_yymaxfill ();
+ }
+ tok = pos = cur;
+ ignore_eoc = true;
+ goto echo;
+ }
+#line 329 "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 119 "../src/parse/lex.re"
+ {
+ tok = pos = cur;
+ out.insert_state_goto (opts->topIndent);
+ ignore_eoc = true;
+ goto echo;
+ }
+#line 361 "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 125 "../src/parse/lex.re"
+ {
+ tok = pos = cur;
+ ignore_eoc = true;
+ goto echo;
+ }
+#line 388 "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 130 "../src/parse/lex.re"
+ {
+ tok = pos = cur;
+ ignore_eoc = true;
+ if (opts->target != opt_t::DOT)
+ {
+ out.insert_line_info ();
+ out << "\n";
+ out.insert_types ();
+ out << "\n";
+ out.write_line_info (cline, get_fname ().c_str ());
+ }
+ goto echo;
+ }
+#line 421 "src/parse/lex.cc"
+yy84:
+ yyaccept = 2;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == '\n') goto yy87;
+ if (yych == '\r') goto yy86;
+yy85:
+#line 161 "../src/parse/lex.re"
+ {
+ if (ignore_eoc)
+ {
+ if (ignore_cnt)
+ {
+ out << "\n";
+ out.write_line_info (cline, get_fname ().c_str ());
+ }
+ ignore_eoc = false;
+ ignore_cnt = 0;
+ }
+ else if (opts->target == opt_t::CODE)
+ {
+ out.write(tok, tok_len ());
+ }
+ tok = pos = cur;
+ goto echo;
+ }
+#line 447 "src/parse/lex.cc"
+yy86:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '\n') goto yy12;
+yy87:
+ ++YYCURSOR;
+#line 143 "../src/parse/lex.re"
+ {
+ cline++;
+ if (ignore_eoc)
+ {
+ if (ignore_cnt)
+ {
+ out.write_line_info (cline, get_fname ().c_str ());
+ }
+ ignore_eoc = false;
+ ignore_cnt = 0;
+ }
+ else if (opts->target == opt_t::CODE)
+ {
+ out.write(tok, tok_len ());
+ }
+ tok = pos = cur;
+ goto echo;
+ }
+#line 472 "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;
+ }
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy12;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy12;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy12;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '0') goto yy98;
+ if (yych <= '9') goto yy12;
+ goto yy98;
+yy97:
+ YYCTXMARKER = YYCURSOR + 1;
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+yy98:
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy97;
+ goto yy12;
+ } else {
+ if (yych <= ' ') goto yy97;
+ if (yych <= '0') goto yy12;
+ if (yych >= ':') goto yy12;
+ }
+yy99:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yybm[0+yych] & 64) {
+ goto yy99;
+ }
+ if (yych <= '\f') {
+ if (yych <= 0x08) goto yy12;
+ if (yych <= '\t') goto yy101;
+ if (yych <= '\n') goto yy103;
+ goto yy12;
+ } else {
+ if (yych <= '\r') goto yy105;
+ if (yych != ' ') goto yy12;
+ }
+yy101:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy101;
+ goto yy12;
+ } else {
+ if (yych <= ' ') goto yy101;
+ if (yych == '"') goto yy106;
+ goto yy12;
+ }
+yy103:
+ ++YYCURSOR;
+ YYCURSOR = YYCTXMARKER;
+#line 179 "../src/parse/lex.re"
+ {
+ set_sourceline ();
+ goto echo;
+ }
+#line 552 "src/parse/lex.cc"
+yy105:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '\n') goto yy103;
+ goto yy12;
+yy106:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy106;
+ }
+ if (yych <= '\n') goto yy12;
+ if (yych <= '"') goto yy109;
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych == '\n') goto yy12;
+ goto yy106;
+yy109:
+ ++YYCURSOR;
+ if ((yych = (YYCTYPE)*YYCURSOR) == '\n') goto yy103;
+ if (yych == '\r') goto yy105;
+ goto yy12;
+}
+#line 210 "../src/parse/lex.re"
+
+}
+
+int Scanner::scan()
+{
+ uint32_t depth;
+
+scan:
+ tchar = cur - pos;
+ tline = cline;
+ tok = cur;
+ switch (lexer_state)
+ {
+ case LEX_NORMAL: goto start;
+ case LEX_FLEX_NAME: goto flex_name;
+ }
+
+start:
+
+#line 597 "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, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 192, 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,
+ 128, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 128, 0, 128, 128, 160,
+ 128, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ };
+ if ((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= '.') {
+ if (yych <= '"') {
+ if (yych <= '\f') {
+ if (yych <= 0x08) goto yy112;
+ if (yych <= '\t') goto yy114;
+ if (yych <= '\n') goto yy116;
+ } else {
+ if (yych <= 0x1F) {
+ if (yych <= '\r') goto yy118;
+ } else {
+ if (yych <= ' ') goto yy114;
+ if (yych >= '"') goto yy119;
+ }
+ }
+ } else {
+ if (yych <= ')') {
+ if (yych <= '%') {
+ if (yych >= '%') goto yy121;
+ } else {
+ if (yych <= '&') goto yy112;
+ if (yych <= '\'') goto yy122;
+ goto yy124;
+ }
+ } else {
+ if (yych <= '+') {
+ if (yych <= '*') goto yy126;
+ goto yy128;
+ } else {
+ if (yych <= ',') goto yy124;
+ if (yych >= '.') goto yy130;
+ }
+ }
+ }
+ } 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;
+ }
+ } else {
+ if (yych <= '?') {
+ if (yych <= '>') goto yy124;
+ goto yy128;
+ } else {
+ if (yych <= '@') goto yy112;
+ if (yych <= 'Z') goto yy133;
+ goto yy136;
+ }
+ }
+ } else {
+ if (yych <= 'q') {
+ if (yych <= '^') {
+ if (yych <= '\\') goto yy124;
+ } else {
+ if (yych != '`') goto yy133;
+ }
+ } else {
+ if (yych <= 'z') {
+ if (yych <= 'r') goto yy138;
+ goto yy133;
+ } else {
+ if (yych <= '{') goto yy139;
+ if (yych <= '|') goto yy124;
+ }
+ }
+ }
+ }
+yy112:
+ ++YYCURSOR;
+yy113:
+#line 382 "../src/parse/lex.re"
+ {
+ fatalf("unexpected character: '%c'", *tok);
+ goto scan;
+ }
+#line 717 "src/parse/lex.cc"
+yy114:
+ ++YYCURSOR;
+ yych = (YYCTYPE)*YYCURSOR;
+ goto yy220;
+yy115:
+#line 366 "../src/parse/lex.re"
+ {
+ goto scan;
+ }
+#line 727 "src/parse/lex.cc"
+yy116:
+ yyaccept = 0;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy198;
+ } else {
+ if (yych <= ' ') goto yy198;
+ if (yych == '#') goto yy200;
+ }
+yy117:
+#line 375 "../src/parse/lex.re"
+ {
+ if (cur == eof) return 0;
+ pos = cur;
+ cline++;
+ goto scan;
+ }
+#line 745 "src/parse/lex.cc"
+yy118:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '\n') goto yy197;
+ goto yy113;
+yy119:
+ ++YYCURSOR;
+#line 259 "../src/parse/lex.re"
+ { yylval.regexp = lex_str('"', opts->bCaseInsensitive || opts->bCaseInverted); return REGEXP; }
+#line 754 "src/parse/lex.cc"
+yy121:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '}') goto yy195;
+ goto yy113;
+yy122:
+ ++YYCURSOR;
+#line 258 "../src/parse/lex.re"
+ { yylval.regexp = lex_str('\'', opts->bCaseInsensitive || !opts->bCaseInverted); return REGEXP; }
+#line 763 "src/parse/lex.cc"
+yy124:
+ ++YYCURSOR;
+yy125:
+#line 269 "../src/parse/lex.re"
+ {
+ return *tok;
+ }
+#line 771 "src/parse/lex.cc"
+yy126:
+ ++YYCURSOR;
+ if ((yych = (YYCTYPE)*YYCURSOR) == '/') goto yy195;
+#line 273 "../src/parse/lex.re"
+ {
+ yylval.op = *tok;
+ return STAR;
+ }
+#line 780 "src/parse/lex.cc"
+yy128:
+ ++YYCURSOR;
+#line 277 "../src/parse/lex.re"
+ {
+ yylval.op = *tok;
+ return CLOSE;
+ }
+#line 788 "src/parse/lex.cc"
+yy130:
+ ++YYCURSOR;
+#line 361 "../src/parse/lex.re"
+ {
+ yylval.regexp = mkDot();
+ return REGEXP;
+ }
+#line 796 "src/parse/lex.cc"
+yy132:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '*') goto yy191;
+ if (yych == '/') goto yy193;
+ goto yy125;
+yy133:
+ YYCTXMARKER = YYCURSOR + 1;
+ yych = (YYCTYPE)*++YYCURSOR;
+ goto yy165;
+yy134:
+ YYCTXMARKER = YYCURSOR + 1;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '=') goto yy187;
+ goto yy113;
+yy135:
+ yyaccept = 1;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == '!') goto yy178;
+ if (yych == '>') goto yy180;
+ goto yy125;
+yy136:
+ ++YYCURSOR;
+ if ((yych = (YYCTYPE)*YYCURSOR) == '^') goto yy176;
+#line 260 "../src/parse/lex.re"
+ { yylval.regexp = lex_cls(false); return REGEXP; }
+#line 822 "src/parse/lex.cc"
+yy138:
+ YYCTXMARKER = YYCURSOR + 1;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == 'e') goto yy166;
+ goto yy165;
+yy139:
+ yyaccept = 2;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 16) {
+ goto yy141;
+ }
+ if (yych <= 'Z') {
+ if (yych == ',') goto yy146;
+ if (yych >= 'A') goto yy144;
+ } else {
+ if (yych <= '_') {
+ if (yych >= '_') goto yy144;
+ } else {
+ if (yych <= '`') goto yy140;
+ if (yych <= 'z') goto yy144;
+ }
+ }
+yy140:
+#line 229 "../src/parse/lex.re"
+ {
+ depth = 1;
+ goto code;
+ }
+#line 851 "src/parse/lex.cc"
+yy141:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ 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;
+ }
+ } else {
+ if (yych <= 'z') {
+ if (yych != '`') goto yy144;
+ } else {
+ if (yych == '}') goto yy150;
+ }
+ }
+yy143:
+ YYCURSOR = YYMARKER;
+ if (yyaccept <= 1) {
+ if (yyaccept == 0) {
+ goto yy117;
+ } else {
+ goto yy125;
+ }
+ } else {
+ if (yyaccept == 2) {
+ goto yy140;
+ } else {
+ goto yy147;
+ }
+ }
+yy144:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy144;
+ }
+ if (yych == '}') goto yy148;
+ goto yy143;
+yy146:
+ ++YYCURSOR;
+yy147:
+#line 313 "../src/parse/lex.re"
+ {
+ fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers");
+ }
+#line 904 "src/parse/lex.cc"
+yy148:
+ ++YYCURSOR;
+#line 317 "../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 ID;
+ }
+#line 915 "src/parse/lex.cc"
+yy150:
+ ++YYCURSOR;
+#line 282 "../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 CLOSESIZE;
+ }
+#line 927 "src/parse/lex.cc"
+yy152:
+ yyaccept = 3;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy147;
+ if (yych <= '9') goto yy155;
+ if (yych != '}') goto yy147;
+ ++YYCURSOR;
+#line 304 "../src/parse/lex.re"
+ {
+ if (!s_to_u32_unsafe (tok + 1, cur - 2, yylval.extop.min))
+ {
+ fatal ("repetition lower bound overflow");
+ }
+ yylval.extop.max = UINT32_MAX;
+ return CLOSESIZE;
+ }
+#line 944 "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;
+ ++YYCURSOR;
+#line 291 "../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 CLOSESIZE;
+ }
+#line 966 "src/parse/lex.cc"
+yy159:
+ ++YYCURSOR;
+ YYCURSOR = YYCTXMARKER;
+#line 345 "../src/parse/lex.re"
+ {
+ if (!opts->FFlag) {
+ yylval.str = new std::string (tok, tok_len());
+ return ID;
+ } else {
+ RegExp *r = NULL;
+ const bool casing = opts->bCaseInsensitive || opts->bCaseInverted;
+ for (char *s = tok; s < cur; ++s) {
+ const uint32_t c = static_cast<uint8_t>(*s);
+ r = doCat(r, casing ? ichr(c) : schr(c));
+ }
+ yylval.regexp = r ? r : new NullOp;
+ return REGEXP;
+ }
+ }
+#line 986 "src/parse/lex.cc"
+yy161:
+ yych = (YYCTYPE)*++YYCURSOR;
+ goto yy174;
+yy162:
+ ++YYCURSOR;
+yy163:
+ YYCURSOR = YYCTXMARKER;
+#line 340 "../src/parse/lex.re"
+ {
+ yylval.str = new std::string (tok, tok_len ());
+ return ID;
+ }
+#line 999 "src/parse/lex.cc"
+yy164:
+ YYCTXMARKER = YYCURSOR + 1;
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = (YYCTYPE)*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;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '<') goto yy159;
+ if (yych <= '>') goto yy162;
+ if (yych <= '@') goto yy159;
+ goto yy164;
+ } else {
+ if (yych <= '_') {
+ if (yych <= '^') goto yy159;
+ goto yy164;
+ } else {
+ if (yych <= '`') goto yy159;
+ if (yych <= 'z') goto yy164;
+ goto yy159;
+ }
+ }
+ }
+yy166:
+ YYCTXMARKER = YYCURSOR + 1;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '2') goto yy165;
+ YYCTXMARKER = YYCURSOR + 1;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'c') goto yy165;
+ YYCTXMARKER = YYCURSOR + 1;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != ':') goto yy165;
+ ++YYCURSOR;
+#line 325 "../src/parse/lex.re"
+ { lex_conf (); return CONF; }
+#line 1046 "src/parse/lex.cc"
+yy171:
+ ++YYCURSOR;
+ YYCURSOR = YYCTXMARKER;
+#line 327 "../src/parse/lex.re"
+ {
+ yylval.str = new std::string (tok, tok_len ());
+ if (opts->FFlag)
+ {
+ lexer_state = LEX_FLEX_NAME;
+ return FID;
+ }
+ else
+ {
+ return ID;
+ }
+ }
+#line 1063 "src/parse/lex.cc"
+yy173:
+ ++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 261 "../src/parse/lex.re"
+ { yylval.regexp = lex_cls(true); return REGEXP; }
+#line 1082 "src/parse/lex.cc"
+yy178:
+ ++YYCURSOR;
+#line 266 "../src/parse/lex.re"
+ {
+ return SETUP;
+ }
+#line 1089 "src/parse/lex.cc"
+yy180:
+ YYCTXMARKER = YYCURSOR + 1;
+ yych = (YYCTYPE)*++YYCURSOR;
+ goto yy182;
+yy181:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = (YYCTYPE)*YYCURSOR;
+yy182:
+ if (yych <= '9') {
+ if (yych <= '\t') {
+ if (yych <= 0x08) goto yy143;
+ goto yy181;
+ } else {
+ if (yych == ' ') goto yy181;
+ goto yy143;
+ }
+ } else {
+ if (yych <= '=') {
+ if (yych <= ':') goto yy186;
+ if (yych <= '<') goto yy143;
+ goto yy185;
+ } else {
+ if (yych != '{') goto yy143;
+ }
+ }
+yy183:
+ ++YYCURSOR;
+ YYCURSOR = YYCTXMARKER;
+#line 263 "../src/parse/lex.re"
+ {
+ return NOCOND;
+ }
+#line 1123 "src/parse/lex.cc"
+yy185:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '>') goto yy183;
+ goto yy143;
+yy186:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '=') goto yy183;
+ goto yy143;
+yy187:
+ ++YYCURSOR;
+ if ((yych = (YYCTYPE)*YYCURSOR) == '>') goto yy189;
+#line 238 "../src/parse/lex.re"
+ {
+ tok += 2; /* skip ":=" */
+ depth = 0;
+ goto code;
+ }
+#line 1141 "src/parse/lex.cc"
+yy189:
+ ++YYCURSOR;
+ YYCURSOR = YYCTXMARKER;
+#line 234 "../src/parse/lex.re"
+ {
+ return *tok;
+ }
+#line 1149 "src/parse/lex.cc"
+yy191:
+ ++YYCURSOR;
+#line 247 "../src/parse/lex.re"
+ {
+ depth = 1;
+ goto comment;
+ }
+#line 1157 "src/parse/lex.cc"
+yy193:
+ ++YYCURSOR;
+#line 244 "../src/parse/lex.re"
+ {
+ goto nextLine;
+ }
+#line 1164 "src/parse/lex.cc"
+yy195:
+ ++YYCURSOR;
+#line 253 "../src/parse/lex.re"
+ {
+ tok = cur;
+ return 0;
+ }
+#line 1172 "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:
+ ++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;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy143;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '0') goto yy207;
+ if (yych <= '9') goto yy143;
+ goto yy207;
+yy206:
+ YYCTXMARKER = YYCURSOR + 1;
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+yy207:
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy206;
+ goto yy143;
+ } else {
+ if (yych <= ' ') goto yy206;
+ if (yych <= '0') goto yy143;
+ if (yych >= ':') goto yy143;
+ }
+yy208:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= '\r') {
+ if (yych <= '\t') {
+ if (yych <= 0x08) goto yy143;
+ } else {
+ if (yych <= '\n') goto yy212;
+ if (yych <= '\f') goto yy143;
+ goto yy214;
+ }
+ } else {
+ if (yych <= ' ') {
+ if (yych <= 0x1F) goto yy143;
+ } else {
+ if (yych <= '/') goto yy143;
+ if (yych <= '9') goto yy208;
+ goto yy143;
+ }
+ }
+yy210:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy210;
+ goto yy143;
+ } else {
+ if (yych <= ' ') goto yy210;
+ if (yych == '"') goto yy215;
+ goto yy143;
+ }
+yy212:
+ ++YYCURSOR;
+ YYCURSOR = YYCTXMARKER;
+#line 370 "../src/parse/lex.re"
+ {
+ set_sourceline ();
+ goto scan;
+ }
+#line 1270 "src/parse/lex.cc"
+yy214:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '\n') goto yy212;
+ goto yy143;
+yy215:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy215;
+ }
+ 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:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '\n') goto yy212;
+ if (yych == '\r') goto yy214;
+ goto yy143;
+yy219:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+yy220:
+ if (yych == '\t') goto yy219;
+ if (yych == ' ') goto yy219;
+ goto yy115;
+}
+#line 386 "../src/parse/lex.re"
+
+
+flex_name:
+
+#line 1308 "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;
+ ++YYCURSOR;
+yy224:
+#line 397 "../src/parse/lex.re"
+ {
+ YYCURSOR = tok;
+ goto start;
+ }
+#line 1322 "src/parse/lex.cc"
+yy225:
+ ++YYCURSOR;
+yy226:
+#line 391 "../src/parse/lex.re"
+ {
+ YYCURSOR = tok;
+ lexer_state = LEX_NORMAL;
+ return FID_END;
+ }
+#line 1332 "src/parse/lex.cc"
+yy227:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '\n') goto yy224;
+ ++YYCURSOR;
+ yych = (YYCTYPE)*YYCURSOR;
+ goto yy226;
+}
+#line 401 "../src/parse/lex.re"
+
+
+code:
+
+#line 1345 "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,
+ };
+ 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;
+ } else {
+ if (yych == '"') goto yy237;
+ goto yy233;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych <= '\'') goto yy238;
+ if (yych <= 'z') goto yy233;
+ goto yy239;
+ } else {
+ if (yych == '}') goto yy241;
+ goto yy233;
+ }
+ }
+yy231:
+ ++YYCURSOR;
+#line 464 "../src/parse/lex.re"
+ {
+ if (cur == eof)
+ {
+ if (depth)
+ {
+ fatal("missing '}'");
+ }
+ return 0;
+ }
+ goto code;
+ }
+#line 1418 "src/parse/lex.cc"
+yy233:
+ ++YYCURSOR;
+yy234:
+#line 478 "../src/parse/lex.re"
+ {
+ goto code;
+ }
+#line 1426 "src/parse/lex.cc"
+yy235:
+ YYCTXMARKER = YYCURSOR + 1;
+ yyaccept = 0;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= '\r') {
+ if (yych <= '\t') {
+ if (yych >= '\t') goto yy252;
+ } else {
+ if (yych <= '\n') goto yy254;
+ if (yych >= '\r') goto yy254;
+ }
+ } else {
+ if (yych <= ' ') {
+ if (yych >= ' ') goto yy252;
+ } else {
+ if (yych == '#') goto yy255;
+ }
+ }
+yy236:
+#line 445 "../src/parse/lex.re"
+ {
+ if (depth == 0)
+ {
+ tok += strspn(tok, " \t\r\n");
+ while (cur > tok && strchr(" \t\r\n", cur[-1]))
+ {
+ --cur;
+ }
+ yylval.code = new Code (tok, tok_len (), get_fname (), tline);
+ return CODE;
+ }
+ else if (cur == eof)
+ {
+ fatal("missing '}'");
+ }
+ pos = cur;
+ cline++;
+ goto code;
+ }
+#line 1466 "src/parse/lex.cc"
+yy237:
+ yyaccept = 1;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == '\n') goto yy234;
+ goto yy250;
+yy238:
+ yyaccept = 1;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == '\n') goto yy234;
+ goto yy244;
+yy239:
+ ++YYCURSOR;
+#line 417 "../src/parse/lex.re"
+ {
+ if (depth == 0)
+ {
+ fatal("Curly braces are not allowed after ':='");
+ }
+ else
+ {
+ ++depth;
+ }
+ goto code;
+ }
+#line 1491 "src/parse/lex.cc"
+yy241:
+ ++YYCURSOR;
+#line 405 "../src/parse/lex.re"
+ {
+ if (depth == 0)
+ {
+ fatal("Curly braces are not allowed after ':='");
+ }
+ else if (--depth == 0)
+ {
+ yylval.code = new Code (tok, tok_len (), get_fname (), tline);
+ return CODE;
+ }
+ goto code;
+ }
+#line 1507 "src/parse/lex.cc"
+yy243:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+yy244:
+ if (yybm[0+yych] & 16) {
+ goto yy243;
+ }
+ if (yych <= '\n') goto yy245;
+ if (yych <= '\'') goto yy247;
+ goto yy246;
+yy245:
+ YYCURSOR = YYMARKER;
+ if (yyaccept <= 1) {
+ if (yyaccept == 0) {
+ goto yy236;
+ } else {
+ goto yy234;
+ }
+ } else {
+ goto yy253;
+ }
+yy246:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych == '\n') goto yy245;
+ goto yy243;
+yy247:
+ ++YYCURSOR;
+#line 475 "../src/parse/lex.re"
+ {
+ goto code;
+ }
+#line 1542 "src/parse/lex.cc"
+yy249:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+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;
+ }
+yy253:
+ YYCURSOR = YYCTXMARKER;
+#line 432 "../src/parse/lex.re"
+ {
+ if (depth == 0)
+ {
+ goto code;
+ }
+ else if (cur == eof)
+ {
+ fatal("missing '}'");
+ }
+ pos = cur;
+ cline++;
+ goto code;
+ }
+#line 1583 "src/parse/lex.cc"
+yy254:
+ yych = (YYCTYPE)*++YYCURSOR;
+ goto yy253;
+yy255:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yybm[0+yych] & 64) {
+ goto yy255;
+ }
+ if (yych != 'l') goto yy245;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy245;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy245;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy245;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '0') goto yy262;
+ if (yych <= '9') goto yy245;
+ goto yy262;
+yy261:
+ YYCTXMARKER = YYCURSOR + 1;
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+yy262:
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy261;
+ goto yy245;
+ } else {
+ if (yych <= ' ') goto yy261;
+ if (yych <= '0') goto yy245;
+ if (yych >= ':') goto yy245;
+ }
+yy263:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy263;
+ }
+ if (yych <= '\f') {
+ if (yych <= 0x08) goto yy245;
+ if (yych <= '\t') goto yy265;
+ if (yych <= '\n') goto yy267;
+ goto yy245;
+ } else {
+ if (yych <= '\r') goto yy269;
+ if (yych != ' ') goto yy245;
+ }
+yy265:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy265;
+ goto yy245;
+ } else {
+ if (yych <= ' ') goto yy265;
+ if (yych == '"') goto yy270;
+ goto yy245;
+ }
+yy267:
+ ++YYCURSOR;
+ YYCURSOR = YYCTXMARKER;
+#line 428 "../src/parse/lex.re"
+ {
+ set_sourceline ();
+ goto code;
+ }
+#line 1655 "src/parse/lex.cc"
+yy269:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '\n') goto yy267;
+ goto yy245;
+yy270:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= '!') {
+ if (yych == '\n') goto yy245;
+ goto yy270;
+ } else {
+ if (yych <= '"') goto yy273;
+ if (yych != '\\') goto yy270;
+ }
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych == '\n') goto yy245;
+ goto yy270;
+yy273:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '\n') goto yy267;
+ if (yych == '\r') goto yy269;
+ goto yy245;
+yy274:
+ ++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;
+ }
+}
+#line 481 "../src/parse/lex.re"
+
+
+comment:
+
+#line 1699 "src/parse/lex.cc"
+{
+ YYCTYPE yych;
+ static const unsigned char yybm[] = {
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 160, 0, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 160, 128, 0, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 192, 192, 192, 192, 192, 192, 192, 192,
+ 192, 192, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 0, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ };
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= ')') {
+ if (yych == '\n') goto yy280;
+ } else {
+ if (yych <= '*') goto yy282;
+ if (yych == '/') goto yy283;
+ }
+ ++YYCURSOR;
+yy279:
+#line 513 "../src/parse/lex.re"
+ {
+ if (cur == eof)
+ {
+ return 0;
+ }
+ goto comment;
+ }
+#line 1754 "src/parse/lex.cc"
+yy280:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yybm[0+yych] & 32) {
+ goto yy288;
+ }
+ if (yych == '#') goto yy291;
+yy281:
+#line 504 "../src/parse/lex.re"
+ {
+ if (cur == eof)
+ {
+ return 0;
+ }
+ tok = pos = cur;
+ cline++;
+ goto comment;
+ }
+#line 1772 "src/parse/lex.cc"
+yy282:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '/') goto yy286;
+ goto yy279;
+yy283:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != '*') goto yy279;
+ ++YYCURSOR;
+#line 495 "../src/parse/lex.re"
+ {
+ ++depth;
+ fatal("ambiguous /* found");
+ goto comment;
+ }
+#line 1787 "src/parse/lex.cc"
+yy286:
+ ++YYCURSOR;
+#line 485 "../src/parse/lex.re"
+ {
+ if (--depth == 0)
+ {
+ goto scan;
+ }
+ else
+ {
+ goto comment;
+ }
+ }
+#line 1801 "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:
+ ++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;
+ }
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'i') goto yy290;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'n') goto yy290;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != 'e') goto yy290;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '0') goto yy298;
+ if (yych <= '9') goto yy290;
+ goto yy298;
+yy297:
+ YYCTXMARKER = YYCURSOR + 1;
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+yy298:
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy297;
+ goto yy290;
+ } else {
+ if (yych <= ' ') goto yy297;
+ if (yych <= '0') goto yy290;
+ if (yych >= ':') goto yy290;
+ }
+yy299:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yybm[0+yych] & 64) {
+ goto yy299;
+ }
+ if (yych <= '\f') {
+ if (yych <= 0x08) goto yy290;
+ if (yych <= '\t') goto yy301;
+ if (yych <= '\n') goto yy303;
+ goto yy290;
+ } else {
+ if (yych <= '\r') goto yy305;
+ if (yych != ' ') goto yy290;
+ }
+yy301:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy301;
+ goto yy290;
+ } else {
+ if (yych <= ' ') goto yy301;
+ if (yych == '"') goto yy306;
+ goto yy290;
+ }
+yy303:
+ ++YYCURSOR;
+ YYCURSOR = YYCTXMARKER;
+#line 500 "../src/parse/lex.re"
+ {
+ set_sourceline ();
+ goto comment;
+ }
+#line 1884 "src/parse/lex.cc"
+yy305:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych == '\n') goto yy303;
+ goto yy290;
+yy306:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy306;
+ }
+ if (yych <= '\n') goto yy290;
+ if (yych <= '"') goto yy309;
+ ++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;
+}
+#line 520 "../src/parse/lex.re"
+
+
+nextLine:
+
+#line 1914 "src/parse/lex.cc"
+{
+ YYCTYPE yych;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych == '\n') goto yy314;
+ ++YYCURSOR;
+#line 531 "../src/parse/lex.re"
+ { if(cur == eof) {
+ return 0;
+ }
+ goto nextLine;
+ }
+#line 1927 "src/parse/lex.cc"
+yy314:
+ ++YYCURSOR;
+#line 524 "../src/parse/lex.re"
+ { if(cur == eof) {
+ return 0;
+ }
+ tok = pos = cur;
+ cline++;
+ goto scan;
+ }
+#line 1938 "src/parse/lex.cc"
+}
+#line 536 "../src/parse/lex.re"
+
+}
+
+static void escape (std::string & dest, const std::string & src)
+{
+ dest = src;
+ size_t l = dest.length();
+ for (size_t p = 0; p < l; ++p)
+ {
+ if (dest[p] == '\\')
+ {
+ dest.insert(++p, "\\");
+ ++l;
+ }
+ }
+}
+
+RegExp *Scanner::lex_cls(bool neg)
+{
+ Range *r = NULL, *s;
+ uint32_t u, l;
+fst:
+
+#line 1964 "src/parse/lex.cc"
+{
+ YYCTYPE yych;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych == ']') goto yy319;
+#line 560 "../src/parse/lex.re"
+ { l = lex_cls_chr(); goto snd; }
+#line 1972 "src/parse/lex.cc"
+yy319:
+ ++YYCURSOR;
+#line 559 "../src/parse/lex.re"
+ { goto end; }
+#line 1977 "src/parse/lex.cc"
+}
+#line 561 "../src/parse/lex.re"
+
+snd:
+
+#line 1983 "src/parse/lex.cc"
+{
+ YYCTYPE yych;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = (YYCTYPE)*(YYMARKER = YYCURSOR);
+ if (yych == '-') goto yy324;
+yy323:
+#line 564 "../src/parse/lex.re"
+ { u = l; goto add; }
+#line 1992 "src/parse/lex.cc"
+yy324:
+ YYCTXMARKER = YYCURSOR + 1;
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych != ']') goto yy326;
+ YYCURSOR = YYMARKER;
+ goto yy323;
+yy326:
+ ++YYCURSOR;
+ YYCURSOR = YYCTXMARKER;
+#line 565 "../src/parse/lex.re"
+ {
+ u = lex_cls_chr();
+ if (l > u) {
+ warn.swapped_range(get_line(), l, u);
+ std::swap(l, u);
+ }
+ goto add;
+ }
+#line 2011 "src/parse/lex.cc"
+}
+#line 573 "../src/parse/lex.re"
+
+add:
+ if (!(s = opts->encoding.encodeRange(l, u))) {
+ fatalf ("Bad code point range: '0x%X - 0x%X'", l, u);
+ }
+ r = Range::add(r, s);
+ goto fst;
+end:
+ if (neg) {
+ r = Range::sub(opts->encoding.fullRange(), r);
+ }
+ return cls(r);
+}
+
+uint32_t Scanner::lex_cls_chr()
+{
+ tok = cur;
+
+#line 2032 "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;
+ ++YYCURSOR;
+#line 596 "../src/parse/lex.re"
+ { return static_cast<uint8_t>(tok[0]); }
+#line 2043 "src/parse/lex.cc"
+yy332:
+ ++YYCURSOR;
+#line 591 "../src/parse/lex.re"
+ { fatal ((tok - pos) - tchar, "syntax error"); }
+#line 2048 "src/parse/lex.cc"
+yy334:
+ ++YYCURSOR;
+ if ((yych = (YYCTYPE)*YYCURSOR) <= '`') {
+ if (yych <= '7') {
+ if (yych <= ',') {
+ if (yych != '\n') goto yy336;
+ } else {
+ if (yych <= '-') goto yy338;
+ if (yych <= '/') goto yy336;
+ if (yych <= '3') goto yy340;
+ goto yy342;
+ }
+ } else {
+ if (yych <= 'X') {
+ if (yych == 'U') goto yy343;
+ if (yych <= 'W') goto yy336;
+ goto yy345;
+ } else {
+ if (yych <= '[') goto yy336;
+ if (yych <= '\\') goto yy346;
+ if (yych <= ']') goto yy348;
+ goto yy336;
+ }
+ }
+ } else {
+ if (yych <= 'q') {
+ if (yych <= 'e') {
+ if (yych <= 'a') goto yy350;
+ if (yych <= 'b') goto yy352;
+ goto yy336;
+ } else {
+ if (yych <= 'f') goto yy354;
+ if (yych == 'n') goto yy356;
+ goto yy336;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 'r') goto yy358;
+ if (yych <= 's') goto yy336;
+ if (yych <= 't') goto yy360;
+ goto yy345;
+ } else {
+ if (yych <= 'v') goto yy362;
+ if (yych == 'x') goto yy364;
+ goto yy336;
+ }
+ }
+ }
+#line 594 "../src/parse/lex.re"
+ { fatal ((tok - pos) - tchar, "syntax error in escape sequence"); }
+#line 2099 "src/parse/lex.cc"
+yy336:
+ ++YYCURSOR;
+#line 609 "../src/parse/lex.re"
+ {
+ warn.useless_escape(tline, tok - pos, tok[1]);
+ return static_cast<uint8_t>(tok[1]);
+ }
+#line 2107 "src/parse/lex.cc"
+yy338:
+ ++YYCURSOR;
+#line 607 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('-'); }
+#line 2112 "src/parse/lex.cc"
+yy340:
+ yyaccept = 0;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy341;
+ if (yych <= '7') goto yy379;
+yy341:
+#line 593 "../src/parse/lex.re"
+ { fatal ((tok - pos) - tchar, "syntax error in octal escape sequence"); }
+#line 2121 "src/parse/lex.cc"
+yy342:
+ yych = (YYCTYPE)*++YYCURSOR;
+ goto yy341;
+yy343:
+ yyaccept = 1;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych <= '/') goto yy344;
+ if (yych <= '9') goto yy372;
+ } else {
+ if (yych <= 'F') goto yy372;
+ if (yych <= '`') goto yy344;
+ if (yych <= 'f') goto yy372;
+ }
+yy344:
+#line 592 "../src/parse/lex.re"
+ { fatal ((tok - pos) - tchar, "syntax error in hexadecimal escape sequence"); }
+#line 2139 "src/parse/lex.cc"
+yy345:
+ yyaccept = 1;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych <= '/') goto yy344;
+ if (yych <= '9') goto yy369;
+ goto yy344;
+ } else {
+ if (yych <= 'F') goto yy369;
+ if (yych <= '`') goto yy344;
+ if (yych <= 'f') goto yy369;
+ goto yy344;
+ }
+yy346:
+ ++YYCURSOR;
+#line 606 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\\'); }
+#line 2157 "src/parse/lex.cc"
+yy348:
+ ++YYCURSOR;
+#line 608 "../src/parse/lex.re"
+ { return static_cast<uint8_t>(']'); }
+#line 2162 "src/parse/lex.cc"
+yy350:
+ ++YYCURSOR;
+#line 599 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\a'); }
+#line 2167 "src/parse/lex.cc"
+yy352:
+ ++YYCURSOR;
+#line 600 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\b'); }
+#line 2172 "src/parse/lex.cc"
+yy354:
+ ++YYCURSOR;
+#line 601 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\f'); }
+#line 2177 "src/parse/lex.cc"
+yy356:
+ ++YYCURSOR;
+#line 602 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\n'); }
+#line 2182 "src/parse/lex.cc"
+yy358:
+ ++YYCURSOR;
+#line 603 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\r'); }
+#line 2187 "src/parse/lex.cc"
+yy360:
+ ++YYCURSOR;
+#line 604 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\t'); }
+#line 2192 "src/parse/lex.cc"
+yy362:
+ ++YYCURSOR;
+#line 605 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\v'); }
+#line 2197 "src/parse/lex.cc"
+yy364:
+ yyaccept = 1;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych <= '/') goto yy344;
+ if (yych >= ':') goto yy344;
+ } else {
+ if (yych <= 'F') goto yy365;
+ if (yych <= '`') goto yy344;
+ if (yych >= 'g') goto yy344;
+ }
+yy365:
+ 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:
+ YYCURSOR = YYMARKER;
+ if (yyaccept == 0) {
+ goto yy341;
+ } else {
+ goto yy344;
+ }
+yy367:
+ ++YYCURSOR;
+#line 597 "../src/parse/lex.re"
+ { return unesc_hex(tok, cur); }
+#line 2230 "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;
+ } else {
+ if (yych <= 'F') goto yy371;
+ if (yych <= '`') goto yy366;
+ if (yych >= 'g') goto yy366;
+ }
+yy371:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy366;
+ if (yych <= '9') goto yy367;
+ goto yy366;
+ } else {
+ if (yych <= 'F') goto yy367;
+ if (yych <= '`') goto yy366;
+ if (yych <= 'f') goto yy367;
+ goto yy366;
+ }
+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:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy366;
+ if (yych >= ':') goto yy366;
+ } else {
+ if (yych <= 'F') goto yy374;
+ if (yych <= '`') goto yy366;
+ if (yych >= 'g') goto yy366;
+ }
+yy374:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy366;
+ if (yych >= ':') goto yy366;
+ } else {
+ if (yych <= 'F') goto yy375;
+ if (yych <= '`') goto yy366;
+ if (yych >= 'g') goto yy366;
+ }
+yy375:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy366;
+ if (yych >= ':') goto yy366;
+ } else {
+ if (yych <= 'F') goto yy376;
+ if (yych <= '`') goto yy366;
+ if (yych >= 'g') goto yy366;
+ }
+yy376:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy366;
+ if (yych >= ':') goto yy366;
+ } else {
+ if (yych <= 'F') goto yy377;
+ if (yych <= '`') goto yy366;
+ if (yych >= 'g') goto yy366;
+ }
+yy377:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy366;
+ if (yych >= ':') goto yy366;
+ } else {
+ if (yych <= 'F') goto yy378;
+ if (yych <= '`') goto yy366;
+ if (yych >= 'g') goto yy366;
+ }
+yy378:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy366;
+ if (yych <= '9') goto yy367;
+ goto yy366;
+ } else {
+ if (yych <= 'F') goto yy367;
+ if (yych <= '`') goto yy366;
+ if (yych <= 'f') goto yy367;
+ goto yy366;
+ }
+yy379:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '/') goto yy366;
+ if (yych >= '8') goto yy366;
+ ++YYCURSOR;
+#line 598 "../src/parse/lex.re"
+ { return unesc_oct(tok, cur); }
+#line 2342 "src/parse/lex.cc"
+}
+#line 613 "../src/parse/lex.re"
+
+}
+
+uint32_t Scanner::lex_str_chr(char quote, bool &end)
+{
+ end = false;
+ tok = cur;
+
+#line 2353 "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;
+ ++YYCURSOR;
+#line 626 "../src/parse/lex.re"
+ {
+ end = tok[0] == quote;
+ return static_cast<uint8_t>(tok[0]);
+ }
+#line 2367 "src/parse/lex.cc"
+yy386:
+ ++YYCURSOR;
+#line 621 "../src/parse/lex.re"
+ { fatal ((tok - pos) - tchar, "syntax error"); }
+#line 2372 "src/parse/lex.cc"
+yy388:
+ ++YYCURSOR;
+ if ((yych = (YYCTYPE)*YYCURSOR) <= 'a') {
+ if (yych <= 'T') {
+ if (yych <= '/') {
+ if (yych != '\n') goto yy390;
+ } else {
+ if (yych <= '3') goto yy392;
+ if (yych <= '7') goto yy394;
+ goto yy390;
+ }
+ } else {
+ if (yych <= 'X') {
+ if (yych <= 'U') goto yy395;
+ if (yych <= 'W') goto yy390;
+ goto yy397;
+ } else {
+ if (yych == '\\') goto yy398;
+ if (yych <= '`') goto yy390;
+ goto yy400;
+ }
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'f') {
+ if (yych <= 'b') goto yy402;
+ if (yych <= 'e') goto yy390;
+ goto yy404;
+ } else {
+ if (yych == 'n') goto yy406;
+ if (yych <= 'q') goto yy390;
+ goto yy408;
+ }
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 's') goto yy390;
+ if (yych <= 't') goto yy410;
+ goto yy397;
+ } else {
+ if (yych <= 'v') goto yy412;
+ if (yych == 'x') goto yy414;
+ goto yy390;
+ }
+ }
+ }
+#line 624 "../src/parse/lex.re"
+ { fatal ((tok - pos) - tchar, "syntax error in escape sequence"); }
+#line 2420 "src/parse/lex.cc"
+yy390:
+ ++YYCURSOR;
+#line 640 "../src/parse/lex.re"
+ {
+ if (tok[1] != quote) {
+ warn.useless_escape(tline, tok - pos, tok[1]);
+ }
+ return static_cast<uint8_t>(tok[1]);
+ }
+#line 2430 "src/parse/lex.cc"
+yy392:
+ yyaccept = 0;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy393;
+ if (yych <= '7') goto yy429;
+yy393:
+#line 623 "../src/parse/lex.re"
+ { fatal ((tok - pos) - tchar, "syntax error in octal escape sequence"); }
+#line 2439 "src/parse/lex.cc"
+yy394:
+ yych = (YYCTYPE)*++YYCURSOR;
+ goto yy393;
+yy395:
+ yyaccept = 1;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych <= '/') goto yy396;
+ if (yych <= '9') goto yy422;
+ } else {
+ if (yych <= 'F') goto yy422;
+ if (yych <= '`') goto yy396;
+ if (yych <= 'f') goto yy422;
+ }
+yy396:
+#line 622 "../src/parse/lex.re"
+ { fatal ((tok - pos) - tchar, "syntax error in hexadecimal escape sequence"); }
+#line 2457 "src/parse/lex.cc"
+yy397:
+ yyaccept = 1;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych <= '/') goto yy396;
+ if (yych <= '9') goto yy419;
+ goto yy396;
+ } else {
+ if (yych <= 'F') goto yy419;
+ if (yych <= '`') goto yy396;
+ if (yych <= 'f') goto yy419;
+ goto yy396;
+ }
+yy398:
+ ++YYCURSOR;
+#line 639 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\\'); }
+#line 2475 "src/parse/lex.cc"
+yy400:
+ ++YYCURSOR;
+#line 632 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\a'); }
+#line 2480 "src/parse/lex.cc"
+yy402:
+ ++YYCURSOR;
+#line 633 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\b'); }
+#line 2485 "src/parse/lex.cc"
+yy404:
+ ++YYCURSOR;
+#line 634 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\f'); }
+#line 2490 "src/parse/lex.cc"
+yy406:
+ ++YYCURSOR;
+#line 635 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\n'); }
+#line 2495 "src/parse/lex.cc"
+yy408:
+ ++YYCURSOR;
+#line 636 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\r'); }
+#line 2500 "src/parse/lex.cc"
+yy410:
+ ++YYCURSOR;
+#line 637 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\t'); }
+#line 2505 "src/parse/lex.cc"
+yy412:
+ ++YYCURSOR;
+#line 638 "../src/parse/lex.re"
+ { return static_cast<uint8_t>('\v'); }
+#line 2510 "src/parse/lex.cc"
+yy414:
+ yyaccept = 1;
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych <= '/') goto yy396;
+ if (yych >= ':') goto yy396;
+ } else {
+ if (yych <= 'F') goto yy415;
+ if (yych <= '`') goto yy396;
+ if (yych >= 'g') goto yy396;
+ }
+yy415:
+ 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:
+ YYCURSOR = YYMARKER;
+ if (yyaccept == 0) {
+ goto yy393;
+ } else {
+ goto yy396;
+ }
+yy417:
+ ++YYCURSOR;
+#line 630 "../src/parse/lex.re"
+ { return unesc_hex(tok, cur); }
+#line 2543 "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:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy416;
+ if (yych >= ':') goto yy416;
+ } else {
+ if (yych <= 'F') goto yy423;
+ if (yych <= '`') goto yy416;
+ if (yych >= 'g') goto yy416;
+ }
+yy423:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy416;
+ if (yych >= ':') goto yy416;
+ } else {
+ if (yych <= 'F') goto yy424;
+ if (yych <= '`') goto yy416;
+ if (yych >= 'g') goto yy416;
+ }
+yy424:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy416;
+ if (yych >= ':') goto yy416;
+ } else {
+ if (yych <= 'F') goto yy425;
+ if (yych <= '`') goto yy416;
+ if (yych >= 'g') goto yy416;
+ }
+yy425:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy416;
+ if (yych >= ':') goto yy416;
+ } else {
+ if (yych <= 'F') goto yy426;
+ if (yych <= '`') goto yy416;
+ if (yych >= 'g') goto yy416;
+ }
+yy426:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy416;
+ if (yych >= ':') goto yy416;
+ } else {
+ if (yych <= 'F') goto yy427;
+ if (yych <= '`') goto yy416;
+ if (yych >= 'g') goto yy416;
+ }
+yy427:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy416;
+ if (yych >= ':') goto yy416;
+ } else {
+ if (yych <= 'F') goto yy428;
+ if (yych <= '`') goto yy416;
+ if (yych >= 'g') goto yy416;
+ }
+yy428:
+ 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;
+ }
+yy429:
+ yych = (YYCTYPE)*++YYCURSOR;
+ if (yych <= '/') goto yy416;
+ if (yych >= '8') goto yy416;
+ ++YYCURSOR;
+#line 631 "../src/parse/lex.re"
+ { return unesc_oct(tok, cur); }
+#line 2655 "src/parse/lex.cc"
+}
+#line 646 "../src/parse/lex.re"
+
+}
+
+RegExp *Scanner::lex_str(char quote, bool casing)
+{
+ RegExp *r = NULL;
+ for (bool end;;) {
+ const uint32_t c = lex_str_chr(quote, end);
+ if (end) {
+ return r ? r : new NullOp;
+ }
+ r = doCat(r, casing ? ichr(c) : schr(c));
+ }
+}
+
+void Scanner::set_sourceline ()
+{
+sourceline:
+ tok = cur;
+
+#line 2678 "src/parse/lex.cc"
+{
+ YYCTYPE yych;
+ static const unsigned char yybm[] = {
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 0, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 0, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 192, 192, 192, 192, 192, 192, 192, 192,
+ 192, 192, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 0, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ };
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych <= '!') {
+ if (yych == '\n') goto yy436;
+ } else {
+ if (yych <= '"') goto yy438;
+ if (yych <= '0') goto yy434;
+ if (yych <= '9') goto yy439;
+ }
+yy434:
+ ++YYCURSOR;
+yy435:
+#line 689 "../src/parse/lex.re"
+ {
+ goto sourceline;
+ }
+#line 2731 "src/parse/lex.cc"
+yy436:
+ ++YYCURSOR;
+#line 677 "../src/parse/lex.re"
+ {
+ if (cur == eof)
+ {
+ --cur;
+ }
+ else
+ {
+ pos = cur;
+ }
+ tok = cur;
+ return;
+ }
+#line 2747 "src/parse/lex.cc"
+yy438:
+ yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+ if (yych == '\n') goto yy435;
+ goto yy444;
+yy439:
+ ++YYCURSOR;
+ yych = (YYCTYPE)*YYCURSOR;
+ goto yy442;
+yy440:
+#line 666 "../src/parse/lex.re"
+ {
+ if (!s_to_u32_unsafe (tok, cur, cline))
+ {
+ fatal ("line number overflow");
+ }
+ goto sourceline;
+ }
+#line 2765 "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:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+yy444:
+ if (yybm[0+yych] & 128) {
+ goto yy443;
+ }
+ if (yych <= '\n') goto yy445;
+ if (yych <= '"') goto yy447;
+ goto yy446;
+yy445:
+ YYCURSOR = YYMARKER;
+ goto yy435;
+yy446:
+ ++YYCURSOR;
+ if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yych = (YYCTYPE)*YYCURSOR;
+ if (yych == '\n') goto yy445;
+ goto yy443;
+yy447:
+ ++YYCURSOR;
+#line 673 "../src/parse/lex.re"
+ {
+ escape (in.file_name, std::string (tok + 1, tok_len () - 2)); // -2 to omit quotes
+ goto sourceline;
+ }
+#line 2802 "src/parse/lex.cc"
+}
+#line 692 "../src/parse/lex.re"
+
+}
+
+} // end namespace re2c
--- /dev/null
- /* Generated by re2c 0.14.3 on Tue Nov 10 15:25:44 2015 */
++/* Generated by re2c 0.14.3 on Sat Nov 21 19:46:24 2015 */
+#line 1 "../src/parse/lex_conf.re"
+#include "src/parse/scanner.h"
+#include "src/util/s_to_n32_unsafe.h"
+
+namespace re2c
+{
+
+// global re2c config (affects the whole file)
+#line 29 "../src/parse/lex_conf.re"
+
+
+void Scanner::lex_conf ()
+{
+ tok = cur;
+
+#line 18 "src/parse/lex_conf.cc"
+{
+ unsigned char yych;
+ unsigned int yyaccept = 0;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 64, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 64, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+
+ if ((lim - cur) < 27) fill(27);
+ yych = (unsigned char)*cur;
+ switch (yych) {
+ case 'c': goto yy4;
+ case 'd': goto yy5;
+ case 'f': goto yy6;
+ case 'i': goto yy7;
+ case 'l': goto yy8;
+ case 's': goto yy9;
+ case 'v': goto yy10;
+ case 'y': goto yy11;
+ default: goto yy2;
+ }
+yy2:
+ ++cur;
+yy3:
+#line 35 "../src/parse/lex_conf.re"
+ { fatal ((tok - pos) - tchar, "unrecognized configuration"); }
+#line 75 "src/parse/lex_conf.cc"
+yy4:
+ yyaccept = 0;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == 'g') goto yy393;
+ if (yych == 'o') goto yy394;
+ goto yy3;
+yy5:
+ yyaccept = 0;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == 'e') goto yy202;
+ goto yy3;
+yy6:
+ yyaccept = 0;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == 'l') goto yy195;
+ goto yy3;
+yy7:
+ yyaccept = 0;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == 'n') goto yy178;
+ goto yy3;
+yy8:
+ yyaccept = 0;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == 'a') goto yy149;
+ goto yy3;
+yy9:
+ yyaccept = 0;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == 't') goto yy111;
+ goto yy3;
+yy10:
+ yyaccept = 0;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == 'a') goto yy68;
+ goto yy3;
+yy11:
+ yyaccept = 0;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych != 'y') goto yy3;
+ 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;
+ }
+yy13:
+ cur = ptr;
+ if (yyaccept <= 5) {
+ if (yyaccept <= 2) {
+ if (yyaccept <= 1) {
+ if (yyaccept == 0) {
+ goto yy3;
+ } else {
+ goto yy139;
+ }
+ } else {
+ goto yy228;
+ }
+ } else {
+ if (yyaccept <= 4) {
+ if (yyaccept == 3) {
+ goto yy244;
+ } else {
+ goto yy274;
+ }
+ } else {
+ goto yy297;
+ }
+ }
+ } else {
+ if (yyaccept <= 8) {
+ if (yyaccept <= 7) {
+ if (yyaccept == 6) {
+ goto yy316;
+ } else {
+ goto yy327;
+ }
+ } else {
+ goto yy380;
+ }
+ } else {
+ if (yyaccept == 9) {
+ goto yy408;
+ } else {
+ goto yy418;
+ }
+ }
+ }
+yy14:
+ yych = (unsigned char)*++cur;
+ if (yych == 'm') goto yy62;
+ goto yy13;
+yy15:
+ yych = (unsigned char)*++cur;
+ if (yych == 'h') goto yy44;
+ goto yy13;
+yy16:
+ yych = (unsigned char)*++cur;
+ if (yych != 'i') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != ':') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych <= 'd') {
+ if (yych != 'c') goto yy13;
+ } else {
+ if (yych <= 'e') goto yy23;
+ if (yych == 'p') goto yy22;
+ goto yy13;
+ }
+ yych = (unsigned char)*++cur;
+ if (yych == 'h') goto yy39;
+ goto yy13;
+yy22:
+ yych = (unsigned char)*++cur;
+ if (yych == 'a') goto yy30;
+ goto yy13;
+yy23:
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'a') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'b') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ ++cur;
+#line 134 "../src/parse/lex_conf.re"
+ { opts.set_fill_use (lex_conf_number () != 0); return; }
+#line 213 "src/parse/lex_conf.cc"
+yy30:
+ yych = (unsigned char)*++cur;
+ if (yych != 'r') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'a') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'm') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 't') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'r') goto yy13;
+ ++cur;
+#line 136 "../src/parse/lex_conf.re"
+ { opts.set_fill_arg_use (lex_conf_number () != 0); return; }
+#line 232 "src/parse/lex_conf.cc"
+yy39:
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'c') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'k') goto yy13;
+ ++cur;
+#line 138 "../src/parse/lex_conf.re"
+ { opts.set_fill_check (lex_conf_number () != 0); return; }
+#line 243 "src/parse/lex_conf.cc"
+yy44:
+ yych = (unsigned char)*++cur;
+ if (yych != ':') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych == 'c') goto yy47;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych == 'm') goto yy58;
+ goto yy13;
+yy47:
+ yych = (unsigned char)*++cur;
+ if (yych != 'o') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'v') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'r') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 's') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'i') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'o') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ ++cur;
+#line 130 "../src/parse/lex_conf.re"
+ { opts.set_yychConversion (lex_conf_number () != 0); return; }
+#line 275 "src/parse/lex_conf.cc"
+yy58:
+ yych = (unsigned char)*++cur;
+ if (yych != 'i') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 't') goto yy13;
+ ++cur;
+#line 131 "../src/parse/lex_conf.re"
+ { opts.set_bEmitYYCh (lex_conf_number () != 0); return; }
+#line 284 "src/parse/lex_conf.cc"
+yy62:
+ yych = (unsigned char)*++cur;
+ if (yych != ':') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'h') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'x') goto yy13;
+ ++cur;
+#line 88 "../src/parse/lex_conf.re"
+ { opts.set_yybmHexTable (lex_conf_number () != 0); return; }
+#line 297 "src/parse/lex_conf.cc"
+yy68:
+ yych = (unsigned char)*++cur;
+ if (yych != 'r') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'i') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'a') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'b') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != ':') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'y') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'y') goto yy13;
+ 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;
+ }
+yy78:
+ yych = (unsigned char)*++cur;
+ if (yych == 't') goto yy105;
+ goto yy13;
+yy79:
+ yych = (unsigned char)*++cur;
+ if (yych == 'h') goto yy98;
+ if (yych == 't') goto yy97;
+ goto yy13;
+yy80:
+ yych = (unsigned char)*++cur;
+ if (yych == 'a') goto yy91;
+ goto yy13;
+yy81:
+ yych = (unsigned char)*++cur;
+ if (yych == 'm') goto yy89;
+ goto yy13;
+yy82:
+ yych = (unsigned char)*++cur;
+ if (yych != 'c') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'c') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'p') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 't') goto yy13;
+ ++cur;
+#line 85 "../src/parse/lex_conf.re"
+ { opts.set_yyaccept (lex_conf_string ()); return; }
+#line 360 "src/parse/lex_conf.cc"
+yy89:
+ ++cur;
+#line 87 "../src/parse/lex_conf.re"
+ { opts.set_yybm (lex_conf_string ()); return; }
+#line 365 "src/parse/lex_conf.cc"
+yy91:
+ yych = (unsigned char)*++cur;
+ if (yych != 'r') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'g') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 't') goto yy13;
+ ++cur;
+#line 99 "../src/parse/lex_conf.re"
+ { opts.set_yytarget (lex_conf_string ()); return; }
+#line 378 "src/parse/lex_conf.cc"
+yy97:
+ yych = (unsigned char)*++cur;
+ if (yych == 'a') goto yy100;
+ goto yy13;
+yy98:
+ ++cur;
+#line 129 "../src/parse/lex_conf.re"
+ { opts.set_yych (lex_conf_string ()); return; }
+#line 387 "src/parse/lex_conf.cc"
+yy100:
+ yych = (unsigned char)*++cur;
+ if (yych != 'b') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ ++cur;
+#line 74 "../src/parse/lex_conf.re"
+ { opts.set_yyctable (lex_conf_string ()); return; }
+#line 398 "src/parse/lex_conf.cc"
+yy105:
+ yych = (unsigned char)*++cur;
+ if (yych != 'a') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'b') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ ++cur;
+#line 147 "../src/parse/lex_conf.re"
+ { lex_conf_string (); return; }
+#line 411 "src/parse/lex_conf.cc"
+yy111:
+ yych = (unsigned char)*++cur;
+ if (yych != 'a') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych == 'r') goto yy113;
+ if (yych == 't') goto yy114;
+ goto yy13;
+yy113:
+ yych = (unsigned char)*++cur;
+ if (yych == 't') goto yy133;
+ goto yy13;
+yy114:
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != ':') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych == 'a') goto yy117;
+ if (yych == 'n') goto yy118;
+ goto yy13;
+yy117:
+ yych = (unsigned char)*++cur;
+ if (yych == 'b') goto yy128;
+ goto yy13;
+yy118:
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'x') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 't') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'a') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'b') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ ++cur;
+#line 84 "../src/parse/lex_conf.re"
+ { opts.set_bUseStateNext (lex_conf_number () != 0); return; }
+#line 456 "src/parse/lex_conf.cc"
+yy128:
+ yych = (unsigned char)*++cur;
+ if (yych != 'o') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'r') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 't') goto yy13;
+ ++cur;
+#line 83 "../src/parse/lex_conf.re"
+ { opts.set_bUseStateAbort (lex_conf_number () != 0); return; }
+#line 467 "src/parse/lex_conf.cc"
+yy133:
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'a') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'b') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ ctx = cur + 1;
+ yyaccept = 1;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yybm[0+yych] & 64) {
+ goto yy140;
+ }
+ if (yych == '=') goto yy142;
+yy139:
+#line 144 "../src/parse/lex_conf.re"
+ { out.set_user_start_label (lex_conf_string ()); return; }
+#line 489 "src/parse/lex_conf.cc"
+yy140:
+ ++cur;
+ if (lim <= cur) fill(1);
+ yych = (unsigned char)*cur;
+ if (yybm[0+yych] & 64) {
+ goto yy140;
+ }
+ if (yych != '=') 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;
+ }
+ }
+yy144:
+ ++cur;
+yy145:
+ cur = ctx;
+#line 143 "../src/parse/lex_conf.re"
+ { out.set_force_start_label (lex_conf_number () != 0); return; }
+#line 526 "src/parse/lex_conf.cc"
+yy146:
+ yych = (unsigned char)*++cur;
+ if (yych <= '0') goto yy13;
+ if (yych >= ':') 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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych == ':') goto yy154;
+ if (yych != 'p') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych == 'r') goto yy172;
+ goto yy13;
+yy154:
+ yych = (unsigned char)*++cur;
+ if (yych != 'y') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'y') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych == 'F') goto yy157;
+ if (yych == 'N') goto yy158;
+ goto yy13;
+yy157:
+ yych = (unsigned char)*++cur;
+ if (yych == 'i') goto yy163;
+ goto yy13;
+yy158:
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'x') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 't') goto yy13;
+ ++cur;
+#line 82 "../src/parse/lex_conf.re"
+ { opts.set_yynext (lex_conf_string ()); return; }
+#line 575 "src/parse/lex_conf.cc"
+yy163:
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'L') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'a') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'b') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ ++cur;
+#line 81 "../src/parse/lex_conf.re"
+ { opts.set_yyfilllabel (lex_conf_string ()); return; }
+#line 594 "src/parse/lex_conf.cc"
+yy172:
+ 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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'x') goto yy13;
+ ++cur;
+#line 140 "../src/parse/lex_conf.re"
+ { opts.set_labelPrefix (lex_conf_string ()); return; }
+#line 607 "src/parse/lex_conf.cc"
+yy178:
+ yych = (unsigned char)*++cur;
+ if (yych != 'd') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 't') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != ':') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych <= 'r') goto yy13;
+ if (yych <= 's') goto yy185;
+ if (yych >= 'u') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych == 'o') goto yy192;
+ goto yy13;
+yy185:
+ yych = (unsigned char)*++cur;
+ if (yych != 't') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'r') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'i') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'g') goto yy13;
+ ++cur;
+#line 114 "../src/parse/lex_conf.re"
+ { opts.set_indString (lex_conf_string ()); return; }
+#line 640 "src/parse/lex_conf.cc"
+yy192:
+ yych = (unsigned char)*++cur;
+ if (yych != 'p') goto yy13;
+ ++cur;
+#line 116 "../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 655 "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;
+ } else {
+ if (yych <= 'u') {
+ if (yych <= 't') goto yy13;
+ } else {
+ if (yych <= 'v') goto yy13;
+ if (yych >= 'y') goto yy13;
+ }
+ }
+yy200:
+ ++cur;
+#line 38 "../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 703 "src/parse/lex_conf.cc"
+yy202:
+ yych = (unsigned char)*++cur;
+ if (yych != 'f') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'i') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != ':') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'Y') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'Y') goto yy13;
+ 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;
+ }
+yy210:
+ yych = (unsigned char)*++cur;
+ if (yych == 'I') goto yy377;
+ 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;
+ }
+yy212:
+ yych = (unsigned char)*++cur;
+ if (yych == 'E') goto yy345;
+ goto yy13;
+yy213:
+ yych = (unsigned char)*++cur;
+ if (yych == 'E') goto yy333;
+ if (yych == 'I') goto yy332;
+ goto yy13;
+yy214:
+ yych = (unsigned char)*++cur;
+ if (yych == 'E') goto yy321;
+ goto yy13;
+yy215:
+ yych = (unsigned char)*++cur;
+ if (yych == 'A') goto yy311;
+ goto yy13;
+yy216:
+ yych = (unsigned char)*++cur;
+ if (yych == 'E') goto yy262;
+ if (yych == 'K') goto yy263;
+ goto yy13;
+yy217:
+ yych = (unsigned char)*++cur;
+ if (yych == 'E') goto yy258;
+ goto yy13;
+yy218:
+ yych = (unsigned char)*++cur;
+ if (yych == 'A') goto yy252;
+ goto yy13;
+yy219:
+ yych = (unsigned char)*++cur;
+ if (yych != 'E') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'T') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych == 'C') goto yy222;
+ if (yych == 'S') goto yy223;
+ goto yy13;
+yy222:
+ yych = (unsigned char)*++cur;
+ if (yych == 'O') goto yy236;
+ goto yy13;
+yy223:
+ yych = (unsigned char)*++cur;
+ if (yych != 'T') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'A') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'T') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'E') goto yy13;
+ yyaccept = 2;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == ':') goto yy229;
+yy228:
+#line 76 "../src/parse/lex_conf.re"
+ { opts.set_state_get (lex_conf_string ()); return; }
+#line 805 "src/parse/lex_conf.cc"
+yy229:
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ 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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'd') goto yy13;
+ ++cur;
+#line 77 "../src/parse/lex_conf.re"
+ { opts.set_state_get_naked (lex_conf_number () != 0); return; }
+#line 820 "src/parse/lex_conf.cc"
+yy236:
+ 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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'T') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'I') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'O') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'N') goto yy13;
+ yyaccept = 3;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == ':') goto yy245;
+yy244:
+#line 63 "../src/parse/lex_conf.re"
+ { opts.set_cond_get (lex_conf_string ()); return; }
+#line 842 "src/parse/lex_conf.cc"
+yy245:
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ 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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'd') goto yy13;
+ ++cur;
+#line 64 "../src/parse/lex_conf.re"
+ { opts.set_cond_get_naked (lex_conf_number () != 0); return; }
+#line 857 "src/parse/lex_conf.cc"
+yy252:
+ yych = (unsigned char)*++cur;
+ if (yych != 'R') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'K') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'E') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'R') goto yy13;
+ ++cur;
+#line 102 "../src/parse/lex_conf.re"
+ { opts.set_yymarker (lex_conf_string ()); return; }
+#line 870 "src/parse/lex_conf.cc"
+yy258:
+ yych = (unsigned char)*++cur;
+ if (yych != 'E') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'K') goto yy13;
+ ++cur;
+#line 106 "../src/parse/lex_conf.re"
+ { opts.set_yypeek (lex_conf_string ()); return; }
+#line 879 "src/parse/lex_conf.cc"
+yy262:
+ yych = (unsigned char)*++cur;
+ if (yych == 'T') goto yy267;
+ goto yy13;
+yy263:
+ yych = (unsigned char)*++cur;
+ if (yych != 'I') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'P') goto yy13;
+ ++cur;
+#line 107 "../src/parse/lex_conf.re"
+ { opts.set_yyskip (lex_conf_string ()); return; }
+#line 892 "src/parse/lex_conf.cc"
+yy267:
+ yych = (unsigned char)*++cur;
+ if (yych == 'C') goto yy268;
+ if (yych == 'S') goto yy269;
+ goto yy13;
+yy268:
+ yych = (unsigned char)*++cur;
+ if (yych == 'O') goto yy289;
+ goto yy13;
+yy269:
+ yych = (unsigned char)*++cur;
+ if (yych != 'T') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'A') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'T') goto yy13;
+ 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 78 "../src/parse/lex_conf.re"
+ { opts.set_state_set (lex_conf_string ()); return; }
+#line 918 "src/parse/lex_conf.cc"
+yy275:
+ yych = (unsigned char)*++cur;
+ if (yych == 's') goto yy283;
+ goto yy13;
+yy276:
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ 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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'd') goto yy13;
+ ++cur;
+#line 79 "../src/parse/lex_conf.re"
+ { opts.set_state_set_naked (lex_conf_number () != 0); return; }
+#line 937 "src/parse/lex_conf.cc"
+yy283:
+ yych = (unsigned char)*++cur;
+ if (yych != 't') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'a') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 't') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ ++cur;
+#line 80 "../src/parse/lex_conf.re"
+ { opts.set_state_set_arg (lex_conf_string ()); return; }
+#line 950 "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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'T') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'I') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'O') goto yy13;
+ 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 65 "../src/parse/lex_conf.re"
+ { opts.set_cond_set (lex_conf_string ()); return; }
+#line 973 "src/parse/lex_conf.cc"
+yy298:
+ yych = (unsigned char)*++cur;
+ if (yych == 'n') goto yy305;
+ goto yy13;
+yy299:
+ yych = (unsigned char)*++cur;
+ if (yych != 'c') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'o') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'd') goto yy13;
+ ++cur;
+#line 66 "../src/parse/lex_conf.re"
+ { opts.set_cond_set_arg (lex_conf_string ()); return; }
+#line 990 "src/parse/lex_conf.cc"
+yy305:
+ 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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'd') goto yy13;
+ ++cur;
+#line 67 "../src/parse/lex_conf.re"
+ { opts.set_cond_set_naked (lex_conf_number () != 0); return; }
+#line 1003 "src/parse/lex_conf.cc"
+yy311:
+ yych = (unsigned char)*++cur;
+ if (yych != 'C') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'K') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'U') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'P') goto yy13;
+ yyaccept = 6;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == 'C') goto yy317;
+yy316:
+#line 108 "../src/parse/lex_conf.re"
+ { opts.set_yybackup (lex_conf_string ()); return; }
+#line 1019 "src/parse/lex_conf.cc"
+yy317:
+ yych = (unsigned char)*++cur;
+ if (yych != 'T') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'X') goto yy13;
+ ++cur;
+#line 109 "../src/parse/lex_conf.re"
+ { opts.set_yybackupctx (lex_conf_string ()); return; }
+#line 1028 "src/parse/lex_conf.cc"
+yy321:
+ yych = (unsigned char)*++cur;
+ if (yych != 'S') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'T') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'O') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'R') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'E') goto yy13;
+ yyaccept = 7;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == 'C') goto yy328;
+yy327:
+#line 110 "../src/parse/lex_conf.re"
+ { opts.set_yyrestore (lex_conf_string ()); return; }
+#line 1046 "src/parse/lex_conf.cc"
+yy328:
+ yych = (unsigned char)*++cur;
+ if (yych != 'T') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'X') goto yy13;
+ ++cur;
+#line 111 "../src/parse/lex_conf.re"
+ { opts.set_yyrestorectx (lex_conf_string ()); return; }
+#line 1055 "src/parse/lex_conf.cc"
+yy332:
+ yych = (unsigned char)*++cur;
+ if (yych == 'M') goto yy341;
+ goto yy13;
+yy333:
+ yych = (unsigned char)*++cur;
+ if (yych != 'S') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'S') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'T') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'H') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'A') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'N') goto yy13;
+ ++cur;
+#line 112 "../src/parse/lex_conf.re"
+ { opts.set_yylessthan (lex_conf_string ()); return; }
+#line 1076 "src/parse/lex_conf.cc"
+yy341:
+ yych = (unsigned char)*++cur;
+ if (yych != 'I') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'T') goto yy13;
+ ++cur;
+#line 104 "../src/parse/lex_conf.re"
+ { opts.set_yylimit (lex_conf_string ()); return; }
+#line 1085 "src/parse/lex_conf.cc"
+yy345:
+ yych = (unsigned char)*++cur;
+ if (yych != 'B') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'U') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'G') goto yy13;
+ ++cur;
+#line 126 "../src/parse/lex_conf.re"
+ { opts.set_yydebug (lex_conf_string ()); return; }
+#line 1096 "src/parse/lex_conf.cc"
+yy350:
+ yych = (unsigned char)*++cur;
+ if (yych == 'N') goto yy370;
+ goto yy13;
+yy351:
+ yych = (unsigned char)*++cur;
+ if (yych == 'R') goto yy365;
+ goto yy13;
+yy352:
+ yych = (unsigned char)*++cur;
+ if (yych <= 'W') goto yy13;
+ if (yych <= 'X') goto yy354;
+ if (yych >= 'Z') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych == 'P') goto yy362;
+ goto yy13;
+yy354:
+ yych = (unsigned char)*++cur;
+ if (yych != 'M') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'A') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'R') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'K') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'E') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'R') goto yy13;
+ ++cur;
+#line 103 "../src/parse/lex_conf.re"
+ { opts.set_yyctxmarker (lex_conf_string ()); return; }
+#line 1129 "src/parse/lex_conf.cc"
+yy362:
+ yych = (unsigned char)*++cur;
+ if (yych != 'E') goto yy13;
+ ++cur;
+#line 128 "../src/parse/lex_conf.re"
+ { opts.set_yyctype (lex_conf_string ()); return; }
+#line 1136 "src/parse/lex_conf.cc"
+yy365:
+ yych = (unsigned char)*++cur;
+ if (yych != 'S') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'O') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'R') goto yy13;
+ ++cur;
+#line 101 "../src/parse/lex_conf.re"
+ { opts.set_yycursor (lex_conf_string ()); return; }
+#line 1147 "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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'E') goto yy13;
+ ++cur;
+#line 62 "../src/parse/lex_conf.re"
+ { opts.set_yycondtype (lex_conf_string ()); return; }
+#line 1162 "src/parse/lex_conf.cc"
+yy377:
+ 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 133 "../src/parse/lex_conf.re"
+ { opts.set_fill (lex_conf_string ()); return; }
+#line 1175 "src/parse/lex_conf.cc"
+yy381:
+ yych = (unsigned char)*++cur;
+ if (yych == 'n') goto yy387;
+ goto yy13;
+yy382:
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ ++cur;
+#line 135 "../src/parse/lex_conf.re"
+ { opts.set_fill_arg (lex_conf_string ()); return; }
+#line 1190 "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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'd') goto yy13;
+ ++cur;
+#line 137 "../src/parse/lex_conf.re"
+ { opts.set_fill_naked (lex_conf_number () != 0); return; }
+#line 1203 "src/parse/lex_conf.cc"
+yy393:
+ yych = (unsigned char)*++cur;
+ if (yych == 'o') goto yy441;
+ 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;
+ }
+ yych = (unsigned char)*++cur;
+ if (yych == 'r') goto yy435;
+ goto yy13;
+yy398:
+ yych = (unsigned char)*++cur;
+ if (yych == 'n') goto yy425;
+ goto yy13;
+yy399:
+ yych = (unsigned char)*++cur;
+ if (yych == 'd') goto yy401;
+ if (yych != 'g') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych == 'o') goto yy415;
+ goto yy13;
+yy401:
+ yych = (unsigned char)*++cur;
+ if (yych != 'i') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'v') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'i') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'd') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'r') goto yy13;
+ yyaccept = 9;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == '@') goto yy409;
+yy408:
+#line 70 "../src/parse/lex_conf.re"
+ { opts.set_condDivider (lex_conf_string ()); return; }
+#line 1254 "src/parse/lex_conf.cc"
+yy409:
+ yych = (unsigned char)*++cur;
+ if (yych != 'c') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'o') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'd') goto yy13;
+ ++cur;
+#line 71 "../src/parse/lex_conf.re"
+ { opts.set_condDividerParam (lex_conf_string ()); return; }
+#line 1267 "src/parse/lex_conf.cc"
+yy415:
+ yych = (unsigned char)*++cur;
+ if (yych != 't') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'o') goto yy13;
+ yyaccept = 10;
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych == '@') goto yy419;
+yy418:
+#line 72 "../src/parse/lex_conf.re"
+ { opts.set_condGoto (lex_conf_string ()); return; }
+#line 1279 "src/parse/lex_conf.cc"
+yy419:
+ yych = (unsigned char)*++cur;
+ if (yych != 'c') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'o') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'n') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'd') goto yy13;
+ ++cur;
+#line 73 "../src/parse/lex_conf.re"
+ { opts.set_condGotoParam (lex_conf_string ()); return; }
+#line 1292 "src/parse/lex_conf.cc"
+yy425:
+ yych = (unsigned char)*++cur;
+ if (yych != 'u') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'm') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'p') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'r') goto yy13;
+ 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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'x') goto yy13;
+ ++cur;
+#line 69 "../src/parse/lex_conf.re"
+ { opts.set_condEnumPrefix (lex_conf_string ()); return; }
+#line 1313 "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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'x') goto yy13;
+ ++cur;
+#line 68 "../src/parse/lex_conf.re"
+ { opts.set_condPrefix (lex_conf_string ()); return; }
+#line 1326 "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;
+ yych = (unsigned char)*++cur;
+ if (yych != 'r') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'e') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 's') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'h') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'o') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'l') goto yy13;
+ yych = (unsigned char)*++cur;
+ if (yych != 'd') goto yy13;
+ ++cur;
+#line 90 "../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 1363 "src/parse/lex_conf.cc"
+}
+#line 148 "../src/parse/lex_conf.re"
+
+}
+
+void Scanner::lex_conf_assign ()
+{
+
+#line 1372 "src/parse/lex_conf.cc"
+{
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((lim - cur) < 2) fill(2);
+ yych = (unsigned char)*cur;
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy459;
+ } else {
+ if (yych <= ' ') goto yy459;
+ if (yych == '=') goto yy460;
+ }
+ ++cur;
+yy458:
+#line 154 "../src/parse/lex_conf.re"
+ { fatal ("missing '=' in configuration"); }
+#line 1421 "src/parse/lex_conf.cc"
+yy459:
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy464;
+ goto yy458;
+ } else {
+ if (yych <= ' ') goto yy464;
+ if (yych == '=') goto yy462;
+ goto yy458;
+ }
+yy460:
+ ++cur;
+ yych = (unsigned char)*cur;
+ goto yy463;
+yy461:
+#line 155 "../src/parse/lex_conf.re"
+ { return; }
+#line 1439 "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 yy461;
+yy464:
+ ++cur;
+ if (lim <= cur) fill(1);
+ yych = (unsigned char)*cur;
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy464;
+ } else {
+ if (yych <= ' ') goto yy464;
+ if (yych == '=') goto yy462;
+ }
+ cur = ptr;
+ goto yy458;
+}
+#line 156 "../src/parse/lex_conf.re"
+
+}
+
+void Scanner::lex_conf_semicolon ()
+{
+
+#line 1469 "src/parse/lex_conf.cc"
+{
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((lim - cur) < 2) fill(2);
+ yych = (unsigned char)*cur;
+ if (yych <= 0x1F) {
+ if (yych == '\t') goto yy471;
+ } else {
+ if (yych <= ' ') goto yy471;
+ if (yych == ';') goto yy472;
+ }
+ ++cur;
+yy470:
+#line 162 "../src/parse/lex_conf.re"
+ { fatal ("missing ending ';' in configuration"); }
+#line 1518 "src/parse/lex_conf.cc"
+yy471:
+ yych = (unsigned char)*(ptr = ++cur);
+ if (yybm[0+yych] & 128) {
+ goto yy475;
+ }
+ if (yych == ';') goto yy474;
+ goto yy470;
+yy472:
+ ++cur;
+yy473:
+#line 163 "../src/parse/lex_conf.re"
+ { return; }
+#line 1531 "src/parse/lex_conf.cc"
+yy474:
+ yych = (unsigned char)*++cur;
+ goto yy473;
+yy475:
+ ++cur;
+ if (lim <= cur) fill(1);
+ yych = (unsigned char)*cur;
+ if (yybm[0+yych] & 128) {
+ goto yy475;
+ }
+ if (yych == ';') goto yy474;
+ cur = ptr;
+ goto yy470;
+}
+#line 164 "../src/parse/lex_conf.re"
+
+}
+
+int32_t Scanner::lex_conf_number ()
+{
+ lex_conf_assign ();
+ tok = cur;
+
+#line 1555 "src/parse/lex_conf.cc"
+{
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ if ((lim - cur) < 2) fill(2);
+ yych = (unsigned char)*cur;
+ if (yych <= '/') {
+ if (yych == '-') goto yy483;
+ } else {
+ if (yych <= '0') goto yy481;
+ if (yych <= '9') goto yy484;
+ }
+yy480:
+yy481:
+ ++cur;
+yy482:
+#line 173 "../src/parse/lex_conf.re"
+ {
+ int32_t n = 0;
+ if (!s_to_i32_unsafe (tok, cur, n))
+ {
+ fatal ("configuration value overflow");
+ }
+ lex_conf_semicolon ();
+ return n;
+ }
+#line 1614 "src/parse/lex_conf.cc"
+yy483:
+ yych = (unsigned char)*++cur;
+ if (yych <= '0') goto yy480;
+ if (yych >= ':') goto yy480;
+yy484:
+ ++cur;
+ if (lim <= cur) fill(1);
+ yych = (unsigned char)*cur;
+ if (yybm[0+yych] & 128) {
+ goto yy484;
+ }
+ goto yy482;
+}
+#line 182 "../src/parse/lex_conf.re"
+
+}
+
+std::string Scanner::lex_conf_string ()
+{
+ lex_conf_assign ();
+ std::string s;
+ tok = cur;
+
+#line 1638 "src/parse/lex_conf.cc"
+{
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 0, 0, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 0, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 0, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ };
+ if (lim <= cur) fill(1);
+ yych = (unsigned char)*cur;
+ if (yych <= '!') {
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy491;
+ } else {
+ if (yych != ' ') goto yy491;
+ }
+ } else {
+ if (yych <= '\'') {
+ if (yych <= '"') goto yy489;
+ if (yych <= '&') goto yy491;
+ goto yy489;
+ } else {
+ if (yych != ';') goto yy491;
+ }
+ }
+yy488:
+#line 205 "../src/parse/lex_conf.re"
+ {
+ s = std::string(tok, tok_len());
+ goto end;
+ }
+#line 1698 "src/parse/lex_conf.cc"
+yy489:
+ ++cur;
+#line 191 "../src/parse/lex_conf.re"
+ {
+ const char quote = tok[0];
+ for (bool end;;) {
+ const uint32_t c = lex_str_chr(quote, end);
+ if (end) {
+ goto end;
+ }
+ if (c > 0xFF) {
+ fatalf ("multibyte character in configuration string: 0x%X", c);
+ } else {
+ s += static_cast<char>(c);
+ }
+ }
+ }
+#line 1716 "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 209 "../src/parse/lex_conf.re"
+
+end:
+ lex_conf_semicolon ();
+ return s;
+}
+
+} // end namespace re2c
--- /dev/null
- vernum.resize(6);
+#include <stdarg.h>
+#include <stdio.h>
+#include <string>
+
+#include "config.h"
+#include "src/conf/msg.h"
+
+namespace re2c {
+
+void error (const char * fmt, ...)
+{
+ fprintf (stderr, "re2c: error: ");
+
+ va_list args;
+ va_start (args, fmt);
+ vfprintf (stderr, fmt, args);
+ va_end (args);
+
+ fprintf (stderr, "\n");
+}
+
+void error_encoding ()
+{
+ error ("only one of switches -e, -w, -x, -u and -8 must be set");
+}
+
+void error_arg (const char * option)
+{
+ error ("expected argument to option %s", option);
+}
+
+void warning_start (uint32_t line, bool error)
+{
+ static const char * msg = error ? "error" : "warning";
+ fprintf (stderr, "re2c: %s: line %u: ", msg, line);
+}
+
+void warning_end (const char * type, bool error)
+{
+ if (type != NULL)
+ {
+ const char * prefix = error ? "error-" : "";
+ fprintf (stderr, " [-W%s%s]", prefix, type);
+ }
+ fprintf (stderr, "\n");
+}
+
+void warning (const char * type, uint32_t line, bool error, const char * fmt, ...)
+{
+ warning_start (line, error);
+
+ va_list args;
+ va_start (args, fmt);
+ vfprintf (stderr, fmt, args);
+ va_end (args);
+
+ warning_end (type, error);
+}
+
+void usage ()
+{
+ fprintf (stderr,
+ "usage: re2c [-bcdDefFghirsuvVwx18] [-o of] [-t th] file\n"
+ "\n"
+ "-? -h --help Display this info.\n"
+ "\n"
+ "-b --bit-vectors Implies -s. Use bit vectors as well in the attempt to\n"
+ " coax better code out of the compiler. Most useful for\n"
+ " specifications with more than a few keywords (e.g. for\n"
+ " most programming languages).\n"
+ "\n"
+ "-c --conditions Require start conditions.\n"
+ "\n"
+ "-d --debug-output Creates a parser that dumps information during\n"
+ " about the current position and in which state the\n"
+ " parser is.\n"
+ "\n"
+ "-D --emit-dot Emit a Graphviz dot view of the DFA graph\n"
+ "\n"
+ "-e --ecb Generate a parser that supports EBCDIC. The generated code\n"
+ " can deal with any character up to 0xFF. In this mode re2c\n"
+ " assumes that input character size is 1 byte. This switch is\n"
+ " incompatible with -w, -u, -x and -8\n"
+ "\n"
+ "-f --storable-state Generate a scanner that supports storable states.\n"
+ "\n"
+ "-F --flex-syntax Partial support for flex syntax.\n"
+ "\n"
+ "-g --computed-gotos Implies -b. Generate computed goto code (only useable\n"
+ " with gcc).\n"
+ "\n"
+ "-i --no-debug-info Do not generate '#line' info (usefull for versioning).\n"
+ "\n"
+ "-o of --output=of Specify the output file (of) instead of stdout\n"
+ "\n"
+ "-r --reusable Allow reuse of scanner definitions.\n"
+ "\n"
+ "-s --nested-ifs Generate nested ifs for some switches. Many compilers\n"
+ " need this assist to generate better code.\n"
+ "\n"
+ "-t th --type-header=th Generate a type header file (th) with type definitions.\n"
+ "\n"
+ "-u --unicode Generate a parser that supports UTF-32. The generated code\n"
+ " can deal with any valid Unicode character up to 0x10FFFF.\n"
+ " In this mode re2c assumes that input character size is 4 bytes.\n"
+ " This switch is incompatible with -e, -w, -x and -8. It implies -s.\n"
+ "\n"
+ "-v --version Show version information.\n"
+ "\n"
+ "-V --vernum Show version as one number.\n"
+ "\n"
+ "-w --wide-chars Generate a parser that supports UCS-2. The generated code can\n"
+ " deal with any valid Unicode character up to 0xFFFF. In this mode\n"
+ " re2c assumes that input character size is 2 bytes. This switch is\n"
+ " incompatible with -e, -x, -u and -8. It implies -s."
+ "\n"
+ "-x --utf-16 Generate a parser that supports UTF-16. The generated code can\n"
+ " deal with any valid Unicode character up to 0x10FFFF. In this mode\n"
+ " re2c assumes that input character size is 2 bytes. This switch is\n"
+ " incompatible with -e, -w, -u and -8. It implies -s."
+ "\n"
+ "-8 --utf-8 Generate a parser that supports UTF-8. The generated code can\n"
+ " deal with any valid Unicode character up to 0x10FFFF. In this mode\n"
+ " re2c assumes that input character size is 1 byte. This switch is\n"
+ " incompatible with -e, -w, -x and -u."
+ "\n"
+ "--no-generation-date Suppress date output in the generated output so that it\n"
+ " only shows the re2c version.\n"
+ "\n"
+ "--case-insensitive All strings are case insensitive, so all \"-expressions\n"
+ " are treated in the same way '-expressions are.\n"
+ "\n"
+ "--case-inverted Invert the meaning of single and double quoted strings.\n"
+ " With this switch single quotes are case sensitive and\n"
+ " double quotes are case insensitive.\n"
+ "\n"
+ "--encoding-policy ep Specify what re2c should do when given bad code unit.\n"
+ " ep can be one of the following: fail, substitute, ignore.\n"
+ "\n"
+ "--input i Specify re2c input API.\n"
+ " i can be one of the following: default, custom.\n"
+ "\n"
+ "--skeleton Instead of embedding re2c-generated code into C/C++ source,\n"
+ " generate a self-contained program for the same DFA.\n"
+ " Most useful for correctness and performance testing.\n"
+ "\n"
+ "--empty-class policy What to do if user inputs empty character class. policy can be\n"
+ " one of the following: 'match-empty' (match empty input, default),\n"
+ " 'match-none' (fail to match on any input), 'error' (compilation\n"
+ " error). Note that there are various ways to construct empty class,\n"
+ " e.g: [], [^\\x00-\\xFF], [\\x00-\\xFF]\\[\\x00-\\xFF].\n"
+ "\n"
+ "-1 --single-pass Deprecated and does nothing (single pass is by default now).\n"
+ "\n"
+ "-W Turn on all warnings.\n"
+ "\n"
+ "-Werror Turn warnings into errors. Note that this option along doesn't\n"
+ " turn on any warnings, it only affects those warnings that have\n"
+ " been turned on so far or will be turned on later.\n"
+ "\n"
+ "-W<warning> Turn on individual warning.\n"
+ "\n"
+ "-Wno-<warning> Turn off individual warning.\n"
+ "\n"
+ "-Werror-<warning> Turn on individual warning and treat it as error (this implies\n"
+ " '-W<warning>').\n"
+ "\n"
+ "-Wno-error-<warning> Don't treat this particular warning as error. This doesn't turn\n"
+ " off the warning itself.\n"
+ "\n"
+ "Warnings:\n"
+ "\n"
+ "-Wcondition-order Warn if the generated program makes implicit assumptions about\n"
+ " condition numbering. One should use either '-t, --type-header'\n"
+ " option or '/*!types:re2c*/' directive to generate mapping of\n"
+ " condition names to numbers and use autogenerated condition names.\n"
+ "\n"
+ "-Wempty-character-class Warn if regular expression contains empty character class. From\n"
+ " the rational point of view trying to match empty character class\n"
+ " makes no sense: it should always fail. However, for backwards\n"
+ " compatibility reasons re2c allows empty character class and treats\n"
+ " it as empty string. Use '--empty-class' option to change default\n"
+ " behaviour.\n"
+ "\n"
+ "-Wmatch-empty-string Warn if regular expression in a rule is nullable (matches empty\n"
+ " string). If DFA runs in a loop and empty match is unintentional\n"
+ " (input position in not advanced manually), lexer may get stuck\n"
+ " in eternal loop.\n"
+ "\n"
+ "-Wswapped-range Warn if range lower bound is greater that upper bound. Default\n"
+ " re2c behaviour is to silently swap range bounds.\n"
+ "\n"
+ "-Wundefined-control-flow\n"
+ " Warn if some input strings cause undefined control flow in lexer\n"
+ " (the faulty patterns are reported). This is the most dangerous\n"
+ " and common mistake. It can be easily fixed by adding default rule\n"
+ " '*' (this rule has the lowest priority, matches any code unit\n"
+ " and consumes exactly one code unit).\n"
+ "\n"
+ "-Wuseless-escape Warn if a symbol is escaped when it shouldn't be. By default re2c\n"
+ " silently ignores escape, but this may as well indicate a typo\n"
+ " or an error in escape sequence.\n"
+ "\n"
+ );
+}
+
+void vernum ()
+{
+ std::string vernum (PACKAGE_VERSION);
+ if (vernum[1] == '.')
+ {
+ vernum.insert(0, "0");
+ }
+ vernum.erase(2, 1);
+ if (vernum[3] == '.')
+ {
+ vernum.insert(2, "0");
+ }
+ vernum.erase(4, 1);
+ if (vernum.length() < 6 || vernum[5] < '0' || vernum[5] > '9')
+ {
+ vernum.insert(4, "0");
+ }
++ vernum.resize(6, '0');
+
+ printf ("%s\n", vernum.c_str ());
+}
+
+void version ()
+{
+ printf ("re2c %s\n", PACKAGE_VERSION);
+}
+
+std::string incond (const std::string & cond)
+{
+ std::string s;
+ if (!cond.empty ())
+ {
+ s += "in condition '";
+ s += cond;
+ s += "' ";
+ }
+ return s;
+}
+
+} // namespace re2c
--- /dev/null
- m1->ins_access = e1->ins_access;
- a->exp2->ins_access = e1->ins_access;
+#include "src/ir/regexp/encoding/case.h"
+#include "src/ir/regexp/encoding/utf16/utf16_regexp.h"
+#include "src/ir/regexp/encoding/utf8/utf8_regexp.h"
+#include "src/ir/regexp/regexp.h"
+#include "src/ir/regexp/regexp_alt.h"
+#include "src/ir/regexp/regexp_cat.h"
+#include "src/ir/regexp/regexp_close.h"
+#include "src/ir/regexp/regexp_match.h"
+#include "src/ir/regexp/regexp_null.h"
+#include "src/parse/scanner.h"
+#include "src/util/range.h"
+
+namespace re2c
+{
+
+static MatchOp * merge (MatchOp * m1, MatchOp * m2);
+
+free_list<RegExp*> RegExp::vFreeList;
+
+RegExp * doAlt (RegExp * e1, RegExp * e2)
+{
+ if (!e1)
+ {
+ return e2;
+ }
+ if (!e2)
+ {
+ return e1;
+ }
+ return new AltOp (e1, e2);
+}
+
+RegExp * mkAlt (RegExp * e1, RegExp * e2)
+{
+ AltOp * a;
+ MatchOp * m1;
+ MatchOp * m2;
+
+ a = dynamic_cast<AltOp*> (e1);
+ if (a != NULL)
+ {
+ m1 = dynamic_cast<MatchOp*> (a->exp1);
+ if (m1 != NULL)
+ {
- m2->ins_access = e2->ins_access;
- a->exp2->ins_access = e2->ins_access;
++ if (e1->ins_access == RegExp::PRIVATE)
++ {
++ m1->ins_access = RegExp::PRIVATE;
++ a->exp2->ins_access = RegExp::PRIVATE;
++ }
+ e1 = a->exp2;
+ }
+ }
+ else
+ {
+ m1 = dynamic_cast<MatchOp*> (e1);
+ if (m1 != NULL)
+ {
+ e1 = NULL;
+ }
+ }
+ a = dynamic_cast<AltOp*> (e2);
+ if (a != NULL)
+ {
+ m2 = dynamic_cast<MatchOp*> (a->exp1);
+ if (m2 != NULL)
+ {
++ if (e2->ins_access == RegExp::PRIVATE)
++ {
++ m2->ins_access = RegExp::PRIVATE;
++ a->exp2->ins_access = RegExp::PRIVATE;
++ }
+ e2 = a->exp2;
+ }
+ }
+ else
+ {
+ m2 = dynamic_cast<MatchOp*> (e2);
+ if (m2 != NULL)
+ {
+ e2 = NULL;
+ }
+ }
+
+ return doAlt (merge (m1, m2), doAlt (e1, e2));
+}
+
+MatchOp * merge (MatchOp * m1, MatchOp * m2)
+{
+ if (!m1)
+ {
+ return m2;
+ }
+ if (!m2)
+ {
+ return m1;
+ }
+ MatchOp * m = new MatchOp (Range::add (m1->match, m2->match));
+ if (m1->ins_access == RegExp::PRIVATE
+ || m2->ins_access == RegExp::PRIVATE)
+ {
+ m->ins_access = RegExp::PRIVATE;
+ }
+ return m;
+}
+
+RegExp * doCat (RegExp * e1, RegExp * e2)
+{
+ if (!e1)
+ {
+ return e2;
+ }
+ if (!e2)
+ {
+ return e1;
+ }
+ return new CatOp (e1, e2);
+}
+
+RegExp *Scanner::schr(uint32_t c) const
+{
+ if (!opts->encoding.encode(c)) {
+ fatalf("Bad code point: '0x%X'", c);
+ }
+ switch (opts->encoding.type ()) {
+ case Enc::UTF16: return UTF16Symbol(c);
+ case Enc::UTF8: return UTF8Symbol(c);
+ default: return new MatchOp(Range::sym(c));
+ }
+}
+
+RegExp *Scanner::ichr(uint32_t c) const
+{
+ if (is_alpha(c)) {
+ RegExp *l = schr(to_lower_unsafe(c));
+ RegExp *u = schr(to_upper_unsafe(c));
+ return mkAlt(l, u);
+ } else {
+ return schr(c);
+ }
+}
+
+RegExp *Scanner::cls(Range *r) const
+{
+ if (!r)
+ {
+ switch (opts->empty_class_policy)
+ {
+ case EMPTY_CLASS_MATCH_EMPTY:
+ warn.empty_class (get_line ());
+ return new NullOp;
+ case EMPTY_CLASS_MATCH_NONE:
+ warn.empty_class (get_line ());
+ break;
+ case EMPTY_CLASS_ERROR:
+ fatal ("empty character class");
+ break;
+ }
+ }
+
+ switch (opts->encoding.type ())
+ {
+ case Enc::UTF16: return UTF16Range(r);
+ case Enc::UTF8: return UTF8Range(r);
+ default: return new MatchOp(r);
+ }
+}
+
+RegExp * Scanner::mkDiff (RegExp * e1, RegExp * e2) const
+{
+ MatchOp * m1 = dynamic_cast<MatchOp *> (e1);
+ MatchOp * m2 = dynamic_cast<MatchOp *> (e2);
+ if (m1 == NULL || m2 == NULL)
+ {
+ fatal("can only difference char sets");
+ }
+ Range * r = Range::sub (m1->match, m2->match);
+
+ return cls(r);
+}
+
+RegExp * Scanner::mkDot() const
+{
+ Range * full = opts->encoding.fullRange();
+ uint32_t c = '\n';
+ if (!opts->encoding.encode(c))
+ fatalf("Bad code point: '0x%X'", c);
+ Range * ran = Range::sym (c);
+ Range * inv = Range::sub (full, ran);
+
+ return cls(inv);
+}
+
+/*
+ * Create a byte range that includes all possible input characters.
+ * This may include characters, which do not map to any valid symbol
+ * in current encoding. For encodings, which directly map symbols to
+ * input characters (ASCII, EBCDIC, UTF-32), it equals [^]. For other
+ * encodings (UTF-16, UTF-8), [^] and this range are different.
+ *
+ * Also note that default range doesn't respect encoding policy
+ * (the way invalid code points are treated).
+ */
+RegExp * Scanner::mkDefault() const
+{
+ Range * def = Range::ran (0, opts->encoding.nCodeUnits());
+ return new MatchOp(def);
+}
+
+/*
+ * note [counted repetition expansion]
+ *
+ * r{0} ;;= <empty regexp>
+ * r{n} ::= r{n-1} r
+ * r{n,m} ::= r{n} (r{0} | ... | r{m-n})
+ * r{n,} ::= r{n} r*
+ */
+
+// see note [counted repetition expansion]
+RegExp * repeat (RegExp * e, uint32_t n)
+{
+ RegExp * r = NULL;
+ for (uint32_t i = 0; i < n; ++i)
+ {
+ r = doCat (r, e);
+ }
+ return r;
+}
+
+// see note [counted repetition expansion]
+RegExp * repeat_from_to (RegExp * e, uint32_t n, uint32_t m)
+{
+ RegExp * r1 = repeat (e, n);
+ RegExp * r2 = NULL;
+ for (uint32_t i = n; i < m; ++i)
+ {
+ r2 = mkAlt (new NullOp, doCat (e, r2));
+ }
+ return doCat (r1, r2);
+}
+
+// see note [counted repetition expansion]
+RegExp * repeat_from (RegExp * e, uint32_t n)
+{
+ RegExp * r1 = repeat (e, n);
+ RegExp * r2 = mkAlt (new NullOp, new CloseOp (e));
+ return doCat (r1, r2);
+}
+
+} // namespace re2c
--- /dev/null
-#line 13 "<stdout>"
+ /* Generated by re2c */
+ #line 1 "bug57.re"
+ #include <stdio.h>
+
+ int scan(const char *p)
+ {
+ #define YYCTYPE char
+ const char *YYCURSOR = p;
+ const char *YYMARKER;
+
+
-
++#line 13 "bug57.c"
+ {
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
-#line 29 "<stdout>"
+ yych = *YYCURSOR;
+ switch (yych) {
+ case '\n': goto yy2;
+ case '<': goto yy3;
+ case '\\': goto yy6;
+ case 'a': goto yy5;
+ default: goto yy7;
+ }
+ yy2:
+ #line 15 "bug57.re"
+ { return YYCURSOR - p; }
-#line 43 "<stdout>"
++#line 28 "bug57.c"
+ yy3:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch (yych) {
+ case '>': goto yy15;
+ case '\\': goto yy14;
+ case 'x':
+ case 'y': goto yy12;
+ default: goto yy4;
+ }
+ yy4:
+ #line 16 "bug57.re"
+ { return 0; }
-#line 102 "<stdout>"
++#line 42 "bug57.c"
+ yy5:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy9;
+ yy6:
+ yych = *++YYCURSOR;
+ switch (yych) {
+ case 'b': goto yy8;
+ default: goto yy4;
+ }
+ yy7:
+ yych = *++YYCURSOR;
+ goto yy4;
+ yy8:
+ yyaccept = 1;
+ YYMARKER = ++YYCURSOR;
+ yych = *YYCURSOR;
+ yy9:
+ switch (yych) {
+ case '\\': goto yy10;
+ case 'a': goto yy8;
+ default: goto yy2;
+ }
+ yy10:
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ switch (yych) {
+ case 'b': goto yy8;
+ default: goto yy11;
+ }
+ yy11:
+ YYCURSOR = YYMARKER;
+ if (yyaccept == 0) {
+ goto yy4;
+ } else {
+ goto yy2;
+ }
+ yy12:
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ switch (yych) {
+ case '>': goto yy15;
+ case '\\': goto yy14;
+ case 'x':
+ case 'y': goto yy12;
+ default: goto yy11;
+ }
+ yy14:
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ switch (yych) {
+ case 'b': goto yy12;
+ default: goto yy11;
+ }
+ yy15:
+ ++YYCURSOR;
+ #line 14 "bug57.re"
+ { return YYCURSOR - p; }
++#line 101 "bug57.c"
+ }
+ #line 17 "bug57.re"
+
+ }
+
+ int main()
+ {
+ const char *str = "aaa\\baaa";
+ int res = scan(str);
+ printf("%d: %s\n", res, str + res);
+ return 0;
+ }
+
++re2c: warning: line 15: rule matches empty string [-Wmatch-empty-string]
--- /dev/null
-
+ /* Generated by re2c */
+ #include <stdlib.h>
+ #include "chunk.h"
+ #include "scanners.h"
+
+ int _scan_at(int (*scanner)(const unsigned char *), cmark_chunk *c, int offset)
+ {
+ int res;
+ unsigned char *ptr = (unsigned char *)c->data;
+ unsigned char lim = ptr[c->len];
+
+ ptr[c->len] = '\0';
+ res = scanner(ptr + offset);
+ ptr[c->len] = lim;
+
+ return res;
+ }
+
+
+
+ // Try to match URI autolink after first <, returning number of chars matched.
+ int _scan_autolink_uri(const unsigned char *p)
+ {
+ const unsigned char *marker = NULL;
+ const unsigned char *start = p;
+
+ {
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 0, 128, 0, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ };
- if (yych <= 'S') {
- if (yych <= 'L') {
- if (yych == 'A') goto yy227;
- if (yych <= 'K') goto yy2;
- goto yy226;
- } else {
- if (yych <= 'O') {
- if (yych <= 'N') goto yy2;
- goto yy228;
- } else {
- if (yych <= 'Q') goto yy2;
- if (yych <= 'R') goto yy225;
- goto yy224;
- }
- }
- } else {
- if (yych <= 'n') {
- if (yych <= 'a') {
- if (yych <= '`') goto yy2;
- goto yy227;
- } else {
- if (yych == 'l') goto yy226;
- goto yy2;
- }
- } else {
- if (yych <= 'q') {
- if (yych <= 'o') goto yy228;
- goto yy2;
- } else {
- if (yych <= 'r') goto yy225;
- if (yych <= 's') goto yy224;
- goto yy2;
- }
- }
+ yych = *p;
+ switch (yych) {
+ case '\n': goto yy2;
+ case 'A':
+ case 'a': goto yy6;
+ case 'B':
+ case 'b': goto yy24;
+ case 'C':
+ case 'c': goto yy3;
+ case 'D':
+ case 'd': goto yy4;
+ case 'E':
+ case 'e': goto yy25;
+ case 'F':
+ case 'f': goto yy7;
+ case 'G':
+ case 'g': goto yy8;
+ case 'H':
+ case 'h': goto yy9;
+ case 'I':
+ case 'i': goto yy10;
+ case 'J':
+ case 'j': goto yy5;
+ case 'K':
+ case 'k': goto yy26;
+ case 'L':
+ case 'l': goto yy11;
+ case 'M':
+ case 'm': goto yy12;
+ case 'N':
+ case 'n': goto yy13;
+ case 'O':
+ case 'o': goto yy14;
+ case 'P':
+ case 'p': goto yy15;
+ case 'Q':
+ case 'q': goto yy27;
+ case 'R':
+ case 'r': goto yy16;
+ case 'S':
+ case 's': goto yy17;
+ case 'T':
+ case 't': goto yy18;
+ case 'U':
+ case 'u': goto yy19;
+ case 'V':
+ case 'v': goto yy20;
+ case 'W':
+ case 'w': goto yy21;
+ case 'X':
+ case 'x': goto yy22;
+ case 'Y':
+ case 'y': goto yy28;
+ case 'Z':
+ case 'z': goto yy23;
+ default: goto yy29;
+ }
+ yy2:
+ { return 0; }
+ yy3:
+ yych = *(marker = ++p);
+ switch (yych) {
+ case 'A':
+ case 'a': goto yy442;
+ case 'H':
+ case 'h': goto yy441;
+ case 'I':
+ case 'i': goto yy444;
+ case 'O':
+ case 'o': goto yy440;
+ case 'R':
+ case 'r': goto yy443;
+ case 'V':
+ case 'v': goto yy439;
+ default: goto yy2;
+ }
+ yy4:
+ yych = *(marker = ++p);
+ switch (yych) {
+ case 'A':
+ case 'a': goto yy415;
+ case 'I':
+ case 'i': goto yy414;
+ case 'L':
+ case 'l': goto yy412;
+ case 'N':
+ case 'n': goto yy413;
+ case 'O':
+ case 'o': goto yy416;
+ case 'T':
+ case 't': goto yy411;
+ case 'V':
+ case 'v': goto yy410;
+ default: goto yy2;
+ }
+ yy5:
+ yych = *(marker = ++p);
+ if (yych <= 'M') {
+ if (yych == 'A') goto yy402;
+ if (yych <= 'L') goto yy2;
+ goto yy401;
+ } else {
+ if (yych <= 'a') {
+ if (yych <= '`') goto yy2;
+ goto yy402;
+ } else {
+ if (yych == 'm') goto yy401;
+ goto yy2;
+ }
+ }
+ yy6:
+ yych = *(marker = ++p);
+ switch (yych) {
+ case 'A':
+ case 'a': goto yy383;
+ case 'B':
+ case 'b': goto yy382;
+ case 'C':
+ case 'c': goto yy381;
+ case 'D':
+ case 'd': goto yy380;
+ case 'F':
+ case 'f': goto yy379;
+ case 'I':
+ case 'i': goto yy378;
+ case 'P':
+ case 'p': goto yy377;
+ case 'T':
+ case 't': goto yy376;
+ case 'W':
+ case 'w': goto yy34;
+ default: goto yy2;
+ }
+ yy7:
+ yych = *(marker = ++p);
+ if (yych <= 'T') {
+ if (yych <= 'E') {
+ if (yych == 'A') goto yy363;
+ if (yych <= 'D') goto yy2;
+ goto yy362;
+ } else {
+ if (yych == 'I') goto yy361;
+ if (yych <= 'S') goto yy2;
+ goto yy364;
+ }
+ } else {
+ if (yych <= 'e') {
+ if (yych == 'a') goto yy363;
+ if (yych <= 'd') goto yy2;
+ goto yy362;
+ } else {
+ if (yych <= 'i') {
+ if (yych <= 'h') goto yy2;
+ goto yy361;
+ } else {
+ if (yych == 't') goto yy364;
+ goto yy2;
+ }
+ }
+ }
+ yy8:
+ yych = *(marker = ++p);
+ switch (yych) {
+ case 'E':
+ case 'e': goto yy346;
+ case 'G':
+ case 'g': goto yy34;
+ case 'I':
+ case 'i': goto yy344;
+ case 'O':
+ case 'o': goto yy345;
+ case 'T':
+ case 't': goto yy343;
+ default: goto yy2;
+ }
+ yy9:
+ yych = *(marker = ++p);
+ if (yych <= 'S') {
+ if (yych <= '3') {
+ if (yych <= '2') goto yy2;
+ goto yy339;
+ } else {
+ if (yych == 'C') goto yy337;
+ goto yy2;
+ }
+ } else {
+ if (yych <= 'c') {
+ if (yych <= 'T') goto yy338;
+ if (yych <= 'b') goto yy2;
+ goto yy337;
+ } else {
+ if (yych == 't') goto yy338;
+ goto yy2;
+ }
+ }
+ yy10:
+ yych = *(marker = ++p);
+ switch (yych) {
+ case 'A':
+ case 'a': goto yy319;
+ case 'C':
+ case 'c': goto yy316;
+ case 'M':
+ case 'm': goto yy318;
+ case 'N':
+ case 'n': goto yy317;
+ case 'P':
+ case 'p': goto yy315;
+ case 'R':
+ case 'r': goto yy314;
+ case 'T':
+ case 't': goto yy313;
+ default: goto yy2;
+ }
+ yy11:
+ yych = *(marker = ++p);
+ if (yych <= 'D') {
+ if (yych == 'A') goto yy307;
+ if (yych <= 'C') goto yy2;
+ goto yy306;
+ } else {
+ if (yych <= 'a') {
+ if (yych <= '`') goto yy2;
+ goto yy307;
+ } else {
+ if (yych == 'd') goto yy306;
+ goto yy2;
+ }
+ }
+ yy12:
+ yych = *(marker = ++p);
+ switch (yych) {
+ case 'A':
+ case 'a': goto yy273;
+ case 'E':
+ case 'e': goto yy272;
+ case 'I':
+ case 'i': goto yy275;
+ case 'M':
+ case 'm': goto yy271;
+ case 'S':
+ case 's': goto yy270;
+ case 'T':
+ case 't': goto yy274;
+ case 'U':
+ case 'u': goto yy269;
+ case 'V':
+ case 'v': goto yy268;
+ default: goto yy2;
+ }
+ yy13:
+ yych = *(marker = ++p);
+ switch (yych) {
+ case 'E':
+ case 'e': goto yy263;
+ case 'F':
+ case 'f': goto yy262;
+ case 'I':
+ case 'i': goto yy261;
+ case 'N':
+ case 'n': goto yy260;
+ case 'O':
+ case 'o': goto yy259;
+ default: goto yy2;
+ }
+ yy14:
+ yych = *(marker = ++p);
+ if (yych <= 'P') {
+ if (yych == 'I') goto yy245;
+ if (yych <= 'O') goto yy2;
+ goto yy246;
+ } else {
+ if (yych <= 'i') {
+ if (yych <= 'h') goto yy2;
+ goto yy245;
+ } else {
+ if (yych == 'p') goto yy246;
+ goto yy2;
+ }
+ }
+ yy15:
+ yych = *(marker = ++p);
- if (yych >= '.') goto yy499;
++ switch (yych) {
++ case 'A':
++ case 'a': goto yy227;
++ case 'L':
++ case 'l': goto yy226;
++ case 'O':
++ case 'o': goto yy228;
++ case 'R':
++ case 'r': goto yy225;
++ case 'S':
++ case 's': goto yy224;
++ default: goto yy2;
+ }
+ yy16:
+ yych = *(marker = ++p);
+ if (yych <= 'T') {
+ if (yych <= 'L') {
+ if (yych == 'E') goto yy214;
+ goto yy2;
+ } else {
+ if (yych <= 'M') goto yy213;
+ if (yych <= 'R') goto yy2;
+ if (yych <= 'S') goto yy212;
+ goto yy211;
+ }
+ } else {
+ if (yych <= 'm') {
+ if (yych == 'e') goto yy214;
+ if (yych <= 'l') goto yy2;
+ goto yy213;
+ } else {
+ if (yych <= 'r') goto yy2;
+ if (yych <= 's') goto yy212;
+ if (yych <= 't') goto yy211;
+ goto yy2;
+ }
+ }
+ yy17:
+ yych = *(marker = ++p);
+ switch (yych) {
+ case 'E':
+ case 'e': goto yy167;
+ case 'F':
+ case 'f': goto yy166;
+ case 'G':
+ case 'g': goto yy165;
+ case 'H':
+ case 'h': goto yy170;
+ case 'I':
+ case 'i': goto yy169;
+ case 'K':
+ case 'k': goto yy164;
+ case 'M':
+ case 'm': goto yy163;
+ case 'N':
+ case 'n': goto yy168;
+ case 'O':
+ case 'o': goto yy162;
+ case 'P':
+ case 'p': goto yy161;
+ case 'S':
+ case 's': goto yy160;
+ case 'T':
+ case 't': goto yy159;
+ case 'V':
+ case 'v': goto yy158;
+ default: goto yy2;
+ }
+ yy18:
+ yych = *(marker = ++p);
+ switch (yych) {
+ case 'A':
+ case 'a': goto yy134;
+ case 'E':
+ case 'e': goto yy130;
+ case 'F':
+ case 'f': goto yy133;
+ case 'H':
+ case 'h': goto yy129;
+ case 'I':
+ case 'i': goto yy131;
+ case 'N':
+ case 'n': goto yy132;
+ case 'V':
+ case 'v': goto yy34;
+ default: goto yy2;
+ }
+ yy19:
+ yych = *(marker = ++p);
+ if (yych <= 'T') {
+ if (yych <= 'N') {
+ if (yych == 'D') goto yy121;
+ if (yych <= 'M') goto yy2;
+ goto yy120;
+ } else {
+ if (yych == 'R') goto yy122;
+ if (yych <= 'S') goto yy2;
+ goto yy119;
+ }
+ } else {
+ if (yych <= 'n') {
+ if (yych == 'd') goto yy121;
+ if (yych <= 'm') goto yy2;
+ goto yy120;
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'q') goto yy2;
+ goto yy122;
+ } else {
+ if (yych == 't') goto yy119;
+ goto yy2;
+ }
+ }
+ }
+ yy20:
+ yych = *(marker = ++p);
+ if (yych <= 'I') {
+ if (yych == 'E') goto yy103;
+ if (yych <= 'H') goto yy2;
+ goto yy102;
+ } else {
+ if (yych <= 'e') {
+ if (yych <= 'd') goto yy2;
+ goto yy103;
+ } else {
+ if (yych == 'i') goto yy102;
+ goto yy2;
+ }
+ }
+ yy21:
+ yych = *(marker = ++p);
+ if (yych <= 'Y') {
+ if (yych <= 'R') {
+ if (yych == 'E') goto yy92;
+ goto yy2;
+ } else {
+ if (yych <= 'S') goto yy93;
+ if (yych <= 'T') goto yy91;
+ if (yych <= 'X') goto yy2;
+ goto yy90;
+ }
+ } else {
+ if (yych <= 's') {
+ if (yych == 'e') goto yy92;
+ if (yych <= 'r') goto yy2;
+ goto yy93;
+ } else {
+ if (yych <= 't') goto yy91;
+ if (yych == 'y') goto yy90;
+ goto yy2;
+ }
+ }
+ yy22:
+ yych = *(marker = ++p);
+ if (yych <= 'R') {
+ if (yych <= 'F') {
+ if (yych == 'C') goto yy69;
+ if (yych <= 'E') goto yy2;
+ goto yy67;
+ } else {
+ if (yych == 'M') goto yy68;
+ if (yych <= 'Q') goto yy2;
+ goto yy66;
+ }
+ } else {
+ if (yych <= 'f') {
+ if (yych == 'c') goto yy69;
+ if (yych <= 'e') goto yy2;
+ goto yy67;
+ } else {
+ if (yych <= 'm') {
+ if (yych <= 'l') goto yy2;
+ goto yy68;
+ } else {
+ if (yych == 'r') goto yy66;
+ goto yy2;
+ }
+ }
+ }
+ yy23:
+ yych = *(marker = ++p);
+ if (yych == '3') goto yy61;
+ goto yy2;
+ yy24:
+ yych = *(marker = ++p);
+ if (yych <= 'O') {
+ if (yych <= 'H') {
+ if (yych == 'E') goto yy51;
+ goto yy2;
+ } else {
+ if (yych <= 'I') goto yy50;
+ if (yych <= 'N') goto yy2;
+ goto yy49;
+ }
+ } else {
+ if (yych <= 'h') {
+ if (yych == 'e') goto yy51;
+ goto yy2;
+ } else {
+ if (yych <= 'i') goto yy50;
+ if (yych == 'o') goto yy49;
+ goto yy2;
+ }
+ }
+ yy25:
+ yych = *(marker = ++p);
+ if (yych == 'D') goto yy47;
+ if (yych == 'd') goto yy47;
+ goto yy2;
+ yy26:
+ yych = *(marker = ++p);
+ if (yych == 'E') goto yy42;
+ if (yych == 'e') goto yy42;
+ goto yy2;
+ yy27:
+ yych = *(marker = ++p);
+ if (yych == 'U') goto yy39;
+ if (yych == 'u') goto yy39;
+ goto yy2;
+ yy28:
+ yych = *(marker = ++p);
+ if (yych == 'M') goto yy30;
+ if (yych == 'm') goto yy30;
+ goto yy2;
+ yy29:
+ yych = *++p;
+ goto yy2;
+ yy30:
+ yych = *++p;
+ if (yych == 'S') goto yy32;
+ if (yych == 's') goto yy32;
+ yy31:
+ p = marker;
+ goto yy2;
+ yy32:
+ yych = *++p;
+ if (yych == 'G') goto yy33;
+ if (yych != 'g') goto yy31;
+ yy33:
+ yych = *++p;
+ if (yych == 'R') goto yy34;
+ if (yych != 'r') goto yy31;
+ yy34:
+ yych = *++p;
+ if (yych != ':') goto yy31;
+ yy35:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 128) {
+ goto yy35;
+ }
+ if (yych <= '<') goto yy31;
+ ++p;
+ { return (p - start); }
+ yy39:
+ yych = *++p;
+ if (yych == 'E') goto yy40;
+ if (yych != 'e') goto yy31;
+ yy40:
+ yych = *++p;
+ if (yych == 'R') goto yy41;
+ if (yych != 'r') goto yy31;
+ yy41:
+ yych = *++p;
+ if (yych == 'Y') goto yy34;
+ if (yych == 'y') goto yy34;
+ goto yy31;
+ yy42:
+ yych = *++p;
+ if (yych == 'Y') goto yy43;
+ if (yych != 'y') goto yy31;
+ yy43:
+ yych = *++p;
+ if (yych == 'P') goto yy44;
+ if (yych != 'p') goto yy31;
+ yy44:
+ yych = *++p;
+ if (yych == 'A') goto yy45;
+ if (yych != 'a') goto yy31;
+ yy45:
+ yych = *++p;
+ if (yych == 'R') goto yy46;
+ if (yych != 'r') goto yy31;
+ yy46:
+ yych = *++p;
+ if (yych == 'C') goto yy34;
+ if (yych == 'c') goto yy34;
+ goto yy31;
+ yy47:
+ yych = *++p;
+ if (yych != '2') goto yy31;
+ yych = *++p;
+ if (yych == 'K') goto yy34;
+ if (yych == 'k') goto yy34;
+ goto yy31;
+ yy49:
+ yych = *++p;
+ if (yych == 'L') goto yy60;
+ if (yych == 'l') goto yy60;
+ goto yy31;
+ yy50:
+ yych = *++p;
+ if (yych == 'T') goto yy56;
+ if (yych == 't') goto yy56;
+ goto yy31;
+ yy51:
+ yych = *++p;
+ if (yych == 'S') goto yy52;
+ if (yych != 's') goto yy31;
+ yy52:
+ yych = *++p;
+ if (yych == 'H') goto yy53;
+ if (yych != 'h') goto yy31;
+ yy53:
+ yych = *++p;
+ if (yych == 'A') goto yy54;
+ if (yych != 'a') goto yy31;
+ yy54:
+ yych = *++p;
+ if (yych == 'R') goto yy55;
+ if (yych != 'r') goto yy31;
+ yy55:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy56:
+ yych = *++p;
+ if (yych == 'C') goto yy57;
+ if (yych != 'c') goto yy31;
+ yy57:
+ yych = *++p;
+ if (yych == 'O') goto yy58;
+ if (yych != 'o') goto yy31;
+ yy58:
+ yych = *++p;
+ if (yych == 'I') goto yy59;
+ if (yych != 'i') goto yy31;
+ yy59:
+ yych = *++p;
+ if (yych == 'N') goto yy34;
+ if (yych == 'n') goto yy34;
+ goto yy31;
+ yy60:
+ yych = *++p;
+ if (yych == 'O') goto yy34;
+ if (yych == 'o') goto yy34;
+ goto yy31;
+ yy61:
+ yych = *++p;
+ if (yych != '9') goto yy31;
+ yych = *++p;
+ if (yych != '.') goto yy31;
+ yych = *++p;
+ if (yych != '5') goto yy31;
+ yych = *++p;
+ if (yych != '0') goto yy31;
+ yych = *++p;
+ if (yych <= 'Q') goto yy31;
+ if (yych <= 'S') goto yy34;
+ if (yych <= 'q') goto yy31;
+ if (yych <= 's') goto yy34;
+ goto yy31;
+ yy66:
+ yych = *++p;
+ if (yych == 'I') goto yy34;
+ if (yych == 'i') goto yy34;
+ goto yy31;
+ yy67:
+ yych = *++p;
+ if (yych == 'I') goto yy88;
+ if (yych == 'i') goto yy88;
+ goto yy31;
+ yy68:
+ yych = *++p;
+ if (yych <= 'P') {
+ if (yych == 'L') goto yy78;
+ if (yych <= 'O') goto yy31;
+ goto yy79;
+ } else {
+ if (yych <= 'l') {
+ if (yych <= 'k') goto yy31;
+ goto yy78;
+ } else {
+ if (yych == 'p') goto yy79;
+ goto yy31;
+ }
+ }
+ yy69:
+ yych = *++p;
+ if (yych == 'O') goto yy70;
+ if (yych != 'o') goto yy31;
+ yy70:
+ yych = *++p;
+ if (yych == 'N') goto yy71;
+ if (yych != 'n') goto yy31;
+ yy71:
+ yych = *++p;
+ if (yych == '-') goto yy72;
+ if (yych == ':') goto yy35;
+ goto yy31;
+ yy72:
+ yych = *++p;
+ if (yych == 'U') goto yy73;
+ if (yych != 'u') goto yy31;
+ yy73:
+ yych = *++p;
+ if (yych == 'S') goto yy74;
+ if (yych != 's') goto yy31;
+ yy74:
+ yych = *++p;
+ if (yych == 'E') goto yy75;
+ if (yych != 'e') goto yy31;
+ yy75:
+ yych = *++p;
+ if (yych == 'R') goto yy76;
+ if (yych != 'r') goto yy31;
+ yy76:
+ yych = *++p;
+ if (yych == 'I') goto yy77;
+ if (yych != 'i') goto yy31;
+ yy77:
+ yych = *++p;
+ if (yych == 'D') goto yy34;
+ if (yych == 'd') goto yy34;
+ goto yy31;
+ yy78:
+ yych = *++p;
+ if (yych == 'R') goto yy80;
+ if (yych == 'r') goto yy80;
+ goto yy31;
+ yy79:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy80:
+ yych = *++p;
+ if (yych == 'P') goto yy81;
+ if (yych != 'p') goto yy31;
+ yy81:
+ yych = *++p;
+ if (yych == 'C') goto yy82;
+ if (yych != 'c') goto yy31;
+ yy82:
+ yych = *++p;
+ if (yych != '.') goto yy31;
+ yych = *++p;
+ if (yych == 'B') goto yy84;
+ if (yych != 'b') goto yy31;
+ yy84:
+ yych = *++p;
+ if (yych == 'E') goto yy85;
+ if (yych != 'e') goto yy31;
+ yy85:
+ yych = *++p;
+ if (yych == 'E') goto yy86;
+ if (yych != 'e') goto yy31;
+ yy86:
+ yych = *++p;
+ if (yych == 'P') goto yy87;
+ if (yych != 'p') goto yy31;
+ yy87:
+ yych = *++p;
+ if (yych <= 'R') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ }
+ yy88:
+ yych = *++p;
+ if (yych == 'R') goto yy89;
+ if (yych != 'r') goto yy31;
+ yy89:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy90:
+ yych = *++p;
+ if (yych == 'C') goto yy98;
+ if (yych == 'c') goto yy98;
+ goto yy31;
+ yy91:
+ yych = *++p;
+ if (yych == 'A') goto yy97;
+ if (yych == 'a') goto yy97;
+ goto yy31;
+ yy92:
+ yych = *++p;
+ if (yych == 'B') goto yy94;
+ if (yych == 'b') goto yy94;
+ goto yy31;
+ yy93:
+ yych = *++p;
+ if (yych <= 'R') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ }
+ yy94:
+ yych = *++p;
+ if (yych == 'C') goto yy95;
+ if (yych != 'c') goto yy31;
+ yy95:
+ yych = *++p;
+ if (yych == 'A') goto yy96;
+ if (yych != 'a') goto yy31;
+ yy96:
+ yych = *++p;
+ if (yych == 'L') goto yy34;
+ if (yych == 'l') goto yy34;
+ goto yy31;
+ yy97:
+ yych = *++p;
+ if (yych == 'I') goto yy34;
+ if (yych == 'i') goto yy34;
+ goto yy31;
+ yy98:
+ yych = *++p;
+ if (yych == 'I') goto yy99;
+ if (yych != 'i') goto yy31;
+ yy99:
+ yych = *++p;
+ if (yych == 'W') goto yy100;
+ if (yych != 'w') goto yy31;
+ yy100:
+ yych = *++p;
+ if (yych == 'Y') goto yy101;
+ if (yych != 'y') goto yy31;
+ yy101:
+ yych = *++p;
+ if (yych == 'G') goto yy34;
+ if (yych == 'g') goto yy34;
+ goto yy31;
+ yy102:
+ yych = *++p;
+ if (yych == 'E') goto yy111;
+ if (yych == 'e') goto yy111;
+ goto yy31;
+ yy103:
+ yych = *++p;
+ if (yych <= 'N') {
+ if (yych <= 'L') goto yy31;
+ if (yych >= 'N') goto yy105;
+ } else {
+ if (yych <= 'l') goto yy31;
+ if (yych <= 'm') goto yy104;
+ if (yych <= 'n') goto yy105;
+ goto yy31;
+ }
+ yy104:
+ yych = *++p;
+ if (yych == 'M') goto yy110;
+ if (yych == 'm') goto yy110;
+ goto yy31;
+ yy105:
+ yych = *++p;
+ if (yych == 'T') goto yy106;
+ if (yych != 't') goto yy31;
+ yy106:
+ yych = *++p;
+ if (yych == 'R') goto yy107;
+ if (yych != 'r') goto yy31;
+ yy107:
+ yych = *++p;
+ if (yych == 'I') goto yy108;
+ if (yych != 'i') goto yy31;
+ yy108:
+ yych = *++p;
+ if (yych == 'L') goto yy109;
+ if (yych != 'l') goto yy31;
+ yy109:
+ yych = *++p;
+ if (yych == 'O') goto yy34;
+ if (yych == 'o') goto yy34;
+ goto yy31;
+ yy110:
+ yych = *++p;
+ if (yych == 'I') goto yy34;
+ if (yych == 'i') goto yy34;
+ goto yy31;
+ yy111:
+ yych = *++p;
+ if (yych == 'W') goto yy112;
+ if (yych != 'w') goto yy31;
+ yy112:
+ yych = *++p;
+ if (yych != '-') goto yy31;
+ yych = *++p;
+ if (yych == 'S') goto yy114;
+ if (yych != 's') goto yy31;
+ yy114:
+ yych = *++p;
+ if (yych == 'O') goto yy115;
+ if (yych != 'o') goto yy31;
+ yy115:
+ yych = *++p;
+ if (yych == 'U') goto yy116;
+ if (yych != 'u') goto yy31;
+ yy116:
+ yych = *++p;
+ if (yych == 'R') goto yy117;
+ if (yych != 'r') goto yy31;
+ yy117:
+ yych = *++p;
+ if (yych == 'C') goto yy118;
+ if (yych != 'c') goto yy31;
+ yy118:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy119:
+ yych = *++p;
+ if (yych == '2') goto yy126;
+ goto yy31;
+ yy120:
+ yych = *++p;
+ if (yych == 'R') goto yy123;
+ if (yych == 'r') goto yy123;
+ goto yy31;
+ yy121:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy122:
+ yych = *++p;
+ if (yych == 'N') goto yy34;
+ if (yych == 'n') goto yy34;
+ goto yy31;
+ yy123:
+ yych = *++p;
+ if (yych == 'E') goto yy124;
+ if (yych != 'e') goto yy31;
+ yy124:
+ yych = *++p;
+ if (yych == 'A') goto yy125;
+ if (yych != 'a') goto yy31;
+ yy125:
+ yych = *++p;
+ if (yych == 'L') goto yy34;
+ if (yych == 'l') goto yy34;
+ goto yy31;
+ yy126:
+ yych = *++p;
+ if (yych != '0') goto yy31;
+ yych = *++p;
+ if (yych != '0') goto yy31;
+ yych = *++p;
+ if (yych == '4') goto yy34;
+ goto yy31;
+ yy129:
+ yych = *++p;
+ if (yych == 'I') goto yy148;
+ if (yych == 'i') goto yy148;
+ goto yy31;
+ yy130:
+ yych = *++p;
+ if (yych <= 'L') {
+ if (yych == 'A') goto yy140;
+ if (yych <= 'K') goto yy31;
+ goto yy139;
+ } else {
+ if (yych <= 'a') {
+ if (yych <= '`') goto yy31;
+ goto yy140;
+ } else {
+ if (yych == 'l') goto yy139;
+ goto yy31;
+ }
+ }
+ yy131:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy132:
+ yych = *++p;
+ if (yych == '3') goto yy136;
+ goto yy31;
+ yy133:
+ yych = *++p;
+ if (yych == 'T') goto yy135;
+ if (yych == 't') goto yy135;
+ goto yy31;
+ yy134:
+ yych = *++p;
+ if (yych == 'G') goto yy34;
+ if (yych == 'g') goto yy34;
+ goto yy31;
+ yy135:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy136:
+ yych = *++p;
+ if (yych != '2') goto yy31;
+ yych = *++p;
+ if (yych != '7') goto yy31;
+ yych = *++p;
+ if (yych == '0') goto yy34;
+ goto yy31;
+ yy139:
+ yych = *++p;
+ if (yych <= 'M') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'N') goto yy146;
+ if (yych == 'n') goto yy146;
+ goto yy31;
+ }
+ yy140:
+ yych = *++p;
+ if (yych == 'M') goto yy141;
+ if (yych != 'm') goto yy31;
+ yy141:
+ yych = *++p;
+ if (yych == 'S') goto yy142;
+ if (yych != 's') goto yy31;
+ yy142:
+ yych = *++p;
+ if (yych == 'P') goto yy143;
+ if (yych != 'p') goto yy31;
+ yy143:
+ yych = *++p;
+ if (yych == 'E') goto yy144;
+ if (yych != 'e') goto yy31;
+ yy144:
+ yych = *++p;
+ if (yych == 'A') goto yy145;
+ if (yych != 'a') goto yy31;
+ yy145:
+ yych = *++p;
+ if (yych == 'K') goto yy34;
+ if (yych == 'k') goto yy34;
+ goto yy31;
+ yy146:
+ yych = *++p;
+ if (yych == 'E') goto yy147;
+ if (yych != 'e') goto yy31;
+ yy147:
+ yych = *++p;
+ if (yych == 'T') goto yy34;
+ if (yych == 't') goto yy34;
+ goto yy31;
+ yy148:
+ yych = *++p;
+ if (yych <= 'S') {
+ if (yych == 'N') goto yy149;
+ if (yych <= 'R') goto yy31;
+ goto yy150;
+ } else {
+ if (yych <= 'n') {
+ if (yych <= 'm') goto yy31;
+ } else {
+ if (yych == 's') goto yy150;
+ goto yy31;
+ }
+ }
+ yy149:
+ yych = *++p;
+ if (yych == 'G') goto yy157;
+ if (yych == 'g') goto yy157;
+ goto yy31;
+ yy150:
+ yych = *++p;
+ if (yych == 'M') goto yy151;
+ if (yych != 'm') goto yy31;
+ yy151:
+ yych = *++p;
+ if (yych == 'E') goto yy152;
+ if (yych != 'e') goto yy31;
+ yy152:
+ yych = *++p;
+ if (yych == 'S') goto yy153;
+ if (yych != 's') goto yy31;
+ yy153:
+ yych = *++p;
+ if (yych == 'S') goto yy154;
+ if (yych != 's') goto yy31;
+ yy154:
+ yych = *++p;
+ if (yych == 'A') goto yy155;
+ if (yych != 'a') goto yy31;
+ yy155:
+ yych = *++p;
+ if (yych == 'G') goto yy156;
+ if (yych != 'g') goto yy31;
+ yy156:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy157:
+ yych = *++p;
+ if (yych == 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ yy158:
+ yych = *++p;
+ if (yych == 'N') goto yy34;
+ if (yych == 'n') goto yy34;
+ goto yy31;
+ yy159:
+ yych = *++p;
+ if (yych == 'E') goto yy209;
+ if (yych == 'e') goto yy209;
+ goto yy31;
+ yy160:
+ yych = *++p;
+ if (yych == 'H') goto yy34;
+ if (yych == 'h') goto yy34;
+ goto yy31;
+ yy161:
+ yych = *++p;
+ if (yych == 'O') goto yy205;
+ if (yych == 'o') goto yy205;
+ goto yy31;
+ yy162:
+ yych = *++p;
+ if (yych <= 'L') {
+ if (yych == 'A') goto yy195;
+ if (yych <= 'K') goto yy31;
+ goto yy196;
+ } else {
+ if (yych <= 'a') {
+ if (yych <= '`') goto yy31;
+ goto yy195;
+ } else {
+ if (yych == 'l') goto yy196;
+ goto yy31;
+ }
+ }
+ yy163:
+ yych = *++p;
+ if (yych <= 'S') {
+ if (yych == 'B') goto yy34;
+ if (yych <= 'R') goto yy31;
+ goto yy34;
+ } else {
+ if (yych <= 'b') {
+ if (yych <= 'a') goto yy31;
+ goto yy34;
+ } else {
+ if (yych == 's') goto yy34;
+ goto yy31;
+ }
+ }
+ yy164:
+ yych = *++p;
+ if (yych == 'Y') goto yy193;
+ if (yych == 'y') goto yy193;
+ goto yy31;
+ yy165:
+ yych = *++p;
+ if (yych == 'N') goto yy34;
+ if (yych == 'n') goto yy34;
+ goto yy31;
+ yy166:
+ yych = *++p;
+ if (yych == 'T') goto yy192;
+ if (yych == 't') goto yy192;
+ goto yy31;
+ yy167:
+ yych = *++p;
+ if (yych <= 'S') {
+ if (yych <= 'C') {
+ if (yych <= 'B') goto yy31;
+ goto yy179;
+ } else {
+ if (yych <= 'Q') goto yy31;
+ if (yych <= 'R') goto yy177;
+ goto yy178;
+ }
+ } else {
+ if (yych <= 'q') {
+ if (yych == 'c') goto yy179;
+ goto yy31;
+ } else {
+ if (yych <= 'r') goto yy177;
+ if (yych <= 's') goto yy178;
+ goto yy31;
+ }
+ }
+ yy168:
+ yych = *++p;
+ if (yych == 'M') goto yy176;
+ if (yych == 'm') goto yy176;
+ goto yy31;
+ yy169:
+ yych = *++p;
+ if (yych <= 'P') {
+ if (yych == 'E') goto yy173;
+ if (yych <= 'O') goto yy31;
+ goto yy174;
+ } else {
+ if (yych <= 'e') {
+ if (yych <= 'd') goto yy31;
+ goto yy173;
+ } else {
+ if (yych == 'p') goto yy174;
+ goto yy31;
+ }
+ }
+ yy170:
+ yych = *++p;
+ if (yych == 'T') goto yy171;
+ if (yych != 't') goto yy31;
+ yy171:
+ yych = *++p;
+ if (yych == 'T') goto yy172;
+ if (yych != 't') goto yy31;
+ yy172:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy173:
+ yych = *++p;
+ if (yych == 'V') goto yy175;
+ if (yych == 'v') goto yy175;
+ goto yy31;
+ yy174:
+ yych = *++p;
+ if (yych <= 'R') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ }
+ yy175:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy176:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy177:
+ yych = *++p;
+ if (yych == 'V') goto yy189;
+ if (yych == 'v') goto yy189;
+ goto yy31;
+ yy178:
+ yych = *++p;
+ if (yych == 'S') goto yy186;
+ if (yych == 's') goto yy186;
+ goto yy31;
+ yy179:
+ yych = *++p;
+ if (yych == 'O') goto yy180;
+ if (yych != 'o') goto yy31;
+ yy180:
+ yych = *++p;
+ if (yych == 'N') goto yy181;
+ if (yych != 'n') goto yy31;
+ yy181:
+ yych = *++p;
+ if (yych == 'D') goto yy182;
+ if (yych != 'd') goto yy31;
+ yy182:
+ yych = *++p;
+ if (yych == 'L') goto yy183;
+ if (yych != 'l') goto yy31;
+ yy183:
+ yych = *++p;
+ if (yych == 'I') goto yy184;
+ if (yych != 'i') goto yy31;
+ yy184:
+ yych = *++p;
+ if (yych == 'F') goto yy185;
+ if (yych != 'f') goto yy31;
+ yy185:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy186:
+ yych = *++p;
+ if (yych == 'I') goto yy187;
+ if (yych != 'i') goto yy31;
+ yy187:
+ yych = *++p;
+ if (yych == 'O') goto yy188;
+ if (yych != 'o') goto yy31;
+ yy188:
+ yych = *++p;
+ if (yych == 'N') goto yy34;
+ if (yych == 'n') goto yy34;
+ goto yy31;
+ yy189:
+ yych = *++p;
+ if (yych == 'I') goto yy190;
+ if (yych != 'i') goto yy31;
+ yy190:
+ yych = *++p;
+ if (yych == 'C') goto yy191;
+ if (yych != 'c') goto yy31;
+ yy191:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy192:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy193:
+ yych = *++p;
+ if (yych == 'P') goto yy194;
+ if (yych != 'p') goto yy31;
+ yy194:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy195:
+ yych = *++p;
+ if (yych == 'P') goto yy199;
+ if (yych == 'p') goto yy199;
+ goto yy31;
+ yy196:
+ yych = *++p;
+ if (yych == 'D') goto yy197;
+ if (yych != 'd') goto yy31;
+ yy197:
+ yych = *++p;
+ if (yych == 'A') goto yy198;
+ if (yych != 'a') goto yy31;
+ yy198:
+ yych = *++p;
+ if (yych == 'T') goto yy34;
+ if (yych == 't') goto yy34;
+ goto yy31;
+ yy199:
+ yych = *++p;
+ if (yych != '.') goto yy31;
+ yych = *++p;
+ if (yych == 'B') goto yy201;
+ if (yych != 'b') goto yy31;
+ yy201:
+ yych = *++p;
+ if (yych == 'E') goto yy202;
+ if (yych != 'e') goto yy31;
+ yy202:
+ yych = *++p;
+ if (yych == 'E') goto yy203;
+ if (yych != 'e') goto yy31;
+ yy203:
+ yych = *++p;
+ if (yych == 'P') goto yy204;
+ if (yych != 'p') goto yy31;
+ yy204:
+ yych = *++p;
+ if (yych <= 'R') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ }
+ yy205:
+ yych = *++p;
+ if (yych == 'T') goto yy206;
+ if (yych != 't') goto yy31;
+ yy206:
+ yych = *++p;
+ if (yych == 'I') goto yy207;
+ if (yych != 'i') goto yy31;
+ yy207:
+ yych = *++p;
+ if (yych == 'F') goto yy208;
+ if (yych != 'f') goto yy31;
+ yy208:
+ yych = *++p;
+ if (yych == 'Y') goto yy34;
+ if (yych == 'y') goto yy34;
+ goto yy31;
+ yy209:
+ yych = *++p;
+ if (yych == 'A') goto yy210;
+ if (yych != 'a') goto yy31;
+ yy210:
+ yych = *++p;
+ if (yych == 'M') goto yy34;
+ if (yych == 'm') goto yy34;
+ goto yy31;
+ yy211:
+ yych = *++p;
+ if (yych <= 'S') {
+ if (yych == 'M') goto yy223;
+ if (yych <= 'R') goto yy31;
+ goto yy222;
+ } else {
+ if (yych <= 'm') {
+ if (yych <= 'l') goto yy31;
+ goto yy223;
+ } else {
+ if (yych == 's') goto yy222;
+ goto yy31;
+ }
+ }
+ yy212:
+ yych = *++p;
+ if (yych == 'Y') goto yy220;
+ if (yych == 'y') goto yy220;
+ goto yy31;
+ yy213:
+ yych = *++p;
+ if (yych == 'I') goto yy34;
+ if (yych == 'i') goto yy34;
+ goto yy31;
+ yy214:
+ yych = *++p;
+ if (yych == 'S') goto yy215;
+ if (yych != 's') goto yy31;
+ yy215:
+ yych = *++p;
+ if (yych <= 'N') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'O') goto yy216;
+ if (yych != 'o') goto yy31;
+ }
+ yy216:
+ yych = *++p;
+ if (yych == 'U') goto yy217;
+ if (yych != 'u') goto yy31;
+ yy217:
+ yych = *++p;
+ if (yych == 'R') goto yy218;
+ if (yych != 'r') goto yy31;
+ yy218:
+ yych = *++p;
+ if (yych == 'C') goto yy219;
+ if (yych != 'c') goto yy31;
+ yy219:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy220:
+ yych = *++p;
+ if (yych == 'N') goto yy221;
+ if (yych != 'n') goto yy31;
+ yy221:
+ yych = *++p;
+ if (yych == 'C') goto yy34;
+ if (yych == 'c') goto yy34;
+ goto yy31;
+ yy222:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy223:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy224:
+ yych = *++p;
+ if (yych == 'Y') goto yy244;
+ if (yych == 'y') goto yy244;
+ goto yy31;
+ yy225:
+ yych = *++p;
+ if (yych <= 'O') {
+ if (yych == 'E') goto yy241;
+ if (yych <= 'N') goto yy31;
+ goto yy242;
+ } else {
+ if (yych <= 'e') {
+ if (yych <= 'd') goto yy31;
+ goto yy241;
+ } else {
+ if (yych == 'o') goto yy242;
+ goto yy31;
+ }
+ }
+ yy226:
+ yych = *++p;
+ if (yych == 'A') goto yy236;
+ if (yych == 'a') goto yy236;
+ goto yy31;
+ yy227:
+ yych = *++p;
+ if (yych <= 'P') {
+ if (yych == 'L') goto yy229;
+ if (yych <= 'O') goto yy31;
+ goto yy230;
+ } else {
+ if (yych <= 'l') {
+ if (yych <= 'k') goto yy31;
+ goto yy229;
+ } else {
+ if (yych == 'p') goto yy230;
+ goto yy31;
+ }
+ }
+ yy228:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy229:
+ yych = *++p;
+ if (yych == 'M') goto yy34;
+ if (yych == 'm') goto yy34;
+ goto yy31;
+ yy230:
+ yych = *++p;
+ if (yych == 'A') goto yy231;
+ if (yych != 'a') goto yy31;
+ yy231:
+ yych = *++p;
+ if (yych == 'R') goto yy232;
+ if (yych != 'r') goto yy31;
+ yy232:
+ yych = *++p;
+ if (yych == 'A') goto yy233;
+ if (yych != 'a') goto yy31;
+ yy233:
+ yych = *++p;
+ if (yych == 'Z') goto yy234;
+ if (yych != 'z') goto yy31;
+ yy234:
+ yych = *++p;
+ if (yych == 'Z') goto yy235;
+ if (yych != 'z') goto yy31;
+ yy235:
+ yych = *++p;
+ if (yych == 'I') goto yy34;
+ if (yych == 'i') goto yy34;
+ goto yy31;
+ yy236:
+ yych = *++p;
+ if (yych == 'T') goto yy237;
+ if (yych != 't') goto yy31;
+ yy237:
+ yych = *++p;
+ if (yych == 'F') goto yy238;
+ if (yych != 'f') goto yy31;
+ yy238:
+ yych = *++p;
+ if (yych == 'O') goto yy239;
+ if (yych != 'o') goto yy31;
+ yy239:
+ yych = *++p;
+ if (yych == 'R') goto yy240;
+ if (yych != 'r') goto yy31;
+ yy240:
+ yych = *++p;
+ if (yych == 'M') goto yy34;
+ if (yych == 'm') goto yy34;
+ goto yy31;
+ yy241:
+ yych = *++p;
+ if (yych == 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ yy242:
+ yych = *++p;
+ if (yych == 'X') goto yy243;
+ if (yych != 'x') goto yy31;
+ yy243:
+ yych = *++p;
+ if (yych == 'Y') goto yy34;
+ if (yych == 'y') goto yy34;
+ goto yy31;
+ yy244:
+ yych = *++p;
+ if (yych == 'C') goto yy34;
+ if (yych == 'c') goto yy34;
+ goto yy31;
+ yy245:
+ yych = *++p;
+ if (yych == 'D') goto yy34;
+ if (yych == 'd') goto yy34;
+ goto yy31;
+ yy246:
+ yych = *++p;
+ if (yych == 'A') goto yy247;
+ if (yych != 'a') goto yy31;
+ yy247:
+ yych = *++p;
+ if (yych == 'Q') goto yy248;
+ if (yych != 'q') goto yy31;
+ yy248:
+ yych = *++p;
+ if (yych == 'U') goto yy249;
+ if (yych != 'u') goto yy31;
+ yy249:
+ yych = *++p;
+ if (yych == 'E') goto yy250;
+ if (yych != 'e') goto yy31;
+ yy250:
+ yych = *++p;
+ if (yych == 'L') goto yy251;
+ if (yych != 'l') goto yy31;
+ yy251:
+ yych = *++p;
+ if (yych == 'O') goto yy252;
+ if (yych != 'o') goto yy31;
+ yy252:
+ yych = *++p;
+ if (yych == 'C') goto yy253;
+ if (yych != 'c') goto yy31;
+ yy253:
+ yych = *++p;
+ if (yych == 'K') goto yy254;
+ if (yych != 'k') goto yy31;
+ yy254:
+ yych = *++p;
+ if (yych == 'T') goto yy255;
+ if (yych != 't') goto yy31;
+ yy255:
+ yych = *++p;
+ if (yych == 'O') goto yy256;
+ if (yych != 'o') goto yy31;
+ yy256:
+ yych = *++p;
+ if (yych == 'K') goto yy257;
+ if (yych != 'k') goto yy31;
+ yy257:
+ yych = *++p;
+ if (yych == 'E') goto yy258;
+ if (yych != 'e') goto yy31;
+ yy258:
+ yych = *++p;
+ if (yych == 'N') goto yy34;
+ if (yych == 'n') goto yy34;
+ goto yy31;
+ yy259:
+ yych = *++p;
+ if (yych == 'T') goto yy266;
+ if (yych == 't') goto yy266;
+ goto yy31;
+ yy260:
+ yych = *++p;
+ if (yych == 'T') goto yy265;
+ if (yych == 't') goto yy265;
+ goto yy31;
+ yy261:
+ yych = *++p;
+ if (yych <= 'G') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'H') goto yy34;
+ if (yych == 'h') goto yy34;
+ goto yy31;
+ }
+ yy262:
+ yych = *++p;
+ if (yych == 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ yy263:
+ yych = *++p;
+ if (yych == 'W') goto yy264;
+ if (yych != 'w') goto yy31;
+ yy264:
+ yych = *++p;
+ if (yych == 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ yy265:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy266:
+ yych = *++p;
+ if (yych == 'E') goto yy267;
+ if (yych != 'e') goto yy31;
+ yy267:
+ yych = *++p;
+ if (yych == 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ yy268:
+ yych = *++p;
+ if (yych == 'N') goto yy34;
+ if (yych == 'n') goto yy34;
+ goto yy31;
+ yy269:
+ yych = *++p;
+ if (yych <= 'P') {
+ if (yych == 'M') goto yy300;
+ if (yych <= 'O') goto yy31;
+ goto yy299;
+ } else {
+ if (yych <= 'm') {
+ if (yych <= 'l') goto yy31;
+ goto yy300;
+ } else {
+ if (yych == 'p') goto yy299;
+ goto yy31;
+ }
+ }
+ yy270:
+ yych = *++p;
+ if (yych <= 'Q') {
+ if (yych <= '-') {
+ if (yych <= ',') goto yy31;
+ goto yy292;
+ } else {
+ if (yych == 'N') goto yy293;
+ goto yy31;
+ }
+ } else {
+ if (yych <= 'n') {
+ if (yych <= 'R') goto yy291;
+ if (yych <= 'm') goto yy31;
+ goto yy293;
+ } else {
+ if (yych == 'r') goto yy291;
+ goto yy31;
+ }
+ }
+ yy271:
+ yych = *++p;
+ if (yych == 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ yy272:
+ yych = *++p;
+ if (yych == 'S') goto yy287;
+ if (yych == 's') goto yy287;
+ goto yy31;
+ yy273:
+ yych = *++p;
+ switch (yych) {
+ case 'G':
+ case 'g': goto yy278;
+ case 'I':
+ case 'i': goto yy277;
+ case 'P':
+ case 'p': goto yy279;
+ case 'R':
+ case 'r': goto yy280;
+ default: goto yy31;
+ }
+ yy274:
+ yych = *++p;
+ if (yych == 'Q') goto yy276;
+ if (yych == 'q') goto yy276;
+ goto yy31;
+ yy275:
+ yych = *++p;
+ if (yych == 'D') goto yy34;
+ if (yych == 'd') goto yy34;
+ goto yy31;
+ yy276:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy277:
+ yych = *++p;
+ if (yych == 'L') goto yy285;
+ if (yych == 'l') goto yy285;
+ goto yy31;
+ yy278:
+ yych = *++p;
+ if (yych == 'N') goto yy283;
+ if (yych == 'n') goto yy283;
+ goto yy31;
+ yy279:
+ yych = *++p;
+ if (yych == 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ yy280:
+ yych = *++p;
+ if (yych == 'K') goto yy281;
+ if (yych != 'k') goto yy31;
+ yy281:
+ yych = *++p;
+ if (yych == 'E') goto yy282;
+ if (yych != 'e') goto yy31;
+ yy282:
+ yych = *++p;
+ if (yych == 'T') goto yy34;
+ if (yych == 't') goto yy34;
+ goto yy31;
+ yy283:
+ yych = *++p;
+ if (yych == 'E') goto yy284;
+ if (yych != 'e') goto yy31;
+ yy284:
+ yych = *++p;
+ if (yych == 'T') goto yy34;
+ if (yych == 't') goto yy34;
+ goto yy31;
+ yy285:
+ yych = *++p;
+ if (yych == 'T') goto yy286;
+ if (yych != 't') goto yy31;
+ yy286:
+ yych = *++p;
+ if (yych == 'O') goto yy34;
+ if (yych == 'o') goto yy34;
+ goto yy31;
+ yy287:
+ yych = *++p;
+ if (yych == 'S') goto yy288;
+ if (yych != 's') goto yy31;
+ yy288:
+ yych = *++p;
+ if (yych == 'A') goto yy289;
+ if (yych != 'a') goto yy31;
+ yy289:
+ yych = *++p;
+ if (yych == 'G') goto yy290;
+ if (yych != 'g') goto yy31;
+ yy290:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy291:
+ yych = *++p;
+ if (yych == 'P') goto yy298;
+ if (yych == 'p') goto yy298;
+ goto yy31;
+ yy292:
+ yych = *++p;
+ if (yych == 'H') goto yy295;
+ if (yych == 'h') goto yy295;
+ goto yy31;
+ yy293:
+ yych = *++p;
+ if (yych == 'I') goto yy294;
+ if (yych != 'i') goto yy31;
+ yy294:
+ yych = *++p;
+ if (yych == 'M') goto yy34;
+ if (yych == 'm') goto yy34;
+ goto yy31;
+ yy295:
+ yych = *++p;
+ if (yych == 'E') goto yy296;
+ if (yych != 'e') goto yy31;
+ yy296:
+ yych = *++p;
+ if (yych == 'L') goto yy297;
+ if (yych != 'l') goto yy31;
+ yy297:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy298:
+ yych = *++p;
+ if (yych <= 'R') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ }
+ yy299:
+ yych = *++p;
+ if (yych == 'D') goto yy303;
+ if (yych == 'd') goto yy303;
+ goto yy31;
+ yy300:
+ yych = *++p;
+ if (yych == 'B') goto yy301;
+ if (yych != 'b') goto yy31;
+ yy301:
+ yych = *++p;
+ if (yych == 'L') goto yy302;
+ if (yych != 'l') goto yy31;
+ yy302:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy303:
+ yych = *++p;
+ if (yych == 'A') goto yy304;
+ if (yych != 'a') goto yy31;
+ yy304:
+ yych = *++p;
+ if (yych == 'T') goto yy305;
+ if (yych != 't') goto yy31;
+ yy305:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy306:
+ yych = *++p;
+ if (yych == 'A') goto yy311;
+ if (yych == 'a') goto yy311;
+ goto yy31;
+ yy307:
+ yych = *++p;
+ if (yych == 'S') goto yy308;
+ if (yych != 's') goto yy31;
+ yy308:
+ yych = *++p;
+ if (yych == 'T') goto yy309;
+ if (yych != 't') goto yy31;
+ yy309:
+ yych = *++p;
+ if (yych == 'F') goto yy310;
+ if (yych != 'f') goto yy31;
+ yy310:
+ yych = *++p;
+ if (yych == 'M') goto yy34;
+ if (yych == 'm') goto yy34;
+ goto yy31;
+ yy311:
+ yych = *++p;
+ if (yych == 'P') goto yy312;
+ if (yych != 'p') goto yy31;
+ yy312:
+ yych = *++p;
+ if (yych <= 'R') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ }
+ yy313:
+ yych = *++p;
+ if (yych == 'M') goto yy336;
+ if (yych == 'm') goto yy336;
+ goto yy31;
+ yy314:
+ yych = *++p;
+ if (yych <= 'I') {
+ if (yych == 'C') goto yy325;
+ if (yych <= 'H') goto yy31;
+ goto yy324;
+ } else {
+ if (yych <= 'c') {
+ if (yych <= 'b') goto yy31;
+ goto yy325;
+ } else {
+ if (yych == 'i') goto yy324;
+ goto yy31;
+ }
+ }
+ yy315:
+ yych = *++p;
+ if (yych <= 'P') {
+ if (yych == 'N') goto yy34;
+ if (yych <= 'O') goto yy31;
+ goto yy34;
+ } else {
+ if (yych <= 'n') {
+ if (yych <= 'm') goto yy31;
+ goto yy34;
+ } else {
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ }
+ }
+ yy316:
+ yych = *++p;
+ if (yych <= 'O') {
+ if (yych == 'A') goto yy322;
+ if (yych <= 'N') goto yy31;
+ goto yy323;
+ } else {
+ if (yych <= 'a') {
+ if (yych <= '`') goto yy31;
+ goto yy322;
+ } else {
+ if (yych == 'o') goto yy323;
+ goto yy31;
+ }
+ }
+ yy317:
+ yych = *++p;
+ if (yych == 'F') goto yy321;
+ if (yych == 'f') goto yy321;
+ goto yy31;
+ yy318:
+ yych = *++p;
+ if (yych <= '@') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'A') goto yy320;
+ if (yych == 'a') goto yy320;
+ goto yy31;
+ }
+ yy319:
+ yych = *++p;
+ if (yych == 'X') goto yy34;
+ if (yych == 'x') goto yy34;
+ goto yy31;
+ yy320:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy321:
+ yych = *++p;
+ if (yych == 'O') goto yy34;
+ if (yych == 'o') goto yy34;
+ goto yy31;
+ yy322:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy323:
+ yych = *++p;
+ if (yych == 'N') goto yy34;
+ if (yych == 'n') goto yy34;
+ goto yy31;
+ yy324:
+ yych = *++p;
+ if (yych == 'S') goto yy326;
+ if (yych == 's') goto yy326;
+ goto yy31;
+ yy325:
+ yych = *++p;
+ if (yych <= ':') {
+ if (yych == '6') goto yy34;
+ if (yych <= '9') goto yy31;
+ goto yy35;
+ } else {
+ if (yych <= 'S') {
+ if (yych <= 'R') goto yy31;
+ goto yy34;
+ } else {
+ if (yych == 's') goto yy34;
+ goto yy31;
+ }
+ }
+ yy326:
+ yych = *++p;
+ if (yych == '.') goto yy327;
+ if (yych == ':') goto yy35;
+ goto yy31;
+ yy327:
+ yych = *++p;
+ if (yych <= 'X') {
+ if (yych <= 'K') {
+ if (yych == 'B') goto yy330;
+ goto yy31;
+ } else {
+ if (yych <= 'L') goto yy328;
+ if (yych <= 'W') goto yy31;
+ goto yy329;
+ }
+ } else {
+ if (yych <= 'k') {
+ if (yych == 'b') goto yy330;
+ goto yy31;
+ } else {
+ if (yych <= 'l') goto yy328;
+ if (yych == 'x') goto yy329;
+ goto yy31;
+ }
+ }
+ yy328:
+ yych = *++p;
+ if (yych == 'W') goto yy335;
+ if (yych == 'w') goto yy335;
+ goto yy31;
+ yy329:
+ yych = *++p;
+ if (yych == 'P') goto yy333;
+ if (yych == 'p') goto yy333;
+ goto yy31;
+ yy330:
+ yych = *++p;
+ if (yych == 'E') goto yy331;
+ if (yych != 'e') goto yy31;
+ yy331:
+ yych = *++p;
+ if (yych == 'E') goto yy332;
+ if (yych != 'e') goto yy31;
+ yy332:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy333:
+ yych = *++p;
+ if (yych == 'C') goto yy334;
+ if (yych != 'c') goto yy31;
+ yy334:
+ yych = *++p;
+ if (yych <= 'R') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ }
+ yy335:
+ yych = *++p;
+ if (yych == 'Z') goto yy34;
+ if (yych == 'z') goto yy34;
+ goto yy31;
+ yy336:
+ yych = *++p;
+ if (yych == 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ yy337:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy338:
+ yych = *++p;
+ if (yych == 'T') goto yy341;
+ if (yych == 't') goto yy341;
+ goto yy31;
+ yy339:
+ yych = *++p;
+ if (yych != '2') goto yy31;
+ yych = *++p;
+ if (yych == '3') goto yy34;
+ goto yy31;
+ yy341:
+ yych = *++p;
+ if (yych == 'P') goto yy342;
+ if (yych != 'p') goto yy31;
+ yy342:
+ yych = *++p;
+ if (yych <= 'R') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ }
+ yy343:
+ yych = *++p;
+ if (yych == 'A') goto yy359;
+ if (yych == 'a') goto yy359;
+ goto yy31;
+ yy344:
+ yych = *++p;
+ if (yych <= 'Z') {
+ if (yych == 'T') goto yy34;
+ if (yych <= 'Y') goto yy31;
+ goto yy350;
+ } else {
+ if (yych <= 't') {
+ if (yych <= 's') goto yy31;
+ goto yy34;
+ } else {
+ if (yych == 'z') goto yy350;
+ goto yy31;
+ }
+ }
+ yy345:
+ yych = *++p;
+ if (yych <= 'O') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'P') goto yy347;
+ if (yych == 'p') goto yy347;
+ goto yy31;
+ }
+ yy346:
+ yych = *++p;
+ if (yych == 'O') goto yy34;
+ if (yych == 'o') goto yy34;
+ goto yy31;
+ yy347:
+ yych = *++p;
+ if (yych == 'H') goto yy348;
+ if (yych != 'h') goto yy31;
+ yy348:
+ yych = *++p;
+ if (yych == 'E') goto yy349;
+ if (yych != 'e') goto yy31;
+ yy349:
+ yych = *++p;
+ if (yych == 'R') goto yy34;
+ if (yych == 'r') goto yy34;
+ goto yy31;
+ yy350:
+ yych = *++p;
+ if (yych == 'M') goto yy351;
+ if (yych != 'm') goto yy31;
+ yy351:
+ yych = *++p;
+ if (yych == 'O') goto yy352;
+ if (yych != 'o') goto yy31;
+ yy352:
+ yych = *++p;
+ if (yych == 'P') goto yy353;
+ if (yych != 'p') goto yy31;
+ yy353:
+ yych = *++p;
+ if (yych == 'R') goto yy354;
+ if (yych != 'r') goto yy31;
+ yy354:
+ yych = *++p;
+ if (yych == 'O') goto yy355;
+ if (yych != 'o') goto yy31;
+ yy355:
+ yych = *++p;
+ if (yych == 'J') goto yy356;
+ if (yych != 'j') goto yy31;
+ yy356:
+ yych = *++p;
+ if (yych == 'E') goto yy357;
+ if (yych != 'e') goto yy31;
+ yy357:
+ yych = *++p;
+ if (yych == 'C') goto yy358;
+ if (yych != 'c') goto yy31;
+ yy358:
+ yych = *++p;
+ if (yych == 'T') goto yy34;
+ if (yych == 't') goto yy34;
+ goto yy31;
+ yy359:
+ yych = *++p;
+ if (yych == 'L') goto yy360;
+ if (yych != 'l') goto yy31;
+ yy360:
+ yych = *++p;
+ if (yych == 'K') goto yy34;
+ if (yych == 'k') goto yy34;
+ goto yy31;
+ yy361:
+ yych = *++p;
+ if (yych <= 'S') {
+ if (yych <= 'M') {
+ if (yych == 'L') goto yy371;
+ goto yy31;
+ } else {
+ if (yych <= 'N') goto yy372;
+ if (yych <= 'R') goto yy31;
+ goto yy373;
+ }
+ } else {
+ if (yych <= 'm') {
+ if (yych == 'l') goto yy371;
+ goto yy31;
+ } else {
+ if (yych <= 'n') goto yy372;
+ if (yych == 's') goto yy373;
+ goto yy31;
+ }
+ }
+ yy362:
+ yych = *++p;
+ if (yych == 'E') goto yy370;
+ if (yych == 'e') goto yy370;
+ goto yy31;
+ yy363:
+ yych = *++p;
+ if (yych == 'C') goto yy365;
+ if (yych == 'c') goto yy365;
+ goto yy31;
+ yy364:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy365:
+ yych = *++p;
+ if (yych == 'E') goto yy366;
+ if (yych != 'e') goto yy31;
+ yy366:
+ yych = *++p;
+ if (yych == 'T') goto yy367;
+ if (yych != 't') goto yy31;
+ yy367:
+ yych = *++p;
+ if (yych == 'I') goto yy368;
+ if (yych != 'i') goto yy31;
+ yy368:
+ yych = *++p;
+ if (yych == 'M') goto yy369;
+ if (yych != 'm') goto yy31;
+ yy369:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy370:
+ yych = *++p;
+ if (yych == 'D') goto yy34;
+ if (yych == 'd') goto yy34;
+ goto yy31;
+ yy371:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy372:
+ yych = *++p;
+ if (yych == 'G') goto yy374;
+ if (yych == 'g') goto yy374;
+ goto yy31;
+ yy373:
+ yych = *++p;
+ if (yych == 'H') goto yy34;
+ if (yych == 'h') goto yy34;
+ goto yy31;
+ yy374:
+ yych = *++p;
+ if (yych == 'E') goto yy375;
+ if (yych != 'e') goto yy31;
+ yy375:
+ yych = *++p;
+ if (yych == 'R') goto yy34;
+ if (yych == 'r') goto yy34;
+ goto yy31;
+ yy376:
+ yych = *++p;
+ if (yych == 'T') goto yy394;
+ if (yych == 't') goto yy394;
+ goto yy31;
+ yy377:
+ yych = *++p;
+ if (yych == 'T') goto yy34;
+ if (yych == 't') goto yy34;
+ goto yy31;
+ yy378:
+ yych = *++p;
+ if (yych == 'M') goto yy34;
+ if (yych == 'm') goto yy34;
+ goto yy31;
+ yy379:
+ yych = *++p;
+ if (yych <= 'S') {
+ if (yych == 'P') goto yy34;
+ if (yych <= 'R') goto yy31;
+ goto yy34;
+ } else {
+ if (yych <= 'p') {
+ if (yych <= 'o') goto yy31;
+ goto yy34;
+ } else {
+ if (yych == 's') goto yy34;
+ goto yy31;
+ }
+ }
+ yy380:
+ yych = *++p;
+ if (yych == 'I') goto yy388;
+ if (yych == 'i') goto yy388;
+ goto yy31;
+ yy381:
+ yych = *++p;
+ if (yych == 'A') goto yy387;
+ if (yych == 'a') goto yy387;
+ goto yy31;
+ yy382:
+ yych = *++p;
+ if (yych == 'O') goto yy385;
+ if (yych == 'o') goto yy385;
+ goto yy31;
+ yy383:
+ yych = *++p;
+ if (yych == 'A') goto yy384;
+ if (yych != 'a') goto yy31;
+ yy384:
+ yych = *++p;
+ if (yych <= 'R') {
+ if (yych == ':') goto yy35;
+ goto yy31;
+ } else {
+ if (yych <= 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ }
+ yy385:
+ yych = *++p;
+ if (yych == 'U') goto yy386;
+ if (yych != 'u') goto yy31;
+ yy386:
+ yych = *++p;
+ if (yych == 'T') goto yy34;
+ if (yych == 't') goto yy34;
+ goto yy31;
+ yy387:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy388:
+ yych = *++p;
+ if (yych == 'U') goto yy389;
+ if (yych != 'u') goto yy31;
+ yy389:
+ yych = *++p;
+ if (yych == 'M') goto yy390;
+ if (yych != 'm') goto yy31;
+ yy390:
+ yych = *++p;
+ if (yych == 'X') goto yy391;
+ if (yych != 'x') goto yy31;
+ yy391:
+ yych = *++p;
+ if (yych == 'T') goto yy392;
+ if (yych != 't') goto yy31;
+ yy392:
+ yych = *++p;
+ if (yych == 'R') goto yy393;
+ if (yych != 'r') goto yy31;
+ yy393:
+ yych = *++p;
+ if (yych == 'A') goto yy34;
+ if (yych == 'a') goto yy34;
+ goto yy31;
+ yy394:
+ yych = *++p;
+ if (yych == 'A') goto yy395;
+ if (yych != 'a') goto yy31;
+ yy395:
+ yych = *++p;
+ if (yych == 'C') goto yy396;
+ if (yych != 'c') goto yy31;
+ yy396:
+ yych = *++p;
+ if (yych == 'H') goto yy397;
+ if (yych != 'h') goto yy31;
+ yy397:
+ yych = *++p;
+ if (yych == 'M') goto yy398;
+ if (yych != 'm') goto yy31;
+ yy398:
+ yych = *++p;
+ if (yych == 'E') goto yy399;
+ if (yych != 'e') goto yy31;
+ yy399:
+ yych = *++p;
+ if (yych == 'N') goto yy400;
+ if (yych != 'n') goto yy31;
+ yy400:
+ yych = *++p;
+ if (yych == 'T') goto yy34;
+ if (yych == 't') goto yy34;
+ goto yy31;
+ yy401:
+ yych = *++p;
+ if (yych == 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ yy402:
+ yych = *++p;
+ if (yych <= 'V') {
+ if (yych == 'R') goto yy34;
+ if (yych <= 'U') goto yy31;
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'q') goto yy31;
+ goto yy34;
+ } else {
+ if (yych != 'v') goto yy31;
+ }
+ }
+ yych = *++p;
+ if (yych == 'A') goto yy404;
+ if (yych != 'a') goto yy31;
+ yy404:
+ yych = *++p;
+ if (yych == 'S') goto yy405;
+ if (yych != 's') goto yy31;
+ yy405:
+ yych = *++p;
+ if (yych == 'C') goto yy406;
+ if (yych != 'c') goto yy31;
+ yy406:
+ yych = *++p;
+ if (yych == 'R') goto yy407;
+ if (yych != 'r') goto yy31;
+ yy407:
+ yych = *++p;
+ if (yych == 'I') goto yy408;
+ if (yych != 'i') goto yy31;
+ yy408:
+ yych = *++p;
+ if (yych == 'P') goto yy409;
+ if (yych != 'p') goto yy31;
+ yy409:
+ yych = *++p;
+ if (yych == 'T') goto yy34;
+ if (yych == 't') goto yy34;
+ goto yy31;
+ yy410:
+ yych = *++p;
+ if (yych == 'B') goto yy34;
+ if (yych == 'b') goto yy34;
+ goto yy31;
+ yy411:
+ yych = *++p;
+ if (yych == 'N') goto yy34;
+ if (yych == 'n') goto yy34;
+ goto yy31;
+ yy412:
+ yych = *++p;
+ if (yych == 'N') goto yy419;
+ if (yych == 'n') goto yy419;
+ goto yy31;
+ yy413:
+ yych = *++p;
+ if (yych == 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ yy414:
+ yych = *++p;
+ if (yych == 'C') goto yy418;
+ if (yych == 'c') goto yy418;
+ goto yy31;
+ yy415:
+ yych = *++p;
+ if (yych <= 'V') {
+ if (yych == 'T') goto yy417;
+ if (yych <= 'U') goto yy31;
+ goto yy34;
+ } else {
+ if (yych <= 't') {
+ if (yych <= 's') goto yy31;
+ goto yy417;
+ } else {
+ if (yych == 'v') goto yy34;
+ goto yy31;
+ }
+ }
+ yy416:
+ yych = *++p;
+ if (yych == 'I') goto yy34;
+ if (yych == 'i') goto yy34;
+ goto yy31;
+ yy417:
+ yych = *++p;
+ if (yych == 'A') goto yy34;
+ if (yych == 'a') goto yy34;
+ goto yy31;
+ yy418:
+ yych = *++p;
+ if (yych == 'T') goto yy34;
+ if (yych == 't') goto yy34;
+ goto yy31;
+ yy419:
+ yych = *++p;
+ if (yych == 'A') goto yy420;
+ if (yych != 'a') goto yy31;
+ yy420:
+ yych = *++p;
+ if (yych != '-') goto yy31;
+ yych = *++p;
+ if (yych == 'P') goto yy422;
+ if (yych != 'p') goto yy31;
+ yy422:
+ yych = *++p;
+ if (yych == 'L') goto yy423;
+ if (yych != 'l') goto yy31;
+ yy423:
+ yych = *++p;
+ if (yych == 'A') goto yy424;
+ if (yych != 'a') goto yy31;
+ yy424:
+ yych = *++p;
+ if (yych == 'Y') goto yy425;
+ if (yych != 'y') goto yy31;
+ yy425:
+ yych = *++p;
+ if (yych <= 'S') {
+ if (yych == 'C') goto yy426;
+ if (yych <= 'R') goto yy31;
+ goto yy427;
+ } else {
+ if (yych <= 'c') {
+ if (yych <= 'b') goto yy31;
+ } else {
+ if (yych == 's') goto yy427;
+ goto yy31;
+ }
+ }
+ yy426:
+ yych = *++p;
+ if (yych == 'O') goto yy432;
+ if (yych == 'o') goto yy432;
+ goto yy31;
+ yy427:
+ yych = *++p;
+ if (yych == 'I') goto yy428;
+ if (yych != 'i') goto yy31;
+ yy428:
+ yych = *++p;
+ if (yych == 'N') goto yy429;
+ if (yych != 'n') goto yy31;
+ yy429:
+ yych = *++p;
+ if (yych == 'G') goto yy430;
+ if (yych != 'g') goto yy31;
+ yy430:
+ yych = *++p;
+ if (yych == 'L') goto yy431;
+ if (yych != 'l') goto yy31;
+ yy431:
+ yych = *++p;
+ if (yych == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ yy432:
+ yych = *++p;
+ if (yych == 'N') goto yy433;
+ if (yych != 'n') goto yy31;
+ yy433:
+ yych = *++p;
+ if (yych == 'T') goto yy434;
+ if (yych != 't') goto yy31;
+ yy434:
+ yych = *++p;
+ if (yych == 'A') goto yy435;
+ if (yych != 'a') goto yy31;
+ yy435:
+ yych = *++p;
+ if (yych == 'I') goto yy436;
+ if (yych != 'i') goto yy31;
+ yy436:
+ yych = *++p;
+ if (yych == 'N') goto yy437;
+ if (yych != 'n') goto yy31;
+ yy437:
+ yych = *++p;
+ if (yych == 'E') goto yy438;
+ if (yych != 'e') goto yy31;
+ yy438:
+ yych = *++p;
+ if (yych == 'R') goto yy34;
+ if (yych == 'r') goto yy34;
+ goto yy31;
+ yy439:
+ yych = *++p;
+ if (yych == 'S') goto yy34;
+ if (yych == 's') goto yy34;
+ goto yy31;
+ yy440:
+ yych = *++p;
+ if (yych <= 'N') {
+ if (yych <= 'A') {
+ if (yych <= '@') goto yy31;
+ goto yy462;
+ } else {
+ if (yych <= 'L') goto yy31;
+ if (yych <= 'M') goto yy463;
+ goto yy464;
+ }
+ } else {
+ if (yych <= 'l') {
+ if (yych == 'a') goto yy462;
+ goto yy31;
+ } else {
+ if (yych <= 'm') goto yy463;
+ if (yych <= 'n') goto yy464;
+ goto yy31;
+ }
+ }
+ yy441:
+ yych = *++p;
+ if (yych == 'R') goto yy449;
+ if (yych == 'r') goto yy449;
+ goto yy31;
+ yy442:
+ yych = *++p;
+ if (yych <= 'P') {
+ if (yych == 'L') goto yy446;
+ if (yych <= 'O') goto yy31;
+ goto yy34;
+ } else {
+ if (yych <= 'l') {
+ if (yych <= 'k') goto yy31;
+ goto yy446;
+ } else {
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ }
+ }
+ yy443:
+ yych = *++p;
+ if (yych == 'I') goto yy445;
+ if (yych == 'i') goto yy445;
+ goto yy31;
+ yy444:
+ yych = *++p;
+ if (yych == 'D') goto yy34;
+ if (yych == 'd') goto yy34;
+ goto yy31;
+ yy445:
+ yych = *++p;
+ if (yych == 'D') goto yy34;
+ if (yych == 'd') goto yy34;
+ goto yy31;
+ yy446:
+ yych = *++p;
+ if (yych == 'L') goto yy447;
+ if (yych != 'l') goto yy31;
+ yy447:
+ yych = *++p;
+ if (yych == 'T') goto yy448;
+ if (yych != 't') goto yy31;
+ yy448:
+ yych = *++p;
+ if (yych == 'O') goto yy34;
+ if (yych == 'o') goto yy34;
+ goto yy31;
+ yy449:
+ yych = *++p;
+ if (yych == 'O') goto yy450;
+ if (yych != 'o') goto yy31;
+ yy450:
+ yych = *++p;
+ if (yych == 'M') goto yy451;
+ if (yych != 'm') goto yy31;
+ yy451:
+ yych = *++p;
+ if (yych == 'E') goto yy452;
+ if (yych != 'e') goto yy31;
+ yy452:
+ yych = *++p;
+ if (yych == '-') goto yy453;
+ if (yych == ':') goto yy35;
+ goto yy31;
+ yy453:
+ yych = *++p;
+ if (yych == 'E') goto yy454;
+ if (yych != 'e') goto yy31;
+ yy454:
+ yych = *++p;
+ if (yych == 'X') goto yy455;
+ if (yych != 'x') goto yy31;
+ yy455:
+ yych = *++p;
+ if (yych == 'T') goto yy456;
+ if (yych != 't') goto yy31;
+ yy456:
+ yych = *++p;
+ if (yych == 'E') goto yy457;
+ if (yych != 'e') goto yy31;
+ yy457:
+ yych = *++p;
+ if (yych == 'N') goto yy458;
+ if (yych != 'n') goto yy31;
+ yy458:
+ yych = *++p;
+ if (yych == 'S') goto yy459;
+ if (yych != 's') goto yy31;
+ yy459:
+ yych = *++p;
+ if (yych == 'I') goto yy460;
+ if (yych != 'i') goto yy31;
+ yy460:
+ yych = *++p;
+ if (yych == 'O') goto yy461;
+ if (yych != 'o') goto yy31;
+ yy461:
+ yych = *++p;
+ if (yych == 'N') goto yy34;
+ if (yych == 'n') goto yy34;
+ goto yy31;
+ yy462:
+ yych = *++p;
+ if (yych == 'P') goto yy34;
+ if (yych == 'p') goto yy34;
+ goto yy31;
+ yy463:
+ yych = *++p;
+ if (yych == '-') goto yy468;
+ goto yy31;
+ yy464:
+ yych = *++p;
+ if (yych == 'T') goto yy465;
+ if (yych != 't') goto yy31;
+ yy465:
+ yych = *++p;
+ if (yych == 'E') goto yy466;
+ if (yych != 'e') goto yy31;
+ yy466:
+ yych = *++p;
+ if (yych == 'N') goto yy467;
+ if (yych != 'n') goto yy31;
+ yy467:
+ yych = *++p;
+ if (yych == 'T') goto yy34;
+ if (yych == 't') goto yy34;
+ goto yy31;
+ yy468:
+ yych = *++p;
+ if (yych == 'E') goto yy469;
+ if (yych != 'e') goto yy31;
+ yy469:
+ yych = *++p;
+ if (yych == 'V') goto yy470;
+ if (yych != 'v') goto yy31;
+ yy470:
+ yych = *++p;
+ if (yych == 'E') goto yy471;
+ if (yych != 'e') goto yy31;
+ yy471:
+ yych = *++p;
+ if (yych == 'N') goto yy472;
+ if (yych != 'n') goto yy31;
+ yy472:
+ yych = *++p;
+ if (yych == 'T') goto yy473;
+ if (yych != 't') goto yy31;
+ yy473:
+ yych = *++p;
+ if (yych == 'B') goto yy474;
+ if (yych != 'b') goto yy31;
+ yy474:
+ yych = *++p;
+ if (yych == 'R') goto yy475;
+ if (yych != 'r') goto yy31;
+ yy475:
+ yych = *++p;
+ if (yych == 'I') goto yy476;
+ if (yych != 'i') goto yy31;
+ yy476:
+ yych = *++p;
+ if (yych == 'T') goto yy477;
+ if (yych != 't') goto yy31;
+ yy477:
+ yych = *++p;
+ if (yych == 'E') goto yy478;
+ if (yych != 'e') goto yy31;
+ yy478:
+ yych = *++p;
+ if (yych != '-') goto yy31;
+ yych = *++p;
+ if (yych == 'A') goto yy480;
+ if (yych != 'a') goto yy31;
+ yy480:
+ yych = *++p;
+ if (yych == 'T') goto yy481;
+ if (yych != 't') goto yy31;
+ yy481:
+ yych = *++p;
+ if (yych == 'T') goto yy482;
+ if (yych != 't') goto yy31;
+ yy482:
+ yych = *++p;
+ if (yych == 'E') goto yy483;
+ if (yych != 'e') goto yy31;
+ yy483:
+ yych = *++p;
+ if (yych == 'N') goto yy484;
+ if (yych != 'n') goto yy31;
+ yy484:
+ yych = *++p;
+ if (yych == 'D') goto yy485;
+ if (yych != 'd') goto yy31;
+ yy485:
+ yych = *++p;
+ if (yych == 'E') goto yy486;
+ if (yych != 'e') goto yy31;
+ yy486:
+ ++p;
+ if ((yych = *p) == 'E') goto yy34;
+ if (yych == 'e') goto yy34;
+ goto yy31;
+ }
+
+ }
+
+ // Try to match email autolink after first <, returning num of chars matched.
+ int _scan_autolink_email(const unsigned char *p)
+ {
+ const unsigned char *marker = NULL;
+ const unsigned char *start = p;
+
+ {
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 0, 128, 128, 128, 128, 128,
+ 0, 0, 128, 128, 0, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 0, 0, 0, 128, 0, 128,
+ 0, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 0, 0, 0, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ yych = *p;
+ if (yych <= ',') {
+ if (yych <= '!') {
+ if (yych == '\n') goto yy489;
+ if (yych <= ' ') goto yy491;
+ goto yy490;
+ } else {
+ if (yych <= '\'') {
+ if (yych <= '"') goto yy491;
+ goto yy490;
+ } else {
+ if (yych <= ')') goto yy491;
+ if (yych <= '+') goto yy490;
+ goto yy491;
+ }
+ }
+ } else {
+ if (yych <= '?') {
+ if (yych <= '<') {
+ if (yych <= '9') goto yy490;
+ goto yy491;
+ } else {
+ if (yych == '>') goto yy491;
+ goto yy490;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy491;
+ goto yy490;
+ } else {
+ if (yych <= ']') goto yy491;
+ if (yych <= '~') goto yy490;
+ goto yy491;
+ }
+ }
+ }
+ yy489:
+ { return 0; }
+ yy490:
+ yych = *(marker = ++p);
+ if (yych <= ',') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy495;
+ goto yy489;
+ } else {
+ if (yych <= '\'') goto yy495;
+ if (yych <= ')') goto yy489;
+ if (yych <= '+') goto yy495;
+ goto yy489;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych <= '9') goto yy495;
+ if (yych == '=') goto yy495;
+ goto yy489;
+ } else {
+ if (yych <= 'Z') goto yy495;
+ if (yych <= ']') goto yy489;
+ if (yych <= '~') goto yy495;
+ goto yy489;
+ }
+ }
+ yy491:
+ yych = *++p;
+ goto yy489;
+ yy492:
+ yych = *++p;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy493;
+ if (yych <= '9') goto yy496;
+ } else {
+ if (yych <= 'Z') goto yy496;
+ if (yych <= '`') goto yy493;
+ if (yych <= 'z') goto yy496;
+ }
+ yy493:
+ p = marker;
+ goto yy489;
+ yy494:
+ ++p;
+ yych = *p;
+ yy495:
+ if (yybm[0+yych] & 128) {
+ goto yy494;
+ }
+ if (yych <= '>') goto yy493;
+ if (yych <= '@') goto yy492;
+ goto yy493;
+ yy496:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy498;
- goto yy493;
++ if (yych <= '-') goto yy498;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy498;
++ if (yych >= ':') goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy498;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
- if (yych <= '9') {
- if (yych == '-') goto yy626;
- if (yych <= '/') goto yy493;
- goto yy627;
++ if (yych >= '{') goto yy493;
+ }
+ }
+ yych = *++p;
- goto yy627;
++ if (yych <= '=') {
++ if (yych <= '.') {
++ if (yych <= ',') goto yy493;
++ if (yych <= '-') goto yy627;
++ goto yy499;
++ } else {
++ if (yych <= '/') goto yy493;
++ if (yych <= '9') goto yy626;
++ goto yy493;
++ }
+ } else {
+ if (yych <= 'Z') {
++ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy627;
++ goto yy626;
+ } else {
+ if (yych <= '`') goto yy493;
- if (yych <= '=') {
- if (yych <= '.') {
- if (yych <= ',') goto yy493;
- if (yych <= '-') goto yy626;
- } else {
- if (yych <= '/') goto yy493;
- if (yych <= '9') goto yy627;
- goto yy493;
- }
++ if (yych <= 'z') goto yy626;
+ goto yy493;
+ }
+ }
+ yy498:
+ yych = *++p;
- if (yych <= '>') goto yy500;
++ if (yych <= '9') {
++ if (yych == '-') goto yy627;
++ if (yych <= '/') goto yy493;
++ goto yy626;
+ } else {
+ if (yych <= 'Z') {
- goto yy627;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy627;
++ goto yy626;
+ } else {
+ if (yych <= '`') goto yy493;
- if (yych >= '.') goto yy499;
++ if (yych <= 'z') goto yy626;
+ goto yy493;
+ }
+ }
+ yy499:
+ ++p;
+ yych = *p;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy493;
+ if (yych <= '9') goto yy502;
+ goto yy493;
+ } else {
+ if (yych <= 'Z') goto yy502;
+ if (yych <= '`') goto yy493;
+ if (yych <= 'z') goto yy502;
+ goto yy493;
+ }
+ yy500:
+ ++p;
+ { return (p - start); }
+ yy502:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy504;
- goto yy493;
++ if (yych <= '-') goto yy504;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy504;
- } else {
- if (yych <= '`') goto yy493;
- if (yych <= 'z') goto yy504;
- goto yy493;
- }
- }
- ++p;
- yych = *p;
- if (yych <= '9') {
- if (yych == '-') goto yy505;
- if (yych <= '/') goto yy493;
- goto yy506;
- } else {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy493;
- goto yy506;
++ if (yych >= ':') goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy506;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy504:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy506;
++ if (yych <= '-') goto yy506;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy506;
++ if (yych <= '9') goto yy505;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy506;
++ goto yy505;
+ } else {
+ if (yych <= '`') goto yy493;
-yy505:
++ if (yych <= 'z') goto yy505;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy507;
++yy504:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy508;
++ if (yych == '-') goto yy506;
+ if (yych <= '/') goto yy493;
- goto yy508;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy508;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy506:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy505:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy508;
++ if (yych <= '-') goto yy508;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy508;
++ if (yych <= '9') goto yy507;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy508;
++ goto yy507;
+ } else {
+ if (yych <= '`') goto yy493;
-yy507:
++ if (yych <= 'z') goto yy507;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy509;
++yy506:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy510;
++ if (yych == '-') goto yy508;
+ if (yych <= '/') goto yy493;
- goto yy510;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy510;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy508:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy507:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy510;
++ if (yych <= '-') goto yy510;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy510;
++ if (yych <= '9') goto yy509;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy510;
++ goto yy509;
+ } else {
+ if (yych <= '`') goto yy493;
-yy509:
++ if (yych <= 'z') goto yy509;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy511;
++yy508:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy512;
++ if (yych == '-') goto yy510;
+ if (yych <= '/') goto yy493;
- goto yy512;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy512;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy510:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy509:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy512;
++ if (yych <= '-') goto yy512;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy512;
++ if (yych <= '9') goto yy511;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy512;
++ goto yy511;
+ } else {
+ if (yych <= '`') goto yy493;
-yy511:
++ if (yych <= 'z') goto yy511;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy513;
++yy510:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy514;
++ if (yych == '-') goto yy512;
+ if (yych <= '/') goto yy493;
- goto yy514;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy514;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy512:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy511:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy514;
++ if (yych <= '-') goto yy514;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy514;
++ if (yych <= '9') goto yy513;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy514;
++ goto yy513;
+ } else {
+ if (yych <= '`') goto yy493;
-yy513:
++ if (yych <= 'z') goto yy513;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy515;
++yy512:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy516;
++ if (yych == '-') goto yy514;
+ if (yych <= '/') goto yy493;
- goto yy516;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy516;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy514:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy513:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy516;
++ if (yych <= '-') goto yy516;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy516;
++ if (yych <= '9') goto yy515;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy516;
++ goto yy515;
+ } else {
+ if (yych <= '`') goto yy493;
-yy515:
++ if (yych <= 'z') goto yy515;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy517;
++yy514:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy518;
++ if (yych == '-') goto yy516;
+ if (yych <= '/') goto yy493;
- goto yy518;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy518;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy516:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy515:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy518;
++ if (yych <= '-') goto yy518;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy518;
++ if (yych <= '9') goto yy517;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy518;
++ goto yy517;
+ } else {
+ if (yych <= '`') goto yy493;
-yy517:
++ if (yych <= 'z') goto yy517;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy519;
++yy516:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy520;
++ if (yych == '-') goto yy518;
+ if (yych <= '/') goto yy493;
- goto yy520;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy520;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy518:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy517:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy520;
++ if (yych <= '-') goto yy520;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy520;
++ if (yych <= '9') goto yy519;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy520;
++ goto yy519;
+ } else {
+ if (yych <= '`') goto yy493;
-yy519:
++ if (yych <= 'z') goto yy519;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy521;
++yy518:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy522;
++ if (yych == '-') goto yy520;
+ if (yych <= '/') goto yy493;
- goto yy522;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy522;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy520:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy519:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy522;
++ if (yych <= '-') goto yy522;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy522;
++ if (yych <= '9') goto yy521;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy522;
++ goto yy521;
+ } else {
+ if (yych <= '`') goto yy493;
-yy521:
++ if (yych <= 'z') goto yy521;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy523;
++yy520:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy524;
++ if (yych == '-') goto yy522;
+ if (yych <= '/') goto yy493;
- goto yy524;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy524;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy522:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy521:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy524;
++ if (yych <= '-') goto yy524;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy524;
++ if (yych <= '9') goto yy523;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy524;
++ goto yy523;
+ } else {
+ if (yych <= '`') goto yy493;
-yy523:
++ if (yych <= 'z') goto yy523;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy525;
++yy522:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy526;
++ if (yych == '-') goto yy524;
+ if (yych <= '/') goto yy493;
- goto yy526;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy526;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy524:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy523:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy526;
++ if (yych <= '-') goto yy526;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy526;
++ if (yych <= '9') goto yy525;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy526;
++ goto yy525;
+ } else {
+ if (yych <= '`') goto yy493;
-yy525:
++ if (yych <= 'z') goto yy525;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy527;
++yy524:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy528;
++ if (yych == '-') goto yy526;
+ if (yych <= '/') goto yy493;
- goto yy528;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy528;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy526:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy525:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy528;
++ if (yych <= '-') goto yy528;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy528;
++ if (yych <= '9') goto yy527;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy528;
++ goto yy527;
+ } else {
+ if (yych <= '`') goto yy493;
-yy527:
++ if (yych <= 'z') goto yy527;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy529;
++yy526:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy530;
++ if (yych == '-') goto yy528;
+ if (yych <= '/') goto yy493;
- goto yy530;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy530;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy528:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy527:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy530;
++ if (yych <= '-') goto yy530;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy530;
++ if (yych <= '9') goto yy529;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy530;
++ goto yy529;
+ } else {
+ if (yych <= '`') goto yy493;
-yy529:
++ if (yych <= 'z') goto yy529;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy531;
++yy528:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy532;
++ if (yych == '-') goto yy530;
+ if (yych <= '/') goto yy493;
- goto yy532;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy532;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy530:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy529:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy532;
++ if (yych <= '-') goto yy532;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy532;
++ if (yych <= '9') goto yy531;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy532;
++ goto yy531;
+ } else {
+ if (yych <= '`') goto yy493;
-yy531:
++ if (yych <= 'z') goto yy531;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy533;
++yy530:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy534;
++ if (yych == '-') goto yy532;
+ if (yych <= '/') goto yy493;
- goto yy534;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy534;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy532:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy531:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy534;
++ if (yych <= '-') goto yy534;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy534;
++ if (yych <= '9') goto yy533;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy534;
++ goto yy533;
+ } else {
+ if (yych <= '`') goto yy493;
-yy533:
++ if (yych <= 'z') goto yy533;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy535;
++yy532:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy536;
++ if (yych == '-') goto yy534;
+ if (yych <= '/') goto yy493;
- goto yy536;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy536;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy534:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy533:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy536;
++ if (yych <= '-') goto yy536;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy536;
++ if (yych <= '9') goto yy535;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy536;
++ goto yy535;
+ } else {
+ if (yych <= '`') goto yy493;
-yy535:
++ if (yych <= 'z') goto yy535;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy537;
++yy534:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy538;
++ if (yych == '-') goto yy536;
+ if (yych <= '/') goto yy493;
- goto yy538;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy538;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy536:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy535:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy538;
++ if (yych <= '-') goto yy538;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy538;
++ if (yych <= '9') goto yy537;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy538;
++ goto yy537;
+ } else {
+ if (yych <= '`') goto yy493;
-yy537:
++ if (yych <= 'z') goto yy537;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy539;
++yy536:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy540;
++ if (yych == '-') goto yy538;
+ if (yych <= '/') goto yy493;
- goto yy540;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy540;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy538:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy537:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy540;
++ if (yych <= '-') goto yy540;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy540;
++ if (yych <= '9') goto yy539;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy540;
++ goto yy539;
+ } else {
+ if (yych <= '`') goto yy493;
-yy539:
++ if (yych <= 'z') goto yy539;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy541;
++yy538:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy542;
++ if (yych == '-') goto yy540;
+ if (yych <= '/') goto yy493;
- goto yy542;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy542;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy540:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy539:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy542;
++ if (yych <= '-') goto yy542;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy542;
++ if (yych <= '9') goto yy541;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy542;
++ goto yy541;
+ } else {
+ if (yych <= '`') goto yy493;
-yy541:
++ if (yych <= 'z') goto yy541;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy543;
++yy540:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy544;
++ if (yych == '-') goto yy542;
+ if (yych <= '/') goto yy493;
- goto yy544;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy544;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy542:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy541:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy544;
++ if (yych <= '-') goto yy544;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy544;
++ if (yych <= '9') goto yy543;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy544;
++ goto yy543;
+ } else {
+ if (yych <= '`') goto yy493;
-yy543:
++ if (yych <= 'z') goto yy543;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy545;
++yy542:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy546;
++ if (yych == '-') goto yy544;
+ if (yych <= '/') goto yy493;
- goto yy546;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy546;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy544:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy543:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy546;
++ if (yych <= '-') goto yy546;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy546;
++ if (yych <= '9') goto yy545;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy546;
++ goto yy545;
+ } else {
+ if (yych <= '`') goto yy493;
-yy545:
++ if (yych <= 'z') goto yy545;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy547;
++yy544:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy548;
++ if (yych == '-') goto yy546;
+ if (yych <= '/') goto yy493;
- goto yy548;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy548;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy546:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy545:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy548;
++ if (yych <= '-') goto yy548;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy548;
++ if (yych <= '9') goto yy547;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy548;
++ goto yy547;
+ } else {
+ if (yych <= '`') goto yy493;
-yy547:
++ if (yych <= 'z') goto yy547;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy549;
++yy546:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy550;
++ if (yych == '-') goto yy548;
+ if (yych <= '/') goto yy493;
- goto yy550;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy550;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy548:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy547:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy550;
++ if (yych <= '-') goto yy550;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy550;
++ if (yych <= '9') goto yy549;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy550;
++ goto yy549;
+ } else {
+ if (yych <= '`') goto yy493;
-yy549:
++ if (yych <= 'z') goto yy549;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy551;
++yy548:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy552;
++ if (yych == '-') goto yy550;
+ if (yych <= '/') goto yy493;
- goto yy552;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy552;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy550:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy549:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy552;
++ if (yych <= '-') goto yy552;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy552;
++ if (yych <= '9') goto yy551;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy552;
++ goto yy551;
+ } else {
+ if (yych <= '`') goto yy493;
-yy551:
++ if (yych <= 'z') goto yy551;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy553;
++yy550:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy554;
++ if (yych == '-') goto yy552;
+ if (yych <= '/') goto yy493;
- goto yy554;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy554;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy552:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy551:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy554;
++ if (yych <= '-') goto yy554;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy554;
++ if (yych <= '9') goto yy553;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy554;
++ goto yy553;
+ } else {
+ if (yych <= '`') goto yy493;
-yy553:
++ if (yych <= 'z') goto yy553;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy555;
++yy552:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy556;
++ if (yych == '-') goto yy554;
+ if (yych <= '/') goto yy493;
- goto yy556;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy556;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy554:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy553:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy556;
++ if (yych <= '-') goto yy556;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy556;
++ if (yych <= '9') goto yy555;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy556;
++ goto yy555;
+ } else {
+ if (yych <= '`') goto yy493;
-yy555:
++ if (yych <= 'z') goto yy555;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy557;
++yy554:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy558;
++ if (yych == '-') goto yy556;
+ if (yych <= '/') goto yy493;
- goto yy558;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy558;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy556:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy555:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy558;
++ if (yych <= '-') goto yy558;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy558;
++ if (yych <= '9') goto yy557;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy558;
++ goto yy557;
+ } else {
+ if (yych <= '`') goto yy493;
-yy557:
++ if (yych <= 'z') goto yy557;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy559;
++yy556:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy560;
++ if (yych == '-') goto yy558;
+ if (yych <= '/') goto yy493;
- goto yy560;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy560;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy558:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy557:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy560;
++ if (yych <= '-') goto yy560;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy560;
++ if (yych <= '9') goto yy559;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy560;
++ goto yy559;
+ } else {
+ if (yych <= '`') goto yy493;
-yy559:
++ if (yych <= 'z') goto yy559;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy561;
++yy558:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy562;
++ if (yych == '-') goto yy560;
+ if (yych <= '/') goto yy493;
- goto yy562;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy562;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy560:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy559:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy562;
++ if (yych <= '-') goto yy562;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy562;
++ if (yych <= '9') goto yy561;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy562;
++ goto yy561;
+ } else {
+ if (yych <= '`') goto yy493;
-yy561:
++ if (yych <= 'z') goto yy561;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy563;
++yy560:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy564;
++ if (yych == '-') goto yy562;
+ if (yych <= '/') goto yy493;
- goto yy564;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy564;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy562:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy561:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy564;
++ if (yych <= '-') goto yy564;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy564;
++ if (yych <= '9') goto yy563;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy564;
++ goto yy563;
+ } else {
+ if (yych <= '`') goto yy493;
-yy563:
++ if (yych <= 'z') goto yy563;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy565;
++yy562:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy566;
++ if (yych == '-') goto yy564;
+ if (yych <= '/') goto yy493;
- goto yy566;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy566;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy564:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy563:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy566;
++ if (yych <= '-') goto yy566;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy566;
++ if (yych <= '9') goto yy565;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy566;
++ goto yy565;
+ } else {
+ if (yych <= '`') goto yy493;
-yy565:
++ if (yych <= 'z') goto yy565;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy567;
++yy564:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy568;
++ if (yych == '-') goto yy566;
+ if (yych <= '/') goto yy493;
- goto yy568;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy568;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy566:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy565:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy568;
++ if (yych <= '-') goto yy568;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy568;
++ if (yych <= '9') goto yy567;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy568;
++ goto yy567;
+ } else {
+ if (yych <= '`') goto yy493;
-yy567:
++ if (yych <= 'z') goto yy567;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy569;
++yy566:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy570;
++ if (yych == '-') goto yy568;
+ if (yych <= '/') goto yy493;
- goto yy570;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy570;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy568:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy567:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy570;
++ if (yych <= '-') goto yy570;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy570;
++ if (yych <= '9') goto yy569;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy570;
++ goto yy569;
+ } else {
+ if (yych <= '`') goto yy493;
-yy569:
++ if (yych <= 'z') goto yy569;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy571;
++yy568:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy572;
++ if (yych == '-') goto yy570;
+ if (yych <= '/') goto yy493;
- goto yy572;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy572;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy570:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy569:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy572;
++ if (yych <= '-') goto yy572;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy572;
++ if (yych <= '9') goto yy571;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy572;
++ goto yy571;
+ } else {
+ if (yych <= '`') goto yy493;
-yy571:
++ if (yych <= 'z') goto yy571;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy573;
++yy570:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy574;
++ if (yych == '-') goto yy572;
+ if (yych <= '/') goto yy493;
- goto yy574;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy574;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy572:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy571:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy574;
++ if (yych <= '-') goto yy574;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy574;
++ if (yych <= '9') goto yy573;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy574;
++ goto yy573;
+ } else {
+ if (yych <= '`') goto yy493;
-yy573:
++ if (yych <= 'z') goto yy573;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy575;
++yy572:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy576;
++ if (yych == '-') goto yy574;
+ if (yych <= '/') goto yy493;
- goto yy576;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy576;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy574:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy573:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy576;
++ if (yych <= '-') goto yy576;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy576;
++ if (yych <= '9') goto yy575;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy576;
++ goto yy575;
+ } else {
+ if (yych <= '`') goto yy493;
-yy575:
++ if (yych <= 'z') goto yy575;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy577;
++yy574:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy578;
++ if (yych == '-') goto yy576;
+ if (yych <= '/') goto yy493;
- goto yy578;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy578;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy576:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy575:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy578;
++ if (yych <= '-') goto yy578;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy578;
++ if (yych <= '9') goto yy577;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy578;
++ goto yy577;
+ } else {
+ if (yych <= '`') goto yy493;
-yy577:
++ if (yych <= 'z') goto yy577;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy579;
++yy576:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy580;
++ if (yych == '-') goto yy578;
+ if (yych <= '/') goto yy493;
- goto yy580;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy580;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy578:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy577:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy580;
++ if (yych <= '-') goto yy580;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy580;
++ if (yych <= '9') goto yy579;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy580;
++ goto yy579;
+ } else {
+ if (yych <= '`') goto yy493;
-yy579:
++ if (yych <= 'z') goto yy579;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy581;
++yy578:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy582;
++ if (yych == '-') goto yy580;
+ if (yych <= '/') goto yy493;
- goto yy582;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy582;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy580:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy579:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy582;
++ if (yych <= '-') goto yy582;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy582;
++ if (yych <= '9') goto yy581;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy582;
++ goto yy581;
+ } else {
+ if (yych <= '`') goto yy493;
-yy581:
++ if (yych <= 'z') goto yy581;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy583;
++yy580:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy584;
++ if (yych == '-') goto yy582;
+ if (yych <= '/') goto yy493;
- goto yy584;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy584;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy582:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy581:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy584;
++ if (yych <= '-') goto yy584;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy584;
++ if (yych <= '9') goto yy583;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy584;
++ goto yy583;
+ } else {
+ if (yych <= '`') goto yy493;
-yy583:
++ if (yych <= 'z') goto yy583;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy585;
++yy582:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy586;
++ if (yych == '-') goto yy584;
+ if (yych <= '/') goto yy493;
- goto yy586;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy586;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy584:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy583:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy586;
++ if (yych <= '-') goto yy586;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy586;
++ if (yych <= '9') goto yy585;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy586;
++ goto yy585;
+ } else {
+ if (yych <= '`') goto yy493;
-yy585:
++ if (yych <= 'z') goto yy585;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy587;
++yy584:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy588;
++ if (yych == '-') goto yy586;
+ if (yych <= '/') goto yy493;
- goto yy588;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy588;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy586:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy585:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy588;
++ if (yych <= '-') goto yy588;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy588;
++ if (yych <= '9') goto yy587;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy588;
++ goto yy587;
+ } else {
+ if (yych <= '`') goto yy493;
-yy587:
++ if (yych <= 'z') goto yy587;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy589;
++yy586:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy590;
++ if (yych == '-') goto yy588;
+ if (yych <= '/') goto yy493;
- goto yy590;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy590;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy588:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy587:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy590;
++ if (yych <= '-') goto yy590;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy590;
++ if (yych <= '9') goto yy589;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy590;
++ goto yy589;
+ } else {
+ if (yych <= '`') goto yy493;
-yy589:
++ if (yych <= 'z') goto yy589;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy591;
++yy588:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy592;
++ if (yych == '-') goto yy590;
+ if (yych <= '/') goto yy493;
- goto yy592;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy592;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy590:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy589:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy592;
++ if (yych <= '-') goto yy592;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy592;
++ if (yych <= '9') goto yy591;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy592;
++ goto yy591;
+ } else {
+ if (yych <= '`') goto yy493;
-yy591:
++ if (yych <= 'z') goto yy591;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy593;
++yy590:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy594;
++ if (yych == '-') goto yy592;
+ if (yych <= '/') goto yy493;
- goto yy594;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy594;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy592:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy591:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy594;
++ if (yych <= '-') goto yy594;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy594;
++ if (yych <= '9') goto yy593;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy594;
++ goto yy593;
+ } else {
+ if (yych <= '`') goto yy493;
-yy593:
++ if (yych <= 'z') goto yy593;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy595;
++yy592:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy596;
++ if (yych == '-') goto yy594;
+ if (yych <= '/') goto yy493;
- goto yy596;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy596;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy594:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy593:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy596;
++ if (yych <= '-') goto yy596;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy596;
++ if (yych <= '9') goto yy595;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy596;
++ goto yy595;
+ } else {
+ if (yych <= '`') goto yy493;
-yy595:
++ if (yych <= 'z') goto yy595;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy597;
++yy594:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy598;
++ if (yych == '-') goto yy596;
+ if (yych <= '/') goto yy493;
- goto yy598;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy598;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy596:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy595:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy598;
++ if (yych <= '-') goto yy598;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy598;
++ if (yych <= '9') goto yy597;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy598;
++ goto yy597;
+ } else {
+ if (yych <= '`') goto yy493;
-yy597:
++ if (yych <= 'z') goto yy597;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy599;
++yy596:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy600;
++ if (yych == '-') goto yy598;
+ if (yych <= '/') goto yy493;
- goto yy600;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy600;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy598:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy597:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy600;
++ if (yych <= '-') goto yy600;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy600;
++ if (yych <= '9') goto yy599;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy600;
++ goto yy599;
+ } else {
+ if (yych <= '`') goto yy493;
-yy599:
++ if (yych <= 'z') goto yy599;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy601;
++yy598:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy602;
++ if (yych == '-') goto yy600;
+ if (yych <= '/') goto yy493;
- goto yy602;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy602;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy600:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy599:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy602;
++ if (yych <= '-') goto yy602;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy602;
++ if (yych <= '9') goto yy601;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy602;
++ goto yy601;
+ } else {
+ if (yych <= '`') goto yy493;
-yy601:
++ if (yych <= 'z') goto yy601;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy603;
++yy600:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy604;
++ if (yych == '-') goto yy602;
+ if (yych <= '/') goto yy493;
- goto yy604;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy604;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy602:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy601:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy604;
++ if (yych <= '-') goto yy604;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy604;
++ if (yych <= '9') goto yy603;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy604;
++ goto yy603;
+ } else {
+ if (yych <= '`') goto yy493;
-yy603:
++ if (yych <= 'z') goto yy603;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy605;
++yy602:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy606;
++ if (yych == '-') goto yy604;
+ if (yych <= '/') goto yy493;
- goto yy606;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy606;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy604:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy603:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy606;
++ if (yych <= '-') goto yy606;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy606;
++ if (yych <= '9') goto yy605;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy606;
++ goto yy605;
+ } else {
+ if (yych <= '`') goto yy493;
-yy605:
++ if (yych <= 'z') goto yy605;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy607;
++yy604:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy608;
++ if (yych == '-') goto yy606;
+ if (yych <= '/') goto yy493;
- goto yy608;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy608;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy606:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy605:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy608;
++ if (yych <= '-') goto yy608;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy608;
++ if (yych <= '9') goto yy607;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy608;
++ goto yy607;
+ } else {
+ if (yych <= '`') goto yy493;
-yy607:
++ if (yych <= 'z') goto yy607;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy609;
++yy606:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy610;
++ if (yych == '-') goto yy608;
+ if (yych <= '/') goto yy493;
- goto yy610;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy610;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy608:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy607:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy610;
++ if (yych <= '-') goto yy610;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy610;
++ if (yych <= '9') goto yy609;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy610;
++ goto yy609;
+ } else {
+ if (yych <= '`') goto yy493;
-yy609:
++ if (yych <= 'z') goto yy609;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy611;
++yy608:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy612;
++ if (yych == '-') goto yy610;
+ if (yych <= '/') goto yy493;
- goto yy612;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy612;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy610:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy609:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy612;
++ if (yych <= '-') goto yy612;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy612;
++ if (yych <= '9') goto yy611;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy612;
++ goto yy611;
+ } else {
+ if (yych <= '`') goto yy493;
-yy611:
++ if (yych <= 'z') goto yy611;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy613;
++yy610:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy614;
++ if (yych == '-') goto yy612;
+ if (yych <= '/') goto yy493;
- goto yy614;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy614;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy612:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy611:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy614;
++ if (yych <= '-') goto yy614;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy614;
++ if (yych <= '9') goto yy613;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy614;
++ goto yy613;
+ } else {
+ if (yych <= '`') goto yy493;
-yy613:
++ if (yych <= 'z') goto yy613;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy615;
++yy612:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy616;
++ if (yych == '-') goto yy614;
+ if (yych <= '/') goto yy493;
- goto yy616;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy616;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy614:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy613:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy616;
++ if (yych <= '-') goto yy616;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy616;
++ if (yych <= '9') goto yy615;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy616;
++ goto yy615;
+ } else {
+ if (yych <= '`') goto yy493;
-yy615:
++ if (yych <= 'z') goto yy615;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy617;
++yy614:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy618;
++ if (yych == '-') goto yy616;
+ if (yych <= '/') goto yy493;
- goto yy618;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy618;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy616:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy615:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy618;
++ if (yych <= '-') goto yy618;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy618;
++ if (yych <= '9') goto yy617;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy618;
++ goto yy617;
+ } else {
+ if (yych <= '`') goto yy493;
-yy617:
++ if (yych <= 'z') goto yy617;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy619;
++yy616:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy620;
++ if (yych == '-') goto yy618;
+ if (yych <= '/') goto yy493;
- goto yy620;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy620;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy618:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy617:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy620;
++ if (yych <= '-') goto yy620;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy620;
++ if (yych <= '9') goto yy619;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy620;
++ goto yy619;
+ } else {
+ if (yych <= '`') goto yy493;
-yy619:
++ if (yych <= 'z') goto yy619;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy621;
++yy618:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy622;
++ if (yych == '-') goto yy620;
+ if (yych <= '/') goto yy493;
- goto yy622;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy622;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy620:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy619:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy622;
++ if (yych <= '-') goto yy622;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy622;
++ if (yych <= '9') goto yy621;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy622;
++ goto yy621;
+ } else {
+ if (yych <= '`') goto yy493;
-yy621:
++ if (yych <= 'z') goto yy621;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy623;
++yy620:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
- goto yy624;
++ if (yych == '-') goto yy622;
+ if (yych <= '/') goto yy493;
- goto yy624;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy624;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy622:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy621:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- yych = *++p;
- if (yych <= '9') {
- if (yych == '-') goto yy628;
- if (yych <= '/') goto yy493;
- goto yy629;
- } else {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy493;
- goto yy629;
- } else {
- if (yych <= '`') goto yy493;
- if (yych <= 'z') goto yy629;
- goto yy493;
- }
- }
-yy627:
++ if (yych <= '-') goto yy623;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
+ if (yych <= '9') goto yy624;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
+ goto yy624;
+ } else {
+ if (yych <= '`') goto yy493;
+ if (yych <= 'z') goto yy624;
+ goto yy493;
+ }
+ }
++yy622:
++ ++p;
++ yych = *p;
++ if (yych <= '9') {
++ if (yych == '-') goto yy623;
++ if (yych <= '/') goto yy493;
++ goto yy624;
++ } else {
++ if (yych <= 'Z') {
++ if (yych <= '@') goto yy493;
++ goto yy624;
++ } else {
++ if (yych <= '`') goto yy493;
++ if (yych <= 'z') goto yy624;
++ goto yy493;
++ }
++ }
+ yy623:
+ ++p;
+ yych = *p;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy493;
+ if (yych <= '9') goto yy625;
+ goto yy493;
+ } else {
+ if (yych <= 'Z') goto yy625;
+ if (yych <= '`') goto yy493;
+ if (yych <= 'z') goto yy625;
+ goto yy493;
+ }
+ yy624:
+ ++p;
+ yych = *p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= '-') goto yy493;
+ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
+ if (yych >= ':') goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
+ if (yych >= '{') goto yy493;
+ }
+ }
+ yy625:
+ ++p;
+ yych = *p;
+ if (yych == '.') goto yy499;
+ if (yych == '>') goto yy500;
+ goto yy493;
+ yy626:
- if (yych >= '.') goto yy499;
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy629;
++ if (yych <= '-') goto yy629;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy629;
++ if (yych <= '9') goto yy628;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy629;
++ goto yy628;
+ } else {
+ if (yych <= '`') goto yy493;
-yy628:
++ if (yych <= 'z') goto yy628;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy630;
++yy627:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy631;
++ if (yych == '-') goto yy629;
+ if (yych <= '/') goto yy493;
- goto yy631;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy631;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy629:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy628:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy631;
++ if (yych <= '-') goto yy631;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy631;
++ if (yych <= '9') goto yy630;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy631;
++ goto yy630;
+ } else {
+ if (yych <= '`') goto yy493;
-yy630:
++ if (yych <= 'z') goto yy630;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy632;
++yy629:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy633;
++ if (yych == '-') goto yy631;
+ if (yych <= '/') goto yy493;
- goto yy633;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy633;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy631:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy630:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy633;
++ if (yych <= '-') goto yy633;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy633;
++ if (yych <= '9') goto yy632;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy633;
++ goto yy632;
+ } else {
+ if (yych <= '`') goto yy493;
-yy632:
++ if (yych <= 'z') goto yy632;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy634;
++yy631:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy635;
++ if (yych == '-') goto yy633;
+ if (yych <= '/') goto yy493;
- goto yy635;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy635;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy633:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy632:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy635;
++ if (yych <= '-') goto yy635;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy635;
++ if (yych <= '9') goto yy634;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy635;
++ goto yy634;
+ } else {
+ if (yych <= '`') goto yy493;
-yy634:
++ if (yych <= 'z') goto yy634;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy636;
++yy633:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy637;
++ if (yych == '-') goto yy635;
+ if (yych <= '/') goto yy493;
- goto yy637;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy637;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy635:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy634:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy637;
++ if (yych <= '-') goto yy637;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy637;
++ if (yych <= '9') goto yy636;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy637;
++ goto yy636;
+ } else {
+ if (yych <= '`') goto yy493;
-yy636:
++ if (yych <= 'z') goto yy636;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy638;
++yy635:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy639;
++ if (yych == '-') goto yy637;
+ if (yych <= '/') goto yy493;
- goto yy639;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy639;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy637:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy636:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy639;
++ if (yych <= '-') goto yy639;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy639;
++ if (yych <= '9') goto yy638;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy639;
++ goto yy638;
+ } else {
+ if (yych <= '`') goto yy493;
-yy638:
++ if (yych <= 'z') goto yy638;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy640;
++yy637:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy641;
++ if (yych == '-') goto yy639;
+ if (yych <= '/') goto yy493;
- goto yy641;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy641;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy639:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy638:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy641;
++ if (yych <= '-') goto yy641;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy641;
++ if (yych <= '9') goto yy640;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy641;
++ goto yy640;
+ } else {
+ if (yych <= '`') goto yy493;
-yy640:
++ if (yych <= 'z') goto yy640;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy642;
++yy639:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy643;
++ if (yych == '-') goto yy641;
+ if (yych <= '/') goto yy493;
- goto yy643;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy643;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy641:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy640:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy643;
++ if (yych <= '-') goto yy643;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy643;
++ if (yych <= '9') goto yy642;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy643;
++ goto yy642;
+ } else {
+ if (yych <= '`') goto yy493;
-yy642:
++ if (yych <= 'z') goto yy642;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy644;
++yy641:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy645;
++ if (yych == '-') goto yy643;
+ if (yych <= '/') goto yy493;
- goto yy645;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy645;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy643:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy642:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy645;
++ if (yych <= '-') goto yy645;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy645;
++ if (yych <= '9') goto yy644;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy645;
++ goto yy644;
+ } else {
+ if (yych <= '`') goto yy493;
-yy644:
++ if (yych <= 'z') goto yy644;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy646;
++yy643:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy647;
++ if (yych == '-') goto yy645;
+ if (yych <= '/') goto yy493;
- goto yy647;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy647;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy645:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy644:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy647;
++ if (yych <= '-') goto yy647;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy647;
++ if (yych <= '9') goto yy646;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy647;
++ goto yy646;
+ } else {
+ if (yych <= '`') goto yy493;
-yy646:
++ if (yych <= 'z') goto yy646;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy648;
++yy645:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy649;
++ if (yych == '-') goto yy647;
+ if (yych <= '/') goto yy493;
- goto yy649;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy649;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy647:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy646:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy649;
++ if (yych <= '-') goto yy649;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy649;
++ if (yych <= '9') goto yy648;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy649;
++ goto yy648;
+ } else {
+ if (yych <= '`') goto yy493;
-yy648:
++ if (yych <= 'z') goto yy648;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy650;
++yy647:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy651;
++ if (yych == '-') goto yy649;
+ if (yych <= '/') goto yy493;
- goto yy651;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy651;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy649:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy648:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy651;
++ if (yych <= '-') goto yy651;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy651;
++ if (yych <= '9') goto yy650;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy651;
++ goto yy650;
+ } else {
+ if (yych <= '`') goto yy493;
-yy650:
++ if (yych <= 'z') goto yy650;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy652;
++yy649:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy653;
++ if (yych == '-') goto yy651;
+ if (yych <= '/') goto yy493;
- goto yy653;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy653;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy651:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy650:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy653;
++ if (yych <= '-') goto yy653;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy653;
++ if (yych <= '9') goto yy652;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy653;
++ goto yy652;
+ } else {
+ if (yych <= '`') goto yy493;
-yy652:
++ if (yych <= 'z') goto yy652;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy654;
++yy651:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy655;
++ if (yych == '-') goto yy653;
+ if (yych <= '/') goto yy493;
- goto yy655;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy655;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy653:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy652:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy655;
++ if (yych <= '-') goto yy655;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy655;
++ if (yych <= '9') goto yy654;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy655;
++ goto yy654;
+ } else {
+ if (yych <= '`') goto yy493;
-yy654:
++ if (yych <= 'z') goto yy654;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy656;
++yy653:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy657;
++ if (yych == '-') goto yy655;
+ if (yych <= '/') goto yy493;
- goto yy657;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy657;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy655:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy654:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy657;
++ if (yych <= '-') goto yy657;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy657;
++ if (yych <= '9') goto yy656;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy657;
++ goto yy656;
+ } else {
+ if (yych <= '`') goto yy493;
-yy656:
++ if (yych <= 'z') goto yy656;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy658;
++yy655:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy659;
++ if (yych == '-') goto yy657;
+ if (yych <= '/') goto yy493;
- goto yy659;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy659;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy657:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy656:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy659;
++ if (yych <= '-') goto yy659;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy659;
++ if (yych <= '9') goto yy658;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy659;
++ goto yy658;
+ } else {
+ if (yych <= '`') goto yy493;
-yy658:
++ if (yych <= 'z') goto yy658;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy660;
++yy657:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy661;
++ if (yych == '-') goto yy659;
+ if (yych <= '/') goto yy493;
- goto yy661;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy661;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy659:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy658:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy661;
++ if (yych <= '-') goto yy661;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy661;
++ if (yych <= '9') goto yy660;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy661;
++ goto yy660;
+ } else {
+ if (yych <= '`') goto yy493;
-yy660:
++ if (yych <= 'z') goto yy660;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy662;
++yy659:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy663;
++ if (yych == '-') goto yy661;
+ if (yych <= '/') goto yy493;
- goto yy663;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy663;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy661:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy660:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy663;
++ if (yych <= '-') goto yy663;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy663;
++ if (yych <= '9') goto yy662;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy663;
++ goto yy662;
+ } else {
+ if (yych <= '`') goto yy493;
-yy662:
++ if (yych <= 'z') goto yy662;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy664;
++yy661:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy665;
++ if (yych == '-') goto yy663;
+ if (yych <= '/') goto yy493;
- goto yy665;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy665;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy663:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy662:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy665;
++ if (yych <= '-') goto yy665;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy665;
++ if (yych <= '9') goto yy664;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy665;
++ goto yy664;
+ } else {
+ if (yych <= '`') goto yy493;
-yy664:
++ if (yych <= 'z') goto yy664;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy666;
++yy663:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy667;
++ if (yych == '-') goto yy665;
+ if (yych <= '/') goto yy493;
- goto yy667;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy667;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy665:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy664:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy667;
++ if (yych <= '-') goto yy667;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy667;
++ if (yych <= '9') goto yy666;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy667;
++ goto yy666;
+ } else {
+ if (yych <= '`') goto yy493;
-yy666:
++ if (yych <= 'z') goto yy666;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy668;
++yy665:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy669;
++ if (yych == '-') goto yy667;
+ if (yych <= '/') goto yy493;
- goto yy669;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy669;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy667:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy666:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy669;
++ if (yych <= '-') goto yy669;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy669;
++ if (yych <= '9') goto yy668;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy669;
++ goto yy668;
+ } else {
+ if (yych <= '`') goto yy493;
-yy668:
++ if (yych <= 'z') goto yy668;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy670;
++yy667:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy671;
++ if (yych == '-') goto yy669;
+ if (yych <= '/') goto yy493;
- goto yy671;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy671;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy669:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy668:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy671;
++ if (yych <= '-') goto yy671;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy671;
++ if (yych <= '9') goto yy670;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy671;
++ goto yy670;
+ } else {
+ if (yych <= '`') goto yy493;
-yy670:
++ if (yych <= 'z') goto yy670;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy672;
++yy669:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy673;
++ if (yych == '-') goto yy671;
+ if (yych <= '/') goto yy493;
- goto yy673;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy673;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy671:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy670:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy673;
++ if (yych <= '-') goto yy673;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy673;
++ if (yych <= '9') goto yy672;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy673;
++ goto yy672;
+ } else {
+ if (yych <= '`') goto yy493;
-yy672:
++ if (yych <= 'z') goto yy672;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy674;
++yy671:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy675;
++ if (yych == '-') goto yy673;
+ if (yych <= '/') goto yy493;
- goto yy675;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy675;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy673:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy672:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy675;
++ if (yych <= '-') goto yy675;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy675;
++ if (yych <= '9') goto yy674;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy675;
++ goto yy674;
+ } else {
+ if (yych <= '`') goto yy493;
-yy674:
++ if (yych <= 'z') goto yy674;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy676;
++yy673:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy677;
++ if (yych == '-') goto yy675;
+ if (yych <= '/') goto yy493;
- goto yy677;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy677;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy675:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy674:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy677;
++ if (yych <= '-') goto yy677;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy677;
++ if (yych <= '9') goto yy676;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy677;
++ goto yy676;
+ } else {
+ if (yych <= '`') goto yy493;
-yy676:
++ if (yych <= 'z') goto yy676;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy678;
++yy675:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy679;
++ if (yych == '-') goto yy677;
+ if (yych <= '/') goto yy493;
- goto yy679;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy679;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy677:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy676:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy679;
++ if (yych <= '-') goto yy679;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy679;
++ if (yych <= '9') goto yy678;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy679;
++ goto yy678;
+ } else {
+ if (yych <= '`') goto yy493;
-yy678:
++ if (yych <= 'z') goto yy678;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy680;
++yy677:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy681;
++ if (yych == '-') goto yy679;
+ if (yych <= '/') goto yy493;
- goto yy681;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy681;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy679:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy678:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy681;
++ if (yych <= '-') goto yy681;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy681;
++ if (yych <= '9') goto yy680;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy681;
++ goto yy680;
+ } else {
+ if (yych <= '`') goto yy493;
-yy680:
++ if (yych <= 'z') goto yy680;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy682;
++yy679:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy683;
++ if (yych == '-') goto yy681;
+ if (yych <= '/') goto yy493;
- goto yy683;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy683;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy681:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy680:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy683;
++ if (yych <= '-') goto yy683;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy683;
++ if (yych <= '9') goto yy682;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy683;
++ goto yy682;
+ } else {
+ if (yych <= '`') goto yy493;
-yy682:
++ if (yych <= 'z') goto yy682;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy684;
++yy681:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy685;
++ if (yych == '-') goto yy683;
+ if (yych <= '/') goto yy493;
- goto yy685;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy685;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy683:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy682:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy685;
++ if (yych <= '-') goto yy685;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy685;
++ if (yych <= '9') goto yy684;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy685;
++ goto yy684;
+ } else {
+ if (yych <= '`') goto yy493;
-yy684:
++ if (yych <= 'z') goto yy684;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy686;
++yy683:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy687;
++ if (yych == '-') goto yy685;
+ if (yych <= '/') goto yy493;
- goto yy687;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy687;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy685:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy684:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy687;
++ if (yych <= '-') goto yy687;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy687;
++ if (yych <= '9') goto yy686;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy687;
++ goto yy686;
+ } else {
+ if (yych <= '`') goto yy493;
-yy686:
++ if (yych <= 'z') goto yy686;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy688;
++yy685:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy689;
++ if (yych == '-') goto yy687;
+ if (yych <= '/') goto yy493;
- goto yy689;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy689;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy687:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy686:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy689;
++ if (yych <= '-') goto yy689;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy689;
++ if (yych <= '9') goto yy688;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy689;
++ goto yy688;
+ } else {
+ if (yych <= '`') goto yy493;
-yy688:
++ if (yych <= 'z') goto yy688;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy690;
++yy687:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy691;
++ if (yych == '-') goto yy689;
+ if (yych <= '/') goto yy493;
- goto yy691;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy691;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy689:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy688:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy691;
++ if (yych <= '-') goto yy691;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy691;
++ if (yych <= '9') goto yy690;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy691;
++ goto yy690;
+ } else {
+ if (yych <= '`') goto yy493;
-yy690:
++ if (yych <= 'z') goto yy690;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy692;
++yy689:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy693;
++ if (yych == '-') goto yy691;
+ if (yych <= '/') goto yy493;
- goto yy693;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy693;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy691:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy690:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy693;
++ if (yych <= '-') goto yy693;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy693;
++ if (yych <= '9') goto yy692;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy693;
++ goto yy692;
+ } else {
+ if (yych <= '`') goto yy493;
-yy692:
++ if (yych <= 'z') goto yy692;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy694;
++yy691:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy695;
++ if (yych == '-') goto yy693;
+ if (yych <= '/') goto yy493;
- goto yy695;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy695;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy693:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy692:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy695;
++ if (yych <= '-') goto yy695;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy695;
++ if (yych <= '9') goto yy694;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy695;
++ goto yy694;
+ } else {
+ if (yych <= '`') goto yy493;
-yy694:
++ if (yych <= 'z') goto yy694;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy696;
++yy693:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy697;
++ if (yych == '-') goto yy695;
+ if (yych <= '/') goto yy493;
- goto yy697;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy697;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy695:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy694:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy697;
++ if (yych <= '-') goto yy697;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy697;
++ if (yych <= '9') goto yy696;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy697;
++ goto yy696;
+ } else {
+ if (yych <= '`') goto yy493;
-yy696:
++ if (yych <= 'z') goto yy696;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy698;
++yy695:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy699;
++ if (yych == '-') goto yy697;
+ if (yych <= '/') goto yy493;
- goto yy699;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy699;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy697:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy696:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy699;
++ if (yych <= '-') goto yy699;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy699;
++ if (yych <= '9') goto yy698;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy699;
++ goto yy698;
+ } else {
+ if (yych <= '`') goto yy493;
-yy698:
++ if (yych <= 'z') goto yy698;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy700;
++yy697:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy701;
++ if (yych == '-') goto yy699;
+ if (yych <= '/') goto yy493;
- goto yy701;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy701;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy699:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy698:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy701;
++ if (yych <= '-') goto yy701;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy701;
++ if (yych <= '9') goto yy700;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy701;
++ goto yy700;
+ } else {
+ if (yych <= '`') goto yy493;
-yy700:
++ if (yych <= 'z') goto yy700;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy702;
++yy699:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy703;
++ if (yych == '-') goto yy701;
+ if (yych <= '/') goto yy493;
- goto yy703;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy703;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy701:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy700:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy703;
++ if (yych <= '-') goto yy703;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy703;
++ if (yych <= '9') goto yy702;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy703;
++ goto yy702;
+ } else {
+ if (yych <= '`') goto yy493;
-yy702:
++ if (yych <= 'z') goto yy702;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy704;
++yy701:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy705;
++ if (yych == '-') goto yy703;
+ if (yych <= '/') goto yy493;
- goto yy705;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy705;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy703:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy702:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy705;
++ if (yych <= '-') goto yy705;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy705;
++ if (yych <= '9') goto yy704;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy705;
++ goto yy704;
+ } else {
+ if (yych <= '`') goto yy493;
-yy704:
++ if (yych <= 'z') goto yy704;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy706;
++yy703:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy707;
++ if (yych == '-') goto yy705;
+ if (yych <= '/') goto yy493;
- goto yy707;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy707;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy705:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy704:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy707;
++ if (yych <= '-') goto yy707;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy707;
++ if (yych <= '9') goto yy706;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy707;
++ goto yy706;
+ } else {
+ if (yych <= '`') goto yy493;
-yy706:
++ if (yych <= 'z') goto yy706;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy708;
++yy705:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy709;
++ if (yych == '-') goto yy707;
+ if (yych <= '/') goto yy493;
- goto yy709;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy709;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy707:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy706:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy709;
++ if (yych <= '-') goto yy709;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy709;
++ if (yych <= '9') goto yy708;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy709;
++ goto yy708;
+ } else {
+ if (yych <= '`') goto yy493;
-yy708:
++ if (yych <= 'z') goto yy708;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy710;
++yy707:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy711;
++ if (yych == '-') goto yy709;
+ if (yych <= '/') goto yy493;
- goto yy711;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy711;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy709:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy708:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy711;
++ if (yych <= '-') goto yy711;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy711;
++ if (yych <= '9') goto yy710;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy711;
++ goto yy710;
+ } else {
+ if (yych <= '`') goto yy493;
-yy710:
++ if (yych <= 'z') goto yy710;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy712;
++yy709:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy713;
++ if (yych == '-') goto yy711;
+ if (yych <= '/') goto yy493;
- goto yy713;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy713;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy711:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy710:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy713;
++ if (yych <= '-') goto yy713;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy713;
++ if (yych <= '9') goto yy712;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy713;
++ goto yy712;
+ } else {
+ if (yych <= '`') goto yy493;
-yy712:
++ if (yych <= 'z') goto yy712;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy714;
++yy711:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy715;
++ if (yych == '-') goto yy713;
+ if (yych <= '/') goto yy493;
- goto yy715;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy715;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy713:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy712:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy715;
++ if (yych <= '-') goto yy715;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy715;
++ if (yych <= '9') goto yy714;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy715;
++ goto yy714;
+ } else {
+ if (yych <= '`') goto yy493;
-yy714:
++ if (yych <= 'z') goto yy714;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy716;
++yy713:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy717;
++ if (yych == '-') goto yy715;
+ if (yych <= '/') goto yy493;
- goto yy717;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy717;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy715:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy714:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy717;
++ if (yych <= '-') goto yy717;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy717;
++ if (yych <= '9') goto yy716;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy717;
++ goto yy716;
+ } else {
+ if (yych <= '`') goto yy493;
-yy716:
++ if (yych <= 'z') goto yy716;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy718;
++yy715:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy719;
++ if (yych == '-') goto yy717;
+ if (yych <= '/') goto yy493;
- goto yy719;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy719;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy717:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy716:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy719;
++ if (yych <= '-') goto yy719;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy719;
++ if (yych <= '9') goto yy718;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy719;
++ goto yy718;
+ } else {
+ if (yych <= '`') goto yy493;
-yy718:
++ if (yych <= 'z') goto yy718;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy720;
++yy717:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy721;
++ if (yych == '-') goto yy719;
+ if (yych <= '/') goto yy493;
- goto yy721;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy721;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy719:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy718:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy721;
++ if (yych <= '-') goto yy721;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy721;
++ if (yych <= '9') goto yy720;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy721;
++ goto yy720;
+ } else {
+ if (yych <= '`') goto yy493;
-yy720:
++ if (yych <= 'z') goto yy720;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy722;
++yy719:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy723;
++ if (yych == '-') goto yy721;
+ if (yych <= '/') goto yy493;
- goto yy723;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy723;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy721:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy720:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy723;
++ if (yych <= '-') goto yy723;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy723;
++ if (yych <= '9') goto yy722;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy723;
++ goto yy722;
+ } else {
+ if (yych <= '`') goto yy493;
-yy722:
++ if (yych <= 'z') goto yy722;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy724;
++yy721:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy725;
++ if (yych == '-') goto yy723;
+ if (yych <= '/') goto yy493;
- goto yy725;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy725;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy723:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy722:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy725;
++ if (yych <= '-') goto yy725;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy725;
++ if (yych <= '9') goto yy724;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy725;
++ goto yy724;
+ } else {
+ if (yych <= '`') goto yy493;
-yy724:
++ if (yych <= 'z') goto yy724;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy726;
++yy723:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy727;
++ if (yych == '-') goto yy725;
+ if (yych <= '/') goto yy493;
- goto yy727;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy727;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy725:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy724:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy727;
++ if (yych <= '-') goto yy727;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy727;
++ if (yych <= '9') goto yy726;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy727;
++ goto yy726;
+ } else {
+ if (yych <= '`') goto yy493;
-yy726:
++ if (yych <= 'z') goto yy726;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy728;
++yy725:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy729;
++ if (yych == '-') goto yy727;
+ if (yych <= '/') goto yy493;
- goto yy729;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy729;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy727:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy726:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy729;
++ if (yych <= '-') goto yy729;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy729;
++ if (yych <= '9') goto yy728;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy729;
++ goto yy728;
+ } else {
+ if (yych <= '`') goto yy493;
-yy728:
++ if (yych <= 'z') goto yy728;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy730;
++yy727:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy731;
++ if (yych == '-') goto yy729;
+ if (yych <= '/') goto yy493;
- goto yy731;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy731;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy729:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy728:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy731;
++ if (yych <= '-') goto yy731;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy731;
++ if (yych <= '9') goto yy730;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy731;
++ goto yy730;
+ } else {
+ if (yych <= '`') goto yy493;
-yy730:
++ if (yych <= 'z') goto yy730;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy732;
++yy729:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy733;
++ if (yych == '-') goto yy731;
+ if (yych <= '/') goto yy493;
- goto yy733;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy733;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy731:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy730:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy733;
++ if (yych <= '-') goto yy733;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy733;
++ if (yych <= '9') goto yy732;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy733;
++ goto yy732;
+ } else {
+ if (yych <= '`') goto yy493;
-yy732:
++ if (yych <= 'z') goto yy732;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy734;
++yy731:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy735;
++ if (yych == '-') goto yy733;
+ if (yych <= '/') goto yy493;
- goto yy735;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy735;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy733:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy732:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy735;
++ if (yych <= '-') goto yy735;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy735;
++ if (yych <= '9') goto yy734;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy735;
++ goto yy734;
+ } else {
+ if (yych <= '`') goto yy493;
-yy734:
++ if (yych <= 'z') goto yy734;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy736;
++yy733:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy737;
++ if (yych == '-') goto yy735;
+ if (yych <= '/') goto yy493;
- goto yy737;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy737;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy735:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy734:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy737;
++ if (yych <= '-') goto yy737;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy737;
++ if (yych <= '9') goto yy736;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy737;
++ goto yy736;
+ } else {
+ if (yych <= '`') goto yy493;
-yy736:
++ if (yych <= 'z') goto yy736;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy738;
++yy735:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy739;
++ if (yych == '-') goto yy737;
+ if (yych <= '/') goto yy493;
- goto yy739;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy739;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy737:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy736:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy739;
++ if (yych <= '-') goto yy739;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy739;
++ if (yych <= '9') goto yy738;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy739;
++ goto yy738;
+ } else {
+ if (yych <= '`') goto yy493;
-yy738:
++ if (yych <= 'z') goto yy738;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy740;
++yy737:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy741;
++ if (yych == '-') goto yy739;
+ if (yych <= '/') goto yy493;
- goto yy741;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy741;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy739:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy738:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy741;
++ if (yych <= '-') goto yy741;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy741;
++ if (yych <= '9') goto yy740;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy741;
++ goto yy740;
+ } else {
+ if (yych <= '`') goto yy493;
-yy740:
++ if (yych <= 'z') goto yy740;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy742;
++yy739:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy743;
++ if (yych == '-') goto yy741;
+ if (yych <= '/') goto yy493;
- goto yy743;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy743;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy741:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy740:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- if (yych <= '9') goto yy743;
++ if (yych <= '-') goto yy743;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
- goto yy743;
++ if (yych <= '9') goto yy742;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy743;
++ goto yy742;
+ } else {
+ if (yych <= '`') goto yy493;
-yy742:
++ if (yych <= 'z') goto yy742;
+ goto yy493;
+ }
+ }
- if (yych == '-') goto yy744;
++yy741:
+ yych = *++p;
+ if (yych <= '9') {
- goto yy745;
++ if (yych == '-') goto yy743;
+ if (yych <= '/') goto yy493;
- goto yy745;
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '@') goto yy493;
- if (yych <= 'z') goto yy745;
- goto yy493;
+ } else {
+ if (yych <= '`') goto yy493;
-yy743:
++ if (yych >= '{') goto yy493;
+ }
+ }
- if (yych >= '.') goto yy499;
++yy742:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy493;
- 0, 32, 0, 0, 0, 0, 0, 0,
++ if (yych <= '-') goto yy744;
++ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
+ if (yych <= '9') goto yy745;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
+ goto yy745;
+ } else {
+ if (yych <= '`') goto yy493;
+ if (yych <= 'z') goto yy745;
+ goto yy493;
+ }
+ }
++yy743:
++ yych = *++p;
++ if (yych <= '9') {
++ if (yych == '-') goto yy744;
++ if (yych <= '/') goto yy493;
++ goto yy745;
++ } else {
++ if (yych <= 'Z') {
++ if (yych <= '@') goto yy493;
++ goto yy745;
++ } else {
++ if (yych <= '`') goto yy493;
++ if (yych <= 'z') goto yy745;
++ goto yy493;
++ }
++ }
+ yy744:
+ yych = *++p;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy493;
+ if (yych <= '9') goto yy625;
+ goto yy493;
+ } else {
+ if (yych <= 'Z') goto yy625;
+ if (yych <= '`') goto yy493;
+ if (yych <= 'z') goto yy625;
+ goto yy493;
+ }
+ yy745:
+ ++p;
+ if ((yych = *p) <= '=') {
+ if (yych <= '.') {
+ if (yych <= '-') goto yy493;
+ goto yy499;
+ } else {
+ if (yych <= '/') goto yy493;
+ if (yych <= '9') goto yy625;
+ goto yy493;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '>') goto yy500;
+ if (yych <= '@') goto yy493;
+ goto yy625;
+ } else {
+ if (yych <= '`') goto yy493;
+ if (yych <= 'z') goto yy625;
+ goto yy493;
+ }
+ }
+ }
+
+ }
+
+ // Try to match an HTML tag after first <, returning num of chars matched.
+ int _scan_html_tag(const unsigned char *p)
+ {
+ const unsigned char *marker = NULL;
+ const unsigned char *start = p;
+
+ {
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ /* table 1 .. 8: 0 */
+ 0, 230, 230, 230, 230, 230, 230, 230,
+ 230, 199, 199, 199, 199, 199, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 199, 230, 70, 230, 230, 230, 230, 134,
+ 230, 230, 230, 230, 230, 246, 246, 230,
+ 254, 254, 254, 254, 254, 254, 254, 254,
+ 254, 254, 246, 230, 198, 198, 196, 230,
+ 230, 254, 254, 254, 254, 254, 254, 254,
+ 254, 254, 254, 254, 254, 254, 254, 254,
+ 254, 254, 254, 254, 254, 254, 254, 254,
+ 254, 254, 254, 230, 230, 226, 230, 246,
+ 198, 254, 254, 254, 254, 254, 254, 254,
+ 254, 254, 254, 254, 254, 254, 254, 254,
+ 254, 254, 254, 254, 254, 254, 254, 254,
+ 254, 254, 254, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230,
+ /* table 9 .. 11: 256 */
+ 0, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 32, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 128,
+ 160, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 224, 224, 224, 224, 224, 224,
+ 224, 224, 224, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ };
+ yych = *p;
+ if (yych <= '/') {
+ if (yych <= ' ') {
+ if (yych != '\n') goto yy753;
+ } else {
+ if (yych <= '!') goto yy751;
+ if (yych <= '.') goto yy753;
+ goto yy750;
+ }
+ } else {
+ if (yych <= '@') {
+ if (yych == '?') goto yy752;
+ goto yy753;
+ } else {
+ if (yych <= 'Z') goto yy749;
+ if (yych <= '`') goto yy753;
+ if (yych <= 'z') goto yy749;
+ goto yy753;
+ }
+ }
+ yy748:
+ { return 0; }
+ yy749:
+ yych = *(marker = ++p);
+ if (yych <= '9') {
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy748;
+ if (yych <= '\r') goto yy790;
+ goto yy748;
+ } else {
+ if (yych <= ' ') goto yy790;
+ if (yych <= '.') goto yy748;
+ if (yych <= '/') goto yy792;
+ goto yy788;
+ }
+ } else {
+ if (yych <= '@') {
+ if (yych == '>') goto yy758;
+ goto yy748;
+ } else {
+ if (yych <= 'Z') goto yy788;
+ if (yych <= '`') goto yy748;
+ if (yych <= 'z') goto yy788;
+ goto yy748;
+ }
+ }
+ yy750:
+ yych = *(marker = ++p);
+ if (yych <= '@') goto yy748;
+ if (yych <= 'Z') goto yy784;
+ if (yych <= '`') goto yy748;
+ if (yych <= 'z') goto yy784;
+ goto yy748;
+ yy751:
+ yych = *(marker = ++p);
+ if (yybm[256+yych] & 64) {
+ goto yy761;
+ }
+ if (yych == '-') goto yy763;
+ if (yych <= '@') goto yy748;
+ if (yych <= '[') goto yy760;
+ goto yy748;
+ yy752:
+ yych = *(marker = ++p);
+ if (yych <= 0x00) goto yy748;
+ goto yy755;
+ yy753:
+ yych = *++p;
+ goto yy748;
+ yy754:
+ ++p;
+ yych = *p;
+ yy755:
+ if (yybm[256+yych] & 32) {
+ goto yy754;
+ }
+ if (yych >= 0x01) goto yy757;
+ yy756:
+ p = marker;
+ goto yy748;
+ yy757:
+ ++p;
+ yych = *p;
+ if (yych <= 0x00) goto yy756;
+ if (yych != '>') goto yy754;
+ yy758:
+ ++p;
+ { return (p - start); }
+ yy760:
+ yych = *++p;
+ if (yych == 'C') goto yy775;
+ if (yych == 'c') goto yy775;
+ goto yy756;
+ yy761:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 1) {
+ goto yy771;
+ }
+ if (yych <= '@') goto yy756;
+ if (yych <= 'Z') goto yy761;
+ goto yy756;
+ yy763:
+ yych = *++p;
+ if (yych != '-') goto yy756;
+ yych = *++p;
+ if (yych == '-') goto yy765;
+ if (yych == '>') goto yy756;
+ goto yy767;
+ yy765:
+ yych = *++p;
+ if (yych == '-') goto yy770;
+ if (yych == '>') goto yy756;
+ goto yy767;
+ yy766:
+ ++p;
+ yych = *p;
+ yy767:
+ if (yybm[256+yych] & 128) {
+ goto yy766;
+ }
+ if (yych <= 0x00) goto yy756;
+ ++p;
+ yych = *p;
+ if (yybm[256+yych] & 128) {
+ goto yy766;
+ }
+ if (yych <= 0x00) goto yy756;
+ yych = *++p;
+ if (yych == '>') goto yy758;
+ goto yy756;
+ yy770:
+ yych = *++p;
+ if (yych == '>') goto yy758;
+ goto yy756;
+ yy771:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 1) {
+ goto yy771;
+ }
+ if (yych <= 0x00) goto yy756;
+ if (yych == '>') goto yy758;
+ yy773:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 2) {
+ goto yy773;
+ }
+ if (yych <= 0x00) goto yy756;
+ goto yy758;
+ yy775:
+ yych = *++p;
+ if (yych == 'D') goto yy776;
+ if (yych != 'd') goto yy756;
+ yy776:
+ yych = *++p;
+ if (yych == 'A') goto yy777;
+ if (yych != 'a') goto yy756;
+ yy777:
+ yych = *++p;
+ if (yych == 'T') goto yy778;
+ if (yych != 't') goto yy756;
+ yy778:
+ yych = *++p;
+ if (yych == 'A') goto yy779;
+ if (yych != 'a') goto yy756;
+ yy779:
+ yych = *++p;
+ if (yych != '[') goto yy756;
+ yy780:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 4) {
+ goto yy780;
+ }
+ if (yych <= 0x00) goto yy756;
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 4) {
+ goto yy780;
+ }
+ if (yych <= 0x00) goto yy756;
+ ++p;
+ yych = *p;
+ if (yych <= 0x00) goto yy756;
+ if (yych == '>') goto yy758;
+ goto yy780;
+ yy784:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 8) {
+ goto yy784;
+ }
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy756;
+ if (yych >= 0x0E) goto yy756;
+ } else {
+ if (yych <= ' ') goto yy786;
+ if (yych == '>') goto yy758;
+ goto yy756;
+ }
+ yy786:
+ ++p;
+ yych = *p;
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy756;
+ if (yych <= '\r') goto yy786;
+ goto yy756;
+ } else {
+ if (yych <= ' ') goto yy786;
+ if (yych == '>') goto yy758;
+ goto yy756;
+ }
+ yy788:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy756;
+ if (yych >= 0x0E) goto yy756;
+ } else {
+ if (yych <= ' ') goto yy790;
+ if (yych <= '.') goto yy756;
+ if (yych <= '/') goto yy792;
+ goto yy788;
+ }
+ } else {
+ if (yych <= '@') {
+ if (yych == '>') goto yy758;
+ goto yy756;
+ } else {
+ if (yych <= 'Z') goto yy788;
+ if (yych <= '`') goto yy756;
+ if (yych <= 'z') goto yy788;
+ goto yy756;
+ }
+ }
+ yy790:
+ ++p;
+ yych = *p;
+ if (yych <= ':') {
+ if (yych <= ' ') {
+ if (yych <= 0x08) goto yy756;
+ if (yych <= '\r') goto yy790;
+ if (yych <= 0x1F) goto yy756;
+ goto yy790;
+ } else {
+ if (yych == '/') goto yy792;
+ if (yych <= '9') goto yy756;
+ goto yy793;
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych == '>') goto yy758;
+ if (yych <= '@') goto yy756;
+ goto yy793;
+ } else {
+ if (yych <= '_') {
+ if (yych <= '^') goto yy756;
+ goto yy793;
+ } else {
+ if (yych <= '`') goto yy756;
+ if (yych <= 'z') goto yy793;
+ goto yy756;
+ }
+ }
+ }
+ yy792:
+ yych = *++p;
+ if (yych == '>') goto yy758;
+ goto yy756;
+ yy793:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 16) {
+ goto yy793;
+ }
+ if (yych <= ',') {
+ if (yych <= '\r') {
+ if (yych <= 0x08) goto yy756;
+ } else {
+ if (yych != ' ') goto yy756;
+ }
+ } else {
+ if (yych <= '<') {
+ if (yych <= '/') goto yy792;
+ goto yy756;
+ } else {
+ if (yych <= '=') goto yy797;
+ if (yych <= '>') goto yy758;
+ goto yy756;
+ }
+ }
+ yy795:
+ ++p;
+ yych = *p;
+ if (yych <= '<') {
+ if (yych <= ' ') {
+ if (yych <= 0x08) goto yy756;
+ if (yych <= '\r') goto yy795;
+ if (yych <= 0x1F) goto yy756;
+ goto yy795;
+ } else {
+ if (yych <= '/') {
+ if (yych <= '.') goto yy756;
+ goto yy792;
+ } else {
+ if (yych == ':') goto yy793;
+ goto yy756;
+ }
+ }
+ } else {
+ if (yych <= 'Z') {
+ if (yych <= '=') goto yy797;
+ if (yych <= '>') goto yy758;
+ if (yych <= '@') goto yy756;
+ goto yy793;
+ } else {
+ if (yych <= '_') {
+ if (yych <= '^') goto yy756;
+ goto yy793;
+ } else {
+ if (yych <= '`') goto yy756;
+ if (yych <= 'z') goto yy793;
+ goto yy756;
+ }
+ }
+ }
+ yy797:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 32) {
+ goto yy799;
+ }
+ if (yych <= 0x00) goto yy756;
+ if (yych <= ' ') goto yy798;
+ if (yych <= '"') goto yy803;
+ if (yych <= '\'') goto yy801;
+ goto yy756;
+ yy798:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 32) {
+ goto yy799;
+ }
+ if (yych <= '"') {
+ if (yych <= 0x00) goto yy756;
+ if (yych <= ' ') goto yy812;
+ goto yy803;
+ } else {
+ if (yych <= '\'') goto yy801;
+ if (yych == '>') goto yy758;
+ goto yy756;
+ }
+ yy799:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 32) {
+ goto yy799;
+ }
+ if (yych <= 0x00) goto yy756;
+ if (yych <= ' ') goto yy806;
+ if (yych == '>') goto yy758;
+ goto yy756;
+ yy801:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 64) {
+ goto yy801;
+ }
+ if (yych <= 0x00) goto yy756;
+ goto yy805;
+ yy803:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 128) {
+ goto yy803;
+ }
+ if (yych <= 0x00) goto yy756;
+ yy805:
+ ++p;
+ yych = *p;
+ if (yych <= ' ') {
+ if (yych <= 0x08) goto yy756;
+ if (yych <= '\r') goto yy790;
+ if (yych <= 0x1F) goto yy756;
+ goto yy790;
+ } else {
+ if (yych <= '/') {
+ if (yych <= '.') goto yy756;
+ goto yy792;
+ } else {
+ if (yych == '>') goto yy758;
+ goto yy756;
+ }
+ }
+ yy806:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
+ if (yych <= ' ') {
+ if (yych <= 0x08) {
+ if (yych <= 0x00) goto yy756;
+ goto yy799;
+ } else {
+ if (yych <= '\r') goto yy806;
+ if (yych <= 0x1F) goto yy799;
+ goto yy806;
+ }
+ } else {
+ if (yych <= '"') {
+ if (yych <= '!') goto yy799;
+ goto yy756;
+ } else {
+ if (yych == '\'') goto yy756;
+ goto yy799;
+ }
+ }
+ } else {
+ if (yych <= '@') {
+ if (yych <= ';') {
+ if (yych >= ';') goto yy799;
+ } else {
+ if (yych <= '=') goto yy756;
+ if (yych <= '>') goto yy758;
+ goto yy799;
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= 'Z') goto yy808;
+ if (yych <= '^') goto yy799;
+ } else {
+ if (yych <= '`') goto yy756;
+ if (yych >= '{') goto yy799;
+ }
+ }
+ }
+ yy808:
+ ++p;
+ yych = *p;
+ if (yych <= '/') {
+ if (yych <= '!') {
+ if (yych <= '\r') {
+ if (yych <= 0x00) goto yy756;
+ if (yych <= 0x08) goto yy799;
+ } else {
+ if (yych != ' ') goto yy799;
+ }
+ } else {
+ if (yych <= '\'') {
+ if (yych <= '"') goto yy756;
+ if (yych <= '&') goto yy799;
+ goto yy756;
+ } else {
+ if (yych <= ',') goto yy799;
+ if (yych <= '.') goto yy808;
+ goto yy799;
+ }
+ }
+ } else {
+ if (yych <= '@') {
+ if (yych <= '<') {
+ if (yych <= ':') goto yy808;
+ if (yych <= ';') goto yy799;
+ goto yy756;
+ } else {
+ if (yych <= '=') goto yy797;
+ if (yych <= '>') goto yy758;
+ goto yy799;
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= 'Z') goto yy808;
+ if (yych <= '^') goto yy799;
+ goto yy808;
+ } else {
+ if (yych <= '`') goto yy756;
+ if (yych <= 'z') goto yy808;
+ goto yy799;
+ }
+ }
+ }
+ yy810:
+ ++p;
+ yych = *p;
+ if (yych <= ':') {
+ if (yych <= ' ') {
+ if (yych <= 0x08) {
+ if (yych <= 0x00) goto yy756;
+ goto yy799;
+ } else {
+ if (yych <= '\r') goto yy810;
+ if (yych <= 0x1F) goto yy799;
+ goto yy810;
+ }
+ } else {
+ if (yych <= '&') {
+ if (yych == '"') goto yy756;
+ goto yy799;
+ } else {
+ if (yych <= '\'') goto yy756;
+ if (yych <= '9') goto yy799;
+ goto yy808;
+ }
+ }
+ } else {
+ if (yych <= '@') {
+ if (yych <= '<') {
+ if (yych <= ';') goto yy799;
+ goto yy756;
+ } else {
+ if (yych <= '=') goto yy797;
+ if (yych <= '>') goto yy758;
+ goto yy799;
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= 'Z') goto yy808;
+ if (yych <= '^') goto yy799;
+ goto yy808;
+ } else {
+ if (yych <= '`') goto yy756;
+ if (yych <= 'z') goto yy808;
+ goto yy799;
+ }
+ }
+ }
+ yy812:
+ ++p;
+ yych = *p;
+ if (yych <= '9') {
+ if (yych <= ' ') {
+ if (yych <= 0x08) {
+ if (yych <= 0x00) goto yy756;
+ goto yy799;
+ } else {
+ if (yych <= '\r') goto yy812;
+ if (yych <= 0x1F) goto yy799;
+ goto yy812;
+ }
+ } else {
+ if (yych <= '"') {
+ if (yych <= '!') goto yy799;
+ goto yy803;
+ } else {
+ if (yych == '\'') goto yy801;
+ goto yy799;
+ }
+ }
+ } else {
+ if (yych <= '@') {
+ if (yych <= ';') {
+ if (yych <= ':') goto yy808;
+ goto yy799;
+ } else {
+ if (yych <= '=') goto yy756;
+ if (yych <= '>') goto yy758;
+ goto yy799;
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= 'Z') goto yy808;
+ if (yych <= '^') goto yy799;
+ goto yy808;
+ } else {
+ if (yych <= '`') goto yy756;
+ if (yych <= 'z') goto yy808;
+ goto yy799;
+ }
+ }
+ }
+ }
+
+ }
+
+ // Try to match an HTML block tag including first <,
+ // returning num of chars matched.
+ int _scan_html_block_tag(const unsigned char *p)
+ {
+ const unsigned char *marker = NULL;
+ const unsigned char *start = p;
+
+ {
+ unsigned char yych;
+ yych = *p;
+ if (yych == '\n') goto yy816;
+ if (yych == '<') goto yy817;
+ goto yy818;
+ yy816:
+ { return 0; }
+ yy817:
+ yych = *(marker = ++p);
+ switch (yych) {
+ case '!':
+ case '?': goto yy819;
+ case '/': goto yy838;
+ case 'A':
+ case 'a': goto yy823;
+ case 'B':
+ case 'b': goto yy826;
+ case 'C':
+ case 'c': goto yy830;
+ case 'D':
+ case 'd': goto yy831;
+ case 'E':
+ case 'e': goto yy834;
+ case 'F':
+ case 'f': goto yy835;
+ case 'H':
+ case 'h': goto yy824;
+ case 'I':
+ case 'i': goto yy825;
+ case 'L':
+ case 'l': goto yy827;
+ case 'M':
+ case 'm': goto yy828;
+ case 'O':
+ case 'o': goto yy829;
+ case 'P':
+ case 'p': goto yy821;
+ case 'S':
+ case 's': goto yy832;
+ case 'T':
+ case 't': goto yy833;
+ case 'U':
+ case 'u': goto yy836;
+ case 'V':
+ case 'v': goto yy837;
+ default: goto yy816;
+ }
+ yy818:
+ yych = *++p;
+ goto yy816;
+ yy819:
+ ++p;
+ { return (p - start); }
+ yy821:
+ yych = *++p;
+ if (yych <= '/') {
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy822;
+ if (yych <= '\r') goto yy982;
+ } else {
+ if (yych <= ' ') goto yy982;
+ if (yych >= '/') goto yy982;
+ }
+ } else {
+ if (yych <= 'Q') {
+ if (yych == '>') goto yy982;
+ } else {
+ if (yych <= 'R') goto yy1095;
+ if (yych == 'r') goto yy1095;
+ }
+ }
+ yy822:
+ p = marker;
+ goto yy816;
+ yy823:
+ yych = *++p;
+ if (yych <= 'S') {
+ if (yych <= 'Q') goto yy822;
+ if (yych <= 'R') goto yy1088;
+ goto yy1087;
+ } else {
+ if (yych <= 'q') goto yy822;
+ if (yych <= 'r') goto yy1088;
+ if (yych <= 's') goto yy1087;
+ goto yy822;
+ }
+ yy824:
+ yych = *++p;
+ if (yych <= 'Q') {
+ if (yych <= 'D') {
+ if (yych <= '0') goto yy822;
+ if (yych <= '6') goto yy981;
+ goto yy822;
+ } else {
+ if (yych <= 'E') goto yy1080;
+ if (yych == 'G') goto yy1079;
+ goto yy822;
+ }
+ } else {
+ if (yych <= 'f') {
+ if (yych <= 'R') goto yy981;
+ if (yych == 'e') goto yy1080;
+ goto yy822;
+ } else {
+ if (yych <= 'g') goto yy1079;
+ if (yych == 'r') goto yy981;
+ goto yy822;
+ }
+ }
+ yy825:
+ yych = *++p;
+ if (yych == 'F') goto yy1075;
+ if (yych == 'f') goto yy1075;
+ goto yy822;
+ yy826:
+ yych = *++p;
+ if (yych <= 'U') {
+ if (yych <= 'N') {
+ if (yych == 'L') goto yy1063;
+ goto yy822;
+ } else {
+ if (yych <= 'O') goto yy1062;
+ if (yych <= 'T') goto yy822;
+ goto yy1061;
+ }
+ } else {
+ if (yych <= 'n') {
+ if (yych == 'l') goto yy1063;
+ goto yy822;
+ } else {
+ if (yych <= 'o') goto yy1062;
+ if (yych == 'u') goto yy1061;
+ goto yy822;
+ }
+ }
+ yy827:
+ yych = *++p;
+ if (yych == 'I') goto yy981;
+ if (yych == 'i') goto yy981;
+ goto yy822;
+ yy828:
+ yych = *++p;
+ if (yych == 'A') goto yy1060;
+ if (yych == 'a') goto yy1060;
+ goto yy822;
+ yy829:
+ yych = *++p;
+ if (yych <= 'U') {
+ if (yych <= 'K') {
+ if (yych == 'B') goto yy1053;
+ goto yy822;
+ } else {
+ if (yych <= 'L') goto yy981;
+ if (yych <= 'T') goto yy822;
+ goto yy1052;
+ }
+ } else {
+ if (yych <= 'k') {
+ if (yych == 'b') goto yy1053;
+ goto yy822;
+ } else {
+ if (yych <= 'l') goto yy981;
+ if (yych == 'u') goto yy1052;
+ goto yy822;
+ }
+ }
+ yy830:
+ yych = *++p;
+ if (yych <= 'O') {
+ if (yych == 'A') goto yy1039;
+ if (yych <= 'N') goto yy822;
+ goto yy1038;
+ } else {
+ if (yych <= 'a') {
+ if (yych <= '`') goto yy822;
+ goto yy1039;
+ } else {
+ if (yych == 'o') goto yy1038;
+ goto yy822;
+ }
+ }
+ yy831:
+ yych = *++p;
+ if (yych <= 'T') {
+ if (yych <= 'I') {
+ if (yych == 'D') goto yy981;
+ if (yych <= 'H') goto yy822;
+ goto yy1037;
+ } else {
+ if (yych == 'L') goto yy981;
+ if (yych <= 'S') goto yy822;
+ goto yy981;
+ }
+ } else {
+ if (yych <= 'i') {
+ if (yych == 'd') goto yy981;
+ if (yych <= 'h') goto yy822;
+ goto yy1037;
+ } else {
+ if (yych <= 'l') {
+ if (yych <= 'k') goto yy822;
+ goto yy981;
+ } else {
+ if (yych == 't') goto yy981;
+ goto yy822;
+ }
+ }
+ }
+ yy832:
+ yych = *++p;
+ if (yych <= 'T') {
+ if (yych <= 'D') {
+ if (yych == 'C') goto yy1026;
+ goto yy822;
+ } else {
+ if (yych <= 'E') goto yy1027;
+ if (yych <= 'S') goto yy822;
+ goto yy1025;
+ }
+ } else {
+ if (yych <= 'd') {
+ if (yych == 'c') goto yy1026;
+ goto yy822;
+ } else {
+ if (yych <= 'e') goto yy1027;
+ if (yych == 't') goto yy1025;
+ goto yy822;
+ }
+ }
+ yy833:
+ yych = *++p;
+ switch (yych) {
+ case 'A':
+ case 'a': goto yy1011;
+ case 'B':
+ case 'b': goto yy1010;
+ case 'D':
+ case 'R':
+ case 'd':
+ case 'r': goto yy981;
+ case 'E':
+ case 'e': goto yy1009;
+ case 'F':
+ case 'f': goto yy1008;
+ case 'H':
+ case 'h': goto yy1007;
+ default: goto yy822;
+ }
+ yy834:
+ yych = *++p;
+ if (yych == 'M') goto yy1004;
+ if (yych == 'm') goto yy1004;
+ goto yy822;
+ yy835:
+ yych = *++p;
+ if (yych <= 'O') {
+ if (yych == 'I') goto yy985;
+ if (yych <= 'N') goto yy822;
+ goto yy984;
+ } else {
+ if (yych <= 'i') {
+ if (yych <= 'h') goto yy822;
+ goto yy985;
+ } else {
+ if (yych == 'o') goto yy984;
+ goto yy822;
+ }
+ }
+ yy836:
+ yych = *++p;
+ if (yych == 'L') goto yy981;
+ if (yych == 'l') goto yy981;
+ goto yy822;
+ yy837:
+ yych = *++p;
+ if (yych == 'I') goto yy978;
+ if (yych == 'i') goto yy978;
+ goto yy822;
+ yy838:
+ yych = *++p;
+ switch (yych) {
+ case 'A':
+ case 'a': goto yy840;
+ case 'B':
+ case 'b': goto yy843;
+ case 'C':
+ case 'c': goto yy847;
+ case 'D':
+ case 'd': goto yy848;
+ case 'E':
+ case 'e': goto yy851;
+ case 'F':
+ case 'f': goto yy852;
+ case 'H':
+ case 'h': goto yy841;
+ case 'I':
+ case 'i': goto yy842;
+ case 'L':
+ case 'l': goto yy844;
+ case 'M':
+ case 'm': goto yy845;
+ case 'O':
+ case 'o': goto yy846;
+ case 'P':
+ case 'p': goto yy839;
+ case 'S':
+ case 's': goto yy849;
+ case 'T':
+ case 't': goto yy850;
+ case 'U':
+ case 'u': goto yy853;
+ case 'V':
+ case 'v': goto yy854;
+ default: goto yy822;
+ }
+ yy839:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '\r') {
+ if (yych <= 0x08) goto yy822;
+ goto yy859;
+ } else {
+ if (yych == ' ') goto yy859;
+ goto yy822;
+ }
+ } else {
+ if (yych <= 'R') {
+ if (yych <= '>') goto yy859;
+ if (yych <= 'Q') goto yy822;
+ goto yy972;
+ } else {
+ if (yych == 'r') goto yy972;
+ goto yy822;
+ }
+ }
+ yy840:
+ yych = *++p;
+ if (yych <= 'S') {
+ if (yych <= 'Q') goto yy822;
+ if (yych <= 'R') goto yy965;
+ goto yy964;
+ } else {
+ if (yych <= 'q') goto yy822;
+ if (yych <= 'r') goto yy965;
+ if (yych <= 's') goto yy964;
+ goto yy822;
+ }
+ yy841:
+ yych = *++p;
+ if (yych <= 'Q') {
+ if (yych <= 'D') {
+ if (yych <= '0') goto yy822;
+ if (yych <= '6') goto yy858;
+ goto yy822;
+ } else {
+ if (yych <= 'E') goto yy957;
+ if (yych == 'G') goto yy956;
+ goto yy822;
+ }
+ } else {
+ if (yych <= 'f') {
+ if (yych <= 'R') goto yy858;
+ if (yych == 'e') goto yy957;
+ goto yy822;
+ } else {
+ if (yych <= 'g') goto yy956;
+ if (yych == 'r') goto yy858;
+ goto yy822;
+ }
+ }
+ yy842:
+ yych = *++p;
+ if (yych == 'F') goto yy952;
+ if (yych == 'f') goto yy952;
+ goto yy822;
+ yy843:
+ yych = *++p;
+ if (yych <= 'U') {
+ if (yych <= 'N') {
+ if (yych == 'L') goto yy940;
+ goto yy822;
+ } else {
+ if (yych <= 'O') goto yy939;
+ if (yych <= 'T') goto yy822;
+ goto yy938;
+ }
+ } else {
+ if (yych <= 'n') {
+ if (yych == 'l') goto yy940;
+ goto yy822;
+ } else {
+ if (yych <= 'o') goto yy939;
+ if (yych == 'u') goto yy938;
+ goto yy822;
+ }
+ }
+ yy844:
+ yych = *++p;
+ if (yych == 'I') goto yy858;
+ if (yych == 'i') goto yy858;
+ goto yy822;
+ yy845:
+ yych = *++p;
+ if (yych == 'A') goto yy937;
+ if (yych == 'a') goto yy937;
+ goto yy822;
+ yy846:
+ yych = *++p;
+ if (yych <= 'U') {
+ if (yych <= 'K') {
+ if (yych == 'B') goto yy930;
+ goto yy822;
+ } else {
+ if (yych <= 'L') goto yy858;
+ if (yych <= 'T') goto yy822;
+ goto yy929;
+ }
+ } else {
+ if (yych <= 'k') {
+ if (yych == 'b') goto yy930;
+ goto yy822;
+ } else {
+ if (yych <= 'l') goto yy858;
+ if (yych == 'u') goto yy929;
+ goto yy822;
+ }
+ }
+ yy847:
+ yych = *++p;
+ if (yych <= 'O') {
+ if (yych == 'A') goto yy916;
+ if (yych <= 'N') goto yy822;
+ goto yy915;
+ } else {
+ if (yych <= 'a') {
+ if (yych <= '`') goto yy822;
+ goto yy916;
+ } else {
+ if (yych == 'o') goto yy915;
+ goto yy822;
+ }
+ }
+ yy848:
+ yych = *++p;
+ if (yych <= 'T') {
+ if (yych <= 'I') {
+ if (yych == 'D') goto yy858;
+ if (yych <= 'H') goto yy822;
+ goto yy914;
+ } else {
+ if (yych == 'L') goto yy858;
+ if (yych <= 'S') goto yy822;
+ goto yy858;
+ }
+ } else {
+ if (yych <= 'i') {
+ if (yych == 'd') goto yy858;
+ if (yych <= 'h') goto yy822;
+ goto yy914;
+ } else {
+ if (yych <= 'l') {
+ if (yych <= 'k') goto yy822;
+ goto yy858;
+ } else {
+ if (yych == 't') goto yy858;
+ goto yy822;
+ }
+ }
+ }
+ yy849:
+ yych = *++p;
+ if (yych <= 'T') {
+ if (yych <= 'D') {
+ if (yych == 'C') goto yy903;
+ goto yy822;
+ } else {
+ if (yych <= 'E') goto yy904;
+ if (yych <= 'S') goto yy822;
+ goto yy902;
+ }
+ } else {
+ if (yych <= 'd') {
+ if (yych == 'c') goto yy903;
+ goto yy822;
+ } else {
+ if (yych <= 'e') goto yy904;
+ if (yych == 't') goto yy902;
+ goto yy822;
+ }
+ }
+ yy850:
+ yych = *++p;
+ switch (yych) {
+ case 'A':
+ case 'a': goto yy888;
+ case 'B':
+ case 'b': goto yy887;
+ case 'D':
+ case 'R':
+ case 'd':
+ case 'r': goto yy858;
+ case 'E':
+ case 'e': goto yy886;
+ case 'F':
+ case 'f': goto yy885;
+ case 'H':
+ case 'h': goto yy884;
+ default: goto yy822;
+ }
+ yy851:
+ yych = *++p;
+ if (yych == 'M') goto yy881;
+ if (yych == 'm') goto yy881;
+ goto yy822;
+ yy852:
+ yych = *++p;
+ if (yych <= 'O') {
+ if (yych == 'I') goto yy862;
+ if (yych <= 'N') goto yy822;
+ goto yy861;
+ } else {
+ if (yych <= 'i') {
+ if (yych <= 'h') goto yy822;
+ goto yy862;
+ } else {
+ if (yych == 'o') goto yy861;
+ goto yy822;
+ }
+ }
+ yy853:
+ yych = *++p;
+ if (yych == 'L') goto yy858;
+ if (yych == 'l') goto yy858;
+ goto yy822;
+ yy854:
+ yych = *++p;
+ if (yych == 'I') goto yy855;
+ if (yych != 'i') goto yy822;
+ yy855:
+ yych = *++p;
+ if (yych == 'D') goto yy856;
+ if (yych != 'd') goto yy822;
+ yy856:
+ yych = *++p;
+ if (yych == 'E') goto yy857;
+ if (yych != 'e') goto yy822;
+ yy857:
+ yych = *++p;
+ if (yych == 'O') goto yy858;
+ if (yych != 'o') goto yy822;
+ yy858:
+ yych = *++p;
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy822;
+ if (yych >= 0x0E) goto yy822;
+ } else {
+ if (yych <= ' ') goto yy859;
+ if (yych != '>') goto yy822;
+ }
+ yy859:
+ ++p;
+ { return (p - start); }
+ yy861:
+ yych = *++p;
+ if (yych <= 'R') {
+ if (yych == 'O') goto yy877;
+ if (yych <= 'Q') goto yy822;
+ goto yy878;
+ } else {
+ if (yych <= 'o') {
+ if (yych <= 'n') goto yy822;
+ goto yy877;
+ } else {
+ if (yych == 'r') goto yy878;
+ goto yy822;
+ }
+ }
+ yy862:
+ yych = *++p;
+ if (yych <= 'G') {
+ if (yych == 'E') goto yy863;
+ if (yych <= 'F') goto yy822;
+ goto yy864;
+ } else {
+ if (yych <= 'e') {
+ if (yych <= 'd') goto yy822;
+ } else {
+ if (yych == 'g') goto yy864;
+ goto yy822;
+ }
+ }
+ yy863:
+ yych = *++p;
+ if (yych == 'L') goto yy873;
+ if (yych == 'l') goto yy873;
+ goto yy822;
+ yy864:
+ yych = *++p;
+ if (yych <= 'U') {
+ if (yych == 'C') goto yy866;
+ if (yych <= 'T') goto yy822;
+ } else {
+ if (yych <= 'c') {
+ if (yych <= 'b') goto yy822;
+ goto yy866;
+ } else {
+ if (yych != 'u') goto yy822;
+ }
+ }
+ yych = *++p;
+ if (yych == 'R') goto yy872;
+ if (yych == 'r') goto yy872;
+ goto yy822;
+ yy866:
+ yych = *++p;
+ if (yych == 'A') goto yy867;
+ if (yych != 'a') goto yy822;
+ yy867:
+ yych = *++p;
+ if (yych == 'P') goto yy868;
+ if (yych != 'p') goto yy822;
+ yy868:
+ yych = *++p;
+ if (yych == 'T') goto yy869;
+ if (yych != 't') goto yy822;
+ yy869:
+ yych = *++p;
+ if (yych == 'I') goto yy870;
+ if (yych != 'i') goto yy822;
+ yy870:
+ yych = *++p;
+ if (yych == 'O') goto yy871;
+ if (yych != 'o') goto yy822;
+ yy871:
+ yych = *++p;
+ if (yych == 'N') goto yy858;
+ if (yych == 'n') goto yy858;
+ goto yy822;
+ yy872:
+ yych = *++p;
+ if (yych == 'E') goto yy858;
+ if (yych == 'e') goto yy858;
+ goto yy822;
+ yy873:
+ yych = *++p;
+ if (yych == 'D') goto yy874;
+ if (yych != 'd') goto yy822;
+ yy874:
+ yych = *++p;
+ if (yych == 'S') goto yy875;
+ if (yych != 's') goto yy822;
+ yy875:
+ yych = *++p;
+ if (yych == 'E') goto yy876;
+ if (yych != 'e') goto yy822;
+ yy876:
+ yych = *++p;
+ if (yych == 'T') goto yy858;
+ if (yych == 't') goto yy858;
+ goto yy822;
+ yy877:
+ yych = *++p;
+ if (yych == 'T') goto yy879;
+ if (yych == 't') goto yy879;
+ goto yy822;
+ yy878:
+ yych = *++p;
+ if (yych == 'M') goto yy858;
+ if (yych == 'm') goto yy858;
+ goto yy822;
+ yy879:
+ yych = *++p;
+ if (yych == 'E') goto yy880;
+ if (yych != 'e') goto yy822;
+ yy880:
+ yych = *++p;
+ if (yych == 'R') goto yy858;
+ if (yych == 'r') goto yy858;
+ goto yy822;
+ yy881:
+ yych = *++p;
+ if (yych == 'B') goto yy882;
+ if (yych != 'b') goto yy822;
+ yy882:
+ yych = *++p;
+ if (yych == 'E') goto yy883;
+ if (yych != 'e') goto yy822;
+ yy883:
+ yych = *++p;
+ if (yych == 'D') goto yy858;
+ if (yych == 'd') goto yy858;
+ goto yy822;
+ yy884:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '\r') {
+ if (yych <= 0x08) goto yy822;
+ goto yy859;
+ } else {
+ if (yych == ' ') goto yy859;
+ goto yy822;
+ }
+ } else {
+ if (yych <= 'E') {
+ if (yych <= '>') goto yy859;
+ if (yych <= 'D') goto yy822;
+ goto yy900;
+ } else {
+ if (yych == 'e') goto yy900;
+ goto yy822;
+ }
+ }
+ yy885:
+ yych = *++p;
+ if (yych == 'O') goto yy898;
+ if (yych == 'o') goto yy898;
+ goto yy822;
+ yy886:
+ yych = *++p;
+ if (yych == 'X') goto yy893;
+ if (yych == 'x') goto yy893;
+ goto yy822;
+ yy887:
+ yych = *++p;
+ if (yych == 'O') goto yy891;
+ if (yych == 'o') goto yy891;
+ goto yy822;
+ yy888:
+ yych = *++p;
+ if (yych == 'B') goto yy889;
+ if (yych != 'b') goto yy822;
+ yy889:
+ yych = *++p;
+ if (yych == 'L') goto yy890;
+ if (yych != 'l') goto yy822;
+ yy890:
+ yych = *++p;
+ if (yych == 'E') goto yy858;
+ if (yych == 'e') goto yy858;
+ goto yy822;
+ yy891:
+ yych = *++p;
+ if (yych == 'D') goto yy892;
+ if (yych != 'd') goto yy822;
+ yy892:
+ yych = *++p;
+ if (yych == 'Y') goto yy858;
+ if (yych == 'y') goto yy858;
+ goto yy822;
+ yy893:
+ yych = *++p;
+ if (yych == 'T') goto yy894;
+ if (yych != 't') goto yy822;
+ yy894:
+ yych = *++p;
+ if (yych == 'A') goto yy895;
+ if (yych != 'a') goto yy822;
+ yy895:
+ yych = *++p;
+ if (yych == 'R') goto yy896;
+ if (yych != 'r') goto yy822;
+ yy896:
+ yych = *++p;
+ if (yych == 'E') goto yy897;
+ if (yych != 'e') goto yy822;
+ yy897:
+ yych = *++p;
+ if (yych == 'A') goto yy858;
+ if (yych == 'a') goto yy858;
+ goto yy822;
+ yy898:
+ yych = *++p;
+ if (yych == 'O') goto yy899;
+ if (yych != 'o') goto yy822;
+ yy899:
+ yych = *++p;
+ if (yych == 'T') goto yy858;
+ if (yych == 't') goto yy858;
+ goto yy822;
+ yy900:
+ yych = *++p;
+ if (yych == 'A') goto yy901;
+ if (yych != 'a') goto yy822;
+ yy901:
+ yych = *++p;
+ if (yych == 'D') goto yy858;
+ if (yych == 'd') goto yy858;
+ goto yy822;
+ yy902:
+ yych = *++p;
+ if (yych == 'Y') goto yy912;
+ if (yych == 'y') goto yy912;
+ goto yy822;
+ yy903:
+ yych = *++p;
+ if (yych == 'R') goto yy909;
+ if (yych == 'r') goto yy909;
+ goto yy822;
+ yy904:
+ yych = *++p;
+ if (yych == 'C') goto yy905;
+ if (yych != 'c') goto yy822;
+ yy905:
+ yych = *++p;
+ if (yych == 'T') goto yy906;
+ if (yych != 't') goto yy822;
+ yy906:
+ yych = *++p;
+ if (yych == 'I') goto yy907;
+ if (yych != 'i') goto yy822;
+ yy907:
+ yych = *++p;
+ if (yych == 'O') goto yy908;
+ if (yych != 'o') goto yy822;
+ yy908:
+ yych = *++p;
+ if (yych == 'N') goto yy858;
+ if (yych == 'n') goto yy858;
+ goto yy822;
+ yy909:
+ yych = *++p;
+ if (yych == 'I') goto yy910;
+ if (yych != 'i') goto yy822;
+ yy910:
+ yych = *++p;
+ if (yych == 'P') goto yy911;
+ if (yych != 'p') goto yy822;
+ yy911:
+ yych = *++p;
+ if (yych == 'T') goto yy858;
+ if (yych == 't') goto yy858;
+ goto yy822;
+ yy912:
+ yych = *++p;
+ if (yych == 'L') goto yy913;
+ if (yych != 'l') goto yy822;
+ yy913:
+ yych = *++p;
+ if (yych == 'E') goto yy858;
+ if (yych == 'e') goto yy858;
+ goto yy822;
+ yy914:
+ yych = *++p;
+ if (yych == 'V') goto yy858;
+ if (yych == 'v') goto yy858;
+ goto yy822;
+ yy915:
+ yych = *++p;
+ if (yych == 'L') goto yy924;
+ if (yych == 'l') goto yy924;
+ goto yy822;
+ yy916:
+ yych = *++p;
+ if (yych <= 'P') {
+ if (yych == 'N') goto yy917;
+ if (yych <= 'O') goto yy822;
+ goto yy918;
+ } else {
+ if (yych <= 'n') {
+ if (yych <= 'm') goto yy822;
+ } else {
+ if (yych == 'p') goto yy918;
+ goto yy822;
+ }
+ }
+ yy917:
+ yych = *++p;
+ if (yych == 'V') goto yy922;
+ if (yych == 'v') goto yy922;
+ goto yy822;
+ yy918:
+ yych = *++p;
+ if (yych == 'T') goto yy919;
+ if (yych != 't') goto yy822;
+ yy919:
+ yych = *++p;
+ if (yych == 'I') goto yy920;
+ if (yych != 'i') goto yy822;
+ yy920:
+ yych = *++p;
+ if (yych == 'O') goto yy921;
+ if (yych != 'o') goto yy822;
+ yy921:
+ yych = *++p;
+ if (yych == 'N') goto yy858;
+ if (yych == 'n') goto yy858;
+ goto yy822;
+ yy922:
+ yych = *++p;
+ if (yych == 'A') goto yy923;
+ if (yych != 'a') goto yy822;
+ yy923:
+ yych = *++p;
+ if (yych == 'S') goto yy858;
+ if (yych == 's') goto yy858;
+ goto yy822;
+ yy924:
+ yych = *++p;
+ if (yych <= '=') {
+ if (yych <= '\r') {
+ if (yych <= 0x08) goto yy822;
+ goto yy859;
+ } else {
+ if (yych == ' ') goto yy859;
+ goto yy822;
+ }
+ } else {
+ if (yych <= 'G') {
+ if (yych <= '>') goto yy859;
+ if (yych <= 'F') goto yy822;
+ } else {
+ if (yych != 'g') goto yy822;
+ }
+ }
+ yych = *++p;
+ if (yych == 'R') goto yy926;
+ if (yych != 'r') goto yy822;
+ yy926:
+ yych = *++p;
+ if (yych == 'O') goto yy927;
+ if (yych != 'o') goto yy822;
+ yy927:
+ yych = *++p;
+ if (yych == 'U') goto yy928;
+ if (yych != 'u') goto yy822;
+ yy928:
+ yych = *++p;
+ if (yych == 'P') goto yy858;
+ if (yych == 'p') goto yy858;
+ goto yy822;
+ yy929:
+ yych = *++p;
+ if (yych == 'T') goto yy934;
+ if (yych == 't') goto yy934;
+ goto yy822;
+ yy930:
+ yych = *++p;
+ if (yych == 'J') goto yy931;
+ if (yych != 'j') goto yy822;
+ yy931:
+ yych = *++p;
+ if (yych == 'E') goto yy932;
+ if (yych != 'e') goto yy822;
+ yy932:
+ yych = *++p;
+ if (yych == 'C') goto yy933;
+ if (yych != 'c') goto yy822;
+ yy933:
+ yych = *++p;
+ if (yych == 'T') goto yy858;
+ if (yych == 't') goto yy858;
+ goto yy822;
+ yy934:
+ yych = *++p;
+ if (yych == 'P') goto yy935;
+ if (yych != 'p') goto yy822;
+ yy935:
+ yych = *++p;
+ if (yych == 'U') goto yy936;
+ if (yych != 'u') goto yy822;
+ yy936:
+ yych = *++p;
+ if (yych == 'T') goto yy858;
+ if (yych == 't') goto yy858;
+ goto yy822;
+ yy937:
+ yych = *++p;
+ if (yych == 'P') goto yy858;
+ if (yych == 'p') goto yy858;
+ goto yy822;
+ yy938:
+ yych = *++p;
+ if (yych == 'T') goto yy949;
+ if (yych == 't') goto yy949;
+ goto yy822;
+ yy939:
+ yych = *++p;
+ if (yych == 'D') goto yy948;
+ if (yych == 'd') goto yy948;
+ goto yy822;
+ yy940:
+ yych = *++p;
+ if (yych == 'O') goto yy941;
+ if (yych != 'o') goto yy822;
+ yy941:
+ yych = *++p;
+ if (yych == 'C') goto yy942;
+ if (yych != 'c') goto yy822;
+ yy942:
+ yych = *++p;
+ if (yych == 'K') goto yy943;
+ if (yych != 'k') goto yy822;
+ yy943:
+ yych = *++p;
+ if (yych == 'Q') goto yy944;
+ if (yych != 'q') goto yy822;
+ yy944:
+ yych = *++p;
+ if (yych == 'U') goto yy945;
+ if (yych != 'u') goto yy822;
+ yy945:
+ yych = *++p;
+ if (yych == 'O') goto yy946;
+ if (yych != 'o') goto yy822;
+ yy946:
+ yych = *++p;
+ if (yych == 'T') goto yy947;
+ if (yych != 't') goto yy822;
+ yy947:
+ yych = *++p;
+ if (yych == 'E') goto yy858;
+ if (yych == 'e') goto yy858;
+ goto yy822;
+ yy948:
+ yych = *++p;
+ if (yych == 'Y') goto yy858;
+ if (yych == 'y') goto yy858;
+ goto yy822;
+ yy949:
+ yych = *++p;
+ if (yych == 'T') goto yy950;
+ if (yych != 't') goto yy822;
+ yy950:
+ yych = *++p;
+ if (yych == 'O') goto yy951;
+ if (yych != 'o') goto yy822;
+ yy951:
+ yych = *++p;
+ if (yych == 'N') goto yy858;
+ if (yych == 'n') goto yy858;
+ goto yy822;
+ yy952:
+ yych = *++p;
+ if (yych == 'R') goto yy953;
+ if (yych != 'r') goto yy822;
+ yy953:
+ yych = *++p;
+ if (yych == 'A') goto yy954;
+ if (yych != 'a') goto yy822;
+ yy954:
+ yych = *++p;
+ if (yych == 'M') goto yy955;
+ if (yych != 'm') goto yy822;
+ yy955:
+ yych = *++p;
+ if (yych == 'E') goto yy858;
+ if (yych == 'e') goto yy858;
+ goto yy822;
+ yy956:
+ yych = *++p;
+ if (yych == 'R') goto yy961;
+ if (yych == 'r') goto yy961;
+ goto yy822;
+ yy957:
+ yych = *++p;
+ if (yych == 'A') goto yy958;
+ if (yych != 'a') goto yy822;
+ yy958:
+ yych = *++p;
+ if (yych == 'D') goto yy959;
+ if (yych != 'd') goto yy822;
+ yy959:
+ yych = *++p;
+ if (yych == 'E') goto yy960;
+ if (yych != 'e') goto yy822;
+ yy960:
+ yych = *++p;
+ if (yych == 'R') goto yy858;
+ if (yych == 'r') goto yy858;
+ goto yy822;
+ yy961:
+ yych = *++p;
+ if (yych == 'O') goto yy962;
+ if (yych != 'o') goto yy822;
+ yy962:
+ yych = *++p;
+ if (yych == 'U') goto yy963;
+ if (yych != 'u') goto yy822;
+ yy963:
+ yych = *++p;
+ if (yych == 'P') goto yy858;
+ if (yych == 'p') goto yy858;
+ goto yy822;
+ yy964:
+ yych = *++p;
+ if (yych == 'I') goto yy970;
+ if (yych == 'i') goto yy970;
+ goto yy822;
+ yy965:
+ yych = *++p;
+ if (yych == 'T') goto yy966;
+ if (yych != 't') goto yy822;
+ yy966:
+ yych = *++p;
+ if (yych == 'I') goto yy967;
+ if (yych != 'i') goto yy822;
+ yy967:
+ yych = *++p;
+ if (yych == 'C') goto yy968;
+ if (yych != 'c') goto yy822;
+ yy968:
+ yych = *++p;
+ if (yych == 'L') goto yy969;
+ if (yych != 'l') goto yy822;
+ yy969:
+ yych = *++p;
+ if (yych == 'E') goto yy858;
+ if (yych == 'e') goto yy858;
+ goto yy822;
+ yy970:
+ yych = *++p;
+ if (yych == 'D') goto yy971;
+ if (yych != 'd') goto yy822;
+ yy971:
+ yych = *++p;
+ if (yych == 'E') goto yy858;
+ if (yych == 'e') goto yy858;
+ goto yy822;
+ yy972:
+ yych = *++p;
+ if (yych <= 'O') {
+ if (yych == 'E') goto yy858;
+ if (yych <= 'N') goto yy822;
+ } else {
+ if (yych <= 'e') {
+ if (yych <= 'd') goto yy822;
+ goto yy858;
+ } else {
+ if (yych != 'o') goto yy822;
+ }
+ }
+ yych = *++p;
+ if (yych == 'G') goto yy974;
+ if (yych != 'g') goto yy822;
+ yy974:
+ yych = *++p;
+ if (yych == 'R') goto yy975;
+ if (yych != 'r') goto yy822;
+ yy975:
+ yych = *++p;
+ if (yych == 'E') goto yy976;
+ if (yych != 'e') goto yy822;
+ yy976:
+ yych = *++p;
+ if (yych == 'S') goto yy977;
+ if (yych != 's') goto yy822;
+ yy977:
+ yych = *++p;
+ if (yych == 'S') goto yy858;
+ if (yych == 's') goto yy858;
+ goto yy822;
+ yy978:
+ yych = *++p;
+ if (yych == 'D') goto yy979;
+ if (yych != 'd') goto yy822;
+ yy979:
+ yych = *++p;
+ if (yych == 'E') goto yy980;
+ if (yych != 'e') goto yy822;
+ yy980:
+ yych = *++p;
+ if (yych == 'O') goto yy981;
+ if (yych != 'o') goto yy822;
+ yy981:
+ yych = *++p;
+ if (yych <= ' ') {
+ if (yych <= 0x08) goto yy822;
+ if (yych <= '\r') goto yy982;
+ if (yych <= 0x1F) goto yy822;
+ } else {
+ if (yych <= '/') {
+ if (yych <= '.') goto yy822;
+ } else {
+ if (yych != '>') goto yy822;
+ }
+ }
+ yy982:
+ ++p;
+ { return (p - start); }
+ yy984:
+ yych = *++p;
+ if (yych <= 'R') {
+ if (yych == 'O') goto yy1000;
+ if (yych <= 'Q') goto yy822;
+ goto yy1001;
+ } else {
+ if (yych <= 'o') {
+ if (yych <= 'n') goto yy822;
+ goto yy1000;
+ } else {
+ if (yych == 'r') goto yy1001;
+ goto yy822;
+ }
+ }
+ yy985:
+ yych = *++p;
+ if (yych <= 'G') {
+ if (yych == 'E') goto yy986;
+ if (yych <= 'F') goto yy822;
+ goto yy987;
+ } else {
+ if (yych <= 'e') {
+ if (yych <= 'd') goto yy822;
+ } else {
+ if (yych == 'g') goto yy987;
+ goto yy822;
+ }
+ }
+ yy986:
+ yych = *++p;
+ if (yych == 'L') goto yy996;
+ if (yych == 'l') goto yy996;
+ goto yy822;
+ yy987:
+ yych = *++p;
+ if (yych <= 'U') {
+ if (yych == 'C') goto yy989;
+ if (yych <= 'T') goto yy822;
+ } else {
+ if (yych <= 'c') {
+ if (yych <= 'b') goto yy822;
+ goto yy989;
+ } else {
+ if (yych != 'u') goto yy822;
+ }
+ }
+ yych = *++p;
+ if (yych == 'R') goto yy995;
+ if (yych == 'r') goto yy995;
+ goto yy822;
+ yy989:
+ yych = *++p;
+ if (yych == 'A') goto yy990;
+ if (yych != 'a') goto yy822;
+ yy990:
+ yych = *++p;
+ if (yych == 'P') goto yy991;
+ if (yych != 'p') goto yy822;
+ yy991:
+ yych = *++p;
+ if (yych == 'T') goto yy992;
+ if (yych != 't') goto yy822;
+ yy992:
+ yych = *++p;
+ if (yych == 'I') goto yy993;
+ if (yych != 'i') goto yy822;
+ yy993:
+ yych = *++p;
+ if (yych == 'O') goto yy994;
+ if (yych != 'o') goto yy822;
+ yy994:
+ yych = *++p;
+ if (yych == 'N') goto yy981;
+ if (yych == 'n') goto yy981;
+ goto yy822;
+ yy995:
+ yych = *++p;
+ if (yych == 'E') goto yy981;
+ if (yych == 'e') goto yy981;
+ goto yy822;
+ yy996:
+ yych = *++p;
+ if (yych == 'D') goto yy997;
+ if (yych != 'd') goto yy822;
+ yy997:
+ yych = *++p;
+ if (yych == 'S') goto yy998;
+ if (yych != 's') goto yy822;
+ yy998:
+ yych = *++p;
+ if (yych == 'E') goto yy999;
+ if (yych != 'e') goto yy822;
+ yy999:
+ yych = *++p;
+ if (yych == 'T') goto yy981;
+ if (yych == 't') goto yy981;
+ goto yy822;
+ yy1000:
+ yych = *++p;
+ if (yych == 'T') goto yy1002;
+ if (yych == 't') goto yy1002;
+ goto yy822;
+ yy1001:
+ yych = *++p;
+ if (yych == 'M') goto yy981;
+ if (yych == 'm') goto yy981;
+ goto yy822;
+ yy1002:
+ yych = *++p;
+ if (yych == 'E') goto yy1003;
+ if (yych != 'e') goto yy822;
+ yy1003:
+ yych = *++p;
+ if (yych == 'R') goto yy981;
+ if (yych == 'r') goto yy981;
+ goto yy822;
+ yy1004:
+ yych = *++p;
+ if (yych == 'B') goto yy1005;
+ if (yych != 'b') goto yy822;
+ yy1005:
+ yych = *++p;
+ if (yych == 'E') goto yy1006;
+ if (yych != 'e') goto yy822;
+ yy1006:
+ yych = *++p;
+ if (yych == 'D') goto yy981;
+ if (yych == 'd') goto yy981;
+ goto yy822;
+ yy1007:
+ yych = *++p;
+ if (yych <= '/') {
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy822;
+ if (yych <= '\r') goto yy982;
+ goto yy822;
+ } else {
+ if (yych <= ' ') goto yy982;
+ if (yych <= '.') goto yy822;
+ goto yy982;
+ }
+ } else {
+ if (yych <= 'D') {
+ if (yych == '>') goto yy982;
+ goto yy822;
+ } else {
+ if (yych <= 'E') goto yy1023;
+ if (yych == 'e') goto yy1023;
+ goto yy822;
+ }
+ }
+ yy1008:
+ yych = *++p;
+ if (yych == 'O') goto yy1021;
+ if (yych == 'o') goto yy1021;
+ goto yy822;
+ yy1009:
+ yych = *++p;
+ if (yych == 'X') goto yy1016;
+ if (yych == 'x') goto yy1016;
+ goto yy822;
+ yy1010:
+ yych = *++p;
+ if (yych == 'O') goto yy1014;
+ if (yych == 'o') goto yy1014;
+ goto yy822;
+ yy1011:
+ yych = *++p;
+ if (yych == 'B') goto yy1012;
+ if (yych != 'b') goto yy822;
+ yy1012:
+ yych = *++p;
+ if (yych == 'L') goto yy1013;
+ if (yych != 'l') goto yy822;
+ yy1013:
+ yych = *++p;
+ if (yych == 'E') goto yy981;
+ if (yych == 'e') goto yy981;
+ goto yy822;
+ yy1014:
+ yych = *++p;
+ if (yych == 'D') goto yy1015;
+ if (yych != 'd') goto yy822;
+ yy1015:
+ yych = *++p;
+ if (yych == 'Y') goto yy981;
+ if (yych == 'y') goto yy981;
+ goto yy822;
+ yy1016:
+ yych = *++p;
+ if (yych == 'T') goto yy1017;
+ if (yych != 't') goto yy822;
+ yy1017:
+ yych = *++p;
+ if (yych == 'A') goto yy1018;
+ if (yych != 'a') goto yy822;
+ yy1018:
+ yych = *++p;
+ if (yych == 'R') goto yy1019;
+ if (yych != 'r') goto yy822;
+ yy1019:
+ yych = *++p;
+ if (yych == 'E') goto yy1020;
+ if (yych != 'e') goto yy822;
+ yy1020:
+ yych = *++p;
+ if (yych == 'A') goto yy981;
+ if (yych == 'a') goto yy981;
+ goto yy822;
+ yy1021:
+ yych = *++p;
+ if (yych == 'O') goto yy1022;
+ if (yych != 'o') goto yy822;
+ yy1022:
+ yych = *++p;
+ if (yych == 'T') goto yy981;
+ if (yych == 't') goto yy981;
+ goto yy822;
+ yy1023:
+ yych = *++p;
+ if (yych == 'A') goto yy1024;
+ if (yych != 'a') goto yy822;
+ yy1024:
+ yych = *++p;
+ if (yych == 'D') goto yy981;
+ if (yych == 'd') goto yy981;
+ goto yy822;
+ yy1025:
+ yych = *++p;
+ if (yych == 'Y') goto yy1035;
+ if (yych == 'y') goto yy1035;
+ goto yy822;
+ yy1026:
+ yych = *++p;
+ if (yych == 'R') goto yy1032;
+ if (yych == 'r') goto yy1032;
+ goto yy822;
+ yy1027:
+ yych = *++p;
+ if (yych == 'C') goto yy1028;
+ if (yych != 'c') goto yy822;
+ yy1028:
+ yych = *++p;
+ if (yych == 'T') goto yy1029;
+ if (yych != 't') goto yy822;
+ yy1029:
+ yych = *++p;
+ if (yych == 'I') goto yy1030;
+ if (yych != 'i') goto yy822;
+ yy1030:
+ yych = *++p;
+ if (yych == 'O') goto yy1031;
+ if (yych != 'o') goto yy822;
+ yy1031:
+ yych = *++p;
+ if (yych == 'N') goto yy981;
+ if (yych == 'n') goto yy981;
+ goto yy822;
+ yy1032:
+ yych = *++p;
+ if (yych == 'I') goto yy1033;
+ if (yych != 'i') goto yy822;
+ yy1033:
+ yych = *++p;
+ if (yych == 'P') goto yy1034;
+ if (yych != 'p') goto yy822;
+ yy1034:
+ yych = *++p;
+ if (yych == 'T') goto yy981;
+ if (yych == 't') goto yy981;
+ goto yy822;
+ yy1035:
+ yych = *++p;
+ if (yych == 'L') goto yy1036;
+ if (yych != 'l') goto yy822;
+ yy1036:
+ yych = *++p;
+ if (yych == 'E') goto yy981;
+ if (yych == 'e') goto yy981;
+ goto yy822;
+ yy1037:
+ yych = *++p;
+ if (yych == 'V') goto yy981;
+ if (yych == 'v') goto yy981;
+ goto yy822;
+ yy1038:
+ yych = *++p;
+ if (yych == 'L') goto yy1047;
+ if (yych == 'l') goto yy1047;
+ goto yy822;
+ yy1039:
+ yych = *++p;
+ if (yych <= 'P') {
+ if (yych == 'N') goto yy1040;
+ if (yych <= 'O') goto yy822;
+ goto yy1041;
+ } else {
+ if (yych <= 'n') {
+ if (yych <= 'm') goto yy822;
+ } else {
+ if (yych == 'p') goto yy1041;
+ goto yy822;
+ }
+ }
+ yy1040:
+ yych = *++p;
+ if (yych == 'V') goto yy1045;
+ if (yych == 'v') goto yy1045;
+ goto yy822;
+ yy1041:
+ yych = *++p;
+ if (yych == 'T') goto yy1042;
+ if (yych != 't') goto yy822;
+ yy1042:
+ yych = *++p;
+ if (yych == 'I') goto yy1043;
+ if (yych != 'i') goto yy822;
+ yy1043:
+ yych = *++p;
+ if (yych == 'O') goto yy1044;
+ if (yych != 'o') goto yy822;
+ yy1044:
+ yych = *++p;
+ if (yych == 'N') goto yy981;
+ if (yych == 'n') goto yy981;
+ goto yy822;
+ yy1045:
+ yych = *++p;
+ if (yych == 'A') goto yy1046;
+ if (yych != 'a') goto yy822;
+ yy1046:
+ yych = *++p;
+ if (yych == 'S') goto yy981;
+ if (yych == 's') goto yy981;
+ goto yy822;
+ yy1047:
+ yych = *++p;
+ if (yych <= '/') {
+ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy822;
+ if (yych <= '\r') goto yy982;
+ goto yy822;
+ } else {
+ if (yych <= ' ') goto yy982;
+ if (yych <= '.') goto yy822;
+ goto yy982;
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == '>') goto yy982;
+ goto yy822;
+ } else {
+ if (yych <= 'G') goto yy1048;
+ if (yych != 'g') goto yy822;
+ }
+ }
+ yy1048:
+ yych = *++p;
+ if (yych == 'R') goto yy1049;
+ if (yych != 'r') goto yy822;
+ yy1049:
+ yych = *++p;
+ if (yych == 'O') goto yy1050;
+ if (yych != 'o') goto yy822;
+ yy1050:
+ yych = *++p;
+ if (yych == 'U') goto yy1051;
+ if (yych != 'u') goto yy822;
+ yy1051:
+ yych = *++p;
+ if (yych == 'P') goto yy981;
+ if (yych == 'p') goto yy981;
+ goto yy822;
+ yy1052:
+ yych = *++p;
+ if (yych == 'T') goto yy1057;
+ if (yych == 't') goto yy1057;
+ goto yy822;
+ yy1053:
+ yych = *++p;
+ if (yych == 'J') goto yy1054;
+ if (yych != 'j') goto yy822;
+ yy1054:
+ yych = *++p;
+ if (yych == 'E') goto yy1055;
+ if (yych != 'e') goto yy822;
+ yy1055:
+ yych = *++p;
+ if (yych == 'C') goto yy1056;
+ if (yych != 'c') goto yy822;
+ yy1056:
+ yych = *++p;
+ if (yych == 'T') goto yy981;
+ if (yych == 't') goto yy981;
+ goto yy822;
+ yy1057:
+ yych = *++p;
+ if (yych == 'P') goto yy1058;
+ if (yych != 'p') goto yy822;
+ yy1058:
+ yych = *++p;
+ if (yych == 'U') goto yy1059;
+ if (yych != 'u') goto yy822;
+ yy1059:
+ yych = *++p;
+ if (yych == 'T') goto yy981;
+ if (yych == 't') goto yy981;
+ goto yy822;
+ yy1060:
+ yych = *++p;
+ if (yych == 'P') goto yy981;
+ if (yych == 'p') goto yy981;
+ goto yy822;
+ yy1061:
+ yych = *++p;
+ if (yych == 'T') goto yy1072;
+ if (yych == 't') goto yy1072;
+ goto yy822;
+ yy1062:
+ yych = *++p;
+ if (yych == 'D') goto yy1071;
+ if (yych == 'd') goto yy1071;
+ goto yy822;
+ yy1063:
+ yych = *++p;
+ if (yych == 'O') goto yy1064;
+ if (yych != 'o') goto yy822;
+ yy1064:
+ yych = *++p;
+ if (yych == 'C') goto yy1065;
+ if (yych != 'c') goto yy822;
+ yy1065:
+ yych = *++p;
+ if (yych == 'K') goto yy1066;
+ if (yych != 'k') goto yy822;
+ yy1066:
+ yych = *++p;
+ if (yych == 'Q') goto yy1067;
+ if (yych != 'q') goto yy822;
+ yy1067:
+ yych = *++p;
+ if (yych == 'U') goto yy1068;
+ if (yych != 'u') goto yy822;
+ yy1068:
+ yych = *++p;
+ if (yych == 'O') goto yy1069;
+ if (yych != 'o') goto yy822;
+ yy1069:
+ yych = *++p;
+ if (yych == 'T') goto yy1070;
+ if (yych != 't') goto yy822;
+ yy1070:
+ yych = *++p;
+ if (yych == 'E') goto yy981;
+ if (yych == 'e') goto yy981;
+ goto yy822;
+ yy1071:
+ yych = *++p;
+ if (yych == 'Y') goto yy981;
+ if (yych == 'y') goto yy981;
+ goto yy822;
+ yy1072:
+ yych = *++p;
+ if (yych == 'T') goto yy1073;
+ if (yych != 't') goto yy822;
+ yy1073:
+ yych = *++p;
+ if (yych == 'O') goto yy1074;
+ if (yych != 'o') goto yy822;
+ yy1074:
+ yych = *++p;
+ if (yych == 'N') goto yy981;
+ if (yych == 'n') goto yy981;
+ goto yy822;
+ yy1075:
+ yych = *++p;
+ if (yych == 'R') goto yy1076;
+ if (yych != 'r') goto yy822;
+ yy1076:
+ yych = *++p;
+ if (yych == 'A') goto yy1077;
+ if (yych != 'a') goto yy822;
+ yy1077:
+ yych = *++p;
+ if (yych == 'M') goto yy1078;
+ if (yych != 'm') goto yy822;
+ yy1078:
+ yych = *++p;
+ if (yych == 'E') goto yy981;
+ if (yych == 'e') goto yy981;
+ goto yy822;
+ yy1079:
+ yych = *++p;
+ if (yych == 'R') goto yy1084;
+ if (yych == 'r') goto yy1084;
+ goto yy822;
+ yy1080:
+ yych = *++p;
+ if (yych == 'A') goto yy1081;
+ if (yych != 'a') goto yy822;
+ yy1081:
+ yych = *++p;
+ if (yych == 'D') goto yy1082;
+ if (yych != 'd') goto yy822;
+ yy1082:
+ yych = *++p;
+ if (yych == 'E') goto yy1083;
+ if (yych != 'e') goto yy822;
+ yy1083:
+ yych = *++p;
+ if (yych == 'R') goto yy981;
+ if (yych == 'r') goto yy981;
+ goto yy822;
+ yy1084:
+ yych = *++p;
+ if (yych == 'O') goto yy1085;
+ if (yych != 'o') goto yy822;
+ yy1085:
+ yych = *++p;
+ if (yych == 'U') goto yy1086;
+ if (yych != 'u') goto yy822;
+ yy1086:
+ yych = *++p;
+ if (yych == 'P') goto yy981;
+ if (yych == 'p') goto yy981;
+ goto yy822;
+ yy1087:
+ yych = *++p;
+ if (yych == 'I') goto yy1093;
+ if (yych == 'i') goto yy1093;
+ goto yy822;
+ yy1088:
+ yych = *++p;
+ if (yych == 'T') goto yy1089;
+ if (yych != 't') goto yy822;
+ yy1089:
+ yych = *++p;
+ if (yych == 'I') goto yy1090;
+ if (yych != 'i') goto yy822;
+ yy1090:
+ yych = *++p;
+ if (yych == 'C') goto yy1091;
+ if (yych != 'c') goto yy822;
+ yy1091:
+ yych = *++p;
+ if (yych == 'L') goto yy1092;
+ if (yych != 'l') goto yy822;
+ yy1092:
+ yych = *++p;
+ if (yych == 'E') goto yy981;
+ if (yych == 'e') goto yy981;
+ goto yy822;
+ yy1093:
+ yych = *++p;
+ if (yych == 'D') goto yy1094;
+ if (yych != 'd') goto yy822;
+ yy1094:
+ yych = *++p;
+ if (yych == 'E') goto yy981;
+ if (yych == 'e') goto yy981;
+ goto yy822;
+ yy1095:
+ yych = *++p;
+ if (yych <= 'O') {
+ if (yych == 'E') goto yy981;
+ if (yych <= 'N') goto yy822;
+ } else {
+ if (yych <= 'e') {
+ if (yych <= 'd') goto yy822;
+ goto yy981;
+ } else {
+ if (yych != 'o') goto yy822;
+ }
+ }
+ yych = *++p;
+ if (yych == 'G') goto yy1097;
+ if (yych != 'g') goto yy822;
+ yy1097:
+ yych = *++p;
+ if (yych == 'R') goto yy1098;
+ if (yych != 'r') goto yy822;
+ yy1098:
+ yych = *++p;
+ if (yych == 'E') goto yy1099;
+ if (yych != 'e') goto yy822;
+ yy1099:
+ yych = *++p;
+ if (yych == 'S') goto yy1100;
+ if (yych != 's') goto yy822;
+ yy1100:
+ ++p;
+ if ((yych = *p) == 'S') goto yy981;
+ if (yych == 's') goto yy981;
+ goto yy822;
+ }
+
+ }
+
+ // Try to match a URL in a link or reference, return number of chars matched.
+ // This may optionally be contained in <..>; otherwise
+ // whitespace and unbalanced right parentheses aren't allowed.
+ // Newlines aren't ever allowed.
+ int _scan_link_url(const unsigned char *p)
+ {
+ const unsigned char *marker = NULL;
+ const unsigned char *start = p;
+
+ {
+ unsigned char yych;
+ unsigned int yyaccept = 0;
+ static const unsigned char yybm[] = {
+ 0, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 8, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 64, 64, 64, 64,
+ 72, 112, 112, 112, 112, 112, 112, 112,
+ 64, 64, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 16, 112, 16, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 128, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112,
+ };
+ yych = *p;
+ if (yych <= '(') {
+ if (yych <= 0x1F) {
+ if (yych == '\n') goto yy1104;
+ goto yy1112;
+ } else {
+ if (yych <= ' ') goto yy1106;
+ if (yych <= '\'') goto yy1108;
+ goto yy1111;
+ }
+ } else {
+ if (yych <= '<') {
+ if (yych <= ')') goto yy1112;
+ if (yych <= ';') goto yy1108;
+ goto yy1107;
+ } else {
+ if (yych == '\\') goto yy1109;
+ goto yy1108;
+ }
+ }
+ yy1103:
+ { return (p - start); }
+ yy1104:
+ yyaccept = 0;
+ marker = ++p;
+ yych = *p;
+ yy1105:
+ if (yybm[0+yych] & 8) {
+ goto yy1104;
+ }
+ if (yych <= ')') {
+ if (yych <= 0x1F) goto yy1103;
+ if (yych <= '\'') goto yy1117;
+ if (yych <= '(') goto yy1113;
+ goto yy1103;
+ } else {
+ if (yych <= '<') {
+ if (yych <= ';') goto yy1117;
+ goto yy1120;
+ } else {
+ if (yych == '\\') goto yy1119;
+ goto yy1117;
+ }
+ }
+ yy1106:
+ yyaccept = 0;
+ yych = *(marker = ++p);
+ goto yy1105;
+ yy1107:
+ yyaccept = 0;
+ yych = *(marker = ++p);
+ if (yybm[0+yych] & 32) {
+ goto yy1120;
+ }
+ if (yych <= ' ') {
+ if (yych <= 0x00) goto yy1103;
+ if (yych == '\n') goto yy1103;
+ goto yy1127;
+ } else {
+ if (yych <= ')') {
+ if (yych <= '(') goto yy1125;
+ goto yy1127;
+ } else {
+ if (yych <= '<') goto yy1117;
+ if (yych <= '>') goto yy1122;
+ goto yy1124;
+ }
+ }
+ yy1108:
+ yyaccept = 0;
+ yych = *(marker = ++p);
+ goto yy1118;
+ yy1109:
+ ++p;
+ if ((yych = *p) <= '@') {
+ if (yych <= ' ') goto yy1110;
+ if (yych <= '/') goto yy1117;
+ if (yych >= ':') goto yy1117;
+ } else {
+ if (yych <= '`') {
+ if (yych >= '[') goto yy1117;
+ } else {
+ if (yych <= 'z') goto yy1110;
+ if (yych <= '~') goto yy1117;
+ }
+ }
+ yy1110:
+ { return 0; }
+ yy1111:
+ yyaccept = 1;
+ yych = *(marker = ++p);
+ if (yych <= ' ') goto yy1110;
+ if (yych == '(') goto yy1110;
+ goto yy1114;
+ yy1112:
+ yych = *++p;
+ goto yy1110;
+ yy1113:
+ ++p;
+ yych = *p;
+ yy1114:
+ if (yybm[0+yych] & 16) {
+ goto yy1113;
+ }
+ if (yych <= '(') goto yy1115;
+ if (yych <= ')') goto yy1117;
+ goto yy1116;
+ yy1115:
+ p = marker;
+ if (yyaccept <= 1) {
+ if (yyaccept == 0) {
+ goto yy1103;
+ } else {
+ goto yy1110;
+ }
+ } else {
+ goto yy1123;
+ }
+ yy1116:
+ ++p;
+ yych = *p;
+ if (yych <= '@') {
+ if (yych <= ' ') goto yy1115;
+ if (yych <= '/') goto yy1113;
+ if (yych <= '9') goto yy1115;
+ goto yy1113;
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') goto yy1115;
+ goto yy1113;
+ } else {
+ if (yych <= 'z') goto yy1115;
+ if (yych <= '~') goto yy1113;
+ goto yy1115;
+ }
+ }
+ yy1117:
+ yyaccept = 0;
+ marker = ++p;
+ yych = *p;
+ yy1118:
+ if (yych <= '(') {
+ if (yych <= ' ') goto yy1103;
+ if (yych <= '\'') goto yy1117;
+ goto yy1113;
+ } else {
+ if (yych <= ')') goto yy1103;
+ if (yych != '\\') goto yy1117;
+ }
+ yy1119:
+ ++p;
+ yych = *p;
+ if (yych <= '@') {
+ if (yych <= ' ') goto yy1115;
+ if (yych <= '/') goto yy1117;
+ if (yych <= '9') goto yy1115;
+ goto yy1117;
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') goto yy1115;
+ goto yy1117;
+ } else {
+ if (yych <= 'z') goto yy1115;
+ if (yych <= '~') goto yy1117;
+ goto yy1115;
+ }
+ }
+ yy1120:
+ yyaccept = 0;
+ marker = ++p;
+ yych = *p;
+ if (yybm[0+yych] & 32) {
+ goto yy1120;
+ }
+ if (yych <= ' ') {
+ if (yych <= 0x00) goto yy1103;
+ if (yych == '\n') goto yy1103;
+ goto yy1127;
+ } else {
+ if (yych <= ')') {
+ if (yych <= '(') goto yy1125;
+ goto yy1127;
+ } else {
+ if (yych <= '<') goto yy1117;
+ if (yych >= '?') goto yy1124;
+ }
+ }
+ yy1122:
+ yyaccept = 2;
+ yych = *(marker = ++p);
+ if (yych <= ' ') goto yy1123;
+ if (yych != ')') goto yy1118;
+ yy1123:
+ { return (p - start); }
+ yy1124:
+ ++p;
+ yych = *p;
+ if (yych <= '>') {
+ if (yych <= ' ') {
+ if (yych <= 0x00) goto yy1115;
+ if (yych == '\n') goto yy1115;
+ goto yy1127;
+ } else {
+ if (yych <= '/') goto yy1120;
+ if (yych <= '9') goto yy1127;
+ if (yych <= '=') goto yy1120;
+ goto yy1137;
+ }
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '@') goto yy1120;
+ if (yych <= 'Z') goto yy1127;
+ if (yych <= '[') goto yy1120;
+ goto yy1138;
+ } else {
+ if (yych <= '`') goto yy1120;
+ if (yych <= 'z') goto yy1127;
+ if (yych <= '~') goto yy1120;
+ goto yy1127;
+ }
+ }
+ yy1125:
+ ++p;
+ yych = *p;
+ if (yych <= ')') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy1115;
+ if (yych >= '\n') goto yy1115;
+ } else {
+ if (yych <= ' ') goto yy1127;
+ if (yych <= '\'') goto yy1125;
+ if (yych >= ')') goto yy1120;
+ }
+ } else {
+ if (yych <= '=') {
+ if (yych == '<') goto yy1113;
+ goto yy1125;
+ } else {
+ if (yych <= '>') goto yy1133;
+ if (yych == '\\') goto yy1134;
+ goto yy1125;
+ }
+ }
+ yy1127:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 64) {
+ goto yy1127;
+ }
+ if (yych <= '<') goto yy1115;
+ if (yych >= '?') goto yy1130;
+ yy1129:
+ yych = *++p;
+ goto yy1123;
+ yy1130:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 128) {
+ goto yy1130;
+ }
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy1115;
+ if (yych <= '\t') goto yy1127;
+ goto yy1115;
+ } else {
+ if (yych != '>') goto yy1127;
+ }
+ yyaccept = 2;
+ marker = ++p;
+ yych = *p;
+ if (yybm[0+yych] & 64) {
+ goto yy1127;
+ }
+ if (yych <= '<') goto yy1123;
+ if (yych <= '>') goto yy1129;
+ goto yy1130;
+ yy1133:
+ yyaccept = 2;
+ yych = *(marker = ++p);
+ if (yych <= ' ') goto yy1123;
+ if (yych == '(') goto yy1123;
+ goto yy1114;
+ yy1134:
+ ++p;
+ yych = *p;
+ if (yych <= '>') {
+ if (yych <= ' ') {
+ if (yych <= 0x00) goto yy1115;
+ if (yych == '\n') goto yy1115;
+ goto yy1127;
+ } else {
+ if (yych <= '/') goto yy1125;
+ if (yych <= '9') goto yy1127;
+ if (yych <= '=') goto yy1125;
+ }
+ } else {
+ if (yych <= '\\') {
+ if (yych <= '@') goto yy1125;
+ if (yych <= 'Z') goto yy1127;
+ if (yych <= '[') goto yy1125;
+ goto yy1136;
+ } else {
+ if (yych <= '`') goto yy1125;
+ if (yych <= 'z') goto yy1127;
+ if (yych <= '~') goto yy1125;
+ goto yy1127;
+ }
+ }
+ yy1135:
+ yyaccept = 2;
+ marker = ++p;
+ yych = *p;
+ if (yych <= ')') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy1123;
+ if (yych <= '\t') goto yy1127;
+ goto yy1123;
+ } else {
+ if (yych <= ' ') goto yy1127;
+ if (yych <= '\'') goto yy1125;
+ if (yych <= '(') goto yy1127;
+ goto yy1120;
+ }
+ } else {
+ if (yych <= '=') {
+ if (yych == '<') goto yy1113;
+ goto yy1125;
+ } else {
+ if (yych <= '>') goto yy1133;
+ if (yych == '\\') goto yy1134;
+ goto yy1125;
+ }
+ }
+ yy1136:
+ ++p;
+ yych = *p;
+ if (yych <= '(') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy1115;
+ if (yych <= '\t') goto yy1127;
+ goto yy1115;
+ } else {
+ if (yych <= ' ') goto yy1127;
+ if (yych <= '\'') goto yy1125;
+ goto yy1127;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych <= ')') goto yy1120;
+ if (yych <= '=') goto yy1125;
+ goto yy1135;
+ } else {
+ if (yych == '\\') goto yy1134;
+ goto yy1125;
+ }
+ }
+ yy1137:
+ yyaccept = 2;
+ marker = ++p;
+ yych = *p;
+ if (yybm[0+yych] & 32) {
+ goto yy1120;
+ }
+ if (yych <= ' ') {
+ if (yych <= 0x00) goto yy1123;
+ if (yych == '\n') goto yy1123;
+ goto yy1127;
+ } else {
+ if (yych <= ')') {
+ if (yych <= '(') goto yy1125;
+ goto yy1127;
+ } else {
+ if (yych <= '<') goto yy1117;
+ if (yych <= '>') goto yy1122;
+ goto yy1124;
+ }
+ }
+ yy1138:
+ yyaccept = 0;
+ marker = ++p;
+ yych = *p;
+ if (yych <= '(') {
+ if (yych <= '\n') {
+ if (yych <= 0x00) goto yy1103;
+ if (yych <= '\t') goto yy1127;
+ goto yy1103;
+ } else {
+ if (yych <= ' ') goto yy1127;
+ if (yych <= '\'') goto yy1120;
+ goto yy1125;
+ }
+ } else {
+ if (yych <= '>') {
+ if (yych <= ')') goto yy1127;
+ if (yych <= '=') goto yy1120;
+ goto yy1137;
+ } else {
+ if (yych == '\\') goto yy1124;
+ goto yy1120;
+ }
+ }
+ }
+
+ }
+
+ // Try to match a link title (in single quotes, in double quotes, or
+ // in parentheses), returning number of chars matched. Allow one
+ // level of internal nesting (quotes within quotes).
+ int _scan_link_title(const unsigned char *p)
+ {
+ const unsigned char *marker = NULL;
+ const unsigned char *start = p;
+
+ {
+ unsigned char yych;
+ unsigned int yyaccept = 0;
+ static const unsigned char yybm[] = {
+ 0, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 80, 208, 208, 208, 208, 144,
+ 208, 192, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 32, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208,
+ };
+ yych = *p;
+ if (yych <= '"') {
+ if (yych == '\n') goto yy1141;
+ if (yych <= '!') goto yy1145;
+ goto yy1142;
+ } else {
+ if (yych <= '&') goto yy1145;
+ if (yych <= '\'') goto yy1143;
+ if (yych <= '(') goto yy1144;
+ goto yy1145;
+ }
+ yy1141:
+ { return 0; }
+ yy1142:
+ yyaccept = 0;
+ yych = *(marker = ++p);
+ if (yych <= 0x00) goto yy1141;
+ goto yy1162;
+ yy1143:
+ yyaccept = 0;
+ yych = *(marker = ++p);
+ if (yych <= 0x00) goto yy1141;
+ goto yy1155;
+ yy1144:
+ yyaccept = 0;
+ yych = *(marker = ++p);
+ if (yych <= 0x00) goto yy1141;
+ goto yy1147;
+ yy1145:
+ yych = *++p;
+ goto yy1141;
+ yy1146:
+ ++p;
+ yych = *p;
+ yy1147:
+ if (yybm[0+yych] & 16) {
+ goto yy1146;
+ }
+ if (yych <= 0x00) goto yy1148;
+ if (yych <= ')') goto yy1151;
+ goto yy1149;
+ yy1148:
+ p = marker;
+ if (yyaccept <= 1) {
+ if (yyaccept == 0) {
+ goto yy1141;
+ } else {
+ goto yy1152;
+ }
+ } else {
+ if (yyaccept == 2) {
+ goto yy1159;
+ } else {
+ goto yy1166;
+ }
+ }
+ yy1149:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 16) {
+ goto yy1146;
+ }
+ if (yych <= 0x00) goto yy1148;
+ if (yych <= ')') goto yy1153;
+ goto yy1149;
+ yy1151:
+ ++p;
+ yy1152:
+ { return (p - start); }
+ yy1153:
+ yyaccept = 1;
+ marker = ++p;
+ yych = *p;
+ if (yybm[0+yych] & 16) {
+ goto yy1146;
+ }
+ if (yych <= 0x00) goto yy1152;
+ if (yych <= ')') goto yy1151;
+ goto yy1149;
+ yy1154:
+ ++p;
+ yych = *p;
+ yy1155:
+ if (yybm[0+yych] & 64) {
+ goto yy1154;
+ }
+ if (yych <= 0x00) goto yy1148;
+ if (yych <= '\'') goto yy1158;
+ yy1156:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 64) {
+ goto yy1154;
+ }
+ if (yych <= 0x00) goto yy1148;
+ if (yych <= '\'') goto yy1160;
+ goto yy1156;
+ yy1158:
+ ++p;
+ yy1159:
+ { return (p - start); }
+ yy1160:
+ yyaccept = 2;
+ marker = ++p;
+ yych = *p;
+ if (yybm[0+yych] & 64) {
+ goto yy1154;
+ }
+ if (yych <= 0x00) goto yy1159;
+ if (yych <= '\'') goto yy1158;
+ goto yy1156;
+ yy1161:
+ ++p;
+ yych = *p;
+ yy1162:
+ if (yybm[0+yych] & 128) {
+ goto yy1161;
+ }
+ if (yych <= 0x00) goto yy1148;
+ if (yych <= '"') goto yy1165;
+ yy1163:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 128) {
+ goto yy1161;
+ }
+ if (yych <= 0x00) goto yy1148;
+ if (yych <= '"') goto yy1167;
+ goto yy1163;
+ yy1165:
+ ++p;
+ yy1166:
+ { return (p - start); }
+ yy1167:
+ yyaccept = 3;
+ marker = ++p;
+ yych = *p;
+ if (yybm[0+yych] & 128) {
+ goto yy1161;
+ }
+ if (yych <= 0x00) goto yy1166;
+ if (yych <= '"') goto yy1165;
+ goto yy1163;
+ }
+
+ }
+
+ // Match space characters, including newlines.
+ int _scan_spacechars(const unsigned char *p)
+ {
+ const unsigned char *start = p; \
+
+ {
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 128, 128, 128, 128, 128, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ yych = *p;
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy1174;
+ if (yych <= '\t') goto yy1171;
+ goto yy1172;
+ } else {
+ if (yych <= '\r') goto yy1171;
+ if (yych == ' ') goto yy1171;
+ goto yy1174;
+ }
+ yy1170:
+ { return (p - start); }
+ yy1171:
+ yych = *++p;
+ goto yy1173;
+ yy1172:
+ ++p;
+ yych = *p;
+ yy1173:
+ if (yybm[0+yych] & 128) {
+ goto yy1172;
+ }
+ goto yy1170;
+ yy1174:
+ ++p;
+ { return 0; }
+ }
+
+ }
+
+ // Match ATX header start.
+ int _scan_atx_header_start(const unsigned char *p)
+ {
+ const unsigned char *marker = NULL;
+ const unsigned char *start = p;
+
+ {
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ yych = *p;
+ if (yych == '\n') goto yy1178;
+ if (yych == '#') goto yy1179;
+ goto yy1180;
+ yy1178:
+ { return 0; }
+ yy1179:
+ yych = *(marker = ++p);
+ if (yybm[0+yych] & 128) {
+ goto yy1183;
+ }
+ if (yych == '\n') goto yy1181;
+ if (yych == '#') goto yy1185;
+ goto yy1178;
+ yy1180:
+ yych = *++p;
+ goto yy1178;
+ yy1181:
+ ++p;
+ yy1182:
+ { return (p - start); }
+ yy1183:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 128) {
+ goto yy1183;
+ }
+ goto yy1182;
+ yy1185:
+ yych = *++p;
+ if (yybm[0+yych] & 128) {
+ goto yy1183;
+ }
+ if (yych == '\n') goto yy1181;
+ if (yych == '#') goto yy1187;
+ yy1186:
+ p = marker;
+ goto yy1178;
+ yy1187:
+ yych = *++p;
+ if (yybm[0+yych] & 128) {
+ goto yy1183;
+ }
+ if (yych == '\n') goto yy1181;
+ if (yych != '#') goto yy1186;
+ yych = *++p;
+ if (yybm[0+yych] & 128) {
+ goto yy1183;
+ }
+ if (yych == '\n') goto yy1181;
+ if (yych != '#') goto yy1186;
+ yych = *++p;
+ if (yybm[0+yych] & 128) {
+ goto yy1183;
+ }
+ if (yych == '\n') goto yy1181;
+ if (yych != '#') goto yy1186;
+ ++p;
+ if (yybm[0+(yych = *p)] & 128) {
+ goto yy1183;
+ }
+ if (yych == '\n') goto yy1181;
+ goto yy1186;
+ }
+
+ }
+
+ // Match sexext header line. Return 1 for level-1 header,
+ // 2 for level-2, 0 for no match.
+ int _scan_setext_header_line(const unsigned char *p)
+ {
+ const unsigned char *marker = NULL;
+
+ {
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 64, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 128, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ yych = *p;
+ if (yych <= ',') {
+ if (yych != '\n') goto yy1196;
+ } else {
+ if (yych <= '-') goto yy1195;
+ if (yych == '=') goto yy1194;
+ goto yy1196;
+ }
+ yy1193:
+ { return 0; }
+ yy1194:
+ yych = *(marker = ++p);
+ if (yybm[0+yych] & 128) {
+ goto yy1208;
+ }
+ if (yych == '\n') goto yy1206;
+ if (yych == ' ') goto yy1204;
+ goto yy1193;
+ yy1195:
+ yych = *(marker = ++p);
+ if (yybm[0+yych] & 32) {
+ goto yy1197;
+ }
+ if (yych == '\n') goto yy1200;
+ if (yych == '-') goto yy1202;
+ goto yy1193;
+ yy1196:
+ yych = *++p;
+ goto yy1193;
+ yy1197:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 32) {
+ goto yy1197;
+ }
+ if (yych == '\n') goto yy1200;
+ yy1199:
+ p = marker;
+ goto yy1193;
+ yy1200:
+ ++p;
+ { return 2; }
+ yy1202:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 32) {
+ goto yy1197;
+ }
+ if (yych == '\n') goto yy1200;
+ if (yych == '-') goto yy1202;
+ goto yy1199;
+ yy1204:
+ ++p;
+ yych = *p;
+ if (yych == '\n') goto yy1206;
+ if (yych == ' ') goto yy1204;
+ goto yy1199;
+ yy1206:
+ ++p;
+ { return 1; }
+ yy1208:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 128) {
+ goto yy1208;
+ }
+ if (yych == '\n') goto yy1206;
+ if (yych == ' ') goto yy1204;
+ goto yy1199;
+ }
+
+ }
+
+ // Scan a horizontal rule line: "...three or more hyphens, asterisks,
+ // or underscores on a line by themselves. If you wish, you may use
+ // spaces between the hyphens or asterisks."
+ int _scan_hrule(const unsigned char *p)
+ {
+ const unsigned char *marker = NULL;
+ const unsigned char *start = p;
+
+ {
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 128, 0, 0, 16, 0, 0,
++ 0, 16, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 248, 0, 0, 0, 0, 0, 0, 0,
- if (yych == ' ') goto yy1238;
- if (yych == '*') goto yy1240;
++ 0, 0, 128, 0, 0, 32, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 64,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ yych = *p;
+ if (yych <= '*') {
+ if (yych == '\n') goto yy1212;
+ if (yych <= ')') goto yy1216;
+ goto yy1213;
+ } else {
+ if (yych <= '-') {
+ if (yych <= ',') goto yy1216;
+ goto yy1215;
+ } else {
+ if (yych == '_') goto yy1214;
+ goto yy1216;
+ }
+ }
+ yy1212:
+ { return 0; }
+ yy1213:
+ yych = *(marker = ++p);
- if (yych == ' ') goto yy1228;
- if (yych == '_') goto yy1230;
++ if (yych == ' ') goto yy1242;
++ if (yych == '*') goto yy1244;
+ goto yy1212;
+ yy1214:
+ yych = *(marker = ++p);
- if (yybm[0+yych] & 16) {
- goto yy1222;
++ if (yych == ' ') goto yy1230;
++ if (yych == '_') goto yy1232;
+ goto yy1212;
+ yy1215:
+ yych = *(marker = ++p);
+ if (yybm[0+yych] & 8) {
+ goto yy1217;
+ }
+ if (yych == '-') goto yy1220;
+ goto yy1212;
+ yy1216:
+ yych = *++p;
+ goto yy1212;
+ yy1217:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 8) {
+ goto yy1217;
+ }
+ if (yych == '-') goto yy1220;
+ yy1219:
+ p = marker;
+ goto yy1212;
+ yy1220:
+ ++p;
+ yych = *p;
+ if (yych == ' ') goto yy1220;
+ if (yych != '-') goto yy1219;
+ yy1222:
+ ++p;
+ yych = *p;
- if (yych <= 0x08) goto yy1219;
- if (yych <= '\t') goto yy1224;
- if (yych <= '\n') goto yy1226;
- goto yy1219;
++ if (yych <= 0x1F) {
++ if (yych <= 0x08) goto yy1219;
++ if (yych <= '\t') goto yy1224;
++ if (yych <= '\n') goto yy1226;
++ goto yy1219;
++ } else {
++ if (yych <= ' ') goto yy1222;
++ if (yych == '-') goto yy1228;
++ goto yy1219;
+ }
- if (yybm[0+yych] & 32) {
+ yy1224:
+ ++p;
+ yych = *p;
- if (yych == ' ') goto yy1228;
- if (yych != '_') goto yy1219;
++ if (yybm[0+yych] & 16) {
+ goto yy1224;
+ }
+ if (yych <= 0x08) goto yy1219;
+ if (yych >= '\v') goto yy1219;
+ yy1226:
+ ++p;
+ { return (p - start); }
+ yy1228:
+ ++p;
+ yych = *p;
- if (yybm[0+yych] & 64) {
- goto yy1232;
- }
- if (yych <= 0x08) goto yy1219;
- if (yych <= '\t') goto yy1234;
- if (yych <= '\n') goto yy1236;
- goto yy1219;
++ if (yybm[0+yych] & 32) {
++ goto yy1228;
++ }
++ if (yych <= 0x08) goto yy1219;
++ if (yych <= '\t') goto yy1224;
++ if (yych <= '\n') goto yy1226;
++ goto yy1219;
+ yy1230:
+ ++p;
+ yych = *p;
+ if (yych == ' ') goto yy1230;
+ if (yych != '_') goto yy1219;
+ yy1232:
+ ++p;
+ yych = *p;
- if (yych <= '\n') {
++ if (yych == ' ') goto yy1232;
++ if (yych != '_') goto yy1219;
+ yy1234:
+ ++p;
+ yych = *p;
- if (yych <= '\t') goto yy1234;
++ if (yych <= 0x1F) {
+ if (yych <= 0x08) goto yy1219;
- if (yych == ' ') goto yy1234;
++ if (yych <= '\t') goto yy1236;
++ if (yych <= '\n') goto yy1238;
++ goto yy1219;
+ } else {
- { return (p - start); }
++ if (yych <= ' ') goto yy1234;
++ if (yych == '_') goto yy1240;
+ goto yy1219;
+ }
+ yy1236:
+ ++p;
- if (yych == ' ') goto yy1238;
++ yych = *p;
++ if (yych <= '\n') {
++ if (yych <= 0x08) goto yy1219;
++ if (yych <= '\t') goto yy1236;
++ } else {
++ if (yych == ' ') goto yy1236;
++ goto yy1219;
++ }
+ yy1238:
++ ++p;
++ { return (p - start); }
++yy1240:
++ ++p;
++ yych = *p;
++ if (yybm[0+yych] & 64) {
++ goto yy1240;
++ }
++ if (yych <= 0x08) goto yy1219;
++ if (yych <= '\t') goto yy1236;
++ if (yych <= '\n') goto yy1238;
++ goto yy1219;
++yy1242:
+ ++p;
+ yych = *p;
-yy1240:
++ if (yych == ' ') goto yy1242;
+ if (yych != '*') goto yy1219;
- if (yych == ' ') goto yy1240;
++yy1244:
+ ++p;
+ yych = *p;
-yy1242:
++ if (yych == ' ') goto yy1244;
+ if (yych != '*') goto yy1219;
- if (yybm[0+yych] & 128) {
- goto yy1242;
++yy1246:
+ ++p;
+ yych = *p;
- if (yych <= 0x08) goto yy1219;
- if (yych <= '\t') goto yy1244;
- if (yych <= '\n') goto yy1246;
- goto yy1219;
-yy1244:
++ if (yych <= 0x1F) {
++ if (yych <= 0x08) goto yy1219;
++ if (yych <= '\t') goto yy1248;
++ if (yych <= '\n') goto yy1250;
++ goto yy1219;
++ } else {
++ if (yych <= ' ') goto yy1246;
++ if (yych == '*') goto yy1252;
++ goto yy1219;
+ }
- if (yych <= '\t') goto yy1244;
++yy1248:
+ ++p;
+ yych = *p;
+ if (yych <= '\n') {
+ if (yych <= 0x08) goto yy1219;
- if (yych == ' ') goto yy1244;
++ if (yych <= '\t') goto yy1248;
+ } else {
-yy1246:
++ if (yych == ' ') goto yy1248;
+ goto yy1219;
+ }
- if (yych != '\n') goto yy1253;
++yy1250:
+ ++p;
+ { return (p - start); }
++yy1252:
++ ++p;
++ yych = *p;
++ if (yybm[0+yych] & 128) {
++ goto yy1252;
++ }
++ if (yych <= 0x08) goto yy1219;
++ if (yych <= '\t') goto yy1248;
++ if (yych <= '\n') goto yy1250;
++ goto yy1219;
+ }
+
+ }
+
+ // Scan an opening code fence.
+ int _scan_open_code_fence(const unsigned char *p)
+ {
+ const unsigned char *marker = NULL;
+ const unsigned char *start = p;
+
+ {
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ 0, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 0, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 96, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 144, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160,
+ };
+ yych = *p;
+ if (yych <= '_') {
- if (yych <= '`') goto yy1251;
- if (yych == '~') goto yy1252;
- goto yy1253;
++ if (yych != '\n') goto yy1259;
+ } else {
-yy1250:
++ if (yych <= '`') goto yy1257;
++ if (yych == '~') goto yy1258;
++ goto yy1259;
+ }
-yy1251:
++yy1256:
+ { return 0; }
- if (yych == '`') goto yy1262;
- goto yy1250;
-yy1252:
++yy1257:
+ yych = *(marker = ++p);
- if (yych == '~') goto yy1254;
- goto yy1250;
-yy1253:
++ if (yych == '`') goto yy1268;
++ goto yy1256;
++yy1258:
+ yych = *(marker = ++p);
- goto yy1250;
-yy1254:
++ if (yych == '~') goto yy1260;
++ goto yy1256;
++yy1259:
+ yych = *++p;
- goto yy1256;
++ goto yy1256;
++yy1260:
+ yych = *++p;
+ if (yybm[0+yych] & 16) {
-yy1255:
++ goto yy1262;
+ }
- goto yy1250;
-yy1256:
- marker = p + 1;
++yy1261:
+ p = marker;
- goto yy1258;
++ goto yy1256;
++yy1262:
+ ++p;
+ yych = *p;
++ marker = p;
+ if (yybm[0+yych] & 32) {
- if (yych <= 0x00) goto yy1255;
- if (yych <= '\n') goto yy1260;
- goto yy1256;
-yy1258:
++ goto yy1264;
+ }
- goto yy1258;
++ if (yych <= 0x00) goto yy1261;
++ if (yych <= '\n') goto yy1266;
++ goto yy1262;
++yy1264:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 32) {
- if (yych <= 0x00) goto yy1255;
- if (yych >= '\v') goto yy1255;
-yy1260:
++ goto yy1264;
+ }
-yy1262:
++ if (yych <= 0x00) goto yy1261;
++ if (yych >= '\v') goto yy1261;
++yy1266:
+ ++p;
+ p = marker;
+ { return (p - start); }
- goto yy1263;
++yy1268:
+ yych = *++p;
+ if (yybm[0+yych] & 64) {
- goto yy1255;
-yy1263:
- marker = p + 1;
++ goto yy1269;
+ }
- goto yy1265;
++ goto yy1261;
++yy1269:
+ ++p;
+ yych = *p;
++ marker = p;
+ if (yybm[0+yych] & 128) {
- if (yych <= 0x00) goto yy1255;
- if (yych <= '\n') goto yy1267;
- goto yy1263;
-yy1265:
++ goto yy1271;
+ }
- goto yy1265;
++ if (yych <= 0x00) goto yy1261;
++ if (yych <= '\n') goto yy1273;
++ goto yy1269;
++yy1271:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 128) {
- if (yych <= 0x00) goto yy1255;
- if (yych >= '\v') goto yy1255;
-yy1267:
++ goto yy1271;
+ }
- if (yych != '\n') goto yy1274;
++ if (yych <= 0x00) goto yy1261;
++ if (yych >= '\v') goto yy1261;
++yy1273:
+ ++p;
+ p = marker;
+ { return (p - start); }
+ }
+
+ }
+
+ // Scan a closing code fence with length at least len.
+ int _scan_close_code_fence(const unsigned char *p)
+ {
+ const unsigned char *marker = NULL;
+ const unsigned char *start = p;
+
+ {
+ unsigned char yych;
+ static const unsigned char yybm[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 64, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 64, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 32, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ yych = *p;
+ if (yych <= '_') {
- if (yych <= '`') goto yy1272;
- if (yych == '~') goto yy1273;
- goto yy1274;
++ if (yych != '\n') goto yy1280;
+ } else {
-yy1271:
++ if (yych <= '`') goto yy1278;
++ if (yych == '~') goto yy1279;
++ goto yy1280;
+ }
-yy1272:
++yy1277:
+ { return 0; }
- if (yych == '`') goto yy1283;
- goto yy1271;
-yy1273:
++yy1278:
+ yych = *(marker = ++p);
- if (yych == '~') goto yy1275;
- goto yy1271;
-yy1274:
++ if (yych == '`') goto yy1289;
++ goto yy1277;
++yy1279:
+ yych = *(marker = ++p);
- goto yy1271;
-yy1275:
++ if (yych == '~') goto yy1281;
++ goto yy1277;
++yy1280:
+ yych = *++p;
- goto yy1277;
++ goto yy1277;
++yy1281:
+ yych = *++p;
+ if (yybm[0+yych] & 32) {
-yy1276:
++ goto yy1283;
+ }
- goto yy1271;
-yy1277:
- marker = p + 1;
++yy1282:
+ p = marker;
- goto yy1279;
++ goto yy1277;
++yy1283:
+ ++p;
+ yych = *p;
++ marker = p;
+ if (yybm[0+yych] & 64) {
- if (yych <= 0x08) goto yy1276;
- if (yych <= '\n') goto yy1281;
- if (yych == '~') goto yy1277;
- goto yy1276;
-yy1279:
++ goto yy1285;
+ }
- goto yy1279;
++ if (yych <= 0x08) goto yy1282;
++ if (yych <= '\n') goto yy1287;
++ if (yych == '~') goto yy1283;
++ goto yy1282;
++yy1285:
+ ++p;
+ yych = *p;
+ if (yybm[0+yych] & 64) {
- if (yych <= 0x08) goto yy1276;
- if (yych >= '\v') goto yy1276;
-yy1281:
++ goto yy1285;
+ }
-yy1283:
++ if (yych <= 0x08) goto yy1282;
++ if (yych >= '\v') goto yy1282;
++yy1287:
+ ++p;
+ p = marker;
+ { return (p - start); }
- goto yy1284;
++yy1289:
+ yych = *++p;
+ if (yybm[0+yych] & 128) {
- goto yy1276;
-yy1284:
- marker = p + 1;
++ goto yy1290;
+ }
- goto yy1284;
++ goto yy1282;
++yy1290:
+ ++p;
+ yych = *p;
++ marker = p;
+ if (yybm[0+yych] & 128) {
- if (yych <= 0x08) goto yy1276;
- if (yych >= '\n') goto yy1288;
++ goto yy1290;
+ }
+ if (yych <= '\n') {
- if (yych != ' ') goto yy1276;
++ if (yych <= 0x08) goto yy1282;
++ if (yych >= '\n') goto yy1294;
+ } else {
-yy1286:
++ if (yych != ' ') goto yy1282;
+ }
- if (yych <= 0x08) goto yy1276;
- if (yych <= '\t') goto yy1286;
++yy1292:
+ ++p;
+ yych = *p;
+ if (yych <= '\n') {
- if (yych == ' ') goto yy1286;
- goto yy1276;
++ if (yych <= 0x08) goto yy1282;
++ if (yych <= '\t') goto yy1292;
+ } else {
-yy1288:
++ if (yych == ' ') goto yy1292;
++ goto yy1282;
+ }
- if (yych == '\n') goto yy1292;
- if (yych == '&') goto yy1293;
- goto yy1294;
-yy1292:
++yy1294:
+ ++p;
+ p = marker;
+ { return (p - start); }
+ }
+
+ }
+
+ // Scans an entity.
+ // Returns number of chars matched.
+ int _scan_entity(const unsigned char *p)
+ {
+ const unsigned char *marker = NULL;
+ const unsigned char *start = p;
+
+ {
+ unsigned char yych;
+ yych = *p;
-yy1293:
++ if (yych == '\n') goto yy1298;
++ if (yych == '&') goto yy1299;
++ goto yy1300;
++yy1298:
+ { return 0; }
- if (yych == '#') goto yy1295;
- goto yy1292;
- } else {
- if (yych <= 'Z') goto yy1297;
- if (yych <= '`') goto yy1292;
- if (yych <= 'z') goto yy1297;
- goto yy1292;
- }
-yy1294:
- yych = *++p;
- goto yy1292;
-yy1295:
- yych = *++p;
- if (yych <= 'W') {
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1332;
- } else {
- if (yych <= 'X') goto yy1331;
- if (yych == 'x') goto yy1331;
- }
-yy1296:
- p = marker;
- goto yy1292;
-yy1297:
- yych = *++p;
- if (yych <= '@') {
- if (yych <= '/') goto yy1296;
- if (yych >= ':') goto yy1296;
++yy1299:
+ yych = *(marker = ++p);
+ if (yych <= '@') {
- if (yych <= 'Z') goto yy1298;
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych == '#') goto yy1301;
++ goto yy1298;
+ } else {
-yy1298:
++ if (yych <= 'Z') goto yy1303;
++ if (yych <= '`') goto yy1298;
++ if (yych <= 'z') goto yy1303;
++ goto yy1298;
+ }
- if (yych <= ';') {
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1301;
- if (yych <= ':') goto yy1296;
- } else {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy1296;
- goto yy1301;
- } else {
- if (yych <= '`') goto yy1296;
- if (yych <= 'z') goto yy1301;
- goto yy1296;
- }
- }
-yy1299:
- ++p;
- { return (p - start); }
++yy1300:
+ yych = *++p;
- if (yych <= ';') {
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1302;
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ goto yy1298;
+ yy1301:
+ yych = *++p;
- if (yych <= 'Z') {
- if (yych <= '@') goto yy1296;
- } else {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
- }
++ if (yych <= 'W') {
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1338;
+ } else {
- yych = *++p;
- if (yych <= ';') {
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1303;
- if (yych <= ':') goto yy1296;
- goto yy1299;
- } else {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy1296;
- } else {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
- }
- }
++ if (yych <= 'X') goto yy1337;
++ if (yych == 'x') goto yy1337;
+ }
+ yy1302:
- if (yych <= ';') {
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1304;
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ p = marker;
++ goto yy1298;
+ yy1303:
+ yych = *++p;
- if (yych <= 'Z') {
- if (yych <= '@') goto yy1296;
- } else {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
- }
++ if (yych <= '@') {
++ if (yych <= '/') goto yy1302;
++ if (yych >= ':') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1305;
- if (yych <= ':') goto yy1296;
- goto yy1299;
- } else {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy1296;
- } else {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
- }
- }
-yy1305:
- yych = *++p;
- if (yych <= ';') {
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1306;
- if (yych <= ':') goto yy1296;
- goto yy1299;
- } else {
- if (yych <= 'Z') {
- if (yych <= '@') goto yy1296;
- } else {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
- }
- }
-yy1306:
- yych = *++p;
- if (yych <= ';') {
- if (yych <= '/') goto yy1296;
++ if (yych <= 'Z') goto yy1304;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ yy1304:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1307;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
++ goto yy1307;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych <= 'z') goto yy1307;
++ goto yy1302;
+ }
+ }
++yy1305:
++ ++p;
++ { return (p - start); }
+ yy1307:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1308;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1308:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1309;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1309:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1310;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1310:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1311;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1311:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1312;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1312:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1313;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1313:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1314;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1314:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1315;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1315:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1316;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1316:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1317;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1317:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1318;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1318:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1319;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1319:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1320;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1320:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1321;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1321:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1322;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1322:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1323;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1323:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1324;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1324:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1325;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1325:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1326;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1326:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1327;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1327:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1328;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1328:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1329;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych <= '/') goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1329:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
+ if (yych <= '9') goto yy1330;
- if (yych <= '@') goto yy1296;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'Z') {
- if (yych <= '`') goto yy1296;
- if (yych >= '{') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
- if (yych == ';') goto yy1299;
- goto yy1296;
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
+ }
+ }
+ yy1330:
+ yych = *++p;
- if (yych <= '@') {
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1339;
- goto yy1296;
++ if (yych <= ';') {
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1331;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
++ } else {
++ if (yych <= 'Z') {
++ if (yych <= '@') goto yy1302;
++ } else {
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
++ }
++ }
+ yy1331:
+ yych = *++p;
- if (yych <= 'F') goto yy1339;
- if (yych <= '`') goto yy1296;
- if (yych <= 'f') goto yy1339;
- goto yy1296;
++ if (yych <= ';') {
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1332;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1333;
- if (yych == ';') goto yy1299;
- goto yy1296;
++ if (yych <= 'Z') {
++ if (yych <= '@') goto yy1302;
++ } else {
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
++ }
+ }
+ yy1332:
+ yych = *++p;
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1334;
- if (yych == ';') goto yy1299;
- goto yy1296;
++ if (yych <= ';') {
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1333;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
++ } else {
++ if (yych <= 'Z') {
++ if (yych <= '@') goto yy1302;
++ } else {
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
++ }
++ }
+ yy1333:
+ yych = *++p;
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1335;
- if (yych == ';') goto yy1299;
- goto yy1296;
++ if (yych <= ';') {
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1334;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
++ } else {
++ if (yych <= 'Z') {
++ if (yych <= '@') goto yy1302;
++ } else {
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
++ }
++ }
+ yy1334:
+ yych = *++p;
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1336;
- if (yych == ';') goto yy1299;
- goto yy1296;
++ if (yych <= ';') {
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1335;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
++ } else {
++ if (yych <= 'Z') {
++ if (yych <= '@') goto yy1302;
++ } else {
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
++ }
++ }
+ yy1335:
+ yych = *++p;
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1337;
- if (yych == ';') goto yy1299;
- goto yy1296;
++ if (yych <= ';') {
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1336;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
++ } else {
++ if (yych <= 'Z') {
++ if (yych <= '@') goto yy1302;
++ } else {
++ if (yych <= '`') goto yy1302;
++ if (yych >= '{') goto yy1302;
++ }
++ }
+ yy1336:
+ yych = *++p;
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1338;
- if (yych == ';') goto yy1299;
- goto yy1296;
++ if (yych == ';') goto yy1305;
++ goto yy1302;
+ yy1337:
+ yych = *++p;
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1330;
- if (yych == ';') goto yy1299;
- goto yy1296;
++ if (yych <= '@') {
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1345;
++ goto yy1302;
++ } else {
++ if (yych <= 'F') goto yy1345;
++ if (yych <= '`') goto yy1302;
++ if (yych <= 'f') goto yy1345;
++ goto yy1302;
++ }
+ yy1338:
+ yych = *++p;
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1340;
- if (yych <= ':') goto yy1296;
- goto yy1299;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1339;
++ if (yych == ';') goto yy1305;
++ goto yy1302;
+ yy1339:
++ yych = *++p;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1340;
++ if (yych == ';') goto yy1305;
++ goto yy1302;
++yy1340:
++ yych = *++p;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1341;
++ if (yych == ';') goto yy1305;
++ goto yy1302;
++yy1341:
++ yych = *++p;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1342;
++ if (yych == ';') goto yy1305;
++ goto yy1302;
++yy1342:
++ yych = *++p;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1343;
++ if (yych == ';') goto yy1305;
++ goto yy1302;
++yy1343:
++ yych = *++p;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1344;
++ if (yych == ';') goto yy1305;
++ goto yy1302;
++yy1344:
++ yych = *++p;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1336;
++ if (yych == ';') goto yy1305;
++ goto yy1302;
++yy1345:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= '@') goto yy1296;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1346;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'F') {
- if (yych <= '`') goto yy1296;
- if (yych >= 'g') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
-yy1340:
++ if (yych <= '`') goto yy1302;
++ if (yych >= 'g') goto yy1302;
+ }
+ }
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1341;
- if (yych <= ':') goto yy1296;
- goto yy1299;
++yy1346:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= '@') goto yy1296;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1347;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'F') {
- if (yych <= '`') goto yy1296;
- if (yych >= 'g') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
-yy1341:
++ if (yych <= '`') goto yy1302;
++ if (yych >= 'g') goto yy1302;
+ }
+ }
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1342;
- if (yych <= ':') goto yy1296;
- goto yy1299;
++yy1347:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= '@') goto yy1296;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1348;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'F') {
- if (yych <= '`') goto yy1296;
- if (yych >= 'g') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
-yy1342:
++ if (yych <= '`') goto yy1302;
++ if (yych >= 'g') goto yy1302;
+ }
+ }
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1343;
- if (yych <= ':') goto yy1296;
- goto yy1299;
++yy1348:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= '@') goto yy1296;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1349;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'F') {
- if (yych <= '`') goto yy1296;
- if (yych >= 'g') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
-yy1343:
++ if (yych <= '`') goto yy1302;
++ if (yych >= 'g') goto yy1302;
+ }
+ }
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1344;
- if (yych <= ':') goto yy1296;
- goto yy1299;
++yy1349:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= '@') goto yy1296;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1350;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'F') {
- if (yych <= '`') goto yy1296;
- if (yych >= 'g') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
-yy1344:
++ if (yych <= '`') goto yy1302;
++ if (yych >= 'g') goto yy1302;
+ }
+ }
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1345;
- if (yych <= ':') goto yy1296;
- goto yy1299;
++yy1350:
+ yych = *++p;
+ if (yych <= ';') {
- if (yych <= '@') goto yy1296;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1351;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'F') {
- if (yych <= '`') goto yy1296;
- if (yych >= 'g') goto yy1296;
++ if (yych <= '@') goto yy1302;
+ } else {
-yy1345:
++ if (yych <= '`') goto yy1302;
++ if (yych >= 'g') goto yy1302;
+ }
+ }
- if (yych <= '/') goto yy1296;
- if (yych <= '9') goto yy1330;
- if (yych <= ':') goto yy1296;
- goto yy1299;
++yy1351:
+ ++p;
+ if ((yych = *p) <= ';') {
- if (yych <= '@') goto yy1296;
- goto yy1330;
++ if (yych <= '/') goto yy1302;
++ if (yych <= '9') goto yy1336;
++ if (yych <= ':') goto yy1302;
++ goto yy1305;
+ } else {
+ if (yych <= 'F') {
- if (yych <= '`') goto yy1296;
- if (yych <= 'f') goto yy1330;
- goto yy1296;
++ if (yych <= '@') goto yy1302;
++ goto yy1336;
+ } else {
++ if (yych <= '`') goto yy1302;
++ if (yych <= 'f') goto yy1336;
++ goto yy1302;
+ }
+ }
+ }
+
+ }
++re2c: warning: line 39: column 20: escape has no effect: '\"' [-Wuseless-escape]
++re2c: warning: line 41: column 23: escape has no effect: '\"' [-Wuseless-escape]
++re2c: warning: line 41: column 28: escape has no effect: '\"' [-Wuseless-escape]
++re2c: warning: line 41: column 37: escape has no effect: '\"' [-Wuseless-escape]
++re2c: warning: line 79: rule matches empty string [-Wmatch-empty-string]
++re2c: warning: line 94: rule matches empty string [-Wmatch-empty-string]
++re2c: warning: line 105: rule matches empty string [-Wmatch-empty-string]
++re2c: warning: line 119: rule matches empty string [-Wmatch-empty-string]
++re2c: warning: line 133: rule matches empty string [-Wmatch-empty-string]
++re2c: warning: line 149: rule matches empty string [-Wmatch-empty-string]
++re2c: warning: line 158: rule matches empty string [-Wmatch-empty-string]
++re2c: warning: line 170: rule matches empty string [-Wmatch-empty-string]
++re2c: warning: line 182: rule matches empty string [-Wmatch-empty-string]
++re2c: warning: line 197: rule matches empty string [-Wmatch-empty-string]
++re2c: warning: line 209: rule matches empty string [-Wmatch-empty-string]
++re2c: warning: line 221: rule matches empty string [-Wmatch-empty-string]
++re2c: warning: line 234: rule matches empty string [-Wmatch-empty-string]
--- /dev/null
- 3 [label="scanner_re2c_default.D.re:210"]
+/* Generated by re2c */
+
+digraph re2c {
+
+1 -> 2 [label="[0x00]"]
+1 -> 4 [label="[0x01-0x09][0x0B-$][&-)][+-.][0-0xFF]"]
+1 -> 6 [label="[0x0A]"]
+1 -> 8 [label="[%]"]
+1 -> 9 [label="[*]"]
+1 -> 10 [label="[/]"]
+2 -> 3
- 5 [label="scanner_re2c_default.D.re:221"]
++3 [label="scanner_re2c_default.D.re:214"]
+4 -> 5
- 7 [label="scanner_re2c_default.D.re:197"]
++5 [label="scanner_re2c_default.D.re:225"]
+6 -> 7 [label="[0x00-0x08][0x0A-0x1F][!-\"][$-0xFF]"]
+6 -> 89 [label="[0x09][ ]"]
+6 -> 91 [label="[#]"]
- 30 [label="scanner_re2c_default.D.re:83"]
++7 [label="scanner_re2c_default.D.re:201"]
+8 -> 5 [label="[0x00-z][|-0xFF]"]
+8 -> 32 [label="[{]"]
+9 -> 5 [label="[0x00-.][0-0xFF]"]
+9 -> 84 [label="[/]"]
+10 -> 5 [label="[0x00-)][+-0xFF]"]
+10 -> 11 [label="[*]"]
+11 -> 12 [label="[0x00- ][\"-0xFF]"]
+11 -> 13 [label="[!]"]
+12 -> 7 [label="yyaccept=0"]
+12 -> 5 [label="yyaccept=1"]
+12 -> 85 [label="yyaccept=2"]
+13 -> 12 [label="[0x00-f][h][j-l][n-q][s][v-0xFF]"]
+13 -> 16 [label="[g]"]
+13 -> 15 [label="[i]"]
+13 -> 17 [label="[m]"]
+13 -> 19 [label="[r]"]
+13 -> 14 [label="[t]"]
+13 -> 18 [label="[u]"]
+14 -> 12 [label="[0x00-x][z-0xFF]"]
+14 -> 74 [label="[y]"]
+15 -> 12 [label="[0x00-f][h-0xFF]"]
+15 -> 63 [label="[g]"]
+16 -> 12 [label="[0x00-d][f-0xFF]"]
+16 -> 50 [label="[e]"]
+17 -> 12 [label="[0x00-`][b-0xFF]"]
+17 -> 42 [label="[a]"]
+18 -> 12 [label="[0x00-r][t-0xFF]"]
+18 -> 34 [label="[s]"]
+19 -> 12 [label="[0x00-d][f-t][v-0xFF]"]
+19 -> 20 [label="[e]"]
+19 -> 21 [label="[u]"]
+20 -> 12 [label="[0x00-1][3-0xFF]"]
+20 -> 31 [label="[2]"]
+21 -> 12 [label="[0x00-k][m-0xFF]"]
+21 -> 22 [label="[l]"]
+22 -> 12 [label="[0x00-d][f-0xFF]"]
+22 -> 23 [label="[e]"]
+23 -> 12 [label="[0x00-r][t-0xFF]"]
+23 -> 24 [label="[s]"]
+24 -> 12 [label="[0x00-9][;-0xFF]"]
+24 -> 25 [label="[:]"]
+25 -> 12 [label="[0x00-q][s-0xFF]"]
+25 -> 26 [label="[r]"]
+26 -> 12 [label="[0x00-d][f-0xFF]"]
+26 -> 27 [label="[e]"]
+27 -> 12 [label="[0x00-1][3-0xFF]"]
+27 -> 28 [label="[2]"]
+28 -> 12 [label="[0x00-b][d-0xFF]"]
+28 -> 29 [label="[c]"]
+29 -> 30
- 41 [label="scanner_re2c_default.D.re:99"]
++30 [label="scanner_re2c_default.D.re:86"]
+31 -> 12 [label="[0x00-b][d-0xFF]"]
+31 -> 32 [label="[c]"]
+32 -> 33
+33 [label="scanner_re2c_default.D.re:67"]
+34 -> 12 [label="[0x00-d][f-0xFF]"]
+34 -> 35 [label="[e]"]
+35 -> 12 [label="[0x00-9][;-0xFF]"]
+35 -> 36 [label="[:]"]
+36 -> 12 [label="[0x00-q][s-0xFF]"]
+36 -> 37 [label="[r]"]
+37 -> 12 [label="[0x00-d][f-0xFF]"]
+37 -> 38 [label="[e]"]
+38 -> 12 [label="[0x00-1][3-0xFF]"]
+38 -> 39 [label="[2]"]
+39 -> 12 [label="[0x00-b][d-0xFF]"]
+39 -> 40 [label="[c]"]
+40 -> 41
- 49 [label="scanner_re2c_default.D.re:116"]
++41 [label="scanner_re2c_default.D.re:102"]
+42 -> 12 [label="[0x00-w][y-0xFF]"]
+42 -> 43 [label="[x]"]
+43 -> 12 [label="[0x00-9][;-0xFF]"]
+43 -> 44 [label="[:]"]
+44 -> 12 [label="[0x00-q][s-0xFF]"]
+44 -> 45 [label="[r]"]
+45 -> 12 [label="[0x00-d][f-0xFF]"]
+45 -> 46 [label="[e]"]
+46 -> 12 [label="[0x00-1][3-0xFF]"]
+46 -> 47 [label="[2]"]
+47 -> 12 [label="[0x00-b][d-0xFF]"]
+47 -> 48 [label="[c]"]
+48 -> 49
- 62 [label="scanner_re2c_default.D.re:130"]
++49 [label="scanner_re2c_default.D.re:120"]
+50 -> 12 [label="[0x00-s][u-0xFF]"]
+50 -> 51 [label="[t]"]
+51 -> 12 [label="[0x00-r][t-0xFF]"]
+51 -> 52 [label="[s]"]
+52 -> 12 [label="[0x00-s][u-0xFF]"]
+52 -> 53 [label="[t]"]
+53 -> 12 [label="[0x00-`][b-0xFF]"]
+53 -> 54 [label="[a]"]
+54 -> 12 [label="[0x00-s][u-0xFF]"]
+54 -> 55 [label="[t]"]
+55 -> 12 [label="[0x00-d][f-0xFF]"]
+55 -> 56 [label="[e]"]
+56 -> 12 [label="[0x00-9][;-0xFF]"]
+56 -> 57 [label="[:]"]
+57 -> 12 [label="[0x00-q][s-0xFF]"]
+57 -> 58 [label="[r]"]
+58 -> 12 [label="[0x00-d][f-0xFF]"]
+58 -> 59 [label="[e]"]
+59 -> 12 [label="[0x00-1][3-0xFF]"]
+59 -> 60 [label="[2]"]
+60 -> 12 [label="[0x00-b][d-0xFF]"]
+60 -> 61 [label="[c]"]
+61 -> 62
- 73 [label="scanner_re2c_default.D.re:136"]
++62 [label="scanner_re2c_default.D.re:134"]
+63 -> 12 [label="[0x00-m][o-0xFF]"]
+63 -> 64 [label="[n]"]
+64 -> 12 [label="[0x00-n][p-0xFF]"]
+64 -> 65 [label="[o]"]
+65 -> 12 [label="[0x00-q][s-0xFF]"]
+65 -> 66 [label="[r]"]
+66 -> 12 [label="[0x00-d][f-0xFF]"]
+66 -> 67 [label="[e]"]
+67 -> 12 [label="[0x00-9][;-0xFF]"]
+67 -> 68 [label="[:]"]
+68 -> 12 [label="[0x00-q][s-0xFF]"]
+68 -> 69 [label="[r]"]
+69 -> 12 [label="[0x00-d][f-0xFF]"]
+69 -> 70 [label="[e]"]
+70 -> 12 [label="[0x00-1][3-0xFF]"]
+70 -> 71 [label="[2]"]
+71 -> 12 [label="[0x00-b][d-0xFF]"]
+71 -> 72 [label="[c]"]
+72 -> 73
- 83 [label="scanner_re2c_default.D.re:141"]
++73 [label="scanner_re2c_default.D.re:140"]
+74 -> 12 [label="[0x00-o][q-0xFF]"]
+74 -> 75 [label="[p]"]
+75 -> 12 [label="[0x00-d][f-0xFF]"]
+75 -> 76 [label="[e]"]
+76 -> 12 [label="[0x00-r][t-0xFF]"]
+76 -> 77 [label="[s]"]
+77 -> 12 [label="[0x00-9][;-0xFF]"]
+77 -> 78 [label="[:]"]
+78 -> 12 [label="[0x00-q][s-0xFF]"]
+78 -> 79 [label="[r]"]
+79 -> 12 [label="[0x00-d][f-0xFF]"]
+79 -> 80 [label="[e]"]
+80 -> 12 [label="[0x00-1][3-0xFF]"]
+80 -> 81 [label="[2]"]
+81 -> 12 [label="[0x00-b][d-0xFF]"]
+81 -> 82 [label="[c]"]
+82 -> 83
- 85 [label="scanner_re2c_default.D.re:176"]
++83 [label="scanner_re2c_default.D.re:145"]
+84 -> 85 [label="[0x00-0x09][0x0B-0x0C][0x0E-0xFF]"]
+84 -> 87 [label="[0x0A]"]
+84 -> 86 [label="[0x0D]"]
- 88 [label="scanner_re2c_default.D.re:158"]
++85 [label="scanner_re2c_default.D.re:180"]
+86 -> 12 [label="[0x00-0x09][0x0B-0xFF]"]
+86 -> 87 [label="[0x0A]"]
+87 -> 88
- 104 [label="scanner_re2c_default.D.re:193"]
++88 [label="scanner_re2c_default.D.re:162"]
+89 -> 90
+90 -> 12 [label="[0x00-0x08][0x0A-0x1F][!-\"][$-0xFF]"]
+90 -> 89 [label="[0x09][ ]"]
+90 -> 91 [label="[#]"]
+91 -> 92
+92 -> 12 [label="[0x00-0x08][0x0A-0x1F][!-k][m-0xFF]"]
+92 -> 91 [label="[0x09][ ]"]
+92 -> 93 [label="[l]"]
+93 -> 12 [label="[0x00-h][j-0xFF]"]
+93 -> 94 [label="[i]"]
+94 -> 12 [label="[0x00-m][o-0xFF]"]
+94 -> 95 [label="[n]"]
+95 -> 12 [label="[0x00-d][f-0xFF]"]
+95 -> 96 [label="[e]"]
+96 -> 98 [label="[0x00-0][:-0xFF]"]
+96 -> 12 [label="[1-9]"]
+97 -> 98
+98 -> 12 [label="[0x00-0x08][0x0A-0x1F][!-0][:-0xFF]"]
+98 -> 97 [label="[0x09][ ]"]
+98 -> 99 [label="[1-9]"]
+99 -> 100
+100 -> 12 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-/][:-0xFF]"]
+100 -> 101 [label="[0x09][ ]"]
+100 -> 103 [label="[0x0A]"]
+100 -> 105 [label="[0x0D]"]
+100 -> 99 [label="[0-9]"]
+101 -> 102
+102 -> 12 [label="[0x00-0x08][0x0A-0x1F][!][#-0xFF]"]
+102 -> 101 [label="[0x09][ ]"]
+102 -> 106 [label="[\"]"]
+103 -> 104
- 113 [label="scanner_re2c_default.D.re:441"]
++104 [label="scanner_re2c_default.D.re:197"]
+105 -> 12 [label="[0x00-0x09][0x0B-0xFF]"]
+105 -> 103 [label="[0x0A]"]
+106 -> 107
+107 -> 106 [label="[0x00-0x09][0x0B-!][#-[][0x5D-0xFF]"]
+107 -> 12 [label="[0x0A]"]
+107 -> 109 [label="[\"]"]
+107 -> 108 [label="[\\]"]
+108 -> 106 [label="[0x00-0x09][0x0B-0xFF]"]
+108 -> 12 [label="[0x0A]"]
+109 -> 12 [label="[0x00-0x09][0x0B-0x0C][0x0E-0xFF]"]
+109 -> 103 [label="[0x0A]"]
+109 -> 105 [label="[0x0D]"]
+}
+
+digraph re2c {
+
+111 -> 112 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!][#-$][&][-][0-9][@][0x5D-^][`][}-0xFF]"]
+111 -> 114 [label="[0x09][ ]"]
+111 -> 116 [label="[0x0A]"]
+111 -> 118 [label="[0x0D]"]
+111 -> 119 [label="[\"]"]
+111 -> 121 [label="[%]"]
+111 -> 122 [label="[']"]
+111 -> 124 [label="[(-)][,][;][=->][\\][|]"]
+111 -> 126 [label="[*]"]
+111 -> 128 [label="[+][?]"]
+111 -> 130 [label="[.]"]
+111 -> 132 [label="[/]"]
+111 -> 133 [label="[:]"]
+111 -> 134 [label="[<]"]
+111 -> 135 [label="[A-Z][_][a-q][s-z]"]
+111 -> 136 [label="[[]"]
+111 -> 138 [label="[r]"]
+111 -> 139 [label="[{]"]
+112 -> 113
- 115 [label="scanner_re2c_default.D.re:425"]
++113 [label="scanner_re2c_default.D.re:445"]
+114 -> 248
- 117 [label="scanner_re2c_default.D.re:434"]
++115 [label="scanner_re2c_default.D.re:429"]
+116 -> 117 [label="[0x00-0x08][0x0A-0x1F][!-\"][$-0xFF]"]
+116 -> 226 [label="[0x09][ ]"]
+116 -> 228 [label="[#]"]
- 120 [label="scanner_re2c_default.D.re:301"]
++117 [label="scanner_re2c_default.D.re:438"]
+118 -> 113 [label="[0x00-0x09][0x0B-0xFF]"]
+118 -> 225 [label="[0x0A]"]
+119 -> 221 [label="[0x00-0x09][0x0B-0xFF]"]
+119 -> 120 [label="[0x0A]"]
- 123 [label="scanner_re2c_default.D.re:304"]
++120 [label="scanner_re2c_default.D.re:305"]
+121 -> 113 [label="[0x00-|][~-0xFF]"]
+121 -> 213 [label="[}]"]
+122 -> 216 [label="[0x00-0x09][0x0B-0xFF]"]
+122 -> 123 [label="[0x0A]"]
- 125 [label="scanner_re2c_default.D.re:330"]
++123 [label="scanner_re2c_default.D.re:308"]
+124 -> 125
- 127 [label="scanner_re2c_default.D.re:334"]
++125 [label="scanner_re2c_default.D.re:334"]
+126 -> 127 [label="[0x00-.][0-0xFF]"]
+126 -> 213 [label="[/]"]
- 129 [label="scanner_re2c_default.D.re:338"]
++127 [label="scanner_re2c_default.D.re:338"]
+128 -> 129
- 131 [label="scanner_re2c_default.D.re:419"]
++129 [label="scanner_re2c_default.D.re:342"]
+130 -> 131
- 137 [label="scanner_re2c_default.D.re:320"]
++131 [label="scanner_re2c_default.D.re:423"]
+132 -> 125 [label="[0x00-)][+-.][0-0xFF]"]
+132 -> 209 [label="[*]"]
+132 -> 211 [label="[/]"]
+133 -> 113 [label="[0x00-<][>-0xFF]"]
+133 -> 205 [label="[=]"]
+134 -> 125 [label="[0x00- ][\"-=][?-0xFF]"]
+134 -> 196 [label="[!]"]
+134 -> 198 [label="[>]"]
+135 -> 164
+136 -> 187 [label="[0x00-0x09][0x0B-0x5D][_-0xFF]"]
+136 -> 137 [label="[0x0A]"]
+136 -> 188 [label="[^]"]
- 140 [label="scanner_re2c_default.D.re:245"]
++137 [label="scanner_re2c_default.D.re:324"]
+138 -> 164 [label="[0x00-d][f-0xFF]"]
+138 -> 166 [label="[e]"]
+139 -> 140 [label="[0x00-+][--/][:-@][[-^][`][{-0xFF]"]
+139 -> 147 [label="[,]"]
+139 -> 144 [label="[0]"]
+139 -> 145 [label="[1-9]"]
+139 -> 141 [label="[A-Z][_][a-z]"]
- 148 [label="scanner_re2c_default.D.re:366"]
++140 [label="scanner_re2c_default.D.re:249"]
+141 -> 142
+142 -> 143 [label="[0x00-/][:-@][[-^][`][{-|][~-0xFF]"]
+142 -> 141 [label="[0-9][A-Z][_][a-z]"]
+142 -> 161 [label="[}]"]
+143 -> 117 [label="yyaccept=0"]
+143 -> 120 [label="yyaccept=1"]
+143 -> 123 [label="yyaccept=2"]
+143 -> 125 [label="yyaccept=3"]
+143 -> 137 [label="yyaccept=4"]
+143 -> 140 [label="yyaccept=5"]
+143 -> 148 [label="yyaccept=6"]
+143 -> 181 [label="yyaccept=7"]
+144 -> 146 [label="[0x00-+][--0xFF]"]
+144 -> 158 [label="[,]"]
+145 -> 146
+146 -> 143 [label="[0x00-+][--/][:-|][~-0xFF]"]
+146 -> 151 [label="[,]"]
+146 -> 145 [label="[0-9]"]
+146 -> 149 [label="[}]"]
+147 -> 148
- 150 [label="scanner_re2c_default.D.re:348"]
++148 [label="scanner_re2c_default.D.re:370"]
+149 -> 150
- 153 [label="scanner_re2c_default.D.re:360"]
++150 [label="scanner_re2c_default.D.re:352"]
+151 -> 148 [label="[0x00-/][:-|][~-0xFF]"]
+151 -> 154 [label="[0-9]"]
+151 -> 152 [label="[}]"]
+152 -> 153
- 157 [label="scanner_re2c_default.D.re:354"]
++153 [label="scanner_re2c_default.D.re:364"]
+154 -> 155
+155 -> 143 [label="[0x00-/][:-|][~-0xFF]"]
+155 -> 154 [label="[0-9]"]
+155 -> 156 [label="[}]"]
+156 -> 157
- 160 [label="scanner_re2c_default.D.re:343"]
++157 [label="scanner_re2c_default.D.re:358"]
+158 -> 148 [label="[0x00-/][:-|][~-0xFF]"]
+158 -> 154 [label="[0-9]"]
+158 -> 159 [label="[}]"]
+159 -> 160
- 162 [label="scanner_re2c_default.D.re:370"]
++160 [label="scanner_re2c_default.D.re:347"]
+161 -> 162
- 165 [label="scanner_re2c_default.D.re:399"]
++162 [label="scanner_re2c_default.D.re:374"]
+163 -> 164
+164 -> 167 [label="[0x00-0x08][0x0A-0x1F][!-+][--/][:-<][?-@][[-^][`][{-0xFF]"]
+164 -> 168 [label="[0x09][ ]"]
+164 -> 169 [label="[,][=->]"]
+164 -> 163 [label="[0-9][A-Z][_][a-z]"]
- 170 [label="scanner_re2c_default.D.re:393"]
++165 [label="scanner_re2c_default.D.re:403"]
+166 -> 164 [label="[0x00-1][3-0xFF]"]
+166 -> 176 [label="[2]"]
+167 -> 165
+168 -> 174
+169 -> 170
- 172 [label="scanner_re2c_default.D.re:387"]
++170 [label="scanner_re2c_default.D.re:397"]
+171 -> 172
- 181 [label="scanner_re2c_default.D.re:379"]
++172 [label="scanner_re2c_default.D.re:391"]
+173 -> 174
+174 -> 171 [label="[0x00-0x08][0x0A-0x1F][!-+][--<][?-0xFF]"]
+174 -> 173 [label="[0x09][ ]"]
+174 -> 175 [label="[,][=->]"]
+175 -> 170
+176 -> 164 [label="[0x00-b][d-0xFF]"]
+176 -> 177 [label="[c]"]
+177 -> 164 [label="[0x00-9][;-0xFF]"]
+177 -> 178 [label="[:]"]
+178 -> 165 [label="[0x00-@][[-^][`][{-0xFF]"]
+178 -> 179 [label="[A-Z][_][a-z]"]
+179 -> 180
+180 -> 181 [label="[0x00-/][;-?][[-^][`][{-0xFF]"]
+180 -> 179 [label="[0-9][A-Z][_][a-z]"]
+180 -> 183 [label="[:]"]
+180 -> 182 [label="[@]"]
- 192 [label="scanner_re2c_default.D.re:314"]
++181 [label="scanner_re2c_default.D.re:383"]
+182 -> 143 [label="[0x00-@][[-^][`][{-0xFF]"]
+182 -> 184 [label="[A-Z][_][a-z]"]
+183 -> 143 [label="[0x00-@][[-^][`][{-0xFF]"]
+183 -> 179 [label="[A-Z][_][a-z]"]
+184 -> 185
+185 -> 181 [label="[0x00-/][:-@][[-^][`][{-0xFF]"]
+185 -> 184 [label="[0-9][A-Z][_][a-z]"]
+186 -> 187
+187 -> 186 [label="[0x00-0x09][0x0B-[][^-0xFF]"]
+187 -> 143 [label="[0x0A]"]
+187 -> 190 [label="[\\]"]
+187 -> 191 [label="[0x5D]"]
+188 -> 189
+189 -> 188 [label="[0x00-0x09][0x0B-[][^-0xFF]"]
+189 -> 143 [label="[0x0A]"]
+189 -> 193 [label="[\\]"]
+189 -> 194 [label="[0x5D]"]
+190 -> 186 [label="[0x00-0x09][0x0B-0xFF]"]
+190 -> 143 [label="[0x0A]"]
+191 -> 192
- 195 [label="scanner_re2c_default.D.re:308"]
++192 [label="scanner_re2c_default.D.re:318"]
+193 -> 188 [label="[0x00-0x09][0x0B-0xFF]"]
+193 -> 143 [label="[0x0A]"]
+194 -> 195
- 197 [label="scanner_re2c_default.D.re:327"]
++195 [label="scanner_re2c_default.D.re:312"]
+196 -> 197
- 202 [label="scanner_re2c_default.D.re:324"]
++197 [label="scanner_re2c_default.D.re:331"]
+198 -> 200
+199 -> 200
+200 -> 143 [label="[0x00-0x08][0x0A-0x1F][!-9][;-<][>-z][|-0xFF]"]
+200 -> 199 [label="[0x09][ ]"]
+200 -> 204 [label="[:]"]
+200 -> 203 [label="[=]"]
+200 -> 201 [label="[{]"]
+201 -> 202
- 206 [label="scanner_re2c_default.D.re:254"]
++202 [label="scanner_re2c_default.D.re:328"]
+203 -> 143 [label="[0x00-=][?-0xFF]"]
+203 -> 201 [label="[>]"]
+204 -> 143 [label="[0x00-<][>-0xFF]"]
+204 -> 201 [label="[=]"]
+205 -> 206 [label="[0x00-=][?-0xFF]"]
+205 -> 207 [label="[>]"]
- 208 [label="scanner_re2c_default.D.re:250"]
++206 [label="scanner_re2c_default.D.re:258"]
+207 -> 208
- 210 [label="scanner_re2c_default.D.re:264"]
++208 [label="scanner_re2c_default.D.re:254"]
+209 -> 210
- 212 [label="scanner_re2c_default.D.re:261"]
++210 [label="scanner_re2c_default.D.re:268"]
+211 -> 212
- 214 [label="scanner_re2c_default.D.re:270"]
++212 [label="scanner_re2c_default.D.re:265"]
+213 -> 214
- 219 [label="scanner_re2c_default.D.re:288"]
++214 [label="scanner_re2c_default.D.re:274"]
+215 -> 216
+216 -> 215 [label="[0x00-0x09][0x0B-&][(-[][0x5D-0xFF]"]
+216 -> 143 [label="[0x0A]"]
+216 -> 218 [label="[']"]
+216 -> 217 [label="[\\]"]
+217 -> 215 [label="[0x00-0x09][0x0B-0xFF]"]
+217 -> 143 [label="[0x0A]"]
+218 -> 219
- 224 [label="scanner_re2c_default.D.re:275"]
++219 [label="scanner_re2c_default.D.re:292"]
+220 -> 221
+221 -> 220 [label="[0x00-0x09][0x0B-!][#-[][0x5D-0xFF]"]
+221 -> 143 [label="[0x0A]"]
+221 -> 223 [label="[\"]"]
+221 -> 222 [label="[\\]"]
+222 -> 220 [label="[0x00-0x09][0x0B-0xFF]"]
+222 -> 143 [label="[0x0A]"]
+223 -> 224
- 241 [label="scanner_re2c_default.D.re:429"]
++224 [label="scanner_re2c_default.D.re:279"]
+225 -> 117 [label="[0x00-0x08][0x0A-0x1F][!-\"][$-0xFF]"]
+225 -> 226 [label="[0x09][ ]"]
+225 -> 228 [label="[#]"]
+226 -> 227
+227 -> 143 [label="[0x00-0x08][0x0A-0x1F][!-\"][$-0xFF]"]
+227 -> 226 [label="[0x09][ ]"]
+227 -> 228 [label="[#]"]
+228 -> 229
+229 -> 143 [label="[0x00-0x08][0x0A-0x1F][!-k][m-0xFF]"]
+229 -> 228 [label="[0x09][ ]"]
+229 -> 230 [label="[l]"]
+230 -> 143 [label="[0x00-h][j-0xFF]"]
+230 -> 231 [label="[i]"]
+231 -> 143 [label="[0x00-m][o-0xFF]"]
+231 -> 232 [label="[n]"]
+232 -> 143 [label="[0x00-d][f-0xFF]"]
+232 -> 233 [label="[e]"]
+233 -> 235 [label="[0x00-0][:-0xFF]"]
+233 -> 143 [label="[1-9]"]
+234 -> 235
+235 -> 143 [label="[0x00-0x08][0x0A-0x1F][!-0][:-0xFF]"]
+235 -> 234 [label="[0x09][ ]"]
+235 -> 236 [label="[1-9]"]
+236 -> 237
+237 -> 143 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-/][:-0xFF]"]
+237 -> 238 [label="[0x09][ ]"]
+237 -> 240 [label="[0x0A]"]
+237 -> 242 [label="[0x0D]"]
+237 -> 236 [label="[0-9]"]
+238 -> 239
+239 -> 143 [label="[0x00-0x08][0x0A-0x1F][!][#-0xFF]"]
+239 -> 238 [label="[0x09][ ]"]
+239 -> 243 [label="[\"]"]
+240 -> 241
- 252 [label="scanner_re2c_default.D.re:513"]
++241 [label="scanner_re2c_default.D.re:433"]
+242 -> 143 [label="[0x00-0x09][0x0B-0xFF]"]
+242 -> 240 [label="[0x0A]"]
+243 -> 244
+244 -> 243 [label="[0x00-0x09][0x0B-!][#-[][0x5D-0xFF]"]
+244 -> 143 [label="[0x0A]"]
+244 -> 246 [label="[\"]"]
+244 -> 245 [label="[\\]"]
+245 -> 243 [label="[0x00-0x09][0x0B-0xFF]"]
+245 -> 143 [label="[0x0A]"]
+246 -> 143 [label="[0x00-0x09][0x0B-0x0C][0x0E-0xFF]"]
+246 -> 240 [label="[0x0A]"]
+246 -> 242 [label="[0x0D]"]
+247 -> 248
+248 -> 115 [label="[0x00-0x08][0x0A-0x1F][!-0xFF]"]
+248 -> 247 [label="[0x09][ ]"]
+}
+
+digraph re2c {
+
+250 -> 251 [label="[0x00]"]
+250 -> 253 [label="[0x01-0x09][0x0B-!][#-&][(-z][|][~-0xFF]"]
+250 -> 255 [label="[0x0A]"]
+250 -> 257 [label="[\"]"]
+250 -> 258 [label="[']"]
+250 -> 259 [label="[{]"]
+250 -> 261 [label="[}]"]
+251 -> 252
- 254 [label="scanner_re2c_default.D.re:527"]
++252 [label="scanner_re2c_default.D.re:517"]
+253 -> 254
- 256 [label="scanner_re2c_default.D.re:493"]
++254 [label="scanner_re2c_default.D.re:531"]
+255 -> 256 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-\"][$-0xFF]"]
+255 -> 272 [label="[0x09][ ]"]
+255 -> 274 [label="[0x0A][0x0D]"]
+255 -> 275 [label="[#]"]
- 260 [label="scanner_re2c_default.D.re:465"]
++256 [label="scanner_re2c_default.D.re:497"]
+257 -> 270 [label="[0x00-0x09][0x0B-0xFF]"]
+257 -> 254 [label="[0x0A]"]
+258 -> 264 [label="[0x00-0x09][0x0B-0xFF]"]
+258 -> 254 [label="[0x0A]"]
+259 -> 260
- 262 [label="scanner_re2c_default.D.re:452"]
++260 [label="scanner_re2c_default.D.re:469"]
+261 -> 262
- 268 [label="scanner_re2c_default.D.re:524"]
++262 [label="scanner_re2c_default.D.re:456"]
+263 -> 264
+264 -> 263 [label="[0x00-0x09][0x0B-&][(-[][0x5D-0xFF]"]
+264 -> 265 [label="[0x0A]"]
+264 -> 267 [label="[']"]
+264 -> 266 [label="[\\]"]
+265 -> 256 [label="yyaccept=0"]
+265 -> 254 [label="yyaccept=1"]
+265 -> 273 [label="yyaccept=2"]
+266 -> 263 [label="[0x00-0x09][0x0B-0xFF]"]
+266 -> 265 [label="[0x0A]"]
+267 -> 268
- 273 [label="scanner_re2c_default.D.re:480"]
++268 [label="scanner_re2c_default.D.re:528"]
+269 -> 270
+270 -> 269 [label="[0x00-0x09][0x0B-!][#-[][0x5D-0xFF]"]
+270 -> 265 [label="[0x0A]"]
+270 -> 267 [label="[\"]"]
+270 -> 271 [label="[\\]"]
+271 -> 269 [label="[0x00-0x09][0x0B-0xFF]"]
+271 -> 265 [label="[0x0A]"]
+272 -> 273 [label="[0x00-0x08][0x0A-0x1F][!-\"][$-0xFF]"]
+272 -> 294 [label="[0x09][ ]"]
+272 -> 275 [label="[#]"]
- 288 [label="scanner_re2c_default.D.re:476"]
++273 [label="scanner_re2c_default.D.re:484"]
+274 -> 273
+275 -> 276
+276 -> 265 [label="[0x00-0x08][0x0A-0x1F][!-k][m-0xFF]"]
+276 -> 275 [label="[0x09][ ]"]
+276 -> 277 [label="[l]"]
+277 -> 265 [label="[0x00-h][j-0xFF]"]
+277 -> 278 [label="[i]"]
+278 -> 265 [label="[0x00-m][o-0xFF]"]
+278 -> 279 [label="[n]"]
+279 -> 265 [label="[0x00-d][f-0xFF]"]
+279 -> 280 [label="[e]"]
+280 -> 282 [label="[0x00-0][:-0xFF]"]
+280 -> 265 [label="[1-9]"]
+281 -> 282
+282 -> 265 [label="[0x00-0x08][0x0A-0x1F][!-0][:-0xFF]"]
+282 -> 281 [label="[0x09][ ]"]
+282 -> 283 [label="[1-9]"]
+283 -> 284
+284 -> 265 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-/][:-0xFF]"]
+284 -> 285 [label="[0x09][ ]"]
+284 -> 287 [label="[0x0A]"]
+284 -> 289 [label="[0x0D]"]
+284 -> 283 [label="[0-9]"]
+285 -> 286
+286 -> 265 [label="[0x00-0x08][0x0A-0x1F][!][#-0xFF]"]
+286 -> 285 [label="[0x09][ ]"]
+286 -> 290 [label="[\"]"]
+287 -> 288
- 299 [label="scanner_re2c_default.D.re:562"]
++288 [label="scanner_re2c_default.D.re:480"]
+289 -> 265 [label="[0x00-0x09][0x0B-0xFF]"]
+289 -> 287 [label="[0x0A]"]
+290 -> 291
+291 -> 290 [label="[0x00-0x09][0x0B-!][#-[][0x5D-0xFF]"]
+291 -> 265 [label="[0x0A]"]
+291 -> 293 [label="[\"]"]
+291 -> 292 [label="[\\]"]
+292 -> 290 [label="[0x00-0x09][0x0B-0xFF]"]
+292 -> 265 [label="[0x0A]"]
+293 -> 265 [label="[0x00-0x09][0x0B-0x0C][0x0E-0xFF]"]
+293 -> 287 [label="[0x0A]"]
+293 -> 289 [label="[0x0D]"]
+294 -> 295
+295 -> 265 [label="[0x00-0x08][0x0A-0x1F][!-\"][$-0xFF]"]
+295 -> 294 [label="[0x09][ ]"]
+295 -> 275 [label="[#]"]
+}
+
+digraph re2c {
+
+297 -> 298 [label="[0x00-0x09][0x0B-)][+-.][0-0xFF]"]
+297 -> 300 [label="[0x0A]"]
+297 -> 302 [label="[*]"]
+297 -> 303 [label="[/]"]
+298 -> 299
- 301 [label="scanner_re2c_default.D.re:553"]
++299 [label="scanner_re2c_default.D.re:566"]
+300 -> 301 [label="[0x00-0x08][0x0A-0x1F][!-\"][$-0xFF]"]
+300 -> 308 [label="[0x09][ ]"]
+300 -> 311 [label="[#]"]
- 305 [label="scanner_re2c_default.D.re:544"]
++301 [label="scanner_re2c_default.D.re:557"]
+302 -> 299 [label="[0x00-.][0-0xFF]"]
+302 -> 306 [label="[/]"]
+303 -> 299 [label="[0x00-)][+-0xFF]"]
+303 -> 304 [label="[*]"]
+304 -> 305
- 307 [label="scanner_re2c_default.D.re:534"]
++305 [label="scanner_re2c_default.D.re:548"]
+306 -> 307
- 324 [label="scanner_re2c_default.D.re:549"]
++307 [label="scanner_re2c_default.D.re:538"]
+308 -> 309
+309 -> 310 [label="[0x00-0x08][0x0A-0x1F][!-\"][$-0xFF]"]
+309 -> 308 [label="[0x09][ ]"]
+309 -> 311 [label="[#]"]
+310 -> 301
+311 -> 312
+312 -> 310 [label="[0x00-0x08][0x0A-0x1F][!-k][m-0xFF]"]
+312 -> 311 [label="[0x09][ ]"]
+312 -> 313 [label="[l]"]
+313 -> 310 [label="[0x00-h][j-0xFF]"]
+313 -> 314 [label="[i]"]
+314 -> 310 [label="[0x00-m][o-0xFF]"]
+314 -> 315 [label="[n]"]
+315 -> 310 [label="[0x00-d][f-0xFF]"]
+315 -> 316 [label="[e]"]
+316 -> 318 [label="[0x00-0][:-0xFF]"]
+316 -> 310 [label="[1-9]"]
+317 -> 318
+318 -> 310 [label="[0x00-0x08][0x0A-0x1F][!-0][:-0xFF]"]
+318 -> 317 [label="[0x09][ ]"]
+318 -> 319 [label="[1-9]"]
+319 -> 320
+320 -> 310 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-/][:-0xFF]"]
+320 -> 321 [label="[0x09][ ]"]
+320 -> 323 [label="[0x0A]"]
+320 -> 325 [label="[0x0D]"]
+320 -> 319 [label="[0-9]"]
+321 -> 322
+322 -> 310 [label="[0x00-0x08][0x0A-0x1F][!][#-0xFF]"]
+322 -> 321 [label="[0x09][ ]"]
+322 -> 326 [label="[\"]"]
+323 -> 324
- 333 [label="scanner_re2c_default.D.re:580"]
++324 [label="scanner_re2c_default.D.re:553"]
+325 -> 310 [label="[0x00-0x09][0x0B-0xFF]"]
+325 -> 323 [label="[0x0A]"]
+326 -> 327
+327 -> 326 [label="[0x00-0x09][0x0B-!][#-[][0x5D-0xFF]"]
+327 -> 310 [label="[0x0A]"]
+327 -> 329 [label="[\"]"]
+327 -> 328 [label="[\\]"]
+328 -> 326 [label="[0x00-0x09][0x0B-0xFF]"]
+328 -> 310 [label="[0x0A]"]
+329 -> 310 [label="[0x00-0x09][0x0B-0x0C][0x0E-0xFF]"]
+329 -> 323 [label="[0x0A]"]
+329 -> 325 [label="[0x0D]"]
+}
+
+digraph re2c {
+
+331 -> 332 [label="[0x00-0x09][0x0B-0xFF]"]
+331 -> 334 [label="[0x0A]"]
+332 -> 333
- 335 [label="scanner_re2c_default.D.re:573"]
++333 [label="scanner_re2c_default.D.re:584"]
+334 -> 335
- 339 [label="scanner_re2c_default.D.re:597"]
++335 [label="scanner_re2c_default.D.re:577"]
+}
+
+digraph re2c {
+
+337 -> 338 [label="[0x00-0x08][0x0A-0x1F][!-<][>-0xFF]"]
+337 -> 340 [label="[0x09][ ]"]
+337 -> 342 [label="[=]"]
+338 -> 339
- 341 [label="scanner_re2c_default.D.re:589"]
++339 [label="scanner_re2c_default.D.re:601"]
+340 -> 347
- 343 [label="scanner_re2c_default.D.re:592"]
++341 [label="scanner_re2c_default.D.re:593"]
+342 -> 345
- 350 [label="scanner_re2c_default.D.re:610"]
++343 [label="scanner_re2c_default.D.re:596"]
+344 -> 345
+345 -> 343 [label="[0x00-0x08][0x0A-0x1F][!-0xFF]"]
+345 -> 344 [label="[0x09][ ]"]
+346 -> 347
+347 -> 341 [label="[0x00-0x08][0x0A-0x1F][!-0xFF]"]
+347 -> 346 [label="[0x09][ ]"]
+}
+
+digraph re2c {
+
+349 -> 356 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!][#-&][(-,][.-/][:][<-0xFF]"]
+349 -> 350 [label="[0x09-0x0A][0x0D][ ][;]"]
+349 -> 358 [label="[\"]"]
+349 -> 360 [label="[']"]
+349 -> 353 [label="[-]"]
+349 -> 351 [label="[0]"]
+349 -> 354 [label="[1-9]"]
- 352 [label="scanner_re2c_default.D.re:604"]
++350 [label="scanner_re2c_default.D.re:614"]
+351 -> 356 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-:][<-0xFF]"]
+351 -> 352 [label="[0x09-0x0A][0x0D][ ][;]"]
- 375 [label="scanner_re2c_default.D.re:646"]
++352 [label="scanner_re2c_default.D.re:608"]
+353 -> 357 [label="[0x00-0][:-0xFF]"]
+353 -> 354 [label="[1-9]"]
+354 -> 355
+355 -> 356 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-/][:][<-0xFF]"]
+355 -> 352 [label="[0x09-0x0A][0x0D][ ][;]"]
+355 -> 354 [label="[0-9]"]
+356 -> 357
+357 -> 356 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-:][<-0xFF]"]
+357 -> 350 [label="[0x09-0x0A][0x0D][ ][;]"]
+358 -> 359
+359 -> 358 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!][#-:][<-[][0x5D-0xFF]"]
+359 -> 368 [label="[0x09][0x0D][ ][;]"]
+359 -> 350 [label="[0x0A]"]
+359 -> 356 [label="[\"]"]
+359 -> 370 [label="[\\]"]
+360 -> 361
+361 -> 360 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-&][(-:][<-[][0x5D-0xFF]"]
+361 -> 362 [label="[0x09][0x0D][ ][;]"]
+361 -> 350 [label="[0x0A]"]
+361 -> 356 [label="[']"]
+361 -> 365 [label="[\\]"]
+362 -> 363
+363 -> 362 [label="[0x00-0x09][0x0B-&][(-[][0x5D-0xFF]"]
+363 -> 364 [label="[0x0A]"]
+363 -> 366 [label="[']"]
+363 -> 367 [label="[\\]"]
+364 -> 350
+365 -> 360 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-:][<-0xFF]"]
+365 -> 362 [label="[0x09][0x0D][ ][;]"]
+365 -> 350 [label="[0x0A]"]
+366 -> 350
+367 -> 362 [label="[0x00-0x09][0x0B-0xFF]"]
+367 -> 364 [label="[0x0A]"]
+368 -> 369
+369 -> 368 [label="[0x00-0x09][0x0B-!][#-[][0x5D-0xFF]"]
+369 -> 364 [label="[0x0A]"]
+369 -> 366 [label="[\"]"]
+369 -> 371 [label="[\\]"]
+370 -> 358 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-:][<-0xFF]"]
+370 -> 368 [label="[0x09][0x0D][ ][;]"]
+370 -> 350 [label="[0x0A]"]
+371 -> 368 [label="[0x00-0x09][0x0B-0xFF]"]
+371 -> 364 [label="[0x0A]"]
+}
+
+digraph re2c {
+
+373 -> 374 [label="[0x00-0x09][0x0B-!][#-0][:-0xFF]"]
+373 -> 376 [label="[0x0A]"]
+373 -> 378 [label="[\"]"]
+373 -> 379 [label="[1-9]"]
+374 -> 375
- 377 [label="scanner_re2c_default.D.re:634"]
++375 [label="scanner_re2c_default.D.re:650"]
+376 -> 377
- 380 [label="scanner_re2c_default.D.re:624"]
++377 [label="scanner_re2c_default.D.re:638"]
+378 -> 384 [label="[0x00-0x09][0x0B-0xFF]"]
+378 -> 375 [label="[0x0A]"]
+379 -> 382
- 388 [label="scanner_re2c_default.D.re:629"]
++380 [label="scanner_re2c_default.D.re:628"]
+381 -> 382
+382 -> 380 [label="[0x00-/][:-0xFF]"]
+382 -> 381 [label="[0-9]"]
+383 -> 384
+384 -> 383 [label="[0x00-0x09][0x0B-!][#-[][0x5D-0xFF]"]
+384 -> 385 [label="[0x0A]"]
+384 -> 387 [label="[\"]"]
+384 -> 386 [label="[\\]"]
+385 -> 375
+386 -> 383 [label="[0x00-0x09][0x0B-0xFF]"]
+386 -> 385 [label="[0x0A]"]
+387 -> 388
- re2c: warning: line 610: rule matches empty string [-Wmatch-empty-string]
++388 [label="scanner_re2c_default.D.re:633"]
+}
++re2c: warning: line 614: rule matches empty string [-Wmatch-empty-string]