markdown/parser.leg.go

13759 lines
310 KiB
Go
Raw Normal View History

/* 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
2012-04-22 04:37:54 +08:00
extension Options
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
2011-02-21 17:08:33 +08:00
ruleListItemTight
ruleListBlock
ruleListContinuationBlock
ruleEnumerator
ruleOrderedList
ruleListBlockLine
ruleHtmlBlockOpenAddress
ruleHtmlBlockCloseAddress
2011-02-21 17:08:33 +08:00
ruleHtmlBlockAddress
ruleHtmlBlockOpenBlockquote
ruleHtmlBlockCloseBlockquote
2011-02-21 17:08:33 +08:00
ruleHtmlBlockBlockquote
ruleHtmlBlockOpenCenter
ruleHtmlBlockCloseCenter
2011-02-21 17:08:33 +08:00
ruleHtmlBlockCenter
ruleHtmlBlockOpenDir
ruleHtmlBlockCloseDir
2011-02-21 17:08:33 +08:00
ruleHtmlBlockDir
ruleHtmlBlockOpenDiv
ruleHtmlBlockCloseDiv
2011-02-21 17:08:33 +08:00
ruleHtmlBlockDiv
ruleHtmlBlockOpenDl
ruleHtmlBlockCloseDl
2011-02-21 17:08:33 +08:00
ruleHtmlBlockDl
ruleHtmlBlockOpenFieldset
ruleHtmlBlockCloseFieldset
2011-02-21 17:08:33 +08:00
ruleHtmlBlockFieldset
ruleHtmlBlockOpenForm
ruleHtmlBlockCloseForm
2011-02-21 17:08:33 +08:00
ruleHtmlBlockForm
ruleHtmlBlockOpenH1
ruleHtmlBlockCloseH1
2011-02-21 17:08:33 +08:00
ruleHtmlBlockH1
ruleHtmlBlockOpenH2
ruleHtmlBlockCloseH2
2011-02-21 17:08:33 +08:00
ruleHtmlBlockH2
ruleHtmlBlockOpenH3
ruleHtmlBlockCloseH3
2011-02-21 17:08:33 +08:00
ruleHtmlBlockH3
ruleHtmlBlockOpenH4
ruleHtmlBlockCloseH4
2011-02-21 17:08:33 +08:00
ruleHtmlBlockH4
ruleHtmlBlockOpenH5
ruleHtmlBlockCloseH5
2011-02-21 17:08:33 +08:00
ruleHtmlBlockH5
ruleHtmlBlockOpenH6
ruleHtmlBlockCloseH6
2011-02-21 17:08:33 +08:00
ruleHtmlBlockH6
ruleHtmlBlockOpenMenu
ruleHtmlBlockCloseMenu
2011-02-21 17:08:33 +08:00
ruleHtmlBlockMenu
ruleHtmlBlockOpenNoframes
ruleHtmlBlockCloseNoframes
2011-02-21 17:08:33 +08:00
ruleHtmlBlockNoframes
ruleHtmlBlockOpenNoscript
ruleHtmlBlockCloseNoscript
2011-02-21 17:08:33 +08:00
ruleHtmlBlockNoscript
ruleHtmlBlockOpenOl
ruleHtmlBlockCloseOl
2011-02-21 17:08:33 +08:00
ruleHtmlBlockOl
ruleHtmlBlockOpenP
ruleHtmlBlockCloseP
2011-02-21 17:08:33 +08:00
ruleHtmlBlockP
ruleHtmlBlockOpenPre
ruleHtmlBlockClosePre
2011-02-21 17:08:33 +08:00
ruleHtmlBlockPre
ruleHtmlBlockOpenTable
ruleHtmlBlockCloseTable
2011-02-21 17:08:33 +08:00
ruleHtmlBlockTable
ruleHtmlBlockOpenUl
ruleHtmlBlockCloseUl
2011-02-21 17:08:33 +08:00
ruleHtmlBlockUl
ruleHtmlBlockOpenDd
ruleHtmlBlockCloseDd
2011-02-21 17:08:33 +08:00
ruleHtmlBlockDd
ruleHtmlBlockOpenDt
ruleHtmlBlockCloseDt
2011-02-21 17:08:33 +08:00
ruleHtmlBlockDt
ruleHtmlBlockOpenFrameset
ruleHtmlBlockCloseFrameset
2011-02-21 17:08:33 +08:00
ruleHtmlBlockFrameset
ruleHtmlBlockOpenLi
ruleHtmlBlockCloseLi
2011-02-21 17:08:33 +08:00
ruleHtmlBlockLi
ruleHtmlBlockOpenTbody
ruleHtmlBlockCloseTbody
2011-02-21 17:08:33 +08:00
ruleHtmlBlockTbody
ruleHtmlBlockOpenTd
ruleHtmlBlockCloseTd
2011-02-21 17:08:33 +08:00
ruleHtmlBlockTd
ruleHtmlBlockOpenTfoot
ruleHtmlBlockCloseTfoot
2011-02-21 17:08:33 +08:00
ruleHtmlBlockTfoot
ruleHtmlBlockOpenTh
ruleHtmlBlockCloseTh
2011-02-21 17:08:33 +08:00
ruleHtmlBlockTh
ruleHtmlBlockOpenThead
ruleHtmlBlockCloseThead
2011-02-21 17:08:33 +08:00
ruleHtmlBlockThead
ruleHtmlBlockOpenTr
ruleHtmlBlockCloseTr
2011-02-21 17:08:33 +08:00
ruleHtmlBlockTr
ruleHtmlBlockOpenScript
ruleHtmlBlockCloseScript
2011-02-21 17:08:33 +08:00
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
2011-02-21 17:08:33 +08:00
ruleNonAlphanumeric
ruleAlphanumeric
2011-02-21 17:08:33 +08:00
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
2011-02-21 17:08:33 +08:00
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
},
2011-02-21 17:08:33 +08:00
/* 30 ListItemTight */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 31 ListItemTight */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 37 ListContinuationBlock */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 38 ListContinuationBlock */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = mk_str_from_list(a, false)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 39 OrderedList */
func(yytext string, _ int) {
yy.key = ORDEREDLIST
},
2011-02-21 17:08:33 +08:00
/* 40 HtmlBlock */
func(yytext string, _ int) {
if p.extension.FilterHTML {
yy = mk_list(LIST, nil)
} else {
yy = mk_str(yytext)
yy.key = HTMLBLOCK
}
},
2011-02-21 17:08:33 +08:00
/* 41 StyleBlock */
func(yytext string, _ int) {
if p.extension.FilterStyles {
yy = mk_list(LIST, nil)
} else {
yy = mk_str(yytext)
yy.key = HTMLBLOCK
}
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 45 Space */
func(yytext string, _ int) {
yy = mk_str(" ")
yy.key = SPACE
},
2011-02-21 17:08:33 +08:00
/* 46 Str */
func(yytext string, _ int) {
yy = mk_str(yytext)
},
2011-02-21 17:08:33 +08:00
/* 47 EscapedChar */
func(yytext string, _ int) {
yy = mk_str(yytext)
},
2011-02-21 17:08:33 +08:00
/* 48 Entity */
func(yytext string, _ int) {
yy = mk_str(yytext); yy.key = HTML
},
2011-02-21 17:08:33 +08:00
/* 49 NormalEndline */
func(yytext string, _ int) {
yy = mk_str("\n")
yy.key = SPACE
},
2011-02-21 17:08:33 +08:00
/* 50 TerminalEndline */
func(yytext string, _ int) {
yy = nil
},
2011-02-21 17:08:33 +08:00
/* 51 LineBreak */
func(yytext string, _ int) {
yy = mk_element(LINEBREAK)
},
2011-02-21 17:08:33 +08:00
/* 52 Symbol */
func(yytext string, _ int) {
yy = mk_str(yytext)
},
2011-02-21 17:08:33 +08:00
/* 53 UlOrStarLine */
func(yytext string, _ int) {
yy = mk_str(yytext)
},
2011-02-21 17:08:33 +08:00
/* 54 OneStarClose */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = a
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 55 EmphStar */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 56 EmphStar */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 57 EmphStar */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = mk_list(EMPH, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 58 OneUlClose */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = a
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 59 EmphUl */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 60 EmphUl */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 61 EmphUl */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = mk_list(EMPH, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 62 TwoStarClose */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = a
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 63 StrongStar */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 64 StrongStar */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 65 StrongStar */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = mk_list(STRONG, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 66 TwoUlClose */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = a
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 67 StrongUl */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 68 StrongUl */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 69 StrongUl */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = mk_list(STRONG, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 70 Image */
func(yytext string, _ int) {
2011-02-21 17:08:33 +08:00
if yy.key == LINK {
yy.key = IMAGE
} else {
result := yy
yy.children = cons(mk_str("!"), result.children)
}
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 74 Source */
func(yytext string, _ int) {
yy = mk_str(yytext)
},
2011-02-21 17:08:33 +08:00
/* 75 Title */
func(yytext string, _ int) {
yy = mk_str(yytext)
},
2011-02-21 17:08:33 +08:00
/* 76 AutoLinkUrl */
func(yytext string, _ int) {
yy = mk_link(mk_str(yytext), yytext, "")
},
2011-02-21 17:08:33 +08:00
/* 77 AutoLinkEmail */
func(yytext string, _ int) {
yy = mk_link(mk_str(yytext), "mailto:"+yytext, "")
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 79 Label */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 80 Label */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = mk_list(LIST, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 81 RefSrc */
func(yytext string, _ int) {
yy = mk_str(yytext)
yy.key = HTML
},
2011-02-21 17:08:33 +08:00
/* 82 RefTitle */
func(yytext string, _ int) {
yy = mk_str(yytext)
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 85 Code */
func(yytext string, _ int) {
yy = mk_str(yytext); yy.key = CODE
},
2011-02-21 17:08:33 +08:00
/* 86 RawHtml */
func(yytext string, _ int) {
if p.extension.FilterHTML {
yy = mk_list(LIST, nil)
} else {
yy = mk_str(yytext)
yy.key = HTML
}
},
2011-02-21 17:08:33 +08:00
/* 87 StartList */
func(yytext string, _ int) {
yy = nil
},
2011-02-21 17:08:33 +08:00
/* 88 Line */
func(yytext string, _ int) {
yy = mk_str(yytext)
},
2011-02-21 17:08:33 +08:00
/* 89 Apostrophe */
func(yytext string, _ int) {
yy = mk_element(APOSTROPHE)
},
2011-02-21 17:08:33 +08:00
/* 90 Ellipsis */
func(yytext string, _ int) {
yy = mk_element(ELLIPSIS)
},
2011-02-21 17:08:33 +08:00
/* 91 EnDash */
func(yytext string, _ int) {
yy = mk_element(ENDASH)
},
2011-02-21 17:08:33 +08:00
/* 92 EmDash */
func(yytext string, _ int) {
yy = mk_element(EMDASH)
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 98 RawNoteReference */
func(yytext string, _ int) {
yy = mk_str(yytext)
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 102 InlineNote */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 103 InlineNote */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = mk_list(NOTE, a)
yy.contents.str = ""
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 106 RawNoteBlock */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 107 RawNoteBlock */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(mk_str(yytext), a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 108 RawNoteBlock */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = mk_str_from_list(a, true)
yy.key = RAW
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 109 DefinitionList */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 110 DefinitionList */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = mk_list(DEFINITIONLIST, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 111 Definition */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 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
},
2011-02-21 17:08:33 +08:00
/* 113 Definition */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = mk_list(LIST, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 114 DListTitle */
func(yytext string, _ int) {
a := yyval[yyp-1]
a = cons(yy, a)
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 115 DListTitle */
func(yytext string, _ int) {
a := yyval[yyp-1]
yy = mk_list(LIST, a)
yy.key = DEFTITLE
yyval[yyp-1] = a
},
2011-02-21 17:08:33 +08:00
/* 116 yyPush */
func(_ string, count int) {
yyp += count
if yyp >= len(yyval) {
s := make([]*element, cap(yyval)+200)
copy(s, yyval)
yyval = s
}
},
2011-02-21 17:08:33 +08:00
/* 117 yyPop */
func(_ string, count int) {
yyp -= count
},
2011-02-21 17:08:33 +08:00
/* 118 yySet */
func(_ string, count int) {
yyval[yyp+count] = yy
},
}
const (
2011-02-21 17:08:33 +08:00
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)
}
2011-07-05 00:48:17 +08:00
_ = peekDot
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
}
2011-07-05 00:48:17 +08:00
_ = peekChar
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},
2011-02-21 17:08:33 +08:00
{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},
2011-02-21 17:08:33 +08:00
{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
},
2011-02-21 17:08:33 +08:00
/* 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
2011-02-21 17:08:33 +08:00
{
position26, thunkPosition26 := position, thunkPosition
if !p.rules[ruleSp]() {
goto l26
}
goto l27
l26:
position, thunkPosition = position26, thunkPosition26
}
2011-02-21 17:08:33 +08:00
l27:
l28:
{
2011-02-21 17:08:33 +08:00
position29, thunkPosition29 := position, thunkPosition
if !matchChar('#') {
2011-02-21 17:08:33 +08:00
goto l29
}
2011-02-21 17:08:33 +08:00
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('#') {
2011-02-21 17:08:33 +08:00
goto l30
}
begin = position
{
2011-02-21 17:08:33 +08:00
position31, thunkPosition31 := position, thunkPosition
if !matchString("######") {
goto l32
}
2011-02-21 17:08:33 +08:00
goto l31
l32:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position31, thunkPosition31
if !matchString("#####") {
goto l33
}
2011-02-21 17:08:33 +08:00
goto l31
l33:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position31, thunkPosition31
if !matchString("####") {
goto l34
}
2011-02-21 17:08:33 +08:00
goto l31
l34:
2011-02-21 17:08:33 +08:00
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('#') {
2011-02-21 17:08:33 +08:00
goto l30
}
}
2011-02-21 17:08:33 +08:00
l31:
end = position
do(4)
return true
2011-02-21 17:08:33 +08:00
l30:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-02-21 17:08:33 +08:00
goto l37
}
doarg(yySet, -1)
2011-02-21 17:08:33 +08:00
{
position38, thunkPosition38 := position, thunkPosition
if !p.rules[ruleSp]() {
goto l38
}
goto l39
l38:
position, thunkPosition = position38, thunkPosition38
}
2011-02-21 17:08:33 +08:00
l39:
if !p.rules[ruleStartList]() {
2011-02-21 17:08:33 +08:00
goto l37
}
doarg(yySet, -2)
if !p.rules[ruleAtxInline]() {
2011-02-21 17:08:33 +08:00
goto l37
}
do(5)
2011-02-21 17:08:33 +08:00
l40:
{
2011-02-21 17:08:33 +08:00
position41, thunkPosition41 := position, thunkPosition
if !p.rules[ruleAtxInline]() {
2011-02-21 17:08:33 +08:00
goto l41
}
do(5)
2011-02-21 17:08:33 +08:00
goto l40
l41:
position, thunkPosition = position41, thunkPosition41
}
{
2011-02-21 17:08:33 +08:00
position42, thunkPosition42 := position, thunkPosition
{
position44, thunkPosition44 := position, thunkPosition
if !p.rules[ruleSp]() {
goto l44
}
goto l45
l44:
position, thunkPosition = position44, thunkPosition44
}
2011-02-21 17:08:33 +08:00
l45:
l46:
{
2011-02-21 17:08:33 +08:00
position47, thunkPosition47 := position, thunkPosition
if !matchChar('#') {
2011-02-21 17:08:33 +08:00
goto l47
}
2011-02-21 17:08:33 +08:00
goto l46
l47:
position, thunkPosition = position47, thunkPosition47
}
if !p.rules[ruleSp]() {
2011-02-21 17:08:33 +08:00
goto l42
}
2011-02-21 17:08:33 +08:00
goto l43
l42:
position, thunkPosition = position42, thunkPosition42
}
2011-02-21 17:08:33 +08:00
l43:
if !p.rules[ruleNewline]() {
2011-02-21 17:08:33 +08:00
goto l37
}
do(6)
doarg(yyPop, 2)
return true
2011-02-21 17:08:33 +08:00
l37:
position, thunkPosition = position0, thunkPosition0
return false
},
/* 7 SetextHeading <- (SetextHeading1 / SetextHeading2) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-02-21 17:08:33 +08:00
position49, thunkPosition49 := position, thunkPosition
if !p.rules[ruleSetextHeading1]() {
2011-02-21 17:08:33 +08:00
goto l50
}
2011-02-21 17:08:33 +08:00
goto l49
l50:
position, thunkPosition = position49, thunkPosition49
if !p.rules[ruleSetextHeading2]() {
2011-02-21 17:08:33 +08:00
goto l48
}
}
2011-02-21 17:08:33 +08:00
l49:
return true
2011-02-21 17:08:33 +08:00
l48:
position, thunkPosition = position0, thunkPosition0
return false
},
/* 8 SetextBottom1 <- ('===' '='* Newline) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchString("===") {
2011-02-21 17:08:33 +08:00
goto l51
}
2011-02-21 17:08:33 +08:00
l52:
{
2011-02-21 17:08:33 +08:00
position53, thunkPosition53 := position, thunkPosition
if !matchChar('=') {
2011-02-21 17:08:33 +08:00
goto l53
}
2011-02-21 17:08:33 +08:00
goto l52
l53:
position, thunkPosition = position53, thunkPosition53
}
if !p.rules[ruleNewline]() {
2011-02-21 17:08:33 +08:00
goto l51
}
return true
2011-02-21 17:08:33 +08:00
l51:
position, thunkPosition = position0, thunkPosition0
return false
},
/* 9 SetextBottom2 <- ('---' '-'* Newline) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchString("---") {
2011-02-21 17:08:33 +08:00
goto l54
}
2011-02-21 17:08:33 +08:00
l55:
{
2011-02-21 17:08:33 +08:00
position56, thunkPosition56 := position, thunkPosition
if !matchChar('-') {
2011-02-21 17:08:33 +08:00
goto l56
}
2011-02-21 17:08:33 +08:00
goto l55
l56:
position, thunkPosition = position56, thunkPosition56
}
if !p.rules[ruleNewline]() {
2011-02-21 17:08:33 +08:00
goto l54
}
return true
2011-02-21 17:08:33 +08:00
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)
{
2011-02-21 17:08:33 +08:00
position58, thunkPosition58 := position, thunkPosition
if !p.rules[ruleRawLine]() {
2011-02-21 17:08:33 +08:00
goto l57
}
if !p.rules[ruleSetextBottom1]() {
2011-02-21 17:08:33 +08:00
goto l57
}
2011-02-21 17:08:33 +08:00
position, thunkPosition = position58, thunkPosition58
}
if !p.rules[ruleStartList]() {
2011-02-21 17:08:33 +08:00
goto l57
}
doarg(yySet, -1)
{
2011-02-21 17:08:33 +08:00
position61, thunkPosition61 := position, thunkPosition
if !p.rules[ruleEndline]() {
2011-02-21 17:08:33 +08:00
goto l61
}
2011-02-21 17:08:33 +08:00
goto l57
l61:
position, thunkPosition = position61, thunkPosition61
}
if !p.rules[ruleInline]() {
2011-02-21 17:08:33 +08:00
goto l57
}
do(7)
2011-02-21 17:08:33 +08:00
l59:
{
2011-02-21 17:08:33 +08:00
position60, thunkPosition60 := position, thunkPosition
{
2011-02-21 17:08:33 +08:00
position62, thunkPosition62 := position, thunkPosition
if !p.rules[ruleEndline]() {
2011-02-21 17:08:33 +08:00
goto l62
}
2011-02-21 17:08:33 +08:00
goto l60
l62:
position, thunkPosition = position62, thunkPosition62
}
if !p.rules[ruleInline]() {
2011-02-21 17:08:33 +08:00
goto l60
}
do(7)
2011-02-21 17:08:33 +08:00
goto l59
l60:
position, thunkPosition = position60, thunkPosition60
}
if !p.rules[ruleNewline]() {
2011-02-21 17:08:33 +08:00
goto l57
}
if !p.rules[ruleSetextBottom1]() {
2011-02-21 17:08:33 +08:00
goto l57
}
do(8)
doarg(yyPop, 1)
return true
2011-02-21 17:08:33 +08:00
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)
{
2011-02-21 17:08:33 +08:00
position64, thunkPosition64 := position, thunkPosition
if !p.rules[ruleRawLine]() {
2011-02-21 17:08:33 +08:00
goto l63
}
if !p.rules[ruleSetextBottom2]() {
2011-02-21 17:08:33 +08:00
goto l63
}
2011-02-21 17:08:33 +08:00
position, thunkPosition = position64, thunkPosition64
}
if !p.rules[ruleStartList]() {
2011-02-21 17:08:33 +08:00
goto l63
}
doarg(yySet, -1)
{
2011-02-21 17:08:33 +08:00
position67, thunkPosition67 := position, thunkPosition
if !p.rules[ruleEndline]() {
2011-02-21 17:08:33 +08:00
goto l67
}
2011-02-21 17:08:33 +08:00
goto l63
l67:
position, thunkPosition = position67, thunkPosition67
}
if !p.rules[ruleInline]() {
2011-02-21 17:08:33 +08:00
goto l63
}
do(9)
2011-02-21 17:08:33 +08:00
l65:
{
2011-02-21 17:08:33 +08:00
position66, thunkPosition66 := position, thunkPosition
{
2011-02-21 17:08:33 +08:00
position68, thunkPosition68 := position, thunkPosition
if !p.rules[ruleEndline]() {
2011-02-21 17:08:33 +08:00
goto l68
}
2011-02-21 17:08:33 +08:00
goto l66
l68:
position, thunkPosition = position68, thunkPosition68
}
if !p.rules[ruleInline]() {
2011-02-21 17:08:33 +08:00
goto l66
}
do(9)
2011-02-21 17:08:33 +08:00
goto l65
l66:
position, thunkPosition = position66, thunkPosition66
}
if !p.rules[ruleNewline]() {
2011-02-21 17:08:33 +08:00
goto l63
}
if !p.rules[ruleSetextBottom2]() {
2011-02-21 17:08:33 +08:00
goto l63
}
do(10)
doarg(yyPop, 1)
return true
2011-02-21 17:08:33 +08:00
l63:
position, thunkPosition = position0, thunkPosition0
return false
},
/* 12 Heading <- (AtxHeading / SetextHeading) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-02-21 17:08:33 +08:00
position70, thunkPosition70 := position, thunkPosition
if !p.rules[ruleAtxHeading]() {
2011-02-21 17:08:33 +08:00
goto l71
}
2011-02-21 17:08:33 +08:00
goto l70
l71:
position, thunkPosition = position70, thunkPosition70
if !p.rules[ruleSetextHeading]() {
2011-02-21 17:08:33 +08:00
goto l69
}
}
2011-02-21 17:08:33 +08:00
l70:
return true
2011-02-21 17:08:33 +08:00
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]() {
2011-02-21 17:08:33 +08:00
goto l72
}
doarg(yySet, -1)
do(11)
doarg(yyPop, 1)
return true
2011-02-21 17:08:33 +08:00
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]() {
2011-02-21 17:08:33 +08:00
goto l73
}
doarg(yySet, -1)
if !matchChar('>') {
2011-02-21 17:08:33 +08:00
goto l73
}
{
2011-02-21 17:08:33 +08:00
position76, thunkPosition76 := position, thunkPosition
if !matchChar(' ') {
2011-02-21 17:08:33 +08:00
goto l76
}
2011-02-21 17:08:33 +08:00
goto l77
l76:
position, thunkPosition = position76, thunkPosition76
}
2011-02-21 17:08:33 +08:00
l77:
if !p.rules[ruleLine]() {
2011-02-21 17:08:33 +08:00
goto l73
}
do(12)
2011-02-21 17:08:33 +08:00
l78:
{
2011-02-21 17:08:33 +08:00
position79, thunkPosition79 := position, thunkPosition
if peekChar('>') {
2011-02-21 17:08:33 +08:00
goto l79
}
{
2011-02-21 17:08:33 +08:00
position80, thunkPosition80 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-02-21 17:08:33 +08:00
goto l80
}
2011-02-21 17:08:33 +08:00
goto l79
l80:
position, thunkPosition = position80, thunkPosition80
}
if !p.rules[ruleLine]() {
2011-02-21 17:08:33 +08:00
goto l79
}
do(13)
2011-02-21 17:08:33 +08:00
goto l78
l79:
position, thunkPosition = position79, thunkPosition79
}
2011-02-21 17:08:33 +08:00
l81:
{
2011-02-21 17:08:33 +08:00
position82, thunkPosition82 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-02-21 17:08:33 +08:00
goto l82
}
do(14)
2011-02-21 17:08:33 +08:00
goto l81
l82:
position, thunkPosition = position82, thunkPosition82
}
2011-02-21 17:08:33 +08:00
l74:
{
2011-02-21 17:08:33 +08:00
position75, thunkPosition75 := position, thunkPosition
if !matchChar('>') {
2011-02-21 17:08:33 +08:00
goto l75
}
{
2011-02-21 17:08:33 +08:00
position83, thunkPosition83 := position, thunkPosition
if !matchChar(' ') {
2011-02-21 17:08:33 +08:00
goto l83
}
2011-02-21 17:08:33 +08:00
goto l84
l83:
position, thunkPosition = position83, thunkPosition83
}
2011-02-21 17:08:33 +08:00
l84:
if !p.rules[ruleLine]() {
2011-02-21 17:08:33 +08:00
goto l75
}
do(12)
2011-02-21 17:08:33 +08:00
l85:
{
2011-02-21 17:08:33 +08:00
position86, thunkPosition86 := position, thunkPosition
if peekChar('>') {
2011-02-21 17:08:33 +08:00
goto l86
}
{
2011-02-21 17:08:33 +08:00
position87, thunkPosition87 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-02-21 17:08:33 +08:00
goto l87
}
2011-02-21 17:08:33 +08:00
goto l86
l87:
position, thunkPosition = position87, thunkPosition87
}
if !p.rules[ruleLine]() {
2011-02-21 17:08:33 +08:00
goto l86
}
do(13)
2011-02-21 17:08:33 +08:00
goto l85
l86:
position, thunkPosition = position86, thunkPosition86
}
2011-02-21 17:08:33 +08:00
l88:
{
2011-02-21 17:08:33 +08:00
position89, thunkPosition89 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-02-21 17:08:33 +08:00
goto l89
}
do(14)
2011-02-21 17:08:33 +08:00
goto l88
l89:
position, thunkPosition = position89, thunkPosition89
}
2011-02-21 17:08:33 +08:00
goto l74
l75:
position, thunkPosition = position75, thunkPosition75
}
do(15)
doarg(yyPop, 1)
return true
2011-02-21 17:08:33 +08:00
l73:
position, thunkPosition = position0, thunkPosition0
return false
},
/* 15 NonblankIndentedLine <- (!BlankLine IndentedLine) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-02-21 17:08:33 +08:00
position91, thunkPosition91 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-02-21 17:08:33 +08:00
goto l91
}
2011-02-21 17:08:33 +08:00
goto l90
l91:
position, thunkPosition = position91, thunkPosition91
}
if !p.rules[ruleIndentedLine]() {
2011-02-21 17:08:33 +08:00
goto l90
}
return true
2011-02-21 17:08:33 +08:00
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]() {
2011-02-21 17:08:33 +08:00
goto l92
}
doarg(yySet, -1)
2011-02-21 17:08:33 +08:00
l93:
{
2011-02-21 17:08:33 +08:00
position94, thunkPosition94 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-02-21 17:08:33 +08:00
goto l94
}
do(16)
2011-02-21 17:08:33 +08:00
goto l93
l94:
position, thunkPosition = position94, thunkPosition94
}
if !p.rules[ruleNonblankIndentedLine]() {
2011-02-21 17:08:33 +08:00
goto l92
}
do(17)
2011-02-21 17:08:33 +08:00
l95:
{
2011-02-21 17:08:33 +08:00
position96, thunkPosition96 := position, thunkPosition
if !p.rules[ruleNonblankIndentedLine]() {
2011-02-21 17:08:33 +08:00
goto l96
}
do(17)
2011-02-21 17:08:33 +08:00
goto l95
l96:
position, thunkPosition = position96, thunkPosition96
}
do(18)
doarg(yyPop, 1)
return true
2011-02-21 17:08:33 +08:00
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]() {
2011-02-21 17:08:33 +08:00
goto l97
}
doarg(yySet, -1)
if !p.rules[ruleVerbatimChunk]() {
2011-02-21 17:08:33 +08:00
goto l97
}
do(19)
2011-02-21 17:08:33 +08:00
l98:
{
2011-02-21 17:08:33 +08:00
position99, thunkPosition99 := position, thunkPosition
if !p.rules[ruleVerbatimChunk]() {
2011-02-21 17:08:33 +08:00
goto l99
}
do(19)
2011-02-21 17:08:33 +08:00
goto l98
l99:
position, thunkPosition = position99, thunkPosition99
}
do(20)
doarg(yyPop, 1)
return true
2011-02-21 17:08:33 +08:00
l97:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-07-05 00:48:17 +08:00
/* 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]() {
2011-02-21 17:08:33 +08:00
goto l100
}
{
2011-07-05 00:48:17 +08:00
if position == len(p.Buffer) {
goto l100
}
2011-07-05 00:48:17 +08:00
switch p.Buffer[position] {
case '_':
if !matchChar('_') {
goto l100
}
if !p.rules[ruleSp]() {
goto l100
}
if !matchChar('_') {
goto l100
}
if !p.rules[ruleSp]() {
goto l100
}
if !matchChar('_') {
goto l100
}
l102:
{
position103, thunkPosition103 := position, thunkPosition
if !p.rules[ruleSp]() {
goto l103
}
if !matchChar('_') {
goto l103
}
goto l102
l103:
position, thunkPosition = position103, thunkPosition103
}
case '-':
if !matchChar('-') {
goto l100
}
if !p.rules[ruleSp]() {
goto l100
}
if !matchChar('-') {
goto l100
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l100
}
if !matchChar('-') {
goto l100
}
l104:
{
position105, thunkPosition105 := position, thunkPosition
if !p.rules[ruleSp]() {
goto l105
}
if !matchChar('-') {
goto l105
}
2011-02-21 17:08:33 +08:00
goto l104
2011-07-05 00:48:17 +08:00
l105:
position, thunkPosition = position105, thunkPosition105
}
2011-07-05 00:48:17 +08:00
default:
if !matchChar('*') {
2011-07-05 00:48:17 +08:00
goto l100
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l100
}
2011-07-05 00:48:17 +08:00
if !matchChar('*') {
goto l100
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l100
}
2011-07-05 00:48:17 +08:00
if !matchChar('*') {
goto l100
}
l106:
{
position107, thunkPosition107 := position, thunkPosition
if !p.rules[ruleSp]() {
goto l107
}
if !matchChar('*') {
goto l107
}
goto l106
l107:
position, thunkPosition = position107, thunkPosition107
}
}
}
if !p.rules[ruleSp]() {
2011-02-21 17:08:33 +08:00
goto l100
}
if !p.rules[ruleNewline]() {
2011-02-21 17:08:33 +08:00
goto l100
}
if !p.rules[ruleBlankLine]() {
2011-02-21 17:08:33 +08:00
goto l100
}
2011-07-05 00:48:17 +08:00
l108:
{
2011-07-05 00:48:17 +08:00
position109, thunkPosition109 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l109
}
2011-07-05 00:48:17 +08:00
goto l108
l109:
position, thunkPosition = position109, thunkPosition109
}
do(21)
return true
2011-02-21 17:08:33 +08:00
l100:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-07-05 00:48:17 +08:00
/* 19 Bullet <- (!HorizontalRule NonindentSpace ((&[\-] '-') | (&[*] '*') | (&[+] '+')) Spacechar+) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position111, thunkPosition111 := position, thunkPosition
if !p.rules[ruleHorizontalRule]() {
2011-07-05 00:48:17 +08:00
goto l111
}
2011-07-05 00:48:17 +08:00
goto l110
l111:
position, thunkPosition = position111, thunkPosition111
}
if !p.rules[ruleNonindentSpace]() {
2011-07-05 00:48:17 +08:00
goto l110
}
{
2011-07-05 00:48:17 +08:00
if position == len(p.Buffer) {
goto l110
}
2011-07-05 00:48:17 +08:00
switch p.Buffer[position] {
case '-':
if !matchChar('-') {
goto l110
}
case '*':
if !matchChar('*') {
goto l110
}
default:
if !matchChar('+') {
goto l110
}
}
}
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l110
}
2011-07-05 00:48:17 +08:00
l113:
{
2011-07-05 00:48:17 +08:00
position114, thunkPosition114 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l114
}
2011-07-05 00:48:17 +08:00
goto l113
l114:
position, thunkPosition = position114, thunkPosition114
}
return true
2011-07-05 00:48:17 +08:00
l110:
position, thunkPosition = position0, thunkPosition0
return false
},
/* 20 BulletList <- (&Bullet (ListTight / ListLoose) { yy.key = BULLETLIST }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position116, thunkPosition116 := position, thunkPosition
if !p.rules[ruleBullet]() {
2011-07-05 00:48:17 +08:00
goto l115
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position116, thunkPosition116
}
{
2011-07-05 00:48:17 +08:00
position117, thunkPosition117 := position, thunkPosition
if !p.rules[ruleListTight]() {
2011-07-05 00:48:17 +08:00
goto l118
}
2011-07-05 00:48:17 +08:00
goto l117
l118:
position, thunkPosition = position117, thunkPosition117
if !p.rules[ruleListLoose]() {
2011-07-05 00:48:17 +08:00
goto l115
}
}
2011-07-05 00:48:17 +08:00
l117:
do(22)
return true
2011-07-05 00:48:17 +08:00
l115:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l119
}
doarg(yySet, -1)
2011-02-21 17:08:33 +08:00
if !p.rules[ruleListItemTight]() {
2011-07-05 00:48:17 +08:00
goto l119
}
do(23)
2011-07-05 00:48:17 +08:00
l120:
{
2011-07-05 00:48:17 +08:00
position121, thunkPosition121 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleListItemTight]() {
2011-07-05 00:48:17 +08:00
goto l121
}
do(23)
2011-07-05 00:48:17 +08:00
goto l120
l121:
position, thunkPosition = position121, thunkPosition121
}
2011-07-05 00:48:17 +08:00
l122:
{
2011-07-05 00:48:17 +08:00
position123, thunkPosition123 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l123
}
2011-07-05 00:48:17 +08:00
goto l122
l123:
position, thunkPosition = position123, thunkPosition123
}
{
2011-07-05 00:48:17 +08:00
position124, thunkPosition124 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position125, thunkPosition125 := position, thunkPosition
if !p.rules[ruleBullet]() {
2011-07-05 00:48:17 +08:00
goto l126
}
2011-07-05 00:48:17 +08:00
goto l125
l126:
position, thunkPosition = position125, thunkPosition125
if !p.rules[ruleEnumerator]() {
2011-07-05 00:48:17 +08:00
goto l127
}
2011-07-05 00:48:17 +08:00
goto l125
l127:
position, thunkPosition = position125, thunkPosition125
if !p.rules[ruleDefMarker]() {
2011-07-05 00:48:17 +08:00
goto l124
}
}
2011-07-05 00:48:17 +08:00
l125:
goto l119
l124:
position, thunkPosition = position124, thunkPosition124
}
do(24)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l119:
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]() {
2011-07-05 00:48:17 +08:00
goto l128
}
doarg(yySet, -1)
if !p.rules[ruleListItem]() {
2011-07-05 00:48:17 +08:00
goto l128
}
doarg(yySet, -2)
2011-07-05 00:48:17 +08:00
l131:
{
2011-07-05 00:48:17 +08:00
position132, thunkPosition132 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l132
}
2011-07-05 00:48:17 +08:00
goto l131
l132:
position, thunkPosition = position132, thunkPosition132
}
do(25)
2011-07-05 00:48:17 +08:00
l129:
{
2011-07-05 00:48:17 +08:00
position130, thunkPosition130 := position, thunkPosition
if !p.rules[ruleListItem]() {
2011-07-05 00:48:17 +08:00
goto l130
}
doarg(yySet, -2)
2011-07-05 00:48:17 +08:00
l133:
{
2011-07-05 00:48:17 +08:00
position134, thunkPosition134 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l134
}
2011-07-05 00:48:17 +08:00
goto l133
l134:
position, thunkPosition = position134, thunkPosition134
}
do(25)
2011-07-05 00:48:17 +08:00
goto l129
l130:
position, thunkPosition = position130, thunkPosition130
}
do(26)
doarg(yyPop, 2)
return true
2011-07-05 00:48:17 +08:00
l128:
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)
{
2011-07-05 00:48:17 +08:00
position136, thunkPosition136 := position, thunkPosition
if !p.rules[ruleBullet]() {
2011-07-05 00:48:17 +08:00
goto l137
}
2011-07-05 00:48:17 +08:00
goto l136
l137:
position, thunkPosition = position136, thunkPosition136
if !p.rules[ruleEnumerator]() {
2011-07-05 00:48:17 +08:00
goto l138
}
2011-07-05 00:48:17 +08:00
goto l136
l138:
position, thunkPosition = position136, thunkPosition136
if !p.rules[ruleDefMarker]() {
2011-07-05 00:48:17 +08:00
goto l135
}
}
2011-07-05 00:48:17 +08:00
l136:
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l135
}
doarg(yySet, -1)
if !p.rules[ruleListBlock]() {
2011-07-05 00:48:17 +08:00
goto l135
}
do(27)
2011-07-05 00:48:17 +08:00
l139:
{
2011-07-05 00:48:17 +08:00
position140, thunkPosition140 := position, thunkPosition
if !p.rules[ruleListContinuationBlock]() {
2011-07-05 00:48:17 +08:00
goto l140
}
do(28)
2011-07-05 00:48:17 +08:00
goto l139
l140:
position, thunkPosition = position140, thunkPosition140
}
do(29)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l135:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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)
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position142, thunkPosition142 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleBullet]() {
2011-07-05 00:48:17 +08:00
goto l143
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l142
l143:
position, thunkPosition = position142, thunkPosition142
2011-02-21 17:08:33 +08:00
if !p.rules[ruleEnumerator]() {
2011-07-05 00:48:17 +08:00
goto l144
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l142
l144:
position, thunkPosition = position142, thunkPosition142
2011-02-21 17:08:33 +08:00
if !p.rules[ruleDefMarker]() {
2011-07-05 00:48:17 +08:00
goto l141
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l142:
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l141
}
doarg(yySet, -1)
2011-02-21 17:08:33 +08:00
if !p.rules[ruleListBlock]() {
2011-07-05 00:48:17 +08:00
goto l141
}
do(30)
2011-07-05 00:48:17 +08:00
l145:
{
2011-07-05 00:48:17 +08:00
position146, thunkPosition146 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position147, thunkPosition147 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l147
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l146
l147:
position, thunkPosition = position147, thunkPosition147
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleListContinuationBlock]() {
2011-07-05 00:48:17 +08:00
goto l146
}
do(31)
2011-07-05 00:48:17 +08:00
goto l145
l146:
position, thunkPosition = position146, thunkPosition146
2011-02-21 17:08:33 +08:00
}
{
2011-07-05 00:48:17 +08:00
position148, thunkPosition148 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleListContinuationBlock]() {
2011-07-05 00:48:17 +08:00
goto l148
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l141
l148:
position, thunkPosition = position148, thunkPosition148
}
do(32)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l141:
2011-02-21 17:08:33 +08:00
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]() {
2011-07-05 00:48:17 +08:00
goto l149
2011-02-21 17:08:33 +08:00
}
doarg(yySet, -1)
{
2011-07-05 00:48:17 +08:00
position150, thunkPosition150 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l150
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l149
l150:
position, thunkPosition = position150, thunkPosition150
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleLine]() {
2011-07-05 00:48:17 +08:00
goto l149
2011-02-21 17:08:33 +08:00
}
do(33)
2011-07-05 00:48:17 +08:00
l151:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position152, thunkPosition152 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleListBlockLine]() {
2011-07-05 00:48:17 +08:00
goto l152
2011-02-21 17:08:33 +08:00
}
do(34)
2011-07-05 00:48:17 +08:00
goto l151
l152:
position, thunkPosition = position152, thunkPosition152
2011-02-21 17:08:33 +08:00
}
do(35)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l149:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l153
}
doarg(yySet, -1)
begin = position
2011-07-05 00:48:17 +08:00
l154:
{
2011-07-05 00:48:17 +08:00
position155, thunkPosition155 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l155
}
2011-07-05 00:48:17 +08:00
goto l154
l155:
position, thunkPosition = position155, thunkPosition155
}
end = position
2011-02-21 17:08:33 +08:00
do(36)
if !p.rules[ruleIndent]() {
2011-07-05 00:48:17 +08:00
goto l153
}
if !p.rules[ruleListBlock]() {
2011-07-05 00:48:17 +08:00
goto l153
}
2011-02-21 17:08:33 +08:00
do(37)
2011-07-05 00:48:17 +08:00
l156:
{
2011-07-05 00:48:17 +08:00
position157, thunkPosition157 := position, thunkPosition
if !p.rules[ruleIndent]() {
2011-07-05 00:48:17 +08:00
goto l157
}
if !p.rules[ruleListBlock]() {
2011-07-05 00:48:17 +08:00
goto l157
}
2011-02-21 17:08:33 +08:00
do(37)
2011-07-05 00:48:17 +08:00
goto l156
l157:
position, thunkPosition = position157, thunkPosition157
}
2011-02-21 17:08:33 +08:00
do(38)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l153:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 27 Enumerator <- (NonindentSpace [0-9]+ '.' Spacechar+) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleNonindentSpace]() {
2011-07-05 00:48:17 +08:00
goto l158
}
2011-02-21 17:08:33 +08:00
if !matchClass(7) {
2011-07-05 00:48:17 +08:00
goto l158
}
2011-07-05 00:48:17 +08:00
l159:
{
2011-07-05 00:48:17 +08:00
position160, thunkPosition160 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchClass(7) {
2011-07-05 00:48:17 +08:00
goto l160
}
2011-07-05 00:48:17 +08:00
goto l159
l160:
position, thunkPosition = position160, thunkPosition160
}
if !matchChar('.') {
2011-07-05 00:48:17 +08:00
goto l158
}
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l158
}
2011-07-05 00:48:17 +08:00
l161:
{
2011-07-05 00:48:17 +08:00
position162, thunkPosition162 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l162
}
2011-07-05 00:48:17 +08:00
goto l161
l162:
position, thunkPosition = position162, thunkPosition162
}
return true
2011-07-05 00:48:17 +08:00
l158:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 28 OrderedList <- (&Enumerator (ListTight / ListLoose) { yy.key = ORDEREDLIST }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position164, thunkPosition164 := position, thunkPosition
if !p.rules[ruleEnumerator]() {
2011-07-05 00:48:17 +08:00
goto l163
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position164, thunkPosition164
}
{
2011-07-05 00:48:17 +08:00
position165, thunkPosition165 := position, thunkPosition
if !p.rules[ruleListTight]() {
2011-07-05 00:48:17 +08:00
goto l166
}
2011-07-05 00:48:17 +08:00
goto l165
l166:
position, thunkPosition = position165, thunkPosition165
if !p.rules[ruleListLoose]() {
2011-07-05 00:48:17 +08:00
goto l163
}
}
2011-07-05 00:48:17 +08:00
l165:
2011-02-21 17:08:33 +08:00
do(39)
return true
2011-07-05 00:48:17 +08:00
l163:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 29 ListBlockLine <- (!BlankLine !((Indent? (Bullet / Enumerator)) / DefMarker) !HorizontalRule OptionallyIndentedLine) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position168, thunkPosition168 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l168
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l167
l168:
position, thunkPosition = position168, thunkPosition168
2011-02-21 17:08:33 +08:00
}
{
2011-07-05 00:48:17 +08:00
position169, thunkPosition169 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position170, thunkPosition170 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position172, thunkPosition172 := position, thunkPosition
if !p.rules[ruleIndent]() {
2011-07-05 00:48:17 +08:00
goto l172
}
2011-07-05 00:48:17 +08:00
goto l173
l172:
position, thunkPosition = position172, thunkPosition172
}
2011-07-05 00:48:17 +08:00
l173:
{
2011-07-05 00:48:17 +08:00
position174, thunkPosition174 := position, thunkPosition
if !p.rules[ruleBullet]() {
2011-07-05 00:48:17 +08:00
goto l175
}
2011-07-05 00:48:17 +08:00
goto l174
l175:
position, thunkPosition = position174, thunkPosition174
if !p.rules[ruleEnumerator]() {
2011-07-05 00:48:17 +08:00
goto l171
}
}
2011-07-05 00:48:17 +08:00
l174:
goto l170
l171:
position, thunkPosition = position170, thunkPosition170
if !p.rules[ruleDefMarker]() {
2011-07-05 00:48:17 +08:00
goto l169
}
}
2011-07-05 00:48:17 +08:00
l170:
goto l167
l169:
position, thunkPosition = position169, thunkPosition169
}
{
2011-07-05 00:48:17 +08:00
position176, thunkPosition176 := position, thunkPosition
if !p.rules[ruleHorizontalRule]() {
2011-07-05 00:48:17 +08:00
goto l176
}
2011-07-05 00:48:17 +08:00
goto l167
l176:
position, thunkPosition = position176, thunkPosition176
}
if !p.rules[ruleOptionallyIndentedLine]() {
2011-07-05 00:48:17 +08:00
goto l167
}
return true
2011-07-05 00:48:17 +08:00
l167:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 30 HtmlBlockOpenAddress <- ('<' Spnl ('address' / 'ADDRESS') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l177
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l177
}
{
2011-07-05 00:48:17 +08:00
position178, thunkPosition178 := position, thunkPosition
if !matchString("address") {
2011-07-05 00:48:17 +08:00
goto l179
}
2011-07-05 00:48:17 +08:00
goto l178
l179:
position, thunkPosition = position178, thunkPosition178
if !matchString("ADDRESS") {
2011-07-05 00:48:17 +08:00
goto l177
}
}
2011-07-05 00:48:17 +08:00
l178:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l177
}
2011-07-05 00:48:17 +08:00
l180:
{
2011-07-05 00:48:17 +08:00
position181, thunkPosition181 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l181
}
2011-07-05 00:48:17 +08:00
goto l180
l181:
position, thunkPosition = position181, thunkPosition181
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l177
}
return true
2011-07-05 00:48:17 +08:00
l177:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 31 HtmlBlockCloseAddress <- ('<' Spnl '/' ('address' / 'ADDRESS') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l182
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l182
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l182
}
{
2011-07-05 00:48:17 +08:00
position183, thunkPosition183 := position, thunkPosition
if !matchString("address") {
2011-07-05 00:48:17 +08:00
goto l184
}
2011-07-05 00:48:17 +08:00
goto l183
l184:
position, thunkPosition = position183, thunkPosition183
if !matchString("ADDRESS") {
2011-07-05 00:48:17 +08:00
goto l182
}
}
2011-07-05 00:48:17 +08:00
l183:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l182
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l182
}
return true
2011-07-05 00:48:17 +08:00
l182:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 32 HtmlBlockAddress <- (HtmlBlockOpenAddress (HtmlBlockAddress / (!HtmlBlockCloseAddress .))* HtmlBlockCloseAddress) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockOpenAddress]() {
2011-07-05 00:48:17 +08:00
goto l185
}
2011-07-05 00:48:17 +08:00
l186:
{
2011-07-05 00:48:17 +08:00
position187, thunkPosition187 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position188, thunkPosition188 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockAddress]() {
2011-07-05 00:48:17 +08:00
goto l189
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l188
l189:
position, thunkPosition = position188, thunkPosition188
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position190, thunkPosition190 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseAddress]() {
2011-07-05 00:48:17 +08:00
goto l190
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l187
l190:
position, thunkPosition = position190, thunkPosition190
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l187
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l188:
goto l186
l187:
position, thunkPosition = position187, thunkPosition187
}
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseAddress]() {
2011-07-05 00:48:17 +08:00
goto l185
}
return true
2011-07-05 00:48:17 +08:00
l185:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 33 HtmlBlockOpenBlockquote <- ('<' Spnl ('blockquote' / 'BLOCKQUOTE') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l191
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l191
}
{
2011-07-05 00:48:17 +08:00
position192, thunkPosition192 := position, thunkPosition
if !matchString("blockquote") {
2011-07-05 00:48:17 +08:00
goto l193
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l192
l193:
position, thunkPosition = position192, thunkPosition192
2011-02-21 17:08:33 +08:00
if !matchString("BLOCKQUOTE") {
2011-07-05 00:48:17 +08:00
goto l191
}
}
2011-07-05 00:48:17 +08:00
l192:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l191
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l194:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position195, thunkPosition195 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l195
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l194
l195:
position, thunkPosition = position195, thunkPosition195
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l191
}
return true
2011-07-05 00:48:17 +08:00
l191:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 34 HtmlBlockCloseBlockquote <- ('<' Spnl '/' ('blockquote' / 'BLOCKQUOTE') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l196
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l196
2011-02-21 17:08:33 +08:00
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l196
}
{
2011-07-05 00:48:17 +08:00
position197, thunkPosition197 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("blockquote") {
2011-07-05 00:48:17 +08:00
goto l198
}
2011-07-05 00:48:17 +08:00
goto l197
l198:
position, thunkPosition = position197, thunkPosition197
2011-02-21 17:08:33 +08:00
if !matchString("BLOCKQUOTE") {
2011-07-05 00:48:17 +08:00
goto l196
}
}
2011-07-05 00:48:17 +08:00
l197:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l196
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l196
}
return true
2011-07-05 00:48:17 +08:00
l196:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 35 HtmlBlockBlockquote <- (HtmlBlockOpenBlockquote (HtmlBlockBlockquote / (!HtmlBlockCloseBlockquote .))* HtmlBlockCloseBlockquote) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockOpenBlockquote]() {
2011-07-05 00:48:17 +08:00
goto l199
}
2011-07-05 00:48:17 +08:00
l200:
{
2011-07-05 00:48:17 +08:00
position201, thunkPosition201 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position202, thunkPosition202 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockBlockquote]() {
2011-07-05 00:48:17 +08:00
goto l203
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l202
l203:
position, thunkPosition = position202, thunkPosition202
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position204, thunkPosition204 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseBlockquote]() {
2011-07-05 00:48:17 +08:00
goto l204
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l201
l204:
position, thunkPosition = position204, thunkPosition204
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l201
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l202:
goto l200
l201:
position, thunkPosition = position201, thunkPosition201
}
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseBlockquote]() {
2011-07-05 00:48:17 +08:00
goto l199
}
return true
2011-07-05 00:48:17 +08:00
l199:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 36 HtmlBlockOpenCenter <- ('<' Spnl ('center' / 'CENTER') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l205
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l205
}
{
2011-07-05 00:48:17 +08:00
position206, thunkPosition206 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("center") {
2011-07-05 00:48:17 +08:00
goto l207
}
2011-07-05 00:48:17 +08:00
goto l206
l207:
position, thunkPosition = position206, thunkPosition206
2011-02-21 17:08:33 +08:00
if !matchString("CENTER") {
2011-07-05 00:48:17 +08:00
goto l205
}
}
2011-07-05 00:48:17 +08:00
l206:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l205
}
2011-07-05 00:48:17 +08:00
l208:
{
2011-07-05 00:48:17 +08:00
position209, thunkPosition209 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l209
}
2011-07-05 00:48:17 +08:00
goto l208
l209:
position, thunkPosition = position209, thunkPosition209
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l205
}
return true
2011-07-05 00:48:17 +08:00
l205:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 37 HtmlBlockCloseCenter <- ('<' Spnl '/' ('center' / 'CENTER') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l210
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l210
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l210
}
{
2011-07-05 00:48:17 +08:00
position211, thunkPosition211 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("center") {
2011-07-05 00:48:17 +08:00
goto l212
}
2011-07-05 00:48:17 +08:00
goto l211
l212:
position, thunkPosition = position211, thunkPosition211
2011-02-21 17:08:33 +08:00
if !matchString("CENTER") {
2011-07-05 00:48:17 +08:00
goto l210
}
}
2011-07-05 00:48:17 +08:00
l211:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l210
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l210
}
return true
2011-07-05 00:48:17 +08:00
l210:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 38 HtmlBlockCenter <- (HtmlBlockOpenCenter (HtmlBlockCenter / (!HtmlBlockCloseCenter .))* HtmlBlockCloseCenter) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockOpenCenter]() {
2011-07-05 00:48:17 +08:00
goto l213
}
2011-07-05 00:48:17 +08:00
l214:
{
2011-07-05 00:48:17 +08:00
position215, thunkPosition215 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position216, thunkPosition216 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCenter]() {
2011-07-05 00:48:17 +08:00
goto l217
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l216
l217:
position, thunkPosition = position216, thunkPosition216
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position218, thunkPosition218 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseCenter]() {
2011-07-05 00:48:17 +08:00
goto l218
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l215
l218:
position, thunkPosition = position218, thunkPosition218
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l215
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l216:
goto l214
l215:
position, thunkPosition = position215, thunkPosition215
}
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseCenter]() {
2011-07-05 00:48:17 +08:00
goto l213
}
return true
2011-07-05 00:48:17 +08:00
l213:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 39 HtmlBlockOpenDir <- ('<' Spnl ('dir' / 'DIR') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l219
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l219
}
{
2011-07-05 00:48:17 +08:00
position220, thunkPosition220 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("dir") {
2011-07-05 00:48:17 +08:00
goto l221
}
2011-07-05 00:48:17 +08:00
goto l220
l221:
position, thunkPosition = position220, thunkPosition220
2011-02-21 17:08:33 +08:00
if !matchString("DIR") {
2011-07-05 00:48:17 +08:00
goto l219
}
}
2011-07-05 00:48:17 +08:00
l220:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l219
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l222:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position223, thunkPosition223 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l223
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l222
l223:
position, thunkPosition = position223, thunkPosition223
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l219
}
return true
2011-07-05 00:48:17 +08:00
l219:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 40 HtmlBlockCloseDir <- ('<' Spnl '/' ('dir' / 'DIR') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l224
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l224
2011-02-21 17:08:33 +08:00
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l224
}
{
2011-07-05 00:48:17 +08:00
position225, thunkPosition225 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("dir") {
2011-07-05 00:48:17 +08:00
goto l226
}
2011-07-05 00:48:17 +08:00
goto l225
l226:
position, thunkPosition = position225, thunkPosition225
2011-02-21 17:08:33 +08:00
if !matchString("DIR") {
2011-07-05 00:48:17 +08:00
goto l224
}
}
2011-07-05 00:48:17 +08:00
l225:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l224
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l224
}
return true
2011-07-05 00:48:17 +08:00
l224:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 41 HtmlBlockDir <- (HtmlBlockOpenDir (HtmlBlockDir / (!HtmlBlockCloseDir .))* HtmlBlockCloseDir) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockOpenDir]() {
2011-07-05 00:48:17 +08:00
goto l227
}
2011-07-05 00:48:17 +08:00
l228:
{
2011-07-05 00:48:17 +08:00
position229, thunkPosition229 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position230, thunkPosition230 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockDir]() {
2011-07-05 00:48:17 +08:00
goto l231
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l230
l231:
position, thunkPosition = position230, thunkPosition230
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position232, thunkPosition232 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseDir]() {
2011-07-05 00:48:17 +08:00
goto l232
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l229
l232:
position, thunkPosition = position232, thunkPosition232
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l229
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l230:
goto l228
l229:
position, thunkPosition = position229, thunkPosition229
}
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseDir]() {
2011-07-05 00:48:17 +08:00
goto l227
}
return true
2011-07-05 00:48:17 +08:00
l227:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 42 HtmlBlockOpenDiv <- ('<' Spnl ('div' / 'DIV') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l233
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l233
}
{
2011-07-05 00:48:17 +08:00
position234, thunkPosition234 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("div") {
2011-07-05 00:48:17 +08:00
goto l235
}
2011-07-05 00:48:17 +08:00
goto l234
l235:
position, thunkPosition = position234, thunkPosition234
2011-02-21 17:08:33 +08:00
if !matchString("DIV") {
2011-07-05 00:48:17 +08:00
goto l233
}
}
2011-07-05 00:48:17 +08:00
l234:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l233
}
2011-07-05 00:48:17 +08:00
l236:
{
2011-07-05 00:48:17 +08:00
position237, thunkPosition237 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l237
}
2011-07-05 00:48:17 +08:00
goto l236
l237:
position, thunkPosition = position237, thunkPosition237
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l233
}
return true
2011-07-05 00:48:17 +08:00
l233:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 43 HtmlBlockCloseDiv <- ('<' Spnl '/' ('div' / 'DIV') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l238
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l238
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l238
}
{
2011-07-05 00:48:17 +08:00
position239, thunkPosition239 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("div") {
2011-07-05 00:48:17 +08:00
goto l240
}
2011-07-05 00:48:17 +08:00
goto l239
l240:
position, thunkPosition = position239, thunkPosition239
2011-02-21 17:08:33 +08:00
if !matchString("DIV") {
2011-07-05 00:48:17 +08:00
goto l238
}
}
2011-07-05 00:48:17 +08:00
l239:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l238
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l238
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l238:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 44 HtmlBlockDiv <- (HtmlBlockOpenDiv (HtmlBlockDiv / (!HtmlBlockCloseDiv .))* HtmlBlockCloseDiv) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenDiv]() {
2011-07-05 00:48:17 +08:00
goto l241
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l242:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position243, thunkPosition243 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position244, thunkPosition244 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockDiv]() {
2011-07-05 00:48:17 +08:00
goto l245
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l244
l245:
position, thunkPosition = position244, thunkPosition244
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position246, thunkPosition246 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseDiv]() {
2011-07-05 00:48:17 +08:00
goto l246
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l243
l246:
position, thunkPosition = position246, thunkPosition246
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l243
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l244:
goto l242
l243:
position, thunkPosition = position243, thunkPosition243
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseDiv]() {
2011-07-05 00:48:17 +08:00
goto l241
}
return true
2011-07-05 00:48:17 +08:00
l241:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 45 HtmlBlockOpenDl <- ('<' Spnl ('dl' / 'DL') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l247
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l247
}
{
2011-07-05 00:48:17 +08:00
position248, thunkPosition248 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("dl") {
2011-07-05 00:48:17 +08:00
goto l249
}
2011-07-05 00:48:17 +08:00
goto l248
l249:
position, thunkPosition = position248, thunkPosition248
2011-02-21 17:08:33 +08:00
if !matchString("DL") {
2011-07-05 00:48:17 +08:00
goto l247
}
}
2011-07-05 00:48:17 +08:00
l248:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l247
}
2011-07-05 00:48:17 +08:00
l250:
{
2011-07-05 00:48:17 +08:00
position251, thunkPosition251 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l251
}
2011-07-05 00:48:17 +08:00
goto l250
l251:
position, thunkPosition = position251, thunkPosition251
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l247
}
return true
2011-07-05 00:48:17 +08:00
l247:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 46 HtmlBlockCloseDl <- ('<' Spnl '/' ('dl' / 'DL') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l252
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l252
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l252
}
{
2011-07-05 00:48:17 +08:00
position253, thunkPosition253 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("dl") {
2011-07-05 00:48:17 +08:00
goto l254
}
2011-07-05 00:48:17 +08:00
goto l253
l254:
position, thunkPosition = position253, thunkPosition253
2011-02-21 17:08:33 +08:00
if !matchString("DL") {
2011-07-05 00:48:17 +08:00
goto l252
}
}
2011-07-05 00:48:17 +08:00
l253:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l252
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l252
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l252:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 47 HtmlBlockDl <- (HtmlBlockOpenDl (HtmlBlockDl / (!HtmlBlockCloseDl .))* HtmlBlockCloseDl) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenDl]() {
2011-07-05 00:48:17 +08:00
goto l255
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l256:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position257, thunkPosition257 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position258, thunkPosition258 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockDl]() {
2011-07-05 00:48:17 +08:00
goto l259
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l258
l259:
position, thunkPosition = position258, thunkPosition258
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position260, thunkPosition260 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseDl]() {
2011-07-05 00:48:17 +08:00
goto l260
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l257
l260:
position, thunkPosition = position260, thunkPosition260
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l257
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l258:
goto l256
l257:
position, thunkPosition = position257, thunkPosition257
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseDl]() {
2011-07-05 00:48:17 +08:00
goto l255
}
return true
2011-07-05 00:48:17 +08:00
l255:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 48 HtmlBlockOpenFieldset <- ('<' Spnl ('fieldset' / 'FIELDSET') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l261
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l261
}
{
2011-07-05 00:48:17 +08:00
position262, thunkPosition262 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("fieldset") {
2011-07-05 00:48:17 +08:00
goto l263
}
2011-07-05 00:48:17 +08:00
goto l262
l263:
position, thunkPosition = position262, thunkPosition262
2011-02-21 17:08:33 +08:00
if !matchString("FIELDSET") {
2011-07-05 00:48:17 +08:00
goto l261
}
}
2011-07-05 00:48:17 +08:00
l262:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l261
}
2011-07-05 00:48:17 +08:00
l264:
{
2011-07-05 00:48:17 +08:00
position265, thunkPosition265 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l265
}
2011-07-05 00:48:17 +08:00
goto l264
l265:
position, thunkPosition = position265, thunkPosition265
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l261
}
return true
2011-07-05 00:48:17 +08:00
l261:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 49 HtmlBlockCloseFieldset <- ('<' Spnl '/' ('fieldset' / 'FIELDSET') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l266
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l266
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l266
}
{
2011-07-05 00:48:17 +08:00
position267, thunkPosition267 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("fieldset") {
2011-07-05 00:48:17 +08:00
goto l268
}
2011-07-05 00:48:17 +08:00
goto l267
l268:
position, thunkPosition = position267, thunkPosition267
2011-02-21 17:08:33 +08:00
if !matchString("FIELDSET") {
2011-07-05 00:48:17 +08:00
goto l266
}
}
2011-07-05 00:48:17 +08:00
l267:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l266
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l266
}
return true
2011-07-05 00:48:17 +08:00
l266:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 50 HtmlBlockFieldset <- (HtmlBlockOpenFieldset (HtmlBlockFieldset / (!HtmlBlockCloseFieldset .))* HtmlBlockCloseFieldset) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenFieldset]() {
2011-07-05 00:48:17 +08:00
goto l269
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l270:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position271, thunkPosition271 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position272, thunkPosition272 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockFieldset]() {
2011-07-05 00:48:17 +08:00
goto l273
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l272
l273:
position, thunkPosition = position272, thunkPosition272
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position274, thunkPosition274 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseFieldset]() {
2011-07-05 00:48:17 +08:00
goto l274
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l271
l274:
position, thunkPosition = position274, thunkPosition274
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l271
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l272:
goto l270
l271:
position, thunkPosition = position271, thunkPosition271
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseFieldset]() {
2011-07-05 00:48:17 +08:00
goto l269
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l269:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 51 HtmlBlockOpenForm <- ('<' Spnl ('form' / 'FORM') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l275
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l275
}
{
2011-07-05 00:48:17 +08:00
position276, thunkPosition276 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("form") {
2011-07-05 00:48:17 +08:00
goto l277
}
2011-07-05 00:48:17 +08:00
goto l276
l277:
position, thunkPosition = position276, thunkPosition276
2011-02-21 17:08:33 +08:00
if !matchString("FORM") {
2011-07-05 00:48:17 +08:00
goto l275
}
}
2011-07-05 00:48:17 +08:00
l276:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l275
}
2011-07-05 00:48:17 +08:00
l278:
{
2011-07-05 00:48:17 +08:00
position279, thunkPosition279 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l279
}
2011-07-05 00:48:17 +08:00
goto l278
l279:
position, thunkPosition = position279, thunkPosition279
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l275
}
return true
2011-07-05 00:48:17 +08:00
l275:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 52 HtmlBlockCloseForm <- ('<' Spnl '/' ('form' / 'FORM') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l280
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l280
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l280
}
{
2011-07-05 00:48:17 +08:00
position281, thunkPosition281 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("form") {
2011-07-05 00:48:17 +08:00
goto l282
}
2011-07-05 00:48:17 +08:00
goto l281
l282:
position, thunkPosition = position281, thunkPosition281
2011-02-21 17:08:33 +08:00
if !matchString("FORM") {
2011-07-05 00:48:17 +08:00
goto l280
}
}
2011-07-05 00:48:17 +08:00
l281:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l280
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l280
}
return true
2011-07-05 00:48:17 +08:00
l280:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 53 HtmlBlockForm <- (HtmlBlockOpenForm (HtmlBlockForm / (!HtmlBlockCloseForm .))* HtmlBlockCloseForm) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenForm]() {
2011-07-05 00:48:17 +08:00
goto l283
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l284:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position285, thunkPosition285 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position286, thunkPosition286 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockForm]() {
2011-07-05 00:48:17 +08:00
goto l287
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l286
l287:
position, thunkPosition = position286, thunkPosition286
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position288, thunkPosition288 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseForm]() {
2011-07-05 00:48:17 +08:00
goto l288
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l285
l288:
position, thunkPosition = position288, thunkPosition288
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l285
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l286:
goto l284
l285:
position, thunkPosition = position285, thunkPosition285
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseForm]() {
2011-07-05 00:48:17 +08:00
goto l283
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l283:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 54 HtmlBlockOpenH1 <- ('<' Spnl ('h1' / 'H1') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l289
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l289
}
{
2011-07-05 00:48:17 +08:00
position290, thunkPosition290 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("h1") {
2011-07-05 00:48:17 +08:00
goto l291
}
2011-07-05 00:48:17 +08:00
goto l290
l291:
position, thunkPosition = position290, thunkPosition290
2011-02-21 17:08:33 +08:00
if !matchString("H1") {
2011-07-05 00:48:17 +08:00
goto l289
}
}
2011-07-05 00:48:17 +08:00
l290:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l289
}
2011-07-05 00:48:17 +08:00
l292:
{
2011-07-05 00:48:17 +08:00
position293, thunkPosition293 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l293
}
2011-07-05 00:48:17 +08:00
goto l292
l293:
position, thunkPosition = position293, thunkPosition293
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l289
}
return true
2011-07-05 00:48:17 +08:00
l289:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 55 HtmlBlockCloseH1 <- ('<' Spnl '/' ('h1' / 'H1') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l294
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l294
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l294
}
{
2011-07-05 00:48:17 +08:00
position295, thunkPosition295 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("h1") {
2011-07-05 00:48:17 +08:00
goto l296
}
2011-07-05 00:48:17 +08:00
goto l295
l296:
position, thunkPosition = position295, thunkPosition295
2011-02-21 17:08:33 +08:00
if !matchString("H1") {
2011-07-05 00:48:17 +08:00
goto l294
}
}
2011-07-05 00:48:17 +08:00
l295:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l294
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l294
}
return true
2011-07-05 00:48:17 +08:00
l294:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 56 HtmlBlockH1 <- (HtmlBlockOpenH1 (HtmlBlockH1 / (!HtmlBlockCloseH1 .))* HtmlBlockCloseH1) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockOpenH1]() {
2011-07-05 00:48:17 +08:00
goto l297
}
2011-07-05 00:48:17 +08:00
l298:
{
2011-07-05 00:48:17 +08:00
position299, thunkPosition299 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position300, thunkPosition300 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockH1]() {
2011-07-05 00:48:17 +08:00
goto l301
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l300
l301:
position, thunkPosition = position300, thunkPosition300
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position302, thunkPosition302 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseH1]() {
2011-07-05 00:48:17 +08:00
goto l302
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l299
l302:
position, thunkPosition = position302, thunkPosition302
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l299
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l300:
goto l298
l299:
position, thunkPosition = position299, thunkPosition299
}
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseH1]() {
2011-07-05 00:48:17 +08:00
goto l297
}
return true
2011-07-05 00:48:17 +08:00
l297:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 57 HtmlBlockOpenH2 <- ('<' Spnl ('h2' / 'H2') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l303
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l303
}
{
2011-07-05 00:48:17 +08:00
position304, thunkPosition304 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("h2") {
2011-07-05 00:48:17 +08:00
goto l305
}
2011-07-05 00:48:17 +08:00
goto l304
l305:
position, thunkPosition = position304, thunkPosition304
2011-02-21 17:08:33 +08:00
if !matchString("H2") {
2011-07-05 00:48:17 +08:00
goto l303
}
}
2011-07-05 00:48:17 +08:00
l304:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l303
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l306:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position307, thunkPosition307 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l307
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l306
l307:
position, thunkPosition = position307, thunkPosition307
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l303
}
return true
2011-07-05 00:48:17 +08:00
l303:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 58 HtmlBlockCloseH2 <- ('<' Spnl '/' ('h2' / 'H2') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l308
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l308
2011-02-21 17:08:33 +08:00
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l308
}
{
2011-07-05 00:48:17 +08:00
position309, thunkPosition309 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("h2") {
2011-07-05 00:48:17 +08:00
goto l310
}
2011-07-05 00:48:17 +08:00
goto l309
l310:
position, thunkPosition = position309, thunkPosition309
2011-02-21 17:08:33 +08:00
if !matchString("H2") {
2011-07-05 00:48:17 +08:00
goto l308
}
}
2011-07-05 00:48:17 +08:00
l309:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l308
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l308
}
return true
2011-07-05 00:48:17 +08:00
l308:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 59 HtmlBlockH2 <- (HtmlBlockOpenH2 (HtmlBlockH2 / (!HtmlBlockCloseH2 .))* HtmlBlockCloseH2) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockOpenH2]() {
2011-07-05 00:48:17 +08:00
goto l311
}
2011-07-05 00:48:17 +08:00
l312:
{
2011-07-05 00:48:17 +08:00
position313, thunkPosition313 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position314, thunkPosition314 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockH2]() {
2011-07-05 00:48:17 +08:00
goto l315
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l314
l315:
position, thunkPosition = position314, thunkPosition314
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position316, thunkPosition316 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseH2]() {
2011-07-05 00:48:17 +08:00
goto l316
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l313
l316:
position, thunkPosition = position316, thunkPosition316
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l313
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l314:
goto l312
l313:
position, thunkPosition = position313, thunkPosition313
}
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseH2]() {
2011-07-05 00:48:17 +08:00
goto l311
}
return true
2011-07-05 00:48:17 +08:00
l311:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 60 HtmlBlockOpenH3 <- ('<' Spnl ('h3' / 'H3') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l317
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l317
}
{
2011-07-05 00:48:17 +08:00
position318, thunkPosition318 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("h3") {
2011-07-05 00:48:17 +08:00
goto l319
}
2011-07-05 00:48:17 +08:00
goto l318
l319:
position, thunkPosition = position318, thunkPosition318
2011-02-21 17:08:33 +08:00
if !matchString("H3") {
2011-07-05 00:48:17 +08:00
goto l317
}
}
2011-07-05 00:48:17 +08:00
l318:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l317
}
2011-07-05 00:48:17 +08:00
l320:
{
2011-07-05 00:48:17 +08:00
position321, thunkPosition321 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l321
}
2011-07-05 00:48:17 +08:00
goto l320
l321:
position, thunkPosition = position321, thunkPosition321
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l317
}
return true
2011-07-05 00:48:17 +08:00
l317:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 61 HtmlBlockCloseH3 <- ('<' Spnl '/' ('h3' / 'H3') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l322
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l322
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l322
}
{
2011-07-05 00:48:17 +08:00
position323, thunkPosition323 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("h3") {
2011-07-05 00:48:17 +08:00
goto l324
}
2011-07-05 00:48:17 +08:00
goto l323
l324:
position, thunkPosition = position323, thunkPosition323
2011-02-21 17:08:33 +08:00
if !matchString("H3") {
2011-07-05 00:48:17 +08:00
goto l322
}
}
2011-07-05 00:48:17 +08:00
l323:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l322
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l322
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l322:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 62 HtmlBlockH3 <- (HtmlBlockOpenH3 (HtmlBlockH3 / (!HtmlBlockCloseH3 .))* HtmlBlockCloseH3) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenH3]() {
2011-07-05 00:48:17 +08:00
goto l325
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l326:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position327, thunkPosition327 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position328, thunkPosition328 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockH3]() {
2011-07-05 00:48:17 +08:00
goto l329
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l328
l329:
position, thunkPosition = position328, thunkPosition328
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position330, thunkPosition330 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseH3]() {
2011-07-05 00:48:17 +08:00
goto l330
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l327
l330:
position, thunkPosition = position330, thunkPosition330
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l327
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l328:
goto l326
l327:
position, thunkPosition = position327, thunkPosition327
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseH3]() {
2011-07-05 00:48:17 +08:00
goto l325
}
return true
2011-07-05 00:48:17 +08:00
l325:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 63 HtmlBlockOpenH4 <- ('<' Spnl ('h4' / 'H4') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l331
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l331
}
{
2011-07-05 00:48:17 +08:00
position332, thunkPosition332 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("h4") {
2011-07-05 00:48:17 +08:00
goto l333
}
2011-07-05 00:48:17 +08:00
goto l332
l333:
position, thunkPosition = position332, thunkPosition332
2011-02-21 17:08:33 +08:00
if !matchString("H4") {
2011-07-05 00:48:17 +08:00
goto l331
}
}
2011-07-05 00:48:17 +08:00
l332:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l331
}
2011-07-05 00:48:17 +08:00
l334:
{
2011-07-05 00:48:17 +08:00
position335, thunkPosition335 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l335
}
2011-07-05 00:48:17 +08:00
goto l334
l335:
position, thunkPosition = position335, thunkPosition335
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l331
}
return true
2011-07-05 00:48:17 +08:00
l331:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 64 HtmlBlockCloseH4 <- ('<' Spnl '/' ('h4' / 'H4') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l336
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l336
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l336
}
{
2011-07-05 00:48:17 +08:00
position337, thunkPosition337 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("h4") {
2011-07-05 00:48:17 +08:00
goto l338
}
2011-07-05 00:48:17 +08:00
goto l337
l338:
position, thunkPosition = position337, thunkPosition337
2011-02-21 17:08:33 +08:00
if !matchString("H4") {
2011-07-05 00:48:17 +08:00
goto l336
}
}
2011-07-05 00:48:17 +08:00
l337:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l336
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l336
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l336:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 65 HtmlBlockH4 <- (HtmlBlockOpenH4 (HtmlBlockH4 / (!HtmlBlockCloseH4 .))* HtmlBlockCloseH4) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenH4]() {
2011-07-05 00:48:17 +08:00
goto l339
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l340:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position341, thunkPosition341 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position342, thunkPosition342 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockH4]() {
2011-07-05 00:48:17 +08:00
goto l343
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l342
l343:
position, thunkPosition = position342, thunkPosition342
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position344, thunkPosition344 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseH4]() {
2011-07-05 00:48:17 +08:00
goto l344
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l341
l344:
position, thunkPosition = position344, thunkPosition344
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l341
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l342:
goto l340
l341:
position, thunkPosition = position341, thunkPosition341
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseH4]() {
2011-07-05 00:48:17 +08:00
goto l339
}
return true
2011-07-05 00:48:17 +08:00
l339:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 66 HtmlBlockOpenH5 <- ('<' Spnl ('h5' / 'H5') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l345
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l345
}
{
2011-07-05 00:48:17 +08:00
position346, thunkPosition346 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("h5") {
2011-07-05 00:48:17 +08:00
goto l347
}
2011-07-05 00:48:17 +08:00
goto l346
l347:
position, thunkPosition = position346, thunkPosition346
2011-02-21 17:08:33 +08:00
if !matchString("H5") {
2011-07-05 00:48:17 +08:00
goto l345
}
}
2011-07-05 00:48:17 +08:00
l346:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l345
}
2011-07-05 00:48:17 +08:00
l348:
{
2011-07-05 00:48:17 +08:00
position349, thunkPosition349 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l349
}
2011-07-05 00:48:17 +08:00
goto l348
l349:
position, thunkPosition = position349, thunkPosition349
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l345
}
return true
2011-07-05 00:48:17 +08:00
l345:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 67 HtmlBlockCloseH5 <- ('<' Spnl '/' ('h5' / 'H5') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l350
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l350
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l350
}
{
2011-07-05 00:48:17 +08:00
position351, thunkPosition351 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("h5") {
2011-07-05 00:48:17 +08:00
goto l352
}
2011-07-05 00:48:17 +08:00
goto l351
l352:
position, thunkPosition = position351, thunkPosition351
2011-02-21 17:08:33 +08:00
if !matchString("H5") {
2011-07-05 00:48:17 +08:00
goto l350
}
}
2011-07-05 00:48:17 +08:00
l351:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l350
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l350
}
return true
2011-07-05 00:48:17 +08:00
l350:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 68 HtmlBlockH5 <- (HtmlBlockOpenH5 (HtmlBlockH5 / (!HtmlBlockCloseH5 .))* HtmlBlockCloseH5) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockOpenH5]() {
2011-07-05 00:48:17 +08:00
goto l353
}
2011-07-05 00:48:17 +08:00
l354:
{
2011-07-05 00:48:17 +08:00
position355, thunkPosition355 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position356, thunkPosition356 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockH5]() {
2011-07-05 00:48:17 +08:00
goto l357
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l356
l357:
position, thunkPosition = position356, thunkPosition356
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position358, thunkPosition358 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseH5]() {
2011-07-05 00:48:17 +08:00
goto l358
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l355
l358:
position, thunkPosition = position358, thunkPosition358
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l355
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l356:
goto l354
l355:
position, thunkPosition = position355, thunkPosition355
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseH5]() {
2011-07-05 00:48:17 +08:00
goto l353
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l353:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 69 HtmlBlockOpenH6 <- ('<' Spnl ('h6' / 'H6') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l359
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l359
2011-02-21 17:08:33 +08:00
}
{
2011-07-05 00:48:17 +08:00
position360, thunkPosition360 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("h6") {
2011-07-05 00:48:17 +08:00
goto l361
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l360
l361:
position, thunkPosition = position360, thunkPosition360
2011-02-21 17:08:33 +08:00
if !matchString("H6") {
2011-07-05 00:48:17 +08:00
goto l359
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l360:
2011-02-21 17:08:33 +08:00
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l359
}
2011-07-05 00:48:17 +08:00
l362:
{
2011-07-05 00:48:17 +08:00
position363, thunkPosition363 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l363
}
2011-07-05 00:48:17 +08:00
goto l362
l363:
position, thunkPosition = position363, thunkPosition363
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l359
}
return true
2011-07-05 00:48:17 +08:00
l359:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 70 HtmlBlockCloseH6 <- ('<' Spnl '/' ('h6' / 'H6') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l364
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l364
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l364
}
{
2011-07-05 00:48:17 +08:00
position365, thunkPosition365 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("h6") {
2011-07-05 00:48:17 +08:00
goto l366
}
2011-07-05 00:48:17 +08:00
goto l365
l366:
position, thunkPosition = position365, thunkPosition365
2011-02-21 17:08:33 +08:00
if !matchString("H6") {
2011-07-05 00:48:17 +08:00
goto l364
}
}
2011-07-05 00:48:17 +08:00
l365:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l364
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l364
}
return true
2011-07-05 00:48:17 +08:00
l364:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 71 HtmlBlockH6 <- (HtmlBlockOpenH6 (HtmlBlockH6 / (!HtmlBlockCloseH6 .))* HtmlBlockCloseH6) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenH6]() {
2011-07-05 00:48:17 +08:00
goto l367
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l368:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position369, thunkPosition369 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position370, thunkPosition370 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockH6]() {
2011-07-05 00:48:17 +08:00
goto l371
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l370
l371:
position, thunkPosition = position370, thunkPosition370
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position372, thunkPosition372 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseH6]() {
2011-07-05 00:48:17 +08:00
goto l372
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l369
l372:
position, thunkPosition = position372, thunkPosition372
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l369
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l370:
goto l368
l369:
position, thunkPosition = position369, thunkPosition369
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseH6]() {
2011-07-05 00:48:17 +08:00
goto l367
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l367:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 72 HtmlBlockOpenMenu <- ('<' Spnl ('menu' / 'MENU') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l373
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l373
}
{
2011-07-05 00:48:17 +08:00
position374, thunkPosition374 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("menu") {
2011-07-05 00:48:17 +08:00
goto l375
}
2011-07-05 00:48:17 +08:00
goto l374
l375:
position, thunkPosition = position374, thunkPosition374
2011-02-21 17:08:33 +08:00
if !matchString("MENU") {
2011-07-05 00:48:17 +08:00
goto l373
}
}
2011-07-05 00:48:17 +08:00
l374:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l373
}
2011-07-05 00:48:17 +08:00
l376:
{
2011-07-05 00:48:17 +08:00
position377, thunkPosition377 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l377
}
2011-07-05 00:48:17 +08:00
goto l376
l377:
position, thunkPosition = position377, thunkPosition377
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l373
}
return true
2011-07-05 00:48:17 +08:00
l373:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 73 HtmlBlockCloseMenu <- ('<' Spnl '/' ('menu' / 'MENU') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l378
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l378
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l378
}
{
2011-07-05 00:48:17 +08:00
position379, thunkPosition379 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("menu") {
2011-07-05 00:48:17 +08:00
goto l380
}
2011-07-05 00:48:17 +08:00
goto l379
l380:
position, thunkPosition = position379, thunkPosition379
2011-02-21 17:08:33 +08:00
if !matchString("MENU") {
2011-07-05 00:48:17 +08:00
goto l378
}
}
2011-07-05 00:48:17 +08:00
l379:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l378
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l378
}
return true
2011-07-05 00:48:17 +08:00
l378:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 74 HtmlBlockMenu <- (HtmlBlockOpenMenu (HtmlBlockMenu / (!HtmlBlockCloseMenu .))* HtmlBlockCloseMenu) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenMenu]() {
2011-07-05 00:48:17 +08:00
goto l381
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l382:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position383, thunkPosition383 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position384, thunkPosition384 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockMenu]() {
2011-07-05 00:48:17 +08:00
goto l385
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l384
l385:
position, thunkPosition = position384, thunkPosition384
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position386, thunkPosition386 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseMenu]() {
2011-07-05 00:48:17 +08:00
goto l386
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l383
l386:
position, thunkPosition = position386, thunkPosition386
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l383
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l384:
goto l382
l383:
position, thunkPosition = position383, thunkPosition383
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseMenu]() {
2011-07-05 00:48:17 +08:00
goto l381
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l381:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 75 HtmlBlockOpenNoframes <- ('<' Spnl ('noframes' / 'NOFRAMES') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l387
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l387
}
{
2011-07-05 00:48:17 +08:00
position388, thunkPosition388 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("noframes") {
2011-07-05 00:48:17 +08:00
goto l389
}
2011-07-05 00:48:17 +08:00
goto l388
l389:
position, thunkPosition = position388, thunkPosition388
2011-02-21 17:08:33 +08:00
if !matchString("NOFRAMES") {
2011-07-05 00:48:17 +08:00
goto l387
}
}
2011-07-05 00:48:17 +08:00
l388:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l387
}
2011-07-05 00:48:17 +08:00
l390:
{
2011-07-05 00:48:17 +08:00
position391, thunkPosition391 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l391
}
2011-07-05 00:48:17 +08:00
goto l390
l391:
position, thunkPosition = position391, thunkPosition391
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l387
}
return true
2011-07-05 00:48:17 +08:00
l387:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 76 HtmlBlockCloseNoframes <- ('<' Spnl '/' ('noframes' / 'NOFRAMES') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l392
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l392
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l392
}
{
2011-07-05 00:48:17 +08:00
position393, thunkPosition393 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("noframes") {
2011-07-05 00:48:17 +08:00
goto l394
}
2011-07-05 00:48:17 +08:00
goto l393
l394:
position, thunkPosition = position393, thunkPosition393
2011-02-21 17:08:33 +08:00
if !matchString("NOFRAMES") {
2011-07-05 00:48:17 +08:00
goto l392
}
}
2011-07-05 00:48:17 +08:00
l393:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l392
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l392
}
return true
2011-07-05 00:48:17 +08:00
l392:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 77 HtmlBlockNoframes <- (HtmlBlockOpenNoframes (HtmlBlockNoframes / (!HtmlBlockCloseNoframes .))* HtmlBlockCloseNoframes) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenNoframes]() {
2011-07-05 00:48:17 +08:00
goto l395
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l396:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position397, thunkPosition397 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position398, thunkPosition398 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockNoframes]() {
2011-07-05 00:48:17 +08:00
goto l399
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l398
l399:
position, thunkPosition = position398, thunkPosition398
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position400, thunkPosition400 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseNoframes]() {
2011-07-05 00:48:17 +08:00
goto l400
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l397
l400:
position, thunkPosition = position400, thunkPosition400
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l397
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l398:
goto l396
l397:
position, thunkPosition = position397, thunkPosition397
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseNoframes]() {
2011-07-05 00:48:17 +08:00
goto l395
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l395:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 78 HtmlBlockOpenNoscript <- ('<' Spnl ('noscript' / 'NOSCRIPT') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l401
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l401
}
{
2011-07-05 00:48:17 +08:00
position402, thunkPosition402 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("noscript") {
2011-07-05 00:48:17 +08:00
goto l403
}
2011-07-05 00:48:17 +08:00
goto l402
l403:
position, thunkPosition = position402, thunkPosition402
2011-02-21 17:08:33 +08:00
if !matchString("NOSCRIPT") {
2011-07-05 00:48:17 +08:00
goto l401
}
}
2011-07-05 00:48:17 +08:00
l402:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l401
}
2011-07-05 00:48:17 +08:00
l404:
{
2011-07-05 00:48:17 +08:00
position405, thunkPosition405 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l405
}
2011-07-05 00:48:17 +08:00
goto l404
l405:
position, thunkPosition = position405, thunkPosition405
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l401
}
return true
2011-07-05 00:48:17 +08:00
l401:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 79 HtmlBlockCloseNoscript <- ('<' Spnl '/' ('noscript' / 'NOSCRIPT') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l406
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l406
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l406
}
{
2011-07-05 00:48:17 +08:00
position407, thunkPosition407 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("noscript") {
2011-07-05 00:48:17 +08:00
goto l408
}
2011-07-05 00:48:17 +08:00
goto l407
l408:
position, thunkPosition = position407, thunkPosition407
2011-02-21 17:08:33 +08:00
if !matchString("NOSCRIPT") {
2011-07-05 00:48:17 +08:00
goto l406
}
}
2011-07-05 00:48:17 +08:00
l407:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l406
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l406
}
return true
2011-07-05 00:48:17 +08:00
l406:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 80 HtmlBlockNoscript <- (HtmlBlockOpenNoscript (HtmlBlockNoscript / (!HtmlBlockCloseNoscript .))* HtmlBlockCloseNoscript) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockOpenNoscript]() {
2011-07-05 00:48:17 +08:00
goto l409
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l410:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position411, thunkPosition411 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position412, thunkPosition412 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockNoscript]() {
2011-07-05 00:48:17 +08:00
goto l413
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l412
l413:
position, thunkPosition = position412, thunkPosition412
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position414, thunkPosition414 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseNoscript]() {
2011-07-05 00:48:17 +08:00
goto l414
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l411
l414:
position, thunkPosition = position414, thunkPosition414
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l411
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l412:
goto l410
l411:
position, thunkPosition = position411, thunkPosition411
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseNoscript]() {
2011-07-05 00:48:17 +08:00
goto l409
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l409:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 81 HtmlBlockOpenOl <- ('<' Spnl ('ol' / 'OL') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l415
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l415
}
{
2011-07-05 00:48:17 +08:00
position416, thunkPosition416 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("ol") {
2011-07-05 00:48:17 +08:00
goto l417
}
2011-07-05 00:48:17 +08:00
goto l416
l417:
position, thunkPosition = position416, thunkPosition416
2011-02-21 17:08:33 +08:00
if !matchString("OL") {
2011-07-05 00:48:17 +08:00
goto l415
}
}
2011-07-05 00:48:17 +08:00
l416:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l415
}
2011-07-05 00:48:17 +08:00
l418:
{
2011-07-05 00:48:17 +08:00
position419, thunkPosition419 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l419
}
2011-07-05 00:48:17 +08:00
goto l418
l419:
position, thunkPosition = position419, thunkPosition419
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l415
}
return true
2011-07-05 00:48:17 +08:00
l415:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 82 HtmlBlockCloseOl <- ('<' Spnl '/' ('ol' / 'OL') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l420
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l420
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l420
}
{
2011-07-05 00:48:17 +08:00
position421, thunkPosition421 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("ol") {
2011-07-05 00:48:17 +08:00
goto l422
}
2011-07-05 00:48:17 +08:00
goto l421
l422:
position, thunkPosition = position421, thunkPosition421
2011-02-21 17:08:33 +08:00
if !matchString("OL") {
2011-07-05 00:48:17 +08:00
goto l420
}
}
2011-07-05 00:48:17 +08:00
l421:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l420
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l420
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l420:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 83 HtmlBlockOl <- (HtmlBlockOpenOl (HtmlBlockOl / (!HtmlBlockCloseOl .))* HtmlBlockCloseOl) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenOl]() {
2011-07-05 00:48:17 +08:00
goto l423
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l424:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position425, thunkPosition425 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position426, thunkPosition426 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockOl]() {
2011-07-05 00:48:17 +08:00
goto l427
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l426
l427:
position, thunkPosition = position426, thunkPosition426
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position428, thunkPosition428 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseOl]() {
2011-07-05 00:48:17 +08:00
goto l428
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l425
l428:
position, thunkPosition = position428, thunkPosition428
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l425
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l426:
goto l424
l425:
position, thunkPosition = position425, thunkPosition425
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseOl]() {
2011-07-05 00:48:17 +08:00
goto l423
}
return true
2011-07-05 00:48:17 +08:00
l423:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 84 HtmlBlockOpenP <- ('<' Spnl ('p' / 'P') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l429
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l429
}
{
2011-07-05 00:48:17 +08:00
position430, thunkPosition430 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchChar('p') {
2011-07-05 00:48:17 +08:00
goto l431
}
2011-07-05 00:48:17 +08:00
goto l430
l431:
position, thunkPosition = position430, thunkPosition430
2011-02-21 17:08:33 +08:00
if !matchChar('P') {
2011-07-05 00:48:17 +08:00
goto l429
}
}
2011-07-05 00:48:17 +08:00
l430:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l429
}
2011-07-05 00:48:17 +08:00
l432:
{
2011-07-05 00:48:17 +08:00
position433, thunkPosition433 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l433
}
2011-07-05 00:48:17 +08:00
goto l432
l433:
position, thunkPosition = position433, thunkPosition433
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l429
}
return true
2011-07-05 00:48:17 +08:00
l429:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 85 HtmlBlockCloseP <- ('<' Spnl '/' ('p' / 'P') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l434
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l434
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l434
}
{
2011-07-05 00:48:17 +08:00
position435, thunkPosition435 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchChar('p') {
2011-07-05 00:48:17 +08:00
goto l436
}
2011-07-05 00:48:17 +08:00
goto l435
l436:
position, thunkPosition = position435, thunkPosition435
2011-02-21 17:08:33 +08:00
if !matchChar('P') {
2011-07-05 00:48:17 +08:00
goto l434
}
}
2011-07-05 00:48:17 +08:00
l435:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l434
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l434
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l434:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 86 HtmlBlockP <- (HtmlBlockOpenP (HtmlBlockP / (!HtmlBlockCloseP .))* HtmlBlockCloseP) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenP]() {
2011-07-05 00:48:17 +08:00
goto l437
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l438:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position439, thunkPosition439 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position440, thunkPosition440 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockP]() {
2011-07-05 00:48:17 +08:00
goto l441
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l440
l441:
position, thunkPosition = position440, thunkPosition440
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position442, thunkPosition442 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseP]() {
2011-07-05 00:48:17 +08:00
goto l442
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l439
l442:
position, thunkPosition = position442, thunkPosition442
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l439
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l440:
goto l438
l439:
position, thunkPosition = position439, thunkPosition439
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseP]() {
2011-07-05 00:48:17 +08:00
goto l437
}
return true
2011-07-05 00:48:17 +08:00
l437:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 87 HtmlBlockOpenPre <- ('<' Spnl ('pre' / 'PRE') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l443
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l443
}
{
2011-07-05 00:48:17 +08:00
position444, thunkPosition444 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("pre") {
2011-07-05 00:48:17 +08:00
goto l445
}
2011-07-05 00:48:17 +08:00
goto l444
l445:
position, thunkPosition = position444, thunkPosition444
2011-02-21 17:08:33 +08:00
if !matchString("PRE") {
2011-07-05 00:48:17 +08:00
goto l443
}
}
2011-07-05 00:48:17 +08:00
l444:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l443
}
2011-07-05 00:48:17 +08:00
l446:
{
2011-07-05 00:48:17 +08:00
position447, thunkPosition447 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l447
}
2011-07-05 00:48:17 +08:00
goto l446
l447:
position, thunkPosition = position447, thunkPosition447
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l443
}
return true
2011-07-05 00:48:17 +08:00
l443:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 88 HtmlBlockClosePre <- ('<' Spnl '/' ('pre' / 'PRE') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l448
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l448
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l448
}
{
2011-07-05 00:48:17 +08:00
position449, thunkPosition449 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("pre") {
2011-07-05 00:48:17 +08:00
goto l450
}
2011-07-05 00:48:17 +08:00
goto l449
l450:
position, thunkPosition = position449, thunkPosition449
2011-02-21 17:08:33 +08:00
if !matchString("PRE") {
2011-07-05 00:48:17 +08:00
goto l448
}
}
2011-07-05 00:48:17 +08:00
l449:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l448
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l448
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l448:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 89 HtmlBlockPre <- (HtmlBlockOpenPre (HtmlBlockPre / (!HtmlBlockClosePre .))* HtmlBlockClosePre) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenPre]() {
2011-07-05 00:48:17 +08:00
goto l451
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l452:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position453, thunkPosition453 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position454, thunkPosition454 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockPre]() {
2011-07-05 00:48:17 +08:00
goto l455
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l454
l455:
position, thunkPosition = position454, thunkPosition454
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position456, thunkPosition456 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockClosePre]() {
2011-07-05 00:48:17 +08:00
goto l456
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l453
l456:
position, thunkPosition = position456, thunkPosition456
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l453
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l454:
goto l452
l453:
position, thunkPosition = position453, thunkPosition453
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockClosePre]() {
2011-07-05 00:48:17 +08:00
goto l451
}
return true
2011-07-05 00:48:17 +08:00
l451:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 90 HtmlBlockOpenTable <- ('<' Spnl ('table' / 'TABLE') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l457
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l457
}
{
2011-07-05 00:48:17 +08:00
position458, thunkPosition458 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("table") {
2011-07-05 00:48:17 +08:00
goto l459
}
2011-07-05 00:48:17 +08:00
goto l458
l459:
position, thunkPosition = position458, thunkPosition458
2011-02-21 17:08:33 +08:00
if !matchString("TABLE") {
2011-07-05 00:48:17 +08:00
goto l457
}
}
2011-07-05 00:48:17 +08:00
l458:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l457
}
2011-07-05 00:48:17 +08:00
l460:
{
2011-07-05 00:48:17 +08:00
position461, thunkPosition461 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l461
}
2011-07-05 00:48:17 +08:00
goto l460
l461:
position, thunkPosition = position461, thunkPosition461
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l457
}
return true
2011-07-05 00:48:17 +08:00
l457:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 91 HtmlBlockCloseTable <- ('<' Spnl '/' ('table' / 'TABLE') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l462
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l462
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l462
}
{
2011-07-05 00:48:17 +08:00
position463, thunkPosition463 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("table") {
2011-07-05 00:48:17 +08:00
goto l464
}
2011-07-05 00:48:17 +08:00
goto l463
l464:
position, thunkPosition = position463, thunkPosition463
2011-02-21 17:08:33 +08:00
if !matchString("TABLE") {
2011-07-05 00:48:17 +08:00
goto l462
}
}
2011-07-05 00:48:17 +08:00
l463:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l462
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l462
}
return true
2011-07-05 00:48:17 +08:00
l462:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 92 HtmlBlockTable <- (HtmlBlockOpenTable (HtmlBlockTable / (!HtmlBlockCloseTable .))* HtmlBlockCloseTable) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenTable]() {
2011-07-05 00:48:17 +08:00
goto l465
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l466:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position467, thunkPosition467 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position468, thunkPosition468 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockTable]() {
2011-07-05 00:48:17 +08:00
goto l469
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l468
l469:
position, thunkPosition = position468, thunkPosition468
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position470, thunkPosition470 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseTable]() {
2011-07-05 00:48:17 +08:00
goto l470
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l467
l470:
position, thunkPosition = position470, thunkPosition470
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l467
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l468:
goto l466
l467:
position, thunkPosition = position467, thunkPosition467
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseTable]() {
2011-07-05 00:48:17 +08:00
goto l465
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l465:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 93 HtmlBlockOpenUl <- ('<' Spnl ('ul' / 'UL') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l471
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l471
}
{
2011-07-05 00:48:17 +08:00
position472, thunkPosition472 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("ul") {
2011-07-05 00:48:17 +08:00
goto l473
}
2011-07-05 00:48:17 +08:00
goto l472
l473:
position, thunkPosition = position472, thunkPosition472
2011-02-21 17:08:33 +08:00
if !matchString("UL") {
2011-07-05 00:48:17 +08:00
goto l471
}
}
2011-07-05 00:48:17 +08:00
l472:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l471
}
2011-07-05 00:48:17 +08:00
l474:
{
2011-07-05 00:48:17 +08:00
position475, thunkPosition475 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l475
}
2011-07-05 00:48:17 +08:00
goto l474
l475:
position, thunkPosition = position475, thunkPosition475
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l471
}
return true
2011-07-05 00:48:17 +08:00
l471:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 94 HtmlBlockCloseUl <- ('<' Spnl '/' ('ul' / 'UL') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l476
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l476
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l476
}
{
2011-07-05 00:48:17 +08:00
position477, thunkPosition477 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("ul") {
2011-07-05 00:48:17 +08:00
goto l478
}
2011-07-05 00:48:17 +08:00
goto l477
l478:
position, thunkPosition = position477, thunkPosition477
2011-02-21 17:08:33 +08:00
if !matchString("UL") {
2011-07-05 00:48:17 +08:00
goto l476
}
}
2011-07-05 00:48:17 +08:00
l477:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l476
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l476
}
return true
2011-07-05 00:48:17 +08:00
l476:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 95 HtmlBlockUl <- (HtmlBlockOpenUl (HtmlBlockUl / (!HtmlBlockCloseUl .))* HtmlBlockCloseUl) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockOpenUl]() {
2011-07-05 00:48:17 +08:00
goto l479
}
2011-07-05 00:48:17 +08:00
l480:
{
2011-07-05 00:48:17 +08:00
position481, thunkPosition481 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position482, thunkPosition482 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockUl]() {
2011-07-05 00:48:17 +08:00
goto l483
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l482
l483:
position, thunkPosition = position482, thunkPosition482
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position484, thunkPosition484 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseUl]() {
2011-07-05 00:48:17 +08:00
goto l484
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l481
l484:
position, thunkPosition = position484, thunkPosition484
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l481
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l482:
goto l480
l481:
position, thunkPosition = position481, thunkPosition481
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseUl]() {
2011-07-05 00:48:17 +08:00
goto l479
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l479:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 96 HtmlBlockOpenDd <- ('<' Spnl ('dd' / 'DD') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l485
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l485
2011-02-21 17:08:33 +08:00
}
{
2011-07-05 00:48:17 +08:00
position486, thunkPosition486 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("dd") {
2011-07-05 00:48:17 +08:00
goto l487
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l486
l487:
position, thunkPosition = position486, thunkPosition486
2011-02-21 17:08:33 +08:00
if !matchString("DD") {
2011-07-05 00:48:17 +08:00
goto l485
}
}
2011-07-05 00:48:17 +08:00
l486:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l485
}
2011-07-05 00:48:17 +08:00
l488:
{
2011-07-05 00:48:17 +08:00
position489, thunkPosition489 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l489
}
2011-07-05 00:48:17 +08:00
goto l488
l489:
position, thunkPosition = position489, thunkPosition489
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l485
}
return true
2011-07-05 00:48:17 +08:00
l485:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 97 HtmlBlockCloseDd <- ('<' Spnl '/' ('dd' / 'DD') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l490
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l490
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l490
}
{
2011-07-05 00:48:17 +08:00
position491, thunkPosition491 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("dd") {
2011-07-05 00:48:17 +08:00
goto l492
}
2011-07-05 00:48:17 +08:00
goto l491
l492:
position, thunkPosition = position491, thunkPosition491
2011-02-21 17:08:33 +08:00
if !matchString("DD") {
2011-07-05 00:48:17 +08:00
goto l490
}
}
2011-07-05 00:48:17 +08:00
l491:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l490
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l490
}
return true
2011-07-05 00:48:17 +08:00
l490:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 98 HtmlBlockDd <- (HtmlBlockOpenDd (HtmlBlockDd / (!HtmlBlockCloseDd .))* HtmlBlockCloseDd) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenDd]() {
2011-07-05 00:48:17 +08:00
goto l493
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l494:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position495, thunkPosition495 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position496, thunkPosition496 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockDd]() {
2011-07-05 00:48:17 +08:00
goto l497
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l496
l497:
position, thunkPosition = position496, thunkPosition496
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position498, thunkPosition498 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseDd]() {
2011-07-05 00:48:17 +08:00
goto l498
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l495
l498:
position, thunkPosition = position498, thunkPosition498
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l495
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l496:
goto l494
l495:
position, thunkPosition = position495, thunkPosition495
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseDd]() {
2011-07-05 00:48:17 +08:00
goto l493
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l493:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 99 HtmlBlockOpenDt <- ('<' Spnl ('dt' / 'DT') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l499
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l499
}
{
2011-07-05 00:48:17 +08:00
position500, thunkPosition500 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("dt") {
2011-07-05 00:48:17 +08:00
goto l501
}
2011-07-05 00:48:17 +08:00
goto l500
l501:
position, thunkPosition = position500, thunkPosition500
2011-02-21 17:08:33 +08:00
if !matchString("DT") {
2011-07-05 00:48:17 +08:00
goto l499
}
}
2011-07-05 00:48:17 +08:00
l500:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l499
}
2011-07-05 00:48:17 +08:00
l502:
{
2011-07-05 00:48:17 +08:00
position503, thunkPosition503 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l503
}
2011-07-05 00:48:17 +08:00
goto l502
l503:
position, thunkPosition = position503, thunkPosition503
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l499
}
return true
2011-07-05 00:48:17 +08:00
l499:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 100 HtmlBlockCloseDt <- ('<' Spnl '/' ('dt' / 'DT') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l504
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l504
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l504
}
{
2011-07-05 00:48:17 +08:00
position505, thunkPosition505 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("dt") {
2011-07-05 00:48:17 +08:00
goto l506
}
2011-07-05 00:48:17 +08:00
goto l505
l506:
position, thunkPosition = position505, thunkPosition505
2011-02-21 17:08:33 +08:00
if !matchString("DT") {
2011-07-05 00:48:17 +08:00
goto l504
}
}
2011-07-05 00:48:17 +08:00
l505:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l504
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l504
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l504:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 101 HtmlBlockDt <- (HtmlBlockOpenDt (HtmlBlockDt / (!HtmlBlockCloseDt .))* HtmlBlockCloseDt) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenDt]() {
2011-07-05 00:48:17 +08:00
goto l507
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l508:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position509, thunkPosition509 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position510, thunkPosition510 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockDt]() {
2011-07-05 00:48:17 +08:00
goto l511
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l510
l511:
position, thunkPosition = position510, thunkPosition510
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position512, thunkPosition512 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseDt]() {
2011-07-05 00:48:17 +08:00
goto l512
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l509
l512:
position, thunkPosition = position512, thunkPosition512
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l509
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l510:
goto l508
l509:
position, thunkPosition = position509, thunkPosition509
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseDt]() {
2011-07-05 00:48:17 +08:00
goto l507
}
return true
2011-07-05 00:48:17 +08:00
l507:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 102 HtmlBlockOpenFrameset <- ('<' Spnl ('frameset' / 'FRAMESET') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l513
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l513
}
{
2011-07-05 00:48:17 +08:00
position514, thunkPosition514 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("frameset") {
2011-07-05 00:48:17 +08:00
goto l515
}
2011-07-05 00:48:17 +08:00
goto l514
l515:
position, thunkPosition = position514, thunkPosition514
2011-02-21 17:08:33 +08:00
if !matchString("FRAMESET") {
2011-07-05 00:48:17 +08:00
goto l513
}
}
2011-07-05 00:48:17 +08:00
l514:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l513
}
2011-07-05 00:48:17 +08:00
l516:
{
2011-07-05 00:48:17 +08:00
position517, thunkPosition517 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l517
}
2011-07-05 00:48:17 +08:00
goto l516
l517:
position, thunkPosition = position517, thunkPosition517
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l513
}
return true
2011-07-05 00:48:17 +08:00
l513:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 103 HtmlBlockCloseFrameset <- ('<' Spnl '/' ('frameset' / 'FRAMESET') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l518
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l518
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l518
}
{
2011-07-05 00:48:17 +08:00
position519, thunkPosition519 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("frameset") {
2011-07-05 00:48:17 +08:00
goto l520
}
2011-07-05 00:48:17 +08:00
goto l519
l520:
position, thunkPosition = position519, thunkPosition519
2011-02-21 17:08:33 +08:00
if !matchString("FRAMESET") {
2011-07-05 00:48:17 +08:00
goto l518
}
}
2011-07-05 00:48:17 +08:00
l519:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l518
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l518
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l518:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 104 HtmlBlockFrameset <- (HtmlBlockOpenFrameset (HtmlBlockFrameset / (!HtmlBlockCloseFrameset .))* HtmlBlockCloseFrameset) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenFrameset]() {
2011-07-05 00:48:17 +08:00
goto l521
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l522:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position523, thunkPosition523 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position524, thunkPosition524 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockFrameset]() {
2011-07-05 00:48:17 +08:00
goto l525
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l524
l525:
position, thunkPosition = position524, thunkPosition524
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position526, thunkPosition526 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseFrameset]() {
2011-07-05 00:48:17 +08:00
goto l526
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l523
l526:
position, thunkPosition = position526, thunkPosition526
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l523
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l524:
goto l522
l523:
position, thunkPosition = position523, thunkPosition523
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseFrameset]() {
2011-07-05 00:48:17 +08:00
goto l521
}
return true
2011-07-05 00:48:17 +08:00
l521:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 105 HtmlBlockOpenLi <- ('<' Spnl ('li' / 'LI') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l527
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l527
}
{
2011-07-05 00:48:17 +08:00
position528, thunkPosition528 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("li") {
2011-07-05 00:48:17 +08:00
goto l529
}
2011-07-05 00:48:17 +08:00
goto l528
l529:
position, thunkPosition = position528, thunkPosition528
2011-02-21 17:08:33 +08:00
if !matchString("LI") {
2011-07-05 00:48:17 +08:00
goto l527
}
}
2011-07-05 00:48:17 +08:00
l528:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l527
}
2011-07-05 00:48:17 +08:00
l530:
{
2011-07-05 00:48:17 +08:00
position531, thunkPosition531 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l531
}
2011-07-05 00:48:17 +08:00
goto l530
l531:
position, thunkPosition = position531, thunkPosition531
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l527
}
return true
2011-07-05 00:48:17 +08:00
l527:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 106 HtmlBlockCloseLi <- ('<' Spnl '/' ('li' / 'LI') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l532
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l532
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l532
}
{
2011-07-05 00:48:17 +08:00
position533, thunkPosition533 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("li") {
2011-07-05 00:48:17 +08:00
goto l534
}
2011-07-05 00:48:17 +08:00
goto l533
l534:
position, thunkPosition = position533, thunkPosition533
2011-02-21 17:08:33 +08:00
if !matchString("LI") {
2011-07-05 00:48:17 +08:00
goto l532
}
}
2011-07-05 00:48:17 +08:00
l533:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l532
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l532
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l532:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 107 HtmlBlockLi <- (HtmlBlockOpenLi (HtmlBlockLi / (!HtmlBlockCloseLi .))* HtmlBlockCloseLi) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenLi]() {
2011-07-05 00:48:17 +08:00
goto l535
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l536:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position537, thunkPosition537 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position538, thunkPosition538 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockLi]() {
2011-07-05 00:48:17 +08:00
goto l539
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l538
l539:
position, thunkPosition = position538, thunkPosition538
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position540, thunkPosition540 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseLi]() {
2011-07-05 00:48:17 +08:00
goto l540
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l537
l540:
position, thunkPosition = position540, thunkPosition540
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l537
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l538:
goto l536
l537:
position, thunkPosition = position537, thunkPosition537
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseLi]() {
2011-07-05 00:48:17 +08:00
goto l535
}
return true
2011-07-05 00:48:17 +08:00
l535:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 108 HtmlBlockOpenTbody <- ('<' Spnl ('tbody' / 'TBODY') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l541
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l541
}
{
2011-07-05 00:48:17 +08:00
position542, thunkPosition542 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("tbody") {
2011-07-05 00:48:17 +08:00
goto l543
}
2011-07-05 00:48:17 +08:00
goto l542
l543:
position, thunkPosition = position542, thunkPosition542
2011-02-21 17:08:33 +08:00
if !matchString("TBODY") {
2011-07-05 00:48:17 +08:00
goto l541
}
}
2011-07-05 00:48:17 +08:00
l542:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l541
}
2011-07-05 00:48:17 +08:00
l544:
{
2011-07-05 00:48:17 +08:00
position545, thunkPosition545 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l545
}
2011-07-05 00:48:17 +08:00
goto l544
l545:
position, thunkPosition = position545, thunkPosition545
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l541
}
return true
2011-07-05 00:48:17 +08:00
l541:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 109 HtmlBlockCloseTbody <- ('<' Spnl '/' ('tbody' / 'TBODY') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l546
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l546
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l546
}
{
2011-07-05 00:48:17 +08:00
position547, thunkPosition547 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("tbody") {
2011-07-05 00:48:17 +08:00
goto l548
}
2011-07-05 00:48:17 +08:00
goto l547
l548:
position, thunkPosition = position547, thunkPosition547
2011-02-21 17:08:33 +08:00
if !matchString("TBODY") {
2011-07-05 00:48:17 +08:00
goto l546
}
}
2011-07-05 00:48:17 +08:00
l547:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l546
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l546
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l546:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 110 HtmlBlockTbody <- (HtmlBlockOpenTbody (HtmlBlockTbody / (!HtmlBlockCloseTbody .))* HtmlBlockCloseTbody) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenTbody]() {
2011-07-05 00:48:17 +08:00
goto l549
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l550:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position551, thunkPosition551 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position552, thunkPosition552 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockTbody]() {
2011-07-05 00:48:17 +08:00
goto l553
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l552
l553:
position, thunkPosition = position552, thunkPosition552
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position554, thunkPosition554 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseTbody]() {
2011-07-05 00:48:17 +08:00
goto l554
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l551
l554:
position, thunkPosition = position554, thunkPosition554
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l551
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l552:
goto l550
l551:
position, thunkPosition = position551, thunkPosition551
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseTbody]() {
2011-07-05 00:48:17 +08:00
goto l549
}
return true
2011-07-05 00:48:17 +08:00
l549:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 111 HtmlBlockOpenTd <- ('<' Spnl ('td' / 'TD') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l555
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l555
}
{
2011-07-05 00:48:17 +08:00
position556, thunkPosition556 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("td") {
2011-07-05 00:48:17 +08:00
goto l557
}
2011-07-05 00:48:17 +08:00
goto l556
l557:
position, thunkPosition = position556, thunkPosition556
2011-02-21 17:08:33 +08:00
if !matchString("TD") {
2011-07-05 00:48:17 +08:00
goto l555
}
}
2011-07-05 00:48:17 +08:00
l556:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l555
}
2011-07-05 00:48:17 +08:00
l558:
{
2011-07-05 00:48:17 +08:00
position559, thunkPosition559 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l559
}
2011-07-05 00:48:17 +08:00
goto l558
l559:
position, thunkPosition = position559, thunkPosition559
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l555
}
return true
2011-07-05 00:48:17 +08:00
l555:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 112 HtmlBlockCloseTd <- ('<' Spnl '/' ('td' / 'TD') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l560
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l560
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l560
}
{
2011-07-05 00:48:17 +08:00
position561, thunkPosition561 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("td") {
2011-07-05 00:48:17 +08:00
goto l562
}
2011-07-05 00:48:17 +08:00
goto l561
l562:
position, thunkPosition = position561, thunkPosition561
2011-02-21 17:08:33 +08:00
if !matchString("TD") {
2011-07-05 00:48:17 +08:00
goto l560
}
}
2011-07-05 00:48:17 +08:00
l561:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l560
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l560
}
return true
2011-07-05 00:48:17 +08:00
l560:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 113 HtmlBlockTd <- (HtmlBlockOpenTd (HtmlBlockTd / (!HtmlBlockCloseTd .))* HtmlBlockCloseTd) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenTd]() {
2011-07-05 00:48:17 +08:00
goto l563
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l564:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position565, thunkPosition565 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position566, thunkPosition566 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockTd]() {
2011-07-05 00:48:17 +08:00
goto l567
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l566
l567:
position, thunkPosition = position566, thunkPosition566
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position568, thunkPosition568 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseTd]() {
2011-07-05 00:48:17 +08:00
goto l568
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l565
l568:
position, thunkPosition = position568, thunkPosition568
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l565
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l566:
goto l564
l565:
position, thunkPosition = position565, thunkPosition565
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseTd]() {
2011-07-05 00:48:17 +08:00
goto l563
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l563:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 114 HtmlBlockOpenTfoot <- ('<' Spnl ('tfoot' / 'TFOOT') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l569
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l569
}
{
2011-07-05 00:48:17 +08:00
position570, thunkPosition570 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("tfoot") {
2011-07-05 00:48:17 +08:00
goto l571
}
2011-07-05 00:48:17 +08:00
goto l570
l571:
position, thunkPosition = position570, thunkPosition570
2011-02-21 17:08:33 +08:00
if !matchString("TFOOT") {
2011-07-05 00:48:17 +08:00
goto l569
}
}
2011-07-05 00:48:17 +08:00
l570:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l569
}
2011-07-05 00:48:17 +08:00
l572:
{
2011-07-05 00:48:17 +08:00
position573, thunkPosition573 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l573
}
2011-07-05 00:48:17 +08:00
goto l572
l573:
position, thunkPosition = position573, thunkPosition573
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l569
}
return true
2011-07-05 00:48:17 +08:00
l569:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 115 HtmlBlockCloseTfoot <- ('<' Spnl '/' ('tfoot' / 'TFOOT') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l574
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l574
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l574
}
{
2011-07-05 00:48:17 +08:00
position575, thunkPosition575 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("tfoot") {
2011-07-05 00:48:17 +08:00
goto l576
}
2011-07-05 00:48:17 +08:00
goto l575
l576:
position, thunkPosition = position575, thunkPosition575
2011-02-21 17:08:33 +08:00
if !matchString("TFOOT") {
2011-07-05 00:48:17 +08:00
goto l574
}
}
2011-07-05 00:48:17 +08:00
l575:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l574
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l574
}
return true
2011-07-05 00:48:17 +08:00
l574:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 116 HtmlBlockTfoot <- (HtmlBlockOpenTfoot (HtmlBlockTfoot / (!HtmlBlockCloseTfoot .))* HtmlBlockCloseTfoot) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenTfoot]() {
2011-07-05 00:48:17 +08:00
goto l577
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l578:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position579, thunkPosition579 := position, thunkPosition
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position580, thunkPosition580 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockTfoot]() {
2011-07-05 00:48:17 +08:00
goto l581
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l580
l581:
position, thunkPosition = position580, thunkPosition580
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position582, thunkPosition582 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseTfoot]() {
2011-07-05 00:48:17 +08:00
goto l582
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l579
l582:
position, thunkPosition = position582, thunkPosition582
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l579
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l580:
goto l578
l579:
position, thunkPosition = position579, thunkPosition579
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseTfoot]() {
2011-07-05 00:48:17 +08:00
goto l577
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l577:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 117 HtmlBlockOpenTh <- ('<' Spnl ('th' / 'TH') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l583
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l583
}
{
2011-07-05 00:48:17 +08:00
position584, thunkPosition584 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("th") {
2011-07-05 00:48:17 +08:00
goto l585
}
2011-07-05 00:48:17 +08:00
goto l584
l585:
position, thunkPosition = position584, thunkPosition584
2011-02-21 17:08:33 +08:00
if !matchString("TH") {
2011-07-05 00:48:17 +08:00
goto l583
}
}
2011-07-05 00:48:17 +08:00
l584:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l583
}
2011-07-05 00:48:17 +08:00
l586:
{
2011-07-05 00:48:17 +08:00
position587, thunkPosition587 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l587
}
2011-07-05 00:48:17 +08:00
goto l586
l587:
position, thunkPosition = position587, thunkPosition587
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l583
}
return true
2011-07-05 00:48:17 +08:00
l583:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 118 HtmlBlockCloseTh <- ('<' Spnl '/' ('th' / 'TH') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l588
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l588
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l588
}
{
2011-07-05 00:48:17 +08:00
position589, thunkPosition589 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("th") {
2011-07-05 00:48:17 +08:00
goto l590
}
2011-07-05 00:48:17 +08:00
goto l589
l590:
position, thunkPosition = position589, thunkPosition589
2011-02-21 17:08:33 +08:00
if !matchString("TH") {
2011-07-05 00:48:17 +08:00
goto l588
}
}
2011-07-05 00:48:17 +08:00
l589:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l588
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l588
}
return true
2011-07-05 00:48:17 +08:00
l588:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 119 HtmlBlockTh <- (HtmlBlockOpenTh (HtmlBlockTh / (!HtmlBlockCloseTh .))* HtmlBlockCloseTh) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockOpenTh]() {
2011-07-05 00:48:17 +08:00
goto l591
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l592:
{
2011-07-05 00:48:17 +08:00
position593, thunkPosition593 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position594, thunkPosition594 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockTh]() {
2011-07-05 00:48:17 +08:00
goto l595
}
2011-07-05 00:48:17 +08:00
goto l594
l595:
position, thunkPosition = position594, thunkPosition594
{
2011-07-05 00:48:17 +08:00
position596, thunkPosition596 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseTh]() {
2011-07-05 00:48:17 +08:00
goto l596
}
2011-07-05 00:48:17 +08:00
goto l593
l596:
position, thunkPosition = position596, thunkPosition596
}
2011-02-21 17:08:33 +08:00
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l593
}
}
2011-07-05 00:48:17 +08:00
l594:
goto l592
l593:
position, thunkPosition = position593, thunkPosition593
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseTh]() {
2011-07-05 00:48:17 +08:00
goto l591
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l591:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 120 HtmlBlockOpenThead <- ('<' Spnl ('thead' / 'THEAD') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l597
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l597
2011-02-21 17:08:33 +08:00
}
{
2011-07-05 00:48:17 +08:00
position598, thunkPosition598 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("thead") {
2011-07-05 00:48:17 +08:00
goto l599
}
2011-07-05 00:48:17 +08:00
goto l598
l599:
position, thunkPosition = position598, thunkPosition598
2011-02-21 17:08:33 +08:00
if !matchString("THEAD") {
2011-07-05 00:48:17 +08:00
goto l597
}
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l598:
2011-02-21 17:08:33 +08:00
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l597
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l600:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position601, thunkPosition601 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l601
}
2011-07-05 00:48:17 +08:00
goto l600
l601:
position, thunkPosition = position601, thunkPosition601
2011-02-21 17:08:33 +08:00
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l597
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l597:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 121 HtmlBlockCloseThead <- ('<' Spnl '/' ('thead' / 'THEAD') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l602
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l602
2011-02-21 17:08:33 +08:00
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l602
2011-02-21 17:08:33 +08:00
}
{
2011-07-05 00:48:17 +08:00
position603, thunkPosition603 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("thead") {
2011-07-05 00:48:17 +08:00
goto l604
}
2011-07-05 00:48:17 +08:00
goto l603
l604:
position, thunkPosition = position603, thunkPosition603
2011-02-21 17:08:33 +08:00
if !matchString("THEAD") {
2011-07-05 00:48:17 +08:00
goto l602
}
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l603:
2011-02-21 17:08:33 +08:00
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l602
2011-02-21 17:08:33 +08:00
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l602
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l602:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 122 HtmlBlockThead <- (HtmlBlockOpenThead (HtmlBlockThead / (!HtmlBlockCloseThead .))* HtmlBlockCloseThead) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenThead]() {
2011-07-05 00:48:17 +08:00
goto l605
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l606:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position607, thunkPosition607 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position608, thunkPosition608 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockThead]() {
2011-07-05 00:48:17 +08:00
goto l609
}
2011-07-05 00:48:17 +08:00
goto l608
l609:
position, thunkPosition = position608, thunkPosition608
{
2011-07-05 00:48:17 +08:00
position610, thunkPosition610 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseThead]() {
2011-07-05 00:48:17 +08:00
goto l610
}
2011-07-05 00:48:17 +08:00
goto l607
l610:
position, thunkPosition = position610, thunkPosition610
}
2011-02-21 17:08:33 +08:00
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l607
}
}
2011-07-05 00:48:17 +08:00
l608:
goto l606
l607:
position, thunkPosition = position607, thunkPosition607
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseThead]() {
2011-07-05 00:48:17 +08:00
goto l605
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l605:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 123 HtmlBlockOpenTr <- ('<' Spnl ('tr' / 'TR') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l611
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l611
2011-02-21 17:08:33 +08:00
}
{
2011-07-05 00:48:17 +08:00
position612, thunkPosition612 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("tr") {
2011-07-05 00:48:17 +08:00
goto l613
}
2011-07-05 00:48:17 +08:00
goto l612
l613:
position, thunkPosition = position612, thunkPosition612
2011-02-21 17:08:33 +08:00
if !matchString("TR") {
2011-07-05 00:48:17 +08:00
goto l611
}
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l612:
2011-02-21 17:08:33 +08:00
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l611
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l614:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position615, thunkPosition615 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l615
}
2011-07-05 00:48:17 +08:00
goto l614
l615:
position, thunkPosition = position615, thunkPosition615
2011-02-21 17:08:33 +08:00
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l611
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l611:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 124 HtmlBlockCloseTr <- ('<' Spnl '/' ('tr' / 'TR') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l616
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l616
2011-02-21 17:08:33 +08:00
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l616
2011-02-21 17:08:33 +08:00
}
{
2011-07-05 00:48:17 +08:00
position617, thunkPosition617 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("tr") {
2011-07-05 00:48:17 +08:00
goto l618
}
2011-07-05 00:48:17 +08:00
goto l617
l618:
position, thunkPosition = position617, thunkPosition617
2011-02-21 17:08:33 +08:00
if !matchString("TR") {
2011-07-05 00:48:17 +08:00
goto l616
}
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l617:
2011-02-21 17:08:33 +08:00
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l616
2011-02-21 17:08:33 +08:00
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l616
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l616:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 125 HtmlBlockTr <- (HtmlBlockOpenTr (HtmlBlockTr / (!HtmlBlockCloseTr .))* HtmlBlockCloseTr) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenTr]() {
2011-07-05 00:48:17 +08:00
goto l619
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l620:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position621, thunkPosition621 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position622, thunkPosition622 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockTr]() {
2011-07-05 00:48:17 +08:00
goto l623
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l622
l623:
position, thunkPosition = position622, thunkPosition622
{
2011-07-05 00:48:17 +08:00
position624, thunkPosition624 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseTr]() {
2011-07-05 00:48:17 +08:00
goto l624
}
2011-07-05 00:48:17 +08:00
goto l621
l624:
position, thunkPosition = position624, thunkPosition624
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l621
}
}
2011-07-05 00:48:17 +08:00
l622:
goto l620
l621:
position, thunkPosition = position621, thunkPosition621
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseTr]() {
2011-07-05 00:48:17 +08:00
goto l619
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l619:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 126 HtmlBlockOpenScript <- ('<' Spnl ('script' / 'SCRIPT') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l625
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l625
2011-02-21 17:08:33 +08:00
}
{
2011-07-05 00:48:17 +08:00
position626, thunkPosition626 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("script") {
2011-07-05 00:48:17 +08:00
goto l627
}
2011-07-05 00:48:17 +08:00
goto l626
l627:
position, thunkPosition = position626, thunkPosition626
2011-02-21 17:08:33 +08:00
if !matchString("SCRIPT") {
2011-07-05 00:48:17 +08:00
goto l625
}
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l626:
2011-02-21 17:08:33 +08:00
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l625
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l628:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position629, thunkPosition629 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l629
}
2011-07-05 00:48:17 +08:00
goto l628
l629:
position, thunkPosition = position629, thunkPosition629
2011-02-21 17:08:33 +08:00
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l625
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l625:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 127 HtmlBlockCloseScript <- ('<' Spnl '/' ('script' / 'SCRIPT') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l630
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l630
2011-02-21 17:08:33 +08:00
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l630
2011-02-21 17:08:33 +08:00
}
{
2011-07-05 00:48:17 +08:00
position631, thunkPosition631 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("script") {
2011-07-05 00:48:17 +08:00
goto l632
}
2011-07-05 00:48:17 +08:00
goto l631
l632:
position, thunkPosition = position631, thunkPosition631
2011-02-21 17:08:33 +08:00
if !matchString("SCRIPT") {
2011-07-05 00:48:17 +08:00
goto l630
}
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l631:
2011-02-21 17:08:33 +08:00
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l630
2011-02-21 17:08:33 +08:00
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l630
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l630:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 128 HtmlBlockScript <- (HtmlBlockOpenScript (HtmlBlockScript / (!HtmlBlockCloseScript .))* HtmlBlockCloseScript) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleHtmlBlockOpenScript]() {
2011-07-05 00:48:17 +08:00
goto l633
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l634:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position635, thunkPosition635 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position636, thunkPosition636 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockScript]() {
2011-07-05 00:48:17 +08:00
goto l637
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
goto l636
l637:
position, thunkPosition = position636, thunkPosition636
{
2011-07-05 00:48:17 +08:00
position638, thunkPosition638 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockCloseScript]() {
2011-07-05 00:48:17 +08:00
goto l638
}
2011-07-05 00:48:17 +08:00
goto l635
l638:
position, thunkPosition = position638, thunkPosition638
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l635
}
}
2011-07-05 00:48:17 +08:00
l636:
goto l634
l635:
position, thunkPosition = position635, thunkPosition635
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockCloseScript]() {
2011-07-05 00:48:17 +08:00
goto l633
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l633:
2011-02-21 17:08:33 +08:00
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
{
2011-07-05 00:48:17 +08:00
position640, thunkPosition640 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockAddress]() {
2011-07-05 00:48:17 +08:00
goto l641
}
goto l640
l641:
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockBlockquote]() {
goto l642
}
goto l640
l642:
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockCenter]() {
goto l643
}
goto l640
l643:
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockDir]() {
goto l644
}
goto l640
l644:
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockDiv]() {
2011-02-21 17:08:33 +08:00
goto l645
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l645:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockDl]() {
2011-02-21 17:08:33 +08:00
goto l646
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l646:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockFieldset]() {
2011-02-21 17:08:33 +08:00
goto l647
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l647:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockForm]() {
2011-02-21 17:08:33 +08:00
goto l648
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l648:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockH1]() {
2011-02-21 17:08:33 +08:00
goto l649
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l649:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockH2]() {
2011-02-21 17:08:33 +08:00
goto l650
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l650:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockH3]() {
2011-02-21 17:08:33 +08:00
goto l651
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l651:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockH4]() {
2011-02-21 17:08:33 +08:00
goto l652
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l652:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockH5]() {
2011-02-21 17:08:33 +08:00
goto l653
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l653:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockH6]() {
2011-02-21 17:08:33 +08:00
goto l654
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l654:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockMenu]() {
2011-02-21 17:08:33 +08:00
goto l655
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l655:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockNoframes]() {
2011-02-21 17:08:33 +08:00
goto l656
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l656:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockNoscript]() {
2011-02-21 17:08:33 +08:00
goto l657
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l657:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockOl]() {
2011-02-21 17:08:33 +08:00
goto l658
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l658:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockP]() {
2011-02-21 17:08:33 +08:00
goto l659
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l659:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockPre]() {
2011-02-21 17:08:33 +08:00
goto l660
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l660:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockTable]() {
2011-02-21 17:08:33 +08:00
goto l661
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l661:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockUl]() {
2011-02-21 17:08:33 +08:00
goto l662
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l662:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockDd]() {
2011-02-21 17:08:33 +08:00
goto l663
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l663:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockDt]() {
2011-02-21 17:08:33 +08:00
goto l664
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l664:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockFrameset]() {
2011-02-21 17:08:33 +08:00
goto l665
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l665:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockLi]() {
2011-02-21 17:08:33 +08:00
goto l666
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l666:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockTbody]() {
2011-02-21 17:08:33 +08:00
goto l667
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l667:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockTd]() {
2011-02-21 17:08:33 +08:00
goto l668
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l668:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockTfoot]() {
2011-02-21 17:08:33 +08:00
goto l669
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l669:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockTh]() {
2011-02-21 17:08:33 +08:00
goto l670
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l670:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockThead]() {
2011-02-21 17:08:33 +08:00
goto l671
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l671:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
if !p.rules[ruleHtmlBlockTr]() {
2011-02-21 17:08:33 +08:00
goto l672
}
2011-07-05 00:48:17 +08:00
goto l640
2011-02-21 17:08:33 +08:00
l672:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position640, thunkPosition640
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockScript]() {
2011-07-05 00:48:17 +08:00
goto l639
}
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l640:
2011-02-21 17:08:33 +08:00
return true
2011-07-05 00:48:17 +08:00
l639:
2011-02-21 17:08:33 +08:00
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('<') {
2011-07-05 00:48:17 +08:00
goto l673
2011-02-21 17:08:33 +08:00
}
begin = position
{
2011-07-05 00:48:17 +08:00
position674, thunkPosition674 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockInTags]() {
2011-07-05 00:48:17 +08:00
goto l675
}
2011-07-05 00:48:17 +08:00
goto l674
l675:
position, thunkPosition = position674, thunkPosition674
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlComment]() {
2011-07-05 00:48:17 +08:00
goto l676
}
2011-07-05 00:48:17 +08:00
goto l674
l676:
position, thunkPosition = position674, thunkPosition674
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlBlockSelfClosing]() {
2011-07-05 00:48:17 +08:00
goto l673
}
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l674:
2011-02-21 17:08:33 +08:00
end = position
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l673
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l677:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position678, thunkPosition678 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l678
}
2011-07-05 00:48:17 +08:00
goto l677
l678:
position, thunkPosition = position678, thunkPosition678
2011-02-21 17:08:33 +08:00
}
do(40)
return true
2011-07-05 00:48:17 +08:00
l673:
2011-02-21 17:08:33 +08:00
position, thunkPosition = position0, thunkPosition0
return false
},
/* 131 HtmlBlockSelfClosing <- ('<' Spnl HtmlBlockType Spnl HtmlAttribute* '/' Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l679
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l679
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleHtmlBlockType]() {
2011-07-05 00:48:17 +08:00
goto l679
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l679
2011-02-21 17:08:33 +08:00
}
2011-07-05 00:48:17 +08:00
l680:
2011-02-21 17:08:33 +08:00
{
2011-07-05 00:48:17 +08:00
position681, thunkPosition681 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l681
}
2011-07-05 00:48:17 +08:00
goto l680
l681:
position, thunkPosition = position681, thunkPosition681
2011-02-21 17:08:33 +08:00
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l679
2011-02-21 17:08:33 +08:00
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l679
2011-02-21 17:08:33 +08:00
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l679
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l679:
2011-02-21 17:08:33 +08:00
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
{
2011-07-05 00:48:17 +08:00
position683, thunkPosition683 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchString("address") {
2011-07-05 00:48:17 +08:00
goto l684
}
goto l683
l684:
position, thunkPosition = position683, thunkPosition683
if !matchString("blockquote") {
goto l685
}
goto l683
l685:
position, thunkPosition = position683, thunkPosition683
if !matchString("center") {
goto l686
}
goto l683
l686:
position, thunkPosition = position683, thunkPosition683
if !matchString("dir") {
goto l687
}
goto l683
l687:
position, thunkPosition = position683, thunkPosition683
if !matchString("div") {
2011-02-21 17:08:33 +08:00
goto l688
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l688:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("dl") {
2011-02-21 17:08:33 +08:00
goto l689
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l689:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("fieldset") {
2011-02-21 17:08:33 +08:00
goto l690
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l690:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("form") {
2011-02-21 17:08:33 +08:00
goto l691
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l691:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("h1") {
2011-02-21 17:08:33 +08:00
goto l692
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l692:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("h2") {
2011-02-21 17:08:33 +08:00
goto l693
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l693:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("h3") {
2011-02-21 17:08:33 +08:00
goto l694
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l694:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("h4") {
2011-02-21 17:08:33 +08:00
goto l695
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l695:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("h5") {
2011-02-21 17:08:33 +08:00
goto l696
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l696:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("h6") {
2011-02-21 17:08:33 +08:00
goto l697
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l697:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("hr") {
2011-02-21 17:08:33 +08:00
goto l698
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l698:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("isindex") {
2011-02-21 17:08:33 +08:00
goto l699
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l699:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("menu") {
2011-02-21 17:08:33 +08:00
goto l700
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l700:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("noframes") {
2011-02-21 17:08:33 +08:00
goto l701
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l701:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("noscript") {
2011-02-21 17:08:33 +08:00
goto l702
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l702:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("ol") {
2011-02-21 17:08:33 +08:00
goto l703
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l703:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchChar('p') {
2011-02-21 17:08:33 +08:00
goto l704
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l704:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("pre") {
2011-02-21 17:08:33 +08:00
goto l705
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l705:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("table") {
2011-02-21 17:08:33 +08:00
goto l706
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l706:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("ul") {
2011-02-21 17:08:33 +08:00
goto l707
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l707:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("dd") {
2011-02-21 17:08:33 +08:00
goto l708
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l708:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("dt") {
2011-02-21 17:08:33 +08:00
goto l709
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l709:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("frameset") {
2011-02-21 17:08:33 +08:00
goto l710
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l710:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("li") {
2011-02-21 17:08:33 +08:00
goto l711
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l711:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("tbody") {
2011-02-21 17:08:33 +08:00
goto l712
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l712:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("td") {
2011-02-21 17:08:33 +08:00
goto l713
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l713:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("tfoot") {
2011-02-21 17:08:33 +08:00
goto l714
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l714:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("th") {
2011-02-21 17:08:33 +08:00
goto l715
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l715:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("thead") {
2011-02-21 17:08:33 +08:00
goto l716
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l716:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("tr") {
2011-02-21 17:08:33 +08:00
goto l717
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l717:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("script") {
2011-02-21 17:08:33 +08:00
goto l718
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l718:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("ADDRESS") {
2011-02-21 17:08:33 +08:00
goto l719
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l719:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("BLOCKQUOTE") {
2011-02-21 17:08:33 +08:00
goto l720
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l720:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("CENTER") {
2011-02-21 17:08:33 +08:00
goto l721
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l721:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("DIR") {
2011-02-21 17:08:33 +08:00
goto l722
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l722:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("DIV") {
2011-02-21 17:08:33 +08:00
goto l723
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l723:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("DL") {
2011-02-21 17:08:33 +08:00
goto l724
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l724:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("FIELDSET") {
2011-02-21 17:08:33 +08:00
goto l725
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l725:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("FORM") {
2011-02-21 17:08:33 +08:00
goto l726
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l726:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("H1") {
2011-02-21 17:08:33 +08:00
goto l727
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l727:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("H2") {
2011-02-21 17:08:33 +08:00
goto l728
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l728:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("H3") {
2011-02-21 17:08:33 +08:00
goto l729
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l729:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("H4") {
2011-02-21 17:08:33 +08:00
goto l730
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l730:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("H5") {
2011-02-21 17:08:33 +08:00
goto l731
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l731:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("H6") {
2011-02-21 17:08:33 +08:00
goto l732
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l732:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("HR") {
2011-02-21 17:08:33 +08:00
goto l733
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l733:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("ISINDEX") {
2011-02-21 17:08:33 +08:00
goto l734
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l734:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("MENU") {
2011-02-21 17:08:33 +08:00
goto l735
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l735:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("NOFRAMES") {
2011-02-21 17:08:33 +08:00
goto l736
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l736:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("NOSCRIPT") {
2011-02-21 17:08:33 +08:00
goto l737
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l737:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("OL") {
2011-02-21 17:08:33 +08:00
goto l738
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l738:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchChar('P') {
2011-02-21 17:08:33 +08:00
goto l739
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l739:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("PRE") {
2011-02-21 17:08:33 +08:00
goto l740
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l740:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("TABLE") {
2011-02-21 17:08:33 +08:00
goto l741
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l741:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("UL") {
2011-02-21 17:08:33 +08:00
goto l742
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l742:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("DD") {
2011-02-21 17:08:33 +08:00
goto l743
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l743:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("DT") {
2011-02-21 17:08:33 +08:00
goto l744
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l744:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("FRAMESET") {
2011-02-21 17:08:33 +08:00
goto l745
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l745:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("LI") {
2011-02-21 17:08:33 +08:00
goto l746
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l746:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("TBODY") {
2011-02-21 17:08:33 +08:00
goto l747
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l747:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("TD") {
2011-02-21 17:08:33 +08:00
goto l748
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l748:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("TFOOT") {
2011-02-21 17:08:33 +08:00
goto l749
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l749:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("TH") {
2011-02-21 17:08:33 +08:00
goto l750
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l750:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("THEAD") {
2011-02-21 17:08:33 +08:00
goto l751
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l751:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("TR") {
2011-02-21 17:08:33 +08:00
goto l752
}
2011-07-05 00:48:17 +08:00
goto l683
2011-02-21 17:08:33 +08:00
l752:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position683, thunkPosition683
if !matchString("SCRIPT") {
2011-07-05 00:48:17 +08:00
goto l682
}
}
2011-07-05 00:48:17 +08:00
l683:
return true
2011-07-05 00:48:17 +08:00
l682:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 133 StyleOpen <- ('<' Spnl ('style' / 'STYLE') Spnl HtmlAttribute* '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l753
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l753
}
{
2011-07-05 00:48:17 +08:00
position754, thunkPosition754 := position, thunkPosition
if !matchString("style") {
2011-07-05 00:48:17 +08:00
goto l755
}
2011-07-05 00:48:17 +08:00
goto l754
l755:
position, thunkPosition = position754, thunkPosition754
if !matchString("STYLE") {
2011-07-05 00:48:17 +08:00
goto l753
}
}
2011-07-05 00:48:17 +08:00
l754:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l753
}
2011-07-05 00:48:17 +08:00
l756:
{
2011-07-05 00:48:17 +08:00
position757, thunkPosition757 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l757
}
2011-07-05 00:48:17 +08:00
goto l756
l757:
position, thunkPosition = position757, thunkPosition757
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l753
}
return true
2011-07-05 00:48:17 +08:00
l753:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 134 StyleClose <- ('<' Spnl '/' ('style' / 'STYLE') Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l758
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l758
}
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l758
}
{
2011-07-05 00:48:17 +08:00
position759, thunkPosition759 := position, thunkPosition
if !matchString("style") {
2011-07-05 00:48:17 +08:00
goto l760
}
2011-07-05 00:48:17 +08:00
goto l759
l760:
position, thunkPosition = position759, thunkPosition759
if !matchString("STYLE") {
2011-07-05 00:48:17 +08:00
goto l758
}
}
2011-07-05 00:48:17 +08:00
l759:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l758
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l758
}
return true
2011-07-05 00:48:17 +08:00
l758:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 135 InStyleTags <- (StyleOpen (!StyleClose .)* StyleClose) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleStyleOpen]() {
2011-07-05 00:48:17 +08:00
goto l761
}
2011-07-05 00:48:17 +08:00
l762:
{
2011-07-05 00:48:17 +08:00
position763, thunkPosition763 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position764, thunkPosition764 := position, thunkPosition
if !p.rules[ruleStyleClose]() {
2011-07-05 00:48:17 +08:00
goto l764
}
2011-07-05 00:48:17 +08:00
goto l763
l764:
position, thunkPosition = position764, thunkPosition764
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l763
}
2011-07-05 00:48:17 +08:00
goto l762
l763:
position, thunkPosition = position763, thunkPosition763
}
if !p.rules[ruleStyleClose]() {
2011-07-05 00:48:17 +08:00
goto l761
}
return true
2011-07-05 00:48:17 +08:00
l761:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l765
}
end = position
2011-07-05 00:48:17 +08:00
l766:
{
2011-07-05 00:48:17 +08:00
position767, thunkPosition767 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l767
}
2011-07-05 00:48:17 +08:00
goto l766
l767:
position, thunkPosition = position767, thunkPosition767
}
2011-02-21 17:08:33 +08:00
do(41)
return true
2011-07-05 00:48:17 +08:00
l765:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l768
}
doarg(yySet, -2)
{
2011-07-05 00:48:17 +08:00
position771, thunkPosition771 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position773, thunkPosition773 := position, thunkPosition
if !p.rules[ruleEndline]() {
2011-07-05 00:48:17 +08:00
goto l773
}
2011-07-05 00:48:17 +08:00
goto l772
l773:
position, thunkPosition = position773, thunkPosition773
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l772
}
2011-02-21 17:08:33 +08:00
do(42)
2011-07-05 00:48:17 +08:00
goto l771
l772:
position, thunkPosition = position771, thunkPosition771
if !p.rules[ruleEndline]() {
2011-07-05 00:48:17 +08:00
goto l768
}
doarg(yySet, -1)
{
2011-07-05 00:48:17 +08:00
position774, thunkPosition774 := position, thunkPosition
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l768
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position774, thunkPosition774
}
2011-02-21 17:08:33 +08:00
do(43)
}
2011-07-05 00:48:17 +08:00
l771:
l769:
{
2011-07-05 00:48:17 +08:00
position770, thunkPosition770 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position775, thunkPosition775 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position777, thunkPosition777 := position, thunkPosition
if !p.rules[ruleEndline]() {
2011-07-05 00:48:17 +08:00
goto l777
}
2011-07-05 00:48:17 +08:00
goto l776
l777:
position, thunkPosition = position777, thunkPosition777
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l776
}
2011-02-21 17:08:33 +08:00
do(42)
2011-07-05 00:48:17 +08:00
goto l775
l776:
position, thunkPosition = position775, thunkPosition775
if !p.rules[ruleEndline]() {
2011-07-05 00:48:17 +08:00
goto l770
}
doarg(yySet, -1)
{
2011-07-05 00:48:17 +08:00
position778, thunkPosition778 := position, thunkPosition
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l770
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position778, thunkPosition778
}
2011-02-21 17:08:33 +08:00
do(43)
}
2011-07-05 00:48:17 +08:00
l775:
goto l769
l770:
position, thunkPosition = position770, thunkPosition770
}
{
2011-07-05 00:48:17 +08:00
position779, thunkPosition779 := position, thunkPosition
if !p.rules[ruleEndline]() {
2011-07-05 00:48:17 +08:00
goto l779
}
2011-07-05 00:48:17 +08:00
goto l780
l779:
position, thunkPosition = position779, thunkPosition779
}
2011-07-05 00:48:17 +08:00
l780:
2011-02-21 17:08:33 +08:00
do(44)
doarg(yyPop, 2)
return true
2011-07-05 00:48:17 +08:00
l768:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 138 Inline <- (Str / Endline / UlOrStarLine / Space / Strong / Emph / Image / Link / NoteReference / InlineNote / Code / RawHtml / Entity / EscapedChar / Smart / Symbol) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position782, thunkPosition782 := position, thunkPosition
if !p.rules[ruleStr]() {
2011-07-05 00:48:17 +08:00
goto l783
}
goto l782
l783:
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleEndline]() {
goto l784
}
goto l782
l784:
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleUlOrStarLine]() {
goto l785
}
goto l782
l785:
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleSpace]() {
goto l786
}
goto l782
l786:
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleStrong]() {
2011-02-21 17:08:33 +08:00
goto l787
}
2011-07-05 00:48:17 +08:00
goto l782
2011-02-21 17:08:33 +08:00
l787:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleEmph]() {
2011-02-21 17:08:33 +08:00
goto l788
}
2011-07-05 00:48:17 +08:00
goto l782
2011-02-21 17:08:33 +08:00
l788:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleImage]() {
2011-02-21 17:08:33 +08:00
goto l789
}
2011-07-05 00:48:17 +08:00
goto l782
2011-02-21 17:08:33 +08:00
l789:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleLink]() {
2011-02-21 17:08:33 +08:00
goto l790
}
2011-07-05 00:48:17 +08:00
goto l782
2011-02-21 17:08:33 +08:00
l790:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleNoteReference]() {
2011-02-21 17:08:33 +08:00
goto l791
}
2011-07-05 00:48:17 +08:00
goto l782
2011-02-21 17:08:33 +08:00
l791:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleInlineNote]() {
2011-02-21 17:08:33 +08:00
goto l792
}
2011-07-05 00:48:17 +08:00
goto l782
2011-02-21 17:08:33 +08:00
l792:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleCode]() {
2011-02-21 17:08:33 +08:00
goto l793
}
2011-07-05 00:48:17 +08:00
goto l782
2011-02-21 17:08:33 +08:00
l793:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleRawHtml]() {
2011-02-21 17:08:33 +08:00
goto l794
}
2011-07-05 00:48:17 +08:00
goto l782
2011-02-21 17:08:33 +08:00
l794:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleEntity]() {
2011-02-21 17:08:33 +08:00
goto l795
}
2011-07-05 00:48:17 +08:00
goto l782
2011-02-21 17:08:33 +08:00
l795:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleEscapedChar]() {
2011-02-21 17:08:33 +08:00
goto l796
}
2011-07-05 00:48:17 +08:00
goto l782
2011-02-21 17:08:33 +08:00
l796:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleSmart]() {
2011-02-21 17:08:33 +08:00
goto l797
}
2011-07-05 00:48:17 +08:00
goto l782
2011-02-21 17:08:33 +08:00
l797:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position782, thunkPosition782
if !p.rules[ruleSymbol]() {
2011-07-05 00:48:17 +08:00
goto l781
}
}
2011-07-05 00:48:17 +08:00
l782:
return true
2011-07-05 00:48:17 +08:00
l781:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 139 Space <- (Spacechar+ { yy = mk_str(" ")
yy.key = SPACE }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l798
}
2011-07-05 00:48:17 +08:00
l799:
{
2011-07-05 00:48:17 +08:00
position800, thunkPosition800 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l800
}
2011-07-05 00:48:17 +08:00
goto l799
l800:
position, thunkPosition = position800, thunkPosition800
}
2011-02-21 17:08:33 +08:00
do(45)
return true
2011-07-05 00:48:17 +08:00
l798:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 140 Str <- (< NormalChar (NormalChar / ('_'+ &Alphanumeric))* > { yy = mk_str(yytext) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
begin = position
if !p.rules[ruleNormalChar]() {
2011-07-05 00:48:17 +08:00
goto l801
}
2011-07-05 00:48:17 +08:00
l802:
{
2011-07-05 00:48:17 +08:00
position803, thunkPosition803 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position804, thunkPosition804 := position, thunkPosition
if !p.rules[ruleNormalChar]() {
2011-07-05 00:48:17 +08:00
goto l805
}
2011-07-05 00:48:17 +08:00
goto l804
l805:
position, thunkPosition = position804, thunkPosition804
if !matchChar('_') {
2011-07-05 00:48:17 +08:00
goto l803
}
2011-07-05 00:48:17 +08:00
l806:
{
2011-07-05 00:48:17 +08:00
position807, thunkPosition807 := position, thunkPosition
if !matchChar('_') {
2011-07-05 00:48:17 +08:00
goto l807
}
2011-07-05 00:48:17 +08:00
goto l806
l807:
position, thunkPosition = position807, thunkPosition807
}
{
2011-07-05 00:48:17 +08:00
position808, thunkPosition808 := position, thunkPosition
if !p.rules[ruleAlphanumeric]() {
2011-07-05 00:48:17 +08:00
goto l803
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position808, thunkPosition808
}
}
2011-07-05 00:48:17 +08:00
l804:
goto l802
l803:
position, thunkPosition = position803, thunkPosition803
}
end = position
2011-02-21 17:08:33 +08:00
do(46)
return true
2011-07-05 00:48:17 +08:00
l801:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 141 EscapedChar <- ('\\' !Newline < [-\\`|*_{}[\]()#+.!><] > { yy = mk_str(yytext) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('\\') {
2011-07-05 00:48:17 +08:00
goto l809
}
{
2011-07-05 00:48:17 +08:00
position810, thunkPosition810 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l810
}
2011-07-05 00:48:17 +08:00
goto l809
l810:
position, thunkPosition = position810, thunkPosition810
}
begin = position
2011-02-21 17:08:33 +08:00
if !matchClass(2) {
2011-07-05 00:48:17 +08:00
goto l809
}
end = position
2011-02-21 17:08:33 +08:00
do(47)
return true
2011-07-05 00:48:17 +08:00
l809:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 142 Entity <- ((HexEntity / DecEntity / CharEntity) { yy = mk_str(yytext); yy.key = HTML }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position812, thunkPosition812 := position, thunkPosition
if !p.rules[ruleHexEntity]() {
2011-07-05 00:48:17 +08:00
goto l813
}
2011-07-05 00:48:17 +08:00
goto l812
l813:
position, thunkPosition = position812, thunkPosition812
if !p.rules[ruleDecEntity]() {
2011-07-05 00:48:17 +08:00
goto l814
}
2011-07-05 00:48:17 +08:00
goto l812
l814:
position, thunkPosition = position812, thunkPosition812
if !p.rules[ruleCharEntity]() {
2011-07-05 00:48:17 +08:00
goto l811
}
}
2011-07-05 00:48:17 +08:00
l812:
2011-02-21 17:08:33 +08:00
do(48)
return true
2011-07-05 00:48:17 +08:00
l811:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 143 Endline <- (LineBreak / TerminalEndline / NormalEndline) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position816, thunkPosition816 := position, thunkPosition
if !p.rules[ruleLineBreak]() {
2011-07-05 00:48:17 +08:00
goto l817
}
2011-07-05 00:48:17 +08:00
goto l816
l817:
position, thunkPosition = position816, thunkPosition816
if !p.rules[ruleTerminalEndline]() {
2011-07-05 00:48:17 +08:00
goto l818
}
2011-07-05 00:48:17 +08:00
goto l816
l818:
position, thunkPosition = position816, thunkPosition816
if !p.rules[ruleNormalEndline]() {
2011-07-05 00:48:17 +08:00
goto l815
}
}
2011-07-05 00:48:17 +08:00
l816:
return true
2011-07-05 00:48:17 +08:00
l815:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l819
}
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l819
}
{
2011-07-05 00:48:17 +08:00
position820, thunkPosition820 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l820
}
2011-07-05 00:48:17 +08:00
goto l819
l820:
position, thunkPosition = position820, thunkPosition820
}
if peekChar('>') {
2011-07-05 00:48:17 +08:00
goto l819
}
{
2011-07-05 00:48:17 +08:00
position821, thunkPosition821 := position, thunkPosition
if !p.rules[ruleAtxStart]() {
2011-07-05 00:48:17 +08:00
goto l821
}
2011-07-05 00:48:17 +08:00
goto l819
l821:
position, thunkPosition = position821, thunkPosition821
}
{
2011-07-05 00:48:17 +08:00
position822, thunkPosition822 := position, thunkPosition
if !p.rules[ruleLine]() {
2011-07-05 00:48:17 +08:00
goto l822
}
{
2011-07-05 00:48:17 +08:00
position823, thunkPosition823 := position, thunkPosition
if !matchString("===") {
2011-07-05 00:48:17 +08:00
goto l824
}
2011-07-05 00:48:17 +08:00
l825:
{
2011-07-05 00:48:17 +08:00
position826, thunkPosition826 := position, thunkPosition
if !matchChar('=') {
2011-07-05 00:48:17 +08:00
goto l826
}
2011-07-05 00:48:17 +08:00
goto l825
l826:
position, thunkPosition = position826, thunkPosition826
}
2011-07-05 00:48:17 +08:00
goto l823
l824:
position, thunkPosition = position823, thunkPosition823
if !matchString("---") {
2011-07-05 00:48:17 +08:00
goto l822
}
2011-07-05 00:48:17 +08:00
l827:
{
2011-07-05 00:48:17 +08:00
position828, thunkPosition828 := position, thunkPosition
if !matchChar('-') {
2011-07-05 00:48:17 +08:00
goto l828
}
2011-07-05 00:48:17 +08:00
goto l827
l828:
position, thunkPosition = position828, thunkPosition828
}
}
2011-07-05 00:48:17 +08:00
l823:
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l822
}
2011-07-05 00:48:17 +08:00
goto l819
l822:
position, thunkPosition = position822, thunkPosition822
}
2011-02-21 17:08:33 +08:00
do(49)
return true
2011-07-05 00:48:17 +08:00
l819:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 145 TerminalEndline <- (Sp Newline Eof { yy = nil }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l829
}
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l829
}
if !p.rules[ruleEof]() {
2011-07-05 00:48:17 +08:00
goto l829
}
2011-02-21 17:08:33 +08:00
do(50)
return true
2011-07-05 00:48:17 +08:00
l829:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 146 LineBreak <- (' ' NormalEndline { yy = mk_element(LINEBREAK) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchString(" ") {
2011-07-05 00:48:17 +08:00
goto l830
}
if !p.rules[ruleNormalEndline]() {
2011-07-05 00:48:17 +08:00
goto l830
}
2011-02-21 17:08:33 +08:00
do(51)
return true
2011-07-05 00:48:17 +08:00
l830:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 147 Symbol <- (< SpecialChar > { yy = mk_str(yytext) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
begin = position
if !p.rules[ruleSpecialChar]() {
2011-07-05 00:48:17 +08:00
goto l831
}
end = position
2011-02-21 17:08:33 +08:00
do(52)
return true
2011-07-05 00:48:17 +08:00
l831:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 148 UlOrStarLine <- ((UlLine / StarLine) { yy = mk_str(yytext) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position833, thunkPosition833 := position, thunkPosition
if !p.rules[ruleUlLine]() {
2011-07-05 00:48:17 +08:00
goto l834
}
2011-07-05 00:48:17 +08:00
goto l833
l834:
position, thunkPosition = position833, thunkPosition833
if !p.rules[ruleStarLine]() {
2011-07-05 00:48:17 +08:00
goto l832
}
}
2011-07-05 00:48:17 +08:00
l833:
2011-02-21 17:08:33 +08:00
do(53)
return true
2011-07-05 00:48:17 +08:00
l832:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 149 StarLine <- ((< '****' '*'* >) / (< Spacechar '*'+ &Spacechar >)) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position836, thunkPosition836 := position, thunkPosition
begin = position
if !matchString("****") {
2011-07-05 00:48:17 +08:00
goto l837
}
2011-07-05 00:48:17 +08:00
l838:
{
2011-07-05 00:48:17 +08:00
position839, thunkPosition839 := position, thunkPosition
if !matchChar('*') {
2011-07-05 00:48:17 +08:00
goto l839
}
2011-07-05 00:48:17 +08:00
goto l838
l839:
position, thunkPosition = position839, thunkPosition839
}
end = position
2011-07-05 00:48:17 +08:00
goto l836
l837:
position, thunkPosition = position836, thunkPosition836
begin = position
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l835
}
if !matchChar('*') {
2011-07-05 00:48:17 +08:00
goto l835
}
2011-07-05 00:48:17 +08:00
l840:
{
2011-07-05 00:48:17 +08:00
position841, thunkPosition841 := position, thunkPosition
if !matchChar('*') {
2011-07-05 00:48:17 +08:00
goto l841
}
2011-07-05 00:48:17 +08:00
goto l840
l841:
position, thunkPosition = position841, thunkPosition841
}
{
2011-07-05 00:48:17 +08:00
position842, thunkPosition842 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l835
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position842, thunkPosition842
}
end = position
}
2011-07-05 00:48:17 +08:00
l836:
return true
2011-07-05 00:48:17 +08:00
l835:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 150 UlLine <- ((< '____' '_'* >) / (< Spacechar '_'+ &Spacechar >)) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position844, thunkPosition844 := position, thunkPosition
begin = position
if !matchString("____") {
2011-07-05 00:48:17 +08:00
goto l845
}
2011-07-05 00:48:17 +08:00
l846:
{
2011-07-05 00:48:17 +08:00
position847, thunkPosition847 := position, thunkPosition
if !matchChar('_') {
2011-07-05 00:48:17 +08:00
goto l847
}
2011-07-05 00:48:17 +08:00
goto l846
l847:
position, thunkPosition = position847, thunkPosition847
}
end = position
2011-07-05 00:48:17 +08:00
goto l844
l845:
position, thunkPosition = position844, thunkPosition844
begin = position
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l843
}
if !matchChar('_') {
2011-07-05 00:48:17 +08:00
goto l843
}
2011-07-05 00:48:17 +08:00
l848:
{
2011-07-05 00:48:17 +08:00
position849, thunkPosition849 := position, thunkPosition
if !matchChar('_') {
2011-07-05 00:48:17 +08:00
goto l849
}
2011-07-05 00:48:17 +08:00
goto l848
l849:
position, thunkPosition = position849, thunkPosition849
}
{
2011-07-05 00:48:17 +08:00
position850, thunkPosition850 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l843
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position850, thunkPosition850
}
end = position
}
2011-07-05 00:48:17 +08:00
l844:
return true
2011-07-05 00:48:17 +08:00
l843:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 151 Emph <- (EmphStar / EmphUl) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position852, thunkPosition852 := position, thunkPosition
if !p.rules[ruleEmphStar]() {
2011-07-05 00:48:17 +08:00
goto l853
}
2011-07-05 00:48:17 +08:00
goto l852
l853:
position, thunkPosition = position852, thunkPosition852
if !p.rules[ruleEmphUl]() {
2011-07-05 00:48:17 +08:00
goto l851
}
}
2011-07-05 00:48:17 +08:00
l852:
return true
2011-07-05 00:48:17 +08:00
l851:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 152 OneStarOpen <- (!StarLine '*' !Spacechar !Newline) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position855, thunkPosition855 := position, thunkPosition
if !p.rules[ruleStarLine]() {
2011-07-05 00:48:17 +08:00
goto l855
}
2011-07-05 00:48:17 +08:00
goto l854
l855:
position, thunkPosition = position855, thunkPosition855
}
if !matchChar('*') {
2011-07-05 00:48:17 +08:00
goto l854
}
{
2011-07-05 00:48:17 +08:00
position856, thunkPosition856 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l856
}
2011-07-05 00:48:17 +08:00
goto l854
l856:
position, thunkPosition = position856, thunkPosition856
}
{
2011-07-05 00:48:17 +08:00
position857, thunkPosition857 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l857
}
2011-07-05 00:48:17 +08:00
goto l854
l857:
position, thunkPosition = position857, thunkPosition857
}
return true
2011-07-05 00:48:17 +08:00
l854:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 153 OneStarClose <- (!Spacechar !Newline Inline !StrongStar '*' { yy = a }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
doarg(yyPush, 1)
{
2011-07-05 00:48:17 +08:00
position859, thunkPosition859 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l859
}
2011-07-05 00:48:17 +08:00
goto l858
l859:
position, thunkPosition = position859, thunkPosition859
}
{
2011-07-05 00:48:17 +08:00
position860, thunkPosition860 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l860
}
2011-07-05 00:48:17 +08:00
goto l858
l860:
position, thunkPosition = position860, thunkPosition860
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l858
}
doarg(yySet, -1)
{
2011-07-05 00:48:17 +08:00
position861, thunkPosition861 := position, thunkPosition
if !p.rules[ruleStrongStar]() {
2011-07-05 00:48:17 +08:00
goto l861
}
2011-07-05 00:48:17 +08:00
goto l858
l861:
position, thunkPosition = position861, thunkPosition861
}
if !matchChar('*') {
2011-07-05 00:48:17 +08:00
goto l858
}
2011-02-21 17:08:33 +08:00
do(54)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l858:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l862
}
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l862
}
doarg(yySet, -1)
2011-07-05 00:48:17 +08:00
l863:
{
2011-07-05 00:48:17 +08:00
position864, thunkPosition864 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position865, thunkPosition865 := position, thunkPosition
if !p.rules[ruleOneStarClose]() {
2011-07-05 00:48:17 +08:00
goto l865
}
2011-07-05 00:48:17 +08:00
goto l864
l865:
position, thunkPosition = position865, thunkPosition865
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l864
}
2011-02-21 17:08:33 +08:00
do(55)
2011-07-05 00:48:17 +08:00
goto l863
l864:
position, thunkPosition = position864, thunkPosition864
}
if !p.rules[ruleOneStarClose]() {
2011-07-05 00:48:17 +08:00
goto l862
}
2011-02-21 17:08:33 +08:00
do(56)
do(57)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l862:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 155 OneUlOpen <- (!UlLine '_' !Spacechar !Newline) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position867, thunkPosition867 := position, thunkPosition
if !p.rules[ruleUlLine]() {
2011-07-05 00:48:17 +08:00
goto l867
}
2011-07-05 00:48:17 +08:00
goto l866
l867:
position, thunkPosition = position867, thunkPosition867
}
if !matchChar('_') {
2011-07-05 00:48:17 +08:00
goto l866
}
{
2011-07-05 00:48:17 +08:00
position868, thunkPosition868 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l868
}
2011-07-05 00:48:17 +08:00
goto l866
l868:
position, thunkPosition = position868, thunkPosition868
}
{
2011-07-05 00:48:17 +08:00
position869, thunkPosition869 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l869
}
2011-07-05 00:48:17 +08:00
goto l866
l869:
position, thunkPosition = position869, thunkPosition869
}
return true
2011-07-05 00:48:17 +08:00
l866:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 156 OneUlClose <- (!Spacechar !Newline Inline !StrongUl '_' !Alphanumeric { yy = a }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
doarg(yyPush, 1)
{
2011-07-05 00:48:17 +08:00
position871, thunkPosition871 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l871
}
2011-07-05 00:48:17 +08:00
goto l870
l871:
position, thunkPosition = position871, thunkPosition871
}
{
2011-07-05 00:48:17 +08:00
position872, thunkPosition872 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l872
}
2011-07-05 00:48:17 +08:00
goto l870
l872:
position, thunkPosition = position872, thunkPosition872
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l870
}
doarg(yySet, -1)
{
2011-07-05 00:48:17 +08:00
position873, thunkPosition873 := position, thunkPosition
if !p.rules[ruleStrongUl]() {
2011-07-05 00:48:17 +08:00
goto l873
}
2011-07-05 00:48:17 +08:00
goto l870
l873:
position, thunkPosition = position873, thunkPosition873
}
if !matchChar('_') {
2011-07-05 00:48:17 +08:00
goto l870
}
{
2011-07-05 00:48:17 +08:00
position874, thunkPosition874 := position, thunkPosition
if !p.rules[ruleAlphanumeric]() {
2011-07-05 00:48:17 +08:00
goto l874
}
2011-07-05 00:48:17 +08:00
goto l870
l874:
position, thunkPosition = position874, thunkPosition874
}
2011-02-21 17:08:33 +08:00
do(58)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l870:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l875
}
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l875
}
doarg(yySet, -1)
2011-07-05 00:48:17 +08:00
l876:
{
2011-07-05 00:48:17 +08:00
position877, thunkPosition877 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position878, thunkPosition878 := position, thunkPosition
if !p.rules[ruleOneUlClose]() {
2011-07-05 00:48:17 +08:00
goto l878
}
2011-07-05 00:48:17 +08:00
goto l877
l878:
position, thunkPosition = position878, thunkPosition878
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l877
}
2011-02-21 17:08:33 +08:00
do(59)
2011-07-05 00:48:17 +08:00
goto l876
l877:
position, thunkPosition = position877, thunkPosition877
}
if !p.rules[ruleOneUlClose]() {
2011-07-05 00:48:17 +08:00
goto l875
}
2011-02-21 17:08:33 +08:00
do(60)
do(61)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l875:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 158 Strong <- (StrongStar / StrongUl) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position880, thunkPosition880 := position, thunkPosition
if !p.rules[ruleStrongStar]() {
2011-07-05 00:48:17 +08:00
goto l881
}
2011-07-05 00:48:17 +08:00
goto l880
l881:
position, thunkPosition = position880, thunkPosition880
if !p.rules[ruleStrongUl]() {
2011-07-05 00:48:17 +08:00
goto l879
}
}
2011-07-05 00:48:17 +08:00
l880:
return true
2011-07-05 00:48:17 +08:00
l879:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 159 TwoStarOpen <- (!StarLine '**' !Spacechar !Newline) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position883, thunkPosition883 := position, thunkPosition
if !p.rules[ruleStarLine]() {
2011-07-05 00:48:17 +08:00
goto l883
}
2011-07-05 00:48:17 +08:00
goto l882
l883:
position, thunkPosition = position883, thunkPosition883
}
if !matchString("**") {
2011-07-05 00:48:17 +08:00
goto l882
}
{
2011-07-05 00:48:17 +08:00
position884, thunkPosition884 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l884
}
2011-07-05 00:48:17 +08:00
goto l882
l884:
position, thunkPosition = position884, thunkPosition884
}
{
2011-07-05 00:48:17 +08:00
position885, thunkPosition885 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l885
}
2011-07-05 00:48:17 +08:00
goto l882
l885:
position, thunkPosition = position885, thunkPosition885
}
return true
2011-07-05 00:48:17 +08:00
l882:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 160 TwoStarClose <- (!Spacechar !Newline Inline '**' { yy = a }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
doarg(yyPush, 1)
{
2011-07-05 00:48:17 +08:00
position887, thunkPosition887 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l887
}
2011-07-05 00:48:17 +08:00
goto l886
l887:
position, thunkPosition = position887, thunkPosition887
}
{
2011-07-05 00:48:17 +08:00
position888, thunkPosition888 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l888
}
2011-07-05 00:48:17 +08:00
goto l886
l888:
position, thunkPosition = position888, thunkPosition888
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l886
}
doarg(yySet, -1)
if !matchString("**") {
2011-07-05 00:48:17 +08:00
goto l886
}
2011-02-21 17:08:33 +08:00
do(62)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l886:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l889
}
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l889
}
doarg(yySet, -1)
2011-07-05 00:48:17 +08:00
l890:
{
2011-07-05 00:48:17 +08:00
position891, thunkPosition891 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position892, thunkPosition892 := position, thunkPosition
if !p.rules[ruleTwoStarClose]() {
2011-07-05 00:48:17 +08:00
goto l892
}
2011-07-05 00:48:17 +08:00
goto l891
l892:
position, thunkPosition = position892, thunkPosition892
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l891
}
2011-02-21 17:08:33 +08:00
do(63)
2011-07-05 00:48:17 +08:00
goto l890
l891:
position, thunkPosition = position891, thunkPosition891
}
if !p.rules[ruleTwoStarClose]() {
2011-07-05 00:48:17 +08:00
goto l889
}
2011-02-21 17:08:33 +08:00
do(64)
do(65)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l889:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 162 TwoUlOpen <- (!UlLine '__' !Spacechar !Newline) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position894, thunkPosition894 := position, thunkPosition
if !p.rules[ruleUlLine]() {
2011-07-05 00:48:17 +08:00
goto l894
}
2011-07-05 00:48:17 +08:00
goto l893
l894:
position, thunkPosition = position894, thunkPosition894
}
if !matchString("__") {
2011-07-05 00:48:17 +08:00
goto l893
}
{
2011-07-05 00:48:17 +08:00
position895, thunkPosition895 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l895
}
2011-07-05 00:48:17 +08:00
goto l893
l895:
position, thunkPosition = position895, thunkPosition895
}
{
2011-07-05 00:48:17 +08:00
position896, thunkPosition896 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l896
}
2011-07-05 00:48:17 +08:00
goto l893
l896:
position, thunkPosition = position896, thunkPosition896
}
return true
2011-07-05 00:48:17 +08:00
l893:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 163 TwoUlClose <- (!Spacechar !Newline Inline '__' !Alphanumeric { yy = a }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
doarg(yyPush, 1)
{
2011-07-05 00:48:17 +08:00
position898, thunkPosition898 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l898
}
2011-07-05 00:48:17 +08:00
goto l897
l898:
position, thunkPosition = position898, thunkPosition898
}
{
2011-07-05 00:48:17 +08:00
position899, thunkPosition899 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l899
}
2011-07-05 00:48:17 +08:00
goto l897
l899:
position, thunkPosition = position899, thunkPosition899
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l897
}
doarg(yySet, -1)
if !matchString("__") {
2011-07-05 00:48:17 +08:00
goto l897
}
{
2011-07-05 00:48:17 +08:00
position900, thunkPosition900 := position, thunkPosition
if !p.rules[ruleAlphanumeric]() {
2011-07-05 00:48:17 +08:00
goto l900
}
2011-07-05 00:48:17 +08:00
goto l897
l900:
position, thunkPosition = position900, thunkPosition900
}
2011-02-21 17:08:33 +08:00
do(66)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l897:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l901
}
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l901
}
doarg(yySet, -1)
2011-07-05 00:48:17 +08:00
l902:
{
2011-07-05 00:48:17 +08:00
position903, thunkPosition903 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position904, thunkPosition904 := position, thunkPosition
if !p.rules[ruleTwoUlClose]() {
2011-07-05 00:48:17 +08:00
goto l904
}
2011-07-05 00:48:17 +08:00
goto l903
l904:
position, thunkPosition = position904, thunkPosition904
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l903
}
2011-02-21 17:08:33 +08:00
do(67)
2011-07-05 00:48:17 +08:00
goto l902
l903:
position, thunkPosition = position903, thunkPosition903
}
if !p.rules[ruleTwoUlClose]() {
2011-07-05 00:48:17 +08:00
goto l901
}
2011-02-21 17:08:33 +08:00
do(68)
do(69)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l901:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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('!') {
2011-07-05 00:48:17 +08:00
goto l905
}
{
2011-07-05 00:48:17 +08:00
position906, thunkPosition906 := position, thunkPosition
if !p.rules[ruleExplicitLink]() {
2011-07-05 00:48:17 +08:00
goto l907
}
2011-07-05 00:48:17 +08:00
goto l906
l907:
position, thunkPosition = position906, thunkPosition906
if !p.rules[ruleReferenceLink]() {
2011-07-05 00:48:17 +08:00
goto l905
}
}
2011-07-05 00:48:17 +08:00
l906:
2011-02-21 17:08:33 +08:00
do(70)
return true
2011-07-05 00:48:17 +08:00
l905:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 166 Link <- (ExplicitLink / ReferenceLink / AutoLink) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position909, thunkPosition909 := position, thunkPosition
if !p.rules[ruleExplicitLink]() {
2011-07-05 00:48:17 +08:00
goto l910
}
2011-07-05 00:48:17 +08:00
goto l909
l910:
position, thunkPosition = position909, thunkPosition909
if !p.rules[ruleReferenceLink]() {
2011-07-05 00:48:17 +08:00
goto l911
}
2011-07-05 00:48:17 +08:00
goto l909
l911:
position, thunkPosition = position909, thunkPosition909
if !p.rules[ruleAutoLink]() {
2011-07-05 00:48:17 +08:00
goto l908
}
}
2011-07-05 00:48:17 +08:00
l909:
return true
2011-07-05 00:48:17 +08:00
l908:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 167 ReferenceLink <- (ReferenceLinkDouble / ReferenceLinkSingle) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position913, thunkPosition913 := position, thunkPosition
if !p.rules[ruleReferenceLinkDouble]() {
2011-07-05 00:48:17 +08:00
goto l914
}
2011-07-05 00:48:17 +08:00
goto l913
l914:
position, thunkPosition = position913, thunkPosition913
if !p.rules[ruleReferenceLinkSingle]() {
2011-07-05 00:48:17 +08:00
goto l912
}
}
2011-07-05 00:48:17 +08:00
l913:
return true
2011-07-05 00:48:17 +08:00
l912:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l915
}
doarg(yySet, -1)
begin = position
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l915
}
end = position
{
2011-07-05 00:48:17 +08:00
position916, thunkPosition916 := position, thunkPosition
if !matchString("[]") {
2011-07-05 00:48:17 +08:00
goto l916
}
2011-07-05 00:48:17 +08:00
goto l915
l916:
position, thunkPosition = position916, thunkPosition916
}
if !p.rules[ruleLabel]() {
2011-07-05 00:48:17 +08:00
goto l915
}
doarg(yySet, -2)
2011-02-21 17:08:33 +08:00
do(71)
doarg(yyPop, 2)
return true
2011-07-05 00:48:17 +08:00
l915:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l917
}
doarg(yySet, -1)
begin = position
{
2011-07-05 00:48:17 +08:00
position918, thunkPosition918 := position, thunkPosition
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l918
}
if !matchString("[]") {
2011-07-05 00:48:17 +08:00
goto l918
}
2011-07-05 00:48:17 +08:00
goto l919
l918:
position, thunkPosition = position918, thunkPosition918
}
2011-07-05 00:48:17 +08:00
l919:
end = position
2011-02-21 17:08:33 +08:00
do(72)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l917:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l920
}
doarg(yySet, -2)
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l920
}
if !matchChar('(') {
2011-07-05 00:48:17 +08:00
goto l920
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l920
}
if !p.rules[ruleSource]() {
2011-07-05 00:48:17 +08:00
goto l920
}
doarg(yySet, -1)
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l920
}
if !p.rules[ruleTitle]() {
2011-07-05 00:48:17 +08:00
goto l920
}
doarg(yySet, -3)
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l920
}
if !matchChar(')') {
2011-07-05 00:48:17 +08:00
goto l920
}
2011-02-21 17:08:33 +08:00
do(73)
doarg(yyPop, 3)
return true
2011-07-05 00:48:17 +08:00
l920:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 171 Source <- ((('<' < SourceContents > '>') / (< SourceContents >)) { yy = mk_str(yytext) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position922, thunkPosition922 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l923
}
begin = position
if !p.rules[ruleSourceContents]() {
2011-07-05 00:48:17 +08:00
goto l923
}
end = position
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l923
}
2011-07-05 00:48:17 +08:00
goto l922
l923:
position, thunkPosition = position922, thunkPosition922
begin = position
if !p.rules[ruleSourceContents]() {
2011-07-05 00:48:17 +08:00
goto l921
}
end = position
}
2011-07-05 00:48:17 +08:00
l922:
2011-02-21 17:08:33 +08:00
do(74)
return true
2011-07-05 00:48:17 +08:00
l921:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 172 SourceContents <- (((!'(' !')' !'>' Nonspacechar)+ / ('(' SourceContents ')'))* / '') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position925, thunkPosition925 := position, thunkPosition
l927:
{
2011-07-05 00:48:17 +08:00
position928, thunkPosition928 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position929, thunkPosition929 := position, thunkPosition
if peekChar('(') {
2011-07-05 00:48:17 +08:00
goto l930
}
if peekChar(')') {
2011-07-05 00:48:17 +08:00
goto l930
}
if peekChar('>') {
2011-07-05 00:48:17 +08:00
goto l930
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l930
}
2011-07-05 00:48:17 +08:00
l931:
{
2011-07-05 00:48:17 +08:00
position932, thunkPosition932 := position, thunkPosition
if peekChar('(') {
2011-07-05 00:48:17 +08:00
goto l932
}
if peekChar(')') {
2011-07-05 00:48:17 +08:00
goto l932
}
if peekChar('>') {
2011-07-05 00:48:17 +08:00
goto l932
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l932
}
2011-07-05 00:48:17 +08:00
goto l931
l932:
position, thunkPosition = position932, thunkPosition932
}
2011-07-05 00:48:17 +08:00
goto l929
l930:
position, thunkPosition = position929, thunkPosition929
if !matchChar('(') {
2011-07-05 00:48:17 +08:00
goto l928
}
if !p.rules[ruleSourceContents]() {
2011-07-05 00:48:17 +08:00
goto l928
}
if !matchChar(')') {
2011-07-05 00:48:17 +08:00
goto l928
}
}
2011-07-05 00:48:17 +08:00
l929:
goto l927
l928:
position, thunkPosition = position928, thunkPosition928
}
2011-07-05 00:48:17 +08:00
goto l925
_, _ = position925, thunkPosition925
}
2011-07-05 00:48:17 +08:00
l925:
return true
2011-03-25 20:50:31 +08:00
_, _ = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 173 Title <- ((TitleSingle / TitleDouble / (< '' >)) { yy = mk_str(yytext) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position934, thunkPosition934 := position, thunkPosition
if !p.rules[ruleTitleSingle]() {
2011-07-05 00:48:17 +08:00
goto l935
}
2011-07-05 00:48:17 +08:00
goto l934
l935:
position, thunkPosition = position934, thunkPosition934
if !p.rules[ruleTitleDouble]() {
2011-07-05 00:48:17 +08:00
goto l936
}
2011-07-05 00:48:17 +08:00
goto l934
l936:
position, thunkPosition = position934, thunkPosition934
begin = position
2011-07-05 00:48:17 +08:00
if !peekDot() {
goto l933
}
end = position
}
2011-07-05 00:48:17 +08:00
l934:
2011-02-21 17:08:33 +08:00
do(75)
return true
2011-07-05 00:48:17 +08:00
l933:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 174 TitleSingle <- ('\'' < (!('\'' Sp (')' / Newline)) .)* > '\'') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('\'') {
2011-07-05 00:48:17 +08:00
goto l937
}
begin = position
2011-07-05 00:48:17 +08:00
l938:
{
2011-07-05 00:48:17 +08:00
position939, thunkPosition939 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position940, thunkPosition940 := position, thunkPosition
if !matchChar('\'') {
2011-07-05 00:48:17 +08:00
goto l940
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l940
}
{
2011-07-05 00:48:17 +08:00
position941, thunkPosition941 := position, thunkPosition
if !matchChar(')') {
2011-07-05 00:48:17 +08:00
goto l942
}
2011-07-05 00:48:17 +08:00
goto l941
l942:
position, thunkPosition = position941, thunkPosition941
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l940
}
}
2011-07-05 00:48:17 +08:00
l941:
goto l939
l940:
position, thunkPosition = position940, thunkPosition940
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l939
}
2011-07-05 00:48:17 +08:00
goto l938
l939:
position, thunkPosition = position939, thunkPosition939
}
end = position
if !matchChar('\'') {
2011-07-05 00:48:17 +08:00
goto l937
}
return true
2011-07-05 00:48:17 +08:00
l937:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 175 TitleDouble <- ('"' < (!('"' Sp (')' / Newline)) .)* > '"') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('"') {
2011-07-05 00:48:17 +08:00
goto l943
}
begin = position
2011-07-05 00:48:17 +08:00
l944:
{
2011-07-05 00:48:17 +08:00
position945, thunkPosition945 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position946, thunkPosition946 := position, thunkPosition
if !matchChar('"') {
2011-07-05 00:48:17 +08:00
goto l946
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l946
}
{
2011-07-05 00:48:17 +08:00
position947, thunkPosition947 := position, thunkPosition
if !matchChar(')') {
2011-07-05 00:48:17 +08:00
goto l948
}
2011-07-05 00:48:17 +08:00
goto l947
l948:
position, thunkPosition = position947, thunkPosition947
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l946
}
}
2011-07-05 00:48:17 +08:00
l947:
goto l945
l946:
position, thunkPosition = position946, thunkPosition946
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l945
}
2011-07-05 00:48:17 +08:00
goto l944
l945:
position, thunkPosition = position945, thunkPosition945
}
end = position
if !matchChar('"') {
2011-07-05 00:48:17 +08:00
goto l943
}
return true
2011-07-05 00:48:17 +08:00
l943:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 176 AutoLink <- (AutoLinkUrl / AutoLinkEmail) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position950, thunkPosition950 := position, thunkPosition
if !p.rules[ruleAutoLinkUrl]() {
2011-07-05 00:48:17 +08:00
goto l951
}
2011-07-05 00:48:17 +08:00
goto l950
l951:
position, thunkPosition = position950, thunkPosition950
if !p.rules[ruleAutoLinkEmail]() {
2011-07-05 00:48:17 +08:00
goto l949
}
}
2011-07-05 00:48:17 +08:00
l950:
return true
2011-07-05 00:48:17 +08:00
l949:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 177 AutoLinkUrl <- ('<' < [A-Za-z]+ '://' (!Newline !'>' .)+ > '>' { yy = mk_link(mk_str(yytext), yytext, "") }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l952
}
begin = position
2011-02-21 17:08:33 +08:00
if !matchClass(4) {
2011-07-05 00:48:17 +08:00
goto l952
}
2011-07-05 00:48:17 +08:00
l953:
{
2011-07-05 00:48:17 +08:00
position954, thunkPosition954 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchClass(4) {
2011-07-05 00:48:17 +08:00
goto l954
}
2011-07-05 00:48:17 +08:00
goto l953
l954:
position, thunkPosition = position954, thunkPosition954
}
if !matchString("://") {
2011-07-05 00:48:17 +08:00
goto l952
}
{
2011-07-05 00:48:17 +08:00
position957, thunkPosition957 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l957
}
2011-07-05 00:48:17 +08:00
goto l952
l957:
position, thunkPosition = position957, thunkPosition957
}
if peekChar('>') {
2011-07-05 00:48:17 +08:00
goto l952
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l952
}
2011-07-05 00:48:17 +08:00
l955:
{
2011-07-05 00:48:17 +08:00
position956, thunkPosition956 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position958, thunkPosition958 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l958
}
2011-07-05 00:48:17 +08:00
goto l956
l958:
position, thunkPosition = position958, thunkPosition958
}
if peekChar('>') {
2011-07-05 00:48:17 +08:00
goto l956
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l956
}
2011-07-05 00:48:17 +08:00
goto l955
l956:
position, thunkPosition = position956, thunkPosition956
}
end = position
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l952
}
2011-02-21 17:08:33 +08:00
do(76)
return true
2011-07-05 00:48:17 +08:00
l952:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 178 AutoLinkEmail <- ('<' < [-A-Za-z0-9+_]+ '@' (!Newline !'>' .)+ > '>' {
yy = mk_link(mk_str(yytext), "mailto:"+yytext, "")
}) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l959
}
begin = position
2011-02-21 17:08:33 +08:00
if !matchClass(9) {
2011-07-05 00:48:17 +08:00
goto l959
}
2011-07-05 00:48:17 +08:00
l960:
{
2011-07-05 00:48:17 +08:00
position961, thunkPosition961 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchClass(9) {
2011-07-05 00:48:17 +08:00
goto l961
}
2011-07-05 00:48:17 +08:00
goto l960
l961:
position, thunkPosition = position961, thunkPosition961
}
if !matchChar('@') {
2011-07-05 00:48:17 +08:00
goto l959
}
{
2011-07-05 00:48:17 +08:00
position964, thunkPosition964 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l964
}
2011-07-05 00:48:17 +08:00
goto l959
l964:
position, thunkPosition = position964, thunkPosition964
}
if peekChar('>') {
2011-07-05 00:48:17 +08:00
goto l959
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l959
}
2011-07-05 00:48:17 +08:00
l962:
{
2011-07-05 00:48:17 +08:00
position963, thunkPosition963 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position965, thunkPosition965 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l965
}
2011-07-05 00:48:17 +08:00
goto l963
l965:
position, thunkPosition = position965, thunkPosition965
}
if peekChar('>') {
2011-07-05 00:48:17 +08:00
goto l963
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l963
}
2011-07-05 00:48:17 +08:00
goto l962
l963:
position, thunkPosition = position963, thunkPosition963
}
end = position
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l959
}
2011-02-21 17:08:33 +08:00
do(77)
return true
2011-07-05 00:48:17 +08:00
l959:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l966
}
{
2011-07-05 00:48:17 +08:00
position967, thunkPosition967 := position, thunkPosition
if !matchString("[]") {
2011-07-05 00:48:17 +08:00
goto l967
}
2011-07-05 00:48:17 +08:00
goto l966
l967:
position, thunkPosition = position967, thunkPosition967
}
if !p.rules[ruleLabel]() {
2011-07-05 00:48:17 +08:00
goto l966
}
doarg(yySet, -2)
if !matchChar(':') {
2011-07-05 00:48:17 +08:00
goto l966
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l966
}
if !p.rules[ruleRefSrc]() {
2011-07-05 00:48:17 +08:00
goto l966
}
doarg(yySet, -1)
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l966
}
if !p.rules[ruleRefTitle]() {
2011-07-05 00:48:17 +08:00
goto l966
}
doarg(yySet, -3)
2011-07-05 00:48:17 +08:00
l968:
{
2011-07-05 00:48:17 +08:00
position969, thunkPosition969 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l969
}
2011-07-05 00:48:17 +08:00
goto l968
l969:
position, thunkPosition = position969, thunkPosition969
}
2011-02-21 17:08:33 +08:00
do(78)
doarg(yyPop, 3)
return true
2011-07-05 00:48:17 +08:00
l966:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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('[') {
2011-07-05 00:48:17 +08:00
goto l970
}
{
2011-07-05 00:48:17 +08:00
position971, thunkPosition971 := position, thunkPosition
if peekChar('^') {
2011-07-05 00:48:17 +08:00
goto l972
}
if !( p.extension.Notes ) {
2011-07-05 00:48:17 +08:00
goto l972
}
2011-07-05 00:48:17 +08:00
goto l971
l972:
position, thunkPosition = position971, thunkPosition971
if !peekDot() {
2011-07-05 00:48:17 +08:00
goto l970
}
if !( !p.extension.Notes ) {
2011-07-05 00:48:17 +08:00
goto l970
}
}
2011-07-05 00:48:17 +08:00
l971:
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l970
}
doarg(yySet, -1)
2011-07-05 00:48:17 +08:00
l973:
{
2011-07-05 00:48:17 +08:00
position974, thunkPosition974 := position, thunkPosition
if peekChar(']') {
2011-07-05 00:48:17 +08:00
goto l974
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l974
}
2011-02-21 17:08:33 +08:00
do(79)
2011-07-05 00:48:17 +08:00
goto l973
l974:
position, thunkPosition = position974, thunkPosition974
}
if !matchChar(']') {
2011-07-05 00:48:17 +08:00
goto l970
}
2011-02-21 17:08:33 +08:00
do(80)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l970:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 181 RefSrc <- (< Nonspacechar+ > { yy = mk_str(yytext)
yy.key = HTML }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
begin = position
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l975
}
2011-07-05 00:48:17 +08:00
l976:
{
2011-07-05 00:48:17 +08:00
position977, thunkPosition977 := position, thunkPosition
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l977
}
2011-07-05 00:48:17 +08:00
goto l976
l977:
position, thunkPosition = position977, thunkPosition977
}
end = position
2011-02-21 17:08:33 +08:00
do(81)
return true
2011-07-05 00:48:17 +08:00
l975:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 182 RefTitle <- ((RefTitleSingle / RefTitleDouble / RefTitleParens / EmptyTitle) { yy = mk_str(yytext) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position979, thunkPosition979 := position, thunkPosition
if !p.rules[ruleRefTitleSingle]() {
2011-07-05 00:48:17 +08:00
goto l980
}
2011-07-05 00:48:17 +08:00
goto l979
l980:
position, thunkPosition = position979, thunkPosition979
if !p.rules[ruleRefTitleDouble]() {
2011-07-05 00:48:17 +08:00
goto l981
}
2011-07-05 00:48:17 +08:00
goto l979
l981:
position, thunkPosition = position979, thunkPosition979
if !p.rules[ruleRefTitleParens]() {
2011-07-05 00:48:17 +08:00
goto l982
}
2011-07-05 00:48:17 +08:00
goto l979
l982:
position, thunkPosition = position979, thunkPosition979
if !p.rules[ruleEmptyTitle]() {
2011-07-05 00:48:17 +08:00
goto l978
}
}
2011-07-05 00:48:17 +08:00
l979:
2011-02-21 17:08:33 +08:00
do(82)
return true
2011-07-05 00:48:17 +08:00
l978:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 183 EmptyTitle <- (< '' >) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
begin = position
2011-07-05 00:48:17 +08:00
if !peekDot() {
goto l983
}
end = position
return true
2011-07-05 00:48:17 +08:00
l983:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 184 RefTitleSingle <- ('\'' < (!(('\'' Sp Newline) / Newline) .)* > '\'') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('\'') {
2011-07-05 00:48:17 +08:00
goto l984
}
begin = position
2011-07-05 00:48:17 +08:00
l985:
{
2011-07-05 00:48:17 +08:00
position986, thunkPosition986 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position987, thunkPosition987 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position988, thunkPosition988 := position, thunkPosition
if !matchChar('\'') {
2011-07-05 00:48:17 +08:00
goto l989
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l989
}
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l989
}
2011-07-05 00:48:17 +08:00
goto l988
l989:
position, thunkPosition = position988, thunkPosition988
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l987
}
}
2011-07-05 00:48:17 +08:00
l988:
goto l986
l987:
position, thunkPosition = position987, thunkPosition987
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l986
}
2011-07-05 00:48:17 +08:00
goto l985
l986:
position, thunkPosition = position986, thunkPosition986
}
end = position
if !matchChar('\'') {
2011-07-05 00:48:17 +08:00
goto l984
}
return true
2011-07-05 00:48:17 +08:00
l984:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 185 RefTitleDouble <- ('"' < (!(('"' Sp Newline) / Newline) .)* > '"') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('"') {
2011-07-05 00:48:17 +08:00
goto l990
}
begin = position
2011-07-05 00:48:17 +08:00
l991:
{
2011-07-05 00:48:17 +08:00
position992, thunkPosition992 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position993, thunkPosition993 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position994, thunkPosition994 := position, thunkPosition
if !matchChar('"') {
2011-07-05 00:48:17 +08:00
goto l995
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l995
}
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l995
}
2011-07-05 00:48:17 +08:00
goto l994
l995:
position, thunkPosition = position994, thunkPosition994
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l993
}
}
2011-07-05 00:48:17 +08:00
l994:
goto l992
l993:
position, thunkPosition = position993, thunkPosition993
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l992
}
2011-07-05 00:48:17 +08:00
goto l991
l992:
position, thunkPosition = position992, thunkPosition992
}
end = position
if !matchChar('"') {
2011-07-05 00:48:17 +08:00
goto l990
}
return true
2011-07-05 00:48:17 +08:00
l990:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 186 RefTitleParens <- ('(' < (!((')' Sp Newline) / Newline) .)* > ')') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('(') {
2011-07-05 00:48:17 +08:00
goto l996
}
begin = position
2011-07-05 00:48:17 +08:00
l997:
{
2011-07-05 00:48:17 +08:00
position998, thunkPosition998 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position999, thunkPosition999 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1000, thunkPosition1000 := position, thunkPosition
if !matchChar(')') {
2011-07-05 00:48:17 +08:00
goto l1001
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1001
}
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1001
}
2011-07-05 00:48:17 +08:00
goto l1000
l1001:
position, thunkPosition = position1000, thunkPosition1000
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l999
}
}
2011-07-05 00:48:17 +08:00
l1000:
goto l998
l999:
position, thunkPosition = position999, thunkPosition999
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l998
}
2011-07-05 00:48:17 +08:00
goto l997
l998:
position, thunkPosition = position998, thunkPosition998
}
end = position
if !matchChar(')') {
2011-07-05 00:48:17 +08:00
goto l996
}
return true
2011-07-05 00:48:17 +08:00
l996:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l1002
}
doarg(yySet, -1)
2011-07-05 00:48:17 +08:00
l1003:
{
2011-07-05 00:48:17 +08:00
position1004, thunkPosition1004 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1005, thunkPosition1005 := position, thunkPosition
if !p.rules[ruleReference]() {
2011-07-05 00:48:17 +08:00
goto l1006
}
doarg(yySet, -2)
2011-02-21 17:08:33 +08:00
do(83)
2011-07-05 00:48:17 +08:00
goto l1005
l1006:
position, thunkPosition = position1005, thunkPosition1005
if !p.rules[ruleSkipBlock]() {
2011-07-05 00:48:17 +08:00
goto l1004
}
}
2011-07-05 00:48:17 +08:00
l1005:
goto l1003
l1004:
position, thunkPosition = position1004, thunkPosition1004
}
2011-02-21 17:08:33 +08:00
do(84)
if !(commit(thunkPosition0)) {
2011-07-05 00:48:17 +08:00
goto l1002
}
doarg(yyPop, 2)
return true
2011-07-05 00:48:17 +08:00
l1002:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 188 Ticks1 <- ('`' !'`') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1007
}
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1007
}
return true
2011-07-05 00:48:17 +08:00
l1007:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 189 Ticks2 <- ('``' !'`') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchString("``") {
2011-07-05 00:48:17 +08:00
goto l1008
}
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1008
}
return true
2011-07-05 00:48:17 +08:00
l1008:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 190 Ticks3 <- ('```' !'`') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchString("```") {
2011-07-05 00:48:17 +08:00
goto l1009
}
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1009
}
return true
2011-07-05 00:48:17 +08:00
l1009:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 191 Ticks4 <- ('````' !'`') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchString("````") {
2011-07-05 00:48:17 +08:00
goto l1010
}
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1010
}
return true
2011-07-05 00:48:17 +08:00
l1010:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 192 Ticks5 <- ('`````' !'`') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchString("`````") {
2011-07-05 00:48:17 +08:00
goto l1011
}
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1011
}
return true
2011-07-05 00:48:17 +08:00
l1011:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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
{
2011-07-05 00:48:17 +08:00
position1013, thunkPosition1013 := position, thunkPosition
if !p.rules[ruleTicks1]() {
2011-07-05 00:48:17 +08:00
goto l1014
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1014
}
begin = position
{
2011-07-05 00:48:17 +08:00
position1017, thunkPosition1017 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1018
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1018
}
2011-07-05 00:48:17 +08:00
l1019:
{
2011-07-05 00:48:17 +08:00
position1020, thunkPosition1020 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1020
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1020
}
2011-07-05 00:48:17 +08:00
goto l1019
l1020:
position, thunkPosition = position1020, thunkPosition1020
}
2011-07-05 00:48:17 +08:00
goto l1017
l1018:
position, thunkPosition = position1017, thunkPosition1017
{
2011-07-05 00:48:17 +08:00
position1022, thunkPosition1022 := position, thunkPosition
if !p.rules[ruleTicks1]() {
2011-07-05 00:48:17 +08:00
goto l1022
}
2011-07-05 00:48:17 +08:00
goto l1021
l1022:
position, thunkPosition = position1022, thunkPosition1022
}
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1021
}
2011-07-05 00:48:17 +08:00
l1023:
{
2011-07-05 00:48:17 +08:00
position1024, thunkPosition1024 := position, thunkPosition
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1024
}
2011-07-05 00:48:17 +08:00
goto l1023
l1024:
position, thunkPosition = position1024, thunkPosition1024
}
2011-07-05 00:48:17 +08:00
goto l1017
l1021:
position, thunkPosition = position1017, thunkPosition1017
{
2011-07-05 00:48:17 +08:00
position1025, thunkPosition1025 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1025
}
if !p.rules[ruleTicks1]() {
2011-07-05 00:48:17 +08:00
goto l1025
}
2011-07-05 00:48:17 +08:00
goto l1014
l1025:
position, thunkPosition = position1025, thunkPosition1025
}
{
2011-07-05 00:48:17 +08:00
position1026, thunkPosition1026 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1027
}
2011-07-05 00:48:17 +08:00
goto l1026
l1027:
position, thunkPosition = position1026, thunkPosition1026
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1014
}
{
2011-07-05 00:48:17 +08:00
position1028, thunkPosition1028 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1028
}
2011-07-05 00:48:17 +08:00
goto l1014
l1028:
position, thunkPosition = position1028, thunkPosition1028
}
}
2011-07-05 00:48:17 +08:00
l1026:
}
2011-07-05 00:48:17 +08:00
l1017:
l1015:
{
2011-07-05 00:48:17 +08:00
position1016, thunkPosition1016 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1029, thunkPosition1029 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1030
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1030
}
2011-07-05 00:48:17 +08:00
l1031:
{
2011-07-05 00:48:17 +08:00
position1032, thunkPosition1032 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1032
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1032
}
2011-07-05 00:48:17 +08:00
goto l1031
l1032:
position, thunkPosition = position1032, thunkPosition1032
}
2011-07-05 00:48:17 +08:00
goto l1029
l1030:
position, thunkPosition = position1029, thunkPosition1029
{
2011-07-05 00:48:17 +08:00
position1034, thunkPosition1034 := position, thunkPosition
if !p.rules[ruleTicks1]() {
2011-07-05 00:48:17 +08:00
goto l1034
}
2011-07-05 00:48:17 +08:00
goto l1033
l1034:
position, thunkPosition = position1034, thunkPosition1034
}
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1033
}
2011-07-05 00:48:17 +08:00
l1035:
{
2011-07-05 00:48:17 +08:00
position1036, thunkPosition1036 := position, thunkPosition
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1036
}
2011-07-05 00:48:17 +08:00
goto l1035
l1036:
position, thunkPosition = position1036, thunkPosition1036
}
2011-07-05 00:48:17 +08:00
goto l1029
l1033:
position, thunkPosition = position1029, thunkPosition1029
{
2011-07-05 00:48:17 +08:00
position1037, thunkPosition1037 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1037
}
if !p.rules[ruleTicks1]() {
2011-07-05 00:48:17 +08:00
goto l1037
}
2011-07-05 00:48:17 +08:00
goto l1016
l1037:
position, thunkPosition = position1037, thunkPosition1037
}
{
2011-07-05 00:48:17 +08:00
position1038, thunkPosition1038 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1039
}
2011-07-05 00:48:17 +08:00
goto l1038
l1039:
position, thunkPosition = position1038, thunkPosition1038
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1016
}
{
2011-07-05 00:48:17 +08:00
position1040, thunkPosition1040 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1040
}
2011-07-05 00:48:17 +08:00
goto l1016
l1040:
position, thunkPosition = position1040, thunkPosition1040
}
}
2011-07-05 00:48:17 +08:00
l1038:
}
2011-07-05 00:48:17 +08:00
l1029:
goto l1015
l1016:
position, thunkPosition = position1016, thunkPosition1016
}
end = position
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1014
}
if !p.rules[ruleTicks1]() {
2011-07-05 00:48:17 +08:00
goto l1014
}
2011-07-05 00:48:17 +08:00
goto l1013
l1014:
position, thunkPosition = position1013, thunkPosition1013
if !p.rules[ruleTicks2]() {
2011-07-05 00:48:17 +08:00
goto l1041
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1041
}
begin = position
{
2011-07-05 00:48:17 +08:00
position1044, thunkPosition1044 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1045
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1045
}
2011-07-05 00:48:17 +08:00
l1046:
{
2011-07-05 00:48:17 +08:00
position1047, thunkPosition1047 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1047
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1047
}
2011-07-05 00:48:17 +08:00
goto l1046
l1047:
position, thunkPosition = position1047, thunkPosition1047
}
2011-07-05 00:48:17 +08:00
goto l1044
l1045:
position, thunkPosition = position1044, thunkPosition1044
{
2011-07-05 00:48:17 +08:00
position1049, thunkPosition1049 := position, thunkPosition
if !p.rules[ruleTicks2]() {
2011-07-05 00:48:17 +08:00
goto l1049
}
2011-07-05 00:48:17 +08:00
goto l1048
l1049:
position, thunkPosition = position1049, thunkPosition1049
}
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1048
}
2011-07-05 00:48:17 +08:00
l1050:
{
2011-07-05 00:48:17 +08:00
position1051, thunkPosition1051 := position, thunkPosition
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1051
}
2011-07-05 00:48:17 +08:00
goto l1050
l1051:
position, thunkPosition = position1051, thunkPosition1051
}
2011-07-05 00:48:17 +08:00
goto l1044
l1048:
position, thunkPosition = position1044, thunkPosition1044
{
2011-07-05 00:48:17 +08:00
position1052, thunkPosition1052 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1052
}
if !p.rules[ruleTicks2]() {
2011-07-05 00:48:17 +08:00
goto l1052
}
2011-07-05 00:48:17 +08:00
goto l1041
l1052:
position, thunkPosition = position1052, thunkPosition1052
}
{
2011-07-05 00:48:17 +08:00
position1053, thunkPosition1053 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1054
}
2011-07-05 00:48:17 +08:00
goto l1053
l1054:
position, thunkPosition = position1053, thunkPosition1053
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1041
}
{
2011-07-05 00:48:17 +08:00
position1055, thunkPosition1055 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1055
}
2011-07-05 00:48:17 +08:00
goto l1041
l1055:
position, thunkPosition = position1055, thunkPosition1055
}
}
2011-07-05 00:48:17 +08:00
l1053:
}
2011-07-05 00:48:17 +08:00
l1044:
l1042:
{
2011-07-05 00:48:17 +08:00
position1043, thunkPosition1043 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1056, thunkPosition1056 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1057
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1057
}
2011-07-05 00:48:17 +08:00
l1058:
{
2011-07-05 00:48:17 +08:00
position1059, thunkPosition1059 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1059
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1059
}
2011-07-05 00:48:17 +08:00
goto l1058
l1059:
position, thunkPosition = position1059, thunkPosition1059
}
2011-07-05 00:48:17 +08:00
goto l1056
l1057:
position, thunkPosition = position1056, thunkPosition1056
{
2011-07-05 00:48:17 +08:00
position1061, thunkPosition1061 := position, thunkPosition
if !p.rules[ruleTicks2]() {
2011-07-05 00:48:17 +08:00
goto l1061
}
2011-07-05 00:48:17 +08:00
goto l1060
l1061:
position, thunkPosition = position1061, thunkPosition1061
}
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1060
}
2011-07-05 00:48:17 +08:00
l1062:
{
2011-07-05 00:48:17 +08:00
position1063, thunkPosition1063 := position, thunkPosition
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1063
}
2011-07-05 00:48:17 +08:00
goto l1062
l1063:
position, thunkPosition = position1063, thunkPosition1063
}
2011-07-05 00:48:17 +08:00
goto l1056
l1060:
position, thunkPosition = position1056, thunkPosition1056
{
2011-07-05 00:48:17 +08:00
position1064, thunkPosition1064 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1064
}
if !p.rules[ruleTicks2]() {
2011-07-05 00:48:17 +08:00
goto l1064
}
2011-07-05 00:48:17 +08:00
goto l1043
l1064:
position, thunkPosition = position1064, thunkPosition1064
}
{
2011-07-05 00:48:17 +08:00
position1065, thunkPosition1065 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1066
}
2011-07-05 00:48:17 +08:00
goto l1065
l1066:
position, thunkPosition = position1065, thunkPosition1065
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1043
}
{
2011-07-05 00:48:17 +08:00
position1067, thunkPosition1067 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1067
}
2011-07-05 00:48:17 +08:00
goto l1043
l1067:
position, thunkPosition = position1067, thunkPosition1067
}
}
2011-07-05 00:48:17 +08:00
l1065:
}
2011-07-05 00:48:17 +08:00
l1056:
goto l1042
l1043:
position, thunkPosition = position1043, thunkPosition1043
}
end = position
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1041
}
if !p.rules[ruleTicks2]() {
2011-07-05 00:48:17 +08:00
goto l1041
}
2011-07-05 00:48:17 +08:00
goto l1013
l1041:
position, thunkPosition = position1013, thunkPosition1013
if !p.rules[ruleTicks3]() {
2011-07-05 00:48:17 +08:00
goto l1068
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1068
}
begin = position
{
2011-07-05 00:48:17 +08:00
position1071, thunkPosition1071 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1072
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1072
}
2011-07-05 00:48:17 +08:00
l1073:
{
2011-07-05 00:48:17 +08:00
position1074, thunkPosition1074 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1074
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1074
}
2011-07-05 00:48:17 +08:00
goto l1073
l1074:
position, thunkPosition = position1074, thunkPosition1074
}
2011-07-05 00:48:17 +08:00
goto l1071
l1072:
position, thunkPosition = position1071, thunkPosition1071
{
2011-07-05 00:48:17 +08:00
position1076, thunkPosition1076 := position, thunkPosition
if !p.rules[ruleTicks3]() {
2011-07-05 00:48:17 +08:00
goto l1076
}
2011-07-05 00:48:17 +08:00
goto l1075
l1076:
position, thunkPosition = position1076, thunkPosition1076
}
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1075
}
2011-07-05 00:48:17 +08:00
l1077:
{
2011-07-05 00:48:17 +08:00
position1078, thunkPosition1078 := position, thunkPosition
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1078
}
2011-07-05 00:48:17 +08:00
goto l1077
l1078:
position, thunkPosition = position1078, thunkPosition1078
}
2011-07-05 00:48:17 +08:00
goto l1071
l1075:
position, thunkPosition = position1071, thunkPosition1071
{
2011-07-05 00:48:17 +08:00
position1079, thunkPosition1079 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1079
}
if !p.rules[ruleTicks3]() {
2011-07-05 00:48:17 +08:00
goto l1079
}
2011-07-05 00:48:17 +08:00
goto l1068
l1079:
position, thunkPosition = position1079, thunkPosition1079
}
{
2011-07-05 00:48:17 +08:00
position1080, thunkPosition1080 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1081
}
2011-07-05 00:48:17 +08:00
goto l1080
l1081:
position, thunkPosition = position1080, thunkPosition1080
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1068
}
{
2011-07-05 00:48:17 +08:00
position1082, thunkPosition1082 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1082
}
2011-07-05 00:48:17 +08:00
goto l1068
l1082:
position, thunkPosition = position1082, thunkPosition1082
}
}
2011-07-05 00:48:17 +08:00
l1080:
}
2011-07-05 00:48:17 +08:00
l1071:
l1069:
{
2011-07-05 00:48:17 +08:00
position1070, thunkPosition1070 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1083, thunkPosition1083 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1084
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1084
}
2011-07-05 00:48:17 +08:00
l1085:
{
2011-07-05 00:48:17 +08:00
position1086, thunkPosition1086 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1086
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1086
}
2011-07-05 00:48:17 +08:00
goto l1085
l1086:
position, thunkPosition = position1086, thunkPosition1086
}
2011-07-05 00:48:17 +08:00
goto l1083
l1084:
position, thunkPosition = position1083, thunkPosition1083
{
2011-07-05 00:48:17 +08:00
position1088, thunkPosition1088 := position, thunkPosition
if !p.rules[ruleTicks3]() {
2011-07-05 00:48:17 +08:00
goto l1088
}
2011-07-05 00:48:17 +08:00
goto l1087
l1088:
position, thunkPosition = position1088, thunkPosition1088
}
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1087
}
2011-07-05 00:48:17 +08:00
l1089:
{
2011-07-05 00:48:17 +08:00
position1090, thunkPosition1090 := position, thunkPosition
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1090
}
2011-07-05 00:48:17 +08:00
goto l1089
l1090:
position, thunkPosition = position1090, thunkPosition1090
}
2011-07-05 00:48:17 +08:00
goto l1083
l1087:
position, thunkPosition = position1083, thunkPosition1083
{
2011-07-05 00:48:17 +08:00
position1091, thunkPosition1091 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1091
}
if !p.rules[ruleTicks3]() {
2011-07-05 00:48:17 +08:00
goto l1091
}
2011-07-05 00:48:17 +08:00
goto l1070
l1091:
position, thunkPosition = position1091, thunkPosition1091
}
{
2011-07-05 00:48:17 +08:00
position1092, thunkPosition1092 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1093
}
2011-07-05 00:48:17 +08:00
goto l1092
l1093:
position, thunkPosition = position1092, thunkPosition1092
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1070
}
{
2011-07-05 00:48:17 +08:00
position1094, thunkPosition1094 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1094
}
2011-07-05 00:48:17 +08:00
goto l1070
l1094:
position, thunkPosition = position1094, thunkPosition1094
}
}
2011-07-05 00:48:17 +08:00
l1092:
}
2011-07-05 00:48:17 +08:00
l1083:
goto l1069
l1070:
position, thunkPosition = position1070, thunkPosition1070
}
end = position
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1068
}
if !p.rules[ruleTicks3]() {
2011-07-05 00:48:17 +08:00
goto l1068
}
2011-07-05 00:48:17 +08:00
goto l1013
l1068:
position, thunkPosition = position1013, thunkPosition1013
if !p.rules[ruleTicks4]() {
2011-07-05 00:48:17 +08:00
goto l1095
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1095
}
begin = position
{
2011-07-05 00:48:17 +08:00
position1098, thunkPosition1098 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1099
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1099
}
2011-07-05 00:48:17 +08:00
l1100:
{
2011-07-05 00:48:17 +08:00
position1101, thunkPosition1101 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1101
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1101
}
2011-07-05 00:48:17 +08:00
goto l1100
l1101:
position, thunkPosition = position1101, thunkPosition1101
}
2011-07-05 00:48:17 +08:00
goto l1098
l1099:
position, thunkPosition = position1098, thunkPosition1098
{
2011-07-05 00:48:17 +08:00
position1103, thunkPosition1103 := position, thunkPosition
if !p.rules[ruleTicks4]() {
2011-07-05 00:48:17 +08:00
goto l1103
}
2011-07-05 00:48:17 +08:00
goto l1102
l1103:
position, thunkPosition = position1103, thunkPosition1103
}
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1102
}
2011-07-05 00:48:17 +08:00
l1104:
{
2011-07-05 00:48:17 +08:00
position1105, thunkPosition1105 := position, thunkPosition
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1105
}
2011-07-05 00:48:17 +08:00
goto l1104
l1105:
position, thunkPosition = position1105, thunkPosition1105
}
2011-07-05 00:48:17 +08:00
goto l1098
l1102:
position, thunkPosition = position1098, thunkPosition1098
{
2011-07-05 00:48:17 +08:00
position1106, thunkPosition1106 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1106
}
if !p.rules[ruleTicks4]() {
2011-07-05 00:48:17 +08:00
goto l1106
}
2011-07-05 00:48:17 +08:00
goto l1095
l1106:
position, thunkPosition = position1106, thunkPosition1106
}
{
2011-07-05 00:48:17 +08:00
position1107, thunkPosition1107 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1108
}
2011-07-05 00:48:17 +08:00
goto l1107
l1108:
position, thunkPosition = position1107, thunkPosition1107
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1095
}
{
2011-07-05 00:48:17 +08:00
position1109, thunkPosition1109 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1109
}
2011-07-05 00:48:17 +08:00
goto l1095
l1109:
position, thunkPosition = position1109, thunkPosition1109
}
}
2011-07-05 00:48:17 +08:00
l1107:
}
2011-07-05 00:48:17 +08:00
l1098:
l1096:
{
2011-07-05 00:48:17 +08:00
position1097, thunkPosition1097 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1110, thunkPosition1110 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1111
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1111
}
2011-07-05 00:48:17 +08:00
l1112:
{
2011-07-05 00:48:17 +08:00
position1113, thunkPosition1113 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1113
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1113
}
2011-07-05 00:48:17 +08:00
goto l1112
l1113:
position, thunkPosition = position1113, thunkPosition1113
}
2011-07-05 00:48:17 +08:00
goto l1110
l1111:
position, thunkPosition = position1110, thunkPosition1110
{
2011-07-05 00:48:17 +08:00
position1115, thunkPosition1115 := position, thunkPosition
if !p.rules[ruleTicks4]() {
2011-07-05 00:48:17 +08:00
goto l1115
}
2011-07-05 00:48:17 +08:00
goto l1114
l1115:
position, thunkPosition = position1115, thunkPosition1115
}
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1114
}
2011-07-05 00:48:17 +08:00
l1116:
{
2011-07-05 00:48:17 +08:00
position1117, thunkPosition1117 := position, thunkPosition
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1117
}
2011-07-05 00:48:17 +08:00
goto l1116
l1117:
position, thunkPosition = position1117, thunkPosition1117
}
2011-07-05 00:48:17 +08:00
goto l1110
l1114:
position, thunkPosition = position1110, thunkPosition1110
{
2011-07-05 00:48:17 +08:00
position1118, thunkPosition1118 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1118
}
if !p.rules[ruleTicks4]() {
2011-07-05 00:48:17 +08:00
goto l1118
}
2011-07-05 00:48:17 +08:00
goto l1097
l1118:
position, thunkPosition = position1118, thunkPosition1118
}
{
2011-07-05 00:48:17 +08:00
position1119, thunkPosition1119 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1120
}
2011-07-05 00:48:17 +08:00
goto l1119
l1120:
position, thunkPosition = position1119, thunkPosition1119
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1097
}
{
2011-07-05 00:48:17 +08:00
position1121, thunkPosition1121 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1121
}
2011-07-05 00:48:17 +08:00
goto l1097
l1121:
position, thunkPosition = position1121, thunkPosition1121
}
}
2011-07-05 00:48:17 +08:00
l1119:
}
2011-07-05 00:48:17 +08:00
l1110:
goto l1096
l1097:
position, thunkPosition = position1097, thunkPosition1097
}
end = position
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1095
}
if !p.rules[ruleTicks4]() {
2011-07-05 00:48:17 +08:00
goto l1095
}
2011-07-05 00:48:17 +08:00
goto l1013
l1095:
position, thunkPosition = position1013, thunkPosition1013
if !p.rules[ruleTicks5]() {
2011-07-05 00:48:17 +08:00
goto l1012
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1012
}
begin = position
{
2011-07-05 00:48:17 +08:00
position1124, thunkPosition1124 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1125
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1125
}
2011-07-05 00:48:17 +08:00
l1126:
{
2011-07-05 00:48:17 +08:00
position1127, thunkPosition1127 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1127
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1127
}
2011-07-05 00:48:17 +08:00
goto l1126
l1127:
position, thunkPosition = position1127, thunkPosition1127
}
2011-07-05 00:48:17 +08:00
goto l1124
l1125:
position, thunkPosition = position1124, thunkPosition1124
{
2011-07-05 00:48:17 +08:00
position1129, thunkPosition1129 := position, thunkPosition
if !p.rules[ruleTicks5]() {
2011-07-05 00:48:17 +08:00
goto l1129
}
2011-07-05 00:48:17 +08:00
goto l1128
l1129:
position, thunkPosition = position1129, thunkPosition1129
}
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1128
}
2011-07-05 00:48:17 +08:00
l1130:
{
2011-07-05 00:48:17 +08:00
position1131, thunkPosition1131 := position, thunkPosition
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1131
}
2011-07-05 00:48:17 +08:00
goto l1130
l1131:
position, thunkPosition = position1131, thunkPosition1131
}
2011-07-05 00:48:17 +08:00
goto l1124
l1128:
position, thunkPosition = position1124, thunkPosition1124
{
2011-07-05 00:48:17 +08:00
position1132, thunkPosition1132 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1132
}
if !p.rules[ruleTicks5]() {
2011-07-05 00:48:17 +08:00
goto l1132
}
2011-07-05 00:48:17 +08:00
goto l1012
l1132:
position, thunkPosition = position1132, thunkPosition1132
}
{
2011-07-05 00:48:17 +08:00
position1133, thunkPosition1133 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1134
}
2011-07-05 00:48:17 +08:00
goto l1133
l1134:
position, thunkPosition = position1133, thunkPosition1133
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1012
}
{
2011-07-05 00:48:17 +08:00
position1135, thunkPosition1135 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1135
}
2011-07-05 00:48:17 +08:00
goto l1012
l1135:
position, thunkPosition = position1135, thunkPosition1135
}
}
2011-07-05 00:48:17 +08:00
l1133:
}
2011-07-05 00:48:17 +08:00
l1124:
l1122:
{
2011-07-05 00:48:17 +08:00
position1123, thunkPosition1123 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1136, thunkPosition1136 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1137
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1137
}
2011-07-05 00:48:17 +08:00
l1138:
{
2011-07-05 00:48:17 +08:00
position1139, thunkPosition1139 := position, thunkPosition
if peekChar('`') {
2011-07-05 00:48:17 +08:00
goto l1139
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1139
}
2011-07-05 00:48:17 +08:00
goto l1138
l1139:
position, thunkPosition = position1139, thunkPosition1139
}
2011-07-05 00:48:17 +08:00
goto l1136
l1137:
position, thunkPosition = position1136, thunkPosition1136
{
2011-07-05 00:48:17 +08:00
position1141, thunkPosition1141 := position, thunkPosition
if !p.rules[ruleTicks5]() {
2011-07-05 00:48:17 +08:00
goto l1141
}
2011-07-05 00:48:17 +08:00
goto l1140
l1141:
position, thunkPosition = position1141, thunkPosition1141
}
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1140
}
2011-07-05 00:48:17 +08:00
l1142:
{
2011-07-05 00:48:17 +08:00
position1143, thunkPosition1143 := position, thunkPosition
if !matchChar('`') {
2011-07-05 00:48:17 +08:00
goto l1143
}
2011-07-05 00:48:17 +08:00
goto l1142
l1143:
position, thunkPosition = position1143, thunkPosition1143
}
2011-07-05 00:48:17 +08:00
goto l1136
l1140:
position, thunkPosition = position1136, thunkPosition1136
{
2011-07-05 00:48:17 +08:00
position1144, thunkPosition1144 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1144
}
if !p.rules[ruleTicks5]() {
2011-07-05 00:48:17 +08:00
goto l1144
}
2011-07-05 00:48:17 +08:00
goto l1123
l1144:
position, thunkPosition = position1144, thunkPosition1144
}
{
2011-07-05 00:48:17 +08:00
position1145, thunkPosition1145 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1146
}
2011-07-05 00:48:17 +08:00
goto l1145
l1146:
position, thunkPosition = position1145, thunkPosition1145
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1123
}
{
2011-07-05 00:48:17 +08:00
position1147, thunkPosition1147 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1147
}
2011-07-05 00:48:17 +08:00
goto l1123
l1147:
position, thunkPosition = position1147, thunkPosition1147
}
}
2011-07-05 00:48:17 +08:00
l1145:
}
2011-07-05 00:48:17 +08:00
l1136:
goto l1122
l1123:
position, thunkPosition = position1123, thunkPosition1123
}
end = position
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1012
}
if !p.rules[ruleTicks5]() {
2011-07-05 00:48:17 +08:00
goto l1012
}
}
2011-07-05 00:48:17 +08:00
l1013:
2011-02-21 17:08:33 +08:00
do(85)
return true
2011-07-05 00:48:17 +08:00
l1012:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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
{
2011-07-05 00:48:17 +08:00
position1149, thunkPosition1149 := position, thunkPosition
if !p.rules[ruleHtmlComment]() {
2011-07-05 00:48:17 +08:00
goto l1150
}
2011-07-05 00:48:17 +08:00
goto l1149
l1150:
position, thunkPosition = position1149, thunkPosition1149
if !p.rules[ruleHtmlTag]() {
2011-07-05 00:48:17 +08:00
goto l1148
}
}
2011-07-05 00:48:17 +08:00
l1149:
end = position
2011-02-21 17:08:33 +08:00
do(86)
return true
2011-07-05 00:48:17 +08:00
l1148:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 195 BlankLine <- (Sp Newline) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1151
}
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1151
}
return true
2011-07-05 00:48:17 +08:00
l1151:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 196 Quoted <- (('"' (!'"' .)* '"') / ('\'' (!'\'' .)* '\'')) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1153, thunkPosition1153 := position, thunkPosition
if !matchChar('"') {
2011-07-05 00:48:17 +08:00
goto l1154
}
2011-07-05 00:48:17 +08:00
l1155:
{
2011-07-05 00:48:17 +08:00
position1156, thunkPosition1156 := position, thunkPosition
if peekChar('"') {
2011-07-05 00:48:17 +08:00
goto l1156
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l1156
}
2011-07-05 00:48:17 +08:00
goto l1155
l1156:
position, thunkPosition = position1156, thunkPosition1156
}
if !matchChar('"') {
2011-07-05 00:48:17 +08:00
goto l1154
}
2011-07-05 00:48:17 +08:00
goto l1153
l1154:
position, thunkPosition = position1153, thunkPosition1153
if !matchChar('\'') {
2011-07-05 00:48:17 +08:00
goto l1152
}
2011-07-05 00:48:17 +08:00
l1157:
{
2011-07-05 00:48:17 +08:00
position1158, thunkPosition1158 := position, thunkPosition
if peekChar('\'') {
2011-07-05 00:48:17 +08:00
goto l1158
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l1158
}
2011-07-05 00:48:17 +08:00
goto l1157
l1158:
position, thunkPosition = position1158, thunkPosition1158
}
if !matchChar('\'') {
2011-07-05 00:48:17 +08:00
goto l1152
}
}
2011-07-05 00:48:17 +08:00
l1153:
return true
2011-07-05 00:48:17 +08:00
l1152:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 197 HtmlAttribute <- ((AlphanumericAscii / '-')+ Spnl ('=' Spnl (Quoted / (!'>' Nonspacechar)+))? Spnl) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1162, thunkPosition1162 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleAlphanumericAscii]() {
2011-07-05 00:48:17 +08:00
goto l1163
}
2011-07-05 00:48:17 +08:00
goto l1162
l1163:
position, thunkPosition = position1162, thunkPosition1162
if !matchChar('-') {
2011-07-05 00:48:17 +08:00
goto l1159
}
}
2011-07-05 00:48:17 +08:00
l1162:
l1160:
{
2011-07-05 00:48:17 +08:00
position1161, thunkPosition1161 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1164, thunkPosition1164 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleAlphanumericAscii]() {
2011-07-05 00:48:17 +08:00
goto l1165
}
2011-07-05 00:48:17 +08:00
goto l1164
l1165:
position, thunkPosition = position1164, thunkPosition1164
if !matchChar('-') {
2011-07-05 00:48:17 +08:00
goto l1161
}
}
2011-07-05 00:48:17 +08:00
l1164:
goto l1160
l1161:
position, thunkPosition = position1161, thunkPosition1161
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l1159
}
{
2011-07-05 00:48:17 +08:00
position1166, thunkPosition1166 := position, thunkPosition
if !matchChar('=') {
2011-07-05 00:48:17 +08:00
goto l1166
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l1166
}
{
2011-07-05 00:48:17 +08:00
position1168, thunkPosition1168 := position, thunkPosition
if !p.rules[ruleQuoted]() {
2011-07-05 00:48:17 +08:00
goto l1169
}
2011-07-05 00:48:17 +08:00
goto l1168
l1169:
position, thunkPosition = position1168, thunkPosition1168
if peekChar('>') {
2011-07-05 00:48:17 +08:00
goto l1166
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1166
}
2011-07-05 00:48:17 +08:00
l1170:
{
2011-07-05 00:48:17 +08:00
position1171, thunkPosition1171 := position, thunkPosition
if peekChar('>') {
2011-07-05 00:48:17 +08:00
goto l1171
}
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1171
}
2011-07-05 00:48:17 +08:00
goto l1170
l1171:
position, thunkPosition = position1171, thunkPosition1171
}
}
2011-07-05 00:48:17 +08:00
l1168:
goto l1167
l1166:
position, thunkPosition = position1166, thunkPosition1166
}
2011-07-05 00:48:17 +08:00
l1167:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l1159
}
return true
2011-07-05 00:48:17 +08:00
l1159:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 198 HtmlComment <- ('<!--' (!'-->' .)* '-->') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchString("<!--") {
2011-07-05 00:48:17 +08:00
goto l1172
}
2011-07-05 00:48:17 +08:00
l1173:
{
2011-07-05 00:48:17 +08:00
position1174, thunkPosition1174 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1175, thunkPosition1175 := position, thunkPosition
if !matchString("-->") {
2011-07-05 00:48:17 +08:00
goto l1175
}
2011-07-05 00:48:17 +08:00
goto l1174
l1175:
position, thunkPosition = position1175, thunkPosition1175
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l1174
}
2011-07-05 00:48:17 +08:00
goto l1173
l1174:
position, thunkPosition = position1174, thunkPosition1174
}
if !matchString("-->") {
2011-07-05 00:48:17 +08:00
goto l1172
}
return true
2011-07-05 00:48:17 +08:00
l1172:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 199 HtmlTag <- ('<' Spnl '/'? AlphanumericAscii+ Spnl HtmlAttribute* '/'? Spnl '>') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('<') {
2011-07-05 00:48:17 +08:00
goto l1176
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l1176
}
{
2011-07-05 00:48:17 +08:00
position1177, thunkPosition1177 := position, thunkPosition
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l1177
}
2011-07-05 00:48:17 +08:00
goto l1178
l1177:
position, thunkPosition = position1177, thunkPosition1177
}
2011-07-05 00:48:17 +08:00
l1178:
2011-02-21 17:08:33 +08:00
if !p.rules[ruleAlphanumericAscii]() {
2011-07-05 00:48:17 +08:00
goto l1176
}
2011-07-05 00:48:17 +08:00
l1179:
{
2011-07-05 00:48:17 +08:00
position1180, thunkPosition1180 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !p.rules[ruleAlphanumericAscii]() {
2011-07-05 00:48:17 +08:00
goto l1180
}
2011-07-05 00:48:17 +08:00
goto l1179
l1180:
position, thunkPosition = position1180, thunkPosition1180
}
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l1176
}
2011-07-05 00:48:17 +08:00
l1181:
{
2011-07-05 00:48:17 +08:00
position1182, thunkPosition1182 := position, thunkPosition
if !p.rules[ruleHtmlAttribute]() {
2011-07-05 00:48:17 +08:00
goto l1182
}
2011-07-05 00:48:17 +08:00
goto l1181
l1182:
position, thunkPosition = position1182, thunkPosition1182
}
{
2011-07-05 00:48:17 +08:00
position1183, thunkPosition1183 := position, thunkPosition
if !matchChar('/') {
2011-07-05 00:48:17 +08:00
goto l1183
}
2011-07-05 00:48:17 +08:00
goto l1184
l1183:
position, thunkPosition = position1183, thunkPosition1183
}
2011-07-05 00:48:17 +08:00
l1184:
if !p.rules[ruleSpnl]() {
2011-07-05 00:48:17 +08:00
goto l1176
}
if !matchChar('>') {
2011-07-05 00:48:17 +08:00
goto l1176
}
return true
2011-07-05 00:48:17 +08:00
l1176:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 200 Eof <- !. */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if peekDot() {
2011-07-05 00:48:17 +08:00
goto l1185
}
return true
2011-07-05 00:48:17 +08:00
l1185:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 201 Spacechar <- (' ' / '\t') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1187, thunkPosition1187 := position, thunkPosition
if !matchChar(' ') {
2011-07-05 00:48:17 +08:00
goto l1188
}
2011-07-05 00:48:17 +08:00
goto l1187
l1188:
position, thunkPosition = position1187, thunkPosition1187
if !matchChar('\t') {
2011-07-05 00:48:17 +08:00
goto l1186
}
}
2011-07-05 00:48:17 +08:00
l1187:
return true
2011-07-05 00:48:17 +08:00
l1186:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 202 Nonspacechar <- (!Spacechar !Newline .) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1190, thunkPosition1190 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1190
}
2011-07-05 00:48:17 +08:00
goto l1189
l1190:
position, thunkPosition = position1190, thunkPosition1190
}
{
2011-07-05 00:48:17 +08:00
position1191, thunkPosition1191 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1191
}
2011-07-05 00:48:17 +08:00
goto l1189
l1191:
position, thunkPosition = position1191, thunkPosition1191
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l1189
}
return true
2011-07-05 00:48:17 +08:00
l1189:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 203 Newline <- ('\n' / ('\r' '\n'?)) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1193, thunkPosition1193 := position, thunkPosition
if !matchChar('\n') {
2011-07-05 00:48:17 +08:00
goto l1194
}
2011-07-05 00:48:17 +08:00
goto l1193
l1194:
position, thunkPosition = position1193, thunkPosition1193
if !matchChar('\r') {
2011-07-05 00:48:17 +08:00
goto l1192
}
{
2011-07-05 00:48:17 +08:00
position1195, thunkPosition1195 := position, thunkPosition
if !matchChar('\n') {
2011-07-05 00:48:17 +08:00
goto l1195
}
2011-07-05 00:48:17 +08:00
goto l1196
l1195:
position, thunkPosition = position1195, thunkPosition1195
}
2011-07-05 00:48:17 +08:00
l1196:
}
2011-07-05 00:48:17 +08:00
l1193:
return true
2011-07-05 00:48:17 +08:00
l1192:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 204 Sp <- Spacechar* */
func() bool {
2011-07-05 00:48:17 +08:00
l1198:
{
2011-07-05 00:48:17 +08:00
position1199, thunkPosition1199 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1199
}
2011-07-05 00:48:17 +08:00
goto l1198
l1199:
position, thunkPosition = position1199, thunkPosition1199
}
return true
},
2011-02-21 17:08:33 +08:00
/* 205 Spnl <- (Sp (Newline Sp)?) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1200
}
{
2011-07-05 00:48:17 +08:00
position1201, thunkPosition1201 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1201
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1201
}
2011-07-05 00:48:17 +08:00
goto l1202
l1201:
position, thunkPosition = position1201, thunkPosition1201
}
2011-07-05 00:48:17 +08:00
l1202:
return true
2011-07-05 00:48:17 +08:00
l1200:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-07-05 00:48:17 +08:00
/* 206 SpecialChar <- ((&[\\] '\\') | (&[#] '#') | (&[!] '!') | (&[<] '<') | (&[\]] ']') | (&[\[] '[') | (&[&] '&') | (&[`] '`') | (&[_] '_') | (&[*] '*') | (&[\"\'\-.^] ExtendedSpecialChar)) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
if position == len(p.Buffer) {
goto l1203
}
2011-07-05 00:48:17 +08:00
switch p.Buffer[position] {
case '\\':
if !matchChar('\\') {
goto l1203
}
case '#':
if !matchChar('#') {
goto l1203
}
case '!':
if !matchChar('!') {
goto l1203
}
case '<':
if !matchChar('<') {
goto l1203
}
case ']':
if !matchChar(']') {
goto l1203
}
case '[':
if !matchChar('[') {
goto l1203
}
case '&':
if !matchChar('&') {
goto l1203
}
case '`':
if !matchChar('`') {
goto l1203
}
case '_':
if !matchChar('_') {
goto l1203
}
case '*':
if !matchChar('*') {
goto l1203
}
default:
if !p.rules[ruleExtendedSpecialChar]() {
goto l1203
}
}
}
return true
2011-07-05 00:48:17 +08:00
l1203:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-07-05 00:48:17 +08:00
/* 207 NormalChar <- (!((&[\n\r] Newline) | (&[\t ] Spacechar) | (&[!-#&\'*\-.<\[-`] SpecialChar)) .) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1206, thunkPosition1206 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
if position == len(p.Buffer) {
goto l1206
}
2011-07-05 00:48:17 +08:00
switch p.Buffer[position] {
case '\n', '\r':
if !p.rules[ruleNewline]() {
goto l1206
}
case '\t', ' ':
if !p.rules[ruleSpacechar]() {
goto l1206
}
default:
if !p.rules[ruleSpecialChar]() {
goto l1206
}
}
}
2011-07-05 00:48:17 +08:00
goto l1205
l1206:
position, thunkPosition = position1206, thunkPosition1206
2011-02-21 17:08:33 +08:00
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l1205
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l1205:
2011-02-21 17:08:33 +08:00
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) {
2011-07-05 00:48:17 +08:00
goto l1208
2011-02-21 17:08:33 +08:00
}
return true
2011-07-05 00:48:17 +08:00
l1208:
2011-02-21 17:08:33 +08:00
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
{
2011-07-05 00:48:17 +08:00
position1210, thunkPosition1210 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchClass(1) {
2011-07-05 00:48:17 +08:00
goto l1211
}
goto l1210
l1211:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\200") {
goto l1212
}
goto l1210
l1212:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\201") {
goto l1213
}
goto l1210
l1213:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\202") {
goto l1214
}
goto l1210
l1214:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\203") {
goto l1215
}
goto l1210
l1215:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\204") {
goto l1216
}
goto l1210
l1216:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\205") {
goto l1217
}
goto l1210
l1217:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\206") {
goto l1218
}
goto l1210
l1218:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\207") {
goto l1219
}
goto l1210
l1219:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\210") {
goto l1220
}
goto l1210
l1220:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\211") {
goto l1221
}
goto l1210
l1221:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\212") {
goto l1222
}
goto l1210
l1222:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\213") {
goto l1223
}
goto l1210
l1223:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\214") {
goto l1224
}
goto l1210
l1224:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\215") {
goto l1225
}
goto l1210
l1225:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\216") {
goto l1226
}
goto l1210
l1226:
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\217") {
2011-02-21 17:08:33 +08:00
goto l1227
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1227:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\220") {
2011-02-21 17:08:33 +08:00
goto l1228
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1228:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\221") {
2011-02-21 17:08:33 +08:00
goto l1229
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1229:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\222") {
2011-02-21 17:08:33 +08:00
goto l1230
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1230:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\223") {
2011-02-21 17:08:33 +08:00
goto l1231
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1231:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\224") {
2011-02-21 17:08:33 +08:00
goto l1232
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1232:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\225") {
2011-02-21 17:08:33 +08:00
goto l1233
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1233:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\226") {
2011-02-21 17:08:33 +08:00
goto l1234
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1234:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\227") {
2011-02-21 17:08:33 +08:00
goto l1235
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1235:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\230") {
2011-02-21 17:08:33 +08:00
goto l1236
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1236:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\231") {
2011-02-21 17:08:33 +08:00
goto l1237
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1237:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\232") {
2011-02-21 17:08:33 +08:00
goto l1238
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1238:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\233") {
2011-02-21 17:08:33 +08:00
goto l1239
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1239:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\234") {
2011-02-21 17:08:33 +08:00
goto l1240
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1240:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\235") {
2011-02-21 17:08:33 +08:00
goto l1241
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1241:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\236") {
2011-02-21 17:08:33 +08:00
goto l1242
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1242:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\237") {
2011-02-21 17:08:33 +08:00
goto l1243
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1243:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\240") {
2011-02-21 17:08:33 +08:00
goto l1244
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1244:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\241") {
2011-02-21 17:08:33 +08:00
goto l1245
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1245:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\242") {
2011-02-21 17:08:33 +08:00
goto l1246
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1246:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\243") {
2011-02-21 17:08:33 +08:00
goto l1247
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1247:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\244") {
2011-02-21 17:08:33 +08:00
goto l1248
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1248:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\245") {
2011-02-21 17:08:33 +08:00
goto l1249
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1249:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\246") {
2011-02-21 17:08:33 +08:00
goto l1250
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1250:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\247") {
2011-02-21 17:08:33 +08:00
goto l1251
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1251:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\250") {
2011-02-21 17:08:33 +08:00
goto l1252
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1252:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\251") {
2011-02-21 17:08:33 +08:00
goto l1253
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1253:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\252") {
2011-02-21 17:08:33 +08:00
goto l1254
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1254:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\253") {
2011-02-21 17:08:33 +08:00
goto l1255
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1255:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\254") {
2011-02-21 17:08:33 +08:00
goto l1256
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1256:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\255") {
2011-02-21 17:08:33 +08:00
goto l1257
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1257:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\256") {
2011-02-21 17:08:33 +08:00
goto l1258
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1258:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\257") {
2011-02-21 17:08:33 +08:00
goto l1259
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1259:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\260") {
2011-02-21 17:08:33 +08:00
goto l1260
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1260:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\261") {
2011-02-21 17:08:33 +08:00
goto l1261
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1261:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\262") {
2011-02-21 17:08:33 +08:00
goto l1262
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1262:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\263") {
2011-02-21 17:08:33 +08:00
goto l1263
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1263:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\264") {
2011-02-21 17:08:33 +08:00
goto l1264
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1264:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\265") {
2011-02-21 17:08:33 +08:00
goto l1265
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1265:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\266") {
2011-02-21 17:08:33 +08:00
goto l1266
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1266:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\267") {
2011-02-21 17:08:33 +08:00
goto l1267
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1267:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\270") {
2011-02-21 17:08:33 +08:00
goto l1268
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1268:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\271") {
2011-02-21 17:08:33 +08:00
goto l1269
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1269:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\272") {
2011-02-21 17:08:33 +08:00
goto l1270
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1270:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\273") {
2011-02-21 17:08:33 +08:00
goto l1271
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1271:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\274") {
2011-02-21 17:08:33 +08:00
goto l1272
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1272:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\275") {
2011-02-21 17:08:33 +08:00
goto l1273
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1273:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\276") {
2011-02-21 17:08:33 +08:00
goto l1274
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1274:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\277") {
2011-02-21 17:08:33 +08:00
goto l1275
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1275:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\300") {
2011-02-21 17:08:33 +08:00
goto l1276
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1276:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\301") {
2011-02-21 17:08:33 +08:00
goto l1277
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1277:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\302") {
2011-02-21 17:08:33 +08:00
goto l1278
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1278:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\303") {
2011-02-21 17:08:33 +08:00
goto l1279
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1279:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\304") {
2011-02-21 17:08:33 +08:00
goto l1280
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1280:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\305") {
2011-02-21 17:08:33 +08:00
goto l1281
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1281:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\306") {
2011-02-21 17:08:33 +08:00
goto l1282
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1282:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\307") {
2011-02-21 17:08:33 +08:00
goto l1283
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1283:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\310") {
2011-02-21 17:08:33 +08:00
goto l1284
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1284:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\311") {
2011-02-21 17:08:33 +08:00
goto l1285
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1285:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\312") {
2011-02-21 17:08:33 +08:00
goto l1286
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1286:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\313") {
2011-02-21 17:08:33 +08:00
goto l1287
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1287:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\314") {
2011-02-21 17:08:33 +08:00
goto l1288
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1288:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\315") {
2011-02-21 17:08:33 +08:00
goto l1289
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1289:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\316") {
2011-02-21 17:08:33 +08:00
goto l1290
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1290:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\317") {
2011-02-21 17:08:33 +08:00
goto l1291
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1291:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\320") {
2011-02-21 17:08:33 +08:00
goto l1292
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1292:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\321") {
2011-02-21 17:08:33 +08:00
goto l1293
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1293:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\322") {
2011-02-21 17:08:33 +08:00
goto l1294
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1294:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\323") {
2011-02-21 17:08:33 +08:00
goto l1295
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1295:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\324") {
2011-02-21 17:08:33 +08:00
goto l1296
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1296:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\325") {
2011-02-21 17:08:33 +08:00
goto l1297
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1297:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\326") {
2011-02-21 17:08:33 +08:00
goto l1298
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1298:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\327") {
2011-02-21 17:08:33 +08:00
goto l1299
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1299:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\330") {
2011-02-21 17:08:33 +08:00
goto l1300
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1300:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\331") {
2011-02-21 17:08:33 +08:00
goto l1301
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1301:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\332") {
2011-02-21 17:08:33 +08:00
goto l1302
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1302:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\333") {
2011-02-21 17:08:33 +08:00
goto l1303
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1303:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\334") {
2011-02-21 17:08:33 +08:00
goto l1304
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1304:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\335") {
2011-02-21 17:08:33 +08:00
goto l1305
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1305:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\336") {
2011-02-21 17:08:33 +08:00
goto l1306
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1306:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\337") {
2011-02-21 17:08:33 +08:00
goto l1307
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1307:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\340") {
2011-02-21 17:08:33 +08:00
goto l1308
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1308:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\341") {
2011-02-21 17:08:33 +08:00
goto l1309
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1309:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\342") {
2011-02-21 17:08:33 +08:00
goto l1310
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1310:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\343") {
2011-02-21 17:08:33 +08:00
goto l1311
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1311:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\344") {
2011-02-21 17:08:33 +08:00
goto l1312
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1312:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\345") {
2011-02-21 17:08:33 +08:00
goto l1313
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1313:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\346") {
2011-02-21 17:08:33 +08:00
goto l1314
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1314:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\347") {
2011-02-21 17:08:33 +08:00
goto l1315
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1315:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\350") {
2011-02-21 17:08:33 +08:00
goto l1316
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1316:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\351") {
2011-02-21 17:08:33 +08:00
goto l1317
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1317:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\352") {
2011-02-21 17:08:33 +08:00
goto l1318
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1318:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\353") {
2011-02-21 17:08:33 +08:00
goto l1319
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1319:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\354") {
2011-02-21 17:08:33 +08:00
goto l1320
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1320:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\355") {
2011-02-21 17:08:33 +08:00
goto l1321
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1321:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\356") {
2011-02-21 17:08:33 +08:00
goto l1322
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1322:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\357") {
2011-02-21 17:08:33 +08:00
goto l1323
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1323:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\360") {
2011-02-21 17:08:33 +08:00
goto l1324
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1324:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\361") {
2011-02-21 17:08:33 +08:00
goto l1325
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1325:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\362") {
2011-02-21 17:08:33 +08:00
goto l1326
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1326:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\363") {
2011-02-21 17:08:33 +08:00
goto l1327
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1327:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\364") {
2011-02-21 17:08:33 +08:00
goto l1328
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1328:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\365") {
2011-02-21 17:08:33 +08:00
goto l1329
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1329:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\366") {
2011-02-21 17:08:33 +08:00
goto l1330
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1330:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\367") {
2011-02-21 17:08:33 +08:00
goto l1331
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1331:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\370") {
2011-02-21 17:08:33 +08:00
goto l1332
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1332:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\371") {
2011-02-21 17:08:33 +08:00
goto l1333
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1333:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\372") {
2011-02-21 17:08:33 +08:00
goto l1334
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1334:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\373") {
2011-02-21 17:08:33 +08:00
goto l1335
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1335:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\374") {
2011-02-21 17:08:33 +08:00
goto l1336
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1336:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\375") {
2011-02-21 17:08:33 +08:00
goto l1337
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1337:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
if !matchString("\376") {
2011-02-21 17:08:33 +08:00
goto l1338
}
2011-07-05 00:48:17 +08:00
goto l1210
2011-02-21 17:08:33 +08:00
l1338:
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1210, thunkPosition1210
2011-02-21 17:08:33 +08:00
if !matchString("\377") {
2011-07-05 00:48:17 +08:00
goto l1209
2011-02-21 17:08:33 +08:00
}
}
2011-07-05 00:48:17 +08:00
l1210:
return true
2011-07-05 00:48:17 +08:00
l1209:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 210 AlphanumericAscii <- [A-Za-z0-9] */
func() bool {
position0, thunkPosition0 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchClass(8) {
2011-07-05 00:48:17 +08:00
goto l1339
}
return true
2011-07-05 00:48:17 +08:00
l1339:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 211 Digit <- [0-9] */
func() bool {
position0, thunkPosition0 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchClass(7) {
2011-07-05 00:48:17 +08:00
goto l1340
}
return true
2011-07-05 00:48:17 +08:00
l1340:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 212 HexEntity <- (< '&' '#' [Xx] [0-9a-fA-F]+ ';' >) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
begin = position
if !matchChar('&') {
2011-07-05 00:48:17 +08:00
goto l1341
}
if !matchChar('#') {
2011-07-05 00:48:17 +08:00
goto l1341
}
2011-02-21 17:08:33 +08:00
if !matchClass(5) {
2011-07-05 00:48:17 +08:00
goto l1341
}
if !matchClass(0) {
2011-07-05 00:48:17 +08:00
goto l1341
}
2011-07-05 00:48:17 +08:00
l1342:
{
2011-07-05 00:48:17 +08:00
position1343, thunkPosition1343 := position, thunkPosition
if !matchClass(0) {
2011-07-05 00:48:17 +08:00
goto l1343
}
2011-07-05 00:48:17 +08:00
goto l1342
l1343:
position, thunkPosition = position1343, thunkPosition1343
}
if !matchChar(';') {
2011-07-05 00:48:17 +08:00
goto l1341
}
end = position
return true
2011-07-05 00:48:17 +08:00
l1341:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 213 DecEntity <- (< '&' '#' [0-9]+ > ';' >) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
begin = position
if !matchChar('&') {
2011-07-05 00:48:17 +08:00
goto l1344
}
if !matchChar('#') {
2011-07-05 00:48:17 +08:00
goto l1344
}
2011-02-21 17:08:33 +08:00
if !matchClass(7) {
2011-07-05 00:48:17 +08:00
goto l1344
}
2011-07-05 00:48:17 +08:00
l1345:
{
2011-07-05 00:48:17 +08:00
position1346, thunkPosition1346 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchClass(7) {
2011-07-05 00:48:17 +08:00
goto l1346
}
2011-07-05 00:48:17 +08:00
goto l1345
l1346:
position, thunkPosition = position1346, thunkPosition1346
}
end = position
if !matchChar(';') {
2011-07-05 00:48:17 +08:00
goto l1344
}
end = position
return true
2011-07-05 00:48:17 +08:00
l1344:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 214 CharEntity <- (< '&' [A-Za-z0-9]+ ';' >) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
begin = position
if !matchChar('&') {
2011-07-05 00:48:17 +08:00
goto l1347
}
2011-02-21 17:08:33 +08:00
if !matchClass(8) {
2011-07-05 00:48:17 +08:00
goto l1347
}
2011-07-05 00:48:17 +08:00
l1348:
{
2011-07-05 00:48:17 +08:00
position1349, thunkPosition1349 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchClass(8) {
2011-07-05 00:48:17 +08:00
goto l1349
}
2011-07-05 00:48:17 +08:00
goto l1348
l1349:
position, thunkPosition = position1349, thunkPosition1349
}
if !matchChar(';') {
2011-07-05 00:48:17 +08:00
goto l1347
}
end = position
return true
2011-07-05 00:48:17 +08:00
l1347:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 215 NonindentSpace <- (' ' / ' ' / ' ' / '') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1351, thunkPosition1351 := position, thunkPosition
if !matchString(" ") {
2011-07-05 00:48:17 +08:00
goto l1352
}
2011-07-05 00:48:17 +08:00
goto l1351
l1352:
position, thunkPosition = position1351, thunkPosition1351
if !matchString(" ") {
2011-07-05 00:48:17 +08:00
goto l1353
}
2011-07-05 00:48:17 +08:00
goto l1351
l1353:
position, thunkPosition = position1351, thunkPosition1351
if !matchChar(' ') {
2011-07-05 00:48:17 +08:00
goto l1354
}
2011-07-05 00:48:17 +08:00
goto l1351
l1354:
position, thunkPosition = position1351, thunkPosition1351
if !peekDot() {
goto l1350
}
}
2011-07-05 00:48:17 +08:00
l1351:
return true
2011-07-05 00:48:17 +08:00
l1350:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 216 Indent <- ('\t' / ' ') */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1356, thunkPosition1356 := position, thunkPosition
if !matchChar('\t') {
2011-07-05 00:48:17 +08:00
goto l1357
}
2011-07-05 00:48:17 +08:00
goto l1356
l1357:
position, thunkPosition = position1356, thunkPosition1356
if !matchString(" ") {
2011-07-05 00:48:17 +08:00
goto l1355
}
}
2011-07-05 00:48:17 +08:00
l1356:
return true
2011-07-05 00:48:17 +08:00
l1355:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 217 IndentedLine <- (Indent Line) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleIndent]() {
2011-07-05 00:48:17 +08:00
goto l1358
}
if !p.rules[ruleLine]() {
2011-07-05 00:48:17 +08:00
goto l1358
}
return true
2011-07-05 00:48:17 +08:00
l1358:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 218 OptionallyIndentedLine <- (Indent? Line) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1360, thunkPosition1360 := position, thunkPosition
if !p.rules[ruleIndent]() {
2011-07-05 00:48:17 +08:00
goto l1360
}
2011-07-05 00:48:17 +08:00
goto l1361
l1360:
position, thunkPosition = position1360, thunkPosition1360
}
2011-07-05 00:48:17 +08:00
l1361:
if !p.rules[ruleLine]() {
2011-07-05 00:48:17 +08:00
goto l1359
}
return true
2011-07-05 00:48:17 +08:00
l1359:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 219 StartList <- (&. { yy = nil }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !peekDot() {
2011-07-05 00:48:17 +08:00
goto l1362
}
2011-02-21 17:08:33 +08:00
do(87)
return true
2011-07-05 00:48:17 +08:00
l1362:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 220 Line <- (RawLine { yy = mk_str(yytext) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleRawLine]() {
2011-07-05 00:48:17 +08:00
goto l1363
}
2011-02-21 17:08:33 +08:00
do(88)
return true
2011-07-05 00:48:17 +08:00
l1363:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 221 RawLine <- ((< (!'\r' !'\n' .)* Newline >) / (< .+ > Eof)) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1365, thunkPosition1365 := position, thunkPosition
begin = position
2011-07-05 00:48:17 +08:00
l1367:
{
2011-07-05 00:48:17 +08:00
position1368, thunkPosition1368 := position, thunkPosition
if peekChar('\r') {
2011-07-05 00:48:17 +08:00
goto l1368
}
if peekChar('\n') {
2011-07-05 00:48:17 +08:00
goto l1368
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l1368
}
2011-07-05 00:48:17 +08:00
goto l1367
l1368:
position, thunkPosition = position1368, thunkPosition1368
}
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1366
}
end = position
2011-07-05 00:48:17 +08:00
goto l1365
l1366:
position, thunkPosition = position1365, thunkPosition1365
begin = position
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l1364
}
2011-07-05 00:48:17 +08:00
l1369:
{
2011-07-05 00:48:17 +08:00
position1370, thunkPosition1370 := position, thunkPosition
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l1370
}
2011-07-05 00:48:17 +08:00
goto l1369
l1370:
position, thunkPosition = position1370, thunkPosition1370
}
end = position
if !p.rules[ruleEof]() {
2011-07-05 00:48:17 +08:00
goto l1364
}
}
2011-07-05 00:48:17 +08:00
l1365:
return true
2011-07-05 00:48:17 +08:00
l1364:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 222 SkipBlock <- (((!BlankLine RawLine)+ BlankLine*) / BlankLine+) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1372, thunkPosition1372 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1376, thunkPosition1376 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1376
}
2011-07-05 00:48:17 +08:00
goto l1373
l1376:
position, thunkPosition = position1376, thunkPosition1376
}
if !p.rules[ruleRawLine]() {
2011-07-05 00:48:17 +08:00
goto l1373
}
2011-07-05 00:48:17 +08:00
l1374:
{
2011-07-05 00:48:17 +08:00
position1375, thunkPosition1375 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1377, thunkPosition1377 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1377
}
2011-07-05 00:48:17 +08:00
goto l1375
l1377:
position, thunkPosition = position1377, thunkPosition1377
}
if !p.rules[ruleRawLine]() {
2011-07-05 00:48:17 +08:00
goto l1375
}
2011-07-05 00:48:17 +08:00
goto l1374
l1375:
position, thunkPosition = position1375, thunkPosition1375
}
2011-07-05 00:48:17 +08:00
l1378:
{
2011-07-05 00:48:17 +08:00
position1379, thunkPosition1379 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1379
}
2011-07-05 00:48:17 +08:00
goto l1378
l1379:
position, thunkPosition = position1379, thunkPosition1379
}
2011-07-05 00:48:17 +08:00
goto l1372
l1373:
position, thunkPosition = position1372, thunkPosition1372
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1371
}
2011-07-05 00:48:17 +08:00
l1380:
{
2011-07-05 00:48:17 +08:00
position1381, thunkPosition1381 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1381
}
2011-07-05 00:48:17 +08:00
goto l1380
l1381:
position, thunkPosition = position1381, thunkPosition1381
}
}
2011-07-05 00:48:17 +08:00
l1372:
return true
2011-07-05 00:48:17 +08:00
l1371:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-07-05 00:48:17 +08:00
/* 223 ExtendedSpecialChar <- ((&{ p.extension.Smart } ((&[\"] '"') | (&[\'] '\'') | (&[\-] '-') | (&[.] '.'))) / (&{ p.extension.Notes } '^')) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1383, thunkPosition1383 := position, thunkPosition
if !( p.extension.Smart ) {
2011-07-05 00:48:17 +08:00
goto l1384
}
{
2011-07-05 00:48:17 +08:00
if position == len(p.Buffer) {
goto l1384
}
2011-07-05 00:48:17 +08:00
switch p.Buffer[position] {
case '"':
if !matchChar('"') {
goto l1384
}
case '\'':
if !matchChar('\'') {
goto l1384
}
case '-':
if !matchChar('-') {
goto l1384
}
default:
if !matchChar('.') {
goto l1384
}
}
}
2011-07-05 00:48:17 +08:00
goto l1383
l1384:
position, thunkPosition = position1383, thunkPosition1383
if !( p.extension.Notes ) {
2011-07-05 00:48:17 +08:00
goto l1382
}
if !matchChar('^') {
2011-07-05 00:48:17 +08:00
goto l1382
}
}
2011-07-05 00:48:17 +08:00
l1383:
return true
2011-07-05 00:48:17 +08:00
l1382:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-07-05 00:48:17 +08:00
/* 224 Smart <- (&{ p.extension.Smart } (SingleQuoted / ((&[\'] Apostrophe) | (&[\"] DoubleQuoted) | (&[\-] Dash) | (&[.] Ellipsis)))) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !( p.extension.Smart ) {
2011-07-05 00:48:17 +08:00
goto l1386
}
{
2011-07-05 00:48:17 +08:00
position1387, thunkPosition1387 := position, thunkPosition
if !p.rules[ruleSingleQuoted]() {
2011-07-05 00:48:17 +08:00
goto l1388
}
2011-07-05 00:48:17 +08:00
goto l1387
l1388:
position, thunkPosition = position1387, thunkPosition1387
{
if position == len(p.Buffer) {
goto l1386
}
switch p.Buffer[position] {
case '\'':
if !p.rules[ruleApostrophe]() {
goto l1386
}
case '"':
if !p.rules[ruleDoubleQuoted]() {
goto l1386
}
case '-':
if !p.rules[ruleDash]() {
goto l1386
}
default:
if !p.rules[ruleEllipsis]() {
goto l1386
}
}
}
}
2011-07-05 00:48:17 +08:00
l1387:
return true
2011-07-05 00:48:17 +08:00
l1386:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 225 Apostrophe <- ('\'' { yy = mk_element(APOSTROPHE) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('\'') {
2011-07-05 00:48:17 +08:00
goto l1390
}
2011-02-21 17:08:33 +08:00
do(89)
return true
2011-07-05 00:48:17 +08:00
l1390:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 226 Ellipsis <- (('...' / '. . .') { yy = mk_element(ELLIPSIS) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1392, thunkPosition1392 := position, thunkPosition
if !matchString("...") {
2011-07-05 00:48:17 +08:00
goto l1393
}
2011-07-05 00:48:17 +08:00
goto l1392
l1393:
position, thunkPosition = position1392, thunkPosition1392
if !matchString(". . .") {
2011-07-05 00:48:17 +08:00
goto l1391
}
}
2011-07-05 00:48:17 +08:00
l1392:
2011-02-21 17:08:33 +08:00
do(90)
return true
2011-07-05 00:48:17 +08:00
l1391:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 227 Dash <- (EmDash / EnDash) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1395, thunkPosition1395 := position, thunkPosition
if !p.rules[ruleEmDash]() {
2011-07-05 00:48:17 +08:00
goto l1396
}
2011-07-05 00:48:17 +08:00
goto l1395
l1396:
position, thunkPosition = position1395, thunkPosition1395
if !p.rules[ruleEnDash]() {
2011-07-05 00:48:17 +08:00
goto l1394
}
}
2011-07-05 00:48:17 +08:00
l1395:
return true
2011-07-05 00:48:17 +08:00
l1394:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 228 EnDash <- ('-' &Digit { yy = mk_element(ENDASH) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('-') {
2011-07-05 00:48:17 +08:00
goto l1397
}
{
2011-07-05 00:48:17 +08:00
position1398, thunkPosition1398 := position, thunkPosition
if !p.rules[ruleDigit]() {
2011-07-05 00:48:17 +08:00
goto l1397
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1398, thunkPosition1398
}
2011-02-21 17:08:33 +08:00
do(91)
return true
2011-07-05 00:48:17 +08:00
l1397:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 229 EmDash <- (('---' / '--') { yy = mk_element(EMDASH) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1400, thunkPosition1400 := position, thunkPosition
if !matchString("---") {
2011-07-05 00:48:17 +08:00
goto l1401
}
2011-07-05 00:48:17 +08:00
goto l1400
l1401:
position, thunkPosition = position1400, thunkPosition1400
if !matchString("--") {
2011-07-05 00:48:17 +08:00
goto l1399
}
}
2011-07-05 00:48:17 +08:00
l1400:
2011-02-21 17:08:33 +08:00
do(92)
return true
2011-07-05 00:48:17 +08:00
l1399:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-07-05 00:48:17 +08:00
/* 230 SingleQuoteStart <- ('\'' ![)!\],.;:-? \t\n] !(((&[r] 're') | (&[l] 'll') | (&[v] 've') | (&[m] 'm') | (&[t] 't') | (&[s] 's')) !Alphanumeric)) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('\'') {
2011-07-05 00:48:17 +08:00
goto l1402
}
{
2011-07-05 00:48:17 +08:00
position1403, thunkPosition1403 := position, thunkPosition
2011-02-21 17:08:33 +08:00
if !matchClass(6) {
2011-07-05 00:48:17 +08:00
goto l1403
}
2011-07-05 00:48:17 +08:00
goto l1402
l1403:
position, thunkPosition = position1403, thunkPosition1403
}
{
2011-07-05 00:48:17 +08:00
position1404, thunkPosition1404 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
if position == len(p.Buffer) {
goto l1404
}
2011-07-05 00:48:17 +08:00
switch p.Buffer[position] {
case 'r':
if !matchString("re") {
goto l1404
}
case 'l':
if !matchString("ll") {
goto l1404
}
case 'v':
if !matchString("ve") {
goto l1404
}
case 'm':
if !matchChar('m') {
goto l1404
}
case 't':
if !matchChar('t') {
goto l1404
}
default:
if !matchChar('s') {
goto l1404
}
}
}
{
2011-07-05 00:48:17 +08:00
position1406, thunkPosition1406 := position, thunkPosition
if !p.rules[ruleAlphanumeric]() {
2011-07-05 00:48:17 +08:00
goto l1406
}
2011-07-05 00:48:17 +08:00
goto l1404
l1406:
position, thunkPosition = position1406, thunkPosition1406
}
2011-07-05 00:48:17 +08:00
goto l1402
l1404:
position, thunkPosition = position1404, thunkPosition1404
}
return true
2011-07-05 00:48:17 +08:00
l1402:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 231 SingleQuoteEnd <- ('\'' !Alphanumeric) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('\'') {
2011-07-05 00:48:17 +08:00
goto l1407
}
{
2011-07-05 00:48:17 +08:00
position1408, thunkPosition1408 := position, thunkPosition
if !p.rules[ruleAlphanumeric]() {
2011-07-05 00:48:17 +08:00
goto l1408
}
2011-07-05 00:48:17 +08:00
goto l1407
l1408:
position, thunkPosition = position1408, thunkPosition1408
}
return true
2011-07-05 00:48:17 +08:00
l1407:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l1409
}
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l1409
}
doarg(yySet, -1)
{
2011-07-05 00:48:17 +08:00
position1412, thunkPosition1412 := position, thunkPosition
if !p.rules[ruleSingleQuoteEnd]() {
2011-07-05 00:48:17 +08:00
goto l1412
}
2011-07-05 00:48:17 +08:00
goto l1409
l1412:
position, thunkPosition = position1412, thunkPosition1412
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l1409
}
doarg(yySet, -2)
2011-02-21 17:08:33 +08:00
do(93)
2011-07-05 00:48:17 +08:00
l1410:
{
2011-07-05 00:48:17 +08:00
position1411, thunkPosition1411 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1413, thunkPosition1413 := position, thunkPosition
if !p.rules[ruleSingleQuoteEnd]() {
2011-07-05 00:48:17 +08:00
goto l1413
}
2011-07-05 00:48:17 +08:00
goto l1411
l1413:
position, thunkPosition = position1413, thunkPosition1413
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l1411
}
doarg(yySet, -2)
2011-02-21 17:08:33 +08:00
do(93)
2011-07-05 00:48:17 +08:00
goto l1410
l1411:
position, thunkPosition = position1411, thunkPosition1411
}
if !p.rules[ruleSingleQuoteEnd]() {
2011-07-05 00:48:17 +08:00
goto l1409
}
2011-02-21 17:08:33 +08:00
do(94)
doarg(yyPop, 2)
return true
2011-07-05 00:48:17 +08:00
l1409:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 233 DoubleQuoteStart <- '"' */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('"') {
2011-07-05 00:48:17 +08:00
goto l1414
}
return true
2011-07-05 00:48:17 +08:00
l1414:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 234 DoubleQuoteEnd <- '"' */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchChar('"') {
2011-07-05 00:48:17 +08:00
goto l1415
}
return true
2011-07-05 00:48:17 +08:00
l1415:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l1416
}
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l1416
}
doarg(yySet, -1)
{
2011-07-05 00:48:17 +08:00
position1419, thunkPosition1419 := position, thunkPosition
if !p.rules[ruleDoubleQuoteEnd]() {
2011-07-05 00:48:17 +08:00
goto l1419
}
2011-07-05 00:48:17 +08:00
goto l1416
l1419:
position, thunkPosition = position1419, thunkPosition1419
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l1416
}
doarg(yySet, -2)
2011-02-21 17:08:33 +08:00
do(95)
2011-07-05 00:48:17 +08:00
l1417:
{
2011-07-05 00:48:17 +08:00
position1418, thunkPosition1418 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1420, thunkPosition1420 := position, thunkPosition
if !p.rules[ruleDoubleQuoteEnd]() {
2011-07-05 00:48:17 +08:00
goto l1420
}
2011-07-05 00:48:17 +08:00
goto l1418
l1420:
position, thunkPosition = position1420, thunkPosition1420
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l1418
}
doarg(yySet, -2)
2011-02-21 17:08:33 +08:00
do(95)
2011-07-05 00:48:17 +08:00
goto l1417
l1418:
position, thunkPosition = position1418, thunkPosition1418
}
if !p.rules[ruleDoubleQuoteEnd]() {
2011-07-05 00:48:17 +08:00
goto l1416
}
2011-02-21 17:08:33 +08:00
do(96)
doarg(yyPop, 2)
return true
2011-07-05 00:48:17 +08:00
l1416:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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 ) {
2011-07-05 00:48:17 +08:00
goto l1421
}
if !p.rules[ruleRawNoteReference]() {
2011-07-05 00:48:17 +08:00
goto l1421
}
doarg(yySet, -1)
2011-02-21 17:08:33 +08:00
do(97)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l1421:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 237 RawNoteReference <- ('[^' < (!Newline !']' .)+ > ']' { yy = mk_str(yytext) }) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !matchString("[^") {
2011-07-05 00:48:17 +08:00
goto l1422
}
begin = position
{
2011-07-05 00:48:17 +08:00
position1425, thunkPosition1425 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1425
}
2011-07-05 00:48:17 +08:00
goto l1422
l1425:
position, thunkPosition = position1425, thunkPosition1425
}
if peekChar(']') {
2011-07-05 00:48:17 +08:00
goto l1422
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l1422
}
2011-07-05 00:48:17 +08:00
l1423:
{
2011-07-05 00:48:17 +08:00
position1424, thunkPosition1424 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1426, thunkPosition1426 := position, thunkPosition
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1426
}
2011-07-05 00:48:17 +08:00
goto l1424
l1426:
position, thunkPosition = position1426, thunkPosition1426
}
if peekChar(']') {
2011-07-05 00:48:17 +08:00
goto l1424
}
if !matchDot() {
2011-07-05 00:48:17 +08:00
goto l1424
}
2011-07-05 00:48:17 +08:00
goto l1423
l1424:
position, thunkPosition = position1424, thunkPosition1424
}
end = position
if !matchChar(']') {
2011-07-05 00:48:17 +08:00
goto l1422
}
2011-02-21 17:08:33 +08:00
do(98)
return true
2011-07-05 00:48:17 +08:00
l1422:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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 ) {
2011-07-05 00:48:17 +08:00
goto l1427
}
if !p.rules[ruleNonindentSpace]() {
2011-07-05 00:48:17 +08:00
goto l1427
}
if !p.rules[ruleRawNoteReference]() {
2011-07-05 00:48:17 +08:00
goto l1427
}
doarg(yySet, -1)
if !matchChar(':') {
2011-07-05 00:48:17 +08:00
goto l1427
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1427
}
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l1427
}
doarg(yySet, -2)
if !p.rules[ruleRawNoteBlock]() {
2011-07-05 00:48:17 +08:00
goto l1427
}
2011-02-21 17:08:33 +08:00
do(99)
2011-07-05 00:48:17 +08:00
l1428:
{
2011-07-05 00:48:17 +08:00
position1429, thunkPosition1429 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1430, thunkPosition1430 := position, thunkPosition
if !p.rules[ruleIndent]() {
2011-07-05 00:48:17 +08:00
goto l1429
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1430, thunkPosition1430
}
if !p.rules[ruleRawNoteBlock]() {
2011-07-05 00:48:17 +08:00
goto l1429
}
2011-02-21 17:08:33 +08:00
do(100)
2011-07-05 00:48:17 +08:00
goto l1428
l1429:
position, thunkPosition = position1429, thunkPosition1429
}
2011-02-21 17:08:33 +08:00
do(101)
doarg(yyPop, 2)
return true
2011-07-05 00:48:17 +08:00
l1427:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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 ) {
2011-07-05 00:48:17 +08:00
goto l1431
}
if !matchString("^[") {
2011-07-05 00:48:17 +08:00
goto l1431
}
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l1431
}
doarg(yySet, -1)
if peekChar(']') {
2011-07-05 00:48:17 +08:00
goto l1431
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l1431
}
2011-02-21 17:08:33 +08:00
do(102)
2011-07-05 00:48:17 +08:00
l1432:
{
2011-07-05 00:48:17 +08:00
position1433, thunkPosition1433 := position, thunkPosition
if peekChar(']') {
2011-07-05 00:48:17 +08:00
goto l1433
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l1433
}
2011-02-21 17:08:33 +08:00
do(102)
2011-07-05 00:48:17 +08:00
goto l1432
l1433:
position, thunkPosition = position1433, thunkPosition1433
}
if !matchChar(']') {
2011-07-05 00:48:17 +08:00
goto l1431
}
2011-02-21 17:08:33 +08:00
do(103)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l1431:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l1434
}
doarg(yySet, -1)
2011-07-05 00:48:17 +08:00
l1435:
{
2011-07-05 00:48:17 +08:00
position1436, thunkPosition1436 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1437, thunkPosition1437 := position, thunkPosition
if !p.rules[ruleNote]() {
2011-07-05 00:48:17 +08:00
goto l1438
}
doarg(yySet, -2)
2011-02-21 17:08:33 +08:00
do(104)
2011-07-05 00:48:17 +08:00
goto l1437
l1438:
position, thunkPosition = position1437, thunkPosition1437
if !p.rules[ruleSkipBlock]() {
2011-07-05 00:48:17 +08:00
goto l1436
}
}
2011-07-05 00:48:17 +08:00
l1437:
goto l1435
l1436:
position, thunkPosition = position1436, thunkPosition1436
}
2011-02-21 17:08:33 +08:00
do(105)
if !(commit(thunkPosition0)) {
2011-07-05 00:48:17 +08:00
goto l1434
}
doarg(yyPop, 2)
return true
2011-07-05 00:48:17 +08:00
l1434:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l1439
}
doarg(yySet, -1)
{
2011-07-05 00:48:17 +08:00
position1442, thunkPosition1442 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1442
}
2011-07-05 00:48:17 +08:00
goto l1439
l1442:
position, thunkPosition = position1442, thunkPosition1442
}
if !p.rules[ruleOptionallyIndentedLine]() {
2011-07-05 00:48:17 +08:00
goto l1439
}
2011-02-21 17:08:33 +08:00
do(106)
2011-07-05 00:48:17 +08:00
l1440:
{
2011-07-05 00:48:17 +08:00
position1441, thunkPosition1441 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1443, thunkPosition1443 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1443
}
2011-07-05 00:48:17 +08:00
goto l1441
l1443:
position, thunkPosition = position1443, thunkPosition1443
}
if !p.rules[ruleOptionallyIndentedLine]() {
2011-07-05 00:48:17 +08:00
goto l1441
}
2011-02-21 17:08:33 +08:00
do(106)
2011-07-05 00:48:17 +08:00
goto l1440
l1441:
position, thunkPosition = position1441, thunkPosition1441
}
begin = position
2011-07-05 00:48:17 +08:00
l1444:
{
2011-07-05 00:48:17 +08:00
position1445, thunkPosition1445 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1445
}
2011-07-05 00:48:17 +08:00
goto l1444
l1445:
position, thunkPosition = position1445, thunkPosition1445
}
end = position
2011-02-21 17:08:33 +08:00
do(107)
do(108)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l1439:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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 ) {
2011-07-05 00:48:17 +08:00
goto l1446
}
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l1446
}
doarg(yySet, -1)
if !p.rules[ruleDefinition]() {
2011-07-05 00:48:17 +08:00
goto l1446
}
2011-02-21 17:08:33 +08:00
do(109)
2011-07-05 00:48:17 +08:00
l1447:
{
2011-07-05 00:48:17 +08:00
position1448, thunkPosition1448 := position, thunkPosition
if !p.rules[ruleDefinition]() {
2011-07-05 00:48:17 +08:00
goto l1448
}
2011-02-21 17:08:33 +08:00
do(109)
2011-07-05 00:48:17 +08:00
goto l1447
l1448:
position, thunkPosition = position1448, thunkPosition1448
}
2011-02-21 17:08:33 +08:00
do(110)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l1446:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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)
{
2011-07-05 00:48:17 +08:00
position1450, thunkPosition1450 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1453, thunkPosition1453 := position, thunkPosition
if !p.rules[ruleDefmark]() {
2011-07-05 00:48:17 +08:00
goto l1453
}
2011-07-05 00:48:17 +08:00
goto l1449
l1453:
position, thunkPosition = position1453, thunkPosition1453
}
if !p.rules[ruleRawLine]() {
2011-07-05 00:48:17 +08:00
goto l1449
}
2011-07-05 00:48:17 +08:00
l1451:
{
2011-07-05 00:48:17 +08:00
position1452, thunkPosition1452 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1454, thunkPosition1454 := position, thunkPosition
if !p.rules[ruleDefmark]() {
2011-07-05 00:48:17 +08:00
goto l1454
}
2011-07-05 00:48:17 +08:00
goto l1452
l1454:
position, thunkPosition = position1454, thunkPosition1454
}
if !p.rules[ruleRawLine]() {
2011-07-05 00:48:17 +08:00
goto l1452
}
2011-07-05 00:48:17 +08:00
goto l1451
l1452:
position, thunkPosition = position1452, thunkPosition1452
}
{
2011-07-05 00:48:17 +08:00
position1455, thunkPosition1455 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1455
}
2011-07-05 00:48:17 +08:00
goto l1456
l1455:
position, thunkPosition = position1455, thunkPosition1455
}
2011-07-05 00:48:17 +08:00
l1456:
if !p.rules[ruleDefmark]() {
2011-07-05 00:48:17 +08:00
goto l1449
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1450, thunkPosition1450
}
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l1449
}
doarg(yySet, -1)
if !p.rules[ruleDListTitle]() {
2011-07-05 00:48:17 +08:00
goto l1449
}
2011-02-21 17:08:33 +08:00
do(111)
2011-07-05 00:48:17 +08:00
l1457:
{
2011-07-05 00:48:17 +08:00
position1458, thunkPosition1458 := position, thunkPosition
if !p.rules[ruleDListTitle]() {
2011-07-05 00:48:17 +08:00
goto l1458
}
2011-02-21 17:08:33 +08:00
do(111)
2011-07-05 00:48:17 +08:00
goto l1457
l1458:
position, thunkPosition = position1458, thunkPosition1458
}
{
2011-07-05 00:48:17 +08:00
position1459, thunkPosition1459 := position, thunkPosition
if !p.rules[ruleDefTight]() {
2011-07-05 00:48:17 +08:00
goto l1460
}
2011-07-05 00:48:17 +08:00
goto l1459
l1460:
position, thunkPosition = position1459, thunkPosition1459
if !p.rules[ruleDefLoose]() {
2011-07-05 00:48:17 +08:00
goto l1449
}
}
2011-07-05 00:48:17 +08:00
l1459:
2011-02-21 17:08:33 +08:00
do(112)
do(113)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l1449:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 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]() {
2011-07-05 00:48:17 +08:00
goto l1461
}
{
2011-07-05 00:48:17 +08:00
position1462, thunkPosition1462 := position, thunkPosition
if !p.rules[ruleDefmark]() {
2011-07-05 00:48:17 +08:00
goto l1462
}
2011-07-05 00:48:17 +08:00
goto l1461
l1462:
position, thunkPosition = position1462, thunkPosition1462
}
{
2011-07-05 00:48:17 +08:00
position1463, thunkPosition1463 := position, thunkPosition
if !p.rules[ruleNonspacechar]() {
2011-07-05 00:48:17 +08:00
goto l1461
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1463, thunkPosition1463
}
if !p.rules[ruleStartList]() {
2011-07-05 00:48:17 +08:00
goto l1461
}
doarg(yySet, -1)
{
2011-07-05 00:48:17 +08:00
position1466, thunkPosition1466 := position, thunkPosition
if !p.rules[ruleEndline]() {
2011-07-05 00:48:17 +08:00
goto l1466
}
2011-07-05 00:48:17 +08:00
goto l1461
l1466:
position, thunkPosition = position1466, thunkPosition1466
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l1461
}
2011-02-21 17:08:33 +08:00
do(114)
2011-07-05 00:48:17 +08:00
l1464:
{
2011-07-05 00:48:17 +08:00
position1465, thunkPosition1465 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1467, thunkPosition1467 := position, thunkPosition
if !p.rules[ruleEndline]() {
2011-07-05 00:48:17 +08:00
goto l1467
}
2011-07-05 00:48:17 +08:00
goto l1465
l1467:
position, thunkPosition = position1467, thunkPosition1467
}
if !p.rules[ruleInline]() {
2011-07-05 00:48:17 +08:00
goto l1465
}
2011-02-21 17:08:33 +08:00
do(114)
2011-07-05 00:48:17 +08:00
goto l1464
l1465:
position, thunkPosition = position1465, thunkPosition1465
}
if !p.rules[ruleSp]() {
2011-07-05 00:48:17 +08:00
goto l1461
}
if !p.rules[ruleNewline]() {
2011-07-05 00:48:17 +08:00
goto l1461
}
2011-02-21 17:08:33 +08:00
do(115)
doarg(yyPop, 1)
return true
2011-07-05 00:48:17 +08:00
l1461:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 245 DefTight <- (&Defmark ListTight) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
{
2011-07-05 00:48:17 +08:00
position1469, thunkPosition1469 := position, thunkPosition
if !p.rules[ruleDefmark]() {
2011-07-05 00:48:17 +08:00
goto l1468
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1469, thunkPosition1469
}
if !p.rules[ruleListTight]() {
2011-07-05 00:48:17 +08:00
goto l1468
}
return true
2011-07-05 00:48:17 +08:00
l1468:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 246 DefLoose <- (BlankLine &Defmark ListLoose) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleBlankLine]() {
2011-07-05 00:48:17 +08:00
goto l1470
}
{
2011-07-05 00:48:17 +08:00
position1471, thunkPosition1471 := position, thunkPosition
if !p.rules[ruleDefmark]() {
2011-07-05 00:48:17 +08:00
goto l1470
}
2011-07-05 00:48:17 +08:00
position, thunkPosition = position1471, thunkPosition1471
}
if !p.rules[ruleListLoose]() {
2011-07-05 00:48:17 +08:00
goto l1470
}
return true
2011-07-05 00:48:17 +08:00
l1470:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 247 Defmark <- (NonindentSpace (':' / '~') Spacechar+) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !p.rules[ruleNonindentSpace]() {
2011-07-05 00:48:17 +08:00
goto l1472
}
{
2011-07-05 00:48:17 +08:00
position1473, thunkPosition1473 := position, thunkPosition
if !matchChar(':') {
2011-07-05 00:48:17 +08:00
goto l1474
}
2011-07-05 00:48:17 +08:00
goto l1473
l1474:
position, thunkPosition = position1473, thunkPosition1473
if !matchChar('~') {
2011-07-05 00:48:17 +08:00
goto l1472
}
}
2011-07-05 00:48:17 +08:00
l1473:
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1472
}
2011-07-05 00:48:17 +08:00
l1475:
{
2011-07-05 00:48:17 +08:00
position1476, thunkPosition1476 := position, thunkPosition
if !p.rules[ruleSpacechar]() {
2011-07-05 00:48:17 +08:00
goto l1476
}
2011-07-05 00:48:17 +08:00
goto l1475
l1476:
position, thunkPosition = position1476, thunkPosition1476
}
return true
2011-07-05 00:48:17 +08:00
l1472:
position, thunkPosition = position0, thunkPosition0
return false
},
2011-02-21 17:08:33 +08:00
/* 248 DefMarker <- (&{ p.extension.Dlists } Defmark) */
func() bool {
position0, thunkPosition0 := position, thunkPosition
if !( p.extension.Dlists ) {
2011-07-05 00:48:17 +08:00
goto l1477
}
if !p.rules[ruleDefmark]() {
2011-07-05 00:48:17 +08:00
goto l1477
}
return true
2011-07-05 00:48:17 +08:00
l1477:
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:
2011-02-18 19:00:25 +08:00
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",
}