/* 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 ruleListItemTight ruleListBlock ruleListContinuationBlock ruleEnumerator ruleOrderedList ruleListBlockLine ruleHtmlBlockOpenAddress ruleHtmlBlockCloseAddress ruleHtmlBlockAddress ruleHtmlBlockOpenBlockquote ruleHtmlBlockCloseBlockquote ruleHtmlBlockBlockquote ruleHtmlBlockOpenCenter ruleHtmlBlockCloseCenter ruleHtmlBlockCenter ruleHtmlBlockOpenDir ruleHtmlBlockCloseDir ruleHtmlBlockDir ruleHtmlBlockOpenDiv ruleHtmlBlockCloseDiv ruleHtmlBlockDiv ruleHtmlBlockOpenDl ruleHtmlBlockCloseDl ruleHtmlBlockDl ruleHtmlBlockOpenFieldset ruleHtmlBlockCloseFieldset ruleHtmlBlockFieldset ruleHtmlBlockOpenForm ruleHtmlBlockCloseForm ruleHtmlBlockForm ruleHtmlBlockOpenH1 ruleHtmlBlockCloseH1 ruleHtmlBlockH1 ruleHtmlBlockOpenH2 ruleHtmlBlockCloseH2 ruleHtmlBlockH2 ruleHtmlBlockOpenH3 ruleHtmlBlockCloseH3 ruleHtmlBlockH3 ruleHtmlBlockOpenH4 ruleHtmlBlockCloseH4 ruleHtmlBlockH4 ruleHtmlBlockOpenH5 ruleHtmlBlockCloseH5 ruleHtmlBlockH5 ruleHtmlBlockOpenH6 ruleHtmlBlockCloseH6 ruleHtmlBlockH6 ruleHtmlBlockOpenMenu ruleHtmlBlockCloseMenu ruleHtmlBlockMenu ruleHtmlBlockOpenNoframes ruleHtmlBlockCloseNoframes ruleHtmlBlockNoframes ruleHtmlBlockOpenNoscript ruleHtmlBlockCloseNoscript ruleHtmlBlockNoscript ruleHtmlBlockOpenOl ruleHtmlBlockCloseOl ruleHtmlBlockOl ruleHtmlBlockOpenP ruleHtmlBlockCloseP ruleHtmlBlockP ruleHtmlBlockOpenPre ruleHtmlBlockClosePre ruleHtmlBlockPre ruleHtmlBlockOpenTable ruleHtmlBlockCloseTable ruleHtmlBlockTable ruleHtmlBlockOpenUl ruleHtmlBlockCloseUl ruleHtmlBlockUl ruleHtmlBlockOpenDd ruleHtmlBlockCloseDd ruleHtmlBlockDd ruleHtmlBlockOpenDt ruleHtmlBlockCloseDt ruleHtmlBlockDt ruleHtmlBlockOpenFrameset ruleHtmlBlockCloseFrameset ruleHtmlBlockFrameset ruleHtmlBlockOpenLi ruleHtmlBlockCloseLi ruleHtmlBlockLi ruleHtmlBlockOpenTbody ruleHtmlBlockCloseTbody ruleHtmlBlockTbody ruleHtmlBlockOpenTd ruleHtmlBlockCloseTd ruleHtmlBlockTd ruleHtmlBlockOpenTfoot ruleHtmlBlockCloseTfoot ruleHtmlBlockTfoot ruleHtmlBlockOpenTh ruleHtmlBlockCloseTh ruleHtmlBlockTh ruleHtmlBlockOpenThead ruleHtmlBlockCloseThead ruleHtmlBlockThead ruleHtmlBlockOpenTr ruleHtmlBlockCloseTr ruleHtmlBlockTr ruleHtmlBlockOpenScript ruleHtmlBlockCloseScript ruleHtmlBlockScript 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 ruleNonAlphanumeric ruleAlphanumeric ruleAlphanumericAscii 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 [249]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 ListItemTight */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 31 ListItemTight */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 32 ListItemTight */ 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 }, /* 33 ListBlock */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 34 ListBlock */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 35 ListBlock */ func(yytext string, _ int) { a := yyval[yyp-1] yy = mk_str_from_list(a, false) yyval[yyp-1] = a }, /* 36 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 }, /* 37 ListContinuationBlock */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 38 ListContinuationBlock */ func(yytext string, _ int) { a := yyval[yyp-1] yy = mk_str_from_list(a, false) yyval[yyp-1] = a }, /* 39 OrderedList */ func(yytext string, _ int) { yy.key = ORDEREDLIST }, /* 40 HtmlBlock */ func(yytext string, _ int) { if p.extension.FilterHTML { yy = mk_list(LIST, nil) } else { yy = mk_str(yytext) yy.key = HTMLBLOCK } }, /* 41 StyleBlock */ func(yytext string, _ int) { if p.extension.FilterStyles { yy = mk_list(LIST, nil) } else { yy = mk_str(yytext) yy.key = HTMLBLOCK } }, /* 42 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 }, /* 43 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 }, /* 44 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 }, /* 45 Space */ func(yytext string, _ int) { yy = mk_str(" ") yy.key = SPACE }, /* 46 Str */ func(yytext string, _ int) { yy = mk_str(yytext) }, /* 47 EscapedChar */ func(yytext string, _ int) { yy = mk_str(yytext) }, /* 48 Entity */ func(yytext string, _ int) { yy = mk_str(yytext); yy.key = HTML }, /* 49 NormalEndline */ func(yytext string, _ int) { yy = mk_str("\n") yy.key = SPACE }, /* 50 TerminalEndline */ func(yytext string, _ int) { yy = nil }, /* 51 LineBreak */ func(yytext string, _ int) { yy = mk_element(LINEBREAK) }, /* 52 Symbol */ func(yytext string, _ int) { yy = mk_str(yytext) }, /* 53 UlOrStarLine */ func(yytext string, _ int) { yy = mk_str(yytext) }, /* 54 OneStarClose */ func(yytext string, _ int) { a := yyval[yyp-1] yy = a yyval[yyp-1] = a }, /* 55 EmphStar */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 56 EmphStar */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 57 EmphStar */ func(yytext string, _ int) { a := yyval[yyp-1] yy = mk_list(EMPH, a) yyval[yyp-1] = a }, /* 58 OneUlClose */ func(yytext string, _ int) { a := yyval[yyp-1] yy = a yyval[yyp-1] = a }, /* 59 EmphUl */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 60 EmphUl */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 61 EmphUl */ func(yytext string, _ int) { a := yyval[yyp-1] yy = mk_list(EMPH, a) yyval[yyp-1] = a }, /* 62 TwoStarClose */ func(yytext string, _ int) { a := yyval[yyp-1] yy = a yyval[yyp-1] = a }, /* 63 StrongStar */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 64 StrongStar */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 65 StrongStar */ func(yytext string, _ int) { a := yyval[yyp-1] yy = mk_list(STRONG, a) yyval[yyp-1] = a }, /* 66 TwoUlClose */ func(yytext string, _ int) { a := yyval[yyp-1] yy = a yyval[yyp-1] = a }, /* 67 StrongUl */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 68 StrongUl */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 69 StrongUl */ func(yytext string, _ int) { a := yyval[yyp-1] yy = mk_list(STRONG, a) yyval[yyp-1] = a }, /* 70 Image */ func(yytext string, _ int) { if yy.key == LINK { yy.key = IMAGE } else { result := yy yy.children = cons(mk_str("!"), result.children) } }, /* 71 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 }, /* 72 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 }, /* 73 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 }, /* 74 Source */ func(yytext string, _ int) { yy = mk_str(yytext) }, /* 75 Title */ func(yytext string, _ int) { yy = mk_str(yytext) }, /* 76 AutoLinkUrl */ func(yytext string, _ int) { yy = mk_link(mk_str(yytext), yytext, "") }, /* 77 AutoLinkEmail */ func(yytext string, _ int) { yy = mk_link(mk_str(yytext), "mailto:"+yytext, "") }, /* 78 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 }, /* 79 Label */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 80 Label */ func(yytext string, _ int) { a := yyval[yyp-1] yy = mk_list(LIST, a) yyval[yyp-1] = a }, /* 81 RefSrc */ func(yytext string, _ int) { yy = mk_str(yytext) yy.key = HTML }, /* 82 RefTitle */ func(yytext string, _ int) { yy = mk_str(yytext) }, /* 83 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 }, /* 84 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 }, /* 85 Code */ func(yytext string, _ int) { yy = mk_str(yytext); yy.key = CODE }, /* 86 RawHtml */ func(yytext string, _ int) { if p.extension.FilterHTML { yy = mk_list(LIST, nil) } else { yy = mk_str(yytext) yy.key = HTML } }, /* 87 StartList */ func(yytext string, _ int) { yy = nil }, /* 88 Line */ func(yytext string, _ int) { yy = mk_str(yytext) }, /* 89 Apostrophe */ func(yytext string, _ int) { yy = mk_element(APOSTROPHE) }, /* 90 Ellipsis */ func(yytext string, _ int) { yy = mk_element(ELLIPSIS) }, /* 91 EnDash */ func(yytext string, _ int) { yy = mk_element(ENDASH) }, /* 92 EmDash */ func(yytext string, _ int) { yy = mk_element(EMDASH) }, /* 93 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 }, /* 94 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 }, /* 95 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 }, /* 96 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 }, /* 97 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 }, /* 98 RawNoteReference */ func(yytext string, _ int) { yy = mk_str(yytext) }, /* 99 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 }, /* 100 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 }, /* 101 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 }, /* 102 InlineNote */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 103 InlineNote */ func(yytext string, _ int) { a := yyval[yyp-1] yy = mk_list(NOTE, a) yy.contents.str = "" yyval[yyp-1] = a }, /* 104 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 }, /* 105 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 }, /* 106 RawNoteBlock */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 107 RawNoteBlock */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(mk_str(yytext), a) yyval[yyp-1] = a }, /* 108 RawNoteBlock */ func(yytext string, _ int) { a := yyval[yyp-1] yy = mk_str_from_list(a, true) yy.key = RAW yyval[yyp-1] = a }, /* 109 DefinitionList */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 110 DefinitionList */ func(yytext string, _ int) { a := yyval[yyp-1] yy = mk_list(DEFINITIONLIST, a) yyval[yyp-1] = a }, /* 111 Definition */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 112 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 }, /* 113 Definition */ func(yytext string, _ int) { a := yyval[yyp-1] yy = mk_list(LIST, a) yyval[yyp-1] = a }, /* 114 DListTitle */ func(yytext string, _ int) { a := yyval[yyp-1] a = cons(yy, a) yyval[yyp-1] = a }, /* 115 DListTitle */ func(yytext string, _ int) { a := yyval[yyp-1] yy = mk_list(LIST, a) yy.key = DEFTITLE yyval[yyp-1] = a }, /* 116 yyPush */ func(_ string, count int) { yyp += count if yyp >= len(yyval) { s := make([]*element, cap(yyval)+200) copy(s, yyval) yyval = s } }, /* 117 yyPop */ func(_ string, count int) { yyp -= count }, /* 118 yySet */ func(_ string, count int) { yyval[yyp+count] = yy }, } const ( yyPush = 116+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, 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, 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, 255, 255, 255, 255, 255, 31, 0, 0, 0, 0, 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 { position26, thunkPosition26 := position, thunkPosition if !p.rules[ruleSp]() { goto l26 } goto l27 l26: position, thunkPosition = position26, thunkPosition26 } l27: l28: { position29, thunkPosition29 := position, thunkPosition if !matchChar('#') { goto l29 } goto l28 l29: position, thunkPosition = position29, thunkPosition29 } 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 l30 } begin = position { position31, thunkPosition31 := position, thunkPosition if !matchString("######") { goto l32 } goto l31 l32: position, thunkPosition = position31, thunkPosition31 if !matchString("#####") { goto l33 } goto l31 l33: position, thunkPosition = position31, thunkPosition31 if !matchString("####") { goto l34 } goto l31 l34: position, thunkPosition = position31, thunkPosition31 if !matchString("###") { goto l35 } goto l31 l35: position, thunkPosition = position31, thunkPosition31 if !matchString("##") { goto l36 } goto l31 l36: position, thunkPosition = position31, thunkPosition31 if !matchChar('#') { goto l30 } } l31: end = position do(4) return true l30: 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 l37 } doarg(yySet, -1) { position38, thunkPosition38 := position, thunkPosition if !p.rules[ruleSp]() { goto l38 } goto l39 l38: position, thunkPosition = position38, thunkPosition38 } l39: if !p.rules[ruleStartList]() { goto l37 } doarg(yySet, -2) if !p.rules[ruleAtxInline]() { goto l37 } do(5) l40: { position41, thunkPosition41 := position, thunkPosition if !p.rules[ruleAtxInline]() { goto l41 } do(5) goto l40 l41: position, thunkPosition = position41, thunkPosition41 } { position42, thunkPosition42 := position, thunkPosition { position44, thunkPosition44 := position, thunkPosition if !p.rules[ruleSp]() { goto l44 } goto l45 l44: position, thunkPosition = position44, thunkPosition44 } l45: l46: { position47, thunkPosition47 := position, thunkPosition if !matchChar('#') { goto l47 } goto l46 l47: position, thunkPosition = position47, thunkPosition47 } if !p.rules[ruleSp]() { goto l42 } goto l43 l42: position, thunkPosition = position42, thunkPosition42 } l43: if !p.rules[ruleNewline]() { goto l37 } do(6) doarg(yyPop, 2) return true l37: position, thunkPosition = position0, thunkPosition0 return false }, /* 7 SetextHeading <- (SetextHeading1 / SetextHeading2) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position49, thunkPosition49 := position, thunkPosition if !p.rules[ruleSetextHeading1]() { goto l50 } goto l49 l50: position, thunkPosition = position49, thunkPosition49 if !p.rules[ruleSetextHeading2]() { goto l48 } } l49: return true l48: position, thunkPosition = position0, thunkPosition0 return false }, /* 8 SetextBottom1 <- ('===' '='* Newline) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchString("===") { goto l51 } l52: { position53, thunkPosition53 := position, thunkPosition if !matchChar('=') { goto l53 } goto l52 l53: position, thunkPosition = position53, thunkPosition53 } if !p.rules[ruleNewline]() { goto l51 } return true l51: position, thunkPosition = position0, thunkPosition0 return false }, /* 9 SetextBottom2 <- ('---' '-'* Newline) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchString("---") { goto l54 } l55: { position56, thunkPosition56 := position, thunkPosition if !matchChar('-') { goto l56 } goto l55 l56: position, thunkPosition = position56, thunkPosition56 } if !p.rules[ruleNewline]() { goto l54 } return true l54: 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) { position58, thunkPosition58 := position, thunkPosition if !p.rules[ruleRawLine]() { goto l57 } if !p.rules[ruleSetextBottom1]() { 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(7) 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(7) goto l59 l60: position, thunkPosition = position60, thunkPosition60 } if !p.rules[ruleNewline]() { goto l57 } if !p.rules[ruleSetextBottom1]() { goto l57 } do(8) doarg(yyPop, 1) return true l57: 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) { position64, thunkPosition64 := position, thunkPosition if !p.rules[ruleRawLine]() { goto l63 } if !p.rules[ruleSetextBottom2]() { goto l63 } position, thunkPosition = position64, thunkPosition64 } if !p.rules[ruleStartList]() { goto l63 } doarg(yySet, -1) { position67, thunkPosition67 := position, thunkPosition if !p.rules[ruleEndline]() { goto l67 } goto l63 l67: position, thunkPosition = position67, thunkPosition67 } if !p.rules[ruleInline]() { goto l63 } do(9) l65: { position66, thunkPosition66 := position, thunkPosition { position68, thunkPosition68 := position, thunkPosition if !p.rules[ruleEndline]() { goto l68 } goto l66 l68: position, thunkPosition = position68, thunkPosition68 } if !p.rules[ruleInline]() { goto l66 } do(9) goto l65 l66: position, thunkPosition = position66, thunkPosition66 } if !p.rules[ruleNewline]() { goto l63 } if !p.rules[ruleSetextBottom2]() { goto l63 } do(10) doarg(yyPop, 1) return true l63: position, thunkPosition = position0, thunkPosition0 return false }, /* 12 Heading <- (AtxHeading / SetextHeading) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position70, thunkPosition70 := position, thunkPosition if !p.rules[ruleAtxHeading]() { goto l71 } goto l70 l71: position, thunkPosition = position70, thunkPosition70 if !p.rules[ruleSetextHeading]() { goto l69 } } l70: return true l69: 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 l72 } doarg(yySet, -1) do(11) doarg(yyPop, 1) return true l72: 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 l73 } doarg(yySet, -1) if !matchChar('>') { goto l73 } { position76, thunkPosition76 := position, thunkPosition if !matchChar(' ') { goto l76 } goto l77 l76: position, thunkPosition = position76, thunkPosition76 } l77: if !p.rules[ruleLine]() { goto l73 } do(12) l78: { position79, thunkPosition79 := position, thunkPosition if peekChar('>') { goto l79 } { position80, thunkPosition80 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l80 } goto l79 l80: position, thunkPosition = position80, thunkPosition80 } if !p.rules[ruleLine]() { goto l79 } do(13) goto l78 l79: position, thunkPosition = position79, thunkPosition79 } l81: { position82, thunkPosition82 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l82 } do(14) goto l81 l82: position, thunkPosition = position82, thunkPosition82 } l74: { position75, thunkPosition75 := position, thunkPosition if !matchChar('>') { goto l75 } { position83, thunkPosition83 := position, thunkPosition if !matchChar(' ') { goto l83 } goto l84 l83: position, thunkPosition = position83, thunkPosition83 } l84: if !p.rules[ruleLine]() { goto l75 } do(12) l85: { position86, thunkPosition86 := position, thunkPosition if peekChar('>') { goto l86 } { position87, thunkPosition87 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l87 } goto l86 l87: position, thunkPosition = position87, thunkPosition87 } if !p.rules[ruleLine]() { goto l86 } do(13) goto l85 l86: position, thunkPosition = position86, thunkPosition86 } l88: { position89, thunkPosition89 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l89 } do(14) goto l88 l89: position, thunkPosition = position89, thunkPosition89 } goto l74 l75: position, thunkPosition = position75, thunkPosition75 } do(15) doarg(yyPop, 1) return true l73: position, thunkPosition = position0, thunkPosition0 return false }, /* 15 NonblankIndentedLine <- (!BlankLine IndentedLine) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position91, thunkPosition91 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l91 } goto l90 l91: position, thunkPosition = position91, thunkPosition91 } if !p.rules[ruleIndentedLine]() { goto l90 } return true l90: 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 l92 } doarg(yySet, -1) l93: { position94, thunkPosition94 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l94 } do(16) goto l93 l94: position, thunkPosition = position94, thunkPosition94 } if !p.rules[ruleNonblankIndentedLine]() { goto l92 } do(17) l95: { position96, thunkPosition96 := position, thunkPosition if !p.rules[ruleNonblankIndentedLine]() { goto l96 } do(17) goto l95 l96: position, thunkPosition = position96, thunkPosition96 } do(18) doarg(yyPop, 1) return true l92: 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 l97 } doarg(yySet, -1) if !p.rules[ruleVerbatimChunk]() { goto l97 } do(19) l98: { position99, thunkPosition99 := position, thunkPosition if !p.rules[ruleVerbatimChunk]() { goto l99 } do(19) goto l98 l99: position, thunkPosition = position99, thunkPosition99 } do(20) doarg(yyPop, 1) return true l97: 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 l100 } { position101, thunkPosition101 := position, thunkPosition if !matchChar('*') { goto l102 } if !p.rules[ruleSp]() { goto l102 } if !matchChar('*') { goto l102 } if !p.rules[ruleSp]() { goto l102 } if !matchChar('*') { goto l102 } l103: { position104, thunkPosition104 := position, thunkPosition if !p.rules[ruleSp]() { goto l104 } if !matchChar('*') { goto l104 } goto l103 l104: position, thunkPosition = position104, thunkPosition104 } goto l101 l102: position, thunkPosition = position101, thunkPosition101 if !matchChar('-') { goto l105 } if !p.rules[ruleSp]() { goto l105 } if !matchChar('-') { goto l105 } if !p.rules[ruleSp]() { goto l105 } if !matchChar('-') { goto l105 } l106: { position107, thunkPosition107 := position, thunkPosition if !p.rules[ruleSp]() { goto l107 } if !matchChar('-') { goto l107 } goto l106 l107: position, thunkPosition = position107, thunkPosition107 } goto l101 l105: position, thunkPosition = position101, thunkPosition101 if !matchChar('_') { goto l100 } if !p.rules[ruleSp]() { goto l100 } if !matchChar('_') { goto l100 } if !p.rules[ruleSp]() { goto l100 } if !matchChar('_') { goto l100 } l108: { position109, thunkPosition109 := position, thunkPosition if !p.rules[ruleSp]() { goto l109 } if !matchChar('_') { goto l109 } goto l108 l109: position, thunkPosition = position109, thunkPosition109 } } l101: if !p.rules[ruleSp]() { goto l100 } if !p.rules[ruleNewline]() { goto l100 } if !p.rules[ruleBlankLine]() { goto l100 } l110: { position111, thunkPosition111 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l111 } goto l110 l111: position, thunkPosition = position111, thunkPosition111 } do(21) return true l100: position, thunkPosition = position0, thunkPosition0 return false }, /* 19 Bullet <- (!HorizontalRule NonindentSpace ('+' / '*' / '-') Spacechar+) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position113, thunkPosition113 := position, thunkPosition if !p.rules[ruleHorizontalRule]() { goto l113 } goto l112 l113: position, thunkPosition = position113, thunkPosition113 } if !p.rules[ruleNonindentSpace]() { goto l112 } { position114, thunkPosition114 := position, thunkPosition if !matchChar('+') { goto l115 } goto l114 l115: position, thunkPosition = position114, thunkPosition114 if !matchChar('*') { goto l116 } goto l114 l116: position, thunkPosition = position114, thunkPosition114 if !matchChar('-') { goto l112 } } l114: if !p.rules[ruleSpacechar]() { goto l112 } l117: { position118, thunkPosition118 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l118 } goto l117 l118: position, thunkPosition = position118, thunkPosition118 } return true l112: position, thunkPosition = position0, thunkPosition0 return false }, /* 20 BulletList <- (&Bullet (ListTight / ListLoose) { yy.key = BULLETLIST }) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position120, thunkPosition120 := position, thunkPosition if !p.rules[ruleBullet]() { goto l119 } position, thunkPosition = position120, thunkPosition120 } { position121, thunkPosition121 := position, thunkPosition if !p.rules[ruleListTight]() { goto l122 } goto l121 l122: position, thunkPosition = position121, thunkPosition121 if !p.rules[ruleListLoose]() { goto l119 } } l121: do(22) return true l119: position, thunkPosition = position0, thunkPosition0 return false }, /* 21 ListTight <- (StartList (ListItemTight { 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 l123 } doarg(yySet, -1) if !p.rules[ruleListItemTight]() { goto l123 } do(23) l124: { position125, thunkPosition125 := position, thunkPosition if !p.rules[ruleListItemTight]() { goto l125 } do(23) goto l124 l125: position, thunkPosition = position125, thunkPosition125 } l126: { position127, thunkPosition127 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l127 } goto l126 l127: position, thunkPosition = position127, thunkPosition127 } { position128, thunkPosition128 := position, thunkPosition { position129, thunkPosition129 := position, thunkPosition if !p.rules[ruleBullet]() { goto l130 } goto l129 l130: position, thunkPosition = position129, thunkPosition129 if !p.rules[ruleEnumerator]() { goto l131 } goto l129 l131: position, thunkPosition = position129, thunkPosition129 if !p.rules[ruleDefMarker]() { goto l128 } } l129: goto l123 l128: position, thunkPosition = position128, thunkPosition128 } do(24) doarg(yyPop, 1) return true l123: 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 l132 } doarg(yySet, -1) if !p.rules[ruleListItem]() { goto l132 } doarg(yySet, -2) l135: { position136, thunkPosition136 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l136 } goto l135 l136: position, thunkPosition = position136, thunkPosition136 } do(25) l133: { position134, thunkPosition134 := position, thunkPosition if !p.rules[ruleListItem]() { goto l134 } doarg(yySet, -2) l137: { position138, thunkPosition138 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l138 } goto l137 l138: position, thunkPosition = position138, thunkPosition138 } do(25) goto l133 l134: position, thunkPosition = position134, thunkPosition134 } do(26) doarg(yyPop, 2) return true l132: 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) { position140, thunkPosition140 := position, thunkPosition if !p.rules[ruleBullet]() { goto l141 } goto l140 l141: position, thunkPosition = position140, thunkPosition140 if !p.rules[ruleEnumerator]() { goto l142 } goto l140 l142: position, thunkPosition = position140, thunkPosition140 if !p.rules[ruleDefMarker]() { goto l139 } } l140: if !p.rules[ruleStartList]() { goto l139 } doarg(yySet, -1) if !p.rules[ruleListBlock]() { goto l139 } do(27) l143: { position144, thunkPosition144 := position, thunkPosition if !p.rules[ruleListContinuationBlock]() { goto l144 } do(28) goto l143 l144: position, thunkPosition = position144, thunkPosition144 } do(29) doarg(yyPop, 1) return true l139: position, thunkPosition = position0, thunkPosition0 return false }, /* 24 ListItemTight <- ((Bullet / Enumerator / DefMarker) StartList ListBlock { a = cons(yy, a) } (!BlankLine ListContinuationBlock { a = cons(yy, a) })* !ListContinuationBlock { 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) { position146, thunkPosition146 := position, thunkPosition if !p.rules[ruleBullet]() { goto l147 } goto l146 l147: position, thunkPosition = position146, thunkPosition146 if !p.rules[ruleEnumerator]() { goto l148 } goto l146 l148: position, thunkPosition = position146, thunkPosition146 if !p.rules[ruleDefMarker]() { goto l145 } } l146: if !p.rules[ruleStartList]() { goto l145 } doarg(yySet, -1) if !p.rules[ruleListBlock]() { goto l145 } do(30) l149: { position150, thunkPosition150 := position, thunkPosition { position151, thunkPosition151 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l151 } goto l150 l151: position, thunkPosition = position151, thunkPosition151 } if !p.rules[ruleListContinuationBlock]() { goto l150 } do(31) goto l149 l150: position, thunkPosition = position150, thunkPosition150 } { position152, thunkPosition152 := position, thunkPosition if !p.rules[ruleListContinuationBlock]() { goto l152 } goto l145 l152: position, thunkPosition = position152, thunkPosition152 } do(32) doarg(yyPop, 1) return true l145: position, thunkPosition = position0, thunkPosition0 return false }, /* 25 ListBlock <- (StartList !BlankLine 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 l153 } doarg(yySet, -1) { position154, thunkPosition154 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l154 } goto l153 l154: position, thunkPosition = position154, thunkPosition154 } if !p.rules[ruleLine]() { goto l153 } do(33) l155: { position156, thunkPosition156 := position, thunkPosition if !p.rules[ruleListBlockLine]() { goto l156 } do(34) goto l155 l156: position, thunkPosition = position156, thunkPosition156 } do(35) doarg(yyPop, 1) return true l153: position, thunkPosition = position0, thunkPosition0 return false }, /* 26 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 l157 } doarg(yySet, -1) begin = position l158: { position159, thunkPosition159 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l159 } goto l158 l159: position, thunkPosition = position159, thunkPosition159 } end = position do(36) if !p.rules[ruleIndent]() { goto l157 } if !p.rules[ruleListBlock]() { goto l157 } do(37) l160: { position161, thunkPosition161 := position, thunkPosition if !p.rules[ruleIndent]() { goto l161 } if !p.rules[ruleListBlock]() { goto l161 } do(37) goto l160 l161: position, thunkPosition = position161, thunkPosition161 } do(38) doarg(yyPop, 1) return true l157: position, thunkPosition = position0, thunkPosition0 return false }, /* 27 Enumerator <- (NonindentSpace [0-9]+ '.' Spacechar+) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleNonindentSpace]() { goto l162 } if !matchClass(7) { goto l162 } l163: { position164, thunkPosition164 := position, thunkPosition if !matchClass(7) { goto l164 } goto l163 l164: position, thunkPosition = position164, thunkPosition164 } if !matchChar('.') { goto l162 } if !p.rules[ruleSpacechar]() { goto l162 } l165: { position166, thunkPosition166 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l166 } goto l165 l166: position, thunkPosition = position166, thunkPosition166 } return true l162: position, thunkPosition = position0, thunkPosition0 return false }, /* 28 OrderedList <- (&Enumerator (ListTight / ListLoose) { yy.key = ORDEREDLIST }) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position168, thunkPosition168 := position, thunkPosition if !p.rules[ruleEnumerator]() { goto l167 } position, thunkPosition = position168, thunkPosition168 } { position169, thunkPosition169 := position, thunkPosition if !p.rules[ruleListTight]() { goto l170 } goto l169 l170: position, thunkPosition = position169, thunkPosition169 if !p.rules[ruleListLoose]() { goto l167 } } l169: do(39) return true l167: position, thunkPosition = position0, thunkPosition0 return false }, /* 29 ListBlockLine <- (!BlankLine !((Indent? (Bullet / Enumerator)) / DefMarker) !HorizontalRule OptionallyIndentedLine) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position172, thunkPosition172 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l172 } goto l171 l172: position, thunkPosition = position172, thunkPosition172 } { position173, thunkPosition173 := position, thunkPosition { position174, thunkPosition174 := position, thunkPosition { position176, thunkPosition176 := position, thunkPosition if !p.rules[ruleIndent]() { goto l176 } goto l177 l176: position, thunkPosition = position176, thunkPosition176 } l177: { position178, thunkPosition178 := position, thunkPosition if !p.rules[ruleBullet]() { goto l179 } goto l178 l179: position, thunkPosition = position178, thunkPosition178 if !p.rules[ruleEnumerator]() { goto l175 } } l178: goto l174 l175: position, thunkPosition = position174, thunkPosition174 if !p.rules[ruleDefMarker]() { goto l173 } } l174: goto l171 l173: position, thunkPosition = position173, thunkPosition173 } { position180, thunkPosition180 := position, thunkPosition if !p.rules[ruleHorizontalRule]() { goto l180 } goto l171 l180: position, thunkPosition = position180, thunkPosition180 } if !p.rules[ruleOptionallyIndentedLine]() { goto l171 } return true l171: position, thunkPosition = position0, thunkPosition0 return false }, /* 30 HtmlBlockOpenAddress <- ('<' Spnl ('address' / 'ADDRESS') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l181 } if !p.rules[ruleSpnl]() { goto l181 } { position182, thunkPosition182 := position, thunkPosition if !matchString("address") { goto l183 } goto l182 l183: position, thunkPosition = position182, thunkPosition182 if !matchString("ADDRESS") { goto l181 } } l182: if !p.rules[ruleSpnl]() { goto l181 } l184: { position185, thunkPosition185 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l185 } goto l184 l185: position, thunkPosition = position185, thunkPosition185 } if !matchChar('>') { goto l181 } return true l181: position, thunkPosition = position0, thunkPosition0 return false }, /* 31 HtmlBlockCloseAddress <- ('<' Spnl '/' ('address' / 'ADDRESS') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l186 } if !p.rules[ruleSpnl]() { goto l186 } if !matchChar('/') { goto l186 } { position187, thunkPosition187 := position, thunkPosition if !matchString("address") { goto l188 } goto l187 l188: position, thunkPosition = position187, thunkPosition187 if !matchString("ADDRESS") { goto l186 } } l187: if !p.rules[ruleSpnl]() { goto l186 } if !matchChar('>') { goto l186 } return true l186: position, thunkPosition = position0, thunkPosition0 return false }, /* 32 HtmlBlockAddress <- (HtmlBlockOpenAddress (HtmlBlockAddress / (!HtmlBlockCloseAddress .))* HtmlBlockCloseAddress) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenAddress]() { goto l189 } l190: { position191, thunkPosition191 := position, thunkPosition { position192, thunkPosition192 := position, thunkPosition if !p.rules[ruleHtmlBlockAddress]() { goto l193 } goto l192 l193: position, thunkPosition = position192, thunkPosition192 { position194, thunkPosition194 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseAddress]() { goto l194 } goto l191 l194: position, thunkPosition = position194, thunkPosition194 } if !matchDot() { goto l191 } } l192: goto l190 l191: position, thunkPosition = position191, thunkPosition191 } if !p.rules[ruleHtmlBlockCloseAddress]() { goto l189 } return true l189: position, thunkPosition = position0, thunkPosition0 return false }, /* 33 HtmlBlockOpenBlockquote <- ('<' Spnl ('blockquote' / 'BLOCKQUOTE') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l195 } if !p.rules[ruleSpnl]() { goto l195 } { position196, thunkPosition196 := position, thunkPosition if !matchString("blockquote") { goto l197 } goto l196 l197: position, thunkPosition = position196, thunkPosition196 if !matchString("BLOCKQUOTE") { goto l195 } } l196: if !p.rules[ruleSpnl]() { goto l195 } l198: { position199, thunkPosition199 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l199 } goto l198 l199: position, thunkPosition = position199, thunkPosition199 } if !matchChar('>') { goto l195 } return true l195: position, thunkPosition = position0, thunkPosition0 return false }, /* 34 HtmlBlockCloseBlockquote <- ('<' Spnl '/' ('blockquote' / 'BLOCKQUOTE') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l200 } if !p.rules[ruleSpnl]() { goto l200 } if !matchChar('/') { goto l200 } { position201, thunkPosition201 := position, thunkPosition if !matchString("blockquote") { goto l202 } goto l201 l202: position, thunkPosition = position201, thunkPosition201 if !matchString("BLOCKQUOTE") { goto l200 } } l201: if !p.rules[ruleSpnl]() { goto l200 } if !matchChar('>') { goto l200 } return true l200: position, thunkPosition = position0, thunkPosition0 return false }, /* 35 HtmlBlockBlockquote <- (HtmlBlockOpenBlockquote (HtmlBlockBlockquote / (!HtmlBlockCloseBlockquote .))* HtmlBlockCloseBlockquote) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenBlockquote]() { goto l203 } l204: { position205, thunkPosition205 := position, thunkPosition { position206, thunkPosition206 := position, thunkPosition if !p.rules[ruleHtmlBlockBlockquote]() { goto l207 } goto l206 l207: position, thunkPosition = position206, thunkPosition206 { position208, thunkPosition208 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseBlockquote]() { goto l208 } goto l205 l208: position, thunkPosition = position208, thunkPosition208 } if !matchDot() { goto l205 } } l206: goto l204 l205: position, thunkPosition = position205, thunkPosition205 } if !p.rules[ruleHtmlBlockCloseBlockquote]() { goto l203 } return true l203: position, thunkPosition = position0, thunkPosition0 return false }, /* 36 HtmlBlockOpenCenter <- ('<' Spnl ('center' / 'CENTER') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l209 } if !p.rules[ruleSpnl]() { goto l209 } { position210, thunkPosition210 := position, thunkPosition if !matchString("center") { goto l211 } goto l210 l211: position, thunkPosition = position210, thunkPosition210 if !matchString("CENTER") { goto l209 } } l210: if !p.rules[ruleSpnl]() { goto l209 } l212: { position213, thunkPosition213 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l213 } goto l212 l213: position, thunkPosition = position213, thunkPosition213 } if !matchChar('>') { goto l209 } return true l209: position, thunkPosition = position0, thunkPosition0 return false }, /* 37 HtmlBlockCloseCenter <- ('<' Spnl '/' ('center' / 'CENTER') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l214 } if !p.rules[ruleSpnl]() { goto l214 } if !matchChar('/') { goto l214 } { position215, thunkPosition215 := position, thunkPosition if !matchString("center") { goto l216 } goto l215 l216: position, thunkPosition = position215, thunkPosition215 if !matchString("CENTER") { goto l214 } } l215: if !p.rules[ruleSpnl]() { goto l214 } if !matchChar('>') { goto l214 } return true l214: position, thunkPosition = position0, thunkPosition0 return false }, /* 38 HtmlBlockCenter <- (HtmlBlockOpenCenter (HtmlBlockCenter / (!HtmlBlockCloseCenter .))* HtmlBlockCloseCenter) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenCenter]() { goto l217 } l218: { position219, thunkPosition219 := position, thunkPosition { position220, thunkPosition220 := position, thunkPosition if !p.rules[ruleHtmlBlockCenter]() { goto l221 } goto l220 l221: position, thunkPosition = position220, thunkPosition220 { position222, thunkPosition222 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseCenter]() { goto l222 } goto l219 l222: position, thunkPosition = position222, thunkPosition222 } if !matchDot() { goto l219 } } l220: goto l218 l219: position, thunkPosition = position219, thunkPosition219 } if !p.rules[ruleHtmlBlockCloseCenter]() { goto l217 } return true l217: position, thunkPosition = position0, thunkPosition0 return false }, /* 39 HtmlBlockOpenDir <- ('<' Spnl ('dir' / 'DIR') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l223 } if !p.rules[ruleSpnl]() { goto l223 } { position224, thunkPosition224 := position, thunkPosition if !matchString("dir") { goto l225 } goto l224 l225: position, thunkPosition = position224, thunkPosition224 if !matchString("DIR") { goto l223 } } l224: if !p.rules[ruleSpnl]() { goto l223 } l226: { position227, thunkPosition227 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l227 } goto l226 l227: position, thunkPosition = position227, thunkPosition227 } if !matchChar('>') { goto l223 } return true l223: position, thunkPosition = position0, thunkPosition0 return false }, /* 40 HtmlBlockCloseDir <- ('<' Spnl '/' ('dir' / 'DIR') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l228 } if !p.rules[ruleSpnl]() { goto l228 } if !matchChar('/') { goto l228 } { position229, thunkPosition229 := position, thunkPosition if !matchString("dir") { goto l230 } goto l229 l230: position, thunkPosition = position229, thunkPosition229 if !matchString("DIR") { goto l228 } } l229: if !p.rules[ruleSpnl]() { goto l228 } if !matchChar('>') { goto l228 } return true l228: position, thunkPosition = position0, thunkPosition0 return false }, /* 41 HtmlBlockDir <- (HtmlBlockOpenDir (HtmlBlockDir / (!HtmlBlockCloseDir .))* HtmlBlockCloseDir) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenDir]() { goto l231 } l232: { position233, thunkPosition233 := position, thunkPosition { position234, thunkPosition234 := position, thunkPosition if !p.rules[ruleHtmlBlockDir]() { goto l235 } goto l234 l235: position, thunkPosition = position234, thunkPosition234 { position236, thunkPosition236 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseDir]() { goto l236 } goto l233 l236: position, thunkPosition = position236, thunkPosition236 } if !matchDot() { goto l233 } } l234: goto l232 l233: position, thunkPosition = position233, thunkPosition233 } if !p.rules[ruleHtmlBlockCloseDir]() { goto l231 } return true l231: position, thunkPosition = position0, thunkPosition0 return false }, /* 42 HtmlBlockOpenDiv <- ('<' Spnl ('div' / 'DIV') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l237 } if !p.rules[ruleSpnl]() { goto l237 } { position238, thunkPosition238 := position, thunkPosition if !matchString("div") { goto l239 } goto l238 l239: position, thunkPosition = position238, thunkPosition238 if !matchString("DIV") { goto l237 } } l238: if !p.rules[ruleSpnl]() { goto l237 } l240: { position241, thunkPosition241 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l241 } goto l240 l241: position, thunkPosition = position241, thunkPosition241 } if !matchChar('>') { goto l237 } return true l237: position, thunkPosition = position0, thunkPosition0 return false }, /* 43 HtmlBlockCloseDiv <- ('<' Spnl '/' ('div' / 'DIV') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l242 } if !p.rules[ruleSpnl]() { goto l242 } if !matchChar('/') { goto l242 } { position243, thunkPosition243 := position, thunkPosition if !matchString("div") { goto l244 } goto l243 l244: position, thunkPosition = position243, thunkPosition243 if !matchString("DIV") { goto l242 } } l243: if !p.rules[ruleSpnl]() { goto l242 } if !matchChar('>') { goto l242 } return true l242: position, thunkPosition = position0, thunkPosition0 return false }, /* 44 HtmlBlockDiv <- (HtmlBlockOpenDiv (HtmlBlockDiv / (!HtmlBlockCloseDiv .))* HtmlBlockCloseDiv) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenDiv]() { goto l245 } l246: { position247, thunkPosition247 := position, thunkPosition { position248, thunkPosition248 := position, thunkPosition if !p.rules[ruleHtmlBlockDiv]() { goto l249 } goto l248 l249: position, thunkPosition = position248, thunkPosition248 { position250, thunkPosition250 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseDiv]() { goto l250 } goto l247 l250: position, thunkPosition = position250, thunkPosition250 } if !matchDot() { goto l247 } } l248: goto l246 l247: position, thunkPosition = position247, thunkPosition247 } if !p.rules[ruleHtmlBlockCloseDiv]() { goto l245 } return true l245: position, thunkPosition = position0, thunkPosition0 return false }, /* 45 HtmlBlockOpenDl <- ('<' Spnl ('dl' / 'DL') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l251 } if !p.rules[ruleSpnl]() { goto l251 } { position252, thunkPosition252 := position, thunkPosition if !matchString("dl") { goto l253 } goto l252 l253: position, thunkPosition = position252, thunkPosition252 if !matchString("DL") { goto l251 } } l252: if !p.rules[ruleSpnl]() { goto l251 } l254: { position255, thunkPosition255 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l255 } goto l254 l255: position, thunkPosition = position255, thunkPosition255 } if !matchChar('>') { goto l251 } return true l251: position, thunkPosition = position0, thunkPosition0 return false }, /* 46 HtmlBlockCloseDl <- ('<' Spnl '/' ('dl' / 'DL') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l256 } if !p.rules[ruleSpnl]() { goto l256 } if !matchChar('/') { goto l256 } { position257, thunkPosition257 := position, thunkPosition if !matchString("dl") { goto l258 } goto l257 l258: position, thunkPosition = position257, thunkPosition257 if !matchString("DL") { goto l256 } } l257: if !p.rules[ruleSpnl]() { goto l256 } if !matchChar('>') { goto l256 } return true l256: position, thunkPosition = position0, thunkPosition0 return false }, /* 47 HtmlBlockDl <- (HtmlBlockOpenDl (HtmlBlockDl / (!HtmlBlockCloseDl .))* HtmlBlockCloseDl) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenDl]() { goto l259 } l260: { position261, thunkPosition261 := position, thunkPosition { position262, thunkPosition262 := position, thunkPosition if !p.rules[ruleHtmlBlockDl]() { goto l263 } goto l262 l263: position, thunkPosition = position262, thunkPosition262 { position264, thunkPosition264 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseDl]() { goto l264 } goto l261 l264: position, thunkPosition = position264, thunkPosition264 } if !matchDot() { goto l261 } } l262: goto l260 l261: position, thunkPosition = position261, thunkPosition261 } if !p.rules[ruleHtmlBlockCloseDl]() { goto l259 } return true l259: position, thunkPosition = position0, thunkPosition0 return false }, /* 48 HtmlBlockOpenFieldset <- ('<' Spnl ('fieldset' / 'FIELDSET') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l265 } if !p.rules[ruleSpnl]() { goto l265 } { position266, thunkPosition266 := position, thunkPosition if !matchString("fieldset") { goto l267 } goto l266 l267: position, thunkPosition = position266, thunkPosition266 if !matchString("FIELDSET") { goto l265 } } l266: if !p.rules[ruleSpnl]() { goto l265 } l268: { position269, thunkPosition269 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l269 } goto l268 l269: position, thunkPosition = position269, thunkPosition269 } if !matchChar('>') { goto l265 } return true l265: position, thunkPosition = position0, thunkPosition0 return false }, /* 49 HtmlBlockCloseFieldset <- ('<' Spnl '/' ('fieldset' / 'FIELDSET') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l270 } if !p.rules[ruleSpnl]() { goto l270 } if !matchChar('/') { goto l270 } { position271, thunkPosition271 := position, thunkPosition if !matchString("fieldset") { goto l272 } goto l271 l272: position, thunkPosition = position271, thunkPosition271 if !matchString("FIELDSET") { goto l270 } } l271: if !p.rules[ruleSpnl]() { goto l270 } if !matchChar('>') { goto l270 } return true l270: position, thunkPosition = position0, thunkPosition0 return false }, /* 50 HtmlBlockFieldset <- (HtmlBlockOpenFieldset (HtmlBlockFieldset / (!HtmlBlockCloseFieldset .))* HtmlBlockCloseFieldset) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenFieldset]() { goto l273 } l274: { position275, thunkPosition275 := position, thunkPosition { position276, thunkPosition276 := position, thunkPosition if !p.rules[ruleHtmlBlockFieldset]() { goto l277 } goto l276 l277: position, thunkPosition = position276, thunkPosition276 { position278, thunkPosition278 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseFieldset]() { goto l278 } goto l275 l278: position, thunkPosition = position278, thunkPosition278 } if !matchDot() { goto l275 } } l276: goto l274 l275: position, thunkPosition = position275, thunkPosition275 } if !p.rules[ruleHtmlBlockCloseFieldset]() { goto l273 } return true l273: position, thunkPosition = position0, thunkPosition0 return false }, /* 51 HtmlBlockOpenForm <- ('<' Spnl ('form' / 'FORM') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l279 } if !p.rules[ruleSpnl]() { goto l279 } { position280, thunkPosition280 := position, thunkPosition if !matchString("form") { goto l281 } goto l280 l281: position, thunkPosition = position280, thunkPosition280 if !matchString("FORM") { goto l279 } } l280: if !p.rules[ruleSpnl]() { goto l279 } l282: { position283, thunkPosition283 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l283 } goto l282 l283: position, thunkPosition = position283, thunkPosition283 } if !matchChar('>') { goto l279 } return true l279: position, thunkPosition = position0, thunkPosition0 return false }, /* 52 HtmlBlockCloseForm <- ('<' Spnl '/' ('form' / 'FORM') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l284 } if !p.rules[ruleSpnl]() { goto l284 } if !matchChar('/') { goto l284 } { position285, thunkPosition285 := position, thunkPosition if !matchString("form") { goto l286 } goto l285 l286: position, thunkPosition = position285, thunkPosition285 if !matchString("FORM") { goto l284 } } l285: if !p.rules[ruleSpnl]() { goto l284 } if !matchChar('>') { goto l284 } return true l284: position, thunkPosition = position0, thunkPosition0 return false }, /* 53 HtmlBlockForm <- (HtmlBlockOpenForm (HtmlBlockForm / (!HtmlBlockCloseForm .))* HtmlBlockCloseForm) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenForm]() { goto l287 } l288: { position289, thunkPosition289 := position, thunkPosition { position290, thunkPosition290 := position, thunkPosition if !p.rules[ruleHtmlBlockForm]() { goto l291 } goto l290 l291: position, thunkPosition = position290, thunkPosition290 { position292, thunkPosition292 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseForm]() { goto l292 } goto l289 l292: position, thunkPosition = position292, thunkPosition292 } if !matchDot() { goto l289 } } l290: goto l288 l289: position, thunkPosition = position289, thunkPosition289 } if !p.rules[ruleHtmlBlockCloseForm]() { goto l287 } return true l287: position, thunkPosition = position0, thunkPosition0 return false }, /* 54 HtmlBlockOpenH1 <- ('<' Spnl ('h1' / 'H1') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l293 } if !p.rules[ruleSpnl]() { goto l293 } { position294, thunkPosition294 := position, thunkPosition if !matchString("h1") { goto l295 } goto l294 l295: position, thunkPosition = position294, thunkPosition294 if !matchString("H1") { goto l293 } } l294: if !p.rules[ruleSpnl]() { goto l293 } l296: { position297, thunkPosition297 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l297 } goto l296 l297: position, thunkPosition = position297, thunkPosition297 } if !matchChar('>') { goto l293 } return true l293: position, thunkPosition = position0, thunkPosition0 return false }, /* 55 HtmlBlockCloseH1 <- ('<' Spnl '/' ('h1' / 'H1') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l298 } if !p.rules[ruleSpnl]() { goto l298 } if !matchChar('/') { goto l298 } { position299, thunkPosition299 := position, thunkPosition if !matchString("h1") { goto l300 } goto l299 l300: position, thunkPosition = position299, thunkPosition299 if !matchString("H1") { goto l298 } } l299: if !p.rules[ruleSpnl]() { goto l298 } if !matchChar('>') { goto l298 } return true l298: position, thunkPosition = position0, thunkPosition0 return false }, /* 56 HtmlBlockH1 <- (HtmlBlockOpenH1 (HtmlBlockH1 / (!HtmlBlockCloseH1 .))* HtmlBlockCloseH1) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenH1]() { goto l301 } l302: { position303, thunkPosition303 := position, thunkPosition { position304, thunkPosition304 := position, thunkPosition if !p.rules[ruleHtmlBlockH1]() { goto l305 } goto l304 l305: position, thunkPosition = position304, thunkPosition304 { position306, thunkPosition306 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseH1]() { goto l306 } goto l303 l306: position, thunkPosition = position306, thunkPosition306 } if !matchDot() { goto l303 } } l304: goto l302 l303: position, thunkPosition = position303, thunkPosition303 } if !p.rules[ruleHtmlBlockCloseH1]() { goto l301 } return true l301: position, thunkPosition = position0, thunkPosition0 return false }, /* 57 HtmlBlockOpenH2 <- ('<' Spnl ('h2' / 'H2') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l307 } if !p.rules[ruleSpnl]() { goto l307 } { position308, thunkPosition308 := position, thunkPosition if !matchString("h2") { goto l309 } goto l308 l309: position, thunkPosition = position308, thunkPosition308 if !matchString("H2") { goto l307 } } l308: if !p.rules[ruleSpnl]() { goto l307 } l310: { position311, thunkPosition311 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l311 } goto l310 l311: position, thunkPosition = position311, thunkPosition311 } if !matchChar('>') { goto l307 } return true l307: position, thunkPosition = position0, thunkPosition0 return false }, /* 58 HtmlBlockCloseH2 <- ('<' Spnl '/' ('h2' / 'H2') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l312 } if !p.rules[ruleSpnl]() { goto l312 } if !matchChar('/') { goto l312 } { position313, thunkPosition313 := position, thunkPosition if !matchString("h2") { goto l314 } goto l313 l314: position, thunkPosition = position313, thunkPosition313 if !matchString("H2") { goto l312 } } l313: if !p.rules[ruleSpnl]() { goto l312 } if !matchChar('>') { goto l312 } return true l312: position, thunkPosition = position0, thunkPosition0 return false }, /* 59 HtmlBlockH2 <- (HtmlBlockOpenH2 (HtmlBlockH2 / (!HtmlBlockCloseH2 .))* HtmlBlockCloseH2) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenH2]() { goto l315 } l316: { position317, thunkPosition317 := position, thunkPosition { position318, thunkPosition318 := position, thunkPosition if !p.rules[ruleHtmlBlockH2]() { goto l319 } goto l318 l319: position, thunkPosition = position318, thunkPosition318 { position320, thunkPosition320 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseH2]() { goto l320 } goto l317 l320: position, thunkPosition = position320, thunkPosition320 } if !matchDot() { goto l317 } } l318: goto l316 l317: position, thunkPosition = position317, thunkPosition317 } if !p.rules[ruleHtmlBlockCloseH2]() { goto l315 } return true l315: position, thunkPosition = position0, thunkPosition0 return false }, /* 60 HtmlBlockOpenH3 <- ('<' Spnl ('h3' / 'H3') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l321 } if !p.rules[ruleSpnl]() { goto l321 } { position322, thunkPosition322 := position, thunkPosition if !matchString("h3") { goto l323 } goto l322 l323: position, thunkPosition = position322, thunkPosition322 if !matchString("H3") { goto l321 } } l322: if !p.rules[ruleSpnl]() { goto l321 } l324: { position325, thunkPosition325 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l325 } goto l324 l325: position, thunkPosition = position325, thunkPosition325 } if !matchChar('>') { goto l321 } return true l321: position, thunkPosition = position0, thunkPosition0 return false }, /* 61 HtmlBlockCloseH3 <- ('<' Spnl '/' ('h3' / 'H3') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l326 } if !p.rules[ruleSpnl]() { goto l326 } if !matchChar('/') { goto l326 } { position327, thunkPosition327 := position, thunkPosition if !matchString("h3") { goto l328 } goto l327 l328: position, thunkPosition = position327, thunkPosition327 if !matchString("H3") { goto l326 } } l327: if !p.rules[ruleSpnl]() { goto l326 } if !matchChar('>') { goto l326 } return true l326: position, thunkPosition = position0, thunkPosition0 return false }, /* 62 HtmlBlockH3 <- (HtmlBlockOpenH3 (HtmlBlockH3 / (!HtmlBlockCloseH3 .))* HtmlBlockCloseH3) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenH3]() { goto l329 } l330: { position331, thunkPosition331 := position, thunkPosition { position332, thunkPosition332 := position, thunkPosition if !p.rules[ruleHtmlBlockH3]() { goto l333 } goto l332 l333: position, thunkPosition = position332, thunkPosition332 { position334, thunkPosition334 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseH3]() { goto l334 } goto l331 l334: position, thunkPosition = position334, thunkPosition334 } if !matchDot() { goto l331 } } l332: goto l330 l331: position, thunkPosition = position331, thunkPosition331 } if !p.rules[ruleHtmlBlockCloseH3]() { goto l329 } return true l329: position, thunkPosition = position0, thunkPosition0 return false }, /* 63 HtmlBlockOpenH4 <- ('<' Spnl ('h4' / 'H4') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l335 } if !p.rules[ruleSpnl]() { goto l335 } { position336, thunkPosition336 := position, thunkPosition if !matchString("h4") { goto l337 } goto l336 l337: position, thunkPosition = position336, thunkPosition336 if !matchString("H4") { goto l335 } } l336: if !p.rules[ruleSpnl]() { goto l335 } l338: { position339, thunkPosition339 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l339 } goto l338 l339: position, thunkPosition = position339, thunkPosition339 } if !matchChar('>') { goto l335 } return true l335: position, thunkPosition = position0, thunkPosition0 return false }, /* 64 HtmlBlockCloseH4 <- ('<' Spnl '/' ('h4' / 'H4') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l340 } if !p.rules[ruleSpnl]() { goto l340 } if !matchChar('/') { goto l340 } { position341, thunkPosition341 := position, thunkPosition if !matchString("h4") { goto l342 } goto l341 l342: position, thunkPosition = position341, thunkPosition341 if !matchString("H4") { goto l340 } } l341: if !p.rules[ruleSpnl]() { goto l340 } if !matchChar('>') { goto l340 } return true l340: position, thunkPosition = position0, thunkPosition0 return false }, /* 65 HtmlBlockH4 <- (HtmlBlockOpenH4 (HtmlBlockH4 / (!HtmlBlockCloseH4 .))* HtmlBlockCloseH4) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenH4]() { goto l343 } l344: { position345, thunkPosition345 := position, thunkPosition { position346, thunkPosition346 := position, thunkPosition if !p.rules[ruleHtmlBlockH4]() { goto l347 } goto l346 l347: position, thunkPosition = position346, thunkPosition346 { position348, thunkPosition348 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseH4]() { goto l348 } goto l345 l348: position, thunkPosition = position348, thunkPosition348 } if !matchDot() { goto l345 } } l346: goto l344 l345: position, thunkPosition = position345, thunkPosition345 } if !p.rules[ruleHtmlBlockCloseH4]() { goto l343 } return true l343: position, thunkPosition = position0, thunkPosition0 return false }, /* 66 HtmlBlockOpenH5 <- ('<' Spnl ('h5' / 'H5') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l349 } if !p.rules[ruleSpnl]() { goto l349 } { position350, thunkPosition350 := position, thunkPosition if !matchString("h5") { goto l351 } goto l350 l351: position, thunkPosition = position350, thunkPosition350 if !matchString("H5") { goto l349 } } l350: if !p.rules[ruleSpnl]() { goto l349 } l352: { position353, thunkPosition353 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l353 } goto l352 l353: position, thunkPosition = position353, thunkPosition353 } if !matchChar('>') { goto l349 } return true l349: position, thunkPosition = position0, thunkPosition0 return false }, /* 67 HtmlBlockCloseH5 <- ('<' Spnl '/' ('h5' / 'H5') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l354 } if !p.rules[ruleSpnl]() { goto l354 } if !matchChar('/') { goto l354 } { position355, thunkPosition355 := position, thunkPosition if !matchString("h5") { goto l356 } goto l355 l356: position, thunkPosition = position355, thunkPosition355 if !matchString("H5") { goto l354 } } l355: if !p.rules[ruleSpnl]() { goto l354 } if !matchChar('>') { goto l354 } return true l354: position, thunkPosition = position0, thunkPosition0 return false }, /* 68 HtmlBlockH5 <- (HtmlBlockOpenH5 (HtmlBlockH5 / (!HtmlBlockCloseH5 .))* HtmlBlockCloseH5) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenH5]() { goto l357 } l358: { position359, thunkPosition359 := position, thunkPosition { position360, thunkPosition360 := position, thunkPosition if !p.rules[ruleHtmlBlockH5]() { goto l361 } goto l360 l361: position, thunkPosition = position360, thunkPosition360 { position362, thunkPosition362 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseH5]() { goto l362 } goto l359 l362: position, thunkPosition = position362, thunkPosition362 } if !matchDot() { goto l359 } } l360: goto l358 l359: position, thunkPosition = position359, thunkPosition359 } if !p.rules[ruleHtmlBlockCloseH5]() { goto l357 } return true l357: position, thunkPosition = position0, thunkPosition0 return false }, /* 69 HtmlBlockOpenH6 <- ('<' Spnl ('h6' / 'H6') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l363 } if !p.rules[ruleSpnl]() { goto l363 } { position364, thunkPosition364 := position, thunkPosition if !matchString("h6") { goto l365 } goto l364 l365: position, thunkPosition = position364, thunkPosition364 if !matchString("H6") { goto l363 } } l364: if !p.rules[ruleSpnl]() { goto l363 } l366: { position367, thunkPosition367 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l367 } goto l366 l367: position, thunkPosition = position367, thunkPosition367 } if !matchChar('>') { goto l363 } return true l363: position, thunkPosition = position0, thunkPosition0 return false }, /* 70 HtmlBlockCloseH6 <- ('<' Spnl '/' ('h6' / 'H6') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l368 } if !p.rules[ruleSpnl]() { goto l368 } if !matchChar('/') { goto l368 } { position369, thunkPosition369 := position, thunkPosition if !matchString("h6") { goto l370 } goto l369 l370: position, thunkPosition = position369, thunkPosition369 if !matchString("H6") { goto l368 } } l369: if !p.rules[ruleSpnl]() { goto l368 } if !matchChar('>') { goto l368 } return true l368: position, thunkPosition = position0, thunkPosition0 return false }, /* 71 HtmlBlockH6 <- (HtmlBlockOpenH6 (HtmlBlockH6 / (!HtmlBlockCloseH6 .))* HtmlBlockCloseH6) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenH6]() { goto l371 } l372: { position373, thunkPosition373 := position, thunkPosition { position374, thunkPosition374 := position, thunkPosition if !p.rules[ruleHtmlBlockH6]() { goto l375 } goto l374 l375: position, thunkPosition = position374, thunkPosition374 { position376, thunkPosition376 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseH6]() { goto l376 } goto l373 l376: position, thunkPosition = position376, thunkPosition376 } if !matchDot() { goto l373 } } l374: goto l372 l373: position, thunkPosition = position373, thunkPosition373 } if !p.rules[ruleHtmlBlockCloseH6]() { goto l371 } return true l371: position, thunkPosition = position0, thunkPosition0 return false }, /* 72 HtmlBlockOpenMenu <- ('<' Spnl ('menu' / 'MENU') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l377 } if !p.rules[ruleSpnl]() { goto l377 } { position378, thunkPosition378 := position, thunkPosition if !matchString("menu") { goto l379 } goto l378 l379: position, thunkPosition = position378, thunkPosition378 if !matchString("MENU") { goto l377 } } l378: if !p.rules[ruleSpnl]() { goto l377 } l380: { position381, thunkPosition381 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l381 } goto l380 l381: position, thunkPosition = position381, thunkPosition381 } if !matchChar('>') { goto l377 } return true l377: position, thunkPosition = position0, thunkPosition0 return false }, /* 73 HtmlBlockCloseMenu <- ('<' Spnl '/' ('menu' / 'MENU') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l382 } if !p.rules[ruleSpnl]() { goto l382 } if !matchChar('/') { goto l382 } { position383, thunkPosition383 := position, thunkPosition if !matchString("menu") { goto l384 } goto l383 l384: position, thunkPosition = position383, thunkPosition383 if !matchString("MENU") { goto l382 } } l383: if !p.rules[ruleSpnl]() { goto l382 } if !matchChar('>') { goto l382 } return true l382: position, thunkPosition = position0, thunkPosition0 return false }, /* 74 HtmlBlockMenu <- (HtmlBlockOpenMenu (HtmlBlockMenu / (!HtmlBlockCloseMenu .))* HtmlBlockCloseMenu) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenMenu]() { goto l385 } l386: { position387, thunkPosition387 := position, thunkPosition { position388, thunkPosition388 := position, thunkPosition if !p.rules[ruleHtmlBlockMenu]() { goto l389 } goto l388 l389: position, thunkPosition = position388, thunkPosition388 { position390, thunkPosition390 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseMenu]() { goto l390 } goto l387 l390: position, thunkPosition = position390, thunkPosition390 } if !matchDot() { goto l387 } } l388: goto l386 l387: position, thunkPosition = position387, thunkPosition387 } if !p.rules[ruleHtmlBlockCloseMenu]() { goto l385 } return true l385: position, thunkPosition = position0, thunkPosition0 return false }, /* 75 HtmlBlockOpenNoframes <- ('<' Spnl ('noframes' / 'NOFRAMES') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l391 } if !p.rules[ruleSpnl]() { goto l391 } { position392, thunkPosition392 := position, thunkPosition if !matchString("noframes") { goto l393 } goto l392 l393: position, thunkPosition = position392, thunkPosition392 if !matchString("NOFRAMES") { goto l391 } } l392: if !p.rules[ruleSpnl]() { goto l391 } l394: { position395, thunkPosition395 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l395 } goto l394 l395: position, thunkPosition = position395, thunkPosition395 } if !matchChar('>') { goto l391 } return true l391: position, thunkPosition = position0, thunkPosition0 return false }, /* 76 HtmlBlockCloseNoframes <- ('<' Spnl '/' ('noframes' / 'NOFRAMES') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l396 } if !p.rules[ruleSpnl]() { goto l396 } if !matchChar('/') { goto l396 } { position397, thunkPosition397 := position, thunkPosition if !matchString("noframes") { goto l398 } goto l397 l398: position, thunkPosition = position397, thunkPosition397 if !matchString("NOFRAMES") { goto l396 } } l397: if !p.rules[ruleSpnl]() { goto l396 } if !matchChar('>') { goto l396 } return true l396: position, thunkPosition = position0, thunkPosition0 return false }, /* 77 HtmlBlockNoframes <- (HtmlBlockOpenNoframes (HtmlBlockNoframes / (!HtmlBlockCloseNoframes .))* HtmlBlockCloseNoframes) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenNoframes]() { goto l399 } l400: { position401, thunkPosition401 := position, thunkPosition { position402, thunkPosition402 := position, thunkPosition if !p.rules[ruleHtmlBlockNoframes]() { goto l403 } goto l402 l403: position, thunkPosition = position402, thunkPosition402 { position404, thunkPosition404 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseNoframes]() { goto l404 } goto l401 l404: position, thunkPosition = position404, thunkPosition404 } if !matchDot() { goto l401 } } l402: goto l400 l401: position, thunkPosition = position401, thunkPosition401 } if !p.rules[ruleHtmlBlockCloseNoframes]() { goto l399 } return true l399: position, thunkPosition = position0, thunkPosition0 return false }, /* 78 HtmlBlockOpenNoscript <- ('<' Spnl ('noscript' / 'NOSCRIPT') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l405 } if !p.rules[ruleSpnl]() { goto l405 } { position406, thunkPosition406 := position, thunkPosition if !matchString("noscript") { goto l407 } goto l406 l407: position, thunkPosition = position406, thunkPosition406 if !matchString("NOSCRIPT") { goto l405 } } l406: if !p.rules[ruleSpnl]() { goto l405 } l408: { position409, thunkPosition409 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l409 } goto l408 l409: position, thunkPosition = position409, thunkPosition409 } if !matchChar('>') { goto l405 } return true l405: position, thunkPosition = position0, thunkPosition0 return false }, /* 79 HtmlBlockCloseNoscript <- ('<' Spnl '/' ('noscript' / 'NOSCRIPT') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l410 } if !p.rules[ruleSpnl]() { goto l410 } if !matchChar('/') { goto l410 } { position411, thunkPosition411 := position, thunkPosition if !matchString("noscript") { goto l412 } goto l411 l412: position, thunkPosition = position411, thunkPosition411 if !matchString("NOSCRIPT") { goto l410 } } l411: if !p.rules[ruleSpnl]() { goto l410 } if !matchChar('>') { goto l410 } return true l410: position, thunkPosition = position0, thunkPosition0 return false }, /* 80 HtmlBlockNoscript <- (HtmlBlockOpenNoscript (HtmlBlockNoscript / (!HtmlBlockCloseNoscript .))* HtmlBlockCloseNoscript) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenNoscript]() { goto l413 } l414: { position415, thunkPosition415 := position, thunkPosition { position416, thunkPosition416 := position, thunkPosition if !p.rules[ruleHtmlBlockNoscript]() { goto l417 } goto l416 l417: position, thunkPosition = position416, thunkPosition416 { position418, thunkPosition418 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseNoscript]() { goto l418 } goto l415 l418: position, thunkPosition = position418, thunkPosition418 } if !matchDot() { goto l415 } } l416: goto l414 l415: position, thunkPosition = position415, thunkPosition415 } if !p.rules[ruleHtmlBlockCloseNoscript]() { goto l413 } return true l413: position, thunkPosition = position0, thunkPosition0 return false }, /* 81 HtmlBlockOpenOl <- ('<' Spnl ('ol' / 'OL') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l419 } if !p.rules[ruleSpnl]() { goto l419 } { position420, thunkPosition420 := position, thunkPosition if !matchString("ol") { goto l421 } goto l420 l421: position, thunkPosition = position420, thunkPosition420 if !matchString("OL") { goto l419 } } l420: if !p.rules[ruleSpnl]() { goto l419 } l422: { position423, thunkPosition423 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l423 } goto l422 l423: position, thunkPosition = position423, thunkPosition423 } if !matchChar('>') { goto l419 } return true l419: position, thunkPosition = position0, thunkPosition0 return false }, /* 82 HtmlBlockCloseOl <- ('<' Spnl '/' ('ol' / 'OL') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l424 } if !p.rules[ruleSpnl]() { goto l424 } if !matchChar('/') { goto l424 } { position425, thunkPosition425 := position, thunkPosition if !matchString("ol") { goto l426 } goto l425 l426: position, thunkPosition = position425, thunkPosition425 if !matchString("OL") { goto l424 } } l425: if !p.rules[ruleSpnl]() { goto l424 } if !matchChar('>') { goto l424 } return true l424: position, thunkPosition = position0, thunkPosition0 return false }, /* 83 HtmlBlockOl <- (HtmlBlockOpenOl (HtmlBlockOl / (!HtmlBlockCloseOl .))* HtmlBlockCloseOl) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenOl]() { goto l427 } l428: { position429, thunkPosition429 := position, thunkPosition { position430, thunkPosition430 := position, thunkPosition if !p.rules[ruleHtmlBlockOl]() { goto l431 } goto l430 l431: position, thunkPosition = position430, thunkPosition430 { position432, thunkPosition432 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseOl]() { goto l432 } goto l429 l432: position, thunkPosition = position432, thunkPosition432 } if !matchDot() { goto l429 } } l430: goto l428 l429: position, thunkPosition = position429, thunkPosition429 } if !p.rules[ruleHtmlBlockCloseOl]() { goto l427 } return true l427: position, thunkPosition = position0, thunkPosition0 return false }, /* 84 HtmlBlockOpenP <- ('<' Spnl ('p' / 'P') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l433 } if !p.rules[ruleSpnl]() { goto l433 } { position434, thunkPosition434 := position, thunkPosition if !matchChar('p') { goto l435 } goto l434 l435: position, thunkPosition = position434, thunkPosition434 if !matchChar('P') { goto l433 } } l434: if !p.rules[ruleSpnl]() { goto l433 } l436: { position437, thunkPosition437 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l437 } goto l436 l437: position, thunkPosition = position437, thunkPosition437 } if !matchChar('>') { goto l433 } return true l433: position, thunkPosition = position0, thunkPosition0 return false }, /* 85 HtmlBlockCloseP <- ('<' Spnl '/' ('p' / 'P') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l438 } if !p.rules[ruleSpnl]() { goto l438 } if !matchChar('/') { goto l438 } { position439, thunkPosition439 := position, thunkPosition if !matchChar('p') { goto l440 } goto l439 l440: position, thunkPosition = position439, thunkPosition439 if !matchChar('P') { goto l438 } } l439: if !p.rules[ruleSpnl]() { goto l438 } if !matchChar('>') { goto l438 } return true l438: position, thunkPosition = position0, thunkPosition0 return false }, /* 86 HtmlBlockP <- (HtmlBlockOpenP (HtmlBlockP / (!HtmlBlockCloseP .))* HtmlBlockCloseP) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenP]() { goto l441 } l442: { position443, thunkPosition443 := position, thunkPosition { position444, thunkPosition444 := position, thunkPosition if !p.rules[ruleHtmlBlockP]() { goto l445 } goto l444 l445: position, thunkPosition = position444, thunkPosition444 { position446, thunkPosition446 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseP]() { goto l446 } goto l443 l446: position, thunkPosition = position446, thunkPosition446 } if !matchDot() { goto l443 } } l444: goto l442 l443: position, thunkPosition = position443, thunkPosition443 } if !p.rules[ruleHtmlBlockCloseP]() { goto l441 } return true l441: position, thunkPosition = position0, thunkPosition0 return false }, /* 87 HtmlBlockOpenPre <- ('<' Spnl ('pre' / 'PRE') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l447 } if !p.rules[ruleSpnl]() { goto l447 } { position448, thunkPosition448 := position, thunkPosition if !matchString("pre") { goto l449 } goto l448 l449: position, thunkPosition = position448, thunkPosition448 if !matchString("PRE") { goto l447 } } l448: if !p.rules[ruleSpnl]() { goto l447 } l450: { position451, thunkPosition451 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l451 } goto l450 l451: position, thunkPosition = position451, thunkPosition451 } if !matchChar('>') { goto l447 } return true l447: position, thunkPosition = position0, thunkPosition0 return false }, /* 88 HtmlBlockClosePre <- ('<' Spnl '/' ('pre' / 'PRE') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l452 } if !p.rules[ruleSpnl]() { goto l452 } if !matchChar('/') { goto l452 } { position453, thunkPosition453 := position, thunkPosition if !matchString("pre") { goto l454 } goto l453 l454: position, thunkPosition = position453, thunkPosition453 if !matchString("PRE") { goto l452 } } l453: if !p.rules[ruleSpnl]() { goto l452 } if !matchChar('>') { goto l452 } return true l452: position, thunkPosition = position0, thunkPosition0 return false }, /* 89 HtmlBlockPre <- (HtmlBlockOpenPre (HtmlBlockPre / (!HtmlBlockClosePre .))* HtmlBlockClosePre) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenPre]() { goto l455 } l456: { position457, thunkPosition457 := position, thunkPosition { position458, thunkPosition458 := position, thunkPosition if !p.rules[ruleHtmlBlockPre]() { goto l459 } goto l458 l459: position, thunkPosition = position458, thunkPosition458 { position460, thunkPosition460 := position, thunkPosition if !p.rules[ruleHtmlBlockClosePre]() { goto l460 } goto l457 l460: position, thunkPosition = position460, thunkPosition460 } if !matchDot() { goto l457 } } l458: goto l456 l457: position, thunkPosition = position457, thunkPosition457 } if !p.rules[ruleHtmlBlockClosePre]() { goto l455 } return true l455: position, thunkPosition = position0, thunkPosition0 return false }, /* 90 HtmlBlockOpenTable <- ('<' Spnl ('table' / 'TABLE') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l461 } if !p.rules[ruleSpnl]() { goto l461 } { position462, thunkPosition462 := position, thunkPosition if !matchString("table") { goto l463 } goto l462 l463: position, thunkPosition = position462, thunkPosition462 if !matchString("TABLE") { goto l461 } } l462: if !p.rules[ruleSpnl]() { goto l461 } l464: { position465, thunkPosition465 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l465 } goto l464 l465: position, thunkPosition = position465, thunkPosition465 } if !matchChar('>') { goto l461 } return true l461: position, thunkPosition = position0, thunkPosition0 return false }, /* 91 HtmlBlockCloseTable <- ('<' Spnl '/' ('table' / 'TABLE') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l466 } if !p.rules[ruleSpnl]() { goto l466 } if !matchChar('/') { goto l466 } { position467, thunkPosition467 := position, thunkPosition if !matchString("table") { goto l468 } goto l467 l468: position, thunkPosition = position467, thunkPosition467 if !matchString("TABLE") { goto l466 } } l467: if !p.rules[ruleSpnl]() { goto l466 } if !matchChar('>') { goto l466 } return true l466: position, thunkPosition = position0, thunkPosition0 return false }, /* 92 HtmlBlockTable <- (HtmlBlockOpenTable (HtmlBlockTable / (!HtmlBlockCloseTable .))* HtmlBlockCloseTable) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenTable]() { goto l469 } l470: { position471, thunkPosition471 := position, thunkPosition { position472, thunkPosition472 := position, thunkPosition if !p.rules[ruleHtmlBlockTable]() { goto l473 } goto l472 l473: position, thunkPosition = position472, thunkPosition472 { position474, thunkPosition474 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseTable]() { goto l474 } goto l471 l474: position, thunkPosition = position474, thunkPosition474 } if !matchDot() { goto l471 } } l472: goto l470 l471: position, thunkPosition = position471, thunkPosition471 } if !p.rules[ruleHtmlBlockCloseTable]() { goto l469 } return true l469: position, thunkPosition = position0, thunkPosition0 return false }, /* 93 HtmlBlockOpenUl <- ('<' Spnl ('ul' / 'UL') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l475 } if !p.rules[ruleSpnl]() { goto l475 } { position476, thunkPosition476 := position, thunkPosition if !matchString("ul") { goto l477 } goto l476 l477: position, thunkPosition = position476, thunkPosition476 if !matchString("UL") { goto l475 } } l476: if !p.rules[ruleSpnl]() { goto l475 } l478: { position479, thunkPosition479 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l479 } goto l478 l479: position, thunkPosition = position479, thunkPosition479 } if !matchChar('>') { goto l475 } return true l475: position, thunkPosition = position0, thunkPosition0 return false }, /* 94 HtmlBlockCloseUl <- ('<' Spnl '/' ('ul' / 'UL') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l480 } if !p.rules[ruleSpnl]() { goto l480 } if !matchChar('/') { goto l480 } { position481, thunkPosition481 := position, thunkPosition if !matchString("ul") { goto l482 } goto l481 l482: position, thunkPosition = position481, thunkPosition481 if !matchString("UL") { goto l480 } } l481: if !p.rules[ruleSpnl]() { goto l480 } if !matchChar('>') { goto l480 } return true l480: position, thunkPosition = position0, thunkPosition0 return false }, /* 95 HtmlBlockUl <- (HtmlBlockOpenUl (HtmlBlockUl / (!HtmlBlockCloseUl .))* HtmlBlockCloseUl) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenUl]() { goto l483 } l484: { position485, thunkPosition485 := position, thunkPosition { position486, thunkPosition486 := position, thunkPosition if !p.rules[ruleHtmlBlockUl]() { goto l487 } goto l486 l487: position, thunkPosition = position486, thunkPosition486 { position488, thunkPosition488 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseUl]() { goto l488 } goto l485 l488: position, thunkPosition = position488, thunkPosition488 } if !matchDot() { goto l485 } } l486: goto l484 l485: position, thunkPosition = position485, thunkPosition485 } if !p.rules[ruleHtmlBlockCloseUl]() { goto l483 } return true l483: position, thunkPosition = position0, thunkPosition0 return false }, /* 96 HtmlBlockOpenDd <- ('<' Spnl ('dd' / 'DD') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l489 } if !p.rules[ruleSpnl]() { goto l489 } { position490, thunkPosition490 := position, thunkPosition if !matchString("dd") { goto l491 } goto l490 l491: position, thunkPosition = position490, thunkPosition490 if !matchString("DD") { goto l489 } } l490: if !p.rules[ruleSpnl]() { goto l489 } l492: { position493, thunkPosition493 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l493 } goto l492 l493: position, thunkPosition = position493, thunkPosition493 } if !matchChar('>') { goto l489 } return true l489: position, thunkPosition = position0, thunkPosition0 return false }, /* 97 HtmlBlockCloseDd <- ('<' Spnl '/' ('dd' / 'DD') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l494 } if !p.rules[ruleSpnl]() { goto l494 } if !matchChar('/') { goto l494 } { position495, thunkPosition495 := position, thunkPosition if !matchString("dd") { goto l496 } goto l495 l496: position, thunkPosition = position495, thunkPosition495 if !matchString("DD") { goto l494 } } l495: if !p.rules[ruleSpnl]() { goto l494 } if !matchChar('>') { goto l494 } return true l494: position, thunkPosition = position0, thunkPosition0 return false }, /* 98 HtmlBlockDd <- (HtmlBlockOpenDd (HtmlBlockDd / (!HtmlBlockCloseDd .))* HtmlBlockCloseDd) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenDd]() { goto l497 } l498: { position499, thunkPosition499 := position, thunkPosition { position500, thunkPosition500 := position, thunkPosition if !p.rules[ruleHtmlBlockDd]() { goto l501 } goto l500 l501: position, thunkPosition = position500, thunkPosition500 { position502, thunkPosition502 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseDd]() { goto l502 } goto l499 l502: position, thunkPosition = position502, thunkPosition502 } if !matchDot() { goto l499 } } l500: goto l498 l499: position, thunkPosition = position499, thunkPosition499 } if !p.rules[ruleHtmlBlockCloseDd]() { goto l497 } return true l497: position, thunkPosition = position0, thunkPosition0 return false }, /* 99 HtmlBlockOpenDt <- ('<' Spnl ('dt' / 'DT') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l503 } if !p.rules[ruleSpnl]() { goto l503 } { position504, thunkPosition504 := position, thunkPosition if !matchString("dt") { goto l505 } goto l504 l505: position, thunkPosition = position504, thunkPosition504 if !matchString("DT") { goto l503 } } l504: if !p.rules[ruleSpnl]() { goto l503 } l506: { position507, thunkPosition507 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l507 } goto l506 l507: position, thunkPosition = position507, thunkPosition507 } if !matchChar('>') { goto l503 } return true l503: position, thunkPosition = position0, thunkPosition0 return false }, /* 100 HtmlBlockCloseDt <- ('<' Spnl '/' ('dt' / 'DT') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l508 } if !p.rules[ruleSpnl]() { goto l508 } if !matchChar('/') { goto l508 } { position509, thunkPosition509 := position, thunkPosition if !matchString("dt") { goto l510 } goto l509 l510: position, thunkPosition = position509, thunkPosition509 if !matchString("DT") { goto l508 } } l509: if !p.rules[ruleSpnl]() { goto l508 } if !matchChar('>') { goto l508 } return true l508: position, thunkPosition = position0, thunkPosition0 return false }, /* 101 HtmlBlockDt <- (HtmlBlockOpenDt (HtmlBlockDt / (!HtmlBlockCloseDt .))* HtmlBlockCloseDt) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenDt]() { goto l511 } l512: { position513, thunkPosition513 := position, thunkPosition { position514, thunkPosition514 := position, thunkPosition if !p.rules[ruleHtmlBlockDt]() { goto l515 } goto l514 l515: position, thunkPosition = position514, thunkPosition514 { position516, thunkPosition516 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseDt]() { goto l516 } goto l513 l516: position, thunkPosition = position516, thunkPosition516 } if !matchDot() { goto l513 } } l514: goto l512 l513: position, thunkPosition = position513, thunkPosition513 } if !p.rules[ruleHtmlBlockCloseDt]() { goto l511 } return true l511: position, thunkPosition = position0, thunkPosition0 return false }, /* 102 HtmlBlockOpenFrameset <- ('<' Spnl ('frameset' / 'FRAMESET') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l517 } if !p.rules[ruleSpnl]() { goto l517 } { position518, thunkPosition518 := position, thunkPosition if !matchString("frameset") { goto l519 } goto l518 l519: position, thunkPosition = position518, thunkPosition518 if !matchString("FRAMESET") { goto l517 } } l518: if !p.rules[ruleSpnl]() { goto l517 } l520: { position521, thunkPosition521 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l521 } goto l520 l521: position, thunkPosition = position521, thunkPosition521 } if !matchChar('>') { goto l517 } return true l517: position, thunkPosition = position0, thunkPosition0 return false }, /* 103 HtmlBlockCloseFrameset <- ('<' Spnl '/' ('frameset' / 'FRAMESET') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l522 } if !p.rules[ruleSpnl]() { goto l522 } if !matchChar('/') { goto l522 } { position523, thunkPosition523 := position, thunkPosition if !matchString("frameset") { goto l524 } goto l523 l524: position, thunkPosition = position523, thunkPosition523 if !matchString("FRAMESET") { goto l522 } } l523: if !p.rules[ruleSpnl]() { goto l522 } if !matchChar('>') { goto l522 } return true l522: position, thunkPosition = position0, thunkPosition0 return false }, /* 104 HtmlBlockFrameset <- (HtmlBlockOpenFrameset (HtmlBlockFrameset / (!HtmlBlockCloseFrameset .))* HtmlBlockCloseFrameset) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenFrameset]() { goto l525 } l526: { position527, thunkPosition527 := position, thunkPosition { position528, thunkPosition528 := position, thunkPosition if !p.rules[ruleHtmlBlockFrameset]() { goto l529 } goto l528 l529: position, thunkPosition = position528, thunkPosition528 { position530, thunkPosition530 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseFrameset]() { goto l530 } goto l527 l530: position, thunkPosition = position530, thunkPosition530 } if !matchDot() { goto l527 } } l528: goto l526 l527: position, thunkPosition = position527, thunkPosition527 } if !p.rules[ruleHtmlBlockCloseFrameset]() { goto l525 } return true l525: position, thunkPosition = position0, thunkPosition0 return false }, /* 105 HtmlBlockOpenLi <- ('<' Spnl ('li' / 'LI') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l531 } if !p.rules[ruleSpnl]() { goto l531 } { position532, thunkPosition532 := position, thunkPosition if !matchString("li") { goto l533 } goto l532 l533: position, thunkPosition = position532, thunkPosition532 if !matchString("LI") { goto l531 } } l532: if !p.rules[ruleSpnl]() { goto l531 } l534: { position535, thunkPosition535 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l535 } goto l534 l535: position, thunkPosition = position535, thunkPosition535 } if !matchChar('>') { goto l531 } return true l531: position, thunkPosition = position0, thunkPosition0 return false }, /* 106 HtmlBlockCloseLi <- ('<' Spnl '/' ('li' / 'LI') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l536 } if !p.rules[ruleSpnl]() { goto l536 } if !matchChar('/') { goto l536 } { position537, thunkPosition537 := position, thunkPosition if !matchString("li") { goto l538 } goto l537 l538: position, thunkPosition = position537, thunkPosition537 if !matchString("LI") { goto l536 } } l537: if !p.rules[ruleSpnl]() { goto l536 } if !matchChar('>') { goto l536 } return true l536: position, thunkPosition = position0, thunkPosition0 return false }, /* 107 HtmlBlockLi <- (HtmlBlockOpenLi (HtmlBlockLi / (!HtmlBlockCloseLi .))* HtmlBlockCloseLi) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenLi]() { goto l539 } l540: { position541, thunkPosition541 := position, thunkPosition { position542, thunkPosition542 := position, thunkPosition if !p.rules[ruleHtmlBlockLi]() { goto l543 } goto l542 l543: position, thunkPosition = position542, thunkPosition542 { position544, thunkPosition544 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseLi]() { goto l544 } goto l541 l544: position, thunkPosition = position544, thunkPosition544 } if !matchDot() { goto l541 } } l542: goto l540 l541: position, thunkPosition = position541, thunkPosition541 } if !p.rules[ruleHtmlBlockCloseLi]() { goto l539 } return true l539: position, thunkPosition = position0, thunkPosition0 return false }, /* 108 HtmlBlockOpenTbody <- ('<' Spnl ('tbody' / 'TBODY') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l545 } if !p.rules[ruleSpnl]() { goto l545 } { position546, thunkPosition546 := position, thunkPosition if !matchString("tbody") { goto l547 } goto l546 l547: position, thunkPosition = position546, thunkPosition546 if !matchString("TBODY") { goto l545 } } l546: if !p.rules[ruleSpnl]() { goto l545 } l548: { position549, thunkPosition549 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l549 } goto l548 l549: position, thunkPosition = position549, thunkPosition549 } if !matchChar('>') { goto l545 } return true l545: position, thunkPosition = position0, thunkPosition0 return false }, /* 109 HtmlBlockCloseTbody <- ('<' Spnl '/' ('tbody' / 'TBODY') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l550 } if !p.rules[ruleSpnl]() { goto l550 } if !matchChar('/') { goto l550 } { position551, thunkPosition551 := position, thunkPosition if !matchString("tbody") { goto l552 } goto l551 l552: position, thunkPosition = position551, thunkPosition551 if !matchString("TBODY") { goto l550 } } l551: if !p.rules[ruleSpnl]() { goto l550 } if !matchChar('>') { goto l550 } return true l550: position, thunkPosition = position0, thunkPosition0 return false }, /* 110 HtmlBlockTbody <- (HtmlBlockOpenTbody (HtmlBlockTbody / (!HtmlBlockCloseTbody .))* HtmlBlockCloseTbody) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenTbody]() { goto l553 } l554: { position555, thunkPosition555 := position, thunkPosition { position556, thunkPosition556 := position, thunkPosition if !p.rules[ruleHtmlBlockTbody]() { goto l557 } goto l556 l557: position, thunkPosition = position556, thunkPosition556 { position558, thunkPosition558 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseTbody]() { goto l558 } goto l555 l558: position, thunkPosition = position558, thunkPosition558 } if !matchDot() { goto l555 } } l556: goto l554 l555: position, thunkPosition = position555, thunkPosition555 } if !p.rules[ruleHtmlBlockCloseTbody]() { goto l553 } return true l553: position, thunkPosition = position0, thunkPosition0 return false }, /* 111 HtmlBlockOpenTd <- ('<' Spnl ('td' / 'TD') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l559 } if !p.rules[ruleSpnl]() { goto l559 } { position560, thunkPosition560 := position, thunkPosition if !matchString("td") { goto l561 } goto l560 l561: position, thunkPosition = position560, thunkPosition560 if !matchString("TD") { goto l559 } } l560: if !p.rules[ruleSpnl]() { goto l559 } l562: { position563, thunkPosition563 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l563 } goto l562 l563: position, thunkPosition = position563, thunkPosition563 } if !matchChar('>') { goto l559 } return true l559: position, thunkPosition = position0, thunkPosition0 return false }, /* 112 HtmlBlockCloseTd <- ('<' Spnl '/' ('td' / 'TD') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l564 } if !p.rules[ruleSpnl]() { goto l564 } if !matchChar('/') { goto l564 } { position565, thunkPosition565 := position, thunkPosition if !matchString("td") { goto l566 } goto l565 l566: position, thunkPosition = position565, thunkPosition565 if !matchString("TD") { goto l564 } } l565: if !p.rules[ruleSpnl]() { goto l564 } if !matchChar('>') { goto l564 } return true l564: position, thunkPosition = position0, thunkPosition0 return false }, /* 113 HtmlBlockTd <- (HtmlBlockOpenTd (HtmlBlockTd / (!HtmlBlockCloseTd .))* HtmlBlockCloseTd) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenTd]() { goto l567 } l568: { position569, thunkPosition569 := position, thunkPosition { position570, thunkPosition570 := position, thunkPosition if !p.rules[ruleHtmlBlockTd]() { goto l571 } goto l570 l571: position, thunkPosition = position570, thunkPosition570 { position572, thunkPosition572 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseTd]() { goto l572 } goto l569 l572: position, thunkPosition = position572, thunkPosition572 } if !matchDot() { goto l569 } } l570: goto l568 l569: position, thunkPosition = position569, thunkPosition569 } if !p.rules[ruleHtmlBlockCloseTd]() { goto l567 } return true l567: position, thunkPosition = position0, thunkPosition0 return false }, /* 114 HtmlBlockOpenTfoot <- ('<' Spnl ('tfoot' / 'TFOOT') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l573 } if !p.rules[ruleSpnl]() { goto l573 } { position574, thunkPosition574 := position, thunkPosition if !matchString("tfoot") { goto l575 } goto l574 l575: position, thunkPosition = position574, thunkPosition574 if !matchString("TFOOT") { goto l573 } } l574: if !p.rules[ruleSpnl]() { goto l573 } l576: { position577, thunkPosition577 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l577 } goto l576 l577: position, thunkPosition = position577, thunkPosition577 } if !matchChar('>') { goto l573 } return true l573: position, thunkPosition = position0, thunkPosition0 return false }, /* 115 HtmlBlockCloseTfoot <- ('<' Spnl '/' ('tfoot' / 'TFOOT') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l578 } if !p.rules[ruleSpnl]() { goto l578 } if !matchChar('/') { goto l578 } { position579, thunkPosition579 := position, thunkPosition if !matchString("tfoot") { goto l580 } goto l579 l580: position, thunkPosition = position579, thunkPosition579 if !matchString("TFOOT") { goto l578 } } l579: if !p.rules[ruleSpnl]() { goto l578 } if !matchChar('>') { goto l578 } return true l578: position, thunkPosition = position0, thunkPosition0 return false }, /* 116 HtmlBlockTfoot <- (HtmlBlockOpenTfoot (HtmlBlockTfoot / (!HtmlBlockCloseTfoot .))* HtmlBlockCloseTfoot) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenTfoot]() { goto l581 } l582: { position583, thunkPosition583 := position, thunkPosition { position584, thunkPosition584 := position, thunkPosition if !p.rules[ruleHtmlBlockTfoot]() { goto l585 } goto l584 l585: position, thunkPosition = position584, thunkPosition584 { position586, thunkPosition586 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseTfoot]() { goto l586 } goto l583 l586: position, thunkPosition = position586, thunkPosition586 } if !matchDot() { goto l583 } } l584: goto l582 l583: position, thunkPosition = position583, thunkPosition583 } if !p.rules[ruleHtmlBlockCloseTfoot]() { goto l581 } return true l581: position, thunkPosition = position0, thunkPosition0 return false }, /* 117 HtmlBlockOpenTh <- ('<' Spnl ('th' / 'TH') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l587 } if !p.rules[ruleSpnl]() { goto l587 } { position588, thunkPosition588 := position, thunkPosition if !matchString("th") { goto l589 } goto l588 l589: position, thunkPosition = position588, thunkPosition588 if !matchString("TH") { goto l587 } } l588: if !p.rules[ruleSpnl]() { goto l587 } l590: { position591, thunkPosition591 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l591 } goto l590 l591: position, thunkPosition = position591, thunkPosition591 } if !matchChar('>') { goto l587 } return true l587: position, thunkPosition = position0, thunkPosition0 return false }, /* 118 HtmlBlockCloseTh <- ('<' Spnl '/' ('th' / 'TH') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l592 } if !p.rules[ruleSpnl]() { goto l592 } if !matchChar('/') { goto l592 } { position593, thunkPosition593 := position, thunkPosition if !matchString("th") { goto l594 } goto l593 l594: position, thunkPosition = position593, thunkPosition593 if !matchString("TH") { goto l592 } } l593: if !p.rules[ruleSpnl]() { goto l592 } if !matchChar('>') { goto l592 } return true l592: position, thunkPosition = position0, thunkPosition0 return false }, /* 119 HtmlBlockTh <- (HtmlBlockOpenTh (HtmlBlockTh / (!HtmlBlockCloseTh .))* HtmlBlockCloseTh) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenTh]() { goto l595 } l596: { position597, thunkPosition597 := position, thunkPosition { position598, thunkPosition598 := position, thunkPosition if !p.rules[ruleHtmlBlockTh]() { goto l599 } goto l598 l599: position, thunkPosition = position598, thunkPosition598 { position600, thunkPosition600 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseTh]() { goto l600 } goto l597 l600: position, thunkPosition = position600, thunkPosition600 } if !matchDot() { goto l597 } } l598: goto l596 l597: position, thunkPosition = position597, thunkPosition597 } if !p.rules[ruleHtmlBlockCloseTh]() { goto l595 } return true l595: position, thunkPosition = position0, thunkPosition0 return false }, /* 120 HtmlBlockOpenThead <- ('<' Spnl ('thead' / 'THEAD') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l601 } if !p.rules[ruleSpnl]() { goto l601 } { position602, thunkPosition602 := position, thunkPosition if !matchString("thead") { goto l603 } goto l602 l603: position, thunkPosition = position602, thunkPosition602 if !matchString("THEAD") { goto l601 } } l602: if !p.rules[ruleSpnl]() { goto l601 } l604: { position605, thunkPosition605 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l605 } goto l604 l605: position, thunkPosition = position605, thunkPosition605 } if !matchChar('>') { goto l601 } return true l601: position, thunkPosition = position0, thunkPosition0 return false }, /* 121 HtmlBlockCloseThead <- ('<' Spnl '/' ('thead' / 'THEAD') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l606 } if !p.rules[ruleSpnl]() { goto l606 } if !matchChar('/') { goto l606 } { position607, thunkPosition607 := position, thunkPosition if !matchString("thead") { goto l608 } goto l607 l608: position, thunkPosition = position607, thunkPosition607 if !matchString("THEAD") { goto l606 } } l607: if !p.rules[ruleSpnl]() { goto l606 } if !matchChar('>') { goto l606 } return true l606: position, thunkPosition = position0, thunkPosition0 return false }, /* 122 HtmlBlockThead <- (HtmlBlockOpenThead (HtmlBlockThead / (!HtmlBlockCloseThead .))* HtmlBlockCloseThead) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenThead]() { goto l609 } l610: { position611, thunkPosition611 := position, thunkPosition { position612, thunkPosition612 := position, thunkPosition if !p.rules[ruleHtmlBlockThead]() { goto l613 } goto l612 l613: position, thunkPosition = position612, thunkPosition612 { position614, thunkPosition614 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseThead]() { goto l614 } goto l611 l614: position, thunkPosition = position614, thunkPosition614 } if !matchDot() { goto l611 } } l612: goto l610 l611: position, thunkPosition = position611, thunkPosition611 } if !p.rules[ruleHtmlBlockCloseThead]() { goto l609 } return true l609: position, thunkPosition = position0, thunkPosition0 return false }, /* 123 HtmlBlockOpenTr <- ('<' Spnl ('tr' / 'TR') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l615 } if !p.rules[ruleSpnl]() { goto l615 } { position616, thunkPosition616 := position, thunkPosition if !matchString("tr") { goto l617 } goto l616 l617: position, thunkPosition = position616, thunkPosition616 if !matchString("TR") { goto l615 } } l616: if !p.rules[ruleSpnl]() { goto l615 } l618: { position619, thunkPosition619 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l619 } goto l618 l619: position, thunkPosition = position619, thunkPosition619 } if !matchChar('>') { goto l615 } return true l615: position, thunkPosition = position0, thunkPosition0 return false }, /* 124 HtmlBlockCloseTr <- ('<' Spnl '/' ('tr' / 'TR') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l620 } if !p.rules[ruleSpnl]() { goto l620 } if !matchChar('/') { goto l620 } { position621, thunkPosition621 := position, thunkPosition if !matchString("tr") { goto l622 } goto l621 l622: position, thunkPosition = position621, thunkPosition621 if !matchString("TR") { goto l620 } } l621: if !p.rules[ruleSpnl]() { goto l620 } if !matchChar('>') { goto l620 } return true l620: position, thunkPosition = position0, thunkPosition0 return false }, /* 125 HtmlBlockTr <- (HtmlBlockOpenTr (HtmlBlockTr / (!HtmlBlockCloseTr .))* HtmlBlockCloseTr) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenTr]() { goto l623 } l624: { position625, thunkPosition625 := position, thunkPosition { position626, thunkPosition626 := position, thunkPosition if !p.rules[ruleHtmlBlockTr]() { goto l627 } goto l626 l627: position, thunkPosition = position626, thunkPosition626 { position628, thunkPosition628 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseTr]() { goto l628 } goto l625 l628: position, thunkPosition = position628, thunkPosition628 } if !matchDot() { goto l625 } } l626: goto l624 l625: position, thunkPosition = position625, thunkPosition625 } if !p.rules[ruleHtmlBlockCloseTr]() { goto l623 } return true l623: position, thunkPosition = position0, thunkPosition0 return false }, /* 126 HtmlBlockOpenScript <- ('<' Spnl ('script' / 'SCRIPT') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l629 } if !p.rules[ruleSpnl]() { goto l629 } { position630, thunkPosition630 := position, thunkPosition if !matchString("script") { goto l631 } goto l630 l631: position, thunkPosition = position630, thunkPosition630 if !matchString("SCRIPT") { goto l629 } } l630: if !p.rules[ruleSpnl]() { goto l629 } l632: { position633, thunkPosition633 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l633 } goto l632 l633: position, thunkPosition = position633, thunkPosition633 } if !matchChar('>') { goto l629 } return true l629: position, thunkPosition = position0, thunkPosition0 return false }, /* 127 HtmlBlockCloseScript <- ('<' Spnl '/' ('script' / 'SCRIPT') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l634 } if !p.rules[ruleSpnl]() { goto l634 } if !matchChar('/') { goto l634 } { position635, thunkPosition635 := position, thunkPosition if !matchString("script") { goto l636 } goto l635 l636: position, thunkPosition = position635, thunkPosition635 if !matchString("SCRIPT") { goto l634 } } l635: if !p.rules[ruleSpnl]() { goto l634 } if !matchChar('>') { goto l634 } return true l634: position, thunkPosition = position0, thunkPosition0 return false }, /* 128 HtmlBlockScript <- (HtmlBlockOpenScript (HtmlBlockScript / (!HtmlBlockCloseScript .))* HtmlBlockCloseScript) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleHtmlBlockOpenScript]() { goto l637 } l638: { position639, thunkPosition639 := position, thunkPosition { position640, thunkPosition640 := position, thunkPosition if !p.rules[ruleHtmlBlockScript]() { goto l641 } goto l640 l641: position, thunkPosition = position640, thunkPosition640 { position642, thunkPosition642 := position, thunkPosition if !p.rules[ruleHtmlBlockCloseScript]() { goto l642 } goto l639 l642: position, thunkPosition = position642, thunkPosition642 } if !matchDot() { goto l639 } } l640: goto l638 l639: position, thunkPosition = position639, thunkPosition639 } if !p.rules[ruleHtmlBlockCloseScript]() { goto l637 } return true l637: position, thunkPosition = position0, thunkPosition0 return false }, /* 129 HtmlBlockInTags <- (HtmlBlockAddress / HtmlBlockBlockquote / HtmlBlockCenter / HtmlBlockDir / HtmlBlockDiv / HtmlBlockDl / HtmlBlockFieldset / HtmlBlockForm / HtmlBlockH1 / HtmlBlockH2 / HtmlBlockH3 / HtmlBlockH4 / HtmlBlockH5 / HtmlBlockH6 / HtmlBlockMenu / HtmlBlockNoframes / HtmlBlockNoscript / HtmlBlockOl / HtmlBlockP / HtmlBlockPre / HtmlBlockTable / HtmlBlockUl / HtmlBlockDd / HtmlBlockDt / HtmlBlockFrameset / HtmlBlockLi / HtmlBlockTbody / HtmlBlockTd / HtmlBlockTfoot / HtmlBlockTh / HtmlBlockThead / HtmlBlockTr / HtmlBlockScript) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position644, thunkPosition644 := position, thunkPosition if !p.rules[ruleHtmlBlockAddress]() { goto l645 } goto l644 l645: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockBlockquote]() { goto l646 } goto l644 l646: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockCenter]() { goto l647 } goto l644 l647: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockDir]() { goto l648 } goto l644 l648: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockDiv]() { goto l649 } goto l644 l649: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockDl]() { goto l650 } goto l644 l650: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockFieldset]() { goto l651 } goto l644 l651: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockForm]() { goto l652 } goto l644 l652: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockH1]() { goto l653 } goto l644 l653: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockH2]() { goto l654 } goto l644 l654: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockH3]() { goto l655 } goto l644 l655: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockH4]() { goto l656 } goto l644 l656: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockH5]() { goto l657 } goto l644 l657: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockH6]() { goto l658 } goto l644 l658: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockMenu]() { goto l659 } goto l644 l659: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockNoframes]() { goto l660 } goto l644 l660: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockNoscript]() { goto l661 } goto l644 l661: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockOl]() { goto l662 } goto l644 l662: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockP]() { goto l663 } goto l644 l663: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockPre]() { goto l664 } goto l644 l664: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockTable]() { goto l665 } goto l644 l665: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockUl]() { goto l666 } goto l644 l666: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockDd]() { goto l667 } goto l644 l667: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockDt]() { goto l668 } goto l644 l668: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockFrameset]() { goto l669 } goto l644 l669: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockLi]() { goto l670 } goto l644 l670: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockTbody]() { goto l671 } goto l644 l671: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockTd]() { goto l672 } goto l644 l672: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockTfoot]() { goto l673 } goto l644 l673: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockTh]() { goto l674 } goto l644 l674: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockThead]() { goto l675 } goto l644 l675: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockTr]() { goto l676 } goto l644 l676: position, thunkPosition = position644, thunkPosition644 if !p.rules[ruleHtmlBlockScript]() { goto l643 } } l644: return true l643: position, thunkPosition = position0, thunkPosition0 return false }, /* 130 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 l677 } begin = position { position678, thunkPosition678 := position, thunkPosition if !p.rules[ruleHtmlBlockInTags]() { goto l679 } goto l678 l679: position, thunkPosition = position678, thunkPosition678 if !p.rules[ruleHtmlComment]() { goto l680 } goto l678 l680: position, thunkPosition = position678, thunkPosition678 if !p.rules[ruleHtmlBlockSelfClosing]() { goto l677 } } l678: end = position if !p.rules[ruleBlankLine]() { goto l677 } l681: { position682, thunkPosition682 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l682 } goto l681 l682: position, thunkPosition = position682, thunkPosition682 } do(40) return true l677: position, thunkPosition = position0, thunkPosition0 return false }, /* 131 HtmlBlockSelfClosing <- ('<' Spnl HtmlBlockType Spnl HtmlAttribute* '/' Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l683 } if !p.rules[ruleSpnl]() { goto l683 } if !p.rules[ruleHtmlBlockType]() { goto l683 } if !p.rules[ruleSpnl]() { goto l683 } l684: { position685, thunkPosition685 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l685 } goto l684 l685: position, thunkPosition = position685, thunkPosition685 } if !matchChar('/') { goto l683 } if !p.rules[ruleSpnl]() { goto l683 } if !matchChar('>') { goto l683 } return true l683: position, thunkPosition = position0, thunkPosition0 return false }, /* 132 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 { position687, thunkPosition687 := position, thunkPosition if !matchString("address") { goto l688 } goto l687 l688: position, thunkPosition = position687, thunkPosition687 if !matchString("blockquote") { goto l689 } goto l687 l689: position, thunkPosition = position687, thunkPosition687 if !matchString("center") { goto l690 } goto l687 l690: position, thunkPosition = position687, thunkPosition687 if !matchString("dir") { goto l691 } goto l687 l691: position, thunkPosition = position687, thunkPosition687 if !matchString("div") { goto l692 } goto l687 l692: position, thunkPosition = position687, thunkPosition687 if !matchString("dl") { goto l693 } goto l687 l693: position, thunkPosition = position687, thunkPosition687 if !matchString("fieldset") { goto l694 } goto l687 l694: position, thunkPosition = position687, thunkPosition687 if !matchString("form") { goto l695 } goto l687 l695: position, thunkPosition = position687, thunkPosition687 if !matchString("h1") { goto l696 } goto l687 l696: position, thunkPosition = position687, thunkPosition687 if !matchString("h2") { goto l697 } goto l687 l697: position, thunkPosition = position687, thunkPosition687 if !matchString("h3") { goto l698 } goto l687 l698: position, thunkPosition = position687, thunkPosition687 if !matchString("h4") { goto l699 } goto l687 l699: position, thunkPosition = position687, thunkPosition687 if !matchString("h5") { goto l700 } goto l687 l700: position, thunkPosition = position687, thunkPosition687 if !matchString("h6") { goto l701 } goto l687 l701: position, thunkPosition = position687, thunkPosition687 if !matchString("hr") { goto l702 } goto l687 l702: position, thunkPosition = position687, thunkPosition687 if !matchString("isindex") { goto l703 } goto l687 l703: position, thunkPosition = position687, thunkPosition687 if !matchString("menu") { goto l704 } goto l687 l704: position, thunkPosition = position687, thunkPosition687 if !matchString("noframes") { goto l705 } goto l687 l705: position, thunkPosition = position687, thunkPosition687 if !matchString("noscript") { goto l706 } goto l687 l706: position, thunkPosition = position687, thunkPosition687 if !matchString("ol") { goto l707 } goto l687 l707: position, thunkPosition = position687, thunkPosition687 if !matchChar('p') { goto l708 } goto l687 l708: position, thunkPosition = position687, thunkPosition687 if !matchString("pre") { goto l709 } goto l687 l709: position, thunkPosition = position687, thunkPosition687 if !matchString("table") { goto l710 } goto l687 l710: position, thunkPosition = position687, thunkPosition687 if !matchString("ul") { goto l711 } goto l687 l711: position, thunkPosition = position687, thunkPosition687 if !matchString("dd") { goto l712 } goto l687 l712: position, thunkPosition = position687, thunkPosition687 if !matchString("dt") { goto l713 } goto l687 l713: position, thunkPosition = position687, thunkPosition687 if !matchString("frameset") { goto l714 } goto l687 l714: position, thunkPosition = position687, thunkPosition687 if !matchString("li") { goto l715 } goto l687 l715: position, thunkPosition = position687, thunkPosition687 if !matchString("tbody") { goto l716 } goto l687 l716: position, thunkPosition = position687, thunkPosition687 if !matchString("td") { goto l717 } goto l687 l717: position, thunkPosition = position687, thunkPosition687 if !matchString("tfoot") { goto l718 } goto l687 l718: position, thunkPosition = position687, thunkPosition687 if !matchString("th") { goto l719 } goto l687 l719: position, thunkPosition = position687, thunkPosition687 if !matchString("thead") { goto l720 } goto l687 l720: position, thunkPosition = position687, thunkPosition687 if !matchString("tr") { goto l721 } goto l687 l721: position, thunkPosition = position687, thunkPosition687 if !matchString("script") { goto l722 } goto l687 l722: position, thunkPosition = position687, thunkPosition687 if !matchString("ADDRESS") { goto l723 } goto l687 l723: position, thunkPosition = position687, thunkPosition687 if !matchString("BLOCKQUOTE") { goto l724 } goto l687 l724: position, thunkPosition = position687, thunkPosition687 if !matchString("CENTER") { goto l725 } goto l687 l725: position, thunkPosition = position687, thunkPosition687 if !matchString("DIR") { goto l726 } goto l687 l726: position, thunkPosition = position687, thunkPosition687 if !matchString("DIV") { goto l727 } goto l687 l727: position, thunkPosition = position687, thunkPosition687 if !matchString("DL") { goto l728 } goto l687 l728: position, thunkPosition = position687, thunkPosition687 if !matchString("FIELDSET") { goto l729 } goto l687 l729: position, thunkPosition = position687, thunkPosition687 if !matchString("FORM") { goto l730 } goto l687 l730: position, thunkPosition = position687, thunkPosition687 if !matchString("H1") { goto l731 } goto l687 l731: position, thunkPosition = position687, thunkPosition687 if !matchString("H2") { goto l732 } goto l687 l732: position, thunkPosition = position687, thunkPosition687 if !matchString("H3") { goto l733 } goto l687 l733: position, thunkPosition = position687, thunkPosition687 if !matchString("H4") { goto l734 } goto l687 l734: position, thunkPosition = position687, thunkPosition687 if !matchString("H5") { goto l735 } goto l687 l735: position, thunkPosition = position687, thunkPosition687 if !matchString("H6") { goto l736 } goto l687 l736: position, thunkPosition = position687, thunkPosition687 if !matchString("HR") { goto l737 } goto l687 l737: position, thunkPosition = position687, thunkPosition687 if !matchString("ISINDEX") { goto l738 } goto l687 l738: position, thunkPosition = position687, thunkPosition687 if !matchString("MENU") { goto l739 } goto l687 l739: position, thunkPosition = position687, thunkPosition687 if !matchString("NOFRAMES") { goto l740 } goto l687 l740: position, thunkPosition = position687, thunkPosition687 if !matchString("NOSCRIPT") { goto l741 } goto l687 l741: position, thunkPosition = position687, thunkPosition687 if !matchString("OL") { goto l742 } goto l687 l742: position, thunkPosition = position687, thunkPosition687 if !matchChar('P') { goto l743 } goto l687 l743: position, thunkPosition = position687, thunkPosition687 if !matchString("PRE") { goto l744 } goto l687 l744: position, thunkPosition = position687, thunkPosition687 if !matchString("TABLE") { goto l745 } goto l687 l745: position, thunkPosition = position687, thunkPosition687 if !matchString("UL") { goto l746 } goto l687 l746: position, thunkPosition = position687, thunkPosition687 if !matchString("DD") { goto l747 } goto l687 l747: position, thunkPosition = position687, thunkPosition687 if !matchString("DT") { goto l748 } goto l687 l748: position, thunkPosition = position687, thunkPosition687 if !matchString("FRAMESET") { goto l749 } goto l687 l749: position, thunkPosition = position687, thunkPosition687 if !matchString("LI") { goto l750 } goto l687 l750: position, thunkPosition = position687, thunkPosition687 if !matchString("TBODY") { goto l751 } goto l687 l751: position, thunkPosition = position687, thunkPosition687 if !matchString("TD") { goto l752 } goto l687 l752: position, thunkPosition = position687, thunkPosition687 if !matchString("TFOOT") { goto l753 } goto l687 l753: position, thunkPosition = position687, thunkPosition687 if !matchString("TH") { goto l754 } goto l687 l754: position, thunkPosition = position687, thunkPosition687 if !matchString("THEAD") { goto l755 } goto l687 l755: position, thunkPosition = position687, thunkPosition687 if !matchString("TR") { goto l756 } goto l687 l756: position, thunkPosition = position687, thunkPosition687 if !matchString("SCRIPT") { goto l686 } } l687: return true l686: position, thunkPosition = position0, thunkPosition0 return false }, /* 133 StyleOpen <- ('<' Spnl ('style' / 'STYLE') Spnl HtmlAttribute* '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l757 } if !p.rules[ruleSpnl]() { goto l757 } { position758, thunkPosition758 := position, thunkPosition if !matchString("style") { goto l759 } goto l758 l759: position, thunkPosition = position758, thunkPosition758 if !matchString("STYLE") { goto l757 } } l758: if !p.rules[ruleSpnl]() { goto l757 } l760: { position761, thunkPosition761 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l761 } goto l760 l761: position, thunkPosition = position761, thunkPosition761 } if !matchChar('>') { goto l757 } return true l757: position, thunkPosition = position0, thunkPosition0 return false }, /* 134 StyleClose <- ('<' Spnl '/' ('style' / 'STYLE') Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l762 } if !p.rules[ruleSpnl]() { goto l762 } if !matchChar('/') { goto l762 } { position763, thunkPosition763 := position, thunkPosition if !matchString("style") { goto l764 } goto l763 l764: position, thunkPosition = position763, thunkPosition763 if !matchString("STYLE") { goto l762 } } l763: if !p.rules[ruleSpnl]() { goto l762 } if !matchChar('>') { goto l762 } return true l762: position, thunkPosition = position0, thunkPosition0 return false }, /* 135 InStyleTags <- (StyleOpen (!StyleClose .)* StyleClose) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleStyleOpen]() { goto l765 } l766: { position767, thunkPosition767 := position, thunkPosition { position768, thunkPosition768 := position, thunkPosition if !p.rules[ruleStyleClose]() { goto l768 } goto l767 l768: position, thunkPosition = position768, thunkPosition768 } if !matchDot() { goto l767 } goto l766 l767: position, thunkPosition = position767, thunkPosition767 } if !p.rules[ruleStyleClose]() { goto l765 } return true l765: position, thunkPosition = position0, thunkPosition0 return false }, /* 136 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 l769 } end = position l770: { position771, thunkPosition771 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l771 } goto l770 l771: position, thunkPosition = position771, thunkPosition771 } do(41) return true l769: position, thunkPosition = position0, thunkPosition0 return false }, /* 137 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 l772 } doarg(yySet, -2) { position775, thunkPosition775 := position, thunkPosition { position777, thunkPosition777 := position, thunkPosition if !p.rules[ruleEndline]() { goto l777 } goto l776 l777: position, thunkPosition = position777, thunkPosition777 } if !p.rules[ruleInline]() { goto l776 } do(42) goto l775 l776: position, thunkPosition = position775, thunkPosition775 if !p.rules[ruleEndline]() { goto l772 } doarg(yySet, -1) { position778, thunkPosition778 := position, thunkPosition if !p.rules[ruleInline]() { goto l772 } position, thunkPosition = position778, thunkPosition778 } do(43) } l775: l773: { position774, thunkPosition774 := position, thunkPosition { position779, thunkPosition779 := position, thunkPosition { position781, thunkPosition781 := position, thunkPosition if !p.rules[ruleEndline]() { goto l781 } goto l780 l781: position, thunkPosition = position781, thunkPosition781 } if !p.rules[ruleInline]() { goto l780 } do(42) goto l779 l780: position, thunkPosition = position779, thunkPosition779 if !p.rules[ruleEndline]() { goto l774 } doarg(yySet, -1) { position782, thunkPosition782 := position, thunkPosition if !p.rules[ruleInline]() { goto l774 } position, thunkPosition = position782, thunkPosition782 } do(43) } l779: goto l773 l774: position, thunkPosition = position774, thunkPosition774 } { position783, thunkPosition783 := position, thunkPosition if !p.rules[ruleEndline]() { goto l783 } goto l784 l783: position, thunkPosition = position783, thunkPosition783 } l784: do(44) doarg(yyPop, 2) return true l772: position, thunkPosition = position0, thunkPosition0 return false }, /* 138 Inline <- (Str / Endline / UlOrStarLine / Space / Strong / Emph / Image / Link / NoteReference / InlineNote / Code / RawHtml / Entity / EscapedChar / Smart / Symbol) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position786, thunkPosition786 := position, thunkPosition if !p.rules[ruleStr]() { goto l787 } goto l786 l787: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleEndline]() { goto l788 } goto l786 l788: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleUlOrStarLine]() { goto l789 } goto l786 l789: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleSpace]() { goto l790 } goto l786 l790: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleStrong]() { goto l791 } goto l786 l791: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleEmph]() { goto l792 } goto l786 l792: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleImage]() { goto l793 } goto l786 l793: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleLink]() { goto l794 } goto l786 l794: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleNoteReference]() { goto l795 } goto l786 l795: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleInlineNote]() { goto l796 } goto l786 l796: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleCode]() { goto l797 } goto l786 l797: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleRawHtml]() { goto l798 } goto l786 l798: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleEntity]() { goto l799 } goto l786 l799: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleEscapedChar]() { goto l800 } goto l786 l800: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleSmart]() { goto l801 } goto l786 l801: position, thunkPosition = position786, thunkPosition786 if !p.rules[ruleSymbol]() { goto l785 } } l786: return true l785: position, thunkPosition = position0, thunkPosition0 return false }, /* 139 Space <- (Spacechar+ { yy = mk_str(" ") yy.key = SPACE }) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l802 } l803: { position804, thunkPosition804 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l804 } goto l803 l804: position, thunkPosition = position804, thunkPosition804 } do(45) return true l802: position, thunkPosition = position0, thunkPosition0 return false }, /* 140 Str <- (< NormalChar (NormalChar / ('_'+ &Alphanumeric))* > { yy = mk_str(yytext) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition begin = position if !p.rules[ruleNormalChar]() { goto l805 } l806: { position807, thunkPosition807 := position, thunkPosition { position808, thunkPosition808 := position, thunkPosition if !p.rules[ruleNormalChar]() { goto l809 } goto l808 l809: position, thunkPosition = position808, thunkPosition808 if !matchChar('_') { goto l807 } l810: { position811, thunkPosition811 := position, thunkPosition if !matchChar('_') { goto l811 } goto l810 l811: position, thunkPosition = position811, thunkPosition811 } { position812, thunkPosition812 := position, thunkPosition if !p.rules[ruleAlphanumeric]() { goto l807 } position, thunkPosition = position812, thunkPosition812 } } l808: goto l806 l807: position, thunkPosition = position807, thunkPosition807 } end = position do(46) return true l805: position, thunkPosition = position0, thunkPosition0 return false }, /* 141 EscapedChar <- ('\\' !Newline < [-\\`|*_{}[\]()#+.!><] > { yy = mk_str(yytext) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('\\') { goto l813 } { position814, thunkPosition814 := position, thunkPosition if !p.rules[ruleNewline]() { goto l814 } goto l813 l814: position, thunkPosition = position814, thunkPosition814 } begin = position if !matchClass(2) { goto l813 } end = position do(47) return true l813: position, thunkPosition = position0, thunkPosition0 return false }, /* 142 Entity <- ((HexEntity / DecEntity / CharEntity) { yy = mk_str(yytext); yy.key = HTML }) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position816, thunkPosition816 := position, thunkPosition if !p.rules[ruleHexEntity]() { goto l817 } goto l816 l817: position, thunkPosition = position816, thunkPosition816 if !p.rules[ruleDecEntity]() { goto l818 } goto l816 l818: position, thunkPosition = position816, thunkPosition816 if !p.rules[ruleCharEntity]() { goto l815 } } l816: do(48) return true l815: position, thunkPosition = position0, thunkPosition0 return false }, /* 143 Endline <- (LineBreak / TerminalEndline / NormalEndline) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position820, thunkPosition820 := position, thunkPosition if !p.rules[ruleLineBreak]() { goto l821 } goto l820 l821: position, thunkPosition = position820, thunkPosition820 if !p.rules[ruleTerminalEndline]() { goto l822 } goto l820 l822: position, thunkPosition = position820, thunkPosition820 if !p.rules[ruleNormalEndline]() { goto l819 } } l820: return true l819: position, thunkPosition = position0, thunkPosition0 return false }, /* 144 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 l823 } if !p.rules[ruleNewline]() { goto l823 } { position824, thunkPosition824 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l824 } goto l823 l824: position, thunkPosition = position824, thunkPosition824 } if peekChar('>') { goto l823 } { position825, thunkPosition825 := position, thunkPosition if !p.rules[ruleAtxStart]() { goto l825 } goto l823 l825: position, thunkPosition = position825, thunkPosition825 } { position826, thunkPosition826 := position, thunkPosition if !p.rules[ruleLine]() { goto l826 } { position827, thunkPosition827 := position, thunkPosition if !matchString("===") { goto l828 } l829: { position830, thunkPosition830 := position, thunkPosition if !matchChar('=') { goto l830 } goto l829 l830: position, thunkPosition = position830, thunkPosition830 } goto l827 l828: position, thunkPosition = position827, thunkPosition827 if !matchString("---") { goto l826 } l831: { position832, thunkPosition832 := position, thunkPosition if !matchChar('-') { goto l832 } goto l831 l832: position, thunkPosition = position832, thunkPosition832 } } l827: if !p.rules[ruleNewline]() { goto l826 } goto l823 l826: position, thunkPosition = position826, thunkPosition826 } do(49) return true l823: position, thunkPosition = position0, thunkPosition0 return false }, /* 145 TerminalEndline <- (Sp Newline Eof { yy = nil }) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleSp]() { goto l833 } if !p.rules[ruleNewline]() { goto l833 } if !p.rules[ruleEof]() { goto l833 } do(50) return true l833: position, thunkPosition = position0, thunkPosition0 return false }, /* 146 LineBreak <- (' ' NormalEndline { yy = mk_element(LINEBREAK) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchString(" ") { goto l834 } if !p.rules[ruleNormalEndline]() { goto l834 } do(51) return true l834: position, thunkPosition = position0, thunkPosition0 return false }, /* 147 Symbol <- (< SpecialChar > { yy = mk_str(yytext) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition begin = position if !p.rules[ruleSpecialChar]() { goto l835 } end = position do(52) return true l835: position, thunkPosition = position0, thunkPosition0 return false }, /* 148 UlOrStarLine <- ((UlLine / StarLine) { yy = mk_str(yytext) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position837, thunkPosition837 := position, thunkPosition if !p.rules[ruleUlLine]() { goto l838 } goto l837 l838: position, thunkPosition = position837, thunkPosition837 if !p.rules[ruleStarLine]() { goto l836 } } l837: do(53) return true l836: position, thunkPosition = position0, thunkPosition0 return false }, /* 149 StarLine <- ((< '****' '*'* >) / (< Spacechar '*'+ &Spacechar >)) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position840, thunkPosition840 := position, thunkPosition begin = position if !matchString("****") { goto l841 } l842: { position843, thunkPosition843 := position, thunkPosition if !matchChar('*') { goto l843 } goto l842 l843: position, thunkPosition = position843, thunkPosition843 } end = position goto l840 l841: position, thunkPosition = position840, thunkPosition840 begin = position if !p.rules[ruleSpacechar]() { goto l839 } if !matchChar('*') { goto l839 } l844: { position845, thunkPosition845 := position, thunkPosition if !matchChar('*') { goto l845 } goto l844 l845: position, thunkPosition = position845, thunkPosition845 } { position846, thunkPosition846 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l839 } position, thunkPosition = position846, thunkPosition846 } end = position } l840: return true l839: position, thunkPosition = position0, thunkPosition0 return false }, /* 150 UlLine <- ((< '____' '_'* >) / (< Spacechar '_'+ &Spacechar >)) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position848, thunkPosition848 := position, thunkPosition begin = position if !matchString("____") { goto l849 } l850: { position851, thunkPosition851 := position, thunkPosition if !matchChar('_') { goto l851 } goto l850 l851: position, thunkPosition = position851, thunkPosition851 } end = position goto l848 l849: position, thunkPosition = position848, thunkPosition848 begin = position if !p.rules[ruleSpacechar]() { goto l847 } if !matchChar('_') { goto l847 } l852: { position853, thunkPosition853 := position, thunkPosition if !matchChar('_') { goto l853 } goto l852 l853: position, thunkPosition = position853, thunkPosition853 } { position854, thunkPosition854 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l847 } position, thunkPosition = position854, thunkPosition854 } end = position } l848: return true l847: position, thunkPosition = position0, thunkPosition0 return false }, /* 151 Emph <- (EmphStar / EmphUl) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position856, thunkPosition856 := position, thunkPosition if !p.rules[ruleEmphStar]() { goto l857 } goto l856 l857: position, thunkPosition = position856, thunkPosition856 if !p.rules[ruleEmphUl]() { goto l855 } } l856: return true l855: position, thunkPosition = position0, thunkPosition0 return false }, /* 152 OneStarOpen <- (!StarLine '*' !Spacechar !Newline) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position859, thunkPosition859 := position, thunkPosition if !p.rules[ruleStarLine]() { goto l859 } goto l858 l859: position, thunkPosition = position859, thunkPosition859 } if !matchChar('*') { goto l858 } { position860, thunkPosition860 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l860 } goto l858 l860: position, thunkPosition = position860, thunkPosition860 } { position861, thunkPosition861 := position, thunkPosition if !p.rules[ruleNewline]() { goto l861 } goto l858 l861: position, thunkPosition = position861, thunkPosition861 } return true l858: position, thunkPosition = position0, thunkPosition0 return false }, /* 153 OneStarClose <- (!Spacechar !Newline Inline !StrongStar '*' { yy = a }) */ func() bool { position0, thunkPosition0 := position, thunkPosition doarg(yyPush, 1) { position863, thunkPosition863 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l863 } goto l862 l863: position, thunkPosition = position863, thunkPosition863 } { position864, thunkPosition864 := position, thunkPosition if !p.rules[ruleNewline]() { goto l864 } goto l862 l864: position, thunkPosition = position864, thunkPosition864 } if !p.rules[ruleInline]() { goto l862 } doarg(yySet, -1) { position865, thunkPosition865 := position, thunkPosition if !p.rules[ruleStrongStar]() { goto l865 } goto l862 l865: position, thunkPosition = position865, thunkPosition865 } if !matchChar('*') { goto l862 } do(54) doarg(yyPop, 1) return true l862: position, thunkPosition = position0, thunkPosition0 return false }, /* 154 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 l866 } if !p.rules[ruleStartList]() { goto l866 } doarg(yySet, -1) l867: { position868, thunkPosition868 := position, thunkPosition { position869, thunkPosition869 := position, thunkPosition if !p.rules[ruleOneStarClose]() { goto l869 } goto l868 l869: position, thunkPosition = position869, thunkPosition869 } if !p.rules[ruleInline]() { goto l868 } do(55) goto l867 l868: position, thunkPosition = position868, thunkPosition868 } if !p.rules[ruleOneStarClose]() { goto l866 } do(56) do(57) doarg(yyPop, 1) return true l866: position, thunkPosition = position0, thunkPosition0 return false }, /* 155 OneUlOpen <- (!UlLine '_' !Spacechar !Newline) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position871, thunkPosition871 := position, thunkPosition if !p.rules[ruleUlLine]() { goto l871 } goto l870 l871: position, thunkPosition = position871, thunkPosition871 } if !matchChar('_') { goto l870 } { position872, thunkPosition872 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l872 } goto l870 l872: position, thunkPosition = position872, thunkPosition872 } { position873, thunkPosition873 := position, thunkPosition if !p.rules[ruleNewline]() { goto l873 } goto l870 l873: position, thunkPosition = position873, thunkPosition873 } return true l870: position, thunkPosition = position0, thunkPosition0 return false }, /* 156 OneUlClose <- (!Spacechar !Newline Inline !StrongUl '_' !Alphanumeric { yy = a }) */ func() bool { position0, thunkPosition0 := position, thunkPosition doarg(yyPush, 1) { position875, thunkPosition875 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l875 } goto l874 l875: position, thunkPosition = position875, thunkPosition875 } { position876, thunkPosition876 := position, thunkPosition if !p.rules[ruleNewline]() { goto l876 } goto l874 l876: position, thunkPosition = position876, thunkPosition876 } if !p.rules[ruleInline]() { goto l874 } doarg(yySet, -1) { position877, thunkPosition877 := position, thunkPosition if !p.rules[ruleStrongUl]() { goto l877 } goto l874 l877: position, thunkPosition = position877, thunkPosition877 } if !matchChar('_') { goto l874 } { position878, thunkPosition878 := position, thunkPosition if !p.rules[ruleAlphanumeric]() { goto l878 } goto l874 l878: position, thunkPosition = position878, thunkPosition878 } do(58) doarg(yyPop, 1) return true l874: position, thunkPosition = position0, thunkPosition0 return false }, /* 157 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 l879 } if !p.rules[ruleStartList]() { goto l879 } doarg(yySet, -1) l880: { position881, thunkPosition881 := position, thunkPosition { position882, thunkPosition882 := position, thunkPosition if !p.rules[ruleOneUlClose]() { goto l882 } goto l881 l882: position, thunkPosition = position882, thunkPosition882 } if !p.rules[ruleInline]() { goto l881 } do(59) goto l880 l881: position, thunkPosition = position881, thunkPosition881 } if !p.rules[ruleOneUlClose]() { goto l879 } do(60) do(61) doarg(yyPop, 1) return true l879: position, thunkPosition = position0, thunkPosition0 return false }, /* 158 Strong <- (StrongStar / StrongUl) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position884, thunkPosition884 := position, thunkPosition if !p.rules[ruleStrongStar]() { goto l885 } goto l884 l885: position, thunkPosition = position884, thunkPosition884 if !p.rules[ruleStrongUl]() { goto l883 } } l884: return true l883: position, thunkPosition = position0, thunkPosition0 return false }, /* 159 TwoStarOpen <- (!StarLine '**' !Spacechar !Newline) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position887, thunkPosition887 := position, thunkPosition if !p.rules[ruleStarLine]() { goto l887 } goto l886 l887: position, thunkPosition = position887, thunkPosition887 } if !matchString("**") { goto l886 } { position888, thunkPosition888 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l888 } goto l886 l888: position, thunkPosition = position888, thunkPosition888 } { position889, thunkPosition889 := position, thunkPosition if !p.rules[ruleNewline]() { goto l889 } goto l886 l889: position, thunkPosition = position889, thunkPosition889 } return true l886: position, thunkPosition = position0, thunkPosition0 return false }, /* 160 TwoStarClose <- (!Spacechar !Newline Inline '**' { yy = a }) */ func() bool { position0, thunkPosition0 := position, thunkPosition doarg(yyPush, 1) { position891, thunkPosition891 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l891 } goto l890 l891: position, thunkPosition = position891, thunkPosition891 } { position892, thunkPosition892 := position, thunkPosition if !p.rules[ruleNewline]() { goto l892 } goto l890 l892: position, thunkPosition = position892, thunkPosition892 } if !p.rules[ruleInline]() { goto l890 } doarg(yySet, -1) if !matchString("**") { goto l890 } do(62) doarg(yyPop, 1) return true l890: position, thunkPosition = position0, thunkPosition0 return false }, /* 161 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 l893 } if !p.rules[ruleStartList]() { goto l893 } doarg(yySet, -1) l894: { position895, thunkPosition895 := position, thunkPosition { position896, thunkPosition896 := position, thunkPosition if !p.rules[ruleTwoStarClose]() { goto l896 } goto l895 l896: position, thunkPosition = position896, thunkPosition896 } if !p.rules[ruleInline]() { goto l895 } do(63) goto l894 l895: position, thunkPosition = position895, thunkPosition895 } if !p.rules[ruleTwoStarClose]() { goto l893 } do(64) do(65) doarg(yyPop, 1) return true l893: position, thunkPosition = position0, thunkPosition0 return false }, /* 162 TwoUlOpen <- (!UlLine '__' !Spacechar !Newline) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position898, thunkPosition898 := position, thunkPosition if !p.rules[ruleUlLine]() { goto l898 } goto l897 l898: position, thunkPosition = position898, thunkPosition898 } if !matchString("__") { goto l897 } { position899, thunkPosition899 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l899 } goto l897 l899: position, thunkPosition = position899, thunkPosition899 } { position900, thunkPosition900 := position, thunkPosition if !p.rules[ruleNewline]() { goto l900 } goto l897 l900: position, thunkPosition = position900, thunkPosition900 } return true l897: position, thunkPosition = position0, thunkPosition0 return false }, /* 163 TwoUlClose <- (!Spacechar !Newline Inline '__' !Alphanumeric { yy = a }) */ func() bool { position0, thunkPosition0 := position, thunkPosition doarg(yyPush, 1) { position902, thunkPosition902 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l902 } goto l901 l902: position, thunkPosition = position902, thunkPosition902 } { position903, thunkPosition903 := position, thunkPosition if !p.rules[ruleNewline]() { goto l903 } goto l901 l903: position, thunkPosition = position903, thunkPosition903 } if !p.rules[ruleInline]() { goto l901 } doarg(yySet, -1) if !matchString("__") { goto l901 } { position904, thunkPosition904 := position, thunkPosition if !p.rules[ruleAlphanumeric]() { goto l904 } goto l901 l904: position, thunkPosition = position904, thunkPosition904 } do(66) doarg(yyPop, 1) return true l901: position, thunkPosition = position0, thunkPosition0 return false }, /* 164 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 l905 } if !p.rules[ruleStartList]() { goto l905 } doarg(yySet, -1) l906: { position907, thunkPosition907 := position, thunkPosition { position908, thunkPosition908 := position, thunkPosition if !p.rules[ruleTwoUlClose]() { goto l908 } goto l907 l908: position, thunkPosition = position908, thunkPosition908 } if !p.rules[ruleInline]() { goto l907 } do(67) goto l906 l907: position, thunkPosition = position907, thunkPosition907 } if !p.rules[ruleTwoUlClose]() { goto l905 } do(68) do(69) doarg(yyPop, 1) return true l905: position, thunkPosition = position0, thunkPosition0 return false }, /* 165 Image <- ('!' (ExplicitLink / ReferenceLink) { if yy.key == LINK { yy.key = IMAGE } else { result := yy yy.children = cons(mk_str("!"), result.children) } }) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('!') { goto l909 } { position910, thunkPosition910 := position, thunkPosition if !p.rules[ruleExplicitLink]() { goto l911 } goto l910 l911: position, thunkPosition = position910, thunkPosition910 if !p.rules[ruleReferenceLink]() { goto l909 } } l910: do(70) return true l909: position, thunkPosition = position0, thunkPosition0 return false }, /* 166 Link <- (ExplicitLink / ReferenceLink / AutoLink) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position913, thunkPosition913 := position, thunkPosition if !p.rules[ruleExplicitLink]() { goto l914 } goto l913 l914: position, thunkPosition = position913, thunkPosition913 if !p.rules[ruleReferenceLink]() { goto l915 } goto l913 l915: position, thunkPosition = position913, thunkPosition913 if !p.rules[ruleAutoLink]() { goto l912 } } l913: return true l912: position, thunkPosition = position0, thunkPosition0 return false }, /* 167 ReferenceLink <- (ReferenceLinkDouble / ReferenceLinkSingle) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position917, thunkPosition917 := position, thunkPosition if !p.rules[ruleReferenceLinkDouble]() { goto l918 } goto l917 l918: position, thunkPosition = position917, thunkPosition917 if !p.rules[ruleReferenceLinkSingle]() { goto l916 } } l917: return true l916: position, thunkPosition = position0, thunkPosition0 return false }, /* 168 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 l919 } doarg(yySet, -1) begin = position if !p.rules[ruleSpnl]() { goto l919 } end = position { position920, thunkPosition920 := position, thunkPosition if !matchString("[]") { goto l920 } goto l919 l920: position, thunkPosition = position920, thunkPosition920 } if !p.rules[ruleLabel]() { goto l919 } doarg(yySet, -2) do(71) doarg(yyPop, 2) return true l919: position, thunkPosition = position0, thunkPosition0 return false }, /* 169 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 l921 } doarg(yySet, -1) begin = position { position922, thunkPosition922 := position, thunkPosition if !p.rules[ruleSpnl]() { goto l922 } if !matchString("[]") { goto l922 } goto l923 l922: position, thunkPosition = position922, thunkPosition922 } l923: end = position do(72) doarg(yyPop, 1) return true l921: position, thunkPosition = position0, thunkPosition0 return false }, /* 170 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 l924 } doarg(yySet, -2) if !p.rules[ruleSpnl]() { goto l924 } if !matchChar('(') { goto l924 } if !p.rules[ruleSp]() { goto l924 } if !p.rules[ruleSource]() { goto l924 } doarg(yySet, -1) if !p.rules[ruleSpnl]() { goto l924 } if !p.rules[ruleTitle]() { goto l924 } doarg(yySet, -3) if !p.rules[ruleSp]() { goto l924 } if !matchChar(')') { goto l924 } do(73) doarg(yyPop, 3) return true l924: position, thunkPosition = position0, thunkPosition0 return false }, /* 171 Source <- ((('<' < SourceContents > '>') / (< SourceContents >)) { yy = mk_str(yytext) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position926, thunkPosition926 := position, thunkPosition if !matchChar('<') { goto l927 } begin = position if !p.rules[ruleSourceContents]() { goto l927 } end = position if !matchChar('>') { goto l927 } goto l926 l927: position, thunkPosition = position926, thunkPosition926 begin = position if !p.rules[ruleSourceContents]() { goto l925 } end = position } l926: do(74) return true l925: position, thunkPosition = position0, thunkPosition0 return false }, /* 172 SourceContents <- (((!'(' !')' !'>' Nonspacechar)+ / ('(' SourceContents ')'))* / '') */ func() bool { position0, thunkPosition0 := position, thunkPosition { position929, thunkPosition929 := position, thunkPosition l931: { position932, thunkPosition932 := position, thunkPosition { position933, thunkPosition933 := position, thunkPosition if peekChar('(') { goto l934 } if peekChar(')') { goto l934 } if peekChar('>') { goto l934 } if !p.rules[ruleNonspacechar]() { goto l934 } l935: { position936, thunkPosition936 := position, thunkPosition if peekChar('(') { goto l936 } if peekChar(')') { goto l936 } if peekChar('>') { goto l936 } if !p.rules[ruleNonspacechar]() { goto l936 } goto l935 l936: position, thunkPosition = position936, thunkPosition936 } goto l933 l934: position, thunkPosition = position933, thunkPosition933 if !matchChar('(') { goto l932 } if !p.rules[ruleSourceContents]() { goto l932 } if !matchChar(')') { goto l932 } } l933: goto l931 l932: position, thunkPosition = position932, thunkPosition932 } goto l929 _, _ = position929, thunkPosition929 } l929: return true _, _ = position0, thunkPosition0 return false }, /* 173 Title <- ((TitleSingle / TitleDouble / (< '' >)) { yy = mk_str(yytext) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position938, thunkPosition938 := position, thunkPosition if !p.rules[ruleTitleSingle]() { goto l939 } goto l938 l939: position, thunkPosition = position938, thunkPosition938 if !p.rules[ruleTitleDouble]() { goto l940 } goto l938 l940: position, thunkPosition = position938, thunkPosition938 begin = position if !matchString("") { goto l937 } end = position } l938: do(75) return true l937: position, thunkPosition = position0, thunkPosition0 return false }, /* 174 TitleSingle <- ('\'' < (!('\'' Sp (')' / Newline)) .)* > '\'') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('\'') { goto l941 } begin = position l942: { position943, thunkPosition943 := position, thunkPosition { position944, thunkPosition944 := position, thunkPosition if !matchChar('\'') { goto l944 } if !p.rules[ruleSp]() { goto l944 } { position945, thunkPosition945 := position, thunkPosition if !matchChar(')') { goto l946 } goto l945 l946: position, thunkPosition = position945, thunkPosition945 if !p.rules[ruleNewline]() { goto l944 } } l945: goto l943 l944: position, thunkPosition = position944, thunkPosition944 } if !matchDot() { goto l943 } goto l942 l943: position, thunkPosition = position943, thunkPosition943 } end = position if !matchChar('\'') { goto l941 } return true l941: position, thunkPosition = position0, thunkPosition0 return false }, /* 175 TitleDouble <- ('"' < (!('"' Sp (')' / Newline)) .)* > '"') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('"') { goto l947 } begin = position l948: { position949, thunkPosition949 := position, thunkPosition { position950, thunkPosition950 := position, thunkPosition if !matchChar('"') { goto l950 } if !p.rules[ruleSp]() { goto l950 } { position951, thunkPosition951 := position, thunkPosition if !matchChar(')') { goto l952 } goto l951 l952: position, thunkPosition = position951, thunkPosition951 if !p.rules[ruleNewline]() { goto l950 } } l951: goto l949 l950: position, thunkPosition = position950, thunkPosition950 } if !matchDot() { goto l949 } goto l948 l949: position, thunkPosition = position949, thunkPosition949 } end = position if !matchChar('"') { goto l947 } return true l947: position, thunkPosition = position0, thunkPosition0 return false }, /* 176 AutoLink <- (AutoLinkUrl / AutoLinkEmail) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position954, thunkPosition954 := position, thunkPosition if !p.rules[ruleAutoLinkUrl]() { goto l955 } goto l954 l955: position, thunkPosition = position954, thunkPosition954 if !p.rules[ruleAutoLinkEmail]() { goto l953 } } l954: return true l953: position, thunkPosition = position0, thunkPosition0 return false }, /* 177 AutoLinkUrl <- ('<' < [A-Za-z]+ '://' (!Newline !'>' .)+ > '>' { yy = mk_link(mk_str(yytext), yytext, "") }) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l956 } begin = position if !matchClass(4) { goto l956 } l957: { position958, thunkPosition958 := position, thunkPosition if !matchClass(4) { goto l958 } goto l957 l958: position, thunkPosition = position958, thunkPosition958 } if !matchString("://") { goto l956 } { position961, thunkPosition961 := position, thunkPosition if !p.rules[ruleNewline]() { goto l961 } goto l956 l961: position, thunkPosition = position961, thunkPosition961 } if peekChar('>') { goto l956 } if !matchDot() { goto l956 } l959: { position960, thunkPosition960 := position, thunkPosition { position962, thunkPosition962 := position, thunkPosition if !p.rules[ruleNewline]() { goto l962 } goto l960 l962: position, thunkPosition = position962, thunkPosition962 } if peekChar('>') { goto l960 } if !matchDot() { goto l960 } goto l959 l960: position, thunkPosition = position960, thunkPosition960 } end = position if !matchChar('>') { goto l956 } do(76) return true l956: position, thunkPosition = position0, thunkPosition0 return false }, /* 178 AutoLinkEmail <- ('<' < [-A-Za-z0-9+_]+ '@' (!Newline !'>' .)+ > '>' { yy = mk_link(mk_str(yytext), "mailto:"+yytext, "") }) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l963 } begin = position if !matchClass(9) { goto l963 } l964: { position965, thunkPosition965 := position, thunkPosition if !matchClass(9) { goto l965 } goto l964 l965: position, thunkPosition = position965, thunkPosition965 } if !matchChar('@') { goto l963 } { position968, thunkPosition968 := position, thunkPosition if !p.rules[ruleNewline]() { goto l968 } goto l963 l968: position, thunkPosition = position968, thunkPosition968 } if peekChar('>') { goto l963 } if !matchDot() { goto l963 } l966: { position967, thunkPosition967 := position, thunkPosition { position969, thunkPosition969 := position, thunkPosition if !p.rules[ruleNewline]() { goto l969 } goto l967 l969: position, thunkPosition = position969, thunkPosition969 } if peekChar('>') { goto l967 } if !matchDot() { goto l967 } goto l966 l967: position, thunkPosition = position967, thunkPosition967 } end = position if !matchChar('>') { goto l963 } do(77) return true l963: position, thunkPosition = position0, thunkPosition0 return false }, /* 179 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 l970 } { position971, thunkPosition971 := position, thunkPosition if !matchString("[]") { goto l971 } goto l970 l971: position, thunkPosition = position971, thunkPosition971 } if !p.rules[ruleLabel]() { goto l970 } doarg(yySet, -2) if !matchChar(':') { goto l970 } if !p.rules[ruleSpnl]() { goto l970 } if !p.rules[ruleRefSrc]() { goto l970 } doarg(yySet, -1) if !p.rules[ruleSpnl]() { goto l970 } if !p.rules[ruleRefTitle]() { goto l970 } doarg(yySet, -3) l972: { position973, thunkPosition973 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l973 } goto l972 l973: position, thunkPosition = position973, thunkPosition973 } do(78) doarg(yyPop, 3) return true l970: position, thunkPosition = position0, thunkPosition0 return false }, /* 180 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 l974 } { position975, thunkPosition975 := position, thunkPosition if peekChar('^') { goto l976 } if !( p.extension.Notes ) { goto l976 } goto l975 l976: position, thunkPosition = position975, thunkPosition975 if !peekDot() { goto l974 } if !( !p.extension.Notes ) { goto l974 } } l975: if !p.rules[ruleStartList]() { goto l974 } doarg(yySet, -1) l977: { position978, thunkPosition978 := position, thunkPosition if peekChar(']') { goto l978 } if !p.rules[ruleInline]() { goto l978 } do(79) goto l977 l978: position, thunkPosition = position978, thunkPosition978 } if !matchChar(']') { goto l974 } do(80) doarg(yyPop, 1) return true l974: position, thunkPosition = position0, thunkPosition0 return false }, /* 181 RefSrc <- (< Nonspacechar+ > { yy = mk_str(yytext) yy.key = HTML }) */ func() bool { position0, thunkPosition0 := position, thunkPosition begin = position if !p.rules[ruleNonspacechar]() { goto l979 } l980: { position981, thunkPosition981 := position, thunkPosition if !p.rules[ruleNonspacechar]() { goto l981 } goto l980 l981: position, thunkPosition = position981, thunkPosition981 } end = position do(81) return true l979: position, thunkPosition = position0, thunkPosition0 return false }, /* 182 RefTitle <- ((RefTitleSingle / RefTitleDouble / RefTitleParens / EmptyTitle) { yy = mk_str(yytext) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position983, thunkPosition983 := position, thunkPosition if !p.rules[ruleRefTitleSingle]() { goto l984 } goto l983 l984: position, thunkPosition = position983, thunkPosition983 if !p.rules[ruleRefTitleDouble]() { goto l985 } goto l983 l985: position, thunkPosition = position983, thunkPosition983 if !p.rules[ruleRefTitleParens]() { goto l986 } goto l983 l986: position, thunkPosition = position983, thunkPosition983 if !p.rules[ruleEmptyTitle]() { goto l982 } } l983: do(82) return true l982: position, thunkPosition = position0, thunkPosition0 return false }, /* 183 EmptyTitle <- (< '' >) */ func() bool { position0, thunkPosition0 := position, thunkPosition begin = position if !matchString("") { goto l987 } end = position return true l987: position, thunkPosition = position0, thunkPosition0 return false }, /* 184 RefTitleSingle <- ('\'' < (!(('\'' Sp Newline) / Newline) .)* > '\'') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('\'') { goto l988 } begin = position l989: { position990, thunkPosition990 := position, thunkPosition { position991, thunkPosition991 := position, thunkPosition { position992, thunkPosition992 := position, thunkPosition if !matchChar('\'') { goto l993 } if !p.rules[ruleSp]() { goto l993 } if !p.rules[ruleNewline]() { goto l993 } goto l992 l993: position, thunkPosition = position992, thunkPosition992 if !p.rules[ruleNewline]() { goto l991 } } l992: goto l990 l991: position, thunkPosition = position991, thunkPosition991 } if !matchDot() { goto l990 } goto l989 l990: position, thunkPosition = position990, thunkPosition990 } end = position if !matchChar('\'') { goto l988 } return true l988: position, thunkPosition = position0, thunkPosition0 return false }, /* 185 RefTitleDouble <- ('"' < (!(('"' Sp Newline) / Newline) .)* > '"') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('"') { goto l994 } begin = position l995: { position996, thunkPosition996 := position, thunkPosition { position997, thunkPosition997 := position, thunkPosition { position998, thunkPosition998 := position, thunkPosition if !matchChar('"') { goto l999 } if !p.rules[ruleSp]() { goto l999 } if !p.rules[ruleNewline]() { goto l999 } goto l998 l999: position, thunkPosition = position998, thunkPosition998 if !p.rules[ruleNewline]() { goto l997 } } l998: goto l996 l997: position, thunkPosition = position997, thunkPosition997 } if !matchDot() { goto l996 } goto l995 l996: position, thunkPosition = position996, thunkPosition996 } end = position if !matchChar('"') { goto l994 } return true l994: position, thunkPosition = position0, thunkPosition0 return false }, /* 186 RefTitleParens <- ('(' < (!((')' Sp Newline) / Newline) .)* > ')') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('(') { goto l1000 } begin = position l1001: { position1002, thunkPosition1002 := position, thunkPosition { position1003, thunkPosition1003 := position, thunkPosition { position1004, thunkPosition1004 := position, thunkPosition if !matchChar(')') { goto l1005 } if !p.rules[ruleSp]() { goto l1005 } if !p.rules[ruleNewline]() { goto l1005 } goto l1004 l1005: position, thunkPosition = position1004, thunkPosition1004 if !p.rules[ruleNewline]() { goto l1003 } } l1004: goto l1002 l1003: position, thunkPosition = position1003, thunkPosition1003 } if !matchDot() { goto l1002 } goto l1001 l1002: position, thunkPosition = position1002, thunkPosition1002 } end = position if !matchChar(')') { goto l1000 } return true l1000: position, thunkPosition = position0, thunkPosition0 return false }, /* 187 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 l1006 } doarg(yySet, -1) l1007: { position1008, thunkPosition1008 := position, thunkPosition { position1009, thunkPosition1009 := position, thunkPosition if !p.rules[ruleReference]() { goto l1010 } doarg(yySet, -2) do(83) goto l1009 l1010: position, thunkPosition = position1009, thunkPosition1009 if !p.rules[ruleSkipBlock]() { goto l1008 } } l1009: goto l1007 l1008: position, thunkPosition = position1008, thunkPosition1008 } do(84) if !(commit(thunkPosition0)) { goto l1006 } doarg(yyPop, 2) return true l1006: position, thunkPosition = position0, thunkPosition0 return false }, /* 188 Ticks1 <- ('`' !'`') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('`') { goto l1011 } if peekChar('`') { goto l1011 } return true l1011: position, thunkPosition = position0, thunkPosition0 return false }, /* 189 Ticks2 <- ('``' !'`') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchString("``") { goto l1012 } if peekChar('`') { goto l1012 } return true l1012: position, thunkPosition = position0, thunkPosition0 return false }, /* 190 Ticks3 <- ('```' !'`') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchString("```") { goto l1013 } if peekChar('`') { goto l1013 } return true l1013: position, thunkPosition = position0, thunkPosition0 return false }, /* 191 Ticks4 <- ('````' !'`') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchString("````") { goto l1014 } if peekChar('`') { goto l1014 } return true l1014: position, thunkPosition = position0, thunkPosition0 return false }, /* 192 Ticks5 <- ('`````' !'`') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchString("`````") { goto l1015 } if peekChar('`') { goto l1015 } return true l1015: position, thunkPosition = position0, thunkPosition0 return false }, /* 193 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 { position1017, thunkPosition1017 := position, thunkPosition if !p.rules[ruleTicks1]() { goto l1018 } if !p.rules[ruleSp]() { goto l1018 } begin = position { position1021, thunkPosition1021 := position, thunkPosition if peekChar('`') { goto l1022 } if !p.rules[ruleNonspacechar]() { goto l1022 } l1023: { position1024, thunkPosition1024 := position, thunkPosition if peekChar('`') { goto l1024 } if !p.rules[ruleNonspacechar]() { goto l1024 } goto l1023 l1024: position, thunkPosition = position1024, thunkPosition1024 } goto l1021 l1022: position, thunkPosition = position1021, thunkPosition1021 { position1026, thunkPosition1026 := position, thunkPosition if !p.rules[ruleTicks1]() { goto l1026 } goto l1025 l1026: position, thunkPosition = position1026, thunkPosition1026 } if !matchChar('`') { goto l1025 } l1027: { position1028, thunkPosition1028 := position, thunkPosition if !matchChar('`') { goto l1028 } goto l1027 l1028: position, thunkPosition = position1028, thunkPosition1028 } goto l1021 l1025: position, thunkPosition = position1021, thunkPosition1021 { position1029, thunkPosition1029 := position, thunkPosition if !p.rules[ruleSp]() { goto l1029 } if !p.rules[ruleTicks1]() { goto l1029 } goto l1018 l1029: position, thunkPosition = position1029, thunkPosition1029 } { position1030, thunkPosition1030 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1031 } goto l1030 l1031: position, thunkPosition = position1030, thunkPosition1030 if !p.rules[ruleNewline]() { goto l1018 } { position1032, thunkPosition1032 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1032 } goto l1018 l1032: position, thunkPosition = position1032, thunkPosition1032 } } l1030: } l1021: l1019: { position1020, thunkPosition1020 := position, thunkPosition { position1033, thunkPosition1033 := position, thunkPosition if peekChar('`') { goto l1034 } if !p.rules[ruleNonspacechar]() { goto l1034 } l1035: { position1036, thunkPosition1036 := position, thunkPosition if peekChar('`') { goto l1036 } if !p.rules[ruleNonspacechar]() { goto l1036 } goto l1035 l1036: position, thunkPosition = position1036, thunkPosition1036 } goto l1033 l1034: position, thunkPosition = position1033, thunkPosition1033 { position1038, thunkPosition1038 := position, thunkPosition if !p.rules[ruleTicks1]() { goto l1038 } goto l1037 l1038: position, thunkPosition = position1038, thunkPosition1038 } if !matchChar('`') { goto l1037 } l1039: { position1040, thunkPosition1040 := position, thunkPosition if !matchChar('`') { goto l1040 } goto l1039 l1040: position, thunkPosition = position1040, thunkPosition1040 } goto l1033 l1037: position, thunkPosition = position1033, thunkPosition1033 { position1041, thunkPosition1041 := position, thunkPosition if !p.rules[ruleSp]() { goto l1041 } if !p.rules[ruleTicks1]() { goto l1041 } goto l1020 l1041: position, thunkPosition = position1041, thunkPosition1041 } { position1042, thunkPosition1042 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1043 } goto l1042 l1043: position, thunkPosition = position1042, thunkPosition1042 if !p.rules[ruleNewline]() { goto l1020 } { position1044, thunkPosition1044 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1044 } goto l1020 l1044: position, thunkPosition = position1044, thunkPosition1044 } } l1042: } l1033: goto l1019 l1020: position, thunkPosition = position1020, thunkPosition1020 } end = position if !p.rules[ruleSp]() { goto l1018 } if !p.rules[ruleTicks1]() { goto l1018 } goto l1017 l1018: position, thunkPosition = position1017, thunkPosition1017 if !p.rules[ruleTicks2]() { goto l1045 } if !p.rules[ruleSp]() { goto l1045 } begin = position { position1048, thunkPosition1048 := position, thunkPosition if peekChar('`') { goto l1049 } if !p.rules[ruleNonspacechar]() { goto l1049 } l1050: { position1051, thunkPosition1051 := position, thunkPosition if peekChar('`') { goto l1051 } if !p.rules[ruleNonspacechar]() { goto l1051 } goto l1050 l1051: position, thunkPosition = position1051, thunkPosition1051 } goto l1048 l1049: position, thunkPosition = position1048, thunkPosition1048 { position1053, thunkPosition1053 := position, thunkPosition if !p.rules[ruleTicks2]() { goto l1053 } goto l1052 l1053: position, thunkPosition = position1053, thunkPosition1053 } if !matchChar('`') { goto l1052 } l1054: { position1055, thunkPosition1055 := position, thunkPosition if !matchChar('`') { goto l1055 } goto l1054 l1055: position, thunkPosition = position1055, thunkPosition1055 } goto l1048 l1052: position, thunkPosition = position1048, thunkPosition1048 { position1056, thunkPosition1056 := position, thunkPosition if !p.rules[ruleSp]() { goto l1056 } if !p.rules[ruleTicks2]() { goto l1056 } goto l1045 l1056: position, thunkPosition = position1056, thunkPosition1056 } { position1057, thunkPosition1057 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1058 } goto l1057 l1058: position, thunkPosition = position1057, thunkPosition1057 if !p.rules[ruleNewline]() { goto l1045 } { position1059, thunkPosition1059 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1059 } goto l1045 l1059: position, thunkPosition = position1059, thunkPosition1059 } } l1057: } l1048: l1046: { position1047, thunkPosition1047 := position, thunkPosition { position1060, thunkPosition1060 := position, thunkPosition if peekChar('`') { goto l1061 } if !p.rules[ruleNonspacechar]() { goto l1061 } l1062: { position1063, thunkPosition1063 := position, thunkPosition if peekChar('`') { goto l1063 } if !p.rules[ruleNonspacechar]() { goto l1063 } goto l1062 l1063: position, thunkPosition = position1063, thunkPosition1063 } goto l1060 l1061: position, thunkPosition = position1060, thunkPosition1060 { position1065, thunkPosition1065 := position, thunkPosition if !p.rules[ruleTicks2]() { goto l1065 } goto l1064 l1065: position, thunkPosition = position1065, thunkPosition1065 } if !matchChar('`') { goto l1064 } l1066: { position1067, thunkPosition1067 := position, thunkPosition if !matchChar('`') { goto l1067 } goto l1066 l1067: position, thunkPosition = position1067, thunkPosition1067 } goto l1060 l1064: position, thunkPosition = position1060, thunkPosition1060 { position1068, thunkPosition1068 := position, thunkPosition if !p.rules[ruleSp]() { goto l1068 } if !p.rules[ruleTicks2]() { goto l1068 } goto l1047 l1068: position, thunkPosition = position1068, thunkPosition1068 } { position1069, thunkPosition1069 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1070 } goto l1069 l1070: position, thunkPosition = position1069, thunkPosition1069 if !p.rules[ruleNewline]() { goto l1047 } { position1071, thunkPosition1071 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1071 } goto l1047 l1071: position, thunkPosition = position1071, thunkPosition1071 } } l1069: } l1060: goto l1046 l1047: position, thunkPosition = position1047, thunkPosition1047 } end = position if !p.rules[ruleSp]() { goto l1045 } if !p.rules[ruleTicks2]() { goto l1045 } goto l1017 l1045: position, thunkPosition = position1017, thunkPosition1017 if !p.rules[ruleTicks3]() { goto l1072 } if !p.rules[ruleSp]() { goto l1072 } begin = position { position1075, thunkPosition1075 := position, thunkPosition if peekChar('`') { goto l1076 } if !p.rules[ruleNonspacechar]() { goto l1076 } l1077: { position1078, thunkPosition1078 := position, thunkPosition if peekChar('`') { goto l1078 } if !p.rules[ruleNonspacechar]() { goto l1078 } goto l1077 l1078: position, thunkPosition = position1078, thunkPosition1078 } goto l1075 l1076: position, thunkPosition = position1075, thunkPosition1075 { position1080, thunkPosition1080 := position, thunkPosition if !p.rules[ruleTicks3]() { goto l1080 } goto l1079 l1080: position, thunkPosition = position1080, thunkPosition1080 } if !matchChar('`') { goto l1079 } l1081: { position1082, thunkPosition1082 := position, thunkPosition if !matchChar('`') { goto l1082 } goto l1081 l1082: position, thunkPosition = position1082, thunkPosition1082 } goto l1075 l1079: position, thunkPosition = position1075, thunkPosition1075 { position1083, thunkPosition1083 := position, thunkPosition if !p.rules[ruleSp]() { goto l1083 } if !p.rules[ruleTicks3]() { goto l1083 } goto l1072 l1083: position, thunkPosition = position1083, thunkPosition1083 } { position1084, thunkPosition1084 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1085 } goto l1084 l1085: position, thunkPosition = position1084, thunkPosition1084 if !p.rules[ruleNewline]() { goto l1072 } { position1086, thunkPosition1086 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1086 } goto l1072 l1086: position, thunkPosition = position1086, thunkPosition1086 } } l1084: } l1075: l1073: { position1074, thunkPosition1074 := position, thunkPosition { position1087, thunkPosition1087 := position, thunkPosition if peekChar('`') { goto l1088 } if !p.rules[ruleNonspacechar]() { goto l1088 } l1089: { position1090, thunkPosition1090 := position, thunkPosition if peekChar('`') { goto l1090 } if !p.rules[ruleNonspacechar]() { goto l1090 } goto l1089 l1090: position, thunkPosition = position1090, thunkPosition1090 } goto l1087 l1088: position, thunkPosition = position1087, thunkPosition1087 { position1092, thunkPosition1092 := position, thunkPosition if !p.rules[ruleTicks3]() { goto l1092 } goto l1091 l1092: position, thunkPosition = position1092, thunkPosition1092 } if !matchChar('`') { goto l1091 } l1093: { position1094, thunkPosition1094 := position, thunkPosition if !matchChar('`') { goto l1094 } goto l1093 l1094: position, thunkPosition = position1094, thunkPosition1094 } goto l1087 l1091: position, thunkPosition = position1087, thunkPosition1087 { position1095, thunkPosition1095 := position, thunkPosition if !p.rules[ruleSp]() { goto l1095 } if !p.rules[ruleTicks3]() { goto l1095 } goto l1074 l1095: position, thunkPosition = position1095, thunkPosition1095 } { position1096, thunkPosition1096 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1097 } goto l1096 l1097: position, thunkPosition = position1096, thunkPosition1096 if !p.rules[ruleNewline]() { goto l1074 } { position1098, thunkPosition1098 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1098 } goto l1074 l1098: position, thunkPosition = position1098, thunkPosition1098 } } l1096: } l1087: goto l1073 l1074: position, thunkPosition = position1074, thunkPosition1074 } end = position if !p.rules[ruleSp]() { goto l1072 } if !p.rules[ruleTicks3]() { goto l1072 } goto l1017 l1072: position, thunkPosition = position1017, thunkPosition1017 if !p.rules[ruleTicks4]() { goto l1099 } if !p.rules[ruleSp]() { goto l1099 } begin = position { position1102, thunkPosition1102 := position, thunkPosition if peekChar('`') { goto l1103 } if !p.rules[ruleNonspacechar]() { goto l1103 } l1104: { position1105, thunkPosition1105 := position, thunkPosition if peekChar('`') { goto l1105 } if !p.rules[ruleNonspacechar]() { goto l1105 } goto l1104 l1105: position, thunkPosition = position1105, thunkPosition1105 } goto l1102 l1103: position, thunkPosition = position1102, thunkPosition1102 { position1107, thunkPosition1107 := position, thunkPosition if !p.rules[ruleTicks4]() { goto l1107 } goto l1106 l1107: position, thunkPosition = position1107, thunkPosition1107 } if !matchChar('`') { goto l1106 } l1108: { position1109, thunkPosition1109 := position, thunkPosition if !matchChar('`') { goto l1109 } goto l1108 l1109: position, thunkPosition = position1109, thunkPosition1109 } goto l1102 l1106: position, thunkPosition = position1102, thunkPosition1102 { position1110, thunkPosition1110 := position, thunkPosition if !p.rules[ruleSp]() { goto l1110 } if !p.rules[ruleTicks4]() { goto l1110 } goto l1099 l1110: position, thunkPosition = position1110, thunkPosition1110 } { position1111, thunkPosition1111 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1112 } goto l1111 l1112: position, thunkPosition = position1111, thunkPosition1111 if !p.rules[ruleNewline]() { goto l1099 } { position1113, thunkPosition1113 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1113 } goto l1099 l1113: position, thunkPosition = position1113, thunkPosition1113 } } l1111: } l1102: l1100: { position1101, thunkPosition1101 := position, thunkPosition { position1114, thunkPosition1114 := position, thunkPosition if peekChar('`') { goto l1115 } if !p.rules[ruleNonspacechar]() { goto l1115 } l1116: { position1117, thunkPosition1117 := position, thunkPosition if peekChar('`') { goto l1117 } if !p.rules[ruleNonspacechar]() { goto l1117 } goto l1116 l1117: position, thunkPosition = position1117, thunkPosition1117 } goto l1114 l1115: position, thunkPosition = position1114, thunkPosition1114 { position1119, thunkPosition1119 := position, thunkPosition if !p.rules[ruleTicks4]() { goto l1119 } goto l1118 l1119: position, thunkPosition = position1119, thunkPosition1119 } if !matchChar('`') { goto l1118 } l1120: { position1121, thunkPosition1121 := position, thunkPosition if !matchChar('`') { goto l1121 } goto l1120 l1121: position, thunkPosition = position1121, thunkPosition1121 } goto l1114 l1118: position, thunkPosition = position1114, thunkPosition1114 { position1122, thunkPosition1122 := position, thunkPosition if !p.rules[ruleSp]() { goto l1122 } if !p.rules[ruleTicks4]() { goto l1122 } goto l1101 l1122: position, thunkPosition = position1122, thunkPosition1122 } { position1123, thunkPosition1123 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1124 } goto l1123 l1124: position, thunkPosition = position1123, thunkPosition1123 if !p.rules[ruleNewline]() { goto l1101 } { position1125, thunkPosition1125 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1125 } goto l1101 l1125: position, thunkPosition = position1125, thunkPosition1125 } } l1123: } l1114: goto l1100 l1101: position, thunkPosition = position1101, thunkPosition1101 } end = position if !p.rules[ruleSp]() { goto l1099 } if !p.rules[ruleTicks4]() { goto l1099 } goto l1017 l1099: position, thunkPosition = position1017, thunkPosition1017 if !p.rules[ruleTicks5]() { goto l1016 } if !p.rules[ruleSp]() { goto l1016 } begin = position { position1128, thunkPosition1128 := position, thunkPosition if peekChar('`') { goto l1129 } if !p.rules[ruleNonspacechar]() { goto l1129 } l1130: { position1131, thunkPosition1131 := position, thunkPosition if peekChar('`') { goto l1131 } if !p.rules[ruleNonspacechar]() { goto l1131 } goto l1130 l1131: position, thunkPosition = position1131, thunkPosition1131 } goto l1128 l1129: position, thunkPosition = position1128, thunkPosition1128 { position1133, thunkPosition1133 := position, thunkPosition if !p.rules[ruleTicks5]() { goto l1133 } goto l1132 l1133: position, thunkPosition = position1133, thunkPosition1133 } if !matchChar('`') { goto l1132 } l1134: { position1135, thunkPosition1135 := position, thunkPosition if !matchChar('`') { goto l1135 } goto l1134 l1135: position, thunkPosition = position1135, thunkPosition1135 } goto l1128 l1132: position, thunkPosition = position1128, thunkPosition1128 { position1136, thunkPosition1136 := position, thunkPosition if !p.rules[ruleSp]() { goto l1136 } if !p.rules[ruleTicks5]() { goto l1136 } goto l1016 l1136: position, thunkPosition = position1136, thunkPosition1136 } { position1137, thunkPosition1137 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1138 } goto l1137 l1138: position, thunkPosition = position1137, thunkPosition1137 if !p.rules[ruleNewline]() { goto l1016 } { position1139, thunkPosition1139 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1139 } goto l1016 l1139: position, thunkPosition = position1139, thunkPosition1139 } } l1137: } l1128: l1126: { position1127, thunkPosition1127 := position, thunkPosition { position1140, thunkPosition1140 := position, thunkPosition if peekChar('`') { goto l1141 } if !p.rules[ruleNonspacechar]() { goto l1141 } l1142: { position1143, thunkPosition1143 := position, thunkPosition if peekChar('`') { goto l1143 } if !p.rules[ruleNonspacechar]() { goto l1143 } goto l1142 l1143: position, thunkPosition = position1143, thunkPosition1143 } goto l1140 l1141: position, thunkPosition = position1140, thunkPosition1140 { position1145, thunkPosition1145 := position, thunkPosition if !p.rules[ruleTicks5]() { goto l1145 } goto l1144 l1145: position, thunkPosition = position1145, thunkPosition1145 } if !matchChar('`') { goto l1144 } l1146: { position1147, thunkPosition1147 := position, thunkPosition if !matchChar('`') { goto l1147 } goto l1146 l1147: position, thunkPosition = position1147, thunkPosition1147 } goto l1140 l1144: position, thunkPosition = position1140, thunkPosition1140 { position1148, thunkPosition1148 := position, thunkPosition if !p.rules[ruleSp]() { goto l1148 } if !p.rules[ruleTicks5]() { goto l1148 } goto l1127 l1148: position, thunkPosition = position1148, thunkPosition1148 } { position1149, thunkPosition1149 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1150 } goto l1149 l1150: position, thunkPosition = position1149, thunkPosition1149 if !p.rules[ruleNewline]() { goto l1127 } { position1151, thunkPosition1151 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1151 } goto l1127 l1151: position, thunkPosition = position1151, thunkPosition1151 } } l1149: } l1140: goto l1126 l1127: position, thunkPosition = position1127, thunkPosition1127 } end = position if !p.rules[ruleSp]() { goto l1016 } if !p.rules[ruleTicks5]() { goto l1016 } } l1017: do(85) return true l1016: position, thunkPosition = position0, thunkPosition0 return false }, /* 194 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 { position1153, thunkPosition1153 := position, thunkPosition if !p.rules[ruleHtmlComment]() { goto l1154 } goto l1153 l1154: position, thunkPosition = position1153, thunkPosition1153 if !p.rules[ruleHtmlTag]() { goto l1152 } } l1153: end = position do(86) return true l1152: position, thunkPosition = position0, thunkPosition0 return false }, /* 195 BlankLine <- (Sp Newline) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleSp]() { goto l1155 } if !p.rules[ruleNewline]() { goto l1155 } return true l1155: position, thunkPosition = position0, thunkPosition0 return false }, /* 196 Quoted <- (('"' (!'"' .)* '"') / ('\'' (!'\'' .)* '\'')) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1157, thunkPosition1157 := position, thunkPosition if !matchChar('"') { goto l1158 } l1159: { position1160, thunkPosition1160 := position, thunkPosition if peekChar('"') { goto l1160 } if !matchDot() { goto l1160 } goto l1159 l1160: position, thunkPosition = position1160, thunkPosition1160 } if !matchChar('"') { goto l1158 } goto l1157 l1158: position, thunkPosition = position1157, thunkPosition1157 if !matchChar('\'') { goto l1156 } l1161: { position1162, thunkPosition1162 := position, thunkPosition if peekChar('\'') { goto l1162 } if !matchDot() { goto l1162 } goto l1161 l1162: position, thunkPosition = position1162, thunkPosition1162 } if !matchChar('\'') { goto l1156 } } l1157: return true l1156: position, thunkPosition = position0, thunkPosition0 return false }, /* 197 HtmlAttribute <- ((AlphanumericAscii / '-')+ Spnl ('=' Spnl (Quoted / (!'>' Nonspacechar)+))? Spnl) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1166, thunkPosition1166 := position, thunkPosition if !p.rules[ruleAlphanumericAscii]() { goto l1167 } goto l1166 l1167: position, thunkPosition = position1166, thunkPosition1166 if !matchChar('-') { goto l1163 } } l1166: l1164: { position1165, thunkPosition1165 := position, thunkPosition { position1168, thunkPosition1168 := position, thunkPosition if !p.rules[ruleAlphanumericAscii]() { goto l1169 } goto l1168 l1169: position, thunkPosition = position1168, thunkPosition1168 if !matchChar('-') { goto l1165 } } l1168: goto l1164 l1165: position, thunkPosition = position1165, thunkPosition1165 } if !p.rules[ruleSpnl]() { goto l1163 } { position1170, thunkPosition1170 := position, thunkPosition if !matchChar('=') { goto l1170 } if !p.rules[ruleSpnl]() { goto l1170 } { position1172, thunkPosition1172 := position, thunkPosition if !p.rules[ruleQuoted]() { goto l1173 } goto l1172 l1173: position, thunkPosition = position1172, thunkPosition1172 if peekChar('>') { goto l1170 } if !p.rules[ruleNonspacechar]() { goto l1170 } l1174: { position1175, thunkPosition1175 := position, thunkPosition if peekChar('>') { goto l1175 } if !p.rules[ruleNonspacechar]() { goto l1175 } goto l1174 l1175: position, thunkPosition = position1175, thunkPosition1175 } } l1172: goto l1171 l1170: position, thunkPosition = position1170, thunkPosition1170 } l1171: if !p.rules[ruleSpnl]() { goto l1163 } return true l1163: position, thunkPosition = position0, thunkPosition0 return false }, /* 198 HtmlComment <- ('' .)* '-->') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchString("") { goto l1179 } goto l1178 l1179: position, thunkPosition = position1179, thunkPosition1179 } if !matchDot() { goto l1178 } goto l1177 l1178: position, thunkPosition = position1178, thunkPosition1178 } if !matchString("-->") { goto l1176 } return true l1176: position, thunkPosition = position0, thunkPosition0 return false }, /* 199 HtmlTag <- ('<' Spnl '/'? AlphanumericAscii+ Spnl HtmlAttribute* '/'? Spnl '>') */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('<') { goto l1180 } if !p.rules[ruleSpnl]() { goto l1180 } { position1181, thunkPosition1181 := position, thunkPosition if !matchChar('/') { goto l1181 } goto l1182 l1181: position, thunkPosition = position1181, thunkPosition1181 } l1182: if !p.rules[ruleAlphanumericAscii]() { goto l1180 } l1183: { position1184, thunkPosition1184 := position, thunkPosition if !p.rules[ruleAlphanumericAscii]() { goto l1184 } goto l1183 l1184: position, thunkPosition = position1184, thunkPosition1184 } if !p.rules[ruleSpnl]() { goto l1180 } l1185: { position1186, thunkPosition1186 := position, thunkPosition if !p.rules[ruleHtmlAttribute]() { goto l1186 } goto l1185 l1186: position, thunkPosition = position1186, thunkPosition1186 } { position1187, thunkPosition1187 := position, thunkPosition if !matchChar('/') { goto l1187 } goto l1188 l1187: position, thunkPosition = position1187, thunkPosition1187 } l1188: if !p.rules[ruleSpnl]() { goto l1180 } if !matchChar('>') { goto l1180 } return true l1180: position, thunkPosition = position0, thunkPosition0 return false }, /* 200 Eof <- !. */ func() bool { position0, thunkPosition0 := position, thunkPosition if peekDot() { goto l1189 } return true l1189: position, thunkPosition = position0, thunkPosition0 return false }, /* 201 Spacechar <- (' ' / '\t') */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1191, thunkPosition1191 := position, thunkPosition if !matchChar(' ') { goto l1192 } goto l1191 l1192: position, thunkPosition = position1191, thunkPosition1191 if !matchChar('\t') { goto l1190 } } l1191: return true l1190: position, thunkPosition = position0, thunkPosition0 return false }, /* 202 Nonspacechar <- (!Spacechar !Newline .) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1194, thunkPosition1194 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1194 } goto l1193 l1194: position, thunkPosition = position1194, thunkPosition1194 } { position1195, thunkPosition1195 := position, thunkPosition if !p.rules[ruleNewline]() { goto l1195 } goto l1193 l1195: position, thunkPosition = position1195, thunkPosition1195 } if !matchDot() { goto l1193 } return true l1193: position, thunkPosition = position0, thunkPosition0 return false }, /* 203 Newline <- ('\n' / ('\r' '\n'?)) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1197, thunkPosition1197 := position, thunkPosition if !matchChar('\n') { goto l1198 } goto l1197 l1198: position, thunkPosition = position1197, thunkPosition1197 if !matchChar('\r') { goto l1196 } { position1199, thunkPosition1199 := position, thunkPosition if !matchChar('\n') { goto l1199 } goto l1200 l1199: position, thunkPosition = position1199, thunkPosition1199 } l1200: } l1197: return true l1196: position, thunkPosition = position0, thunkPosition0 return false }, /* 204 Sp <- Spacechar* */ func() bool { l1202: { position1203, thunkPosition1203 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1203 } goto l1202 l1203: position, thunkPosition = position1203, thunkPosition1203 } return true }, /* 205 Spnl <- (Sp (Newline Sp)?) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleSp]() { goto l1204 } { position1205, thunkPosition1205 := position, thunkPosition if !p.rules[ruleNewline]() { goto l1205 } if !p.rules[ruleSp]() { goto l1205 } goto l1206 l1205: position, thunkPosition = position1205, thunkPosition1205 } l1206: return true l1204: position, thunkPosition = position0, thunkPosition0 return false }, /* 206 SpecialChar <- ('*' / '_' / '`' / '&' / '[' / ']' / '<' / '!' / '#' / '\\' / ExtendedSpecialChar) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1208, thunkPosition1208 := position, thunkPosition if !matchChar('*') { goto l1209 } goto l1208 l1209: position, thunkPosition = position1208, thunkPosition1208 if !matchChar('_') { goto l1210 } goto l1208 l1210: position, thunkPosition = position1208, thunkPosition1208 if !matchChar('`') { goto l1211 } goto l1208 l1211: position, thunkPosition = position1208, thunkPosition1208 if !matchChar('&') { goto l1212 } goto l1208 l1212: position, thunkPosition = position1208, thunkPosition1208 if !matchChar('[') { goto l1213 } goto l1208 l1213: position, thunkPosition = position1208, thunkPosition1208 if !matchChar(']') { goto l1214 } goto l1208 l1214: position, thunkPosition = position1208, thunkPosition1208 if !matchChar('<') { goto l1215 } goto l1208 l1215: position, thunkPosition = position1208, thunkPosition1208 if !matchChar('!') { goto l1216 } goto l1208 l1216: position, thunkPosition = position1208, thunkPosition1208 if !matchChar('#') { goto l1217 } goto l1208 l1217: position, thunkPosition = position1208, thunkPosition1208 if !matchChar('\\') { goto l1218 } goto l1208 l1218: position, thunkPosition = position1208, thunkPosition1208 if !p.rules[ruleExtendedSpecialChar]() { goto l1207 } } l1208: return true l1207: position, thunkPosition = position0, thunkPosition0 return false }, /* 207 NormalChar <- (!(SpecialChar / Spacechar / Newline) .) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1220, thunkPosition1220 := position, thunkPosition { position1221, thunkPosition1221 := position, thunkPosition if !p.rules[ruleSpecialChar]() { goto l1222 } goto l1221 l1222: position, thunkPosition = position1221, thunkPosition1221 if !p.rules[ruleSpacechar]() { goto l1223 } goto l1221 l1223: position, thunkPosition = position1221, thunkPosition1221 if !p.rules[ruleNewline]() { goto l1220 } } l1221: goto l1219 l1220: position, thunkPosition = position1220, thunkPosition1220 } if !matchDot() { goto l1219 } return true l1219: position, thunkPosition = position0, thunkPosition0 return false }, /* 208 NonAlphanumeric <- [\000-\057\072-\100\133-\140\173-\177] */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchClass(3) { goto l1224 } return true l1224: position, thunkPosition = position0, thunkPosition0 return false }, /* 209 Alphanumeric <- ([0-9A-Za-z] / '\200' / '\201' / '\202' / '\203' / '\204' / '\205' / '\206' / '\207' / '\210' / '\211' / '\212' / '\213' / '\214' / '\215' / '\216' / '\217' / '\220' / '\221' / '\222' / '\223' / '\224' / '\225' / '\226' / '\227' / '\230' / '\231' / '\232' / '\233' / '\234' / '\235' / '\236' / '\237' / '\240' / '\241' / '\242' / '\243' / '\244' / '\245' / '\246' / '\247' / '\250' / '\251' / '\252' / '\253' / '\254' / '\255' / '\256' / '\257' / '\260' / '\261' / '\262' / '\263' / '\264' / '\265' / '\266' / '\267' / '\270' / '\271' / '\272' / '\273' / '\274' / '\275' / '\276' / '\277' / '\300' / '\301' / '\302' / '\303' / '\304' / '\305' / '\306' / '\307' / '\310' / '\311' / '\312' / '\313' / '\314' / '\315' / '\316' / '\317' / '\320' / '\321' / '\322' / '\323' / '\324' / '\325' / '\326' / '\327' / '\330' / '\331' / '\332' / '\333' / '\334' / '\335' / '\336' / '\337' / '\340' / '\341' / '\342' / '\343' / '\344' / '\345' / '\346' / '\347' / '\350' / '\351' / '\352' / '\353' / '\354' / '\355' / '\356' / '\357' / '\360' / '\361' / '\362' / '\363' / '\364' / '\365' / '\366' / '\367' / '\370' / '\371' / '\372' / '\373' / '\374' / '\375' / '\376' / '\377') */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1226, thunkPosition1226 := position, thunkPosition if !matchClass(1) { goto l1227 } goto l1226 l1227: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\200") { goto l1228 } goto l1226 l1228: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\201") { goto l1229 } goto l1226 l1229: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\202") { goto l1230 } goto l1226 l1230: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\203") { goto l1231 } goto l1226 l1231: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\204") { goto l1232 } goto l1226 l1232: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\205") { goto l1233 } goto l1226 l1233: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\206") { goto l1234 } goto l1226 l1234: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\207") { goto l1235 } goto l1226 l1235: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\210") { goto l1236 } goto l1226 l1236: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\211") { goto l1237 } goto l1226 l1237: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\212") { goto l1238 } goto l1226 l1238: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\213") { goto l1239 } goto l1226 l1239: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\214") { goto l1240 } goto l1226 l1240: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\215") { goto l1241 } goto l1226 l1241: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\216") { goto l1242 } goto l1226 l1242: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\217") { goto l1243 } goto l1226 l1243: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\220") { goto l1244 } goto l1226 l1244: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\221") { goto l1245 } goto l1226 l1245: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\222") { goto l1246 } goto l1226 l1246: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\223") { goto l1247 } goto l1226 l1247: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\224") { goto l1248 } goto l1226 l1248: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\225") { goto l1249 } goto l1226 l1249: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\226") { goto l1250 } goto l1226 l1250: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\227") { goto l1251 } goto l1226 l1251: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\230") { goto l1252 } goto l1226 l1252: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\231") { goto l1253 } goto l1226 l1253: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\232") { goto l1254 } goto l1226 l1254: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\233") { goto l1255 } goto l1226 l1255: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\234") { goto l1256 } goto l1226 l1256: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\235") { goto l1257 } goto l1226 l1257: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\236") { goto l1258 } goto l1226 l1258: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\237") { goto l1259 } goto l1226 l1259: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\240") { goto l1260 } goto l1226 l1260: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\241") { goto l1261 } goto l1226 l1261: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\242") { goto l1262 } goto l1226 l1262: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\243") { goto l1263 } goto l1226 l1263: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\244") { goto l1264 } goto l1226 l1264: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\245") { goto l1265 } goto l1226 l1265: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\246") { goto l1266 } goto l1226 l1266: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\247") { goto l1267 } goto l1226 l1267: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\250") { goto l1268 } goto l1226 l1268: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\251") { goto l1269 } goto l1226 l1269: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\252") { goto l1270 } goto l1226 l1270: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\253") { goto l1271 } goto l1226 l1271: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\254") { goto l1272 } goto l1226 l1272: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\255") { goto l1273 } goto l1226 l1273: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\256") { goto l1274 } goto l1226 l1274: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\257") { goto l1275 } goto l1226 l1275: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\260") { goto l1276 } goto l1226 l1276: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\261") { goto l1277 } goto l1226 l1277: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\262") { goto l1278 } goto l1226 l1278: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\263") { goto l1279 } goto l1226 l1279: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\264") { goto l1280 } goto l1226 l1280: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\265") { goto l1281 } goto l1226 l1281: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\266") { goto l1282 } goto l1226 l1282: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\267") { goto l1283 } goto l1226 l1283: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\270") { goto l1284 } goto l1226 l1284: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\271") { goto l1285 } goto l1226 l1285: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\272") { goto l1286 } goto l1226 l1286: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\273") { goto l1287 } goto l1226 l1287: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\274") { goto l1288 } goto l1226 l1288: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\275") { goto l1289 } goto l1226 l1289: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\276") { goto l1290 } goto l1226 l1290: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\277") { goto l1291 } goto l1226 l1291: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\300") { goto l1292 } goto l1226 l1292: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\301") { goto l1293 } goto l1226 l1293: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\302") { goto l1294 } goto l1226 l1294: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\303") { goto l1295 } goto l1226 l1295: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\304") { goto l1296 } goto l1226 l1296: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\305") { goto l1297 } goto l1226 l1297: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\306") { goto l1298 } goto l1226 l1298: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\307") { goto l1299 } goto l1226 l1299: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\310") { goto l1300 } goto l1226 l1300: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\311") { goto l1301 } goto l1226 l1301: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\312") { goto l1302 } goto l1226 l1302: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\313") { goto l1303 } goto l1226 l1303: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\314") { goto l1304 } goto l1226 l1304: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\315") { goto l1305 } goto l1226 l1305: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\316") { goto l1306 } goto l1226 l1306: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\317") { goto l1307 } goto l1226 l1307: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\320") { goto l1308 } goto l1226 l1308: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\321") { goto l1309 } goto l1226 l1309: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\322") { goto l1310 } goto l1226 l1310: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\323") { goto l1311 } goto l1226 l1311: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\324") { goto l1312 } goto l1226 l1312: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\325") { goto l1313 } goto l1226 l1313: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\326") { goto l1314 } goto l1226 l1314: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\327") { goto l1315 } goto l1226 l1315: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\330") { goto l1316 } goto l1226 l1316: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\331") { goto l1317 } goto l1226 l1317: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\332") { goto l1318 } goto l1226 l1318: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\333") { goto l1319 } goto l1226 l1319: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\334") { goto l1320 } goto l1226 l1320: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\335") { goto l1321 } goto l1226 l1321: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\336") { goto l1322 } goto l1226 l1322: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\337") { goto l1323 } goto l1226 l1323: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\340") { goto l1324 } goto l1226 l1324: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\341") { goto l1325 } goto l1226 l1325: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\342") { goto l1326 } goto l1226 l1326: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\343") { goto l1327 } goto l1226 l1327: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\344") { goto l1328 } goto l1226 l1328: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\345") { goto l1329 } goto l1226 l1329: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\346") { goto l1330 } goto l1226 l1330: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\347") { goto l1331 } goto l1226 l1331: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\350") { goto l1332 } goto l1226 l1332: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\351") { goto l1333 } goto l1226 l1333: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\352") { goto l1334 } goto l1226 l1334: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\353") { goto l1335 } goto l1226 l1335: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\354") { goto l1336 } goto l1226 l1336: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\355") { goto l1337 } goto l1226 l1337: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\356") { goto l1338 } goto l1226 l1338: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\357") { goto l1339 } goto l1226 l1339: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\360") { goto l1340 } goto l1226 l1340: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\361") { goto l1341 } goto l1226 l1341: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\362") { goto l1342 } goto l1226 l1342: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\363") { goto l1343 } goto l1226 l1343: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\364") { goto l1344 } goto l1226 l1344: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\365") { goto l1345 } goto l1226 l1345: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\366") { goto l1346 } goto l1226 l1346: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\367") { goto l1347 } goto l1226 l1347: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\370") { goto l1348 } goto l1226 l1348: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\371") { goto l1349 } goto l1226 l1349: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\372") { goto l1350 } goto l1226 l1350: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\373") { goto l1351 } goto l1226 l1351: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\374") { goto l1352 } goto l1226 l1352: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\375") { goto l1353 } goto l1226 l1353: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\376") { goto l1354 } goto l1226 l1354: position, thunkPosition = position1226, thunkPosition1226 if !matchString("\377") { goto l1225 } } l1226: return true l1225: position, thunkPosition = position0, thunkPosition0 return false }, /* 210 AlphanumericAscii <- [A-Za-z0-9] */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchClass(8) { goto l1355 } return true l1355: position, thunkPosition = position0, thunkPosition0 return false }, /* 211 Digit <- [0-9] */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchClass(7) { goto l1356 } return true l1356: position, thunkPosition = position0, thunkPosition0 return false }, /* 212 HexEntity <- (< '&' '#' [Xx] [0-9a-fA-F]+ ';' >) */ func() bool { position0, thunkPosition0 := position, thunkPosition begin = position if !matchChar('&') { goto l1357 } if !matchChar('#') { goto l1357 } if !matchClass(5) { goto l1357 } if !matchClass(0) { goto l1357 } l1358: { position1359, thunkPosition1359 := position, thunkPosition if !matchClass(0) { goto l1359 } goto l1358 l1359: position, thunkPosition = position1359, thunkPosition1359 } if !matchChar(';') { goto l1357 } end = position return true l1357: position, thunkPosition = position0, thunkPosition0 return false }, /* 213 DecEntity <- (< '&' '#' [0-9]+ > ';' >) */ func() bool { position0, thunkPosition0 := position, thunkPosition begin = position if !matchChar('&') { goto l1360 } if !matchChar('#') { goto l1360 } if !matchClass(7) { goto l1360 } l1361: { position1362, thunkPosition1362 := position, thunkPosition if !matchClass(7) { goto l1362 } goto l1361 l1362: position, thunkPosition = position1362, thunkPosition1362 } end = position if !matchChar(';') { goto l1360 } end = position return true l1360: position, thunkPosition = position0, thunkPosition0 return false }, /* 214 CharEntity <- (< '&' [A-Za-z0-9]+ ';' >) */ func() bool { position0, thunkPosition0 := position, thunkPosition begin = position if !matchChar('&') { goto l1363 } if !matchClass(8) { goto l1363 } l1364: { position1365, thunkPosition1365 := position, thunkPosition if !matchClass(8) { goto l1365 } goto l1364 l1365: position, thunkPosition = position1365, thunkPosition1365 } if !matchChar(';') { goto l1363 } end = position return true l1363: position, thunkPosition = position0, thunkPosition0 return false }, /* 215 NonindentSpace <- (' ' / ' ' / ' ' / '') */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1367, thunkPosition1367 := position, thunkPosition if !matchString(" ") { goto l1368 } goto l1367 l1368: position, thunkPosition = position1367, thunkPosition1367 if !matchString(" ") { goto l1369 } goto l1367 l1369: position, thunkPosition = position1367, thunkPosition1367 if !matchChar(' ') { goto l1370 } goto l1367 l1370: position, thunkPosition = position1367, thunkPosition1367 if !matchString("") { goto l1366 } } l1367: return true l1366: position, thunkPosition = position0, thunkPosition0 return false }, /* 216 Indent <- ('\t' / ' ') */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1372, thunkPosition1372 := position, thunkPosition if !matchChar('\t') { goto l1373 } goto l1372 l1373: position, thunkPosition = position1372, thunkPosition1372 if !matchString(" ") { goto l1371 } } l1372: return true l1371: position, thunkPosition = position0, thunkPosition0 return false }, /* 217 IndentedLine <- (Indent Line) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleIndent]() { goto l1374 } if !p.rules[ruleLine]() { goto l1374 } return true l1374: position, thunkPosition = position0, thunkPosition0 return false }, /* 218 OptionallyIndentedLine <- (Indent? Line) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1376, thunkPosition1376 := position, thunkPosition if !p.rules[ruleIndent]() { goto l1376 } goto l1377 l1376: position, thunkPosition = position1376, thunkPosition1376 } l1377: if !p.rules[ruleLine]() { goto l1375 } return true l1375: position, thunkPosition = position0, thunkPosition0 return false }, /* 219 StartList <- (&. { yy = nil }) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !peekDot() { goto l1378 } do(87) return true l1378: position, thunkPosition = position0, thunkPosition0 return false }, /* 220 Line <- (RawLine { yy = mk_str(yytext) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleRawLine]() { goto l1379 } do(88) return true l1379: position, thunkPosition = position0, thunkPosition0 return false }, /* 221 RawLine <- ((< (!'\r' !'\n' .)* Newline >) / (< .+ > Eof)) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1381, thunkPosition1381 := position, thunkPosition begin = position l1383: { position1384, thunkPosition1384 := position, thunkPosition if peekChar('\r') { goto l1384 } if peekChar('\n') { goto l1384 } if !matchDot() { goto l1384 } goto l1383 l1384: position, thunkPosition = position1384, thunkPosition1384 } if !p.rules[ruleNewline]() { goto l1382 } end = position goto l1381 l1382: position, thunkPosition = position1381, thunkPosition1381 begin = position if !matchDot() { goto l1380 } l1385: { position1386, thunkPosition1386 := position, thunkPosition if !matchDot() { goto l1386 } goto l1385 l1386: position, thunkPosition = position1386, thunkPosition1386 } end = position if !p.rules[ruleEof]() { goto l1380 } } l1381: return true l1380: position, thunkPosition = position0, thunkPosition0 return false }, /* 222 SkipBlock <- (((!BlankLine RawLine)+ BlankLine*) / BlankLine+) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1388, thunkPosition1388 := position, thunkPosition { position1392, thunkPosition1392 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1392 } goto l1389 l1392: position, thunkPosition = position1392, thunkPosition1392 } if !p.rules[ruleRawLine]() { goto l1389 } l1390: { position1391, thunkPosition1391 := position, thunkPosition { position1393, thunkPosition1393 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1393 } goto l1391 l1393: position, thunkPosition = position1393, thunkPosition1393 } if !p.rules[ruleRawLine]() { goto l1391 } goto l1390 l1391: position, thunkPosition = position1391, thunkPosition1391 } l1394: { position1395, thunkPosition1395 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1395 } goto l1394 l1395: position, thunkPosition = position1395, thunkPosition1395 } goto l1388 l1389: position, thunkPosition = position1388, thunkPosition1388 if !p.rules[ruleBlankLine]() { goto l1387 } l1396: { position1397, thunkPosition1397 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1397 } goto l1396 l1397: position, thunkPosition = position1397, thunkPosition1397 } } l1388: return true l1387: position, thunkPosition = position0, thunkPosition0 return false }, /* 223 ExtendedSpecialChar <- ((&{ p.extension.Smart } ('.' / '-' / '\'' / '"')) / (&{ p.extension.Notes } '^')) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1399, thunkPosition1399 := position, thunkPosition if !( p.extension.Smart ) { goto l1400 } { position1401, thunkPosition1401 := position, thunkPosition if !matchChar('.') { goto l1402 } goto l1401 l1402: position, thunkPosition = position1401, thunkPosition1401 if !matchChar('-') { goto l1403 } goto l1401 l1403: position, thunkPosition = position1401, thunkPosition1401 if !matchChar('\'') { goto l1404 } goto l1401 l1404: position, thunkPosition = position1401, thunkPosition1401 if !matchChar('"') { goto l1400 } } l1401: goto l1399 l1400: position, thunkPosition = position1399, thunkPosition1399 if !( p.extension.Notes ) { goto l1398 } if !matchChar('^') { goto l1398 } } l1399: return true l1398: position, thunkPosition = position0, thunkPosition0 return false }, /* 224 Smart <- (&{ p.extension.Smart } (Ellipsis / Dash / SingleQuoted / DoubleQuoted / Apostrophe)) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !( p.extension.Smart ) { goto l1405 } { position1406, thunkPosition1406 := position, thunkPosition if !p.rules[ruleEllipsis]() { goto l1407 } goto l1406 l1407: position, thunkPosition = position1406, thunkPosition1406 if !p.rules[ruleDash]() { goto l1408 } goto l1406 l1408: position, thunkPosition = position1406, thunkPosition1406 if !p.rules[ruleSingleQuoted]() { goto l1409 } goto l1406 l1409: position, thunkPosition = position1406, thunkPosition1406 if !p.rules[ruleDoubleQuoted]() { goto l1410 } goto l1406 l1410: position, thunkPosition = position1406, thunkPosition1406 if !p.rules[ruleApostrophe]() { goto l1405 } } l1406: return true l1405: position, thunkPosition = position0, thunkPosition0 return false }, /* 225 Apostrophe <- ('\'' { yy = mk_element(APOSTROPHE) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('\'') { goto l1411 } do(89) return true l1411: position, thunkPosition = position0, thunkPosition0 return false }, /* 226 Ellipsis <- (('...' / '. . .') { yy = mk_element(ELLIPSIS) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1413, thunkPosition1413 := position, thunkPosition if !matchString("...") { goto l1414 } goto l1413 l1414: position, thunkPosition = position1413, thunkPosition1413 if !matchString(". . .") { goto l1412 } } l1413: do(90) return true l1412: position, thunkPosition = position0, thunkPosition0 return false }, /* 227 Dash <- (EmDash / EnDash) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1416, thunkPosition1416 := position, thunkPosition if !p.rules[ruleEmDash]() { goto l1417 } goto l1416 l1417: position, thunkPosition = position1416, thunkPosition1416 if !p.rules[ruleEnDash]() { goto l1415 } } l1416: return true l1415: position, thunkPosition = position0, thunkPosition0 return false }, /* 228 EnDash <- ('-' &Digit { yy = mk_element(ENDASH) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('-') { goto l1418 } { position1419, thunkPosition1419 := position, thunkPosition if !p.rules[ruleDigit]() { goto l1418 } position, thunkPosition = position1419, thunkPosition1419 } do(91) return true l1418: position, thunkPosition = position0, thunkPosition0 return false }, /* 229 EmDash <- (('---' / '--') { yy = mk_element(EMDASH) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1421, thunkPosition1421 := position, thunkPosition if !matchString("---") { goto l1422 } goto l1421 l1422: position, thunkPosition = position1421, thunkPosition1421 if !matchString("--") { goto l1420 } } l1421: do(92) return true l1420: position, thunkPosition = position0, thunkPosition0 return false }, /* 230 SingleQuoteStart <- ('\'' ![)!\],.;:-? \t\n] !(('s' / 't' / 'm' / 've' / 'll' / 're') !Alphanumeric)) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('\'') { goto l1423 } { position1424, thunkPosition1424 := position, thunkPosition if !matchClass(6) { goto l1424 } goto l1423 l1424: position, thunkPosition = position1424, thunkPosition1424 } { position1425, thunkPosition1425 := position, thunkPosition { position1426, thunkPosition1426 := position, thunkPosition if !matchChar('s') { goto l1427 } goto l1426 l1427: position, thunkPosition = position1426, thunkPosition1426 if !matchChar('t') { goto l1428 } goto l1426 l1428: position, thunkPosition = position1426, thunkPosition1426 if !matchChar('m') { goto l1429 } goto l1426 l1429: position, thunkPosition = position1426, thunkPosition1426 if !matchString("ve") { goto l1430 } goto l1426 l1430: position, thunkPosition = position1426, thunkPosition1426 if !matchString("ll") { goto l1431 } goto l1426 l1431: position, thunkPosition = position1426, thunkPosition1426 if !matchString("re") { goto l1425 } } l1426: { position1432, thunkPosition1432 := position, thunkPosition if !p.rules[ruleAlphanumeric]() { goto l1432 } goto l1425 l1432: position, thunkPosition = position1432, thunkPosition1432 } goto l1423 l1425: position, thunkPosition = position1425, thunkPosition1425 } return true l1423: position, thunkPosition = position0, thunkPosition0 return false }, /* 231 SingleQuoteEnd <- ('\'' !Alphanumeric) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('\'') { goto l1433 } { position1434, thunkPosition1434 := position, thunkPosition if !p.rules[ruleAlphanumeric]() { goto l1434 } goto l1433 l1434: position, thunkPosition = position1434, thunkPosition1434 } return true l1433: position, thunkPosition = position0, thunkPosition0 return false }, /* 232 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 l1435 } if !p.rules[ruleStartList]() { goto l1435 } doarg(yySet, -1) { position1438, thunkPosition1438 := position, thunkPosition if !p.rules[ruleSingleQuoteEnd]() { goto l1438 } goto l1435 l1438: position, thunkPosition = position1438, thunkPosition1438 } if !p.rules[ruleInline]() { goto l1435 } doarg(yySet, -2) do(93) l1436: { position1437, thunkPosition1437 := position, thunkPosition { position1439, thunkPosition1439 := position, thunkPosition if !p.rules[ruleSingleQuoteEnd]() { goto l1439 } goto l1437 l1439: position, thunkPosition = position1439, thunkPosition1439 } if !p.rules[ruleInline]() { goto l1437 } doarg(yySet, -2) do(93) goto l1436 l1437: position, thunkPosition = position1437, thunkPosition1437 } if !p.rules[ruleSingleQuoteEnd]() { goto l1435 } do(94) doarg(yyPop, 2) return true l1435: position, thunkPosition = position0, thunkPosition0 return false }, /* 233 DoubleQuoteStart <- '"' */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('"') { goto l1440 } return true l1440: position, thunkPosition = position0, thunkPosition0 return false }, /* 234 DoubleQuoteEnd <- '"' */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchChar('"') { goto l1441 } return true l1441: position, thunkPosition = position0, thunkPosition0 return false }, /* 235 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 l1442 } if !p.rules[ruleStartList]() { goto l1442 } doarg(yySet, -1) { position1445, thunkPosition1445 := position, thunkPosition if !p.rules[ruleDoubleQuoteEnd]() { goto l1445 } goto l1442 l1445: position, thunkPosition = position1445, thunkPosition1445 } if !p.rules[ruleInline]() { goto l1442 } doarg(yySet, -2) do(95) l1443: { position1444, thunkPosition1444 := position, thunkPosition { position1446, thunkPosition1446 := position, thunkPosition if !p.rules[ruleDoubleQuoteEnd]() { goto l1446 } goto l1444 l1446: position, thunkPosition = position1446, thunkPosition1446 } if !p.rules[ruleInline]() { goto l1444 } doarg(yySet, -2) do(95) goto l1443 l1444: position, thunkPosition = position1444, thunkPosition1444 } if !p.rules[ruleDoubleQuoteEnd]() { goto l1442 } do(96) doarg(yyPop, 2) return true l1442: position, thunkPosition = position0, thunkPosition0 return false }, /* 236 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 l1447 } if !p.rules[ruleRawNoteReference]() { goto l1447 } doarg(yySet, -1) do(97) doarg(yyPop, 1) return true l1447: position, thunkPosition = position0, thunkPosition0 return false }, /* 237 RawNoteReference <- ('[^' < (!Newline !']' .)+ > ']' { yy = mk_str(yytext) }) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !matchString("[^") { goto l1448 } begin = position { position1451, thunkPosition1451 := position, thunkPosition if !p.rules[ruleNewline]() { goto l1451 } goto l1448 l1451: position, thunkPosition = position1451, thunkPosition1451 } if peekChar(']') { goto l1448 } if !matchDot() { goto l1448 } l1449: { position1450, thunkPosition1450 := position, thunkPosition { position1452, thunkPosition1452 := position, thunkPosition if !p.rules[ruleNewline]() { goto l1452 } goto l1450 l1452: position, thunkPosition = position1452, thunkPosition1452 } if peekChar(']') { goto l1450 } if !matchDot() { goto l1450 } goto l1449 l1450: position, thunkPosition = position1450, thunkPosition1450 } end = position if !matchChar(']') { goto l1448 } do(98) return true l1448: position, thunkPosition = position0, thunkPosition0 return false }, /* 238 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 l1453 } if !p.rules[ruleNonindentSpace]() { goto l1453 } if !p.rules[ruleRawNoteReference]() { goto l1453 } doarg(yySet, -1) if !matchChar(':') { goto l1453 } if !p.rules[ruleSp]() { goto l1453 } if !p.rules[ruleStartList]() { goto l1453 } doarg(yySet, -2) if !p.rules[ruleRawNoteBlock]() { goto l1453 } do(99) l1454: { position1455, thunkPosition1455 := position, thunkPosition { position1456, thunkPosition1456 := position, thunkPosition if !p.rules[ruleIndent]() { goto l1455 } position, thunkPosition = position1456, thunkPosition1456 } if !p.rules[ruleRawNoteBlock]() { goto l1455 } do(100) goto l1454 l1455: position, thunkPosition = position1455, thunkPosition1455 } do(101) doarg(yyPop, 2) return true l1453: position, thunkPosition = position0, thunkPosition0 return false }, /* 239 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 l1457 } if !matchString("^[") { goto l1457 } if !p.rules[ruleStartList]() { goto l1457 } doarg(yySet, -1) if peekChar(']') { goto l1457 } if !p.rules[ruleInline]() { goto l1457 } do(102) l1458: { position1459, thunkPosition1459 := position, thunkPosition if peekChar(']') { goto l1459 } if !p.rules[ruleInline]() { goto l1459 } do(102) goto l1458 l1459: position, thunkPosition = position1459, thunkPosition1459 } if !matchChar(']') { goto l1457 } do(103) doarg(yyPop, 1) return true l1457: position, thunkPosition = position0, thunkPosition0 return false }, /* 240 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 l1460 } doarg(yySet, -1) l1461: { position1462, thunkPosition1462 := position, thunkPosition { position1463, thunkPosition1463 := position, thunkPosition if !p.rules[ruleNote]() { goto l1464 } doarg(yySet, -2) do(104) goto l1463 l1464: position, thunkPosition = position1463, thunkPosition1463 if !p.rules[ruleSkipBlock]() { goto l1462 } } l1463: goto l1461 l1462: position, thunkPosition = position1462, thunkPosition1462 } do(105) if !(commit(thunkPosition0)) { goto l1460 } doarg(yyPop, 2) return true l1460: position, thunkPosition = position0, thunkPosition0 return false }, /* 241 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 l1465 } doarg(yySet, -1) { position1468, thunkPosition1468 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1468 } goto l1465 l1468: position, thunkPosition = position1468, thunkPosition1468 } if !p.rules[ruleOptionallyIndentedLine]() { goto l1465 } do(106) l1466: { position1467, thunkPosition1467 := position, thunkPosition { position1469, thunkPosition1469 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1469 } goto l1467 l1469: position, thunkPosition = position1469, thunkPosition1469 } if !p.rules[ruleOptionallyIndentedLine]() { goto l1467 } do(106) goto l1466 l1467: position, thunkPosition = position1467, thunkPosition1467 } begin = position l1470: { position1471, thunkPosition1471 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1471 } goto l1470 l1471: position, thunkPosition = position1471, thunkPosition1471 } end = position do(107) do(108) doarg(yyPop, 1) return true l1465: position, thunkPosition = position0, thunkPosition0 return false }, /* 242 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 l1472 } if !p.rules[ruleStartList]() { goto l1472 } doarg(yySet, -1) if !p.rules[ruleDefinition]() { goto l1472 } do(109) l1473: { position1474, thunkPosition1474 := position, thunkPosition if !p.rules[ruleDefinition]() { goto l1474 } do(109) goto l1473 l1474: position, thunkPosition = position1474, thunkPosition1474 } do(110) doarg(yyPop, 1) return true l1472: position, thunkPosition = position0, thunkPosition0 return false }, /* 243 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) { position1476, thunkPosition1476 := position, thunkPosition { position1479, thunkPosition1479 := position, thunkPosition if !p.rules[ruleDefmark]() { goto l1479 } goto l1475 l1479: position, thunkPosition = position1479, thunkPosition1479 } if !p.rules[ruleRawLine]() { goto l1475 } l1477: { position1478, thunkPosition1478 := position, thunkPosition { position1480, thunkPosition1480 := position, thunkPosition if !p.rules[ruleDefmark]() { goto l1480 } goto l1478 l1480: position, thunkPosition = position1480, thunkPosition1480 } if !p.rules[ruleRawLine]() { goto l1478 } goto l1477 l1478: position, thunkPosition = position1478, thunkPosition1478 } { position1481, thunkPosition1481 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1481 } goto l1482 l1481: position, thunkPosition = position1481, thunkPosition1481 } l1482: if !p.rules[ruleDefmark]() { goto l1475 } position, thunkPosition = position1476, thunkPosition1476 } if !p.rules[ruleStartList]() { goto l1475 } doarg(yySet, -1) if !p.rules[ruleDListTitle]() { goto l1475 } do(111) l1483: { position1484, thunkPosition1484 := position, thunkPosition if !p.rules[ruleDListTitle]() { goto l1484 } do(111) goto l1483 l1484: position, thunkPosition = position1484, thunkPosition1484 } { position1485, thunkPosition1485 := position, thunkPosition if !p.rules[ruleDefTight]() { goto l1486 } goto l1485 l1486: position, thunkPosition = position1485, thunkPosition1485 if !p.rules[ruleDefLoose]() { goto l1475 } } l1485: do(112) do(113) doarg(yyPop, 1) return true l1475: position, thunkPosition = position0, thunkPosition0 return false }, /* 244 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 l1487 } { position1488, thunkPosition1488 := position, thunkPosition if !p.rules[ruleDefmark]() { goto l1488 } goto l1487 l1488: position, thunkPosition = position1488, thunkPosition1488 } { position1489, thunkPosition1489 := position, thunkPosition if !p.rules[ruleNonspacechar]() { goto l1487 } position, thunkPosition = position1489, thunkPosition1489 } if !p.rules[ruleStartList]() { goto l1487 } doarg(yySet, -1) { position1492, thunkPosition1492 := position, thunkPosition if !p.rules[ruleEndline]() { goto l1492 } goto l1487 l1492: position, thunkPosition = position1492, thunkPosition1492 } if !p.rules[ruleInline]() { goto l1487 } do(114) l1490: { position1491, thunkPosition1491 := position, thunkPosition { position1493, thunkPosition1493 := position, thunkPosition if !p.rules[ruleEndline]() { goto l1493 } goto l1491 l1493: position, thunkPosition = position1493, thunkPosition1493 } if !p.rules[ruleInline]() { goto l1491 } do(114) goto l1490 l1491: position, thunkPosition = position1491, thunkPosition1491 } if !p.rules[ruleSp]() { goto l1487 } if !p.rules[ruleNewline]() { goto l1487 } do(115) doarg(yyPop, 1) return true l1487: position, thunkPosition = position0, thunkPosition0 return false }, /* 245 DefTight <- (&Defmark ListTight) */ func() bool { position0, thunkPosition0 := position, thunkPosition { position1495, thunkPosition1495 := position, thunkPosition if !p.rules[ruleDefmark]() { goto l1494 } position, thunkPosition = position1495, thunkPosition1495 } if !p.rules[ruleListTight]() { goto l1494 } return true l1494: position, thunkPosition = position0, thunkPosition0 return false }, /* 246 DefLoose <- (BlankLine &Defmark ListLoose) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleBlankLine]() { goto l1496 } { position1497, thunkPosition1497 := position, thunkPosition if !p.rules[ruleDefmark]() { goto l1496 } position, thunkPosition = position1497, thunkPosition1497 } if !p.rules[ruleListLoose]() { goto l1496 } return true l1496: position, thunkPosition = position0, thunkPosition0 return false }, /* 247 Defmark <- (NonindentSpace (':' / '~') Spacechar+) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !p.rules[ruleNonindentSpace]() { goto l1498 } { position1499, thunkPosition1499 := position, thunkPosition if !matchChar(':') { goto l1500 } goto l1499 l1500: position, thunkPosition = position1499, thunkPosition1499 if !matchChar('~') { goto l1498 } } l1499: if !p.rules[ruleSpacechar]() { goto l1498 } l1501: { position1502, thunkPosition1502 := position, thunkPosition if !p.rules[ruleSpacechar]() { goto l1502 } goto l1501 l1502: position, thunkPosition = position1502, thunkPosition1502 } return true l1498: position, thunkPosition = position0, thunkPosition0 return false }, /* 248 DefMarker <- (&{ p.extension.Dlists } Defmark) */ func() bool { position0, thunkPosition0 := position, thunkPosition if !( p.extension.Dlists ) { goto l1503 } if !p.rules[ruleDefmark]() { goto l1503 } return true l1503: 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.Fatalf("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", }