From 54f4f31312f90691bf7d81d8475ab22d476afda3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Teichgr=C3=A4ber?= Date: Mon, 13 Dec 2010 19:44:11 +0100 Subject: [PATCH] add parser.leg.go to help goinstall build the project --- README.markdown | 42 +- parser.leg.go | 12443 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 12467 insertions(+), 18 deletions(-) create mode 100644 parser.leg.go diff --git a/README.markdown b/README.markdown index add552e..3dca97b 100644 --- a/README.markdown +++ b/README.markdown @@ -30,26 +30,10 @@ Provided you have a recent copy of Go, and git is available, should install the package into `$GOROOT/src/pkg/github.com/knieriem/markdown`, and build -it. During the build, a copy of [knieriem/peg][] will be -downloaded from github and compiled (`make peg` if done -manually). - -**NOTE:** At the moment, goinstall most likely will fail, -as it does not use the package's Makefile, but generates -its own, which is not sufficient as it does not know how -to build parser.leg.go from parser.leg. As a workaround, -after the failed goinstall, please do the following steps to -finish the installation: - - cd $GOROOT/src/pkg/github.com/knieriem/markdown - gomake install +it. See doc.go for an example how to use the package. -To update [knieriem/peg][] run `gomake update-peg`. This -will fetch available revisions from github, and remove the -old *leg* binary. - To create the command line program *markdown,* run cd $GOROOT/src/pkg/github.com/knieriem/markdown @@ -69,6 +53,28 @@ applies to peg-markdown, because the grammar is the same. See the [original README][] for details. [original README]: https://github.com/jgm/peg-markdown/blob/master/README.markdown + +## Development + +[`Goinstall`][Goinstall] is creating its own Makefiles to build +packages, based on the `.go` files found in the directory. +It would not know about `parser.leg.go`, which had to be built +by `leg` from the `parser.leg` grammar source file first. +Because of this, to make *markdown* installable using +`goinstall`, `parser.leg.go` has been added to the VCS. + +`Make` will update `parser.leg.go` using `leg`, which is part of +[knieriem/peg][] at github, if parser.leg has been changed. If +a copy of this package has not yet been downloaded -- i.e. no +directory `./peg` is present --, `make` will perform the +neccessary steps automatically (run `make peg` to manually +download [knieriem/peg][]). + +To update [knieriem/peg][] run `gomake update-peg`. This will +fetch available revisions from github, and remove the old +*leg* binary. + +[goinstall]: http://golang.org/cmd/goinstall/ [knieriem/peg]: https://github.com/knieriem/peg @@ -79,7 +85,7 @@ this package also supports definition lists (option `-dlists`) similar to the way they are described in the documentation of [PHP Markdown Extra][]. -Definitions (`
...
`) are implemented using [ListTight][] +Definitions (`
...
`) are implemented using [`ListTight`][ListTight] and `ListLoose`, on which bullet lists and ordered lists are based already. If there is an empty line between the definition title and the first definition, a loose list is expected, a tight list otherwise. diff --git a/parser.leg.go b/parser.leg.go new file mode 100644 index 0000000..4d7aac5 --- /dev/null +++ b/parser.leg.go @@ -0,0 +1,12443 @@ + +/* Original C version https://github.com/jgm/peg-markdown/ + * Copyright 2008 John MacFarlane (jgm at berkeley dot edu). + * + * Modifications and translation from C into Go + * based on markdown_parser.leg and utility_functions.c + * Copyright 2010 Michael Teichgräber (mt at wmipf dot de) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License or the MIT + * license. See LICENSE for details. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +package markdown + +// PEG grammar and parser actions for markdown syntax. + +import ( + "fmt" + "strings" + "log" + "sync" +) + +// Semantic value of a parsing action. +type element struct { + key int + contents + children *element + next *element +} + +// Information (label, URL and title) for a link. +type link struct { + label *element + url string + title string +} + +// Union for contents of an Element (string, list, or link). +type contents struct { + str string + *link +} + +// Types of semantic values returned by parsers. +const ( + LIST = iota /* A generic list of values. For ordered and bullet lists, see below. */ + RAW /* Raw markdown to be processed further */ + SPACE + LINEBREAK + ELLIPSIS + EMDASH + ENDASH + APOSTROPHE + SINGLEQUOTED + DOUBLEQUOTED + STR + LINK + IMAGE + CODE + HTML + EMPH + STRONG + PLAIN + PARA + LISTITEM + BULLETLIST + ORDEREDLIST + H1 /* Code assumes that H1..6 are in order. */ + H2 + H3 + H4 + H5 + H6 + BLOCKQUOTE + VERBATIM + HTMLBLOCK + HRULE + REFERENCE + NOTE + DEFINITIONLIST + DEFTITLE + DEFDATA + numVAL +) + +type Doc struct { + parser *yyParser + extension Extensions + + tree *element /* Results of parse. */ + references *element /* List of link references found. */ + notes *element /* List of footnotes found. */ +} + + +const ( + ruleDoc = iota + ruleBlock + rulePara + rulePlain + ruleAtxInline + ruleAtxStart + ruleAtxHeading + ruleSetextHeading + ruleSetextBottom1 + ruleSetextBottom2 + ruleSetextHeading1 + ruleSetextHeading2 + ruleHeading + ruleBlockQuote + ruleBlockQuoteRaw + ruleNonblankIndentedLine + ruleVerbatimChunk + ruleVerbatim + ruleHorizontalRule + ruleBullet + ruleBulletList + ruleListTight + ruleListLoose + ruleListItem + ruleListBlock + ruleListContinuationBlock + ruleEnumerator + ruleOrderedList + ruleListBlockLine + ruleHtmlBlockOpenAddress + ruleHtmlBlockCloseAddress + ruleHtmlBlockOpenBlockquote + ruleHtmlBlockCloseBlockquote + ruleHtmlBlockOpenCenter + ruleHtmlBlockCloseCenter + ruleHtmlBlockOpenDir + ruleHtmlBlockCloseDir + ruleHtmlBlockOpenDiv + ruleHtmlBlockCloseDiv + ruleHtmlBlockOpenDl + ruleHtmlBlockCloseDl + ruleHtmlBlockOpenFieldset + ruleHtmlBlockCloseFieldset + ruleHtmlBlockOpenForm + ruleHtmlBlockCloseForm + ruleHtmlBlockOpenH1 + ruleHtmlBlockCloseH1 + ruleHtmlBlockOpenH2 + ruleHtmlBlockCloseH2 + ruleHtmlBlockOpenH3 + ruleHtmlBlockCloseH3 + ruleHtmlBlockOpenH4 + ruleHtmlBlockCloseH4 + ruleHtmlBlockOpenH5 + ruleHtmlBlockCloseH5 + ruleHtmlBlockOpenH6 + ruleHtmlBlockCloseH6 + ruleHtmlBlockOpenMenu + ruleHtmlBlockCloseMenu + ruleHtmlBlockOpenNoframes + ruleHtmlBlockCloseNoframes + ruleHtmlBlockOpenNoscript + ruleHtmlBlockCloseNoscript + ruleHtmlBlockOpenOl + ruleHtmlBlockCloseOl + ruleHtmlBlockOpenP + ruleHtmlBlockCloseP + ruleHtmlBlockOpenPre + ruleHtmlBlockClosePre + ruleHtmlBlockOpenTable + ruleHtmlBlockCloseTable + ruleHtmlBlockOpenUl + ruleHtmlBlockCloseUl + ruleHtmlBlockOpenDd + ruleHtmlBlockCloseDd + ruleHtmlBlockOpenDt + ruleHtmlBlockCloseDt + ruleHtmlBlockOpenFrameset + ruleHtmlBlockCloseFrameset + ruleHtmlBlockOpenLi + ruleHtmlBlockCloseLi + ruleHtmlBlockOpenTbody + ruleHtmlBlockCloseTbody + ruleHtmlBlockOpenTd + ruleHtmlBlockCloseTd + ruleHtmlBlockOpenTfoot + ruleHtmlBlockCloseTfoot + ruleHtmlBlockOpenTh + ruleHtmlBlockCloseTh + ruleHtmlBlockOpenThead + ruleHtmlBlockCloseThead + ruleHtmlBlockOpenTr + ruleHtmlBlockCloseTr + ruleHtmlBlockOpenScript + ruleHtmlBlockCloseScript + ruleHtmlBlockInTags + ruleHtmlBlock + ruleHtmlBlockSelfClosing + ruleHtmlBlockType + ruleStyleOpen + ruleStyleClose + ruleInStyleTags + ruleStyleBlock + ruleInlines + ruleInline + ruleSpace + ruleStr + ruleEscapedChar + ruleEntity + ruleEndline + ruleNormalEndline + ruleTerminalEndline + ruleLineBreak + ruleSymbol + ruleUlOrStarLine + ruleStarLine + ruleUlLine + ruleEmph + ruleOneStarOpen + ruleOneStarClose + ruleEmphStar + ruleOneUlOpen + ruleOneUlClose + ruleEmphUl + ruleStrong + ruleTwoStarOpen + ruleTwoStarClose + ruleStrongStar + ruleTwoUlOpen + ruleTwoUlClose + ruleStrongUl + ruleImage + ruleLink + ruleReferenceLink + ruleReferenceLinkDouble + ruleReferenceLinkSingle + ruleExplicitLink + ruleSource + ruleSourceContents + ruleTitle + ruleTitleSingle + ruleTitleDouble + ruleAutoLink + ruleAutoLinkUrl + ruleAutoLinkEmail + ruleReference + ruleLabel + ruleRefSrc + ruleRefTitle + ruleEmptyTitle + ruleRefTitleSingle + ruleRefTitleDouble + ruleRefTitleParens + ruleReferences + ruleTicks1 + ruleTicks2 + ruleTicks3 + ruleTicks4 + ruleTicks5 + ruleCode + ruleRawHtml + ruleBlankLine + ruleQuoted + ruleHtmlAttribute + ruleHtmlComment + ruleHtmlTag + ruleEof + ruleSpacechar + ruleNonspacechar + ruleNewline + ruleSp + ruleSpnl + ruleSpecialChar + ruleNormalChar + ruleAlphanumeric + ruleDigit + ruleHexEntity + ruleDecEntity + ruleCharEntity + ruleNonindentSpace + ruleIndent + ruleIndentedLine + ruleOptionallyIndentedLine + ruleStartList + ruleLine + ruleRawLine + ruleSkipBlock + ruleExtendedSpecialChar + ruleSmart + ruleApostrophe + ruleEllipsis + ruleDash + ruleEnDash + ruleEmDash + ruleSingleQuoteStart + ruleSingleQuoteEnd + ruleSingleQuoted + ruleDoubleQuoteStart + ruleDoubleQuoteEnd + ruleDoubleQuoted + ruleNoteReference + ruleRawNoteReference + ruleNote + ruleInlineNote + ruleNotes + ruleRawNoteBlock + ruleDefinitionList + ruleDefinition + ruleDListTitle + ruleDefTight + ruleDefLoose + ruleDefmark + ruleDefMarker +) + +type yyParser struct {*Doc + Buffer string + Min, Max int + rules [213]func() bool + ResetBuffer func(string) string +} + +func (p *yyParser) Parse(ruleId int) bool { + if p.rules[ruleId]() { + return true + } + return false +} +func (p *yyParser) PrintError() { + line := 1 + character := 0 + for i, c := range p.Buffer[0:] { + if c == '\n' { + line++ + character = 0 + } else { + character++ + } + if i == p.Min { + if p.Min != p.Max { + fmt.Printf("parse error after line %v character %v\n", line, character) + } else { + break + } + } else if i == p.Max { + break + } + } + fmt.Printf("parse error: unexpected ") + if p.Max >= len(p.Buffer) { + fmt.Printf("end of file found\n") + } else { + fmt.Printf("'%c' at line %v character %v\n", p.Buffer[p.Max], line, character) + } +} +func (p *yyParser) Init() { + var position int + var yyp int + var yy *element + var yyval = make([]*element, 200) + + actions := [...]func(string, int){ + /* 0 Doc */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 1 Doc */ + func(yytext string, _ int) { + a := yyval[yyp-1] + p.tree = reverse(a) + yyval[yyp-1] = a + }, + /* 2 Para */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = a; yy.key = PARA + yyval[yyp-1] = a + }, + /* 3 Plain */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = a; yy.key = PLAIN + yyval[yyp-1] = a + }, + /* 4 AtxStart */ + func(yytext string, _ int) { + yy = mk_element(H1 + (len(yytext) - 1)) + }, + /* 5 AtxHeading */ + func(yytext string, _ int) { + s := yyval[yyp-1] + a := yyval[yyp-2] + a = cons(yy, a) + yyval[yyp-1] = s + yyval[yyp-2] = a + }, + /* 6 AtxHeading */ + func(yytext string, _ int) { + s := yyval[yyp-1] + a := yyval[yyp-2] + yy = mk_list(s.key, a) + s = nil + yyval[yyp-1] = s + yyval[yyp-2] = a + }, + /* 7 SetextHeading1 */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 8 SetextHeading1 */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_list(H1, a) + yyval[yyp-1] = a + }, + /* 9 SetextHeading2 */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 10 SetextHeading2 */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_list(H2, a) + yyval[yyp-1] = a + }, + /* 11 BlockQuote */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_element(BLOCKQUOTE) + yy.children = a + + yyval[yyp-1] = a + }, + /* 12 BlockQuoteRaw */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 13 BlockQuoteRaw */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 14 BlockQuoteRaw */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(mk_str("\n"), a) + yyval[yyp-1] = a + }, + /* 15 BlockQuoteRaw */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_str_from_list(a, true) + yy.key = RAW + + yyval[yyp-1] = a + }, + /* 16 VerbatimChunk */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(mk_str("\n"), a) + yyval[yyp-1] = a + }, + /* 17 VerbatimChunk */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 18 VerbatimChunk */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_str_from_list(a, false) + yyval[yyp-1] = a + }, + /* 19 Verbatim */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 20 Verbatim */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_str_from_list(a, false) + yy.key = VERBATIM + yyval[yyp-1] = a + }, + /* 21 HorizontalRule */ + func(yytext string, _ int) { + yy = mk_element(HRULE) + }, + /* 22 BulletList */ + func(yytext string, _ int) { + yy.key = BULLETLIST + }, + /* 23 ListTight */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 24 ListTight */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_list(LIST, a) + yyval[yyp-1] = a + }, + /* 25 ListLoose */ + func(yytext string, _ int) { + a := yyval[yyp-1] + b := yyval[yyp-2] + + li := b.children + li.contents.str += "\n\n" + a = cons(b, a) + + yyval[yyp-1] = a + yyval[yyp-2] = b + }, + /* 26 ListLoose */ + func(yytext string, _ int) { + a := yyval[yyp-1] + b := yyval[yyp-2] + yy = mk_list(LIST, a) + yyval[yyp-1] = a + yyval[yyp-2] = b + }, + /* 27 ListItem */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 28 ListItem */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 29 ListItem */ + func(yytext string, _ int) { + a := yyval[yyp-1] + + raw := mk_str_from_list(a, false) + raw.key = RAW + yy = mk_element(LISTITEM) + yy.children = raw + + yyval[yyp-1] = a + }, + /* 30 ListBlock */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 31 ListBlock */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 32 ListBlock */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_str_from_list(a, false) + yyval[yyp-1] = a + }, + /* 33 ListContinuationBlock */ + func(yytext string, _ int) { + a := yyval[yyp-1] + if len(yytext) == 0 { + a = cons(mk_str("\001"), a) // block separator + } else { + a = cons(mk_str(yytext), a) + } + + yyval[yyp-1] = a + }, + /* 34 ListContinuationBlock */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 35 ListContinuationBlock */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_str_from_list(a, false) + yyval[yyp-1] = a + }, + /* 36 OrderedList */ + func(yytext string, _ int) { + yy.key = ORDEREDLIST + }, + /* 37 HtmlBlock */ + func(yytext string, _ int) { + if p.extension.FilterHTML { + yy = mk_list(LIST, nil) + } else { + yy = mk_str(yytext) + yy.key = HTMLBLOCK + } + + }, + /* 38 StyleBlock */ + func(yytext string, _ int) { + if p.extension.FilterStyles { + yy = mk_list(LIST, nil) + } else { + yy = mk_str(yytext) + yy.key = HTMLBLOCK + } + + }, + /* 39 Inlines */ + func(yytext string, _ int) { + c := yyval[yyp-1] + a := yyval[yyp-2] + a = cons(yy, a) + yyval[yyp-1] = c + yyval[yyp-2] = a + }, + /* 40 Inlines */ + func(yytext string, _ int) { + c := yyval[yyp-1] + a := yyval[yyp-2] + a = cons(c, a) + yyval[yyp-1] = c + yyval[yyp-2] = a + }, + /* 41 Inlines */ + func(yytext string, _ int) { + c := yyval[yyp-1] + a := yyval[yyp-2] + yy = mk_list(LIST, a) + yyval[yyp-1] = c + yyval[yyp-2] = a + }, + /* 42 Space */ + func(yytext string, _ int) { + yy = mk_str(" ") + yy.key = SPACE + }, + /* 43 Str */ + func(yytext string, _ int) { + yy = mk_str(yytext) + }, + /* 44 EscapedChar */ + func(yytext string, _ int) { + yy = mk_str(yytext) + }, + /* 45 Entity */ + func(yytext string, _ int) { + yy = mk_str(yytext); yy.key = HTML + }, + /* 46 NormalEndline */ + func(yytext string, _ int) { + yy = mk_str("\n") + yy.key = SPACE + }, + /* 47 TerminalEndline */ + func(yytext string, _ int) { + yy = nil + }, + /* 48 LineBreak */ + func(yytext string, _ int) { + yy = mk_element(LINEBREAK) + }, + /* 49 Symbol */ + func(yytext string, _ int) { + yy = mk_str(yytext) + }, + /* 50 UlOrStarLine */ + func(yytext string, _ int) { + yy = mk_str(yytext) + }, + /* 51 OneStarClose */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = a + yyval[yyp-1] = a + }, + /* 52 EmphStar */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 53 EmphStar */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 54 EmphStar */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_list(EMPH, a) + yyval[yyp-1] = a + }, + /* 55 OneUlClose */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = a + yyval[yyp-1] = a + }, + /* 56 EmphUl */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 57 EmphUl */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 58 EmphUl */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_list(EMPH, a) + yyval[yyp-1] = a + }, + /* 59 TwoStarClose */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = a + yyval[yyp-1] = a + }, + /* 60 StrongStar */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 61 StrongStar */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 62 StrongStar */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_list(STRONG, a) + yyval[yyp-1] = a + }, + /* 63 TwoUlClose */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = a + yyval[yyp-1] = a + }, + /* 64 StrongUl */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 65 StrongUl */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 66 StrongUl */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_list(STRONG, a) + yyval[yyp-1] = a + }, + /* 67 Image */ + func(yytext string, _ int) { + yy.key = IMAGE + }, + /* 68 ReferenceLinkDouble */ + func(yytext string, _ int) { + a := yyval[yyp-1] + b := yyval[yyp-2] + + if match, found := p.findReference(b.children); found { + yy = mk_link(a.children, match.url, match.title); + a = nil + b = nil + } else { + result := mk_element(LIST) + result.children = cons(mk_str("["), cons(a, cons(mk_str("]"), cons(mk_str(yytext), + cons(mk_str("["), cons(b, mk_str("]"))))))) + yy = result + } + + yyval[yyp-1] = a + yyval[yyp-2] = b + }, + /* 69 ReferenceLinkSingle */ + func(yytext string, _ int) { + a := yyval[yyp-1] + + if match, found := p.findReference(a.children); found { + yy = mk_link(a.children, match.url, match.title) + a = nil + } else { + result := mk_element(LIST) + result.children = cons(mk_str("["), cons(a, cons(mk_str("]"), mk_str(yytext)))); + yy = result + } + + yyval[yyp-1] = a + }, + /* 70 ExplicitLink */ + func(yytext string, _ int) { + s := yyval[yyp-1] + l := yyval[yyp-2] + t := yyval[yyp-3] + yy = mk_link(l.children, s.contents.str, t.contents.str) + s = nil + t = nil + l = nil + yyval[yyp-1] = s + yyval[yyp-2] = l + yyval[yyp-3] = t + }, + /* 71 Source */ + func(yytext string, _ int) { + yy = mk_str(yytext) + }, + /* 72 Title */ + func(yytext string, _ int) { + yy = mk_str(yytext) + }, + /* 73 AutoLinkUrl */ + func(yytext string, _ int) { + yy = mk_link(mk_str(yytext), yytext, "") + }, + /* 74 AutoLinkEmail */ + func(yytext string, _ int) { + + yy = mk_link(mk_str(yytext), "mailto:"+yytext, "") + + }, + /* 75 Reference */ + func(yytext string, _ int) { + s := yyval[yyp-1] + l := yyval[yyp-2] + t := yyval[yyp-3] + yy = mk_link(l.children, s.contents.str, t.contents.str) + s = nil + t = nil + l = nil + yy.key = REFERENCE + yyval[yyp-1] = s + yyval[yyp-2] = l + yyval[yyp-3] = t + }, + /* 76 Label */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 77 Label */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_list(LIST, a) + yyval[yyp-1] = a + }, + /* 78 RefSrc */ + func(yytext string, _ int) { + yy = mk_str(yytext) + yy.key = HTML + }, + /* 79 RefTitle */ + func(yytext string, _ int) { + yy = mk_str(yytext) + }, + /* 80 References */ + func(yytext string, _ int) { + a := yyval[yyp-1] + b := yyval[yyp-2] + a = cons(b, a) + yyval[yyp-1] = a + yyval[yyp-2] = b + }, + /* 81 References */ + func(yytext string, _ int) { + a := yyval[yyp-1] + b := yyval[yyp-2] + p.references = reverse(a) + yyval[yyp-1] = a + yyval[yyp-2] = b + }, + /* 82 Code */ + func(yytext string, _ int) { + yy = mk_str(yytext); yy.key = CODE + }, + /* 83 RawHtml */ + func(yytext string, _ int) { + if p.extension.FilterHTML { + yy = mk_list(LIST, nil) + } else { + yy = mk_str(yytext) + yy.key = HTML + } + + }, + /* 84 StartList */ + func(yytext string, _ int) { + yy = nil + }, + /* 85 Line */ + func(yytext string, _ int) { + yy = mk_str(yytext) + }, + /* 86 Apostrophe */ + func(yytext string, _ int) { + yy = mk_element(APOSTROPHE) + }, + /* 87 Ellipsis */ + func(yytext string, _ int) { + yy = mk_element(ELLIPSIS) + }, + /* 88 EnDash */ + func(yytext string, _ int) { + yy = mk_element(ENDASH) + }, + /* 89 EmDash */ + func(yytext string, _ int) { + yy = mk_element(EMDASH) + }, + /* 90 SingleQuoted */ + func(yytext string, _ int) { + a := yyval[yyp-1] + b := yyval[yyp-2] + a = cons(b, a) + yyval[yyp-1] = a + yyval[yyp-2] = b + }, + /* 91 SingleQuoted */ + func(yytext string, _ int) { + a := yyval[yyp-1] + b := yyval[yyp-2] + yy = mk_list(SINGLEQUOTED, a) + yyval[yyp-1] = a + yyval[yyp-2] = b + }, + /* 92 DoubleQuoted */ + func(yytext string, _ int) { + a := yyval[yyp-1] + b := yyval[yyp-2] + a = cons(b, a) + yyval[yyp-1] = a + yyval[yyp-2] = b + }, + /* 93 DoubleQuoted */ + func(yytext string, _ int) { + a := yyval[yyp-1] + b := yyval[yyp-2] + yy = mk_list(DOUBLEQUOTED, a) + yyval[yyp-1] = a + yyval[yyp-2] = b + }, + /* 94 NoteReference */ + func(yytext string, _ int) { + ref := yyval[yyp-1] + + if match, ok := p.find_note(ref.contents.str); ok { + yy = mk_element(NOTE) + yy.children = match.children + yy.contents.str = "" + } else { + yy = mk_str("[^"+ref.contents.str+"]") + } + + yyval[yyp-1] = ref + }, + /* 95 RawNoteReference */ + func(yytext string, _ int) { + yy = mk_str(yytext) + }, + /* 96 Note */ + func(yytext string, _ int) { + ref := yyval[yyp-1] + a := yyval[yyp-2] + a = cons(yy, a) + yyval[yyp-1] = ref + yyval[yyp-2] = a + }, + /* 97 Note */ + func(yytext string, _ int) { + ref := yyval[yyp-1] + a := yyval[yyp-2] + a = cons(yy, a) + yyval[yyp-1] = ref + yyval[yyp-2] = a + }, + /* 98 Note */ + func(yytext string, _ int) { + ref := yyval[yyp-1] + a := yyval[yyp-2] + yy = mk_list(NOTE, a) + yy.contents.str = ref.contents.str + + yyval[yyp-1] = ref + yyval[yyp-2] = a + }, + /* 99 InlineNote */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 100 InlineNote */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_list(NOTE, a) + yy.contents.str = "" + yyval[yyp-1] = a + }, + /* 101 Notes */ + func(yytext string, _ int) { + a := yyval[yyp-1] + b := yyval[yyp-2] + a = cons(b, a) + yyval[yyp-1] = a + yyval[yyp-2] = b + }, + /* 102 Notes */ + func(yytext string, _ int) { + a := yyval[yyp-1] + b := yyval[yyp-2] + p.notes = reverse(a) + yyval[yyp-1] = a + yyval[yyp-2] = b + }, + /* 103 RawNoteBlock */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 104 RawNoteBlock */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(mk_str(yytext), a) + yyval[yyp-1] = a + }, + /* 105 RawNoteBlock */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_str_from_list(a, true) + yy.key = RAW + + yyval[yyp-1] = a + }, + /* 106 DefinitionList */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 107 DefinitionList */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_list(DEFINITIONLIST, a) + yyval[yyp-1] = a + }, + /* 108 Definition */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 109 Definition */ + func(yytext string, _ int) { + a := yyval[yyp-1] + + for e := yy.children; e != nil; e = e.next { + e.key = DEFDATA + } + a = cons(yy, a) + + yyval[yyp-1] = a + }, + /* 110 Definition */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_list(LIST, a) + yyval[yyp-1] = a + }, + /* 111 DListTitle */ + func(yytext string, _ int) { + a := yyval[yyp-1] + a = cons(yy, a) + yyval[yyp-1] = a + }, + /* 112 DListTitle */ + func(yytext string, _ int) { + a := yyval[yyp-1] + yy = mk_list(LIST, a) + yy.key = DEFTITLE + + yyval[yyp-1] = a + }, + /* 113 yyPush */ + func(_ string, count int) { + yyp += count + if yyp >= len(yyval) { + s := make([]*element, cap(yyval)+200) + copy(s, yyval) + yyval = s + } + }, + /* 114 yyPop */ + func(_ string, count int) { + yyp -= count + }, + /* 115 yySet */ + func(_ string, count int) { + yyval[yyp+count] = yy + }, + } + const ( + yyPush = 113+iota + yyPop + yySet + ) + + var thunkPosition, begin, end int + thunks := make([]struct {action uint8; begin, end int}, 32) + doarg := func(action uint8, arg int) { + if thunkPosition == len(thunks) { + newThunks := make([]struct {action uint8; begin, end int}, 2 * len(thunks)) + copy(newThunks, thunks) + thunks = newThunks + } + thunks[thunkPosition].action = action + if arg != 0 { + thunks[thunkPosition].begin = arg // use begin to store an argument + } else { + thunks[thunkPosition].begin = begin + } + thunks[thunkPosition].end = end + thunkPosition++ + } + do := func(action uint8) { + doarg(action, 0) + } + p.ResetBuffer = func(s string) (old string) { + if p.Max < len(p.Buffer) { + old = p.Buffer[p.Max:] + } + p.Buffer = s + thunkPosition = 0 + position = 0 + p.Min = 0 + p.Max = 0 + return + } + + commit := func(thunkPosition0 int) bool { + if thunkPosition0 == 0 { + for i := 0; i < thunkPosition; i++ { + b := thunks[i].begin + e := thunks[i].end + s := "" + if b>=0 && e<=len(p.Buffer) && b<=e { + s = p.Buffer[b:e] + } + magic := b + actions[thunks[i].action](s, magic) + } + p.Min = position + thunkPosition = 0 + return true + } + return false + } + matchDot := func() bool { + if position < len(p.Buffer) { + position++ + return true + } else if position >= p.Max { + p.Max = position + } + return false + } + peekDot := func() bool { + return position < len(p.Buffer) + } + matchChar := func(c byte) bool { + if (position < len(p.Buffer)) && (p.Buffer[position] == c) { + position++ + return true + } else if position >= p.Max { + p.Max = position + } + return false + } + peekChar := func(c byte) bool { + return position < len(p.Buffer) && p.Buffer[position] == c + } + matchString := func(s string) bool { + length := len(s) + next := position + length + if (next <= len(p.Buffer)) && (p.Buffer[position:next] == s) { + position = next + return true + } else if position >= p.Max { + p.Max = position + } + return false + } + classes := [...][32]uint8{ + {0, 0, 0, 0, 0, 0, 255, 3, 126, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 10, 111, 0, 80, 0, 0, 0, 184, 1, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, 7, 254, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 6, 0, 0, 3, 82, 0, 252, 0, 0, 0, 32, 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, 255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 255, 3, 254, 255, 255, 7, 254, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 40, 255, 3, 254, 255, 255, 135, 254, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + } + matchClass := func(class uint) bool { + if (position < len(p.Buffer)) && + ((classes[class][p.Buffer[position]>>3] & (1 << (p.Buffer[position] & 7))) != 0) { + position++ + return true + } else if position >= p.Max { + p.Max = position + } + return false + } + p.rules = [...]func() bool{ + /* 0 Doc <- (StartList (Block { a = cons(yy, a) })* { p.tree = reverse(a) } commit) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleStartList]() { + goto l0 + } + doarg(yySet, -1) + l1: + { + position2, thunkPosition2 := position, thunkPosition + if !p.rules[ruleBlock]() { + goto l2 + } + do(0) + goto l1 + l2: + position, thunkPosition = position2, thunkPosition2 + } + do(1) + if !(commit(thunkPosition0)) { + goto l0 + } + doarg(yyPop, 1) + return true + l0: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 1 Block <- (BlankLine* (BlockQuote / Verbatim / Note / Reference / HorizontalRule / Heading / DefinitionList / OrderedList / BulletList / HtmlBlock / StyleBlock / Para / Plain)) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + l4: + { + position5, thunkPosition5 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l5 + } + goto l4 + l5: + position, thunkPosition = position5, thunkPosition5 + } + { + position6, thunkPosition6 := position, thunkPosition + if !p.rules[ruleBlockQuote]() { + goto l7 + } + goto l6 + l7: + position, thunkPosition = position6, thunkPosition6 + if !p.rules[ruleVerbatim]() { + goto l8 + } + goto l6 + l8: + position, thunkPosition = position6, thunkPosition6 + if !p.rules[ruleNote]() { + goto l9 + } + goto l6 + l9: + position, thunkPosition = position6, thunkPosition6 + if !p.rules[ruleReference]() { + goto l10 + } + goto l6 + l10: + position, thunkPosition = position6, thunkPosition6 + if !p.rules[ruleHorizontalRule]() { + goto l11 + } + goto l6 + l11: + position, thunkPosition = position6, thunkPosition6 + if !p.rules[ruleHeading]() { + goto l12 + } + goto l6 + l12: + position, thunkPosition = position6, thunkPosition6 + if !p.rules[ruleDefinitionList]() { + goto l13 + } + goto l6 + l13: + position, thunkPosition = position6, thunkPosition6 + if !p.rules[ruleOrderedList]() { + goto l14 + } + goto l6 + l14: + position, thunkPosition = position6, thunkPosition6 + if !p.rules[ruleBulletList]() { + goto l15 + } + goto l6 + l15: + position, thunkPosition = position6, thunkPosition6 + if !p.rules[ruleHtmlBlock]() { + goto l16 + } + goto l6 + l16: + position, thunkPosition = position6, thunkPosition6 + if !p.rules[ruleStyleBlock]() { + goto l17 + } + goto l6 + l17: + position, thunkPosition = position6, thunkPosition6 + if !p.rules[rulePara]() { + goto l18 + } + goto l6 + l18: + position, thunkPosition = position6, thunkPosition6 + if !p.rules[rulePlain]() { + goto l3 + } + } + l6: + return true + l3: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 2 Para <- (NonindentSpace Inlines BlankLine+ { yy = a; yy.key = PARA }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleNonindentSpace]() { + goto l19 + } + if !p.rules[ruleInlines]() { + goto l19 + } + doarg(yySet, -1) + if !p.rules[ruleBlankLine]() { + goto l19 + } + l20: + { + position21, thunkPosition21 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l21 + } + goto l20 + l21: + position, thunkPosition = position21, thunkPosition21 + } + do(2) + doarg(yyPop, 1) + return true + l19: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 3 Plain <- (Inlines { yy = a; yy.key = PLAIN }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleInlines]() { + goto l22 + } + doarg(yySet, -1) + do(3) + doarg(yyPop, 1) + return true + l22: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 4 AtxInline <- (!Newline !(Sp '#'* Sp Newline) Inline) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position24, thunkPosition24 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l24 + } + goto l23 + l24: + position, thunkPosition = position24, thunkPosition24 + } + { + position25, thunkPosition25 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l25 + } + l26: + { + position27, thunkPosition27 := position, thunkPosition + if !matchChar('#') { + goto l27 + } + goto l26 + l27: + position, thunkPosition = position27, thunkPosition27 + } + if !p.rules[ruleSp]() { + goto l25 + } + if !p.rules[ruleNewline]() { + goto l25 + } + goto l23 + l25: + position, thunkPosition = position25, thunkPosition25 + } + if !p.rules[ruleInline]() { + goto l23 + } + return true + l23: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 5 AtxStart <- (&'#' < ('######' / '#####' / '####' / '###' / '##' / '#') > { yy = mk_element(H1 + (len(yytext) - 1)) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !peekChar('#') { + goto l28 + } + begin = position + { + position29, thunkPosition29 := position, thunkPosition + if !matchString("######") { + goto l30 + } + goto l29 + l30: + position, thunkPosition = position29, thunkPosition29 + if !matchString("#####") { + goto l31 + } + goto l29 + l31: + position, thunkPosition = position29, thunkPosition29 + if !matchString("####") { + goto l32 + } + goto l29 + l32: + position, thunkPosition = position29, thunkPosition29 + if !matchString("###") { + goto l33 + } + goto l29 + l33: + position, thunkPosition = position29, thunkPosition29 + if !matchString("##") { + goto l34 + } + goto l29 + l34: + position, thunkPosition = position29, thunkPosition29 + if !matchChar('#') { + goto l28 + } + } + l29: + end = position + do(4) + return true + l28: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 6 AtxHeading <- (AtxStart Sp StartList (AtxInline { a = cons(yy, a) })+ (Sp '#'* Sp)? Newline { yy = mk_list(s.key, a) + s = nil }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 2) + if !p.rules[ruleAtxStart]() { + goto l35 + } + doarg(yySet, -1) + if !p.rules[ruleSp]() { + goto l35 + } + if !p.rules[ruleStartList]() { + goto l35 + } + doarg(yySet, -2) + if !p.rules[ruleAtxInline]() { + goto l35 + } + do(5) + l36: + { + position37, thunkPosition37 := position, thunkPosition + if !p.rules[ruleAtxInline]() { + goto l37 + } + do(5) + goto l36 + l37: + position, thunkPosition = position37, thunkPosition37 + } + { + position38, thunkPosition38 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l38 + } + l40: + { + position41, thunkPosition41 := position, thunkPosition + if !matchChar('#') { + goto l41 + } + goto l40 + l41: + position, thunkPosition = position41, thunkPosition41 + } + if !p.rules[ruleSp]() { + goto l38 + } + goto l39 + l38: + position, thunkPosition = position38, thunkPosition38 + } + l39: + if !p.rules[ruleNewline]() { + goto l35 + } + do(6) + doarg(yyPop, 2) + return true + l35: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 7 SetextHeading <- (SetextHeading1 / SetextHeading2) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position43, thunkPosition43 := position, thunkPosition + if !p.rules[ruleSetextHeading1]() { + goto l44 + } + goto l43 + l44: + position, thunkPosition = position43, thunkPosition43 + if !p.rules[ruleSetextHeading2]() { + goto l42 + } + } + l43: + return true + l42: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 8 SetextBottom1 <- ('===' '='* Newline) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchString("===") { + goto l45 + } + l46: + { + position47, thunkPosition47 := position, thunkPosition + if !matchChar('=') { + goto l47 + } + goto l46 + l47: + position, thunkPosition = position47, thunkPosition47 + } + if !p.rules[ruleNewline]() { + goto l45 + } + return true + l45: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 9 SetextBottom2 <- ('---' '-'* Newline) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchString("---") { + goto l48 + } + l49: + { + position50, thunkPosition50 := position, thunkPosition + if !matchChar('-') { + goto l50 + } + goto l49 + l50: + position, thunkPosition = position50, thunkPosition50 + } + if !p.rules[ruleNewline]() { + goto l48 + } + return true + l48: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 10 SetextHeading1 <- (&(RawLine SetextBottom1) StartList (!Endline Inline { a = cons(yy, a) })+ Newline SetextBottom1 { yy = mk_list(H1, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + { + position52, thunkPosition52 := position, thunkPosition + if !p.rules[ruleRawLine]() { + goto l51 + } + if !p.rules[ruleSetextBottom1]() { + goto l51 + } + position, thunkPosition = position52, thunkPosition52 + } + if !p.rules[ruleStartList]() { + goto l51 + } + doarg(yySet, -1) + { + position55, thunkPosition55 := position, thunkPosition + if !p.rules[ruleEndline]() { + goto l55 + } + goto l51 + l55: + position, thunkPosition = position55, thunkPosition55 + } + if !p.rules[ruleInline]() { + goto l51 + } + do(7) + l53: + { + position54, thunkPosition54 := position, thunkPosition + { + position56, thunkPosition56 := position, thunkPosition + if !p.rules[ruleEndline]() { + goto l56 + } + goto l54 + l56: + position, thunkPosition = position56, thunkPosition56 + } + if !p.rules[ruleInline]() { + goto l54 + } + do(7) + goto l53 + l54: + position, thunkPosition = position54, thunkPosition54 + } + if !p.rules[ruleNewline]() { + goto l51 + } + if !p.rules[ruleSetextBottom1]() { + goto l51 + } + do(8) + doarg(yyPop, 1) + return true + l51: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 11 SetextHeading2 <- (&(RawLine SetextBottom2) StartList (!Endline Inline { a = cons(yy, a) })+ Newline SetextBottom2 { yy = mk_list(H2, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + { + position58, thunkPosition58 := position, thunkPosition + if !p.rules[ruleRawLine]() { + goto l57 + } + if !p.rules[ruleSetextBottom2]() { + goto l57 + } + position, thunkPosition = position58, thunkPosition58 + } + if !p.rules[ruleStartList]() { + goto l57 + } + doarg(yySet, -1) + { + position61, thunkPosition61 := position, thunkPosition + if !p.rules[ruleEndline]() { + goto l61 + } + goto l57 + l61: + position, thunkPosition = position61, thunkPosition61 + } + if !p.rules[ruleInline]() { + goto l57 + } + do(9) + l59: + { + position60, thunkPosition60 := position, thunkPosition + { + position62, thunkPosition62 := position, thunkPosition + if !p.rules[ruleEndline]() { + goto l62 + } + goto l60 + l62: + position, thunkPosition = position62, thunkPosition62 + } + if !p.rules[ruleInline]() { + goto l60 + } + do(9) + goto l59 + l60: + position, thunkPosition = position60, thunkPosition60 + } + if !p.rules[ruleNewline]() { + goto l57 + } + if !p.rules[ruleSetextBottom2]() { + goto l57 + } + do(10) + doarg(yyPop, 1) + return true + l57: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 12 Heading <- (AtxHeading / SetextHeading) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position64, thunkPosition64 := position, thunkPosition + if !p.rules[ruleAtxHeading]() { + goto l65 + } + goto l64 + l65: + position, thunkPosition = position64, thunkPosition64 + if !p.rules[ruleSetextHeading]() { + goto l63 + } + } + l64: + return true + l63: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 13 BlockQuote <- (BlockQuoteRaw { yy = mk_element(BLOCKQUOTE) + yy.children = a + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleBlockQuoteRaw]() { + goto l66 + } + doarg(yySet, -1) + do(11) + doarg(yyPop, 1) + return true + l66: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 14 BlockQuoteRaw <- (StartList ('>' ' '? Line { a = cons(yy, a) } (!'>' !BlankLine Line { a = cons(yy, a) })* (BlankLine { a = cons(mk_str("\n"), a) })*)+ { yy = mk_str_from_list(a, true) + yy.key = RAW + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleStartList]() { + goto l67 + } + doarg(yySet, -1) + if !matchChar('>') { + goto l67 + } + { + position70, thunkPosition70 := position, thunkPosition + if !matchChar(' ') { + goto l70 + } + goto l71 + l70: + position, thunkPosition = position70, thunkPosition70 + } + l71: + if !p.rules[ruleLine]() { + goto l67 + } + do(12) + l72: + { + position73, thunkPosition73 := position, thunkPosition + if peekChar('>') { + goto l73 + } + { + position74, thunkPosition74 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l74 + } + goto l73 + l74: + position, thunkPosition = position74, thunkPosition74 + } + if !p.rules[ruleLine]() { + goto l73 + } + do(13) + goto l72 + l73: + position, thunkPosition = position73, thunkPosition73 + } + l75: + { + position76, thunkPosition76 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l76 + } + do(14) + goto l75 + l76: + position, thunkPosition = position76, thunkPosition76 + } + l68: + { + position69, thunkPosition69 := position, thunkPosition + if !matchChar('>') { + goto l69 + } + { + position77, thunkPosition77 := position, thunkPosition + if !matchChar(' ') { + goto l77 + } + goto l78 + l77: + position, thunkPosition = position77, thunkPosition77 + } + l78: + if !p.rules[ruleLine]() { + goto l69 + } + do(12) + l79: + { + position80, thunkPosition80 := position, thunkPosition + if peekChar('>') { + goto l80 + } + { + position81, thunkPosition81 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l81 + } + goto l80 + l81: + position, thunkPosition = position81, thunkPosition81 + } + if !p.rules[ruleLine]() { + goto l80 + } + do(13) + goto l79 + l80: + position, thunkPosition = position80, thunkPosition80 + } + l82: + { + position83, thunkPosition83 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l83 + } + do(14) + goto l82 + l83: + position, thunkPosition = position83, thunkPosition83 + } + goto l68 + l69: + position, thunkPosition = position69, thunkPosition69 + } + do(15) + doarg(yyPop, 1) + return true + l67: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 15 NonblankIndentedLine <- (!BlankLine IndentedLine) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position85, thunkPosition85 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l85 + } + goto l84 + l85: + position, thunkPosition = position85, thunkPosition85 + } + if !p.rules[ruleIndentedLine]() { + goto l84 + } + return true + l84: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 16 VerbatimChunk <- (StartList (BlankLine { a = cons(mk_str("\n"), a) })* (NonblankIndentedLine { a = cons(yy, a) })+ { yy = mk_str_from_list(a, false) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleStartList]() { + goto l86 + } + doarg(yySet, -1) + l87: + { + position88, thunkPosition88 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l88 + } + do(16) + goto l87 + l88: + position, thunkPosition = position88, thunkPosition88 + } + if !p.rules[ruleNonblankIndentedLine]() { + goto l86 + } + do(17) + l89: + { + position90, thunkPosition90 := position, thunkPosition + if !p.rules[ruleNonblankIndentedLine]() { + goto l90 + } + do(17) + goto l89 + l90: + position, thunkPosition = position90, thunkPosition90 + } + do(18) + doarg(yyPop, 1) + return true + l86: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 17 Verbatim <- (StartList (VerbatimChunk { a = cons(yy, a) })+ { yy = mk_str_from_list(a, false) + yy.key = VERBATIM }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleStartList]() { + goto l91 + } + doarg(yySet, -1) + if !p.rules[ruleVerbatimChunk]() { + goto l91 + } + do(19) + l92: + { + position93, thunkPosition93 := position, thunkPosition + if !p.rules[ruleVerbatimChunk]() { + goto l93 + } + do(19) + goto l92 + l93: + position, thunkPosition = position93, thunkPosition93 + } + do(20) + doarg(yyPop, 1) + return true + l91: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 18 HorizontalRule <- (NonindentSpace (('*' Sp '*' Sp '*' (Sp '*')*) / ('-' Sp '-' Sp '-' (Sp '-')*) / ('_' Sp '_' Sp '_' (Sp '_')*)) Sp Newline BlankLine+ { yy = mk_element(HRULE) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !p.rules[ruleNonindentSpace]() { + goto l94 + } + { + position95, thunkPosition95 := position, thunkPosition + if !matchChar('*') { + goto l96 + } + if !p.rules[ruleSp]() { + goto l96 + } + if !matchChar('*') { + goto l96 + } + if !p.rules[ruleSp]() { + goto l96 + } + if !matchChar('*') { + goto l96 + } + l97: + { + position98, thunkPosition98 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l98 + } + if !matchChar('*') { + goto l98 + } + goto l97 + l98: + position, thunkPosition = position98, thunkPosition98 + } + goto l95 + l96: + position, thunkPosition = position95, thunkPosition95 + if !matchChar('-') { + goto l99 + } + if !p.rules[ruleSp]() { + goto l99 + } + if !matchChar('-') { + goto l99 + } + if !p.rules[ruleSp]() { + goto l99 + } + if !matchChar('-') { + goto l99 + } + l100: + { + position101, thunkPosition101 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l101 + } + if !matchChar('-') { + goto l101 + } + goto l100 + l101: + position, thunkPosition = position101, thunkPosition101 + } + goto l95 + l99: + position, thunkPosition = position95, thunkPosition95 + if !matchChar('_') { + goto l94 + } + if !p.rules[ruleSp]() { + goto l94 + } + if !matchChar('_') { + goto l94 + } + if !p.rules[ruleSp]() { + goto l94 + } + if !matchChar('_') { + goto l94 + } + l102: + { + position103, thunkPosition103 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l103 + } + if !matchChar('_') { + goto l103 + } + goto l102 + l103: + position, thunkPosition = position103, thunkPosition103 + } + } + l95: + if !p.rules[ruleSp]() { + goto l94 + } + if !p.rules[ruleNewline]() { + goto l94 + } + if !p.rules[ruleBlankLine]() { + goto l94 + } + l104: + { + position105, thunkPosition105 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l105 + } + goto l104 + l105: + position, thunkPosition = position105, thunkPosition105 + } + do(21) + return true + l94: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 19 Bullet <- (!HorizontalRule NonindentSpace ('+' / '*' / '-') Spacechar+) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position107, thunkPosition107 := position, thunkPosition + if !p.rules[ruleHorizontalRule]() { + goto l107 + } + goto l106 + l107: + position, thunkPosition = position107, thunkPosition107 + } + if !p.rules[ruleNonindentSpace]() { + goto l106 + } + { + position108, thunkPosition108 := position, thunkPosition + if !matchChar('+') { + goto l109 + } + goto l108 + l109: + position, thunkPosition = position108, thunkPosition108 + if !matchChar('*') { + goto l110 + } + goto l108 + l110: + position, thunkPosition = position108, thunkPosition108 + if !matchChar('-') { + goto l106 + } + } + l108: + if !p.rules[ruleSpacechar]() { + goto l106 + } + l111: + { + position112, thunkPosition112 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l112 + } + goto l111 + l112: + position, thunkPosition = position112, thunkPosition112 + } + return true + l106: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 20 BulletList <- (&Bullet (ListTight / ListLoose) { yy.key = BULLETLIST }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position114, thunkPosition114 := position, thunkPosition + if !p.rules[ruleBullet]() { + goto l113 + } + position, thunkPosition = position114, thunkPosition114 + } + { + position115, thunkPosition115 := position, thunkPosition + if !p.rules[ruleListTight]() { + goto l116 + } + goto l115 + l116: + position, thunkPosition = position115, thunkPosition115 + if !p.rules[ruleListLoose]() { + goto l113 + } + } + l115: + do(22) + return true + l113: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 21 ListTight <- (StartList (ListItem { a = cons(yy, a) })+ BlankLine* !(Bullet / Enumerator / DefMarker) { yy = mk_list(LIST, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleStartList]() { + goto l117 + } + doarg(yySet, -1) + if !p.rules[ruleListItem]() { + goto l117 + } + do(23) + l118: + { + position119, thunkPosition119 := position, thunkPosition + if !p.rules[ruleListItem]() { + goto l119 + } + do(23) + goto l118 + l119: + position, thunkPosition = position119, thunkPosition119 + } + l120: + { + position121, thunkPosition121 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l121 + } + goto l120 + l121: + position, thunkPosition = position121, thunkPosition121 + } + { + position122, thunkPosition122 := position, thunkPosition + { + position123, thunkPosition123 := position, thunkPosition + if !p.rules[ruleBullet]() { + goto l124 + } + goto l123 + l124: + position, thunkPosition = position123, thunkPosition123 + if !p.rules[ruleEnumerator]() { + goto l125 + } + goto l123 + l125: + position, thunkPosition = position123, thunkPosition123 + if !p.rules[ruleDefMarker]() { + goto l122 + } + } + l123: + goto l117 + l122: + position, thunkPosition = position122, thunkPosition122 + } + do(24) + doarg(yyPop, 1) + return true + l117: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 22 ListLoose <- (StartList (ListItem BlankLine* { + li := b.children + li.contents.str += "\n\n" + a = cons(b, a) + })+ { yy = mk_list(LIST, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 2) + if !p.rules[ruleStartList]() { + goto l126 + } + doarg(yySet, -1) + if !p.rules[ruleListItem]() { + goto l126 + } + doarg(yySet, -2) + l129: + { + position130, thunkPosition130 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l130 + } + goto l129 + l130: + position, thunkPosition = position130, thunkPosition130 + } + do(25) + l127: + { + position128, thunkPosition128 := position, thunkPosition + if !p.rules[ruleListItem]() { + goto l128 + } + doarg(yySet, -2) + l131: + { + position132, thunkPosition132 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l132 + } + goto l131 + l132: + position, thunkPosition = position132, thunkPosition132 + } + do(25) + goto l127 + l128: + position, thunkPosition = position128, thunkPosition128 + } + do(26) + doarg(yyPop, 2) + return true + l126: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 23 ListItem <- ((Bullet / Enumerator / DefMarker) StartList ListBlock { a = cons(yy, a) } (ListContinuationBlock { a = cons(yy, a) })* { + raw := mk_str_from_list(a, false) + raw.key = RAW + yy = mk_element(LISTITEM) + yy.children = raw + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + { + position134, thunkPosition134 := position, thunkPosition + if !p.rules[ruleBullet]() { + goto l135 + } + goto l134 + l135: + position, thunkPosition = position134, thunkPosition134 + if !p.rules[ruleEnumerator]() { + goto l136 + } + goto l134 + l136: + position, thunkPosition = position134, thunkPosition134 + if !p.rules[ruleDefMarker]() { + goto l133 + } + } + l134: + if !p.rules[ruleStartList]() { + goto l133 + } + doarg(yySet, -1) + if !p.rules[ruleListBlock]() { + goto l133 + } + do(27) + l137: + { + position138, thunkPosition138 := position, thunkPosition + if !p.rules[ruleListContinuationBlock]() { + goto l138 + } + do(28) + goto l137 + l138: + position, thunkPosition = position138, thunkPosition138 + } + do(29) + doarg(yyPop, 1) + return true + l133: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 24 ListBlock <- (StartList Line { a = cons(yy, a) } (ListBlockLine { a = cons(yy, a) })* { yy = mk_str_from_list(a, false) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleStartList]() { + goto l139 + } + doarg(yySet, -1) + if !p.rules[ruleLine]() { + goto l139 + } + do(30) + l140: + { + position141, thunkPosition141 := position, thunkPosition + if !p.rules[ruleListBlockLine]() { + goto l141 + } + do(31) + goto l140 + l141: + position, thunkPosition = position141, thunkPosition141 + } + do(32) + doarg(yyPop, 1) + return true + l139: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 25 ListContinuationBlock <- (StartList (< BlankLine* > { if len(yytext) == 0 { + a = cons(mk_str("\001"), a) // block separator + } else { + a = cons(mk_str(yytext), a) + } + }) (Indent ListBlock { a = cons(yy, a) })+ { yy = mk_str_from_list(a, false) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleStartList]() { + goto l142 + } + doarg(yySet, -1) + begin = position + l143: + { + position144, thunkPosition144 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l144 + } + goto l143 + l144: + position, thunkPosition = position144, thunkPosition144 + } + end = position + do(33) + if !p.rules[ruleIndent]() { + goto l142 + } + if !p.rules[ruleListBlock]() { + goto l142 + } + do(34) + l145: + { + position146, thunkPosition146 := position, thunkPosition + if !p.rules[ruleIndent]() { + goto l146 + } + if !p.rules[ruleListBlock]() { + goto l146 + } + do(34) + goto l145 + l146: + position, thunkPosition = position146, thunkPosition146 + } + do(35) + doarg(yyPop, 1) + return true + l142: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 26 Enumerator <- (NonindentSpace [0-9]+ '.' Spacechar+) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !p.rules[ruleNonindentSpace]() { + goto l147 + } + if !matchClass(5) { + goto l147 + } + l148: + { + position149, thunkPosition149 := position, thunkPosition + if !matchClass(5) { + goto l149 + } + goto l148 + l149: + position, thunkPosition = position149, thunkPosition149 + } + if !matchChar('.') { + goto l147 + } + if !p.rules[ruleSpacechar]() { + goto l147 + } + l150: + { + position151, thunkPosition151 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l151 + } + goto l150 + l151: + position, thunkPosition = position151, thunkPosition151 + } + return true + l147: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 27 OrderedList <- (&Enumerator (ListTight / ListLoose) { yy.key = ORDEREDLIST }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position153, thunkPosition153 := position, thunkPosition + if !p.rules[ruleEnumerator]() { + goto l152 + } + position, thunkPosition = position153, thunkPosition153 + } + { + position154, thunkPosition154 := position, thunkPosition + if !p.rules[ruleListTight]() { + goto l155 + } + goto l154 + l155: + position, thunkPosition = position154, thunkPosition154 + if !p.rules[ruleListLoose]() { + goto l152 + } + } + l154: + do(36) + return true + l152: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 28 ListBlockLine <- (!((Indent? (Bullet / Enumerator)) / DefMarker) !BlankLine !HorizontalRule OptionallyIndentedLine) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position157, thunkPosition157 := position, thunkPosition + { + position158, thunkPosition158 := position, thunkPosition + { + position160, thunkPosition160 := position, thunkPosition + if !p.rules[ruleIndent]() { + goto l160 + } + goto l161 + l160: + position, thunkPosition = position160, thunkPosition160 + } + l161: + { + position162, thunkPosition162 := position, thunkPosition + if !p.rules[ruleBullet]() { + goto l163 + } + goto l162 + l163: + position, thunkPosition = position162, thunkPosition162 + if !p.rules[ruleEnumerator]() { + goto l159 + } + } + l162: + goto l158 + l159: + position, thunkPosition = position158, thunkPosition158 + if !p.rules[ruleDefMarker]() { + goto l157 + } + } + l158: + goto l156 + l157: + position, thunkPosition = position157, thunkPosition157 + } + { + position164, thunkPosition164 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l164 + } + goto l156 + l164: + position, thunkPosition = position164, thunkPosition164 + } + { + position165, thunkPosition165 := position, thunkPosition + if !p.rules[ruleHorizontalRule]() { + goto l165 + } + goto l156 + l165: + position, thunkPosition = position165, thunkPosition165 + } + if !p.rules[ruleOptionallyIndentedLine]() { + goto l156 + } + return true + l156: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 29 HtmlBlockOpenAddress <- ('<' Spnl ('address' / 'ADDRESS') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l166 + } + if !p.rules[ruleSpnl]() { + goto l166 + } + { + position167, thunkPosition167 := position, thunkPosition + if !matchString("address") { + goto l168 + } + goto l167 + l168: + position, thunkPosition = position167, thunkPosition167 + if !matchString("ADDRESS") { + goto l166 + } + } + l167: + if !p.rules[ruleSpnl]() { + goto l166 + } + l169: + { + position170, thunkPosition170 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l170 + } + goto l169 + l170: + position, thunkPosition = position170, thunkPosition170 + } + if !matchChar('>') { + goto l166 + } + return true + l166: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 30 HtmlBlockCloseAddress <- ('<' Spnl '/' ('address' / 'ADDRESS') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l171 + } + if !p.rules[ruleSpnl]() { + goto l171 + } + if !matchChar('/') { + goto l171 + } + { + position172, thunkPosition172 := position, thunkPosition + if !matchString("address") { + goto l173 + } + goto l172 + l173: + position, thunkPosition = position172, thunkPosition172 + if !matchString("ADDRESS") { + goto l171 + } + } + l172: + if !p.rules[ruleSpnl]() { + goto l171 + } + if !matchChar('>') { + goto l171 + } + return true + l171: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 31 HtmlBlockOpenBlockquote <- ('<' Spnl ('blockquote' / 'BLOCKQUOTE') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l174 + } + if !p.rules[ruleSpnl]() { + goto l174 + } + { + position175, thunkPosition175 := position, thunkPosition + if !matchString("blockquote") { + goto l176 + } + goto l175 + l176: + position, thunkPosition = position175, thunkPosition175 + if !matchString("BLOCKQUOTE") { + goto l174 + } + } + l175: + if !p.rules[ruleSpnl]() { + goto l174 + } + l177: + { + position178, thunkPosition178 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l178 + } + goto l177 + l178: + position, thunkPosition = position178, thunkPosition178 + } + if !matchChar('>') { + goto l174 + } + return true + l174: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 32 HtmlBlockCloseBlockquote <- ('<' Spnl '/' ('blockquote' / 'BLOCKQUOTE') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l179 + } + if !p.rules[ruleSpnl]() { + goto l179 + } + if !matchChar('/') { + goto l179 + } + { + position180, thunkPosition180 := position, thunkPosition + if !matchString("blockquote") { + goto l181 + } + goto l180 + l181: + position, thunkPosition = position180, thunkPosition180 + if !matchString("BLOCKQUOTE") { + goto l179 + } + } + l180: + if !p.rules[ruleSpnl]() { + goto l179 + } + if !matchChar('>') { + goto l179 + } + return true + l179: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 33 HtmlBlockOpenCenter <- ('<' Spnl ('center' / 'CENTER') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l182 + } + if !p.rules[ruleSpnl]() { + goto l182 + } + { + position183, thunkPosition183 := position, thunkPosition + if !matchString("center") { + goto l184 + } + goto l183 + l184: + position, thunkPosition = position183, thunkPosition183 + if !matchString("CENTER") { + goto l182 + } + } + l183: + if !p.rules[ruleSpnl]() { + goto l182 + } + l185: + { + position186, thunkPosition186 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l186 + } + goto l185 + l186: + position, thunkPosition = position186, thunkPosition186 + } + if !matchChar('>') { + goto l182 + } + return true + l182: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 34 HtmlBlockCloseCenter <- ('<' Spnl '/' ('center' / 'CENTER') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l187 + } + if !p.rules[ruleSpnl]() { + goto l187 + } + if !matchChar('/') { + goto l187 + } + { + position188, thunkPosition188 := position, thunkPosition + if !matchString("center") { + goto l189 + } + goto l188 + l189: + position, thunkPosition = position188, thunkPosition188 + if !matchString("CENTER") { + goto l187 + } + } + l188: + if !p.rules[ruleSpnl]() { + goto l187 + } + if !matchChar('>') { + goto l187 + } + return true + l187: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 35 HtmlBlockOpenDir <- ('<' Spnl ('dir' / 'DIR') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l190 + } + if !p.rules[ruleSpnl]() { + goto l190 + } + { + position191, thunkPosition191 := position, thunkPosition + if !matchString("dir") { + goto l192 + } + goto l191 + l192: + position, thunkPosition = position191, thunkPosition191 + if !matchString("DIR") { + goto l190 + } + } + l191: + if !p.rules[ruleSpnl]() { + goto l190 + } + l193: + { + position194, thunkPosition194 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l194 + } + goto l193 + l194: + position, thunkPosition = position194, thunkPosition194 + } + if !matchChar('>') { + goto l190 + } + return true + l190: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 36 HtmlBlockCloseDir <- ('<' Spnl '/' ('dir' / 'DIR') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l195 + } + if !p.rules[ruleSpnl]() { + goto l195 + } + if !matchChar('/') { + goto l195 + } + { + position196, thunkPosition196 := position, thunkPosition + if !matchString("dir") { + goto l197 + } + goto l196 + l197: + position, thunkPosition = position196, thunkPosition196 + if !matchString("DIR") { + goto l195 + } + } + l196: + if !p.rules[ruleSpnl]() { + goto l195 + } + if !matchChar('>') { + goto l195 + } + return true + l195: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 37 HtmlBlockOpenDiv <- ('<' Spnl ('div' / 'DIV') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l198 + } + if !p.rules[ruleSpnl]() { + goto l198 + } + { + position199, thunkPosition199 := position, thunkPosition + if !matchString("div") { + goto l200 + } + goto l199 + l200: + position, thunkPosition = position199, thunkPosition199 + if !matchString("DIV") { + goto l198 + } + } + l199: + if !p.rules[ruleSpnl]() { + goto l198 + } + l201: + { + position202, thunkPosition202 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l202 + } + goto l201 + l202: + position, thunkPosition = position202, thunkPosition202 + } + if !matchChar('>') { + goto l198 + } + return true + l198: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 38 HtmlBlockCloseDiv <- ('<' Spnl '/' ('div' / 'DIV') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l203 + } + if !p.rules[ruleSpnl]() { + goto l203 + } + if !matchChar('/') { + goto l203 + } + { + position204, thunkPosition204 := position, thunkPosition + if !matchString("div") { + goto l205 + } + goto l204 + l205: + position, thunkPosition = position204, thunkPosition204 + if !matchString("DIV") { + goto l203 + } + } + l204: + if !p.rules[ruleSpnl]() { + goto l203 + } + if !matchChar('>') { + goto l203 + } + return true + l203: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 39 HtmlBlockOpenDl <- ('<' Spnl ('dl' / 'DL') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l206 + } + if !p.rules[ruleSpnl]() { + goto l206 + } + { + position207, thunkPosition207 := position, thunkPosition + if !matchString("dl") { + goto l208 + } + goto l207 + l208: + position, thunkPosition = position207, thunkPosition207 + if !matchString("DL") { + goto l206 + } + } + l207: + if !p.rules[ruleSpnl]() { + goto l206 + } + l209: + { + position210, thunkPosition210 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l210 + } + goto l209 + l210: + position, thunkPosition = position210, thunkPosition210 + } + if !matchChar('>') { + goto l206 + } + return true + l206: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 40 HtmlBlockCloseDl <- ('<' Spnl '/' ('dl' / 'DL') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l211 + } + if !p.rules[ruleSpnl]() { + goto l211 + } + if !matchChar('/') { + goto l211 + } + { + position212, thunkPosition212 := position, thunkPosition + if !matchString("dl") { + goto l213 + } + goto l212 + l213: + position, thunkPosition = position212, thunkPosition212 + if !matchString("DL") { + goto l211 + } + } + l212: + if !p.rules[ruleSpnl]() { + goto l211 + } + if !matchChar('>') { + goto l211 + } + return true + l211: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 41 HtmlBlockOpenFieldset <- ('<' Spnl ('fieldset' / 'FIELDSET') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l214 + } + if !p.rules[ruleSpnl]() { + goto l214 + } + { + position215, thunkPosition215 := position, thunkPosition + if !matchString("fieldset") { + goto l216 + } + goto l215 + l216: + position, thunkPosition = position215, thunkPosition215 + if !matchString("FIELDSET") { + goto l214 + } + } + l215: + if !p.rules[ruleSpnl]() { + goto l214 + } + l217: + { + position218, thunkPosition218 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l218 + } + goto l217 + l218: + position, thunkPosition = position218, thunkPosition218 + } + if !matchChar('>') { + goto l214 + } + return true + l214: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 42 HtmlBlockCloseFieldset <- ('<' Spnl '/' ('fieldset' / 'FIELDSET') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l219 + } + if !p.rules[ruleSpnl]() { + goto l219 + } + if !matchChar('/') { + goto l219 + } + { + position220, thunkPosition220 := position, thunkPosition + if !matchString("fieldset") { + goto l221 + } + goto l220 + l221: + position, thunkPosition = position220, thunkPosition220 + if !matchString("FIELDSET") { + goto l219 + } + } + l220: + if !p.rules[ruleSpnl]() { + goto l219 + } + if !matchChar('>') { + goto l219 + } + return true + l219: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 43 HtmlBlockOpenForm <- ('<' Spnl ('form' / 'FORM') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l222 + } + if !p.rules[ruleSpnl]() { + goto l222 + } + { + position223, thunkPosition223 := position, thunkPosition + if !matchString("form") { + goto l224 + } + goto l223 + l224: + position, thunkPosition = position223, thunkPosition223 + if !matchString("FORM") { + goto l222 + } + } + l223: + if !p.rules[ruleSpnl]() { + goto l222 + } + l225: + { + position226, thunkPosition226 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l226 + } + goto l225 + l226: + position, thunkPosition = position226, thunkPosition226 + } + if !matchChar('>') { + goto l222 + } + return true + l222: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 44 HtmlBlockCloseForm <- ('<' Spnl '/' ('form' / 'FORM') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l227 + } + if !p.rules[ruleSpnl]() { + goto l227 + } + if !matchChar('/') { + goto l227 + } + { + position228, thunkPosition228 := position, thunkPosition + if !matchString("form") { + goto l229 + } + goto l228 + l229: + position, thunkPosition = position228, thunkPosition228 + if !matchString("FORM") { + goto l227 + } + } + l228: + if !p.rules[ruleSpnl]() { + goto l227 + } + if !matchChar('>') { + goto l227 + } + return true + l227: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 45 HtmlBlockOpenH1 <- ('<' Spnl ('h1' / 'H1') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l230 + } + if !p.rules[ruleSpnl]() { + goto l230 + } + { + position231, thunkPosition231 := position, thunkPosition + if !matchString("h1") { + goto l232 + } + goto l231 + l232: + position, thunkPosition = position231, thunkPosition231 + if !matchString("H1") { + goto l230 + } + } + l231: + if !p.rules[ruleSpnl]() { + goto l230 + } + l233: + { + position234, thunkPosition234 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l234 + } + goto l233 + l234: + position, thunkPosition = position234, thunkPosition234 + } + if !matchChar('>') { + goto l230 + } + return true + l230: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 46 HtmlBlockCloseH1 <- ('<' Spnl '/' ('h1' / 'H1') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l235 + } + if !p.rules[ruleSpnl]() { + goto l235 + } + if !matchChar('/') { + goto l235 + } + { + position236, thunkPosition236 := position, thunkPosition + if !matchString("h1") { + goto l237 + } + goto l236 + l237: + position, thunkPosition = position236, thunkPosition236 + if !matchString("H1") { + goto l235 + } + } + l236: + if !p.rules[ruleSpnl]() { + goto l235 + } + if !matchChar('>') { + goto l235 + } + return true + l235: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 47 HtmlBlockOpenH2 <- ('<' Spnl ('h2' / 'H2') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l238 + } + if !p.rules[ruleSpnl]() { + goto l238 + } + { + position239, thunkPosition239 := position, thunkPosition + if !matchString("h2") { + goto l240 + } + goto l239 + l240: + position, thunkPosition = position239, thunkPosition239 + if !matchString("H2") { + goto l238 + } + } + l239: + if !p.rules[ruleSpnl]() { + goto l238 + } + l241: + { + position242, thunkPosition242 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l242 + } + goto l241 + l242: + position, thunkPosition = position242, thunkPosition242 + } + if !matchChar('>') { + goto l238 + } + return true + l238: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 48 HtmlBlockCloseH2 <- ('<' Spnl '/' ('h2' / 'H2') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l243 + } + if !p.rules[ruleSpnl]() { + goto l243 + } + if !matchChar('/') { + goto l243 + } + { + position244, thunkPosition244 := position, thunkPosition + if !matchString("h2") { + goto l245 + } + goto l244 + l245: + position, thunkPosition = position244, thunkPosition244 + if !matchString("H2") { + goto l243 + } + } + l244: + if !p.rules[ruleSpnl]() { + goto l243 + } + if !matchChar('>') { + goto l243 + } + return true + l243: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 49 HtmlBlockOpenH3 <- ('<' Spnl ('h3' / 'H3') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l246 + } + if !p.rules[ruleSpnl]() { + goto l246 + } + { + position247, thunkPosition247 := position, thunkPosition + if !matchString("h3") { + goto l248 + } + goto l247 + l248: + position, thunkPosition = position247, thunkPosition247 + if !matchString("H3") { + goto l246 + } + } + l247: + if !p.rules[ruleSpnl]() { + goto l246 + } + l249: + { + position250, thunkPosition250 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l250 + } + goto l249 + l250: + position, thunkPosition = position250, thunkPosition250 + } + if !matchChar('>') { + goto l246 + } + return true + l246: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 50 HtmlBlockCloseH3 <- ('<' Spnl '/' ('h3' / 'H3') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l251 + } + if !p.rules[ruleSpnl]() { + goto l251 + } + if !matchChar('/') { + goto l251 + } + { + position252, thunkPosition252 := position, thunkPosition + if !matchString("h3") { + goto l253 + } + goto l252 + l253: + position, thunkPosition = position252, thunkPosition252 + if !matchString("H3") { + goto l251 + } + } + l252: + if !p.rules[ruleSpnl]() { + goto l251 + } + if !matchChar('>') { + goto l251 + } + return true + l251: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 51 HtmlBlockOpenH4 <- ('<' Spnl ('h4' / 'H4') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l254 + } + if !p.rules[ruleSpnl]() { + goto l254 + } + { + position255, thunkPosition255 := position, thunkPosition + if !matchString("h4") { + goto l256 + } + goto l255 + l256: + position, thunkPosition = position255, thunkPosition255 + if !matchString("H4") { + goto l254 + } + } + l255: + if !p.rules[ruleSpnl]() { + goto l254 + } + l257: + { + position258, thunkPosition258 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l258 + } + goto l257 + l258: + position, thunkPosition = position258, thunkPosition258 + } + if !matchChar('>') { + goto l254 + } + return true + l254: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 52 HtmlBlockCloseH4 <- ('<' Spnl '/' ('h4' / 'H4') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l259 + } + if !p.rules[ruleSpnl]() { + goto l259 + } + if !matchChar('/') { + goto l259 + } + { + position260, thunkPosition260 := position, thunkPosition + if !matchString("h4") { + goto l261 + } + goto l260 + l261: + position, thunkPosition = position260, thunkPosition260 + if !matchString("H4") { + goto l259 + } + } + l260: + if !p.rules[ruleSpnl]() { + goto l259 + } + if !matchChar('>') { + goto l259 + } + return true + l259: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 53 HtmlBlockOpenH5 <- ('<' Spnl ('h5' / 'H5') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l262 + } + if !p.rules[ruleSpnl]() { + goto l262 + } + { + position263, thunkPosition263 := position, thunkPosition + if !matchString("h5") { + goto l264 + } + goto l263 + l264: + position, thunkPosition = position263, thunkPosition263 + if !matchString("H5") { + goto l262 + } + } + l263: + if !p.rules[ruleSpnl]() { + goto l262 + } + l265: + { + position266, thunkPosition266 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l266 + } + goto l265 + l266: + position, thunkPosition = position266, thunkPosition266 + } + if !matchChar('>') { + goto l262 + } + return true + l262: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 54 HtmlBlockCloseH5 <- ('<' Spnl '/' ('h5' / 'H5') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l267 + } + if !p.rules[ruleSpnl]() { + goto l267 + } + if !matchChar('/') { + goto l267 + } + { + position268, thunkPosition268 := position, thunkPosition + if !matchString("h5") { + goto l269 + } + goto l268 + l269: + position, thunkPosition = position268, thunkPosition268 + if !matchString("H5") { + goto l267 + } + } + l268: + if !p.rules[ruleSpnl]() { + goto l267 + } + if !matchChar('>') { + goto l267 + } + return true + l267: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 55 HtmlBlockOpenH6 <- ('<' Spnl ('h6' / 'H6') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l270 + } + if !p.rules[ruleSpnl]() { + goto l270 + } + { + position271, thunkPosition271 := position, thunkPosition + if !matchString("h6") { + goto l272 + } + goto l271 + l272: + position, thunkPosition = position271, thunkPosition271 + if !matchString("H6") { + goto l270 + } + } + l271: + if !p.rules[ruleSpnl]() { + goto l270 + } + l273: + { + position274, thunkPosition274 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l274 + } + goto l273 + l274: + position, thunkPosition = position274, thunkPosition274 + } + if !matchChar('>') { + goto l270 + } + return true + l270: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 56 HtmlBlockCloseH6 <- ('<' Spnl '/' ('h6' / 'H6') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l275 + } + if !p.rules[ruleSpnl]() { + goto l275 + } + if !matchChar('/') { + goto l275 + } + { + position276, thunkPosition276 := position, thunkPosition + if !matchString("h6") { + goto l277 + } + goto l276 + l277: + position, thunkPosition = position276, thunkPosition276 + if !matchString("H6") { + goto l275 + } + } + l276: + if !p.rules[ruleSpnl]() { + goto l275 + } + if !matchChar('>') { + goto l275 + } + return true + l275: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 57 HtmlBlockOpenMenu <- ('<' Spnl ('menu' / 'MENU') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l278 + } + if !p.rules[ruleSpnl]() { + goto l278 + } + { + position279, thunkPosition279 := position, thunkPosition + if !matchString("menu") { + goto l280 + } + goto l279 + l280: + position, thunkPosition = position279, thunkPosition279 + if !matchString("MENU") { + goto l278 + } + } + l279: + if !p.rules[ruleSpnl]() { + goto l278 + } + l281: + { + position282, thunkPosition282 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l282 + } + goto l281 + l282: + position, thunkPosition = position282, thunkPosition282 + } + if !matchChar('>') { + goto l278 + } + return true + l278: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 58 HtmlBlockCloseMenu <- ('<' Spnl '/' ('menu' / 'MENU') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l283 + } + if !p.rules[ruleSpnl]() { + goto l283 + } + if !matchChar('/') { + goto l283 + } + { + position284, thunkPosition284 := position, thunkPosition + if !matchString("menu") { + goto l285 + } + goto l284 + l285: + position, thunkPosition = position284, thunkPosition284 + if !matchString("MENU") { + goto l283 + } + } + l284: + if !p.rules[ruleSpnl]() { + goto l283 + } + if !matchChar('>') { + goto l283 + } + return true + l283: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 59 HtmlBlockOpenNoframes <- ('<' Spnl ('noframes' / 'NOFRAMES') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l286 + } + if !p.rules[ruleSpnl]() { + goto l286 + } + { + position287, thunkPosition287 := position, thunkPosition + if !matchString("noframes") { + goto l288 + } + goto l287 + l288: + position, thunkPosition = position287, thunkPosition287 + if !matchString("NOFRAMES") { + goto l286 + } + } + l287: + if !p.rules[ruleSpnl]() { + goto l286 + } + l289: + { + position290, thunkPosition290 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l290 + } + goto l289 + l290: + position, thunkPosition = position290, thunkPosition290 + } + if !matchChar('>') { + goto l286 + } + return true + l286: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 60 HtmlBlockCloseNoframes <- ('<' Spnl '/' ('noframes' / 'NOFRAMES') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l291 + } + if !p.rules[ruleSpnl]() { + goto l291 + } + if !matchChar('/') { + goto l291 + } + { + position292, thunkPosition292 := position, thunkPosition + if !matchString("noframes") { + goto l293 + } + goto l292 + l293: + position, thunkPosition = position292, thunkPosition292 + if !matchString("NOFRAMES") { + goto l291 + } + } + l292: + if !p.rules[ruleSpnl]() { + goto l291 + } + if !matchChar('>') { + goto l291 + } + return true + l291: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 61 HtmlBlockOpenNoscript <- ('<' Spnl ('noscript' / 'NOSCRIPT') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l294 + } + if !p.rules[ruleSpnl]() { + goto l294 + } + { + position295, thunkPosition295 := position, thunkPosition + if !matchString("noscript") { + goto l296 + } + goto l295 + l296: + position, thunkPosition = position295, thunkPosition295 + if !matchString("NOSCRIPT") { + goto l294 + } + } + l295: + if !p.rules[ruleSpnl]() { + goto l294 + } + l297: + { + position298, thunkPosition298 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l298 + } + goto l297 + l298: + position, thunkPosition = position298, thunkPosition298 + } + if !matchChar('>') { + goto l294 + } + return true + l294: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 62 HtmlBlockCloseNoscript <- ('<' Spnl '/' ('noscript' / 'NOSCRIPT') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l299 + } + if !p.rules[ruleSpnl]() { + goto l299 + } + if !matchChar('/') { + goto l299 + } + { + position300, thunkPosition300 := position, thunkPosition + if !matchString("noscript") { + goto l301 + } + goto l300 + l301: + position, thunkPosition = position300, thunkPosition300 + if !matchString("NOSCRIPT") { + goto l299 + } + } + l300: + if !p.rules[ruleSpnl]() { + goto l299 + } + if !matchChar('>') { + goto l299 + } + return true + l299: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 63 HtmlBlockOpenOl <- ('<' Spnl ('ol' / 'OL') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l302 + } + if !p.rules[ruleSpnl]() { + goto l302 + } + { + position303, thunkPosition303 := position, thunkPosition + if !matchString("ol") { + goto l304 + } + goto l303 + l304: + position, thunkPosition = position303, thunkPosition303 + if !matchString("OL") { + goto l302 + } + } + l303: + if !p.rules[ruleSpnl]() { + goto l302 + } + l305: + { + position306, thunkPosition306 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l306 + } + goto l305 + l306: + position, thunkPosition = position306, thunkPosition306 + } + if !matchChar('>') { + goto l302 + } + return true + l302: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 64 HtmlBlockCloseOl <- ('<' Spnl '/' ('ol' / 'OL') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l307 + } + if !p.rules[ruleSpnl]() { + goto l307 + } + if !matchChar('/') { + goto l307 + } + { + position308, thunkPosition308 := position, thunkPosition + if !matchString("ol") { + goto l309 + } + goto l308 + l309: + position, thunkPosition = position308, thunkPosition308 + if !matchString("OL") { + goto l307 + } + } + l308: + if !p.rules[ruleSpnl]() { + goto l307 + } + if !matchChar('>') { + goto l307 + } + return true + l307: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 65 HtmlBlockOpenP <- ('<' Spnl ('p' / 'P') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l310 + } + if !p.rules[ruleSpnl]() { + goto l310 + } + { + position311, thunkPosition311 := position, thunkPosition + if !matchChar('p') { + goto l312 + } + goto l311 + l312: + position, thunkPosition = position311, thunkPosition311 + if !matchChar('P') { + goto l310 + } + } + l311: + if !p.rules[ruleSpnl]() { + goto l310 + } + l313: + { + position314, thunkPosition314 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l314 + } + goto l313 + l314: + position, thunkPosition = position314, thunkPosition314 + } + if !matchChar('>') { + goto l310 + } + return true + l310: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 66 HtmlBlockCloseP <- ('<' Spnl '/' ('p' / 'P') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l315 + } + if !p.rules[ruleSpnl]() { + goto l315 + } + if !matchChar('/') { + goto l315 + } + { + position316, thunkPosition316 := position, thunkPosition + if !matchChar('p') { + goto l317 + } + goto l316 + l317: + position, thunkPosition = position316, thunkPosition316 + if !matchChar('P') { + goto l315 + } + } + l316: + if !p.rules[ruleSpnl]() { + goto l315 + } + if !matchChar('>') { + goto l315 + } + return true + l315: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 67 HtmlBlockOpenPre <- ('<' Spnl ('pre' / 'PRE') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l318 + } + if !p.rules[ruleSpnl]() { + goto l318 + } + { + position319, thunkPosition319 := position, thunkPosition + if !matchString("pre") { + goto l320 + } + goto l319 + l320: + position, thunkPosition = position319, thunkPosition319 + if !matchString("PRE") { + goto l318 + } + } + l319: + if !p.rules[ruleSpnl]() { + goto l318 + } + l321: + { + position322, thunkPosition322 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l322 + } + goto l321 + l322: + position, thunkPosition = position322, thunkPosition322 + } + if !matchChar('>') { + goto l318 + } + return true + l318: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 68 HtmlBlockClosePre <- ('<' Spnl '/' ('pre' / 'PRE') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l323 + } + if !p.rules[ruleSpnl]() { + goto l323 + } + if !matchChar('/') { + goto l323 + } + { + position324, thunkPosition324 := position, thunkPosition + if !matchString("pre") { + goto l325 + } + goto l324 + l325: + position, thunkPosition = position324, thunkPosition324 + if !matchString("PRE") { + goto l323 + } + } + l324: + if !p.rules[ruleSpnl]() { + goto l323 + } + if !matchChar('>') { + goto l323 + } + return true + l323: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 69 HtmlBlockOpenTable <- ('<' Spnl ('table' / 'TABLE') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l326 + } + if !p.rules[ruleSpnl]() { + goto l326 + } + { + position327, thunkPosition327 := position, thunkPosition + if !matchString("table") { + goto l328 + } + goto l327 + l328: + position, thunkPosition = position327, thunkPosition327 + if !matchString("TABLE") { + goto l326 + } + } + l327: + if !p.rules[ruleSpnl]() { + goto l326 + } + l329: + { + position330, thunkPosition330 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l330 + } + goto l329 + l330: + position, thunkPosition = position330, thunkPosition330 + } + if !matchChar('>') { + goto l326 + } + return true + l326: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 70 HtmlBlockCloseTable <- ('<' Spnl '/' ('table' / 'TABLE') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l331 + } + if !p.rules[ruleSpnl]() { + goto l331 + } + if !matchChar('/') { + goto l331 + } + { + position332, thunkPosition332 := position, thunkPosition + if !matchString("table") { + goto l333 + } + goto l332 + l333: + position, thunkPosition = position332, thunkPosition332 + if !matchString("TABLE") { + goto l331 + } + } + l332: + if !p.rules[ruleSpnl]() { + goto l331 + } + if !matchChar('>') { + goto l331 + } + return true + l331: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 71 HtmlBlockOpenUl <- ('<' Spnl ('ul' / 'UL') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l334 + } + if !p.rules[ruleSpnl]() { + goto l334 + } + { + position335, thunkPosition335 := position, thunkPosition + if !matchString("ul") { + goto l336 + } + goto l335 + l336: + position, thunkPosition = position335, thunkPosition335 + if !matchString("UL") { + goto l334 + } + } + l335: + if !p.rules[ruleSpnl]() { + goto l334 + } + l337: + { + position338, thunkPosition338 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l338 + } + goto l337 + l338: + position, thunkPosition = position338, thunkPosition338 + } + if !matchChar('>') { + goto l334 + } + return true + l334: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 72 HtmlBlockCloseUl <- ('<' Spnl '/' ('ul' / 'UL') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l339 + } + if !p.rules[ruleSpnl]() { + goto l339 + } + if !matchChar('/') { + goto l339 + } + { + position340, thunkPosition340 := position, thunkPosition + if !matchString("ul") { + goto l341 + } + goto l340 + l341: + position, thunkPosition = position340, thunkPosition340 + if !matchString("UL") { + goto l339 + } + } + l340: + if !p.rules[ruleSpnl]() { + goto l339 + } + if !matchChar('>') { + goto l339 + } + return true + l339: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 73 HtmlBlockOpenDd <- ('<' Spnl ('dd' / 'DD') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l342 + } + if !p.rules[ruleSpnl]() { + goto l342 + } + { + position343, thunkPosition343 := position, thunkPosition + if !matchString("dd") { + goto l344 + } + goto l343 + l344: + position, thunkPosition = position343, thunkPosition343 + if !matchString("DD") { + goto l342 + } + } + l343: + if !p.rules[ruleSpnl]() { + goto l342 + } + l345: + { + position346, thunkPosition346 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l346 + } + goto l345 + l346: + position, thunkPosition = position346, thunkPosition346 + } + if !matchChar('>') { + goto l342 + } + return true + l342: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 74 HtmlBlockCloseDd <- ('<' Spnl '/' ('dd' / 'DD') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l347 + } + if !p.rules[ruleSpnl]() { + goto l347 + } + if !matchChar('/') { + goto l347 + } + { + position348, thunkPosition348 := position, thunkPosition + if !matchString("dd") { + goto l349 + } + goto l348 + l349: + position, thunkPosition = position348, thunkPosition348 + if !matchString("DD") { + goto l347 + } + } + l348: + if !p.rules[ruleSpnl]() { + goto l347 + } + if !matchChar('>') { + goto l347 + } + return true + l347: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 75 HtmlBlockOpenDt <- ('<' Spnl ('dt' / 'DT') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l350 + } + if !p.rules[ruleSpnl]() { + goto l350 + } + { + position351, thunkPosition351 := position, thunkPosition + if !matchString("dt") { + goto l352 + } + goto l351 + l352: + position, thunkPosition = position351, thunkPosition351 + if !matchString("DT") { + goto l350 + } + } + l351: + if !p.rules[ruleSpnl]() { + goto l350 + } + l353: + { + position354, thunkPosition354 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l354 + } + goto l353 + l354: + position, thunkPosition = position354, thunkPosition354 + } + if !matchChar('>') { + goto l350 + } + return true + l350: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 76 HtmlBlockCloseDt <- ('<' Spnl '/' ('dt' / 'DT') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l355 + } + if !p.rules[ruleSpnl]() { + goto l355 + } + if !matchChar('/') { + goto l355 + } + { + position356, thunkPosition356 := position, thunkPosition + if !matchString("dt") { + goto l357 + } + goto l356 + l357: + position, thunkPosition = position356, thunkPosition356 + if !matchString("DT") { + goto l355 + } + } + l356: + if !p.rules[ruleSpnl]() { + goto l355 + } + if !matchChar('>') { + goto l355 + } + return true + l355: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 77 HtmlBlockOpenFrameset <- ('<' Spnl ('frameset' / 'FRAMESET') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l358 + } + if !p.rules[ruleSpnl]() { + goto l358 + } + { + position359, thunkPosition359 := position, thunkPosition + if !matchString("frameset") { + goto l360 + } + goto l359 + l360: + position, thunkPosition = position359, thunkPosition359 + if !matchString("FRAMESET") { + goto l358 + } + } + l359: + if !p.rules[ruleSpnl]() { + goto l358 + } + l361: + { + position362, thunkPosition362 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l362 + } + goto l361 + l362: + position, thunkPosition = position362, thunkPosition362 + } + if !matchChar('>') { + goto l358 + } + return true + l358: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 78 HtmlBlockCloseFrameset <- ('<' Spnl '/' ('frameset' / 'FRAMESET') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l363 + } + if !p.rules[ruleSpnl]() { + goto l363 + } + if !matchChar('/') { + goto l363 + } + { + position364, thunkPosition364 := position, thunkPosition + if !matchString("frameset") { + goto l365 + } + goto l364 + l365: + position, thunkPosition = position364, thunkPosition364 + if !matchString("FRAMESET") { + goto l363 + } + } + l364: + if !p.rules[ruleSpnl]() { + goto l363 + } + if !matchChar('>') { + goto l363 + } + return true + l363: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 79 HtmlBlockOpenLi <- ('<' Spnl ('li' / 'LI') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l366 + } + if !p.rules[ruleSpnl]() { + goto l366 + } + { + position367, thunkPosition367 := position, thunkPosition + if !matchString("li") { + goto l368 + } + goto l367 + l368: + position, thunkPosition = position367, thunkPosition367 + if !matchString("LI") { + goto l366 + } + } + l367: + if !p.rules[ruleSpnl]() { + goto l366 + } + l369: + { + position370, thunkPosition370 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l370 + } + goto l369 + l370: + position, thunkPosition = position370, thunkPosition370 + } + if !matchChar('>') { + goto l366 + } + return true + l366: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 80 HtmlBlockCloseLi <- ('<' Spnl '/' ('li' / 'LI') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l371 + } + if !p.rules[ruleSpnl]() { + goto l371 + } + if !matchChar('/') { + goto l371 + } + { + position372, thunkPosition372 := position, thunkPosition + if !matchString("li") { + goto l373 + } + goto l372 + l373: + position, thunkPosition = position372, thunkPosition372 + if !matchString("LI") { + goto l371 + } + } + l372: + if !p.rules[ruleSpnl]() { + goto l371 + } + if !matchChar('>') { + goto l371 + } + return true + l371: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 81 HtmlBlockOpenTbody <- ('<' Spnl ('tbody' / 'TBODY') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l374 + } + if !p.rules[ruleSpnl]() { + goto l374 + } + { + position375, thunkPosition375 := position, thunkPosition + if !matchString("tbody") { + goto l376 + } + goto l375 + l376: + position, thunkPosition = position375, thunkPosition375 + if !matchString("TBODY") { + goto l374 + } + } + l375: + if !p.rules[ruleSpnl]() { + goto l374 + } + l377: + { + position378, thunkPosition378 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l378 + } + goto l377 + l378: + position, thunkPosition = position378, thunkPosition378 + } + if !matchChar('>') { + goto l374 + } + return true + l374: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 82 HtmlBlockCloseTbody <- ('<' Spnl '/' ('tbody' / 'TBODY') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l379 + } + if !p.rules[ruleSpnl]() { + goto l379 + } + if !matchChar('/') { + goto l379 + } + { + position380, thunkPosition380 := position, thunkPosition + if !matchString("tbody") { + goto l381 + } + goto l380 + l381: + position, thunkPosition = position380, thunkPosition380 + if !matchString("TBODY") { + goto l379 + } + } + l380: + if !p.rules[ruleSpnl]() { + goto l379 + } + if !matchChar('>') { + goto l379 + } + return true + l379: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 83 HtmlBlockOpenTd <- ('<' Spnl ('td' / 'TD') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l382 + } + if !p.rules[ruleSpnl]() { + goto l382 + } + { + position383, thunkPosition383 := position, thunkPosition + if !matchString("td") { + goto l384 + } + goto l383 + l384: + position, thunkPosition = position383, thunkPosition383 + if !matchString("TD") { + goto l382 + } + } + l383: + if !p.rules[ruleSpnl]() { + goto l382 + } + l385: + { + position386, thunkPosition386 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l386 + } + goto l385 + l386: + position, thunkPosition = position386, thunkPosition386 + } + if !matchChar('>') { + goto l382 + } + return true + l382: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 84 HtmlBlockCloseTd <- ('<' Spnl '/' ('td' / 'TD') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l387 + } + if !p.rules[ruleSpnl]() { + goto l387 + } + if !matchChar('/') { + goto l387 + } + { + position388, thunkPosition388 := position, thunkPosition + if !matchString("td") { + goto l389 + } + goto l388 + l389: + position, thunkPosition = position388, thunkPosition388 + if !matchString("TD") { + goto l387 + } + } + l388: + if !p.rules[ruleSpnl]() { + goto l387 + } + if !matchChar('>') { + goto l387 + } + return true + l387: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 85 HtmlBlockOpenTfoot <- ('<' Spnl ('tfoot' / 'TFOOT') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l390 + } + if !p.rules[ruleSpnl]() { + goto l390 + } + { + position391, thunkPosition391 := position, thunkPosition + if !matchString("tfoot") { + goto l392 + } + goto l391 + l392: + position, thunkPosition = position391, thunkPosition391 + if !matchString("TFOOT") { + goto l390 + } + } + l391: + if !p.rules[ruleSpnl]() { + goto l390 + } + l393: + { + position394, thunkPosition394 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l394 + } + goto l393 + l394: + position, thunkPosition = position394, thunkPosition394 + } + if !matchChar('>') { + goto l390 + } + return true + l390: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 86 HtmlBlockCloseTfoot <- ('<' Spnl '/' ('tfoot' / 'TFOOT') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l395 + } + if !p.rules[ruleSpnl]() { + goto l395 + } + if !matchChar('/') { + goto l395 + } + { + position396, thunkPosition396 := position, thunkPosition + if !matchString("tfoot") { + goto l397 + } + goto l396 + l397: + position, thunkPosition = position396, thunkPosition396 + if !matchString("TFOOT") { + goto l395 + } + } + l396: + if !p.rules[ruleSpnl]() { + goto l395 + } + if !matchChar('>') { + goto l395 + } + return true + l395: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 87 HtmlBlockOpenTh <- ('<' Spnl ('th' / 'TH') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l398 + } + if !p.rules[ruleSpnl]() { + goto l398 + } + { + position399, thunkPosition399 := position, thunkPosition + if !matchString("th") { + goto l400 + } + goto l399 + l400: + position, thunkPosition = position399, thunkPosition399 + if !matchString("TH") { + goto l398 + } + } + l399: + if !p.rules[ruleSpnl]() { + goto l398 + } + l401: + { + position402, thunkPosition402 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l402 + } + goto l401 + l402: + position, thunkPosition = position402, thunkPosition402 + } + if !matchChar('>') { + goto l398 + } + return true + l398: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 88 HtmlBlockCloseTh <- ('<' Spnl '/' ('th' / 'TH') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l403 + } + if !p.rules[ruleSpnl]() { + goto l403 + } + if !matchChar('/') { + goto l403 + } + { + position404, thunkPosition404 := position, thunkPosition + if !matchString("th") { + goto l405 + } + goto l404 + l405: + position, thunkPosition = position404, thunkPosition404 + if !matchString("TH") { + goto l403 + } + } + l404: + if !p.rules[ruleSpnl]() { + goto l403 + } + if !matchChar('>') { + goto l403 + } + return true + l403: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 89 HtmlBlockOpenThead <- ('<' Spnl ('thead' / 'THEAD') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l406 + } + if !p.rules[ruleSpnl]() { + goto l406 + } + { + position407, thunkPosition407 := position, thunkPosition + if !matchString("thead") { + goto l408 + } + goto l407 + l408: + position, thunkPosition = position407, thunkPosition407 + if !matchString("THEAD") { + goto l406 + } + } + l407: + if !p.rules[ruleSpnl]() { + goto l406 + } + l409: + { + position410, thunkPosition410 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l410 + } + goto l409 + l410: + position, thunkPosition = position410, thunkPosition410 + } + if !matchChar('>') { + goto l406 + } + return true + l406: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 90 HtmlBlockCloseThead <- ('<' Spnl '/' ('thead' / 'THEAD') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l411 + } + if !p.rules[ruleSpnl]() { + goto l411 + } + if !matchChar('/') { + goto l411 + } + { + position412, thunkPosition412 := position, thunkPosition + if !matchString("thead") { + goto l413 + } + goto l412 + l413: + position, thunkPosition = position412, thunkPosition412 + if !matchString("THEAD") { + goto l411 + } + } + l412: + if !p.rules[ruleSpnl]() { + goto l411 + } + if !matchChar('>') { + goto l411 + } + return true + l411: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 91 HtmlBlockOpenTr <- ('<' Spnl ('tr' / 'TR') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l414 + } + if !p.rules[ruleSpnl]() { + goto l414 + } + { + position415, thunkPosition415 := position, thunkPosition + if !matchString("tr") { + goto l416 + } + goto l415 + l416: + position, thunkPosition = position415, thunkPosition415 + if !matchString("TR") { + goto l414 + } + } + l415: + if !p.rules[ruleSpnl]() { + goto l414 + } + l417: + { + position418, thunkPosition418 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l418 + } + goto l417 + l418: + position, thunkPosition = position418, thunkPosition418 + } + if !matchChar('>') { + goto l414 + } + return true + l414: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 92 HtmlBlockCloseTr <- ('<' Spnl '/' ('tr' / 'TR') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l419 + } + if !p.rules[ruleSpnl]() { + goto l419 + } + if !matchChar('/') { + goto l419 + } + { + position420, thunkPosition420 := position, thunkPosition + if !matchString("tr") { + goto l421 + } + goto l420 + l421: + position, thunkPosition = position420, thunkPosition420 + if !matchString("TR") { + goto l419 + } + } + l420: + if !p.rules[ruleSpnl]() { + goto l419 + } + if !matchChar('>') { + goto l419 + } + return true + l419: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 93 HtmlBlockOpenScript <- ('<' Spnl ('script' / 'SCRIPT') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l422 + } + if !p.rules[ruleSpnl]() { + goto l422 + } + { + position423, thunkPosition423 := position, thunkPosition + if !matchString("script") { + goto l424 + } + goto l423 + l424: + position, thunkPosition = position423, thunkPosition423 + if !matchString("SCRIPT") { + goto l422 + } + } + l423: + if !p.rules[ruleSpnl]() { + goto l422 + } + l425: + { + position426, thunkPosition426 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l426 + } + goto l425 + l426: + position, thunkPosition = position426, thunkPosition426 + } + if !matchChar('>') { + goto l422 + } + return true + l422: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 94 HtmlBlockCloseScript <- ('<' Spnl '/' ('script' / 'SCRIPT') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l427 + } + if !p.rules[ruleSpnl]() { + goto l427 + } + if !matchChar('/') { + goto l427 + } + { + position428, thunkPosition428 := position, thunkPosition + if !matchString("script") { + goto l429 + } + goto l428 + l429: + position, thunkPosition = position428, thunkPosition428 + if !matchString("SCRIPT") { + goto l427 + } + } + l428: + if !p.rules[ruleSpnl]() { + goto l427 + } + if !matchChar('>') { + goto l427 + } + return true + l427: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 95 HtmlBlockInTags <- ((HtmlBlockOpenAddress (HtmlBlockInTags / (!HtmlBlockCloseAddress .))* HtmlBlockCloseAddress) / (HtmlBlockOpenBlockquote (HtmlBlockInTags / (!HtmlBlockCloseBlockquote .))* HtmlBlockCloseBlockquote) / (HtmlBlockOpenCenter (HtmlBlockInTags / (!HtmlBlockCloseCenter .))* HtmlBlockCloseCenter) / (HtmlBlockOpenDir (HtmlBlockInTags / (!HtmlBlockCloseDir .))* HtmlBlockCloseDir) / (HtmlBlockOpenDiv (HtmlBlockInTags / (!HtmlBlockCloseDiv .))* HtmlBlockCloseDiv) / (HtmlBlockOpenDl (HtmlBlockInTags / (!HtmlBlockCloseDl .))* HtmlBlockCloseDl) / (HtmlBlockOpenFieldset (HtmlBlockInTags / (!HtmlBlockCloseFieldset .))* HtmlBlockCloseFieldset) / (HtmlBlockOpenForm (HtmlBlockInTags / (!HtmlBlockCloseForm .))* HtmlBlockCloseForm) / (HtmlBlockOpenH1 (HtmlBlockInTags / (!HtmlBlockCloseH1 .))* HtmlBlockCloseH1) / (HtmlBlockOpenH2 (HtmlBlockInTags / (!HtmlBlockCloseH2 .))* HtmlBlockCloseH2) / (HtmlBlockOpenH3 (HtmlBlockInTags / (!HtmlBlockCloseH3 .))* HtmlBlockCloseH3) / (HtmlBlockOpenH4 (HtmlBlockInTags / (!HtmlBlockCloseH4 .))* HtmlBlockCloseH4) / (HtmlBlockOpenH5 (HtmlBlockInTags / (!HtmlBlockCloseH5 .))* HtmlBlockCloseH5) / (HtmlBlockOpenH6 (HtmlBlockInTags / (!HtmlBlockCloseH6 .))* HtmlBlockCloseH6) / (HtmlBlockOpenMenu (HtmlBlockInTags / (!HtmlBlockCloseMenu .))* HtmlBlockCloseMenu) / (HtmlBlockOpenNoframes (HtmlBlockInTags / (!HtmlBlockCloseNoframes .))* HtmlBlockCloseNoframes) / (HtmlBlockOpenNoscript (HtmlBlockInTags / (!HtmlBlockCloseNoscript .))* HtmlBlockCloseNoscript) / (HtmlBlockOpenOl (HtmlBlockInTags / (!HtmlBlockCloseOl .))* HtmlBlockCloseOl) / (HtmlBlockOpenP (HtmlBlockInTags / (!HtmlBlockCloseP .))* HtmlBlockCloseP) / (HtmlBlockOpenPre (HtmlBlockInTags / (!HtmlBlockClosePre .))* HtmlBlockClosePre) / (HtmlBlockOpenTable (HtmlBlockInTags / (!HtmlBlockCloseTable .))* HtmlBlockCloseTable) / (HtmlBlockOpenUl (HtmlBlockInTags / (!HtmlBlockCloseUl .))* HtmlBlockCloseUl) / (HtmlBlockOpenDd (HtmlBlockInTags / (!HtmlBlockCloseDd .))* HtmlBlockCloseDd) / (HtmlBlockOpenDt (HtmlBlockInTags / (!HtmlBlockCloseDt .))* HtmlBlockCloseDt) / (HtmlBlockOpenFrameset (HtmlBlockInTags / (!HtmlBlockCloseFrameset .))* HtmlBlockCloseFrameset) / (HtmlBlockOpenLi (HtmlBlockInTags / (!HtmlBlockCloseLi .))* HtmlBlockCloseLi) / (HtmlBlockOpenTbody (HtmlBlockInTags / (!HtmlBlockCloseTbody .))* HtmlBlockCloseTbody) / (HtmlBlockOpenTd (HtmlBlockInTags / (!HtmlBlockCloseTd .))* HtmlBlockCloseTd) / (HtmlBlockOpenTfoot (HtmlBlockInTags / (!HtmlBlockCloseTfoot .))* HtmlBlockCloseTfoot) / (HtmlBlockOpenTh (HtmlBlockInTags / (!HtmlBlockCloseTh .))* HtmlBlockCloseTh) / (HtmlBlockOpenThead (HtmlBlockInTags / (!HtmlBlockCloseThead .))* HtmlBlockCloseThead) / (HtmlBlockOpenTr (HtmlBlockInTags / (!HtmlBlockCloseTr .))* HtmlBlockCloseTr) / (HtmlBlockOpenScript (HtmlBlockInTags / (!HtmlBlockCloseScript .))* HtmlBlockCloseScript)) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position431, thunkPosition431 := position, thunkPosition + if !p.rules[ruleHtmlBlockOpenAddress]() { + goto l432 + } + l433: + { + position434, thunkPosition434 := position, thunkPosition + { + position435, thunkPosition435 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l436 + } + goto l435 + l436: + position, thunkPosition = position435, thunkPosition435 + { + position437, thunkPosition437 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseAddress]() { + goto l437 + } + goto l434 + l437: + position, thunkPosition = position437, thunkPosition437 + } + if !matchDot() { + goto l434 + } + } + l435: + goto l433 + l434: + position, thunkPosition = position434, thunkPosition434 + } + if !p.rules[ruleHtmlBlockCloseAddress]() { + goto l432 + } + goto l431 + l432: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenBlockquote]() { + goto l438 + } + l439: + { + position440, thunkPosition440 := position, thunkPosition + { + position441, thunkPosition441 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l442 + } + goto l441 + l442: + position, thunkPosition = position441, thunkPosition441 + { + position443, thunkPosition443 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseBlockquote]() { + goto l443 + } + goto l440 + l443: + position, thunkPosition = position443, thunkPosition443 + } + if !matchDot() { + goto l440 + } + } + l441: + goto l439 + l440: + position, thunkPosition = position440, thunkPosition440 + } + if !p.rules[ruleHtmlBlockCloseBlockquote]() { + goto l438 + } + goto l431 + l438: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenCenter]() { + goto l444 + } + l445: + { + position446, thunkPosition446 := position, thunkPosition + { + position447, thunkPosition447 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l448 + } + goto l447 + l448: + position, thunkPosition = position447, thunkPosition447 + { + position449, thunkPosition449 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseCenter]() { + goto l449 + } + goto l446 + l449: + position, thunkPosition = position449, thunkPosition449 + } + if !matchDot() { + goto l446 + } + } + l447: + goto l445 + l446: + position, thunkPosition = position446, thunkPosition446 + } + if !p.rules[ruleHtmlBlockCloseCenter]() { + goto l444 + } + goto l431 + l444: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenDir]() { + goto l450 + } + l451: + { + position452, thunkPosition452 := position, thunkPosition + { + position453, thunkPosition453 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l454 + } + goto l453 + l454: + position, thunkPosition = position453, thunkPosition453 + { + position455, thunkPosition455 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseDir]() { + goto l455 + } + goto l452 + l455: + position, thunkPosition = position455, thunkPosition455 + } + if !matchDot() { + goto l452 + } + } + l453: + goto l451 + l452: + position, thunkPosition = position452, thunkPosition452 + } + if !p.rules[ruleHtmlBlockCloseDir]() { + goto l450 + } + goto l431 + l450: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenDiv]() { + goto l456 + } + l457: + { + position458, thunkPosition458 := position, thunkPosition + { + position459, thunkPosition459 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l460 + } + goto l459 + l460: + position, thunkPosition = position459, thunkPosition459 + { + position461, thunkPosition461 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseDiv]() { + goto l461 + } + goto l458 + l461: + position, thunkPosition = position461, thunkPosition461 + } + if !matchDot() { + goto l458 + } + } + l459: + goto l457 + l458: + position, thunkPosition = position458, thunkPosition458 + } + if !p.rules[ruleHtmlBlockCloseDiv]() { + goto l456 + } + goto l431 + l456: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenDl]() { + goto l462 + } + l463: + { + position464, thunkPosition464 := position, thunkPosition + { + position465, thunkPosition465 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l466 + } + goto l465 + l466: + position, thunkPosition = position465, thunkPosition465 + { + position467, thunkPosition467 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseDl]() { + goto l467 + } + goto l464 + l467: + position, thunkPosition = position467, thunkPosition467 + } + if !matchDot() { + goto l464 + } + } + l465: + goto l463 + l464: + position, thunkPosition = position464, thunkPosition464 + } + if !p.rules[ruleHtmlBlockCloseDl]() { + goto l462 + } + goto l431 + l462: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenFieldset]() { + goto l468 + } + l469: + { + position470, thunkPosition470 := position, thunkPosition + { + position471, thunkPosition471 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l472 + } + goto l471 + l472: + position, thunkPosition = position471, thunkPosition471 + { + position473, thunkPosition473 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseFieldset]() { + goto l473 + } + goto l470 + l473: + position, thunkPosition = position473, thunkPosition473 + } + if !matchDot() { + goto l470 + } + } + l471: + goto l469 + l470: + position, thunkPosition = position470, thunkPosition470 + } + if !p.rules[ruleHtmlBlockCloseFieldset]() { + goto l468 + } + goto l431 + l468: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenForm]() { + goto l474 + } + l475: + { + position476, thunkPosition476 := position, thunkPosition + { + position477, thunkPosition477 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l478 + } + goto l477 + l478: + position, thunkPosition = position477, thunkPosition477 + { + position479, thunkPosition479 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseForm]() { + goto l479 + } + goto l476 + l479: + position, thunkPosition = position479, thunkPosition479 + } + if !matchDot() { + goto l476 + } + } + l477: + goto l475 + l476: + position, thunkPosition = position476, thunkPosition476 + } + if !p.rules[ruleHtmlBlockCloseForm]() { + goto l474 + } + goto l431 + l474: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenH1]() { + goto l480 + } + l481: + { + position482, thunkPosition482 := position, thunkPosition + { + position483, thunkPosition483 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l484 + } + goto l483 + l484: + position, thunkPosition = position483, thunkPosition483 + { + position485, thunkPosition485 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseH1]() { + goto l485 + } + goto l482 + l485: + position, thunkPosition = position485, thunkPosition485 + } + if !matchDot() { + goto l482 + } + } + l483: + goto l481 + l482: + position, thunkPosition = position482, thunkPosition482 + } + if !p.rules[ruleHtmlBlockCloseH1]() { + goto l480 + } + goto l431 + l480: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenH2]() { + goto l486 + } + l487: + { + position488, thunkPosition488 := position, thunkPosition + { + position489, thunkPosition489 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l490 + } + goto l489 + l490: + position, thunkPosition = position489, thunkPosition489 + { + position491, thunkPosition491 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseH2]() { + goto l491 + } + goto l488 + l491: + position, thunkPosition = position491, thunkPosition491 + } + if !matchDot() { + goto l488 + } + } + l489: + goto l487 + l488: + position, thunkPosition = position488, thunkPosition488 + } + if !p.rules[ruleHtmlBlockCloseH2]() { + goto l486 + } + goto l431 + l486: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenH3]() { + goto l492 + } + l493: + { + position494, thunkPosition494 := position, thunkPosition + { + position495, thunkPosition495 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l496 + } + goto l495 + l496: + position, thunkPosition = position495, thunkPosition495 + { + position497, thunkPosition497 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseH3]() { + goto l497 + } + goto l494 + l497: + position, thunkPosition = position497, thunkPosition497 + } + if !matchDot() { + goto l494 + } + } + l495: + goto l493 + l494: + position, thunkPosition = position494, thunkPosition494 + } + if !p.rules[ruleHtmlBlockCloseH3]() { + goto l492 + } + goto l431 + l492: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenH4]() { + goto l498 + } + l499: + { + position500, thunkPosition500 := position, thunkPosition + { + position501, thunkPosition501 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l502 + } + goto l501 + l502: + position, thunkPosition = position501, thunkPosition501 + { + position503, thunkPosition503 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseH4]() { + goto l503 + } + goto l500 + l503: + position, thunkPosition = position503, thunkPosition503 + } + if !matchDot() { + goto l500 + } + } + l501: + goto l499 + l500: + position, thunkPosition = position500, thunkPosition500 + } + if !p.rules[ruleHtmlBlockCloseH4]() { + goto l498 + } + goto l431 + l498: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenH5]() { + goto l504 + } + l505: + { + position506, thunkPosition506 := position, thunkPosition + { + position507, thunkPosition507 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l508 + } + goto l507 + l508: + position, thunkPosition = position507, thunkPosition507 + { + position509, thunkPosition509 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseH5]() { + goto l509 + } + goto l506 + l509: + position, thunkPosition = position509, thunkPosition509 + } + if !matchDot() { + goto l506 + } + } + l507: + goto l505 + l506: + position, thunkPosition = position506, thunkPosition506 + } + if !p.rules[ruleHtmlBlockCloseH5]() { + goto l504 + } + goto l431 + l504: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenH6]() { + goto l510 + } + l511: + { + position512, thunkPosition512 := position, thunkPosition + { + position513, thunkPosition513 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l514 + } + goto l513 + l514: + position, thunkPosition = position513, thunkPosition513 + { + position515, thunkPosition515 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseH6]() { + goto l515 + } + goto l512 + l515: + position, thunkPosition = position515, thunkPosition515 + } + if !matchDot() { + goto l512 + } + } + l513: + goto l511 + l512: + position, thunkPosition = position512, thunkPosition512 + } + if !p.rules[ruleHtmlBlockCloseH6]() { + goto l510 + } + goto l431 + l510: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenMenu]() { + goto l516 + } + l517: + { + position518, thunkPosition518 := position, thunkPosition + { + position519, thunkPosition519 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l520 + } + goto l519 + l520: + position, thunkPosition = position519, thunkPosition519 + { + position521, thunkPosition521 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseMenu]() { + goto l521 + } + goto l518 + l521: + position, thunkPosition = position521, thunkPosition521 + } + if !matchDot() { + goto l518 + } + } + l519: + goto l517 + l518: + position, thunkPosition = position518, thunkPosition518 + } + if !p.rules[ruleHtmlBlockCloseMenu]() { + goto l516 + } + goto l431 + l516: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenNoframes]() { + goto l522 + } + l523: + { + position524, thunkPosition524 := position, thunkPosition + { + position525, thunkPosition525 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l526 + } + goto l525 + l526: + position, thunkPosition = position525, thunkPosition525 + { + position527, thunkPosition527 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseNoframes]() { + goto l527 + } + goto l524 + l527: + position, thunkPosition = position527, thunkPosition527 + } + if !matchDot() { + goto l524 + } + } + l525: + goto l523 + l524: + position, thunkPosition = position524, thunkPosition524 + } + if !p.rules[ruleHtmlBlockCloseNoframes]() { + goto l522 + } + goto l431 + l522: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenNoscript]() { + goto l528 + } + l529: + { + position530, thunkPosition530 := position, thunkPosition + { + position531, thunkPosition531 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l532 + } + goto l531 + l532: + position, thunkPosition = position531, thunkPosition531 + { + position533, thunkPosition533 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseNoscript]() { + goto l533 + } + goto l530 + l533: + position, thunkPosition = position533, thunkPosition533 + } + if !matchDot() { + goto l530 + } + } + l531: + goto l529 + l530: + position, thunkPosition = position530, thunkPosition530 + } + if !p.rules[ruleHtmlBlockCloseNoscript]() { + goto l528 + } + goto l431 + l528: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenOl]() { + goto l534 + } + l535: + { + position536, thunkPosition536 := position, thunkPosition + { + position537, thunkPosition537 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l538 + } + goto l537 + l538: + position, thunkPosition = position537, thunkPosition537 + { + position539, thunkPosition539 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseOl]() { + goto l539 + } + goto l536 + l539: + position, thunkPosition = position539, thunkPosition539 + } + if !matchDot() { + goto l536 + } + } + l537: + goto l535 + l536: + position, thunkPosition = position536, thunkPosition536 + } + if !p.rules[ruleHtmlBlockCloseOl]() { + goto l534 + } + goto l431 + l534: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenP]() { + goto l540 + } + l541: + { + position542, thunkPosition542 := position, thunkPosition + { + position543, thunkPosition543 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l544 + } + goto l543 + l544: + position, thunkPosition = position543, thunkPosition543 + { + position545, thunkPosition545 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseP]() { + goto l545 + } + goto l542 + l545: + position, thunkPosition = position545, thunkPosition545 + } + if !matchDot() { + goto l542 + } + } + l543: + goto l541 + l542: + position, thunkPosition = position542, thunkPosition542 + } + if !p.rules[ruleHtmlBlockCloseP]() { + goto l540 + } + goto l431 + l540: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenPre]() { + goto l546 + } + l547: + { + position548, thunkPosition548 := position, thunkPosition + { + position549, thunkPosition549 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l550 + } + goto l549 + l550: + position, thunkPosition = position549, thunkPosition549 + { + position551, thunkPosition551 := position, thunkPosition + if !p.rules[ruleHtmlBlockClosePre]() { + goto l551 + } + goto l548 + l551: + position, thunkPosition = position551, thunkPosition551 + } + if !matchDot() { + goto l548 + } + } + l549: + goto l547 + l548: + position, thunkPosition = position548, thunkPosition548 + } + if !p.rules[ruleHtmlBlockClosePre]() { + goto l546 + } + goto l431 + l546: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenTable]() { + goto l552 + } + l553: + { + position554, thunkPosition554 := position, thunkPosition + { + position555, thunkPosition555 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l556 + } + goto l555 + l556: + position, thunkPosition = position555, thunkPosition555 + { + position557, thunkPosition557 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseTable]() { + goto l557 + } + goto l554 + l557: + position, thunkPosition = position557, thunkPosition557 + } + if !matchDot() { + goto l554 + } + } + l555: + goto l553 + l554: + position, thunkPosition = position554, thunkPosition554 + } + if !p.rules[ruleHtmlBlockCloseTable]() { + goto l552 + } + goto l431 + l552: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenUl]() { + goto l558 + } + l559: + { + position560, thunkPosition560 := position, thunkPosition + { + position561, thunkPosition561 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l562 + } + goto l561 + l562: + position, thunkPosition = position561, thunkPosition561 + { + position563, thunkPosition563 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseUl]() { + goto l563 + } + goto l560 + l563: + position, thunkPosition = position563, thunkPosition563 + } + if !matchDot() { + goto l560 + } + } + l561: + goto l559 + l560: + position, thunkPosition = position560, thunkPosition560 + } + if !p.rules[ruleHtmlBlockCloseUl]() { + goto l558 + } + goto l431 + l558: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenDd]() { + goto l564 + } + l565: + { + position566, thunkPosition566 := position, thunkPosition + { + position567, thunkPosition567 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l568 + } + goto l567 + l568: + position, thunkPosition = position567, thunkPosition567 + { + position569, thunkPosition569 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseDd]() { + goto l569 + } + goto l566 + l569: + position, thunkPosition = position569, thunkPosition569 + } + if !matchDot() { + goto l566 + } + } + l567: + goto l565 + l566: + position, thunkPosition = position566, thunkPosition566 + } + if !p.rules[ruleHtmlBlockCloseDd]() { + goto l564 + } + goto l431 + l564: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenDt]() { + goto l570 + } + l571: + { + position572, thunkPosition572 := position, thunkPosition + { + position573, thunkPosition573 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l574 + } + goto l573 + l574: + position, thunkPosition = position573, thunkPosition573 + { + position575, thunkPosition575 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseDt]() { + goto l575 + } + goto l572 + l575: + position, thunkPosition = position575, thunkPosition575 + } + if !matchDot() { + goto l572 + } + } + l573: + goto l571 + l572: + position, thunkPosition = position572, thunkPosition572 + } + if !p.rules[ruleHtmlBlockCloseDt]() { + goto l570 + } + goto l431 + l570: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenFrameset]() { + goto l576 + } + l577: + { + position578, thunkPosition578 := position, thunkPosition + { + position579, thunkPosition579 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l580 + } + goto l579 + l580: + position, thunkPosition = position579, thunkPosition579 + { + position581, thunkPosition581 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseFrameset]() { + goto l581 + } + goto l578 + l581: + position, thunkPosition = position581, thunkPosition581 + } + if !matchDot() { + goto l578 + } + } + l579: + goto l577 + l578: + position, thunkPosition = position578, thunkPosition578 + } + if !p.rules[ruleHtmlBlockCloseFrameset]() { + goto l576 + } + goto l431 + l576: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenLi]() { + goto l582 + } + l583: + { + position584, thunkPosition584 := position, thunkPosition + { + position585, thunkPosition585 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l586 + } + goto l585 + l586: + position, thunkPosition = position585, thunkPosition585 + { + position587, thunkPosition587 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseLi]() { + goto l587 + } + goto l584 + l587: + position, thunkPosition = position587, thunkPosition587 + } + if !matchDot() { + goto l584 + } + } + l585: + goto l583 + l584: + position, thunkPosition = position584, thunkPosition584 + } + if !p.rules[ruleHtmlBlockCloseLi]() { + goto l582 + } + goto l431 + l582: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenTbody]() { + goto l588 + } + l589: + { + position590, thunkPosition590 := position, thunkPosition + { + position591, thunkPosition591 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l592 + } + goto l591 + l592: + position, thunkPosition = position591, thunkPosition591 + { + position593, thunkPosition593 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseTbody]() { + goto l593 + } + goto l590 + l593: + position, thunkPosition = position593, thunkPosition593 + } + if !matchDot() { + goto l590 + } + } + l591: + goto l589 + l590: + position, thunkPosition = position590, thunkPosition590 + } + if !p.rules[ruleHtmlBlockCloseTbody]() { + goto l588 + } + goto l431 + l588: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenTd]() { + goto l594 + } + l595: + { + position596, thunkPosition596 := position, thunkPosition + { + position597, thunkPosition597 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l598 + } + goto l597 + l598: + position, thunkPosition = position597, thunkPosition597 + { + position599, thunkPosition599 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseTd]() { + goto l599 + } + goto l596 + l599: + position, thunkPosition = position599, thunkPosition599 + } + if !matchDot() { + goto l596 + } + } + l597: + goto l595 + l596: + position, thunkPosition = position596, thunkPosition596 + } + if !p.rules[ruleHtmlBlockCloseTd]() { + goto l594 + } + goto l431 + l594: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenTfoot]() { + goto l600 + } + l601: + { + position602, thunkPosition602 := position, thunkPosition + { + position603, thunkPosition603 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l604 + } + goto l603 + l604: + position, thunkPosition = position603, thunkPosition603 + { + position605, thunkPosition605 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseTfoot]() { + goto l605 + } + goto l602 + l605: + position, thunkPosition = position605, thunkPosition605 + } + if !matchDot() { + goto l602 + } + } + l603: + goto l601 + l602: + position, thunkPosition = position602, thunkPosition602 + } + if !p.rules[ruleHtmlBlockCloseTfoot]() { + goto l600 + } + goto l431 + l600: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenTh]() { + goto l606 + } + l607: + { + position608, thunkPosition608 := position, thunkPosition + { + position609, thunkPosition609 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l610 + } + goto l609 + l610: + position, thunkPosition = position609, thunkPosition609 + { + position611, thunkPosition611 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseTh]() { + goto l611 + } + goto l608 + l611: + position, thunkPosition = position611, thunkPosition611 + } + if !matchDot() { + goto l608 + } + } + l609: + goto l607 + l608: + position, thunkPosition = position608, thunkPosition608 + } + if !p.rules[ruleHtmlBlockCloseTh]() { + goto l606 + } + goto l431 + l606: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenThead]() { + goto l612 + } + l613: + { + position614, thunkPosition614 := position, thunkPosition + { + position615, thunkPosition615 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l616 + } + goto l615 + l616: + position, thunkPosition = position615, thunkPosition615 + { + position617, thunkPosition617 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseThead]() { + goto l617 + } + goto l614 + l617: + position, thunkPosition = position617, thunkPosition617 + } + if !matchDot() { + goto l614 + } + } + l615: + goto l613 + l614: + position, thunkPosition = position614, thunkPosition614 + } + if !p.rules[ruleHtmlBlockCloseThead]() { + goto l612 + } + goto l431 + l612: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenTr]() { + goto l618 + } + l619: + { + position620, thunkPosition620 := position, thunkPosition + { + position621, thunkPosition621 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l622 + } + goto l621 + l622: + position, thunkPosition = position621, thunkPosition621 + { + position623, thunkPosition623 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseTr]() { + goto l623 + } + goto l620 + l623: + position, thunkPosition = position623, thunkPosition623 + } + if !matchDot() { + goto l620 + } + } + l621: + goto l619 + l620: + position, thunkPosition = position620, thunkPosition620 + } + if !p.rules[ruleHtmlBlockCloseTr]() { + goto l618 + } + goto l431 + l618: + position, thunkPosition = position431, thunkPosition431 + if !p.rules[ruleHtmlBlockOpenScript]() { + goto l430 + } + l624: + { + position625, thunkPosition625 := position, thunkPosition + { + position626, thunkPosition626 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l627 + } + goto l626 + l627: + position, thunkPosition = position626, thunkPosition626 + { + position628, thunkPosition628 := position, thunkPosition + if !p.rules[ruleHtmlBlockCloseScript]() { + goto l628 + } + goto l625 + l628: + position, thunkPosition = position628, thunkPosition628 + } + if !matchDot() { + goto l625 + } + } + l626: + goto l624 + l625: + position, thunkPosition = position625, thunkPosition625 + } + if !p.rules[ruleHtmlBlockCloseScript]() { + goto l430 + } + } + l431: + return true + l430: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 96 HtmlBlock <- (&'<' < (HtmlBlockInTags / HtmlComment / HtmlBlockSelfClosing) > BlankLine+ { if p.extension.FilterHTML { + yy = mk_list(LIST, nil) + } else { + yy = mk_str(yytext) + yy.key = HTMLBLOCK + } + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !peekChar('<') { + goto l629 + } + begin = position + { + position630, thunkPosition630 := position, thunkPosition + if !p.rules[ruleHtmlBlockInTags]() { + goto l631 + } + goto l630 + l631: + position, thunkPosition = position630, thunkPosition630 + if !p.rules[ruleHtmlComment]() { + goto l632 + } + goto l630 + l632: + position, thunkPosition = position630, thunkPosition630 + if !p.rules[ruleHtmlBlockSelfClosing]() { + goto l629 + } + } + l630: + end = position + if !p.rules[ruleBlankLine]() { + goto l629 + } + l633: + { + position634, thunkPosition634 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l634 + } + goto l633 + l634: + position, thunkPosition = position634, thunkPosition634 + } + do(37) + return true + l629: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 97 HtmlBlockSelfClosing <- ('<' Spnl HtmlBlockType Spnl HtmlAttribute* '/' Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l635 + } + if !p.rules[ruleSpnl]() { + goto l635 + } + if !p.rules[ruleHtmlBlockType]() { + goto l635 + } + if !p.rules[ruleSpnl]() { + goto l635 + } + l636: + { + position637, thunkPosition637 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l637 + } + goto l636 + l637: + position, thunkPosition = position637, thunkPosition637 + } + if !matchChar('/') { + goto l635 + } + if !p.rules[ruleSpnl]() { + goto l635 + } + if !matchChar('>') { + goto l635 + } + return true + l635: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 98 HtmlBlockType <- ('address' / 'blockquote' / 'center' / 'dir' / 'div' / 'dl' / 'fieldset' / 'form' / 'h1' / 'h2' / 'h3' / 'h4' / 'h5' / 'h6' / 'hr' / 'isindex' / 'menu' / 'noframes' / 'noscript' / 'ol' / 'p' / 'pre' / 'table' / 'ul' / 'dd' / 'dt' / 'frameset' / 'li' / 'tbody' / 'td' / 'tfoot' / 'th' / 'thead' / 'tr' / 'script' / 'ADDRESS' / 'BLOCKQUOTE' / 'CENTER' / 'DIR' / 'DIV' / 'DL' / 'FIELDSET' / 'FORM' / 'H1' / 'H2' / 'H3' / 'H4' / 'H5' / 'H6' / 'HR' / 'ISINDEX' / 'MENU' / 'NOFRAMES' / 'NOSCRIPT' / 'OL' / 'P' / 'PRE' / 'TABLE' / 'UL' / 'DD' / 'DT' / 'FRAMESET' / 'LI' / 'TBODY' / 'TD' / 'TFOOT' / 'TH' / 'THEAD' / 'TR' / 'SCRIPT') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position639, thunkPosition639 := position, thunkPosition + if !matchString("address") { + goto l640 + } + goto l639 + l640: + position, thunkPosition = position639, thunkPosition639 + if !matchString("blockquote") { + goto l641 + } + goto l639 + l641: + position, thunkPosition = position639, thunkPosition639 + if !matchString("center") { + goto l642 + } + goto l639 + l642: + position, thunkPosition = position639, thunkPosition639 + if !matchString("dir") { + goto l643 + } + goto l639 + l643: + position, thunkPosition = position639, thunkPosition639 + if !matchString("div") { + goto l644 + } + goto l639 + l644: + position, thunkPosition = position639, thunkPosition639 + if !matchString("dl") { + goto l645 + } + goto l639 + l645: + position, thunkPosition = position639, thunkPosition639 + if !matchString("fieldset") { + goto l646 + } + goto l639 + l646: + position, thunkPosition = position639, thunkPosition639 + if !matchString("form") { + goto l647 + } + goto l639 + l647: + position, thunkPosition = position639, thunkPosition639 + if !matchString("h1") { + goto l648 + } + goto l639 + l648: + position, thunkPosition = position639, thunkPosition639 + if !matchString("h2") { + goto l649 + } + goto l639 + l649: + position, thunkPosition = position639, thunkPosition639 + if !matchString("h3") { + goto l650 + } + goto l639 + l650: + position, thunkPosition = position639, thunkPosition639 + if !matchString("h4") { + goto l651 + } + goto l639 + l651: + position, thunkPosition = position639, thunkPosition639 + if !matchString("h5") { + goto l652 + } + goto l639 + l652: + position, thunkPosition = position639, thunkPosition639 + if !matchString("h6") { + goto l653 + } + goto l639 + l653: + position, thunkPosition = position639, thunkPosition639 + if !matchString("hr") { + goto l654 + } + goto l639 + l654: + position, thunkPosition = position639, thunkPosition639 + if !matchString("isindex") { + goto l655 + } + goto l639 + l655: + position, thunkPosition = position639, thunkPosition639 + if !matchString("menu") { + goto l656 + } + goto l639 + l656: + position, thunkPosition = position639, thunkPosition639 + if !matchString("noframes") { + goto l657 + } + goto l639 + l657: + position, thunkPosition = position639, thunkPosition639 + if !matchString("noscript") { + goto l658 + } + goto l639 + l658: + position, thunkPosition = position639, thunkPosition639 + if !matchString("ol") { + goto l659 + } + goto l639 + l659: + position, thunkPosition = position639, thunkPosition639 + if !matchChar('p') { + goto l660 + } + goto l639 + l660: + position, thunkPosition = position639, thunkPosition639 + if !matchString("pre") { + goto l661 + } + goto l639 + l661: + position, thunkPosition = position639, thunkPosition639 + if !matchString("table") { + goto l662 + } + goto l639 + l662: + position, thunkPosition = position639, thunkPosition639 + if !matchString("ul") { + goto l663 + } + goto l639 + l663: + position, thunkPosition = position639, thunkPosition639 + if !matchString("dd") { + goto l664 + } + goto l639 + l664: + position, thunkPosition = position639, thunkPosition639 + if !matchString("dt") { + goto l665 + } + goto l639 + l665: + position, thunkPosition = position639, thunkPosition639 + if !matchString("frameset") { + goto l666 + } + goto l639 + l666: + position, thunkPosition = position639, thunkPosition639 + if !matchString("li") { + goto l667 + } + goto l639 + l667: + position, thunkPosition = position639, thunkPosition639 + if !matchString("tbody") { + goto l668 + } + goto l639 + l668: + position, thunkPosition = position639, thunkPosition639 + if !matchString("td") { + goto l669 + } + goto l639 + l669: + position, thunkPosition = position639, thunkPosition639 + if !matchString("tfoot") { + goto l670 + } + goto l639 + l670: + position, thunkPosition = position639, thunkPosition639 + if !matchString("th") { + goto l671 + } + goto l639 + l671: + position, thunkPosition = position639, thunkPosition639 + if !matchString("thead") { + goto l672 + } + goto l639 + l672: + position, thunkPosition = position639, thunkPosition639 + if !matchString("tr") { + goto l673 + } + goto l639 + l673: + position, thunkPosition = position639, thunkPosition639 + if !matchString("script") { + goto l674 + } + goto l639 + l674: + position, thunkPosition = position639, thunkPosition639 + if !matchString("ADDRESS") { + goto l675 + } + goto l639 + l675: + position, thunkPosition = position639, thunkPosition639 + if !matchString("BLOCKQUOTE") { + goto l676 + } + goto l639 + l676: + position, thunkPosition = position639, thunkPosition639 + if !matchString("CENTER") { + goto l677 + } + goto l639 + l677: + position, thunkPosition = position639, thunkPosition639 + if !matchString("DIR") { + goto l678 + } + goto l639 + l678: + position, thunkPosition = position639, thunkPosition639 + if !matchString("DIV") { + goto l679 + } + goto l639 + l679: + position, thunkPosition = position639, thunkPosition639 + if !matchString("DL") { + goto l680 + } + goto l639 + l680: + position, thunkPosition = position639, thunkPosition639 + if !matchString("FIELDSET") { + goto l681 + } + goto l639 + l681: + position, thunkPosition = position639, thunkPosition639 + if !matchString("FORM") { + goto l682 + } + goto l639 + l682: + position, thunkPosition = position639, thunkPosition639 + if !matchString("H1") { + goto l683 + } + goto l639 + l683: + position, thunkPosition = position639, thunkPosition639 + if !matchString("H2") { + goto l684 + } + goto l639 + l684: + position, thunkPosition = position639, thunkPosition639 + if !matchString("H3") { + goto l685 + } + goto l639 + l685: + position, thunkPosition = position639, thunkPosition639 + if !matchString("H4") { + goto l686 + } + goto l639 + l686: + position, thunkPosition = position639, thunkPosition639 + if !matchString("H5") { + goto l687 + } + goto l639 + l687: + position, thunkPosition = position639, thunkPosition639 + if !matchString("H6") { + goto l688 + } + goto l639 + l688: + position, thunkPosition = position639, thunkPosition639 + if !matchString("HR") { + goto l689 + } + goto l639 + l689: + position, thunkPosition = position639, thunkPosition639 + if !matchString("ISINDEX") { + goto l690 + } + goto l639 + l690: + position, thunkPosition = position639, thunkPosition639 + if !matchString("MENU") { + goto l691 + } + goto l639 + l691: + position, thunkPosition = position639, thunkPosition639 + if !matchString("NOFRAMES") { + goto l692 + } + goto l639 + l692: + position, thunkPosition = position639, thunkPosition639 + if !matchString("NOSCRIPT") { + goto l693 + } + goto l639 + l693: + position, thunkPosition = position639, thunkPosition639 + if !matchString("OL") { + goto l694 + } + goto l639 + l694: + position, thunkPosition = position639, thunkPosition639 + if !matchChar('P') { + goto l695 + } + goto l639 + l695: + position, thunkPosition = position639, thunkPosition639 + if !matchString("PRE") { + goto l696 + } + goto l639 + l696: + position, thunkPosition = position639, thunkPosition639 + if !matchString("TABLE") { + goto l697 + } + goto l639 + l697: + position, thunkPosition = position639, thunkPosition639 + if !matchString("UL") { + goto l698 + } + goto l639 + l698: + position, thunkPosition = position639, thunkPosition639 + if !matchString("DD") { + goto l699 + } + goto l639 + l699: + position, thunkPosition = position639, thunkPosition639 + if !matchString("DT") { + goto l700 + } + goto l639 + l700: + position, thunkPosition = position639, thunkPosition639 + if !matchString("FRAMESET") { + goto l701 + } + goto l639 + l701: + position, thunkPosition = position639, thunkPosition639 + if !matchString("LI") { + goto l702 + } + goto l639 + l702: + position, thunkPosition = position639, thunkPosition639 + if !matchString("TBODY") { + goto l703 + } + goto l639 + l703: + position, thunkPosition = position639, thunkPosition639 + if !matchString("TD") { + goto l704 + } + goto l639 + l704: + position, thunkPosition = position639, thunkPosition639 + if !matchString("TFOOT") { + goto l705 + } + goto l639 + l705: + position, thunkPosition = position639, thunkPosition639 + if !matchString("TH") { + goto l706 + } + goto l639 + l706: + position, thunkPosition = position639, thunkPosition639 + if !matchString("THEAD") { + goto l707 + } + goto l639 + l707: + position, thunkPosition = position639, thunkPosition639 + if !matchString("TR") { + goto l708 + } + goto l639 + l708: + position, thunkPosition = position639, thunkPosition639 + if !matchString("SCRIPT") { + goto l638 + } + } + l639: + return true + l638: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 99 StyleOpen <- ('<' Spnl ('style' / 'STYLE') Spnl HtmlAttribute* '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l709 + } + if !p.rules[ruleSpnl]() { + goto l709 + } + { + position710, thunkPosition710 := position, thunkPosition + if !matchString("style") { + goto l711 + } + goto l710 + l711: + position, thunkPosition = position710, thunkPosition710 + if !matchString("STYLE") { + goto l709 + } + } + l710: + if !p.rules[ruleSpnl]() { + goto l709 + } + l712: + { + position713, thunkPosition713 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l713 + } + goto l712 + l713: + position, thunkPosition = position713, thunkPosition713 + } + if !matchChar('>') { + goto l709 + } + return true + l709: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 100 StyleClose <- ('<' Spnl '/' ('style' / 'STYLE') Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l714 + } + if !p.rules[ruleSpnl]() { + goto l714 + } + if !matchChar('/') { + goto l714 + } + { + position715, thunkPosition715 := position, thunkPosition + if !matchString("style") { + goto l716 + } + goto l715 + l716: + position, thunkPosition = position715, thunkPosition715 + if !matchString("STYLE") { + goto l714 + } + } + l715: + if !p.rules[ruleSpnl]() { + goto l714 + } + if !matchChar('>') { + goto l714 + } + return true + l714: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 101 InStyleTags <- (StyleOpen (!StyleClose .)* StyleClose) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !p.rules[ruleStyleOpen]() { + goto l717 + } + l718: + { + position719, thunkPosition719 := position, thunkPosition + { + position720, thunkPosition720 := position, thunkPosition + if !p.rules[ruleStyleClose]() { + goto l720 + } + goto l719 + l720: + position, thunkPosition = position720, thunkPosition720 + } + if !matchDot() { + goto l719 + } + goto l718 + l719: + position, thunkPosition = position719, thunkPosition719 + } + if !p.rules[ruleStyleClose]() { + goto l717 + } + return true + l717: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 102 StyleBlock <- (< InStyleTags > BlankLine* { if p.extension.FilterStyles { + yy = mk_list(LIST, nil) + } else { + yy = mk_str(yytext) + yy.key = HTMLBLOCK + } + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + begin = position + if !p.rules[ruleInStyleTags]() { + goto l721 + } + end = position + l722: + { + position723, thunkPosition723 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l723 + } + goto l722 + l723: + position, thunkPosition = position723, thunkPosition723 + } + do(38) + return true + l721: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 103 Inlines <- (StartList ((!Endline Inline { a = cons(yy, a) }) / (Endline &Inline { a = cons(c, a) }))+ Endline? { yy = mk_list(LIST, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 2) + if !p.rules[ruleStartList]() { + goto l724 + } + doarg(yySet, -2) + { + position727, thunkPosition727 := position, thunkPosition + { + position729, thunkPosition729 := position, thunkPosition + if !p.rules[ruleEndline]() { + goto l729 + } + goto l728 + l729: + position, thunkPosition = position729, thunkPosition729 + } + if !p.rules[ruleInline]() { + goto l728 + } + do(39) + goto l727 + l728: + position, thunkPosition = position727, thunkPosition727 + if !p.rules[ruleEndline]() { + goto l724 + } + doarg(yySet, -1) + { + position730, thunkPosition730 := position, thunkPosition + if !p.rules[ruleInline]() { + goto l724 + } + position, thunkPosition = position730, thunkPosition730 + } + do(40) + } + l727: + l725: + { + position726, thunkPosition726 := position, thunkPosition + { + position731, thunkPosition731 := position, thunkPosition + { + position733, thunkPosition733 := position, thunkPosition + if !p.rules[ruleEndline]() { + goto l733 + } + goto l732 + l733: + position, thunkPosition = position733, thunkPosition733 + } + if !p.rules[ruleInline]() { + goto l732 + } + do(39) + goto l731 + l732: + position, thunkPosition = position731, thunkPosition731 + if !p.rules[ruleEndline]() { + goto l726 + } + doarg(yySet, -1) + { + position734, thunkPosition734 := position, thunkPosition + if !p.rules[ruleInline]() { + goto l726 + } + position, thunkPosition = position734, thunkPosition734 + } + do(40) + } + l731: + goto l725 + l726: + position, thunkPosition = position726, thunkPosition726 + } + { + position735, thunkPosition735 := position, thunkPosition + if !p.rules[ruleEndline]() { + goto l735 + } + goto l736 + l735: + position, thunkPosition = position735, thunkPosition735 + } + l736: + do(41) + doarg(yyPop, 2) + return true + l724: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 104 Inline <- (Str / Endline / UlOrStarLine / Space / Strong / Emph / Image / Link / NoteReference / InlineNote / Code / RawHtml / Entity / EscapedChar / Smart / Symbol) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position738, thunkPosition738 := position, thunkPosition + if !p.rules[ruleStr]() { + goto l739 + } + goto l738 + l739: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleEndline]() { + goto l740 + } + goto l738 + l740: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleUlOrStarLine]() { + goto l741 + } + goto l738 + l741: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleSpace]() { + goto l742 + } + goto l738 + l742: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleStrong]() { + goto l743 + } + goto l738 + l743: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleEmph]() { + goto l744 + } + goto l738 + l744: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleImage]() { + goto l745 + } + goto l738 + l745: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleLink]() { + goto l746 + } + goto l738 + l746: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleNoteReference]() { + goto l747 + } + goto l738 + l747: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleInlineNote]() { + goto l748 + } + goto l738 + l748: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleCode]() { + goto l749 + } + goto l738 + l749: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleRawHtml]() { + goto l750 + } + goto l738 + l750: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleEntity]() { + goto l751 + } + goto l738 + l751: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleEscapedChar]() { + goto l752 + } + goto l738 + l752: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleSmart]() { + goto l753 + } + goto l738 + l753: + position, thunkPosition = position738, thunkPosition738 + if !p.rules[ruleSymbol]() { + goto l737 + } + } + l738: + return true + l737: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 105 Space <- (Spacechar+ { yy = mk_str(" ") + yy.key = SPACE }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l754 + } + l755: + { + position756, thunkPosition756 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l756 + } + goto l755 + l756: + position, thunkPosition = position756, thunkPosition756 + } + do(42) + return true + l754: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 106 Str <- (< NormalChar (NormalChar / ('_'+ &NormalChar))* > { yy = mk_str(yytext) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + begin = position + if !p.rules[ruleNormalChar]() { + goto l757 + } + l758: + { + position759, thunkPosition759 := position, thunkPosition + { + position760, thunkPosition760 := position, thunkPosition + if !p.rules[ruleNormalChar]() { + goto l761 + } + goto l760 + l761: + position, thunkPosition = position760, thunkPosition760 + if !matchChar('_') { + goto l759 + } + l762: + { + position763, thunkPosition763 := position, thunkPosition + if !matchChar('_') { + goto l763 + } + goto l762 + l763: + position, thunkPosition = position763, thunkPosition763 + } + { + position764, thunkPosition764 := position, thunkPosition + if !p.rules[ruleNormalChar]() { + goto l759 + } + position, thunkPosition = position764, thunkPosition764 + } + } + l760: + goto l758 + l759: + position, thunkPosition = position759, thunkPosition759 + } + end = position + do(43) + return true + l757: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 107 EscapedChar <- ('\\' !Newline < [-\\`|*_{}[\]()#+.!><] > { yy = mk_str(yytext) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('\\') { + goto l765 + } + { + position766, thunkPosition766 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l766 + } + goto l765 + l766: + position, thunkPosition = position766, thunkPosition766 + } + begin = position + if !matchClass(1) { + goto l765 + } + end = position + do(44) + return true + l765: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 108 Entity <- ((HexEntity / DecEntity / CharEntity) { yy = mk_str(yytext); yy.key = HTML }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position768, thunkPosition768 := position, thunkPosition + if !p.rules[ruleHexEntity]() { + goto l769 + } + goto l768 + l769: + position, thunkPosition = position768, thunkPosition768 + if !p.rules[ruleDecEntity]() { + goto l770 + } + goto l768 + l770: + position, thunkPosition = position768, thunkPosition768 + if !p.rules[ruleCharEntity]() { + goto l767 + } + } + l768: + do(45) + return true + l767: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 109 Endline <- (LineBreak / TerminalEndline / NormalEndline) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position772, thunkPosition772 := position, thunkPosition + if !p.rules[ruleLineBreak]() { + goto l773 + } + goto l772 + l773: + position, thunkPosition = position772, thunkPosition772 + if !p.rules[ruleTerminalEndline]() { + goto l774 + } + goto l772 + l774: + position, thunkPosition = position772, thunkPosition772 + if !p.rules[ruleNormalEndline]() { + goto l771 + } + } + l772: + return true + l771: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 110 NormalEndline <- (Sp Newline !BlankLine !'>' !AtxStart !(Line (('===' '='*) / ('---' '-'*)) Newline) { yy = mk_str("\n") + yy.key = SPACE }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l775 + } + if !p.rules[ruleNewline]() { + goto l775 + } + { + position776, thunkPosition776 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l776 + } + goto l775 + l776: + position, thunkPosition = position776, thunkPosition776 + } + if peekChar('>') { + goto l775 + } + { + position777, thunkPosition777 := position, thunkPosition + if !p.rules[ruleAtxStart]() { + goto l777 + } + goto l775 + l777: + position, thunkPosition = position777, thunkPosition777 + } + { + position778, thunkPosition778 := position, thunkPosition + if !p.rules[ruleLine]() { + goto l778 + } + { + position779, thunkPosition779 := position, thunkPosition + if !matchString("===") { + goto l780 + } + l781: + { + position782, thunkPosition782 := position, thunkPosition + if !matchChar('=') { + goto l782 + } + goto l781 + l782: + position, thunkPosition = position782, thunkPosition782 + } + goto l779 + l780: + position, thunkPosition = position779, thunkPosition779 + if !matchString("---") { + goto l778 + } + l783: + { + position784, thunkPosition784 := position, thunkPosition + if !matchChar('-') { + goto l784 + } + goto l783 + l784: + position, thunkPosition = position784, thunkPosition784 + } + } + l779: + if !p.rules[ruleNewline]() { + goto l778 + } + goto l775 + l778: + position, thunkPosition = position778, thunkPosition778 + } + do(46) + return true + l775: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 111 TerminalEndline <- (Sp Newline Eof { yy = nil }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l785 + } + if !p.rules[ruleNewline]() { + goto l785 + } + if !p.rules[ruleEof]() { + goto l785 + } + do(47) + return true + l785: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 112 LineBreak <- (' ' NormalEndline { yy = mk_element(LINEBREAK) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchString(" ") { + goto l786 + } + if !p.rules[ruleNormalEndline]() { + goto l786 + } + do(48) + return true + l786: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 113 Symbol <- (< SpecialChar > { yy = mk_str(yytext) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + begin = position + if !p.rules[ruleSpecialChar]() { + goto l787 + } + end = position + do(49) + return true + l787: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 114 UlOrStarLine <- ((UlLine / StarLine) { yy = mk_str(yytext) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position789, thunkPosition789 := position, thunkPosition + if !p.rules[ruleUlLine]() { + goto l790 + } + goto l789 + l790: + position, thunkPosition = position789, thunkPosition789 + if !p.rules[ruleStarLine]() { + goto l788 + } + } + l789: + do(50) + return true + l788: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 115 StarLine <- ((< '****' '*'* >) / (< Spacechar '*'+ &Spacechar >)) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position792, thunkPosition792 := position, thunkPosition + begin = position + if !matchString("****") { + goto l793 + } + l794: + { + position795, thunkPosition795 := position, thunkPosition + if !matchChar('*') { + goto l795 + } + goto l794 + l795: + position, thunkPosition = position795, thunkPosition795 + } + end = position + goto l792 + l793: + position, thunkPosition = position792, thunkPosition792 + begin = position + if !p.rules[ruleSpacechar]() { + goto l791 + } + if !matchChar('*') { + goto l791 + } + l796: + { + position797, thunkPosition797 := position, thunkPosition + if !matchChar('*') { + goto l797 + } + goto l796 + l797: + position, thunkPosition = position797, thunkPosition797 + } + { + position798, thunkPosition798 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l791 + } + position, thunkPosition = position798, thunkPosition798 + } + end = position + } + l792: + return true + l791: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 116 UlLine <- ((< '____' '_'* >) / (< Spacechar '_'+ &Spacechar >)) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position800, thunkPosition800 := position, thunkPosition + begin = position + if !matchString("____") { + goto l801 + } + l802: + { + position803, thunkPosition803 := position, thunkPosition + if !matchChar('_') { + goto l803 + } + goto l802 + l803: + position, thunkPosition = position803, thunkPosition803 + } + end = position + goto l800 + l801: + position, thunkPosition = position800, thunkPosition800 + begin = position + if !p.rules[ruleSpacechar]() { + goto l799 + } + if !matchChar('_') { + goto l799 + } + l804: + { + position805, thunkPosition805 := position, thunkPosition + if !matchChar('_') { + goto l805 + } + goto l804 + l805: + position, thunkPosition = position805, thunkPosition805 + } + { + position806, thunkPosition806 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l799 + } + position, thunkPosition = position806, thunkPosition806 + } + end = position + } + l800: + return true + l799: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 117 Emph <- (EmphStar / EmphUl) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position808, thunkPosition808 := position, thunkPosition + if !p.rules[ruleEmphStar]() { + goto l809 + } + goto l808 + l809: + position, thunkPosition = position808, thunkPosition808 + if !p.rules[ruleEmphUl]() { + goto l807 + } + } + l808: + return true + l807: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 118 OneStarOpen <- (!StarLine '*' !Spacechar !Newline) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position811, thunkPosition811 := position, thunkPosition + if !p.rules[ruleStarLine]() { + goto l811 + } + goto l810 + l811: + position, thunkPosition = position811, thunkPosition811 + } + if !matchChar('*') { + goto l810 + } + { + position812, thunkPosition812 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l812 + } + goto l810 + l812: + position, thunkPosition = position812, thunkPosition812 + } + { + position813, thunkPosition813 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l813 + } + goto l810 + l813: + position, thunkPosition = position813, thunkPosition813 + } + return true + l810: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 119 OneStarClose <- (!Spacechar !Newline Inline !StrongStar '*' { yy = a }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + { + position815, thunkPosition815 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l815 + } + goto l814 + l815: + position, thunkPosition = position815, thunkPosition815 + } + { + position816, thunkPosition816 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l816 + } + goto l814 + l816: + position, thunkPosition = position816, thunkPosition816 + } + if !p.rules[ruleInline]() { + goto l814 + } + doarg(yySet, -1) + { + position817, thunkPosition817 := position, thunkPosition + if !p.rules[ruleStrongStar]() { + goto l817 + } + goto l814 + l817: + position, thunkPosition = position817, thunkPosition817 + } + if !matchChar('*') { + goto l814 + } + do(51) + doarg(yyPop, 1) + return true + l814: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 120 EmphStar <- (OneStarOpen StartList (!OneStarClose Inline { a = cons(yy, a) })* OneStarClose { a = cons(yy, a) } { yy = mk_list(EMPH, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleOneStarOpen]() { + goto l818 + } + if !p.rules[ruleStartList]() { + goto l818 + } + doarg(yySet, -1) + l819: + { + position820, thunkPosition820 := position, thunkPosition + { + position821, thunkPosition821 := position, thunkPosition + if !p.rules[ruleOneStarClose]() { + goto l821 + } + goto l820 + l821: + position, thunkPosition = position821, thunkPosition821 + } + if !p.rules[ruleInline]() { + goto l820 + } + do(52) + goto l819 + l820: + position, thunkPosition = position820, thunkPosition820 + } + if !p.rules[ruleOneStarClose]() { + goto l818 + } + do(53) + do(54) + doarg(yyPop, 1) + return true + l818: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 121 OneUlOpen <- (!UlLine '_' !Spacechar !Newline) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position823, thunkPosition823 := position, thunkPosition + if !p.rules[ruleUlLine]() { + goto l823 + } + goto l822 + l823: + position, thunkPosition = position823, thunkPosition823 + } + if !matchChar('_') { + goto l822 + } + { + position824, thunkPosition824 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l824 + } + goto l822 + l824: + position, thunkPosition = position824, thunkPosition824 + } + { + position825, thunkPosition825 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l825 + } + goto l822 + l825: + position, thunkPosition = position825, thunkPosition825 + } + return true + l822: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 122 OneUlClose <- (!Spacechar !Newline Inline !StrongUl '_' !Alphanumeric { yy = a }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + { + position827, thunkPosition827 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l827 + } + goto l826 + l827: + position, thunkPosition = position827, thunkPosition827 + } + { + position828, thunkPosition828 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l828 + } + goto l826 + l828: + position, thunkPosition = position828, thunkPosition828 + } + if !p.rules[ruleInline]() { + goto l826 + } + doarg(yySet, -1) + { + position829, thunkPosition829 := position, thunkPosition + if !p.rules[ruleStrongUl]() { + goto l829 + } + goto l826 + l829: + position, thunkPosition = position829, thunkPosition829 + } + if !matchChar('_') { + goto l826 + } + { + position830, thunkPosition830 := position, thunkPosition + if !p.rules[ruleAlphanumeric]() { + goto l830 + } + goto l826 + l830: + position, thunkPosition = position830, thunkPosition830 + } + do(55) + doarg(yyPop, 1) + return true + l826: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 123 EmphUl <- (OneUlOpen StartList (!OneUlClose Inline { a = cons(yy, a) })* OneUlClose { a = cons(yy, a) } { yy = mk_list(EMPH, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleOneUlOpen]() { + goto l831 + } + if !p.rules[ruleStartList]() { + goto l831 + } + doarg(yySet, -1) + l832: + { + position833, thunkPosition833 := position, thunkPosition + { + position834, thunkPosition834 := position, thunkPosition + if !p.rules[ruleOneUlClose]() { + goto l834 + } + goto l833 + l834: + position, thunkPosition = position834, thunkPosition834 + } + if !p.rules[ruleInline]() { + goto l833 + } + do(56) + goto l832 + l833: + position, thunkPosition = position833, thunkPosition833 + } + if !p.rules[ruleOneUlClose]() { + goto l831 + } + do(57) + do(58) + doarg(yyPop, 1) + return true + l831: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 124 Strong <- (StrongStar / StrongUl) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position836, thunkPosition836 := position, thunkPosition + if !p.rules[ruleStrongStar]() { + goto l837 + } + goto l836 + l837: + position, thunkPosition = position836, thunkPosition836 + if !p.rules[ruleStrongUl]() { + goto l835 + } + } + l836: + return true + l835: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 125 TwoStarOpen <- (!StarLine '**' !Spacechar !Newline) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position839, thunkPosition839 := position, thunkPosition + if !p.rules[ruleStarLine]() { + goto l839 + } + goto l838 + l839: + position, thunkPosition = position839, thunkPosition839 + } + if !matchString("**") { + goto l838 + } + { + position840, thunkPosition840 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l840 + } + goto l838 + l840: + position, thunkPosition = position840, thunkPosition840 + } + { + position841, thunkPosition841 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l841 + } + goto l838 + l841: + position, thunkPosition = position841, thunkPosition841 + } + return true + l838: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 126 TwoStarClose <- (!Spacechar !Newline Inline '**' { yy = a }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + { + position843, thunkPosition843 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l843 + } + goto l842 + l843: + position, thunkPosition = position843, thunkPosition843 + } + { + position844, thunkPosition844 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l844 + } + goto l842 + l844: + position, thunkPosition = position844, thunkPosition844 + } + if !p.rules[ruleInline]() { + goto l842 + } + doarg(yySet, -1) + if !matchString("**") { + goto l842 + } + do(59) + doarg(yyPop, 1) + return true + l842: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 127 StrongStar <- (TwoStarOpen StartList (!TwoStarClose Inline { a = cons(yy, a) })* TwoStarClose { a = cons(yy, a) } { yy = mk_list(STRONG, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleTwoStarOpen]() { + goto l845 + } + if !p.rules[ruleStartList]() { + goto l845 + } + doarg(yySet, -1) + l846: + { + position847, thunkPosition847 := position, thunkPosition + { + position848, thunkPosition848 := position, thunkPosition + if !p.rules[ruleTwoStarClose]() { + goto l848 + } + goto l847 + l848: + position, thunkPosition = position848, thunkPosition848 + } + if !p.rules[ruleInline]() { + goto l847 + } + do(60) + goto l846 + l847: + position, thunkPosition = position847, thunkPosition847 + } + if !p.rules[ruleTwoStarClose]() { + goto l845 + } + do(61) + do(62) + doarg(yyPop, 1) + return true + l845: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 128 TwoUlOpen <- (!UlLine '__' !Spacechar !Newline) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position850, thunkPosition850 := position, thunkPosition + if !p.rules[ruleUlLine]() { + goto l850 + } + goto l849 + l850: + position, thunkPosition = position850, thunkPosition850 + } + if !matchString("__") { + goto l849 + } + { + position851, thunkPosition851 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l851 + } + goto l849 + l851: + position, thunkPosition = position851, thunkPosition851 + } + { + position852, thunkPosition852 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l852 + } + goto l849 + l852: + position, thunkPosition = position852, thunkPosition852 + } + return true + l849: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 129 TwoUlClose <- (!Spacechar !Newline Inline '__' !Alphanumeric { yy = a }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + { + position854, thunkPosition854 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l854 + } + goto l853 + l854: + position, thunkPosition = position854, thunkPosition854 + } + { + position855, thunkPosition855 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l855 + } + goto l853 + l855: + position, thunkPosition = position855, thunkPosition855 + } + if !p.rules[ruleInline]() { + goto l853 + } + doarg(yySet, -1) + if !matchString("__") { + goto l853 + } + { + position856, thunkPosition856 := position, thunkPosition + if !p.rules[ruleAlphanumeric]() { + goto l856 + } + goto l853 + l856: + position, thunkPosition = position856, thunkPosition856 + } + do(63) + doarg(yyPop, 1) + return true + l853: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 130 StrongUl <- (TwoUlOpen StartList (!TwoUlClose Inline { a = cons(yy, a) })* TwoUlClose { a = cons(yy, a) } { yy = mk_list(STRONG, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleTwoUlOpen]() { + goto l857 + } + if !p.rules[ruleStartList]() { + goto l857 + } + doarg(yySet, -1) + l858: + { + position859, thunkPosition859 := position, thunkPosition + { + position860, thunkPosition860 := position, thunkPosition + if !p.rules[ruleTwoUlClose]() { + goto l860 + } + goto l859 + l860: + position, thunkPosition = position860, thunkPosition860 + } + if !p.rules[ruleInline]() { + goto l859 + } + do(64) + goto l858 + l859: + position, thunkPosition = position859, thunkPosition859 + } + if !p.rules[ruleTwoUlClose]() { + goto l857 + } + do(65) + do(66) + doarg(yyPop, 1) + return true + l857: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 131 Image <- ('!' (ExplicitLink / ReferenceLink) { yy.key = IMAGE }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('!') { + goto l861 + } + { + position862, thunkPosition862 := position, thunkPosition + if !p.rules[ruleExplicitLink]() { + goto l863 + } + goto l862 + l863: + position, thunkPosition = position862, thunkPosition862 + if !p.rules[ruleReferenceLink]() { + goto l861 + } + } + l862: + do(67) + return true + l861: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 132 Link <- (ExplicitLink / ReferenceLink / AutoLink) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position865, thunkPosition865 := position, thunkPosition + if !p.rules[ruleExplicitLink]() { + goto l866 + } + goto l865 + l866: + position, thunkPosition = position865, thunkPosition865 + if !p.rules[ruleReferenceLink]() { + goto l867 + } + goto l865 + l867: + position, thunkPosition = position865, thunkPosition865 + if !p.rules[ruleAutoLink]() { + goto l864 + } + } + l865: + return true + l864: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 133 ReferenceLink <- (ReferenceLinkDouble / ReferenceLinkSingle) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position869, thunkPosition869 := position, thunkPosition + if !p.rules[ruleReferenceLinkDouble]() { + goto l870 + } + goto l869 + l870: + position, thunkPosition = position869, thunkPosition869 + if !p.rules[ruleReferenceLinkSingle]() { + goto l868 + } + } + l869: + return true + l868: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 134 ReferenceLinkDouble <- (Label < Spnl > !'[]' Label { + if match, found := p.findReference(b.children); found { + yy = mk_link(a.children, match.url, match.title); + a = nil + b = nil + } else { + result := mk_element(LIST) + result.children = cons(mk_str("["), cons(a, cons(mk_str("]"), cons(mk_str(yytext), + cons(mk_str("["), cons(b, mk_str("]"))))))) + yy = result + } + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 2) + if !p.rules[ruleLabel]() { + goto l871 + } + doarg(yySet, -1) + begin = position + if !p.rules[ruleSpnl]() { + goto l871 + } + end = position + { + position872, thunkPosition872 := position, thunkPosition + if !matchString("[]") { + goto l872 + } + goto l871 + l872: + position, thunkPosition = position872, thunkPosition872 + } + if !p.rules[ruleLabel]() { + goto l871 + } + doarg(yySet, -2) + do(68) + doarg(yyPop, 2) + return true + l871: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 135 ReferenceLinkSingle <- (Label < (Spnl '[]')? > { + if match, found := p.findReference(a.children); found { + yy = mk_link(a.children, match.url, match.title) + a = nil + } else { + result := mk_element(LIST) + result.children = cons(mk_str("["), cons(a, cons(mk_str("]"), mk_str(yytext)))); + yy = result + } + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleLabel]() { + goto l873 + } + doarg(yySet, -1) + begin = position + { + position874, thunkPosition874 := position, thunkPosition + if !p.rules[ruleSpnl]() { + goto l874 + } + if !matchString("[]") { + goto l874 + } + goto l875 + l874: + position, thunkPosition = position874, thunkPosition874 + } + l875: + end = position + do(69) + doarg(yyPop, 1) + return true + l873: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 136 ExplicitLink <- (Label Spnl '(' Sp Source Spnl Title Sp ')' { yy = mk_link(l.children, s.contents.str, t.contents.str) + s = nil + t = nil + l = nil }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 3) + if !p.rules[ruleLabel]() { + goto l876 + } + doarg(yySet, -2) + if !p.rules[ruleSpnl]() { + goto l876 + } + if !matchChar('(') { + goto l876 + } + if !p.rules[ruleSp]() { + goto l876 + } + if !p.rules[ruleSource]() { + goto l876 + } + doarg(yySet, -1) + if !p.rules[ruleSpnl]() { + goto l876 + } + if !p.rules[ruleTitle]() { + goto l876 + } + doarg(yySet, -3) + if !p.rules[ruleSp]() { + goto l876 + } + if !matchChar(')') { + goto l876 + } + do(70) + doarg(yyPop, 3) + return true + l876: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 137 Source <- ((('<' < SourceContents > '>') / (< SourceContents >)) { yy = mk_str(yytext) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position878, thunkPosition878 := position, thunkPosition + if !matchChar('<') { + goto l879 + } + begin = position + if !p.rules[ruleSourceContents]() { + goto l879 + } + end = position + if !matchChar('>') { + goto l879 + } + goto l878 + l879: + position, thunkPosition = position878, thunkPosition878 + begin = position + if !p.rules[ruleSourceContents]() { + goto l877 + } + end = position + } + l878: + do(71) + return true + l877: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 138 SourceContents <- (((!'(' !')' !'>' Nonspacechar)+ / ('(' SourceContents ')'))* / '') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position881, thunkPosition881 := position, thunkPosition + l883: + { + position884, thunkPosition884 := position, thunkPosition + { + position885, thunkPosition885 := position, thunkPosition + if peekChar('(') { + goto l886 + } + if peekChar(')') { + goto l886 + } + if peekChar('>') { + goto l886 + } + if !p.rules[ruleNonspacechar]() { + goto l886 + } + l887: + { + position888, thunkPosition888 := position, thunkPosition + if peekChar('(') { + goto l888 + } + if peekChar(')') { + goto l888 + } + if peekChar('>') { + goto l888 + } + if !p.rules[ruleNonspacechar]() { + goto l888 + } + goto l887 + l888: + position, thunkPosition = position888, thunkPosition888 + } + goto l885 + l886: + position, thunkPosition = position885, thunkPosition885 + if !matchChar('(') { + goto l884 + } + if !p.rules[ruleSourceContents]() { + goto l884 + } + if !matchChar(')') { + goto l884 + } + } + l885: + goto l883 + l884: + position, thunkPosition = position884, thunkPosition884 + } + goto l881 + l882: + position, thunkPosition = position881, thunkPosition881 + if !matchString("") { + goto l880 + } + } + l881: + return true + l880: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 139 Title <- ((TitleSingle / TitleDouble / (< '' >)) { yy = mk_str(yytext) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position890, thunkPosition890 := position, thunkPosition + if !p.rules[ruleTitleSingle]() { + goto l891 + } + goto l890 + l891: + position, thunkPosition = position890, thunkPosition890 + if !p.rules[ruleTitleDouble]() { + goto l892 + } + goto l890 + l892: + position, thunkPosition = position890, thunkPosition890 + begin = position + if !matchString("") { + goto l889 + } + end = position + } + l890: + do(72) + return true + l889: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 140 TitleSingle <- ('\'' < (!('\'' Sp (')' / Newline)) .)* > '\'') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('\'') { + goto l893 + } + begin = position + l894: + { + position895, thunkPosition895 := position, thunkPosition + { + position896, thunkPosition896 := position, thunkPosition + if !matchChar('\'') { + goto l896 + } + if !p.rules[ruleSp]() { + goto l896 + } + { + position897, thunkPosition897 := position, thunkPosition + if !matchChar(')') { + goto l898 + } + goto l897 + l898: + position, thunkPosition = position897, thunkPosition897 + if !p.rules[ruleNewline]() { + goto l896 + } + } + l897: + goto l895 + l896: + position, thunkPosition = position896, thunkPosition896 + } + if !matchDot() { + goto l895 + } + goto l894 + l895: + position, thunkPosition = position895, thunkPosition895 + } + end = position + if !matchChar('\'') { + goto l893 + } + return true + l893: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 141 TitleDouble <- ('"' < (!('"' Sp (')' / Newline)) .)* > '"') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('"') { + goto l899 + } + begin = position + l900: + { + position901, thunkPosition901 := position, thunkPosition + { + position902, thunkPosition902 := position, thunkPosition + if !matchChar('"') { + goto l902 + } + if !p.rules[ruleSp]() { + goto l902 + } + { + position903, thunkPosition903 := position, thunkPosition + if !matchChar(')') { + goto l904 + } + goto l903 + l904: + position, thunkPosition = position903, thunkPosition903 + if !p.rules[ruleNewline]() { + goto l902 + } + } + l903: + goto l901 + l902: + position, thunkPosition = position902, thunkPosition902 + } + if !matchDot() { + goto l901 + } + goto l900 + l901: + position, thunkPosition = position901, thunkPosition901 + } + end = position + if !matchChar('"') { + goto l899 + } + return true + l899: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 142 AutoLink <- (AutoLinkUrl / AutoLinkEmail) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position906, thunkPosition906 := position, thunkPosition + if !p.rules[ruleAutoLinkUrl]() { + goto l907 + } + goto l906 + l907: + position, thunkPosition = position906, thunkPosition906 + if !p.rules[ruleAutoLinkEmail]() { + goto l905 + } + } + l906: + return true + l905: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 143 AutoLinkUrl <- ('<' < [A-Za-z]+ '://' (!Newline !'>' .)+ > '>' { yy = mk_link(mk_str(yytext), yytext, "") }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l908 + } + begin = position + if !matchClass(2) { + goto l908 + } + l909: + { + position910, thunkPosition910 := position, thunkPosition + if !matchClass(2) { + goto l910 + } + goto l909 + l910: + position, thunkPosition = position910, thunkPosition910 + } + if !matchString("://") { + goto l908 + } + { + position913, thunkPosition913 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l913 + } + goto l908 + l913: + position, thunkPosition = position913, thunkPosition913 + } + if peekChar('>') { + goto l908 + } + if !matchDot() { + goto l908 + } + l911: + { + position912, thunkPosition912 := position, thunkPosition + { + position914, thunkPosition914 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l914 + } + goto l912 + l914: + position, thunkPosition = position914, thunkPosition914 + } + if peekChar('>') { + goto l912 + } + if !matchDot() { + goto l912 + } + goto l911 + l912: + position, thunkPosition = position912, thunkPosition912 + } + end = position + if !matchChar('>') { + goto l908 + } + do(73) + return true + l908: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 144 AutoLinkEmail <- ('<' < [-A-Za-z0-9+_]+ '@' (!Newline !'>' .)+ > '>' { + yy = mk_link(mk_str(yytext), "mailto:"+yytext, "") + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l915 + } + begin = position + if !matchClass(7) { + goto l915 + } + l916: + { + position917, thunkPosition917 := position, thunkPosition + if !matchClass(7) { + goto l917 + } + goto l916 + l917: + position, thunkPosition = position917, thunkPosition917 + } + if !matchChar('@') { + goto l915 + } + { + position920, thunkPosition920 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l920 + } + goto l915 + l920: + position, thunkPosition = position920, thunkPosition920 + } + if peekChar('>') { + goto l915 + } + if !matchDot() { + goto l915 + } + l918: + { + position919, thunkPosition919 := position, thunkPosition + { + position921, thunkPosition921 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l921 + } + goto l919 + l921: + position, thunkPosition = position921, thunkPosition921 + } + if peekChar('>') { + goto l919 + } + if !matchDot() { + goto l919 + } + goto l918 + l919: + position, thunkPosition = position919, thunkPosition919 + } + end = position + if !matchChar('>') { + goto l915 + } + do(74) + return true + l915: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 145 Reference <- (NonindentSpace !'[]' Label ':' Spnl RefSrc Spnl RefTitle BlankLine* { yy = mk_link(l.children, s.contents.str, t.contents.str) + s = nil + t = nil + l = nil + yy.key = REFERENCE }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 3) + if !p.rules[ruleNonindentSpace]() { + goto l922 + } + { + position923, thunkPosition923 := position, thunkPosition + if !matchString("[]") { + goto l923 + } + goto l922 + l923: + position, thunkPosition = position923, thunkPosition923 + } + if !p.rules[ruleLabel]() { + goto l922 + } + doarg(yySet, -2) + if !matchChar(':') { + goto l922 + } + if !p.rules[ruleSpnl]() { + goto l922 + } + if !p.rules[ruleRefSrc]() { + goto l922 + } + doarg(yySet, -1) + if !p.rules[ruleSpnl]() { + goto l922 + } + if !p.rules[ruleRefTitle]() { + goto l922 + } + doarg(yySet, -3) + l924: + { + position925, thunkPosition925 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l925 + } + goto l924 + l925: + position, thunkPosition = position925, thunkPosition925 + } + do(75) + doarg(yyPop, 3) + return true + l922: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 146 Label <- ('[' ((!'^' &{ p.extension.Notes }) / (&. &{ !p.extension.Notes })) StartList (!']' Inline { a = cons(yy, a) })* ']' { yy = mk_list(LIST, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !matchChar('[') { + goto l926 + } + { + position927, thunkPosition927 := position, thunkPosition + if peekChar('^') { + goto l928 + } + if !( p.extension.Notes ) { + goto l928 + } + goto l927 + l928: + position, thunkPosition = position927, thunkPosition927 + if !peekDot() { + goto l926 + } + if !( !p.extension.Notes ) { + goto l926 + } + } + l927: + if !p.rules[ruleStartList]() { + goto l926 + } + doarg(yySet, -1) + l929: + { + position930, thunkPosition930 := position, thunkPosition + if peekChar(']') { + goto l930 + } + if !p.rules[ruleInline]() { + goto l930 + } + do(76) + goto l929 + l930: + position, thunkPosition = position930, thunkPosition930 + } + if !matchChar(']') { + goto l926 + } + do(77) + doarg(yyPop, 1) + return true + l926: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 147 RefSrc <- (< Nonspacechar+ > { yy = mk_str(yytext) + yy.key = HTML }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + begin = position + if !p.rules[ruleNonspacechar]() { + goto l931 + } + l932: + { + position933, thunkPosition933 := position, thunkPosition + if !p.rules[ruleNonspacechar]() { + goto l933 + } + goto l932 + l933: + position, thunkPosition = position933, thunkPosition933 + } + end = position + do(78) + return true + l931: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 148 RefTitle <- ((RefTitleSingle / RefTitleDouble / RefTitleParens / EmptyTitle) { yy = mk_str(yytext) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position935, thunkPosition935 := position, thunkPosition + if !p.rules[ruleRefTitleSingle]() { + goto l936 + } + goto l935 + l936: + position, thunkPosition = position935, thunkPosition935 + if !p.rules[ruleRefTitleDouble]() { + goto l937 + } + goto l935 + l937: + position, thunkPosition = position935, thunkPosition935 + if !p.rules[ruleRefTitleParens]() { + goto l938 + } + goto l935 + l938: + position, thunkPosition = position935, thunkPosition935 + if !p.rules[ruleEmptyTitle]() { + goto l934 + } + } + l935: + do(79) + return true + l934: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 149 EmptyTitle <- (< '' >) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + begin = position + if !matchString("") { + goto l939 + } + end = position + return true + l939: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 150 RefTitleSingle <- ('\'' < (!(('\'' Sp Newline) / Newline) .)* > '\'') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('\'') { + goto l940 + } + begin = position + l941: + { + position942, thunkPosition942 := position, thunkPosition + { + position943, thunkPosition943 := position, thunkPosition + { + position944, thunkPosition944 := position, thunkPosition + if !matchChar('\'') { + goto l945 + } + if !p.rules[ruleSp]() { + goto l945 + } + if !p.rules[ruleNewline]() { + goto l945 + } + goto l944 + l945: + position, thunkPosition = position944, thunkPosition944 + if !p.rules[ruleNewline]() { + goto l943 + } + } + l944: + goto l942 + l943: + position, thunkPosition = position943, thunkPosition943 + } + if !matchDot() { + goto l942 + } + goto l941 + l942: + position, thunkPosition = position942, thunkPosition942 + } + end = position + if !matchChar('\'') { + goto l940 + } + return true + l940: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 151 RefTitleDouble <- ('"' < (!(('"' Sp Newline) / Newline) .)* > '"') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('"') { + goto l946 + } + begin = position + l947: + { + position948, thunkPosition948 := position, thunkPosition + { + position949, thunkPosition949 := position, thunkPosition + { + position950, thunkPosition950 := position, thunkPosition + if !matchChar('"') { + goto l951 + } + if !p.rules[ruleSp]() { + goto l951 + } + if !p.rules[ruleNewline]() { + goto l951 + } + goto l950 + l951: + position, thunkPosition = position950, thunkPosition950 + if !p.rules[ruleNewline]() { + goto l949 + } + } + l950: + goto l948 + l949: + position, thunkPosition = position949, thunkPosition949 + } + if !matchDot() { + goto l948 + } + goto l947 + l948: + position, thunkPosition = position948, thunkPosition948 + } + end = position + if !matchChar('"') { + goto l946 + } + return true + l946: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 152 RefTitleParens <- ('(' < (!((')' Sp Newline) / Newline) .)* > ')') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('(') { + goto l952 + } + begin = position + l953: + { + position954, thunkPosition954 := position, thunkPosition + { + position955, thunkPosition955 := position, thunkPosition + { + position956, thunkPosition956 := position, thunkPosition + if !matchChar(')') { + goto l957 + } + if !p.rules[ruleSp]() { + goto l957 + } + if !p.rules[ruleNewline]() { + goto l957 + } + goto l956 + l957: + position, thunkPosition = position956, thunkPosition956 + if !p.rules[ruleNewline]() { + goto l955 + } + } + l956: + goto l954 + l955: + position, thunkPosition = position955, thunkPosition955 + } + if !matchDot() { + goto l954 + } + goto l953 + l954: + position, thunkPosition = position954, thunkPosition954 + } + end = position + if !matchChar(')') { + goto l952 + } + return true + l952: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 153 References <- (StartList ((Reference { a = cons(b, a) }) / SkipBlock)* { p.references = reverse(a) } commit) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 2) + if !p.rules[ruleStartList]() { + goto l958 + } + doarg(yySet, -1) + l959: + { + position960, thunkPosition960 := position, thunkPosition + { + position961, thunkPosition961 := position, thunkPosition + if !p.rules[ruleReference]() { + goto l962 + } + doarg(yySet, -2) + do(80) + goto l961 + l962: + position, thunkPosition = position961, thunkPosition961 + if !p.rules[ruleSkipBlock]() { + goto l960 + } + } + l961: + goto l959 + l960: + position, thunkPosition = position960, thunkPosition960 + } + do(81) + if !(commit(thunkPosition0)) { + goto l958 + } + doarg(yyPop, 2) + return true + l958: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 154 Ticks1 <- ('`' !'`') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('`') { + goto l963 + } + if peekChar('`') { + goto l963 + } + return true + l963: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 155 Ticks2 <- ('``' !'`') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchString("``") { + goto l964 + } + if peekChar('`') { + goto l964 + } + return true + l964: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 156 Ticks3 <- ('```' !'`') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchString("```") { + goto l965 + } + if peekChar('`') { + goto l965 + } + return true + l965: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 157 Ticks4 <- ('````' !'`') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchString("````") { + goto l966 + } + if peekChar('`') { + goto l966 + } + return true + l966: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 158 Ticks5 <- ('`````' !'`') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchString("`````") { + goto l967 + } + if peekChar('`') { + goto l967 + } + return true + l967: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 159 Code <- (((Ticks1 Sp < ((!'`' Nonspacechar)+ / (!Ticks1 '`'+) / (!(Sp Ticks1) (Spacechar / (Newline !BlankLine))))+ > Sp Ticks1) / (Ticks2 Sp < ((!'`' Nonspacechar)+ / (!Ticks2 '`'+) / (!(Sp Ticks2) (Spacechar / (Newline !BlankLine))))+ > Sp Ticks2) / (Ticks3 Sp < ((!'`' Nonspacechar)+ / (!Ticks3 '`'+) / (!(Sp Ticks3) (Spacechar / (Newline !BlankLine))))+ > Sp Ticks3) / (Ticks4 Sp < ((!'`' Nonspacechar)+ / (!Ticks4 '`'+) / (!(Sp Ticks4) (Spacechar / (Newline !BlankLine))))+ > Sp Ticks4) / (Ticks5 Sp < ((!'`' Nonspacechar)+ / (!Ticks5 '`'+) / (!(Sp Ticks5) (Spacechar / (Newline !BlankLine))))+ > Sp Ticks5)) { yy = mk_str(yytext); yy.key = CODE }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position969, thunkPosition969 := position, thunkPosition + if !p.rules[ruleTicks1]() { + goto l970 + } + if !p.rules[ruleSp]() { + goto l970 + } + begin = position + { + position973, thunkPosition973 := position, thunkPosition + if peekChar('`') { + goto l974 + } + if !p.rules[ruleNonspacechar]() { + goto l974 + } + l975: + { + position976, thunkPosition976 := position, thunkPosition + if peekChar('`') { + goto l976 + } + if !p.rules[ruleNonspacechar]() { + goto l976 + } + goto l975 + l976: + position, thunkPosition = position976, thunkPosition976 + } + goto l973 + l974: + position, thunkPosition = position973, thunkPosition973 + { + position978, thunkPosition978 := position, thunkPosition + if !p.rules[ruleTicks1]() { + goto l978 + } + goto l977 + l978: + position, thunkPosition = position978, thunkPosition978 + } + if !matchChar('`') { + goto l977 + } + l979: + { + position980, thunkPosition980 := position, thunkPosition + if !matchChar('`') { + goto l980 + } + goto l979 + l980: + position, thunkPosition = position980, thunkPosition980 + } + goto l973 + l977: + position, thunkPosition = position973, thunkPosition973 + { + position981, thunkPosition981 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l981 + } + if !p.rules[ruleTicks1]() { + goto l981 + } + goto l970 + l981: + position, thunkPosition = position981, thunkPosition981 + } + { + position982, thunkPosition982 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l983 + } + goto l982 + l983: + position, thunkPosition = position982, thunkPosition982 + if !p.rules[ruleNewline]() { + goto l970 + } + { + position984, thunkPosition984 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l984 + } + goto l970 + l984: + position, thunkPosition = position984, thunkPosition984 + } + } + l982: + } + l973: + l971: + { + position972, thunkPosition972 := position, thunkPosition + { + position985, thunkPosition985 := position, thunkPosition + if peekChar('`') { + goto l986 + } + if !p.rules[ruleNonspacechar]() { + goto l986 + } + l987: + { + position988, thunkPosition988 := position, thunkPosition + if peekChar('`') { + goto l988 + } + if !p.rules[ruleNonspacechar]() { + goto l988 + } + goto l987 + l988: + position, thunkPosition = position988, thunkPosition988 + } + goto l985 + l986: + position, thunkPosition = position985, thunkPosition985 + { + position990, thunkPosition990 := position, thunkPosition + if !p.rules[ruleTicks1]() { + goto l990 + } + goto l989 + l990: + position, thunkPosition = position990, thunkPosition990 + } + if !matchChar('`') { + goto l989 + } + l991: + { + position992, thunkPosition992 := position, thunkPosition + if !matchChar('`') { + goto l992 + } + goto l991 + l992: + position, thunkPosition = position992, thunkPosition992 + } + goto l985 + l989: + position, thunkPosition = position985, thunkPosition985 + { + position993, thunkPosition993 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l993 + } + if !p.rules[ruleTicks1]() { + goto l993 + } + goto l972 + l993: + position, thunkPosition = position993, thunkPosition993 + } + { + position994, thunkPosition994 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l995 + } + goto l994 + l995: + position, thunkPosition = position994, thunkPosition994 + if !p.rules[ruleNewline]() { + goto l972 + } + { + position996, thunkPosition996 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l996 + } + goto l972 + l996: + position, thunkPosition = position996, thunkPosition996 + } + } + l994: + } + l985: + goto l971 + l972: + position, thunkPosition = position972, thunkPosition972 + } + end = position + if !p.rules[ruleSp]() { + goto l970 + } + if !p.rules[ruleTicks1]() { + goto l970 + } + goto l969 + l970: + position, thunkPosition = position969, thunkPosition969 + if !p.rules[ruleTicks2]() { + goto l997 + } + if !p.rules[ruleSp]() { + goto l997 + } + begin = position + { + position1000, thunkPosition1000 := position, thunkPosition + if peekChar('`') { + goto l1001 + } + if !p.rules[ruleNonspacechar]() { + goto l1001 + } + l1002: + { + position1003, thunkPosition1003 := position, thunkPosition + if peekChar('`') { + goto l1003 + } + if !p.rules[ruleNonspacechar]() { + goto l1003 + } + goto l1002 + l1003: + position, thunkPosition = position1003, thunkPosition1003 + } + goto l1000 + l1001: + position, thunkPosition = position1000, thunkPosition1000 + { + position1005, thunkPosition1005 := position, thunkPosition + if !p.rules[ruleTicks2]() { + goto l1005 + } + goto l1004 + l1005: + position, thunkPosition = position1005, thunkPosition1005 + } + if !matchChar('`') { + goto l1004 + } + l1006: + { + position1007, thunkPosition1007 := position, thunkPosition + if !matchChar('`') { + goto l1007 + } + goto l1006 + l1007: + position, thunkPosition = position1007, thunkPosition1007 + } + goto l1000 + l1004: + position, thunkPosition = position1000, thunkPosition1000 + { + position1008, thunkPosition1008 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l1008 + } + if !p.rules[ruleTicks2]() { + goto l1008 + } + goto l997 + l1008: + position, thunkPosition = position1008, thunkPosition1008 + } + { + position1009, thunkPosition1009 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l1010 + } + goto l1009 + l1010: + position, thunkPosition = position1009, thunkPosition1009 + if !p.rules[ruleNewline]() { + goto l997 + } + { + position1011, thunkPosition1011 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1011 + } + goto l997 + l1011: + position, thunkPosition = position1011, thunkPosition1011 + } + } + l1009: + } + l1000: + l998: + { + position999, thunkPosition999 := position, thunkPosition + { + position1012, thunkPosition1012 := position, thunkPosition + if peekChar('`') { + goto l1013 + } + if !p.rules[ruleNonspacechar]() { + goto l1013 + } + l1014: + { + position1015, thunkPosition1015 := position, thunkPosition + if peekChar('`') { + goto l1015 + } + if !p.rules[ruleNonspacechar]() { + goto l1015 + } + goto l1014 + l1015: + position, thunkPosition = position1015, thunkPosition1015 + } + goto l1012 + l1013: + position, thunkPosition = position1012, thunkPosition1012 + { + position1017, thunkPosition1017 := position, thunkPosition + if !p.rules[ruleTicks2]() { + goto l1017 + } + goto l1016 + l1017: + position, thunkPosition = position1017, thunkPosition1017 + } + if !matchChar('`') { + goto l1016 + } + l1018: + { + position1019, thunkPosition1019 := position, thunkPosition + if !matchChar('`') { + goto l1019 + } + goto l1018 + l1019: + position, thunkPosition = position1019, thunkPosition1019 + } + goto l1012 + l1016: + position, thunkPosition = position1012, thunkPosition1012 + { + position1020, thunkPosition1020 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l1020 + } + if !p.rules[ruleTicks2]() { + goto l1020 + } + goto l999 + l1020: + position, thunkPosition = position1020, thunkPosition1020 + } + { + position1021, thunkPosition1021 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l1022 + } + goto l1021 + l1022: + position, thunkPosition = position1021, thunkPosition1021 + if !p.rules[ruleNewline]() { + goto l999 + } + { + position1023, thunkPosition1023 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1023 + } + goto l999 + l1023: + position, thunkPosition = position1023, thunkPosition1023 + } + } + l1021: + } + l1012: + goto l998 + l999: + position, thunkPosition = position999, thunkPosition999 + } + end = position + if !p.rules[ruleSp]() { + goto l997 + } + if !p.rules[ruleTicks2]() { + goto l997 + } + goto l969 + l997: + position, thunkPosition = position969, thunkPosition969 + if !p.rules[ruleTicks3]() { + goto l1024 + } + if !p.rules[ruleSp]() { + goto l1024 + } + begin = position + { + position1027, thunkPosition1027 := position, thunkPosition + if peekChar('`') { + goto l1028 + } + if !p.rules[ruleNonspacechar]() { + goto l1028 + } + l1029: + { + position1030, thunkPosition1030 := position, thunkPosition + if peekChar('`') { + goto l1030 + } + if !p.rules[ruleNonspacechar]() { + goto l1030 + } + goto l1029 + l1030: + position, thunkPosition = position1030, thunkPosition1030 + } + goto l1027 + l1028: + position, thunkPosition = position1027, thunkPosition1027 + { + position1032, thunkPosition1032 := position, thunkPosition + if !p.rules[ruleTicks3]() { + goto l1032 + } + goto l1031 + l1032: + position, thunkPosition = position1032, thunkPosition1032 + } + if !matchChar('`') { + goto l1031 + } + l1033: + { + position1034, thunkPosition1034 := position, thunkPosition + if !matchChar('`') { + goto l1034 + } + goto l1033 + l1034: + position, thunkPosition = position1034, thunkPosition1034 + } + goto l1027 + l1031: + position, thunkPosition = position1027, thunkPosition1027 + { + position1035, thunkPosition1035 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l1035 + } + if !p.rules[ruleTicks3]() { + goto l1035 + } + goto l1024 + l1035: + position, thunkPosition = position1035, thunkPosition1035 + } + { + position1036, thunkPosition1036 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l1037 + } + goto l1036 + l1037: + position, thunkPosition = position1036, thunkPosition1036 + if !p.rules[ruleNewline]() { + goto l1024 + } + { + position1038, thunkPosition1038 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1038 + } + goto l1024 + l1038: + position, thunkPosition = position1038, thunkPosition1038 + } + } + l1036: + } + l1027: + l1025: + { + position1026, thunkPosition1026 := position, thunkPosition + { + position1039, thunkPosition1039 := position, thunkPosition + if peekChar('`') { + goto l1040 + } + if !p.rules[ruleNonspacechar]() { + goto l1040 + } + l1041: + { + position1042, thunkPosition1042 := position, thunkPosition + if peekChar('`') { + goto l1042 + } + if !p.rules[ruleNonspacechar]() { + goto l1042 + } + goto l1041 + l1042: + position, thunkPosition = position1042, thunkPosition1042 + } + goto l1039 + l1040: + position, thunkPosition = position1039, thunkPosition1039 + { + position1044, thunkPosition1044 := position, thunkPosition + if !p.rules[ruleTicks3]() { + goto l1044 + } + goto l1043 + l1044: + position, thunkPosition = position1044, thunkPosition1044 + } + if !matchChar('`') { + goto l1043 + } + l1045: + { + position1046, thunkPosition1046 := position, thunkPosition + if !matchChar('`') { + goto l1046 + } + goto l1045 + l1046: + position, thunkPosition = position1046, thunkPosition1046 + } + goto l1039 + l1043: + position, thunkPosition = position1039, thunkPosition1039 + { + position1047, thunkPosition1047 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l1047 + } + if !p.rules[ruleTicks3]() { + goto l1047 + } + goto l1026 + l1047: + position, thunkPosition = position1047, thunkPosition1047 + } + { + position1048, thunkPosition1048 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l1049 + } + goto l1048 + l1049: + position, thunkPosition = position1048, thunkPosition1048 + if !p.rules[ruleNewline]() { + goto l1026 + } + { + position1050, thunkPosition1050 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1050 + } + goto l1026 + l1050: + position, thunkPosition = position1050, thunkPosition1050 + } + } + l1048: + } + l1039: + goto l1025 + l1026: + position, thunkPosition = position1026, thunkPosition1026 + } + end = position + if !p.rules[ruleSp]() { + goto l1024 + } + if !p.rules[ruleTicks3]() { + goto l1024 + } + goto l969 + l1024: + position, thunkPosition = position969, thunkPosition969 + if !p.rules[ruleTicks4]() { + goto l1051 + } + if !p.rules[ruleSp]() { + goto l1051 + } + begin = position + { + position1054, thunkPosition1054 := position, thunkPosition + if peekChar('`') { + goto l1055 + } + if !p.rules[ruleNonspacechar]() { + goto l1055 + } + l1056: + { + position1057, thunkPosition1057 := position, thunkPosition + if peekChar('`') { + goto l1057 + } + if !p.rules[ruleNonspacechar]() { + goto l1057 + } + goto l1056 + l1057: + position, thunkPosition = position1057, thunkPosition1057 + } + goto l1054 + l1055: + position, thunkPosition = position1054, thunkPosition1054 + { + position1059, thunkPosition1059 := position, thunkPosition + if !p.rules[ruleTicks4]() { + goto l1059 + } + goto l1058 + l1059: + position, thunkPosition = position1059, thunkPosition1059 + } + if !matchChar('`') { + goto l1058 + } + l1060: + { + position1061, thunkPosition1061 := position, thunkPosition + if !matchChar('`') { + goto l1061 + } + goto l1060 + l1061: + position, thunkPosition = position1061, thunkPosition1061 + } + goto l1054 + l1058: + position, thunkPosition = position1054, thunkPosition1054 + { + position1062, thunkPosition1062 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l1062 + } + if !p.rules[ruleTicks4]() { + goto l1062 + } + goto l1051 + l1062: + position, thunkPosition = position1062, thunkPosition1062 + } + { + position1063, thunkPosition1063 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l1064 + } + goto l1063 + l1064: + position, thunkPosition = position1063, thunkPosition1063 + if !p.rules[ruleNewline]() { + goto l1051 + } + { + position1065, thunkPosition1065 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1065 + } + goto l1051 + l1065: + position, thunkPosition = position1065, thunkPosition1065 + } + } + l1063: + } + l1054: + l1052: + { + position1053, thunkPosition1053 := position, thunkPosition + { + position1066, thunkPosition1066 := position, thunkPosition + if peekChar('`') { + goto l1067 + } + if !p.rules[ruleNonspacechar]() { + goto l1067 + } + l1068: + { + position1069, thunkPosition1069 := position, thunkPosition + if peekChar('`') { + goto l1069 + } + if !p.rules[ruleNonspacechar]() { + goto l1069 + } + goto l1068 + l1069: + position, thunkPosition = position1069, thunkPosition1069 + } + goto l1066 + l1067: + position, thunkPosition = position1066, thunkPosition1066 + { + position1071, thunkPosition1071 := position, thunkPosition + if !p.rules[ruleTicks4]() { + goto l1071 + } + goto l1070 + l1071: + position, thunkPosition = position1071, thunkPosition1071 + } + if !matchChar('`') { + goto l1070 + } + l1072: + { + position1073, thunkPosition1073 := position, thunkPosition + if !matchChar('`') { + goto l1073 + } + goto l1072 + l1073: + position, thunkPosition = position1073, thunkPosition1073 + } + goto l1066 + l1070: + position, thunkPosition = position1066, thunkPosition1066 + { + position1074, thunkPosition1074 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l1074 + } + if !p.rules[ruleTicks4]() { + goto l1074 + } + goto l1053 + l1074: + position, thunkPosition = position1074, thunkPosition1074 + } + { + position1075, thunkPosition1075 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l1076 + } + goto l1075 + l1076: + position, thunkPosition = position1075, thunkPosition1075 + if !p.rules[ruleNewline]() { + goto l1053 + } + { + position1077, thunkPosition1077 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1077 + } + goto l1053 + l1077: + position, thunkPosition = position1077, thunkPosition1077 + } + } + l1075: + } + l1066: + goto l1052 + l1053: + position, thunkPosition = position1053, thunkPosition1053 + } + end = position + if !p.rules[ruleSp]() { + goto l1051 + } + if !p.rules[ruleTicks4]() { + goto l1051 + } + goto l969 + l1051: + position, thunkPosition = position969, thunkPosition969 + if !p.rules[ruleTicks5]() { + goto l968 + } + if !p.rules[ruleSp]() { + goto l968 + } + begin = position + { + position1080, thunkPosition1080 := position, thunkPosition + if peekChar('`') { + goto l1081 + } + if !p.rules[ruleNonspacechar]() { + goto l1081 + } + l1082: + { + position1083, thunkPosition1083 := position, thunkPosition + if peekChar('`') { + goto l1083 + } + if !p.rules[ruleNonspacechar]() { + goto l1083 + } + goto l1082 + l1083: + position, thunkPosition = position1083, thunkPosition1083 + } + goto l1080 + l1081: + position, thunkPosition = position1080, thunkPosition1080 + { + position1085, thunkPosition1085 := position, thunkPosition + if !p.rules[ruleTicks5]() { + goto l1085 + } + goto l1084 + l1085: + position, thunkPosition = position1085, thunkPosition1085 + } + if !matchChar('`') { + goto l1084 + } + l1086: + { + position1087, thunkPosition1087 := position, thunkPosition + if !matchChar('`') { + goto l1087 + } + goto l1086 + l1087: + position, thunkPosition = position1087, thunkPosition1087 + } + goto l1080 + l1084: + position, thunkPosition = position1080, thunkPosition1080 + { + position1088, thunkPosition1088 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l1088 + } + if !p.rules[ruleTicks5]() { + goto l1088 + } + goto l968 + l1088: + position, thunkPosition = position1088, thunkPosition1088 + } + { + position1089, thunkPosition1089 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l1090 + } + goto l1089 + l1090: + position, thunkPosition = position1089, thunkPosition1089 + if !p.rules[ruleNewline]() { + goto l968 + } + { + position1091, thunkPosition1091 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1091 + } + goto l968 + l1091: + position, thunkPosition = position1091, thunkPosition1091 + } + } + l1089: + } + l1080: + l1078: + { + position1079, thunkPosition1079 := position, thunkPosition + { + position1092, thunkPosition1092 := position, thunkPosition + if peekChar('`') { + goto l1093 + } + if !p.rules[ruleNonspacechar]() { + goto l1093 + } + l1094: + { + position1095, thunkPosition1095 := position, thunkPosition + if peekChar('`') { + goto l1095 + } + if !p.rules[ruleNonspacechar]() { + goto l1095 + } + goto l1094 + l1095: + position, thunkPosition = position1095, thunkPosition1095 + } + goto l1092 + l1093: + position, thunkPosition = position1092, thunkPosition1092 + { + position1097, thunkPosition1097 := position, thunkPosition + if !p.rules[ruleTicks5]() { + goto l1097 + } + goto l1096 + l1097: + position, thunkPosition = position1097, thunkPosition1097 + } + if !matchChar('`') { + goto l1096 + } + l1098: + { + position1099, thunkPosition1099 := position, thunkPosition + if !matchChar('`') { + goto l1099 + } + goto l1098 + l1099: + position, thunkPosition = position1099, thunkPosition1099 + } + goto l1092 + l1096: + position, thunkPosition = position1092, thunkPosition1092 + { + position1100, thunkPosition1100 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l1100 + } + if !p.rules[ruleTicks5]() { + goto l1100 + } + goto l1079 + l1100: + position, thunkPosition = position1100, thunkPosition1100 + } + { + position1101, thunkPosition1101 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l1102 + } + goto l1101 + l1102: + position, thunkPosition = position1101, thunkPosition1101 + if !p.rules[ruleNewline]() { + goto l1079 + } + { + position1103, thunkPosition1103 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1103 + } + goto l1079 + l1103: + position, thunkPosition = position1103, thunkPosition1103 + } + } + l1101: + } + l1092: + goto l1078 + l1079: + position, thunkPosition = position1079, thunkPosition1079 + } + end = position + if !p.rules[ruleSp]() { + goto l968 + } + if !p.rules[ruleTicks5]() { + goto l968 + } + } + l969: + do(82) + return true + l968: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 160 RawHtml <- (< (HtmlComment / HtmlTag) > { if p.extension.FilterHTML { + yy = mk_list(LIST, nil) + } else { + yy = mk_str(yytext) + yy.key = HTML + } + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + begin = position + { + position1105, thunkPosition1105 := position, thunkPosition + if !p.rules[ruleHtmlComment]() { + goto l1106 + } + goto l1105 + l1106: + position, thunkPosition = position1105, thunkPosition1105 + if !p.rules[ruleHtmlTag]() { + goto l1104 + } + } + l1105: + end = position + do(83) + return true + l1104: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 161 BlankLine <- (Sp Newline) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l1107 + } + if !p.rules[ruleNewline]() { + goto l1107 + } + return true + l1107: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 162 Quoted <- (('"' (!'"' .)* '"') / ('\'' (!'\'' .)* '\'')) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1109, thunkPosition1109 := position, thunkPosition + if !matchChar('"') { + goto l1110 + } + l1111: + { + position1112, thunkPosition1112 := position, thunkPosition + if peekChar('"') { + goto l1112 + } + if !matchDot() { + goto l1112 + } + goto l1111 + l1112: + position, thunkPosition = position1112, thunkPosition1112 + } + if !matchChar('"') { + goto l1110 + } + goto l1109 + l1110: + position, thunkPosition = position1109, thunkPosition1109 + if !matchChar('\'') { + goto l1108 + } + l1113: + { + position1114, thunkPosition1114 := position, thunkPosition + if peekChar('\'') { + goto l1114 + } + if !matchDot() { + goto l1114 + } + goto l1113 + l1114: + position, thunkPosition = position1114, thunkPosition1114 + } + if !matchChar('\'') { + goto l1108 + } + } + l1109: + return true + l1108: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 163 HtmlAttribute <- ((Alphanumeric / '-')+ Spnl ('=' Spnl (Quoted / (!'>' Nonspacechar)+))? Spnl) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1118, thunkPosition1118 := position, thunkPosition + if !p.rules[ruleAlphanumeric]() { + goto l1119 + } + goto l1118 + l1119: + position, thunkPosition = position1118, thunkPosition1118 + if !matchChar('-') { + goto l1115 + } + } + l1118: + l1116: + { + position1117, thunkPosition1117 := position, thunkPosition + { + position1120, thunkPosition1120 := position, thunkPosition + if !p.rules[ruleAlphanumeric]() { + goto l1121 + } + goto l1120 + l1121: + position, thunkPosition = position1120, thunkPosition1120 + if !matchChar('-') { + goto l1117 + } + } + l1120: + goto l1116 + l1117: + position, thunkPosition = position1117, thunkPosition1117 + } + if !p.rules[ruleSpnl]() { + goto l1115 + } + { + position1122, thunkPosition1122 := position, thunkPosition + if !matchChar('=') { + goto l1122 + } + if !p.rules[ruleSpnl]() { + goto l1122 + } + { + position1124, thunkPosition1124 := position, thunkPosition + if !p.rules[ruleQuoted]() { + goto l1125 + } + goto l1124 + l1125: + position, thunkPosition = position1124, thunkPosition1124 + if peekChar('>') { + goto l1122 + } + if !p.rules[ruleNonspacechar]() { + goto l1122 + } + l1126: + { + position1127, thunkPosition1127 := position, thunkPosition + if peekChar('>') { + goto l1127 + } + if !p.rules[ruleNonspacechar]() { + goto l1127 + } + goto l1126 + l1127: + position, thunkPosition = position1127, thunkPosition1127 + } + } + l1124: + goto l1123 + l1122: + position, thunkPosition = position1122, thunkPosition1122 + } + l1123: + if !p.rules[ruleSpnl]() { + goto l1115 + } + return true + l1115: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 164 HtmlComment <- ('' .)* '-->') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchString("") { + goto l1131 + } + goto l1130 + l1131: + position, thunkPosition = position1131, thunkPosition1131 + } + if !matchDot() { + goto l1130 + } + goto l1129 + l1130: + position, thunkPosition = position1130, thunkPosition1130 + } + if !matchString("-->") { + goto l1128 + } + return true + l1128: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 165 HtmlTag <- ('<' Spnl '/'? Alphanumeric+ Spnl HtmlAttribute* '/'? Spnl '>') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('<') { + goto l1132 + } + if !p.rules[ruleSpnl]() { + goto l1132 + } + { + position1133, thunkPosition1133 := position, thunkPosition + if !matchChar('/') { + goto l1133 + } + goto l1134 + l1133: + position, thunkPosition = position1133, thunkPosition1133 + } + l1134: + if !p.rules[ruleAlphanumeric]() { + goto l1132 + } + l1135: + { + position1136, thunkPosition1136 := position, thunkPosition + if !p.rules[ruleAlphanumeric]() { + goto l1136 + } + goto l1135 + l1136: + position, thunkPosition = position1136, thunkPosition1136 + } + if !p.rules[ruleSpnl]() { + goto l1132 + } + l1137: + { + position1138, thunkPosition1138 := position, thunkPosition + if !p.rules[ruleHtmlAttribute]() { + goto l1138 + } + goto l1137 + l1138: + position, thunkPosition = position1138, thunkPosition1138 + } + { + position1139, thunkPosition1139 := position, thunkPosition + if !matchChar('/') { + goto l1139 + } + goto l1140 + l1139: + position, thunkPosition = position1139, thunkPosition1139 + } + l1140: + if !p.rules[ruleSpnl]() { + goto l1132 + } + if !matchChar('>') { + goto l1132 + } + return true + l1132: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 166 Eof <- !. */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if peekDot() { + goto l1141 + } + return true + l1141: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 167 Spacechar <- (' ' / '\t') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1143, thunkPosition1143 := position, thunkPosition + if !matchChar(' ') { + goto l1144 + } + goto l1143 + l1144: + position, thunkPosition = position1143, thunkPosition1143 + if !matchChar('\t') { + goto l1142 + } + } + l1143: + return true + l1142: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 168 Nonspacechar <- (!Spacechar !Newline .) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1146, thunkPosition1146 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l1146 + } + goto l1145 + l1146: + position, thunkPosition = position1146, thunkPosition1146 + } + { + position1147, thunkPosition1147 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l1147 + } + goto l1145 + l1147: + position, thunkPosition = position1147, thunkPosition1147 + } + if !matchDot() { + goto l1145 + } + return true + l1145: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 169 Newline <- ('\n' / ('\r' '\n'?)) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1149, thunkPosition1149 := position, thunkPosition + if !matchChar('\n') { + goto l1150 + } + goto l1149 + l1150: + position, thunkPosition = position1149, thunkPosition1149 + if !matchChar('\r') { + goto l1148 + } + { + position1151, thunkPosition1151 := position, thunkPosition + if !matchChar('\n') { + goto l1151 + } + goto l1152 + l1151: + position, thunkPosition = position1151, thunkPosition1151 + } + l1152: + } + l1149: + return true + l1148: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 170 Sp <- Spacechar* */ + func() bool { + l1154: + { + position1155, thunkPosition1155 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l1155 + } + goto l1154 + l1155: + position, thunkPosition = position1155, thunkPosition1155 + } + return true + }, + /* 171 Spnl <- (Sp (Newline Sp)?) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !p.rules[ruleSp]() { + goto l1156 + } + { + position1157, thunkPosition1157 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l1157 + } + if !p.rules[ruleSp]() { + goto l1157 + } + goto l1158 + l1157: + position, thunkPosition = position1157, thunkPosition1157 + } + l1158: + return true + l1156: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 172 SpecialChar <- ('*' / '_' / '`' / '&' / '[' / ']' / '<' / '!' / '\\' / ExtendedSpecialChar) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1160, thunkPosition1160 := position, thunkPosition + if !matchChar('*') { + goto l1161 + } + goto l1160 + l1161: + position, thunkPosition = position1160, thunkPosition1160 + if !matchChar('_') { + goto l1162 + } + goto l1160 + l1162: + position, thunkPosition = position1160, thunkPosition1160 + if !matchChar('`') { + goto l1163 + } + goto l1160 + l1163: + position, thunkPosition = position1160, thunkPosition1160 + if !matchChar('&') { + goto l1164 + } + goto l1160 + l1164: + position, thunkPosition = position1160, thunkPosition1160 + if !matchChar('[') { + goto l1165 + } + goto l1160 + l1165: + position, thunkPosition = position1160, thunkPosition1160 + if !matchChar(']') { + goto l1166 + } + goto l1160 + l1166: + position, thunkPosition = position1160, thunkPosition1160 + if !matchChar('<') { + goto l1167 + } + goto l1160 + l1167: + position, thunkPosition = position1160, thunkPosition1160 + if !matchChar('!') { + goto l1168 + } + goto l1160 + l1168: + position, thunkPosition = position1160, thunkPosition1160 + if !matchChar('\\') { + goto l1169 + } + goto l1160 + l1169: + position, thunkPosition = position1160, thunkPosition1160 + if !p.rules[ruleExtendedSpecialChar]() { + goto l1159 + } + } + l1160: + return true + l1159: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 173 NormalChar <- (!(SpecialChar / Spacechar / Newline) .) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1171, thunkPosition1171 := position, thunkPosition + { + position1172, thunkPosition1172 := position, thunkPosition + if !p.rules[ruleSpecialChar]() { + goto l1173 + } + goto l1172 + l1173: + position, thunkPosition = position1172, thunkPosition1172 + if !p.rules[ruleSpacechar]() { + goto l1174 + } + goto l1172 + l1174: + position, thunkPosition = position1172, thunkPosition1172 + if !p.rules[ruleNewline]() { + goto l1171 + } + } + l1172: + goto l1170 + l1171: + position, thunkPosition = position1171, thunkPosition1171 + } + if !matchDot() { + goto l1170 + } + return true + l1170: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 174 Alphanumeric <- [A-Za-z0-9] */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchClass(6) { + goto l1175 + } + return true + l1175: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 175 Digit <- [0-9] */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchClass(5) { + goto l1176 + } + return true + l1176: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 176 HexEntity <- (< '&' '#' [Xx] [0-9a-fA-F]+ ';' >) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + begin = position + if !matchChar('&') { + goto l1177 + } + if !matchChar('#') { + goto l1177 + } + if !matchClass(3) { + goto l1177 + } + if !matchClass(0) { + goto l1177 + } + l1178: + { + position1179, thunkPosition1179 := position, thunkPosition + if !matchClass(0) { + goto l1179 + } + goto l1178 + l1179: + position, thunkPosition = position1179, thunkPosition1179 + } + if !matchChar(';') { + goto l1177 + } + end = position + return true + l1177: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 177 DecEntity <- (< '&' '#' [0-9]+ > ';' >) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + begin = position + if !matchChar('&') { + goto l1180 + } + if !matchChar('#') { + goto l1180 + } + if !matchClass(5) { + goto l1180 + } + l1181: + { + position1182, thunkPosition1182 := position, thunkPosition + if !matchClass(5) { + goto l1182 + } + goto l1181 + l1182: + position, thunkPosition = position1182, thunkPosition1182 + } + end = position + if !matchChar(';') { + goto l1180 + } + end = position + return true + l1180: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 178 CharEntity <- (< '&' [A-Za-z0-9]+ ';' >) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + begin = position + if !matchChar('&') { + goto l1183 + } + if !matchClass(6) { + goto l1183 + } + l1184: + { + position1185, thunkPosition1185 := position, thunkPosition + if !matchClass(6) { + goto l1185 + } + goto l1184 + l1185: + position, thunkPosition = position1185, thunkPosition1185 + } + if !matchChar(';') { + goto l1183 + } + end = position + return true + l1183: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 179 NonindentSpace <- (' ' / ' ' / ' ' / '') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1187, thunkPosition1187 := position, thunkPosition + if !matchString(" ") { + goto l1188 + } + goto l1187 + l1188: + position, thunkPosition = position1187, thunkPosition1187 + if !matchString(" ") { + goto l1189 + } + goto l1187 + l1189: + position, thunkPosition = position1187, thunkPosition1187 + if !matchChar(' ') { + goto l1190 + } + goto l1187 + l1190: + position, thunkPosition = position1187, thunkPosition1187 + if !matchString("") { + goto l1186 + } + } + l1187: + return true + l1186: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 180 Indent <- ('\t' / ' ') */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1192, thunkPosition1192 := position, thunkPosition + if !matchChar('\t') { + goto l1193 + } + goto l1192 + l1193: + position, thunkPosition = position1192, thunkPosition1192 + if !matchString(" ") { + goto l1191 + } + } + l1192: + return true + l1191: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 181 IndentedLine <- (Indent Line) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !p.rules[ruleIndent]() { + goto l1194 + } + if !p.rules[ruleLine]() { + goto l1194 + } + return true + l1194: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 182 OptionallyIndentedLine <- (Indent? Line) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1196, thunkPosition1196 := position, thunkPosition + if !p.rules[ruleIndent]() { + goto l1196 + } + goto l1197 + l1196: + position, thunkPosition = position1196, thunkPosition1196 + } + l1197: + if !p.rules[ruleLine]() { + goto l1195 + } + return true + l1195: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 183 StartList <- (&. { yy = nil }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !peekDot() { + goto l1198 + } + do(84) + return true + l1198: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 184 Line <- (RawLine { yy = mk_str(yytext) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !p.rules[ruleRawLine]() { + goto l1199 + } + do(85) + return true + l1199: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 185 RawLine <- ((< (!'\r' !'\n' .)* Newline >) / (< .+ > Eof)) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1201, thunkPosition1201 := position, thunkPosition + begin = position + l1203: + { + position1204, thunkPosition1204 := position, thunkPosition + if peekChar('\r') { + goto l1204 + } + if peekChar('\n') { + goto l1204 + } + if !matchDot() { + goto l1204 + } + goto l1203 + l1204: + position, thunkPosition = position1204, thunkPosition1204 + } + if !p.rules[ruleNewline]() { + goto l1202 + } + end = position + goto l1201 + l1202: + position, thunkPosition = position1201, thunkPosition1201 + begin = position + if !matchDot() { + goto l1200 + } + l1205: + { + position1206, thunkPosition1206 := position, thunkPosition + if !matchDot() { + goto l1206 + } + goto l1205 + l1206: + position, thunkPosition = position1206, thunkPosition1206 + } + end = position + if !p.rules[ruleEof]() { + goto l1200 + } + } + l1201: + return true + l1200: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 186 SkipBlock <- (((!BlankLine RawLine)+ BlankLine*) / BlankLine+) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1208, thunkPosition1208 := position, thunkPosition + { + position1212, thunkPosition1212 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1212 + } + goto l1209 + l1212: + position, thunkPosition = position1212, thunkPosition1212 + } + if !p.rules[ruleRawLine]() { + goto l1209 + } + l1210: + { + position1211, thunkPosition1211 := position, thunkPosition + { + position1213, thunkPosition1213 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1213 + } + goto l1211 + l1213: + position, thunkPosition = position1213, thunkPosition1213 + } + if !p.rules[ruleRawLine]() { + goto l1211 + } + goto l1210 + l1211: + position, thunkPosition = position1211, thunkPosition1211 + } + l1214: + { + position1215, thunkPosition1215 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1215 + } + goto l1214 + l1215: + position, thunkPosition = position1215, thunkPosition1215 + } + goto l1208 + l1209: + position, thunkPosition = position1208, thunkPosition1208 + if !p.rules[ruleBlankLine]() { + goto l1207 + } + l1216: + { + position1217, thunkPosition1217 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1217 + } + goto l1216 + l1217: + position, thunkPosition = position1217, thunkPosition1217 + } + } + l1208: + return true + l1207: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 187 ExtendedSpecialChar <- ((&{ p.extension.Smart } ('.' / '-' / '\'' / '"')) / (&{ p.extension.Notes } '^')) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1219, thunkPosition1219 := position, thunkPosition + if !( p.extension.Smart ) { + goto l1220 + } + { + position1221, thunkPosition1221 := position, thunkPosition + if !matchChar('.') { + goto l1222 + } + goto l1221 + l1222: + position, thunkPosition = position1221, thunkPosition1221 + if !matchChar('-') { + goto l1223 + } + goto l1221 + l1223: + position, thunkPosition = position1221, thunkPosition1221 + if !matchChar('\'') { + goto l1224 + } + goto l1221 + l1224: + position, thunkPosition = position1221, thunkPosition1221 + if !matchChar('"') { + goto l1220 + } + } + l1221: + goto l1219 + l1220: + position, thunkPosition = position1219, thunkPosition1219 + if !( p.extension.Notes ) { + goto l1218 + } + if !matchChar('^') { + goto l1218 + } + } + l1219: + return true + l1218: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 188 Smart <- (&{ p.extension.Smart } (Ellipsis / Dash / SingleQuoted / DoubleQuoted / Apostrophe)) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !( p.extension.Smart ) { + goto l1225 + } + { + position1226, thunkPosition1226 := position, thunkPosition + if !p.rules[ruleEllipsis]() { + goto l1227 + } + goto l1226 + l1227: + position, thunkPosition = position1226, thunkPosition1226 + if !p.rules[ruleDash]() { + goto l1228 + } + goto l1226 + l1228: + position, thunkPosition = position1226, thunkPosition1226 + if !p.rules[ruleSingleQuoted]() { + goto l1229 + } + goto l1226 + l1229: + position, thunkPosition = position1226, thunkPosition1226 + if !p.rules[ruleDoubleQuoted]() { + goto l1230 + } + goto l1226 + l1230: + position, thunkPosition = position1226, thunkPosition1226 + if !p.rules[ruleApostrophe]() { + goto l1225 + } + } + l1226: + return true + l1225: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 189 Apostrophe <- ('\'' { yy = mk_element(APOSTROPHE) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('\'') { + goto l1231 + } + do(86) + return true + l1231: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 190 Ellipsis <- (('...' / '. . .') { yy = mk_element(ELLIPSIS) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1233, thunkPosition1233 := position, thunkPosition + if !matchString("...") { + goto l1234 + } + goto l1233 + l1234: + position, thunkPosition = position1233, thunkPosition1233 + if !matchString(". . .") { + goto l1232 + } + } + l1233: + do(87) + return true + l1232: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 191 Dash <- (EmDash / EnDash) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1236, thunkPosition1236 := position, thunkPosition + if !p.rules[ruleEmDash]() { + goto l1237 + } + goto l1236 + l1237: + position, thunkPosition = position1236, thunkPosition1236 + if !p.rules[ruleEnDash]() { + goto l1235 + } + } + l1236: + return true + l1235: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 192 EnDash <- ('-' &Digit { yy = mk_element(ENDASH) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('-') { + goto l1238 + } + { + position1239, thunkPosition1239 := position, thunkPosition + if !p.rules[ruleDigit]() { + goto l1238 + } + position, thunkPosition = position1239, thunkPosition1239 + } + do(88) + return true + l1238: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 193 EmDash <- (('---' / '--') { yy = mk_element(EMDASH) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1241, thunkPosition1241 := position, thunkPosition + if !matchString("---") { + goto l1242 + } + goto l1241 + l1242: + position, thunkPosition = position1241, thunkPosition1241 + if !matchString("--") { + goto l1240 + } + } + l1241: + do(89) + return true + l1240: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 194 SingleQuoteStart <- ('\'' ![)!\],.;:-? \t\n] !(('s' / 't' / 'm' / 've' / 'll' / 're') !Alphanumeric)) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('\'') { + goto l1243 + } + { + position1244, thunkPosition1244 := position, thunkPosition + if !matchClass(4) { + goto l1244 + } + goto l1243 + l1244: + position, thunkPosition = position1244, thunkPosition1244 + } + { + position1245, thunkPosition1245 := position, thunkPosition + { + position1246, thunkPosition1246 := position, thunkPosition + if !matchChar('s') { + goto l1247 + } + goto l1246 + l1247: + position, thunkPosition = position1246, thunkPosition1246 + if !matchChar('t') { + goto l1248 + } + goto l1246 + l1248: + position, thunkPosition = position1246, thunkPosition1246 + if !matchChar('m') { + goto l1249 + } + goto l1246 + l1249: + position, thunkPosition = position1246, thunkPosition1246 + if !matchString("ve") { + goto l1250 + } + goto l1246 + l1250: + position, thunkPosition = position1246, thunkPosition1246 + if !matchString("ll") { + goto l1251 + } + goto l1246 + l1251: + position, thunkPosition = position1246, thunkPosition1246 + if !matchString("re") { + goto l1245 + } + } + l1246: + { + position1252, thunkPosition1252 := position, thunkPosition + if !p.rules[ruleAlphanumeric]() { + goto l1252 + } + goto l1245 + l1252: + position, thunkPosition = position1252, thunkPosition1252 + } + goto l1243 + l1245: + position, thunkPosition = position1245, thunkPosition1245 + } + return true + l1243: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 195 SingleQuoteEnd <- ('\'' !Alphanumeric) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('\'') { + goto l1253 + } + { + position1254, thunkPosition1254 := position, thunkPosition + if !p.rules[ruleAlphanumeric]() { + goto l1254 + } + goto l1253 + l1254: + position, thunkPosition = position1254, thunkPosition1254 + } + return true + l1253: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 196 SingleQuoted <- (SingleQuoteStart StartList (!SingleQuoteEnd Inline { a = cons(b, a) })+ SingleQuoteEnd { yy = mk_list(SINGLEQUOTED, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 2) + if !p.rules[ruleSingleQuoteStart]() { + goto l1255 + } + if !p.rules[ruleStartList]() { + goto l1255 + } + doarg(yySet, -1) + { + position1258, thunkPosition1258 := position, thunkPosition + if !p.rules[ruleSingleQuoteEnd]() { + goto l1258 + } + goto l1255 + l1258: + position, thunkPosition = position1258, thunkPosition1258 + } + if !p.rules[ruleInline]() { + goto l1255 + } + doarg(yySet, -2) + do(90) + l1256: + { + position1257, thunkPosition1257 := position, thunkPosition + { + position1259, thunkPosition1259 := position, thunkPosition + if !p.rules[ruleSingleQuoteEnd]() { + goto l1259 + } + goto l1257 + l1259: + position, thunkPosition = position1259, thunkPosition1259 + } + if !p.rules[ruleInline]() { + goto l1257 + } + doarg(yySet, -2) + do(90) + goto l1256 + l1257: + position, thunkPosition = position1257, thunkPosition1257 + } + if !p.rules[ruleSingleQuoteEnd]() { + goto l1255 + } + do(91) + doarg(yyPop, 2) + return true + l1255: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 197 DoubleQuoteStart <- '"' */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('"') { + goto l1260 + } + return true + l1260: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 198 DoubleQuoteEnd <- '"' */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchChar('"') { + goto l1261 + } + return true + l1261: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 199 DoubleQuoted <- (DoubleQuoteStart StartList (!DoubleQuoteEnd Inline { a = cons(b, a) })+ DoubleQuoteEnd { yy = mk_list(DOUBLEQUOTED, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 2) + if !p.rules[ruleDoubleQuoteStart]() { + goto l1262 + } + if !p.rules[ruleStartList]() { + goto l1262 + } + doarg(yySet, -1) + { + position1265, thunkPosition1265 := position, thunkPosition + if !p.rules[ruleDoubleQuoteEnd]() { + goto l1265 + } + goto l1262 + l1265: + position, thunkPosition = position1265, thunkPosition1265 + } + if !p.rules[ruleInline]() { + goto l1262 + } + doarg(yySet, -2) + do(92) + l1263: + { + position1264, thunkPosition1264 := position, thunkPosition + { + position1266, thunkPosition1266 := position, thunkPosition + if !p.rules[ruleDoubleQuoteEnd]() { + goto l1266 + } + goto l1264 + l1266: + position, thunkPosition = position1266, thunkPosition1266 + } + if !p.rules[ruleInline]() { + goto l1264 + } + doarg(yySet, -2) + do(92) + goto l1263 + l1264: + position, thunkPosition = position1264, thunkPosition1264 + } + if !p.rules[ruleDoubleQuoteEnd]() { + goto l1262 + } + do(93) + doarg(yyPop, 2) + return true + l1262: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 200 NoteReference <- (&{ p.extension.Notes } RawNoteReference { + if match, ok := p.find_note(ref.contents.str); ok { + yy = mk_element(NOTE) + yy.children = match.children + yy.contents.str = "" + } else { + yy = mk_str("[^"+ref.contents.str+"]") + } + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !( p.extension.Notes ) { + goto l1267 + } + if !p.rules[ruleRawNoteReference]() { + goto l1267 + } + doarg(yySet, -1) + do(94) + doarg(yyPop, 1) + return true + l1267: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 201 RawNoteReference <- ('[^' < (!Newline !']' .)+ > ']' { yy = mk_str(yytext) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !matchString("[^") { + goto l1268 + } + begin = position + { + position1271, thunkPosition1271 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l1271 + } + goto l1268 + l1271: + position, thunkPosition = position1271, thunkPosition1271 + } + if peekChar(']') { + goto l1268 + } + if !matchDot() { + goto l1268 + } + l1269: + { + position1270, thunkPosition1270 := position, thunkPosition + { + position1272, thunkPosition1272 := position, thunkPosition + if !p.rules[ruleNewline]() { + goto l1272 + } + goto l1270 + l1272: + position, thunkPosition = position1272, thunkPosition1272 + } + if peekChar(']') { + goto l1270 + } + if !matchDot() { + goto l1270 + } + goto l1269 + l1270: + position, thunkPosition = position1270, thunkPosition1270 + } + end = position + if !matchChar(']') { + goto l1268 + } + do(95) + return true + l1268: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 202 Note <- (&{ p.extension.Notes } NonindentSpace RawNoteReference ':' Sp StartList (RawNoteBlock { a = cons(yy, a) }) (&Indent RawNoteBlock { a = cons(yy, a) })* { yy = mk_list(NOTE, a) + yy.contents.str = ref.contents.str + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 2) + if !( p.extension.Notes ) { + goto l1273 + } + if !p.rules[ruleNonindentSpace]() { + goto l1273 + } + if !p.rules[ruleRawNoteReference]() { + goto l1273 + } + doarg(yySet, -1) + if !matchChar(':') { + goto l1273 + } + if !p.rules[ruleSp]() { + goto l1273 + } + if !p.rules[ruleStartList]() { + goto l1273 + } + doarg(yySet, -2) + if !p.rules[ruleRawNoteBlock]() { + goto l1273 + } + do(96) + l1274: + { + position1275, thunkPosition1275 := position, thunkPosition + { + position1276, thunkPosition1276 := position, thunkPosition + if !p.rules[ruleIndent]() { + goto l1275 + } + position, thunkPosition = position1276, thunkPosition1276 + } + if !p.rules[ruleRawNoteBlock]() { + goto l1275 + } + do(97) + goto l1274 + l1275: + position, thunkPosition = position1275, thunkPosition1275 + } + do(98) + doarg(yyPop, 2) + return true + l1273: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 203 InlineNote <- (&{ p.extension.Notes } '^[' StartList (!']' Inline { a = cons(yy, a) })+ ']' { yy = mk_list(NOTE, a) + yy.contents.str = "" }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !( p.extension.Notes ) { + goto l1277 + } + if !matchString("^[") { + goto l1277 + } + if !p.rules[ruleStartList]() { + goto l1277 + } + doarg(yySet, -1) + if peekChar(']') { + goto l1277 + } + if !p.rules[ruleInline]() { + goto l1277 + } + do(99) + l1278: + { + position1279, thunkPosition1279 := position, thunkPosition + if peekChar(']') { + goto l1279 + } + if !p.rules[ruleInline]() { + goto l1279 + } + do(99) + goto l1278 + l1279: + position, thunkPosition = position1279, thunkPosition1279 + } + if !matchChar(']') { + goto l1277 + } + do(100) + doarg(yyPop, 1) + return true + l1277: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 204 Notes <- (StartList ((Note { a = cons(b, a) }) / SkipBlock)* { p.notes = reverse(a) } commit) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 2) + if !p.rules[ruleStartList]() { + goto l1280 + } + doarg(yySet, -1) + l1281: + { + position1282, thunkPosition1282 := position, thunkPosition + { + position1283, thunkPosition1283 := position, thunkPosition + if !p.rules[ruleNote]() { + goto l1284 + } + doarg(yySet, -2) + do(101) + goto l1283 + l1284: + position, thunkPosition = position1283, thunkPosition1283 + if !p.rules[ruleSkipBlock]() { + goto l1282 + } + } + l1283: + goto l1281 + l1282: + position, thunkPosition = position1282, thunkPosition1282 + } + do(102) + if !(commit(thunkPosition0)) { + goto l1280 + } + doarg(yyPop, 2) + return true + l1280: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 205 RawNoteBlock <- (StartList (!BlankLine OptionallyIndentedLine { a = cons(yy, a) })+ (< BlankLine* > { a = cons(mk_str(yytext), a) }) { yy = mk_str_from_list(a, true) + yy.key = RAW + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleStartList]() { + goto l1285 + } + doarg(yySet, -1) + { + position1288, thunkPosition1288 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1288 + } + goto l1285 + l1288: + position, thunkPosition = position1288, thunkPosition1288 + } + if !p.rules[ruleOptionallyIndentedLine]() { + goto l1285 + } + do(103) + l1286: + { + position1287, thunkPosition1287 := position, thunkPosition + { + position1289, thunkPosition1289 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1289 + } + goto l1287 + l1289: + position, thunkPosition = position1289, thunkPosition1289 + } + if !p.rules[ruleOptionallyIndentedLine]() { + goto l1287 + } + do(103) + goto l1286 + l1287: + position, thunkPosition = position1287, thunkPosition1287 + } + begin = position + l1290: + { + position1291, thunkPosition1291 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1291 + } + goto l1290 + l1291: + position, thunkPosition = position1291, thunkPosition1291 + } + end = position + do(104) + do(105) + doarg(yyPop, 1) + return true + l1285: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 206 DefinitionList <- (&{ p.extension.Dlists } StartList (Definition { a = cons(yy, a) })+ { yy = mk_list(DEFINITIONLIST, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !( p.extension.Dlists ) { + goto l1292 + } + if !p.rules[ruleStartList]() { + goto l1292 + } + doarg(yySet, -1) + if !p.rules[ruleDefinition]() { + goto l1292 + } + do(106) + l1293: + { + position1294, thunkPosition1294 := position, thunkPosition + if !p.rules[ruleDefinition]() { + goto l1294 + } + do(106) + goto l1293 + l1294: + position, thunkPosition = position1294, thunkPosition1294 + } + do(107) + doarg(yyPop, 1) + return true + l1292: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 207 Definition <- (&((!Defmark RawLine)+ BlankLine? Defmark) StartList (DListTitle { a = cons(yy, a) })+ (DefTight / DefLoose) { + for e := yy.children; e != nil; e = e.next { + e.key = DEFDATA + } + a = cons(yy, a) + } { yy = mk_list(LIST, a) }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + { + position1296, thunkPosition1296 := position, thunkPosition + { + position1299, thunkPosition1299 := position, thunkPosition + if !p.rules[ruleDefmark]() { + goto l1299 + } + goto l1295 + l1299: + position, thunkPosition = position1299, thunkPosition1299 + } + if !p.rules[ruleRawLine]() { + goto l1295 + } + l1297: + { + position1298, thunkPosition1298 := position, thunkPosition + { + position1300, thunkPosition1300 := position, thunkPosition + if !p.rules[ruleDefmark]() { + goto l1300 + } + goto l1298 + l1300: + position, thunkPosition = position1300, thunkPosition1300 + } + if !p.rules[ruleRawLine]() { + goto l1298 + } + goto l1297 + l1298: + position, thunkPosition = position1298, thunkPosition1298 + } + { + position1301, thunkPosition1301 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1301 + } + goto l1302 + l1301: + position, thunkPosition = position1301, thunkPosition1301 + } + l1302: + if !p.rules[ruleDefmark]() { + goto l1295 + } + position, thunkPosition = position1296, thunkPosition1296 + } + if !p.rules[ruleStartList]() { + goto l1295 + } + doarg(yySet, -1) + if !p.rules[ruleDListTitle]() { + goto l1295 + } + do(108) + l1303: + { + position1304, thunkPosition1304 := position, thunkPosition + if !p.rules[ruleDListTitle]() { + goto l1304 + } + do(108) + goto l1303 + l1304: + position, thunkPosition = position1304, thunkPosition1304 + } + { + position1305, thunkPosition1305 := position, thunkPosition + if !p.rules[ruleDefTight]() { + goto l1306 + } + goto l1305 + l1306: + position, thunkPosition = position1305, thunkPosition1305 + if !p.rules[ruleDefLoose]() { + goto l1295 + } + } + l1305: + do(109) + do(110) + doarg(yyPop, 1) + return true + l1295: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 208 DListTitle <- (NonindentSpace !Defmark &Nonspacechar StartList (!Endline Inline { a = cons(yy, a) })+ Sp Newline { yy = mk_list(LIST, a) + yy.key = DEFTITLE + }) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + doarg(yyPush, 1) + if !p.rules[ruleNonindentSpace]() { + goto l1307 + } + { + position1308, thunkPosition1308 := position, thunkPosition + if !p.rules[ruleDefmark]() { + goto l1308 + } + goto l1307 + l1308: + position, thunkPosition = position1308, thunkPosition1308 + } + { + position1309, thunkPosition1309 := position, thunkPosition + if !p.rules[ruleNonspacechar]() { + goto l1307 + } + position, thunkPosition = position1309, thunkPosition1309 + } + if !p.rules[ruleStartList]() { + goto l1307 + } + doarg(yySet, -1) + { + position1312, thunkPosition1312 := position, thunkPosition + if !p.rules[ruleEndline]() { + goto l1312 + } + goto l1307 + l1312: + position, thunkPosition = position1312, thunkPosition1312 + } + if !p.rules[ruleInline]() { + goto l1307 + } + do(111) + l1310: + { + position1311, thunkPosition1311 := position, thunkPosition + { + position1313, thunkPosition1313 := position, thunkPosition + if !p.rules[ruleEndline]() { + goto l1313 + } + goto l1311 + l1313: + position, thunkPosition = position1313, thunkPosition1313 + } + if !p.rules[ruleInline]() { + goto l1311 + } + do(111) + goto l1310 + l1311: + position, thunkPosition = position1311, thunkPosition1311 + } + if !p.rules[ruleSp]() { + goto l1307 + } + if !p.rules[ruleNewline]() { + goto l1307 + } + do(112) + doarg(yyPop, 1) + return true + l1307: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 209 DefTight <- (&Defmark ListTight) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + { + position1315, thunkPosition1315 := position, thunkPosition + if !p.rules[ruleDefmark]() { + goto l1314 + } + position, thunkPosition = position1315, thunkPosition1315 + } + if !p.rules[ruleListTight]() { + goto l1314 + } + return true + l1314: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 210 DefLoose <- (BlankLine &Defmark ListLoose) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !p.rules[ruleBlankLine]() { + goto l1316 + } + { + position1317, thunkPosition1317 := position, thunkPosition + if !p.rules[ruleDefmark]() { + goto l1316 + } + position, thunkPosition = position1317, thunkPosition1317 + } + if !p.rules[ruleListLoose]() { + goto l1316 + } + return true + l1316: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 211 Defmark <- (NonindentSpace (':' / '~') Spacechar+) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !p.rules[ruleNonindentSpace]() { + goto l1318 + } + { + position1319, thunkPosition1319 := position, thunkPosition + if !matchChar(':') { + goto l1320 + } + goto l1319 + l1320: + position, thunkPosition = position1319, thunkPosition1319 + if !matchChar('~') { + goto l1318 + } + } + l1319: + if !p.rules[ruleSpacechar]() { + goto l1318 + } + l1321: + { + position1322, thunkPosition1322 := position, thunkPosition + if !p.rules[ruleSpacechar]() { + goto l1322 + } + goto l1321 + l1322: + position, thunkPosition = position1322, thunkPosition1322 + } + return true + l1318: + position, thunkPosition = position0, thunkPosition0 + return false + }, + /* 212 DefMarker <- (&{ p.extension.Dlists } Defmark) */ + func() bool { + position0, thunkPosition0 := position, thunkPosition + if !( p.extension.Dlists ) { + goto l1323 + } + if !p.rules[ruleDefmark]() { + goto l1323 + } + return true + l1323: + position, thunkPosition = position0, thunkPosition0 + return false + }, + } +} + + + +/* + * List manipulation functions + */ + + +/* cons - cons an element onto a list, returning pointer to new head + */ +func cons(new, list *element) *element { + new.next = list + return new +} + +/* reverse - reverse a list, returning pointer to new list + */ +func reverse(list *element) (new *element) { + for list != nil { + next := list.next + new = cons(list, new) + list = next + } + return +} + +/* concat_string_list - concatenates string contents of list of STR elements. + */ +func concat_string_list(list *element) string { + s := "" + for list != nil { + s += list.contents.str + list = list.next + } + return s +} + + +/* + * Auxiliary functions for parsing actions. + * These make it easier to build up data structures (including lists) + * in the parsing actions. + */ + + +/* mk_element - generic constructor for element + */ +var elbuf []element +var elock sync.Mutex + +func mk_element(key int) *element { + elock.Lock() + if len(elbuf) == 0 { + elbuf = make([]element, 1024) + } + e := &elbuf[0] + elbuf = elbuf[1:] + elock.Unlock() + e.key = key + return e +} + +/* mk_str - constructor for STR element + */ +func mk_str(s string) (result *element) { + result = mk_element(STR) + result.contents.str = s + return +} + +/* mk_str_from_list - makes STR element by concatenating a + * reversed list of strings, adding optional extra newline + */ +func mk_str_from_list(list *element, extra_newline bool) (result *element) { + s := concat_string_list(reverse(list)) + if extra_newline { + s += "\n" + } + result = mk_element(STR) + result.contents.str = s + return +} + +/* mk_list - makes new list with key 'key' and children the reverse of 'lst'. + * This is designed to be used with cons to build lists in a parser action. + * The reversing is necessary because cons adds to the head of a list. + */ +func mk_list(key int, lst *element) *element { + result := mk_element(key) + result.children = reverse(lst) + return result +} + +/* mk_link - constructor for LINK element + */ +func mk_link(label *element, url, title string) *element { + result := mk_element(LINK) + result.contents.link = &link{label: label, url: url, title: title} + return result +} + + +/* match_inlines - returns true if inline lists match (case-insensitive...) + */ +func match_inlines(l1, l2 *element) bool { + for l1 != nil && l2 != nil { + if l1.key != l2.key { + return false + } + switch l1.key { + case SPACE, LINEBREAK, ELLIPSIS, EMDASH, ENDASH, APOSTROPHE: + break + case CODE, STR, HTML: + if strings.ToUpper(l1.contents.str) != strings.ToUpper(l2.contents.str) { + return false + } + case EMPH, STRONG, LIST, SINGLEQUOTED, DOUBLEQUOTED: + if !match_inlines(l1.children, l2.children) { + return false + } + case LINK, IMAGE: + return false /* No links or images within links */ + default: + log.Exitf("match_inlines encountered unknown key = %d\n", l1.key) + } + l1 = l1.next + l2 = l2.next + } + return l1 == nil && l2 == nil /* return true if both lists exhausted */ +} + + +/* find_reference - return true if link found in references matching label. + * 'link' is modified with the matching url and title. + */ +func (d *Doc) findReference(label *element) (*link, bool) { + for cur := d.references; cur != nil; cur = cur.next { + l := cur.contents.link + if match_inlines(label, l.label) { + return l, true + } + } + return nil, false +} + + +/* find_note - return true if note found in notes matching label. + * if found, 'result' is set to point to matched note. + */ +func (d *Doc) find_note(label string) (*element, bool) { + for el := d.notes; el != nil; el = el.next { + if label == el.contents.str { + return el, true + } + } + return nil, false +} + + +/* print tree of elements, for debugging only. + */ +func print_tree(elt *element, indent int) { + var key string + + for elt != nil { + for i := 0; i < indent; i++ { + fmt.Print("\t") + } + key = keynames[elt.key] + if key == "" { + key = "?" + } + if elt.key == STR { + fmt.Printf("%p:\t%s\t'%s'\n", elt, key, elt.contents.str) + } else { + fmt.Printf("%p:\t%s %p\n", elt, key, elt.next) + } + if elt.children != nil { + print_tree(elt.children, indent+1) + } + elt = elt.next + } +} + +var keynames = [numVAL]string{ + LIST: "LIST", + RAW: "RAW", + SPACE: "SPACE", + LINEBREAK: "LINEBREAK", + ELLIPSIS: "ELLIPSIS", + EMDASH: "EMDASH", + ENDASH: "ENDASH", + APOSTROPHE: "APOSTROPHE", + SINGLEQUOTED: "SINGLEQUOTED", + DOUBLEQUOTED: "DOUBLEQUOTED", + STR: "STR", + LINK: "LINK", + IMAGE: "IMAGE", + CODE: "CODE", + HTML: "HTML", + EMPH: "EMPH", + STRONG: "STRONG", + PLAIN: "PLAIN", + PARA: "PARA", + LISTITEM: "LISTITEM", + BULLETLIST: "BULLETLIST", + ORDEREDLIST: "ORDEREDLIST", + H1: "H1", + H2: "H2", + H3: "H3", + H4: "H4", + H5: "H5", + H6: "H6", + BLOCKQUOTE: "BLOCKQUOTE", + VERBATIM: "VERBATIM", + HTMLBLOCK: "HTMLBLOCK", + HRULE: "HRULE", + REFERENCE: "REFERENCE", + NOTE: "NOTE", + DEFINITIONLIST: "DEFINITIONLIST", + DEFTITLE: "DEFTITLE", + DEFDATA: "DEFDATA", +}