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",
+}