cmark 0.5.6.3 → 0.6.1
raw patch · 37 files changed
Files
- CMark.hsc +6/−0
- bench/bench-cmark.hs +0/−36
- bench/full-sample.md +0/−726
- bench/sample.md +0/−284
- cbits/blocks.c +170/−62
- cbits/buffer.c +0/−1
- cbits/buffer.h +3/−1
- cbits/case_fold_switch.inc +387/−0
- cbits/chunk.h +10/−61
- cbits/cmark.c +7/−2
- cbits/cmark.h +20/−10
- cbits/cmark_ctype.c +1/−1
- cbits/cmark_export.h +2/−2
- cbits/cmark_version.h +2/−2
- cbits/commonmark.c +74/−81
- cbits/houdini_href_e.c +10/−10
- cbits/houdini_html_u.c +5/−1
- cbits/html.c +40/−40
- cbits/inlines.c +389/−172
- cbits/inlines.h +6/−3
- cbits/iterator.c +7/−5
- cbits/iterator.h +0/−1
- cbits/latex.c +16/−16
- cbits/man.c +29/−0
- cbits/node.c +57/−43
- cbits/node.h +15/−15
- cbits/parser.h +4/−1
- cbits/references.c +75/−50
- cbits/references.h +9/−7
- cbits/render.c +35/−27
- cbits/render.h +7/−2
- cbits/scanners.c +13632/−17791
- cbits/scanners.h +8/−2
- cbits/xml.c +79/−20
- changelog +12/−0
- cmark.cabal +5/−21
- test/test-cmark.hs +2/−2
CMark.hsc view
@@ -17,6 +17,7 @@ , optHardBreaks , optSmart , optSafe+ , optUnsafe , Node(..) , NodeType(..) , PosInfo(..)@@ -208,6 +209,11 @@ -- and images. optSafe :: CMarkOption optSafe = CMarkOption #const CMARK_OPT_SAFE++-- | Allow rendering of raw HTML and potentially dangerous URLs in links+-- and images.+optUnsafe :: CMarkOption+optUnsafe = CMarkOption #const CMARK_OPT_UNSAFE ptrToNodeType :: NodePtr -> IO NodeType ptrToNodeType ptr = do
− bench/bench-cmark.hs
@@ -1,36 +0,0 @@-import qualified Cheapskate as Cheapskate-import qualified Cheapskate.Html as CheapskateHtml-import qualified CMark as CMark-import qualified Text.Sundown.Html.Text as Sundown-import qualified Text.Discount as Discount-import qualified Text.Blaze.Html.Renderer.Text as Blaze-import qualified Text.Markdown as Markdown-import Data.Text (Text)-import Data.Text as T-import Data.Text.Lazy (fromChunks, toChunks)-import Data.Text.IO as T-import Criterion.Main-import Criterion.Monad-import System.Environment (getArgs)--main :: IO ()-main = do- sample <- T.readFile "bench/sample.md"- defaultMain [- mkBench "cheapskate" (T.concat . toChunks . Blaze.renderHtml . CheapskateHtml.renderDoc . Cheapskate.markdown Cheapskate.def) sample- , mkBench "discount" (Discount.parseMarkdownUtf8 []) sample- , mkBench "markdown" (T.concat . toChunks . Blaze.renderHtml . Markdown.markdown Markdown.def . fromChunks . (:[])) sample- , mkBench "cmark" (CMark.commonmarkToHtml []) sample- ]---- Note: when full-sample.md rather than sample.md is used markdown--- hangs (> 1 minute).---- even with sample.md, sundown gives this error--- , mkBench "sundown" (Sundown.renderHtml Sundown.noExtensions Sundown.noHtmlModes False Nothing) sample--- bench-cmark(50437,0x7fff7bfbe310) malloc: *** error for object 0x7ffde3d00928: incorrect checksum for freed object - object was probably modified after being freed.--- *** set a breakpoint in malloc_error_break to debug--mkBench :: String -> (Text -> Text) -> Text -> Benchmark-mkBench name converter inp =- bench name $ nf converter inp
− bench/full-sample.md
@@ -1,726 +0,0 @@-CommonMark-==========--CommonMark is a rationalized version of Markdown syntax,-with a [spec][the spec] and BSD3-licensed reference-implementations in C and JavaScript.--[Try it now!](http://spec.commonmark.org/dingus.html)--The implementations----------------------The C implementation provides both a shared library (`libcmark`) and a-standalone program `cmark` that converts CommonMark to HTML. It is-written in standard C99 and has no library dependencies. The parser is-very fast (see [benchmarks](benchmarks.md)).--It is easy to use `libcmark` in python, lua, ruby, and other dynamic-languages: see the `wrappers/` subdirectory for some simple examples.--The JavaScript implementation provides both an NPM package and a-single JavaScript file, with no dependencies, that can be linked into-an HTML page. For further information, see the-[README in the js directory](js/README.md).--**A note on security:**-Neither implementation attempts to sanitize link attributes or-raw HTML. If you use these libraries in applications that accept-untrusted user input, you must run the output through an HTML-sanitizer to protect against-[XSS attacks](http://en.wikipedia.org/wiki/Cross-site_scripting).--Installing (C)-----------------Building the C program (`cmark`) and shared library (`libcmark`)-requires [cmake]. If you modify `scanners.re`, then you will also-need [re2c], which is used to generate `scanners.c` from-`scanners.re`. We have included a pre-generated `scanners.c` in-the repository to reduce build dependencies.--If you have GNU make, you can simply `make`, `make test`, and `make-install`. This calls [cmake] to create a `Makefile` in the `build`-directory, then uses that `Makefile` to create the executable and-library. The binaries can be found in `build/src`.--For a more portable method, you can use [cmake] manually. [cmake] knows-how to create build environments for many build systems. For example,-on FreeBSD:-- mkdir build- cd build- cmake .. # optionally: -DCMAKE_INSTALL_PREFIX=path- make # executable will be created as build/src/cmark- make test- make install--Or, to create Xcode project files on OSX:-- mkdir build- cd build- cmake -G Xcode ..- make- make test- make install--The GNU Makefile also provides a few other targets for developers.-To run a benchmark:-- make bench--To run a "fuzz test" against ten long randomly generated inputs:-- make fuzztest--To run a test for memory leaks using `valgrind`:-- make leakcheck--To reformat source code using `astyle`:-- make astyle--To make a release tarball and zip archive:-- make archive---Compiling for Windows------------------------To compile with MSVC and NMAKE:-- nmake--You can cross-compile a Windows binary and dll on linux if you have the-`mingw32` compiler:-- make mingw--The binaries will be in `build-mingw/windows/bin`.--Installing (JavaScript)--------------------------The JavaScript library can be installed through `npm`:-- npm install commonmark--This includes a command-line converter called `commonmark`.--If you want to use it in a client application, you can fetch-a pre-built copy of `commonmark.js` from-<http://spec.commonmark.org/js/commonmark.js>.--For further information, see the-[README in the js directory](js/README.md).--The spec-----------[The spec] contains over 500 embedded examples which serve as conformance-tests. To run the tests using an executable `$PROG`:-- python3 test/spec_tests.py --program $PROG--If you want to extract the raw test data from the spec without-actually running the tests, you can do:-- python3 test/spec_tests.py --dump-tests--and you'll get all the tests in JSON format.--[The spec]: http://spec.commonmark.org/0.13/--The source of [the spec] is `spec.txt`. This is basically a Markdown-file, with code examples written in a shorthand form:-- .- Markdown source- .- expected HTML output- .--To build an HTML version of the spec, do `make spec.html`. To build a-PDF version, do `make spec.pdf`. (Creating a PDF requires [pandoc]-and a LaTeX installation. Creating the HTML version requires only-`libcmark` and `python3`.)--The spec is written from the point of view of the human writer, not-the computer reader. It is not an algorithm---an English translation of-a computer program---but a declarative description of what counts as a block-quote, a code block, and each of the other structural elements that can-make up a Markdown document.--Because John Gruber's [canonical syntax-description](http://daringfireball.net/projects/markdown/syntax) leaves-many aspects of the syntax undetermined, writing a precise spec requires-making a large number of decisions, many of them somewhat arbitrary.-In making them, we have appealed to existing conventions and-considerations of simplicity, readability, expressive power, and-consistency. We have tried to ensure that "normal" documents in the many-incompatible existing implementations of Markdown will render, as far as-possible, as their authors intended. And we have tried to make the rules-for different elements work together harmoniously. In places where-different decisions could have been made (for example, the rules-governing list indentation), we have explained the rationale for-my choices. In a few cases, we have departed slightly from the canonical-syntax description, in ways that we think further the goals of Markdown-as stated in that description.--For the most part, we have limited ourselves to the basic elements-described in Gruber's canonical syntax description, eschewing extensions-like footnotes and definition lists. It is important to get the core-right before considering such things. However, we have included a visible-syntax for line breaks and fenced code blocks.--Differences from original Markdown-------------------------------------There are only a few places where this spec says things that contradict-the canonical syntax description:--- It allows all punctuation symbols to be backslash-escaped,- not just the symbols with special meanings in Markdown. We found- that it was just too hard to remember which symbols could be- escaped.--- It introduces an alternative syntax for hard line- breaks, a backslash at the end of the line, supplementing the- two-spaces-at-the-end-of-line rule. This is motivated by persistent- complaints about the “invisible” nature of the two-space rule.--- Link syntax has been made a bit more predictable (in a- backwards-compatible way). For example, `Markdown.pl` allows single- quotes around a title in inline links, but not in reference links.- This kind of difference is really hard for users to remember, so the- spec allows single quotes in both contexts.--- The rule for HTML blocks differs, though in most real cases it- shouldn't make a difference. (See the section on HTML Blocks- for details.) The spec's proposal makes it easy to include Markdown- inside HTML block-level tags, if you want to, but also allows you to- exclude this. It is also makes parsing much easier, avoiding- expensive backtracking.--- It does not collapse adjacent bird-track blocks into a single- blockquote:-- > this is two-- > blockquotes-- > this is a single- >- > blockquote with two paragraphs--- Rules for content in lists differ in a few respects, though (as with- HTML blocks), most lists in existing documents should render as- intended. There is some discussion of the choice points and- differences in the subsection of List Items entitled Motivation.- We think that the spec's proposal does better than any existing- implementation in rendering lists the way a human writer or reader- would intuitively understand them. (We could give numerous examples- of perfectly natural looking lists that nearly every existing- implementation flubs up.)--- The spec stipulates that two blank lines break out of all list- contexts. This is an attempt to deal with issues that often come up- when someone wants to have two adjacent lists, or a list followed by- an indented code block.--- Changing bullet characters, or changing from bullets to numbers or- vice versa, starts a new list. We think that is almost always going- to be the writer's intent.--- The number that begins an ordered list item may be followed by- either `.` or `)`. Changing the delimiter style starts a new- list.--- The start number of an ordered list is significant.--- Fenced code blocks are supported, delimited by either- backticks (```` ``` ```` or tildes (` ~~~ `).--Contributing---------------There is a [forum for discussing-CommonMark](http://talk.commonmark.org); you should use it instead of-github issues for questions and possibly open-ended discussions.-Use the [github issue tracker](http://github.com/jgm/CommonMark/issues)-only for simple, clear, actionable issues.--Authors----------The spec was written by John MacFarlane, drawing on--- his experience writing and maintaining Markdown implementations in several- languages, including the first Markdown parser not based on regular- expression substitutions ([pandoc](http://github.com/jgm/pandoc)) and- the first markdown parsers based on PEG grammars- ([peg-markdown](http://github.com/jgm/peg-markdown),- [lunamark](http://github.com/jgm/lunamark))-- a detailed examination of the differences between existing Markdown- implementations using [BabelMark 2](http://johnmacfarlane.net/babelmark2/),- and-- extensive discussions with David Greenspan, Jeff Atwood, Vicent- Marti, Neil Williams, and Benjamin Dumke-von der Ehe.--John MacFarlane was also responsible for the original versions of the-C and JavaScript implementations. The block parsing algorithm was-worked out together with David Greenspan. Vicent Marti-optimized the C implementation for performance, increasing its speed-tenfold. Kārlis Gaņģis helped work out a better parsing algorithm-for links and emphasis, eliminating several worst-case performance-issues. Nick Wellnhofer contributed many improvements, including-most of the C library's API and its test harness. Vitaly Puzrin-has offered much good advice about the JavaScript implementation.--[cmake]: http://www.cmake.org/download/-[pandoc]: http://johnmacfarlane.net/pandoc/-[re2c]: http://re2c.org--> the simple example of a blockquote -> the simple example of a blockquote-> the simple example of a blockquote-> the simple example of a blockquote-... continuation-... continuation-... continuation-... continuation--empty blockquote:-->->->->-->>>>>> deeply nested blockquote->>>>> deeply nested blockquote->>>> deeply nested blockquote->>> deeply nested blockquote->> deeply nested blockquote-> deeply nested blockquote--> deeply nested blockquote->> deeply nested blockquote->>> deeply nested blockquote->>>> deeply nested blockquote->>>>> deeply nested blockquote->>>>>> deeply nested blockquote-- an- example-- of---- a code- block---``````````text-an-example-```-of---a fenced-```-code-block-``````````--# heading-### heading-##### heading--# heading #-### heading ###-##### heading \#\#\#\#\######--############ not a heading-- * * * * *-- - - - - --- ________--- ************************* text--<div class="this is an html block">--blah blah--</div>--<table>- <tr>- <td>- **test**- </td>- </tr>-</table>--<table>-- <tr>-- <td>-- test-- </td>-- </tr>--</table>--<![CDATA[- [[[[[[[[[[[... *cdata section - this should not be parsed* ...]]]]]]]]]]]-]]>--heading------heading-===================================--not a heading------------------------------------ text- - tidy- - bullet- - list--- - loose-- - bullet-- - list--- 0. ordered- 1. list- 2. example--- -- -- -- ---- 1.- 2.- 3.--- - an example-of a list item- with a continuation-- this part is inside the list-- this part is just a paragraph --- 1. test- - test- 1. test- - test---111111111111111111111111111111111111111111. is this a valid bullet?-- - _________________________-- - this- - is-- a-- long- - loose- - list-- - with- - some-- tidy-- - list- - items- - in-- - between- - _________________________-- - this- - is- - a- - deeply- - nested- - bullet- - list- -- 1. this- 2. is- 3. a- 4. deeply- 5. nested- 6. unordered- 7. list--- - 1- - 2- - 3- - 4- - 5- - 6- - 7- - 6- - 5- - 4- - 3- - 2- - 1--- - - - - - - - - - deeply-nested one-element item--[1] [2] [3] [1] [2] [3]--[looooooooooooooooooooooooooooooooooooooooooooooooooong label]-- [1]: <http://something.example.com/foo/bar>- [2]: http://something.example.com/foo/bar 'test'- [3]:- http://foo/bar- [ looooooooooooooooooooooooooooooooooooooooooooooooooong label ]:- 111- 'test'- [[[[[[[[[[[[[[[[[[[[ this should not slow down anything ]]]]]]]]]]]]]]]]]]]]: q- (as long as it is not referenced anywhere)-- [[[[[[[[[[[[[[[[[[[[]: this is not a valid reference-[[[[[[[foo]]]]]]]--[[[[[[[foo]]]]]]]: bar-[[[[[[foo]]]]]]: bar-[[[[[foo]]]]]: bar-[[[[foo]]]]: bar-[[[foo]]]: bar-[[foo]]: bar-[foo]: bar--[*[*[*[*[foo]*]*]*]*]--[*[*[*[*[foo]*]*]*]*]: bar-[*[*[*[foo]*]*]*]: bar-[*[*[foo]*]*]: bar-[*[foo]*]: bar-[foo]: bar-closed (valid) autolinks:-- <ftp://1.2.3.4:21/path/foo>- <http://foo.bar.baz?q=hello&id=22&boolean>- <http://veeeeeeeeeeeeeeeeeeery.loooooooooooooooooooooooooooooooong.autolink/>- <teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeest@gmail.com>--these are not autolinks:-- <ftp://1.2.3.4:21/path/foo- <http://foo.bar.baz?q=hello&id=22&boolean- <http://veeeeeeeeeeeeeeeeeeery.loooooooooooooooooooooooooooooooong.autolink- <teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeest@gmail.com- < http://foo.bar.baz?q=hello&id=22&boolean >-`lots`of`backticks`--``i``wonder``how``this``will``be``parsed``-*this* *is* *your* *basic* *boring* *emphasis*--_this_ _is_ _your_ _basic_ _boring_ _emphasis_--**this** **is** **your** **basic** **boring** **emphasis**-*this *is *a *bunch* of* nested* emphases* --__this __is __a __bunch__ of__ nested__ emphases__ --***this ***is ***a ***bunch*** of*** nested*** emphases*** -*this *is *a *worst *case *for *em *backtracking--__this __is __a __worst __case __for __em __backtracking--***this ***is ***a ***worst ***case ***for ***em ***backtracking-entities:-- & © Æ Ď ¾ ℋ ⅆ ∲--# Ӓ Ϡ �--non-entities:--&18900987654321234567890; &1234567890098765432123456789009876543212345678987654;--&qwertyuioppoiuytrewqwer; &oiuytrewqwertyuioiuytrewqwertyuioytrewqwertyuiiuytri;--\t\e\s\t\i\n\g \e\s\c\a\p\e \s\e\q\u\e\n\c\e\s--\!\\\"\#\$\%\&\'\(\)\*\+\,\.\/\:\;\<\=\>\?--\@ \[ \] \^ \_ \` \{ \| \} \~ \- \'--\-\\-\\\-\\\\-\\\\\--\<this\> \<is\> \<not\> \<html\>--Taking commonmark tests from the spec for benchmarking here:--<a><bab><c2c>--<a/><b2/>--<a /><b2-data="foo" >--<a foo="bar" bam = 'baz <em>"</em>'-_boolean zoop:33=zoop:33 />--<33> <__>--<a h*#ref="hi">--<a href="hi'> <a href=hi'>--< a><-foo><bar/ >--<a href='bar'title=title>--</a>-</foo >--</a href="foo">--foo <!-- this is a-comment - with hyphen -->--foo <!-- not a comment -- two hyphens -->--foo <?php echo $a; ?>--foo <!ELEMENT br EMPTY>--foo <![CDATA[>&<]]>--<a href="ö">--<a href="\*">--<a href="\"">-Valid links:-- [this is a link]()- [this is a link](<http://something.example.com/foo/bar>)- [this is a link](http://something.example.com/foo/bar 'test')- ![this is an image]()- - - - [escape test](<\>\>\>\>\>\>\>\>\>\>\>\>\>\>> '\'\'\'\'\'\'\'\'\'\'\'\'\'\'')- [escape test \]\]\]\]\]\]\]\]\]\]\]\]\]\]\]\]](\)\)\)\)\)\)\)\)\)\)\)\)\)\))--Invalid links:-- [this is not a link-- [this is not a link](-- [this is not a link](http://something.example.com/foo/bar 'test'- - [this is not a link](((((((((((((((((((((((((((((((((((((((((((((((- - [this is not a link]((((((((((()))))))))) (((((((((()))))))))))-Valid links:--[[[[[[[[](test)](test)](test)](test)](test)](test)](test)]--[ [[[[[[[[[[[[[[[[[[ [](test) ]]]]]]]]]]]]]]]]]] ](test)--Invalid links:--[[[[[[[[[--[ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [-- lobortis, sapien arcu mattis erat, vel aliquet sem urna et risus. Ut feugiat sapien vitae mi elementum laoreet. Suspendisse potenti. Aliquam erat nisl, aliquam pretium libero aliquet, sagittis eleifend nunc. In hac habitasse platea dictumst. Integer turpis augue, tincidunt dignissim mauris id, rhoncus dapibus purus. Maecenas et enim odio. Nullam massa metus, varius quis vehicula sed, pharetra mollis erat. In quis viverra velit. Vivamus placerat, est nec hendrerit varius, enim dui hendrerit magna, ut pulvinar nibh lorem vel lacus. Mauris a orci iaculis, hendrerit eros sed, gravida leo. In dictum mauris vel augue varius, ac ullamcorper nisl ornare. In eu posuere velit, ac fermentum arcu. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nullam sed malesuada leo, at interdum elit.--Nullam ut tincidunt nunc. [Pellentesque][1] metus lacus, commodo eget justo ut, rutrum varius nunc. Sed non rhoncus risus. Morbi sodales gravida pulvinar. Duis malesuada, odio volutpat elementum vulputate, massa magna scelerisque ante, et accumsan tellus nunc in sem. Donec mattis arcu et velit aliquet, non sagittis justo vestibulum. Suspendisse volutpat felis lectus, nec consequat ipsum mattis id. Donec dapibus vehicula facilisis. In tincidunt mi nisi, nec faucibus tortor euismod nec. Suspendisse ante ligula, aliquet vitae libero eu, vulputate dapibus libero. Sed bibendum, sapien at posuere interdum, libero est sollicitudin magna, ac gravida tellus purus eu ipsum. Proin ut quam arcu.--Suspendisse potenti. Donec ante velit, ornare at augue quis, tristique laoreet sem. Etiam in ipsum elit. Nullam cursus dolor sit amet nulla feugiat tristique. Phasellus ac tellus tincidunt, imperdiet purus eget, ullamcorper ipsum. Cras eu tincidunt sem. Nullam sed dapibus magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In id venenatis tortor. In consectetur sollicitudin pharetra. Etiam convallis nisi nunc, et aliquam turpis viverra sit amet. Maecenas faucibus sodales tortor. Suspendisse lobortis mi eu leo viverra volutpat. Pellentesque velit ante, vehicula sodales congue ut, elementum a urna. Cras tempor, ipsum eget luctus rhoncus, arcu ligula fermentum urna, vulputate pharetra enim enim non libero.--Proin diam quam, elementum in eleifend id, elementum et metus. Cras in justo consequat justo semper ultrices. Sed dignissim lectus a ante mollis, nec vulputate ante molestie. Proin in porta nunc. Etiam pulvinar turpis sed velit porttitor, vel adipiscing velit fringilla. Cras ac tellus vitae purus pharetra tincidunt. Sed cursus aliquet aliquet. Cras eleifend commodo malesuada. In turpis turpis, ullamcorper ut tincidunt a, ullamcorper a nunc. Etiam luctus tellus ac dapibus gravida. Ut nec lacus laoreet neque ullamcorper volutpat.--Nunc et leo erat. Aenean mattis ultrices lorem, eget adipiscing dolor ultricies eu. In hac habitasse platea dictumst. Vivamus cursus feugiat sapien quis aliquam. Mauris quam libero, porta vel volutpat ut, blandit a purus. Vivamus vestibulum dui vel tortor molestie, sit amet feugiat sem commodo. Nulla facilisi. Sed molestie arcu eget tellus vestibulum tristique.--[1]: https://github.com/markdown-it--this is a test for tab expansion, be careful not to replace them with spaces--1 4444-22 333-333 22-4444 1--- tab-indented line- space-indented line- tab-indented line---a lot of spaces in between here--a lot of tabs in between here-
− bench/sample.md
@@ -1,284 +0,0 @@-CommonMark-==========--CommonMark is a rationalized version of Markdown syntax,-with a [spec][the spec] and BSD3-licensed reference-implementations in C and JavaScript.--[Try it now!](http://spec.commonmark.org/dingus.html)--The implementations----------------------The C implementation provides both a shared library (`libcmark`) and a-standalone program `cmark` that converts CommonMark to HTML. It is-written in standard C99 and has no library dependencies. The parser is-very fast (see [benchmarks](benchmarks.md)).--It is easy to use `libcmark` in python, lua, ruby, and other dynamic-languages: see the `wrappers/` subdirectory for some simple examples.--The JavaScript implementation provides both an NPM package and a-single JavaScript file, with no dependencies, that can be linked into-an HTML page. For further information, see the-[README in the js directory](js/README.md).--**A note on security:**-Neither implementation attempts to sanitize link attributes or-raw HTML. If you use these libraries in applications that accept-untrusted user input, you must run the output through an HTML-sanitizer to protect against-[XSS attacks](http://en.wikipedia.org/wiki/Cross-site_scripting).--Installing (C)-----------------Building the C program (`cmark`) and shared library (`libcmark`)-requires [cmake]. If you modify `scanners.re`, then you will also-need [re2c], which is used to generate `scanners.c` from-`scanners.re`. We have included a pre-generated `scanners.c` in-the repository to reduce build dependencies.--If you have GNU make, you can simply `make`, `make test`, and `make-install`. This calls [cmake] to create a `Makefile` in the `build`-directory, then uses that `Makefile` to create the executable and-library. The binaries can be found in `build/src`.--For a more portable method, you can use [cmake] manually. [cmake] knows-how to create build environments for many build systems. For example,-on FreeBSD:-- mkdir build- cd build- cmake .. # optionally: -DCMAKE_INSTALL_PREFIX=path- make # executable will be created as build/src/cmark- make test- make install--Or, to create Xcode project files on OSX:-- mkdir build- cd build- cmake -G Xcode ..- make- make test- make install--The GNU Makefile also provides a few other targets for developers.-To run a benchmark:-- make bench--To run a "fuzz test" against ten long randomly generated inputs:-- make fuzztest--To run a test for memory leaks using `valgrind`:-- make leakcheck--To reformat source code using `astyle`:-- make astyle--To make a release tarball and zip archive:-- make archive---Compiling for Windows------------------------To compile with MSVC and NMAKE:-- nmake--You can cross-compile a Windows binary and dll on linux if you have the-`mingw32` compiler:-- make mingw--The binaries will be in `build-mingw/windows/bin`.--Installing (JavaScript)--------------------------The JavaScript library can be installed through `npm`:-- npm install commonmark--This includes a command-line converter called `commonmark`.--If you want to use it in a client application, you can fetch-a pre-built copy of `commonmark.js` from-<http://spec.commonmark.org/js/commonmark.js>.--For further information, see the-[README in the js directory](js/README.md).--The spec-----------[The spec] contains over 500 embedded examples which serve as conformance-tests. To run the tests using an executable `$PROG`:-- python3 test/spec_tests.py --program $PROG--If you want to extract the raw test data from the spec without-actually running the tests, you can do:-- python3 test/spec_tests.py --dump-tests--and you'll get all the tests in JSON format.--[The spec]: http://spec.commonmark.org/0.13/--The source of [the spec] is `spec.txt`. This is basically a Markdown-file, with code examples written in a shorthand form:-- .- Markdown source- .- expected HTML output- .--To build an HTML version of the spec, do `make spec.html`. To build a-PDF version, do `make spec.pdf`. (Creating a PDF requires [pandoc]-and a LaTeX installation. Creating the HTML version requires only-`libcmark` and `python3`.)--The spec is written from the point of view of the human writer, not-the computer reader. It is not an algorithm---an English translation of-a computer program---but a declarative description of what counts as a block-quote, a code block, and each of the other structural elements that can-make up a Markdown document.--Because John Gruber's [canonical syntax-description](http://daringfireball.net/projects/markdown/syntax) leaves-many aspects of the syntax undetermined, writing a precise spec requires-making a large number of decisions, many of them somewhat arbitrary.-In making them, we have appealed to existing conventions and-considerations of simplicity, readability, expressive power, and-consistency. We have tried to ensure that "normal" documents in the many-incompatible existing implementations of Markdown will render, as far as-possible, as their authors intended. And we have tried to make the rules-for different elements work together harmoniously. In places where-different decisions could have been made (for example, the rules-governing list indentation), we have explained the rationale for-my choices. In a few cases, we have departed slightly from the canonical-syntax description, in ways that we think further the goals of Markdown-as stated in that description.--For the most part, we have limited ourselves to the basic elements-described in Gruber's canonical syntax description, eschewing extensions-like footnotes and definition lists. It is important to get the core-right before considering such things. However, we have included a visible-syntax for line breaks and fenced code blocks.--Differences from original Markdown-------------------------------------There are only a few places where this spec says things that contradict-the canonical syntax description:--- It allows all punctuation symbols to be backslash-escaped,- not just the symbols with special meanings in Markdown. We found- that it was just too hard to remember which symbols could be- escaped.--- It introduces an alternative syntax for hard line- breaks, a backslash at the end of the line, supplementing the- two-spaces-at-the-end-of-line rule. This is motivated by persistent- complaints about the “invisible” nature of the two-space rule.--- Link syntax has been made a bit more predictable (in a- backwards-compatible way). For example, `Markdown.pl` allows single- quotes around a title in inline links, but not in reference links.- This kind of difference is really hard for users to remember, so the- spec allows single quotes in both contexts.--- The rule for HTML blocks differs, though in most real cases it- shouldn't make a difference. (See the section on HTML Blocks- for details.) The spec's proposal makes it easy to include Markdown- inside HTML block-level tags, if you want to, but also allows you to- exclude this. It is also makes parsing much easier, avoiding- expensive backtracking.--- It does not collapse adjacent bird-track blocks into a single- blockquote:-- > this is two-- > blockquotes-- > this is a single- >- > blockquote with two paragraphs--- Rules for content in lists differ in a few respects, though (as with- HTML blocks), most lists in existing documents should render as- intended. There is some discussion of the choice points and- differences in the subsection of List Items entitled Motivation.- We think that the spec's proposal does better than any existing- implementation in rendering lists the way a human writer or reader- would intuitively understand them. (We could give numerous examples- of perfectly natural looking lists that nearly every existing- implementation flubs up.)--- The spec stipulates that two blank lines break out of all list- contexts. This is an attempt to deal with issues that often come up- when someone wants to have two adjacent lists, or a list followed by- an indented code block.--- Changing bullet characters, or changing from bullets to numbers or- vice versa, starts a new list. We think that is almost always going- to be the writer's intent.--- The number that begins an ordered list item may be followed by- either `.` or `)`. Changing the delimiter style starts a new- list.--- The start number of an ordered list is significant.--- Fenced code blocks are supported, delimited by either- backticks (```` ``` ```` or tildes (` ~~~ `).--Contributing---------------There is a [forum for discussing-CommonMark](http://talk.commonmark.org); you should use it instead of-github issues for questions and possibly open-ended discussions.-Use the [github issue tracker](http://github.com/jgm/CommonMark/issues)-only for simple, clear, actionable issues.--Authors----------The spec was written by John MacFarlane, drawing on--- his experience writing and maintaining Markdown implementations in several- languages, including the first Markdown parser not based on regular- expression substitutions ([pandoc](http://github.com/jgm/pandoc)) and- the first markdown parsers based on PEG grammars- ([peg-markdown](http://github.com/jgm/peg-markdown),- [lunamark](http://github.com/jgm/lunamark))-- a detailed examination of the differences between existing Markdown- implementations using [BabelMark 2](http://johnmacfarlane.net/babelmark2/),- and-- extensive discussions with David Greenspan, Jeff Atwood, Vicent- Marti, Neil Williams, and Benjamin Dumke-von der Ehe.--John MacFarlane was also responsible for the original versions of the-C and JavaScript implementations. The block parsing algorithm was-worked out together with David Greenspan. Vicent Marti-optimized the C implementation for performance, increasing its speed-tenfold. Kārlis Gaņģis helped work out a better parsing algorithm-for links and emphasis, eliminating several worst-case performance-issues. Nick Wellnhofer contributed many improvements, including-most of the C library's API and its test harness. Vitaly Puzrin-has offered much good advice about the JavaScript implementation.--[cmake]: http://www.cmake.org/download/-[pandoc]: http://johnmacfarlane.net/pandoc/-[re2c]: http://re2c.org
cbits/blocks.c view
@@ -8,6 +8,7 @@ #include <stdlib.h> #include <assert.h> #include <stdio.h>+#include <limits.h> #include "cmark_ctype.h" #include "config.h"@@ -20,6 +21,7 @@ #include "inlines.h" #include "houdini.h" #include "buffer.h"+#include "chunk.h" #define CODE_INDENT 4 #define TAB_STOP 4@@ -34,6 +36,10 @@ return (node->flags & CMARK_NODE__LAST_LINE_BLANK) != 0; } +static bool S_last_line_checked(const cmark_node *node) {+ return (node->flags & CMARK_NODE__LAST_LINE_CHECKED) != 0;+}+ static CMARK_INLINE cmark_node_type S_type(const cmark_node *node) { return (cmark_node_type)node->type; }@@ -45,6 +51,10 @@ node->flags &= ~CMARK_NODE__LAST_LINE_BLANK; } +static void S_set_last_line_checked(cmark_node *node) {+ node->flags |= CMARK_NODE__LAST_LINE_CHECKED;+}+ static CMARK_INLINE bool S_is_line_end_char(char c) { return (c == '\n' || c == '\r'); }@@ -64,7 +74,7 @@ cmark_node *e; e = (cmark_node *)mem->calloc(1, sizeof(*e));- cmark_strbuf_init(mem, &e->content, 32);+ e->mem = mem; e->type = (uint16_t)tag; e->flags = CMARK_NODE__OPEN; e->start_line = start_line;@@ -88,6 +98,7 @@ cmark_strbuf_init(mem, &parser->curline, 256); cmark_strbuf_init(mem, &parser->linebuf, 0);+ cmark_strbuf_init(mem, &parser->content, 0); parser->refmap = cmark_reference_map_new(mem); parser->root = document;@@ -97,6 +108,7 @@ parser->column = 0; parser->first_nonspace = 0; parser->first_nonspace_column = 0;+ parser->thematic_break_kill_pos = 0; parser->indent = 0; parser->blank = false; parser->partially_consumed_tab = false;@@ -162,19 +174,18 @@ block_type == CMARK_NODE_HEADING); } -static void add_line(cmark_node *node, cmark_chunk *ch, cmark_parser *parser) {+static void add_line(cmark_chunk *ch, cmark_parser *parser) { int chars_to_tab; int i;- assert(node->flags & CMARK_NODE__OPEN); if (parser->partially_consumed_tab) { parser->offset += 1; // skip over tab // add space characters: chars_to_tab = TAB_STOP - (parser->column % TAB_STOP); for (i = 0; i < chars_to_tab; i++) {- cmark_strbuf_putc(&node->content, ' ');+ cmark_strbuf_putc(&parser->content, ' '); } }- cmark_strbuf_put(&node->content, ch->data + parser->offset,+ cmark_strbuf_put(&parser->content, ch->data + parser->offset, ch->len - parser->offset); } @@ -207,26 +218,41 @@ // Check to see if a node ends with a blank line, descending // if needed into lists and sublists.-static bool ends_with_blank_line(cmark_node *node) {- cmark_node *cur = node;- while (cur != NULL) {- if (S_last_line_blank(cur)) {- return true;- }- if (S_type(cur) == CMARK_NODE_LIST || S_type(cur) == CMARK_NODE_ITEM) {- cur = cur->last_child;- } else {- cur = NULL;- }+static bool S_ends_with_blank_line(cmark_node *node) {+ if (S_last_line_checked(node)) {+ return(S_last_line_blank(node));+ } else if ((S_type(node) == CMARK_NODE_LIST ||+ S_type(node) == CMARK_NODE_ITEM) && node->last_child) {+ S_set_last_line_checked(node);+ return(S_ends_with_blank_line(node->last_child));+ } else {+ S_set_last_line_checked(node);+ return (S_last_line_blank(node)); }- return false; } +// returns true if content remains after link defs are resolved.+static bool resolve_reference_link_definitions(cmark_parser *parser) {+ bufsize_t pos;+ cmark_strbuf *node_content = &parser->content;+ cmark_chunk chunk = {node_content->ptr, node_content->size};+ while (chunk.len && chunk.data[0] == '[' &&+ (pos = cmark_parse_reference_inline(parser->mem, &chunk,+ parser->refmap))) {++ chunk.data += pos;+ chunk.len -= pos;+ }+ cmark_strbuf_drop(node_content, (node_content->size - chunk.len));+ return !is_blank(node_content, 0);+}+ static cmark_node *finalize(cmark_parser *parser, cmark_node *b) { bufsize_t pos; cmark_node *item; cmark_node *subitem; cmark_node *parent;+ bool has_content; parent = b->parent; assert(b->flags &@@ -251,21 +277,21 @@ b->end_column = parser->last_line_length; } - cmark_strbuf *node_content = &b->content;+ cmark_strbuf *node_content = &parser->content; switch (S_type(b)) { case CMARK_NODE_PARAGRAPH:- while (cmark_strbuf_at(node_content, 0) == '[' &&- (pos = cmark_parse_reference_inline(parser->mem, node_content,- parser->refmap))) {-- cmark_strbuf_drop(node_content, pos);- }- if (is_blank(node_content, 0)) {+ {+ has_content = resolve_reference_link_definitions(parser);+ if (!has_content) { // remove blank node (former reference def) cmark_node_free(b);+ } else {+ b->len = node_content->size;+ b->data = cmark_strbuf_detach(node_content); } break;+ } case CMARK_NODE_CODE_BLOCK: if (!b->as.code.fenced) { // indented code@@ -279,11 +305,15 @@ } assert(pos < node_content->size); - cmark_strbuf tmp = CMARK_BUF_INIT(parser->mem);- houdini_unescape_html_f(&tmp, node_content->ptr, pos);- cmark_strbuf_trim(&tmp);- cmark_strbuf_unescape(&tmp);- b->as.code.info = cmark_chunk_buf_detach(&tmp);+ if (pos == 0) {+ b->as.code.info = NULL;+ } else {+ cmark_strbuf tmp = CMARK_BUF_INIT(parser->mem);+ houdini_unescape_html_f(&tmp, node_content->ptr, pos);+ cmark_strbuf_trim(&tmp);+ cmark_strbuf_unescape(&tmp);+ b->as.code.info = cmark_strbuf_detach(&tmp);+ } if (node_content->ptr[pos] == '\r') pos += 1;@@ -291,11 +321,14 @@ pos += 1; cmark_strbuf_drop(node_content, pos); }- b->as.code.literal = cmark_chunk_buf_detach(node_content);+ b->len = node_content->size;+ b->data = cmark_strbuf_detach(node_content); break; + case CMARK_NODE_HEADING: case CMARK_NODE_HTML_BLOCK:- b->as.literal = cmark_chunk_buf_detach(node_content);+ b->len = node_content->size;+ b->data = cmark_strbuf_detach(node_content); break; case CMARK_NODE_LIST: // determine tight/loose status@@ -312,7 +345,8 @@ // spaces between them: subitem = item->first_child; while (subitem) {- if (ends_with_blank_line(subitem) && (item->next || subitem->next)) {+ if ((item->next || subitem->next) &&+ S_ends_with_blank_line(subitem)) { b->as.list.tight = false; break; }@@ -372,6 +406,9 @@ if (ev_type == CMARK_EVENT_ENTER) { if (contains_inlines(S_type(cur))) { cmark_parse_inlines(mem, cur, refmap, options);+ mem->free(cur->data);+ cur->data = NULL;+ cur->len = 0; } } }@@ -482,8 +519,18 @@ } finalize(parser, parser->root);++ // Limit total size of extra content created from reference links to+ // document size to avoid superlinear growth. Always allow 100KB.+ if (parser->total_size > 100000)+ parser->refmap->max_ref_size = parser->total_size;+ else+ parser->refmap->max_ref_size = 100000;+ process_inlines(parser->mem, parser->root, parser->refmap, parser->options); + cmark_strbuf_free(&parser->content);+ return parser->root; } @@ -526,10 +573,21 @@ const unsigned char *end = buffer + len; static const uint8_t repl[] = {239, 191, 189}; - if (parser->last_buffer_ended_with_cr && *buffer == '\n') {+ if (len > UINT_MAX - parser->total_size)+ parser->total_size = UINT_MAX;+ else+ parser->total_size += len;++ // Skip UTF-8 BOM if present; see #334+ if (parser->line_number == 0 && parser->column == 0 && len >= 3 &&+ *buffer == 0xEF && *(buffer + 1) == 0xBB &&+ *(buffer + 2) == 0xBF) {+ buffer += 3;+ } else if (parser->last_buffer_ended_with_cr && *buffer == '\n') { // skip NL if last buffer ended with CR ; see #117 buffer++; }+ parser->last_buffer_ended_with_cr = false; while (buffer < end) { const unsigned char *eol;@@ -604,6 +662,40 @@ } } +// Check for thematic break. On failure, return 0 and update+// thematic_break_kill_pos with the index at which the+// parse fails. On success, return length of match.+// "...three or more hyphens, asterisks,+// or underscores on a line by themselves. If you wish, you may use+// spaces between the hyphens or asterisks."+static int S_scan_thematic_break(cmark_parser *parser, cmark_chunk *input,+ bufsize_t offset) {+ bufsize_t i;+ char c;+ char nextc = '\0';+ int count;+ i = offset;+ c = peek_at(input, i);+ if (!(c == '*' || c == '_' || c == '-')) {+ parser->thematic_break_kill_pos = i;+ return 0;+ }+ count = 1;+ while ((nextc = peek_at(input, ++i))) {+ if (nextc == c) {+ count++;+ } else if (nextc != ' ' && nextc != '\t') {+ break;+ }+ }+ if (count >= 3 && (nextc == '\r' || nextc == '\n')) {+ return (i - offset) + 1;+ } else {+ parser->thematic_break_kill_pos = i;+ return 0;+ }+}+ // Find first nonspace character from current offset, setting // parser->first_nonspace, parser->first_nonspace_column, // parser->indent, and parser->blank. Does not advance parser->offset.@@ -611,22 +703,24 @@ char c; int chars_to_tab = TAB_STOP - (parser->column % TAB_STOP); - parser->first_nonspace = parser->offset;- parser->first_nonspace_column = parser->column;- while ((c = peek_at(input, parser->first_nonspace))) {- if (c == ' ') {- parser->first_nonspace += 1;- parser->first_nonspace_column += 1;- chars_to_tab = chars_to_tab - 1;- if (chars_to_tab == 0) {+ if (parser->first_nonspace <= parser->offset) {+ parser->first_nonspace = parser->offset;+ parser->first_nonspace_column = parser->column;+ while ((c = peek_at(input, parser->first_nonspace))) {+ if (c == ' ') {+ parser->first_nonspace += 1;+ parser->first_nonspace_column += 1;+ chars_to_tab = chars_to_tab - 1;+ if (chars_to_tab == 0) {+ chars_to_tab = TAB_STOP;+ }+ } else if (c == '\t') {+ parser->first_nonspace += 1;+ parser->first_nonspace_column += chars_to_tab; chars_to_tab = TAB_STOP;+ } else {+ break; }- } else if (c == '\t') {- parser->first_nonspace += 1;- parser->first_nonspace_column += chars_to_tab;- chars_to_tab = TAB_STOP;- } else {- break; } } @@ -857,6 +951,7 @@ bufsize_t matched = 0; int lev = 0; bool save_partially_consumed_tab;+ bool has_content; int save_offset; int save_column; @@ -900,6 +995,7 @@ (*container)->as.heading.level = level; (*container)->as.heading.setext = false;+ (*container)->as.heading.internal_offset = matched; } else if (!indented && (matched = scan_open_code_fence( input, parser->first_nonspace))) {@@ -910,7 +1006,7 @@ (*container)->as.code.fence_length = (matched > 255) ? 255 : matched; (*container)->as.code.fence_offset = (int8_t)(parser->first_nonspace - parser->offset);- (*container)->as.code.info = cmark_chunk_literal("");+ (*container)->as.code.info = NULL; S_advance_offset(parser, input, parser->first_nonspace + matched - parser->offset, false);@@ -918,6 +1014,7 @@ } else if (!indented && ((matched = scan_html_block_start( input, parser->first_nonspace)) || (cont_type != CMARK_NODE_PARAGRAPH &&+ !maybe_lazy && (matched = scan_html_block_start_7( input, parser->first_nonspace))))) { *container = add_child(parser, *container, CMARK_NODE_HTML_BLOCK,@@ -928,18 +1025,26 @@ } else if (!indented && cont_type == CMARK_NODE_PARAGRAPH && (lev = scan_setext_heading_line(input, parser->first_nonspace))) {- (*container)->type = (uint16_t)CMARK_NODE_HEADING;- (*container)->as.heading.level = lev;- (*container)->as.heading.setext = true;- S_advance_offset(parser, input, input->len - 1 - parser->offset, false);+ // finalize paragraph, resolving reference links+ has_content = resolve_reference_link_definitions(parser);++ if (has_content) {++ (*container)->type = (uint16_t)CMARK_NODE_HEADING;+ (*container)->as.heading.level = lev;+ (*container)->as.heading.setext = true;+ S_advance_offset(parser, input, input->len - 1 - parser->offset, false);+ } } else if (!indented && !(cont_type == CMARK_NODE_PARAGRAPH && !all_matched) &&- (matched = scan_thematic_break(input, parser->first_nonspace))) {+ (parser->thematic_break_kill_pos <= parser->first_nonspace) &&+ S_scan_thematic_break(parser, input, parser->first_nonspace)) { // it's only now that we know the line is not part of a setext heading: *container = add_child(parser, *container, CMARK_NODE_THEMATIC_BREAK, parser->first_nonspace + 1); S_advance_offset(parser, input, input->len - 1 - parser->offset, false); } else if ((!indented || cont_type == CMARK_NODE_LIST) &&+ parser->indent < 4 && (matched = parse_list_marker( parser->mem, input, parser->first_nonspace, (*container)->type == CMARK_NODE_PARAGRAPH, &data))) {@@ -1004,7 +1109,7 @@ (*container)->as.code.fence_char = 0; (*container)->as.code.fence_length = 0; (*container)->as.code.fence_offset = 0;- (*container)->as.code.info = cmark_chunk_literal("");+ (*container)->as.code.info = NULL; } else { break;@@ -1061,7 +1166,7 @@ if (parser->current != last_matched_container && container == last_matched_container && !parser->blank && S_type(parser->current) == CMARK_NODE_PARAGRAPH) {- add_line(parser->current, input, parser);+ add_line(input, parser); } else { // not a lazy continuation // Finalize any blocks that were not matched and set cur to container: while (parser->current != last_matched_container) {@@ -1070,14 +1175,14 @@ } if (S_type(container) == CMARK_NODE_CODE_BLOCK) {- add_line(container, input, parser);+ add_line(input, parser); } else if (S_type(container) == CMARK_NODE_HTML_BLOCK) {- add_line(container, input, parser);+ add_line(input, parser); int matches_end_condition; switch (container->as.html_block_type) { case 1:- // </script>, </style>, </pre>+ // </script>, </style>, </textarea>, </pre> matches_end_condition = scan_html_block_end_1(input, parser->first_nonspace); break;@@ -1119,14 +1224,14 @@ } S_advance_offset(parser, input, parser->first_nonspace - parser->offset, false);- add_line(container, input, parser);+ add_line(input, parser); } else { // create paragraph container for line container = add_child(parser, container, CMARK_NODE_PARAGRAPH, parser->first_nonspace + 1); S_advance_offset(parser, input, parser->first_nonspace - parser->offset, false);- add_line(container, input, parser);+ add_line(input, parser); } parser->current = container;@@ -1154,12 +1259,15 @@ parser->offset = 0; parser->column = 0;+ parser->first_nonspace = 0;+ parser->first_nonspace_column = 0;+ parser->thematic_break_kill_pos = 0;+ parser->indent = 0; parser->blank = false; parser->partially_consumed_tab = false; input.data = parser->curline.ptr; input.len = parser->curline.size;- input.alloc = 0; parser->line_number++;
cbits/buffer.c view
@@ -10,7 +10,6 @@ #include "config.h" #include "cmark_ctype.h" #include "buffer.h"-#include "memory.h" /* Used as default value for cmark_strbuf->ptr so that people can always * assume ptr is non-NULL and zero terminated even for new cmark_strbufs.
cbits/buffer.h view
@@ -51,9 +51,11 @@ void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize, const cmark_strbuf *buf); +/* static CMARK_INLINE const char *cmark_strbuf_cstr(const cmark_strbuf *buf) {- return (char *)buf->ptr;+ return (char *)buf->ptr; }+*/ #define cmark_strbuf_at(buf, n) ((buf)->ptr[n])
cbits/case_fold_switch.inc view
@@ -1631,6 +1631,144 @@ case 0x1C88: bufpush(0xA64B); break;+ case 0x1C90:+ bufpush(0x10D0);+ break;+ case 0x1C91:+ bufpush(0x10D1);+ break;+ case 0x1C92:+ bufpush(0x10D2);+ break;+ case 0x1C93:+ bufpush(0x10D3);+ break;+ case 0x1C94:+ bufpush(0x10D4);+ break;+ case 0x1C95:+ bufpush(0x10D5);+ break;+ case 0x1C96:+ bufpush(0x10D6);+ break;+ case 0x1C97:+ bufpush(0x10D7);+ break;+ case 0x1C98:+ bufpush(0x10D8);+ break;+ case 0x1C99:+ bufpush(0x10D9);+ break;+ case 0x1C9A:+ bufpush(0x10DA);+ break;+ case 0x1C9B:+ bufpush(0x10DB);+ break;+ case 0x1C9C:+ bufpush(0x10DC);+ break;+ case 0x1C9D:+ bufpush(0x10DD);+ break;+ case 0x1C9E:+ bufpush(0x10DE);+ break;+ case 0x1C9F:+ bufpush(0x10DF);+ break;+ case 0x1CA0:+ bufpush(0x10E0);+ break;+ case 0x1CA1:+ bufpush(0x10E1);+ break;+ case 0x1CA2:+ bufpush(0x10E2);+ break;+ case 0x1CA3:+ bufpush(0x10E3);+ break;+ case 0x1CA4:+ bufpush(0x10E4);+ break;+ case 0x1CA5:+ bufpush(0x10E5);+ break;+ case 0x1CA6:+ bufpush(0x10E6);+ break;+ case 0x1CA7:+ bufpush(0x10E7);+ break;+ case 0x1CA8:+ bufpush(0x10E8);+ break;+ case 0x1CA9:+ bufpush(0x10E9);+ break;+ case 0x1CAA:+ bufpush(0x10EA);+ break;+ case 0x1CAB:+ bufpush(0x10EB);+ break;+ case 0x1CAC:+ bufpush(0x10EC);+ break;+ case 0x1CAD:+ bufpush(0x10ED);+ break;+ case 0x1CAE:+ bufpush(0x10EE);+ break;+ case 0x1CAF:+ bufpush(0x10EF);+ break;+ case 0x1CB0:+ bufpush(0x10F0);+ break;+ case 0x1CB1:+ bufpush(0x10F1);+ break;+ case 0x1CB2:+ bufpush(0x10F2);+ break;+ case 0x1CB3:+ bufpush(0x10F3);+ break;+ case 0x1CB4:+ bufpush(0x10F4);+ break;+ case 0x1CB5:+ bufpush(0x10F5);+ break;+ case 0x1CB6:+ bufpush(0x10F6);+ break;+ case 0x1CB7:+ bufpush(0x10F7);+ break;+ case 0x1CB8:+ bufpush(0x10F8);+ break;+ case 0x1CB9:+ bufpush(0x10F9);+ break;+ case 0x1CBA:+ bufpush(0x10FA);+ break;+ case 0x1CBD:+ bufpush(0x10FD);+ break;+ case 0x1CBE:+ bufpush(0x10FE);+ break;+ case 0x1CBF:+ bufpush(0x10FF);+ break; case 0x1E00: bufpush(0x1E01); break;@@ -2847,6 +2985,9 @@ case 0x2C2E: bufpush(0x2C5E); break;+ case 0x2C2F:+ bufpush(0x2C5F);+ break; case 0x2C60: bufpush(0x2C61); break;@@ -3375,6 +3516,51 @@ case 0xA7B6: bufpush(0xA7B7); break;+ case 0xA7B8:+ bufpush(0xA7B9);+ break;+ case 0xA7BA:+ bufpush(0xA7BB);+ break;+ case 0xA7BC:+ bufpush(0xA7BD);+ break;+ case 0xA7BE:+ bufpush(0xA7BF);+ break;+ case 0xA7C0:+ bufpush(0xA7C1);+ break;+ case 0xA7C2:+ bufpush(0xA7C3);+ break;+ case 0xA7C4:+ bufpush(0xA794);+ break;+ case 0xA7C5:+ bufpush(0x0282);+ break;+ case 0xA7C6:+ bufpush(0x1D8E);+ break;+ case 0xA7C7:+ bufpush(0xA7C8);+ break;+ case 0xA7C9:+ bufpush(0xA7CA);+ break;+ case 0xA7D0:+ bufpush(0xA7D1);+ break;+ case 0xA7D6:+ bufpush(0xA7D7);+ break;+ case 0xA7D8:+ bufpush(0xA7D9);+ break;+ case 0xA7F5:+ bufpush(0xA7F6);+ break; case 0xAB70: bufpush(0x13A0); break;@@ -3971,6 +4157,111 @@ case 0x104D3: bufpush(0x104FB); break;+ case 0x10570:+ bufpush(0x10597);+ break;+ case 0x10571:+ bufpush(0x10598);+ break;+ case 0x10572:+ bufpush(0x10599);+ break;+ case 0x10573:+ bufpush(0x1059A);+ break;+ case 0x10574:+ bufpush(0x1059B);+ break;+ case 0x10575:+ bufpush(0x1059C);+ break;+ case 0x10576:+ bufpush(0x1059D);+ break;+ case 0x10577:+ bufpush(0x1059E);+ break;+ case 0x10578:+ bufpush(0x1059F);+ break;+ case 0x10579:+ bufpush(0x105A0);+ break;+ case 0x1057A:+ bufpush(0x105A1);+ break;+ case 0x1057C:+ bufpush(0x105A3);+ break;+ case 0x1057D:+ bufpush(0x105A4);+ break;+ case 0x1057E:+ bufpush(0x105A5);+ break;+ case 0x1057F:+ bufpush(0x105A6);+ break;+ case 0x10580:+ bufpush(0x105A7);+ break;+ case 0x10581:+ bufpush(0x105A8);+ break;+ case 0x10582:+ bufpush(0x105A9);+ break;+ case 0x10583:+ bufpush(0x105AA);+ break;+ case 0x10584:+ bufpush(0x105AB);+ break;+ case 0x10585:+ bufpush(0x105AC);+ break;+ case 0x10586:+ bufpush(0x105AD);+ break;+ case 0x10587:+ bufpush(0x105AE);+ break;+ case 0x10588:+ bufpush(0x105AF);+ break;+ case 0x10589:+ bufpush(0x105B0);+ break;+ case 0x1058A:+ bufpush(0x105B1);+ break;+ case 0x1058C:+ bufpush(0x105B3);+ break;+ case 0x1058D:+ bufpush(0x105B4);+ break;+ case 0x1058E:+ bufpush(0x105B5);+ break;+ case 0x1058F:+ bufpush(0x105B6);+ break;+ case 0x10590:+ bufpush(0x105B7);+ break;+ case 0x10591:+ bufpush(0x105B8);+ break;+ case 0x10592:+ bufpush(0x105B9);+ break;+ case 0x10594:+ bufpush(0x105BB);+ break;+ case 0x10595:+ bufpush(0x105BC);+ break; case 0x10C80: bufpush(0x10CC0); break;@@ -4219,6 +4510,102 @@ break; case 0x118BF: bufpush(0x118DF);+ break;+ case 0x16E40:+ bufpush(0x16E60);+ break;+ case 0x16E41:+ bufpush(0x16E61);+ break;+ case 0x16E42:+ bufpush(0x16E62);+ break;+ case 0x16E43:+ bufpush(0x16E63);+ break;+ case 0x16E44:+ bufpush(0x16E64);+ break;+ case 0x16E45:+ bufpush(0x16E65);+ break;+ case 0x16E46:+ bufpush(0x16E66);+ break;+ case 0x16E47:+ bufpush(0x16E67);+ break;+ case 0x16E48:+ bufpush(0x16E68);+ break;+ case 0x16E49:+ bufpush(0x16E69);+ break;+ case 0x16E4A:+ bufpush(0x16E6A);+ break;+ case 0x16E4B:+ bufpush(0x16E6B);+ break;+ case 0x16E4C:+ bufpush(0x16E6C);+ break;+ case 0x16E4D:+ bufpush(0x16E6D);+ break;+ case 0x16E4E:+ bufpush(0x16E6E);+ break;+ case 0x16E4F:+ bufpush(0x16E6F);+ break;+ case 0x16E50:+ bufpush(0x16E70);+ break;+ case 0x16E51:+ bufpush(0x16E71);+ break;+ case 0x16E52:+ bufpush(0x16E72);+ break;+ case 0x16E53:+ bufpush(0x16E73);+ break;+ case 0x16E54:+ bufpush(0x16E74);+ break;+ case 0x16E55:+ bufpush(0x16E75);+ break;+ case 0x16E56:+ bufpush(0x16E76);+ break;+ case 0x16E57:+ bufpush(0x16E77);+ break;+ case 0x16E58:+ bufpush(0x16E78);+ break;+ case 0x16E59:+ bufpush(0x16E79);+ break;+ case 0x16E5A:+ bufpush(0x16E7A);+ break;+ case 0x16E5B:+ bufpush(0x16E7B);+ break;+ case 0x16E5C:+ bufpush(0x16E7C);+ break;+ case 0x16E5D:+ bufpush(0x16E7D);+ break;+ case 0x16E5E:+ bufpush(0x16E7E);+ break;+ case 0x16E5F:+ bufpush(0x16E7F); break; case 0x1E900: bufpush(0x1E922);
cbits/chunk.h view
@@ -6,30 +6,23 @@ #include <assert.h> #include "cmark.h" #include "buffer.h"-#include "memory.h" #include "cmark_ctype.h" #define CMARK_CHUNK_EMPTY \- { NULL, 0, 0 }+ { NULL, 0 } typedef struct {- unsigned char *data;+ const unsigned char *data; bufsize_t len;- bufsize_t alloc; // also implies a NULL-terminated string } cmark_chunk; -static CMARK_INLINE void cmark_chunk_free(cmark_mem *mem, cmark_chunk *c) {- if (c->alloc)- mem->free(c->data);-+// NOLINTNEXTLINE(clang-diagnostic-unused-function)+static CMARK_INLINE void cmark_chunk_free(cmark_chunk *c) { c->data = NULL;- c->alloc = 0; c->len = 0; } static CMARK_INLINE void cmark_chunk_ltrim(cmark_chunk *c) {- assert(!c->alloc);- while (c->len && cmark_isspace(c->data[0])) { c->data++; c->len--;@@ -37,8 +30,6 @@ } static CMARK_INLINE void cmark_chunk_rtrim(cmark_chunk *c) {- assert(!c->alloc);- while (c->len > 0) { if (!cmark_isspace(c->data[c->len - 1])) break;@@ -47,11 +38,13 @@ } } +// NOLINTNEXTLINE(clang-diagnostic-unused-function) static CMARK_INLINE void cmark_chunk_trim(cmark_chunk *c) { cmark_chunk_ltrim(c); cmark_chunk_rtrim(c); } +// NOLINTNEXTLINE(clang-diagnostic-unused-function) static CMARK_INLINE bufsize_t cmark_chunk_strchr(cmark_chunk *ch, int c, bufsize_t offset) { const unsigned char *p =@@ -59,61 +52,17 @@ return p ? (bufsize_t)(p - ch->data) : ch->len; } -static CMARK_INLINE const char *cmark_chunk_to_cstr(cmark_mem *mem,- cmark_chunk *c) {- unsigned char *str;-- if (c->alloc) {- return (char *)c->data;- }- str = (unsigned char *)mem->calloc(c->len + 1, 1);- if (c->len > 0) {- memcpy(str, c->data, c->len);- }- str[c->len] = 0;- c->data = str;- c->alloc = 1;-- return (char *)str;-}--static CMARK_INLINE void cmark_chunk_set_cstr(cmark_mem *mem, cmark_chunk *c,- const char *str) {- unsigned char *old = c->alloc ? c->data : NULL;- if (str == NULL) {- c->len = 0;- c->data = NULL;- c->alloc = 0;- } else {- c->len = (bufsize_t)strlen(str);- c->data = (unsigned char *)mem->calloc(c->len + 1, 1);- c->alloc = 1;- memcpy(c->data, str, c->len + 1);- }- if (old != NULL) {- mem->free(old);- }-}-+// NOLINTNEXTLINE(clang-diagnostic-unused-function) static CMARK_INLINE cmark_chunk cmark_chunk_literal(const char *data) { bufsize_t len = data ? (bufsize_t)strlen(data) : 0;- cmark_chunk c = {(unsigned char *)data, len, 0};+ cmark_chunk c = {(unsigned char *)data, len}; return c; } +// NOLINTNEXTLINE(clang-diagnostic-unused-function) static CMARK_INLINE cmark_chunk cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos, bufsize_t len) {- cmark_chunk c = {ch->data + pos, len, 0};- return c;-}--static CMARK_INLINE cmark_chunk cmark_chunk_buf_detach(cmark_strbuf *buf) {- cmark_chunk c;-- c.len = buf->size;- c.data = cmark_strbuf_detach(buf);- c.alloc = 1;-+ cmark_chunk c = {ch->data + pos, len}; return c; }
cbits/cmark.c view
@@ -6,9 +6,9 @@ #include "cmark.h" #include "buffer.h" -int cmark_version() { return CMARK_VERSION; }+int cmark_version(void) { return CMARK_VERSION; } -const char *cmark_version_string() { return CMARK_VERSION_STRING; }+const char *cmark_version_string(void) { return CMARK_VERSION_STRING; } static void *xcalloc(size_t nmem, size_t size) { void *ptr = calloc(nmem, size);@@ -29,6 +29,11 @@ } cmark_mem DEFAULT_MEM_ALLOCATOR = {xcalloc, xrealloc, free};++cmark_mem *cmark_get_default_mem_allocator(void) {+ return &DEFAULT_MEM_ALLOCATOR;+}+ char *cmark_markdown_to_html(const char *text, size_t len, int options) { cmark_node *doc;
cbits/cmark.h view
@@ -62,7 +62,7 @@ CMARK_NODE_IMAGE, CMARK_NODE_FIRST_INLINE = CMARK_NODE_TEXT,- CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE,+ CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE } cmark_node_type; /* For backwards compatibility: */@@ -100,6 +100,10 @@ void (*free)(void *); } cmark_mem; +/** Returns a pointer to the default memory allocator.+ */+CMARK_EXPORT cmark_mem *cmark_get_default_mem_allocator(void);+ /** * ## Creating and Destroying Nodes */@@ -448,10 +452,10 @@ * cmark_parser *parser = cmark_parser_new(CMARK_OPT_DEFAULT); * FILE *fp = fopen("myfile.md", "rb"); * while ((bytes = fread(buffer, 1, sizeof(buffer), fp)) > 0) {- * cmark_parser_feed(parser, buffer, bytes);- * if (bytes < sizeof(buffer)) {- * break;- * }+ * cmark_parser_feed(parser, buffer, bytes);+ * if (bytes < sizeof(buffer)) {+ * break;+ * } * } * document = cmark_parser_finish(parser); * cmark_parser_free(parser);@@ -552,13 +556,19 @@ */ #define CMARK_OPT_HARDBREAKS (1 << 2) -/** Suppress raw HTML and unsafe links (`javascript:`, `vbscript:`,- * `file:`, and `data:`, except for `image/png`, `image/gif`,- * `image/jpeg`, or `image/webp` mime types). Raw HTML is replaced- * by a placeholder HTML comment. Unsafe links are replaced by- * empty strings.+/** `CMARK_OPT_SAFE` is defined here for API compatibility,+ but it no longer has any effect. "Safe" mode is now the default:+ set `CMARK_OPT_UNSAFE` to disable it. */ #define CMARK_OPT_SAFE (1 << 3)++/** Render raw HTML and unsafe links (`javascript:`, `vbscript:`,+ * `file:`, and `data:`, except for `image/png`, `image/gif`,+ * `image/jpeg`, or `image/webp` mime types). By default,+ * raw HTML is replaced by a placeholder HTML comment. Unsafe+ * links are replaced by empty strings.+ */+#define CMARK_OPT_UNSAFE (1 << 17) /** Render `softbreak` elements as spaces. */
cbits/cmark_ctype.c view
@@ -6,7 +6,7 @@ */ static const uint8_t cmark_ctype_class[256] = { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */- /* 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0,+ /* 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, /* 1 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 2 */ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* 3 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2,
cbits/cmark_export.h view
@@ -7,7 +7,7 @@ # define CMARK_NO_EXPORT #else # ifndef CMARK_EXPORT-# ifdef libcmark_EXPORTS+# ifdef cmark_EXPORTS /* We are building this library */ # define CMARK_EXPORT __attribute__((visibility("default"))) # else@@ -39,4 +39,4 @@ # endif #endif -#endif+#endif /* CMARK_EXPORT_H */
cbits/cmark_version.h view
@@ -1,7 +1,7 @@ #ifndef CMARK_VERSION_H #define CMARK_VERSION_H -#define CMARK_VERSION ((0 << 16) | (28 << 8) | 0)-#define CMARK_VERSION_STRING "0.28.0"+#define CMARK_VERSION ((0 << 16) | (30 << 8) | 3)+#define CMARK_VERSION_STRING "0.30.3" #endif
cbits/commonmark.c view
@@ -28,13 +28,19 @@ renderer->buffer->size > 0 && cmark_isdigit(renderer->buffer->ptr[renderer->buffer->size - 1]); char encoded[ENCODED_SIZE];+ int options = renderer->options; needs_escaping = c < 0x80 && escape != LITERAL && ((escape == NORMAL &&- (c == '*' || c == '_' || c == '[' || c == ']' || c == '#' || c == '<' ||+ (c < 0x20 ||+ c == '*' || c == '_' || c == '[' || c == ']' || c == '#' || c == '<' || c == '>' || c == '\\' || c == '`' || c == '!' || (c == '&' && cmark_isalpha(nextc)) || (c == '!' && nextc == '[') ||+ ((CMARK_OPT_SMART & options) &&+ ((c == '-' && nextc == '-') ||+ (c == '.' && nextc == '.') ||+ c == '"' || c == '\'')) || (renderer->begin_content && (c == '-' || c == '+' || c == '=') && // begin_content doesn't get set to false til we've passed digits // at the beginning of line, so...@@ -48,14 +54,18 @@ (c == '`' || c == '<' || c == '>' || c == '"' || c == '\\'))); if (needs_escaping) {- if (cmark_isspace(c)) {+ if (escape == URL && cmark_isspace(c)) { // use percent encoding for spaces- snprintf(encoded, ENCODED_SIZE, "%%%2x", c);+ snprintf(encoded, ENCODED_SIZE, "%%%2X", c); cmark_strbuf_puts(renderer->buffer, encoded); renderer->column += 3;- } else {+ } else if (cmark_ispunct(c)) { cmark_render_ascii(renderer, "\\"); cmark_render_code_point(renderer, c);+ } else { // render as entity+ snprintf(encoded, ENCODED_SIZE, "&#%d;", c);+ cmark_strbuf_puts(renderer->buffer, encoded);+ renderer->column += strlen(encoded); } } else { cmark_render_code_point(renderer, c);@@ -109,24 +119,22 @@ } static bool is_autolink(cmark_node *node) {- cmark_chunk *title;- cmark_chunk *url;+ const unsigned char *title;+ const unsigned char *url; cmark_node *link_text;- char *realurl;- int realurllen; if (node->type != CMARK_NODE_LINK) { return false; } - url = &node->as.link.url;- if (url->len == 0 || scan_scheme(url, 0) == 0) {+ url = node->as.link.url;+ if (url == NULL || _scan_scheme(url) == 0) { return false; } - title = &node->as.link.title;+ title = node->as.link.title; // if it has a title, we can't treat it as an autolink:- if (title->len > 0) {+ if (title && title[0]) { return false; } @@ -135,30 +143,11 @@ return false; } cmark_consolidate_text_nodes(link_text);- realurl = (char *)url->data;- realurllen = url->len;- if (strncmp(realurl, "mailto:", 7) == 0) {- realurl += 7;- realurllen -= 7;- }- return (realurllen == link_text->as.literal.len &&- strncmp(realurl, (char *)link_text->as.literal.data,- link_text->as.literal.len) == 0);-}--// if node is a block node, returns node.-// otherwise returns first block-level node that is an ancestor of node.-// if there is no block-level ancestor, returns NULL.-static cmark_node *get_containing_block(cmark_node *node) {- while (node) {- if (node->type >= CMARK_NODE_FIRST_BLOCK &&- node->type <= CMARK_NODE_LAST_BLOCK) {- return node;- } else {- node = node->parent;- }+ if (strncmp((const char *)url, "mailto:", 7) == 0) {+ url += 7; }- return NULL;+ return link_text->data != NULL &&+ strcmp((const char *)url, (char *)link_text->data) == 0; } static int S_render_node(cmark_renderer *renderer, cmark_node *node,@@ -166,29 +155,35 @@ cmark_node *tmp; int list_number; cmark_delim_type list_delim;- int numticks;- int i;+ size_t numticks;+ bool extra_spaces;+ size_t i; bool entering = (ev_type == CMARK_EVENT_ENTER); const char *info, *code, *title;- size_t info_len, code_len;+ char fencechar[2] = {'\0', '\0'};+ size_t code_len; char listmarker[LISTMARKER_SIZE];- char *emph_delim;+ const char *emph_delim; bool first_in_list_item; bufsize_t marker_width;+ bool has_nonspace; bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options) && !(CMARK_OPT_HARDBREAKS & options); // Don't adjust tight list status til we've started the list.- // Otherwise we loose the blank line between a paragraph and+ // Otherwise we lose the blank line between a paragraph and // a following list.- if (!(node->type == CMARK_NODE_ITEM && node->prev == NULL && entering)) {- tmp = get_containing_block(node);- renderer->in_tight_list_item =- tmp && // tmp might be NULL if there is no containing block- ((tmp->type == CMARK_NODE_ITEM &&- cmark_node_get_list_tight(tmp->parent)) ||- (tmp && tmp->parent && tmp->parent->type == CMARK_NODE_ITEM &&- cmark_node_get_list_tight(tmp->parent->parent)));+ if (entering) {+ if (node->parent && node->parent->type == CMARK_NODE_ITEM) {+ renderer->in_tight_list_item = node->parent->parent->as.list.tight;+ }+ } else {+ if (node->type == CMARK_NODE_LIST) {+ renderer->in_tight_list_item =+ node->parent &&+ node->parent->type == CMARK_NODE_ITEM &&+ node->parent->parent->as.list.tight;+ } } switch (node->type) {@@ -207,8 +202,7 @@ break; case CMARK_NODE_LIST:- if (!entering && node->next && (node->next->type == CMARK_NODE_CODE_BLOCK ||- node->next->type == CMARK_NODE_LIST)) {+ if (!entering && node->next && (node->next->type == CMARK_NODE_LIST)) { // this ensures that a following indented code block or list will be // inteprereted correctly. CR();@@ -269,6 +263,7 @@ break; case CMARK_NODE_CODE_BLOCK:+ first_in_list_item = node->prev == NULL && node->parent && node->parent->type == CMARK_NODE_ITEM; @@ -276,37 +271,25 @@ BLANKLINE(); } info = cmark_node_get_fence_info(node);- info_len = strlen(info);+ fencechar[0] = strchr(info, '`') == NULL ? '`' : '~'; code = cmark_node_get_literal(node);- code_len = strlen(code);- // use indented form if no info, and code doesn't- // begin or end with a blank line, and code isn't- // first thing in a list item- if (info_len == 0 && (code_len > 2 && !cmark_isspace(code[0]) &&- !(cmark_isspace(code[code_len - 1]) &&- cmark_isspace(code[code_len - 2]))) &&- !first_in_list_item) {- LIT(" ");- cmark_strbuf_puts(renderer->prefix, " ");- OUT(cmark_node_get_literal(node), false, LITERAL);- cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 4);- } else {- numticks = longest_backtick_sequence(code) + 1;- if (numticks < 3) {- numticks = 3;- }- for (i = 0; i < numticks; i++) {- LIT("`");- }- LIT(" ");- OUT(info, false, LITERAL);- CR();- OUT(cmark_node_get_literal(node), false, LITERAL);- CR();- for (i = 0; i < numticks; i++) {- LIT("`");- }++ numticks = longest_backtick_sequence(code) + 1;+ if (numticks < 3) {+ numticks = 3; }+ for (i = 0; i < numticks; i++) {+ LIT(fencechar);+ }+ LIT(" ");+ OUT(info, false, LITERAL);+ CR();+ OUT(cmark_node_get_literal(node), false, LITERAL);+ CR();+ for (i = 0; i < numticks; i++) {+ LIT(fencechar);+ }+ BLANKLINE(); break; @@ -363,14 +346,24 @@ code = cmark_node_get_literal(node); code_len = strlen(code); numticks = shortest_unused_backtick_sequence(code);+ has_nonspace = false;+ for (i=0; i < code_len; i++) {+ if (code[i] != ' ') {+ has_nonspace = true;+ break;+ }+ }+ extra_spaces = code_len == 0 ||+ code[0] == '`' || code[code_len - 1] == '`' ||+ (has_nonspace && code[0] == ' ' && code[code_len - 1] == ' '); for (i = 0; i < numticks; i++) { LIT("`"); }- if (code_len == 0 || code[0] == '`') {+ if (extra_spaces) { LIT(" "); } OUT(cmark_node_get_literal(node), allow_wrap, LITERAL);- if (code_len == 0 || code[code_len - 1] == '`') {+ if (extra_spaces) { LIT(" "); } for (i = 0; i < numticks; i++) {
cbits/houdini_href_e.c view
@@ -7,20 +7,20 @@ /* * The following characters will not be escaped: *- * -_.+!*'(),%#@?=;:/,+&$ alphanum+ * -_.+!*'(),%#@?=;:/,+&$~ alphanum * * Note that this character set is the addition of: *- * - The characters which are safe to be in an URL- * - The characters which are *not* safe to be in- * an URL because they are RESERVED characters.+ * - The characters which are safe to be in an URL+ * - The characters which are *not* safe to be in+ * an URL because they are RESERVED characters. *- * We asume (lazily) that any RESERVED char that+ * We assume (lazily) that any RESERVED char that * appears inside an URL is actually meant to * have its native function (i.e. as an URL * component/separator) and hence needs no escaping. *- * There are two exceptions: the chacters & (amp)+ * There are two exceptions: the characters & (amp) * and ' (single quote) do not appear in the table. * They are meant to appear in the URL as components, * yet they require special HTML-entity escaping@@ -35,7 +35,7 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,- 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,@@ -81,9 +81,9 @@ * for now. the plus thing is more commonly seen * when building GET strings */ #if 0- case ' ':- cmark_strbuf_putc(ob, '+');- break;+ case ' ':+ cmark_strbuf_putc(ob, '+');+ break; #endif /* every other character goes with a %XX escaping */
cbits/houdini_html_u.c view
@@ -42,6 +42,7 @@ if (size >= 3 && src[0] == '#') { int codepoint = 0; int num_digits = 0;+ int max_digits = 7; if (_isdigit(src[1])) { for (i = 1; i < size && _isdigit(src[i]); ++i) {@@ -55,6 +56,7 @@ } num_digits = i - 1;+ max_digits = 7; } else if (src[1] == 'x' || src[1] == 'X') {@@ -69,9 +71,11 @@ } num_digits = i - 2;+ max_digits = 6; } - if (num_digits >= 1 && num_digits <= 8 && i < size && src[i] == ';') {+ if (num_digits >= 1 && num_digits <= max_digits &&+ i < size && src[i] == ';') { if (codepoint == 0 || (codepoint >= 0xD800 && codepoint < 0xE000) || codepoint >= 0x110000) { codepoint = 0xFFFD;
cbits/html.c view
@@ -61,7 +61,7 @@ case CMARK_NODE_TEXT: case CMARK_NODE_CODE: case CMARK_NODE_HTML_INLINE:- escape_html(html, node->as.literal.data, node->as.literal.len);+ escape_html(html, node->data, node->len); break; case CMARK_NODE_LINEBREAK:@@ -92,7 +92,7 @@ break; case CMARK_NODE_LIST: {- cmark_list_type list_type = node->as.list.list_type;+ cmark_list_type list_type = (cmark_list_type)node->as.list.list_type; int start = node->as.list.start; if (entering) {@@ -146,49 +146,48 @@ case CMARK_NODE_CODE_BLOCK: cr(html); - if (node->as.code.info.len == 0) {+ if (node->as.code.info == NULL || node->as.code.info[0] == 0) { cmark_strbuf_puts(html, "<pre"); S_render_sourcepos(node, html, options); cmark_strbuf_puts(html, "><code>"); } else { bufsize_t first_tag = 0;- while (first_tag < node->as.code.info.len &&- !cmark_isspace(node->as.code.info.data[first_tag])) {+ while (node->as.code.info[first_tag] &&+ !cmark_isspace(node->as.code.info[first_tag])) { first_tag += 1; } cmark_strbuf_puts(html, "<pre"); S_render_sourcepos(node, html, options); cmark_strbuf_puts(html, "><code class=\"language-");- escape_html(html, node->as.code.info.data, first_tag);+ escape_html(html, node->as.code.info, first_tag); cmark_strbuf_puts(html, "\">"); } - escape_html(html, node->as.code.literal.data, node->as.code.literal.len);+ escape_html(html, node->data, node->len); cmark_strbuf_puts(html, "</code></pre>\n"); break; case CMARK_NODE_HTML_BLOCK: cr(html);- if (options & CMARK_OPT_SAFE) {+ if (!(options & CMARK_OPT_UNSAFE)) { cmark_strbuf_puts(html, "<!-- raw HTML omitted -->"); } else {- cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len);+ cmark_strbuf_put(html, node->data, node->len); } cr(html); break; - case CMARK_NODE_CUSTOM_BLOCK:+ case CMARK_NODE_CUSTOM_BLOCK: {+ unsigned char *block = entering ? node->as.custom.on_enter :+ node->as.custom.on_exit; cr(html);- if (entering) {- cmark_strbuf_put(html, node->as.custom.on_enter.data,- node->as.custom.on_enter.len);- } else {- cmark_strbuf_put(html, node->as.custom.on_exit.data,- node->as.custom.on_exit.len);+ if (block) {+ cmark_strbuf_puts(html, (char *)block); } cr(html); break;+ } case CMARK_NODE_THEMATIC_BREAK: cr(html);@@ -218,7 +217,7 @@ break; case CMARK_NODE_TEXT:- escape_html(html, node->as.literal.data, node->as.literal.len);+ escape_html(html, node->data, node->len); break; case CMARK_NODE_LINEBREAK:@@ -237,27 +236,26 @@ case CMARK_NODE_CODE: cmark_strbuf_puts(html, "<code>");- escape_html(html, node->as.literal.data, node->as.literal.len);+ escape_html(html, node->data, node->len); cmark_strbuf_puts(html, "</code>"); break; case CMARK_NODE_HTML_INLINE:- if (options & CMARK_OPT_SAFE) {+ if (!(options & CMARK_OPT_UNSAFE)) { cmark_strbuf_puts(html, "<!-- raw HTML omitted -->"); } else {- cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len);+ cmark_strbuf_put(html, node->data, node->len); } break; - case CMARK_NODE_CUSTOM_INLINE:- if (entering) {- cmark_strbuf_put(html, node->as.custom.on_enter.data,- node->as.custom.on_enter.len);- } else {- cmark_strbuf_put(html, node->as.custom.on_exit.data,- node->as.custom.on_exit.len);+ case CMARK_NODE_CUSTOM_INLINE: {+ unsigned char *block = entering ? node->as.custom.on_enter :+ node->as.custom.on_exit;+ if (block) {+ cmark_strbuf_puts(html, (char *)block); } break;+ } case CMARK_NODE_STRONG: if (entering) {@@ -278,14 +276,15 @@ case CMARK_NODE_LINK: if (entering) { cmark_strbuf_puts(html, "<a href=\"");- if (!((options & CMARK_OPT_SAFE) &&- scan_dangerous_url(&node->as.link.url, 0))) {- houdini_escape_href(html, node->as.link.url.data,- node->as.link.url.len);+ if (node->as.link.url && ((options & CMARK_OPT_UNSAFE) ||+ !(_scan_dangerous_url(node->as.link.url)))) {+ houdini_escape_href(html, node->as.link.url,+ strlen((char *)node->as.link.url)); }- if (node->as.link.title.len) {+ if (node->as.link.title) { cmark_strbuf_puts(html, "\" title=\"");- escape_html(html, node->as.link.title.data, node->as.link.title.len);+ escape_html(html, node->as.link.title,+ strlen((char *)node->as.link.title)); } cmark_strbuf_puts(html, "\">"); } else {@@ -296,17 +295,18 @@ case CMARK_NODE_IMAGE: if (entering) { cmark_strbuf_puts(html, "<img src=\"");- if (!((options & CMARK_OPT_SAFE) &&- scan_dangerous_url(&node->as.link.url, 0))) {- houdini_escape_href(html, node->as.link.url.data,- node->as.link.url.len);+ if (node->as.link.url && ((options & CMARK_OPT_UNSAFE) ||+ !(_scan_dangerous_url(node->as.link.url)))) {+ houdini_escape_href(html, node->as.link.url,+ strlen((char *)node->as.link.url)); } cmark_strbuf_puts(html, "\" alt=\""); state->plain = node; } else {- if (node->as.link.title.len) {+ if (node->as.link.title) { cmark_strbuf_puts(html, "\" title=\"");- escape_html(html, node->as.link.title.data, node->as.link.title.len);+ escape_html(html, node->as.link.title,+ strlen((char *)node->as.link.title)); } cmark_strbuf_puts(html, "\" />");@@ -324,7 +324,7 @@ char *cmark_render_html(cmark_node *root, int options) { char *result;- cmark_strbuf html = CMARK_BUF_INIT(cmark_node_mem(root));+ cmark_strbuf html = CMARK_BUF_INIT(root->mem); cmark_event_type ev_type; cmark_node *cur; struct render_state state = {&html, NULL};
cbits/inlines.c view
@@ -22,9 +22,6 @@ static const char *RIGHTSINGLEQUOTE = "\xE2\x80\x99"; // Macros for creating various kinds of simple.-#define make_str(mem, s) make_literal(mem, CMARK_NODE_TEXT, s)-#define make_code(mem, s) make_literal(mem, CMARK_NODE_CODE, s)-#define make_raw_html(mem, s) make_literal(mem, CMARK_NODE_HTML_INLINE, s) #define make_linebreak(mem) make_simple(mem, CMARK_NODE_LINEBREAK) #define make_softbreak(mem) make_simple(mem, CMARK_NODE_SOFTBREAK) #define make_emph(mem) make_simple(mem, CMARK_NODE_EMPH)@@ -36,6 +33,7 @@ struct delimiter *previous; struct delimiter *next; cmark_node *inl_text;+ bufsize_t position; bufsize_t length; unsigned char delim_char; bool can_open;@@ -44,7 +42,6 @@ typedef struct bracket { struct bracket *previous;- struct delimiter *previous_delimiter; cmark_node *inl_text; bufsize_t position; bool image;@@ -52,15 +49,25 @@ bool bracket_after; } bracket; +#define FLAG_SKIP_HTML_CDATA (1u << 0)+#define FLAG_SKIP_HTML_DECLARATION (1u << 1)+#define FLAG_SKIP_HTML_PI (1u << 2)+#define FLAG_SKIP_HTML_COMMENT (1u << 3)+ typedef struct { cmark_mem *mem; cmark_chunk input;+ unsigned flags;+ int line; bufsize_t pos;+ int block_offset;+ int column_offset; cmark_reference_map *refmap; delimiter *last_delim; bracket *last_bracket; bufsize_t backticks[MAXBACKTICKS + 1]; bool scanned_for_backticks;+ bool no_link_openers; } subject; static CMARK_INLINE bool S_is_line_end_char(char c) {@@ -72,91 +79,129 @@ static int parse_inline(subject *subj, cmark_node *parent, int options); -static void subject_from_buf(cmark_mem *mem, subject *e, cmark_strbuf *buffer,- cmark_reference_map *refmap);+static void subject_from_buf(cmark_mem *mem, int line_number, int block_offset, subject *e,+ cmark_chunk *chunk, cmark_reference_map *refmap); static bufsize_t subject_find_special_char(subject *subj, int options); // Create an inline with a literal string value.-static CMARK_INLINE cmark_node *make_literal(cmark_mem *mem, cmark_node_type t,- cmark_chunk s) {- cmark_node *e = (cmark_node *)mem->calloc(1, sizeof(*e));- cmark_strbuf_init(mem, &e->content, 0);- e->type = t;- e->as.literal = s;+static CMARK_INLINE cmark_node *make_literal(subject *subj, cmark_node_type t,+ int start_column, int end_column) {+ cmark_node *e = (cmark_node *)subj->mem->calloc(1, sizeof(*e));+ e->mem = subj->mem;+ e->type = (uint16_t)t;+ e->start_line = e->end_line = subj->line;+ // columns are 1 based.+ e->start_column = start_column + 1 + subj->column_offset + subj->block_offset;+ e->end_column = end_column + 1 + subj->column_offset + subj->block_offset; return e; } // Create an inline with no value. static CMARK_INLINE cmark_node *make_simple(cmark_mem *mem, cmark_node_type t) { cmark_node *e = (cmark_node *)mem->calloc(1, sizeof(*e));- cmark_strbuf_init(mem, &e->content, 0);+ e->mem = mem; e->type = t; return e; } +static cmark_node *make_str(subject *subj, int sc, int ec, cmark_chunk s) {+ cmark_node *e = make_literal(subj, CMARK_NODE_TEXT, sc, ec);+ e->data = (unsigned char *)subj->mem->realloc(NULL, s.len + 1);+ if (s.data != NULL) {+ memcpy(e->data, s.data, s.len);+ }+ e->data[s.len] = 0;+ e->len = s.len;+ return e;+}++static cmark_node *make_str_from_buf(subject *subj, int sc, int ec,+ cmark_strbuf *buf) {+ cmark_node *e = make_literal(subj, CMARK_NODE_TEXT, sc, ec);+ e->len = buf->size;+ e->data = cmark_strbuf_detach(buf);+ return e;+}+ // Like make_str, but parses entities.-static cmark_node *make_str_with_entities(cmark_mem *mem,+static cmark_node *make_str_with_entities(subject *subj,+ int start_column, int end_column, cmark_chunk *content) {- cmark_strbuf unescaped = CMARK_BUF_INIT(mem);+ cmark_strbuf unescaped = CMARK_BUF_INIT(subj->mem); if (houdini_unescape_html(&unescaped, content->data, content->len)) {- return make_str(mem, cmark_chunk_buf_detach(&unescaped));+ return make_str_from_buf(subj, start_column, end_column, &unescaped); } else {- return make_str(mem, *content);+ return make_str(subj, start_column, end_column, *content); } } -// Duplicate a chunk by creating a copy of the buffer not by reusing the-// buffer like cmark_chunk_dup does.-static cmark_chunk chunk_clone(cmark_mem *mem, cmark_chunk *src) {- cmark_chunk c;- bufsize_t len = src->len;+// Like cmark_node_append_child but without costly sanity checks.+// Assumes that child was newly created.+static void append_child(cmark_node *node, cmark_node *child) {+ cmark_node *old_last_child = node->last_child; - c.len = len;- c.data = (unsigned char *)mem->calloc(len + 1, 1);- c.alloc = 1;- if (len)- memcpy(c.data, src->data, len);- c.data[len] = '\0';+ child->next = NULL;+ child->prev = old_last_child;+ child->parent = node;+ node->last_child = child; - return c;+ if (old_last_child) {+ old_last_child->next = child;+ } else {+ // Also set first_child if node previously had no children.+ node->first_child = child;+ } } -static cmark_chunk cmark_clean_autolink(cmark_mem *mem, cmark_chunk *url,- int is_email) {+// Duplicate a chunk by creating a copy of the buffer not by reusing the+// buffer like cmark_chunk_dup does.+static unsigned char *cmark_strdup(cmark_mem *mem, unsigned char *src) {+ if (src == NULL) {+ return NULL;+ }+ size_t len = strlen((char *)src);+ unsigned char *data = (unsigned char *)mem->realloc(NULL, len + 1);+ memcpy(data, src, len + 1);+ return data;+}++static unsigned char *cmark_clean_autolink(cmark_mem *mem, cmark_chunk *url,+ int is_email) { cmark_strbuf buf = CMARK_BUF_INIT(mem); cmark_chunk_trim(url); - if (url->len == 0) {- cmark_chunk result = CMARK_CHUNK_EMPTY;- return result;- }- if (is_email) cmark_strbuf_puts(&buf, "mailto:"); houdini_unescape_html_f(&buf, url->data, url->len);- return cmark_chunk_buf_detach(&buf);+ return cmark_strbuf_detach(&buf); } -static CMARK_INLINE cmark_node *make_autolink(cmark_mem *mem, cmark_chunk url,- int is_email) {- cmark_node *link = make_simple(mem, CMARK_NODE_LINK);- link->as.link.url = cmark_clean_autolink(mem, &url, is_email);- link->as.link.title = cmark_chunk_literal("");- cmark_node_append_child(link, make_str_with_entities(mem, &url));+static CMARK_INLINE cmark_node *make_autolink(subject *subj,+ int start_column, int end_column,+ cmark_chunk url, int is_email) {+ cmark_node *link = make_simple(subj->mem, CMARK_NODE_LINK);+ link->as.link.url = cmark_clean_autolink(subj->mem, &url, is_email);+ link->as.link.title = NULL;+ link->start_line = link->end_line = subj->line;+ link->start_column = start_column + 1;+ link->end_column = end_column + 1;+ append_child(link, make_str_with_entities(subj, start_column + 1, end_column - 1, &url)); return link; } -static void subject_from_buf(cmark_mem *mem, subject *e, cmark_strbuf *buffer,- cmark_reference_map *refmap) {+static void subject_from_buf(cmark_mem *mem, int line_number, int block_offset, subject *e,+ cmark_chunk *chunk, cmark_reference_map *refmap) { int i; e->mem = mem;- e->input.data = buffer->ptr;- e->input.len = buffer->size;- e->input.alloc = 0;+ e->input = *chunk;+ e->flags = 0;+ e->line = line_number; e->pos = 0;+ e->block_offset = block_offset;+ e->column_offset = 0; e->refmap = refmap; e->last_delim = NULL; e->last_bracket = NULL;@@ -164,6 +209,7 @@ e->backticks[i] = 0; } e->scanned_for_backticks = false;+ e->no_link_openers = true; } static CMARK_INLINE int isbacktick(int c) { return (c == '`'); }@@ -223,6 +269,47 @@ return cmark_chunk_dup(&subj->input, startpos, len); } +// Return the number of newlines in a given span of text in a subject. If+// the number is greater than zero, also return the number of characters+// between the last newline and the end of the span in `since_newline`.+static int count_newlines(subject *subj, bufsize_t from, bufsize_t len, int *since_newline) {+ int nls = 0;+ int since_nl = 0;++ while (len--) {+ if (subj->input.data[from++] == '\n') {+ ++nls;+ since_nl = 0;+ } else {+ ++since_nl;+ }+ }++ if (!nls)+ return 0;++ *since_newline = since_nl;+ return nls;+}++// Adjust `node`'s `end_line`, `end_column`, and `subj`'s `line` and+// `column_offset` according to the number of newlines in a just-matched span+// of text in `subj`.+static void adjust_subj_node_newlines(subject *subj, cmark_node *node, int matchlen, int extra, int options) {+ if (!(options & CMARK_OPT_SOURCEPOS)) {+ return;+ }++ int since_newline;+ int newlines = count_newlines(subj, subj->pos - matchlen - extra, matchlen, &since_newline);+ if (newlines) {+ subj->line += newlines;+ node->end_line += newlines;+ node->end_column = since_newline;+ subj->column_offset = -subj->pos + since_newline + extra;+ }+}+ // Try to process a backtick code span that began with a // span of ticks of length openticklength length (already // parsed). Return 0 if you don't find matching closing@@ -268,28 +355,71 @@ return 0; } +// Destructively modify string, converting newlines to+// spaces, then removing a single leading + trailing space,+// unless the code span consists entirely of space characters.+static void S_normalize_code(cmark_strbuf *s) {+ bufsize_t r, w;+ bool contains_nonspace = false;++ for (r = 0, w = 0; r < s->size; ++r) {+ switch (s->ptr[r]) {+ case '\r':+ if (s->ptr[r + 1] != '\n') {+ s->ptr[w++] = ' ';+ }+ break;+ case '\n':+ s->ptr[w++] = ' ';+ break;+ default:+ s->ptr[w++] = s->ptr[r];+ }+ if (s->ptr[r] != ' ') {+ contains_nonspace = true;+ }+ }++ // begins and ends with space?+ if (contains_nonspace &&+ s->ptr[0] == ' ' && s->ptr[w - 1] == ' ') {+ cmark_strbuf_drop(s, 1);+ cmark_strbuf_truncate(s, w - 2);+ } else {+ cmark_strbuf_truncate(s, w);+ }++}++ // Parse backtick code section or raw backticks, return an inline. // Assumes that the subject has a backtick at the current position.-static cmark_node *handle_backticks(subject *subj) {+static cmark_node *handle_backticks(subject *subj, int options) {+ bufsize_t initpos = subj->pos; cmark_chunk openticks = take_while(subj, isbacktick); bufsize_t startpos = subj->pos; bufsize_t endpos = scan_to_closing_backticks(subj, openticks.len); if (endpos == 0) { // not found subj->pos = startpos; // rewind- return make_str(subj->mem, openticks);+ return make_str(subj, initpos, initpos + openticks.len - 1, openticks); } else { cmark_strbuf buf = CMARK_BUF_INIT(subj->mem); cmark_strbuf_set(&buf, subj->input.data + startpos, endpos - startpos - openticks.len);- cmark_strbuf_trim(&buf);- cmark_strbuf_normalize_whitespace(&buf);+ S_normalize_code(&buf); - return make_code(subj->mem, cmark_chunk_buf_detach(&buf));+ cmark_node *node = make_literal(subj, CMARK_NODE_CODE, startpos,+ endpos - openticks.len - 1);+ node->len = buf.size;+ node->data = cmark_strbuf_detach(&buf);+ adjust_subj_node_newlines(subj, node, endpos - startpos, openticks.len, options);+ return node; } } + // Scan ***, **, or * and return number scanned, or 0. // Advances position. static int scan_delims(subject *subj, unsigned char c, bool *can_open,@@ -345,7 +475,9 @@ *can_close = right_flanking && (!left_flanking || cmark_utf8proc_is_punctuation(after_char)); } else if (c == '\'' || c == '"') {- *can_open = left_flanking && !right_flanking;+ *can_open = left_flanking &&+ (!right_flanking || before_char == '(' || before_char == '[') &&+ before_char != ']' && before_char != ')'; *can_close = right_flanking; } else { *can_open = left_flanking;@@ -401,7 +533,8 @@ delim->can_open = can_open; delim->can_close = can_close; delim->inl_text = inl_text;- delim->length = inl_text->as.literal.len;+ delim->position = subj->pos;+ delim->length = inl_text->len; delim->previous = subj->last_delim; delim->next = NULL; if (delim->previous != NULL) {@@ -419,10 +552,12 @@ b->active = true; b->inl_text = inl_text; b->previous = subj->last_bracket;- b->previous_delimiter = subj->last_delim; b->position = subj->pos; b->bracket_after = false; subj->last_bracket = b;+ if (!image) {+ subj->no_link_openers = false;+ } } // Assumes the subject has a c at the current position.@@ -443,7 +578,7 @@ contents = cmark_chunk_dup(&subj->input, subj->pos - numdelims, numdelims); } - inl_text = make_str(subj->mem, contents);+ inl_text = make_str(subj, subj->pos - numdelims, subj->pos - 1, contents); if ((can_open || can_close) && (!(c == '\'' || c == '"') || smart)) { push_delimiter(subj, c, can_open, can_close, inl_text);@@ -459,7 +594,7 @@ advance(subj); if (!smart || peek_char(subj) != '-') {- return make_str(subj->mem, cmark_chunk_literal("-"));+ return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("-")); } while (smart && peek_char(subj) == '-') {@@ -492,7 +627,7 @@ cmark_strbuf_puts(&buf, ENDASH); } - return make_str(subj->mem, cmark_chunk_buf_detach(&buf));+ return make_str_from_buf(subj, startpos, subj->pos - 1, &buf); } // Assumes we have a period at the current position.@@ -502,27 +637,31 @@ advance(subj); if (peek_char(subj) == '.') { advance(subj);- return make_str(subj->mem, cmark_chunk_literal(ELLIPSES));+ return make_str(subj, subj->pos - 3, subj->pos - 1, cmark_chunk_literal(ELLIPSES)); } else {- return make_str(subj->mem, cmark_chunk_literal(".."));+ return make_str(subj, subj->pos - 2, subj->pos - 1, cmark_chunk_literal("..")); } } else {- return make_str(subj->mem, cmark_chunk_literal("."));+ return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal(".")); } } -static void process_emphasis(subject *subj, delimiter *stack_bottom) {- delimiter *closer = subj->last_delim;+static void process_emphasis(subject *subj, bufsize_t stack_bottom) {+ delimiter *candidate;+ delimiter *closer = NULL; delimiter *opener; delimiter *old_closer; bool opener_found;- int openers_bottom_index;- delimiter *openers_bottom[6] = {stack_bottom, stack_bottom, stack_bottom,- stack_bottom, stack_bottom, stack_bottom};+ int openers_bottom_index = 0;+ bufsize_t openers_bottom[9] = {stack_bottom, stack_bottom, stack_bottom,+ stack_bottom, stack_bottom, stack_bottom,+ stack_bottom, stack_bottom, stack_bottom}; // move back to first relevant delim.- while (closer != NULL && closer->previous != stack_bottom) {- closer = closer->previous;+ candidate = subj->last_delim;+ while (candidate != NULL && candidate->position >= stack_bottom) {+ closer = candidate;+ candidate = candidate->previous; } // now move forward, looking for closers, and handling each@@ -539,7 +678,8 @@ openers_bottom_index = 2; break; case '*':- openers_bottom_index = 3 + (closer->length % 3);+ openers_bottom_index = 3 ++ (closer->can_open ? 3 : 0) + (closer->length % 3); break; default: assert(false);@@ -548,12 +688,14 @@ // Now look backwards for first matching opener: opener = closer->previous; opener_found = false;- while (opener != NULL && opener != openers_bottom[openers_bottom_index]) {+ while (opener != NULL &&+ opener->position >= openers_bottom[openers_bottom_index]) { if (opener->can_open && opener->delim_char == closer->delim_char) { // interior closer of size 2 can't match opener of size 1 // or of size 1 can't match 2 if (!(closer->can_open || opener->can_close) ||- ((opener->length + closer->length) % 3) != 0) {+ closer->length % 3 == 0 ||+ (opener->length + closer->length) % 3 != 0) { opener_found = true; break; }@@ -567,26 +709,26 @@ } else { closer = closer->next; }- } else if (closer->delim_char == '\'') {- cmark_chunk_free(subj->mem, &closer->inl_text->as.literal);- closer->inl_text->as.literal = cmark_chunk_literal(RIGHTSINGLEQUOTE);- if (opener_found) {- cmark_chunk_free(subj->mem, &opener->inl_text->as.literal);- opener->inl_text->as.literal = cmark_chunk_literal(LEFTSINGLEQUOTE);+ } else if (closer->delim_char == '\'' || closer->delim_char == '"') {+ if (closer->delim_char == '\'') {+ cmark_node_set_literal(closer->inl_text, RIGHTSINGLEQUOTE);+ } else {+ cmark_node_set_literal(closer->inl_text, RIGHTDOUBLEQUOTE); } closer = closer->next;- } else if (closer->delim_char == '"') {- cmark_chunk_free(subj->mem, &closer->inl_text->as.literal);- closer->inl_text->as.literal = cmark_chunk_literal(RIGHTDOUBLEQUOTE); if (opener_found) {- cmark_chunk_free(subj->mem, &opener->inl_text->as.literal);- opener->inl_text->as.literal = cmark_chunk_literal(LEFTDOUBLEQUOTE);+ if (old_closer->delim_char == '\'') {+ cmark_node_set_literal(opener->inl_text, LEFTSINGLEQUOTE);+ } else {+ cmark_node_set_literal(opener->inl_text, LEFTDOUBLEQUOTE);+ }+ remove_delimiter(subj, opener);+ remove_delimiter(subj, old_closer); }- closer = closer->next; } if (!opener_found) { // set lower bound for future searches for openers- openers_bottom[openers_bottom_index] = old_closer->previous;+ openers_bottom[openers_bottom_index] = old_closer->position; if (!old_closer->can_open) { // we can remove a closer that can't be an // opener, once we've seen there's no@@ -599,7 +741,8 @@ } } // free all delimiters in list until stack_bottom:- while (subj->last_delim != NULL && subj->last_delim != stack_bottom) {+ while (subj->last_delim != NULL &&+ subj->last_delim->position >= stack_bottom) { remove_delimiter(subj, subj->last_delim); } }@@ -610,18 +753,20 @@ bufsize_t use_delims; cmark_node *opener_inl = opener->inl_text; cmark_node *closer_inl = closer->inl_text;- bufsize_t opener_num_chars = opener_inl->as.literal.len;- bufsize_t closer_num_chars = closer_inl->as.literal.len;+ bufsize_t opener_num_chars = opener_inl->len;+ bufsize_t closer_num_chars = closer_inl->len; cmark_node *tmp, *tmpnext, *emph; // calculate the actual number of characters used from this closer- use_delims = (closer_num_chars >= 2 && opener_num_chars >=2) ? 2 : 1;+ use_delims = (closer_num_chars >= 2 && opener_num_chars >= 2) ? 2 : 1; // remove used characters from associated inlines. opener_num_chars -= use_delims; closer_num_chars -= use_delims;- opener_inl->as.literal.len = opener_num_chars;- closer_inl->as.literal.len = closer_num_chars;+ opener_inl->len = opener_num_chars;+ opener_inl->data[opener_num_chars] = 0;+ closer_inl->len = closer_num_chars;+ closer_inl->data[closer_num_chars] = 0; // free delimiters between opener and closer delim = closer->previous;@@ -638,11 +783,17 @@ tmp = opener_inl->next; while (tmp && tmp != closer_inl) { tmpnext = tmp->next;- cmark_node_append_child(emph, tmp);+ cmark_node_unlink(tmp);+ append_child(emph, tmp); tmp = tmpnext; } cmark_node_insert_after(opener_inl, emph); + emph->start_line = opener_inl->start_line;+ emph->end_line = closer_inl->end_line;+ emph->start_column = opener_inl->start_column;+ emph->end_column = closer_inl->end_column;+ // if opener has 0 characters, remove it and its associated inline if (opener_num_chars == 0) { cmark_node_free(opener_inl);@@ -669,11 +820,11 @@ if (cmark_ispunct( nextchar)) { // only ascii symbols and newline can be escaped advance(subj);- return make_str(subj->mem, cmark_chunk_dup(&subj->input, subj->pos - 1, 1));+ return make_str(subj, subj->pos - 2, subj->pos - 1, cmark_chunk_dup(&subj->input, subj->pos - 1, 1)); } else if (!is_eof(subj) && skip_line_end(subj)) { return make_linebreak(subj->mem); } else {- return make_str(subj->mem, cmark_chunk_literal("\\"));+ return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("\\")); } } @@ -688,38 +839,32 @@ len = houdini_unescape_ent(&ent, subj->input.data + subj->pos, subj->input.len - subj->pos); - if (len == 0)- return make_str(subj->mem, cmark_chunk_literal("&"));+ if (len <= 0)+ return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("&")); subj->pos += len;- return make_str(subj->mem, cmark_chunk_buf_detach(&ent));+ return make_str_from_buf(subj, subj->pos - 1 - len, subj->pos - 1, &ent); } // Clean a URL: remove surrounding whitespace, and remove \ that escape // punctuation.-cmark_chunk cmark_clean_url(cmark_mem *mem, cmark_chunk *url) {+unsigned char *cmark_clean_url(cmark_mem *mem, cmark_chunk *url) { cmark_strbuf buf = CMARK_BUF_INIT(mem); cmark_chunk_trim(url); - if (url->len == 0) {- cmark_chunk result = CMARK_CHUNK_EMPTY;- return result;- }- houdini_unescape_html_f(&buf, url->data, url->len); cmark_strbuf_unescape(&buf);- return cmark_chunk_buf_detach(&buf);+ return cmark_strbuf_detach(&buf); } -cmark_chunk cmark_clean_title(cmark_mem *mem, cmark_chunk *title) {+unsigned char *cmark_clean_title(cmark_mem *mem, cmark_chunk *title) { cmark_strbuf buf = CMARK_BUF_INIT(mem); unsigned char first, last; if (title->len == 0) {- cmark_chunk result = CMARK_CHUNK_EMPTY;- return result;+ return NULL; } first = title->data[0];@@ -734,12 +879,12 @@ } cmark_strbuf_unescape(&buf);- return cmark_chunk_buf_detach(&buf);+ return cmark_strbuf_detach(&buf); } // Parse an autolink or HTML tag. // Assumes the subject has a '<' character at the current position.-static cmark_node *handle_pointy_brace(subject *subj) {+static cmark_node *handle_pointy_brace(subject *subj, int options) { bufsize_t matchlen = 0; cmark_chunk contents; @@ -751,7 +896,7 @@ contents = cmark_chunk_dup(&subj->input, subj->pos, matchlen - 1); subj->pos += matchlen; - return make_autolink(subj->mem, contents, 0);+ return make_autolink(subj, subj->pos - 1 - matchlen, subj->pos - 1, contents, 0); } // next try to match an email autolink@@ -760,19 +905,83 @@ contents = cmark_chunk_dup(&subj->input, subj->pos, matchlen - 1); subj->pos += matchlen; - return make_autolink(subj->mem, contents, 1);+ return make_autolink(subj, subj->pos - 1 - matchlen, subj->pos - 1, contents, 1); } // finally, try to match an html tag- matchlen = scan_html_tag(&subj->input, subj->pos);+ if (subj->pos + 2 <= subj->input.len) {+ int c = subj->input.data[subj->pos];+ if (c == '!' && (subj->flags & FLAG_SKIP_HTML_COMMENT) == 0) {+ c = subj->input.data[subj->pos+1];+ if (c == '-' && subj->input.data[subj->pos+2] == '-') {+ if (subj->input.data[subj->pos+3] == '>') {+ matchlen = 4;+ } else if (subj->input.data[subj->pos+3] == '-' &&+ subj->input.data[subj->pos+4] == '>') {+ matchlen = 5;+ } else {+ matchlen = scan_html_comment(&subj->input, subj->pos + 1);+ if (matchlen > 0) {+ matchlen += 1; // prefix "<"+ } else { // no match through end of input: set a flag so+ // we don't reparse looking for -->:+ subj->flags |= FLAG_SKIP_HTML_COMMENT;+ }+ }+ } else if (c == '[') {+ if ((subj->flags & FLAG_SKIP_HTML_CDATA) == 0) {+ matchlen = scan_html_cdata(&subj->input, subj->pos + 2);+ if (matchlen > 0) {+ // The regex doesn't require the final "]]>". But if we're not at+ // the end of input, it must come after the match. Otherwise,+ // disable subsequent scans to avoid quadratic behavior.+ matchlen += 5; // prefix "![", suffix "]]>"+ if (subj->pos + matchlen > subj->input.len) {+ subj->flags |= FLAG_SKIP_HTML_CDATA;+ matchlen = 0;+ }+ }+ }+ } else if ((subj->flags & FLAG_SKIP_HTML_DECLARATION) == 0) {+ matchlen = scan_html_declaration(&subj->input, subj->pos + 1);+ if (matchlen > 0) {+ matchlen += 2; // prefix "!", suffix ">"+ if (subj->pos + matchlen > subj->input.len) {+ subj->flags |= FLAG_SKIP_HTML_DECLARATION;+ matchlen = 0;+ }+ }+ }+ } else if (c == '?') {+ if ((subj->flags & FLAG_SKIP_HTML_PI) == 0) {+ // Note that we allow an empty match.+ matchlen = scan_html_pi(&subj->input, subj->pos + 1);+ matchlen += 3; // prefix "?", suffix "?>"+ if (subj->pos + matchlen > subj->input.len) {+ subj->flags |= FLAG_SKIP_HTML_PI;+ matchlen = 0;+ }+ }+ } else {+ matchlen = scan_html_tag(&subj->input, subj->pos);+ }+ } if (matchlen > 0) {- contents = cmark_chunk_dup(&subj->input, subj->pos - 1, matchlen + 1);+ const unsigned char *src = subj->input.data + subj->pos - 1;+ bufsize_t len = matchlen + 1; subj->pos += matchlen;- return make_raw_html(subj->mem, contents);+ cmark_node *node = make_literal(subj, CMARK_NODE_HTML_INLINE,+ subj->pos - matchlen - 1, subj->pos - 1);+ node->data = (unsigned char *)subj->mem->realloc(NULL, len + 1);+ memcpy(node->data, src, len);+ node->data[len] = 0;+ node->len = len;+ adjust_subj_node_newlines(subj, node, matchlen, 1, options);+ return node; } // if nothing matches, just return the opening <:- return make_str(subj->mem, cmark_chunk_literal("<"));+ return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("<")); } // Parse a link label. Returns 1 if successful.@@ -821,7 +1030,8 @@ return 0; } -static bufsize_t manual_scan_link_url_2(cmark_chunk *input, bufsize_t offset, cmark_chunk *output) {+static bufsize_t manual_scan_link_url_2(cmark_chunk *input, bufsize_t offset,+ cmark_chunk *output) { bufsize_t i = offset; size_t nb_p = 0; @@ -833,28 +1043,35 @@ else if (input->data[i] == '(') { ++nb_p; ++i;+ if (nb_p > 32)+ return -1; } else if (input->data[i] == ')') { if (nb_p == 0) break; --nb_p; ++i;- } else if (cmark_isspace(input->data[i]))+ } else if (cmark_isspace(input->data[i])) {+ if (i == offset) {+ return -1;+ } break;- else+ } else { ++i;+ } } - if (i >= input->len)+ if (i >= input->len || nb_p != 0) return -1; {- cmark_chunk result = {input->data + offset, i - offset, 0};+ cmark_chunk result = {input->data + offset, i - offset}; *output = result; } return i - offset; } -static bufsize_t manual_scan_link_url(cmark_chunk *input, bufsize_t offset, cmark_chunk *output) {+static bufsize_t manual_scan_link_url(cmark_chunk *input, bufsize_t offset,+ cmark_chunk *output) { bufsize_t i = offset; if (i < input->len && input->data[i] == '<') {@@ -865,8 +1082,8 @@ break; } else if (input->data[i] == '\\') i += 2;- else if (cmark_isspace(input->data[i]) || input->data[i] == '<')- return manual_scan_link_url_2(input, offset, output);+ else if (input->data[i] == '\n' || input->data[i] == '<')+ return -1; else ++i; }@@ -878,7 +1095,7 @@ return -1; {- cmark_chunk result = {input->data + offset + 1, i - 2 - offset, 0};+ cmark_chunk result = {input->data + offset + 1, i - 2 - offset}; *output = result; } return i - offset;@@ -891,7 +1108,7 @@ bufsize_t sps, n; cmark_reference *ref = NULL; cmark_chunk url_chunk, title_chunk;- cmark_chunk url, title;+ unsigned char *url, *title; bracket *opener; cmark_node *inl; cmark_chunk raw_label;@@ -906,25 +1123,26 @@ opener = subj->last_bracket; if (opener == NULL) {- return make_str(subj->mem, cmark_chunk_literal("]"));- }-- if (!opener->active) {- // take delimiter off stack- pop_bracket(subj);- return make_str(subj->mem, cmark_chunk_literal("]"));+ return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("]")); } // If we got here, we matched a potential link/image text. // Now we check to see if it's a link/image. is_image = opener->image; + if (!is_image && subj->no_link_openers) {+ // take delimiter off stack+ pop_bracket(subj);+ return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("]"));+ }+ after_link_text_pos = subj->pos; // First, look for an inline link. if (peek_char(subj) == '(' && ((sps = scan_spacechars(&subj->input, subj->pos + 1)) > -1) &&- ((n = manual_scan_link_url(&subj->input, subj->pos + 1 + sps, &url_chunk)) > -1)) {+ ((n = manual_scan_link_url(&subj->input, subj->pos + 1 + sps,+ &url_chunk)) > -1)) { // try to parse an explicit link: endurl = subj->pos + 1 + sps + n;@@ -944,8 +1162,8 @@ cmark_chunk_dup(&subj->input, starttitle, endtitle - starttitle); url = cmark_clean_url(subj->mem, &url_chunk); title = cmark_clean_title(subj->mem, &title_chunk);- cmark_chunk_free(subj->mem, &url_chunk);- cmark_chunk_free(subj->mem, &title_chunk);+ cmark_chunk_free(&url_chunk);+ cmark_chunk_free(&title_chunk); goto match; } else {@@ -965,7 +1183,7 @@ } if ((!found_label || raw_label.len == 0) && !opener->bracket_after) {- cmark_chunk_free(subj->mem, &raw_label);+ cmark_chunk_free(&raw_label); raw_label = cmark_chunk_dup(&subj->input, opener->position, initial_pos - opener->position - 1); found_label = true;@@ -973,12 +1191,12 @@ if (found_label) { ref = cmark_reference_lookup(subj->refmap, &raw_label);- cmark_chunk_free(subj->mem, &raw_label);+ cmark_chunk_free(&raw_label); } if (ref != NULL) { // found- url = chunk_clone(subj->mem, &ref->url);- title = chunk_clone(subj->mem, &ref->title);+ url = cmark_strdup(subj->mem, ref->url);+ title = cmark_strdup(subj->mem, ref->title); goto match; } else { goto noMatch;@@ -988,42 +1206,36 @@ // If we fall through to here, it means we didn't match a link: pop_bracket(subj); // remove this opener from delimiter list subj->pos = initial_pos;- return make_str(subj->mem, cmark_chunk_literal("]"));+ return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("]")); match: inl = make_simple(subj->mem, is_image ? CMARK_NODE_IMAGE : CMARK_NODE_LINK); inl->as.link.url = url; inl->as.link.title = title;+ inl->start_line = inl->end_line = subj->line;+ inl->start_column = opener->inl_text->start_column;+ inl->end_column = subj->pos + subj->column_offset + subj->block_offset; cmark_node_insert_before(opener->inl_text, inl); // Add link text: tmp = opener->inl_text->next; while (tmp) { tmpnext = tmp->next;- cmark_node_append_child(inl, tmp);+ cmark_node_unlink(tmp);+ append_child(inl, tmp); tmp = tmpnext; } // Free the bracket [: cmark_node_free(opener->inl_text); - process_emphasis(subj, opener->previous_delimiter);+ process_emphasis(subj, opener->position); pop_bracket(subj); - // Now, if we have a link, we also want to deactivate earlier link- // delimiters. (This code can be removed if we decide to allow links+ // Now, if we have a link, we also want to deactivate links until+ // we get a new opener. (This code can be removed if we decide to allow links // inside links.) if (!is_image) {- opener = subj->last_bracket;- while (opener != NULL) {- if (!opener->image) {- if (!opener->active) {- break;- } else {- opener->active = false;- }- }- opener = opener->previous;- }+ subj->no_link_openers = true; } return NULL;@@ -1040,6 +1252,8 @@ if (peek_at(subj, subj->pos) == '\n') { advance(subj); }+ ++subj->line;+ subj->column_offset = -subj->pos; // skip spaces at beginning of line skip_spaces(subj); if (nlpos > 1 && peek_at(subj, nlpos - 1) == ' ' &&@@ -1099,7 +1313,7 @@ cmark_node *new_inl = NULL; cmark_chunk contents; unsigned char c;- bufsize_t endpos;+ bufsize_t startpos, endpos; c = peek_char(subj); if (c == 0) { return 0;@@ -1110,7 +1324,7 @@ new_inl = handle_newline(subj); break; case '`':- new_inl = handle_backticks(subj);+ new_inl = handle_backticks(subj, options); break; case '\\': new_inl = handle_backslash(subj);@@ -1119,7 +1333,7 @@ new_inl = handle_entity(subj); break; case '<':- new_inl = handle_pointy_brace(subj);+ new_inl = handle_pointy_brace(subj, options); break; case '*': case '_':@@ -1135,7 +1349,7 @@ break; case '[': advance(subj);- new_inl = make_str(subj->mem, cmark_chunk_literal("["));+ new_inl = make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("[")); push_bracket(subj, false, new_inl); break; case ']':@@ -1145,15 +1359,16 @@ advance(subj); if (peek_char(subj) == '[') { advance(subj);- new_inl = make_str(subj->mem, cmark_chunk_literal("!["));+ new_inl = make_str(subj, subj->pos - 2, subj->pos - 1, cmark_chunk_literal("![")); push_bracket(subj, true, new_inl); } else {- new_inl = make_str(subj->mem, cmark_chunk_literal("!"));+ new_inl = make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("!")); } break; default: endpos = subject_find_special_char(subj, options); contents = cmark_chunk_dup(&subj->input, subj->pos, endpos - subj->pos);+ startpos = subj->pos; subj->pos = endpos; // if we're at a newline, strip trailing spaces.@@ -1161,26 +1376,29 @@ cmark_chunk_rtrim(&contents); } - new_inl = make_str(subj->mem, contents);+ new_inl = make_str(subj, startpos, endpos - 1, contents); } if (new_inl != NULL) {- cmark_node_append_child(parent, new_inl);+ append_child(parent, new_inl); } return 1; } // Parse inlines from parent's string_content, adding as children of parent.-extern void cmark_parse_inlines(cmark_mem *mem, cmark_node *parent,- cmark_reference_map *refmap, int options) {+void cmark_parse_inlines(cmark_mem *mem, cmark_node *parent,+ cmark_reference_map *refmap, int options) {+ int internal_offset = parent->type == CMARK_NODE_HEADING ?+ parent->as.heading.internal_offset : 0; subject subj;- subject_from_buf(mem, &subj, &parent->content, refmap);+ cmark_chunk content = {parent->data, parent->len};+ subject_from_buf(mem, parent->start_line, parent->start_column - 1 + internal_offset, &subj, &content, refmap); cmark_chunk_rtrim(&subj.input); while (!is_eof(&subj) && parse_inline(&subj, parent, options)) ; - process_emphasis(&subj, NULL);+ process_emphasis(&subj, 0); // free bracket and delim stack while (subj.last_delim) { remove_delimiter(&subj, subj.last_delim);@@ -1202,7 +1420,7 @@ // Modify refmap if a reference is encountered. // Return 0 if no reference found, otherwise position of subject // after reference is parsed.-bufsize_t cmark_parse_reference_inline(cmark_mem *mem, cmark_strbuf *input,+bufsize_t cmark_parse_reference_inline(cmark_mem *mem, cmark_chunk *input, cmark_reference_map *refmap) { subject subj; @@ -1213,7 +1431,7 @@ bufsize_t matchlen = 0; bufsize_t beforetitle; - subject_from_buf(mem, &subj, input, NULL);+ subject_from_buf(mem, -1, 0, &subj, input, NULL); // parse label: if (!link_label(&subj, &lab) || lab.len == 0)@@ -1228,8 +1446,7 @@ // parse link url: spnl(&subj);- if ((matchlen = manual_scan_link_url(&subj.input, subj.pos, &url)) > -1 &&- url.len > 0) {+ if ((matchlen = manual_scan_link_url(&subj.input, subj.pos, &url)) > -1) { subj.pos += matchlen; } else { return 0;@@ -1238,7 +1455,7 @@ // parse optional link_title beforetitle = subj.pos; spnl(&subj);- matchlen = scan_link_title(&subj.input, subj.pos);+ matchlen = subj.pos == beforetitle ? 0 : scan_link_title(&subj.input, subj.pos); if (matchlen) { title = cmark_chunk_dup(&subj.input, subj.pos, matchlen); subj.pos += matchlen;
cbits/inlines.h view
@@ -1,17 +1,20 @@ #ifndef CMARK_INLINES_H #define CMARK_INLINES_H +#include "chunk.h"+#include "references.h"+ #ifdef __cplusplus extern "C" { #endif -cmark_chunk cmark_clean_url(cmark_mem *mem, cmark_chunk *url);-cmark_chunk cmark_clean_title(cmark_mem *mem, cmark_chunk *title);+unsigned char *cmark_clean_url(cmark_mem *mem, cmark_chunk *url);+unsigned char *cmark_clean_title(cmark_mem *mem, cmark_chunk *title); void cmark_parse_inlines(cmark_mem *mem, cmark_node *parent, cmark_reference_map *refmap, int options); -bufsize_t cmark_parse_reference_inline(cmark_mem *mem, cmark_strbuf *input,+bufsize_t cmark_parse_reference_inline(cmark_mem *mem, cmark_chunk *input, cmark_reference_map *refmap); #ifdef __cplusplus
cbits/iterator.c view
@@ -16,7 +16,7 @@ if (root == NULL) { return NULL; }- cmark_mem *mem = root->content.mem;+ cmark_mem *mem = root->mem; cmark_iter *iter = (cmark_iter *)mem->calloc(1, sizeof(cmark_iter)); iter->mem = mem; iter->root = root;@@ -101,17 +101,19 @@ if (ev_type == CMARK_EVENT_ENTER && cur->type == CMARK_NODE_TEXT && cur->next && cur->next->type == CMARK_NODE_TEXT) { cmark_strbuf_clear(&buf);- cmark_strbuf_put(&buf, cur->as.literal.data, cur->as.literal.len);+ cmark_strbuf_put(&buf, cur->data, cur->len); tmp = cur->next; while (tmp && tmp->type == CMARK_NODE_TEXT) { cmark_iter_next(iter); // advance pointer- cmark_strbuf_put(&buf, tmp->as.literal.data, tmp->as.literal.len);+ cmark_strbuf_put(&buf, tmp->data, tmp->len);+ cur->end_column = tmp->end_column; next = tmp->next; cmark_node_free(tmp); tmp = next; }- cmark_chunk_free(iter->mem, &cur->as.literal);- cur->as.literal = cmark_chunk_buf_detach(&buf);+ iter->mem->free(cur->data);+ cur->len = buf.size;+ cur->data = cmark_strbuf_detach(&buf); } }
cbits/iterator.h view
@@ -6,7 +6,6 @@ #endif #include "cmark.h"-#include "memory.h" typedef struct { cmark_event_type ev_type;
cbits/latex.c view
@@ -190,9 +190,9 @@ realurllen -= 7; isemail = true; }- if (realurllen == link_text->as.literal.len &&- strncmp(realurl, (char *)link_text->as.literal.data,- link_text->as.literal.len) == 0) {+ if (realurllen == link_text->len &&+ strncmp(realurl, (char *)link_text->data,+ link_text->len) == 0) { if (isemail) { return EMAIL_AUTOLINK; } else {@@ -252,24 +252,24 @@ CR(); list_number = cmark_node_get_list_start(node); if (list_number > 1) {- enumlevel = S_get_enumlevel(node);- // latex normally supports only five levels- if (enumlevel >= 1 && enumlevel <= 5) {+ enumlevel = S_get_enumlevel(node);+ // latex normally supports only five levels+ if (enumlevel >= 1 && enumlevel <= 5) { snprintf(list_number_string, LIST_NUMBER_STRING_SIZE, "%d",- list_number);+ list_number - 1); // the next item will increment this LIT("\\setcounter{enum");- switch(enumlevel) {- case 1: LIT("i"); break;- case 2: LIT("ii"); break;- case 3: LIT("iii"); break;- case 4: LIT("iv"); break;- case 5: LIT("v"); break;- default: LIT("i"); break;- }+ switch (enumlevel) {+ case 1: LIT("i"); break;+ case 2: LIT("ii"); break;+ case 3: LIT("iii"); break;+ case 4: LIT("iv"); break;+ case 5: LIT("v"); break;+ default: LIT("i"); break;+ } LIT("}{"); OUT(list_number_string, false, NORMAL); LIT("}");- }+ } CR(); } } else {
cbits/man.c view
@@ -76,10 +76,25 @@ int list_number; bool entering = (ev_type == CMARK_EVENT_ENTER); bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options);+ struct block_number *new_block_number;+ cmark_mem *allocator = cmark_get_default_mem_allocator(); // avoid unused parameter error: (void)(options); + // indent inside nested lists+ if (renderer->block_number_in_list_item &&+ node->type < CMARK_NODE_FIRST_INLINE) {+ if (entering) {+ renderer->block_number_in_list_item->number += 1;+ if (renderer->block_number_in_list_item->number == 2) {+ CR();+ LIT(".RS"); // indent+ CR();+ }+ }+ }+ switch (node->type) { case CMARK_NODE_DOCUMENT: break;@@ -101,6 +116,10 @@ case CMARK_NODE_ITEM: if (entering) {+ new_block_number = allocator->calloc(1, sizeof(struct block_number));+ new_block_number->number = 0;+ new_block_number->parent = renderer->block_number_in_list_item;+ renderer->block_number_in_list_item = new_block_number; CR(); LIT(".IP "); if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {@@ -118,6 +137,16 @@ } CR(); } else {+ if (renderer->block_number_in_list_item) {+ if (renderer->block_number_in_list_item->number >= 2) {+ CR();+ LIT(".RE"); // de-indent+ }+ new_block_number = renderer->block_number_in_list_item;+ renderer->block_number_in_list_item =+ renderer->block_number_in_list_item->parent;+ allocator->free(new_block_number);+ } CR(); } break;
cbits/node.c view
@@ -6,8 +6,6 @@ static void S_node_unlink(cmark_node *node); -#define NODE_MEM(node) cmark_node_mem(node)- static CMARK_INLINE bool S_is_block(cmark_node *node) { if (node == NULL) { return false;@@ -25,20 +23,21 @@ } static bool S_can_contain(cmark_node *node, cmark_node *child) {- cmark_node *cur;-- if (node == NULL || child == NULL) {+ if (node == NULL || child == NULL || node == child) { return false; } - // Verify that child is not an ancestor of node or equal to node.- cur = node;- do {- if (cur == child) {- return false;+ // Verify that child is not an ancestor of node.+ if (child->first_child != NULL) {+ cmark_node *cur = node->parent;++ while (cur != NULL) {+ if (cur == child) {+ return false;+ }+ cur = cur->parent; }- cur = cur->parent;- } while (cur != NULL);+ } if (child->type == CMARK_NODE_DOCUMENT) { return false;@@ -74,7 +73,7 @@ cmark_node *cmark_node_new_with_mem(cmark_node_type type, cmark_mem *mem) { cmark_node *node = (cmark_node *)mem->calloc(1, sizeof(*node));- cmark_strbuf_init(mem, &node->content, 0);+ node->mem = mem; node->type = (uint16_t)type; switch (node->type) {@@ -104,29 +103,29 @@ // Free a cmark_node list and any children. static void S_free_nodes(cmark_node *e) {+ cmark_mem *mem = e->mem; cmark_node *next; while (e != NULL) {- cmark_strbuf_free(&e->content); switch (e->type) { case CMARK_NODE_CODE_BLOCK:- cmark_chunk_free(NODE_MEM(e), &e->as.code.info);- cmark_chunk_free(NODE_MEM(e), &e->as.code.literal);+ mem->free(e->data);+ mem->free(e->as.code.info); break; case CMARK_NODE_TEXT: case CMARK_NODE_HTML_INLINE: case CMARK_NODE_CODE: case CMARK_NODE_HTML_BLOCK:- cmark_chunk_free(NODE_MEM(e), &e->as.literal);+ mem->free(e->data); break; case CMARK_NODE_LINK: case CMARK_NODE_IMAGE:- cmark_chunk_free(NODE_MEM(e), &e->as.link.url);- cmark_chunk_free(NODE_MEM(e), &e->as.link.title);+ mem->free(e->as.link.url);+ mem->free(e->as.link.title); break; case CMARK_NODE_CUSTOM_BLOCK: case CMARK_NODE_CUSTOM_INLINE:- cmark_chunk_free(NODE_MEM(e), &e->as.custom.on_enter);- cmark_chunk_free(NODE_MEM(e), &e->as.custom.on_exit);+ mem->free(e->as.custom.on_enter);+ mem->free(e->as.custom.on_exit); break; default: break;@@ -137,7 +136,7 @@ e->next = e->first_child; } next = e->next;- NODE_MEM(e)->free(e);+ mem->free(e); e = next; } }@@ -249,6 +248,26 @@ } } +static bufsize_t cmark_set_cstr(cmark_mem *mem, unsigned char **dst,+ const char *src) {+ unsigned char *old = *dst;+ bufsize_t len;++ if (src && src[0]) {+ len = (bufsize_t)strlen(src);+ *dst = (unsigned char *)mem->realloc(NULL, len + 1);+ memcpy(*dst, src, len + 1);+ } else {+ len = 0;+ *dst = NULL;+ }+ if (old) {+ mem->free(old);+ }++ return len;+}+ void *cmark_node_get_user_data(cmark_node *node) { if (node == NULL) { return NULL;@@ -275,10 +294,8 @@ case CMARK_NODE_TEXT: case CMARK_NODE_HTML_INLINE: case CMARK_NODE_CODE:- return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.literal);- case CMARK_NODE_CODE_BLOCK:- return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.code.literal);+ return node->data ? (char *)node->data : ""; default: break;@@ -297,11 +314,8 @@ case CMARK_NODE_TEXT: case CMARK_NODE_HTML_INLINE: case CMARK_NODE_CODE:- cmark_chunk_set_cstr(NODE_MEM(node), &node->as.literal, content);- return 1;- case CMARK_NODE_CODE_BLOCK:- cmark_chunk_set_cstr(NODE_MEM(node), &node->as.code.literal, content);+ node->len = cmark_set_cstr(node->mem, &node->data, content); return 1; default:@@ -350,7 +364,7 @@ } if (node->type == CMARK_NODE_LIST) {- return node->as.list.list_type;+ return (cmark_list_type)node->as.list.list_type; } else { return CMARK_NO_LIST; }@@ -366,7 +380,7 @@ } if (node->type == CMARK_NODE_LIST) {- node->as.list.list_type = type;+ node->as.list.list_type = (unsigned char)type; return 1; } else { return 0;@@ -379,7 +393,7 @@ } if (node->type == CMARK_NODE_LIST) {- return node->as.list.delimiter;+ return (cmark_delim_type)node->as.list.delimiter; } else { return CMARK_NO_DELIM; }@@ -395,7 +409,7 @@ } if (node->type == CMARK_NODE_LIST) {- node->as.list.delimiter = delim;+ node->as.list.delimiter = (unsigned char)delim; return 1; } else { return 0;@@ -458,7 +472,7 @@ } if (node->type == CMARK_NODE_CODE_BLOCK) {- return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.code.info);+ return node->as.code.info ? (char *)node->as.code.info : ""; } else { return NULL; }@@ -470,7 +484,7 @@ } if (node->type == CMARK_NODE_CODE_BLOCK) {- cmark_chunk_set_cstr(NODE_MEM(node), &node->as.code.info, info);+ cmark_set_cstr(node->mem, &node->as.code.info, info); return 1; } else { return 0;@@ -485,7 +499,7 @@ switch (node->type) { case CMARK_NODE_LINK: case CMARK_NODE_IMAGE:- return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.link.url);+ return node->as.link.url ? (char *)node->as.link.url : ""; default: break; }@@ -501,7 +515,7 @@ switch (node->type) { case CMARK_NODE_LINK: case CMARK_NODE_IMAGE:- cmark_chunk_set_cstr(NODE_MEM(node), &node->as.link.url, url);+ cmark_set_cstr(node->mem, &node->as.link.url, url); return 1; default: break;@@ -518,7 +532,7 @@ switch (node->type) { case CMARK_NODE_LINK: case CMARK_NODE_IMAGE:- return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.link.title);+ return node->as.link.title ? (char *)node->as.link.title : ""; default: break; }@@ -534,7 +548,7 @@ switch (node->type) { case CMARK_NODE_LINK: case CMARK_NODE_IMAGE:- cmark_chunk_set_cstr(NODE_MEM(node), &node->as.link.title, title);+ cmark_set_cstr(node->mem, &node->as.link.title, title); return 1; default: break;@@ -551,7 +565,7 @@ switch (node->type) { case CMARK_NODE_CUSTOM_INLINE: case CMARK_NODE_CUSTOM_BLOCK:- return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.custom.on_enter);+ return node->as.custom.on_enter ? (char *)node->as.custom.on_enter : ""; default: break; }@@ -567,7 +581,7 @@ switch (node->type) { case CMARK_NODE_CUSTOM_INLINE: case CMARK_NODE_CUSTOM_BLOCK:- cmark_chunk_set_cstr(NODE_MEM(node), &node->as.custom.on_enter, on_enter);+ cmark_set_cstr(node->mem, &node->as.custom.on_enter, on_enter); return 1; default: break;@@ -584,7 +598,7 @@ switch (node->type) { case CMARK_NODE_CUSTOM_INLINE: case CMARK_NODE_CUSTOM_BLOCK:- return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.custom.on_exit);+ return node->as.custom.on_exit ? (char *)node->as.custom.on_exit : ""; default: break; }@@ -600,7 +614,7 @@ switch (node->type) { case CMARK_NODE_CUSTOM_INLINE: case CMARK_NODE_CUSTOM_BLOCK:- cmark_chunk_set_cstr(NODE_MEM(node), &node->as.custom.on_exit, on_exit);+ cmark_set_cstr(node->mem, &node->as.custom.on_exit, on_exit); return 1; default: break;
cbits/node.h view
@@ -8,23 +8,22 @@ #include <stdio.h> #include <stdint.h> +#include "config.h" #include "cmark.h" #include "buffer.h"-#include "chunk.h" typedef struct {- cmark_list_type list_type; int marker_offset; int padding; int start;- cmark_delim_type delimiter;+ unsigned char list_type;+ unsigned char delimiter; unsigned char bullet_char; bool tight; } cmark_list; typedef struct {- cmark_chunk info;- cmark_chunk literal;+ unsigned char *info; uint8_t fence_length; uint8_t fence_offset; unsigned char fence_char;@@ -32,27 +31,29 @@ } cmark_code; typedef struct {- int level;+ int internal_offset;+ int8_t level; bool setext; } cmark_heading; typedef struct {- cmark_chunk url;- cmark_chunk title;+ unsigned char *url;+ unsigned char *title; } cmark_link; typedef struct {- cmark_chunk on_enter;- cmark_chunk on_exit;+ unsigned char *on_enter;+ unsigned char *on_exit; } cmark_custom; enum cmark_node__internal_flags { CMARK_NODE__OPEN = (1 << 0), CMARK_NODE__LAST_LINE_BLANK = (1 << 1),+ CMARK_NODE__LAST_LINE_CHECKED = (1 << 2), }; struct cmark_node {- cmark_strbuf content;+ cmark_mem *mem; struct cmark_node *next; struct cmark_node *prev;@@ -62,6 +63,9 @@ void *user_data; + unsigned char *data;+ bufsize_t len;+ int start_line; int start_column; int end_line;@@ -70,7 +74,6 @@ uint16_t flags; union {- cmark_chunk literal; cmark_list list; cmark_code code; cmark_heading heading;@@ -80,9 +83,6 @@ } as; }; -static CMARK_INLINE cmark_mem *cmark_node_mem(cmark_node *node) {- return node->content.mem;-} CMARK_EXPORT int cmark_node_check(cmark_node *node, FILE *out); #ifdef __cplusplus
cbits/parser.h view
@@ -2,9 +2,9 @@ #define CMARK_AST_H #include <stdio.h>+#include "references.h" #include "node.h" #include "buffer.h"-#include "memory.h" #ifdef __cplusplus extern "C" {@@ -22,14 +22,17 @@ bufsize_t column; bufsize_t first_nonspace; bufsize_t first_nonspace_column;+ bufsize_t thematic_break_kill_pos; int indent; bool blank; bool partially_consumed_tab; cmark_strbuf curline; bufsize_t last_line_length; cmark_strbuf linebuf;+ cmark_strbuf content; int options; bool last_buffer_ended_with_cr;+ unsigned int total_size; }; #ifdef __cplusplus
cbits/references.c view
@@ -5,21 +5,12 @@ #include "inlines.h" #include "chunk.h" -static unsigned int refhash(const unsigned char *link_ref) {- unsigned int hash = 0;-- while (*link_ref)- hash = (*link_ref++) + (hash << 6) + (hash << 16) - hash;-- return hash;-}- static void reference_free(cmark_reference_map *map, cmark_reference *ref) { cmark_mem *mem = map->mem; if (ref != NULL) { mem->free(ref->label);- cmark_chunk_free(mem, &ref->url);- cmark_chunk_free(mem, &ref->title);+ mem->free(ref->url);+ mem->free(ref->title); mem->free(ref); } }@@ -53,21 +44,6 @@ return result; } -static void add_reference(cmark_reference_map *map, cmark_reference *ref) {- cmark_reference *t = ref->next = map->table[ref->hash % REFMAP_SIZE];-- while (t) {- if (t->hash == ref->hash && !strcmp((char *)t->label, (char *)ref->label)) {- reference_free(map, ref);- return;- }-- t = t->next;- }-- map->table[ref->hash % REFMAP_SIZE] = ref;-}- void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label, cmark_chunk *url, cmark_chunk *title) { cmark_reference *ref;@@ -77,64 +53,113 @@ if (reflabel == NULL) return; + assert(map->sorted == NULL);+ ref = (cmark_reference *)map->mem->calloc(1, sizeof(*ref)); ref->label = reflabel;- ref->hash = refhash(ref->label); ref->url = cmark_clean_url(map->mem, url); ref->title = cmark_clean_title(map->mem, title);- ref->next = NULL;+ ref->age = map->size;+ ref->next = map->refs; - add_reference(map, ref);+ if (ref->url != NULL)+ ref->size += strlen((char*)ref->url);+ if (ref->title != NULL)+ ref->size += strlen((char*)ref->title);++ map->refs = ref;+ map->size++; } +static int+labelcmp(const unsigned char *a, const unsigned char *b) {+ return strcmp((const char *)a, (const char *)b);+}++static int+refcmp(const void *p1, const void *p2) {+ cmark_reference *r1 = *(cmark_reference **)p1;+ cmark_reference *r2 = *(cmark_reference **)p2;+ int res = labelcmp(r1->label, r2->label);+ return res ? res : ((int)r1->age - (int)r2->age);+}++static int+refsearch(const void *label, const void *p2) {+ cmark_reference *ref = *(cmark_reference **)p2;+ return labelcmp((const unsigned char *)label, ref->label);+}++static void sort_references(cmark_reference_map *map) {+ unsigned int i = 0, last = 0, size = map->size;+ cmark_reference *r = map->refs, **sorted = NULL;++ sorted = (cmark_reference **)map->mem->calloc(size, sizeof(cmark_reference *));+ while (r) {+ sorted[i++] = r;+ r = r->next;+ }++ qsort(sorted, size, sizeof(cmark_reference *), refcmp);++ for (i = 1; i < size; i++) {+ if (labelcmp(sorted[i]->label, sorted[last]->label) != 0)+ sorted[++last] = sorted[i];+ }+ map->sorted = sorted;+ map->size = last + 1;+}+ // Returns reference if refmap contains a reference with matching // label, otherwise NULL. cmark_reference *cmark_reference_lookup(cmark_reference_map *map, cmark_chunk *label) {- cmark_reference *ref = NULL;+ cmark_reference **ref = NULL;+ cmark_reference *r = NULL; unsigned char *norm;- unsigned int hash; if (label->len < 1 || label->len > MAX_LINK_LABEL_LENGTH) return NULL; - if (map == NULL)+ if (map == NULL || !map->size) return NULL; norm = normalize_reference(map->mem, label); if (norm == NULL) return NULL; - hash = refhash(norm);- ref = map->table[hash % REFMAP_SIZE];+ if (!map->sorted)+ sort_references(map); - while (ref) {- if (ref->hash == hash && !strcmp((char *)ref->label, (char *)norm))- break;- ref = ref->next;+ ref = (cmark_reference **)bsearch(norm, map->sorted, map->size, sizeof(cmark_reference *),+ refsearch);+ map->mem->free(norm);++ if (ref != NULL) {+ r = ref[0];+ /* Check for expansion limit */+ if (map->max_ref_size && r->size > map->max_ref_size - map->ref_size)+ return NULL;+ map->ref_size += r->size; } - map->mem->free(norm);- return ref;+ return r; } void cmark_reference_map_free(cmark_reference_map *map) {- unsigned int i;+ cmark_reference *ref; if (map == NULL) return; - for (i = 0; i < REFMAP_SIZE; ++i) {- cmark_reference *ref = map->table[i];- cmark_reference *next;-- while (ref) {- next = ref->next;- reference_free(map, ref);- ref = next;- }+ ref = map->refs;+ while (ref) {+ cmark_reference *next = ref->next;+ reference_free(map, ref);+ ref = next; } + map->mem->free(map->sorted); map->mem->free(map); }
cbits/references.h view
@@ -1,28 +1,30 @@ #ifndef CMARK_REFERENCES_H #define CMARK_REFERENCES_H -#include "memory.h" #include "chunk.h" #ifdef __cplusplus extern "C" { #endif -#define REFMAP_SIZE 16- struct cmark_reference { struct cmark_reference *next; unsigned char *label;- cmark_chunk url;- cmark_chunk title;- unsigned int hash;+ unsigned char *url;+ unsigned char *title;+ unsigned int age;+ unsigned int size; }; typedef struct cmark_reference cmark_reference; struct cmark_reference_map { cmark_mem *mem;- cmark_reference *table[REFMAP_SIZE];+ cmark_reference *refs;+ cmark_reference **sorted;+ unsigned int size;+ unsigned int ref_size;+ unsigned int max_ref_size; }; typedef struct cmark_reference_map cmark_reference_map;
cbits/render.c view
@@ -1,10 +1,10 @@ #include <stdlib.h> #include "buffer.h"-#include "chunk.h" #include "cmark.h" #include "utf8.h" #include "render.h" #include "node.h"+#include "cmark_ctype.h" static CMARK_INLINE void S_cr(cmark_renderer *renderer) { if (renderer->need_cr < 1) {@@ -26,7 +26,6 @@ int i = 0; int last_nonspace; int len;- cmark_chunk remainder = cmark_chunk_literal(""); int k = renderer->buffer->size - 1; wrap = wrap && !renderer->no_linebreaks;@@ -45,6 +44,7 @@ } } renderer->column = 0;+ renderer->last_breakable = 0; renderer->begin_line = true; renderer->begin_content = true; renderer->need_cr -= 1;@@ -81,21 +81,23 @@ } } - } else if (c == 10) {- cmark_strbuf_putc(renderer->buffer, '\n');- renderer->column = 0;- renderer->begin_line = true;- renderer->begin_content = true;- renderer->last_breakable = 0; } else if (escape == LITERAL) {- cmark_render_code_point(renderer, c);- renderer->begin_line = false;- // we don't set 'begin_content' to false til we've- // finished parsing a digit. Reason: in commonmark- // we need to escape a potential list marker after- // a digit:- renderer->begin_content =- renderer->begin_content && cmark_isdigit(c) == 1;+ if (c == 10) {+ cmark_strbuf_putc(renderer->buffer, '\n');+ renderer->column = 0;+ renderer->begin_line = true;+ renderer->begin_content = true;+ renderer->last_breakable = 0;+ } else {+ cmark_render_code_point(renderer, c);+ renderer->begin_line = false;+ // we don't set 'begin_content' to false til we've+ // finished parsing a digit. Reason: in commonmark+ // we need to escape a potential list marker after+ // a digit:+ renderer->begin_content =+ renderer->begin_content && cmark_isdigit(c) == 1;+ } } else { (renderer->outc)(renderer, escape, c, nextc); renderer->begin_line = false;@@ -109,18 +111,22 @@ !renderer->begin_line && renderer->last_breakable > 0) { // copy from last_breakable to remainder- cmark_chunk_set_cstr(renderer->mem, &remainder,- (char *)renderer->buffer->ptr +- renderer->last_breakable + 1);+ unsigned char *src = renderer->buffer->ptr ++ renderer->last_breakable + 1;+ bufsize_t remainder_len = renderer->buffer->size -+ renderer->last_breakable - 1;+ unsigned char *remainder =+ (unsigned char *)renderer->mem->realloc(NULL, remainder_len);+ memcpy(remainder, src, remainder_len); // truncate at last_breakable cmark_strbuf_truncate(renderer->buffer, renderer->last_breakable); // add newline, prefix, and remainder cmark_strbuf_putc(renderer->buffer, '\n'); cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr, renderer->prefix->size);- cmark_strbuf_put(renderer->buffer, remainder.data, remainder.len);- renderer->column = renderer->prefix->size + remainder.len;- cmark_chunk_free(renderer->mem, &remainder);+ cmark_strbuf_put(renderer->buffer, remainder, remainder_len);+ renderer->column = renderer->prefix->size + remainder_len;+ renderer->mem->free(remainder); renderer->last_breakable = 0; renderer->begin_line = false; renderer->begin_content = false;@@ -148,7 +154,7 @@ int (*render_node)(cmark_renderer *renderer, cmark_node *node, cmark_event_type ev_type, int options)) {- cmark_mem *mem = cmark_node_mem(root);+ cmark_mem *mem = root->mem; cmark_strbuf pref = CMARK_BUF_INIT(mem); cmark_strbuf buf = CMARK_BUF_INIT(mem); cmark_node *cur;@@ -156,9 +162,11 @@ char *result; cmark_iter *iter = cmark_iter_new(root); - cmark_renderer renderer = {mem, &buf, &pref, 0, width,- 0, 0, true, true, false,- false, outc, S_cr, S_blankline, S_out};+ cmark_renderer renderer = {options,+ mem, &buf, &pref, 0, width,+ 0, 0, true, true, false,+ false, NULL,+ outc, S_cr, S_blankline, S_out}; while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { cur = cmark_iter_get_node(iter);@@ -171,7 +179,7 @@ } // ensure final newline- if (renderer.buffer->ptr[renderer.buffer->size - 1] != '\n') {+ if (renderer.buffer->size == 0 || renderer.buffer->ptr[renderer.buffer->size - 1] != '\n') { cmark_strbuf_putc(renderer.buffer, '\n'); }
cbits/render.h view
@@ -7,12 +7,16 @@ #include <stdlib.h> #include "buffer.h"-#include "chunk.h"-#include "memory.h" typedef enum { LITERAL, NORMAL, TITLE, URL } cmark_escaping; +struct block_number {+ int number;+ struct block_number *parent;+};+ struct cmark_renderer {+ int options; cmark_mem *mem; cmark_strbuf *buffer; cmark_strbuf *prefix;@@ -24,6 +28,7 @@ bool begin_content; bool no_linebreaks; bool in_tight_list_item;+ struct block_number *block_number_in_list_item; void (*outc)(struct cmark_renderer *, cmark_escaping, int32_t, unsigned char); void (*cr)(struct cmark_renderer *); void (*blankline)(struct cmark_renderer *);
cbits/scanners.c view
@@ -1,17793 +1,13634 @@-/* Generated by re2c 0.15.3 */-#include <stdlib.h>-#include "chunk.h"-#include "scanners.h"--bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,- bufsize_t offset) {- bufsize_t res;- unsigned char *ptr = (unsigned char *)c->data;-- if (ptr == NULL || offset > c->len) {- return 0;- } else {- unsigned char lim = ptr[c->len];-- ptr[c->len] = '\0';- res = scanner(ptr + offset);- ptr[c->len] = lim;- }-- return res;-}--// Try to match a scheme including colon.-bufsize_t _scan_scheme(const unsigned char *p) {- const unsigned char *marker = NULL;- const unsigned char *start = p;-- {- unsigned char yych;- yych = *p;- if (yych <= '@')- goto yy2;- if (yych <= 'Z')- goto yy4;- if (yych <= '`')- goto yy2;- if (yych <= 'z')- goto yy4;- yy2:- ++p;- yy3 : { return 0; }- yy4:- yych = *(marker = ++p);- if (yych <= '/') {- if (yych <= '+') {- if (yych <= '*')- goto yy3;- } else {- if (yych <= ',')- goto yy3;- if (yych >= '/')- goto yy3;- }- } else {- if (yych <= 'Z') {- if (yych <= '9')- goto yy5;- if (yych <= '@')- goto yy3;- } else {- if (yych <= '`')- goto yy3;- if (yych >= '{')- goto yy3;- }- }- yy5:- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych == '+')- goto yy9;- } else {- if (yych != '/')- goto yy9;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych >= 'A')- goto yy9;- } else {- if (yych <= '`')- goto yy6;- if (yych <= 'z')- goto yy9;- }- }- yy6:- p = marker;- goto yy3;- yy7:- ++p;- { return (bufsize_t)(p - start); }- yy9:- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy6;- } else {- if (yych == '/')- goto yy6;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy7;- if (yych <= '@')- goto yy6;- } else {- if (yych <= '`')- goto yy6;- if (yych >= '{')- goto yy6;- }- }- ++p;- if ((yych = *p) == ':')- goto yy7;- goto yy6;- }-}--// Try to match URI autolink after first <, returning number of chars matched.-bufsize_t _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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 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 <= '@')- goto yy41;- if (yych <= 'Z')- goto yy43;- if (yych <= '`')- goto yy41;- if (yych <= 'z')- goto yy43;- yy41:- ++p;- yy42 : { return 0; }- yy43:- yych = *(marker = ++p);- if (yych <= '/') {- if (yych <= '+') {- if (yych <= '*')- goto yy42;- } else {- if (yych <= ',')- goto yy42;- if (yych >= '/')- goto yy42;- }- } else {- if (yych <= 'Z') {- if (yych <= '9')- goto yy44;- if (yych <= '@')- goto yy42;- } else {- if (yych <= '`')- goto yy42;- if (yych >= '{')- goto yy42;- }- }- yy44:- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych == '+')- goto yy48;- } else {- if (yych != '/')- goto yy48;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych >= 'A')- goto yy48;- } else {- if (yych <= '`')- goto yy45;- if (yych <= 'z')- goto yy48;- }- }- yy45:- p = marker;- goto yy42;- yy46:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy46;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '<')- goto yy45;- if (yych <= '>')- goto yy85;- goto yy45;- } else {- if (yych <= 0xDF)- goto yy78;- if (yych <= 0xE0)- goto yy79;- goto yy80;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy84;- if (yych <= 0xEF)- goto yy80;- goto yy81;- } else {- if (yych <= 0xF3)- goto yy82;- if (yych <= 0xF4)- goto yy83;- goto yy45;- }- }- yy48:- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych <= '9') {- if (yych <= ',') {- if (yych != '+')- goto yy45;- } else {- if (yych == '/')- goto yy45;- }- } else {- if (yych <= 'Z') {- if (yych <= ':')- goto yy46;- if (yych <= '@')- goto yy45;- } else {- if (yych <= '`')- goto yy45;- if (yych >= '{')- goto yy45;- }- }- yych = *++p;- if (yych == ':')- goto yy46;- goto yy45;- yy78:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy45;- if (yych <= 0xBF)- goto yy46;- goto yy45;- yy79:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy45;- if (yych <= 0xBF)- goto yy78;- goto yy45;- yy80:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy45;- if (yych <= 0xBF)- goto yy78;- goto yy45;- yy81:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy45;- if (yych <= 0xBF)- goto yy80;- goto yy45;- yy82:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy45;- if (yych <= 0xBF)- goto yy80;- goto yy45;- yy83:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy45;- if (yych <= 0x8F)- goto yy80;- goto yy45;- yy84:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy45;- if (yych <= 0x9F)- goto yy78;- goto yy45;- yy85:- ++p;- { return (bufsize_t)(p - start); }- }-}--// Try to match email autolink after first <, returning num of chars matched.-bufsize_t _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 <= '9') {- if (yych <= '\'') {- if (yych == '!')- goto yy91;- if (yych >= '#')- goto yy91;- } else {- if (yych <= ')')- goto yy89;- if (yych != ',')- goto yy91;- }- } else {- if (yych <= '?') {- if (yych == '=')- goto yy91;- if (yych >= '?')- goto yy91;- } else {- if (yych <= 'Z') {- if (yych >= 'A')- goto yy91;- } else {- if (yych <= ']')- goto yy89;- if (yych <= '~')- goto yy91;- }- }- }- yy89:- ++p;- yy90 : { return 0; }- yy91:- yych = *(marker = ++p);- if (yych <= ',') {- if (yych <= '"') {- if (yych == '!')- goto yy95;- goto yy90;- } else {- if (yych <= '\'')- goto yy95;- if (yych <= ')')- goto yy90;- if (yych <= '+')- goto yy95;- goto yy90;- }- } else {- if (yych <= '>') {- if (yych <= '9')- goto yy95;- if (yych == '=')- goto yy95;- goto yy90;- } else {- if (yych <= 'Z')- goto yy95;- if (yych <= ']')- goto yy90;- if (yych <= '~')- goto yy95;- goto yy90;- }- }- yy92:- yych = *++p;- if (yych <= '@') {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy96;- } else {- if (yych <= 'Z')- goto yy96;- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy96;- }- yy93:- p = marker;- goto yy90;- yy94:- ++p;- yych = *p;- yy95:- if (yybm[0 + yych] & 128) {- goto yy94;- }- if (yych <= '>')- goto yy93;- if (yych <= '@')- goto yy92;- goto yy93;- yy96:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy98;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych >= ':')- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy227;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy226;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy226;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy226;- goto yy93;- }- }- yy98:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy227;- if (yych <= '/')- goto yy93;- goto yy226;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- goto yy226;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy226;- goto yy93;- }- }- yy99:- ++p;- yych = *p;- if (yych <= '@') {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy102;- goto yy93;- } else {- if (yych <= 'Z')- goto yy102;- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy102;- goto yy93;- }- yy100:- ++p;- { return (bufsize_t)(p - start); }- yy102:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy104;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych >= ':')- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy106;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy105;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy105;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy105;- goto yy93;- }- }- yy104:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy106;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy105:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy108;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy107;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy107;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy107;- goto yy93;- }- }- yy106:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy108;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy107:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy110;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy109;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy109;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy109;- goto yy93;- }- }- yy108:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy110;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy109:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy112;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy111;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy111;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy111;- goto yy93;- }- }- yy110:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy112;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy111:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy114;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy113;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy113;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy113;- goto yy93;- }- }- yy112:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy114;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy113:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy116;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy115;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy115;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy115;- goto yy93;- }- }- yy114:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy116;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy115:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy118;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy117;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy117;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy117;- goto yy93;- }- }- yy116:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy118;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy117:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy120;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy119;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy119;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy119;- goto yy93;- }- }- yy118:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy120;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy119:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy122;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy121;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy121;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy121;- goto yy93;- }- }- yy120:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy122;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy121:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy124;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy123;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy123;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy123;- goto yy93;- }- }- yy122:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy124;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy123:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy126;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy125;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy125;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy125;- goto yy93;- }- }- yy124:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy126;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy125:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy128;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy127;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy127;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy127;- goto yy93;- }- }- yy126:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy128;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy127:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy130;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy129;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy129;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy129;- goto yy93;- }- }- yy128:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy130;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy129:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy132;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy131;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy131;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy131;- goto yy93;- }- }- yy130:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy132;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy131:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy134;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy133;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy133;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy133;- goto yy93;- }- }- yy132:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy134;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy133:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy136;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy135;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy135;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy135;- goto yy93;- }- }- yy134:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy136;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy135:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy138;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy137;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy137;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy137;- goto yy93;- }- }- yy136:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy138;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy137:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy140;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy139;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy139;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy139;- goto yy93;- }- }- yy138:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy140;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy139:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy142;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy141;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy141;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy141;- goto yy93;- }- }- yy140:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy142;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy141:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy144;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy143;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy143;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy143;- goto yy93;- }- }- yy142:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy144;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy143:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy146;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy145;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy145;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy145;- goto yy93;- }- }- yy144:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy146;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy145:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy148;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy147;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy147;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy147;- goto yy93;- }- }- yy146:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy148;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy147:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy150;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy149;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy149;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy149;- goto yy93;- }- }- yy148:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy150;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy149:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy152;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy151;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy151;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy151;- goto yy93;- }- }- yy150:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy152;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy151:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy154;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy153;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy153;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy153;- goto yy93;- }- }- yy152:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy154;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy153:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy156;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy155;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy155;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy155;- goto yy93;- }- }- yy154:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy156;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy155:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy158;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy157;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy157;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy157;- goto yy93;- }- }- yy156:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy158;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy157:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy160;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy159;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy159;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy159;- goto yy93;- }- }- yy158:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy160;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy159:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy162;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy161;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy161;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy161;- goto yy93;- }- }- yy160:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy162;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy161:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy164;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy163;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy163;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy163;- goto yy93;- }- }- yy162:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy164;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy163:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy166;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy165;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy165;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy165;- goto yy93;- }- }- yy164:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy166;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy165:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy168;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy167;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy167;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy167;- goto yy93;- }- }- yy166:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy168;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy167:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy170;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy169;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy169;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy169;- goto yy93;- }- }- yy168:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy170;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy169:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy172;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy171;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy171;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy171;- goto yy93;- }- }- yy170:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy172;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy171:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy174;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy173;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy173;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy173;- goto yy93;- }- }- yy172:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy174;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy173:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy176;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy175;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy175;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy175;- goto yy93;- }- }- yy174:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy176;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy175:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy178;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy177;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy177;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy177;- goto yy93;- }- }- yy176:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy178;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy177:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy180;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy179;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy179;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy179;- goto yy93;- }- }- yy178:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy180;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy179:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy182;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy181;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy181;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy181;- goto yy93;- }- }- yy180:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy182;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy181:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy184;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy183;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy183;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy183;- goto yy93;- }- }- yy182:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy184;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy183:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy186;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy185;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy185;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy185;- goto yy93;- }- }- yy184:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy186;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy185:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy188;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy187;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy187;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy187;- goto yy93;- }- }- yy186:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy188;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy187:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy190;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy189;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy189;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy189;- goto yy93;- }- }- yy188:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy190;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy189:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy192;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy191;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy191;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy191;- goto yy93;- }- }- yy190:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy192;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy191:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy194;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy193;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy193;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy193;- goto yy93;- }- }- yy192:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy194;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy193:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy196;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy195;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy195;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy195;- goto yy93;- }- }- yy194:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy196;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy195:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy198;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy197;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy197;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy197;- goto yy93;- }- }- yy196:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy198;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy197:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy200;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy199;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy199;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy199;- goto yy93;- }- }- yy198:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy200;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy199:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy202;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy201;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy201;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy201;- goto yy93;- }- }- yy200:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy202;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy201:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy204;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy203;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy203;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy203;- goto yy93;- }- }- yy202:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy204;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy203:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy206;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy205;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy205;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy205;- goto yy93;- }- }- yy204:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy206;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy205:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy208;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy207;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy207;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy207;- goto yy93;- }- }- yy206:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy208;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy207:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy210;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy209;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy209;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy209;- goto yy93;- }- }- yy208:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy210;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy209:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy212;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy211;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy211;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy211;- goto yy93;- }- }- yy210:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy212;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy211:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy214;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy213;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy213;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy213;- goto yy93;- }- }- yy212:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy214;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy213:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy216;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy215;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy215;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy215;- goto yy93;- }- }- yy214:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy216;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy215:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy218;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy217;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy217;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy217;- goto yy93;- }- }- yy216:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy218;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy217:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy220;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy219;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy219;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy219;- goto yy93;- }- }- yy218:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy220;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy219:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy222;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy221;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy221;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy221;- goto yy93;- }- }- yy220:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy222;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy221:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy224;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy223;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy223;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy223;- goto yy93;- }- }- yy222:- ++p;- yych = *p;- if (yych <= '9') {- if (yych == '-')- goto yy224;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy223:- ++p;- yych = *p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= '-')- goto yy93;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy225;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy225;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy225;- goto yy93;- }- }- yy224:- ++p;- yych = *p;- if (yych <= '@') {- if (yych <= '/')- goto yy93;- if (yych >= ':')- goto yy93;- } else {- if (yych <= 'Z')- goto yy225;- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- yy225:- ++p;- yych = *p;- if (yych == '.')- goto yy99;- if (yych == '>')- goto yy100;- goto yy93;- yy226:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy229;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy228;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy228;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy228;- goto yy93;- }- }- yy227:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy229;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy228:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy231;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy230;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy230;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy230;- goto yy93;- }- }- yy229:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy231;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy230:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy233;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy232;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy232;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy232;- goto yy93;- }- }- yy231:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy233;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy232:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy235;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy234;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy234;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy234;- goto yy93;- }- }- yy233:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy235;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy234:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy237;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy236;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy236;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy236;- goto yy93;- }- }- yy235:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy237;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy236:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy239;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy238;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy238;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy238;- goto yy93;- }- }- yy237:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy239;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy238:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy241;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy240;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy240;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy240;- goto yy93;- }- }- yy239:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy241;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy240:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy243;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy242;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy242;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy242;- goto yy93;- }- }- yy241:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy243;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy242:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy245;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy244;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy244;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy244;- goto yy93;- }- }- yy243:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy245;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy244:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy247;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy246;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy246;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy246;- goto yy93;- }- }- yy245:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy247;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy246:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy249;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy248;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy248;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy248;- goto yy93;- }- }- yy247:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy249;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy248:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy251;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy250;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy250;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy250;- goto yy93;- }- }- yy249:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy251;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy250:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy253;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy252;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy252;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy252;- goto yy93;- }- }- yy251:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy253;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy252:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy255;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy254;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy254;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy254;- goto yy93;- }- }- yy253:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy255;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy254:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy257;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy256;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy256;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy256;- goto yy93;- }- }- yy255:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy257;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy256:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy259;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy258;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy258;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy258;- goto yy93;- }- }- yy257:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy259;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy258:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy261;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy260;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy260;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy260;- goto yy93;- }- }- yy259:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy261;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy260:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy263;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy262;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy262;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy262;- goto yy93;- }- }- yy261:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy263;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy262:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy265;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy264;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy264;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy264;- goto yy93;- }- }- yy263:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy265;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy264:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy267;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy266;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy266;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy266;- goto yy93;- }- }- yy265:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy267;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy266:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy269;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy268;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy268;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy268;- goto yy93;- }- }- yy267:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy269;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy268:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy271;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy270;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy270;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy270;- goto yy93;- }- }- yy269:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy271;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy270:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy273;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy272;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy272;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy272;- goto yy93;- }- }- yy271:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy273;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy272:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy275;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy274;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy274;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy274;- goto yy93;- }- }- yy273:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy275;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy274:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy277;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy276;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy276;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy276;- goto yy93;- }- }- yy275:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy277;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy276:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy279;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy278;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy278;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy278;- goto yy93;- }- }- yy277:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy279;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy278:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy281;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy280;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy280;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy280;- goto yy93;- }- }- yy279:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy281;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy280:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy283;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy282;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy282;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy282;- goto yy93;- }- }- yy281:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy283;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy282:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy285;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy284;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy284;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy284;- goto yy93;- }- }- yy283:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy285;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy284:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy287;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy286;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy286;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy286;- goto yy93;- }- }- yy285:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy287;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy286:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy289;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy288;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy288;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy288;- goto yy93;- }- }- yy287:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy289;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy288:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy291;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy290;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy290;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy290;- goto yy93;- }- }- yy289:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy291;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy290:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy293;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy292;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy292;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy292;- goto yy93;- }- }- yy291:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy293;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy292:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy295;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy294;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy294;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy294;- goto yy93;- }- }- yy293:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy295;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy294:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy297;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy296;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy296;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy296;- goto yy93;- }- }- yy295:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy297;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy296:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy299;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy298;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy298;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy298;- goto yy93;- }- }- yy297:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy299;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy298:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy301;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy300;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy300;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy300;- goto yy93;- }- }- yy299:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy301;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy300:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy303;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy302;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy302;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy302;- goto yy93;- }- }- yy301:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy303;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy302:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy305;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy304;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy304;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy304;- goto yy93;- }- }- yy303:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy305;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy304:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy307;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy306;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy306;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy306;- goto yy93;- }- }- yy305:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy307;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy306:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy309;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy308;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy308;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy308;- goto yy93;- }- }- yy307:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy309;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy308:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy311;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy310;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy310;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy310;- goto yy93;- }- }- yy309:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy311;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy310:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy313;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy312;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy312;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy312;- goto yy93;- }- }- yy311:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy313;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy312:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy315;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy314;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy314;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy314;- goto yy93;- }- }- yy313:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy315;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy314:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy317;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy316;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy316;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy316;- goto yy93;- }- }- yy315:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy317;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy316:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy319;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy318;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy318;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy318;- goto yy93;- }- }- yy317:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy319;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy318:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy321;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy320;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy320;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy320;- goto yy93;- }- }- yy319:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy321;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy320:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy323;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy322;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy322;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy322;- goto yy93;- }- }- yy321:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy323;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy322:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy325;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy324;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy324;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy324;- goto yy93;- }- }- yy323:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy325;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy324:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy327;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy326;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy326;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy326;- goto yy93;- }- }- yy325:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy327;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy326:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy329;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy328;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy328;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy328;- goto yy93;- }- }- yy327:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy329;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy328:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy331;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy330;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy330;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy330;- goto yy93;- }- }- yy329:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy331;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy330:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy333;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy332;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy332;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy332;- goto yy93;- }- }- yy331:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy333;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy332:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy335;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy334;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy334;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy334;- goto yy93;- }- }- yy333:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy335;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy334:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy337;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy336;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy336;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy336;- goto yy93;- }- }- yy335:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy337;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy336:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy339;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy338;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy338;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy338;- goto yy93;- }- }- yy337:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy339;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy338:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy341;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy340;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy340;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy340;- goto yy93;- }- }- yy339:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy341;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy340:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy343;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy342;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy342;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy342;- goto yy93;- }- }- yy341:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy343;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy342:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= ',')- goto yy93;- if (yych <= '-')- goto yy345;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy344;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy344;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy344;- goto yy93;- }- }- yy343:- yych = *++p;- if (yych <= '9') {- if (yych == '-')- goto yy345;- if (yych <= '/')- goto yy93;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy93;- } else {- if (yych <= '`')- goto yy93;- if (yych >= '{')- goto yy93;- }- }- yy344:- yych = *++p;- if (yych <= '=') {- if (yych <= '.') {- if (yych <= '-')- goto yy93;- goto yy99;- } else {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy225;- goto yy93;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy100;- if (yych <= '@')- goto yy93;- goto yy225;- } else {- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy225;- goto yy93;- }- }- yy345:- ++p;- if ((yych = *p) <= '@') {- if (yych <= '/')- goto yy93;- if (yych <= '9')- goto yy225;- goto yy93;- } else {- if (yych <= 'Z')- goto yy225;- if (yych <= '`')- goto yy93;- if (yych <= 'z')- goto yy225;- goto yy93;- }- }-}--// Try to match an HTML tag after first <, returning num of chars matched.-bufsize_t _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, 239, 239, 239, 239, 239, 239, 239, 239, 238, 238, 238, 238, 238,- 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,- 239, 239, 239, 239, 238, 239, 234, 239, 239, 239, 239, 236, 239, 239,- 239, 239, 239, 207, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,- 239, 239, 239, 239, 238, 238, 174, 231, 239, 255, 255, 255, 255, 255,- 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,- 255, 255, 255, 255, 255, 255, 255, 239, 239, 111, 239, 239, 238, 239,- 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,- 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,- 239, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0,- /* table 9 .. 11: 256 */- 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 64, 64,- 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, 160, 128, 0, 160, 160, 160, 160, 160, 160, 160, 160,- 160, 160, 128, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 128, 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, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 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 >= '!')- goto yy350;- } else {- if (yych == '/')- goto yy351;- }- } else {- if (yych <= 'Z') {- if (yych <= '?')- goto yy352;- if (yych >= 'A')- goto yy353;- } else {- if (yych <= '`')- goto yy348;- if (yych <= 'z')- goto yy353;- }- }- yy348:- ++p;- yy349 : { return 0; }- yy350:- yych = *(marker = ++p);- if (yybm[0 + yych] & 16) {- goto yy426;- }- if (yych == '-')- goto yy428;- if (yych <= '@')- goto yy349;- if (yych <= '[')- goto yy425;- goto yy349;- yy351:- yych = *(marker = ++p);- if (yych <= '@')- goto yy349;- if (yych <= 'Z')- goto yy421;- if (yych <= '`')- goto yy349;- if (yych <= 'z')- goto yy421;- goto yy349;- yy352:- yych = *(marker = ++p);- if (yych <= 0x00)- goto yy349;- if (yych <= 0x7F)- goto yy405;- if (yych <= 0xC1)- goto yy349;- if (yych <= 0xF4)- goto yy405;- goto yy349;- yy353:- yych = *(marker = ++p);- if (yybm[256 + yych] & 64) {- goto yy357;- }- if (yych <= '=') {- if (yych <= '.') {- if (yych != '-')- goto yy349;- } else {- if (yych <= '/')- goto yy359;- if (yych >= ':')- goto yy349;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy360;- if (yych <= '@')- goto yy349;- } else {- if (yych <= '`')- goto yy349;- if (yych >= '{')- goto yy349;- }- }- yy354:- ++p;- yych = *p;- if (yybm[256 + yych] & 64) {- goto yy357;- }- if (yych <= '=') {- if (yych <= '.') {- if (yych == '-')- goto yy354;- } else {- if (yych <= '/')- goto yy359;- if (yych <= '9')- goto yy354;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy360;- if (yych >= 'A')- goto yy354;- } else {- if (yych <= '`')- goto yy356;- if (yych <= 'z')- goto yy354;- }- }- yy356:- p = marker;- goto yy349;- yy357:- ++p;- yych = *p;- if (yybm[256 + yych] & 64) {- goto yy357;- }- if (yych <= '>') {- if (yych <= '9') {- if (yych != '/')- goto yy356;- } else {- if (yych <= ':')- goto yy362;- if (yych <= '=')- goto yy356;- goto yy360;- }- } else {- if (yych <= '^') {- if (yych <= '@')- goto yy356;- if (yych <= 'Z')- goto yy362;- goto yy356;- } else {- if (yych == '`')- goto yy356;- if (yych <= 'z')- goto yy362;- goto yy356;- }- }- yy359:- yych = *++p;- if (yych != '>')- goto yy356;- yy360:- ++p;- { return (bufsize_t)(p - start); }- yy362:- ++p;- yych = *p;- if (yybm[256 + yych] & 128) {- goto yy362;- }- if (yych <= ',') {- if (yych <= '\r') {- if (yych <= 0x08)- goto yy356;- } else {- if (yych != ' ')- goto yy356;- }- } else {- if (yych <= '<') {- if (yych <= '/')- goto yy359;- goto yy356;- } else {- if (yych <= '=')- goto yy366;- if (yych <= '>')- goto yy360;- goto yy356;- }- }- yy364:- ++p;- yych = *p;- if (yych <= '<') {- if (yych <= ' ') {- if (yych <= 0x08)- goto yy356;- if (yych <= '\r')- goto yy364;- if (yych <= 0x1F)- goto yy356;- goto yy364;- } else {- if (yych <= '/') {- if (yych <= '.')- goto yy356;- goto yy359;- } else {- if (yych == ':')- goto yy362;- goto yy356;- }- }- } else {- if (yych <= 'Z') {- if (yych <= '=')- goto yy366;- if (yych <= '>')- goto yy360;- if (yych <= '@')- goto yy356;- goto yy362;- } else {- if (yych <= '_') {- if (yych <= '^')- goto yy356;- goto yy362;- } else {- if (yych <= '`')- goto yy356;- if (yych <= 'z')- goto yy362;- goto yy356;- }- }- }- yy366:- ++p;- yych = *p;- if (yybm[0 + yych] & 1) {- goto yy368;- }- if (yych <= 0xE0) {- if (yych <= '"') {- if (yych <= 0x00)- goto yy356;- if (yych >= '!')- goto yy379;- } else {- if (yych <= '\'')- goto yy377;- if (yych <= 0xC1)- goto yy356;- if (yych <= 0xDF)- goto yy370;- goto yy371;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy376;- goto yy372;- } else {- if (yych <= 0xF0)- goto yy373;- if (yych <= 0xF3)- goto yy374;- if (yych <= 0xF4)- goto yy375;- goto yy356;- }- }- ++p;- yych = *p;- if (yybm[0 + yych] & 1) {- goto yy368;- }- if (yych <= 0xDF) {- if (yych <= '\'') {- if (yych <= 0x00)- goto yy356;- if (yych <= ' ')- goto yy402;- if (yych <= '"')- goto yy379;- goto yy377;- } else {- if (yych == '>')- goto yy360;- if (yych <= 0xC1)- goto yy356;- goto yy370;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy371;- if (yych == 0xED)- goto yy376;- goto yy372;- } else {- if (yych <= 0xF0)- goto yy373;- if (yych <= 0xF3)- goto yy374;- if (yych <= 0xF4)- goto yy375;- goto yy356;- }- }- yy368:- ++p;- yych = *p;- if (yybm[0 + yych] & 1) {- goto yy368;- }- if (yych <= 0xE0) {- if (yych <= '=') {- if (yych <= 0x00)- goto yy356;- if (yych <= ' ')- goto yy396;- goto yy356;- } else {- if (yych <= '>')- goto yy360;- if (yych <= 0xC1)- goto yy356;- if (yych >= 0xE0)- goto yy371;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy376;- goto yy372;- } else {- if (yych <= 0xF0)- goto yy373;- if (yych <= 0xF3)- goto yy374;- if (yych <= 0xF4)- goto yy375;- goto yy356;- }- }- yy370:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy368;- goto yy356;- yy371:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy356;- if (yych <= 0xBF)- goto yy370;- goto yy356;- yy372:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy370;- goto yy356;- yy373:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy356;- if (yych <= 0xBF)- goto yy372;- goto yy356;- yy374:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy372;- goto yy356;- yy375:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x8F)- goto yy372;- goto yy356;- yy376:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x9F)- goto yy370;- goto yy356;- yy377:- ++p;- yych = *p;- if (yybm[0 + yych] & 2) {- goto yy377;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x00)- goto yy356;- if (yych <= '\'')- goto yy388;- goto yy356;- } else {- if (yych <= 0xDF)- goto yy389;- if (yych <= 0xE0)- goto yy390;- goto yy391;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy395;- if (yych <= 0xEF)- goto yy391;- goto yy392;- } else {- if (yych <= 0xF3)- goto yy393;- if (yych <= 0xF4)- goto yy394;- goto yy356;- }- }- yy379:- ++p;- yych = *p;- if (yybm[0 + yych] & 4) {- goto yy379;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x00)- goto yy356;- if (yych <= '"')- goto yy388;- goto yy356;- } else {- if (yych <= 0xDF)- goto yy381;- if (yych <= 0xE0)- goto yy382;- goto yy383;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy387;- if (yych <= 0xEF)- goto yy383;- goto yy384;- } else {- if (yych <= 0xF3)- goto yy385;- if (yych <= 0xF4)- goto yy386;- goto yy356;- }- }- yy381:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy379;- goto yy356;- yy382:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy356;- if (yych <= 0xBF)- goto yy381;- goto yy356;- yy383:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy381;- goto yy356;- yy384:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy356;- if (yych <= 0xBF)- goto yy383;- goto yy356;- yy385:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy383;- goto yy356;- yy386:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x8F)- goto yy383;- goto yy356;- yy387:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x9F)- goto yy381;- goto yy356;- yy388:- ++p;- yych = *p;- if (yybm[256 + yych] & 64) {- goto yy357;- }- if (yych == '/')- goto yy359;- if (yych == '>')- goto yy360;- goto yy356;- yy389:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy377;- goto yy356;- yy390:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy356;- if (yych <= 0xBF)- goto yy389;- goto yy356;- yy391:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy389;- goto yy356;- yy392:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy356;- if (yych <= 0xBF)- goto yy391;- goto yy356;- yy393:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy391;- goto yy356;- yy394:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x8F)- goto yy391;- goto yy356;- yy395:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x9F)- goto yy389;- goto yy356;- yy396:- ++p;- yych = *p;- if (yych <= '@') {- if (yych <= '"') {- if (yych <= '\r') {- if (yych <= 0x00)- goto yy356;- if (yych <= 0x08)- goto yy368;- goto yy396;- } else {- if (yych == ' ')- goto yy396;- if (yych <= '!')- goto yy368;- goto yy356;- }- } else {- if (yych <= ':') {- if (yych == '\'')- goto yy356;- if (yych <= '9')- goto yy368;- } else {- if (yych <= ';')- goto yy368;- if (yych <= '=')- goto yy356;- if (yych <= '>')- goto yy360;- goto yy368;- }- }- } else {- if (yych <= 0xDF) {- if (yych <= '`') {- if (yych <= 'Z')- goto yy398;- if (yych <= '^')- goto yy368;- if (yych >= '`')- goto yy356;- } else {- if (yych <= 'z')- goto yy398;- if (yych <= 0x7F)- goto yy368;- if (yych <= 0xC1)- goto yy356;- goto yy370;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy371;- if (yych == 0xED)- goto yy376;- goto yy372;- } else {- if (yych <= 0xF0)- goto yy373;- if (yych <= 0xF3)- goto yy374;- if (yych <= 0xF4)- goto yy375;- goto yy356;- }- }- }- yy398:- ++p;- yych = *p;- if (yych <= '>') {- if (yych <= '&') {- if (yych <= 0x1F) {- if (yych <= 0x00)- goto yy356;- if (yych <= 0x08)- goto yy368;- if (yych >= 0x0E)- goto yy368;- } else {- if (yych <= ' ')- goto yy400;- if (yych == '"')- goto yy356;- goto yy368;- }- } else {- if (yych <= '/') {- if (yych <= '\'')- goto yy356;- if (yych <= ',')- goto yy368;- if (yych <= '.')- goto yy398;- goto yy368;- } else {- if (yych <= ';') {- if (yych <= ':')- goto yy398;- goto yy368;- } else {- if (yych <= '<')- goto yy356;- if (yych <= '=')- goto yy366;- goto yy360;- }- }- }- } else {- if (yych <= 0xC1) {- if (yych <= '_') {- if (yych <= '@')- goto yy368;- if (yych <= 'Z')- goto yy398;- if (yych <= '^')- goto yy368;- goto yy398;- } else {- if (yych <= '`')- goto yy356;- if (yych <= 'z')- goto yy398;- if (yych <= 0x7F)- goto yy368;- goto yy356;- }- } else {- if (yych <= 0xED) {- if (yych <= 0xDF)- goto yy370;- if (yych <= 0xE0)- goto yy371;- if (yych <= 0xEC)- goto yy372;- goto yy376;- } else {- if (yych <= 0xF0) {- if (yych <= 0xEF)- goto yy372;- goto yy373;- } else {- if (yych <= 0xF3)- goto yy374;- if (yych <= 0xF4)- goto yy375;- goto yy356;- }- }- }- }- yy400:- ++p;- yych = *p;- if (yych <= '@') {- if (yych <= '&') {- if (yych <= 0x1F) {- if (yych <= 0x00)- goto yy356;- if (yych <= 0x08)- goto yy368;- if (yych <= '\r')- goto yy400;- goto yy368;- } else {- if (yych <= ' ')- goto yy400;- if (yych == '"')- goto yy356;- goto yy368;- }- } else {- if (yych <= ';') {- if (yych <= '\'')- goto yy356;- if (yych == ':')- goto yy398;- goto yy368;- } else {- if (yych <= '<')- goto yy356;- if (yych <= '=')- goto yy366;- if (yych <= '>')- goto yy360;- goto yy368;- }- }- } else {- if (yych <= 0xDF) {- if (yych <= '`') {- if (yych <= 'Z')- goto yy398;- if (yych <= '^')- goto yy368;- if (yych <= '_')- goto yy398;- goto yy356;- } else {- if (yych <= 'z')- goto yy398;- if (yych <= 0x7F)- goto yy368;- if (yych <= 0xC1)- goto yy356;- goto yy370;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy371;- if (yych == 0xED)- goto yy376;- goto yy372;- } else {- if (yych <= 0xF0)- goto yy373;- if (yych <= 0xF3)- goto yy374;- if (yych <= 0xF4)- goto yy375;- goto yy356;- }- }- }- yy402:- ++p;- yych = *p;- if (yych <= '@') {- if (yych <= '"') {- if (yych <= '\r') {- if (yych <= 0x00)- goto yy356;- if (yych <= 0x08)- goto yy368;- goto yy402;- } else {- if (yych == ' ')- goto yy402;- if (yych <= '!')- goto yy368;- goto yy379;- }- } else {- if (yych <= ':') {- if (yych == '\'')- goto yy377;- if (yych <= '9')- goto yy368;- goto yy398;- } else {- if (yych <= ';')- goto yy368;- if (yych <= '=')- goto yy356;- if (yych <= '>')- goto yy360;- goto yy368;- }- }- } else {- if (yych <= 0xDF) {- if (yych <= '`') {- if (yych <= 'Z')- goto yy398;- if (yych <= '^')- goto yy368;- if (yych <= '_')- goto yy398;- goto yy356;- } else {- if (yych <= 'z')- goto yy398;- if (yych <= 0x7F)- goto yy368;- if (yych <= 0xC1)- goto yy356;- goto yy370;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy371;- if (yych == 0xED)- goto yy376;- goto yy372;- } else {- if (yych <= 0xF0)- goto yy373;- if (yych <= 0xF3)- goto yy374;- if (yych <= 0xF4)- goto yy375;- goto yy356;- }- }- }- yy404:- ++p;- yych = *p;- yy405:- if (yybm[0 + yych] & 8) {- goto yy404;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x00)- goto yy356;- if (yych <= '?')- goto yy413;- goto yy356;- } else {- if (yych <= 0xDF)- goto yy406;- if (yych <= 0xE0)- goto yy407;- goto yy408;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy412;- if (yych <= 0xEF)- goto yy408;- goto yy409;- } else {- if (yych <= 0xF3)- goto yy410;- if (yych <= 0xF4)- goto yy411;- goto yy356;- }- }- yy406:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy404;- goto yy356;- yy407:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy356;- if (yych <= 0xBF)- goto yy406;- goto yy356;- yy408:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy406;- goto yy356;- yy409:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy356;- if (yych <= 0xBF)- goto yy408;- goto yy356;- yy410:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy408;- goto yy356;- yy411:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x8F)- goto yy408;- goto yy356;- yy412:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x9F)- goto yy406;- goto yy356;- yy413:- ++p;- yych = *p;- if (yych <= 0xE0) {- if (yych <= '>') {- if (yych <= 0x00)- goto yy356;- if (yych <= '=')- goto yy404;- goto yy360;- } else {- if (yych <= 0x7F)- goto yy404;- if (yych <= 0xC1)- goto yy356;- if (yych >= 0xE0)- goto yy415;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy420;- goto yy416;- } else {- if (yych <= 0xF0)- goto yy417;- if (yych <= 0xF3)- goto yy418;- if (yych <= 0xF4)- goto yy419;- goto yy356;- }- }- yy414:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy404;- goto yy356;- yy415:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy356;- if (yych <= 0xBF)- goto yy414;- goto yy356;- yy416:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy414;- goto yy356;- yy417:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy356;- if (yych <= 0xBF)- goto yy416;- goto yy356;- yy418:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy416;- goto yy356;- yy419:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x8F)- goto yy416;- goto yy356;- yy420:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x9F)- goto yy414;- goto yy356;- yy421:- ++p;- yych = *p;- if (yych <= '/') {- if (yych <= 0x1F) {- if (yych <= 0x08)- goto yy356;- if (yych >= 0x0E)- goto yy356;- } else {- if (yych <= ' ')- goto yy423;- if (yych == '-')- goto yy421;- goto yy356;- }- } else {- if (yych <= '@') {- if (yych <= '9')- goto yy421;- if (yych == '>')- goto yy360;- goto yy356;- } else {- if (yych <= 'Z')- goto yy421;- if (yych <= '`')- goto yy356;- if (yych <= 'z')- goto yy421;- goto yy356;- }- }- yy423:- ++p;- yych = *p;- if (yych <= 0x1F) {- if (yych <= 0x08)- goto yy356;- if (yych <= '\r')- goto yy423;- goto yy356;- } else {- if (yych <= ' ')- goto yy423;- if (yych == '>')- goto yy360;- goto yy356;- }- yy425:- yych = *++p;- if (yych == 'C')- goto yy461;- if (yych == 'c')- goto yy461;- goto yy356;- yy426:- ++p;- yych = *p;- if (yybm[0 + yych] & 16) {- goto yy426;- }- if (yych <= 0x08)- goto yy356;- if (yych <= '\r')- goto yy450;- if (yych == ' ')- goto yy450;- goto yy356;- yy428:- yych = *++p;- if (yych != '-')- goto yy356;- yych = *++p;- if (yych <= 0xE0) {- if (yych <= '=') {- if (yych != '-')- goto yy432;- } else {- if (yych <= '>')- goto yy356;- if (yych <= 0xC1)- goto yy432;- if (yych <= 0xDF)- goto yy433;- goto yy434;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy439;- goto yy435;- } else {- if (yych <= 0xF0)- goto yy436;- if (yych <= 0xF3)- goto yy437;- if (yych <= 0xF4)- goto yy438;- goto yy432;- }- }- yych = *++p;- if (yych <= 0xE0) {- if (yych <= '=') {- if (yych == '-')- goto yy449;- goto yy432;- } else {- if (yych <= '>')- goto yy356;- if (yych <= 0xC1)- goto yy432;- if (yych <= 0xDF)- goto yy433;- goto yy434;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy439;- goto yy435;- } else {- if (yych <= 0xF0)- goto yy436;- if (yych <= 0xF3)- goto yy437;- if (yych <= 0xF4)- goto yy438;- goto yy432;- }- }- yy431:- ++p;- yych = *p;- yy432:- if (yybm[0 + yych] & 32) {- goto yy431;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x00)- goto yy356;- if (yych <= '-')- goto yy440;- goto yy356;- } else {- if (yych <= 0xDF)- goto yy441;- if (yych <= 0xE0)- goto yy442;- goto yy443;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy447;- if (yych <= 0xEF)- goto yy443;- goto yy444;- } else {- if (yych <= 0xF3)- goto yy445;- if (yych <= 0xF4)- goto yy446;- goto yy356;- }- }- yy433:- yych = *++p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy431;- goto yy356;- yy434:- yych = *++p;- if (yych <= 0x9F)- goto yy356;- if (yych <= 0xBF)- goto yy433;- goto yy356;- yy435:- yych = *++p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy433;- goto yy356;- yy436:- yych = *++p;- if (yych <= 0x8F)- goto yy356;- if (yych <= 0xBF)- goto yy435;- goto yy356;- yy437:- yych = *++p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy435;- goto yy356;- yy438:- yych = *++p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x8F)- goto yy435;- goto yy356;- yy439:- yych = *++p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x9F)- goto yy433;- goto yy356;- yy440:- ++p;- yych = *p;- if (yybm[0 + yych] & 32) {- goto yy431;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x00)- goto yy356;- if (yych <= '-')- goto yy448;- goto yy356;- } else {- if (yych <= 0xDF)- goto yy441;- if (yych <= 0xE0)- goto yy442;- goto yy443;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy447;- if (yych <= 0xEF)- goto yy443;- goto yy444;- } else {- if (yych <= 0xF3)- goto yy445;- if (yych <= 0xF4)- goto yy446;- goto yy356;- }- }- yy441:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy431;- goto yy356;- yy442:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy356;- if (yych <= 0xBF)- goto yy441;- goto yy356;- yy443:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy441;- goto yy356;- yy444:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy356;- if (yych <= 0xBF)- goto yy443;- goto yy356;- yy445:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy443;- goto yy356;- yy446:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x8F)- goto yy443;- goto yy356;- yy447:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x9F)- goto yy441;- goto yy356;- yy448:- yych = *++p;- if (yych == '>')- goto yy360;- goto yy356;- yy449:- yych = *++p;- if (yych == '>')- goto yy360;- goto yy356;- yy450:- ++p;- yych = *p;- if (yych <= 0xC1) {- if (yych <= 0x1F) {- if (yych <= 0x00)- goto yy356;- if (yych <= 0x08)- goto yy452;- if (yych <= '\r')- goto yy450;- } else {- if (yych <= '=') {- if (yych <= ' ')- goto yy450;- } else {- if (yych <= '>')- goto yy360;- if (yych >= 0x80)- goto yy356;- }- }- } else {- if (yych <= 0xED) {- if (yych <= 0xDF)- goto yy454;- if (yych <= 0xE0)- goto yy455;- if (yych <= 0xEC)- goto yy456;- goto yy460;- } else {- if (yych <= 0xF0) {- if (yych <= 0xEF)- goto yy456;- goto yy457;- } else {- if (yych <= 0xF3)- goto yy458;- if (yych <= 0xF4)- goto yy459;- goto yy356;- }- }- }- yy452:- ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy452;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x00)- goto yy356;- if (yych <= '>')- goto yy360;- goto yy356;- } else {- if (yych <= 0xDF)- goto yy454;- if (yych <= 0xE0)- goto yy455;- goto yy456;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy460;- if (yych <= 0xEF)- goto yy456;- goto yy457;- } else {- if (yych <= 0xF3)- goto yy458;- if (yych <= 0xF4)- goto yy459;- goto yy356;- }- }- yy454:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy452;- goto yy356;- yy455:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy356;- if (yych <= 0xBF)- goto yy454;- goto yy356;- yy456:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy454;- goto yy356;- yy457:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy356;- if (yych <= 0xBF)- goto yy456;- goto yy356;- yy458:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy456;- goto yy356;- yy459:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x8F)- goto yy456;- goto yy356;- yy460:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x9F)- goto yy454;- goto yy356;- yy461:- yych = *++p;- if (yych == 'D')- goto yy462;- if (yych != 'd')- goto yy356;- yy462:- yych = *++p;- if (yych == 'A')- goto yy463;- if (yych != 'a')- goto yy356;- yy463:- yych = *++p;- if (yych == 'T')- goto yy464;- if (yych != 't')- goto yy356;- yy464:- yych = *++p;- if (yych == 'A')- goto yy465;- if (yych != 'a')- goto yy356;- yy465:- yych = *++p;- if (yych != '[')- goto yy356;- yy466:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy466;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x00)- goto yy356;- if (yych <= ']')- goto yy475;- goto yy356;- } else {- if (yych <= 0xDF)- goto yy468;- if (yych <= 0xE0)- goto yy469;- goto yy470;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy474;- if (yych <= 0xEF)- goto yy470;- goto yy471;- } else {- if (yych <= 0xF3)- goto yy472;- if (yych <= 0xF4)- goto yy473;- goto yy356;- }- }- yy468:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy466;- goto yy356;- yy469:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy356;- if (yych <= 0xBF)- goto yy468;- goto yy356;- yy470:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy468;- goto yy356;- yy471:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy356;- if (yych <= 0xBF)- goto yy470;- goto yy356;- yy472:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy470;- goto yy356;- yy473:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x8F)- goto yy470;- goto yy356;- yy474:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x9F)- goto yy468;- goto yy356;- yy475:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy466;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x00)- goto yy356;- if (yych >= '^')- goto yy356;- } else {- if (yych <= 0xDF)- goto yy477;- if (yych <= 0xE0)- goto yy478;- goto yy479;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy483;- if (yych <= 0xEF)- goto yy479;- goto yy480;- } else {- if (yych <= 0xF3)- goto yy481;- if (yych <= 0xF4)- goto yy482;- goto yy356;- }- }- ++p;- yych = *p;- if (yych <= 0xE0) {- if (yych <= '>') {- if (yych <= 0x00)- goto yy356;- if (yych <= '=')- goto yy466;- goto yy360;- } else {- if (yych <= 0x7F)- goto yy466;- if (yych <= 0xC1)- goto yy356;- if (yych <= 0xDF)- goto yy484;- goto yy485;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy490;- goto yy486;- } else {- if (yych <= 0xF0)- goto yy487;- if (yych <= 0xF3)- goto yy488;- if (yych <= 0xF4)- goto yy489;- goto yy356;- }- }- yy477:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy466;- goto yy356;- yy478:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy356;- if (yych <= 0xBF)- goto yy477;- goto yy356;- yy479:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy477;- goto yy356;- yy480:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy356;- if (yych <= 0xBF)- goto yy479;- goto yy356;- yy481:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy479;- goto yy356;- yy482:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x8F)- goto yy479;- goto yy356;- yy483:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x9F)- goto yy477;- goto yy356;- yy484:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy466;- goto yy356;- yy485:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy356;- if (yych <= 0xBF)- goto yy484;- goto yy356;- yy486:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy484;- goto yy356;- yy487:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy356;- if (yych <= 0xBF)- goto yy486;- goto yy356;- yy488:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0xBF)- goto yy486;- goto yy356;- yy489:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x8F)- goto yy486;- goto yy356;- yy490:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy356;- if (yych <= 0x9F)- goto yy484;- goto yy356;- }-}--// Try to match an HTML block tag start line, returning-// an integer code for the type of block (1-6, matching the spec).-// #7 is handled by a separate function, below.-bufsize_t _scan_html_block_start(const unsigned char *p) {- const unsigned char *marker = NULL;-- {- unsigned char yych;- yych = *p;- if (yych == '<')- goto yy495;- ++p;- yy494 : { return 0; }- yy495:- yych = *(marker = ++p);- switch (yych) {- case '!':- goto yy513;- case '/':- goto yy496;- case '?':- goto yy514;- case 'A':- case 'a':- goto yy499;- case 'B':- case 'b':- goto yy500;- case 'C':- case 'c':- goto yy501;- case 'D':- case 'd':- goto yy502;- case 'F':- case 'f':- goto yy503;- case 'H':- case 'h':- goto yy504;- case 'I':- case 'i':- goto yy505;- case 'L':- case 'l':- goto yy506;- case 'M':- case 'm':- goto yy507;- case 'N':- case 'n':- goto yy508;- case 'O':- case 'o':- goto yy509;- case 'P':- case 'p':- goto yy498;- case 'S':- case 's':- goto yy510;- case 'T':- case 't':- goto yy511;- case 'U':- case 'u':- goto yy512;- default:- goto yy494;- }- yy496:- yych = *++p;- switch (yych) {- case 'A':- case 'a':- goto yy499;- case 'B':- case 'b':- goto yy500;- case 'C':- case 'c':- goto yy501;- case 'D':- case 'd':- goto yy502;- case 'F':- case 'f':- goto yy503;- case 'H':- case 'h':- goto yy504;- case 'I':- case 'i':- goto yy505;- case 'L':- case 'l':- goto yy506;- case 'M':- case 'm':- goto yy507;- case 'N':- case 'n':- goto yy508;- case 'O':- case 'o':- goto yy509;- case 'P':- case 'p':- goto yy698;- case 'S':- case 's':- goto yy699;- case 'T':- case 't':- goto yy511;- case 'U':- case 'u':- goto yy512;- default:- goto yy497;- }- yy497:- p = marker;- goto yy494;- yy498:- yych = *++p;- if (yych <= '>') {- if (yych <= ' ') {- if (yych <= 0x08)- goto yy497;- if (yych <= '\r')- goto yy530;- if (yych <= 0x1F)- goto yy497;- goto yy530;- } else {- if (yych == '/')- goto yy532;- if (yych <= '=')- goto yy497;- goto yy530;- }- } else {- if (yych <= 'R') {- if (yych == 'A')- goto yy695;- if (yych <= 'Q')- goto yy497;- goto yy694;- } else {- if (yych <= 'a') {- if (yych <= '`')- goto yy497;- goto yy695;- } else {- if (yych == 'r')- goto yy694;- goto yy497;- }- }- }- yy499:- yych = *++p;- if (yych <= 'S') {- if (yych <= 'D') {- if (yych <= 'C')- goto yy497;- goto yy683;- } else {- if (yych <= 'Q')- goto yy497;- if (yych <= 'R')- goto yy682;- goto yy681;- }- } else {- if (yych <= 'q') {- if (yych == 'd')- goto yy683;- goto yy497;- } else {- if (yych <= 'r')- goto yy682;- if (yych <= 's')- goto yy681;- goto yy497;- }- }- yy500:- yych = *++p;- if (yych <= 'O') {- if (yych <= 'K') {- if (yych == 'A')- goto yy667;- goto yy497;- } else {- if (yych <= 'L')- goto yy666;- if (yych <= 'N')- goto yy497;- goto yy665;- }- } else {- if (yych <= 'k') {- if (yych == 'a')- goto yy667;- goto yy497;- } else {- if (yych <= 'l')- goto yy666;- if (yych == 'o')- goto yy665;- goto yy497;- }- }- yy501:- yych = *++p;- if (yych <= 'O') {- if (yych <= 'D') {- if (yych == 'A')- goto yy652;- goto yy497;- } else {- if (yych <= 'E')- goto yy651;- if (yych <= 'N')- goto yy497;- goto yy650;- }- } else {- if (yych <= 'd') {- if (yych == 'a')- goto yy652;- goto yy497;- } else {- if (yych <= 'e')- goto yy651;- if (yych == 'o')- goto yy650;- goto yy497;- }- }- yy502:- yych = *++p;- switch (yych) {- case 'D':- case 'L':- case 'T':- case 'd':- case 'l':- case 't':- goto yy529;- case 'E':- case 'e':- goto yy642;- case 'I':- case 'i':- goto yy641;- default:- goto yy497;- }- yy503:- yych = *++p;- if (yych <= 'R') {- if (yych <= 'N') {- if (yych == 'I')- goto yy617;- goto yy497;- } else {- if (yych <= 'O')- goto yy616;- if (yych <= 'Q')- goto yy497;- goto yy615;- }- } else {- if (yych <= 'n') {- if (yych == 'i')- goto yy617;- goto yy497;- } else {- if (yych <= 'o')- goto yy616;- if (yych == 'r')- goto yy615;- goto yy497;- }- }- yy504:- yych = *++p;- if (yych <= 'S') {- if (yych <= 'D') {- if (yych <= '0')- goto yy497;- if (yych <= '6')- goto yy529;- goto yy497;- } else {- if (yych <= 'E')- goto yy610;- if (yych == 'R')- goto yy529;- goto yy497;- }- } else {- if (yych <= 'q') {- if (yych <= 'T')- goto yy609;- if (yych == 'e')- goto yy610;- goto yy497;- } else {- if (yych <= 'r')- goto yy529;- if (yych == 't')- goto yy609;- goto yy497;- }- }- yy505:- yych = *++p;- if (yych == 'F')- goto yy605;- if (yych == 'f')- goto yy605;- goto yy497;- yy506:- yych = *++p;- if (yych <= 'I') {- if (yych == 'E')- goto yy600;- if (yych <= 'H')- goto yy497;- goto yy599;- } else {- if (yych <= 'e') {- if (yych <= 'd')- goto yy497;- goto yy600;- } else {- if (yych == 'i')- goto yy599;- goto yy497;- }- }- yy507:- yych = *++p;- if (yych <= 'E') {- if (yych == 'A')- goto yy591;- if (yych <= 'D')- goto yy497;- goto yy590;- } else {- if (yych <= 'a') {- if (yych <= '`')- goto yy497;- goto yy591;- } else {- if (yych == 'e')- goto yy590;- goto yy497;- }- }- yy508:- yych = *++p;- if (yych <= 'O') {- if (yych == 'A')- goto yy584;- if (yych <= 'N')- goto yy497;- goto yy583;- } else {- if (yych <= 'a') {- if (yych <= '`')- goto yy497;- goto yy584;- } else {- if (yych == 'o')- goto yy583;- goto yy497;- }- }- yy509:- yych = *++p;- if (yych <= 'P') {- if (yych == 'L')- goto yy529;- if (yych <= 'O')- goto yy497;- goto yy575;- } else {- if (yych <= 'l') {- if (yych <= 'k')- goto yy497;- goto yy529;- } else {- if (yych == 'p')- goto yy575;- goto yy497;- }- }- yy510:- yych = *++p;- switch (yych) {- case 'C':- case 'c':- goto yy552;- case 'E':- case 'e':- goto yy555;- case 'O':- case 'o':- goto yy554;- case 'T':- case 't':- goto yy551;- case 'U':- case 'u':- goto yy553;- default:- goto yy497;- }- yy511:- yych = *++p;- switch (yych) {- case 'A':- case 'a':- goto yy538;- case 'B':- case 'b':- goto yy537;- case 'D':- case 'd':- goto yy529;- case 'F':- case 'f':- goto yy536;- case 'H':- case 'h':- goto yy535;- case 'I':- case 'i':- goto yy534;- case 'R':- case 'r':- goto yy533;- default:- goto yy497;- }- yy512:- yych = *++p;- if (yych == 'L')- goto yy529;- if (yych == 'l')- goto yy529;- goto yy497;- yy513:- yych = *++p;- if (yych <= '@') {- if (yych == '-')- goto yy516;- goto yy497;- } else {- if (yych <= 'Z')- goto yy517;- if (yych <= '[')- goto yy519;- goto yy497;- }- yy514:- ++p;- { return 3; }- yy516:- yych = *++p;- if (yych == '-')- goto yy527;- goto yy497;- yy517:- ++p;- { return 4; }- yy519:- yych = *++p;- if (yych == 'C')- goto yy520;- if (yych != 'c')- goto yy497;- yy520:- yych = *++p;- if (yych == 'D')- goto yy521;- if (yych != 'd')- goto yy497;- yy521:- yych = *++p;- if (yych == 'A')- goto yy522;- if (yych != 'a')- goto yy497;- yy522:- yych = *++p;- if (yych == 'T')- goto yy523;- if (yych != 't')- goto yy497;- yy523:- yych = *++p;- if (yych == 'A')- goto yy524;- if (yych != 'a')- goto yy497;- yy524:- yych = *++p;- if (yych != '[')- goto yy497;- ++p;- { return 5; }- yy527:- ++p;- { return 2; }- yy529:- yych = *++p;- if (yych <= ' ') {- if (yych <= 0x08)- goto yy497;- if (yych <= '\r')- goto yy530;- if (yych <= 0x1F)- goto yy497;- } else {- if (yych <= '/') {- if (yych <= '.')- goto yy497;- goto yy532;- } else {- if (yych != '>')- goto yy497;- }- }- yy530:- ++p;- { return 6; }- yy532:- yych = *++p;- if (yych == '>')- goto yy530;- goto yy497;- yy533:- yych = *++p;- if (yych <= '/') {- if (yych <= 0x1F) {- if (yych <= 0x08)- goto yy497;- if (yych <= '\r')- goto yy530;- goto yy497;- } else {- if (yych <= ' ')- goto yy530;- if (yych <= '.')- goto yy497;- goto yy532;- }- } else {- if (yych <= '@') {- if (yych == '>')- goto yy530;- goto yy497;- } else {- if (yych <= 'A')- goto yy549;- if (yych == 'a')- goto yy549;- goto yy497;- }- }- yy534:- yych = *++p;- if (yych == 'T')- goto yy547;- if (yych == 't')- goto yy547;- goto yy497;- yy535:- yych = *++p;- if (yych <= '/') {- if (yych <= 0x1F) {- if (yych <= 0x08)- goto yy497;- if (yych <= '\r')- goto yy530;- goto yy497;- } else {- if (yych <= ' ')- goto yy530;- if (yych <= '.')- goto yy497;- goto yy532;- }- } else {- if (yych <= 'D') {- if (yych == '>')- goto yy530;- goto yy497;- } else {- if (yych <= 'E')- goto yy545;- if (yych == 'e')- goto yy545;- goto yy497;- }- }- yy536:- yych = *++p;- if (yych == 'O')- goto yy543;- if (yych == 'o')- goto yy543;- goto yy497;- yy537:- yych = *++p;- if (yych == 'O')- goto yy541;- if (yych == 'o')- goto yy541;- goto yy497;- yy538:- yych = *++p;- if (yych == 'B')- goto yy539;- if (yych != 'b')- goto yy497;- yy539:- yych = *++p;- if (yych == 'L')- goto yy540;- if (yych != 'l')- goto yy497;- yy540:- yych = *++p;- if (yych == 'E')- goto yy529;- if (yych == 'e')- goto yy529;- goto yy497;- yy541:- yych = *++p;- if (yych == 'D')- goto yy542;- if (yych != 'd')- goto yy497;- yy542:- yych = *++p;- if (yych == 'Y')- goto yy529;- if (yych == 'y')- goto yy529;- goto yy497;- yy543:- yych = *++p;- if (yych == 'O')- goto yy544;- if (yych != 'o')- goto yy497;- yy544:- yych = *++p;- if (yych == 'T')- goto yy529;- if (yych == 't')- goto yy529;- goto yy497;- yy545:- yych = *++p;- if (yych == 'A')- goto yy546;- if (yych != 'a')- goto yy497;- yy546:- yych = *++p;- if (yych == 'D')- goto yy529;- if (yych == 'd')- goto yy529;- goto yy497;- yy547:- yych = *++p;- if (yych == 'L')- goto yy548;- if (yych != 'l')- goto yy497;- yy548:- yych = *++p;- if (yych == 'E')- goto yy529;- if (yych == 'e')- goto yy529;- goto yy497;- yy549:- yych = *++p;- if (yych == 'C')- goto yy550;- if (yych != 'c')- goto yy497;- yy550:- yych = *++p;- if (yych == 'K')- goto yy529;- if (yych == 'k')- goto yy529;- goto yy497;- yy551:- yych = *++p;- if (yych == 'Y')- goto yy573;- if (yych == 'y')- goto yy573;- goto yy497;- yy552:- yych = *++p;- if (yych == 'R')- goto yy567;- if (yych == 'r')- goto yy567;- goto yy497;- yy553:- yych = *++p;- if (yych == 'M')- goto yy563;- if (yych == 'm')- goto yy563;- goto yy497;- yy554:- yych = *++p;- if (yych == 'U')- goto yy560;- if (yych == 'u')- goto yy560;- goto yy497;- yy555:- yych = *++p;- if (yych == 'C')- goto yy556;- if (yych != 'c')- goto yy497;- yy556:- yych = *++p;- if (yych == 'T')- goto yy557;- if (yych != 't')- goto yy497;- yy557:- yych = *++p;- if (yych == 'I')- goto yy558;- if (yych != 'i')- goto yy497;- yy558:- yych = *++p;- if (yych == 'O')- goto yy559;- if (yych != 'o')- goto yy497;- yy559:- yych = *++p;- if (yych == 'N')- goto yy529;- if (yych == 'n')- goto yy529;- goto yy497;- yy560:- yych = *++p;- if (yych == 'R')- goto yy561;- if (yych != 'r')- goto yy497;- yy561:- yych = *++p;- if (yych == 'C')- goto yy562;- if (yych != 'c')- goto yy497;- yy562:- yych = *++p;- if (yych == 'E')- goto yy529;- if (yych == 'e')- goto yy529;- goto yy497;- yy563:- yych = *++p;- if (yych == 'M')- goto yy564;- if (yych != 'm')- goto yy497;- yy564:- yych = *++p;- if (yych == 'A')- goto yy565;- if (yych != 'a')- goto yy497;- yy565:- yych = *++p;- if (yych == 'R')- goto yy566;- if (yych != 'r')- goto yy497;- yy566:- yych = *++p;- if (yych == 'Y')- goto yy529;- if (yych == 'y')- goto yy529;- goto yy497;- yy567:- yych = *++p;- if (yych == 'I')- goto yy568;- if (yych != 'i')- goto yy497;- yy568:- yych = *++p;- if (yych == 'P')- goto yy569;- if (yych != 'p')- goto yy497;- yy569:- yych = *++p;- if (yych == 'T')- goto yy570;- if (yych != 't')- goto yy497;- yy570:- yych = *++p;- if (yych <= 0x1F) {- if (yych <= 0x08)- goto yy497;- if (yych >= 0x0E)- goto yy497;- } else {- if (yych <= ' ')- goto yy571;- if (yych != '>')- goto yy497;- }- yy571:- ++p;- { return 1; }- yy573:- yych = *++p;- if (yych == 'L')- goto yy574;- if (yych != 'l')- goto yy497;- yy574:- yych = *++p;- if (yych == 'E')- goto yy570;- if (yych == 'e')- goto yy570;- goto yy497;- yy575:- yych = *++p;- if (yych == 'T')- goto yy576;- if (yych != 't')- goto yy497;- yy576:- yych = *++p;- if (yych <= 'I') {- if (yych == 'G')- goto yy578;- if (yych <= 'H')- goto yy497;- } else {- if (yych <= 'g') {- if (yych <= 'f')- goto yy497;- goto yy578;- } else {- if (yych != 'i')- goto yy497;- }- }- yych = *++p;- if (yych == 'O')- goto yy582;- if (yych == 'o')- goto yy582;- goto yy497;- yy578:- yych = *++p;- if (yych == 'R')- goto yy579;- if (yych != 'r')- goto yy497;- yy579:- yych = *++p;- if (yych == 'O')- goto yy580;- if (yych != 'o')- goto yy497;- yy580:- yych = *++p;- if (yych == 'U')- goto yy581;- if (yych != 'u')- goto yy497;- yy581:- yych = *++p;- if (yych == 'P')- goto yy529;- if (yych == 'p')- goto yy529;- goto yy497;- yy582:- yych = *++p;- if (yych == 'N')- goto yy529;- if (yych == 'n')- goto yy529;- goto yy497;- yy583:- yych = *++p;- if (yych == 'F')- goto yy585;- if (yych == 'f')- goto yy585;- goto yy497;- yy584:- yych = *++p;- if (yych == 'V')- goto yy529;- if (yych == 'v')- goto yy529;- goto yy497;- yy585:- yych = *++p;- if (yych == 'R')- goto yy586;- if (yych != 'r')- goto yy497;- yy586:- yych = *++p;- if (yych == 'A')- goto yy587;- if (yych != 'a')- goto yy497;- yy587:- yych = *++p;- if (yych == 'M')- goto yy588;- if (yych != 'm')- goto yy497;- yy588:- yych = *++p;- if (yych == 'E')- goto yy589;- if (yych != 'e')- goto yy497;- yy589:- yych = *++p;- if (yych == 'S')- goto yy529;- if (yych == 's')- goto yy529;- goto yy497;- yy590:- yych = *++p;- if (yych <= 'T') {- if (yych == 'N')- goto yy593;- if (yych <= 'S')- goto yy497;- goto yy594;- } else {- if (yych <= 'n') {- if (yych <= 'm')- goto yy497;- goto yy593;- } else {- if (yych == 't')- goto yy594;- goto yy497;- }- }- yy591:- yych = *++p;- if (yych == 'I')- goto yy592;- if (yych != 'i')- goto yy497;- yy592:- yych = *++p;- if (yych == 'N')- goto yy529;- if (yych == 'n')- goto yy529;- goto yy497;- yy593:- yych = *++p;- if (yych == 'U')- goto yy595;- if (yych == 'u')- goto yy595;- goto yy497;- yy594:- yych = *++p;- if (yych == 'A')- goto yy529;- if (yych == 'a')- goto yy529;- goto yy497;- yy595:- yych = *++p;- if (yych <= '/') {- if (yych <= 0x1F) {- if (yych <= 0x08)- goto yy497;- if (yych <= '\r')- goto yy530;- goto yy497;- } else {- if (yych <= ' ')- goto yy530;- if (yych <= '.')- goto yy497;- goto yy532;- }- } else {- if (yych <= 'H') {- if (yych == '>')- goto yy530;- goto yy497;- } else {- if (yych <= 'I')- goto yy596;- if (yych != 'i')- goto yy497;- }- }- yy596:- yych = *++p;- if (yych == 'T')- goto yy597;- if (yych != 't')- goto yy497;- yy597:- yych = *++p;- if (yych == 'E')- goto yy598;- if (yych != 'e')- goto yy497;- yy598:- yych = *++p;- if (yych == 'M')- goto yy529;- if (yych == 'm')- goto yy529;- goto yy497;- yy599:- yych = *++p;- if (yych <= '/') {- if (yych <= 0x1F) {- if (yych <= 0x08)- goto yy497;- if (yych <= '\r')- goto yy530;- goto yy497;- } else {- if (yych <= ' ')- goto yy530;- if (yych <= '.')- goto yy497;- goto yy532;- }- } else {- if (yych <= 'M') {- if (yych == '>')- goto yy530;- goto yy497;- } else {- if (yych <= 'N')- goto yy604;- if (yych == 'n')- goto yy604;- goto yy497;- }- }- yy600:- yych = *++p;- if (yych == 'G')- goto yy601;- if (yych != 'g')- goto yy497;- yy601:- yych = *++p;- if (yych == 'E')- goto yy602;- if (yych != 'e')- goto yy497;- yy602:- yych = *++p;- if (yych == 'N')- goto yy603;- if (yych != 'n')- goto yy497;- yy603:- yych = *++p;- if (yych == 'D')- goto yy529;- if (yych == 'd')- goto yy529;- goto yy497;- yy604:- yych = *++p;- if (yych == 'K')- goto yy529;- if (yych == 'k')- goto yy529;- goto yy497;- yy605:- yych = *++p;- if (yych == 'R')- goto yy606;- if (yych != 'r')- goto yy497;- yy606:- yych = *++p;- if (yych == 'A')- goto yy607;- if (yych != 'a')- goto yy497;- yy607:- yych = *++p;- if (yych == 'M')- goto yy608;- if (yych != 'm')- goto yy497;- yy608:- yych = *++p;- if (yych == 'E')- goto yy529;- if (yych == 'e')- goto yy529;- goto yy497;- yy609:- yych = *++p;- if (yych == 'M')- goto yy614;- if (yych == 'm')- goto yy614;- goto yy497;- yy610:- yych = *++p;- if (yych == 'A')- goto yy611;- if (yych != 'a')- goto yy497;- yy611:- yych = *++p;- if (yych == 'D')- goto yy612;- if (yych != 'd')- goto yy497;- yy612:- yych = *++p;- if (yych <= '/') {- if (yych <= 0x1F) {- if (yych <= 0x08)- goto yy497;- if (yych <= '\r')- goto yy530;- goto yy497;- } else {- if (yych <= ' ')- goto yy530;- if (yych <= '.')- goto yy497;- goto yy532;- }- } else {- if (yych <= 'D') {- if (yych == '>')- goto yy530;- goto yy497;- } else {- if (yych <= 'E')- goto yy613;- if (yych != 'e')- goto yy497;- }- }- yy613:- yych = *++p;- if (yych == 'R')- goto yy529;- if (yych == 'r')- goto yy529;- goto yy497;- yy614:- yych = *++p;- if (yych == 'L')- goto yy529;- if (yych == 'l')- goto yy529;- goto yy497;- yy615:- yych = *++p;- if (yych == 'A')- goto yy636;- if (yych == 'a')- goto yy636;- goto yy497;- yy616:- yych = *++p;- if (yych <= 'R') {- if (yych == 'O')- goto yy632;- if (yych <= 'Q')- goto yy497;- goto yy633;- } else {- if (yych <= 'o') {- if (yych <= 'n')- goto yy497;- goto yy632;- } else {- if (yych == 'r')- goto yy633;- goto yy497;- }- }- yy617:- yych = *++p;- if (yych <= 'G') {- if (yych == 'E')- goto yy618;- if (yych <= 'F')- goto yy497;- goto yy619;- } else {- if (yych <= 'e') {- if (yych <= 'd')- goto yy497;- } else {- if (yych == 'g')- goto yy619;- goto yy497;- }- }- yy618:- yych = *++p;- if (yych == 'L')- goto yy628;- if (yych == 'l')- goto yy628;- goto yy497;- yy619:- yych = *++p;- if (yych <= 'U') {- if (yych == 'C')- goto yy621;- if (yych <= 'T')- goto yy497;- } else {- if (yych <= 'c') {- if (yych <= 'b')- goto yy497;- goto yy621;- } else {- if (yych != 'u')- goto yy497;- }- }- yych = *++p;- if (yych == 'R')- goto yy627;- if (yych == 'r')- goto yy627;- goto yy497;- yy621:- yych = *++p;- if (yych == 'A')- goto yy622;- if (yych != 'a')- goto yy497;- yy622:- yych = *++p;- if (yych == 'P')- goto yy623;- if (yych != 'p')- goto yy497;- yy623:- yych = *++p;- if (yych == 'T')- goto yy624;- if (yych != 't')- goto yy497;- yy624:- yych = *++p;- if (yych == 'I')- goto yy625;- if (yych != 'i')- goto yy497;- yy625:- yych = *++p;- if (yych == 'O')- goto yy626;- if (yych != 'o')- goto yy497;- yy626:- yych = *++p;- if (yych == 'N')- goto yy529;- if (yych == 'n')- goto yy529;- goto yy497;- yy627:- yych = *++p;- if (yych == 'E')- goto yy529;- if (yych == 'e')- goto yy529;- goto yy497;- yy628:- yych = *++p;- if (yych == 'D')- goto yy629;- if (yych != 'd')- goto yy497;- yy629:- yych = *++p;- if (yych == 'S')- goto yy630;- if (yych != 's')- goto yy497;- yy630:- yych = *++p;- if (yych == 'E')- goto yy631;- if (yych != 'e')- goto yy497;- yy631:- yych = *++p;- if (yych == 'T')- goto yy529;- if (yych == 't')- goto yy529;- goto yy497;- yy632:- yych = *++p;- if (yych == 'T')- goto yy634;- if (yych == 't')- goto yy634;- goto yy497;- yy633:- yych = *++p;- if (yych == 'M')- goto yy529;- if (yych == 'm')- goto yy529;- goto yy497;- yy634:- yych = *++p;- if (yych == 'E')- goto yy635;- if (yych != 'e')- goto yy497;- yy635:- yych = *++p;- if (yych == 'R')- goto yy529;- if (yych == 'r')- goto yy529;- goto yy497;- yy636:- yych = *++p;- if (yych == 'M')- goto yy637;- if (yych != 'm')- goto yy497;- yy637:- yych = *++p;- if (yych == 'E')- goto yy638;- if (yych != 'e')- goto yy497;- yy638:- yych = *++p;- if (yych <= '/') {- if (yych <= 0x1F) {- if (yych <= 0x08)- goto yy497;- if (yych <= '\r')- goto yy530;- goto yy497;- } else {- if (yych <= ' ')- goto yy530;- if (yych <= '.')- goto yy497;- goto yy532;- }- } else {- if (yych <= 'R') {- if (yych == '>')- goto yy530;- goto yy497;- } else {- if (yych <= 'S')- goto yy639;- if (yych != 's')- goto yy497;- }- }- yy639:- yych = *++p;- if (yych == 'E')- goto yy640;- if (yych != 'e')- goto yy497;- yy640:- yych = *++p;- if (yych == 'T')- goto yy529;- if (yych == 't')- goto yy529;- goto yy497;- yy641:- yych = *++p;- if (yych <= 'V') {- if (yych <= 'Q') {- if (yych == 'A')- goto yy647;- goto yy497;- } else {- if (yych <= 'R')- goto yy529;- if (yych <= 'U')- goto yy497;- goto yy529;- }- } else {- if (yych <= 'q') {- if (yych == 'a')- goto yy647;- goto yy497;- } else {- if (yych <= 'r')- goto yy529;- if (yych == 'v')- goto yy529;- goto yy497;- }- }- yy642:- yych = *++p;- if (yych == 'T')- goto yy643;- if (yych != 't')- goto yy497;- yy643:- yych = *++p;- if (yych == 'A')- goto yy644;- if (yych != 'a')- goto yy497;- yy644:- yych = *++p;- if (yych == 'I')- goto yy645;- if (yych != 'i')- goto yy497;- yy645:- yych = *++p;- if (yych == 'L')- goto yy646;- if (yych != 'l')- goto yy497;- yy646:- yych = *++p;- if (yych == 'S')- goto yy529;- if (yych == 's')- goto yy529;- goto yy497;- yy647:- yych = *++p;- if (yych == 'L')- goto yy648;- if (yych != 'l')- goto yy497;- yy648:- yych = *++p;- if (yych == 'O')- goto yy649;- if (yych != 'o')- goto yy497;- yy649:- yych = *++p;- if (yych == 'G')- goto yy529;- if (yych == 'g')- goto yy529;- goto yy497;- yy650:- yych = *++p;- if (yych == 'L')- goto yy660;- if (yych == 'l')- goto yy660;- goto yy497;- yy651:- yych = *++p;- if (yych == 'N')- goto yy657;- if (yych == 'n')- goto yy657;- goto yy497;- yy652:- yych = *++p;- if (yych == 'P')- goto yy653;- if (yych != 'p')- goto yy497;- yy653:- yych = *++p;- if (yych == 'T')- goto yy654;- if (yych != 't')- goto yy497;- yy654:- yych = *++p;- if (yych == 'I')- goto yy655;- if (yych != 'i')- goto yy497;- yy655:- yych = *++p;- if (yych == 'O')- goto yy656;- if (yych != 'o')- goto yy497;- yy656:- yych = *++p;- if (yych == 'N')- goto yy529;- if (yych == 'n')- goto yy529;- goto yy497;- yy657:- yych = *++p;- if (yych == 'T')- goto yy658;- if (yych != 't')- goto yy497;- yy658:- yych = *++p;- if (yych == 'E')- goto yy659;- if (yych != 'e')- goto yy497;- yy659:- yych = *++p;- if (yych == 'R')- goto yy529;- if (yych == 'r')- goto yy529;- goto yy497;- yy660:- yych = *++p;- if (yych <= '/') {- if (yych <= 0x1F) {- if (yych <= 0x08)- goto yy497;- if (yych <= '\r')- goto yy530;- goto yy497;- } else {- if (yych <= ' ')- goto yy530;- if (yych <= '.')- goto yy497;- goto yy532;- }- } else {- if (yych <= 'F') {- if (yych == '>')- goto yy530;- goto yy497;- } else {- if (yych <= 'G')- goto yy661;- if (yych != 'g')- goto yy497;- }- }- yy661:- yych = *++p;- if (yych == 'R')- goto yy662;- if (yych != 'r')- goto yy497;- yy662:- yych = *++p;- if (yych == 'O')- goto yy663;- if (yych != 'o')- goto yy497;- yy663:- yych = *++p;- if (yych == 'U')- goto yy664;- if (yych != 'u')- goto yy497;- yy664:- yych = *++p;- if (yych == 'P')- goto yy529;- if (yych == 'p')- goto yy529;- goto yy497;- yy665:- yych = *++p;- if (yych == 'D')- goto yy680;- if (yych == 'd')- goto yy680;- goto yy497;- yy666:- yych = *++p;- if (yych == 'O')- goto yy673;- if (yych == 'o')- goto yy673;- goto yy497;- yy667:- yych = *++p;- if (yych == 'S')- goto yy668;- if (yych != 's')- goto yy497;- yy668:- yych = *++p;- if (yych == 'E')- goto yy669;- if (yych != 'e')- goto yy497;- yy669:- yych = *++p;- if (yych <= '/') {- if (yych <= 0x1F) {- if (yych <= 0x08)- goto yy497;- if (yych <= '\r')- goto yy530;- goto yy497;- } else {- if (yych <= ' ')- goto yy530;- if (yych <= '.')- goto yy497;- goto yy532;- }- } else {- if (yych <= 'E') {- if (yych == '>')- goto yy530;- goto yy497;- } else {- if (yych <= 'F')- goto yy670;- if (yych != 'f')- goto yy497;- }- }- yy670:- yych = *++p;- if (yych == 'O')- goto yy671;- if (yych != 'o')- goto yy497;- yy671:- yych = *++p;- if (yych == 'N')- goto yy672;- if (yych != 'n')- goto yy497;- yy672:- yych = *++p;- if (yych == 'T')- goto yy529;- if (yych == 't')- goto yy529;- goto yy497;- yy673:- yych = *++p;- if (yych == 'C')- goto yy674;- if (yych != 'c')- goto yy497;- yy674:- yych = *++p;- if (yych == 'K')- goto yy675;- if (yych != 'k')- goto yy497;- yy675:- yych = *++p;- if (yych == 'Q')- goto yy676;- if (yych != 'q')- goto yy497;- yy676:- yych = *++p;- if (yych == 'U')- goto yy677;- if (yych != 'u')- goto yy497;- yy677:- yych = *++p;- if (yych == 'O')- goto yy678;- if (yych != 'o')- goto yy497;- yy678:- yych = *++p;- if (yych == 'T')- goto yy679;- if (yych != 't')- goto yy497;- yy679:- yych = *++p;- if (yych == 'E')- goto yy529;- if (yych == 'e')- goto yy529;- goto yy497;- yy680:- yych = *++p;- if (yych == 'Y')- goto yy529;- if (yych == 'y')- goto yy529;- goto yy497;- yy681:- yych = *++p;- if (yych == 'I')- goto yy692;- if (yych == 'i')- goto yy692;- goto yy497;- yy682:- yych = *++p;- if (yych == 'T')- goto yy688;- if (yych == 't')- goto yy688;- goto yy497;- yy683:- yych = *++p;- if (yych == 'D')- goto yy684;- if (yych != 'd')- goto yy497;- yy684:- yych = *++p;- if (yych == 'R')- goto yy685;- if (yych != 'r')- goto yy497;- yy685:- yych = *++p;- if (yych == 'E')- goto yy686;- if (yych != 'e')- goto yy497;- yy686:- yych = *++p;- if (yych == 'S')- goto yy687;- if (yych != 's')- goto yy497;- yy687:- yych = *++p;- if (yych == 'S')- goto yy529;- if (yych == 's')- goto yy529;- goto yy497;- yy688:- yych = *++p;- if (yych == 'I')- goto yy689;- if (yych != 'i')- goto yy497;- yy689:- yych = *++p;- if (yych == 'C')- goto yy690;- if (yych != 'c')- goto yy497;- yy690:- yych = *++p;- if (yych == 'L')- goto yy691;- if (yych != 'l')- goto yy497;- yy691:- yych = *++p;- if (yych == 'E')- goto yy529;- if (yych == 'e')- goto yy529;- goto yy497;- yy692:- yych = *++p;- if (yych == 'D')- goto yy693;- if (yych != 'd')- goto yy497;- yy693:- yych = *++p;- if (yych == 'E')- goto yy529;- if (yych == 'e')- goto yy529;- goto yy497;- yy694:- yych = *++p;- if (yych == 'E')- goto yy570;- if (yych == 'e')- goto yy570;- goto yy497;- yy695:- yych = *++p;- if (yych == 'R')- goto yy696;- if (yych != 'r')- goto yy497;- yy696:- yych = *++p;- if (yych == 'A')- goto yy697;- if (yych != 'a')- goto yy497;- yy697:- yych = *++p;- if (yych == 'M')- goto yy529;- if (yych == 'm')- goto yy529;- goto yy497;- yy698:- yych = *++p;- if (yych <= '/') {- if (yych <= 0x1F) {- if (yych <= 0x08)- goto yy497;- if (yych <= '\r')- goto yy530;- goto yy497;- } else {- if (yych <= ' ')- goto yy530;- if (yych <= '.')- goto yy497;- goto yy532;- }- } else {- if (yych <= '@') {- if (yych == '>')- goto yy530;- goto yy497;- } else {- if (yych <= 'A')- goto yy695;- if (yych == 'a')- goto yy695;- goto yy497;- }- }- yy699:- ++p;- if ((yych = *p) <= 'U') {- if (yych <= 'N') {- if (yych == 'E')- goto yy555;- goto yy497;- } else {- if (yych <= 'O')- goto yy554;- if (yych <= 'T')- goto yy497;- goto yy553;- }- } else {- if (yych <= 'n') {- if (yych == 'e')- goto yy555;- goto yy497;- } else {- if (yych <= 'o')- goto yy554;- if (yych == 'u')- goto yy553;- goto yy497;- }- }- }-}--// Try to match an HTML block tag start line of type 7, returning-// 7 if successful, 0 if not.-bufsize_t _scan_html_block_start_7(const unsigned char *p) {- const unsigned char *marker = NULL;-- {- unsigned char yych;- unsigned int yyaccept = 0;- static const unsigned char yybm[] = {- 0, 224, 224, 224, 224, 224, 224, 224, 224, 198, 202, 194, 198, 194,- 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,- 224, 224, 224, 224, 198, 224, 64, 224, 224, 224, 224, 128, 224, 224,- 224, 224, 224, 241, 240, 224, 241, 241, 241, 241, 241, 241, 241, 241,- 241, 241, 240, 224, 192, 192, 192, 224, 224, 241, 241, 241, 241, 241,- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,- 241, 241, 241, 241, 241, 241, 241, 224, 224, 224, 224, 240, 192, 241,- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 224, 224, 224,- 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 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 == '<')- goto yy704;- ++p;- yy703 : { return 0; }- yy704:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= '@') {- if (yych == '/')- goto yy708;- goto yy703;- } else {- if (yych <= 'Z')- goto yy705;- if (yych <= '`')- goto yy703;- if (yych >= '{')- goto yy703;- }- yy705:- ++p;- yych = *p;- if (yybm[0 + yych] & 1) {- goto yy705;- }- if (yych <= ' ') {- if (yych <= 0x08)- goto yy707;- if (yych <= '\r')- goto yy719;- if (yych >= ' ')- goto yy719;- } else {- if (yych <= '/') {- if (yych >= '/')- goto yy721;- } else {- if (yych == '>')- goto yy713;- }- }- yy707:- p = marker;- if (yyaccept == 0) {- goto yy703;- } else {- goto yy717;- }- yy708:- yych = *++p;- if (yych <= '@')- goto yy707;- if (yych <= 'Z')- goto yy709;- if (yych <= '`')- goto yy707;- if (yych >= '{')- goto yy707;- yy709:- ++p;- yych = *p;- if (yybm[0 + yych] & 2) {- goto yy711;- }- if (yych <= '=') {- if (yych <= '-') {- if (yych <= ',')- goto yy707;- goto yy709;- } else {- if (yych <= '/')- goto yy707;- if (yych <= '9')- goto yy709;- goto yy707;- }- } else {- if (yych <= 'Z') {- if (yych <= '>')- goto yy713;- if (yych <= '@')- goto yy707;- goto yy709;- } else {- if (yych <= '`')- goto yy707;- if (yych <= 'z')- goto yy709;- goto yy707;- }- }- yy711:- ++p;- yych = *p;- if (yybm[0 + yych] & 2) {- goto yy711;- }- if (yych != '>')- goto yy707;- yy713:- ++p;- yych = *p;- if (yybm[0 + yych] & 4) {- goto yy713;- }- if (yych <= 0x08)- goto yy707;- if (yych <= '\n')- goto yy715;- if (yych <= '\v')- goto yy707;- if (yych <= '\r')- goto yy718;- goto yy707;- yy715:- yyaccept = 1;- marker = ++p;- yych = *p;- if (yybm[0 + yych] & 4) {- goto yy713;- }- if (yych <= 0x08)- goto yy717;- if (yych <= '\n')- goto yy715;- if (yych <= '\v')- goto yy717;- if (yych <= '\r')- goto yy718;- yy717 : { return 7; }- yy718:- yych = *++p;- goto yy717;- yy719:- ++p;- yych = *p;- if (yych <= ':') {- if (yych <= ' ') {- if (yych <= 0x08)- goto yy707;- if (yych <= '\r')- goto yy719;- if (yych <= 0x1F)- goto yy707;- goto yy719;- } else {- if (yych == '/')- goto yy721;- if (yych <= '9')- goto yy707;- goto yy722;- }- } else {- if (yych <= 'Z') {- if (yych == '>')- goto yy713;- if (yych <= '@')- goto yy707;- goto yy722;- } else {- if (yych <= '_') {- if (yych <= '^')- goto yy707;- goto yy722;- } else {- if (yych <= '`')- goto yy707;- if (yych <= 'z')- goto yy722;- goto yy707;- }- }- }- yy721:- yych = *++p;- if (yych == '>')- goto yy713;- goto yy707;- yy722:- ++p;- yych = *p;- if (yybm[0 + yych] & 16) {- goto yy722;- }- if (yych <= ',') {- if (yych <= '\r') {- if (yych <= 0x08)- goto yy707;- } else {- if (yych != ' ')- goto yy707;- }- } else {- if (yych <= '<') {- if (yych <= '/')- goto yy721;- goto yy707;- } else {- if (yych <= '=')- goto yy726;- if (yych <= '>')- goto yy713;- goto yy707;- }- }- yy724:- ++p;- yych = *p;- if (yych <= '<') {- if (yych <= ' ') {- if (yych <= 0x08)- goto yy707;- if (yych <= '\r')- goto yy724;- if (yych <= 0x1F)- goto yy707;- goto yy724;- } else {- if (yych <= '/') {- if (yych <= '.')- goto yy707;- goto yy721;- } else {- if (yych == ':')- goto yy722;- goto yy707;- }- }- } else {- if (yych <= 'Z') {- if (yych <= '=')- goto yy726;- if (yych <= '>')- goto yy713;- if (yych <= '@')- goto yy707;- goto yy722;- } else {- if (yych <= '_') {- if (yych <= '^')- goto yy707;- goto yy722;- } else {- if (yych <= '`')- goto yy707;- if (yych <= 'z')- goto yy722;- goto yy707;- }- }- }- yy726:- ++p;- yych = *p;- if (yybm[0 + yych] & 32) {- goto yy728;- }- if (yych <= 0xE0) {- if (yych <= '"') {- if (yych <= 0x00)- goto yy707;- if (yych >= '!')- goto yy739;- } else {- if (yych <= '\'')- goto yy737;- if (yych <= 0xC1)- goto yy707;- if (yych <= 0xDF)- goto yy730;- goto yy731;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy736;- goto yy732;- } else {- if (yych <= 0xF0)- goto yy733;- if (yych <= 0xF3)- goto yy734;- if (yych <= 0xF4)- goto yy735;- goto yy707;- }- }- ++p;- yych = *p;- if (yybm[0 + yych] & 32) {- goto yy728;- }- if (yych <= 0xDF) {- if (yych <= '\'') {- if (yych <= 0x00)- goto yy707;- if (yych <= ' ')- goto yy762;- if (yych <= '"')- goto yy739;- goto yy737;- } else {- if (yych == '>')- goto yy713;- if (yych <= 0xC1)- goto yy707;- goto yy730;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy731;- if (yych == 0xED)- goto yy736;- goto yy732;- } else {- if (yych <= 0xF0)- goto yy733;- if (yych <= 0xF3)- goto yy734;- if (yych <= 0xF4)- goto yy735;- goto yy707;- }- }- yy728:- ++p;- yych = *p;- if (yybm[0 + yych] & 32) {- goto yy728;- }- if (yych <= 0xE0) {- if (yych <= '=') {- if (yych <= 0x00)- goto yy707;- if (yych <= ' ')- goto yy756;- goto yy707;- } else {- if (yych <= '>')- goto yy713;- if (yych <= 0xC1)- goto yy707;- if (yych >= 0xE0)- goto yy731;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy736;- goto yy732;- } else {- if (yych <= 0xF0)- goto yy733;- if (yych <= 0xF3)- goto yy734;- if (yych <= 0xF4)- goto yy735;- goto yy707;- }- }- yy730:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0xBF)- goto yy728;- goto yy707;- yy731:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy707;- if (yych <= 0xBF)- goto yy730;- goto yy707;- yy732:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0xBF)- goto yy730;- goto yy707;- yy733:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy707;- if (yych <= 0xBF)- goto yy732;- goto yy707;- yy734:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0xBF)- goto yy732;- goto yy707;- yy735:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0x8F)- goto yy732;- goto yy707;- yy736:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0x9F)- goto yy730;- goto yy707;- yy737:- ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy737;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x00)- goto yy707;- if (yych <= '\'')- goto yy748;- goto yy707;- } else {- if (yych <= 0xDF)- goto yy749;- if (yych <= 0xE0)- goto yy750;- goto yy751;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy755;- if (yych <= 0xEF)- goto yy751;- goto yy752;- } else {- if (yych <= 0xF3)- goto yy753;- if (yych <= 0xF4)- goto yy754;- goto yy707;- }- }- yy739:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy739;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x00)- goto yy707;- if (yych <= '"')- goto yy748;- goto yy707;- } else {- if (yych <= 0xDF)- goto yy741;- if (yych <= 0xE0)- goto yy742;- goto yy743;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy747;- if (yych <= 0xEF)- goto yy743;- goto yy744;- } else {- if (yych <= 0xF3)- goto yy745;- if (yych <= 0xF4)- goto yy746;- goto yy707;- }- }- yy741:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0xBF)- goto yy739;- goto yy707;- yy742:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy707;- if (yych <= 0xBF)- goto yy741;- goto yy707;- yy743:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0xBF)- goto yy741;- goto yy707;- yy744:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy707;- if (yych <= 0xBF)- goto yy743;- goto yy707;- yy745:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0xBF)- goto yy743;- goto yy707;- yy746:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0x8F)- goto yy743;- goto yy707;- yy747:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0x9F)- goto yy741;- goto yy707;- yy748:- ++p;- yych = *p;- if (yych <= ' ') {- if (yych <= 0x08)- goto yy707;- if (yych <= '\r')- goto yy719;- if (yych <= 0x1F)- goto yy707;- goto yy719;- } else {- if (yych <= '/') {- if (yych <= '.')- goto yy707;- goto yy721;- } else {- if (yych == '>')- goto yy713;- goto yy707;- }- }- yy749:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0xBF)- goto yy737;- goto yy707;- yy750:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy707;- if (yych <= 0xBF)- goto yy749;- goto yy707;- yy751:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0xBF)- goto yy749;- goto yy707;- yy752:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy707;- if (yych <= 0xBF)- goto yy751;- goto yy707;- yy753:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0xBF)- goto yy751;- goto yy707;- yy754:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0x8F)- goto yy751;- goto yy707;- yy755:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy707;- if (yych <= 0x9F)- goto yy749;- goto yy707;- yy756:- ++p;- yych = *p;- if (yych <= '@') {- if (yych <= '"') {- if (yych <= '\r') {- if (yych <= 0x00)- goto yy707;- if (yych <= 0x08)- goto yy728;- goto yy756;- } else {- if (yych == ' ')- goto yy756;- if (yych <= '!')- goto yy728;- goto yy707;- }- } else {- if (yych <= ':') {- if (yych == '\'')- goto yy707;- if (yych <= '9')- goto yy728;- } else {- if (yych <= ';')- goto yy728;- if (yych <= '=')- goto yy707;- if (yych <= '>')- goto yy713;- goto yy728;- }- }- } else {- if (yych <= 0xDF) {- if (yych <= '`') {- if (yych <= 'Z')- goto yy758;- if (yych <= '^')- goto yy728;- if (yych >= '`')- goto yy707;- } else {- if (yych <= 'z')- goto yy758;- if (yych <= 0x7F)- goto yy728;- if (yych <= 0xC1)- goto yy707;- goto yy730;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy731;- if (yych == 0xED)- goto yy736;- goto yy732;- } else {- if (yych <= 0xF0)- goto yy733;- if (yych <= 0xF3)- goto yy734;- if (yych <= 0xF4)- goto yy735;- goto yy707;- }- }- }- yy758:- ++p;- yych = *p;- if (yych <= '>') {- if (yych <= '&') {- if (yych <= 0x1F) {- if (yych <= 0x00)- goto yy707;- if (yych <= 0x08)- goto yy728;- if (yych >= 0x0E)- goto yy728;- } else {- if (yych <= ' ')- goto yy760;- if (yych == '"')- goto yy707;- goto yy728;- }- } else {- if (yych <= '/') {- if (yych <= '\'')- goto yy707;- if (yych <= ',')- goto yy728;- if (yych <= '.')- goto yy758;- goto yy728;- } else {- if (yych <= ';') {- if (yych <= ':')- goto yy758;- goto yy728;- } else {- if (yych <= '<')- goto yy707;- if (yych <= '=')- goto yy726;- goto yy713;- }- }- }- } else {- if (yych <= 0xC1) {- if (yych <= '_') {- if (yych <= '@')- goto yy728;- if (yych <= 'Z')- goto yy758;- if (yych <= '^')- goto yy728;- goto yy758;- } else {- if (yych <= '`')- goto yy707;- if (yych <= 'z')- goto yy758;- if (yych <= 0x7F)- goto yy728;- goto yy707;- }- } else {- if (yych <= 0xED) {- if (yych <= 0xDF)- goto yy730;- if (yych <= 0xE0)- goto yy731;- if (yych <= 0xEC)- goto yy732;- goto yy736;- } else {- if (yych <= 0xF0) {- if (yych <= 0xEF)- goto yy732;- goto yy733;- } else {- if (yych <= 0xF3)- goto yy734;- if (yych <= 0xF4)- goto yy735;- goto yy707;- }- }- }- }- yy760:- ++p;- yych = *p;- if (yych <= '@') {- if (yych <= '&') {- if (yych <= 0x1F) {- if (yych <= 0x00)- goto yy707;- if (yych <= 0x08)- goto yy728;- if (yych <= '\r')- goto yy760;- goto yy728;- } else {- if (yych <= ' ')- goto yy760;- if (yych == '"')- goto yy707;- goto yy728;- }- } else {- if (yych <= ';') {- if (yych <= '\'')- goto yy707;- if (yych == ':')- goto yy758;- goto yy728;- } else {- if (yych <= '<')- goto yy707;- if (yych <= '=')- goto yy726;- if (yych <= '>')- goto yy713;- goto yy728;- }- }- } else {- if (yych <= 0xDF) {- if (yych <= '`') {- if (yych <= 'Z')- goto yy758;- if (yych <= '^')- goto yy728;- if (yych <= '_')- goto yy758;- goto yy707;- } else {- if (yych <= 'z')- goto yy758;- if (yych <= 0x7F)- goto yy728;- if (yych <= 0xC1)- goto yy707;- goto yy730;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy731;- if (yych == 0xED)- goto yy736;- goto yy732;- } else {- if (yych <= 0xF0)- goto yy733;- if (yych <= 0xF3)- goto yy734;- if (yych <= 0xF4)- goto yy735;- goto yy707;- }- }- }- yy762:- ++p;- yych = *p;- if (yych <= '@') {- if (yych <= '"') {- if (yych <= '\r') {- if (yych <= 0x00)- goto yy707;- if (yych <= 0x08)- goto yy728;- goto yy762;- } else {- if (yych == ' ')- goto yy762;- if (yych <= '!')- goto yy728;- goto yy739;- }- } else {- if (yych <= ':') {- if (yych == '\'')- goto yy737;- if (yych <= '9')- goto yy728;- goto yy758;- } else {- if (yych <= ';')- goto yy728;- if (yych <= '=')- goto yy707;- if (yych <= '>')- goto yy713;- goto yy728;- }- }- } else {- if (yych <= 0xDF) {- if (yych <= '`') {- if (yych <= 'Z')- goto yy758;- if (yych <= '^')- goto yy728;- if (yych <= '_')- goto yy758;- goto yy707;- } else {- if (yych <= 'z')- goto yy758;- if (yych <= 0x7F)- goto yy728;- if (yych <= 0xC1)- goto yy707;- goto yy730;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy731;- if (yych == 0xED)- goto yy736;- goto yy732;- } else {- if (yych <= 0xF0)- goto yy733;- if (yych <= 0xF3)- goto yy734;- if (yych <= 0xF4)- goto yy735;- goto yy707;- }- }- }- }-}--// Try to match an HTML block end line of type 1-bufsize_t _scan_html_block_end_1(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, 0, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 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,- };- yych = *p;- if (yych <= 0xDF) {- if (yych <= ';') {- if (yych <= 0x00)- goto yy766;- if (yych != '\n')- goto yy768;- } else {- if (yych <= '<')- goto yy769;- if (yych <= 0x7F)- goto yy768;- if (yych >= 0xC2)- goto yy770;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy771;- if (yych == 0xED)- goto yy773;- goto yy772;- } else {- if (yych <= 0xF0)- goto yy774;- if (yych <= 0xF3)- goto yy775;- if (yych <= 0xF4)- goto yy776;- }- }- yy766:- ++p;- yy767 : { return 0; }- yy768:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= '\n') {- if (yych <= 0x00)- goto yy767;- if (yych <= '\t')- goto yy781;- goto yy767;- } else {- if (yych <= 0x7F)- goto yy781;- if (yych <= 0xC1)- goto yy767;- if (yych <= 0xF4)- goto yy781;- goto yy767;- }- yy769:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= '.') {- if (yych <= 0x00)- goto yy767;- if (yych == '\n')- goto yy767;- goto yy781;- } else {- if (yych <= 0x7F) {- if (yych <= '/')- goto yy789;- goto yy781;- } else {- if (yych <= 0xC1)- goto yy767;- if (yych <= 0xF4)- goto yy781;- goto yy767;- }- }- yy770:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy767;- if (yych <= 0xBF)- goto yy780;- goto yy767;- yy771:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x9F)- goto yy767;- if (yych <= 0xBF)- goto yy779;- goto yy767;- yy772:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy767;- if (yych <= 0xBF)- goto yy779;- goto yy767;- yy773:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy767;- if (yych <= 0x9F)- goto yy779;- goto yy767;- yy774:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x8F)- goto yy767;- if (yych <= 0xBF)- goto yy777;- goto yy767;- yy775:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy767;- if (yych <= 0xBF)- goto yy777;- goto yy767;- yy776:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy767;- if (yych >= 0x90)- goto yy767;- yy777:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy778;- if (yych <= 0xBF)- goto yy779;- yy778:- p = marker;- if (yyaccept == 0) {- goto yy767;- } else {- goto yy795;- }- yy779:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy778;- if (yych >= 0xC0)- goto yy778;- yy780:- ++p;- yych = *p;- yy781:- if (yybm[0 + yych] & 64) {- goto yy780;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '\n')- goto yy778;- if (yych >= '=')- goto yy778;- } else {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- goto yy777;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy788;- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- yy782:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 0xDF) {- if (yych <= '.') {- if (yych <= 0x00)- goto yy778;- if (yych == '\n')- goto yy778;- goto yy780;- } else {- if (yych <= '/')- goto yy789;- if (yych <= 0x7F)- goto yy780;- if (yych <= 0xC1)- goto yy778;- goto yy779;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy784;- if (yych == 0xED)- goto yy788;- goto yy777;- } else {- if (yych <= 0xF0)- goto yy785;- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- yy784:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy778;- if (yych <= 0xBF)- goto yy779;- goto yy778;- yy785:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy778;- if (yych <= 0xBF)- goto yy777;- goto yy778;- yy786:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy778;- if (yych <= 0xBF)- goto yy777;- goto yy778;- yy787:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy778;- if (yych <= 0x8F)- goto yy777;- goto yy778;- yy788:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy778;- if (yych <= 0x9F)- goto yy779;- goto yy778;- yy789:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 's') {- if (yych <= 'P') {- if (yych <= '\t') {- if (yych <= 0x00)- goto yy778;- goto yy780;- } else {- if (yych <= '\n')- goto yy778;- if (yych <= 'O')- goto yy780;- goto yy791;- }- } else {- if (yych <= 'o') {- if (yych != 'S')- goto yy780;- } else {- if (yych <= 'p')- goto yy791;- if (yych <= 'r')- goto yy780;- }- }- } else {- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x7F)- goto yy780;- goto yy778;- } else {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- goto yy777;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy788;- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- }- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 't') {- if (yych <= 'C') {- if (yych <= '\t') {- if (yych <= 0x00)- goto yy778;- goto yy780;- } else {- if (yych <= '\n')- goto yy778;- if (yych <= 'B')- goto yy780;- goto yy796;- }- } else {- if (yych <= 'b') {- if (yych == 'T')- goto yy797;- goto yy780;- } else {- if (yych <= 'c')- goto yy796;- if (yych <= 's')- goto yy780;- goto yy797;- }- }- } else {- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x7F)- goto yy780;- goto yy778;- } else {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- goto yy777;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy788;- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- }- yy791:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 0xC1) {- if (yych <= 'Q') {- if (yych <= 0x00)- goto yy778;- if (yych == '\n')- goto yy778;- goto yy780;- } else {- if (yych <= 'q') {- if (yych >= 'S')- goto yy780;- } else {- if (yych <= 'r')- goto yy792;- if (yych <= 0x7F)- goto yy780;- goto yy778;- }- }- } else {- if (yych <= 0xED) {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- if (yych <= 0xEC)- goto yy777;- goto yy788;- } else {- if (yych <= 0xF0) {- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- }- yy792:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 0xC1) {- if (yych <= 'D') {- if (yych <= 0x00)- goto yy778;- if (yych == '\n')- goto yy778;- goto yy780;- } else {- if (yych <= 'd') {- if (yych >= 'F')- goto yy780;- } else {- if (yych <= 'e')- goto yy793;- if (yych <= 0x7F)- goto yy780;- goto yy778;- }- }- } else {- if (yych <= 0xED) {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- if (yych <= 0xEC)- goto yy777;- goto yy788;- } else {- if (yych <= 0xF0) {- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- }- yy793:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 0xDF) {- if (yych <= '=') {- if (yych <= 0x00)- goto yy778;- if (yych == '\n')- goto yy778;- goto yy780;- } else {- if (yych <= '>')- goto yy794;- if (yych <= 0x7F)- goto yy780;- if (yych <= 0xC1)- goto yy778;- goto yy779;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy784;- if (yych == 0xED)- goto yy788;- goto yy777;- } else {- if (yych <= 0xF0)- goto yy785;- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- yy794:- yyaccept = 1;- marker = ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy780;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '\n')- goto yy795;- if (yych <= '<')- goto yy782;- } else {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- goto yy777;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy788;- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- }- }- yy795 : { return (bufsize_t)(p - start); }- yy796:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 0xC1) {- if (yych <= 'Q') {- if (yych <= 0x00)- goto yy778;- if (yych == '\n')- goto yy778;- goto yy780;- } else {- if (yych <= 'q') {- if (yych <= 'R')- goto yy800;- goto yy780;- } else {- if (yych <= 'r')- goto yy800;- if (yych <= 0x7F)- goto yy780;- goto yy778;- }- }- } else {- if (yych <= 0xED) {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- if (yych <= 0xEC)- goto yy777;- goto yy788;- } else {- if (yych <= 0xF0) {- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- }- yy797:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 0xC1) {- if (yych <= 'X') {- if (yych <= 0x00)- goto yy778;- if (yych == '\n')- goto yy778;- goto yy780;- } else {- if (yych <= 'x') {- if (yych >= 'Z')- goto yy780;- } else {- if (yych <= 'y')- goto yy798;- if (yych <= 0x7F)- goto yy780;- goto yy778;- }- }- } else {- if (yych <= 0xED) {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- if (yych <= 0xEC)- goto yy777;- goto yy788;- } else {- if (yych <= 0xF0) {- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- }- yy798:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 0xC1) {- if (yych <= 'K') {- if (yych <= 0x00)- goto yy778;- if (yych == '\n')- goto yy778;- goto yy780;- } else {- if (yych <= 'k') {- if (yych >= 'M')- goto yy780;- } else {- if (yych <= 'l')- goto yy799;- if (yych <= 0x7F)- goto yy780;- goto yy778;- }- }- } else {- if (yych <= 0xED) {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- if (yych <= 0xEC)- goto yy777;- goto yy788;- } else {- if (yych <= 0xF0) {- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- }- yy799:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 0xC1) {- if (yych <= 'D') {- if (yych <= 0x00)- goto yy778;- if (yych == '\n')- goto yy778;- goto yy780;- } else {- if (yych <= 'd') {- if (yych <= 'E')- goto yy793;- goto yy780;- } else {- if (yych <= 'e')- goto yy793;- if (yych <= 0x7F)- goto yy780;- goto yy778;- }- }- } else {- if (yych <= 0xED) {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- if (yych <= 0xEC)- goto yy777;- goto yy788;- } else {- if (yych <= 0xF0) {- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- }- yy800:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 0xC1) {- if (yych <= 'H') {- if (yych <= 0x00)- goto yy778;- if (yych == '\n')- goto yy778;- goto yy780;- } else {- if (yych <= 'h') {- if (yych >= 'J')- goto yy780;- } else {- if (yych <= 'i')- goto yy801;- if (yych <= 0x7F)- goto yy780;- goto yy778;- }- }- } else {- if (yych <= 0xED) {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- if (yych <= 0xEC)- goto yy777;- goto yy788;- } else {- if (yych <= 0xF0) {- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- }- yy801:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 0xC1) {- if (yych <= 'O') {- if (yych <= 0x00)- goto yy778;- if (yych == '\n')- goto yy778;- goto yy780;- } else {- if (yych <= 'o') {- if (yych >= 'Q')- goto yy780;- } else {- if (yych <= 'p')- goto yy802;- if (yych <= 0x7F)- goto yy780;- goto yy778;- }- }- } else {- if (yych <= 0xED) {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- if (yych <= 0xEC)- goto yy777;- goto yy788;- } else {- if (yych <= 0xF0) {- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- }- yy802:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy782;- }- if (yych <= 0xC1) {- if (yych <= 'S') {- if (yych <= 0x00)- goto yy778;- if (yych == '\n')- goto yy778;- goto yy780;- } else {- if (yych <= 's') {- if (yych <= 'T')- goto yy793;- goto yy780;- } else {- if (yych <= 't')- goto yy793;- if (yych <= 0x7F)- goto yy780;- goto yy778;- }- }- } else {- if (yych <= 0xED) {- if (yych <= 0xDF)- goto yy779;- if (yych <= 0xE0)- goto yy784;- if (yych <= 0xEC)- goto yy777;- goto yy788;- } else {- if (yych <= 0xF0) {- if (yych <= 0xEF)- goto yy777;- goto yy785;- } else {- if (yych <= 0xF3)- goto yy786;- if (yych <= 0xF4)- goto yy787;- goto yy778;- }- }- }- }-}--// Try to match an HTML block end line of type 2-bufsize_t _scan_html_block_end_2(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, 0, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 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,- };- yych = *p;- if (yych <= 0xDF) {- if (yych <= ',') {- if (yych <= 0x00)- goto yy805;- if (yych != '\n')- goto yy807;- } else {- if (yych <= '-')- goto yy808;- if (yych <= 0x7F)- goto yy807;- if (yych >= 0xC2)- goto yy809;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy810;- if (yych == 0xED)- goto yy812;- goto yy811;- } else {- if (yych <= 0xF0)- goto yy813;- if (yych <= 0xF3)- goto yy814;- if (yych <= 0xF4)- goto yy815;- }- }- yy805:- ++p;- yy806 : { return 0; }- yy807:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= '\n') {- if (yych <= 0x00)- goto yy806;- if (yych <= '\t')- goto yy820;- goto yy806;- } else {- if (yych <= 0x7F)- goto yy820;- if (yych <= 0xC1)- goto yy806;- if (yych <= 0xF4)- goto yy820;- goto yy806;- }- yy808:- yyaccept = 0;- yych = *(marker = ++p);- if (yybm[0 + yych] & 128) {- goto yy827;- }- if (yych <= '\n') {- if (yych <= 0x00)- goto yy806;- if (yych <= '\t')- goto yy820;- goto yy806;- } else {- if (yych <= 0x7F)- goto yy820;- if (yych <= 0xC1)- goto yy806;- if (yych <= 0xF4)- goto yy820;- goto yy806;- }- yy809:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy806;- if (yych <= 0xBF)- goto yy819;- goto yy806;- yy810:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x9F)- goto yy806;- if (yych <= 0xBF)- goto yy818;- goto yy806;- yy811:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy806;- if (yych <= 0xBF)- goto yy818;- goto yy806;- yy812:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy806;- if (yych <= 0x9F)- goto yy818;- goto yy806;- yy813:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x8F)- goto yy806;- if (yych <= 0xBF)- goto yy816;- goto yy806;- yy814:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy806;- if (yych <= 0xBF)- goto yy816;- goto yy806;- yy815:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy806;- if (yych >= 0x90)- goto yy806;- yy816:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy817;- if (yych <= 0xBF)- goto yy818;- yy817:- p = marker;- if (yyaccept == 0) {- goto yy806;- } else {- goto yy830;- }- yy818:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy817;- if (yych >= 0xC0)- goto yy817;- yy819:- ++p;- yych = *p;- yy820:- if (yybm[0 + yych] & 64) {- goto yy819;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '\n')- goto yy817;- if (yych >= '.')- goto yy817;- } else {- if (yych <= 0xDF)- goto yy818;- if (yych <= 0xE0)- goto yy822;- goto yy816;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy826;- if (yych <= 0xEF)- goto yy816;- goto yy823;- } else {- if (yych <= 0xF3)- goto yy824;- if (yych <= 0xF4)- goto yy825;- goto yy817;- }- }- yy821:- ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy819;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '\n')- goto yy817;- if (yych <= '-')- goto yy827;- goto yy817;- } else {- if (yych <= 0xDF)- goto yy818;- if (yych >= 0xE1)- goto yy816;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy826;- if (yych <= 0xEF)- goto yy816;- goto yy823;- } else {- if (yych <= 0xF3)- goto yy824;- if (yych <= 0xF4)- goto yy825;- goto yy817;- }- }- yy822:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy817;- if (yych <= 0xBF)- goto yy818;- goto yy817;- yy823:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy817;- if (yych <= 0xBF)- goto yy816;- goto yy817;- yy824:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy817;- if (yych <= 0xBF)- goto yy816;- goto yy817;- yy825:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy817;- if (yych <= 0x8F)- goto yy816;- goto yy817;- yy826:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy817;- if (yych <= 0x9F)- goto yy818;- goto yy817;- yy827:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy827;- }- if (yych <= 0xDF) {- if (yych <= '=') {- if (yych <= 0x00)- goto yy817;- if (yych == '\n')- goto yy817;- goto yy819;- } else {- if (yych <= '>')- goto yy829;- if (yych <= 0x7F)- goto yy819;- if (yych <= 0xC1)- goto yy817;- goto yy818;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy822;- if (yych == 0xED)- goto yy826;- goto yy816;- } else {- if (yych <= 0xF0)- goto yy823;- if (yych <= 0xF3)- goto yy824;- if (yych <= 0xF4)- goto yy825;- goto yy817;- }- }- yy829:- yyaccept = 1;- marker = ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy819;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '\n')- goto yy830;- if (yych <= '-')- goto yy821;- } else {- if (yych <= 0xDF)- goto yy818;- if (yych <= 0xE0)- goto yy822;- goto yy816;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy826;- if (yych <= 0xEF)- goto yy816;- goto yy823;- } else {- if (yych <= 0xF3)- goto yy824;- if (yych <= 0xF4)- goto yy825;- }- }- yy830 : { return (bufsize_t)(p - start); }- }-}--// Try to match an HTML block end line of type 3-bufsize_t _scan_html_block_end_3(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, 0, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 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,- };- yych = *p;- if (yych <= 0xDF) {- if (yych <= '>') {- if (yych <= 0x00)- goto yy833;- if (yych != '\n')- goto yy835;- } else {- if (yych <= '?')- goto yy836;- if (yych <= 0x7F)- goto yy835;- if (yych >= 0xC2)- goto yy837;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy838;- if (yych == 0xED)- goto yy840;- goto yy839;- } else {- if (yych <= 0xF0)- goto yy841;- if (yych <= 0xF3)- goto yy842;- if (yych <= 0xF4)- goto yy843;- }- }- yy833:- ++p;- yy834 : { return 0; }- yy835:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= '\n') {- if (yych <= 0x00)- goto yy834;- if (yych <= '\t')- goto yy848;- goto yy834;- } else {- if (yych <= 0x7F)- goto yy848;- if (yych <= 0xC1)- goto yy834;- if (yych <= 0xF4)- goto yy848;- goto yy834;- }- yy836:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= '=') {- if (yych <= 0x00)- goto yy834;- if (yych == '\n')- goto yy834;- goto yy848;- } else {- if (yych <= 0x7F) {- if (yych <= '>')- goto yy856;- goto yy848;- } else {- if (yych <= 0xC1)- goto yy834;- if (yych <= 0xF4)- goto yy848;- goto yy834;- }- }- yy837:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy834;- if (yych <= 0xBF)- goto yy847;- goto yy834;- yy838:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x9F)- goto yy834;- if (yych <= 0xBF)- goto yy846;- goto yy834;- yy839:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy834;- if (yych <= 0xBF)- goto yy846;- goto yy834;- yy840:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy834;- if (yych <= 0x9F)- goto yy846;- goto yy834;- yy841:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x8F)- goto yy834;- if (yych <= 0xBF)- goto yy844;- goto yy834;- yy842:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy834;- if (yych <= 0xBF)- goto yy844;- goto yy834;- yy843:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy834;- if (yych >= 0x90)- goto yy834;- yy844:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy845;- if (yych <= 0xBF)- goto yy846;- yy845:- p = marker;- if (yyaccept == 0) {- goto yy834;- } else {- goto yy857;- }- yy846:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy845;- if (yych >= 0xC0)- goto yy845;- yy847:- ++p;- yych = *p;- yy848:- if (yybm[0 + yych] & 64) {- goto yy847;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '\n')- goto yy845;- if (yych >= '@')- goto yy845;- } else {- if (yych <= 0xDF)- goto yy846;- if (yych <= 0xE0)- goto yy851;- goto yy844;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy855;- if (yych <= 0xEF)- goto yy844;- goto yy852;- } else {- if (yych <= 0xF3)- goto yy853;- if (yych <= 0xF4)- goto yy854;- goto yy845;- }- }- yy849:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy849;- }- if (yych <= 0xDF) {- if (yych <= '=') {- if (yych <= 0x00)- goto yy845;- if (yych == '\n')- goto yy845;- goto yy847;- } else {- if (yych <= '>')- goto yy856;- if (yych <= 0x7F)- goto yy847;- if (yych <= 0xC1)- goto yy845;- goto yy846;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy851;- if (yych == 0xED)- goto yy855;- goto yy844;- } else {- if (yych <= 0xF0)- goto yy852;- if (yych <= 0xF3)- goto yy853;- if (yych <= 0xF4)- goto yy854;- goto yy845;- }- }- yy851:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy845;- if (yych <= 0xBF)- goto yy846;- goto yy845;- yy852:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy845;- if (yych <= 0xBF)- goto yy844;- goto yy845;- yy853:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy845;- if (yych <= 0xBF)- goto yy844;- goto yy845;- yy854:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy845;- if (yych <= 0x8F)- goto yy844;- goto yy845;- yy855:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy845;- if (yych <= 0x9F)- goto yy846;- goto yy845;- yy856:- yyaccept = 1;- marker = ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy847;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '\n')- goto yy857;- if (yych <= '?')- goto yy849;- } else {- if (yych <= 0xDF)- goto yy846;- if (yych <= 0xE0)- goto yy851;- goto yy844;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy855;- if (yych <= 0xEF)- goto yy844;- goto yy852;- } else {- if (yych <= 0xF3)- goto yy853;- if (yych <= 0xF4)- goto yy854;- }- }- yy857 : { return (bufsize_t)(p - start); }- }-}--// Try to match an HTML block end line of type 4-bufsize_t _scan_html_block_end_4(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, 0, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 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,- };- yych = *p;- if (yych <= 0xDF) {- if (yych <= '=') {- if (yych <= 0x00)- goto yy860;- if (yych != '\n')- goto yy862;- } else {- if (yych <= '>')- goto yy863;- if (yych <= 0x7F)- goto yy862;- if (yych >= 0xC2)- goto yy865;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy866;- if (yych == 0xED)- goto yy868;- goto yy867;- } else {- if (yych <= 0xF0)- goto yy869;- if (yych <= 0xF3)- goto yy870;- if (yych <= 0xF4)- goto yy871;- }- }- yy860:- ++p;- yy861 : { return 0; }- yy862:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= '\n') {- if (yych <= 0x00)- goto yy861;- if (yych <= '\t')- goto yy876;- goto yy861;- } else {- if (yych <= 0x7F)- goto yy876;- if (yych <= 0xC1)- goto yy861;- if (yych <= 0xF4)- goto yy876;- goto yy861;- }- yy863:- yyaccept = 1;- yych = *(marker = ++p);- if (yych <= '\n') {- if (yych <= 0x00)- goto yy864;- if (yych <= '\t')- goto yy876;- } else {- if (yych <= 0x7F)- goto yy876;- if (yych <= 0xC1)- goto yy864;- if (yych <= 0xF4)- goto yy876;- }- yy864 : { return (bufsize_t)(p - start); }- yy865:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy861;- if (yych <= 0xBF)- goto yy875;- goto yy861;- yy866:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x9F)- goto yy861;- if (yych <= 0xBF)- goto yy874;- goto yy861;- yy867:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy861;- if (yych <= 0xBF)- goto yy874;- goto yy861;- yy868:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy861;- if (yych <= 0x9F)- goto yy874;- goto yy861;- yy869:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x8F)- goto yy861;- if (yych <= 0xBF)- goto yy872;- goto yy861;- yy870:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy861;- if (yych <= 0xBF)- goto yy872;- goto yy861;- yy871:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy861;- if (yych >= 0x90)- goto yy861;- yy872:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy873;- if (yych <= 0xBF)- goto yy874;- yy873:- p = marker;- if (yyaccept == 0) {- goto yy861;- } else {- goto yy864;- }- yy874:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy873;- if (yych >= 0xC0)- goto yy873;- yy875:- ++p;- yych = *p;- yy876:- if (yybm[0 + yych] & 64) {- goto yy875;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '\n')- goto yy873;- if (yych >= '?')- goto yy873;- } else {- if (yych <= 0xDF)- goto yy874;- if (yych <= 0xE0)- goto yy879;- goto yy872;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy883;- if (yych <= 0xEF)- goto yy872;- goto yy880;- } else {- if (yych <= 0xF3)- goto yy881;- if (yych <= 0xF4)- goto yy882;- goto yy873;- }- }- yy877:- yyaccept = 1;- marker = ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy875;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '\n')- goto yy864;- if (yych <= '>')- goto yy877;- goto yy864;- } else {- if (yych <= 0xDF)- goto yy874;- if (yych >= 0xE1)- goto yy872;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy883;- if (yych <= 0xEF)- goto yy872;- goto yy880;- } else {- if (yych <= 0xF3)- goto yy881;- if (yych <= 0xF4)- goto yy882;- goto yy864;- }- }- yy879:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy873;- if (yych <= 0xBF)- goto yy874;- goto yy873;- yy880:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy873;- if (yych <= 0xBF)- goto yy872;- goto yy873;- yy881:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy873;- if (yych <= 0xBF)- goto yy872;- goto yy873;- yy882:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy873;- if (yych <= 0x8F)- goto yy872;- goto yy873;- yy883:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy873;- if (yych <= 0x9F)- goto yy874;- goto yy873;- }-}--// Try to match an HTML block end line of type 5-bufsize_t _scan_html_block_end_5(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, 0, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,- 64, 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,- };- yych = *p;- if (yych <= 0xDF) {- if (yych <= '\\') {- if (yych <= 0x00)- goto yy886;- if (yych != '\n')- goto yy888;- } else {- if (yych <= ']')- goto yy889;- if (yych <= 0x7F)- goto yy888;- if (yych >= 0xC2)- goto yy890;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy891;- if (yych == 0xED)- goto yy893;- goto yy892;- } else {- if (yych <= 0xF0)- goto yy894;- if (yych <= 0xF3)- goto yy895;- if (yych <= 0xF4)- goto yy896;- }- }- yy886:- ++p;- yy887 : { return 0; }- yy888:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= '\n') {- if (yych <= 0x00)- goto yy887;- if (yych <= '\t')- goto yy901;- goto yy887;- } else {- if (yych <= 0x7F)- goto yy901;- if (yych <= 0xC1)- goto yy887;- if (yych <= 0xF4)- goto yy901;- goto yy887;- }- yy889:- yyaccept = 0;- yych = *(marker = ++p);- if (yybm[0 + yych] & 128) {- goto yy908;- }- if (yych <= '\n') {- if (yych <= 0x00)- goto yy887;- if (yych <= '\t')- goto yy901;- goto yy887;- } else {- if (yych <= 0x7F)- goto yy901;- if (yych <= 0xC1)- goto yy887;- if (yych <= 0xF4)- goto yy901;- goto yy887;- }- yy890:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy887;- if (yych <= 0xBF)- goto yy900;- goto yy887;- yy891:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x9F)- goto yy887;- if (yych <= 0xBF)- goto yy899;- goto yy887;- yy892:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy887;- if (yych <= 0xBF)- goto yy899;- goto yy887;- yy893:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy887;- if (yych <= 0x9F)- goto yy899;- goto yy887;- yy894:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x8F)- goto yy887;- if (yych <= 0xBF)- goto yy897;- goto yy887;- yy895:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy887;- if (yych <= 0xBF)- goto yy897;- goto yy887;- yy896:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x7F)- goto yy887;- if (yych >= 0x90)- goto yy887;- yy897:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy898;- if (yych <= 0xBF)- goto yy899;- yy898:- p = marker;- if (yyaccept == 0) {- goto yy887;- } else {- goto yy911;- }- yy899:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy898;- if (yych >= 0xC0)- goto yy898;- yy900:- ++p;- yych = *p;- yy901:- if (yybm[0 + yych] & 64) {- goto yy900;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '\n')- goto yy898;- if (yych >= '^')- goto yy898;- } else {- if (yych <= 0xDF)- goto yy899;- if (yych <= 0xE0)- goto yy903;- goto yy897;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy907;- if (yych <= 0xEF)- goto yy897;- goto yy904;- } else {- if (yych <= 0xF3)- goto yy905;- if (yych <= 0xF4)- goto yy906;- goto yy898;- }- }- yy902:- ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy900;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '\n')- goto yy898;- if (yych <= ']')- goto yy908;- goto yy898;- } else {- if (yych <= 0xDF)- goto yy899;- if (yych >= 0xE1)- goto yy897;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy907;- if (yych <= 0xEF)- goto yy897;- goto yy904;- } else {- if (yych <= 0xF3)- goto yy905;- if (yych <= 0xF4)- goto yy906;- goto yy898;- }- }- yy903:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy898;- if (yych <= 0xBF)- goto yy899;- goto yy898;- yy904:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy898;- if (yych <= 0xBF)- goto yy897;- goto yy898;- yy905:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy898;- if (yych <= 0xBF)- goto yy897;- goto yy898;- yy906:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy898;- if (yych <= 0x8F)- goto yy897;- goto yy898;- yy907:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy898;- if (yych <= 0x9F)- goto yy899;- goto yy898;- yy908:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy908;- }- if (yych <= 0xDF) {- if (yych <= '=') {- if (yych <= 0x00)- goto yy898;- if (yych == '\n')- goto yy898;- goto yy900;- } else {- if (yych <= '>')- goto yy910;- if (yych <= 0x7F)- goto yy900;- if (yych <= 0xC1)- goto yy898;- goto yy899;- }- } else {- if (yych <= 0xEF) {- if (yych <= 0xE0)- goto yy903;- if (yych == 0xED)- goto yy907;- goto yy897;- } else {- if (yych <= 0xF0)- goto yy904;- if (yych <= 0xF3)- goto yy905;- if (yych <= 0xF4)- goto yy906;- goto yy898;- }- }- yy910:- yyaccept = 1;- marker = ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy900;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= '\n')- goto yy911;- if (yych <= ']')- goto yy902;- } else {- if (yych <= 0xDF)- goto yy899;- if (yych <= 0xE0)- goto yy903;- goto yy897;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy907;- if (yych <= 0xEF)- goto yy897;- goto yy904;- } else {- if (yych <= 0xF3)- goto yy905;- if (yych <= 0xF4)- goto yy906;- }- }- yy911 : { return (bufsize_t)(p - start); }- }-}--// 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).-bufsize_t _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, 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, 224,- 224, 224, 224, 224, 224, 224, 96, 224, 224, 224, 224, 160, 224, 192,- 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, 224, 224,- 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,- 224, 224, 224, 224, 224, 224, 224, 224, 16, 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, 224, 224, 224, 224, 224, 224, 224,- 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 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 yy916;- } else {- if (yych <= '\'')- goto yy917;- if (yych <= '(')- goto yy918;- }- ++p;- yy915 : { return 0; }- yy916:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x00)- goto yy915;- if (yych <= 0x7F)- goto yy951;- if (yych <= 0xC1)- goto yy915;- if (yych <= 0xF4)- goto yy951;- goto yy915;- yy917:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x00)- goto yy915;- if (yych <= 0x7F)- goto yy937;- if (yych <= 0xC1)- goto yy915;- if (yych <= 0xF4)- goto yy937;- goto yy915;- yy918:- yyaccept = 0;- yych = *(marker = ++p);- if (yych <= 0x00)- goto yy915;- if (yych <= 0x7F)- goto yy923;- if (yych <= 0xC1)- goto yy915;- if (yych <= 0xF4)- goto yy923;- goto yy915;- yy919:- ++p;- yych = *p;- if (yybm[0 + yych] & 32) {- goto yy922;- }- if (yych <= 0xE0) {- if (yych <= '\\') {- if (yych <= 0x00)- goto yy921;- if (yych <= ')')- goto yy933;- goto yy919;- } else {- if (yych <= 0xC1)- goto yy921;- if (yych <= 0xDF)- goto yy924;- goto yy925;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy930;- goto yy926;- } else {- if (yych <= 0xF0)- goto yy927;- if (yych <= 0xF3)- goto yy928;- if (yych <= 0xF4)- goto yy929;- }- }- yy921:- p = marker;- if (yyaccept <= 1) {- if (yyaccept == 0) {- goto yy915;- } else {- goto yy932;- }- } else {- if (yyaccept == 2) {- goto yy946;- } else {- goto yy960;- }- }- yy922:- ++p;- yych = *p;- yy923:- if (yybm[0 + yych] & 32) {- goto yy922;- }- if (yych <= 0xE0) {- if (yych <= '\\') {- if (yych <= 0x00)- goto yy921;- if (yych <= ')')- goto yy931;- goto yy919;- } else {- if (yych <= 0xC1)- goto yy921;- if (yych >= 0xE0)- goto yy925;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy930;- goto yy926;- } else {- if (yych <= 0xF0)- goto yy927;- if (yych <= 0xF3)- goto yy928;- if (yych <= 0xF4)- goto yy929;- goto yy921;- }- }- yy924:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0xBF)- goto yy922;- goto yy921;- yy925:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy921;- if (yych <= 0xBF)- goto yy924;- goto yy921;- yy926:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0xBF)- goto yy924;- goto yy921;- yy927:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy921;- if (yych <= 0xBF)- goto yy926;- goto yy921;- yy928:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0xBF)- goto yy926;- goto yy921;- yy929:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0x8F)- goto yy926;- goto yy921;- yy930:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0x9F)- goto yy924;- goto yy921;- yy931:- ++p;- yy932 : { return (bufsize_t)(p - start); }- yy933:- yyaccept = 1;- marker = ++p;- yych = *p;- if (yybm[0 + yych] & 32) {- goto yy922;- }- if (yych <= 0xE0) {- if (yych <= '\\') {- if (yych <= 0x00)- goto yy932;- if (yych <= ')')- goto yy931;- goto yy919;- } else {- if (yych <= 0xC1)- goto yy932;- if (yych <= 0xDF)- goto yy924;- goto yy925;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy930;- goto yy926;- } else {- if (yych <= 0xF0)- goto yy927;- if (yych <= 0xF3)- goto yy928;- if (yych <= 0xF4)- goto yy929;- goto yy932;- }- }- yy934:- ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy936;- }- if (yych <= 0xE0) {- if (yych <= '\\') {- if (yych <= 0x00)- goto yy921;- if (yych <= '\'')- goto yy947;- goto yy934;- } else {- if (yych <= 0xC1)- goto yy921;- if (yych <= 0xDF)- goto yy938;- goto yy939;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy944;- goto yy940;- } else {- if (yych <= 0xF0)- goto yy941;- if (yych <= 0xF3)- goto yy942;- if (yych <= 0xF4)- goto yy943;- goto yy921;- }- }- yy936:- ++p;- yych = *p;- yy937:- if (yybm[0 + yych] & 64) {- goto yy936;- }- if (yych <= 0xE0) {- if (yych <= '\\') {- if (yych <= 0x00)- goto yy921;- if (yych <= '\'')- goto yy945;- goto yy934;- } else {- if (yych <= 0xC1)- goto yy921;- if (yych >= 0xE0)- goto yy939;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy944;- goto yy940;- } else {- if (yych <= 0xF0)- goto yy941;- if (yych <= 0xF3)- goto yy942;- if (yych <= 0xF4)- goto yy943;- goto yy921;- }- }- yy938:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0xBF)- goto yy936;- goto yy921;- yy939:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy921;- if (yych <= 0xBF)- goto yy938;- goto yy921;- yy940:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0xBF)- goto yy938;- goto yy921;- yy941:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy921;- if (yych <= 0xBF)- goto yy940;- goto yy921;- yy942:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0xBF)- goto yy940;- goto yy921;- yy943:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0x8F)- goto yy940;- goto yy921;- yy944:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0x9F)- goto yy938;- goto yy921;- yy945:- ++p;- yy946 : { return (bufsize_t)(p - start); }- yy947:- yyaccept = 2;- marker = ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy936;- }- if (yych <= 0xE0) {- if (yych <= '\\') {- if (yych <= 0x00)- goto yy946;- if (yych <= '\'')- goto yy945;- goto yy934;- } else {- if (yych <= 0xC1)- goto yy946;- if (yych <= 0xDF)- goto yy938;- goto yy939;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy944;- goto yy940;- } else {- if (yych <= 0xF0)- goto yy941;- if (yych <= 0xF3)- goto yy942;- if (yych <= 0xF4)- goto yy943;- goto yy946;- }- }- yy948:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy950;- }- if (yych <= 0xE0) {- if (yych <= '\\') {- if (yych <= 0x00)- goto yy921;- if (yych <= '"')- goto yy961;- goto yy948;- } else {- if (yych <= 0xC1)- goto yy921;- if (yych <= 0xDF)- goto yy952;- goto yy953;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy958;- goto yy954;- } else {- if (yych <= 0xF0)- goto yy955;- if (yych <= 0xF3)- goto yy956;- if (yych <= 0xF4)- goto yy957;- goto yy921;- }- }- yy950:- ++p;- yych = *p;- yy951:- if (yybm[0 + yych] & 128) {- goto yy950;- }- if (yych <= 0xE0) {- if (yych <= '\\') {- if (yych <= 0x00)- goto yy921;- if (yych <= '"')- goto yy959;- goto yy948;- } else {- if (yych <= 0xC1)- goto yy921;- if (yych >= 0xE0)- goto yy953;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy958;- goto yy954;- } else {- if (yych <= 0xF0)- goto yy955;- if (yych <= 0xF3)- goto yy956;- if (yych <= 0xF4)- goto yy957;- goto yy921;- }- }- yy952:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0xBF)- goto yy950;- goto yy921;- yy953:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy921;- if (yych <= 0xBF)- goto yy952;- goto yy921;- yy954:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0xBF)- goto yy952;- goto yy921;- yy955:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy921;- if (yych <= 0xBF)- goto yy954;- goto yy921;- yy956:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0xBF)- goto yy954;- goto yy921;- yy957:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0x8F)- goto yy954;- goto yy921;- yy958:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy921;- if (yych <= 0x9F)- goto yy952;- goto yy921;- yy959:- ++p;- yy960 : { return (bufsize_t)(p - start); }- yy961:- yyaccept = 3;- marker = ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy950;- }- if (yych <= 0xE0) {- if (yych <= '\\') {- if (yych <= 0x00)- goto yy960;- if (yych <= '"')- goto yy959;- goto yy948;- } else {- if (yych <= 0xC1)- goto yy960;- if (yych <= 0xDF)- goto yy952;- goto yy953;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy958;- goto yy954;- } else {- if (yych <= 0xF0)- goto yy955;- if (yych <= 0xF3)- goto yy956;- if (yych <= 0xF4)- goto yy957;- goto yy960;- }- }- }-}--// Match space characters, including newlines.-bufsize_t _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 <= 0x08)- goto yy964;- if (yych <= '\r')- goto yy966;- if (yych == ' ')- goto yy966;- yy964:- ++p;- { return 0; }- yy966:- ++p;- yych = *p;- goto yy969;- yy967 : { return (bufsize_t)(p - start); }- yy968:- ++p;- yych = *p;- yy969:- if (yybm[0 + yych] & 128) {- goto yy968;- }- goto yy967;- }-}--// Match ATX heading start.-bufsize_t _scan_atx_heading_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, 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,- };- yych = *p;- if (yych == '#')- goto yy974;- ++p;- yy973 : { return 0; }- yy974:- yych = *(marker = ++p);- if (yybm[0 + yych] & 128) {- goto yy977;- }- if (yych <= '\f') {- if (yych <= 0x08)- goto yy973;- if (yych >= '\v')- goto yy973;- } else {- if (yych <= '\r')- goto yy975;- if (yych == '#')- goto yy979;- goto yy973;- }- yy975:- ++p;- yy976 : { return (bufsize_t)(p - start); }- yy977:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy977;- }- goto yy976;- yy979:- yych = *++p;- if (yybm[0 + yych] & 128) {- goto yy977;- }- if (yych <= '\f') {- if (yych <= 0x08)- goto yy980;- if (yych <= '\n')- goto yy975;- } else {- if (yych <= '\r')- goto yy975;- if (yych == '#')- goto yy981;- }- yy980:- p = marker;- goto yy973;- yy981:- yych = *++p;- if (yybm[0 + yych] & 128) {- goto yy977;- }- if (yych <= '\f') {- if (yych <= 0x08)- goto yy980;- if (yych <= '\n')- goto yy975;- goto yy980;- } else {- if (yych <= '\r')- goto yy975;- if (yych != '#')- goto yy980;- }- yych = *++p;- if (yybm[0 + yych] & 128) {- goto yy977;- }- if (yych <= '\f') {- if (yych <= 0x08)- goto yy980;- if (yych <= '\n')- goto yy975;- goto yy980;- } else {- if (yych <= '\r')- goto yy975;- if (yych != '#')- goto yy980;- }- yych = *++p;- if (yybm[0 + yych] & 128) {- goto yy977;- }- if (yych <= '\f') {- if (yych <= 0x08)- goto yy980;- if (yych <= '\n')- goto yy975;- goto yy980;- } else {- if (yych <= '\r')- goto yy975;- if (yych != '#')- goto yy980;- }- ++p;- if (yybm[0 + (yych = *p)] & 128) {- goto yy977;- }- if (yych <= 0x08)- goto yy980;- if (yych <= '\n')- goto yy975;- if (yych == '\r')- goto yy975;- goto yy980;- }-}--// Match setext heading line. Return 1 for level-1 heading,-// 2 for level-2, 0 for no match.-bufsize_t _scan_setext_heading_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, 32, 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, 128, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 == '-')- goto yy989;- if (yych == '=')- goto yy990;- ++p;- yy988 : { return 0; }- yy989:- yych = *(marker = ++p);- if (yybm[0 + yych] & 128) {- goto yy1002;- }- if (yych <= '\f') {- if (yych <= 0x08)- goto yy988;- if (yych <= '\n')- goto yy999;- goto yy988;- } else {- if (yych <= '\r')- goto yy999;- if (yych == ' ')- goto yy999;- goto yy988;- }- yy990:- yych = *(marker = ++p);- if (yybm[0 + yych] & 64) {- goto yy996;- }- if (yych <= '\f') {- if (yych <= 0x08)- goto yy988;- if (yych <= '\n')- goto yy992;- goto yy988;- } else {- if (yych <= '\r')- goto yy992;- if (yych == ' ')- goto yy992;- goto yy988;- }- yy991:- ++p;- yych = *p;- yy992:- if (yybm[0 + yych] & 32) {- goto yy991;- }- if (yych <= 0x08)- goto yy993;- if (yych <= '\n')- goto yy994;- if (yych == '\r')- goto yy994;- yy993:- p = marker;- goto yy988;- yy994:- ++p;- { return 1; }- yy996:- ++p;- yych = *p;- if (yybm[0 + yych] & 32) {- goto yy991;- }- if (yych <= '\f') {- if (yych <= 0x08)- goto yy993;- if (yych <= '\n')- goto yy994;- goto yy993;- } else {- if (yych <= '\r')- goto yy994;- if (yych == '=')- goto yy996;- goto yy993;- }- yy998:- ++p;- yych = *p;- yy999:- if (yych <= '\f') {- if (yych <= 0x08)- goto yy993;- if (yych <= '\t')- goto yy998;- if (yych >= '\v')- goto yy993;- } else {- if (yych <= '\r')- goto yy1000;- if (yych == ' ')- goto yy998;- goto yy993;- }- yy1000:- ++p;- { return 2; }- yy1002:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy1002;- }- if (yych <= '\f') {- if (yych <= 0x08)- goto yy993;- if (yych <= '\t')- goto yy998;- if (yych <= '\n')- goto yy1000;- goto yy993;- } else {- if (yych <= '\r')- goto yy1000;- if (yych == ' ')- goto yy998;- goto yy993;- }- }-}--// Scan a thematic break 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."-bufsize_t _scan_thematic_break(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, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 128, 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, 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, 0, 0, 0, 0, 0, 0, 0, 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 yy1008;- } else {- if (yych <= '-')- goto yy1009;- if (yych == '_')- goto yy1010;- }- ++p;- yy1007 : { return 0; }- yy1008:- yych = *(marker = ++p);- if (yych <= 0x1F) {- if (yych == '\t')- goto yy1032;- goto yy1007;- } else {- if (yych <= ' ')- goto yy1032;- if (yych == '*')- goto yy1034;- goto yy1007;- }- yy1009:- yych = *(marker = ++p);- if (yych <= 0x1F) {- if (yych == '\t')- goto yy1022;- goto yy1007;- } else {- if (yych <= ' ')- goto yy1022;- if (yych == '-')- goto yy1024;- goto yy1007;- }- yy1010:- yych = *(marker = ++p);- if (yybm[0 + yych] & 16) {- goto yy1011;- }- if (yych == '_')- goto yy1014;- goto yy1007;- yy1011:- ++p;- yych = *p;- if (yybm[0 + yych] & 16) {- goto yy1011;- }- if (yych == '_')- goto yy1014;- yy1013:- p = marker;- goto yy1007;- yy1014:- ++p;- yych = *p;- if (yych <= 0x1F) {- if (yych == '\t')- goto yy1014;- goto yy1013;- } else {- if (yych <= ' ')- goto yy1014;- if (yych != '_')- goto yy1013;- }- yy1016:- ++p;- yych = *p;- if (yych <= '\r') {- if (yych <= '\t') {- if (yych <= 0x08)- goto yy1013;- goto yy1016;- } else {- if (yych <= '\n')- goto yy1018;- if (yych <= '\f')- goto yy1013;- }- } else {- if (yych <= ' ') {- if (yych <= 0x1F)- goto yy1013;- goto yy1016;- } else {- if (yych == '_')- goto yy1020;- goto yy1013;- }- }- yy1018:- ++p;- { return (bufsize_t)(p - start); }- yy1020:- ++p;- yych = *p;- if (yybm[0 + yych] & 32) {- goto yy1020;- }- if (yych <= 0x08)- goto yy1013;- if (yych <= '\n')- goto yy1018;- if (yych == '\r')- goto yy1018;- goto yy1013;- yy1022:- ++p;- yych = *p;- if (yych <= 0x1F) {- if (yych == '\t')- goto yy1022;- goto yy1013;- } else {- if (yych <= ' ')- goto yy1022;- if (yych != '-')- goto yy1013;- }- yy1024:- ++p;- yych = *p;- if (yych <= 0x1F) {- if (yych == '\t')- goto yy1024;- goto yy1013;- } else {- if (yych <= ' ')- goto yy1024;- if (yych != '-')- goto yy1013;- }- yy1026:- ++p;- yych = *p;- if (yych <= '\r') {- if (yych <= '\t') {- if (yych <= 0x08)- goto yy1013;- goto yy1026;- } else {- if (yych <= '\n')- goto yy1028;- if (yych <= '\f')- goto yy1013;- }- } else {- if (yych <= ' ') {- if (yych <= 0x1F)- goto yy1013;- goto yy1026;- } else {- if (yych == '-')- goto yy1030;- goto yy1013;- }- }- yy1028:- ++p;- { return (bufsize_t)(p - start); }- yy1030:- ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy1030;- }- if (yych <= 0x08)- goto yy1013;- if (yych <= '\n')- goto yy1028;- if (yych == '\r')- goto yy1028;- goto yy1013;- yy1032:- ++p;- yych = *p;- if (yych <= 0x1F) {- if (yych == '\t')- goto yy1032;- goto yy1013;- } else {- if (yych <= ' ')- goto yy1032;- if (yych != '*')- goto yy1013;- }- yy1034:- ++p;- yych = *p;- if (yych <= 0x1F) {- if (yych == '\t')- goto yy1034;- goto yy1013;- } else {- if (yych <= ' ')- goto yy1034;- if (yych != '*')- goto yy1013;- }- yy1036:- ++p;- yych = *p;- if (yych <= '\r') {- if (yych <= '\t') {- if (yych <= 0x08)- goto yy1013;- goto yy1036;- } else {- if (yych <= '\n')- goto yy1038;- if (yych <= '\f')- goto yy1013;- }- } else {- if (yych <= ' ') {- if (yych <= 0x1F)- goto yy1013;- goto yy1036;- } else {- if (yych == '*')- goto yy1040;- goto yy1013;- }- }- yy1038:- ++p;- { return (bufsize_t)(p - start); }- yy1040:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy1040;- }- if (yych <= 0x08)- goto yy1013;- if (yych <= '\n')- goto yy1038;- if (yych == '\r')- goto yy1038;- goto yy1013;- }-}--// Scan an opening code fence.-bufsize_t _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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,- 0, 0, 0, 0, 0, 0, 0, 0, 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 == '`')- goto yy1046;- if (yych == '~')- goto yy1047;- ++p;- yy1045 : { return 0; }- yy1046:- yych = *(marker = ++p);- if (yych == '`')- goto yy1063;- goto yy1045;- yy1047:- yych = *(marker = ++p);- if (yych != '~')- goto yy1045;- yych = *++p;- if (yybm[0 + yych] & 16) {- goto yy1050;- }- yy1049:- p = marker;- goto yy1045;- yy1050:- ++p;- yych = *p;- marker = p;- if (yybm[0 + yych] & 32) {- goto yy1052;- }- if (yych <= 0xE0) {- if (yych <= '~') {- if (yych <= 0x00)- goto yy1049;- if (yych <= '\r')- goto yy1061;- goto yy1050;- } else {- if (yych <= 0xC1)- goto yy1049;- if (yych <= 0xDF)- goto yy1054;- goto yy1055;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy1060;- goto yy1056;- } else {- if (yych <= 0xF0)- goto yy1057;- if (yych <= 0xF3)- goto yy1058;- if (yych <= 0xF4)- goto yy1059;- goto yy1049;- }- }- yy1052:- ++p;- yych = *p;- if (yybm[0 + yych] & 32) {- goto yy1052;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x00)- goto yy1049;- if (yych <= '\r')- goto yy1061;- goto yy1049;- } else {- if (yych <= 0xDF)- goto yy1054;- if (yych <= 0xE0)- goto yy1055;- goto yy1056;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy1060;- if (yych <= 0xEF)- goto yy1056;- goto yy1057;- } else {- if (yych <= 0xF3)- goto yy1058;- if (yych <= 0xF4)- goto yy1059;- goto yy1049;- }- }- yy1054:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy1049;- if (yych <= 0xBF)- goto yy1052;- goto yy1049;- yy1055:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy1049;- if (yych <= 0xBF)- goto yy1054;- goto yy1049;- yy1056:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy1049;- if (yych <= 0xBF)- goto yy1054;- goto yy1049;- yy1057:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy1049;- if (yych <= 0xBF)- goto yy1056;- goto yy1049;- yy1058:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy1049;- if (yych <= 0xBF)- goto yy1056;- goto yy1049;- yy1059:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy1049;- if (yych <= 0x8F)- goto yy1056;- goto yy1049;- yy1060:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy1049;- if (yych <= 0x9F)- goto yy1054;- goto yy1049;- yy1061:- ++p;- p = marker;- { return (bufsize_t)(p - start); }- yy1063:- yych = *++p;- if (yybm[0 + yych] & 64) {- goto yy1064;- }- goto yy1049;- yy1064:- ++p;- yych = *p;- marker = p;- if (yybm[0 + yych] & 128) {- goto yy1066;- }- if (yych <= 0xE0) {- if (yych <= '`') {- if (yych <= 0x00)- goto yy1049;- if (yych <= '\r')- goto yy1075;- goto yy1064;- } else {- if (yych <= 0xC1)- goto yy1049;- if (yych <= 0xDF)- goto yy1068;- goto yy1069;- }- } else {- if (yych <= 0xEF) {- if (yych == 0xED)- goto yy1074;- goto yy1070;- } else {- if (yych <= 0xF0)- goto yy1071;- if (yych <= 0xF3)- goto yy1072;- if (yych <= 0xF4)- goto yy1073;- goto yy1049;- }- }- yy1066:- ++p;- yych = *p;- if (yybm[0 + yych] & 128) {- goto yy1066;- }- if (yych <= 0xEC) {- if (yych <= 0xC1) {- if (yych <= 0x00)- goto yy1049;- if (yych <= '\r')- goto yy1075;- goto yy1049;- } else {- if (yych <= 0xDF)- goto yy1068;- if (yych <= 0xE0)- goto yy1069;- goto yy1070;- }- } else {- if (yych <= 0xF0) {- if (yych <= 0xED)- goto yy1074;- if (yych <= 0xEF)- goto yy1070;- goto yy1071;- } else {- if (yych <= 0xF3)- goto yy1072;- if (yych <= 0xF4)- goto yy1073;- goto yy1049;- }- }- yy1068:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy1049;- if (yych <= 0xBF)- goto yy1066;- goto yy1049;- yy1069:- ++p;- yych = *p;- if (yych <= 0x9F)- goto yy1049;- if (yych <= 0xBF)- goto yy1068;- goto yy1049;- yy1070:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy1049;- if (yych <= 0xBF)- goto yy1068;- goto yy1049;- yy1071:- ++p;- yych = *p;- if (yych <= 0x8F)- goto yy1049;- if (yych <= 0xBF)- goto yy1070;- goto yy1049;- yy1072:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy1049;- if (yych <= 0xBF)- goto yy1070;- goto yy1049;- yy1073:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy1049;- if (yych <= 0x8F)- goto yy1070;- goto yy1049;- yy1074:- ++p;- yych = *p;- if (yych <= 0x7F)- goto yy1049;- if (yych <= 0x9F)- goto yy1068;- goto yy1049;- yy1075:- ++p;- p = marker;- { return (bufsize_t)(p - start); }- }-}--// Scan a closing code fence with length at least len.-bufsize_t _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 == '`')- goto yy1081;- if (yych == '~')- goto yy1082;- ++p;- yy1080 : { return 0; }- yy1081:- yych = *(marker = ++p);- if (yych == '`')- goto yy1091;- goto yy1080;- yy1082:- yych = *(marker = ++p);- if (yych != '~')- goto yy1080;- yych = *++p;- if (yybm[0 + yych] & 32) {- goto yy1085;- }- yy1084:- p = marker;- goto yy1080;- yy1085:- ++p;- yych = *p;- marker = p;- if (yybm[0 + yych] & 64) {- goto yy1087;- }- if (yych <= '\f') {- if (yych <= 0x08)- goto yy1084;- if (yych <= '\n')- goto yy1089;- goto yy1084;- } else {- if (yych <= '\r')- goto yy1089;- if (yych == '~')- goto yy1085;- goto yy1084;- }- yy1087:- ++p;- yych = *p;- if (yybm[0 + yych] & 64) {- goto yy1087;- }- if (yych <= 0x08)- goto yy1084;- if (yych <= '\n')- goto yy1089;- if (yych != '\r')- goto yy1084;- yy1089:- ++p;- p = marker;- { return (bufsize_t)(p - start); }- yy1091:- yych = *++p;- if (yybm[0 + yych] & 128) {- goto yy1092;- }- goto yy1084;- yy1092:- ++p;- yych = *p;- marker = p;- if (yybm[0 + yych] & 128) {- goto yy1092;- }- if (yych <= '\f') {- if (yych <= 0x08)- goto yy1084;- if (yych <= '\t')- goto yy1094;- if (yych <= '\n')- goto yy1096;- goto yy1084;- } else {- if (yych <= '\r')- goto yy1096;- if (yych != ' ')- goto yy1084;- }- yy1094:- ++p;- yych = *p;- if (yych <= '\f') {- if (yych <= 0x08)- goto yy1084;- if (yych <= '\t')- goto yy1094;- if (yych >= '\v')- goto yy1084;- } else {- if (yych <= '\r')- goto yy1096;- if (yych == ' ')- goto yy1094;- goto yy1084;- }- yy1096:- ++p;- p = marker;- { return (bufsize_t)(p - start); }- }-}--// Scans an entity.-// Returns number of chars matched.-bufsize_t _scan_entity(const unsigned char *p) {- const unsigned char *marker = NULL;- const unsigned char *start = p;-- {- unsigned char yych;- yych = *p;- if (yych == '&')- goto yy1102;- ++p;- yy1101 : { return 0; }- yy1102:- yych = *(marker = ++p);- if (yych <= '@') {- if (yych != '#')- goto yy1101;- } else {- if (yych <= 'Z')- goto yy1105;- if (yych <= '`')- goto yy1101;- if (yych <= 'z')- goto yy1105;- goto yy1101;- }- yych = *++p;- if (yych <= 'W') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1140;- } else {- if (yych <= 'X')- goto yy1139;- if (yych == 'x')- goto yy1139;- }- yy1104:- p = marker;- goto yy1101;- yy1105:- yych = *++p;- if (yych <= '@') {- if (yych <= '/')- goto yy1104;- if (yych >= ':')- goto yy1104;- } else {- if (yych <= 'Z')- goto yy1106;- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- yy1106:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1109;- if (yych <= ':')- goto yy1104;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- goto yy1109;- } else {- if (yych <= '`')- goto yy1104;- if (yych <= 'z')- goto yy1109;- goto yy1104;- }- }- yy1107:- ++p;- { return (bufsize_t)(p - start); }- yy1109:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1110;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1110:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1111;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1111:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1112;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1112:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1113;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1113:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1114;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1114:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1115;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1115:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1116;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1116:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1117;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1117:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1118;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1118:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1119;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1119:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1120;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1120:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1121;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1121:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1122;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1122:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1123;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1123:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1124;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1124:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1125;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1125:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1126;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1126:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1127;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1127:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1128;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1128:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1129;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1129:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1130;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1130:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1131;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1131:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1132;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1132:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1133;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1133:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1134;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1134:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1135;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1135:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1136;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1136:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1137;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1137:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1138;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'Z') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= '{')- goto yy1104;- }- }- yy1138:- yych = *++p;- if (yych == ';')- goto yy1107;- goto yy1104;- yy1139:- yych = *++p;- if (yych <= '@') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1147;- goto yy1104;- } else {- if (yych <= 'F')- goto yy1147;- if (yych <= '`')- goto yy1104;- if (yych <= 'f')- goto yy1147;- goto yy1104;- }- yy1140:- yych = *++p;- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1141;- if (yych == ';')- goto yy1107;- goto yy1104;- yy1141:- yych = *++p;- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1142;- if (yych == ';')- goto yy1107;- goto yy1104;- yy1142:- yych = *++p;- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1143;- if (yych == ';')- goto yy1107;- goto yy1104;- yy1143:- yych = *++p;- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1144;- if (yych == ';')- goto yy1107;- goto yy1104;- yy1144:- yych = *++p;- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1145;- if (yych == ';')- goto yy1107;- goto yy1104;- yy1145:- yych = *++p;- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1146;- if (yych == ';')- goto yy1107;- goto yy1104;- yy1146:- yych = *++p;- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1138;- if (yych == ';')- goto yy1107;- goto yy1104;- yy1147:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1148;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'F') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= 'g')- goto yy1104;- }- }- yy1148:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1149;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'F') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= 'g')- goto yy1104;- }- }- yy1149:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1150;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'F') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= 'g')- goto yy1104;- }- }- yy1150:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1151;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'F') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= 'g')- goto yy1104;- }- }- yy1151:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1152;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'F') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= 'g')- goto yy1104;- }- }- yy1152:- yych = *++p;- if (yych <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1153;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'F') {- if (yych <= '@')- goto yy1104;- } else {- if (yych <= '`')- goto yy1104;- if (yych >= 'g')- goto yy1104;- }- }- yy1153:- ++p;- if ((yych = *p) <= ';') {- if (yych <= '/')- goto yy1104;- if (yych <= '9')- goto yy1138;- if (yych <= ':')- goto yy1104;- goto yy1107;- } else {- if (yych <= 'F') {- if (yych <= '@')- goto yy1104;- goto yy1138;- } else {- if (yych <= '`')- goto yy1104;- if (yych <= 'f')- goto yy1138;- goto yy1104;- }- }- }-}--// Returns positive value if a URL begins in a way that is potentially-// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.-bufsize_t _scan_dangerous_url(const unsigned char *p) {- const unsigned char *marker = NULL;- const unsigned char *start = p;-- {- unsigned char yych;- unsigned int yyaccept = 0;- yych = *p;- if (yych <= 'V') {- if (yych <= 'F') {- if (yych == 'D')- goto yy1158;- if (yych >= 'F')- goto yy1159;- } else {- if (yych == 'J')- goto yy1160;- if (yych >= 'V')- goto yy1161;- }- } else {- if (yych <= 'f') {- if (yych == 'd')- goto yy1158;- if (yych >= 'f')- goto yy1159;- } else {- if (yych <= 'j') {- if (yych >= 'j')- goto yy1160;- } else {- if (yych == 'v')- goto yy1161;- }- }- }- ++p;- yy1157 : { return 0; }- yy1158:- yyaccept = 0;- yych = *(marker = ++p);- if (yych == 'A')- goto yy1184;- if (yych == 'a')- goto yy1184;- goto yy1157;- yy1159:- yyaccept = 0;- yych = *(marker = ++p);- if (yych == 'I')- goto yy1181;- if (yych == 'i')- goto yy1181;- goto yy1157;- yy1160:- yyaccept = 0;- yych = *(marker = ++p);- if (yych == 'A')- goto yy1172;- if (yych == 'a')- goto yy1172;- goto yy1157;- yy1161:- yyaccept = 0;- yych = *(marker = ++p);- if (yych == 'B')- goto yy1162;- if (yych != 'b')- goto yy1157;- yy1162:- yych = *++p;- if (yych == 'S')- goto yy1164;- if (yych == 's')- goto yy1164;- yy1163:- p = marker;- if (yyaccept == 0) {- goto yy1157;- } else {- goto yy1171;- }- yy1164:- yych = *++p;- if (yych == 'C')- goto yy1165;- if (yych != 'c')- goto yy1163;- yy1165:- yych = *++p;- if (yych == 'R')- goto yy1166;- if (yych != 'r')- goto yy1163;- yy1166:- yych = *++p;- if (yych == 'I')- goto yy1167;- if (yych != 'i')- goto yy1163;- yy1167:- yych = *++p;- if (yych == 'P')- goto yy1168;- if (yych != 'p')- goto yy1163;- yy1168:- yych = *++p;- if (yych == 'T')- goto yy1169;- if (yych != 't')- goto yy1163;- yy1169:- yych = *++p;- if (yych != ':')- goto yy1163;- yy1170:- ++p;- yy1171 : { return (bufsize_t)(p - start); }- yy1172:- yych = *++p;- if (yych == 'V')- goto yy1173;- if (yych != 'v')- goto yy1163;- yy1173:- yych = *++p;- if (yych == 'A')- goto yy1174;- if (yych != 'a')- goto yy1163;- yy1174:- yych = *++p;- if (yych == 'S')- goto yy1175;- if (yych != 's')- goto yy1163;- yy1175:- yych = *++p;- if (yych == 'C')- goto yy1176;- if (yych != 'c')- goto yy1163;- yy1176:- yych = *++p;- if (yych == 'R')- goto yy1177;- if (yych != 'r')- goto yy1163;- yy1177:- yych = *++p;- if (yych == 'I')- goto yy1178;- if (yych != 'i')- goto yy1163;- yy1178:- yych = *++p;- if (yych == 'P')- goto yy1179;- if (yych != 'p')- goto yy1163;- yy1179:- yych = *++p;- if (yych == 'T')- goto yy1180;- if (yych != 't')- goto yy1163;- yy1180:- yych = *++p;- if (yych == ':')- goto yy1170;- goto yy1163;- yy1181:- yych = *++p;- if (yych == 'L')- goto yy1182;- if (yych != 'l')- goto yy1163;- yy1182:- yych = *++p;- if (yych == 'E')- goto yy1183;- if (yych != 'e')- goto yy1163;- yy1183:- yych = *++p;- if (yych == ':')- goto yy1170;- goto yy1163;- yy1184:- yych = *++p;- if (yych == 'T')- goto yy1185;- if (yych != 't')- goto yy1163;- yy1185:- yych = *++p;- if (yych == 'A')- goto yy1186;- if (yych != 'a')- goto yy1163;- yy1186:- yych = *++p;- if (yych != ':')- goto yy1163;- yyaccept = 1;- yych = *(marker = ++p);- if (yych == 'I')- goto yy1188;- if (yych != 'i')- goto yy1171;- yy1188:- yych = *++p;- if (yych == 'M')- goto yy1189;- if (yych != 'm')- goto yy1163;- yy1189:- yych = *++p;- if (yych == 'A')- goto yy1190;- if (yych != 'a')- goto yy1163;- yy1190:- yych = *++p;- if (yych == 'G')- goto yy1191;- if (yych != 'g')- goto yy1163;- yy1191:- yych = *++p;- if (yych == 'E')- goto yy1192;- if (yych != 'e')- goto yy1163;- yy1192:- yych = *++p;- if (yych != '/')- goto yy1163;- yych = *++p;- if (yych <= 'W') {- if (yych <= 'J') {- if (yych == 'G')- goto yy1195;- if (yych <= 'I')- goto yy1163;- goto yy1196;- } else {- if (yych == 'P')- goto yy1194;- if (yych <= 'V')- goto yy1163;- goto yy1197;- }- } else {- if (yych <= 'j') {- if (yych == 'g')- goto yy1195;- if (yych <= 'i')- goto yy1163;- goto yy1196;- } else {- if (yych <= 'p') {- if (yych <= 'o')- goto yy1163;- } else {- if (yych == 'w')- goto yy1197;- goto yy1163;- }- }- }- yy1194:- yych = *++p;- if (yych == 'N')- goto yy1205;- if (yych == 'n')- goto yy1205;- goto yy1163;- yy1195:- yych = *++p;- if (yych == 'I')- goto yy1204;- if (yych == 'i')- goto yy1204;- goto yy1163;- yy1196:- yych = *++p;- if (yych == 'P')- goto yy1202;- if (yych == 'p')- goto yy1202;- goto yy1163;- yy1197:- yych = *++p;- if (yych == 'E')- goto yy1198;- if (yych != 'e')- goto yy1163;- yy1198:- yych = *++p;- if (yych == 'B')- goto yy1199;- if (yych != 'b')- goto yy1163;- yy1199:- yych = *++p;- if (yych == 'P')- goto yy1200;- if (yych != 'p')- goto yy1163;- yy1200:- ++p;- { return 0; }- yy1202:- yych = *++p;- if (yych == 'E')- goto yy1203;- if (yych != 'e')- goto yy1163;- yy1203:- yych = *++p;- if (yych == 'G')- goto yy1200;- if (yych == 'g')- goto yy1200;- goto yy1163;- yy1204:- yych = *++p;- if (yych == 'F')- goto yy1200;- if (yych == 'f')- goto yy1200;- goto yy1163;- yy1205:- ++p;- if ((yych = *p) == 'G')- goto yy1200;- if (yych == 'g')- goto yy1200;- goto yy1163;+/* Generated by re2c 3.0 */+#include <stdlib.h>+#include "chunk.h"+#include "scanners.h"++bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,+ bufsize_t offset) {+ bufsize_t res;+ unsigned char *ptr = (unsigned char *)c->data;++ if (ptr == NULL || offset > c->len) {+ return 0;+ } else {+ unsigned char lim = ptr[c->len];++ ptr[c->len] = '\0';+ res = scanner(ptr + offset);+ ptr[c->len] = lim;+ }++ return res;+}++// Try to match a scheme including colon.+bufsize_t _scan_scheme(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ yych = *p;+ if (yych <= '@')+ goto yy1;+ if (yych <= 'Z')+ goto yy3;+ if (yych <= '`')+ goto yy1;+ if (yych <= 'z')+ goto yy3;+ yy1:+ ++p;+ yy2 : { return 0; }+ yy3:+ yych = *(marker = ++p);+ if (yych <= '/') {+ if (yych <= '+') {+ if (yych <= '*')+ goto yy2;+ } else {+ if (yych <= ',')+ goto yy2;+ if (yych >= '/')+ goto yy2;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '9')+ goto yy4;+ if (yych <= '@')+ goto yy2;+ } else {+ if (yych <= '`')+ goto yy2;+ if (yych >= '{')+ goto yy2;+ }+ }+ yy4:+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych == '+')+ goto yy6;+ } else {+ if (yych != '/')+ goto yy6;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych >= 'A')+ goto yy6;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych <= 'z')+ goto yy6;+ }+ }+ yy5:+ p = marker;+ goto yy2;+ yy6:+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych == '+')+ goto yy8;+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ goto yy8;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ goto yy8;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych <= 'z')+ goto yy8;+ goto yy5;+ }+ }+ yy7:+ ++p;+ { return (bufsize_t)(p - start); }+ yy8:+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy5;+ } else {+ if (yych == '/')+ goto yy5;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy7;+ if (yych <= '@')+ goto yy5;+ } else {+ if (yych <= '`')+ goto yy5;+ if (yych >= '{')+ goto yy5;+ }+ }+ yych = *++p;+ if (yych == ':')+ goto yy7;+ goto yy5;+ }+}++// Try to match URI autolink after first <, returning number of chars matched.+bufsize_t _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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 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 <= '@')+ goto yy10;+ if (yych <= 'Z')+ goto yy12;+ if (yych <= '`')+ goto yy10;+ if (yych <= 'z')+ goto yy12;+ yy10:+ ++p;+ yy11 : { return 0; }+ yy12:+ yych = *(marker = ++p);+ if (yych <= '/') {+ if (yych <= '+') {+ if (yych <= '*')+ goto yy11;+ } else {+ if (yych <= ',')+ goto yy11;+ if (yych >= '/')+ goto yy11;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '9')+ goto yy13;+ if (yych <= '@')+ goto yy11;+ } else {+ if (yych <= '`')+ goto yy11;+ if (yych >= '{')+ goto yy11;+ }+ }+ yy13:+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych == '+')+ goto yy15;+ } else {+ if (yych != '/')+ goto yy15;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych >= 'A')+ goto yy15;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych <= 'z')+ goto yy15;+ }+ }+ yy14:+ p = marker;+ goto yy11;+ yy15:+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych == '+')+ goto yy17;+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ goto yy17;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ goto yy17;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych <= 'z')+ goto yy17;+ goto yy14;+ }+ }+ yy16:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy16;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '<')+ goto yy14;+ if (yych <= '>')+ goto yy18;+ goto yy14;+ } else {+ if (yych <= 0xDF)+ goto yy19;+ if (yych <= 0xE0)+ goto yy20;+ goto yy21;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy22;+ if (yych <= 0xEF)+ goto yy21;+ goto yy23;+ } else {+ if (yych <= 0xF3)+ goto yy24;+ if (yych <= 0xF4)+ goto yy25;+ goto yy14;+ }+ }+ yy17:+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych == '+')+ goto yy26;+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ goto yy26;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ goto yy26;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych <= 'z')+ goto yy26;+ goto yy14;+ }+ }+ yy18:+ ++p;+ { return (bufsize_t)(p - start); }+ yy19:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy14;+ if (yych <= 0xBF)+ goto yy16;+ goto yy14;+ yy20:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy14;+ if (yych <= 0xBF)+ goto yy19;+ goto yy14;+ yy21:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy14;+ if (yych <= 0xBF)+ goto yy19;+ goto yy14;+ yy22:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy14;+ if (yych <= 0x9F)+ goto yy19;+ goto yy14;+ yy23:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy14;+ if (yych <= 0xBF)+ goto yy21;+ goto yy14;+ yy24:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy14;+ if (yych <= 0xBF)+ goto yy21;+ goto yy14;+ yy25:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy14;+ if (yych <= 0x8F)+ goto yy21;+ goto yy14;+ yy26:+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych <= ',') {+ if (yych != '+')+ goto yy14;+ } else {+ if (yych == '/')+ goto yy14;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= ':')+ goto yy16;+ if (yych <= '@')+ goto yy14;+ } else {+ if (yych <= '`')+ goto yy14;+ if (yych >= '{')+ goto yy14;+ }+ }+ yych = *++p;+ if (yych == ':')+ goto yy16;+ goto yy14;+ }+}++// Try to match email autolink after first <, returning num of chars matched.+bufsize_t _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 <= '9') {+ if (yych <= '\'') {+ if (yych == '!')+ goto yy30;+ if (yych >= '#')+ goto yy30;+ } else {+ if (yych <= ')')+ goto yy28;+ if (yych != ',')+ goto yy30;+ }+ } else {+ if (yych <= '?') {+ if (yych == '=')+ goto yy30;+ if (yych >= '?')+ goto yy30;+ } else {+ if (yych <= 'Z') {+ if (yych >= 'A')+ goto yy30;+ } else {+ if (yych <= ']')+ goto yy28;+ if (yych <= '~')+ goto yy30;+ }+ }+ }+ yy28:+ ++p;+ yy29 : { return 0; }+ yy30:+ yych = *(marker = ++p);+ if (yych <= ',') {+ if (yych <= '"') {+ if (yych == '!')+ goto yy32;+ goto yy29;+ } else {+ if (yych <= '\'')+ goto yy32;+ if (yych <= ')')+ goto yy29;+ if (yych <= '+')+ goto yy32;+ goto yy29;+ }+ } else {+ if (yych <= '>') {+ if (yych <= '9')+ goto yy32;+ if (yych == '=')+ goto yy32;+ goto yy29;+ } else {+ if (yych <= 'Z')+ goto yy32;+ if (yych <= ']')+ goto yy29;+ if (yych <= '~')+ goto yy32;+ goto yy29;+ }+ }+ yy31:+ yych = *++p;+ yy32:+ if (yybm[0 + yych] & 128) {+ goto yy31;+ }+ if (yych <= '>')+ goto yy33;+ if (yych <= '@')+ goto yy34;+ yy33:+ p = marker;+ goto yy29;+ yy34:+ yych = *++p;+ if (yych <= '@') {+ if (yych <= '/')+ goto yy33;+ if (yych >= ':')+ goto yy33;+ } else {+ if (yych <= 'Z')+ goto yy35;+ if (yych <= '`')+ goto yy33;+ if (yych >= '{')+ goto yy33;+ }+ yy35:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy36;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy36;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy36;+ goto yy33;+ }+ }+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy38;+ if (yych <= '/')+ goto yy33;+ goto yy39;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy39;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy39;+ goto yy33;+ }+ }+ yy36:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych <= '-')+ goto yy38;+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy39;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy39;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy39;+ goto yy33;+ }+ }+ yy37:+ ++p;+ { return (bufsize_t)(p - start); }+ yy38:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy40;+ if (yych <= '/')+ goto yy33;+ goto yy41;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy41;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy41;+ goto yy33;+ }+ }+ yy39:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy41;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy41;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy41;+ goto yy33;+ }+ }+ yy40:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy42;+ if (yych <= '/')+ goto yy33;+ goto yy43;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy43;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy43;+ goto yy33;+ }+ }+ yy41:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy43;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy43;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy43;+ goto yy33;+ }+ }+ yy42:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy44;+ if (yych <= '/')+ goto yy33;+ goto yy45;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy45;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy45;+ goto yy33;+ }+ }+ yy43:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy45;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy45;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy45;+ goto yy33;+ }+ }+ yy44:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy46;+ if (yych <= '/')+ goto yy33;+ goto yy47;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy47;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy47;+ goto yy33;+ }+ }+ yy45:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy47;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy47;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy47;+ goto yy33;+ }+ }+ yy46:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy48;+ if (yych <= '/')+ goto yy33;+ goto yy49;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy49;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy49;+ goto yy33;+ }+ }+ yy47:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy49;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy49;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy49;+ goto yy33;+ }+ }+ yy48:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy50;+ if (yych <= '/')+ goto yy33;+ goto yy51;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy51;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy51;+ goto yy33;+ }+ }+ yy49:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy51;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy51;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy51;+ goto yy33;+ }+ }+ yy50:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy52;+ if (yych <= '/')+ goto yy33;+ goto yy53;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy53;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy53;+ goto yy33;+ }+ }+ yy51:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy53;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy53;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy53;+ goto yy33;+ }+ }+ yy52:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy54;+ if (yych <= '/')+ goto yy33;+ goto yy55;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy55;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy55;+ goto yy33;+ }+ }+ yy53:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy55;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy55;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy55;+ goto yy33;+ }+ }+ yy54:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy56;+ if (yych <= '/')+ goto yy33;+ goto yy57;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy57;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy57;+ goto yy33;+ }+ }+ yy55:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy57;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy57;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy57;+ goto yy33;+ }+ }+ yy56:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy58;+ if (yych <= '/')+ goto yy33;+ goto yy59;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy59;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy59;+ goto yy33;+ }+ }+ yy57:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy59;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy59;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy59;+ goto yy33;+ }+ }+ yy58:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy60;+ if (yych <= '/')+ goto yy33;+ goto yy61;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy61;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy61;+ goto yy33;+ }+ }+ yy59:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy61;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy61;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy61;+ goto yy33;+ }+ }+ yy60:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy62;+ if (yych <= '/')+ goto yy33;+ goto yy63;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy63;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy63;+ goto yy33;+ }+ }+ yy61:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy63;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy63;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy63;+ goto yy33;+ }+ }+ yy62:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy64;+ if (yych <= '/')+ goto yy33;+ goto yy65;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy65;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy65;+ goto yy33;+ }+ }+ yy63:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy65;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy65;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy65;+ goto yy33;+ }+ }+ yy64:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy66;+ if (yych <= '/')+ goto yy33;+ goto yy67;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy67;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy67;+ goto yy33;+ }+ }+ yy65:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy67;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy67;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy67;+ goto yy33;+ }+ }+ yy66:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy68;+ if (yych <= '/')+ goto yy33;+ goto yy69;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy69;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy69;+ goto yy33;+ }+ }+ yy67:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy69;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy69;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy69;+ goto yy33;+ }+ }+ yy68:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy70;+ if (yych <= '/')+ goto yy33;+ goto yy71;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy71;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy71;+ goto yy33;+ }+ }+ yy69:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy71;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy71;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy71;+ goto yy33;+ }+ }+ yy70:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy72;+ if (yych <= '/')+ goto yy33;+ goto yy73;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy73;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy73;+ goto yy33;+ }+ }+ yy71:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy73;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy73;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy73;+ goto yy33;+ }+ }+ yy72:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy74;+ if (yych <= '/')+ goto yy33;+ goto yy75;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy75;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy75;+ goto yy33;+ }+ }+ yy73:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy75;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy75;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy75;+ goto yy33;+ }+ }+ yy74:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy76;+ if (yych <= '/')+ goto yy33;+ goto yy77;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy77;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy77;+ goto yy33;+ }+ }+ yy75:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy77;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy77;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy77;+ goto yy33;+ }+ }+ yy76:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy78;+ if (yych <= '/')+ goto yy33;+ goto yy79;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy79;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy79;+ goto yy33;+ }+ }+ yy77:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy79;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy79;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy79;+ goto yy33;+ }+ }+ yy78:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy80;+ if (yych <= '/')+ goto yy33;+ goto yy81;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy81;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy81;+ goto yy33;+ }+ }+ yy79:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy81;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy81;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy81;+ goto yy33;+ }+ }+ yy80:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy82;+ if (yych <= '/')+ goto yy33;+ goto yy83;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy83;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy83;+ goto yy33;+ }+ }+ yy81:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy83;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy83;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy83;+ goto yy33;+ }+ }+ yy82:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy84;+ if (yych <= '/')+ goto yy33;+ goto yy85;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy85;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy85;+ goto yy33;+ }+ }+ yy83:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy85;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy85;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy85;+ goto yy33;+ }+ }+ yy84:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy86;+ if (yych <= '/')+ goto yy33;+ goto yy87;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy87;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy87;+ goto yy33;+ }+ }+ yy85:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy87;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy87;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy87;+ goto yy33;+ }+ }+ yy86:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy88;+ if (yych <= '/')+ goto yy33;+ goto yy89;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy89;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy89;+ goto yy33;+ }+ }+ yy87:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy89;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy89;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy89;+ goto yy33;+ }+ }+ yy88:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy90;+ if (yych <= '/')+ goto yy33;+ goto yy91;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy91;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy91;+ goto yy33;+ }+ }+ yy89:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy91;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy91;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy91;+ goto yy33;+ }+ }+ yy90:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy92;+ if (yych <= '/')+ goto yy33;+ goto yy93;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy93;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy93;+ goto yy33;+ }+ }+ yy91:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy93;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy93;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy93;+ goto yy33;+ }+ }+ yy92:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy94;+ if (yych <= '/')+ goto yy33;+ goto yy95;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy95;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy95;+ goto yy33;+ }+ }+ yy93:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy95;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy95;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy95;+ goto yy33;+ }+ }+ yy94:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy96;+ if (yych <= '/')+ goto yy33;+ goto yy97;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy97;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy97;+ goto yy33;+ }+ }+ yy95:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy97;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy97;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy97;+ goto yy33;+ }+ }+ yy96:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy98;+ if (yych <= '/')+ goto yy33;+ goto yy99;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy99;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy99;+ goto yy33;+ }+ }+ yy97:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy99;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy99;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy99;+ goto yy33;+ }+ }+ yy98:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy100;+ if (yych <= '/')+ goto yy33;+ goto yy101;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy101;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy101;+ goto yy33;+ }+ }+ yy99:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy101;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy101;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy101;+ goto yy33;+ }+ }+ yy100:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy102;+ if (yych <= '/')+ goto yy33;+ goto yy103;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy103;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy103;+ goto yy33;+ }+ }+ yy101:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy103;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy103;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy103;+ goto yy33;+ }+ }+ yy102:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy104;+ if (yych <= '/')+ goto yy33;+ goto yy105;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy105;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy105;+ goto yy33;+ }+ }+ yy103:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy105;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy105;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy105;+ goto yy33;+ }+ }+ yy104:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy106;+ if (yych <= '/')+ goto yy33;+ goto yy107;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy107;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy107;+ goto yy33;+ }+ }+ yy105:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy107;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy107;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy107;+ goto yy33;+ }+ }+ yy106:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy108;+ if (yych <= '/')+ goto yy33;+ goto yy109;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy109;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy109;+ goto yy33;+ }+ }+ yy107:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy109;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy109;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy109;+ goto yy33;+ }+ }+ yy108:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy110;+ if (yych <= '/')+ goto yy33;+ goto yy111;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy111;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy111;+ goto yy33;+ }+ }+ yy109:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy111;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy111;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy111;+ goto yy33;+ }+ }+ yy110:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy112;+ if (yych <= '/')+ goto yy33;+ goto yy113;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy113;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy113;+ goto yy33;+ }+ }+ yy111:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy113;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy113;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy113;+ goto yy33;+ }+ }+ yy112:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy114;+ if (yych <= '/')+ goto yy33;+ goto yy115;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy115;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy115;+ goto yy33;+ }+ }+ yy113:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy115;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy115;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy115;+ goto yy33;+ }+ }+ yy114:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy116;+ if (yych <= '/')+ goto yy33;+ goto yy117;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy117;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy117;+ goto yy33;+ }+ }+ yy115:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy117;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy117;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy117;+ goto yy33;+ }+ }+ yy116:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy118;+ if (yych <= '/')+ goto yy33;+ goto yy119;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy119;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy119;+ goto yy33;+ }+ }+ yy117:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy119;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy119;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy119;+ goto yy33;+ }+ }+ yy118:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy120;+ if (yych <= '/')+ goto yy33;+ goto yy121;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy121;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy121;+ goto yy33;+ }+ }+ yy119:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy121;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy121;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy121;+ goto yy33;+ }+ }+ yy120:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy122;+ if (yych <= '/')+ goto yy33;+ goto yy123;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy123;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy123;+ goto yy33;+ }+ }+ yy121:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy123;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy123;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy123;+ goto yy33;+ }+ }+ yy122:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy124;+ if (yych <= '/')+ goto yy33;+ goto yy125;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy125;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy125;+ goto yy33;+ }+ }+ yy123:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy125;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy125;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy125;+ goto yy33;+ }+ }+ yy124:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy126;+ if (yych <= '/')+ goto yy33;+ goto yy127;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy127;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy127;+ goto yy33;+ }+ }+ yy125:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy127;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy127;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy127;+ goto yy33;+ }+ }+ yy126:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy128;+ if (yych <= '/')+ goto yy33;+ goto yy129;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy129;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy129;+ goto yy33;+ }+ }+ yy127:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy129;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy129;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy129;+ goto yy33;+ }+ }+ yy128:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy130;+ if (yych <= '/')+ goto yy33;+ goto yy131;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy131;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy131;+ goto yy33;+ }+ }+ yy129:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy131;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy131;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy131;+ goto yy33;+ }+ }+ yy130:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy132;+ if (yych <= '/')+ goto yy33;+ goto yy133;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy133;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy133;+ goto yy33;+ }+ }+ yy131:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy133;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy133;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy133;+ goto yy33;+ }+ }+ yy132:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy134;+ if (yych <= '/')+ goto yy33;+ goto yy135;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy135;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy135;+ goto yy33;+ }+ }+ yy133:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy135;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy135;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy135;+ goto yy33;+ }+ }+ yy134:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy136;+ if (yych <= '/')+ goto yy33;+ goto yy137;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy137;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy137;+ goto yy33;+ }+ }+ yy135:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy137;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy137;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy137;+ goto yy33;+ }+ }+ yy136:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy138;+ if (yych <= '/')+ goto yy33;+ goto yy139;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy139;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy139;+ goto yy33;+ }+ }+ yy137:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy139;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy139;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy139;+ goto yy33;+ }+ }+ yy138:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy140;+ if (yych <= '/')+ goto yy33;+ goto yy141;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy141;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy141;+ goto yy33;+ }+ }+ yy139:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy141;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy141;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy141;+ goto yy33;+ }+ }+ yy140:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy142;+ if (yych <= '/')+ goto yy33;+ goto yy143;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy143;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy143;+ goto yy33;+ }+ }+ yy141:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy143;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy143;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy143;+ goto yy33;+ }+ }+ yy142:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy144;+ if (yych <= '/')+ goto yy33;+ goto yy145;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy145;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy145;+ goto yy33;+ }+ }+ yy143:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy145;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy145;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy145;+ goto yy33;+ }+ }+ yy144:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy146;+ if (yych <= '/')+ goto yy33;+ goto yy147;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy147;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy147;+ goto yy33;+ }+ }+ yy145:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy147;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy147;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy147;+ goto yy33;+ }+ }+ yy146:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy148;+ if (yych <= '/')+ goto yy33;+ goto yy149;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy149;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy149;+ goto yy33;+ }+ }+ yy147:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy149;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy149;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy149;+ goto yy33;+ }+ }+ yy148:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy150;+ if (yych <= '/')+ goto yy33;+ goto yy151;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy151;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy151;+ goto yy33;+ }+ }+ yy149:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy151;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy151;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy151;+ goto yy33;+ }+ }+ yy150:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy152;+ if (yych <= '/')+ goto yy33;+ goto yy153;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy153;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy153;+ goto yy33;+ }+ }+ yy151:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy153;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy153;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy153;+ goto yy33;+ }+ }+ yy152:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy154;+ if (yych <= '/')+ goto yy33;+ goto yy155;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy155;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy155;+ goto yy33;+ }+ }+ yy153:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy155;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy155;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy155;+ goto yy33;+ }+ }+ yy154:+ yych = *++p;+ if (yych <= '9') {+ if (yych == '-')+ goto yy156;+ if (yych <= '/')+ goto yy33;+ goto yy157;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy33;+ goto yy157;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy157;+ goto yy33;+ }+ }+ yy155:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= ',')+ goto yy33;+ if (yych >= '.')+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy157;+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ goto yy157;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy157;+ goto yy33;+ }+ }+ yy156:+ yych = *++p;+ if (yych <= '@') {+ if (yych <= '/')+ goto yy33;+ if (yych <= '9')+ goto yy158;+ goto yy33;+ } else {+ if (yych <= 'Z')+ goto yy158;+ if (yych <= '`')+ goto yy33;+ if (yych <= 'z')+ goto yy158;+ goto yy33;+ }+ yy157:+ yych = *++p;+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych <= '-')+ goto yy33;+ goto yy34;+ } else {+ if (yych <= '/')+ goto yy33;+ if (yych >= ':')+ goto yy33;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy37;+ if (yych <= '@')+ goto yy33;+ } else {+ if (yych <= '`')+ goto yy33;+ if (yych >= '{')+ goto yy33;+ }+ }+ yy158:+ yych = *++p;+ if (yych == '.')+ goto yy34;+ if (yych == '>')+ goto yy37;+ goto yy33;+ }+}++// Try to match an HTML tag after first <, returning num of chars matched.+bufsize_t _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[] = {+ 0, 224, 224, 224, 224, 224, 224, 224, 224, 200, 200, 200, 200, 200,+ 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,+ 224, 224, 224, 224, 200, 224, 128, 224, 224, 224, 224, 64, 224, 224,+ 224, 224, 224, 244, 240, 224, 244, 244, 244, 244, 244, 244, 244, 244,+ 244, 244, 240, 224, 192, 192, 192, 224, 224, 244, 244, 244, 244, 244,+ 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,+ 244, 244, 244, 244, 244, 244, 244, 224, 224, 224, 224, 240, 192, 244,+ 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,+ 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 224, 224, 224,+ 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 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 yy162;+ } else {+ if (yych <= 'Z')+ goto yy163;+ if (yych <= '`')+ goto yy160;+ if (yych <= 'z')+ goto yy163;+ }+ yy160:+ ++p;+ yy161 : { return 0; }+ yy162:+ yych = *(marker = ++p);+ if (yych <= '@')+ goto yy161;+ if (yych <= 'Z')+ goto yy164;+ if (yych <= '`')+ goto yy161;+ if (yych <= 'z')+ goto yy164;+ goto yy161;+ yy163:+ yych = *(marker = ++p);+ if (yych <= '.') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy161;+ if (yych <= '\r')+ goto yy168;+ goto yy161;+ } else {+ if (yych <= ' ')+ goto yy168;+ if (yych == '-')+ goto yy168;+ goto yy161;+ }+ } else {+ if (yych <= '@') {+ if (yych <= '9')+ goto yy168;+ if (yych == '>')+ goto yy168;+ goto yy161;+ } else {+ if (yych <= 'Z')+ goto yy168;+ if (yych <= '`')+ goto yy161;+ if (yych <= 'z')+ goto yy168;+ goto yy161;+ }+ }+ yy164:+ yych = *++p;+ if (yybm[0 + yych] & 4) {+ goto yy164;+ }+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy165;+ if (yych <= '\r')+ goto yy171;+ } else {+ if (yych <= ' ')+ goto yy171;+ if (yych == '>')+ goto yy170;+ }+ yy165:+ p = marker;+ goto yy161;+ yy166:+ yych = *++p;+ if (yybm[0 + yych] & 8) {+ goto yy166;+ }+ if (yych <= '>') {+ if (yych <= '9') {+ if (yych == '/')+ goto yy169;+ goto yy165;+ } else {+ if (yych <= ':')+ goto yy172;+ if (yych <= '=')+ goto yy165;+ goto yy170;+ }+ } else {+ if (yych <= '^') {+ if (yych <= '@')+ goto yy165;+ if (yych <= 'Z')+ goto yy172;+ goto yy165;+ } else {+ if (yych == '`')+ goto yy165;+ if (yych <= 'z')+ goto yy172;+ goto yy165;+ }+ }+ yy167:+ yych = *++p;+ yy168:+ if (yybm[0 + yych] & 8) {+ goto yy166;+ }+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych == '-')+ goto yy167;+ goto yy165;+ } else {+ if (yych <= '/')+ goto yy169;+ if (yych <= '9')+ goto yy167;+ goto yy165;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy170;+ if (yych <= '@')+ goto yy165;+ goto yy167;+ } else {+ if (yych <= '`')+ goto yy165;+ if (yych <= 'z')+ goto yy167;+ goto yy165;+ }+ }+ yy169:+ yych = *++p;+ if (yych != '>')+ goto yy165;+ yy170:+ ++p;+ { return (bufsize_t)(p - start); }+ yy171:+ yych = *++p;+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy165;+ if (yych <= '\r')+ goto yy171;+ goto yy165;+ } else {+ if (yych <= ' ')+ goto yy171;+ if (yych == '>')+ goto yy170;+ goto yy165;+ }+ yy172:+ yych = *++p;+ if (yybm[0 + yych] & 16) {+ goto yy172;+ }+ if (yych <= ',') {+ if (yych <= '\r') {+ if (yych <= 0x08)+ goto yy165;+ } else {+ if (yych != ' ')+ goto yy165;+ }+ } else {+ if (yych <= '<') {+ if (yych <= '/')+ goto yy169;+ goto yy165;+ } else {+ if (yych <= '=')+ goto yy174;+ if (yych <= '>')+ goto yy170;+ goto yy165;+ }+ }+ yy173:+ yych = *++p;+ if (yych <= '<') {+ if (yych <= ' ') {+ if (yych <= 0x08)+ goto yy165;+ if (yych <= '\r')+ goto yy173;+ if (yych <= 0x1F)+ goto yy165;+ goto yy173;+ } else {+ if (yych <= '/') {+ if (yych <= '.')+ goto yy165;+ goto yy169;+ } else {+ if (yych == ':')+ goto yy172;+ goto yy165;+ }+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '=')+ goto yy174;+ if (yych <= '>')+ goto yy170;+ if (yych <= '@')+ goto yy165;+ goto yy172;+ } else {+ if (yych <= '_') {+ if (yych <= '^')+ goto yy165;+ goto yy172;+ } else {+ if (yych <= '`')+ goto yy165;+ if (yych <= 'z')+ goto yy172;+ goto yy165;+ }+ }+ }+ yy174:+ yych = *++p;+ if (yybm[0 + yych] & 32) {+ goto yy175;+ }+ if (yych <= 0xE0) {+ if (yych <= '"') {+ if (yych <= 0x00)+ goto yy165;+ if (yych <= ' ')+ goto yy174;+ goto yy176;+ } else {+ if (yych <= '\'')+ goto yy177;+ if (yych <= 0xC1)+ goto yy165;+ if (yych <= 0xDF)+ goto yy178;+ goto yy179;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy181;+ goto yy180;+ } else {+ if (yych <= 0xF0)+ goto yy182;+ if (yych <= 0xF3)+ goto yy183;+ if (yych <= 0xF4)+ goto yy184;+ goto yy165;+ }+ }+ yy175:+ yych = *++p;+ if (yybm[0 + yych] & 32) {+ goto yy175;+ }+ if (yych <= 0xE0) {+ if (yych <= '=') {+ if (yych <= 0x00)+ goto yy165;+ if (yych <= ' ')+ goto yy166;+ goto yy165;+ } else {+ if (yych <= '>')+ goto yy170;+ if (yych <= 0xC1)+ goto yy165;+ if (yych <= 0xDF)+ goto yy178;+ goto yy179;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy181;+ goto yy180;+ } else {+ if (yych <= 0xF0)+ goto yy182;+ if (yych <= 0xF3)+ goto yy183;+ if (yych <= 0xF4)+ goto yy184;+ goto yy165;+ }+ }+ yy176:+ yych = *++p;+ if (yybm[0 + yych] & 64) {+ goto yy176;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy165;+ if (yych <= '"')+ goto yy185;+ goto yy165;+ } else {+ if (yych <= 0xDF)+ goto yy186;+ if (yych <= 0xE0)+ goto yy187;+ goto yy188;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy189;+ if (yych <= 0xEF)+ goto yy188;+ goto yy190;+ } else {+ if (yych <= 0xF3)+ goto yy191;+ if (yych <= 0xF4)+ goto yy192;+ goto yy165;+ }+ }+ yy177:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy177;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy165;+ if (yych <= '\'')+ goto yy185;+ goto yy165;+ } else {+ if (yych <= 0xDF)+ goto yy193;+ if (yych <= 0xE0)+ goto yy194;+ goto yy195;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy196;+ if (yych <= 0xEF)+ goto yy195;+ goto yy197;+ } else {+ if (yych <= 0xF3)+ goto yy198;+ if (yych <= 0xF4)+ goto yy199;+ goto yy165;+ }+ }+ yy178:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy175;+ goto yy165;+ yy179:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy178;+ goto yy165;+ yy180:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy178;+ goto yy165;+ yy181:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0x9F)+ goto yy178;+ goto yy165;+ yy182:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy180;+ goto yy165;+ yy183:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy180;+ goto yy165;+ yy184:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0x8F)+ goto yy180;+ goto yy165;+ yy185:+ yych = *++p;+ if (yybm[0 + yych] & 8) {+ goto yy166;+ }+ if (yych == '/')+ goto yy169;+ if (yych == '>')+ goto yy170;+ goto yy165;+ yy186:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy176;+ goto yy165;+ yy187:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy186;+ goto yy165;+ yy188:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy186;+ goto yy165;+ yy189:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0x9F)+ goto yy186;+ goto yy165;+ yy190:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy188;+ goto yy165;+ yy191:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy188;+ goto yy165;+ yy192:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0x8F)+ goto yy188;+ goto yy165;+ yy193:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy177;+ goto yy165;+ yy194:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy193;+ goto yy165;+ yy195:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy193;+ goto yy165;+ yy196:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0x9F)+ goto yy193;+ goto yy165;+ yy197:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy195;+ goto yy165;+ yy198:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0xBF)+ goto yy195;+ goto yy165;+ yy199:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy165;+ if (yych <= 0x8F)+ goto yy195;+ goto yy165;+ }+}++bufsize_t _scan_html_comment(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 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 == '-')+ goto yy202;+ ++p;+ yy201 : { return 0; }+ yy202:+ yych = *(marker = ++p);+ if (yych != '-')+ goto yy201;+ yy203:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy203;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy204;+ if (yych <= '-')+ goto yy205;+ } else {+ if (yych <= 0xDF)+ goto yy206;+ if (yych <= 0xE0)+ goto yy207;+ goto yy208;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy209;+ if (yych <= 0xEF)+ goto yy208;+ goto yy210;+ } else {+ if (yych <= 0xF3)+ goto yy211;+ if (yych <= 0xF4)+ goto yy212;+ }+ }+ yy204:+ p = marker;+ goto yy201;+ yy205:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy203;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy204;+ if (yych <= '-')+ goto yy213;+ goto yy204;+ } else {+ if (yych <= 0xDF)+ goto yy206;+ if (yych <= 0xE0)+ goto yy207;+ goto yy208;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy209;+ if (yych <= 0xEF)+ goto yy208;+ goto yy210;+ } else {+ if (yych <= 0xF3)+ goto yy211;+ if (yych <= 0xF4)+ goto yy212;+ goto yy204;+ }+ }+ yy206:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy204;+ if (yych <= 0xBF)+ goto yy203;+ goto yy204;+ yy207:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy204;+ if (yych <= 0xBF)+ goto yy206;+ goto yy204;+ yy208:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy204;+ if (yych <= 0xBF)+ goto yy206;+ goto yy204;+ yy209:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy204;+ if (yych <= 0x9F)+ goto yy206;+ goto yy204;+ yy210:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy204;+ if (yych <= 0xBF)+ goto yy208;+ goto yy204;+ yy211:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy204;+ if (yych <= 0xBF)+ goto yy208;+ goto yy204;+ yy212:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy204;+ if (yych <= 0x8F)+ goto yy208;+ goto yy204;+ yy213:+ yych = *++p;+ if (yych <= 0xE0) {+ if (yych <= '>') {+ if (yych <= 0x00)+ goto yy204;+ if (yych <= '=')+ goto yy203;+ } else {+ if (yych <= 0x7F)+ goto yy203;+ if (yych <= 0xC1)+ goto yy204;+ if (yych <= 0xDF)+ goto yy206;+ goto yy207;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy209;+ goto yy208;+ } else {+ if (yych <= 0xF0)+ goto yy210;+ if (yych <= 0xF3)+ goto yy211;+ if (yych <= 0xF4)+ goto yy212;+ goto yy204;+ }+ }+ ++p;+ { return (bufsize_t)(p - start); }+ }+}++bufsize_t _scan_html_pi(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, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 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 (yybm[0 + yych] & 128) {+ goto yy217;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy215;+ if (yych <= '?')+ goto yy220;+ } else {+ if (yych <= 0xDF)+ goto yy221;+ if (yych <= 0xE0)+ goto yy222;+ goto yy223;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy224;+ if (yych <= 0xEF)+ goto yy223;+ goto yy225;+ } else {+ if (yych <= 0xF3)+ goto yy226;+ if (yych <= 0xF4)+ goto yy227;+ }+ }+ yy215:+ ++p;+ yy216 : { return 0; }+ yy217:+ yyaccept = 0;+ yych = *(marker = ++p);+ yy218:+ if (yybm[0 + yych] & 128) {+ goto yy217;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy219;+ if (yych <= '?')+ goto yy228;+ } else {+ if (yych <= 0xDF)+ goto yy230;+ if (yych <= 0xE0)+ goto yy231;+ goto yy232;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy233;+ if (yych <= 0xEF)+ goto yy232;+ goto yy234;+ } else {+ if (yych <= 0xF3)+ goto yy235;+ if (yych <= 0xF4)+ goto yy236;+ }+ }+ yy219 : { return (bufsize_t)(p - start); }+ yy220:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yych <= '?') {+ if (yych <= 0x00)+ goto yy216;+ if (yych <= '=')+ goto yy218;+ if (yych <= '>')+ goto yy216;+ goto yy217;+ } else {+ if (yych <= 0x7F)+ goto yy218;+ if (yych <= 0xC1)+ goto yy216;+ if (yych <= 0xF4)+ goto yy218;+ goto yy216;+ }+ yy221:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy216;+ if (yych <= 0xBF)+ goto yy217;+ goto yy216;+ yy222:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yych <= 0x9F)+ goto yy216;+ if (yych <= 0xBF)+ goto yy230;+ goto yy216;+ yy223:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy216;+ if (yych <= 0xBF)+ goto yy230;+ goto yy216;+ yy224:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy216;+ if (yych <= 0x9F)+ goto yy230;+ goto yy216;+ yy225:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yych <= 0x8F)+ goto yy216;+ if (yych <= 0xBF)+ goto yy232;+ goto yy216;+ yy226:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy216;+ if (yych <= 0xBF)+ goto yy232;+ goto yy216;+ yy227:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy216;+ if (yych <= 0x8F)+ goto yy232;+ goto yy216;+ yy228:+ yych = *++p;+ if (yych <= 0xE0) {+ if (yych <= '>') {+ if (yych <= 0x00)+ goto yy229;+ if (yych <= '=')+ goto yy217;+ } else {+ if (yych <= 0x7F)+ goto yy217;+ if (yych <= 0xC1)+ goto yy229;+ if (yych <= 0xDF)+ goto yy230;+ goto yy231;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy233;+ goto yy232;+ } else {+ if (yych <= 0xF0)+ goto yy234;+ if (yych <= 0xF3)+ goto yy235;+ if (yych <= 0xF4)+ goto yy236;+ }+ }+ yy229:+ p = marker;+ if (yyaccept == 0) {+ goto yy219;+ } else {+ goto yy216;+ }+ yy230:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy229;+ if (yych <= 0xBF)+ goto yy217;+ goto yy229;+ yy231:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy229;+ if (yych <= 0xBF)+ goto yy230;+ goto yy229;+ yy232:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy229;+ if (yych <= 0xBF)+ goto yy230;+ goto yy229;+ yy233:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy229;+ if (yych <= 0x9F)+ goto yy230;+ goto yy229;+ yy234:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy229;+ if (yych <= 0xBF)+ goto yy232;+ goto yy229;+ yy235:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy229;+ if (yych <= 0xBF)+ goto yy232;+ goto yy229;+ yy236:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy229;+ if (yych <= 0x8F)+ goto yy232;+ goto yy229;+ }+}++bufsize_t _scan_html_declaration(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 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 <= '@')+ goto yy238;+ if (yych <= 'Z')+ goto yy239;+ yy238:+ ++p;+ { return 0; }+ yy239:+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 128) {+ goto yy239;+ }+ if (yych <= 0xED) {+ if (yych <= 0xDF) {+ if (yych >= 0xC2)+ goto yy241;+ } else {+ if (yych <= 0xE0)+ goto yy243;+ if (yych <= 0xEC)+ goto yy244;+ goto yy245;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy244;+ goto yy246;+ } else {+ if (yych <= 0xF3)+ goto yy247;+ if (yych <= 0xF4)+ goto yy248;+ }+ }+ yy240 : { return (bufsize_t)(p - start); }+ yy241:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy242;+ if (yych <= 0xBF)+ goto yy239;+ yy242:+ p = marker;+ goto yy240;+ yy243:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy242;+ if (yych <= 0xBF)+ goto yy241;+ goto yy242;+ yy244:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy242;+ if (yych <= 0xBF)+ goto yy241;+ goto yy242;+ yy245:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy242;+ if (yych <= 0x9F)+ goto yy241;+ goto yy242;+ yy246:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy242;+ if (yych <= 0xBF)+ goto yy244;+ goto yy242;+ yy247:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy242;+ if (yych <= 0xBF)+ goto yy244;+ goto yy242;+ yy248:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy242;+ if (yych <= 0x8F)+ goto yy244;+ goto yy242;+ }+}++bufsize_t _scan_html_cdata(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, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 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 == 'C')+ goto yy251;+ if (yych == 'c')+ goto yy251;+ ++p;+ yy250 : { return 0; }+ yy251:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych == 'D')+ goto yy252;+ if (yych != 'd')+ goto yy250;+ yy252:+ yych = *++p;+ if (yych == 'A')+ goto yy254;+ if (yych == 'a')+ goto yy254;+ yy253:+ p = marker;+ if (yyaccept == 0) {+ goto yy250;+ } else {+ goto yy258;+ }+ yy254:+ yych = *++p;+ if (yych == 'T')+ goto yy255;+ if (yych != 't')+ goto yy253;+ yy255:+ yych = *++p;+ if (yych == 'A')+ goto yy256;+ if (yych != 'a')+ goto yy253;+ yy256:+ yych = *++p;+ if (yych != '[')+ goto yy253;+ yy257:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 128) {+ goto yy257;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy258;+ if (yych <= ']')+ goto yy259;+ } else {+ if (yych <= 0xDF)+ goto yy260;+ if (yych <= 0xE0)+ goto yy261;+ goto yy262;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy263;+ if (yych <= 0xEF)+ goto yy262;+ goto yy264;+ } else {+ if (yych <= 0xF3)+ goto yy265;+ if (yych <= 0xF4)+ goto yy266;+ }+ }+ yy258 : { return (bufsize_t)(p - start); }+ yy259:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy257;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy253;+ if (yych <= ']')+ goto yy267;+ goto yy253;+ } else {+ if (yych <= 0xDF)+ goto yy260;+ if (yych <= 0xE0)+ goto yy261;+ goto yy262;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy263;+ if (yych <= 0xEF)+ goto yy262;+ goto yy264;+ } else {+ if (yych <= 0xF3)+ goto yy265;+ if (yych <= 0xF4)+ goto yy266;+ goto yy253;+ }+ }+ yy260:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy253;+ if (yych <= 0xBF)+ goto yy257;+ goto yy253;+ yy261:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy253;+ if (yych <= 0xBF)+ goto yy260;+ goto yy253;+ yy262:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy253;+ if (yych <= 0xBF)+ goto yy260;+ goto yy253;+ yy263:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy253;+ if (yych <= 0x9F)+ goto yy260;+ goto yy253;+ yy264:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy253;+ if (yych <= 0xBF)+ goto yy262;+ goto yy253;+ yy265:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy253;+ if (yych <= 0xBF)+ goto yy262;+ goto yy253;+ yy266:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy253;+ if (yych <= 0x8F)+ goto yy262;+ goto yy253;+ yy267:+ yych = *++p;+ if (yych <= 0xE0) {+ if (yych <= '>') {+ if (yych <= 0x00)+ goto yy253;+ if (yych <= '=')+ goto yy257;+ goto yy253;+ } else {+ if (yych <= 0x7F)+ goto yy257;+ if (yych <= 0xC1)+ goto yy253;+ if (yych <= 0xDF)+ goto yy260;+ goto yy261;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy263;+ goto yy262;+ } else {+ if (yych <= 0xF0)+ goto yy264;+ if (yych <= 0xF3)+ goto yy265;+ if (yych <= 0xF4)+ goto yy266;+ goto yy253;+ }+ }+ }+}++// Try to match an HTML block tag start line, returning+// an integer code for the type of block (1-6, matching the spec).+// #7 is handled by a separate function, below.+bufsize_t _scan_html_block_start(const unsigned char *p) {+ const unsigned char *marker = NULL;++ {+ unsigned char yych;+ yych = *p;+ if (yych == '<')+ goto yy270;+ ++p;+ yy269 : { return 0; }+ yy270:+ yych = *(marker = ++p);+ switch (yych) {+ case '!':+ goto yy271;+ case '/':+ goto yy273;+ case '?':+ goto yy274;+ case 'A':+ case 'a':+ goto yy275;+ case 'B':+ case 'b':+ goto yy276;+ case 'C':+ case 'c':+ goto yy277;+ case 'D':+ case 'd':+ goto yy278;+ case 'F':+ case 'f':+ goto yy279;+ case 'H':+ case 'h':+ goto yy280;+ case 'I':+ case 'i':+ goto yy281;+ case 'L':+ case 'l':+ goto yy282;+ case 'M':+ case 'm':+ goto yy283;+ case 'N':+ case 'n':+ goto yy284;+ case 'O':+ case 'o':+ goto yy285;+ case 'P':+ case 'p':+ goto yy286;+ case 'S':+ case 's':+ goto yy287;+ case 'T':+ case 't':+ goto yy288;+ case 'U':+ case 'u':+ goto yy289;+ default:+ goto yy269;+ }+ yy271:+ yych = *++p;+ if (yych <= 'Z') {+ if (yych == '-')+ goto yy290;+ if (yych >= 'A')+ goto yy291;+ } else {+ if (yych <= '[')+ goto yy292;+ if (yych <= '`')+ goto yy272;+ if (yych <= 'z')+ goto yy291;+ }+ yy272:+ p = marker;+ goto yy269;+ yy273:+ yych = *++p;+ switch (yych) {+ case 'A':+ case 'a':+ goto yy275;+ case 'B':+ case 'b':+ goto yy276;+ case 'C':+ case 'c':+ goto yy277;+ case 'D':+ case 'd':+ goto yy278;+ case 'F':+ case 'f':+ goto yy279;+ case 'H':+ case 'h':+ goto yy280;+ case 'I':+ case 'i':+ goto yy281;+ case 'L':+ case 'l':+ goto yy282;+ case 'M':+ case 'm':+ goto yy283;+ case 'N':+ case 'n':+ goto yy284;+ case 'O':+ case 'o':+ goto yy285;+ case 'P':+ case 'p':+ goto yy293;+ case 'S':+ case 's':+ goto yy294;+ case 'T':+ case 't':+ goto yy295;+ case 'U':+ case 'u':+ goto yy289;+ default:+ goto yy272;+ }+ yy274:+ ++p;+ { return 3; }+ yy275:+ yych = *++p;+ if (yych <= 'S') {+ if (yych <= 'D') {+ if (yych <= 'C')+ goto yy272;+ goto yy296;+ } else {+ if (yych <= 'Q')+ goto yy272;+ if (yych <= 'R')+ goto yy297;+ goto yy298;+ }+ } else {+ if (yych <= 'q') {+ if (yych == 'd')+ goto yy296;+ goto yy272;+ } else {+ if (yych <= 'r')+ goto yy297;+ if (yych <= 's')+ goto yy298;+ goto yy272;+ }+ }+ yy276:+ yych = *++p;+ if (yych <= 'O') {+ if (yych <= 'K') {+ if (yych == 'A')+ goto yy299;+ goto yy272;+ } else {+ if (yych <= 'L')+ goto yy300;+ if (yych <= 'N')+ goto yy272;+ goto yy301;+ }+ } else {+ if (yych <= 'k') {+ if (yych == 'a')+ goto yy299;+ goto yy272;+ } else {+ if (yych <= 'l')+ goto yy300;+ if (yych == 'o')+ goto yy301;+ goto yy272;+ }+ }+ yy277:+ yych = *++p;+ if (yych <= 'O') {+ if (yych <= 'D') {+ if (yych == 'A')+ goto yy302;+ goto yy272;+ } else {+ if (yych <= 'E')+ goto yy303;+ if (yych <= 'N')+ goto yy272;+ goto yy304;+ }+ } else {+ if (yych <= 'd') {+ if (yych == 'a')+ goto yy302;+ goto yy272;+ } else {+ if (yych <= 'e')+ goto yy303;+ if (yych == 'o')+ goto yy304;+ goto yy272;+ }+ }+ yy278:+ yych = *++p;+ switch (yych) {+ case 'D':+ case 'L':+ case 'T':+ case 'd':+ case 'l':+ case 't':+ goto yy305;+ case 'E':+ case 'e':+ goto yy306;+ case 'I':+ case 'i':+ goto yy307;+ default:+ goto yy272;+ }+ yy279:+ yych = *++p;+ if (yych <= 'R') {+ if (yych <= 'N') {+ if (yych == 'I')+ goto yy308;+ goto yy272;+ } else {+ if (yych <= 'O')+ goto yy309;+ if (yych <= 'Q')+ goto yy272;+ goto yy310;+ }+ } else {+ if (yych <= 'n') {+ if (yych == 'i')+ goto yy308;+ goto yy272;+ } else {+ if (yych <= 'o')+ goto yy309;+ if (yych == 'r')+ goto yy310;+ goto yy272;+ }+ }+ yy280:+ yych = *++p;+ if (yych <= 'S') {+ if (yych <= 'D') {+ if (yych <= '0')+ goto yy272;+ if (yych <= '6')+ goto yy305;+ goto yy272;+ } else {+ if (yych <= 'E')+ goto yy311;+ if (yych == 'R')+ goto yy305;+ goto yy272;+ }+ } else {+ if (yych <= 'q') {+ if (yych <= 'T')+ goto yy312;+ if (yych == 'e')+ goto yy311;+ goto yy272;+ } else {+ if (yych <= 'r')+ goto yy305;+ if (yych == 't')+ goto yy312;+ goto yy272;+ }+ }+ yy281:+ yych = *++p;+ if (yych == 'F')+ goto yy313;+ if (yych == 'f')+ goto yy313;+ goto yy272;+ yy282:+ yych = *++p;+ if (yych <= 'I') {+ if (yych == 'E')+ goto yy314;+ if (yych <= 'H')+ goto yy272;+ goto yy315;+ } else {+ if (yych <= 'e') {+ if (yych <= 'd')+ goto yy272;+ goto yy314;+ } else {+ if (yych == 'i')+ goto yy315;+ goto yy272;+ }+ }+ yy283:+ yych = *++p;+ if (yych <= 'E') {+ if (yych == 'A')+ goto yy316;+ if (yych <= 'D')+ goto yy272;+ goto yy317;+ } else {+ if (yych <= 'a') {+ if (yych <= '`')+ goto yy272;+ goto yy316;+ } else {+ if (yych == 'e')+ goto yy317;+ goto yy272;+ }+ }+ yy284:+ yych = *++p;+ if (yych <= 'O') {+ if (yych == 'A')+ goto yy318;+ if (yych <= 'N')+ goto yy272;+ goto yy319;+ } else {+ if (yych <= 'a') {+ if (yych <= '`')+ goto yy272;+ goto yy318;+ } else {+ if (yych == 'o')+ goto yy319;+ goto yy272;+ }+ }+ yy285:+ yych = *++p;+ if (yych <= 'P') {+ if (yych == 'L')+ goto yy305;+ if (yych <= 'O')+ goto yy272;+ goto yy320;+ } else {+ if (yych <= 'l') {+ if (yych <= 'k')+ goto yy272;+ goto yy305;+ } else {+ if (yych == 'p')+ goto yy320;+ goto yy272;+ }+ }+ yy286:+ yych = *++p;+ if (yych <= '>') {+ if (yych <= ' ') {+ if (yych <= 0x08)+ goto yy272;+ if (yych <= '\r')+ goto yy321;+ if (yych <= 0x1F)+ goto yy272;+ goto yy321;+ } else {+ if (yych == '/')+ goto yy322;+ if (yych <= '=')+ goto yy272;+ goto yy321;+ }+ } else {+ if (yych <= 'R') {+ if (yych == 'A')+ goto yy323;+ if (yych <= 'Q')+ goto yy272;+ goto yy324;+ } else {+ if (yych <= 'a') {+ if (yych <= '`')+ goto yy272;+ goto yy323;+ } else {+ if (yych == 'r')+ goto yy324;+ goto yy272;+ }+ }+ }+ yy287:+ yych = *++p;+ switch (yych) {+ case 'C':+ case 'c':+ goto yy325;+ case 'E':+ case 'e':+ goto yy326;+ case 'O':+ case 'o':+ goto yy327;+ case 'T':+ case 't':+ goto yy328;+ case 'U':+ case 'u':+ goto yy329;+ default:+ goto yy272;+ }+ yy288:+ yych = *++p;+ switch (yych) {+ case 'A':+ case 'a':+ goto yy330;+ case 'B':+ case 'b':+ goto yy331;+ case 'D':+ case 'd':+ goto yy305;+ case 'E':+ case 'e':+ goto yy332;+ case 'F':+ case 'f':+ goto yy333;+ case 'H':+ case 'h':+ goto yy334;+ case 'I':+ case 'i':+ goto yy335;+ case 'R':+ case 'r':+ goto yy336;+ default:+ goto yy272;+ }+ yy289:+ yych = *++p;+ if (yych == 'L')+ goto yy305;+ if (yych == 'l')+ goto yy305;+ goto yy272;+ yy290:+ yych = *++p;+ if (yych == '-')+ goto yy337;+ goto yy272;+ yy291:+ ++p;+ { return 4; }+ yy292:+ yych = *++p;+ if (yych == 'C')+ goto yy338;+ if (yych == 'c')+ goto yy338;+ goto yy272;+ yy293:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy272;+ if (yych <= '\r')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= ' ')+ goto yy321;+ if (yych <= '.')+ goto yy272;+ goto yy322;+ }+ } else {+ if (yych <= '@') {+ if (yych == '>')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= 'A')+ goto yy323;+ if (yych == 'a')+ goto yy323;+ goto yy272;+ }+ }+ yy294:+ yych = *++p;+ if (yych <= 'U') {+ if (yych <= 'N') {+ if (yych == 'E')+ goto yy326;+ goto yy272;+ } else {+ if (yych <= 'O')+ goto yy327;+ if (yych <= 'T')+ goto yy272;+ goto yy329;+ }+ } else {+ if (yych <= 'n') {+ if (yych == 'e')+ goto yy326;+ goto yy272;+ } else {+ if (yych <= 'o')+ goto yy327;+ if (yych == 'u')+ goto yy329;+ goto yy272;+ }+ }+ yy295:+ yych = *++p;+ switch (yych) {+ case 'A':+ case 'a':+ goto yy330;+ case 'B':+ case 'b':+ goto yy331;+ case 'D':+ case 'd':+ goto yy305;+ case 'F':+ case 'f':+ goto yy333;+ case 'H':+ case 'h':+ goto yy334;+ case 'I':+ case 'i':+ goto yy335;+ case 'R':+ case 'r':+ goto yy336;+ default:+ goto yy272;+ }+ yy296:+ yych = *++p;+ if (yych == 'D')+ goto yy339;+ if (yych == 'd')+ goto yy339;+ goto yy272;+ yy297:+ yych = *++p;+ if (yych == 'T')+ goto yy340;+ if (yych == 't')+ goto yy340;+ goto yy272;+ yy298:+ yych = *++p;+ if (yych == 'I')+ goto yy341;+ if (yych == 'i')+ goto yy341;+ goto yy272;+ yy299:+ yych = *++p;+ if (yych == 'S')+ goto yy342;+ if (yych == 's')+ goto yy342;+ goto yy272;+ yy300:+ yych = *++p;+ if (yych == 'O')+ goto yy343;+ if (yych == 'o')+ goto yy343;+ goto yy272;+ yy301:+ yych = *++p;+ if (yych == 'D')+ goto yy344;+ if (yych == 'd')+ goto yy344;+ goto yy272;+ yy302:+ yych = *++p;+ if (yych == 'P')+ goto yy345;+ if (yych == 'p')+ goto yy345;+ goto yy272;+ yy303:+ yych = *++p;+ if (yych == 'N')+ goto yy346;+ if (yych == 'n')+ goto yy346;+ goto yy272;+ yy304:+ yych = *++p;+ if (yych == 'L')+ goto yy347;+ if (yych == 'l')+ goto yy347;+ goto yy272;+ yy305:+ yych = *++p;+ if (yych <= ' ') {+ if (yych <= 0x08)+ goto yy272;+ if (yych <= '\r')+ goto yy321;+ if (yych <= 0x1F)+ goto yy272;+ goto yy321;+ } else {+ if (yych <= '/') {+ if (yych <= '.')+ goto yy272;+ goto yy322;+ } else {+ if (yych == '>')+ goto yy321;+ goto yy272;+ }+ }+ yy306:+ yych = *++p;+ if (yych == 'T')+ goto yy348;+ if (yych == 't')+ goto yy348;+ goto yy272;+ yy307:+ yych = *++p;+ if (yych <= 'V') {+ if (yych <= 'Q') {+ if (yych == 'A')+ goto yy349;+ goto yy272;+ } else {+ if (yych <= 'R')+ goto yy305;+ if (yych <= 'U')+ goto yy272;+ goto yy305;+ }+ } else {+ if (yych <= 'q') {+ if (yych == 'a')+ goto yy349;+ goto yy272;+ } else {+ if (yych <= 'r')+ goto yy305;+ if (yych == 'v')+ goto yy305;+ goto yy272;+ }+ }+ yy308:+ yych = *++p;+ if (yych <= 'G') {+ if (yych == 'E')+ goto yy350;+ if (yych <= 'F')+ goto yy272;+ goto yy351;+ } else {+ if (yych <= 'e') {+ if (yych <= 'd')+ goto yy272;+ goto yy350;+ } else {+ if (yych == 'g')+ goto yy351;+ goto yy272;+ }+ }+ yy309:+ yych = *++p;+ if (yych <= 'R') {+ if (yych == 'O')+ goto yy346;+ if (yych <= 'Q')+ goto yy272;+ goto yy352;+ } else {+ if (yych <= 'o') {+ if (yych <= 'n')+ goto yy272;+ goto yy346;+ } else {+ if (yych == 'r')+ goto yy352;+ goto yy272;+ }+ }+ yy310:+ yych = *++p;+ if (yych == 'A')+ goto yy353;+ if (yych == 'a')+ goto yy353;+ goto yy272;+ yy311:+ yych = *++p;+ if (yych == 'A')+ goto yy354;+ if (yych == 'a')+ goto yy354;+ goto yy272;+ yy312:+ yych = *++p;+ if (yych == 'M')+ goto yy289;+ if (yych == 'm')+ goto yy289;+ goto yy272;+ yy313:+ yych = *++p;+ if (yych == 'R')+ goto yy355;+ if (yych == 'r')+ goto yy355;+ goto yy272;+ yy314:+ yych = *++p;+ if (yych == 'G')+ goto yy356;+ if (yych == 'g')+ goto yy356;+ goto yy272;+ yy315:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy272;+ if (yych <= '\r')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= ' ')+ goto yy321;+ if (yych <= '.')+ goto yy272;+ goto yy322;+ }+ } else {+ if (yych <= 'M') {+ if (yych == '>')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= 'N')+ goto yy357;+ if (yych == 'n')+ goto yy357;+ goto yy272;+ }+ }+ yy316:+ yych = *++p;+ if (yych == 'I')+ goto yy358;+ if (yych == 'i')+ goto yy358;+ goto yy272;+ yy317:+ yych = *++p;+ if (yych == 'N')+ goto yy359;+ if (yych == 'n')+ goto yy359;+ goto yy272;+ yy318:+ yych = *++p;+ if (yych == 'V')+ goto yy305;+ if (yych == 'v')+ goto yy305;+ goto yy272;+ yy319:+ yych = *++p;+ if (yych == 'F')+ goto yy360;+ if (yych == 'f')+ goto yy360;+ goto yy272;+ yy320:+ yych = *++p;+ if (yych == 'T')+ goto yy361;+ if (yych == 't')+ goto yy361;+ goto yy272;+ yy321:+ ++p;+ { return 6; }+ yy322:+ yych = *++p;+ if (yych == '>')+ goto yy321;+ goto yy272;+ yy323:+ yych = *++p;+ if (yych == 'R')+ goto yy362;+ if (yych == 'r')+ goto yy362;+ goto yy272;+ yy324:+ yych = *++p;+ if (yych == 'E')+ goto yy363;+ if (yych == 'e')+ goto yy363;+ goto yy272;+ yy325:+ yych = *++p;+ if (yych == 'R')+ goto yy364;+ if (yych == 'r')+ goto yy364;+ goto yy272;+ yy326:+ yych = *++p;+ if (yych == 'C')+ goto yy345;+ if (yych == 'c')+ goto yy345;+ goto yy272;+ yy327:+ yych = *++p;+ if (yych == 'U')+ goto yy365;+ if (yych == 'u')+ goto yy365;+ goto yy272;+ yy328:+ yych = *++p;+ if (yych == 'Y')+ goto yy366;+ if (yych == 'y')+ goto yy366;+ goto yy272;+ yy329:+ yych = *++p;+ if (yych == 'M')+ goto yy367;+ if (yych == 'm')+ goto yy367;+ goto yy272;+ yy330:+ yych = *++p;+ if (yych == 'B')+ goto yy368;+ if (yych == 'b')+ goto yy368;+ goto yy272;+ yy331:+ yych = *++p;+ if (yych == 'O')+ goto yy301;+ if (yych == 'o')+ goto yy301;+ goto yy272;+ yy332:+ yych = *++p;+ if (yych == 'X')+ goto yy369;+ if (yych == 'x')+ goto yy369;+ goto yy272;+ yy333:+ yych = *++p;+ if (yych == 'O')+ goto yy370;+ if (yych == 'o')+ goto yy370;+ goto yy272;+ yy334:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy272;+ if (yych <= '\r')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= ' ')+ goto yy321;+ if (yych <= '.')+ goto yy272;+ goto yy322;+ }+ } else {+ if (yych <= 'D') {+ if (yych == '>')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= 'E')+ goto yy371;+ if (yych == 'e')+ goto yy371;+ goto yy272;+ }+ }+ yy335:+ yych = *++p;+ if (yych == 'T')+ goto yy368;+ if (yych == 't')+ goto yy368;+ goto yy272;+ yy336:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy272;+ if (yych <= '\r')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= ' ')+ goto yy321;+ if (yych <= '.')+ goto yy272;+ goto yy322;+ }+ } else {+ if (yych <= '@') {+ if (yych == '>')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= 'A')+ goto yy372;+ if (yych == 'a')+ goto yy372;+ goto yy272;+ }+ }+ yy337:+ ++p;+ { return 2; }+ yy338:+ yych = *++p;+ if (yych == 'D')+ goto yy373;+ if (yych == 'd')+ goto yy373;+ goto yy272;+ yy339:+ yych = *++p;+ if (yych == 'R')+ goto yy374;+ if (yych == 'r')+ goto yy374;+ goto yy272;+ yy340:+ yych = *++p;+ if (yych == 'I')+ goto yy375;+ if (yych == 'i')+ goto yy375;+ goto yy272;+ yy341:+ yych = *++p;+ if (yych == 'D')+ goto yy376;+ if (yych == 'd')+ goto yy376;+ goto yy272;+ yy342:+ yych = *++p;+ if (yych == 'E')+ goto yy377;+ if (yych == 'e')+ goto yy377;+ goto yy272;+ yy343:+ yych = *++p;+ if (yych == 'C')+ goto yy378;+ if (yych == 'c')+ goto yy378;+ goto yy272;+ yy344:+ yych = *++p;+ if (yych == 'Y')+ goto yy305;+ if (yych == 'y')+ goto yy305;+ goto yy272;+ yy345:+ yych = *++p;+ if (yych == 'T')+ goto yy379;+ if (yych == 't')+ goto yy379;+ goto yy272;+ yy346:+ yych = *++p;+ if (yych == 'T')+ goto yy380;+ if (yych == 't')+ goto yy380;+ goto yy272;+ yy347:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy272;+ if (yych <= '\r')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= ' ')+ goto yy321;+ if (yych <= '.')+ goto yy272;+ goto yy322;+ }+ } else {+ if (yych <= 'F') {+ if (yych == '>')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= 'G')+ goto yy381;+ if (yych == 'g')+ goto yy381;+ goto yy272;+ }+ }+ yy348:+ yych = *++p;+ if (yych == 'A')+ goto yy382;+ if (yych == 'a')+ goto yy382;+ goto yy272;+ yy349:+ yych = *++p;+ if (yych == 'L')+ goto yy383;+ if (yych == 'l')+ goto yy383;+ goto yy272;+ yy350:+ yych = *++p;+ if (yych == 'L')+ goto yy384;+ if (yych == 'l')+ goto yy384;+ goto yy272;+ yy351:+ yych = *++p;+ if (yych <= 'U') {+ if (yych == 'C')+ goto yy385;+ if (yych <= 'T')+ goto yy272;+ goto yy386;+ } else {+ if (yych <= 'c') {+ if (yych <= 'b')+ goto yy272;+ goto yy385;+ } else {+ if (yych == 'u')+ goto yy386;+ goto yy272;+ }+ }+ yy352:+ yych = *++p;+ if (yych == 'M')+ goto yy305;+ if (yych == 'm')+ goto yy305;+ goto yy272;+ yy353:+ yych = *++p;+ if (yych == 'M')+ goto yy387;+ if (yych == 'm')+ goto yy387;+ goto yy272;+ yy354:+ yych = *++p;+ if (yych == 'D')+ goto yy388;+ if (yych == 'd')+ goto yy388;+ goto yy272;+ yy355:+ yych = *++p;+ if (yych == 'A')+ goto yy389;+ if (yych == 'a')+ goto yy389;+ goto yy272;+ yy356:+ yych = *++p;+ if (yych == 'E')+ goto yy390;+ if (yych == 'e')+ goto yy390;+ goto yy272;+ yy357:+ yych = *++p;+ if (yych == 'K')+ goto yy305;+ if (yych == 'k')+ goto yy305;+ goto yy272;+ yy358:+ yych = *++p;+ if (yych == 'N')+ goto yy305;+ if (yych == 'n')+ goto yy305;+ goto yy272;+ yy359:+ yych = *++p;+ if (yych == 'U')+ goto yy391;+ if (yych == 'u')+ goto yy391;+ goto yy272;+ yy360:+ yych = *++p;+ if (yych == 'R')+ goto yy392;+ if (yych == 'r')+ goto yy392;+ goto yy272;+ yy361:+ yych = *++p;+ if (yych <= 'I') {+ if (yych == 'G')+ goto yy381;+ if (yych <= 'H')+ goto yy272;+ goto yy393;+ } else {+ if (yych <= 'g') {+ if (yych <= 'f')+ goto yy272;+ goto yy381;+ } else {+ if (yych == 'i')+ goto yy393;+ goto yy272;+ }+ }+ yy362:+ yych = *++p;+ if (yych == 'A')+ goto yy352;+ if (yych == 'a')+ goto yy352;+ goto yy272;+ yy363:+ yych = *++p;+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy272;+ if (yych <= '\r')+ goto yy394;+ goto yy272;+ } else {+ if (yych <= ' ')+ goto yy394;+ if (yych == '>')+ goto yy394;+ goto yy272;+ }+ yy364:+ yych = *++p;+ if (yych == 'I')+ goto yy395;+ if (yych == 'i')+ goto yy395;+ goto yy272;+ yy365:+ yych = *++p;+ if (yych == 'R')+ goto yy396;+ if (yych == 'r')+ goto yy396;+ goto yy272;+ yy366:+ yych = *++p;+ if (yych == 'L')+ goto yy324;+ if (yych == 'l')+ goto yy324;+ goto yy272;+ yy367:+ yych = *++p;+ if (yych == 'M')+ goto yy397;+ if (yych == 'm')+ goto yy397;+ goto yy272;+ yy368:+ yych = *++p;+ if (yych == 'L')+ goto yy376;+ if (yych == 'l')+ goto yy376;+ goto yy272;+ yy369:+ yych = *++p;+ if (yych == 'T')+ goto yy398;+ if (yych == 't')+ goto yy398;+ goto yy272;+ yy370:+ yych = *++p;+ if (yych == 'O')+ goto yy399;+ if (yych == 'o')+ goto yy399;+ goto yy272;+ yy371:+ yych = *++p;+ if (yych == 'A')+ goto yy400;+ if (yych == 'a')+ goto yy400;+ goto yy272;+ yy372:+ yych = *++p;+ if (yych == 'C')+ goto yy357;+ if (yych == 'c')+ goto yy357;+ goto yy272;+ yy373:+ yych = *++p;+ if (yych == 'A')+ goto yy401;+ if (yych == 'a')+ goto yy401;+ goto yy272;+ yy374:+ yych = *++p;+ if (yych == 'E')+ goto yy402;+ if (yych == 'e')+ goto yy402;+ goto yy272;+ yy375:+ yych = *++p;+ if (yych == 'C')+ goto yy368;+ if (yych == 'c')+ goto yy368;+ goto yy272;+ yy376:+ yych = *++p;+ if (yych == 'E')+ goto yy305;+ if (yych == 'e')+ goto yy305;+ goto yy272;+ yy377:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy272;+ if (yych <= '\r')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= ' ')+ goto yy321;+ if (yych <= '.')+ goto yy272;+ goto yy322;+ }+ } else {+ if (yych <= 'E') {+ if (yych == '>')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= 'F')+ goto yy403;+ if (yych == 'f')+ goto yy403;+ goto yy272;+ }+ }+ yy378:+ yych = *++p;+ if (yych == 'K')+ goto yy404;+ if (yych == 'k')+ goto yy404;+ goto yy272;+ yy379:+ yych = *++p;+ if (yych == 'I')+ goto yy393;+ if (yych == 'i')+ goto yy393;+ goto yy272;+ yy380:+ yych = *++p;+ if (yych == 'E')+ goto yy405;+ if (yych == 'e')+ goto yy405;+ goto yy272;+ yy381:+ yych = *++p;+ if (yych == 'R')+ goto yy406;+ if (yych == 'r')+ goto yy406;+ goto yy272;+ yy382:+ yych = *++p;+ if (yych == 'I')+ goto yy407;+ if (yych == 'i')+ goto yy407;+ goto yy272;+ yy383:+ yych = *++p;+ if (yych == 'O')+ goto yy408;+ if (yych == 'o')+ goto yy408;+ goto yy272;+ yy384:+ yych = *++p;+ if (yych == 'D')+ goto yy409;+ if (yych == 'd')+ goto yy409;+ goto yy272;+ yy385:+ yych = *++p;+ if (yych == 'A')+ goto yy302;+ if (yych == 'a')+ goto yy302;+ goto yy272;+ yy386:+ yych = *++p;+ if (yych == 'R')+ goto yy376;+ if (yych == 'r')+ goto yy376;+ goto yy272;+ yy387:+ yych = *++p;+ if (yych == 'E')+ goto yy410;+ if (yych == 'e')+ goto yy410;+ goto yy272;+ yy388:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy272;+ if (yych <= '\r')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= ' ')+ goto yy321;+ if (yych <= '.')+ goto yy272;+ goto yy322;+ }+ } else {+ if (yych <= 'D') {+ if (yych == '>')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= 'E')+ goto yy405;+ if (yych == 'e')+ goto yy405;+ goto yy272;+ }+ }+ yy389:+ yych = *++p;+ if (yych == 'M')+ goto yy376;+ if (yych == 'm')+ goto yy376;+ goto yy272;+ yy390:+ yych = *++p;+ if (yych == 'N')+ goto yy400;+ if (yych == 'n')+ goto yy400;+ goto yy272;+ yy391:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy272;+ if (yych <= '\r')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= ' ')+ goto yy321;+ if (yych <= '.')+ goto yy272;+ goto yy322;+ }+ } else {+ if (yych <= 'H') {+ if (yych == '>')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= 'I')+ goto yy411;+ if (yych == 'i')+ goto yy411;+ goto yy272;+ }+ }+ yy392:+ yych = *++p;+ if (yych == 'A')+ goto yy412;+ if (yych == 'a')+ goto yy412;+ goto yy272;+ yy393:+ yych = *++p;+ if (yych == 'O')+ goto yy358;+ if (yych == 'o')+ goto yy358;+ goto yy272;+ yy394:+ ++p;+ { return 1; }+ yy395:+ yych = *++p;+ if (yych == 'P')+ goto yy413;+ if (yych == 'p')+ goto yy413;+ goto yy272;+ yy396:+ yych = *++p;+ if (yych == 'C')+ goto yy376;+ if (yych == 'c')+ goto yy376;+ goto yy272;+ yy397:+ yych = *++p;+ if (yych == 'A')+ goto yy414;+ if (yych == 'a')+ goto yy414;+ goto yy272;+ yy398:+ yych = *++p;+ if (yych == 'A')+ goto yy415;+ if (yych == 'a')+ goto yy415;+ goto yy272;+ yy399:+ yych = *++p;+ if (yych == 'T')+ goto yy305;+ if (yych == 't')+ goto yy305;+ goto yy272;+ yy400:+ yych = *++p;+ if (yych == 'D')+ goto yy305;+ if (yych == 'd')+ goto yy305;+ goto yy272;+ yy401:+ yych = *++p;+ if (yych == 'T')+ goto yy416;+ if (yych == 't')+ goto yy416;+ goto yy272;+ yy402:+ yych = *++p;+ if (yych == 'S')+ goto yy417;+ if (yych == 's')+ goto yy417;+ goto yy272;+ yy403:+ yych = *++p;+ if (yych == 'O')+ goto yy418;+ if (yych == 'o')+ goto yy418;+ goto yy272;+ yy404:+ yych = *++p;+ if (yych == 'Q')+ goto yy419;+ if (yych == 'q')+ goto yy419;+ goto yy272;+ yy405:+ yych = *++p;+ if (yych == 'R')+ goto yy305;+ if (yych == 'r')+ goto yy305;+ goto yy272;+ yy406:+ yych = *++p;+ if (yych == 'O')+ goto yy420;+ if (yych == 'o')+ goto yy420;+ goto yy272;+ yy407:+ yych = *++p;+ if (yych == 'L')+ goto yy417;+ if (yych == 'l')+ goto yy417;+ goto yy272;+ yy408:+ yych = *++p;+ if (yych == 'G')+ goto yy305;+ if (yych == 'g')+ goto yy305;+ goto yy272;+ yy409:+ yych = *++p;+ if (yych == 'S')+ goto yy421;+ if (yych == 's')+ goto yy421;+ goto yy272;+ yy410:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy272;+ if (yych <= '\r')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= ' ')+ goto yy321;+ if (yych <= '.')+ goto yy272;+ goto yy322;+ }+ } else {+ if (yych <= 'R') {+ if (yych == '>')+ goto yy321;+ goto yy272;+ } else {+ if (yych <= 'S')+ goto yy421;+ if (yych == 's')+ goto yy421;+ goto yy272;+ }+ }+ yy411:+ yych = *++p;+ if (yych == 'T')+ goto yy422;+ if (yych == 't')+ goto yy422;+ goto yy272;+ yy412:+ yych = *++p;+ if (yych == 'M')+ goto yy423;+ if (yych == 'm')+ goto yy423;+ goto yy272;+ yy413:+ yych = *++p;+ if (yych == 'T')+ goto yy363;+ if (yych == 't')+ goto yy363;+ goto yy272;+ yy414:+ yych = *++p;+ if (yych == 'R')+ goto yy344;+ if (yych == 'r')+ goto yy344;+ goto yy272;+ yy415:+ yych = *++p;+ if (yych == 'R')+ goto yy424;+ if (yych == 'r')+ goto yy424;+ goto yy272;+ yy416:+ yych = *++p;+ if (yych == 'A')+ goto yy425;+ if (yych == 'a')+ goto yy425;+ goto yy272;+ yy417:+ yych = *++p;+ if (yych == 'S')+ goto yy305;+ if (yych == 's')+ goto yy305;+ goto yy272;+ yy418:+ yych = *++p;+ if (yych == 'N')+ goto yy399;+ if (yych == 'n')+ goto yy399;+ goto yy272;+ yy419:+ yych = *++p;+ if (yych == 'U')+ goto yy426;+ if (yych == 'u')+ goto yy426;+ goto yy272;+ yy420:+ yych = *++p;+ if (yych == 'U')+ goto yy427;+ if (yych == 'u')+ goto yy427;+ goto yy272;+ yy421:+ yych = *++p;+ if (yych == 'E')+ goto yy399;+ if (yych == 'e')+ goto yy399;+ goto yy272;+ yy422:+ yych = *++p;+ if (yych == 'E')+ goto yy352;+ if (yych == 'e')+ goto yy352;+ goto yy272;+ yy423:+ yych = *++p;+ if (yych == 'E')+ goto yy417;+ if (yych == 'e')+ goto yy417;+ goto yy272;+ yy424:+ yych = *++p;+ if (yych == 'E')+ goto yy428;+ if (yych == 'e')+ goto yy428;+ goto yy272;+ yy425:+ yych = *++p;+ if (yych == '[')+ goto yy429;+ goto yy272;+ yy426:+ yych = *++p;+ if (yych == 'O')+ goto yy430;+ if (yych == 'o')+ goto yy430;+ goto yy272;+ yy427:+ yych = *++p;+ if (yych == 'P')+ goto yy305;+ if (yych == 'p')+ goto yy305;+ goto yy272;+ yy428:+ yych = *++p;+ if (yych == 'A')+ goto yy363;+ if (yych == 'a')+ goto yy363;+ goto yy272;+ yy429:+ ++p;+ { return 5; }+ yy430:+ yych = *++p;+ if (yych == 'T')+ goto yy376;+ if (yych == 't')+ goto yy376;+ goto yy272;+ }+}++// Try to match an HTML block tag start line of type 7, returning+// 7 if successful, 0 if not.+bufsize_t _scan_html_block_start_7(const unsigned char *p) {+ const unsigned char *marker = NULL;++ {+ unsigned char yych;+ unsigned int yyaccept = 0;+ static const unsigned char yybm[] = {+ 0, 224, 224, 224, 224, 224, 224, 224, 224, 198, 210, 194, 198, 194,+ 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,+ 224, 224, 224, 224, 198, 224, 128, 224, 224, 224, 224, 64, 224, 224,+ 224, 224, 224, 233, 232, 224, 233, 233, 233, 233, 233, 233, 233, 233,+ 233, 233, 232, 224, 192, 192, 192, 224, 224, 233, 233, 233, 233, 233,+ 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,+ 233, 233, 233, 233, 233, 233, 233, 224, 224, 224, 224, 232, 192, 233,+ 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,+ 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 224, 224, 224,+ 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 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 == '<')+ goto yy433;+ ++p;+ yy432 : { return 0; }+ yy433:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= '@') {+ if (yych != '/')+ goto yy432;+ } else {+ if (yych <= 'Z')+ goto yy435;+ if (yych <= '`')+ goto yy432;+ if (yych <= 'z')+ goto yy435;+ goto yy432;+ }+ yych = *++p;+ if (yych <= '@')+ goto yy434;+ if (yych <= 'Z')+ goto yy436;+ if (yych <= '`')+ goto yy434;+ if (yych <= 'z')+ goto yy436;+ yy434:+ p = marker;+ if (yyaccept == 0) {+ goto yy432;+ } else {+ goto yy443;+ }+ yy435:+ yych = *++p;+ if (yybm[0 + yych] & 2) {+ goto yy437;+ }+ if (yych <= '=') {+ if (yych <= '.') {+ if (yych == '-')+ goto yy435;+ goto yy434;+ } else {+ if (yych <= '/')+ goto yy438;+ if (yych <= '9')+ goto yy435;+ goto yy434;+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '>')+ goto yy439;+ if (yych <= '@')+ goto yy434;+ goto yy435;+ } else {+ if (yych <= '`')+ goto yy434;+ if (yych <= 'z')+ goto yy435;+ goto yy434;+ }+ }+ yy436:+ yych = *++p;+ if (yych <= '/') {+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy434;+ if (yych <= '\r')+ goto yy440;+ goto yy434;+ } else {+ if (yych <= ' ')+ goto yy440;+ if (yych == '-')+ goto yy436;+ goto yy434;+ }+ } else {+ if (yych <= '@') {+ if (yych <= '9')+ goto yy436;+ if (yych == '>')+ goto yy439;+ goto yy434;+ } else {+ if (yych <= 'Z')+ goto yy436;+ if (yych <= '`')+ goto yy434;+ if (yych <= 'z')+ goto yy436;+ goto yy434;+ }+ }+ yy437:+ yych = *++p;+ if (yybm[0 + yych] & 2) {+ goto yy437;+ }+ if (yych <= '>') {+ if (yych <= '9') {+ if (yych != '/')+ goto yy434;+ } else {+ if (yych <= ':')+ goto yy441;+ if (yych <= '=')+ goto yy434;+ goto yy439;+ }+ } else {+ if (yych <= '^') {+ if (yych <= '@')+ goto yy434;+ if (yych <= 'Z')+ goto yy441;+ goto yy434;+ } else {+ if (yych == '`')+ goto yy434;+ if (yych <= 'z')+ goto yy441;+ goto yy434;+ }+ }+ yy438:+ yych = *++p;+ if (yych != '>')+ goto yy434;+ yy439:+ yych = *++p;+ if (yybm[0 + yych] & 4) {+ goto yy439;+ }+ if (yych <= 0x08)+ goto yy434;+ if (yych <= '\n')+ goto yy442;+ if (yych <= '\v')+ goto yy434;+ if (yych <= '\r')+ goto yy444;+ goto yy434;+ yy440:+ yych = *++p;+ if (yych <= 0x1F) {+ if (yych <= 0x08)+ goto yy434;+ if (yych <= '\r')+ goto yy440;+ goto yy434;+ } else {+ if (yych <= ' ')+ goto yy440;+ if (yych == '>')+ goto yy439;+ goto yy434;+ }+ yy441:+ yych = *++p;+ if (yybm[0 + yych] & 8) {+ goto yy441;+ }+ if (yych <= ',') {+ if (yych <= '\r') {+ if (yych <= 0x08)+ goto yy434;+ goto yy445;+ } else {+ if (yych == ' ')+ goto yy445;+ goto yy434;+ }+ } else {+ if (yych <= '<') {+ if (yych <= '/')+ goto yy438;+ goto yy434;+ } else {+ if (yych <= '=')+ goto yy446;+ if (yych <= '>')+ goto yy439;+ goto yy434;+ }+ }+ yy442:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 4) {+ goto yy439;+ }+ if (yych <= 0x08)+ goto yy443;+ if (yych <= '\n')+ goto yy442;+ if (yych <= '\v')+ goto yy443;+ if (yych <= '\r')+ goto yy444;+ yy443 : { return 7; }+ yy444:+ ++p;+ goto yy443;+ yy445:+ yych = *++p;+ if (yych <= '<') {+ if (yych <= ' ') {+ if (yych <= 0x08)+ goto yy434;+ if (yych <= '\r')+ goto yy445;+ if (yych <= 0x1F)+ goto yy434;+ goto yy445;+ } else {+ if (yych <= '/') {+ if (yych <= '.')+ goto yy434;+ goto yy438;+ } else {+ if (yych == ':')+ goto yy441;+ goto yy434;+ }+ }+ } else {+ if (yych <= 'Z') {+ if (yych <= '=')+ goto yy446;+ if (yych <= '>')+ goto yy439;+ if (yych <= '@')+ goto yy434;+ goto yy441;+ } else {+ if (yych <= '_') {+ if (yych <= '^')+ goto yy434;+ goto yy441;+ } else {+ if (yych <= '`')+ goto yy434;+ if (yych <= 'z')+ goto yy441;+ goto yy434;+ }+ }+ }+ yy446:+ yych = *++p;+ if (yybm[0 + yych] & 32) {+ goto yy447;+ }+ if (yych <= 0xE0) {+ if (yych <= '"') {+ if (yych <= 0x00)+ goto yy434;+ if (yych <= ' ')+ goto yy446;+ goto yy448;+ } else {+ if (yych <= '\'')+ goto yy449;+ if (yych <= 0xC1)+ goto yy434;+ if (yych <= 0xDF)+ goto yy450;+ goto yy451;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy453;+ goto yy452;+ } else {+ if (yych <= 0xF0)+ goto yy454;+ if (yych <= 0xF3)+ goto yy455;+ if (yych <= 0xF4)+ goto yy456;+ goto yy434;+ }+ }+ yy447:+ yych = *++p;+ if (yybm[0 + yych] & 32) {+ goto yy447;+ }+ if (yych <= 0xE0) {+ if (yych <= '=') {+ if (yych <= 0x00)+ goto yy434;+ if (yych <= ' ')+ goto yy437;+ goto yy434;+ } else {+ if (yych <= '>')+ goto yy439;+ if (yych <= 0xC1)+ goto yy434;+ if (yych <= 0xDF)+ goto yy450;+ goto yy451;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy453;+ goto yy452;+ } else {+ if (yych <= 0xF0)+ goto yy454;+ if (yych <= 0xF3)+ goto yy455;+ if (yych <= 0xF4)+ goto yy456;+ goto yy434;+ }+ }+ yy448:+ yych = *++p;+ if (yybm[0 + yych] & 64) {+ goto yy448;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy434;+ if (yych <= '"')+ goto yy457;+ goto yy434;+ } else {+ if (yych <= 0xDF)+ goto yy458;+ if (yych <= 0xE0)+ goto yy459;+ goto yy460;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy461;+ if (yych <= 0xEF)+ goto yy460;+ goto yy462;+ } else {+ if (yych <= 0xF3)+ goto yy463;+ if (yych <= 0xF4)+ goto yy464;+ goto yy434;+ }+ }+ yy449:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy449;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy434;+ if (yych <= '\'')+ goto yy457;+ goto yy434;+ } else {+ if (yych <= 0xDF)+ goto yy465;+ if (yych <= 0xE0)+ goto yy466;+ goto yy467;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy468;+ if (yych <= 0xEF)+ goto yy467;+ goto yy469;+ } else {+ if (yych <= 0xF3)+ goto yy470;+ if (yych <= 0xF4)+ goto yy471;+ goto yy434;+ }+ }+ yy450:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy447;+ goto yy434;+ yy451:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy450;+ goto yy434;+ yy452:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy450;+ goto yy434;+ yy453:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0x9F)+ goto yy450;+ goto yy434;+ yy454:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy452;+ goto yy434;+ yy455:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy452;+ goto yy434;+ yy456:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0x8F)+ goto yy452;+ goto yy434;+ yy457:+ yych = *++p;+ if (yybm[0 + yych] & 2) {+ goto yy437;+ }+ if (yych == '/')+ goto yy438;+ if (yych == '>')+ goto yy439;+ goto yy434;+ yy458:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy448;+ goto yy434;+ yy459:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy458;+ goto yy434;+ yy460:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy458;+ goto yy434;+ yy461:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0x9F)+ goto yy458;+ goto yy434;+ yy462:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy460;+ goto yy434;+ yy463:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy460;+ goto yy434;+ yy464:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0x8F)+ goto yy460;+ goto yy434;+ yy465:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy449;+ goto yy434;+ yy466:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy465;+ goto yy434;+ yy467:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy465;+ goto yy434;+ yy468:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0x9F)+ goto yy465;+ goto yy434;+ yy469:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy467;+ goto yy434;+ yy470:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0xBF)+ goto yy467;+ goto yy434;+ yy471:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy434;+ if (yych <= 0x8F)+ goto yy467;+ goto yy434;+ }+}++// Try to match an HTML block end line of type 1+bufsize_t _scan_html_block_end_1(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, 0, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 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,+ };+ yych = *p;+ if (yych <= 0xDF) {+ if (yych <= ';') {+ if (yych <= 0x00)+ goto yy473;+ if (yych != '\n')+ goto yy475;+ } else {+ if (yych <= '<')+ goto yy476;+ if (yych <= 0x7F)+ goto yy475;+ if (yych >= 0xC2)+ goto yy477;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy478;+ if (yych == 0xED)+ goto yy480;+ goto yy479;+ } else {+ if (yych <= 0xF0)+ goto yy481;+ if (yych <= 0xF3)+ goto yy482;+ if (yych <= 0xF4)+ goto yy483;+ }+ }+ yy473:+ ++p;+ yy474 : { return 0; }+ yy475:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy474;+ if (yych <= '\t')+ goto yy485;+ goto yy474;+ } else {+ if (yych <= 0x7F)+ goto yy485;+ if (yych <= 0xC1)+ goto yy474;+ if (yych <= 0xF4)+ goto yy485;+ goto yy474;+ }+ yy476:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= '.') {+ if (yych <= 0x00)+ goto yy474;+ if (yych == '\n')+ goto yy474;+ goto yy485;+ } else {+ if (yych <= 0x7F) {+ if (yych <= '/')+ goto yy495;+ goto yy485;+ } else {+ if (yych <= 0xC1)+ goto yy474;+ if (yych <= 0xF4)+ goto yy485;+ goto yy474;+ }+ }+ yy477:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy474;+ if (yych <= 0xBF)+ goto yy484;+ goto yy474;+ yy478:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x9F)+ goto yy474;+ if (yych <= 0xBF)+ goto yy488;+ goto yy474;+ yy479:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy474;+ if (yych <= 0xBF)+ goto yy488;+ goto yy474;+ yy480:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy474;+ if (yych <= 0x9F)+ goto yy488;+ goto yy474;+ yy481:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x8F)+ goto yy474;+ if (yych <= 0xBF)+ goto yy490;+ goto yy474;+ yy482:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy474;+ if (yych <= 0xBF)+ goto yy490;+ goto yy474;+ yy483:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy474;+ if (yych <= 0x8F)+ goto yy490;+ goto yy474;+ yy484:+ yych = *++p;+ yy485:+ if (yybm[0 + yych] & 64) {+ goto yy484;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy486;+ if (yych <= '<')+ goto yy487;+ } else {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ goto yy490;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy491;+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ }+ }+ yy486:+ p = marker;+ if (yyaccept == 0) {+ goto yy474;+ } else {+ goto yy508;+ }+ yy487:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xDF) {+ if (yych <= '.') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= '/')+ goto yy495;+ if (yych <= 0x7F)+ goto yy484;+ if (yych <= 0xC1)+ goto yy486;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy489;+ if (yych == 0xED)+ goto yy491;+ goto yy490;+ } else {+ if (yych <= 0xF0)+ goto yy492;+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ yy488:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy486;+ if (yych <= 0xBF)+ goto yy484;+ goto yy486;+ yy489:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy486;+ if (yych <= 0xBF)+ goto yy488;+ goto yy486;+ yy490:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy486;+ if (yych <= 0xBF)+ goto yy488;+ goto yy486;+ yy491:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy486;+ if (yych <= 0x9F)+ goto yy488;+ goto yy486;+ yy492:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy486;+ if (yych <= 0xBF)+ goto yy490;+ goto yy486;+ yy493:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy486;+ if (yych <= 0xBF)+ goto yy490;+ goto yy486;+ yy494:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy486;+ if (yych <= 0x8F)+ goto yy490;+ goto yy486;+ yy495:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 's') {+ if (yych <= 'R') {+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy486;+ if (yych <= '\t')+ goto yy484;+ goto yy486;+ } else {+ if (yych != 'P')+ goto yy484;+ }+ } else {+ if (yych <= 'o') {+ if (yych <= 'S')+ goto yy497;+ if (yych <= 'T')+ goto yy498;+ goto yy484;+ } else {+ if (yych <= 'p')+ goto yy496;+ if (yych <= 'r')+ goto yy484;+ goto yy497;+ }+ }+ } else {+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 't')+ goto yy498;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ } else {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ goto yy490;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy491;+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy496:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'Q') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 'q') {+ if (yych <= 'R')+ goto yy499;+ goto yy484;+ } else {+ if (yych <= 'r')+ goto yy499;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy497:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 't') {+ if (yych <= 'C') {+ if (yych <= '\t') {+ if (yych <= 0x00)+ goto yy486;+ goto yy484;+ } else {+ if (yych <= '\n')+ goto yy486;+ if (yych <= 'B')+ goto yy484;+ goto yy500;+ }+ } else {+ if (yych <= 'b') {+ if (yych == 'T')+ goto yy501;+ goto yy484;+ } else {+ if (yych <= 'c')+ goto yy500;+ if (yych <= 's')+ goto yy484;+ goto yy501;+ }+ }+ } else {+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ } else {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ goto yy490;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy491;+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy498:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'D') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 'd') {+ if (yych <= 'E')+ goto yy502;+ goto yy484;+ } else {+ if (yych <= 'e')+ goto yy502;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy499:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'D') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 'd') {+ if (yych <= 'E')+ goto yy503;+ goto yy484;+ } else {+ if (yych <= 'e')+ goto yy503;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy500:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'Q') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 'q') {+ if (yych <= 'R')+ goto yy504;+ goto yy484;+ } else {+ if (yych <= 'r')+ goto yy504;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy501:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'X') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 'x') {+ if (yych <= 'Y')+ goto yy505;+ goto yy484;+ } else {+ if (yych <= 'y')+ goto yy505;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy502:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'W') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 'w') {+ if (yych <= 'X')+ goto yy506;+ goto yy484;+ } else {+ if (yych <= 'x')+ goto yy506;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy503:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xDF) {+ if (yych <= '=') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= '>')+ goto yy507;+ if (yych <= 0x7F)+ goto yy484;+ if (yych <= 0xC1)+ goto yy486;+ goto yy488;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy489;+ if (yych == 0xED)+ goto yy491;+ goto yy490;+ } else {+ if (yych <= 0xF0)+ goto yy492;+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ yy504:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'H') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 'h') {+ if (yych <= 'I')+ goto yy509;+ goto yy484;+ } else {+ if (yych <= 'i')+ goto yy509;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy505:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'K') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 'k') {+ if (yych <= 'L')+ goto yy499;+ goto yy484;+ } else {+ if (yych <= 'l')+ goto yy499;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy506:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'S') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 's') {+ if (yych <= 'T')+ goto yy510;+ goto yy484;+ } else {+ if (yych <= 't')+ goto yy510;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy507:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 64) {+ goto yy484;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy508;+ if (yych <= '<')+ goto yy487;+ } else {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ goto yy490;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy491;+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ }+ }+ yy508 : { return (bufsize_t)(p - start); }+ yy509:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'O') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 'o') {+ if (yych <= 'P')+ goto yy511;+ goto yy484;+ } else {+ if (yych <= 'p')+ goto yy511;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy510:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= '@') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= '`') {+ if (yych <= 'A')+ goto yy512;+ goto yy484;+ } else {+ if (yych <= 'a')+ goto yy512;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy511:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'S') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 's') {+ if (yych <= 'T')+ goto yy503;+ goto yy484;+ } else {+ if (yych <= 't')+ goto yy503;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy512:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'Q') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 'q') {+ if (yych >= 'S')+ goto yy484;+ } else {+ if (yych <= 'r')+ goto yy513;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy513:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= 'D') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= 'd') {+ if (yych >= 'F')+ goto yy484;+ } else {+ if (yych <= 'e')+ goto yy514;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ yy514:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy487;+ }+ if (yych <= 0xC1) {+ if (yych <= '@') {+ if (yych <= 0x00)+ goto yy486;+ if (yych == '\n')+ goto yy486;+ goto yy484;+ } else {+ if (yych <= '`') {+ if (yych <= 'A')+ goto yy503;+ goto yy484;+ } else {+ if (yych <= 'a')+ goto yy503;+ if (yych <= 0x7F)+ goto yy484;+ goto yy486;+ }+ }+ } else {+ if (yych <= 0xED) {+ if (yych <= 0xDF)+ goto yy488;+ if (yych <= 0xE0)+ goto yy489;+ if (yych <= 0xEC)+ goto yy490;+ goto yy491;+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xEF)+ goto yy490;+ goto yy492;+ } else {+ if (yych <= 0xF3)+ goto yy493;+ if (yych <= 0xF4)+ goto yy494;+ goto yy486;+ }+ }+ }+ }+}++// Try to match an HTML block end line of type 2+bufsize_t _scan_html_block_end_2(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, 0, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 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,+ };+ yych = *p;+ if (yych <= 0xDF) {+ if (yych <= ',') {+ if (yych <= 0x00)+ goto yy516;+ if (yych != '\n')+ goto yy518;+ } else {+ if (yych <= '-')+ goto yy519;+ if (yych <= 0x7F)+ goto yy518;+ if (yych >= 0xC2)+ goto yy520;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy521;+ if (yych == 0xED)+ goto yy523;+ goto yy522;+ } else {+ if (yych <= 0xF0)+ goto yy524;+ if (yych <= 0xF3)+ goto yy525;+ if (yych <= 0xF4)+ goto yy526;+ }+ }+ yy516:+ ++p;+ yy517 : { return 0; }+ yy518:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy517;+ if (yych <= '\t')+ goto yy528;+ goto yy517;+ } else {+ if (yych <= 0x7F)+ goto yy528;+ if (yych <= 0xC1)+ goto yy517;+ if (yych <= 0xF4)+ goto yy528;+ goto yy517;+ }+ yy519:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 128) {+ goto yy538;+ }+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy517;+ if (yych <= '\t')+ goto yy528;+ goto yy517;+ } else {+ if (yych <= 0x7F)+ goto yy528;+ if (yych <= 0xC1)+ goto yy517;+ if (yych <= 0xF4)+ goto yy528;+ goto yy517;+ }+ yy520:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy517;+ if (yych <= 0xBF)+ goto yy527;+ goto yy517;+ yy521:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x9F)+ goto yy517;+ if (yych <= 0xBF)+ goto yy531;+ goto yy517;+ yy522:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy517;+ if (yych <= 0xBF)+ goto yy531;+ goto yy517;+ yy523:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy517;+ if (yych <= 0x9F)+ goto yy531;+ goto yy517;+ yy524:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x8F)+ goto yy517;+ if (yych <= 0xBF)+ goto yy533;+ goto yy517;+ yy525:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy517;+ if (yych <= 0xBF)+ goto yy533;+ goto yy517;+ yy526:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy517;+ if (yych <= 0x8F)+ goto yy533;+ goto yy517;+ yy527:+ yych = *++p;+ yy528:+ if (yybm[0 + yych] & 64) {+ goto yy527;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy529;+ if (yych <= '-')+ goto yy530;+ } else {+ if (yych <= 0xDF)+ goto yy531;+ if (yych <= 0xE0)+ goto yy532;+ goto yy533;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy534;+ if (yych <= 0xEF)+ goto yy533;+ goto yy535;+ } else {+ if (yych <= 0xF3)+ goto yy536;+ if (yych <= 0xF4)+ goto yy537;+ }+ }+ yy529:+ p = marker;+ if (yyaccept == 0) {+ goto yy517;+ } else {+ goto yy540;+ }+ yy530:+ yych = *++p;+ if (yybm[0 + yych] & 64) {+ goto yy527;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy529;+ if (yych <= '-')+ goto yy538;+ goto yy529;+ } else {+ if (yych <= 0xDF)+ goto yy531;+ if (yych <= 0xE0)+ goto yy532;+ goto yy533;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy534;+ if (yych <= 0xEF)+ goto yy533;+ goto yy535;+ } else {+ if (yych <= 0xF3)+ goto yy536;+ if (yych <= 0xF4)+ goto yy537;+ goto yy529;+ }+ }+ yy531:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy529;+ if (yych <= 0xBF)+ goto yy527;+ goto yy529;+ yy532:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy529;+ if (yych <= 0xBF)+ goto yy531;+ goto yy529;+ yy533:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy529;+ if (yych <= 0xBF)+ goto yy531;+ goto yy529;+ yy534:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy529;+ if (yych <= 0x9F)+ goto yy531;+ goto yy529;+ yy535:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy529;+ if (yych <= 0xBF)+ goto yy533;+ goto yy529;+ yy536:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy529;+ if (yych <= 0xBF)+ goto yy533;+ goto yy529;+ yy537:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy529;+ if (yych <= 0x8F)+ goto yy533;+ goto yy529;+ yy538:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy538;+ }+ if (yych <= 0xDF) {+ if (yych <= '=') {+ if (yych <= 0x00)+ goto yy529;+ if (yych == '\n')+ goto yy529;+ goto yy527;+ } else {+ if (yych <= '>')+ goto yy539;+ if (yych <= 0x7F)+ goto yy527;+ if (yych <= 0xC1)+ goto yy529;+ goto yy531;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy532;+ if (yych == 0xED)+ goto yy534;+ goto yy533;+ } else {+ if (yych <= 0xF0)+ goto yy535;+ if (yych <= 0xF3)+ goto yy536;+ if (yych <= 0xF4)+ goto yy537;+ goto yy529;+ }+ }+ yy539:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 64) {+ goto yy527;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy540;+ if (yych <= '-')+ goto yy530;+ } else {+ if (yych <= 0xDF)+ goto yy531;+ if (yych <= 0xE0)+ goto yy532;+ goto yy533;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy534;+ if (yych <= 0xEF)+ goto yy533;+ goto yy535;+ } else {+ if (yych <= 0xF3)+ goto yy536;+ if (yych <= 0xF4)+ goto yy537;+ }+ }+ yy540 : { return (bufsize_t)(p - start); }+ }+}++// Try to match an HTML block end line of type 3+bufsize_t _scan_html_block_end_3(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, 0, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 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,+ };+ yych = *p;+ if (yych <= 0xDF) {+ if (yych <= '>') {+ if (yych <= 0x00)+ goto yy542;+ if (yych != '\n')+ goto yy544;+ } else {+ if (yych <= '?')+ goto yy545;+ if (yych <= 0x7F)+ goto yy544;+ if (yych >= 0xC2)+ goto yy546;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy547;+ if (yych == 0xED)+ goto yy549;+ goto yy548;+ } else {+ if (yych <= 0xF0)+ goto yy550;+ if (yych <= 0xF3)+ goto yy551;+ if (yych <= 0xF4)+ goto yy552;+ }+ }+ yy542:+ ++p;+ yy543 : { return 0; }+ yy544:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy543;+ if (yych <= '\t')+ goto yy554;+ goto yy543;+ } else {+ if (yych <= 0x7F)+ goto yy554;+ if (yych <= 0xC1)+ goto yy543;+ if (yych <= 0xF4)+ goto yy554;+ goto yy543;+ }+ yy545:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= '=') {+ if (yych <= 0x00)+ goto yy543;+ if (yych == '\n')+ goto yy543;+ goto yy554;+ } else {+ if (yych <= 0x7F) {+ if (yych <= '>')+ goto yy564;+ goto yy554;+ } else {+ if (yych <= 0xC1)+ goto yy543;+ if (yych <= 0xF4)+ goto yy554;+ goto yy543;+ }+ }+ yy546:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy543;+ if (yych <= 0xBF)+ goto yy553;+ goto yy543;+ yy547:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x9F)+ goto yy543;+ if (yych <= 0xBF)+ goto yy557;+ goto yy543;+ yy548:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy543;+ if (yych <= 0xBF)+ goto yy557;+ goto yy543;+ yy549:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy543;+ if (yych <= 0x9F)+ goto yy557;+ goto yy543;+ yy550:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x8F)+ goto yy543;+ if (yych <= 0xBF)+ goto yy559;+ goto yy543;+ yy551:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy543;+ if (yych <= 0xBF)+ goto yy559;+ goto yy543;+ yy552:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy543;+ if (yych <= 0x8F)+ goto yy559;+ goto yy543;+ yy553:+ yych = *++p;+ yy554:+ if (yybm[0 + yych] & 64) {+ goto yy553;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy555;+ if (yych <= '?')+ goto yy556;+ } else {+ if (yych <= 0xDF)+ goto yy557;+ if (yych <= 0xE0)+ goto yy558;+ goto yy559;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy560;+ if (yych <= 0xEF)+ goto yy559;+ goto yy561;+ } else {+ if (yych <= 0xF3)+ goto yy562;+ if (yych <= 0xF4)+ goto yy563;+ }+ }+ yy555:+ p = marker;+ if (yyaccept == 0) {+ goto yy543;+ } else {+ goto yy565;+ }+ yy556:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy556;+ }+ if (yych <= 0xDF) {+ if (yych <= '=') {+ if (yych <= 0x00)+ goto yy555;+ if (yych == '\n')+ goto yy555;+ goto yy553;+ } else {+ if (yych <= '>')+ goto yy564;+ if (yych <= 0x7F)+ goto yy553;+ if (yych <= 0xC1)+ goto yy555;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy558;+ if (yych == 0xED)+ goto yy560;+ goto yy559;+ } else {+ if (yych <= 0xF0)+ goto yy561;+ if (yych <= 0xF3)+ goto yy562;+ if (yych <= 0xF4)+ goto yy563;+ goto yy555;+ }+ }+ yy557:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy555;+ if (yych <= 0xBF)+ goto yy553;+ goto yy555;+ yy558:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy555;+ if (yych <= 0xBF)+ goto yy557;+ goto yy555;+ yy559:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy555;+ if (yych <= 0xBF)+ goto yy557;+ goto yy555;+ yy560:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy555;+ if (yych <= 0x9F)+ goto yy557;+ goto yy555;+ yy561:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy555;+ if (yych <= 0xBF)+ goto yy559;+ goto yy555;+ yy562:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy555;+ if (yych <= 0xBF)+ goto yy559;+ goto yy555;+ yy563:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy555;+ if (yych <= 0x8F)+ goto yy559;+ goto yy555;+ yy564:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 64) {+ goto yy553;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy565;+ if (yych <= '?')+ goto yy556;+ } else {+ if (yych <= 0xDF)+ goto yy557;+ if (yych <= 0xE0)+ goto yy558;+ goto yy559;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy560;+ if (yych <= 0xEF)+ goto yy559;+ goto yy561;+ } else {+ if (yych <= 0xF3)+ goto yy562;+ if (yych <= 0xF4)+ goto yy563;+ }+ }+ yy565 : { return (bufsize_t)(p - start); }+ }+}++// Try to match an HTML block end line of type 4+bufsize_t _scan_html_block_end_4(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, 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, 64, 128, 128, 128, 128, 128, 128, 128,+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+ 128, 128, 128, 128, 128, 128, 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,+ };+ yych = *p;+ if (yybm[0 + yych] & 64) {+ goto yy570;+ }+ if (yych <= 0xE0) {+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy567;+ if (yych <= '\t')+ goto yy569;+ } else {+ if (yych <= 0x7F)+ goto yy569;+ if (yych <= 0xC1)+ goto yy567;+ if (yych <= 0xDF)+ goto yy572;+ goto yy573;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy575;+ goto yy574;+ } else {+ if (yych <= 0xF0)+ goto yy576;+ if (yych <= 0xF3)+ goto yy577;+ if (yych <= 0xF4)+ goto yy578;+ }+ }+ yy567:+ ++p;+ yy568 : { return 0; }+ yy569:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy568;+ if (yych <= '\t')+ goto yy580;+ goto yy568;+ } else {+ if (yych <= 0x7F)+ goto yy580;+ if (yych <= 0xC1)+ goto yy568;+ if (yych <= 0xF4)+ goto yy580;+ goto yy568;+ }+ yy570:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 128) {+ goto yy579;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy571;+ if (yych <= '>')+ goto yy570;+ } else {+ if (yych <= 0xDF)+ goto yy582;+ if (yych <= 0xE0)+ goto yy583;+ goto yy584;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy585;+ if (yych <= 0xEF)+ goto yy584;+ goto yy586;+ } else {+ if (yych <= 0xF3)+ goto yy587;+ if (yych <= 0xF4)+ goto yy588;+ }+ }+ yy571 : { return (bufsize_t)(p - start); }+ yy572:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy568;+ if (yych <= 0xBF)+ goto yy579;+ goto yy568;+ yy573:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x9F)+ goto yy568;+ if (yych <= 0xBF)+ goto yy582;+ goto yy568;+ yy574:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy568;+ if (yych <= 0xBF)+ goto yy582;+ goto yy568;+ yy575:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy568;+ if (yych <= 0x9F)+ goto yy582;+ goto yy568;+ yy576:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x8F)+ goto yy568;+ if (yych <= 0xBF)+ goto yy584;+ goto yy568;+ yy577:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy568;+ if (yych <= 0xBF)+ goto yy584;+ goto yy568;+ yy578:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy568;+ if (yych <= 0x8F)+ goto yy584;+ goto yy568;+ yy579:+ yych = *++p;+ yy580:+ if (yybm[0 + yych] & 128) {+ goto yy579;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy581;+ if (yych <= '>')+ goto yy570;+ } else {+ if (yych <= 0xDF)+ goto yy582;+ if (yych <= 0xE0)+ goto yy583;+ goto yy584;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy585;+ if (yych <= 0xEF)+ goto yy584;+ goto yy586;+ } else {+ if (yych <= 0xF3)+ goto yy587;+ if (yych <= 0xF4)+ goto yy588;+ }+ }+ yy581:+ p = marker;+ if (yyaccept == 0) {+ goto yy568;+ } else {+ goto yy571;+ }+ yy582:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy581;+ if (yych <= 0xBF)+ goto yy579;+ goto yy581;+ yy583:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy581;+ if (yych <= 0xBF)+ goto yy582;+ goto yy581;+ yy584:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy581;+ if (yych <= 0xBF)+ goto yy582;+ goto yy581;+ yy585:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy581;+ if (yych <= 0x9F)+ goto yy582;+ goto yy581;+ yy586:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy581;+ if (yych <= 0xBF)+ goto yy584;+ goto yy581;+ yy587:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy581;+ if (yych <= 0xBF)+ goto yy584;+ goto yy581;+ yy588:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy581;+ if (yych <= 0x8F)+ goto yy584;+ goto yy581;+ }+}++// Try to match an HTML block end line of type 5+bufsize_t _scan_html_block_end_5(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, 0, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 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,+ };+ yych = *p;+ if (yych <= 0xDF) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy590;+ if (yych != '\n')+ goto yy592;+ } else {+ if (yych <= ']')+ goto yy593;+ if (yych <= 0x7F)+ goto yy592;+ if (yych >= 0xC2)+ goto yy594;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy595;+ if (yych == 0xED)+ goto yy597;+ goto yy596;+ } else {+ if (yych <= 0xF0)+ goto yy598;+ if (yych <= 0xF3)+ goto yy599;+ if (yych <= 0xF4)+ goto yy600;+ }+ }+ yy590:+ ++p;+ yy591 : { return 0; }+ yy592:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy591;+ if (yych <= '\t')+ goto yy602;+ goto yy591;+ } else {+ if (yych <= 0x7F)+ goto yy602;+ if (yych <= 0xC1)+ goto yy591;+ if (yych <= 0xF4)+ goto yy602;+ goto yy591;+ }+ yy593:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 128) {+ goto yy612;+ }+ if (yych <= '\n') {+ if (yych <= 0x00)+ goto yy591;+ if (yych <= '\t')+ goto yy602;+ goto yy591;+ } else {+ if (yych <= 0x7F)+ goto yy602;+ if (yych <= 0xC1)+ goto yy591;+ if (yych <= 0xF4)+ goto yy602;+ goto yy591;+ }+ yy594:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy591;+ if (yych <= 0xBF)+ goto yy601;+ goto yy591;+ yy595:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x9F)+ goto yy591;+ if (yych <= 0xBF)+ goto yy605;+ goto yy591;+ yy596:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy591;+ if (yych <= 0xBF)+ goto yy605;+ goto yy591;+ yy597:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy591;+ if (yych <= 0x9F)+ goto yy605;+ goto yy591;+ yy598:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x8F)+ goto yy591;+ if (yych <= 0xBF)+ goto yy607;+ goto yy591;+ yy599:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy591;+ if (yych <= 0xBF)+ goto yy607;+ goto yy591;+ yy600:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x7F)+ goto yy591;+ if (yych <= 0x8F)+ goto yy607;+ goto yy591;+ yy601:+ yych = *++p;+ yy602:+ if (yybm[0 + yych] & 64) {+ goto yy601;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy603;+ if (yych <= ']')+ goto yy604;+ } else {+ if (yych <= 0xDF)+ goto yy605;+ if (yych <= 0xE0)+ goto yy606;+ goto yy607;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy608;+ if (yych <= 0xEF)+ goto yy607;+ goto yy609;+ } else {+ if (yych <= 0xF3)+ goto yy610;+ if (yych <= 0xF4)+ goto yy611;+ }+ }+ yy603:+ p = marker;+ if (yyaccept == 0) {+ goto yy591;+ } else {+ goto yy614;+ }+ yy604:+ yych = *++p;+ if (yybm[0 + yych] & 64) {+ goto yy601;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy603;+ if (yych <= ']')+ goto yy612;+ goto yy603;+ } else {+ if (yych <= 0xDF)+ goto yy605;+ if (yych <= 0xE0)+ goto yy606;+ goto yy607;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy608;+ if (yych <= 0xEF)+ goto yy607;+ goto yy609;+ } else {+ if (yych <= 0xF3)+ goto yy610;+ if (yych <= 0xF4)+ goto yy611;+ goto yy603;+ }+ }+ yy605:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy603;+ if (yych <= 0xBF)+ goto yy601;+ goto yy603;+ yy606:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy603;+ if (yych <= 0xBF)+ goto yy605;+ goto yy603;+ yy607:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy603;+ if (yych <= 0xBF)+ goto yy605;+ goto yy603;+ yy608:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy603;+ if (yych <= 0x9F)+ goto yy605;+ goto yy603;+ yy609:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy603;+ if (yych <= 0xBF)+ goto yy607;+ goto yy603;+ yy610:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy603;+ if (yych <= 0xBF)+ goto yy607;+ goto yy603;+ yy611:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy603;+ if (yych <= 0x8F)+ goto yy607;+ goto yy603;+ yy612:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy612;+ }+ if (yych <= 0xDF) {+ if (yych <= '=') {+ if (yych <= 0x00)+ goto yy603;+ if (yych == '\n')+ goto yy603;+ goto yy601;+ } else {+ if (yych <= '>')+ goto yy613;+ if (yych <= 0x7F)+ goto yy601;+ if (yych <= 0xC1)+ goto yy603;+ goto yy605;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy606;+ if (yych == 0xED)+ goto yy608;+ goto yy607;+ } else {+ if (yych <= 0xF0)+ goto yy609;+ if (yych <= 0xF3)+ goto yy610;+ if (yych <= 0xF4)+ goto yy611;+ goto yy603;+ }+ }+ yy613:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 64) {+ goto yy601;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= '\n')+ goto yy614;+ if (yych <= ']')+ goto yy604;+ } else {+ if (yych <= 0xDF)+ goto yy605;+ if (yych <= 0xE0)+ goto yy606;+ goto yy607;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy608;+ if (yych <= 0xEF)+ goto yy607;+ goto yy609;+ } else {+ if (yych <= 0xF3)+ goto yy610;+ if (yych <= 0xF4)+ goto yy611;+ }+ }+ yy614 : { return (bufsize_t)(p - start); }+ }+}++// 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).+bufsize_t _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, 192, 208, 208, 208, 208, 144, 80, 80,+ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 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 yy617;+ } else {+ if (yych <= '\'')+ goto yy618;+ if (yych <= '(')+ goto yy619;+ }+ ++p;+ yy616 : { return 0; }+ yy617:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x00)+ goto yy616;+ if (yych <= 0x7F)+ goto yy621;+ if (yych <= 0xC1)+ goto yy616;+ if (yych <= 0xF4)+ goto yy621;+ goto yy616;+ yy618:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= 0x00)+ goto yy616;+ if (yych <= 0x7F)+ goto yy634;+ if (yych <= 0xC1)+ goto yy616;+ if (yych <= 0xF4)+ goto yy634;+ goto yy616;+ yy619:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych <= '(') {+ if (yych <= 0x00)+ goto yy616;+ if (yych <= '\'')+ goto yy646;+ goto yy616;+ } else {+ if (yych <= 0x7F)+ goto yy646;+ if (yych <= 0xC1)+ goto yy616;+ if (yych <= 0xF4)+ goto yy646;+ goto yy616;+ }+ yy620:+ yych = *++p;+ yy621:+ if (yybm[0 + yych] & 16) {+ goto yy620;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy622;+ if (yych <= '"')+ goto yy623;+ goto yy625;+ } else {+ if (yych <= 0xC1)+ goto yy622;+ if (yych <= 0xDF)+ goto yy626;+ goto yy627;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy629;+ goto yy628;+ } else {+ if (yych <= 0xF0)+ goto yy630;+ if (yych <= 0xF3)+ goto yy631;+ if (yych <= 0xF4)+ goto yy632;+ }+ }+ yy622:+ p = marker;+ if (yyaccept <= 1) {+ if (yyaccept == 0) {+ goto yy616;+ } else {+ goto yy624;+ }+ } else {+ if (yyaccept == 2) {+ goto yy636;+ } else {+ goto yy648;+ }+ }+ yy623:+ ++p;+ yy624 : { return (bufsize_t)(p - start); }+ yy625:+ yych = *++p;+ if (yybm[0 + yych] & 16) {+ goto yy620;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy622;+ if (yych <= '"')+ goto yy657;+ goto yy625;+ } else {+ if (yych <= 0xC1)+ goto yy622;+ if (yych >= 0xE0)+ goto yy627;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy629;+ goto yy628;+ } else {+ if (yych <= 0xF0)+ goto yy630;+ if (yych <= 0xF3)+ goto yy631;+ if (yych <= 0xF4)+ goto yy632;+ goto yy622;+ }+ }+ yy626:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy620;+ goto yy622;+ yy627:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy626;+ goto yy622;+ yy628:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy626;+ goto yy622;+ yy629:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0x9F)+ goto yy626;+ goto yy622;+ yy630:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy628;+ goto yy622;+ yy631:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy628;+ goto yy622;+ yy632:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0x8F)+ goto yy628;+ goto yy622;+ yy633:+ yych = *++p;+ yy634:+ if (yybm[0 + yych] & 64) {+ goto yy633;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy622;+ if (yych >= '(')+ goto yy637;+ } else {+ if (yych <= 0xC1)+ goto yy622;+ if (yych <= 0xDF)+ goto yy638;+ goto yy639;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy641;+ goto yy640;+ } else {+ if (yych <= 0xF0)+ goto yy642;+ if (yych <= 0xF3)+ goto yy643;+ if (yych <= 0xF4)+ goto yy644;+ goto yy622;+ }+ }+ yy635:+ ++p;+ yy636 : { return (bufsize_t)(p - start); }+ yy637:+ yych = *++p;+ if (yybm[0 + yych] & 64) {+ goto yy633;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy622;+ if (yych <= '\'')+ goto yy658;+ goto yy637;+ } else {+ if (yych <= 0xC1)+ goto yy622;+ if (yych >= 0xE0)+ goto yy639;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy641;+ goto yy640;+ } else {+ if (yych <= 0xF0)+ goto yy642;+ if (yych <= 0xF3)+ goto yy643;+ if (yych <= 0xF4)+ goto yy644;+ goto yy622;+ }+ }+ yy638:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy633;+ goto yy622;+ yy639:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy638;+ goto yy622;+ yy640:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy638;+ goto yy622;+ yy641:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0x9F)+ goto yy638;+ goto yy622;+ yy642:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy640;+ goto yy622;+ yy643:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy640;+ goto yy622;+ yy644:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0x8F)+ goto yy640;+ goto yy622;+ yy645:+ yych = *++p;+ yy646:+ if (yybm[0 + yych] & 128) {+ goto yy645;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= '(')+ goto yy622;+ if (yych >= '*')+ goto yy649;+ } else {+ if (yych <= 0xC1)+ goto yy622;+ if (yych <= 0xDF)+ goto yy650;+ goto yy651;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy653;+ goto yy652;+ } else {+ if (yych <= 0xF0)+ goto yy654;+ if (yych <= 0xF3)+ goto yy655;+ if (yych <= 0xF4)+ goto yy656;+ goto yy622;+ }+ }+ yy647:+ ++p;+ yy648 : { return (bufsize_t)(p - start); }+ yy649:+ yych = *++p;+ if (yych <= 0xDF) {+ if (yych <= '[') {+ if (yych <= 0x00)+ goto yy622;+ if (yych == ')')+ goto yy659;+ goto yy645;+ } else {+ if (yych <= '\\')+ goto yy649;+ if (yych <= 0x7F)+ goto yy645;+ if (yych <= 0xC1)+ goto yy622;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0)+ goto yy651;+ if (yych == 0xED)+ goto yy653;+ goto yy652;+ } else {+ if (yych <= 0xF0)+ goto yy654;+ if (yych <= 0xF3)+ goto yy655;+ if (yych <= 0xF4)+ goto yy656;+ goto yy622;+ }+ }+ yy650:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy645;+ goto yy622;+ yy651:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy650;+ goto yy622;+ yy652:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy650;+ goto yy622;+ yy653:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0x9F)+ goto yy650;+ goto yy622;+ yy654:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy652;+ goto yy622;+ yy655:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0xBF)+ goto yy652;+ goto yy622;+ yy656:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy622;+ if (yych <= 0x8F)+ goto yy652;+ goto yy622;+ yy657:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 16) {+ goto yy620;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy624;+ if (yych <= '"')+ goto yy623;+ goto yy625;+ } else {+ if (yych <= 0xC1)+ goto yy624;+ if (yych <= 0xDF)+ goto yy626;+ goto yy627;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy629;+ goto yy628;+ } else {+ if (yych <= 0xF0)+ goto yy630;+ if (yych <= 0xF3)+ goto yy631;+ if (yych <= 0xF4)+ goto yy632;+ goto yy624;+ }+ }+ yy658:+ yyaccept = 2;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 64) {+ goto yy633;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= 0x00)+ goto yy636;+ if (yych <= '\'')+ goto yy635;+ goto yy637;+ } else {+ if (yych <= 0xC1)+ goto yy636;+ if (yych <= 0xDF)+ goto yy638;+ goto yy639;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy641;+ goto yy640;+ } else {+ if (yych <= 0xF0)+ goto yy642;+ if (yych <= 0xF3)+ goto yy643;+ if (yych <= 0xF4)+ goto yy644;+ goto yy636;+ }+ }+ yy659:+ yyaccept = 3;+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 128) {+ goto yy645;+ }+ if (yych <= 0xE0) {+ if (yych <= '\\') {+ if (yych <= '(')+ goto yy648;+ if (yych <= ')')+ goto yy647;+ goto yy649;+ } else {+ if (yych <= 0xC1)+ goto yy648;+ if (yych <= 0xDF)+ goto yy650;+ goto yy651;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych == 0xED)+ goto yy653;+ goto yy652;+ } else {+ if (yych <= 0xF0)+ goto yy654;+ if (yych <= 0xF3)+ goto yy655;+ if (yych <= 0xF4)+ goto yy656;+ goto yy648;+ }+ }+ }+}++// Match space characters, including newlines.+bufsize_t _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 (yybm[0 + yych] & 128) {+ goto yy661;+ }+ ++p;+ { return 0; }+ yy661:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy661;+ }+ { return (bufsize_t)(p - start); }+ }+}++// Match ATX heading start.+bufsize_t _scan_atx_heading_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, 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,+ };+ yych = *p;+ if (yych == '#')+ goto yy664;+ ++p;+ yy663 : { return 0; }+ yy664:+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 128) {+ goto yy665;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy663;+ if (yych <= '\n')+ goto yy667;+ goto yy663;+ } else {+ if (yych <= '\r')+ goto yy667;+ if (yych == '#')+ goto yy668;+ goto yy663;+ }+ yy665:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy665;+ }+ yy666 : { return (bufsize_t)(p - start); }+ yy667:+ ++p;+ goto yy666;+ yy668:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy665;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy669;+ if (yych <= '\n')+ goto yy667;+ } else {+ if (yych <= '\r')+ goto yy667;+ if (yych == '#')+ goto yy670;+ }+ yy669:+ p = marker;+ goto yy663;+ yy670:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy665;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy669;+ if (yych <= '\n')+ goto yy667;+ goto yy669;+ } else {+ if (yych <= '\r')+ goto yy667;+ if (yych != '#')+ goto yy669;+ }+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy665;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy669;+ if (yych <= '\n')+ goto yy667;+ goto yy669;+ } else {+ if (yych <= '\r')+ goto yy667;+ if (yych != '#')+ goto yy669;+ }+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy665;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy669;+ if (yych <= '\n')+ goto yy667;+ goto yy669;+ } else {+ if (yych <= '\r')+ goto yy667;+ if (yych != '#')+ goto yy669;+ }+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy665;+ }+ if (yych <= 0x08)+ goto yy669;+ if (yych <= '\n')+ goto yy667;+ if (yych == '\r')+ goto yy667;+ goto yy669;+ }+}++// Match setext heading line. Return 1 for level-1 heading,+// 2 for level-2, 0 for no match.+bufsize_t _scan_setext_heading_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, 32, 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 == '-')+ goto yy673;+ if (yych == '=')+ goto yy674;+ ++p;+ yy672 : { return 0; }+ yy673:+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 64) {+ goto yy679;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy672;+ if (yych <= '\n')+ goto yy676;+ goto yy672;+ } else {+ if (yych <= '\r')+ goto yy676;+ if (yych == ' ')+ goto yy676;+ goto yy672;+ }+ yy674:+ yych = *(marker = ++p);+ if (yybm[0 + yych] & 128) {+ goto yy683;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy672;+ if (yych <= '\n')+ goto yy681;+ goto yy672;+ } else {+ if (yych <= '\r')+ goto yy681;+ if (yych == ' ')+ goto yy681;+ goto yy672;+ }+ yy675:+ yych = *++p;+ yy676:+ if (yybm[0 + yych] & 32) {+ goto yy675;+ }+ if (yych <= 0x08)+ goto yy677;+ if (yych <= '\n')+ goto yy678;+ if (yych == '\r')+ goto yy678;+ yy677:+ p = marker;+ goto yy672;+ yy678:+ ++p;+ { return 2; }+ yy679:+ yych = *++p;+ if (yybm[0 + yych] & 32) {+ goto yy675;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy677;+ if (yych <= '\n')+ goto yy678;+ goto yy677;+ } else {+ if (yych <= '\r')+ goto yy678;+ if (yych == '-')+ goto yy679;+ goto yy677;+ }+ yy680:+ yych = *++p;+ yy681:+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy677;+ if (yych <= '\t')+ goto yy680;+ if (yych >= '\v')+ goto yy677;+ } else {+ if (yych <= '\r')+ goto yy682;+ if (yych == ' ')+ goto yy680;+ goto yy677;+ }+ yy682:+ ++p;+ { return 1; }+ yy683:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy683;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy677;+ if (yych <= '\t')+ goto yy680;+ if (yych <= '\n')+ goto yy682;+ goto yy677;+ } else {+ if (yych <= '\r')+ goto yy682;+ if (yych == ' ')+ goto yy680;+ goto yy677;+ }+ }+}++// Scan an opening code fence.+bufsize_t _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, 192, 192, 192, 192, 192, 192, 192, 192, 192, 0, 192, 192, 0,+ 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+ 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+ 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+ 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+ 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+ 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 144, 192,+ 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+ 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+ 224, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ 0, 0, 0, 0, 0, 0, 0, 0, 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 == '`')+ goto yy686;+ if (yych == '~')+ goto yy687;+ ++p;+ yy685 : { return 0; }+ yy686:+ yych = *(marker = ++p);+ if (yych == '`')+ goto yy688;+ goto yy685;+ yy687:+ yych = *(marker = ++p);+ if (yych == '~')+ goto yy690;+ goto yy685;+ yy688:+ yych = *++p;+ if (yybm[0 + yych] & 16) {+ goto yy691;+ }+ yy689:+ p = marker;+ goto yy685;+ yy690:+ yych = *++p;+ if (yybm[0 + yych] & 32) {+ goto yy692;+ }+ goto yy689;+ yy691:+ yych = *++p;+ if (yybm[0 + yych] & 16) {+ goto yy691;+ }+ if (yych <= 0xDF) {+ if (yych <= '\f') {+ if (yych <= 0x00)+ goto yy689;+ if (yych == '\n') {+ marker = p;+ goto yy694;+ }+ marker = p;+ goto yy693;+ } else {+ if (yych <= '\r') {+ marker = p;+ goto yy694;+ }+ if (yych <= 0x7F) {+ marker = p;+ goto yy693;+ }+ if (yych <= 0xC1)+ goto yy689;+ marker = p;+ goto yy695;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0) {+ marker = p;+ goto yy696;+ }+ if (yych == 0xED) {+ marker = p;+ goto yy698;+ }+ marker = p;+ goto yy697;+ } else {+ if (yych <= 0xF0) {+ marker = p;+ goto yy699;+ }+ if (yych <= 0xF3) {+ marker = p;+ goto yy700;+ }+ if (yych <= 0xF4) {+ marker = p;+ goto yy701;+ }+ goto yy689;+ }+ }+ yy692:+ yych = *++p;+ if (yybm[0 + yych] & 32) {+ goto yy692;+ }+ if (yych <= 0xDF) {+ if (yych <= '\f') {+ if (yych <= 0x00)+ goto yy689;+ if (yych == '\n') {+ marker = p;+ goto yy703;+ }+ marker = p;+ goto yy702;+ } else {+ if (yych <= '\r') {+ marker = p;+ goto yy703;+ }+ if (yych <= 0x7F) {+ marker = p;+ goto yy702;+ }+ if (yych <= 0xC1)+ goto yy689;+ marker = p;+ goto yy704;+ }+ } else {+ if (yych <= 0xEF) {+ if (yych <= 0xE0) {+ marker = p;+ goto yy705;+ }+ if (yych == 0xED) {+ marker = p;+ goto yy707;+ }+ marker = p;+ goto yy706;+ } else {+ if (yych <= 0xF0) {+ marker = p;+ goto yy708;+ }+ if (yych <= 0xF3) {+ marker = p;+ goto yy709;+ }+ if (yych <= 0xF4) {+ marker = p;+ goto yy710;+ }+ goto yy689;+ }+ }+ yy693:+ yych = *++p;+ if (yybm[0 + yych] & 64) {+ goto yy693;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy689;+ if (yych >= 0x0E)+ goto yy689;+ } else {+ if (yych <= 0xDF)+ goto yy695;+ if (yych <= 0xE0)+ goto yy696;+ goto yy697;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy698;+ if (yych <= 0xEF)+ goto yy697;+ goto yy699;+ } else {+ if (yych <= 0xF3)+ goto yy700;+ if (yych <= 0xF4)+ goto yy701;+ goto yy689;+ }+ }+ yy694:+ ++p;+ p = marker;+ { return (bufsize_t)(p - start); }+ yy695:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy689;+ if (yych <= 0xBF)+ goto yy693;+ goto yy689;+ yy696:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy689;+ if (yych <= 0xBF)+ goto yy695;+ goto yy689;+ yy697:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy689;+ if (yych <= 0xBF)+ goto yy695;+ goto yy689;+ yy698:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy689;+ if (yych <= 0x9F)+ goto yy695;+ goto yy689;+ yy699:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy689;+ if (yych <= 0xBF)+ goto yy697;+ goto yy689;+ yy700:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy689;+ if (yych <= 0xBF)+ goto yy697;+ goto yy689;+ yy701:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy689;+ if (yych <= 0x8F)+ goto yy697;+ goto yy689;+ yy702:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy702;+ }+ if (yych <= 0xEC) {+ if (yych <= 0xC1) {+ if (yych <= 0x00)+ goto yy689;+ if (yych >= 0x0E)+ goto yy689;+ } else {+ if (yych <= 0xDF)+ goto yy704;+ if (yych <= 0xE0)+ goto yy705;+ goto yy706;+ }+ } else {+ if (yych <= 0xF0) {+ if (yych <= 0xED)+ goto yy707;+ if (yych <= 0xEF)+ goto yy706;+ goto yy708;+ } else {+ if (yych <= 0xF3)+ goto yy709;+ if (yych <= 0xF4)+ goto yy710;+ goto yy689;+ }+ }+ yy703:+ ++p;+ p = marker;+ { return (bufsize_t)(p - start); }+ yy704:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy689;+ if (yych <= 0xBF)+ goto yy702;+ goto yy689;+ yy705:+ yych = *++p;+ if (yych <= 0x9F)+ goto yy689;+ if (yych <= 0xBF)+ goto yy704;+ goto yy689;+ yy706:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy689;+ if (yych <= 0xBF)+ goto yy704;+ goto yy689;+ yy707:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy689;+ if (yych <= 0x9F)+ goto yy704;+ goto yy689;+ yy708:+ yych = *++p;+ if (yych <= 0x8F)+ goto yy689;+ if (yych <= 0xBF)+ goto yy706;+ goto yy689;+ yy709:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy689;+ if (yych <= 0xBF)+ goto yy706;+ goto yy689;+ yy710:+ yych = *++p;+ if (yych <= 0x7F)+ goto yy689;+ if (yych <= 0x8F)+ goto yy706;+ goto yy689;+ }+}++// Scan a closing code fence with length at least len.+bufsize_t _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, 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, 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, 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,+ };+ yych = *p;+ if (yych == '`')+ goto yy713;+ if (yych == '~')+ goto yy714;+ ++p;+ yy712 : { return 0; }+ yy713:+ yych = *(marker = ++p);+ if (yych == '`')+ goto yy715;+ goto yy712;+ yy714:+ yych = *(marker = ++p);+ if (yych == '~')+ goto yy717;+ goto yy712;+ yy715:+ yych = *++p;+ if (yybm[0 + yych] & 32) {+ goto yy718;+ }+ yy716:+ p = marker;+ goto yy712;+ yy717:+ yych = *++p;+ if (yybm[0 + yych] & 64) {+ goto yy719;+ }+ goto yy716;+ yy718:+ yych = *++p;+ if (yybm[0 + yych] & 32) {+ goto yy718;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy716;+ if (yych <= '\t') {+ marker = p;+ goto yy720;+ }+ if (yych <= '\n') {+ marker = p;+ goto yy721;+ }+ goto yy716;+ } else {+ if (yych <= '\r') {+ marker = p;+ goto yy721;+ }+ if (yych == ' ') {+ marker = p;+ goto yy720;+ }+ goto yy716;+ }+ yy719:+ yych = *++p;+ if (yybm[0 + yych] & 64) {+ goto yy719;+ }+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy716;+ if (yych <= '\t') {+ marker = p;+ goto yy722;+ }+ if (yych <= '\n') {+ marker = p;+ goto yy723;+ }+ goto yy716;+ } else {+ if (yych <= '\r') {+ marker = p;+ goto yy723;+ }+ if (yych == ' ') {+ marker = p;+ goto yy722;+ }+ goto yy716;+ }+ yy720:+ yych = *++p;+ if (yybm[0 + yych] & 128) {+ goto yy720;+ }+ if (yych <= 0x08)+ goto yy716;+ if (yych <= '\n')+ goto yy721;+ if (yych != '\r')+ goto yy716;+ yy721:+ ++p;+ p = marker;+ { return (bufsize_t)(p - start); }+ yy722:+ yych = *++p;+ if (yych <= '\f') {+ if (yych <= 0x08)+ goto yy716;+ if (yych <= '\t')+ goto yy722;+ if (yych >= '\v')+ goto yy716;+ } else {+ if (yych <= '\r')+ goto yy723;+ if (yych == ' ')+ goto yy722;+ goto yy716;+ }+ yy723:+ ++p;+ p = marker;+ { return (bufsize_t)(p - start); }+ }+}++// Scans an entity.+// Returns number of chars matched.+bufsize_t _scan_entity(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ yych = *p;+ if (yych == '&')+ goto yy726;+ ++p;+ yy725 : { return 0; }+ yy726:+ yych = *(marker = ++p);+ if (yych <= '@') {+ if (yych != '#')+ goto yy725;+ } else {+ if (yych <= 'Z')+ goto yy728;+ if (yych <= '`')+ goto yy725;+ if (yych <= 'z')+ goto yy728;+ goto yy725;+ }+ yych = *++p;+ if (yych <= 'W') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy729;+ } else {+ if (yych <= 'X')+ goto yy730;+ if (yych == 'x')+ goto yy730;+ }+ yy727:+ p = marker;+ goto yy725;+ yy728:+ yych = *++p;+ if (yych <= '@') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy731;+ goto yy727;+ } else {+ if (yych <= 'Z')+ goto yy731;+ if (yych <= '`')+ goto yy727;+ if (yych <= 'z')+ goto yy731;+ goto yy727;+ }+ yy729:+ yych = *++p;+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy732;+ if (yych == ';')+ goto yy733;+ goto yy727;+ yy730:+ yych = *++p;+ if (yych <= '@') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy734;+ goto yy727;+ } else {+ if (yych <= 'F')+ goto yy734;+ if (yych <= '`')+ goto yy727;+ if (yych <= 'f')+ goto yy734;+ goto yy727;+ }+ yy731:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy735;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ goto yy735;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych <= 'z')+ goto yy735;+ goto yy727;+ }+ }+ yy732:+ yych = *++p;+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy736;+ if (yych != ';')+ goto yy727;+ yy733:+ ++p;+ { return (bufsize_t)(p - start); }+ yy734:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy737;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'F') {+ if (yych <= '@')+ goto yy727;+ goto yy737;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych <= 'f')+ goto yy737;+ goto yy727;+ }+ }+ yy735:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy738;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ goto yy738;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych <= 'z')+ goto yy738;+ goto yy727;+ }+ }+ yy736:+ yych = *++p;+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy739;+ if (yych == ';')+ goto yy733;+ goto yy727;+ yy737:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy740;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'F') {+ if (yych <= '@')+ goto yy727;+ goto yy740;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych <= 'f')+ goto yy740;+ goto yy727;+ }+ }+ yy738:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy741;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ goto yy741;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych <= 'z')+ goto yy741;+ goto yy727;+ }+ }+ yy739:+ yych = *++p;+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy742;+ if (yych == ';')+ goto yy733;+ goto yy727;+ yy740:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy743;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'F') {+ if (yych <= '@')+ goto yy727;+ goto yy743;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych <= 'f')+ goto yy743;+ goto yy727;+ }+ }+ yy741:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy744;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ goto yy744;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych <= 'z')+ goto yy744;+ goto yy727;+ }+ }+ yy742:+ yych = *++p;+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy745;+ if (yych == ';')+ goto yy733;+ goto yy727;+ yy743:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy746;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'F') {+ if (yych <= '@')+ goto yy727;+ goto yy746;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych <= 'f')+ goto yy746;+ goto yy727;+ }+ }+ yy744:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy747;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ goto yy747;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych <= 'z')+ goto yy747;+ goto yy727;+ }+ }+ yy745:+ yych = *++p;+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy748;+ if (yych == ';')+ goto yy733;+ goto yy727;+ yy746:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy748;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'F') {+ if (yych <= '@')+ goto yy727;+ goto yy748;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych <= 'f')+ goto yy748;+ goto yy727;+ }+ }+ yy747:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy749;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ goto yy749;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych <= 'z')+ goto yy749;+ goto yy727;+ }+ }+ yy748:+ yych = *++p;+ if (yych == ';')+ goto yy733;+ goto yy727;+ yy749:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy750;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy750:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy751;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy751:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy752;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy752:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy753;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy753:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy754;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy754:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy755;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy755:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy756;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy756:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy757;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy757:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy758;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy758:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy759;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy759:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy760;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy760:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy761;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy761:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy762;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy762:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy763;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy763:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy764;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy764:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy765;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy765:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy766;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy766:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy767;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy767:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy768;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy768:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy769;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy769:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy770;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy770:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy771;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy771:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy772;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych >= '{')+ goto yy727;+ }+ }+ yy772:+ yych = *++p;+ if (yych <= ';') {+ if (yych <= '/')+ goto yy727;+ if (yych <= '9')+ goto yy748;+ if (yych <= ':')+ goto yy727;+ goto yy733;+ } else {+ if (yych <= 'Z') {+ if (yych <= '@')+ goto yy727;+ goto yy748;+ } else {+ if (yych <= '`')+ goto yy727;+ if (yych <= 'z')+ goto yy748;+ goto yy727;+ }+ }+ }+}++// Returns positive value if a URL begins in a way that is potentially+// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.+bufsize_t _scan_dangerous_url(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ unsigned int yyaccept = 0;+ yych = *p;+ if (yych <= 'V') {+ if (yych <= 'F') {+ if (yych == 'D')+ goto yy775;+ if (yych >= 'F')+ goto yy776;+ } else {+ if (yych == 'J')+ goto yy777;+ if (yych >= 'V')+ goto yy778;+ }+ } else {+ if (yych <= 'f') {+ if (yych == 'd')+ goto yy775;+ if (yych >= 'f')+ goto yy776;+ } else {+ if (yych <= 'j') {+ if (yych >= 'j')+ goto yy777;+ } else {+ if (yych == 'v')+ goto yy778;+ }+ }+ }+ ++p;+ yy774 : { return 0; }+ yy775:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych == 'A')+ goto yy779;+ if (yych == 'a')+ goto yy779;+ goto yy774;+ yy776:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych == 'I')+ goto yy781;+ if (yych == 'i')+ goto yy781;+ goto yy774;+ yy777:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych == 'A')+ goto yy782;+ if (yych == 'a')+ goto yy782;+ goto yy774;+ yy778:+ yyaccept = 0;+ yych = *(marker = ++p);+ if (yych == 'B')+ goto yy783;+ if (yych == 'b')+ goto yy783;+ goto yy774;+ yy779:+ yych = *++p;+ if (yych == 'T')+ goto yy784;+ if (yych == 't')+ goto yy784;+ yy780:+ p = marker;+ if (yyaccept == 0) {+ goto yy774;+ } else {+ goto yy792;+ }+ yy781:+ yych = *++p;+ if (yych == 'L')+ goto yy785;+ if (yych == 'l')+ goto yy785;+ goto yy780;+ yy782:+ yych = *++p;+ if (yych == 'V')+ goto yy786;+ if (yych == 'v')+ goto yy786;+ goto yy780;+ yy783:+ yych = *++p;+ if (yych == 'S')+ goto yy787;+ if (yych == 's')+ goto yy787;+ goto yy780;+ yy784:+ yych = *++p;+ if (yych == 'A')+ goto yy788;+ if (yych == 'a')+ goto yy788;+ goto yy780;+ yy785:+ yych = *++p;+ if (yych == 'E')+ goto yy789;+ if (yych == 'e')+ goto yy789;+ goto yy780;+ yy786:+ yych = *++p;+ if (yych == 'A')+ goto yy783;+ if (yych == 'a')+ goto yy783;+ goto yy780;+ yy787:+ yych = *++p;+ if (yych == 'C')+ goto yy790;+ if (yych == 'c')+ goto yy790;+ goto yy780;+ yy788:+ yych = *++p;+ if (yych == ':')+ goto yy791;+ goto yy780;+ yy789:+ yych = *++p;+ if (yych == ':')+ goto yy793;+ goto yy780;+ yy790:+ yych = *++p;+ if (yych == 'R')+ goto yy794;+ if (yych == 'r')+ goto yy794;+ goto yy780;+ yy791:+ yyaccept = 1;+ yych = *(marker = ++p);+ if (yych == 'I')+ goto yy795;+ if (yych == 'i')+ goto yy795;+ yy792 : { return (bufsize_t)(p - start); }+ yy793:+ ++p;+ goto yy792;+ yy794:+ yych = *++p;+ if (yych == 'I')+ goto yy796;+ if (yych == 'i')+ goto yy796;+ goto yy780;+ yy795:+ yych = *++p;+ if (yych == 'M')+ goto yy797;+ if (yych == 'm')+ goto yy797;+ goto yy780;+ yy796:+ yych = *++p;+ if (yych == 'P')+ goto yy798;+ if (yych == 'p')+ goto yy798;+ goto yy780;+ yy797:+ yych = *++p;+ if (yych == 'A')+ goto yy799;+ if (yych == 'a')+ goto yy799;+ goto yy780;+ yy798:+ yych = *++p;+ if (yych == 'T')+ goto yy789;+ if (yych == 't')+ goto yy789;+ goto yy780;+ yy799:+ yych = *++p;+ if (yych == 'G')+ goto yy800;+ if (yych != 'g')+ goto yy780;+ yy800:+ yych = *++p;+ if (yych == 'E')+ goto yy801;+ if (yych != 'e')+ goto yy780;+ yy801:+ yych = *++p;+ if (yych != '/')+ goto yy780;+ yych = *++p;+ if (yych <= 'W') {+ if (yych <= 'J') {+ if (yych == 'G')+ goto yy802;+ if (yych <= 'I')+ goto yy780;+ goto yy803;+ } else {+ if (yych == 'P')+ goto yy804;+ if (yych <= 'V')+ goto yy780;+ goto yy805;+ }+ } else {+ if (yych <= 'j') {+ if (yych == 'g')+ goto yy802;+ if (yych <= 'i')+ goto yy780;+ goto yy803;+ } else {+ if (yych <= 'p') {+ if (yych <= 'o')+ goto yy780;+ goto yy804;+ } else {+ if (yych == 'w')+ goto yy805;+ goto yy780;+ }+ }+ }+ yy802:+ yych = *++p;+ if (yych == 'I')+ goto yy806;+ if (yych == 'i')+ goto yy806;+ goto yy780;+ yy803:+ yych = *++p;+ if (yych == 'P')+ goto yy807;+ if (yych == 'p')+ goto yy807;+ goto yy780;+ yy804:+ yych = *++p;+ if (yych == 'N')+ goto yy808;+ if (yych == 'n')+ goto yy808;+ goto yy780;+ yy805:+ yych = *++p;+ if (yych == 'E')+ goto yy809;+ if (yych == 'e')+ goto yy809;+ goto yy780;+ yy806:+ yych = *++p;+ if (yych == 'F')+ goto yy810;+ if (yych == 'f')+ goto yy810;+ goto yy780;+ yy807:+ yych = *++p;+ if (yych == 'E')+ goto yy808;+ if (yych != 'e')+ goto yy780;+ yy808:+ yych = *++p;+ if (yych == 'G')+ goto yy810;+ if (yych == 'g')+ goto yy810;+ goto yy780;+ yy809:+ yych = *++p;+ if (yych == 'B')+ goto yy811;+ if (yych == 'b')+ goto yy811;+ goto yy780;+ yy810:+ ++p;+ { return 0; }+ yy811:+ yych = *++p;+ if (yych == 'P')+ goto yy810;+ if (yych == 'p')+ goto yy810;+ goto yy780; } }
cbits/scanners.h view
@@ -11,6 +11,10 @@ bufsize_t _scan_autolink_uri(const unsigned char *p); bufsize_t _scan_autolink_email(const unsigned char *p); bufsize_t _scan_html_tag(const unsigned char *p);+bufsize_t _scan_html_comment(const unsigned char *p);+bufsize_t _scan_html_pi(const unsigned char *p);+bufsize_t _scan_html_declaration(const unsigned char *p);+bufsize_t _scan_html_cdata(const unsigned char *p); bufsize_t _scan_html_block_start(const unsigned char *p); bufsize_t _scan_html_block_start_7(const unsigned char *p); bufsize_t _scan_html_block_end_1(const unsigned char *p);@@ -22,7 +26,6 @@ bufsize_t _scan_spacechars(const unsigned char *p); bufsize_t _scan_atx_heading_start(const unsigned char *p); bufsize_t _scan_setext_heading_line(const unsigned char *p);-bufsize_t _scan_thematic_break(const unsigned char *p); bufsize_t _scan_open_code_fence(const unsigned char *p); bufsize_t _scan_close_code_fence(const unsigned char *p); bufsize_t _scan_entity(const unsigned char *p);@@ -32,6 +35,10 @@ #define scan_autolink_uri(c, n) _scan_at(&_scan_autolink_uri, c, n) #define scan_autolink_email(c, n) _scan_at(&_scan_autolink_email, c, n) #define scan_html_tag(c, n) _scan_at(&_scan_html_tag, c, n)+#define scan_html_comment(c, n) _scan_at(&_scan_html_comment, c, n)+#define scan_html_pi(c, n) _scan_at(&_scan_html_pi, c, n)+#define scan_html_declaration(c, n) _scan_at(&_scan_html_declaration, c, n)+#define scan_html_cdata(c, n) _scan_at(&_scan_html_cdata, c, n) #define scan_html_block_start(c, n) _scan_at(&_scan_html_block_start, c, n) #define scan_html_block_start_7(c, n) _scan_at(&_scan_html_block_start_7, c, n) #define scan_html_block_end_1(c, n) _scan_at(&_scan_html_block_end_1, c, n)@@ -44,7 +51,6 @@ #define scan_atx_heading_start(c, n) _scan_at(&_scan_atx_heading_start, c, n) #define scan_setext_heading_line(c, n) \ _scan_at(&_scan_setext_heading_line, c, n)-#define scan_thematic_break(c, n) _scan_at(&_scan_thematic_break, c, n) #define scan_open_code_fence(c, n) _scan_at(&_scan_open_code_fence, c, n) #define scan_close_code_fence(c, n) _scan_at(&_scan_close_code_fence, c, n) #define scan_entity(c, n) _scan_at(&_scan_entity, c, n)
cbits/xml.c view
@@ -7,17 +7,76 @@ #include "cmark.h" #include "node.h" #include "buffer.h"-#include "houdini.h" #define BUFFER_SIZE 100+#define MAX_INDENT 40 // Functions to convert cmark_nodes to XML strings. -static void escape_xml(cmark_strbuf *dest, const unsigned char *source,- bufsize_t length) {- houdini_escape_html0(dest, source, length, 0);+// C0 control characters, U+FFFE and U+FFF aren't allowed in XML.+static const char XML_ESCAPE_TABLE[256] = {+ /* 0x00 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1,+ /* 0x10 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,+ /* 0x20 */ 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ /* 0x30 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 0,+ /* 0x40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ /* 0x50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ /* 0x60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ /* 0x70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ /* 0x80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ /* 0x90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ /* 0xA0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ /* 0xB0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,+ /* 0xC0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ /* 0xD0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ /* 0xE0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+ /* 0xF0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+};++// U+FFFD Replacement Character encoded in UTF-8+#define UTF8_REPL "\xEF\xBF\xBD"++static const char *XML_ESCAPES[] = {+ "", UTF8_REPL, """, "&", "<", ">"+};++static void escape_xml(cmark_strbuf *ob, const unsigned char *src,+ bufsize_t size) {+ bufsize_t i = 0, org, esc = 0;++ while (i < size) {+ org = i;+ while (i < size && (esc = XML_ESCAPE_TABLE[src[i]]) == 0)+ i++;++ if (i > org)+ cmark_strbuf_put(ob, src + org, i - org);++ if (i >= size)+ break;++ if (esc == 9) {+ // To replace U+FFFE and U+FFFF with U+FFFD, only the last byte has to+ // be changed.+ // We know that src[i] is 0xBE or 0xBF.+ if (i >= 2 && src[i-2] == 0xEF && src[i-1] == 0xBF) {+ cmark_strbuf_putc(ob, 0xBD);+ } else {+ cmark_strbuf_putc(ob, src[i]);+ }+ } else {+ cmark_strbuf_puts(ob, XML_ESCAPES[esc]);+ }++ i++;+ } } +static void escape_xml_str(cmark_strbuf *dest, const unsigned char *source) {+ if (source)+ escape_xml(dest, source, strlen((char *)source));+}+ struct render_state { cmark_strbuf *xml; int indent;@@ -25,7 +84,7 @@ static CMARK_INLINE void indent(struct render_state *state) { int i;- for (i = 0; i < state->indent; i++) {+ for (i = 0; i < state->indent && i < MAX_INDENT; i++) { cmark_strbuf_putc(state->xml, ' '); } }@@ -60,8 +119,8 @@ case CMARK_NODE_CODE: case CMARK_NODE_HTML_BLOCK: case CMARK_NODE_HTML_INLINE:- cmark_strbuf_puts(xml, ">");- escape_xml(xml, node->as.literal.data, node->as.literal.len);+ cmark_strbuf_puts(xml, " xml:space=\"preserve\">");+ escape_xml(xml, node->data, node->len); cmark_strbuf_puts(xml, "</"); cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); literal = true;@@ -95,13 +154,13 @@ cmark_strbuf_puts(xml, buffer); break; case CMARK_NODE_CODE_BLOCK:- if (node->as.code.info.len > 0) {+ if (node->as.code.info) { cmark_strbuf_puts(xml, " info=\"");- escape_xml(xml, node->as.code.info.data, node->as.code.info.len);+ escape_xml_str(xml, node->as.code.info); cmark_strbuf_putc(xml, '"'); }- cmark_strbuf_puts(xml, ">");- escape_xml(xml, node->as.code.literal.data, node->as.code.literal.len);+ cmark_strbuf_puts(xml, " xml:space=\"preserve\">");+ escape_xml(xml, node->data, node->len); cmark_strbuf_puts(xml, "</"); cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); literal = true;@@ -109,22 +168,22 @@ case CMARK_NODE_CUSTOM_BLOCK: case CMARK_NODE_CUSTOM_INLINE: cmark_strbuf_puts(xml, " on_enter=\"");- escape_xml(xml, node->as.custom.on_enter.data,- node->as.custom.on_enter.len);+ escape_xml_str(xml, node->as.custom.on_enter); cmark_strbuf_putc(xml, '"'); cmark_strbuf_puts(xml, " on_exit=\"");- escape_xml(xml, node->as.custom.on_exit.data,- node->as.custom.on_exit.len);+ escape_xml_str(xml, node->as.custom.on_exit); cmark_strbuf_putc(xml, '"'); break; case CMARK_NODE_LINK: case CMARK_NODE_IMAGE: cmark_strbuf_puts(xml, " destination=\"");- escape_xml(xml, node->as.link.url.data, node->as.link.url.len);- cmark_strbuf_putc(xml, '"');- cmark_strbuf_puts(xml, " title=\"");- escape_xml(xml, node->as.link.title.data, node->as.link.title.len);+ escape_xml_str(xml, node->as.link.url); cmark_strbuf_putc(xml, '"');+ if (node->as.link.title) {+ cmark_strbuf_puts(xml, " title=\"");+ escape_xml_str(xml, node->as.link.title);+ cmark_strbuf_putc(xml, '"');+ } break; default: break;@@ -149,7 +208,7 @@ char *cmark_render_xml(cmark_node *root, int options) { char *result;- cmark_strbuf xml = CMARK_BUF_INIT(cmark_node_mem(root));+ cmark_strbuf xml = CMARK_BUF_INIT(root->mem); cmark_event_type ev_type; cmark_node *cur; struct render_state state = {&xml, 0};
changelog view
@@ -1,3 +1,15 @@+cmark 0.7 (08 Jul 2023)++ * Update to cmark 0.30.3.+ * Allow text 2.+ * Remove benchmark suite.++cmark 0.6 (08 Apr 2019)++ * Update to cmark 0.29.0.+ * Export optUnsafe. Note that the default is now to suppress+ potentially unsafe HTML; set optUnsafe to return to the old behavior.+ cmark 0.5.6.3 (13 Mar 2019) * Use snoc instead of <> to add the null terminator.
cmark.cabal view
@@ -1,12 +1,12 @@ name: cmark-version: 0.5.6.3+version: 0.6.1 synopsis: Fast, accurate CommonMark (Markdown) parser and renderer description: This package provides Haskell bindings for <https://github.com/jgm/cmark libcmark>, the reference parser for <http://commonmark.org CommonMark>, a fully specified variant of Markdown. It includes sources for- libcmark (0.28.0) and does not require prior installation of the+ libcmark (0.30.3) and does not require prior installation of the C library. homepage: https://github.com/jgm/cmark-hs@@ -14,9 +14,8 @@ license-file: LICENSE author: John MacFarlane maintainer: jgm@berkeley.edu-copyright: (C) 2015--17 John MacFarlane+copyright: (C) 2015-17 John MacFarlane category: Text-tested-with: GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.2, GHC == 7.10.3 build-type: Simple extra-source-files: README.md changelog@@ -40,8 +39,6 @@ cbits/scanners.h cbits/case_fold_switch.inc cbits/entities.inc- bench/sample.md- bench/full-sample.md cabal-version: 1.14 Source-repository head@@ -55,7 +52,7 @@ library exposed-modules: CMark build-depends: base >=4.5 && < 5.0,- text >= 1.0 && < 1.3,+ text >= 1.0 && < 2.1, bytestring if impl(ghc < 7.6) build-depends: ghc-prim >= 0.2@@ -87,23 +84,10 @@ cbits/xml.c cbits/render.c -benchmark bench-cmark- type: exitcode-stdio-1.0- hs-source-dirs: bench- main-is: bench-cmark.hs- build-depends: base, text, cmark, criterion,- sundown >= 0.6 && < 0.7,- cheapskate >= 0.1 && < 0.2,- markdown >= 0.1 && < 0.2,- discount >= 0.1 && < 0.2,- blaze-html >= 0.7 && < 0.10- ghc-options: -O2- default-language: Haskell2010- Test-Suite test-cmark type: exitcode-stdio-1.0 main-is: test-cmark.hs hs-source-dirs: test build-depends: base, cmark, text, HUnit >= 1.2 && < 1.7 ghc-options: -Wall -fno-warn-unused-do-bind -threaded- default-language: Haskell98+ default-language: Haskell2010
test/test-cmark.hs view
@@ -16,11 +16,11 @@ -- Here we just make sure it's basically working. tests :: Test tests = TestList [- "<h1>Hi</h1>\n" ~=? commonmarkToHtml [] "# Hi"+ "<h1>Hi</h1>\n<p><em>there</em></p>\n" ~=? commonmarkToHtml [] "# Hi\n\n*there*" , "<p>dog’s</p>\n" ~=? commonmarkToHtml [optSmart] "dog's" , "<p><a href=\"\">trick</a></p>\n" ~=? commonmarkToHtml [optSafe] "[trick](javascript:alert('hi'))" , ".RS\n.PP\nquote\n.RE\n" ~=? commonmarkToMan [] Nothing "> quote"- , (Node (Just (PosInfo {startLine = 1, startColumn = 1, endLine = 1, endColumn = 13})) DOCUMENT [Node (Just (PosInfo {startLine = 1, startColumn = 1, endLine = 1, endColumn = 13})) PARAGRAPH [Node Nothing (TEXT "Hello ") [],Node Nothing EMPH [Node Nothing (TEXT "world") []]]]) ~=? commonmarkToNode [] "Hello *world*"+ , Node (Just (PosInfo {startLine = 1, startColumn = 1, endLine = 1, endColumn = 13})) DOCUMENT [Node (Just (PosInfo {startLine = 1, startColumn = 1, endLine = 1, endColumn = 13})) PARAGRAPH [Node (Just (PosInfo {startLine = 1, startColumn = 1, endLine = 1, endColumn = 6})) (TEXT "Hello ") [],Node (Just (PosInfo {startLine = 1, startColumn = 7, endLine = 1, endColumn = 13})) EMPH [Node (Just (PosInfo {startLine = 1, startColumn = 8, endLine = 1, endColumn = 12})) (TEXT "world") []]]] ~=? commonmarkToNode [] "Hello *world*" , "> Hello\n> *world*\n" ~=? nodeToCommonmark [] (Just 12) (Node Nothing DOCUMENT [Node Nothing BLOCK_QUOTE [Node Nothing PARAGRAPH [Node Nothing (TEXT "Hello ") [],Node Nothing EMPH [Node Nothing (TEXT "world") []]]]]) ]