From ec8819508422864fdf283171e190fc041f3c5168 Mon Sep 17 00:00:00 2001 From: Xavier Coulon Date: Sun, 19 Jul 2020 12:39:59 +0200 Subject: [PATCH] feature(parser): custom subs on paragraphs Support for one or more custom substitutions Starting with Rwline elements which are parsed and result in other elements. Subsequent substitutions only apply on the StringElements. At the end of the substitutions, the lines are preserved Also, fix issues with single line comments which should not start with spaces before the `//` marker Fixes #597 Signed-off-by: Xavier Coulon --- make/go.mk | 4 +- pkg/parser/comment_test.go | 165 +- pkg/parser/delimited_block_test.go | 37 + ...document_processing_apply_substitutions.go | 305 +- pkg/parser/paragraph_test.go | 440 +- pkg/parser/parser.go | 8719 +++++++++-------- pkg/parser/parser.peg | 135 +- pkg/types/attributes.go | 2 + pkg/types/types.go | 29 +- 9 files changed, 5671 insertions(+), 4165 deletions(-) diff --git a/make/go.mk b/make/go.mk index 8d1d3b53..e917bcb3 100644 --- a/make/go.mk +++ b/make/go.mk @@ -42,12 +42,12 @@ generate: install-pigeon generate-optimized: install-pigeon @echo "generating the parser (optimized)..." @pigeon -optimize-parser \ - -alternate-entrypoints AsciidocRawDocument,RawFile,TextDocument,DocumentRawBlock,FileLocation,IncludedFileLine,InlineLinks,LabeledListItemTerm,NormalBlockContent,NormalParagraphContent,VerseBlockContent,MarkdownQuoteBlockAttribution,InlineElements \ + -alternate-entrypoints AsciidocRawDocument,RawFile,TextDocument,DocumentRawBlock,FileLocation,IncludedFileLine,InlineLinks,LabeledListItemTerm,NormalParagraphContentSubstitution,NormalBlockContentSubstitution,VerseBlockContentSubstitution,MarkdownQuoteBlockAttribution,InlineElements,QuotedTextSubstitution,NoneSubstitution,AttributesSubstitution \ -o ./pkg/parser/parser.go ./pkg/parser/parser.peg .PHONY: build ## build the binary executable from CLI -build: prebuild-checks generate-optimized +build: prebuild-checks verify-parser generate-optimized $(eval BUILD_COMMIT:=$(shell git rev-parse --short HEAD)) $(eval BUILD_TAG:=$(shell git tag --contains $(BUILD_COMMIT))) $(eval BUILD_TIME:=$(shell date -u '+%Y-%m-%dT%H:%M:%SZ')) diff --git a/pkg/parser/comment_test.go b/pkg/parser/comment_test.go index 2c396a32..7fc5c031 100644 --- a/pkg/parser/comment_test.go +++ b/pkg/parser/comment_test.go @@ -26,30 +26,6 @@ var _ = Describe("comments", func() { Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) }) - It("single line comment with prefixing spaces alone", func() { - source := ` // A single-line comment.` - expected := types.DraftDocument{ - Blocks: []interface{}{ - types.SingleLineComment{ - Content: " A single-line comment.", - }, - }, - } - Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) - }) - - It("single line comment with prefixing tabs alone", func() { - source := "\t\t// A single-line comment." - expected := types.DraftDocument{ - Blocks: []interface{}{ - types.SingleLineComment{ - Content: " A single-line comment.", - }, - }, - } - Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) - }) - It("single line comment at end of line", func() { source := `foo // A single-line comment.` expected := types.DraftDocument{ @@ -95,37 +71,78 @@ another line` }, }, } - Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) + result, err := ParseDraftDocument(source) + Expect(err).NotTo(HaveOccurred()) + Expect(result).To(MatchDraftDocument(expected)) }) - It("single line comment within a paragraph with tab", func() { - source := `a first line + Context("invalid", func() { + + It("single line comment with prefixing spaces alone", func() { + source := ` // A single-line comment.` + expected := types.DraftDocument{ + Blocks: []interface{}{ + types.LiteralBlock{ + Attributes: types.Attributes{ + types.AttrKind: types.Literal, + types.AttrLiteralBlockType: types.LiteralBlockWithSpacesOnFirstLine, + }, + Lines: []string{ + " // A single-line comment.", + }, + }, + }, + } + Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) + }) + + It("single line comment with prefixing tabs alone", func() { + source := "\t\t// A single-line comment." + expected := types.DraftDocument{ + Blocks: []interface{}{ + types.LiteralBlock{ + Attributes: types.Attributes{ + types.AttrKind: types.Literal, + types.AttrLiteralBlockType: types.LiteralBlockWithSpacesOnFirstLine, + }, + Lines: []string{ + "\t\t// A single-line comment.", + }, + }, + }, + } + Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) + }) + + It("single line comment within a paragraph with tab", func() { + source := `a first line // A single-line comment. another line` - expected := types.DraftDocument{ - Blocks: []interface{}{ - types.Paragraph{ - Lines: []interface{}{ - []interface{}{ - types.StringElement{ - Content: "a first line", + expected := types.DraftDocument{ + Blocks: []interface{}{ + types.Paragraph{ + Lines: []interface{}{ + []interface{}{ + types.StringElement{ + Content: "a first line", + }, }, - }, - []interface{}{ - types.SingleLineComment{ - Content: " A single-line comment.", + []interface{}{ + types.StringElement{ + Content: "\t// A single-line comment.", + }, }, - }, - []interface{}{ - types.StringElement{ - Content: "another line", + []interface{}{ + types.StringElement{ + Content: "another line", + }, }, }, }, }, - }, - } - Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) + } + Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) + }) }) }) @@ -216,7 +233,17 @@ a second paragraph` It("single line comment with prefixing spaces alone", func() { source := ` // A single-line comment.` expected := types.Document{ - Elements: []interface{}{}, + Elements: []interface{}{ + types.LiteralBlock{ + Attributes: types.Attributes{ + types.AttrKind: types.Literal, + types.AttrLiteralBlockType: types.LiteralBlockWithSpacesOnFirstLine, + }, + Lines: []string{ + " // A single-line comment.", + }, + }, + }, } Expect(ParseDocument(source)).To(MatchDocument(expected)) }) @@ -224,7 +251,17 @@ a second paragraph` It("single line comment with prefixing tabs alone", func() { source := "\t\t// A single-line comment." expected := types.Document{ - Elements: []interface{}{}, + Elements: []interface{}{ + types.LiteralBlock{ + Attributes: types.Attributes{ + types.AttrKind: types.Literal, + types.AttrLiteralBlockType: types.LiteralBlockWithSpacesOnFirstLine, + }, + Lines: []string{ + "\t\t// A single-line comment.", + }, + }, + }, } Expect(ParseDocument(source)).To(MatchDocument(expected)) }) @@ -266,25 +303,31 @@ another line` Expect(ParseDocument(source)).To(MatchDocument(expected)) }) - It("single line comment within a paragraph with tab", func() { - source := `a first line + Context("invalid", func() { + + It("single line comment within a paragraph with tab", func() { + source := `a first line // A single-line comment. another line` - expected := types.Document{ - Elements: []interface{}{ - types.Paragraph{ - Lines: []interface{}{ - []interface{}{ - types.StringElement{Content: "a first line"}, - }, - []interface{}{ - types.StringElement{Content: "another line"}, + expected := types.Document{ + Elements: []interface{}{ + types.Paragraph{ + Lines: []interface{}{ + []interface{}{ + types.StringElement{Content: "a first line"}, + }, + []interface{}{ + types.StringElement{Content: "\t// A single-line comment."}, + }, + []interface{}{ + types.StringElement{Content: "another line"}, + }, }, }, }, - }, - } - Expect(ParseDocument(source)).To(MatchDocument(expected)) + } + Expect(ParseDocument(source)).To(MatchDocument(expected)) + }) }) }) diff --git a/pkg/parser/delimited_block_test.go b/pkg/parser/delimited_block_test.go index 0515d252..7491e05a 100644 --- a/pkg/parser/delimited_block_test.go +++ b/pkg/parser/delimited_block_test.go @@ -232,6 +232,39 @@ var _ = Describe("delimited blocks", func() { } Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) }) + + Context("with custom substitutions", func() { + + It("should apply the 'none' substitution", func() { + source := "[subs=none]\n```" + "\n" + + "a http://website.com[]" + "\n" + + "and more text on the" + "\n" + + "next lines" + "\n" + + "```" + expected := types.DraftDocument{ + Blocks: []interface{}{ + types.DelimitedBlock{ + Kind: types.Fenced, + Attributes: types.Attributes{ + types.AttrSubstitutions: "none", + }, + Elements: []interface{}{ + types.VerbatimLine{ + Content: "a http://website.com[]", + }, + types.VerbatimLine{ + Content: "and more text on the", + }, + types.VerbatimLine{ + Content: "next lines", + }, + }, + }, + }, + } + Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) + }) + }) }) Context("listing block", func() { @@ -663,6 +696,10 @@ import } Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) }) + + Context("with custom substitutions", func() { + + }) }) Context("example block", func() { diff --git a/pkg/parser/document_processing_apply_substitutions.go b/pkg/parser/document_processing_apply_substitutions.go index 3098853d..edf8ed8b 100644 --- a/pkg/parser/document_processing_apply_substitutions.go +++ b/pkg/parser/document_processing_apply_substitutions.go @@ -2,7 +2,6 @@ package parser import ( "fmt" - "io" "strconv" "strings" @@ -77,12 +76,13 @@ func applyAttributeSubstitutions(elements []interface{}, attrs types.AttributesW } // applyCounterSubstitutions is called by applyAttributeSubstitutionsOnElement. Unless there is an error with -// the element (the counter is the wrong type, which should never occur), it will return a StringElement, true -// (because we always either find the element, or allocate one), and nil. On an error it will return nil, false, +// the element (the counter is the wrong type, which should never occur), it will return a `StringElement, true` +// (because we always either find the element, or allocate one), and `nil`. On an error it will return `nil, false`, // and the error. The extra boolean here is to fit the calling expectations of our caller. This function was // factored out of a case from applyAttributeSubstitutionsOnElement in order to reduce the complexity of that // function, but otherwise it should have no callers. func applyCounterSubstitution(c types.CounterSubstitution, attrs types.AttributesWithOverrides) (interface{}, bool, error) { + log.Debugf("applying counter substitution for '%s'", c.Name) counter := attrs.Counters[c.Name] if counter == nil { counter = 0 @@ -125,6 +125,7 @@ func applyCounterSubstitution(c types.CounterSubstitution, attrs types.Attribute } func applyAttributeSubstitutionsOnElement(element interface{}, attrs types.AttributesWithOverrides) (interface{}, bool, error) { + log.Debugf("applying attribute substitutions on '%[1]v' (%[1]T)", element) switch e := element.(type) { case types.AttributeDeclaration: attrs.Set(e.Name, e.Value) @@ -255,14 +256,11 @@ func applyBlockSubstitutions(elements []interface{}, config configuration.Config for _, e := range elements { switch e := e.(type) { case types.Paragraph: - lines, err := applyParagraphSubstitutions(e.Lines, normalParagraph(options...)) + p, err := applyParagraphSubstitutions(e) if err != nil { return nil, err } - result = append(result, types.Paragraph{ - Attributes: e.Attributes, - Lines: lines, - }) + result = append(result, p) case types.DelimitedBlock: subs := delimitedBlockSubstitutions(e.Kind, config, options...) if err := applyDelimitedBlockSubstitutions(&e, subs); err != nil { @@ -289,9 +287,11 @@ func applyBlockSubstitutions(elements []interface{}, config configuration.Config func delimitedBlockSubstitutions(kind types.BlockKind, config configuration.Configuration, options ...Option) []blockSubstitution { switch kind { - case types.Fenced, types.Listing, types.Literal, types.Source, types.Comment, types.Passthrough: + case types.Fenced, types.Listing, types.Literal, types.Source, types.Passthrough: // return the verbatim elements return []blockSubstitution{verbatimBlock(options...)} + case types.Comment: + return []blockSubstitution{none()} case types.Example, types.Quote, types.Sidebar: return []blockSubstitution{normalBlock(config, options...)} case types.Verse: @@ -326,7 +326,7 @@ func normalBlock(config configuration.Configuration, options ...Option) blockSub if err != nil { return err } - if b.Elements, err = parseContent(config.Filename, raw, append(options, Entrypoint("NormalBlockContent"))...); err != nil { + if b.Elements, err = parseContent(config.Filename, raw, append(options, Entrypoint("NormalBlockContentSubstitution"))...); err != nil { return err } // now, check if there are nested delimited blocks, in which case apply the same substitution recursively @@ -351,7 +351,7 @@ func verseBlock(config configuration.Configuration, options ...Option) blockSubs if err != nil { return err } - b.Elements, err = parseContent(config.Filename, raw, append(options, Entrypoint("VerseBlockContent"))...) + b.Elements, err = parseContent(config.Filename, raw, append(options, Entrypoint("VerseBlockContentSubstitution"))...) return err } } @@ -364,7 +364,7 @@ func verbatimBlock(options ...Option) blockSubstitution { for _, elmt := range b.Elements { switch elmt := elmt.(type) { case types.RawLine: - elements, err := parseRawLine(elmt, append(options, Entrypoint("VerbatimContent"))...) + elements, err := parseRawLine(elmt, append(options, Entrypoint("VerbatimContentSubstitution"))...) if err != nil { return errors.Wrapf(err, "failed to apply verbatim substitution on '%s'", elmt.Content) } @@ -378,13 +378,6 @@ func verbatimBlock(options ...Option) blockSubstitution { } } -// // disables substitutions -func none() blockSubstitution { - return func(b *types.DelimitedBlock) error { - return nil - } -} - func markdownQuote(config configuration.Configuration, options ...Option) blockSubstitution { return func(b *types.DelimitedBlock) error { log.Debugf("applying the 'normal' substitution on a markdown quote block") @@ -399,7 +392,7 @@ func markdownQuote(config configuration.Configuration, options ...Option) blockS if err != nil { return err } - b.Elements, err = parseContent(config.Filename, raw, append(options, Entrypoint("NormalBlockContent"))...) + b.Elements, err = parseContent(config.Filename, raw, append(options, Entrypoint("NormalBlockContentSubstitution"))...) return err } } @@ -424,6 +417,22 @@ func extractQuoteBlockAttribution(elements []interface{}) ([]interface{}, string return elements, "" } +// disables substitutions +// returns the given content as-is (converting `RawLine` elements to `VerbatimLine` elements) +func none() blockSubstitution { + return func(b *types.DelimitedBlock) error { + for i, element := range b.Elements { + switch e := element.(type) { + case types.RawLine: + b.Elements[i] = types.VerbatimLine{ + Content: e.Content, + } + } + } + return nil + } +} + func parseRawLine(line types.RawLine, options ...Option) ([]interface{}, error) { result := []interface{}{} log.Debugf("parsing '%s'", line.Content) @@ -441,22 +450,23 @@ func parseRawLine(line types.RawLine, options ...Option) ([]interface{}, error) return result, nil } -func parseContent(filename string, r io.Reader, options ...Option) ([]interface{}, error) { - result, err := ParseReader(filename, r, options...) +func parseContent(filename string, content string, options ...Option) ([]interface{}, error) { + log.Debugf("parsing '%s'", content) + result, err := ParseReader(filename, strings.NewReader(content), options...) if err != nil { return nil, err } if result, ok := result.([]interface{}); ok { - if log.IsLevelEnabled(log.DebugLevel) { - log.Debug("parsed content:") - spew.Fdump(log.StandardLogger().Out, result) - } - return result, nil + // if log.IsLevelEnabled(log.DebugLevel) { + // log.Debug("parsed content:") + // spew.Fdump(log.StandardLogger().Out, types.Merge(result)) + // } + return types.Merge(result), nil } return nil, fmt.Errorf("unexpected type of content: '%T'", result) } -func serializeBlock(elements []interface{}) (io.Reader, error) { +func serializeBlock(elements []interface{}) (string, error) { if log.IsLevelEnabled(log.DebugLevel) { log.Debug("serializing elements in a delimited block") spew.Fdump(log.StandardLogger().Out, elements) @@ -469,47 +479,238 @@ func serializeBlock(elements []interface{}) (io.Reader, error) { buf.WriteString("\n") } } else { - return nil, fmt.Errorf("unexpected type of element while serializing the content of a delimited block: '%T'", elmt) + return "", fmt.Errorf("unexpected type of element while serializing the content of a delimited block: '%T'", elmt) } } log.Debugf("raw content: '%s'", buf.String()) - return strings.NewReader(buf.String()), nil + return buf.String(), nil } // ---------------------------------------------------------------------------- // Paragraph substitutions // ---------------------------------------------------------------------------- -func applyParagraphSubstitutions(lines []interface{}, sub paragraphSubstitution) ([]interface{}, error) { - // TODO: support multiple substitutions, where the first one processed `RawLine` elements, and the following - // ones deal with `[]interface{}` containing `StringElement`, etc. - return sub(lines) +// func applyParagraphSubstitutions(lines []interface{}, subs ...paragraphSubstitution) ([]interface{}, error) { +func applyParagraphSubstitutions(p types.Paragraph, options ...Option) (types.Paragraph, error) { + subs, found := p.Attributes.GetAsString(types.AttrSubstitutions) + if !found { + // apply the default substitution + lines, err := substitution("normal")(p.Lines, options...) + if err != nil { + return types.Paragraph{}, err + } + return types.Paragraph{ + Attributes: p.Attributes, + Lines: lines, + }, nil + } + // apply all the configured substitutions + for _, sub := range strings.Split(subs, ",") { + lines, err := substitution(sub)(p.Lines, options...) + if err != nil { + return types.Paragraph{}, err + } + p.Lines = lines + } + return p, nil } -type paragraphSubstitution func(lines []interface{}, options ...Option) ([]interface{}, error) +// func normalParagraph(options ...Option) paragraphSubstitution { +// return func(lines []interface{}, options ...Option) ([]interface{}, error) { +// log.Debugf("applying the 'normal' substitution on a paragraph") +// raw, err := serializeParagraph(lines) +// if err != nil { +// return nil, err +// } +// return parseContent("", raw, append(options, Entrypoint("NormalParagraphContentSubstitution"))...) +// } +// } + +// // replaces <, >, and & with their corresponding entities +// var specialchars = func(elements []interface{}, config configuration.Configuration, options ...Option) ([]interface{}, error) { +// return elements, nil +// } + +// // quotes applies the text formatting substitution +// var quotes = func(lines []interface{}, options ...Option) ([]interface{}, error) { +// for i, line := range lines { +// switch line := line.(type) { +// case types.RawLine: +// elements, err := ParseReader("", strings.NewReader(line.Content), Entrypoint("QuotedTextSubstitution")) +// if err != nil { +// return nil, err +// } +// lines[i] = elements +// default: +// return nil, fmt.Errorf("unsupported type of line: %T", line) +// } +// } +// return lines, nil +// } + +// // marcos processes the inline macros substitutions +// var macros = func(lines []interface{}, options ...Option) ([]interface{}, error) { +// for i, line := range lines { +// switch line := line.(type) { +// case types.RawLine: +// elements, err := ParseReader("", strings.NewReader(line.Content), Entrypoint("InlineMacrosSubstitution")) +// if err != nil { +// return nil, err +// } +// lines[i] = elements +// default: +// return nil, fmt.Errorf("unsupported type of line: %T", line) +// } +// } +// return lines, nil +// } + +type paragraphSubstitutionFunc func(lines []interface{}, options ...Option) ([]interface{}, error) + +// substitution returns the substitution func matching the given name +// otherwise, returns a default substitution which will ultemately fail +func substitution(name string) paragraphSubstitutionFunc { + log.Debugf("applying the '%s' paragraph substitution", name) + switch name { + case "normal": + return paragraphSubstitution("NormalParagraphContentSubstitution") + case "quotes": + return paragraphSubstitution("QuotedTextSubstitution") + case "macros": + return paragraphSubstitution("InlineMacrosSubstitution") + case "attributes": + return paragraphSubstitution("AttributesSubstitution") + case "none": + return paragraphSubstitution("NoneSubstitution") + default: + return func(lines []interface{}, options ...Option) ([]interface{}, error) { + return nil, fmt.Errorf("unsupported substitution: '%s", name) + } + } +} -func normalParagraph(_ ...Option) paragraphSubstitution { +func paragraphSubstitution(entrypoint string) paragraphSubstitutionFunc { return func(lines []interface{}, options ...Option) ([]interface{}, error) { - log.Debugf("applying the 'normal' substitution on a paragraph") - raw, err := serializeParagraph(lines) - if err != nil { - return nil, err + elements := []interface{}{} + for _, element := range serializeParagraphLines(lines) { + switch element := element.(type) { + case types.StringElement: // coming straight from the Raw document + elmts, err := parseContent("", element.Content, Entrypoint(entrypoint)) + if err != nil { + return nil, err + } + elements = append(elements, elmts...) + default: + elements = append(elements, element) + } + } + // after processing all the elements, we want to split them in separate lines again, to retain the initial input "form" + result := make([]interface{}, 0, len(lines)) + line := []interface{}{} + for _, element := range types.Merge(elements) { + switch element := element.(type) { + case types.StringElement: + // if content has line breaks, then split in multiple lines + if split := strings.Split(element.Content, "\n"); len(split) > 1 { + for i, s := range split { + if len(s) > 0 { // no need to insert empty StringElements + line = append(line, types.StringElement{Content: s}) + } + if i < len(split)-1 { + result = append(result, line) + line = []interface{}{} // reset for the next line, except for the last item + } + } + } else { + line = append(line, element) + } + case types.SingleLineComment: // single-line comments are on their own lines + if len(line) > 0 { + result = append(result, line) + } + result = append(result, []interface{}{element}) + line = []interface{}{} // reset for the next line + default: + line = append(line, element) + } + } + if len(line) > 0 { // don't forget the last line (if applicable) + result = append(result, line) + } + if log.IsLevelEnabled(log.DebugLevel) { + log.Debugf("paragraph lines after substitution:") + spew.Fdump(log.StandardLogger().Out, result) } - return parseContent("", raw, append(options, Entrypoint("NormalParagraphContent"))...) + return result, nil } } -func serializeParagraph(lines []interface{}) (io.Reader, error) { - buf := strings.Builder{} - for i, line := range lines { - if r, ok := line.(types.RawLine); ok { - buf.WriteString(r.Content) - if i < len(lines)-1 { - buf.WriteString("\n") - } - } else { - return nil, fmt.Errorf("unexpected type of element while serializing a paragraph: '%T'", line) +// // replaces attribute references +// var attributes = func(elements []interface{}, config configuration.Configuration, options ...Option) ([]interface{}, error) { +// return elements, nil +// } + +// // substitutes textual and character reference replacements +// var replacements = func(elements []interface{}, config configuration.Configuration, options ...Option) ([]interface{}, error) { +// return elements, nil +// } + +// // replaces the line break character (+) +// var postReplacements = func(elements []interface{}, config configuration.Configuration, options ...Option) ([]interface{}, error) { +// return elements, nil +// } + +// func parseDelimitedBlockElements(filename string, elements []interface{}, options ...Option) ([]interface{}, error) { +// verbatim, err := serialize(elements) +// if err != nil { +// return nil, err +// } +// e, err := ParseReader(filename, verbatim, options...) +// if err != nil { +// return nil, err +// } +// if result, ok := e.([]interface{}); ok { +// return result, nil +// } +// return nil, fmt.Errorf("unexpected type of element after parsing the content of a delimited block: '%T'", e) +// } + +func serializeParagraphLines(elements []interface{}) []interface{} { + result := []interface{}{} + for i, e := range elements { + switch e := e.(type) { + case types.RawLine: + result = append(result, types.StringElement(e)) // converting + case types.SingleLineComment: + result = append(result, e) + case []interface{}: + result = append(result, e...) + } + if i < len(elements)-1 { + result = append(result, types.StringElement{ + Content: "\n", + }) } } - return strings.NewReader(buf.String()), nil + result = types.Merge(result) + if log.IsLevelEnabled(log.DebugLevel) { + log.Debugf("serialized paragraph:") + spew.Fdump(log.StandardLogger().Out, result) + } + return result } + +// func serializeParagraph(lines []interface{}) (io.Reader, error) { +// buf := strings.Builder{} +// for i, line := range lines { +// if r, ok := line.(types.RawLine); ok { +// buf.WriteString(r.Content) +// if i < len(lines)-1 { +// buf.WriteString("\n") +// } +// } else { +// return nil, fmt.Errorf("unexpected type of element while serializing a paragraph: '%T'", line) +// } +// } +// return strings.NewReader(buf.String()), nil +// } diff --git a/pkg/parser/paragraph_test.go b/pkg/parser/paragraph_test.go index 5214918b..eb4cc346 100644 --- a/pkg/parser/paragraph_test.go +++ b/pkg/parser/paragraph_test.go @@ -12,7 +12,7 @@ var _ = Describe("paragraphs", func() { Context("draft document", func() { - Context("paragraphs with line break", func() { + Context("regular paragraphs", func() { It("with explicit line break", func() { source := `foo + @@ -36,7 +36,9 @@ baz` }, }, } - Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) + result, err := ParseDraftDocument(source) + Expect(err).NotTo(HaveOccurred()) + Expect(result).To(MatchDraftDocument(expected)) }) It("with paragraph attribute", func() { @@ -185,6 +187,283 @@ foo` } Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) }) + + Context("with substitutions", func() { + + It("should apply the 'none' substitution", func() { + source := `[subs="none"] +a *link* to http://github.com[] +// and a single-line comment` + expected := types.DraftDocument{ + Blocks: []interface{}{ + types.Paragraph{ + Attributes: types.Attributes{ + types.AttrSubstitutions: "none", + }, + Lines: []interface{}{ + []interface{}{ + types.StringElement{Content: "a *link* to http://github.com[] "}, + }, + []interface{}{ + types.SingleLineComment{ + Content: " and a single-line comment", + }, + }, + }, + }, + }, + } + result, err := ParseDraftDocument(source) + Expect(err).NotTo(HaveOccurred()) + Expect(result).To(MatchDraftDocument(expected)) + }) + + It("should apply the 'quotes' substitution on multiple lines", func() { + // quoted text is parsed but inline link macro is not + source := `[subs="quotes"] +a *link* +to http://github.com[] +` + expected := types.DraftDocument{ + Blocks: []interface{}{ + types.Paragraph{ + Attributes: types.Attributes{ + types.AttrSubstitutions: "quotes", + }, + Lines: []interface{}{ + []interface{}{ + types.StringElement{ + Content: "a ", + }, + types.QuotedText{ + Kind: types.Bold, + Elements: []interface{}{ + types.StringElement{ + Content: "link", + }, + }, + }, + types.StringElement{ + Content: " ", + }, + }, + []interface{}{ + types.StringElement{ + Content: "to http://github.com[] ", + }, + }, + []interface{}{ + types.StringElement{ + Content: "", + }, + }, + }, + }, + }, + } + Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) + }) + + It("should apply the 'macros' substitution", func() { + // quoted text is not parsed but inline link macro is + source := `[subs="macros"] +a *link* to https://github.com[] ` + expected := types.DraftDocument{ + Blocks: []interface{}{ + types.Paragraph{ + Attributes: types.Attributes{ + types.AttrSubstitutions: "macros", + }, + Lines: []interface{}{ + []interface{}{ + types.StringElement{ + Content: "a *link* to ", + }, + types.InlineLink{ + Location: types.Location{ + Scheme: "https://", + Path: []interface{}{ + types.StringElement{ + Content: "github.com", + }, + }, + }, + }, + types.StringElement{ + Content: " ", + }, + }, + }, + }, + }, + } + Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) + }) + + It("should apply the 'attributes' substitution", func() { + // quoted text is not parsed but inline link macro is + source := `:github-url: https://github.com + +[subs="attributes"] +a *link* to {github-url} ` + expected := types.DraftDocument{ + Attributes: types.Attributes{ + "github-url": "https://github.com", + }, + Blocks: []interface{}{ + types.AttributeDeclaration{ + Name: "github-url", + Value: "https://github.com", + }, + types.BlankLine{}, + types.Paragraph{ + Attributes: types.Attributes{ + types.AttrSubstitutions: "attributes", + }, + Lines: []interface{}{ + []interface{}{ + types.StringElement{ + Content: "a *link* to ", + }, + types.InlineLink{ // converted into a link + Location: types.Location{ + Scheme: "https://", + Path: []interface{}{ + types.StringElement{ + Content: "github.com", + }, + }, + }, + }, + types.StringElement{ + Content: " ", + }, + types.SpecialCharacter{ + Content: "<", + }, + types.StringElement{ + Content: "here", + }, + types.SpecialCharacter{ + Content: ">", + }, + }, + }, + }, + }, + } + Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) + }) + + It("should apply the 'quotes' and 'macros' substitutions", func() { + // quoted text and inline link macro are both parsed + source := `[subs="quotes,macros"] +a *link* +to https://github.com[] +` + expected := types.DraftDocument{ + Blocks: []interface{}{ + types.Paragraph{ + Attributes: types.Attributes{ + types.AttrSubstitutions: "quotes,macros", + }, + Lines: []interface{}{ + []interface{}{ + types.StringElement{ + Content: "a ", + }, + types.QuotedText{ + Kind: types.Bold, + Elements: []interface{}{ + types.StringElement{ + Content: "link", + }, + }, + }, + types.StringElement{ + Content: " ", + }, + }, + []interface{}{ + types.StringElement{ + Content: "to ", + }, + types.InlineLink{ + Location: types.Location{ + Scheme: "https://", + Path: []interface{}{ + types.StringElement{ + Content: "github.com", + }, + }, + }, + }, + types.StringElement{ + Content: " ", + }, + }, + []interface{}{ + types.StringElement{ + Content: "", + }, + }, + }, + }, + }, + } + result, err := ParseDraftDocument(source) + Expect(err).NotTo(HaveOccurred()) + Expect(result).To(MatchDraftDocument(expected)) + }) + + It("should apply the 'macros' and 'quotes' substitutions", func() { + // quoted text and inline link macro are both parsed + // (same as above, but with subs in reversed order) + source := `[subs="quotes,macros"] +a *link* to https://github.com[] ` + expected := types.DraftDocument{ + Blocks: []interface{}{ + types.Paragraph{ + Attributes: types.Attributes{ + types.AttrSubstitutions: "quotes,macros", + }, + Lines: []interface{}{ + []interface{}{ + types.StringElement{ + Content: "a ", + }, + types.QuotedText{ + Kind: types.Bold, + Elements: []interface{}{ + types.StringElement{ + Content: "link", + }, + }, + }, + types.StringElement{ + Content: " to ", + }, + types.InlineLink{ + Location: types.Location{ + Scheme: "https://", + Path: []interface{}{ + types.StringElement{ + Content: "github.com", + }, + }, + }, + }, + types.StringElement{ + Content: " ", + }, + }, + }, + }, + }, + } + Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) + }) + }) }) Context("admonition paragraphs", func() { @@ -816,6 +1095,163 @@ a paragraph` } Expect(ParseDocument(source)).To(MatchDocument(expected)) }) + + Context("with substitutions", func() { + + It("should apply the 'none' substitution", func() { + source := `[subs="none"] +a *link* to http://github.com[] ` + expected := types.Document{ + Elements: []interface{}{ + types.Paragraph{ + Attributes: types.Attributes{ + types.AttrSubstitutions: "none", + }, + Lines: []interface{}{ + []interface{}{ + types.StringElement{Content: "a *link* to http://github.com[] "}, + }, + }, + }, + }, + } + Expect(ParseDocument(source)).To(MatchDocument(expected)) + }) + + It("should apply the 'macros' substitution", func() { + // quoted text is not parsed but inline link macro is + source := `[subs="macros"] +a *link* to https://github.com[] ` + expected := types.Document{ + Elements: []interface{}{ + types.Paragraph{ + Attributes: types.Attributes{ + types.AttrSubstitutions: "macros", + }, + Lines: []interface{}{ + []interface{}{ + types.StringElement{ + Content: "a *link* to ", + }, + types.InlineLink{ + Location: types.Location{ + Scheme: "https://", + Path: []interface{}{ + types.StringElement{ + Content: "github.com", + }, + }, + }, + }, + types.StringElement{ + Content: " ", + }, + }, + }, + }, + }, + } + Expect(ParseDocument(source)).To(MatchDocument(expected)) + }) + + It("should apply the 'attributes' substitution", func() { + // quoted text is not parsed but inline link macro is + source := `:github-url: https://github.com + +[subs="attributes"] +a *link* to {github-url} ` + expected := types.Document{ + Attributes: types.Attributes{ + "github-url": "https://github.com", + }, + Elements: []interface{}{ + types.Paragraph{ + Attributes: types.Attributes{ + types.AttrSubstitutions: "attributes", + }, + Lines: []interface{}{ + []interface{}{ + types.StringElement{ + Content: "a *link* to ", + }, + types.InlineLink{ // converted into a link + Location: types.Location{ + Scheme: "https://", + Path: []interface{}{ + types.StringElement{ + Content: "github.com", + }, + }, + }, + }, + types.StringElement{ + Content: " ", + }, + types.SpecialCharacter{ + Content: "<", + }, + types.StringElement{ + Content: "here", + }, + types.SpecialCharacter{ + Content: ">", + }, + }, + }, + }, + }, + } + Expect(ParseDocument(source)).To(MatchDocument(expected)) + }) + + It("should apply the 'macros' and 'quotes' substitutions", func() { + // quoted text and inline link macro are both parsed + // (same as above, but with subs in reversed order) + source := `[subs="quotes,macros"] +a *link* to https://github.com[] ` + expected := types.DraftDocument{ + Blocks: []interface{}{ + types.Paragraph{ + Attributes: types.Attributes{ + types.AttrSubstitutions: "quotes,macros", + }, + Lines: []interface{}{ + []interface{}{ + types.StringElement{ + Content: "a ", + }, + types.QuotedText{ + Kind: types.Bold, + Elements: []interface{}{ + types.StringElement{ + Content: "link", + }, + }, + }, + types.StringElement{ + Content: " to ", + }, + types.InlineLink{ + Location: types.Location{ + Scheme: "https://", + Path: []interface{}{ + types.StringElement{ + Content: "github.com", + }, + }, + }, + }, + types.StringElement{ + Content: " ", + }, + }, + }, + }, + }, + } + Expect(ParseDraftDocument(source)).To(MatchDraftDocument(expected)) + }) + }) }) Context("quote paragraphs", func() { diff --git a/pkg/parser/parser.go b/pkg/parser/parser.go index e6bbb961..59402dd2 100644 --- a/pkg/parser/parser.go +++ b/pkg/parser/parser.go @@ -13,6 +13,7 @@ import ( "sort" "strconv" "strings" + "sync" "unicode" "unicode/utf8" @@ -258,14 +259,14 @@ var g = &grammar{ }, { name: "AsciidocDocumentBlocksWithinDelimitedBlock", - pos: position{line: 71, col: 1, offset: 2021}, + pos: position{line: 72, col: 1, offset: 2038}, expr: &labeledExpr{ - pos: position{line: 71, col: 47, offset: 2067}, + pos: position{line: 72, col: 47, offset: 2084}, label: "blocks", expr: &zeroOrMoreExpr{ - pos: position{line: 71, col: 54, offset: 2074}, + pos: position{line: 72, col: 54, offset: 2091}, expr: &ruleRefExpr{ - pos: position{line: 71, col: 55, offset: 2075}, + pos: position{line: 72, col: 55, offset: 2092}, name: "DocumentBlockWithinDelimitedBlock", }, }, @@ -273,88 +274,88 @@ var g = &grammar{ }, { name: "DocumentBlockWithinDelimitedBlock", - pos: position{line: 73, col: 1, offset: 2112}, + pos: position{line: 74, col: 1, offset: 2129}, expr: &actionExpr{ - pos: position{line: 73, col: 38, offset: 2149}, + pos: position{line: 74, col: 38, offset: 2166}, run: (*parser).callonDocumentBlockWithinDelimitedBlock1, expr: &seqExpr{ - pos: position{line: 73, col: 38, offset: 2149}, + pos: position{line: 74, col: 38, offset: 2166}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 73, col: 38, offset: 2149}, + pos: position{line: 74, col: 38, offset: 2166}, expr: &ruleRefExpr{ - pos: position{line: 73, col: 39, offset: 2150}, + pos: position{line: 74, col: 39, offset: 2167}, name: "EOF", }, }, &labeledExpr{ - pos: position{line: 74, col: 5, offset: 2159}, + pos: position{line: 75, col: 5, offset: 2176}, label: "block", expr: &choiceExpr{ - pos: position{line: 75, col: 9, offset: 2175}, + pos: position{line: 76, col: 9, offset: 2192}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 75, col: 9, offset: 2175}, + pos: position{line: 76, col: 9, offset: 2192}, name: "ImageBlock", }, &ruleRefExpr{ - pos: position{line: 76, col: 11, offset: 2196}, + pos: position{line: 77, col: 11, offset: 2213}, name: "DelimitedBlock", }, &ruleRefExpr{ - pos: position{line: 77, col: 11, offset: 2221}, + pos: position{line: 78, col: 11, offset: 2238}, name: "BlankLine", }, &ruleRefExpr{ - pos: position{line: 78, col: 11, offset: 2272}, + pos: position{line: 79, col: 11, offset: 2289}, name: "FileInclusion", }, &ruleRefExpr{ - pos: position{line: 79, col: 11, offset: 2296}, + pos: position{line: 80, col: 11, offset: 2313}, name: "RawVerseParagraph", }, &ruleRefExpr{ - pos: position{line: 80, col: 11, offset: 2324}, + pos: position{line: 81, col: 11, offset: 2341}, name: "ThematicBreak", }, &ruleRefExpr{ - pos: position{line: 81, col: 11, offset: 2348}, + pos: position{line: 82, col: 11, offset: 2365}, name: "OrderedListItem", }, &ruleRefExpr{ - pos: position{line: 82, col: 11, offset: 2374}, + pos: position{line: 83, col: 11, offset: 2391}, name: "UnorderedListItem", }, &ruleRefExpr{ - pos: position{line: 83, col: 11, offset: 2403}, + pos: position{line: 84, col: 11, offset: 2420}, name: "LabeledListItem", }, &ruleRefExpr{ - pos: position{line: 84, col: 11, offset: 2429}, + pos: position{line: 85, col: 11, offset: 2446}, name: "ContinuedListItemElement", }, &ruleRefExpr{ - pos: position{line: 85, col: 11, offset: 2464}, + pos: position{line: 86, col: 11, offset: 2481}, name: "LiteralBlock", }, &ruleRefExpr{ - pos: position{line: 86, col: 11, offset: 2488}, + pos: position{line: 87, col: 11, offset: 2505}, name: "AttributeDeclaration", }, &ruleRefExpr{ - pos: position{line: 87, col: 11, offset: 2520}, + pos: position{line: 88, col: 11, offset: 2537}, name: "AttributeReset", }, &ruleRefExpr{ - pos: position{line: 88, col: 11, offset: 2546}, + pos: position{line: 89, col: 11, offset: 2563}, name: "TableOfContentsPlaceHolder", }, &ruleRefExpr{ - pos: position{line: 89, col: 11, offset: 2583}, + pos: position{line: 90, col: 11, offset: 2600}, name: "UserMacroBlock", }, &ruleRefExpr{ - pos: position{line: 90, col: 11, offset: 2608}, + pos: position{line: 91, col: 11, offset: 2625}, name: "RawParagraph", }, }, @@ -366,14 +367,14 @@ var g = &grammar{ }, { name: "TextDocumentBlocks", - pos: position{line: 94, col: 1, offset: 2649}, + pos: position{line: 95, col: 1, offset: 2666}, expr: &labeledExpr{ - pos: position{line: 94, col: 23, offset: 2671}, + pos: position{line: 95, col: 23, offset: 2688}, label: "blocks", expr: &zeroOrMoreExpr{ - pos: position{line: 94, col: 30, offset: 2678}, + pos: position{line: 95, col: 30, offset: 2695}, expr: &ruleRefExpr{ - pos: position{line: 94, col: 31, offset: 2679}, + pos: position{line: 95, col: 31, offset: 2696}, name: "TextDocumentBlock", }, }, @@ -381,32 +382,32 @@ var g = &grammar{ }, { name: "TextDocumentBlock", - pos: position{line: 96, col: 1, offset: 2700}, + pos: position{line: 97, col: 1, offset: 2717}, expr: &actionExpr{ - pos: position{line: 96, col: 22, offset: 2721}, + pos: position{line: 97, col: 22, offset: 2738}, run: (*parser).callonTextDocumentBlock1, expr: &seqExpr{ - pos: position{line: 96, col: 22, offset: 2721}, + pos: position{line: 97, col: 22, offset: 2738}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 96, col: 22, offset: 2721}, + pos: position{line: 97, col: 22, offset: 2738}, expr: &ruleRefExpr{ - pos: position{line: 96, col: 23, offset: 2722}, + pos: position{line: 97, col: 23, offset: 2739}, name: "EOF", }, }, &labeledExpr{ - pos: position{line: 97, col: 5, offset: 2731}, + pos: position{line: 98, col: 5, offset: 2748}, label: "block", expr: &choiceExpr{ - pos: position{line: 97, col: 12, offset: 2738}, + pos: position{line: 98, col: 12, offset: 2755}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 97, col: 12, offset: 2738}, + pos: position{line: 98, col: 12, offset: 2755}, name: "BlankLine", }, &ruleRefExpr{ - pos: position{line: 97, col: 24, offset: 2750}, + pos: position{line: 98, col: 24, offset: 2767}, name: "RawParagraph", }, }, @@ -418,38 +419,38 @@ var g = &grammar{ }, { name: "FrontMatter", - pos: position{line: 104, col: 1, offset: 2899}, + pos: position{line: 105, col: 1, offset: 2916}, expr: &ruleRefExpr{ - pos: position{line: 104, col: 16, offset: 2914}, + pos: position{line: 105, col: 16, offset: 2931}, name: "YamlFrontMatter", }, }, { name: "YamlFrontMatter", - pos: position{line: 106, col: 1, offset: 2932}, + pos: position{line: 107, col: 1, offset: 2949}, expr: &actionExpr{ - pos: position{line: 106, col: 20, offset: 2951}, + pos: position{line: 107, col: 20, offset: 2968}, run: (*parser).callonYamlFrontMatter1, expr: &seqExpr{ - pos: position{line: 106, col: 20, offset: 2951}, + pos: position{line: 107, col: 20, offset: 2968}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 106, col: 20, offset: 2951}, + pos: position{line: 107, col: 20, offset: 2968}, name: "YamlFrontMatterToken", }, &labeledExpr{ - pos: position{line: 106, col: 41, offset: 2972}, + pos: position{line: 107, col: 41, offset: 2989}, label: "content", expr: &zeroOrOneExpr{ - pos: position{line: 106, col: 49, offset: 2980}, + pos: position{line: 107, col: 49, offset: 2997}, expr: &ruleRefExpr{ - pos: position{line: 106, col: 50, offset: 2981}, + pos: position{line: 107, col: 50, offset: 2998}, name: "YamlFrontMatterContent", }, }, }, &ruleRefExpr{ - pos: position{line: 106, col: 75, offset: 3006}, + pos: position{line: 107, col: 75, offset: 3023}, name: "YamlFrontMatterToken", }, }, @@ -458,25 +459,25 @@ var g = &grammar{ }, { name: "YamlFrontMatterToken", - pos: position{line: 110, col: 1, offset: 3086}, + pos: position{line: 111, col: 1, offset: 3103}, expr: &seqExpr{ - pos: position{line: 110, col: 26, offset: 3111}, + pos: position{line: 111, col: 26, offset: 3128}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 110, col: 26, offset: 3111}, + pos: position{line: 111, col: 26, offset: 3128}, val: "---", ignoreCase: false, want: "\"---\"", }, &zeroOrMoreExpr{ - pos: position{line: 110, col: 32, offset: 3117}, + pos: position{line: 111, col: 32, offset: 3134}, expr: &ruleRefExpr{ - pos: position{line: 110, col: 32, offset: 3117}, + pos: position{line: 111, col: 32, offset: 3134}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 110, col: 39, offset: 3124}, + pos: position{line: 111, col: 39, offset: 3141}, name: "EOL", }, }, @@ -484,26 +485,26 @@ var g = &grammar{ }, { name: "YamlFrontMatterContent", - pos: position{line: 112, col: 1, offset: 3129}, + pos: position{line: 113, col: 1, offset: 3146}, expr: &actionExpr{ - pos: position{line: 112, col: 27, offset: 3155}, + pos: position{line: 113, col: 27, offset: 3172}, run: (*parser).callonYamlFrontMatterContent1, expr: &zeroOrMoreExpr{ - pos: position{line: 112, col: 27, offset: 3155}, + pos: position{line: 113, col: 27, offset: 3172}, expr: &oneOrMoreExpr{ - pos: position{line: 112, col: 28, offset: 3156}, + pos: position{line: 113, col: 28, offset: 3173}, expr: &seqExpr{ - pos: position{line: 112, col: 29, offset: 3157}, + pos: position{line: 113, col: 29, offset: 3174}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 112, col: 29, offset: 3157}, + pos: position{line: 113, col: 29, offset: 3174}, expr: &ruleRefExpr{ - pos: position{line: 112, col: 30, offset: 3158}, + pos: position{line: 113, col: 30, offset: 3175}, name: "YamlFrontMatterToken", }, }, &anyMatcher{ - line: 112, col: 51, offset: 3179, + line: 113, col: 51, offset: 3196, }, }, }, @@ -513,99 +514,123 @@ var g = &grammar{ }, { name: "DocumentHeader", - pos: position{line: 119, col: 1, offset: 3345}, + pos: position{line: 120, col: 1, offset: 3362}, expr: &actionExpr{ - pos: position{line: 119, col: 19, offset: 3363}, + pos: position{line: 120, col: 19, offset: 3380}, run: (*parser).callonDocumentHeader1, expr: &seqExpr{ - pos: position{line: 119, col: 19, offset: 3363}, + pos: position{line: 120, col: 19, offset: 3380}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 119, col: 19, offset: 3363}, + pos: position{line: 120, col: 19, offset: 3380}, val: "=", ignoreCase: false, want: "\"=\"", }, &oneOrMoreExpr{ - pos: position{line: 119, col: 23, offset: 3367}, + pos: position{line: 120, col: 23, offset: 3384}, expr: &ruleRefExpr{ - pos: position{line: 119, col: 23, offset: 3367}, + pos: position{line: 120, col: 23, offset: 3384}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 119, col: 30, offset: 3374}, + pos: position{line: 120, col: 30, offset: 3391}, label: "title", expr: &ruleRefExpr{ - pos: position{line: 119, col: 37, offset: 3381}, + pos: position{line: 120, col: 37, offset: 3398}, name: "TitleElements", }, }, &labeledExpr{ - pos: position{line: 119, col: 52, offset: 3396}, + pos: position{line: 120, col: 52, offset: 3413}, label: "id", expr: &zeroOrMoreExpr{ - pos: position{line: 119, col: 56, offset: 3400}, + pos: position{line: 120, col: 56, offset: 3417}, expr: &ruleRefExpr{ - pos: position{line: 119, col: 56, offset: 3400}, + pos: position{line: 120, col: 56, offset: 3417}, name: "InlineElementID", }, }, }, &ruleRefExpr{ - pos: position{line: 119, col: 74, offset: 3418}, + pos: position{line: 120, col: 74, offset: 3435}, name: "EOL", }, &zeroOrMoreExpr{ - pos: position{line: 120, col: 9, offset: 3430}, + pos: position{line: 121, col: 9, offset: 3447}, expr: &choiceExpr{ - pos: position{line: 120, col: 10, offset: 3431}, + pos: position{line: 121, col: 10, offset: 3448}, alternatives: []interface{}{ - &ruleRefExpr{ - pos: position{line: 120, col: 10, offset: 3431}, - name: "SingleLineComment", + &seqExpr{ + pos: position{line: 121, col: 10, offset: 3448}, + exprs: []interface{}{ + &zeroOrMoreExpr{ + pos: position{line: 121, col: 10, offset: 3448}, + expr: &ruleRefExpr{ + pos: position{line: 121, col: 10, offset: 3448}, + name: "Space", + }, + }, + &ruleRefExpr{ + pos: position{line: 121, col: 17, offset: 3455}, + name: "SingleLineComment", + }, + }, }, &ruleRefExpr{ - pos: position{line: 120, col: 30, offset: 3451}, + pos: position{line: 121, col: 37, offset: 3475}, name: "CommentBlock", }, }, }, }, &labeledExpr{ - pos: position{line: 121, col: 9, offset: 3474}, + pos: position{line: 122, col: 9, offset: 3498}, label: "authors", expr: &zeroOrOneExpr{ - pos: position{line: 121, col: 18, offset: 3483}, + pos: position{line: 122, col: 18, offset: 3507}, expr: &ruleRefExpr{ - pos: position{line: 121, col: 18, offset: 3483}, + pos: position{line: 122, col: 18, offset: 3507}, name: "DocumentAuthors", }, }, }, &zeroOrMoreExpr{ - pos: position{line: 122, col: 9, offset: 3510}, + pos: position{line: 123, col: 9, offset: 3534}, expr: &choiceExpr{ - pos: position{line: 122, col: 10, offset: 3511}, + pos: position{line: 123, col: 10, offset: 3535}, alternatives: []interface{}{ - &ruleRefExpr{ - pos: position{line: 122, col: 10, offset: 3511}, - name: "SingleLineComment", + &seqExpr{ + pos: position{line: 123, col: 10, offset: 3535}, + exprs: []interface{}{ + &zeroOrMoreExpr{ + pos: position{line: 123, col: 10, offset: 3535}, + expr: &ruleRefExpr{ + pos: position{line: 123, col: 10, offset: 3535}, + name: "Space", + }, + }, + &ruleRefExpr{ + pos: position{line: 123, col: 17, offset: 3542}, + name: "SingleLineComment", + }, + }, }, &ruleRefExpr{ - pos: position{line: 122, col: 30, offset: 3531}, + pos: position{line: 123, col: 37, offset: 3562}, name: "CommentBlock", }, }, }, }, &labeledExpr{ - pos: position{line: 123, col: 9, offset: 3554}, + pos: position{line: 124, col: 9, offset: 3585}, label: "revision", expr: &zeroOrOneExpr{ - pos: position{line: 123, col: 19, offset: 3564}, + pos: position{line: 124, col: 19, offset: 3595}, expr: &ruleRefExpr{ - pos: position{line: 123, col: 19, offset: 3564}, + pos: position{line: 124, col: 19, offset: 3595}, name: "DocumentRevision", }, }, @@ -616,16 +641,16 @@ var g = &grammar{ }, { name: "DocumentAuthors", - pos: position{line: 127, col: 1, offset: 3665}, + pos: position{line: 128, col: 1, offset: 3696}, expr: &choiceExpr{ - pos: position{line: 127, col: 20, offset: 3684}, + pos: position{line: 128, col: 20, offset: 3715}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 127, col: 20, offset: 3684}, + pos: position{line: 128, col: 20, offset: 3715}, name: "DocumentAuthorsInlineForm", }, &ruleRefExpr{ - pos: position{line: 127, col: 48, offset: 3712}, + pos: position{line: 128, col: 48, offset: 3743}, name: "DocumentAuthorsAttributeForm", }, }, @@ -633,42 +658,42 @@ var g = &grammar{ }, { name: "DocumentAuthorsInlineForm", - pos: position{line: 129, col: 1, offset: 3742}, + pos: position{line: 130, col: 1, offset: 3773}, expr: &actionExpr{ - pos: position{line: 129, col: 30, offset: 3771}, + pos: position{line: 130, col: 30, offset: 3802}, run: (*parser).callonDocumentAuthorsInlineForm1, expr: &seqExpr{ - pos: position{line: 129, col: 30, offset: 3771}, + pos: position{line: 130, col: 30, offset: 3802}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 129, col: 30, offset: 3771}, + pos: position{line: 130, col: 30, offset: 3802}, expr: &ruleRefExpr{ - pos: position{line: 129, col: 30, offset: 3771}, + pos: position{line: 130, col: 30, offset: 3802}, name: "Space", }, }, ¬Expr{ - pos: position{line: 129, col: 37, offset: 3778}, + pos: position{line: 130, col: 37, offset: 3809}, expr: &litMatcher{ - pos: position{line: 129, col: 38, offset: 3779}, + pos: position{line: 130, col: 38, offset: 3810}, val: ":", ignoreCase: false, want: "\":\"", }, }, &labeledExpr{ - pos: position{line: 129, col: 42, offset: 3783}, + pos: position{line: 130, col: 42, offset: 3814}, label: "authors", expr: &oneOrMoreExpr{ - pos: position{line: 129, col: 51, offset: 3792}, + pos: position{line: 130, col: 51, offset: 3823}, expr: &ruleRefExpr{ - pos: position{line: 129, col: 51, offset: 3792}, + pos: position{line: 130, col: 51, offset: 3823}, name: "DocumentAuthor", }, }, }, &ruleRefExpr{ - pos: position{line: 129, col: 68, offset: 3809}, + pos: position{line: 130, col: 68, offset: 3840}, name: "EOL", }, }, @@ -677,36 +702,36 @@ var g = &grammar{ }, { name: "DocumentAuthorsAttributeForm", - pos: position{line: 133, col: 1, offset: 3879}, + pos: position{line: 134, col: 1, offset: 3910}, expr: &actionExpr{ - pos: position{line: 133, col: 33, offset: 3911}, + pos: position{line: 134, col: 33, offset: 3942}, run: (*parser).callonDocumentAuthorsAttributeForm1, expr: &seqExpr{ - pos: position{line: 133, col: 33, offset: 3911}, + pos: position{line: 134, col: 33, offset: 3942}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 133, col: 33, offset: 3911}, + pos: position{line: 134, col: 33, offset: 3942}, expr: &ruleRefExpr{ - pos: position{line: 133, col: 33, offset: 3911}, + pos: position{line: 134, col: 33, offset: 3942}, name: "Space", }, }, &litMatcher{ - pos: position{line: 133, col: 40, offset: 3918}, + pos: position{line: 134, col: 40, offset: 3949}, val: ":author:", ignoreCase: false, want: "\":author:\"", }, &labeledExpr{ - pos: position{line: 133, col: 51, offset: 3929}, + pos: position{line: 134, col: 51, offset: 3960}, label: "author", expr: &ruleRefExpr{ - pos: position{line: 133, col: 59, offset: 3937}, + pos: position{line: 134, col: 59, offset: 3968}, name: "DocumentAuthor", }, }, &ruleRefExpr{ - pos: position{line: 133, col: 75, offset: 3953}, + pos: position{line: 134, col: 75, offset: 3984}, name: "EOL", }, }, @@ -715,59 +740,59 @@ var g = &grammar{ }, { name: "DocumentAuthor", - pos: position{line: 137, col: 1, offset: 4032}, + pos: position{line: 138, col: 1, offset: 4063}, expr: &actionExpr{ - pos: position{line: 137, col: 19, offset: 4050}, + pos: position{line: 138, col: 19, offset: 4081}, run: (*parser).callonDocumentAuthor1, expr: &seqExpr{ - pos: position{line: 137, col: 19, offset: 4050}, + pos: position{line: 138, col: 19, offset: 4081}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 137, col: 19, offset: 4050}, + pos: position{line: 138, col: 19, offset: 4081}, expr: &ruleRefExpr{ - pos: position{line: 137, col: 19, offset: 4050}, + pos: position{line: 138, col: 19, offset: 4081}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 137, col: 26, offset: 4057}, + pos: position{line: 138, col: 26, offset: 4088}, label: "fullname", expr: &ruleRefExpr{ - pos: position{line: 137, col: 36, offset: 4067}, + pos: position{line: 138, col: 36, offset: 4098}, name: "DocumentAuthorName", }, }, &labeledExpr{ - pos: position{line: 137, col: 56, offset: 4087}, + pos: position{line: 138, col: 56, offset: 4118}, label: "email", expr: &zeroOrOneExpr{ - pos: position{line: 137, col: 62, offset: 4093}, + pos: position{line: 138, col: 62, offset: 4124}, expr: &ruleRefExpr{ - pos: position{line: 137, col: 63, offset: 4094}, + pos: position{line: 138, col: 63, offset: 4125}, name: "DocumentAuthorEmail", }, }, }, &zeroOrMoreExpr{ - pos: position{line: 137, col: 85, offset: 4116}, + pos: position{line: 138, col: 85, offset: 4147}, expr: &ruleRefExpr{ - pos: position{line: 137, col: 85, offset: 4116}, + pos: position{line: 138, col: 85, offset: 4147}, name: "Space", }, }, &zeroOrOneExpr{ - pos: position{line: 137, col: 92, offset: 4123}, + pos: position{line: 138, col: 92, offset: 4154}, expr: &litMatcher{ - pos: position{line: 137, col: 92, offset: 4123}, + pos: position{line: 138, col: 92, offset: 4154}, val: ";", ignoreCase: false, want: "\";\"", }, }, &zeroOrMoreExpr{ - pos: position{line: 137, col: 97, offset: 4128}, + pos: position{line: 138, col: 97, offset: 4159}, expr: &ruleRefExpr{ - pos: position{line: 137, col: 97, offset: 4128}, + pos: position{line: 138, col: 97, offset: 4159}, name: "Space", }, }, @@ -777,14 +802,14 @@ var g = &grammar{ }, { name: "DocumentAuthorName", - pos: position{line: 142, col: 1, offset: 4273}, + pos: position{line: 143, col: 1, offset: 4304}, expr: &actionExpr{ - pos: position{line: 142, col: 23, offset: 4295}, + pos: position{line: 143, col: 23, offset: 4326}, run: (*parser).callonDocumentAuthorName1, expr: &oneOrMoreExpr{ - pos: position{line: 142, col: 23, offset: 4295}, + pos: position{line: 143, col: 23, offset: 4326}, expr: &charClassMatcher{ - pos: position{line: 142, col: 23, offset: 4295}, + pos: position{line: 143, col: 23, offset: 4326}, val: "[^<;\\r\\n]", chars: []rune{'<', ';', '\r', '\n'}, ignoreCase: false, @@ -795,29 +820,29 @@ var g = &grammar{ }, { name: "DocumentAuthorEmail", - pos: position{line: 146, col: 1, offset: 4342}, + pos: position{line: 147, col: 1, offset: 4373}, expr: &actionExpr{ - pos: position{line: 146, col: 24, offset: 4365}, + pos: position{line: 147, col: 24, offset: 4396}, run: (*parser).callonDocumentAuthorEmail1, expr: &seqExpr{ - pos: position{line: 146, col: 24, offset: 4365}, + pos: position{line: 147, col: 24, offset: 4396}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 146, col: 24, offset: 4365}, + pos: position{line: 147, col: 24, offset: 4396}, val: "<", ignoreCase: false, want: "\"<\"", }, &labeledExpr{ - pos: position{line: 146, col: 28, offset: 4369}, + pos: position{line: 147, col: 28, offset: 4400}, label: "email", expr: &actionExpr{ - pos: position{line: 146, col: 35, offset: 4376}, + pos: position{line: 147, col: 35, offset: 4407}, run: (*parser).callonDocumentAuthorEmail5, expr: &oneOrMoreExpr{ - pos: position{line: 146, col: 36, offset: 4377}, + pos: position{line: 147, col: 36, offset: 4408}, expr: &charClassMatcher{ - pos: position{line: 146, col: 36, offset: 4377}, + pos: position{line: 147, col: 36, offset: 4408}, val: "[^>\\r\\n]", chars: []rune{'>', '\r', '\n'}, ignoreCase: false, @@ -827,7 +852,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 148, col: 4, offset: 4424}, + pos: position{line: 149, col: 4, offset: 4455}, val: ">", ignoreCase: false, want: "\">\"", @@ -838,85 +863,85 @@ var g = &grammar{ }, { name: "DocumentRevision", - pos: position{line: 154, col: 1, offset: 4585}, + pos: position{line: 155, col: 1, offset: 4616}, expr: &actionExpr{ - pos: position{line: 154, col: 21, offset: 4605}, + pos: position{line: 155, col: 21, offset: 4636}, run: (*parser).callonDocumentRevision1, expr: &seqExpr{ - pos: position{line: 154, col: 21, offset: 4605}, + pos: position{line: 155, col: 21, offset: 4636}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 154, col: 21, offset: 4605}, + pos: position{line: 155, col: 21, offset: 4636}, expr: &ruleRefExpr{ - pos: position{line: 154, col: 21, offset: 4605}, + pos: position{line: 155, col: 21, offset: 4636}, name: "Space", }, }, ¬Expr{ - pos: position{line: 154, col: 28, offset: 4612}, + pos: position{line: 155, col: 28, offset: 4643}, expr: &litMatcher{ - pos: position{line: 154, col: 29, offset: 4613}, + pos: position{line: 155, col: 29, offset: 4644}, val: ":", ignoreCase: false, want: "\":\"", }, }, &labeledExpr{ - pos: position{line: 154, col: 33, offset: 4617}, + pos: position{line: 155, col: 33, offset: 4648}, label: "revision", expr: &choiceExpr{ - pos: position{line: 155, col: 9, offset: 4636}, + pos: position{line: 156, col: 9, offset: 4667}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 155, col: 10, offset: 4637}, + pos: position{line: 156, col: 10, offset: 4668}, run: (*parser).callonDocumentRevision9, expr: &seqExpr{ - pos: position{line: 155, col: 10, offset: 4637}, + pos: position{line: 156, col: 10, offset: 4668}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 155, col: 10, offset: 4637}, + pos: position{line: 156, col: 10, offset: 4668}, label: "revnumber", expr: &ruleRefExpr{ - pos: position{line: 155, col: 21, offset: 4648}, + pos: position{line: 156, col: 21, offset: 4679}, name: "DocumentRevisionNumber", }, }, &zeroOrOneExpr{ - pos: position{line: 155, col: 45, offset: 4672}, + pos: position{line: 156, col: 45, offset: 4703}, expr: &litMatcher{ - pos: position{line: 155, col: 45, offset: 4672}, + pos: position{line: 156, col: 45, offset: 4703}, val: ",", ignoreCase: false, want: "\",\"", }, }, &labeledExpr{ - pos: position{line: 155, col: 50, offset: 4677}, + pos: position{line: 156, col: 50, offset: 4708}, label: "revdate", expr: &zeroOrOneExpr{ - pos: position{line: 155, col: 58, offset: 4685}, + pos: position{line: 156, col: 58, offset: 4716}, expr: &ruleRefExpr{ - pos: position{line: 155, col: 59, offset: 4686}, + pos: position{line: 156, col: 59, offset: 4717}, name: "DocumentRevisionDate", }, }, }, &zeroOrOneExpr{ - pos: position{line: 155, col: 82, offset: 4709}, + pos: position{line: 156, col: 82, offset: 4740}, expr: &litMatcher{ - pos: position{line: 155, col: 82, offset: 4709}, + pos: position{line: 156, col: 82, offset: 4740}, val: ":", ignoreCase: false, want: "\":\"", }, }, &labeledExpr{ - pos: position{line: 155, col: 87, offset: 4714}, + pos: position{line: 156, col: 87, offset: 4745}, label: "revremark", expr: &zeroOrOneExpr{ - pos: position{line: 155, col: 97, offset: 4724}, + pos: position{line: 156, col: 97, offset: 4755}, expr: &ruleRefExpr{ - pos: position{line: 155, col: 98, offset: 4725}, + pos: position{line: 156, col: 98, offset: 4756}, name: "DocumentRevisionRemark", }, }, @@ -925,35 +950,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 157, col: 15, offset: 4842}, + pos: position{line: 158, col: 15, offset: 4873}, run: (*parser).callonDocumentRevision23, expr: &seqExpr{ - pos: position{line: 157, col: 15, offset: 4842}, + pos: position{line: 158, col: 15, offset: 4873}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 157, col: 15, offset: 4842}, + pos: position{line: 158, col: 15, offset: 4873}, label: "revdate", expr: &ruleRefExpr{ - pos: position{line: 157, col: 24, offset: 4851}, + pos: position{line: 158, col: 24, offset: 4882}, name: "DocumentRevisionDate", }, }, &zeroOrOneExpr{ - pos: position{line: 157, col: 46, offset: 4873}, + pos: position{line: 158, col: 46, offset: 4904}, expr: &litMatcher{ - pos: position{line: 157, col: 46, offset: 4873}, + pos: position{line: 158, col: 46, offset: 4904}, val: ":", ignoreCase: false, want: "\":\"", }, }, &labeledExpr{ - pos: position{line: 157, col: 51, offset: 4878}, + pos: position{line: 158, col: 51, offset: 4909}, label: "revremark", expr: &zeroOrOneExpr{ - pos: position{line: 157, col: 61, offset: 4888}, + pos: position{line: 158, col: 61, offset: 4919}, expr: &ruleRefExpr{ - pos: position{line: 157, col: 62, offset: 4889}, + pos: position{line: 158, col: 62, offset: 4920}, name: "DocumentRevisionRemark", }, }, @@ -965,7 +990,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 159, col: 13, offset: 4998}, + pos: position{line: 160, col: 13, offset: 5029}, name: "EOL", }, }, @@ -974,30 +999,30 @@ var g = &grammar{ }, { name: "DocumentRevisionNumber", - pos: position{line: 164, col: 1, offset: 5128}, + pos: position{line: 165, col: 1, offset: 5159}, expr: &choiceExpr{ - pos: position{line: 164, col: 27, offset: 5154}, + pos: position{line: 165, col: 27, offset: 5185}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 164, col: 27, offset: 5154}, + pos: position{line: 165, col: 27, offset: 5185}, run: (*parser).callonDocumentRevisionNumber2, expr: &seqExpr{ - pos: position{line: 164, col: 27, offset: 5154}, + pos: position{line: 165, col: 27, offset: 5185}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 164, col: 27, offset: 5154}, + pos: position{line: 165, col: 27, offset: 5185}, val: "v", ignoreCase: true, want: "\"v\"i", }, &ruleRefExpr{ - pos: position{line: 164, col: 32, offset: 5159}, + pos: position{line: 165, col: 32, offset: 5190}, name: "DIGIT", }, &oneOrMoreExpr{ - pos: position{line: 164, col: 39, offset: 5166}, + pos: position{line: 165, col: 39, offset: 5197}, expr: &charClassMatcher{ - pos: position{line: 164, col: 39, offset: 5166}, + pos: position{line: 165, col: 39, offset: 5197}, val: "[^:,\\r\\n]", chars: []rune{':', ',', '\r', '\n'}, ignoreCase: false, @@ -1008,28 +1033,28 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 166, col: 5, offset: 5214}, + pos: position{line: 167, col: 5, offset: 5245}, run: (*parser).callonDocumentRevisionNumber8, expr: &seqExpr{ - pos: position{line: 166, col: 5, offset: 5214}, + pos: position{line: 167, col: 5, offset: 5245}, exprs: []interface{}{ &zeroOrOneExpr{ - pos: position{line: 166, col: 5, offset: 5214}, + pos: position{line: 167, col: 5, offset: 5245}, expr: &litMatcher{ - pos: position{line: 166, col: 5, offset: 5214}, + pos: position{line: 167, col: 5, offset: 5245}, val: "v", ignoreCase: true, want: "\"v\"i", }, }, &ruleRefExpr{ - pos: position{line: 166, col: 11, offset: 5220}, + pos: position{line: 167, col: 11, offset: 5251}, name: "DIGIT", }, &oneOrMoreExpr{ - pos: position{line: 166, col: 18, offset: 5227}, + pos: position{line: 167, col: 18, offset: 5258}, expr: &charClassMatcher{ - pos: position{line: 166, col: 18, offset: 5227}, + pos: position{line: 167, col: 18, offset: 5258}, val: "[^:,\\r\\n]", chars: []rune{':', ',', '\r', '\n'}, ignoreCase: false, @@ -1037,16 +1062,16 @@ var g = &grammar{ }, }, &zeroOrMoreExpr{ - pos: position{line: 166, col: 29, offset: 5238}, + pos: position{line: 167, col: 29, offset: 5269}, expr: &ruleRefExpr{ - pos: position{line: 166, col: 29, offset: 5238}, + pos: position{line: 167, col: 29, offset: 5269}, name: "Space", }, }, &andExpr{ - pos: position{line: 166, col: 36, offset: 5245}, + pos: position{line: 167, col: 36, offset: 5276}, expr: &litMatcher{ - pos: position{line: 166, col: 37, offset: 5246}, + pos: position{line: 167, col: 37, offset: 5277}, val: ",", ignoreCase: false, want: "\",\"", @@ -1060,14 +1085,14 @@ var g = &grammar{ }, { name: "DocumentRevisionDate", - pos: position{line: 170, col: 1, offset: 5286}, + pos: position{line: 171, col: 1, offset: 5317}, expr: &actionExpr{ - pos: position{line: 170, col: 25, offset: 5310}, + pos: position{line: 171, col: 25, offset: 5341}, run: (*parser).callonDocumentRevisionDate1, expr: &oneOrMoreExpr{ - pos: position{line: 170, col: 25, offset: 5310}, + pos: position{line: 171, col: 25, offset: 5341}, expr: &charClassMatcher{ - pos: position{line: 170, col: 25, offset: 5310}, + pos: position{line: 171, col: 25, offset: 5341}, val: "[^:\\r\\n]", chars: []rune{':', '\r', '\n'}, ignoreCase: false, @@ -1078,14 +1103,14 @@ var g = &grammar{ }, { name: "DocumentRevisionRemark", - pos: position{line: 174, col: 1, offset: 5356}, + pos: position{line: 175, col: 1, offset: 5387}, expr: &actionExpr{ - pos: position{line: 174, col: 27, offset: 5382}, + pos: position{line: 175, col: 27, offset: 5413}, run: (*parser).callonDocumentRevisionRemark1, expr: &oneOrMoreExpr{ - pos: position{line: 174, col: 27, offset: 5382}, + pos: position{line: 175, col: 27, offset: 5413}, expr: &charClassMatcher{ - pos: position{line: 174, col: 27, offset: 5382}, + pos: position{line: 175, col: 27, offset: 5413}, val: "[^\\r\\r\\n]", chars: []rune{'\r', '\r', '\n'}, ignoreCase: false, @@ -1096,56 +1121,56 @@ var g = &grammar{ }, { name: "AttributeDeclaration", - pos: position{line: 181, col: 1, offset: 5535}, + pos: position{line: 182, col: 1, offset: 5566}, expr: &actionExpr{ - pos: position{line: 181, col: 25, offset: 5559}, + pos: position{line: 182, col: 25, offset: 5590}, run: (*parser).callonAttributeDeclaration1, expr: &seqExpr{ - pos: position{line: 181, col: 25, offset: 5559}, + pos: position{line: 182, col: 25, offset: 5590}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 181, col: 25, offset: 5559}, + pos: position{line: 182, col: 25, offset: 5590}, val: ":", ignoreCase: false, want: "\":\"", }, &labeledExpr{ - pos: position{line: 181, col: 29, offset: 5563}, + pos: position{line: 182, col: 29, offset: 5594}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 181, col: 35, offset: 5569}, + pos: position{line: 182, col: 35, offset: 5600}, name: "AttributeName", }, }, &litMatcher{ - pos: position{line: 181, col: 50, offset: 5584}, + pos: position{line: 182, col: 50, offset: 5615}, val: ":", ignoreCase: false, want: "\":\"", }, &labeledExpr{ - pos: position{line: 182, col: 9, offset: 5597}, + pos: position{line: 183, col: 9, offset: 5628}, label: "value", expr: &zeroOrOneExpr{ - pos: position{line: 182, col: 15, offset: 5603}, + pos: position{line: 183, col: 15, offset: 5634}, expr: &actionExpr{ - pos: position{line: 182, col: 16, offset: 5604}, + pos: position{line: 183, col: 16, offset: 5635}, run: (*parser).callonAttributeDeclaration9, expr: &seqExpr{ - pos: position{line: 182, col: 17, offset: 5605}, + pos: position{line: 183, col: 17, offset: 5636}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 182, col: 17, offset: 5605}, + pos: position{line: 183, col: 17, offset: 5636}, expr: &ruleRefExpr{ - pos: position{line: 182, col: 17, offset: 5605}, + pos: position{line: 183, col: 17, offset: 5636}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 182, col: 24, offset: 5612}, + pos: position{line: 183, col: 24, offset: 5643}, label: "value", expr: &ruleRefExpr{ - pos: position{line: 182, col: 31, offset: 5619}, + pos: position{line: 183, col: 31, offset: 5650}, name: "AttributeDeclarationValue", }, }, @@ -1155,14 +1180,14 @@ var g = &grammar{ }, }, &zeroOrMoreExpr{ - pos: position{line: 184, col: 13, offset: 5693}, + pos: position{line: 185, col: 13, offset: 5724}, expr: &ruleRefExpr{ - pos: position{line: 184, col: 13, offset: 5693}, + pos: position{line: 185, col: 13, offset: 5724}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 184, col: 20, offset: 5700}, + pos: position{line: 185, col: 20, offset: 5731}, name: "EOL", }, }, @@ -1171,15 +1196,15 @@ var g = &grammar{ }, { name: "AttributeName", - pos: position{line: 191, col: 1, offset: 5940}, + pos: position{line: 192, col: 1, offset: 5971}, expr: &actionExpr{ - pos: position{line: 191, col: 18, offset: 5957}, + pos: position{line: 192, col: 18, offset: 5988}, run: (*parser).callonAttributeName1, expr: &seqExpr{ - pos: position{line: 191, col: 18, offset: 5957}, + pos: position{line: 192, col: 18, offset: 5988}, exprs: []interface{}{ &charClassMatcher{ - pos: position{line: 191, col: 18, offset: 5957}, + pos: position{line: 192, col: 18, offset: 5988}, val: "[\\pL0-9_]", chars: []rune{'_'}, ranges: []rune{'0', '9'}, @@ -1188,9 +1213,9 @@ var g = &grammar{ inverted: false, }, &zeroOrMoreExpr{ - pos: position{line: 191, col: 28, offset: 5967}, + pos: position{line: 192, col: 28, offset: 5998}, expr: &charClassMatcher{ - pos: position{line: 191, col: 29, offset: 5968}, + pos: position{line: 192, col: 29, offset: 5999}, val: "[\\pL0-9-]", chars: []rune{'-'}, ranges: []rune{'0', '9'}, @@ -1205,14 +1230,14 @@ var g = &grammar{ }, { name: "AttributeDeclarationValue", - pos: position{line: 195, col: 1, offset: 6016}, + pos: position{line: 196, col: 1, offset: 6047}, expr: &actionExpr{ - pos: position{line: 195, col: 30, offset: 6045}, + pos: position{line: 196, col: 30, offset: 6076}, run: (*parser).callonAttributeDeclarationValue1, expr: &oneOrMoreExpr{ - pos: position{line: 195, col: 30, offset: 6045}, + pos: position{line: 196, col: 30, offset: 6076}, expr: &charClassMatcher{ - pos: position{line: 195, col: 30, offset: 6045}, + pos: position{line: 196, col: 30, offset: 6076}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -1223,85 +1248,85 @@ var g = &grammar{ }, { name: "AttributeReset", - pos: position{line: 199, col: 1, offset: 6090}, + pos: position{line: 200, col: 1, offset: 6121}, expr: &choiceExpr{ - pos: position{line: 199, col: 19, offset: 6108}, + pos: position{line: 200, col: 19, offset: 6139}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 199, col: 19, offset: 6108}, + pos: position{line: 200, col: 19, offset: 6139}, run: (*parser).callonAttributeReset2, expr: &seqExpr{ - pos: position{line: 199, col: 19, offset: 6108}, + pos: position{line: 200, col: 19, offset: 6139}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 199, col: 19, offset: 6108}, + pos: position{line: 200, col: 19, offset: 6139}, val: ":!", ignoreCase: false, want: "\":!\"", }, &labeledExpr{ - pos: position{line: 199, col: 24, offset: 6113}, + pos: position{line: 200, col: 24, offset: 6144}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 199, col: 30, offset: 6119}, + pos: position{line: 200, col: 30, offset: 6150}, name: "AttributeName", }, }, &litMatcher{ - pos: position{line: 199, col: 45, offset: 6134}, + pos: position{line: 200, col: 45, offset: 6165}, val: ":", ignoreCase: false, want: "\":\"", }, &zeroOrMoreExpr{ - pos: position{line: 199, col: 49, offset: 6138}, + pos: position{line: 200, col: 49, offset: 6169}, expr: &ruleRefExpr{ - pos: position{line: 199, col: 49, offset: 6138}, + pos: position{line: 200, col: 49, offset: 6169}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 199, col: 56, offset: 6145}, + pos: position{line: 200, col: 56, offset: 6176}, name: "EOL", }, }, }, }, &actionExpr{ - pos: position{line: 201, col: 5, offset: 6205}, + pos: position{line: 202, col: 5, offset: 6236}, run: (*parser).callonAttributeReset11, expr: &seqExpr{ - pos: position{line: 201, col: 5, offset: 6205}, + pos: position{line: 202, col: 5, offset: 6236}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 201, col: 5, offset: 6205}, + pos: position{line: 202, col: 5, offset: 6236}, val: ":", ignoreCase: false, want: "\":\"", }, &labeledExpr{ - pos: position{line: 201, col: 9, offset: 6209}, + pos: position{line: 202, col: 9, offset: 6240}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 201, col: 15, offset: 6215}, + pos: position{line: 202, col: 15, offset: 6246}, name: "AttributeName", }, }, &litMatcher{ - pos: position{line: 201, col: 30, offset: 6230}, + pos: position{line: 202, col: 30, offset: 6261}, val: "!:", ignoreCase: false, want: "\"!:\"", }, &zeroOrMoreExpr{ - pos: position{line: 201, col: 35, offset: 6235}, + pos: position{line: 202, col: 35, offset: 6266}, expr: &ruleRefExpr{ - pos: position{line: 201, col: 35, offset: 6235}, + pos: position{line: 202, col: 35, offset: 6266}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 201, col: 42, offset: 6242}, + pos: position{line: 202, col: 42, offset: 6273}, name: "EOL", }, }, @@ -1312,16 +1337,16 @@ var g = &grammar{ }, { name: "AttributeSubstitution", - pos: position{line: 205, col: 1, offset: 6301}, + pos: position{line: 206, col: 1, offset: 6332}, expr: &choiceExpr{ - pos: position{line: 205, col: 26, offset: 6326}, + pos: position{line: 206, col: 26, offset: 6357}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 205, col: 26, offset: 6326}, + pos: position{line: 206, col: 26, offset: 6357}, name: "CounterSub", }, &ruleRefExpr{ - pos: position{line: 205, col: 39, offset: 6339}, + pos: position{line: 206, col: 39, offset: 6370}, name: "AttrSub", }, }, @@ -1329,29 +1354,29 @@ var g = &grammar{ }, { name: "AttrSub", - pos: position{line: 207, col: 1, offset: 6348}, + pos: position{line: 208, col: 1, offset: 6379}, expr: &actionExpr{ - pos: position{line: 207, col: 12, offset: 6359}, + pos: position{line: 208, col: 12, offset: 6390}, run: (*parser).callonAttrSub1, expr: &seqExpr{ - pos: position{line: 207, col: 12, offset: 6359}, + pos: position{line: 208, col: 12, offset: 6390}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 207, col: 12, offset: 6359}, + pos: position{line: 208, col: 12, offset: 6390}, val: "{", ignoreCase: false, want: "\"{\"", }, &labeledExpr{ - pos: position{line: 207, col: 16, offset: 6363}, + pos: position{line: 208, col: 16, offset: 6394}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 207, col: 21, offset: 6368}, + pos: position{line: 208, col: 21, offset: 6399}, name: "AttributeName", }, }, &litMatcher{ - pos: position{line: 207, col: 35, offset: 6382}, + pos: position{line: 208, col: 35, offset: 6413}, val: "}", ignoreCase: false, want: "\"}\"", @@ -1362,32 +1387,32 @@ var g = &grammar{ }, { name: "CounterSub", - pos: position{line: 211, col: 1, offset: 6448}, + pos: position{line: 212, col: 1, offset: 6479}, expr: &choiceExpr{ - pos: position{line: 211, col: 15, offset: 6462}, + pos: position{line: 212, col: 15, offset: 6493}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 211, col: 15, offset: 6462}, + pos: position{line: 212, col: 15, offset: 6493}, name: "CounterSub1", }, &ruleRefExpr{ - pos: position{line: 211, col: 29, offset: 6476}, + pos: position{line: 212, col: 29, offset: 6507}, name: "CounterSub2", }, &ruleRefExpr{ - pos: position{line: 211, col: 43, offset: 6490}, + pos: position{line: 212, col: 43, offset: 6521}, name: "CounterSubAlpha", }, &ruleRefExpr{ - pos: position{line: 211, col: 61, offset: 6508}, + pos: position{line: 212, col: 61, offset: 6539}, name: "CounterSubAlpha2", }, &ruleRefExpr{ - pos: position{line: 211, col: 80, offset: 6527}, + pos: position{line: 212, col: 80, offset: 6558}, name: "CounterSubStart", }, &ruleRefExpr{ - pos: position{line: 211, col: 98, offset: 6545}, + pos: position{line: 212, col: 98, offset: 6576}, name: "CounterSubStart2", }, }, @@ -1395,29 +1420,29 @@ var g = &grammar{ }, { name: "CounterSub1", - pos: position{line: 213, col: 1, offset: 6563}, + pos: position{line: 214, col: 1, offset: 6594}, expr: &actionExpr{ - pos: position{line: 213, col: 16, offset: 6578}, + pos: position{line: 214, col: 16, offset: 6609}, run: (*parser).callonCounterSub11, expr: &seqExpr{ - pos: position{line: 213, col: 16, offset: 6578}, + pos: position{line: 214, col: 16, offset: 6609}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 213, col: 16, offset: 6578}, + pos: position{line: 214, col: 16, offset: 6609}, val: "{counter:", ignoreCase: false, want: "\"{counter:\"", }, &labeledExpr{ - pos: position{line: 213, col: 28, offset: 6590}, + pos: position{line: 214, col: 28, offset: 6621}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 213, col: 33, offset: 6595}, + pos: position{line: 214, col: 33, offset: 6626}, name: "AttributeName", }, }, &litMatcher{ - pos: position{line: 213, col: 47, offset: 6609}, + pos: position{line: 214, col: 47, offset: 6640}, val: "}", ignoreCase: false, want: "\"}\"", @@ -1428,29 +1453,29 @@ var g = &grammar{ }, { name: "CounterSub2", - pos: position{line: 217, col: 1, offset: 6685}, + pos: position{line: 218, col: 1, offset: 6716}, expr: &actionExpr{ - pos: position{line: 217, col: 16, offset: 6700}, + pos: position{line: 218, col: 16, offset: 6731}, run: (*parser).callonCounterSub21, expr: &seqExpr{ - pos: position{line: 217, col: 16, offset: 6700}, + pos: position{line: 218, col: 16, offset: 6731}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 217, col: 16, offset: 6700}, + pos: position{line: 218, col: 16, offset: 6731}, val: "{counter2:", ignoreCase: false, want: "\"{counter2:\"", }, &labeledExpr{ - pos: position{line: 217, col: 29, offset: 6713}, + pos: position{line: 218, col: 29, offset: 6744}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 217, col: 34, offset: 6718}, + pos: position{line: 218, col: 34, offset: 6749}, name: "AttributeName", }, }, &litMatcher{ - pos: position{line: 217, col: 48, offset: 6732}, + pos: position{line: 218, col: 48, offset: 6763}, val: "}", ignoreCase: false, want: "\"}\"", @@ -1461,38 +1486,38 @@ var g = &grammar{ }, { name: "CounterSubAlpha", - pos: position{line: 221, col: 1, offset: 6807}, + pos: position{line: 222, col: 1, offset: 6838}, expr: &actionExpr{ - pos: position{line: 221, col: 20, offset: 6826}, + pos: position{line: 222, col: 20, offset: 6857}, run: (*parser).callonCounterSubAlpha1, expr: &seqExpr{ - pos: position{line: 221, col: 20, offset: 6826}, + pos: position{line: 222, col: 20, offset: 6857}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 221, col: 20, offset: 6826}, + pos: position{line: 222, col: 20, offset: 6857}, val: "{counter:", ignoreCase: false, want: "\"{counter:\"", }, &labeledExpr{ - pos: position{line: 221, col: 32, offset: 6838}, + pos: position{line: 222, col: 32, offset: 6869}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 221, col: 37, offset: 6843}, + pos: position{line: 222, col: 37, offset: 6874}, name: "AttributeName", }, }, &litMatcher{ - pos: position{line: 221, col: 51, offset: 6857}, + pos: position{line: 222, col: 51, offset: 6888}, val: ":", ignoreCase: false, want: "\":\"", }, &labeledExpr{ - pos: position{line: 221, col: 55, offset: 6861}, + pos: position{line: 222, col: 55, offset: 6892}, label: "start", expr: &charClassMatcher{ - pos: position{line: 221, col: 61, offset: 6867}, + pos: position{line: 222, col: 61, offset: 6898}, val: "[A-Za-z]", ranges: []rune{'A', 'Z', 'a', 'z'}, ignoreCase: false, @@ -1500,7 +1525,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 221, col: 70, offset: 6876}, + pos: position{line: 222, col: 70, offset: 6907}, val: "}", ignoreCase: false, want: "\"}\"", @@ -1511,38 +1536,38 @@ var g = &grammar{ }, { name: "CounterSubAlpha2", - pos: position{line: 225, col: 1, offset: 6954}, + pos: position{line: 226, col: 1, offset: 6985}, expr: &actionExpr{ - pos: position{line: 225, col: 21, offset: 6974}, + pos: position{line: 226, col: 21, offset: 7005}, run: (*parser).callonCounterSubAlpha21, expr: &seqExpr{ - pos: position{line: 225, col: 21, offset: 6974}, + pos: position{line: 226, col: 21, offset: 7005}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 225, col: 21, offset: 6974}, + pos: position{line: 226, col: 21, offset: 7005}, val: "{counter2:", ignoreCase: false, want: "\"{counter2:\"", }, &labeledExpr{ - pos: position{line: 225, col: 34, offset: 6987}, + pos: position{line: 226, col: 34, offset: 7018}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 225, col: 39, offset: 6992}, + pos: position{line: 226, col: 39, offset: 7023}, name: "AttributeName", }, }, &litMatcher{ - pos: position{line: 225, col: 53, offset: 7006}, + pos: position{line: 226, col: 53, offset: 7037}, val: ":", ignoreCase: false, want: "\":\"", }, &labeledExpr{ - pos: position{line: 225, col: 57, offset: 7010}, + pos: position{line: 226, col: 57, offset: 7041}, label: "start", expr: &charClassMatcher{ - pos: position{line: 225, col: 63, offset: 7016}, + pos: position{line: 226, col: 63, offset: 7047}, val: "[A-Za-z]", ranges: []rune{'A', 'Z', 'a', 'z'}, ignoreCase: false, @@ -1550,7 +1575,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 225, col: 72, offset: 7025}, + pos: position{line: 226, col: 72, offset: 7056}, val: "}", ignoreCase: false, want: "\"}\"", @@ -1561,43 +1586,43 @@ var g = &grammar{ }, { name: "CounterSubStart", - pos: position{line: 229, col: 1, offset: 7102}, + pos: position{line: 230, col: 1, offset: 7133}, expr: &actionExpr{ - pos: position{line: 229, col: 20, offset: 7121}, + pos: position{line: 230, col: 20, offset: 7152}, run: (*parser).callonCounterSubStart1, expr: &seqExpr{ - pos: position{line: 229, col: 20, offset: 7121}, + pos: position{line: 230, col: 20, offset: 7152}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 229, col: 20, offset: 7121}, + pos: position{line: 230, col: 20, offset: 7152}, val: "{counter:", ignoreCase: false, want: "\"{counter:\"", }, &labeledExpr{ - pos: position{line: 229, col: 32, offset: 7133}, + pos: position{line: 230, col: 32, offset: 7164}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 229, col: 37, offset: 7138}, + pos: position{line: 230, col: 37, offset: 7169}, name: "AttributeName", }, }, &litMatcher{ - pos: position{line: 229, col: 51, offset: 7152}, + pos: position{line: 230, col: 51, offset: 7183}, val: ":", ignoreCase: false, want: "\":\"", }, &labeledExpr{ - pos: position{line: 229, col: 55, offset: 7156}, + pos: position{line: 230, col: 55, offset: 7187}, label: "num", expr: &actionExpr{ - pos: position{line: 229, col: 60, offset: 7161}, + pos: position{line: 230, col: 60, offset: 7192}, run: (*parser).callonCounterSubStart8, expr: &oneOrMoreExpr{ - pos: position{line: 229, col: 60, offset: 7161}, + pos: position{line: 230, col: 60, offset: 7192}, expr: &charClassMatcher{ - pos: position{line: 229, col: 60, offset: 7161}, + pos: position{line: 230, col: 60, offset: 7192}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -1607,7 +1632,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 229, col: 108, offset: 7209}, + pos: position{line: 230, col: 108, offset: 7240}, val: "}", ignoreCase: false, want: "\"}\"", @@ -1618,43 +1643,43 @@ var g = &grammar{ }, { name: "CounterSubStart2", - pos: position{line: 233, col: 1, offset: 7291}, + pos: position{line: 234, col: 1, offset: 7322}, expr: &actionExpr{ - pos: position{line: 233, col: 21, offset: 7311}, + pos: position{line: 234, col: 21, offset: 7342}, run: (*parser).callonCounterSubStart21, expr: &seqExpr{ - pos: position{line: 233, col: 21, offset: 7311}, + pos: position{line: 234, col: 21, offset: 7342}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 233, col: 21, offset: 7311}, + pos: position{line: 234, col: 21, offset: 7342}, val: "{counter2:", ignoreCase: false, want: "\"{counter2:\"", }, &labeledExpr{ - pos: position{line: 233, col: 34, offset: 7324}, + pos: position{line: 234, col: 34, offset: 7355}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 233, col: 39, offset: 7329}, + pos: position{line: 234, col: 39, offset: 7360}, name: "AttributeName", }, }, &litMatcher{ - pos: position{line: 233, col: 53, offset: 7343}, + pos: position{line: 234, col: 53, offset: 7374}, val: ":", ignoreCase: false, want: "\":\"", }, &labeledExpr{ - pos: position{line: 233, col: 57, offset: 7347}, + pos: position{line: 234, col: 57, offset: 7378}, label: "num", expr: &actionExpr{ - pos: position{line: 233, col: 62, offset: 7352}, + pos: position{line: 234, col: 62, offset: 7383}, run: (*parser).callonCounterSubStart28, expr: &oneOrMoreExpr{ - pos: position{line: 233, col: 62, offset: 7352}, + pos: position{line: 234, col: 62, offset: 7383}, expr: &charClassMatcher{ - pos: position{line: 233, col: 62, offset: 7352}, + pos: position{line: 234, col: 62, offset: 7383}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -1664,7 +1689,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 233, col: 110, offset: 7400}, + pos: position{line: 234, col: 110, offset: 7431}, val: "}", ignoreCase: false, want: "\"}\"", @@ -1675,28 +1700,28 @@ var g = &grammar{ }, { name: "Attributes", - pos: position{line: 237, col: 1, offset: 7481}, + pos: position{line: 238, col: 1, offset: 7512}, expr: &actionExpr{ - pos: position{line: 237, col: 15, offset: 7495}, + pos: position{line: 238, col: 15, offset: 7526}, run: (*parser).callonAttributes1, expr: &seqExpr{ - pos: position{line: 237, col: 15, offset: 7495}, + pos: position{line: 238, col: 15, offset: 7526}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 237, col: 15, offset: 7495}, + pos: position{line: 238, col: 15, offset: 7526}, label: "attrs", expr: &oneOrMoreExpr{ - pos: position{line: 237, col: 21, offset: 7501}, + pos: position{line: 238, col: 21, offset: 7532}, expr: &ruleRefExpr{ - pos: position{line: 237, col: 22, offset: 7502}, + pos: position{line: 238, col: 22, offset: 7533}, name: "ElementAttribute", }, }, }, &zeroOrMoreExpr{ - pos: position{line: 237, col: 41, offset: 7521}, + pos: position{line: 238, col: 41, offset: 7552}, expr: &ruleRefExpr{ - pos: position{line: 237, col: 41, offset: 7521}, + pos: position{line: 238, col: 41, offset: 7552}, name: "BlankLine", }, }, @@ -1706,26 +1731,26 @@ var g = &grammar{ }, { name: "ElementAttribute", - pos: position{line: 241, col: 1, offset: 7591}, + pos: position{line: 242, col: 1, offset: 7622}, expr: &actionExpr{ - pos: position{line: 241, col: 21, offset: 7611}, + pos: position{line: 242, col: 21, offset: 7642}, run: (*parser).callonElementAttribute1, expr: &seqExpr{ - pos: position{line: 241, col: 21, offset: 7611}, + pos: position{line: 242, col: 21, offset: 7642}, exprs: []interface{}{ &andExpr{ - pos: position{line: 241, col: 21, offset: 7611}, + pos: position{line: 242, col: 21, offset: 7642}, expr: &choiceExpr{ - pos: position{line: 241, col: 23, offset: 7613}, + pos: position{line: 242, col: 23, offset: 7644}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 241, col: 23, offset: 7613}, + pos: position{line: 242, col: 23, offset: 7644}, val: "[", ignoreCase: false, want: "\"[\"", }, &litMatcher{ - pos: position{line: 241, col: 29, offset: 7619}, + pos: position{line: 242, col: 29, offset: 7650}, val: ".", ignoreCase: false, want: "\".\"", @@ -1734,49 +1759,49 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 242, col: 5, offset: 7696}, + pos: position{line: 243, col: 5, offset: 7727}, label: "attr", expr: &choiceExpr{ - pos: position{line: 242, col: 11, offset: 7702}, + pos: position{line: 243, col: 11, offset: 7733}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 242, col: 11, offset: 7702}, + pos: position{line: 243, col: 11, offset: 7733}, name: "ElementID", }, &ruleRefExpr{ - pos: position{line: 243, col: 9, offset: 7723}, + pos: position{line: 244, col: 9, offset: 7754}, name: "ElementTitle", }, &ruleRefExpr{ - pos: position{line: 244, col: 9, offset: 7747}, + pos: position{line: 245, col: 9, offset: 7778}, name: "ElementShortHandAttributes", }, &ruleRefExpr{ - pos: position{line: 245, col: 9, offset: 7784}, + pos: position{line: 246, col: 9, offset: 7815}, name: "LiteralAttribute", }, &ruleRefExpr{ - pos: position{line: 246, col: 9, offset: 7812}, + pos: position{line: 247, col: 9, offset: 7843}, name: "SourceAttributes", }, &ruleRefExpr{ - pos: position{line: 247, col: 9, offset: 7840}, + pos: position{line: 248, col: 9, offset: 7871}, name: "QuoteAttributes", }, &ruleRefExpr{ - pos: position{line: 248, col: 9, offset: 7867}, + pos: position{line: 249, col: 9, offset: 7898}, name: "VerseAttributes", }, &ruleRefExpr{ - pos: position{line: 249, col: 9, offset: 7894}, + pos: position{line: 250, col: 9, offset: 7925}, name: "AdmonitionMarkerAttribute", }, &ruleRefExpr{ - pos: position{line: 250, col: 9, offset: 7931}, + pos: position{line: 251, col: 9, offset: 7962}, name: "PassthroughBlockAttribute", }, &ruleRefExpr{ - pos: position{line: 251, col: 9, offset: 7967}, + pos: position{line: 252, col: 9, offset: 7998}, name: "AttributeGroup", }, }, @@ -1788,42 +1813,42 @@ var g = &grammar{ }, { name: "ElementID", - pos: position{line: 255, col: 1, offset: 8070}, + pos: position{line: 256, col: 1, offset: 8101}, expr: &actionExpr{ - pos: position{line: 255, col: 14, offset: 8083}, + pos: position{line: 256, col: 14, offset: 8114}, run: (*parser).callonElementID1, expr: &seqExpr{ - pos: position{line: 255, col: 14, offset: 8083}, + pos: position{line: 256, col: 14, offset: 8114}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 255, col: 14, offset: 8083}, + pos: position{line: 256, col: 14, offset: 8114}, val: "[[", ignoreCase: false, want: "\"[[\"", }, &labeledExpr{ - pos: position{line: 255, col: 19, offset: 8088}, + pos: position{line: 256, col: 19, offset: 8119}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 255, col: 23, offset: 8092}, + pos: position{line: 256, col: 23, offset: 8123}, name: "ID", }, }, &litMatcher{ - pos: position{line: 255, col: 27, offset: 8096}, + pos: position{line: 256, col: 27, offset: 8127}, val: "]]", ignoreCase: false, want: "\"]]\"", }, &zeroOrMoreExpr{ - pos: position{line: 255, col: 32, offset: 8101}, + pos: position{line: 256, col: 32, offset: 8132}, expr: &ruleRefExpr{ - pos: position{line: 255, col: 32, offset: 8101}, + pos: position{line: 256, col: 32, offset: 8132}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 255, col: 39, offset: 8108}, + pos: position{line: 256, col: 39, offset: 8139}, name: "EOL", }, }, @@ -1832,37 +1857,37 @@ var g = &grammar{ }, { name: "InlineElementID", - pos: position{line: 259, col: 1, offset: 8160}, + pos: position{line: 260, col: 1, offset: 8191}, expr: &actionExpr{ - pos: position{line: 259, col: 20, offset: 8179}, + pos: position{line: 260, col: 20, offset: 8210}, run: (*parser).callonInlineElementID1, expr: &seqExpr{ - pos: position{line: 259, col: 20, offset: 8179}, + pos: position{line: 260, col: 20, offset: 8210}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 259, col: 20, offset: 8179}, + pos: position{line: 260, col: 20, offset: 8210}, val: "[[", ignoreCase: false, want: "\"[[\"", }, &labeledExpr{ - pos: position{line: 259, col: 25, offset: 8184}, + pos: position{line: 260, col: 25, offset: 8215}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 259, col: 29, offset: 8188}, + pos: position{line: 260, col: 29, offset: 8219}, name: "ID", }, }, &litMatcher{ - pos: position{line: 259, col: 33, offset: 8192}, + pos: position{line: 260, col: 33, offset: 8223}, val: "]]", ignoreCase: false, want: "\"]]\"", }, &zeroOrMoreExpr{ - pos: position{line: 259, col: 38, offset: 8197}, + pos: position{line: 260, col: 38, offset: 8228}, expr: &ruleRefExpr{ - pos: position{line: 259, col: 38, offset: 8197}, + pos: position{line: 260, col: 38, offset: 8228}, name: "Space", }, }, @@ -1872,36 +1897,36 @@ var g = &grammar{ }, { name: "ElementTitle", - pos: position{line: 265, col: 1, offset: 8474}, + pos: position{line: 266, col: 1, offset: 8505}, expr: &actionExpr{ - pos: position{line: 265, col: 17, offset: 8490}, + pos: position{line: 266, col: 17, offset: 8521}, run: (*parser).callonElementTitle1, expr: &seqExpr{ - pos: position{line: 265, col: 17, offset: 8490}, + pos: position{line: 266, col: 17, offset: 8521}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 265, col: 17, offset: 8490}, + pos: position{line: 266, col: 17, offset: 8521}, val: ".", ignoreCase: false, want: "\".\"", }, &labeledExpr{ - pos: position{line: 265, col: 21, offset: 8494}, + pos: position{line: 266, col: 21, offset: 8525}, label: "title", expr: &ruleRefExpr{ - pos: position{line: 265, col: 28, offset: 8501}, + pos: position{line: 266, col: 28, offset: 8532}, name: "ElementTitleContent", }, }, &zeroOrMoreExpr{ - pos: position{line: 265, col: 49, offset: 8522}, + pos: position{line: 266, col: 49, offset: 8553}, expr: &ruleRefExpr{ - pos: position{line: 265, col: 49, offset: 8522}, + pos: position{line: 266, col: 49, offset: 8553}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 265, col: 56, offset: 8529}, + pos: position{line: 266, col: 56, offset: 8560}, name: "EOL", }, }, @@ -1910,15 +1935,15 @@ var g = &grammar{ }, { name: "ElementTitleContent", - pos: position{line: 269, col: 1, offset: 8587}, + pos: position{line: 270, col: 1, offset: 8618}, expr: &actionExpr{ - pos: position{line: 269, col: 24, offset: 8610}, + pos: position{line: 270, col: 24, offset: 8641}, run: (*parser).callonElementTitleContent1, expr: &seqExpr{ - pos: position{line: 269, col: 24, offset: 8610}, + pos: position{line: 270, col: 24, offset: 8641}, exprs: []interface{}{ &charClassMatcher{ - pos: position{line: 269, col: 24, offset: 8610}, + pos: position{line: 270, col: 24, offset: 8641}, val: "[\\pL0-9]", ranges: []rune{'0', '9'}, classes: []*unicode.RangeTable{rangeTable("L")}, @@ -1926,9 +1951,9 @@ var g = &grammar{ inverted: false, }, &zeroOrMoreExpr{ - pos: position{line: 269, col: 32, offset: 8618}, + pos: position{line: 270, col: 32, offset: 8649}, expr: &charClassMatcher{ - pos: position{line: 269, col: 32, offset: 8618}, + pos: position{line: 270, col: 32, offset: 8649}, val: "[^\\r\\n<>]", chars: []rune{'\r', '\n', '<', '>'}, ignoreCase: false, @@ -1941,36 +1966,36 @@ var g = &grammar{ }, { name: "ElementShortHandAttributes", - pos: position{line: 275, col: 1, offset: 8872}, + pos: position{line: 276, col: 1, offset: 8903}, expr: &actionExpr{ - pos: position{line: 275, col: 31, offset: 8902}, + pos: position{line: 276, col: 31, offset: 8933}, run: (*parser).callonElementShortHandAttributes1, expr: &seqExpr{ - pos: position{line: 275, col: 31, offset: 8902}, + pos: position{line: 276, col: 31, offset: 8933}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 275, col: 31, offset: 8902}, + pos: position{line: 276, col: 31, offset: 8933}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 275, col: 35, offset: 8906}, + pos: position{line: 276, col: 35, offset: 8937}, label: "attrs", expr: &seqExpr{ - pos: position{line: 275, col: 42, offset: 8913}, + pos: position{line: 276, col: 42, offset: 8944}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 275, col: 42, offset: 8913}, + pos: position{line: 276, col: 42, offset: 8944}, expr: &ruleRefExpr{ - pos: position{line: 275, col: 42, offset: 8913}, + pos: position{line: 276, col: 42, offset: 8944}, name: "ShortHandAttr", }, }, &zeroOrMoreExpr{ - pos: position{line: 275, col: 57, offset: 8928}, + pos: position{line: 276, col: 57, offset: 8959}, expr: &ruleRefExpr{ - pos: position{line: 275, col: 57, offset: 8928}, + pos: position{line: 276, col: 57, offset: 8959}, name: "NamedAttr", }, }, @@ -1978,20 +2003,20 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 275, col: 69, offset: 8940}, + pos: position{line: 276, col: 69, offset: 8971}, val: "]", ignoreCase: false, want: "\"]\"", }, &zeroOrMoreExpr{ - pos: position{line: 275, col: 73, offset: 8944}, + pos: position{line: 276, col: 73, offset: 8975}, expr: &ruleRefExpr{ - pos: position{line: 275, col: 73, offset: 8944}, + pos: position{line: 276, col: 73, offset: 8975}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 275, col: 80, offset: 8951}, + pos: position{line: 276, col: 80, offset: 8982}, name: "EOL", }, }, @@ -2000,20 +2025,20 @@ var g = &grammar{ }, { name: "BlockAttrs", - pos: position{line: 279, col: 1, offset: 9005}, + pos: position{line: 280, col: 1, offset: 9036}, expr: &choiceExpr{ - pos: position{line: 279, col: 15, offset: 9019}, + pos: position{line: 280, col: 15, offset: 9050}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 279, col: 15, offset: 9019}, + pos: position{line: 280, col: 15, offset: 9050}, name: "BlockAttrList", }, &ruleRefExpr{ - pos: position{line: 279, col: 31, offset: 9035}, + pos: position{line: 280, col: 31, offset: 9066}, name: "ElementTitle", }, &ruleRefExpr{ - pos: position{line: 279, col: 46, offset: 9050}, + pos: position{line: 280, col: 46, offset: 9081}, name: "ElementID", }, }, @@ -2021,57 +2046,57 @@ var g = &grammar{ }, { name: "BlockAttrList", - pos: position{line: 283, col: 1, offset: 9278}, + pos: position{line: 284, col: 1, offset: 9309}, expr: &actionExpr{ - pos: position{line: 283, col: 18, offset: 9295}, + pos: position{line: 284, col: 18, offset: 9326}, run: (*parser).callonBlockAttrList1, expr: &seqExpr{ - pos: position{line: 283, col: 18, offset: 9295}, + pos: position{line: 284, col: 18, offset: 9326}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 283, col: 18, offset: 9295}, + pos: position{line: 284, col: 18, offset: 9326}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 283, col: 22, offset: 9299}, + pos: position{line: 284, col: 22, offset: 9330}, label: "attrs", expr: &seqExpr{ - pos: position{line: 283, col: 29, offset: 9306}, + pos: position{line: 284, col: 29, offset: 9337}, exprs: []interface{}{ &zeroOrOneExpr{ - pos: position{line: 283, col: 29, offset: 9306}, + pos: position{line: 284, col: 29, offset: 9337}, expr: &ruleRefExpr{ - pos: position{line: 283, col: 29, offset: 9306}, + pos: position{line: 284, col: 29, offset: 9337}, name: "BlockAttrStyle", }, }, &zeroOrMoreExpr{ - pos: position{line: 283, col: 45, offset: 9322}, + pos: position{line: 284, col: 45, offset: 9353}, expr: &ruleRefExpr{ - pos: position{line: 283, col: 45, offset: 9322}, + pos: position{line: 284, col: 45, offset: 9353}, name: "ShortHandAttr", }, }, &zeroOrOneExpr{ - pos: position{line: 283, col: 60, offset: 9337}, + pos: position{line: 284, col: 60, offset: 9368}, expr: &ruleRefExpr{ - pos: position{line: 283, col: 60, offset: 9337}, + pos: position{line: 284, col: 60, offset: 9368}, name: "BlockAttrPositional2", }, }, &zeroOrOneExpr{ - pos: position{line: 283, col: 82, offset: 9359}, + pos: position{line: 284, col: 82, offset: 9390}, expr: &ruleRefExpr{ - pos: position{line: 283, col: 82, offset: 9359}, + pos: position{line: 284, col: 82, offset: 9390}, name: "BlockAttrPositional3", }, }, &zeroOrMoreExpr{ - pos: position{line: 283, col: 104, offset: 9381}, + pos: position{line: 284, col: 104, offset: 9412}, expr: &ruleRefExpr{ - pos: position{line: 283, col: 104, offset: 9381}, + pos: position{line: 284, col: 104, offset: 9412}, name: "NamedAttr", }, }, @@ -2079,13 +2104,13 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 283, col: 116, offset: 9393}, + pos: position{line: 284, col: 116, offset: 9424}, val: "]", ignoreCase: false, want: "\"]\"", }, &ruleRefExpr{ - pos: position{line: 283, col: 120, offset: 9397}, + pos: position{line: 284, col: 120, offset: 9428}, name: "EOL", }, }, @@ -2094,15 +2119,15 @@ var g = &grammar{ }, { name: "BlockAttrStyle", - pos: position{line: 287, col: 1, offset: 9451}, + pos: position{line: 288, col: 1, offset: 9482}, expr: &actionExpr{ - pos: position{line: 287, col: 19, offset: 9469}, + pos: position{line: 288, col: 19, offset: 9500}, run: (*parser).callonBlockAttrStyle1, expr: &labeledExpr{ - pos: position{line: 287, col: 19, offset: 9469}, + pos: position{line: 288, col: 19, offset: 9500}, label: "style", expr: &ruleRefExpr{ - pos: position{line: 287, col: 25, offset: 9475}, + pos: position{line: 288, col: 25, offset: 9506}, name: "PositionalValue", }, }, @@ -2110,40 +2135,40 @@ var g = &grammar{ }, { name: "BlockAttrPositional2", - pos: position{line: 291, col: 1, offset: 9545}, + pos: position{line: 292, col: 1, offset: 9576}, expr: &actionExpr{ - pos: position{line: 291, col: 25, offset: 9569}, + pos: position{line: 292, col: 25, offset: 9600}, run: (*parser).callonBlockAttrPositional21, expr: &seqExpr{ - pos: position{line: 291, col: 25, offset: 9569}, + pos: position{line: 292, col: 25, offset: 9600}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 291, col: 25, offset: 9569}, + pos: position{line: 292, col: 25, offset: 9600}, expr: &ruleRefExpr{ - pos: position{line: 291, col: 25, offset: 9569}, + pos: position{line: 292, col: 25, offset: 9600}, name: "Space", }, }, &litMatcher{ - pos: position{line: 291, col: 32, offset: 9576}, + pos: position{line: 292, col: 32, offset: 9607}, val: ",", ignoreCase: false, want: "\",\"", }, &zeroOrMoreExpr{ - pos: position{line: 291, col: 36, offset: 9580}, + pos: position{line: 292, col: 36, offset: 9611}, expr: &ruleRefExpr{ - pos: position{line: 291, col: 36, offset: 9580}, + pos: position{line: 292, col: 36, offset: 9611}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 291, col: 43, offset: 9587}, + pos: position{line: 292, col: 43, offset: 9618}, label: "value", expr: &zeroOrOneExpr{ - pos: position{line: 291, col: 49, offset: 9593}, + pos: position{line: 292, col: 49, offset: 9624}, expr: &ruleRefExpr{ - pos: position{line: 291, col: 49, offset: 9593}, + pos: position{line: 292, col: 49, offset: 9624}, name: "PositionalValue", }, }, @@ -2154,40 +2179,40 @@ var g = &grammar{ }, { name: "BlockAttrPositional3", - pos: position{line: 298, col: 1, offset: 9743}, + pos: position{line: 299, col: 1, offset: 9774}, expr: &actionExpr{ - pos: position{line: 298, col: 25, offset: 9767}, + pos: position{line: 299, col: 25, offset: 9798}, run: (*parser).callonBlockAttrPositional31, expr: &seqExpr{ - pos: position{line: 298, col: 25, offset: 9767}, + pos: position{line: 299, col: 25, offset: 9798}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 298, col: 25, offset: 9767}, + pos: position{line: 299, col: 25, offset: 9798}, expr: &ruleRefExpr{ - pos: position{line: 298, col: 25, offset: 9767}, + pos: position{line: 299, col: 25, offset: 9798}, name: "Space", }, }, &litMatcher{ - pos: position{line: 298, col: 32, offset: 9774}, + pos: position{line: 299, col: 32, offset: 9805}, val: ",", ignoreCase: false, want: "\",\"", }, &zeroOrMoreExpr{ - pos: position{line: 298, col: 36, offset: 9778}, + pos: position{line: 299, col: 36, offset: 9809}, expr: &ruleRefExpr{ - pos: position{line: 298, col: 36, offset: 9778}, + pos: position{line: 299, col: 36, offset: 9809}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 298, col: 43, offset: 9785}, + pos: position{line: 299, col: 43, offset: 9816}, label: "value", expr: &zeroOrOneExpr{ - pos: position{line: 298, col: 49, offset: 9791}, + pos: position{line: 299, col: 49, offset: 9822}, expr: &ruleRefExpr{ - pos: position{line: 298, col: 49, offset: 9791}, + pos: position{line: 299, col: 49, offset: 9822}, name: "PositionalValue", }, }, @@ -2198,28 +2223,28 @@ var g = &grammar{ }, { name: "LiteralAttribute", - pos: position{line: 305, col: 1, offset: 9941}, + pos: position{line: 306, col: 1, offset: 9972}, expr: &actionExpr{ - pos: position{line: 305, col: 21, offset: 9961}, + pos: position{line: 306, col: 21, offset: 9992}, run: (*parser).callonLiteralAttribute1, expr: &seqExpr{ - pos: position{line: 305, col: 21, offset: 9961}, + pos: position{line: 306, col: 21, offset: 9992}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 305, col: 21, offset: 9961}, + pos: position{line: 306, col: 21, offset: 9992}, val: "[literal]", ignoreCase: false, want: "\"[literal]\"", }, &zeroOrMoreExpr{ - pos: position{line: 305, col: 33, offset: 9973}, + pos: position{line: 306, col: 33, offset: 10004}, expr: &ruleRefExpr{ - pos: position{line: 305, col: 33, offset: 9973}, + pos: position{line: 306, col: 33, offset: 10004}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 305, col: 40, offset: 9980}, + pos: position{line: 306, col: 40, offset: 10011}, name: "Newline", }, }, @@ -2228,28 +2253,28 @@ var g = &grammar{ }, { name: "PassthroughBlockAttribute", - pos: position{line: 309, col: 1, offset: 10032}, + pos: position{line: 310, col: 1, offset: 10063}, expr: &actionExpr{ - pos: position{line: 309, col: 30, offset: 10061}, + pos: position{line: 310, col: 30, offset: 10092}, run: (*parser).callonPassthroughBlockAttribute1, expr: &seqExpr{ - pos: position{line: 309, col: 30, offset: 10061}, + pos: position{line: 310, col: 30, offset: 10092}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 309, col: 30, offset: 10061}, + pos: position{line: 310, col: 30, offset: 10092}, val: "[pass]", ignoreCase: false, want: "\"[pass]\"", }, &zeroOrMoreExpr{ - pos: position{line: 309, col: 39, offset: 10070}, + pos: position{line: 310, col: 39, offset: 10101}, expr: &ruleRefExpr{ - pos: position{line: 309, col: 39, offset: 10070}, + pos: position{line: 310, col: 39, offset: 10101}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 309, col: 46, offset: 10077}, + pos: position{line: 310, col: 46, offset: 10108}, name: "Newline", }, }, @@ -2258,42 +2283,42 @@ var g = &grammar{ }, { name: "AdmonitionMarkerAttribute", - pos: position{line: 314, col: 1, offset: 10218}, + pos: position{line: 315, col: 1, offset: 10249}, expr: &actionExpr{ - pos: position{line: 314, col: 30, offset: 10247}, + pos: position{line: 315, col: 30, offset: 10278}, run: (*parser).callonAdmonitionMarkerAttribute1, expr: &seqExpr{ - pos: position{line: 314, col: 30, offset: 10247}, + pos: position{line: 315, col: 30, offset: 10278}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 314, col: 30, offset: 10247}, + pos: position{line: 315, col: 30, offset: 10278}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 314, col: 34, offset: 10251}, + pos: position{line: 315, col: 34, offset: 10282}, label: "k", expr: &ruleRefExpr{ - pos: position{line: 314, col: 37, offset: 10254}, + pos: position{line: 315, col: 37, offset: 10285}, name: "AdmonitionKind", }, }, &litMatcher{ - pos: position{line: 314, col: 53, offset: 10270}, + pos: position{line: 315, col: 53, offset: 10301}, val: "]", ignoreCase: false, want: "\"]\"", }, &zeroOrMoreExpr{ - pos: position{line: 314, col: 57, offset: 10274}, + pos: position{line: 315, col: 57, offset: 10305}, expr: &ruleRefExpr{ - pos: position{line: 314, col: 57, offset: 10274}, + pos: position{line: 315, col: 57, offset: 10305}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 314, col: 64, offset: 10281}, + pos: position{line: 315, col: 64, offset: 10312}, name: "EOL", }, }, @@ -2302,43 +2327,43 @@ var g = &grammar{ }, { name: "SourceAttributes", - pos: position{line: 319, col: 1, offset: 10436}, + pos: position{line: 320, col: 1, offset: 10467}, expr: &actionExpr{ - pos: position{line: 319, col: 21, offset: 10456}, + pos: position{line: 320, col: 21, offset: 10487}, run: (*parser).callonSourceAttributes1, expr: &seqExpr{ - pos: position{line: 319, col: 21, offset: 10456}, + pos: position{line: 320, col: 21, offset: 10487}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 319, col: 21, offset: 10456}, + pos: position{line: 320, col: 21, offset: 10487}, val: "[source", ignoreCase: false, want: "\"[source\"", }, &labeledExpr{ - pos: position{line: 320, col: 5, offset: 10471}, + pos: position{line: 321, col: 5, offset: 10502}, label: "language", expr: &zeroOrOneExpr{ - pos: position{line: 320, col: 14, offset: 10480}, + pos: position{line: 321, col: 14, offset: 10511}, expr: &actionExpr{ - pos: position{line: 320, col: 15, offset: 10481}, + pos: position{line: 321, col: 15, offset: 10512}, run: (*parser).callonSourceAttributes6, expr: &seqExpr{ - pos: position{line: 320, col: 15, offset: 10481}, + pos: position{line: 321, col: 15, offset: 10512}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 320, col: 15, offset: 10481}, + pos: position{line: 321, col: 15, offset: 10512}, val: ",", ignoreCase: false, want: "\",\"", }, &labeledExpr{ - pos: position{line: 320, col: 19, offset: 10485}, + pos: position{line: 321, col: 19, offset: 10516}, label: "attr", expr: &zeroOrOneExpr{ - pos: position{line: 320, col: 24, offset: 10490}, + pos: position{line: 321, col: 24, offset: 10521}, expr: &ruleRefExpr{ - pos: position{line: 320, col: 25, offset: 10491}, + pos: position{line: 321, col: 25, offset: 10522}, name: "StandaloneAttributeValue", }, }, @@ -2349,29 +2374,29 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 321, col: 5, offset: 10546}, + pos: position{line: 322, col: 5, offset: 10577}, label: "others", expr: &zeroOrMoreExpr{ - pos: position{line: 321, col: 12, offset: 10553}, + pos: position{line: 322, col: 12, offset: 10584}, expr: &actionExpr{ - pos: position{line: 321, col: 13, offset: 10554}, + pos: position{line: 322, col: 13, offset: 10585}, run: (*parser).callonSourceAttributes14, expr: &seqExpr{ - pos: position{line: 321, col: 13, offset: 10554}, + pos: position{line: 322, col: 13, offset: 10585}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 321, col: 13, offset: 10554}, + pos: position{line: 322, col: 13, offset: 10585}, val: ",", ignoreCase: false, want: "\",\"", }, &labeledExpr{ - pos: position{line: 321, col: 17, offset: 10558}, + pos: position{line: 322, col: 17, offset: 10589}, label: "attr", expr: &zeroOrOneExpr{ - pos: position{line: 321, col: 22, offset: 10563}, + pos: position{line: 322, col: 22, offset: 10594}, expr: &ruleRefExpr{ - pos: position{line: 321, col: 23, offset: 10564}, + pos: position{line: 322, col: 23, offset: 10595}, name: "GenericAttribute", }, }, @@ -2382,20 +2407,20 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 322, col: 5, offset: 10611}, + pos: position{line: 323, col: 5, offset: 10642}, val: "]", ignoreCase: false, want: "\"]\"", }, &zeroOrMoreExpr{ - pos: position{line: 322, col: 9, offset: 10615}, + pos: position{line: 323, col: 9, offset: 10646}, expr: &ruleRefExpr{ - pos: position{line: 322, col: 9, offset: 10615}, + pos: position{line: 323, col: 9, offset: 10646}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 322, col: 16, offset: 10622}, + pos: position{line: 323, col: 16, offset: 10653}, name: "EOL", }, }, @@ -2404,45 +2429,45 @@ var g = &grammar{ }, { name: "AttributeGroup", - pos: position{line: 327, col: 1, offset: 10773}, + pos: position{line: 328, col: 1, offset: 10804}, expr: &actionExpr{ - pos: position{line: 327, col: 19, offset: 10791}, + pos: position{line: 328, col: 19, offset: 10822}, run: (*parser).callonAttributeGroup1, expr: &seqExpr{ - pos: position{line: 327, col: 19, offset: 10791}, + pos: position{line: 328, col: 19, offset: 10822}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 327, col: 19, offset: 10791}, + pos: position{line: 328, col: 19, offset: 10822}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 327, col: 23, offset: 10795}, + pos: position{line: 328, col: 23, offset: 10826}, label: "attributes", expr: &zeroOrMoreExpr{ - pos: position{line: 327, col: 34, offset: 10806}, + pos: position{line: 328, col: 34, offset: 10837}, expr: &ruleRefExpr{ - pos: position{line: 327, col: 35, offset: 10807}, + pos: position{line: 328, col: 35, offset: 10838}, name: "GenericAttribute", }, }, }, &litMatcher{ - pos: position{line: 327, col: 54, offset: 10826}, + pos: position{line: 328, col: 54, offset: 10857}, val: "]", ignoreCase: false, want: "\"]\"", }, &zeroOrMoreExpr{ - pos: position{line: 327, col: 58, offset: 10830}, + pos: position{line: 328, col: 58, offset: 10861}, expr: &ruleRefExpr{ - pos: position{line: 327, col: 58, offset: 10830}, + pos: position{line: 328, col: 58, offset: 10861}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 327, col: 65, offset: 10837}, + pos: position{line: 328, col: 65, offset: 10868}, name: "EOL", }, }, @@ -2451,16 +2476,16 @@ var g = &grammar{ }, { name: "GenericAttribute", - pos: position{line: 331, col: 1, offset: 10909}, + pos: position{line: 332, col: 1, offset: 10940}, expr: &choiceExpr{ - pos: position{line: 331, col: 21, offset: 10929}, + pos: position{line: 332, col: 21, offset: 10960}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 331, col: 21, offset: 10929}, + pos: position{line: 332, col: 21, offset: 10960}, name: "GenericAttributeWithValue", }, &ruleRefExpr{ - pos: position{line: 331, col: 49, offset: 10957}, + pos: position{line: 332, col: 49, offset: 10988}, name: "GenericAttributeWithoutValue", }, }, @@ -2468,51 +2493,51 @@ var g = &grammar{ }, { name: "GenericAttributeWithValue", - pos: position{line: 333, col: 1, offset: 10987}, + pos: position{line: 334, col: 1, offset: 11018}, expr: &actionExpr{ - pos: position{line: 333, col: 30, offset: 11016}, + pos: position{line: 334, col: 30, offset: 11047}, run: (*parser).callonGenericAttributeWithValue1, expr: &seqExpr{ - pos: position{line: 333, col: 30, offset: 11016}, + pos: position{line: 334, col: 30, offset: 11047}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 333, col: 30, offset: 11016}, + pos: position{line: 334, col: 30, offset: 11047}, label: "key", expr: &ruleRefExpr{ - pos: position{line: 333, col: 35, offset: 11021}, + pos: position{line: 334, col: 35, offset: 11052}, name: "AttributeKey", }, }, &litMatcher{ - pos: position{line: 333, col: 49, offset: 11035}, + pos: position{line: 334, col: 49, offset: 11066}, val: "=", ignoreCase: false, want: "\"=\"", }, &labeledExpr{ - pos: position{line: 333, col: 53, offset: 11039}, + pos: position{line: 334, col: 53, offset: 11070}, label: "value", expr: &zeroOrOneExpr{ - pos: position{line: 333, col: 59, offset: 11045}, + pos: position{line: 334, col: 59, offset: 11076}, expr: &ruleRefExpr{ - pos: position{line: 333, col: 60, offset: 11046}, + pos: position{line: 334, col: 60, offset: 11077}, name: "AttributeValue", }, }, }, &zeroOrOneExpr{ - pos: position{line: 333, col: 77, offset: 11063}, + pos: position{line: 334, col: 77, offset: 11094}, expr: &litMatcher{ - pos: position{line: 333, col: 77, offset: 11063}, + pos: position{line: 334, col: 77, offset: 11094}, val: ",", ignoreCase: false, want: "\",\"", }, }, &zeroOrMoreExpr{ - pos: position{line: 333, col: 82, offset: 11068}, + pos: position{line: 334, col: 82, offset: 11099}, expr: &ruleRefExpr{ - pos: position{line: 333, col: 82, offset: 11068}, + pos: position{line: 334, col: 82, offset: 11099}, name: "Space", }, }, @@ -2522,34 +2547,34 @@ var g = &grammar{ }, { name: "GenericAttributeWithoutValue", - pos: position{line: 337, col: 1, offset: 11167}, + pos: position{line: 338, col: 1, offset: 11198}, expr: &actionExpr{ - pos: position{line: 337, col: 33, offset: 11199}, + pos: position{line: 338, col: 33, offset: 11230}, run: (*parser).callonGenericAttributeWithoutValue1, expr: &seqExpr{ - pos: position{line: 337, col: 33, offset: 11199}, + pos: position{line: 338, col: 33, offset: 11230}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 337, col: 33, offset: 11199}, + pos: position{line: 338, col: 33, offset: 11230}, label: "key", expr: &ruleRefExpr{ - pos: position{line: 337, col: 38, offset: 11204}, + pos: position{line: 338, col: 38, offset: 11235}, name: "AttributeKey", }, }, &zeroOrOneExpr{ - pos: position{line: 337, col: 52, offset: 11218}, + pos: position{line: 338, col: 52, offset: 11249}, expr: &litMatcher{ - pos: position{line: 337, col: 52, offset: 11218}, + pos: position{line: 338, col: 52, offset: 11249}, val: ",", ignoreCase: false, want: "\",\"", }, }, &zeroOrMoreExpr{ - pos: position{line: 337, col: 57, offset: 11223}, + pos: position{line: 338, col: 57, offset: 11254}, expr: &ruleRefExpr{ - pos: position{line: 337, col: 57, offset: 11223}, + pos: position{line: 338, col: 57, offset: 11254}, name: "Space", }, }, @@ -2559,57 +2584,57 @@ var g = &grammar{ }, { name: "AttributeKey", - pos: position{line: 341, col: 1, offset: 11311}, + pos: position{line: 342, col: 1, offset: 11342}, expr: &actionExpr{ - pos: position{line: 341, col: 17, offset: 11327}, + pos: position{line: 342, col: 17, offset: 11358}, run: (*parser).callonAttributeKey1, expr: &seqExpr{ - pos: position{line: 341, col: 17, offset: 11327}, + pos: position{line: 342, col: 17, offset: 11358}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 341, col: 17, offset: 11327}, + pos: position{line: 342, col: 17, offset: 11358}, expr: &litMatcher{ - pos: position{line: 341, col: 18, offset: 11328}, + pos: position{line: 342, col: 18, offset: 11359}, val: "quote", ignoreCase: false, want: "\"quote\"", }, }, ¬Expr{ - pos: position{line: 341, col: 26, offset: 11336}, + pos: position{line: 342, col: 26, offset: 11367}, expr: &litMatcher{ - pos: position{line: 341, col: 27, offset: 11337}, + pos: position{line: 342, col: 27, offset: 11368}, val: "verse", ignoreCase: false, want: "\"verse\"", }, }, ¬Expr{ - pos: position{line: 341, col: 35, offset: 11345}, + pos: position{line: 342, col: 35, offset: 11376}, expr: &litMatcher{ - pos: position{line: 341, col: 36, offset: 11346}, + pos: position{line: 342, col: 36, offset: 11377}, val: "literal", ignoreCase: false, want: "\"literal\"", }, }, ¬Expr{ - pos: position{line: 341, col: 46, offset: 11356}, + pos: position{line: 342, col: 46, offset: 11387}, expr: &oneOrMoreExpr{ - pos: position{line: 341, col: 48, offset: 11358}, + pos: position{line: 342, col: 48, offset: 11389}, expr: &ruleRefExpr{ - pos: position{line: 341, col: 48, offset: 11358}, + pos: position{line: 342, col: 48, offset: 11389}, name: "Space", }, }, }, &labeledExpr{ - pos: position{line: 341, col: 56, offset: 11366}, + pos: position{line: 342, col: 56, offset: 11397}, label: "key", expr: &oneOrMoreExpr{ - pos: position{line: 341, col: 61, offset: 11371}, + pos: position{line: 342, col: 61, offset: 11402}, expr: &charClassMatcher{ - pos: position{line: 341, col: 61, offset: 11371}, + pos: position{line: 342, col: 61, offset: 11402}, val: "[^\\r\\n=,\\]]", chars: []rune{'\r', '\n', '=', ',', ']'}, ignoreCase: false, @@ -2618,9 +2643,9 @@ var g = &grammar{ }, }, &zeroOrMoreExpr{ - pos: position{line: 341, col: 75, offset: 11385}, + pos: position{line: 342, col: 75, offset: 11416}, expr: &ruleRefExpr{ - pos: position{line: 341, col: 75, offset: 11385}, + pos: position{line: 342, col: 75, offset: 11416}, name: "Space", }, }, @@ -2630,17 +2655,17 @@ var g = &grammar{ }, { name: "AttributeValue", - pos: position{line: 345, col: 1, offset: 11428}, + pos: position{line: 346, col: 1, offset: 11459}, expr: &actionExpr{ - pos: position{line: 345, col: 19, offset: 11446}, + pos: position{line: 346, col: 19, offset: 11477}, run: (*parser).callonAttributeValue1, expr: &labeledExpr{ - pos: position{line: 345, col: 19, offset: 11446}, + pos: position{line: 346, col: 19, offset: 11477}, label: "value", expr: &oneOrMoreExpr{ - pos: position{line: 345, col: 26, offset: 11453}, + pos: position{line: 346, col: 26, offset: 11484}, expr: &charClassMatcher{ - pos: position{line: 345, col: 26, offset: 11453}, + pos: position{line: 346, col: 26, offset: 11484}, val: "[^\\r\\n=,\\]]", chars: []rune{'\r', '\n', '=', ',', ']'}, ignoreCase: false, @@ -2652,20 +2677,20 @@ var g = &grammar{ }, { name: "StandaloneAttributeValue", - pos: position{line: 349, col: 1, offset: 11504}, + pos: position{line: 350, col: 1, offset: 11535}, expr: &actionExpr{ - pos: position{line: 349, col: 29, offset: 11532}, + pos: position{line: 350, col: 29, offset: 11563}, run: (*parser).callonStandaloneAttributeValue1, expr: &seqExpr{ - pos: position{line: 349, col: 29, offset: 11532}, + pos: position{line: 350, col: 29, offset: 11563}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 349, col: 29, offset: 11532}, + pos: position{line: 350, col: 29, offset: 11563}, label: "value", expr: &oneOrMoreExpr{ - pos: position{line: 349, col: 36, offset: 11539}, + pos: position{line: 350, col: 36, offset: 11570}, expr: &charClassMatcher{ - pos: position{line: 349, col: 36, offset: 11539}, + pos: position{line: 350, col: 36, offset: 11570}, val: "[^\\r\\n=,\\]]", chars: []rune{'\r', '\n', '=', ',', ']'}, ignoreCase: false, @@ -2674,9 +2699,9 @@ var g = &grammar{ }, }, ¬Expr{ - pos: position{line: 349, col: 50, offset: 11553}, + pos: position{line: 350, col: 50, offset: 11584}, expr: &litMatcher{ - pos: position{line: 349, col: 51, offset: 11554}, + pos: position{line: 350, col: 51, offset: 11585}, val: "=", ignoreCase: false, want: "\"=\"", @@ -2688,81 +2713,81 @@ var g = &grammar{ }, { name: "QuoteAttributes", - pos: position{line: 353, col: 1, offset: 11720}, + pos: position{line: 354, col: 1, offset: 11751}, expr: &actionExpr{ - pos: position{line: 353, col: 20, offset: 11739}, + pos: position{line: 354, col: 20, offset: 11770}, run: (*parser).callonQuoteAttributes1, expr: &seqExpr{ - pos: position{line: 353, col: 20, offset: 11739}, + pos: position{line: 354, col: 20, offset: 11770}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 353, col: 20, offset: 11739}, + pos: position{line: 354, col: 20, offset: 11770}, val: "[quote", ignoreCase: false, want: "\"[quote\"", }, &zeroOrMoreExpr{ - pos: position{line: 353, col: 29, offset: 11748}, + pos: position{line: 354, col: 29, offset: 11779}, expr: &ruleRefExpr{ - pos: position{line: 353, col: 29, offset: 11748}, + pos: position{line: 354, col: 29, offset: 11779}, name: "Space", }, }, &zeroOrOneExpr{ - pos: position{line: 353, col: 36, offset: 11755}, + pos: position{line: 354, col: 36, offset: 11786}, expr: &litMatcher{ - pos: position{line: 353, col: 36, offset: 11755}, + pos: position{line: 354, col: 36, offset: 11786}, val: ",", ignoreCase: false, want: "\",\"", }, }, &labeledExpr{ - pos: position{line: 353, col: 41, offset: 11760}, + pos: position{line: 354, col: 41, offset: 11791}, label: "author", expr: &zeroOrOneExpr{ - pos: position{line: 353, col: 48, offset: 11767}, + pos: position{line: 354, col: 48, offset: 11798}, expr: &ruleRefExpr{ - pos: position{line: 353, col: 49, offset: 11768}, + pos: position{line: 354, col: 49, offset: 11799}, name: "QuoteAttribute", }, }, }, &zeroOrOneExpr{ - pos: position{line: 353, col: 66, offset: 11785}, + pos: position{line: 354, col: 66, offset: 11816}, expr: &litMatcher{ - pos: position{line: 353, col: 66, offset: 11785}, + pos: position{line: 354, col: 66, offset: 11816}, val: ",", ignoreCase: false, want: "\",\"", }, }, &labeledExpr{ - pos: position{line: 353, col: 71, offset: 11790}, + pos: position{line: 354, col: 71, offset: 11821}, label: "title", expr: &zeroOrOneExpr{ - pos: position{line: 353, col: 77, offset: 11796}, + pos: position{line: 354, col: 77, offset: 11827}, expr: &ruleRefExpr{ - pos: position{line: 353, col: 78, offset: 11797}, + pos: position{line: 354, col: 78, offset: 11828}, name: "QuoteAttribute", }, }, }, &litMatcher{ - pos: position{line: 353, col: 95, offset: 11814}, + pos: position{line: 354, col: 95, offset: 11845}, val: "]", ignoreCase: false, want: "\"]\"", }, &zeroOrMoreExpr{ - pos: position{line: 353, col: 99, offset: 11818}, + pos: position{line: 354, col: 99, offset: 11849}, expr: &ruleRefExpr{ - pos: position{line: 353, col: 99, offset: 11818}, + pos: position{line: 354, col: 99, offset: 11849}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 353, col: 106, offset: 11825}, + pos: position{line: 354, col: 106, offset: 11856}, name: "EOL", }, }, @@ -2771,81 +2796,81 @@ var g = &grammar{ }, { name: "VerseAttributes", - pos: position{line: 357, col: 1, offset: 11894}, + pos: position{line: 358, col: 1, offset: 11925}, expr: &actionExpr{ - pos: position{line: 357, col: 20, offset: 11913}, + pos: position{line: 358, col: 20, offset: 11944}, run: (*parser).callonVerseAttributes1, expr: &seqExpr{ - pos: position{line: 357, col: 20, offset: 11913}, + pos: position{line: 358, col: 20, offset: 11944}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 357, col: 20, offset: 11913}, + pos: position{line: 358, col: 20, offset: 11944}, val: "[verse", ignoreCase: false, want: "\"[verse\"", }, &zeroOrMoreExpr{ - pos: position{line: 357, col: 29, offset: 11922}, + pos: position{line: 358, col: 29, offset: 11953}, expr: &ruleRefExpr{ - pos: position{line: 357, col: 29, offset: 11922}, + pos: position{line: 358, col: 29, offset: 11953}, name: "Space", }, }, &zeroOrOneExpr{ - pos: position{line: 357, col: 36, offset: 11929}, + pos: position{line: 358, col: 36, offset: 11960}, expr: &litMatcher{ - pos: position{line: 357, col: 36, offset: 11929}, + pos: position{line: 358, col: 36, offset: 11960}, val: ",", ignoreCase: false, want: "\",\"", }, }, &labeledExpr{ - pos: position{line: 357, col: 41, offset: 11934}, + pos: position{line: 358, col: 41, offset: 11965}, label: "author", expr: &zeroOrOneExpr{ - pos: position{line: 357, col: 48, offset: 11941}, + pos: position{line: 358, col: 48, offset: 11972}, expr: &ruleRefExpr{ - pos: position{line: 357, col: 49, offset: 11942}, + pos: position{line: 358, col: 49, offset: 11973}, name: "QuoteAttribute", }, }, }, &zeroOrOneExpr{ - pos: position{line: 357, col: 66, offset: 11959}, + pos: position{line: 358, col: 66, offset: 11990}, expr: &litMatcher{ - pos: position{line: 357, col: 66, offset: 11959}, + pos: position{line: 358, col: 66, offset: 11990}, val: ",", ignoreCase: false, want: "\",\"", }, }, &labeledExpr{ - pos: position{line: 357, col: 71, offset: 11964}, + pos: position{line: 358, col: 71, offset: 11995}, label: "title", expr: &zeroOrOneExpr{ - pos: position{line: 357, col: 77, offset: 11970}, + pos: position{line: 358, col: 77, offset: 12001}, expr: &ruleRefExpr{ - pos: position{line: 357, col: 78, offset: 11971}, + pos: position{line: 358, col: 78, offset: 12002}, name: "QuoteAttribute", }, }, }, &litMatcher{ - pos: position{line: 357, col: 95, offset: 11988}, + pos: position{line: 358, col: 95, offset: 12019}, val: "]", ignoreCase: false, want: "\"]\"", }, &zeroOrMoreExpr{ - pos: position{line: 357, col: 99, offset: 11992}, + pos: position{line: 358, col: 99, offset: 12023}, expr: &ruleRefExpr{ - pos: position{line: 357, col: 99, offset: 11992}, + pos: position{line: 358, col: 99, offset: 12023}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 357, col: 106, offset: 11999}, + pos: position{line: 358, col: 106, offset: 12030}, name: "EOL", }, }, @@ -2854,14 +2879,14 @@ var g = &grammar{ }, { name: "QuoteAttribute", - pos: position{line: 361, col: 1, offset: 12086}, + pos: position{line: 362, col: 1, offset: 12117}, expr: &actionExpr{ - pos: position{line: 361, col: 19, offset: 12104}, + pos: position{line: 362, col: 19, offset: 12135}, run: (*parser).callonQuoteAttribute1, expr: &zeroOrMoreExpr{ - pos: position{line: 361, col: 20, offset: 12105}, + pos: position{line: 362, col: 20, offset: 12136}, expr: &charClassMatcher{ - pos: position{line: 361, col: 20, offset: 12105}, + pos: position{line: 362, col: 20, offset: 12136}, val: "[^\\r\\n,\\]]", chars: []rune{'\r', '\n', ',', ']'}, ignoreCase: false, @@ -2872,43 +2897,43 @@ var g = &grammar{ }, { name: "QuotedTextAttrs", - pos: position{line: 365, col: 1, offset: 12154}, + pos: position{line: 366, col: 1, offset: 12185}, expr: &actionExpr{ - pos: position{line: 365, col: 20, offset: 12173}, + pos: position{line: 366, col: 20, offset: 12204}, run: (*parser).callonQuotedTextAttrs1, expr: &seqExpr{ - pos: position{line: 365, col: 20, offset: 12173}, + pos: position{line: 366, col: 20, offset: 12204}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 365, col: 20, offset: 12173}, + pos: position{line: 366, col: 20, offset: 12204}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 365, col: 24, offset: 12177}, + pos: position{line: 366, col: 24, offset: 12208}, label: "attrs", expr: &seqExpr{ - pos: position{line: 365, col: 31, offset: 12184}, + pos: position{line: 366, col: 31, offset: 12215}, exprs: []interface{}{ &zeroOrOneExpr{ - pos: position{line: 365, col: 31, offset: 12184}, + pos: position{line: 366, col: 31, offset: 12215}, expr: &ruleRefExpr{ - pos: position{line: 365, col: 31, offset: 12184}, + pos: position{line: 366, col: 31, offset: 12215}, name: "QuotedTextAttrRole", }, }, &zeroOrMoreExpr{ - pos: position{line: 365, col: 51, offset: 12204}, + pos: position{line: 366, col: 51, offset: 12235}, expr: &ruleRefExpr{ - pos: position{line: 365, col: 51, offset: 12204}, + pos: position{line: 366, col: 51, offset: 12235}, name: "ShortHandAttr", }, }, &zeroOrMoreExpr{ - pos: position{line: 365, col: 66, offset: 12219}, + pos: position{line: 366, col: 66, offset: 12250}, expr: &ruleRefExpr{ - pos: position{line: 365, col: 66, offset: 12219}, + pos: position{line: 366, col: 66, offset: 12250}, name: "NamedAttr", }, }, @@ -2916,7 +2941,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 365, col: 78, offset: 12231}, + pos: position{line: 366, col: 78, offset: 12262}, val: "]", ignoreCase: false, want: "\"]\"", @@ -2927,15 +2952,15 @@ var g = &grammar{ }, { name: "QuotedTextAttrRole", - pos: position{line: 369, col: 1, offset: 12285}, + pos: position{line: 370, col: 1, offset: 12316}, expr: &actionExpr{ - pos: position{line: 369, col: 23, offset: 12307}, + pos: position{line: 370, col: 23, offset: 12338}, run: (*parser).callonQuotedTextAttrRole1, expr: &labeledExpr{ - pos: position{line: 369, col: 23, offset: 12307}, + pos: position{line: 370, col: 23, offset: 12338}, label: "role", expr: &ruleRefExpr{ - pos: position{line: 369, col: 28, offset: 12312}, + pos: position{line: 370, col: 28, offset: 12343}, name: "PositionalValue", }, }, @@ -2943,33 +2968,33 @@ var g = &grammar{ }, { name: "StandaloneAttributes", - pos: position{line: 373, col: 1, offset: 12380}, + pos: position{line: 374, col: 1, offset: 12411}, expr: &actionExpr{ - pos: position{line: 373, col: 25, offset: 12404}, + pos: position{line: 374, col: 25, offset: 12435}, run: (*parser).callonStandaloneAttributes1, expr: &seqExpr{ - pos: position{line: 373, col: 25, offset: 12404}, + pos: position{line: 374, col: 25, offset: 12435}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 373, col: 25, offset: 12404}, + pos: position{line: 374, col: 25, offset: 12435}, label: "attributes", expr: &oneOrMoreExpr{ - pos: position{line: 373, col: 36, offset: 12415}, + pos: position{line: 374, col: 36, offset: 12446}, expr: &ruleRefExpr{ - pos: position{line: 373, col: 37, offset: 12416}, + pos: position{line: 374, col: 37, offset: 12447}, name: "ElementAttribute", }, }, }, &zeroOrMoreExpr{ - pos: position{line: 373, col: 56, offset: 12435}, + pos: position{line: 374, col: 56, offset: 12466}, expr: &ruleRefExpr{ - pos: position{line: 373, col: 56, offset: 12435}, + pos: position{line: 374, col: 56, offset: 12466}, name: "BlankLine", }, }, &ruleRefExpr{ - pos: position{line: 373, col: 67, offset: 12446}, + pos: position{line: 374, col: 67, offset: 12477}, name: "EOF", }, }, @@ -2978,20 +3003,20 @@ var g = &grammar{ }, { name: "ShortHandAttr", - pos: position{line: 377, col: 1, offset: 12554}, + pos: position{line: 378, col: 1, offset: 12585}, expr: &choiceExpr{ - pos: position{line: 377, col: 18, offset: 12571}, + pos: position{line: 378, col: 18, offset: 12602}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 377, col: 18, offset: 12571}, + pos: position{line: 378, col: 18, offset: 12602}, name: "ShortHandAttrID", }, &ruleRefExpr{ - pos: position{line: 377, col: 36, offset: 12589}, + pos: position{line: 378, col: 36, offset: 12620}, name: "ShortHandAttrOption", }, &ruleRefExpr{ - pos: position{line: 377, col: 58, offset: 12611}, + pos: position{line: 378, col: 58, offset: 12642}, name: "ShortHandAttrRole", }, }, @@ -2999,31 +3024,31 @@ var g = &grammar{ }, { name: "ShortHandAttrOption", - pos: position{line: 379, col: 1, offset: 12630}, + pos: position{line: 380, col: 1, offset: 12661}, expr: &actionExpr{ - pos: position{line: 379, col: 24, offset: 12653}, + pos: position{line: 380, col: 24, offset: 12684}, run: (*parser).callonShortHandAttrOption1, expr: &seqExpr{ - pos: position{line: 379, col: 24, offset: 12653}, + pos: position{line: 380, col: 24, offset: 12684}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 379, col: 24, offset: 12653}, + pos: position{line: 380, col: 24, offset: 12684}, val: "%", ignoreCase: false, want: "\"%\"", }, &labeledExpr{ - pos: position{line: 379, col: 28, offset: 12657}, + pos: position{line: 380, col: 28, offset: 12688}, label: "option", expr: &ruleRefExpr{ - pos: position{line: 379, col: 35, offset: 12664}, + pos: position{line: 380, col: 35, offset: 12695}, name: "ShortHandValue", }, }, &andExpr{ - pos: position{line: 379, col: 50, offset: 12679}, + pos: position{line: 380, col: 50, offset: 12710}, expr: &charClassMatcher{ - pos: position{line: 379, col: 51, offset: 12680}, + pos: position{line: 380, col: 51, offset: 12711}, val: "[,#%.\\r\\n\\]]", chars: []rune{',', '#', '%', '.', '\r', '\n', ']'}, ignoreCase: false, @@ -3036,31 +3061,31 @@ var g = &grammar{ }, { name: "ShortHandAttrID", - pos: position{line: 383, col: 1, offset: 12749}, + pos: position{line: 384, col: 1, offset: 12780}, expr: &actionExpr{ - pos: position{line: 383, col: 20, offset: 12768}, + pos: position{line: 384, col: 20, offset: 12799}, run: (*parser).callonShortHandAttrID1, expr: &seqExpr{ - pos: position{line: 383, col: 20, offset: 12768}, + pos: position{line: 384, col: 20, offset: 12799}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 383, col: 20, offset: 12768}, + pos: position{line: 384, col: 20, offset: 12799}, val: "#", ignoreCase: false, want: "\"#\"", }, &labeledExpr{ - pos: position{line: 383, col: 24, offset: 12772}, + pos: position{line: 384, col: 24, offset: 12803}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 383, col: 27, offset: 12775}, + pos: position{line: 384, col: 27, offset: 12806}, name: "ShortHandValue", }, }, &andExpr{ - pos: position{line: 383, col: 42, offset: 12790}, + pos: position{line: 384, col: 42, offset: 12821}, expr: &charClassMatcher{ - pos: position{line: 383, col: 43, offset: 12791}, + pos: position{line: 384, col: 43, offset: 12822}, val: "[,#%.\\r\\n\\]]", chars: []rune{',', '#', '%', '.', '\r', '\n', ']'}, ignoreCase: false, @@ -3073,31 +3098,31 @@ var g = &grammar{ }, { name: "ShortHandAttrRole", - pos: position{line: 387, col: 1, offset: 12852}, + pos: position{line: 388, col: 1, offset: 12883}, expr: &actionExpr{ - pos: position{line: 387, col: 22, offset: 12873}, + pos: position{line: 388, col: 22, offset: 12904}, run: (*parser).callonShortHandAttrRole1, expr: &seqExpr{ - pos: position{line: 387, col: 22, offset: 12873}, + pos: position{line: 388, col: 22, offset: 12904}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 387, col: 22, offset: 12873}, + pos: position{line: 388, col: 22, offset: 12904}, val: ".", ignoreCase: false, want: "\".\"", }, &labeledExpr{ - pos: position{line: 387, col: 26, offset: 12877}, + pos: position{line: 388, col: 26, offset: 12908}, label: "role", expr: &ruleRefExpr{ - pos: position{line: 387, col: 31, offset: 12882}, + pos: position{line: 388, col: 31, offset: 12913}, name: "ShortHandValue", }, }, &andExpr{ - pos: position{line: 387, col: 46, offset: 12897}, + pos: position{line: 388, col: 46, offset: 12928}, expr: &charClassMatcher{ - pos: position{line: 387, col: 47, offset: 12898}, + pos: position{line: 388, col: 47, offset: 12929}, val: "[,#%.\\r\\n\\]]", chars: []rune{',', '#', '%', '.', '\r', '\n', ']'}, ignoreCase: false, @@ -3110,25 +3135,25 @@ var g = &grammar{ }, { name: "PositionalValue", - pos: position{line: 392, col: 1, offset: 13007}, + pos: position{line: 393, col: 1, offset: 13038}, expr: &actionExpr{ - pos: position{line: 392, col: 20, offset: 13026}, + pos: position{line: 393, col: 20, offset: 13057}, run: (*parser).callonPositionalValue1, expr: &seqExpr{ - pos: position{line: 392, col: 20, offset: 13026}, + pos: position{line: 393, col: 20, offset: 13057}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 392, col: 20, offset: 13026}, + pos: position{line: 393, col: 20, offset: 13057}, label: "value", expr: &ruleRefExpr{ - pos: position{line: 392, col: 26, offset: 13032}, + pos: position{line: 393, col: 26, offset: 13063}, name: "ShortHandValue", }, }, &andExpr{ - pos: position{line: 392, col: 41, offset: 13047}, + pos: position{line: 393, col: 41, offset: 13078}, expr: &charClassMatcher{ - pos: position{line: 392, col: 42, offset: 13048}, + pos: position{line: 393, col: 42, offset: 13079}, val: "[,#%.\\]]", chars: []rune{',', '#', '%', '.', ']'}, ignoreCase: false, @@ -3141,24 +3166,24 @@ var g = &grammar{ }, { name: "InlineVal", - pos: position{line: 396, col: 1, offset: 13093}, + pos: position{line: 397, col: 1, offset: 13124}, expr: &choiceExpr{ - pos: position{line: 396, col: 14, offset: 13106}, + pos: position{line: 397, col: 14, offset: 13137}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 396, col: 14, offset: 13106}, + pos: position{line: 397, col: 14, offset: 13137}, name: "AttrEmpty", }, &ruleRefExpr{ - pos: position{line: 396, col: 26, offset: 13118}, + pos: position{line: 397, col: 26, offset: 13149}, name: "AttrValSQ", }, &ruleRefExpr{ - pos: position{line: 396, col: 38, offset: 13130}, + pos: position{line: 397, col: 38, offset: 13161}, name: "AttrValDQ", }, &ruleRefExpr{ - pos: position{line: 396, col: 50, offset: 13142}, + pos: position{line: 397, col: 50, offset: 13173}, name: "AttrValPosFB", }, }, @@ -3166,17 +3191,17 @@ var g = &grammar{ }, { name: "NamedAttrs", - pos: position{line: 398, col: 1, offset: 13156}, + pos: position{line: 399, col: 1, offset: 13187}, expr: &actionExpr{ - pos: position{line: 398, col: 15, offset: 13170}, + pos: position{line: 399, col: 15, offset: 13201}, run: (*parser).callonNamedAttrs1, expr: &labeledExpr{ - pos: position{line: 398, col: 15, offset: 13170}, + pos: position{line: 399, col: 15, offset: 13201}, label: "attrs", expr: &zeroOrMoreExpr{ - pos: position{line: 398, col: 21, offset: 13176}, + pos: position{line: 399, col: 21, offset: 13207}, expr: &ruleRefExpr{ - pos: position{line: 398, col: 21, offset: 13176}, + pos: position{line: 399, col: 21, offset: 13207}, name: "NamedAttrPair", }, }, @@ -3185,66 +3210,66 @@ var g = &grammar{ }, { name: "NamedAttrPair", - pos: position{line: 402, col: 1, offset: 13241}, + pos: position{line: 403, col: 1, offset: 13272}, expr: &actionExpr{ - pos: position{line: 402, col: 18, offset: 13258}, + pos: position{line: 403, col: 18, offset: 13289}, run: (*parser).callonNamedAttrPair1, expr: &seqExpr{ - pos: position{line: 402, col: 18, offset: 13258}, + pos: position{line: 403, col: 18, offset: 13289}, exprs: []interface{}{ &zeroOrOneExpr{ - pos: position{line: 402, col: 18, offset: 13258}, + pos: position{line: 403, col: 18, offset: 13289}, expr: &litMatcher{ - pos: position{line: 402, col: 18, offset: 13258}, + pos: position{line: 403, col: 18, offset: 13289}, val: ",", ignoreCase: false, want: "\",\"", }, }, &zeroOrMoreExpr{ - pos: position{line: 402, col: 23, offset: 13263}, + pos: position{line: 403, col: 23, offset: 13294}, expr: &ruleRefExpr{ - pos: position{line: 402, col: 23, offset: 13263}, + pos: position{line: 403, col: 23, offset: 13294}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 402, col: 30, offset: 13270}, + pos: position{line: 403, col: 30, offset: 13301}, label: "n", expr: &ruleRefExpr{ - pos: position{line: 402, col: 32, offset: 13272}, + pos: position{line: 403, col: 32, offset: 13303}, name: "NamedAttrKey", }, }, &zeroOrMoreExpr{ - pos: position{line: 402, col: 45, offset: 13285}, + pos: position{line: 403, col: 45, offset: 13316}, expr: &ruleRefExpr{ - pos: position{line: 402, col: 45, offset: 13285}, + pos: position{line: 403, col: 45, offset: 13316}, name: "Space", }, }, &litMatcher{ - pos: position{line: 402, col: 52, offset: 13292}, + pos: position{line: 403, col: 52, offset: 13323}, val: "=", ignoreCase: false, want: "\"=\"", }, &labeledExpr{ - pos: position{line: 402, col: 56, offset: 13296}, + pos: position{line: 403, col: 56, offset: 13327}, label: "v", expr: &choiceExpr{ - pos: position{line: 402, col: 59, offset: 13299}, + pos: position{line: 403, col: 59, offset: 13330}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 402, col: 59, offset: 13299}, + pos: position{line: 403, col: 59, offset: 13330}, name: "AttrValDQ", }, &ruleRefExpr{ - pos: position{line: 402, col: 71, offset: 13311}, + pos: position{line: 403, col: 71, offset: 13342}, name: "AttrValSQ", }, &ruleRefExpr{ - pos: position{line: 402, col: 83, offset: 13323}, + pos: position{line: 403, col: 83, offset: 13354}, name: "AttrValNamedFB", }, }, @@ -3256,17 +3281,17 @@ var g = &grammar{ }, { name: "AttrEmpty", - pos: position{line: 407, col: 1, offset: 13512}, + pos: position{line: 408, col: 1, offset: 13543}, expr: &actionExpr{ - pos: position{line: 407, col: 14, offset: 13525}, + pos: position{line: 408, col: 14, offset: 13556}, run: (*parser).callonAttrEmpty1, expr: &seqExpr{ - pos: position{line: 407, col: 14, offset: 13525}, + pos: position{line: 408, col: 14, offset: 13556}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 407, col: 14, offset: 13525}, + pos: position{line: 408, col: 14, offset: 13556}, expr: &charClassMatcher{ - pos: position{line: 407, col: 14, offset: 13525}, + pos: position{line: 408, col: 14, offset: 13556}, val: "[ \\t]", chars: []rune{' ', '\t'}, ignoreCase: false, @@ -3274,9 +3299,9 @@ var g = &grammar{ }, }, &andExpr{ - pos: position{line: 407, col: 21, offset: 13532}, + pos: position{line: 408, col: 21, offset: 13563}, expr: &charClassMatcher{ - pos: position{line: 407, col: 22, offset: 13533}, + pos: position{line: 408, col: 22, offset: 13564}, val: "[,\\]]", chars: []rune{',', ']'}, ignoreCase: false, @@ -3289,51 +3314,51 @@ var g = &grammar{ }, { name: "AttrValSQ", - pos: position{line: 413, col: 1, offset: 13669}, + pos: position{line: 414, col: 1, offset: 13700}, expr: &actionExpr{ - pos: position{line: 413, col: 14, offset: 13682}, + pos: position{line: 414, col: 14, offset: 13713}, run: (*parser).callonAttrValSQ1, expr: &seqExpr{ - pos: position{line: 413, col: 14, offset: 13682}, + pos: position{line: 414, col: 14, offset: 13713}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 413, col: 14, offset: 13682}, + pos: position{line: 414, col: 14, offset: 13713}, expr: &ruleRefExpr{ - pos: position{line: 413, col: 14, offset: 13682}, + pos: position{line: 414, col: 14, offset: 13713}, name: "Space", }, }, &litMatcher{ - pos: position{line: 413, col: 21, offset: 13689}, + pos: position{line: 414, col: 21, offset: 13720}, val: "'", ignoreCase: false, want: "\"'\"", }, &labeledExpr{ - pos: position{line: 413, col: 25, offset: 13693}, + pos: position{line: 414, col: 25, offset: 13724}, label: "val", expr: &ruleRefExpr{ - pos: position{line: 413, col: 29, offset: 13697}, + pos: position{line: 414, col: 29, offset: 13728}, name: "AttrValSQin", }, }, &litMatcher{ - pos: position{line: 413, col: 41, offset: 13709}, + pos: position{line: 414, col: 41, offset: 13740}, val: "'", ignoreCase: false, want: "\"'\"", }, &zeroOrMoreExpr{ - pos: position{line: 413, col: 45, offset: 13713}, + pos: position{line: 414, col: 45, offset: 13744}, expr: &ruleRefExpr{ - pos: position{line: 413, col: 45, offset: 13713}, + pos: position{line: 414, col: 45, offset: 13744}, name: "Space", }, }, &andExpr{ - pos: position{line: 413, col: 52, offset: 13720}, + pos: position{line: 414, col: 52, offset: 13751}, expr: &charClassMatcher{ - pos: position{line: 413, col: 53, offset: 13721}, + pos: position{line: 414, col: 53, offset: 13752}, val: "[,\\]]", chars: []rune{',', ']'}, ignoreCase: false, @@ -3346,26 +3371,26 @@ var g = &grammar{ }, { name: "AttrValSQin", - pos: position{line: 415, col: 1, offset: 13748}, + pos: position{line: 416, col: 1, offset: 13779}, expr: &actionExpr{ - pos: position{line: 415, col: 16, offset: 13763}, + pos: position{line: 416, col: 16, offset: 13794}, run: (*parser).callonAttrValSQin1, expr: &labeledExpr{ - pos: position{line: 415, col: 16, offset: 13763}, + pos: position{line: 416, col: 16, offset: 13794}, label: "val", expr: &zeroOrMoreExpr{ - pos: position{line: 415, col: 20, offset: 13767}, + pos: position{line: 416, col: 20, offset: 13798}, expr: &choiceExpr{ - pos: position{line: 415, col: 22, offset: 13769}, + pos: position{line: 416, col: 22, offset: 13800}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 415, col: 22, offset: 13769}, + pos: position{line: 416, col: 22, offset: 13800}, name: "AttrValSQEsc", }, &oneOrMoreExpr{ - pos: position{line: 415, col: 37, offset: 13784}, + pos: position{line: 416, col: 37, offset: 13815}, expr: &charClassMatcher{ - pos: position{line: 415, col: 37, offset: 13784}, + pos: position{line: 416, col: 37, offset: 13815}, val: "[^\\r\\n'\\\\]", chars: []rune{'\r', '\n', '\'', '\\'}, ignoreCase: false, @@ -3373,7 +3398,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 415, col: 51, offset: 13798}, + pos: position{line: 416, col: 51, offset: 13829}, val: "\\", ignoreCase: false, want: "\"\\\\\"", @@ -3386,12 +3411,12 @@ var g = &grammar{ }, { name: "AttrValSQEsc", - pos: position{line: 417, col: 1, offset: 13838}, + pos: position{line: 418, col: 1, offset: 13869}, expr: &actionExpr{ - pos: position{line: 417, col: 17, offset: 13854}, + pos: position{line: 418, col: 17, offset: 13885}, run: (*parser).callonAttrValSQEsc1, expr: &litMatcher{ - pos: position{line: 417, col: 17, offset: 13854}, + pos: position{line: 418, col: 17, offset: 13885}, val: "\\'", ignoreCase: false, want: "\"\\\\'\"", @@ -3400,44 +3425,44 @@ var g = &grammar{ }, { name: "AttrValDQ", - pos: position{line: 420, col: 1, offset: 13914}, + pos: position{line: 421, col: 1, offset: 13945}, expr: &actionExpr{ - pos: position{line: 420, col: 14, offset: 13927}, + pos: position{line: 421, col: 14, offset: 13958}, run: (*parser).callonAttrValDQ1, expr: &seqExpr{ - pos: position{line: 420, col: 14, offset: 13927}, + pos: position{line: 421, col: 14, offset: 13958}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 420, col: 14, offset: 13927}, + pos: position{line: 421, col: 14, offset: 13958}, expr: &ruleRefExpr{ - pos: position{line: 420, col: 14, offset: 13927}, + pos: position{line: 421, col: 14, offset: 13958}, name: "Space", }, }, &litMatcher{ - pos: position{line: 420, col: 21, offset: 13934}, + pos: position{line: 421, col: 21, offset: 13965}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, &labeledExpr{ - pos: position{line: 420, col: 25, offset: 13938}, + pos: position{line: 421, col: 25, offset: 13969}, label: "val", expr: &ruleRefExpr{ - pos: position{line: 420, col: 29, offset: 13942}, + pos: position{line: 421, col: 29, offset: 13973}, name: "AttrValDQin", }, }, &litMatcher{ - pos: position{line: 420, col: 41, offset: 13954}, + pos: position{line: 421, col: 41, offset: 13985}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, &zeroOrMoreExpr{ - pos: position{line: 420, col: 45, offset: 13958}, + pos: position{line: 421, col: 45, offset: 13989}, expr: &ruleRefExpr{ - pos: position{line: 420, col: 45, offset: 13958}, + pos: position{line: 421, col: 45, offset: 13989}, name: "Space", }, }, @@ -3447,26 +3472,26 @@ var g = &grammar{ }, { name: "AttrValDQin", - pos: position{line: 422, col: 1, offset: 13986}, + pos: position{line: 423, col: 1, offset: 14017}, expr: &actionExpr{ - pos: position{line: 422, col: 16, offset: 14001}, + pos: position{line: 423, col: 16, offset: 14032}, run: (*parser).callonAttrValDQin1, expr: &labeledExpr{ - pos: position{line: 422, col: 16, offset: 14001}, + pos: position{line: 423, col: 16, offset: 14032}, label: "val", expr: &zeroOrMoreExpr{ - pos: position{line: 422, col: 20, offset: 14005}, + pos: position{line: 423, col: 20, offset: 14036}, expr: &choiceExpr{ - pos: position{line: 422, col: 22, offset: 14007}, + pos: position{line: 423, col: 22, offset: 14038}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 422, col: 22, offset: 14007}, + pos: position{line: 423, col: 22, offset: 14038}, name: "AttrValDQEsc", }, &oneOrMoreExpr{ - pos: position{line: 422, col: 37, offset: 14022}, + pos: position{line: 423, col: 37, offset: 14053}, expr: &charClassMatcher{ - pos: position{line: 422, col: 37, offset: 14022}, + pos: position{line: 423, col: 37, offset: 14053}, val: "[^\\r\\n\"\\\\]", chars: []rune{'\r', '\n', '"', '\\'}, ignoreCase: false, @@ -3474,7 +3499,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 422, col: 51, offset: 14036}, + pos: position{line: 423, col: 51, offset: 14067}, val: "\\", ignoreCase: false, want: "\"\\\\\"", @@ -3487,12 +3512,12 @@ var g = &grammar{ }, { name: "AttrValDQEsc", - pos: position{line: 424, col: 1, offset: 14076}, + pos: position{line: 425, col: 1, offset: 14107}, expr: &actionExpr{ - pos: position{line: 424, col: 17, offset: 14092}, + pos: position{line: 425, col: 17, offset: 14123}, run: (*parser).callonAttrValDQEsc1, expr: &litMatcher{ - pos: position{line: 424, col: 17, offset: 14092}, + pos: position{line: 425, col: 17, offset: 14123}, val: "\\\"", ignoreCase: false, want: "\"\\\\\\\"\"", @@ -3501,17 +3526,17 @@ var g = &grammar{ }, { name: "AttrValPosFB", - pos: position{line: 427, col: 1, offset: 14183}, + pos: position{line: 428, col: 1, offset: 14214}, expr: &actionExpr{ - pos: position{line: 427, col: 17, offset: 14199}, + pos: position{line: 428, col: 17, offset: 14230}, run: (*parser).callonAttrValPosFB1, expr: &seqExpr{ - pos: position{line: 427, col: 17, offset: 14199}, + pos: position{line: 428, col: 17, offset: 14230}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 427, col: 17, offset: 14199}, + pos: position{line: 428, col: 17, offset: 14230}, expr: &charClassMatcher{ - pos: position{line: 427, col: 17, offset: 14199}, + pos: position{line: 428, col: 17, offset: 14230}, val: "[^,=\\r\\n\\]]", chars: []rune{',', '=', '\r', '\n', ']'}, ignoreCase: false, @@ -3519,9 +3544,9 @@ var g = &grammar{ }, }, &andExpr{ - pos: position{line: 427, col: 30, offset: 14212}, + pos: position{line: 428, col: 30, offset: 14243}, expr: &charClassMatcher{ - pos: position{line: 427, col: 31, offset: 14213}, + pos: position{line: 428, col: 31, offset: 14244}, val: "[,\\]]", chars: []rune{',', ']'}, ignoreCase: false, @@ -3534,17 +3559,17 @@ var g = &grammar{ }, { name: "AttrValNamedFB", - pos: position{line: 430, col: 1, offset: 14324}, + pos: position{line: 431, col: 1, offset: 14355}, expr: &actionExpr{ - pos: position{line: 430, col: 19, offset: 14342}, + pos: position{line: 431, col: 19, offset: 14373}, run: (*parser).callonAttrValNamedFB1, expr: &seqExpr{ - pos: position{line: 430, col: 19, offset: 14342}, + pos: position{line: 431, col: 19, offset: 14373}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 430, col: 19, offset: 14342}, + pos: position{line: 431, col: 19, offset: 14373}, expr: &charClassMatcher{ - pos: position{line: 430, col: 19, offset: 14342}, + pos: position{line: 431, col: 19, offset: 14373}, val: "[^,\\r\\n\\]]", chars: []rune{',', '\r', '\n', ']'}, ignoreCase: false, @@ -3552,9 +3577,9 @@ var g = &grammar{ }, }, &andExpr{ - pos: position{line: 430, col: 31, offset: 14354}, + pos: position{line: 431, col: 31, offset: 14385}, expr: &charClassMatcher{ - pos: position{line: 430, col: 32, offset: 14355}, + pos: position{line: 431, col: 32, offset: 14386}, val: "[,\\]]", chars: []rune{',', ']'}, ignoreCase: false, @@ -3567,20 +3592,20 @@ var g = &grammar{ }, { name: "ShortHandValue", - pos: position{line: 432, col: 1, offset: 14412}, + pos: position{line: 433, col: 1, offset: 14443}, expr: &choiceExpr{ - pos: position{line: 432, col: 19, offset: 14430}, + pos: position{line: 433, col: 19, offset: 14461}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 432, col: 19, offset: 14430}, + pos: position{line: 433, col: 19, offset: 14461}, name: "ShortHandValuePlain", }, &ruleRefExpr{ - pos: position{line: 432, col: 41, offset: 14452}, + pos: position{line: 433, col: 41, offset: 14483}, name: "AttrValueSingleQuoted", }, &ruleRefExpr{ - pos: position{line: 432, col: 65, offset: 14476}, + pos: position{line: 433, col: 65, offset: 14507}, name: "AttrValueDoubleQuoted", }, }, @@ -3588,44 +3613,44 @@ var g = &grammar{ }, { name: "ShortHandValuePlain", - pos: position{line: 436, col: 1, offset: 14674}, + pos: position{line: 437, col: 1, offset: 14705}, expr: &actionExpr{ - pos: position{line: 436, col: 24, offset: 14697}, + pos: position{line: 437, col: 24, offset: 14728}, run: (*parser).callonShortHandValuePlain1, expr: &seqExpr{ - pos: position{line: 436, col: 24, offset: 14697}, + pos: position{line: 437, col: 24, offset: 14728}, exprs: []interface{}{ &charClassMatcher{ - pos: position{line: 436, col: 24, offset: 14697}, + pos: position{line: 437, col: 24, offset: 14728}, val: "[^,\\r\\n\"' \\t.#%=\\]]", chars: []rune{',', '\r', '\n', '"', '\'', ' ', '\t', '.', '#', '%', '=', ']'}, ignoreCase: false, inverted: true, }, &zeroOrMoreExpr{ - pos: position{line: 436, col: 45, offset: 14718}, + pos: position{line: 437, col: 45, offset: 14749}, expr: &choiceExpr{ - pos: position{line: 436, col: 46, offset: 14719}, + pos: position{line: 437, col: 46, offset: 14750}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 436, col: 46, offset: 14719}, + pos: position{line: 437, col: 46, offset: 14750}, val: "[^ \\t,\\r\\n\"'.#%=\\]]", chars: []rune{' ', '\t', ',', '\r', '\n', '"', '\'', '.', '#', '%', '=', ']'}, ignoreCase: false, inverted: true, }, &seqExpr{ - pos: position{line: 436, col: 68, offset: 14741}, + pos: position{line: 437, col: 68, offset: 14772}, exprs: []interface{}{ &charClassMatcher{ - pos: position{line: 436, col: 68, offset: 14741}, + pos: position{line: 437, col: 68, offset: 14772}, val: "[ \\t]", chars: []rune{' ', '\t'}, ignoreCase: false, inverted: false, }, &charClassMatcher{ - pos: position{line: 436, col: 73, offset: 14746}, + pos: position{line: 437, col: 73, offset: 14777}, val: "[^ \\t,\\r\\n\"'.#%=\\]]", chars: []rune{' ', '\t', ',', '\r', '\n', '"', '\'', '.', '#', '%', '=', ']'}, ignoreCase: false, @@ -3642,28 +3667,28 @@ var g = &grammar{ }, { name: "NamedAttr", - pos: position{line: 440, col: 1, offset: 14804}, + pos: position{line: 441, col: 1, offset: 14835}, expr: &actionExpr{ - pos: position{line: 440, col: 13, offset: 14816}, + pos: position{line: 441, col: 13, offset: 14847}, run: (*parser).callonNamedAttr1, expr: &seqExpr{ - pos: position{line: 440, col: 13, offset: 14816}, + pos: position{line: 441, col: 13, offset: 14847}, exprs: []interface{}{ &zeroOrOneExpr{ - pos: position{line: 440, col: 13, offset: 14816}, + pos: position{line: 441, col: 13, offset: 14847}, expr: &seqExpr{ - pos: position{line: 440, col: 15, offset: 14818}, + pos: position{line: 441, col: 15, offset: 14849}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 440, col: 15, offset: 14818}, + pos: position{line: 441, col: 15, offset: 14849}, val: ",", ignoreCase: false, want: "\",\"", }, &zeroOrMoreExpr{ - pos: position{line: 440, col: 19, offset: 14822}, + pos: position{line: 441, col: 19, offset: 14853}, expr: &ruleRefExpr{ - pos: position{line: 440, col: 19, offset: 14822}, + pos: position{line: 441, col: 19, offset: 14853}, name: "Space", }, }, @@ -3671,45 +3696,45 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 440, col: 29, offset: 14832}, + pos: position{line: 441, col: 29, offset: 14863}, label: "key", expr: &ruleRefExpr{ - pos: position{line: 440, col: 33, offset: 14836}, + pos: position{line: 441, col: 33, offset: 14867}, name: "NamedAttrKey", }, }, &zeroOrMoreExpr{ - pos: position{line: 440, col: 46, offset: 14849}, + pos: position{line: 441, col: 46, offset: 14880}, expr: &ruleRefExpr{ - pos: position{line: 440, col: 46, offset: 14849}, + pos: position{line: 441, col: 46, offset: 14880}, name: "Space", }, }, &litMatcher{ - pos: position{line: 440, col: 53, offset: 14856}, + pos: position{line: 441, col: 53, offset: 14887}, val: "=", ignoreCase: false, want: "\"=\"", }, &zeroOrMoreExpr{ - pos: position{line: 440, col: 57, offset: 14860}, + pos: position{line: 441, col: 57, offset: 14891}, expr: &ruleRefExpr{ - pos: position{line: 440, col: 57, offset: 14860}, + pos: position{line: 441, col: 57, offset: 14891}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 440, col: 64, offset: 14867}, + pos: position{line: 441, col: 64, offset: 14898}, label: "value", expr: &ruleRefExpr{ - pos: position{line: 440, col: 70, offset: 14873}, + pos: position{line: 441, col: 70, offset: 14904}, name: "NamedAttrValue", }, }, &zeroOrMoreExpr{ - pos: position{line: 440, col: 85, offset: 14888}, + pos: position{line: 441, col: 85, offset: 14919}, expr: &ruleRefExpr{ - pos: position{line: 440, col: 85, offset: 14888}, + pos: position{line: 441, col: 85, offset: 14919}, name: "Space", }, }, @@ -3719,15 +3744,15 @@ var g = &grammar{ }, { name: "NamedAttrKey", - pos: position{line: 445, col: 1, offset: 15078}, + pos: position{line: 446, col: 1, offset: 15109}, expr: &actionExpr{ - pos: position{line: 445, col: 17, offset: 15094}, + pos: position{line: 446, col: 17, offset: 15125}, run: (*parser).callonNamedAttrKey1, expr: &seqExpr{ - pos: position{line: 445, col: 17, offset: 15094}, + pos: position{line: 446, col: 17, offset: 15125}, exprs: []interface{}{ &charClassMatcher{ - pos: position{line: 445, col: 17, offset: 15094}, + pos: position{line: 446, col: 17, offset: 15125}, val: "[\\pL0-9_]", chars: []rune{'_'}, ranges: []rune{'0', '9'}, @@ -3736,9 +3761,9 @@ var g = &grammar{ inverted: false, }, &zeroOrMoreExpr{ - pos: position{line: 445, col: 26, offset: 15103}, + pos: position{line: 446, col: 26, offset: 15134}, expr: &charClassMatcher{ - pos: position{line: 445, col: 26, offset: 15103}, + pos: position{line: 446, col: 26, offset: 15134}, val: "[\\pL0-9_-]", chars: []rune{'_', '-'}, ranges: []rune{'0', '9'}, @@ -3753,24 +3778,24 @@ var g = &grammar{ }, { name: "NamedAttrValue", - pos: position{line: 449, col: 1, offset: 15151}, + pos: position{line: 450, col: 1, offset: 15182}, expr: &choiceExpr{ - pos: position{line: 449, col: 19, offset: 15169}, + pos: position{line: 450, col: 19, offset: 15200}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 449, col: 19, offset: 15169}, + pos: position{line: 450, col: 19, offset: 15200}, name: "AttrValueNone", }, &ruleRefExpr{ - pos: position{line: 449, col: 35, offset: 15185}, + pos: position{line: 450, col: 35, offset: 15216}, name: "AttrValueSingleQuoted", }, &ruleRefExpr{ - pos: position{line: 449, col: 59, offset: 15209}, + pos: position{line: 450, col: 59, offset: 15240}, name: "AttrValueDoubleQuoted", }, &ruleRefExpr{ - pos: position{line: 449, col: 83, offset: 15233}, + pos: position{line: 450, col: 83, offset: 15264}, name: "AttrValuePlain", }, }, @@ -3778,14 +3803,14 @@ var g = &grammar{ }, { name: "AttrValuePlain", - pos: position{line: 451, col: 1, offset: 15249}, + pos: position{line: 452, col: 1, offset: 15280}, expr: &actionExpr{ - pos: position{line: 451, col: 19, offset: 15267}, + pos: position{line: 452, col: 19, offset: 15298}, run: (*parser).callonAttrValuePlain1, expr: &oneOrMoreExpr{ - pos: position{line: 451, col: 19, offset: 15267}, + pos: position{line: 452, col: 19, offset: 15298}, expr: &charClassMatcher{ - pos: position{line: 451, col: 19, offset: 15267}, + pos: position{line: 452, col: 19, offset: 15298}, val: "[^,\\r\\n\"' \\t\\]]", chars: []rune{',', '\r', '\n', '"', '\'', ' ', '\t', ']'}, ignoreCase: false, @@ -3796,23 +3821,23 @@ var g = &grammar{ }, { name: "AttrValueSingleQuoted", - pos: position{line: 455, col: 1, offset: 15320}, + pos: position{line: 456, col: 1, offset: 15351}, expr: &actionExpr{ - pos: position{line: 455, col: 26, offset: 15345}, + pos: position{line: 456, col: 26, offset: 15376}, run: (*parser).callonAttrValueSingleQuoted1, expr: &seqExpr{ - pos: position{line: 455, col: 26, offset: 15345}, + pos: position{line: 456, col: 26, offset: 15376}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 455, col: 26, offset: 15345}, + pos: position{line: 456, col: 26, offset: 15376}, val: "'", ignoreCase: false, want: "\"'\"", }, &oneOrMoreExpr{ - pos: position{line: 455, col: 30, offset: 15349}, + pos: position{line: 456, col: 30, offset: 15380}, expr: &charClassMatcher{ - pos: position{line: 455, col: 30, offset: 15349}, + pos: position{line: 456, col: 30, offset: 15380}, val: "[^'\\r\\n]", chars: []rune{'\'', '\r', '\n'}, ignoreCase: false, @@ -3820,7 +3845,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 455, col: 40, offset: 15359}, + pos: position{line: 456, col: 40, offset: 15390}, val: "'", ignoreCase: false, want: "\"'\"", @@ -3831,23 +3856,23 @@ var g = &grammar{ }, { name: "AttrValueDoubleQuoted", - pos: position{line: 459, col: 1, offset: 15416}, + pos: position{line: 460, col: 1, offset: 15447}, expr: &actionExpr{ - pos: position{line: 459, col: 26, offset: 15441}, + pos: position{line: 460, col: 26, offset: 15472}, run: (*parser).callonAttrValueDoubleQuoted1, expr: &seqExpr{ - pos: position{line: 459, col: 26, offset: 15441}, + pos: position{line: 460, col: 26, offset: 15472}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 459, col: 26, offset: 15441}, + pos: position{line: 460, col: 26, offset: 15472}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, &oneOrMoreExpr{ - pos: position{line: 459, col: 31, offset: 15446}, + pos: position{line: 460, col: 31, offset: 15477}, expr: &charClassMatcher{ - pos: position{line: 459, col: 31, offset: 15446}, + pos: position{line: 460, col: 31, offset: 15477}, val: "[^\"\\r\\n]", chars: []rune{'"', '\r', '\n'}, ignoreCase: false, @@ -3855,7 +3880,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 459, col: 41, offset: 15456}, + pos: position{line: 460, col: 41, offset: 15487}, val: "\"", ignoreCase: false, want: "\"\\\"\"", @@ -3866,12 +3891,12 @@ var g = &grammar{ }, { name: "AttrValueNone", - pos: position{line: 465, col: 1, offset: 15711}, + pos: position{line: 466, col: 1, offset: 15742}, expr: &actionExpr{ - pos: position{line: 465, col: 18, offset: 15728}, + pos: position{line: 466, col: 18, offset: 15759}, run: (*parser).callonAttrValueNone1, expr: &litMatcher{ - pos: position{line: 465, col: 18, offset: 15728}, + pos: position{line: 466, col: 18, offset: 15759}, val: "None", ignoreCase: false, want: "\"None\"", @@ -3880,16 +3905,16 @@ var g = &grammar{ }, { name: "QuotedString", - pos: position{line: 473, col: 1, offset: 15910}, + pos: position{line: 474, col: 1, offset: 15965}, expr: &choiceExpr{ - pos: position{line: 473, col: 17, offset: 15926}, + pos: position{line: 474, col: 17, offset: 15981}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 473, col: 17, offset: 15926}, + pos: position{line: 474, col: 17, offset: 15981}, name: "SingleQuotedString", }, &ruleRefExpr{ - pos: position{line: 473, col: 38, offset: 15947}, + pos: position{line: 474, col: 38, offset: 16002}, name: "DoubleQuotedString", }, }, @@ -3897,27 +3922,27 @@ var g = &grammar{ }, { name: "SingleQuotedString", - pos: position{line: 475, col: 1, offset: 15967}, + pos: position{line: 476, col: 1, offset: 16022}, expr: &actionExpr{ - pos: position{line: 475, col: 23, offset: 15989}, + pos: position{line: 476, col: 23, offset: 16044}, run: (*parser).callonSingleQuotedString1, expr: &seqExpr{ - pos: position{line: 475, col: 23, offset: 15989}, + pos: position{line: 476, col: 23, offset: 16044}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 475, col: 23, offset: 15989}, + pos: position{line: 476, col: 23, offset: 16044}, name: "SingleQuoteStringStart", }, &labeledExpr{ - pos: position{line: 475, col: 46, offset: 16012}, + pos: position{line: 476, col: 46, offset: 16067}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 475, col: 55, offset: 16021}, + pos: position{line: 476, col: 55, offset: 16076}, name: "SingleQuotedStringElements", }, }, &ruleRefExpr{ - pos: position{line: 475, col: 82, offset: 16048}, + pos: position{line: 476, col: 82, offset: 16103}, name: "SingleQuoteStringEnd", }, }, @@ -3926,17 +3951,17 @@ var g = &grammar{ }, { name: "SingleQuotedStringElements", - pos: position{line: 479, col: 1, offset: 16152}, + pos: position{line: 480, col: 1, offset: 16207}, expr: &actionExpr{ - pos: position{line: 479, col: 31, offset: 16182}, + pos: position{line: 480, col: 31, offset: 16237}, run: (*parser).callonSingleQuotedStringElements1, expr: &labeledExpr{ - pos: position{line: 479, col: 31, offset: 16182}, + pos: position{line: 480, col: 31, offset: 16237}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 479, col: 41, offset: 16192}, + pos: position{line: 480, col: 41, offset: 16247}, expr: &ruleRefExpr{ - pos: position{line: 479, col: 41, offset: 16192}, + pos: position{line: 480, col: 41, offset: 16247}, name: "SingleQuotedStringElement", }, }, @@ -3945,20 +3970,20 @@ var g = &grammar{ }, { name: "SingleQuoteStringStart", - pos: position{line: 483, col: 1, offset: 16270}, + pos: position{line: 484, col: 1, offset: 16325}, expr: &seqExpr{ - pos: position{line: 483, col: 27, offset: 16296}, + pos: position{line: 484, col: 27, offset: 16351}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 483, col: 27, offset: 16296}, + pos: position{line: 484, col: 27, offset: 16351}, val: "'`", ignoreCase: false, want: "\"'`\"", }, ¬Expr{ - pos: position{line: 483, col: 32, offset: 16301}, + pos: position{line: 484, col: 32, offset: 16356}, expr: &charClassMatcher{ - pos: position{line: 483, col: 33, offset: 16302}, + pos: position{line: 484, col: 33, offset: 16357}, val: "[ \\t\\r\\n]", chars: []rune{' ', '\t', '\r', '\n'}, ignoreCase: false, @@ -3970,9 +3995,9 @@ var g = &grammar{ }, { name: "SingleQuoteStringEnd", - pos: position{line: 485, col: 1, offset: 16313}, + pos: position{line: 486, col: 1, offset: 16368}, expr: &litMatcher{ - pos: position{line: 485, col: 25, offset: 16337}, + pos: position{line: 486, col: 25, offset: 16392}, val: "`'", ignoreCase: false, want: "\"`'\"", @@ -3980,145 +4005,145 @@ var g = &grammar{ }, { name: "SingleQuotedStringElement", - pos: position{line: 488, col: 1, offset: 16425}, + pos: position{line: 489, col: 1, offset: 16480}, expr: &actionExpr{ - pos: position{line: 488, col: 30, offset: 16454}, + pos: position{line: 489, col: 30, offset: 16509}, run: (*parser).callonSingleQuotedStringElement1, expr: &labeledExpr{ - pos: position{line: 488, col: 30, offset: 16454}, + pos: position{line: 489, col: 30, offset: 16509}, label: "element", expr: &choiceExpr{ - pos: position{line: 489, col: 9, offset: 16472}, + pos: position{line: 490, col: 9, offset: 16527}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 489, col: 9, offset: 16472}, + pos: position{line: 490, col: 9, offset: 16527}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 489, col: 9, offset: 16472}, + pos: position{line: 490, col: 9, offset: 16527}, name: "LineBreak", }, ¬Expr{ - pos: position{line: 489, col: 19, offset: 16482}, + pos: position{line: 490, col: 19, offset: 16537}, expr: &ruleRefExpr{ - pos: position{line: 489, col: 20, offset: 16483}, + pos: position{line: 490, col: 20, offset: 16538}, name: "SingleQuoteStringEnd", }, }, }, }, &seqExpr{ - pos: position{line: 490, col: 11, offset: 16539}, + pos: position{line: 491, col: 11, offset: 16594}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 490, col: 11, offset: 16539}, + pos: position{line: 491, col: 11, offset: 16594}, expr: &ruleRefExpr{ - pos: position{line: 490, col: 11, offset: 16539}, + pos: position{line: 491, col: 11, offset: 16594}, name: "Space", }, }, ¬Expr{ - pos: position{line: 490, col: 18, offset: 16546}, + pos: position{line: 491, col: 18, offset: 16601}, expr: &ruleRefExpr{ - pos: position{line: 490, col: 19, offset: 16547}, + pos: position{line: 491, col: 19, offset: 16602}, name: "SingleQuoteStringEnd", }, }, }, }, &seqExpr{ - pos: position{line: 491, col: 11, offset: 16578}, + pos: position{line: 492, col: 11, offset: 16633}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 491, col: 11, offset: 16578}, + pos: position{line: 492, col: 11, offset: 16633}, expr: &litMatcher{ - pos: position{line: 491, col: 12, offset: 16579}, + pos: position{line: 492, col: 12, offset: 16634}, val: "`", ignoreCase: false, want: "\"`\"", }, }, &ruleRefExpr{ - pos: position{line: 491, col: 16, offset: 16583}, + pos: position{line: 492, col: 16, offset: 16638}, name: "Symbol", }, }, }, &ruleRefExpr{ - pos: position{line: 492, col: 11, offset: 16631}, + pos: position{line: 493, col: 11, offset: 16686}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 493, col: 11, offset: 16652}, + pos: position{line: 494, col: 11, offset: 16707}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 494, col: 11, offset: 16674}, + pos: position{line: 495, col: 11, offset: 16729}, name: "InlineFootnote", }, &ruleRefExpr{ - pos: position{line: 495, col: 11, offset: 16699}, + pos: position{line: 496, col: 11, offset: 16754}, name: "InlinePassthrough", }, &ruleRefExpr{ - pos: position{line: 496, col: 11, offset: 16788}, + pos: position{line: 497, col: 11, offset: 16843}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 497, col: 11, offset: 16803}, + pos: position{line: 498, col: 11, offset: 16858}, name: "AttributeSubstitution", }, &ruleRefExpr{ - pos: position{line: 498, col: 11, offset: 16835}, + pos: position{line: 499, col: 11, offset: 16890}, name: "BoldText", }, &ruleRefExpr{ - pos: position{line: 499, col: 11, offset: 16854}, + pos: position{line: 500, col: 11, offset: 16909}, name: "ItalicText", }, &ruleRefExpr{ - pos: position{line: 500, col: 11, offset: 16875}, + pos: position{line: 501, col: 11, offset: 16930}, name: "MarkedText", }, &ruleRefExpr{ - pos: position{line: 501, col: 11, offset: 16896}, + pos: position{line: 502, col: 11, offset: 16951}, name: "SubscriptText", }, &ruleRefExpr{ - pos: position{line: 502, col: 11, offset: 16920}, + pos: position{line: 503, col: 11, offset: 16975}, name: "SuperscriptText", }, &seqExpr{ - pos: position{line: 503, col: 11, offset: 16946}, + pos: position{line: 504, col: 11, offset: 17001}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 503, col: 11, offset: 16946}, + pos: position{line: 504, col: 11, offset: 17001}, expr: &litMatcher{ - pos: position{line: 503, col: 12, offset: 16947}, + pos: position{line: 504, col: 12, offset: 17002}, val: "`'", ignoreCase: false, want: "\"`'\"", }, }, &ruleRefExpr{ - pos: position{line: 503, col: 17, offset: 16952}, + pos: position{line: 504, col: 17, offset: 17007}, name: "MonospaceText", }, }, }, &ruleRefExpr{ - pos: position{line: 504, col: 11, offset: 16976}, + pos: position{line: 505, col: 11, offset: 17031}, name: "DoubleQuotedString", }, &ruleRefExpr{ - pos: position{line: 505, col: 11, offset: 17005}, + pos: position{line: 506, col: 11, offset: 17060}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 506, col: 11, offset: 17033}, + pos: position{line: 507, col: 11, offset: 17088}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 507, col: 11, offset: 17060}, + pos: position{line: 508, col: 11, offset: 17115}, name: "SingleQuotedStringFallbackCharacter", }, }, @@ -4128,33 +4153,33 @@ var g = &grammar{ }, { name: "SingleQuotedStringFallbackCharacter", - pos: position{line: 511, col: 1, offset: 17126}, + pos: position{line: 512, col: 1, offset: 17181}, expr: &choiceExpr{ - pos: position{line: 511, col: 41, offset: 17166}, + pos: position{line: 512, col: 41, offset: 17221}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 511, col: 41, offset: 17166}, + pos: position{line: 512, col: 41, offset: 17221}, val: "[^\\r\\n\\t `]", chars: []rune{'\r', '\n', '\t', ' ', '`'}, ignoreCase: false, inverted: true, }, &actionExpr{ - pos: position{line: 511, col: 55, offset: 17180}, + pos: position{line: 512, col: 55, offset: 17235}, run: (*parser).callonSingleQuotedStringFallbackCharacter3, expr: &seqExpr{ - pos: position{line: 511, col: 55, offset: 17180}, + pos: position{line: 512, col: 55, offset: 17235}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 511, col: 55, offset: 17180}, + pos: position{line: 512, col: 55, offset: 17235}, val: "`", ignoreCase: false, want: "\"`\"", }, ¬Expr{ - pos: position{line: 511, col: 59, offset: 17184}, + pos: position{line: 512, col: 59, offset: 17239}, expr: &litMatcher{ - pos: position{line: 511, col: 60, offset: 17185}, + pos: position{line: 512, col: 60, offset: 17240}, val: "'", ignoreCase: false, want: "\"'\"", @@ -4168,27 +4193,27 @@ var g = &grammar{ }, { name: "DoubleQuotedString", - pos: position{line: 515, col: 1, offset: 17244}, + pos: position{line: 516, col: 1, offset: 17299}, expr: &actionExpr{ - pos: position{line: 515, col: 23, offset: 17266}, + pos: position{line: 516, col: 23, offset: 17321}, run: (*parser).callonDoubleQuotedString1, expr: &seqExpr{ - pos: position{line: 515, col: 23, offset: 17266}, + pos: position{line: 516, col: 23, offset: 17321}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 515, col: 23, offset: 17266}, + pos: position{line: 516, col: 23, offset: 17321}, name: "DoubleQuoteStringStart", }, &labeledExpr{ - pos: position{line: 515, col: 46, offset: 17289}, + pos: position{line: 516, col: 46, offset: 17344}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 515, col: 55, offset: 17298}, + pos: position{line: 516, col: 55, offset: 17353}, name: "DoubleQuotedStringElements", }, }, &ruleRefExpr{ - pos: position{line: 515, col: 82, offset: 17325}, + pos: position{line: 516, col: 82, offset: 17380}, name: "DoubleQuoteStringEnd", }, }, @@ -4197,17 +4222,17 @@ var g = &grammar{ }, { name: "DoubleQuotedStringElements", - pos: position{line: 519, col: 1, offset: 17429}, + pos: position{line: 520, col: 1, offset: 17484}, expr: &actionExpr{ - pos: position{line: 519, col: 31, offset: 17459}, + pos: position{line: 520, col: 31, offset: 17514}, run: (*parser).callonDoubleQuotedStringElements1, expr: &labeledExpr{ - pos: position{line: 519, col: 31, offset: 17459}, + pos: position{line: 520, col: 31, offset: 17514}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 519, col: 41, offset: 17469}, + pos: position{line: 520, col: 41, offset: 17524}, expr: &ruleRefExpr{ - pos: position{line: 519, col: 41, offset: 17469}, + pos: position{line: 520, col: 41, offset: 17524}, name: "DoubleQuotedStringElement", }, }, @@ -4216,131 +4241,131 @@ var g = &grammar{ }, { name: "DoubleQuotedStringElement", - pos: position{line: 524, col: 1, offset: 17629}, + pos: position{line: 525, col: 1, offset: 17684}, expr: &actionExpr{ - pos: position{line: 524, col: 30, offset: 17658}, + pos: position{line: 525, col: 30, offset: 17713}, run: (*parser).callonDoubleQuotedStringElement1, expr: &labeledExpr{ - pos: position{line: 524, col: 30, offset: 17658}, + pos: position{line: 525, col: 30, offset: 17713}, label: "element", expr: &choiceExpr{ - pos: position{line: 525, col: 9, offset: 17676}, + pos: position{line: 526, col: 9, offset: 17731}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 525, col: 9, offset: 17676}, + pos: position{line: 526, col: 9, offset: 17731}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 525, col: 9, offset: 17676}, + pos: position{line: 526, col: 9, offset: 17731}, name: "LineBreak", }, ¬Expr{ - pos: position{line: 525, col: 19, offset: 17686}, + pos: position{line: 526, col: 19, offset: 17741}, expr: &ruleRefExpr{ - pos: position{line: 525, col: 20, offset: 17687}, + pos: position{line: 526, col: 20, offset: 17742}, name: "DoubleQuoteStringEnd", }, }, }, }, &seqExpr{ - pos: position{line: 526, col: 11, offset: 17743}, + pos: position{line: 527, col: 11, offset: 17798}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 526, col: 11, offset: 17743}, + pos: position{line: 527, col: 11, offset: 17798}, expr: &ruleRefExpr{ - pos: position{line: 526, col: 11, offset: 17743}, + pos: position{line: 527, col: 11, offset: 17798}, name: "Space", }, }, ¬Expr{ - pos: position{line: 526, col: 18, offset: 17750}, + pos: position{line: 527, col: 18, offset: 17805}, expr: &ruleRefExpr{ - pos: position{line: 526, col: 19, offset: 17751}, + pos: position{line: 527, col: 19, offset: 17806}, name: "DoubleQuoteStringEnd", }, }, }, }, &ruleRefExpr{ - pos: position{line: 527, col: 11, offset: 17782}, + pos: position{line: 528, col: 11, offset: 17837}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 528, col: 11, offset: 17803}, + pos: position{line: 529, col: 11, offset: 17858}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 529, col: 11, offset: 17825}, + pos: position{line: 530, col: 11, offset: 17880}, name: "InlineFootnote", }, &ruleRefExpr{ - pos: position{line: 530, col: 11, offset: 17850}, + pos: position{line: 531, col: 11, offset: 17905}, name: "InlinePassthrough", }, &ruleRefExpr{ - pos: position{line: 531, col: 11, offset: 17939}, + pos: position{line: 532, col: 11, offset: 17994}, name: "Symbol", }, &ruleRefExpr{ - pos: position{line: 532, col: 11, offset: 17956}, + pos: position{line: 533, col: 11, offset: 18011}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 533, col: 11, offset: 17983}, + pos: position{line: 534, col: 11, offset: 18038}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 534, col: 11, offset: 17998}, + pos: position{line: 535, col: 11, offset: 18053}, name: "AttributeSubstitution", }, &ruleRefExpr{ - pos: position{line: 535, col: 11, offset: 18030}, + pos: position{line: 536, col: 11, offset: 18085}, name: "BoldText", }, &ruleRefExpr{ - pos: position{line: 536, col: 11, offset: 18049}, + pos: position{line: 537, col: 11, offset: 18104}, name: "ItalicText", }, &ruleRefExpr{ - pos: position{line: 537, col: 11, offset: 18070}, + pos: position{line: 538, col: 11, offset: 18125}, name: "MarkedText", }, &ruleRefExpr{ - pos: position{line: 538, col: 11, offset: 18091}, + pos: position{line: 539, col: 11, offset: 18146}, name: "SubscriptText", }, &ruleRefExpr{ - pos: position{line: 539, col: 11, offset: 18115}, + pos: position{line: 540, col: 11, offset: 18170}, name: "SuperscriptText", }, &seqExpr{ - pos: position{line: 540, col: 11, offset: 18141}, + pos: position{line: 541, col: 11, offset: 18196}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 540, col: 11, offset: 18141}, + pos: position{line: 541, col: 11, offset: 18196}, expr: &litMatcher{ - pos: position{line: 540, col: 12, offset: 18142}, + pos: position{line: 541, col: 12, offset: 18197}, val: "`\"", ignoreCase: false, want: "\"`\\\"\"", }, }, &ruleRefExpr{ - pos: position{line: 540, col: 18, offset: 18148}, + pos: position{line: 541, col: 18, offset: 18203}, name: "MonospaceText", }, }, }, &ruleRefExpr{ - pos: position{line: 541, col: 11, offset: 18172}, + pos: position{line: 542, col: 11, offset: 18227}, name: "SingleQuotedString", }, &ruleRefExpr{ - pos: position{line: 542, col: 11, offset: 18201}, + pos: position{line: 543, col: 11, offset: 18256}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 543, col: 11, offset: 18229}, + pos: position{line: 544, col: 11, offset: 18284}, name: "DoubleQuotedStringFallbackCharacter", }, }, @@ -4350,20 +4375,20 @@ var g = &grammar{ }, { name: "DoubleQuoteStringStart", - pos: position{line: 547, col: 1, offset: 18303}, + pos: position{line: 548, col: 1, offset: 18358}, expr: &seqExpr{ - pos: position{line: 547, col: 27, offset: 18329}, + pos: position{line: 548, col: 27, offset: 18384}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 547, col: 27, offset: 18329}, + pos: position{line: 548, col: 27, offset: 18384}, val: "\"`", ignoreCase: false, want: "\"\\\"`\"", }, ¬Expr{ - pos: position{line: 547, col: 33, offset: 18335}, + pos: position{line: 548, col: 33, offset: 18390}, expr: &charClassMatcher{ - pos: position{line: 547, col: 34, offset: 18336}, + pos: position{line: 548, col: 34, offset: 18391}, val: "[ \\t\\r\\n]", chars: []rune{' ', '\t', '\r', '\n'}, ignoreCase: false, @@ -4375,9 +4400,9 @@ var g = &grammar{ }, { name: "DoubleQuoteStringEnd", - pos: position{line: 549, col: 1, offset: 18347}, + pos: position{line: 550, col: 1, offset: 18402}, expr: &litMatcher{ - pos: position{line: 549, col: 25, offset: 18371}, + pos: position{line: 550, col: 25, offset: 18426}, val: "`\"", ignoreCase: false, want: "\"`\\\"\"", @@ -4385,33 +4410,33 @@ var g = &grammar{ }, { name: "DoubleQuotedStringFallbackCharacter", - pos: position{line: 551, col: 1, offset: 18378}, + pos: position{line: 552, col: 1, offset: 18433}, expr: &actionExpr{ - pos: position{line: 551, col: 41, offset: 18418}, + pos: position{line: 552, col: 41, offset: 18473}, run: (*parser).callonDoubleQuotedStringFallbackCharacter1, expr: &choiceExpr{ - pos: position{line: 551, col: 42, offset: 18419}, + pos: position{line: 552, col: 42, offset: 18474}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 551, col: 42, offset: 18419}, + pos: position{line: 552, col: 42, offset: 18474}, val: "[^\\r\\n\\t `]", chars: []rune{'\r', '\n', '\t', ' ', '`'}, ignoreCase: false, inverted: true, }, &seqExpr{ - pos: position{line: 551, col: 56, offset: 18433}, + pos: position{line: 552, col: 56, offset: 18488}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 551, col: 56, offset: 18433}, + pos: position{line: 552, col: 56, offset: 18488}, val: "`", ignoreCase: false, want: "\"`\"", }, ¬Expr{ - pos: position{line: 551, col: 60, offset: 18437}, + pos: position{line: 552, col: 60, offset: 18492}, expr: &litMatcher{ - pos: position{line: 551, col: 61, offset: 18438}, + pos: position{line: 552, col: 61, offset: 18493}, val: "\"", ignoreCase: false, want: "\"\\\"\"", @@ -4425,34 +4450,34 @@ var g = &grammar{ }, { name: "Section", - pos: position{line: 558, col: 1, offset: 18603}, + pos: position{line: 559, col: 1, offset: 18658}, expr: &actionExpr{ - pos: position{line: 558, col: 12, offset: 18614}, + pos: position{line: 559, col: 12, offset: 18669}, run: (*parser).callonSection1, expr: &seqExpr{ - pos: position{line: 558, col: 12, offset: 18614}, + pos: position{line: 559, col: 12, offset: 18669}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 558, col: 12, offset: 18614}, + pos: position{line: 559, col: 12, offset: 18669}, label: "attributes", expr: &zeroOrMoreExpr{ - pos: position{line: 558, col: 23, offset: 18625}, + pos: position{line: 559, col: 23, offset: 18680}, expr: &ruleRefExpr{ - pos: position{line: 558, col: 24, offset: 18626}, + pos: position{line: 559, col: 24, offset: 18681}, name: "BlockAttrs", }, }, }, &labeledExpr{ - pos: position{line: 559, col: 5, offset: 18643}, + pos: position{line: 560, col: 5, offset: 18698}, label: "level", expr: &actionExpr{ - pos: position{line: 559, col: 12, offset: 18650}, + pos: position{line: 560, col: 12, offset: 18705}, run: (*parser).callonSection7, expr: &oneOrMoreExpr{ - pos: position{line: 559, col: 12, offset: 18650}, + pos: position{line: 560, col: 12, offset: 18705}, expr: &litMatcher{ - pos: position{line: 559, col: 13, offset: 18651}, + pos: position{line: 560, col: 13, offset: 18706}, val: "=", ignoreCase: false, want: "\"=\"", @@ -4461,37 +4486,37 @@ var g = &grammar{ }, }, &andCodeExpr{ - pos: position{line: 563, col: 5, offset: 18742}, + pos: position{line: 564, col: 5, offset: 18797}, run: (*parser).callonSection10, }, &oneOrMoreExpr{ - pos: position{line: 567, col: 5, offset: 18894}, + pos: position{line: 568, col: 5, offset: 18949}, expr: &ruleRefExpr{ - pos: position{line: 567, col: 5, offset: 18894}, + pos: position{line: 568, col: 5, offset: 18949}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 567, col: 12, offset: 18901}, + pos: position{line: 568, col: 12, offset: 18956}, label: "title", expr: &ruleRefExpr{ - pos: position{line: 567, col: 19, offset: 18908}, + pos: position{line: 568, col: 19, offset: 18963}, name: "TitleElements", }, }, &labeledExpr{ - pos: position{line: 567, col: 34, offset: 18923}, + pos: position{line: 568, col: 34, offset: 18978}, label: "id", expr: &zeroOrMoreExpr{ - pos: position{line: 567, col: 38, offset: 18927}, + pos: position{line: 568, col: 38, offset: 18982}, expr: &ruleRefExpr{ - pos: position{line: 567, col: 38, offset: 18927}, + pos: position{line: 568, col: 38, offset: 18982}, name: "InlineElementID", }, }, }, &ruleRefExpr{ - pos: position{line: 567, col: 56, offset: 18945}, + pos: position{line: 568, col: 56, offset: 19000}, name: "EOL", }, }, @@ -4500,34 +4525,34 @@ var g = &grammar{ }, { name: "TitleElements", - pos: position{line: 571, col: 1, offset: 19051}, + pos: position{line: 572, col: 1, offset: 19106}, expr: &actionExpr{ - pos: position{line: 571, col: 18, offset: 19068}, + pos: position{line: 572, col: 18, offset: 19123}, run: (*parser).callonTitleElements1, expr: &labeledExpr{ - pos: position{line: 571, col: 18, offset: 19068}, + pos: position{line: 572, col: 18, offset: 19123}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 571, col: 27, offset: 19077}, + pos: position{line: 572, col: 27, offset: 19132}, expr: &seqExpr{ - pos: position{line: 571, col: 28, offset: 19078}, + pos: position{line: 572, col: 28, offset: 19133}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 571, col: 28, offset: 19078}, + pos: position{line: 572, col: 28, offset: 19133}, expr: &ruleRefExpr{ - pos: position{line: 571, col: 29, offset: 19079}, + pos: position{line: 572, col: 29, offset: 19134}, name: "Newline", }, }, ¬Expr{ - pos: position{line: 571, col: 37, offset: 19087}, + pos: position{line: 572, col: 37, offset: 19142}, expr: &ruleRefExpr{ - pos: position{line: 571, col: 38, offset: 19088}, + pos: position{line: 572, col: 38, offset: 19143}, name: "InlineElementID", }, }, &ruleRefExpr{ - pos: position{line: 571, col: 54, offset: 19104}, + pos: position{line: 572, col: 54, offset: 19159}, name: "TitleElement", }, }, @@ -4538,81 +4563,81 @@ var g = &grammar{ }, { name: "TitleElement", - pos: position{line: 575, col: 1, offset: 19225}, + pos: position{line: 576, col: 1, offset: 19280}, expr: &actionExpr{ - pos: position{line: 575, col: 17, offset: 19241}, + pos: position{line: 576, col: 17, offset: 19296}, run: (*parser).callonTitleElement1, expr: &labeledExpr{ - pos: position{line: 575, col: 17, offset: 19241}, + pos: position{line: 576, col: 17, offset: 19296}, label: "element", expr: &choiceExpr{ - pos: position{line: 575, col: 26, offset: 19250}, + pos: position{line: 576, col: 26, offset: 19305}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 575, col: 26, offset: 19250}, + pos: position{line: 576, col: 26, offset: 19305}, name: "Word", }, &ruleRefExpr{ - pos: position{line: 576, col: 11, offset: 19265}, + pos: position{line: 577, col: 11, offset: 19320}, name: "LineBreak", }, &oneOrMoreExpr{ - pos: position{line: 577, col: 11, offset: 19310}, + pos: position{line: 578, col: 11, offset: 19365}, expr: &ruleRefExpr{ - pos: position{line: 577, col: 11, offset: 19310}, + pos: position{line: 578, col: 11, offset: 19365}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 578, col: 11, offset: 19328}, + pos: position{line: 579, col: 11, offset: 19383}, name: "CrossReference", }, &ruleRefExpr{ - pos: position{line: 579, col: 11, offset: 19397}, + pos: position{line: 580, col: 11, offset: 19452}, name: "InlinePassthrough", }, &ruleRefExpr{ - pos: position{line: 580, col: 11, offset: 19486}, + pos: position{line: 581, col: 11, offset: 19541}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 581, col: 11, offset: 19507}, + pos: position{line: 582, col: 11, offset: 19562}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 582, col: 11, offset: 19529}, + pos: position{line: 583, col: 11, offset: 19584}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 583, col: 11, offset: 19544}, + pos: position{line: 584, col: 11, offset: 19599}, name: "InlineFootnote", }, &ruleRefExpr{ - pos: position{line: 584, col: 11, offset: 19569}, + pos: position{line: 585, col: 11, offset: 19624}, name: "QuotedString", }, &ruleRefExpr{ - pos: position{line: 585, col: 11, offset: 19592}, + pos: position{line: 586, col: 11, offset: 19647}, name: "QuotedText", }, &ruleRefExpr{ - pos: position{line: 586, col: 11, offset: 19613}, + pos: position{line: 587, col: 11, offset: 19668}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 587, col: 11, offset: 19640}, + pos: position{line: 588, col: 11, offset: 19695}, name: "Symbol", }, &ruleRefExpr{ - pos: position{line: 588, col: 11, offset: 19657}, + pos: position{line: 589, col: 11, offset: 19712}, name: "AttributeSubstitution", }, &ruleRefExpr{ - pos: position{line: 589, col: 11, offset: 19689}, + pos: position{line: 590, col: 11, offset: 19744}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 590, col: 11, offset: 19717}, + pos: position{line: 591, col: 11, offset: 19772}, name: "AnyChar", }, }, @@ -4622,18 +4647,18 @@ var g = &grammar{ }, { name: "TableOfContentsPlaceHolder", - pos: position{line: 597, col: 1, offset: 19868}, + pos: position{line: 598, col: 1, offset: 19923}, expr: &seqExpr{ - pos: position{line: 597, col: 31, offset: 19898}, + pos: position{line: 598, col: 31, offset: 19953}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 597, col: 31, offset: 19898}, + pos: position{line: 598, col: 31, offset: 19953}, val: "toc::[]", ignoreCase: false, want: "\"toc::[]\"", }, &ruleRefExpr{ - pos: position{line: 597, col: 41, offset: 19908}, + pos: position{line: 598, col: 41, offset: 19963}, name: "EOL", }, }, @@ -4641,40 +4666,40 @@ var g = &grammar{ }, { name: "UserMacroBlock", - pos: position{line: 602, col: 1, offset: 20019}, + pos: position{line: 603, col: 1, offset: 20074}, expr: &actionExpr{ - pos: position{line: 602, col: 19, offset: 20037}, + pos: position{line: 603, col: 19, offset: 20092}, run: (*parser).callonUserMacroBlock1, expr: &seqExpr{ - pos: position{line: 602, col: 19, offset: 20037}, + pos: position{line: 603, col: 19, offset: 20092}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 602, col: 19, offset: 20037}, + pos: position{line: 603, col: 19, offset: 20092}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 602, col: 25, offset: 20043}, + pos: position{line: 603, col: 25, offset: 20098}, name: "UserMacroName", }, }, &litMatcher{ - pos: position{line: 602, col: 40, offset: 20058}, + pos: position{line: 603, col: 40, offset: 20113}, val: "::", ignoreCase: false, want: "\"::\"", }, &labeledExpr{ - pos: position{line: 602, col: 45, offset: 20063}, + pos: position{line: 603, col: 45, offset: 20118}, label: "value", expr: &ruleRefExpr{ - pos: position{line: 602, col: 52, offset: 20070}, + pos: position{line: 603, col: 52, offset: 20125}, name: "UserMacroValue", }, }, &labeledExpr{ - pos: position{line: 602, col: 68, offset: 20086}, + pos: position{line: 603, col: 68, offset: 20141}, label: "attrs", expr: &ruleRefExpr{ - pos: position{line: 602, col: 75, offset: 20093}, + pos: position{line: 603, col: 75, offset: 20148}, name: "UserMacroAttributes", }, }, @@ -4684,40 +4709,40 @@ var g = &grammar{ }, { name: "InlineUserMacro", - pos: position{line: 606, col: 1, offset: 20208}, + pos: position{line: 607, col: 1, offset: 20263}, expr: &actionExpr{ - pos: position{line: 606, col: 20, offset: 20227}, + pos: position{line: 607, col: 20, offset: 20282}, run: (*parser).callonInlineUserMacro1, expr: &seqExpr{ - pos: position{line: 606, col: 20, offset: 20227}, + pos: position{line: 607, col: 20, offset: 20282}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 606, col: 20, offset: 20227}, + pos: position{line: 607, col: 20, offset: 20282}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 606, col: 26, offset: 20233}, + pos: position{line: 607, col: 26, offset: 20288}, name: "UserMacroName", }, }, &litMatcher{ - pos: position{line: 606, col: 41, offset: 20248}, + pos: position{line: 607, col: 41, offset: 20303}, val: ":", ignoreCase: false, want: "\":\"", }, &labeledExpr{ - pos: position{line: 606, col: 45, offset: 20252}, + pos: position{line: 607, col: 45, offset: 20307}, label: "value", expr: &ruleRefExpr{ - pos: position{line: 606, col: 52, offset: 20259}, + pos: position{line: 607, col: 52, offset: 20314}, name: "UserMacroValue", }, }, &labeledExpr{ - pos: position{line: 606, col: 68, offset: 20275}, + pos: position{line: 607, col: 68, offset: 20330}, label: "attrs", expr: &ruleRefExpr{ - pos: position{line: 606, col: 75, offset: 20282}, + pos: position{line: 607, col: 75, offset: 20337}, name: "UserMacroAttributes", }, }, @@ -4727,14 +4752,14 @@ var g = &grammar{ }, { name: "UserMacroName", - pos: position{line: 610, col: 1, offset: 20398}, + pos: position{line: 611, col: 1, offset: 20453}, expr: &actionExpr{ - pos: position{line: 610, col: 18, offset: 20415}, + pos: position{line: 611, col: 18, offset: 20470}, run: (*parser).callonUserMacroName1, expr: &oneOrMoreExpr{ - pos: position{line: 610, col: 19, offset: 20416}, + pos: position{line: 611, col: 19, offset: 20471}, expr: &charClassMatcher{ - pos: position{line: 610, col: 19, offset: 20416}, + pos: position{line: 611, col: 19, offset: 20471}, val: "[\\pL0-9_-]", chars: []rune{'_', '-'}, ranges: []rune{'0', '9'}, @@ -4747,14 +4772,14 @@ var g = &grammar{ }, { name: "UserMacroValue", - pos: position{line: 614, col: 1, offset: 20465}, + pos: position{line: 615, col: 1, offset: 20520}, expr: &actionExpr{ - pos: position{line: 614, col: 19, offset: 20483}, + pos: position{line: 615, col: 19, offset: 20538}, run: (*parser).callonUserMacroValue1, expr: &zeroOrMoreExpr{ - pos: position{line: 614, col: 19, offset: 20483}, + pos: position{line: 615, col: 19, offset: 20538}, expr: &charClassMatcher{ - pos: position{line: 614, col: 19, offset: 20483}, + pos: position{line: 615, col: 19, offset: 20538}, val: "[^:[ \\r\\n]", chars: []rune{':', '[', ' ', '\r', '\n'}, ignoreCase: false, @@ -4765,32 +4790,32 @@ var g = &grammar{ }, { name: "UserMacroAttributes", - pos: position{line: 618, col: 1, offset: 20531}, + pos: position{line: 619, col: 1, offset: 20586}, expr: &actionExpr{ - pos: position{line: 618, col: 24, offset: 20554}, + pos: position{line: 619, col: 24, offset: 20609}, run: (*parser).callonUserMacroAttributes1, expr: &seqExpr{ - pos: position{line: 618, col: 24, offset: 20554}, + pos: position{line: 619, col: 24, offset: 20609}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 618, col: 24, offset: 20554}, + pos: position{line: 619, col: 24, offset: 20609}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 618, col: 28, offset: 20558}, + pos: position{line: 619, col: 28, offset: 20613}, label: "attrs", expr: &zeroOrMoreExpr{ - pos: position{line: 618, col: 34, offset: 20564}, + pos: position{line: 619, col: 34, offset: 20619}, expr: &ruleRefExpr{ - pos: position{line: 618, col: 35, offset: 20565}, + pos: position{line: 619, col: 35, offset: 20620}, name: "GenericAttribute", }, }, }, &litMatcher{ - pos: position{line: 618, col: 54, offset: 20584}, + pos: position{line: 619, col: 54, offset: 20639}, val: "]", ignoreCase: false, want: "\"]\"", @@ -4801,41 +4826,41 @@ var g = &grammar{ }, { name: "FileInclusion", - pos: position{line: 625, col: 1, offset: 20766}, + pos: position{line: 626, col: 1, offset: 20821}, expr: &actionExpr{ - pos: position{line: 625, col: 18, offset: 20783}, + pos: position{line: 626, col: 18, offset: 20838}, run: (*parser).callonFileInclusion1, expr: &seqExpr{ - pos: position{line: 625, col: 18, offset: 20783}, + pos: position{line: 626, col: 18, offset: 20838}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 625, col: 18, offset: 20783}, + pos: position{line: 626, col: 18, offset: 20838}, label: "incl", expr: &actionExpr{ - pos: position{line: 625, col: 24, offset: 20789}, + pos: position{line: 626, col: 24, offset: 20844}, run: (*parser).callonFileInclusion4, expr: &seqExpr{ - pos: position{line: 625, col: 24, offset: 20789}, + pos: position{line: 626, col: 24, offset: 20844}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 625, col: 24, offset: 20789}, + pos: position{line: 626, col: 24, offset: 20844}, val: "include::", ignoreCase: false, want: "\"include::\"", }, &labeledExpr{ - pos: position{line: 625, col: 36, offset: 20801}, + pos: position{line: 626, col: 36, offset: 20856}, label: "path", expr: &ruleRefExpr{ - pos: position{line: 625, col: 42, offset: 20807}, + pos: position{line: 626, col: 42, offset: 20862}, name: "FileLocation", }, }, &labeledExpr{ - pos: position{line: 625, col: 56, offset: 20821}, + pos: position{line: 626, col: 56, offset: 20876}, label: "inlineAttributes", expr: &ruleRefExpr{ - pos: position{line: 625, col: 74, offset: 20839}, + pos: position{line: 626, col: 74, offset: 20894}, name: "FileIncludeAttributes", }, }, @@ -4844,14 +4869,14 @@ var g = &grammar{ }, }, &zeroOrMoreExpr{ - pos: position{line: 627, col: 8, offset: 20986}, + pos: position{line: 628, col: 8, offset: 21041}, expr: &ruleRefExpr{ - pos: position{line: 627, col: 8, offset: 20986}, + pos: position{line: 628, col: 8, offset: 21041}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 627, col: 15, offset: 20993}, + pos: position{line: 628, col: 15, offset: 21048}, name: "EOL", }, }, @@ -4860,37 +4885,37 @@ var g = &grammar{ }, { name: "FileIncludeAttributes", - pos: position{line: 631, col: 1, offset: 21045}, + pos: position{line: 632, col: 1, offset: 21100}, expr: &actionExpr{ - pos: position{line: 631, col: 26, offset: 21070}, + pos: position{line: 632, col: 26, offset: 21125}, run: (*parser).callonFileIncludeAttributes1, expr: &seqExpr{ - pos: position{line: 631, col: 26, offset: 21070}, + pos: position{line: 632, col: 26, offset: 21125}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 631, col: 26, offset: 21070}, + pos: position{line: 632, col: 26, offset: 21125}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 631, col: 30, offset: 21074}, + pos: position{line: 632, col: 30, offset: 21129}, label: "attrs", expr: &zeroOrMoreExpr{ - pos: position{line: 631, col: 36, offset: 21080}, + pos: position{line: 632, col: 36, offset: 21135}, expr: &choiceExpr{ - pos: position{line: 631, col: 37, offset: 21081}, + pos: position{line: 632, col: 37, offset: 21136}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 631, col: 37, offset: 21081}, + pos: position{line: 632, col: 37, offset: 21136}, name: "LineRangesAttribute", }, &ruleRefExpr{ - pos: position{line: 631, col: 59, offset: 21103}, + pos: position{line: 632, col: 59, offset: 21158}, name: "TagRangesAttribute", }, &ruleRefExpr{ - pos: position{line: 631, col: 80, offset: 21124}, + pos: position{line: 632, col: 80, offset: 21179}, name: "GenericAttribute", }, }, @@ -4898,7 +4923,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 631, col: 99, offset: 21143}, + pos: position{line: 632, col: 99, offset: 21198}, val: "]", ignoreCase: false, want: "\"]\"", @@ -4909,31 +4934,31 @@ var g = &grammar{ }, { name: "LineRangesAttribute", - pos: position{line: 635, col: 1, offset: 21215}, + pos: position{line: 636, col: 1, offset: 21270}, expr: &actionExpr{ - pos: position{line: 635, col: 24, offset: 21238}, + pos: position{line: 636, col: 24, offset: 21293}, run: (*parser).callonLineRangesAttribute1, expr: &seqExpr{ - pos: position{line: 635, col: 24, offset: 21238}, + pos: position{line: 636, col: 24, offset: 21293}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 635, col: 24, offset: 21238}, + pos: position{line: 636, col: 24, offset: 21293}, val: "lines=", ignoreCase: false, want: "\"lines=\"", }, &labeledExpr{ - pos: position{line: 635, col: 33, offset: 21247}, + pos: position{line: 636, col: 33, offset: 21302}, label: "lines", expr: &ruleRefExpr{ - pos: position{line: 635, col: 40, offset: 21254}, + pos: position{line: 636, col: 40, offset: 21309}, name: "LineRangesAttributeValue", }, }, &zeroOrOneExpr{ - pos: position{line: 635, col: 66, offset: 21280}, + pos: position{line: 636, col: 66, offset: 21335}, expr: &litMatcher{ - pos: position{line: 635, col: 66, offset: 21280}, + pos: position{line: 636, col: 66, offset: 21335}, val: ",", ignoreCase: false, want: "\",\"", @@ -4945,73 +4970,73 @@ var g = &grammar{ }, { name: "LineRangesAttributeValue", - pos: position{line: 639, col: 1, offset: 21339}, + pos: position{line: 640, col: 1, offset: 21394}, expr: &actionExpr{ - pos: position{line: 639, col: 29, offset: 21367}, + pos: position{line: 640, col: 29, offset: 21422}, run: (*parser).callonLineRangesAttributeValue1, expr: &seqExpr{ - pos: position{line: 639, col: 29, offset: 21367}, + pos: position{line: 640, col: 29, offset: 21422}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 639, col: 29, offset: 21367}, + pos: position{line: 640, col: 29, offset: 21422}, label: "value", expr: &choiceExpr{ - pos: position{line: 639, col: 36, offset: 21374}, + pos: position{line: 640, col: 36, offset: 21429}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 639, col: 36, offset: 21374}, + pos: position{line: 640, col: 36, offset: 21429}, name: "MultipleLineRanges", }, &ruleRefExpr{ - pos: position{line: 640, col: 11, offset: 21491}, + pos: position{line: 641, col: 11, offset: 21546}, name: "MultipleQuotedLineRanges", }, &ruleRefExpr{ - pos: position{line: 641, col: 11, offset: 21527}, + pos: position{line: 642, col: 11, offset: 21582}, name: "MultiLineRange", }, &ruleRefExpr{ - pos: position{line: 642, col: 11, offset: 21553}, + pos: position{line: 643, col: 11, offset: 21608}, name: "MultiLineQuotedRange", }, &ruleRefExpr{ - pos: position{line: 643, col: 11, offset: 21585}, + pos: position{line: 644, col: 11, offset: 21640}, name: "SingleLineQuotedRange", }, &ruleRefExpr{ - pos: position{line: 644, col: 11, offset: 21617}, + pos: position{line: 645, col: 11, offset: 21672}, name: "SingleLineRange", }, &ruleRefExpr{ - pos: position{line: 645, col: 11, offset: 21644}, + pos: position{line: 646, col: 11, offset: 21699}, name: "UndefinedLineRange", }, }, }, }, &zeroOrMoreExpr{ - pos: position{line: 645, col: 31, offset: 21664}, + pos: position{line: 646, col: 31, offset: 21719}, expr: &ruleRefExpr{ - pos: position{line: 645, col: 31, offset: 21664}, + pos: position{line: 646, col: 31, offset: 21719}, name: "Space", }, }, &choiceExpr{ - pos: position{line: 645, col: 39, offset: 21672}, + pos: position{line: 646, col: 39, offset: 21727}, alternatives: []interface{}{ &andExpr{ - pos: position{line: 645, col: 39, offset: 21672}, + pos: position{line: 646, col: 39, offset: 21727}, expr: &litMatcher{ - pos: position{line: 645, col: 40, offset: 21673}, + pos: position{line: 646, col: 40, offset: 21728}, val: ",", ignoreCase: false, want: "\",\"", }, }, &andExpr{ - pos: position{line: 645, col: 46, offset: 21679}, + pos: position{line: 646, col: 46, offset: 21734}, expr: &litMatcher{ - pos: position{line: 645, col: 47, offset: 21680}, + pos: position{line: 646, col: 47, offset: 21735}, val: "]", ignoreCase: false, want: "\"]\"", @@ -5025,59 +5050,59 @@ var g = &grammar{ }, { name: "MultipleLineRanges", - pos: position{line: 649, col: 1, offset: 21712}, + pos: position{line: 650, col: 1, offset: 21767}, expr: &actionExpr{ - pos: position{line: 649, col: 23, offset: 21734}, + pos: position{line: 650, col: 23, offset: 21789}, run: (*parser).callonMultipleLineRanges1, expr: &seqExpr{ - pos: position{line: 649, col: 23, offset: 21734}, + pos: position{line: 650, col: 23, offset: 21789}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 649, col: 23, offset: 21734}, + pos: position{line: 650, col: 23, offset: 21789}, label: "first", expr: &choiceExpr{ - pos: position{line: 649, col: 30, offset: 21741}, + pos: position{line: 650, col: 30, offset: 21796}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 649, col: 30, offset: 21741}, + pos: position{line: 650, col: 30, offset: 21796}, name: "MultiLineRange", }, &ruleRefExpr{ - pos: position{line: 649, col: 47, offset: 21758}, + pos: position{line: 650, col: 47, offset: 21813}, name: "SingleLineRange", }, }, }, }, &labeledExpr{ - pos: position{line: 650, col: 5, offset: 21780}, + pos: position{line: 651, col: 5, offset: 21835}, label: "others", expr: &oneOrMoreExpr{ - pos: position{line: 650, col: 12, offset: 21787}, + pos: position{line: 651, col: 12, offset: 21842}, expr: &actionExpr{ - pos: position{line: 650, col: 13, offset: 21788}, + pos: position{line: 651, col: 13, offset: 21843}, run: (*parser).callonMultipleLineRanges9, expr: &seqExpr{ - pos: position{line: 650, col: 13, offset: 21788}, + pos: position{line: 651, col: 13, offset: 21843}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 650, col: 13, offset: 21788}, + pos: position{line: 651, col: 13, offset: 21843}, val: ";", ignoreCase: false, want: "\";\"", }, &labeledExpr{ - pos: position{line: 650, col: 17, offset: 21792}, + pos: position{line: 651, col: 17, offset: 21847}, label: "other", expr: &choiceExpr{ - pos: position{line: 650, col: 24, offset: 21799}, + pos: position{line: 651, col: 24, offset: 21854}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 650, col: 24, offset: 21799}, + pos: position{line: 651, col: 24, offset: 21854}, name: "MultiLineRange", }, &ruleRefExpr{ - pos: position{line: 650, col: 41, offset: 21816}, + pos: position{line: 651, col: 41, offset: 21871}, name: "SingleLineRange", }, }, @@ -5094,65 +5119,65 @@ var g = &grammar{ }, { name: "MultipleQuotedLineRanges", - pos: position{line: 656, col: 1, offset: 21954}, + pos: position{line: 657, col: 1, offset: 22009}, expr: &actionExpr{ - pos: position{line: 656, col: 29, offset: 21982}, + pos: position{line: 657, col: 29, offset: 22037}, run: (*parser).callonMultipleQuotedLineRanges1, expr: &seqExpr{ - pos: position{line: 656, col: 29, offset: 21982}, + pos: position{line: 657, col: 29, offset: 22037}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 656, col: 29, offset: 21982}, + pos: position{line: 657, col: 29, offset: 22037}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, &labeledExpr{ - pos: position{line: 656, col: 34, offset: 21987}, + pos: position{line: 657, col: 34, offset: 22042}, label: "first", expr: &choiceExpr{ - pos: position{line: 656, col: 41, offset: 21994}, + pos: position{line: 657, col: 41, offset: 22049}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 656, col: 41, offset: 21994}, + pos: position{line: 657, col: 41, offset: 22049}, name: "MultiLineRange", }, &ruleRefExpr{ - pos: position{line: 656, col: 58, offset: 22011}, + pos: position{line: 657, col: 58, offset: 22066}, name: "SingleLineRange", }, }, }, }, &labeledExpr{ - pos: position{line: 657, col: 5, offset: 22033}, + pos: position{line: 658, col: 5, offset: 22088}, label: "others", expr: &oneOrMoreExpr{ - pos: position{line: 657, col: 12, offset: 22040}, + pos: position{line: 658, col: 12, offset: 22095}, expr: &actionExpr{ - pos: position{line: 657, col: 13, offset: 22041}, + pos: position{line: 658, col: 13, offset: 22096}, run: (*parser).callonMultipleQuotedLineRanges10, expr: &seqExpr{ - pos: position{line: 657, col: 13, offset: 22041}, + pos: position{line: 658, col: 13, offset: 22096}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 657, col: 13, offset: 22041}, + pos: position{line: 658, col: 13, offset: 22096}, val: ",", ignoreCase: false, want: "\",\"", }, &labeledExpr{ - pos: position{line: 657, col: 17, offset: 22045}, + pos: position{line: 658, col: 17, offset: 22100}, label: "other", expr: &choiceExpr{ - pos: position{line: 657, col: 24, offset: 22052}, + pos: position{line: 658, col: 24, offset: 22107}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 657, col: 24, offset: 22052}, + pos: position{line: 658, col: 24, offset: 22107}, name: "MultiLineRange", }, &ruleRefExpr{ - pos: position{line: 657, col: 41, offset: 22069}, + pos: position{line: 658, col: 41, offset: 22124}, name: "SingleLineRange", }, }, @@ -5164,7 +5189,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 659, col: 9, offset: 22122}, + pos: position{line: 660, col: 9, offset: 22177}, val: "\"", ignoreCase: false, want: "\"\\\"\"", @@ -5175,32 +5200,32 @@ var g = &grammar{ }, { name: "MultiLineRange", - pos: position{line: 663, col: 1, offset: 22212}, + pos: position{line: 664, col: 1, offset: 22267}, expr: &actionExpr{ - pos: position{line: 663, col: 19, offset: 22230}, + pos: position{line: 664, col: 19, offset: 22285}, run: (*parser).callonMultiLineRange1, expr: &seqExpr{ - pos: position{line: 663, col: 19, offset: 22230}, + pos: position{line: 664, col: 19, offset: 22285}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 663, col: 19, offset: 22230}, + pos: position{line: 664, col: 19, offset: 22285}, label: "start", expr: &ruleRefExpr{ - pos: position{line: 663, col: 26, offset: 22237}, + pos: position{line: 664, col: 26, offset: 22292}, name: "NUMBER", }, }, &litMatcher{ - pos: position{line: 663, col: 34, offset: 22245}, + pos: position{line: 664, col: 34, offset: 22300}, val: "..", ignoreCase: false, want: "\"..\"", }, &labeledExpr{ - pos: position{line: 663, col: 39, offset: 22250}, + pos: position{line: 664, col: 39, offset: 22305}, label: "end", expr: &ruleRefExpr{ - pos: position{line: 663, col: 44, offset: 22255}, + pos: position{line: 664, col: 44, offset: 22310}, name: "NUMBER", }, }, @@ -5210,43 +5235,43 @@ var g = &grammar{ }, { name: "MultiLineQuotedRange", - pos: position{line: 667, col: 1, offset: 22343}, + pos: position{line: 668, col: 1, offset: 22398}, expr: &actionExpr{ - pos: position{line: 667, col: 25, offset: 22367}, + pos: position{line: 668, col: 25, offset: 22422}, run: (*parser).callonMultiLineQuotedRange1, expr: &seqExpr{ - pos: position{line: 667, col: 25, offset: 22367}, + pos: position{line: 668, col: 25, offset: 22422}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 667, col: 25, offset: 22367}, + pos: position{line: 668, col: 25, offset: 22422}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, &labeledExpr{ - pos: position{line: 667, col: 30, offset: 22372}, + pos: position{line: 668, col: 30, offset: 22427}, label: "start", expr: &ruleRefExpr{ - pos: position{line: 667, col: 37, offset: 22379}, + pos: position{line: 668, col: 37, offset: 22434}, name: "NUMBER", }, }, &litMatcher{ - pos: position{line: 667, col: 45, offset: 22387}, + pos: position{line: 668, col: 45, offset: 22442}, val: "..", ignoreCase: false, want: "\"..\"", }, &labeledExpr{ - pos: position{line: 667, col: 50, offset: 22392}, + pos: position{line: 668, col: 50, offset: 22447}, label: "end", expr: &ruleRefExpr{ - pos: position{line: 667, col: 55, offset: 22397}, + pos: position{line: 668, col: 55, offset: 22452}, name: "NUMBER", }, }, &litMatcher{ - pos: position{line: 667, col: 63, offset: 22405}, + pos: position{line: 668, col: 63, offset: 22460}, val: "\"", ignoreCase: false, want: "\"\\\"\"", @@ -5257,15 +5282,15 @@ var g = &grammar{ }, { name: "SingleLineRange", - pos: position{line: 671, col: 1, offset: 22490}, + pos: position{line: 672, col: 1, offset: 22545}, expr: &actionExpr{ - pos: position{line: 671, col: 20, offset: 22509}, + pos: position{line: 672, col: 20, offset: 22564}, run: (*parser).callonSingleLineRange1, expr: &labeledExpr{ - pos: position{line: 671, col: 20, offset: 22509}, + pos: position{line: 672, col: 20, offset: 22564}, label: "singleline", expr: &ruleRefExpr{ - pos: position{line: 671, col: 32, offset: 22521}, + pos: position{line: 672, col: 32, offset: 22576}, name: "NUMBER", }, }, @@ -5273,29 +5298,29 @@ var g = &grammar{ }, { name: "SingleLineQuotedRange", - pos: position{line: 675, col: 1, offset: 22616}, + pos: position{line: 676, col: 1, offset: 22671}, expr: &actionExpr{ - pos: position{line: 675, col: 26, offset: 22641}, + pos: position{line: 676, col: 26, offset: 22696}, run: (*parser).callonSingleLineQuotedRange1, expr: &seqExpr{ - pos: position{line: 675, col: 26, offset: 22641}, + pos: position{line: 676, col: 26, offset: 22696}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 675, col: 26, offset: 22641}, + pos: position{line: 676, col: 26, offset: 22696}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, &labeledExpr{ - pos: position{line: 675, col: 31, offset: 22646}, + pos: position{line: 676, col: 31, offset: 22701}, label: "singleline", expr: &ruleRefExpr{ - pos: position{line: 675, col: 43, offset: 22658}, + pos: position{line: 676, col: 43, offset: 22713}, name: "NUMBER", }, }, &litMatcher{ - pos: position{line: 675, col: 51, offset: 22666}, + pos: position{line: 676, col: 51, offset: 22721}, val: "\"", ignoreCase: false, want: "\"\\\"\"", @@ -5306,14 +5331,14 @@ var g = &grammar{ }, { name: "UndefinedLineRange", - pos: position{line: 679, col: 1, offset: 22758}, + pos: position{line: 680, col: 1, offset: 22813}, expr: &actionExpr{ - pos: position{line: 679, col: 23, offset: 22780}, + pos: position{line: 680, col: 23, offset: 22835}, run: (*parser).callonUndefinedLineRange1, expr: &zeroOrMoreExpr{ - pos: position{line: 679, col: 23, offset: 22780}, + pos: position{line: 680, col: 23, offset: 22835}, expr: &charClassMatcher{ - pos: position{line: 679, col: 23, offset: 22780}, + pos: position{line: 680, col: 23, offset: 22835}, val: "[^\\], ]", chars: []rune{']', ',', ' '}, ignoreCase: false, @@ -5324,24 +5349,24 @@ var g = &grammar{ }, { name: "TagRangesAttribute", - pos: position{line: 683, col: 1, offset: 22825}, + pos: position{line: 684, col: 1, offset: 22880}, expr: &actionExpr{ - pos: position{line: 683, col: 23, offset: 22847}, + pos: position{line: 684, col: 23, offset: 22902}, run: (*parser).callonTagRangesAttribute1, expr: &seqExpr{ - pos: position{line: 683, col: 23, offset: 22847}, + pos: position{line: 684, col: 23, offset: 22902}, exprs: []interface{}{ &choiceExpr{ - pos: position{line: 683, col: 24, offset: 22848}, + pos: position{line: 684, col: 24, offset: 22903}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 683, col: 24, offset: 22848}, + pos: position{line: 684, col: 24, offset: 22903}, val: "tags=", ignoreCase: false, want: "\"tags=\"", }, &litMatcher{ - pos: position{line: 683, col: 34, offset: 22858}, + pos: position{line: 684, col: 34, offset: 22913}, val: "tag=", ignoreCase: false, want: "\"tag=\"", @@ -5349,17 +5374,17 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 683, col: 42, offset: 22866}, + pos: position{line: 684, col: 42, offset: 22921}, label: "tags", expr: &ruleRefExpr{ - pos: position{line: 683, col: 48, offset: 22872}, + pos: position{line: 684, col: 48, offset: 22927}, name: "TagRangesAttributeValue", }, }, &zeroOrOneExpr{ - pos: position{line: 683, col: 73, offset: 22897}, + pos: position{line: 684, col: 73, offset: 22952}, expr: &litMatcher{ - pos: position{line: 683, col: 73, offset: 22897}, + pos: position{line: 684, col: 73, offset: 22952}, val: ",", ignoreCase: false, want: "\",\"", @@ -5371,44 +5396,44 @@ var g = &grammar{ }, { name: "TagRangesAttributeValue", - pos: position{line: 687, col: 1, offset: 23046}, + pos: position{line: 688, col: 1, offset: 23101}, expr: &actionExpr{ - pos: position{line: 687, col: 28, offset: 23073}, + pos: position{line: 688, col: 28, offset: 23128}, run: (*parser).callonTagRangesAttributeValue1, expr: &seqExpr{ - pos: position{line: 687, col: 28, offset: 23073}, + pos: position{line: 688, col: 28, offset: 23128}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 687, col: 28, offset: 23073}, + pos: position{line: 688, col: 28, offset: 23128}, label: "value", expr: &ruleRefExpr{ - pos: position{line: 687, col: 35, offset: 23080}, + pos: position{line: 688, col: 35, offset: 23135}, name: "MultipleTagRanges", }, }, &zeroOrMoreExpr{ - pos: position{line: 687, col: 54, offset: 23099}, + pos: position{line: 688, col: 54, offset: 23154}, expr: &ruleRefExpr{ - pos: position{line: 687, col: 54, offset: 23099}, + pos: position{line: 688, col: 54, offset: 23154}, name: "Space", }, }, &choiceExpr{ - pos: position{line: 687, col: 62, offset: 23107}, + pos: position{line: 688, col: 62, offset: 23162}, alternatives: []interface{}{ &andExpr{ - pos: position{line: 687, col: 62, offset: 23107}, + pos: position{line: 688, col: 62, offset: 23162}, expr: &litMatcher{ - pos: position{line: 687, col: 63, offset: 23108}, + pos: position{line: 688, col: 63, offset: 23163}, val: ",", ignoreCase: false, want: "\",\"", }, }, &andExpr{ - pos: position{line: 687, col: 69, offset: 23114}, + pos: position{line: 688, col: 69, offset: 23169}, expr: &litMatcher{ - pos: position{line: 687, col: 70, offset: 23115}, + pos: position{line: 688, col: 70, offset: 23170}, val: "]", ignoreCase: false, want: "\"]\"", @@ -5422,43 +5447,43 @@ var g = &grammar{ }, { name: "MultipleTagRanges", - pos: position{line: 691, col: 1, offset: 23147}, + pos: position{line: 692, col: 1, offset: 23202}, expr: &actionExpr{ - pos: position{line: 691, col: 22, offset: 23168}, + pos: position{line: 692, col: 22, offset: 23223}, run: (*parser).callonMultipleTagRanges1, expr: &seqExpr{ - pos: position{line: 691, col: 22, offset: 23168}, + pos: position{line: 692, col: 22, offset: 23223}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 691, col: 22, offset: 23168}, + pos: position{line: 692, col: 22, offset: 23223}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 691, col: 29, offset: 23175}, + pos: position{line: 692, col: 29, offset: 23230}, name: "TagRange", }, }, &labeledExpr{ - pos: position{line: 692, col: 5, offset: 23189}, + pos: position{line: 693, col: 5, offset: 23244}, label: "others", expr: &zeroOrMoreExpr{ - pos: position{line: 692, col: 12, offset: 23196}, + pos: position{line: 693, col: 12, offset: 23251}, expr: &actionExpr{ - pos: position{line: 692, col: 13, offset: 23197}, + pos: position{line: 693, col: 13, offset: 23252}, run: (*parser).callonMultipleTagRanges7, expr: &seqExpr{ - pos: position{line: 692, col: 13, offset: 23197}, + pos: position{line: 693, col: 13, offset: 23252}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 692, col: 13, offset: 23197}, + pos: position{line: 693, col: 13, offset: 23252}, val: ";", ignoreCase: false, want: "\";\"", }, &labeledExpr{ - pos: position{line: 692, col: 17, offset: 23201}, + pos: position{line: 693, col: 17, offset: 23256}, label: "other", expr: &ruleRefExpr{ - pos: position{line: 692, col: 24, offset: 23208}, + pos: position{line: 693, col: 24, offset: 23263}, name: "TagRange", }, }, @@ -5473,25 +5498,25 @@ var g = &grammar{ }, { name: "TagRange", - pos: position{line: 698, col: 1, offset: 23339}, + pos: position{line: 699, col: 1, offset: 23394}, expr: &choiceExpr{ - pos: position{line: 698, col: 13, offset: 23351}, + pos: position{line: 699, col: 13, offset: 23406}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 698, col: 13, offset: 23351}, + pos: position{line: 699, col: 13, offset: 23406}, run: (*parser).callonTagRange2, expr: &labeledExpr{ - pos: position{line: 698, col: 13, offset: 23351}, + pos: position{line: 699, col: 13, offset: 23406}, label: "tag", expr: &choiceExpr{ - pos: position{line: 698, col: 18, offset: 23356}, + pos: position{line: 699, col: 18, offset: 23411}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 698, col: 18, offset: 23356}, + pos: position{line: 699, col: 18, offset: 23411}, name: "Alphanums", }, &ruleRefExpr{ - pos: position{line: 698, col: 30, offset: 23368}, + pos: position{line: 699, col: 30, offset: 23423}, name: "TagWildcard", }, }, @@ -5499,29 +5524,29 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 700, col: 5, offset: 23436}, + pos: position{line: 701, col: 5, offset: 23491}, run: (*parser).callonTagRange7, expr: &seqExpr{ - pos: position{line: 700, col: 5, offset: 23436}, + pos: position{line: 701, col: 5, offset: 23491}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 700, col: 5, offset: 23436}, + pos: position{line: 701, col: 5, offset: 23491}, val: "!", ignoreCase: false, want: "\"!\"", }, &labeledExpr{ - pos: position{line: 700, col: 9, offset: 23440}, + pos: position{line: 701, col: 9, offset: 23495}, label: "tag", expr: &choiceExpr{ - pos: position{line: 700, col: 14, offset: 23445}, + pos: position{line: 701, col: 14, offset: 23500}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 700, col: 14, offset: 23445}, + pos: position{line: 701, col: 14, offset: 23500}, name: "Alphanums", }, &ruleRefExpr{ - pos: position{line: 700, col: 26, offset: 23457}, + pos: position{line: 701, col: 26, offset: 23512}, name: "TagWildcard", }, }, @@ -5535,23 +5560,23 @@ var g = &grammar{ }, { name: "TagWildcard", - pos: position{line: 704, col: 1, offset: 23525}, + pos: position{line: 705, col: 1, offset: 23580}, expr: &actionExpr{ - pos: position{line: 704, col: 16, offset: 23540}, + pos: position{line: 705, col: 16, offset: 23595}, run: (*parser).callonTagWildcard1, expr: &seqExpr{ - pos: position{line: 704, col: 16, offset: 23540}, + pos: position{line: 705, col: 16, offset: 23595}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 704, col: 16, offset: 23540}, + pos: position{line: 705, col: 16, offset: 23595}, label: "stars", expr: &actionExpr{ - pos: position{line: 704, col: 23, offset: 23547}, + pos: position{line: 705, col: 23, offset: 23602}, run: (*parser).callonTagWildcard4, expr: &oneOrMoreExpr{ - pos: position{line: 704, col: 23, offset: 23547}, + pos: position{line: 705, col: 23, offset: 23602}, expr: &litMatcher{ - pos: position{line: 704, col: 24, offset: 23548}, + pos: position{line: 705, col: 24, offset: 23603}, val: "*", ignoreCase: false, want: "\"*\"", @@ -5560,7 +5585,7 @@ var g = &grammar{ }, }, &andCodeExpr{ - pos: position{line: 707, col: 5, offset: 23602}, + pos: position{line: 708, col: 5, offset: 23657}, run: (*parser).callonTagWildcard7, }, }, @@ -5569,30 +5594,30 @@ var g = &grammar{ }, { name: "VerbatimFileLine", - pos: position{line: 715, col: 1, offset: 23782}, + pos: position{line: 716, col: 1, offset: 23837}, expr: &actionExpr{ - pos: position{line: 715, col: 21, offset: 23802}, + pos: position{line: 716, col: 21, offset: 23857}, run: (*parser).callonVerbatimFileLine1, expr: &seqExpr{ - pos: position{line: 715, col: 21, offset: 23802}, + pos: position{line: 716, col: 21, offset: 23857}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 715, col: 21, offset: 23802}, + pos: position{line: 716, col: 21, offset: 23857}, expr: &ruleRefExpr{ - pos: position{line: 715, col: 22, offset: 23803}, + pos: position{line: 716, col: 22, offset: 23858}, name: "EOF", }, }, &labeledExpr{ - pos: position{line: 715, col: 26, offset: 23807}, + pos: position{line: 716, col: 26, offset: 23862}, label: "content", expr: &actionExpr{ - pos: position{line: 715, col: 35, offset: 23816}, + pos: position{line: 716, col: 35, offset: 23871}, run: (*parser).callonVerbatimFileLine6, expr: &zeroOrMoreExpr{ - pos: position{line: 715, col: 35, offset: 23816}, + pos: position{line: 716, col: 35, offset: 23871}, expr: &charClassMatcher{ - pos: position{line: 715, col: 35, offset: 23816}, + pos: position{line: 716, col: 35, offset: 23871}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -5602,7 +5627,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 717, col: 12, offset: 23878}, + pos: position{line: 718, col: 12, offset: 23933}, name: "EOL", }, }, @@ -5611,18 +5636,22 @@ var g = &grammar{ }, { name: "RawFileContent", - pos: position{line: 722, col: 1, offset: 24025}, + pos: position{line: 723, col: 1, offset: 24080}, expr: &zeroOrMoreExpr{ - pos: position{line: 722, col: 19, offset: 24043}, + pos: position{line: 723, col: 19, offset: 24098}, expr: &choiceExpr{ - pos: position{line: 722, col: 20, offset: 24044}, + pos: position{line: 723, col: 20, offset: 24099}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 722, col: 20, offset: 24044}, + pos: position{line: 723, col: 20, offset: 24099}, name: "FileInclusion", }, &ruleRefExpr{ - pos: position{line: 722, col: 36, offset: 24060}, + pos: position{line: 723, col: 36, offset: 24115}, + name: "SingleLineComment", + }, + &ruleRefExpr{ + pos: position{line: 723, col: 56, offset: 24135}, name: "RawLine", }, }, @@ -5631,34 +5660,34 @@ var g = &grammar{ }, { name: "IncludedFileLine", - pos: position{line: 728, col: 1, offset: 24207}, + pos: position{line: 729, col: 1, offset: 24282}, expr: &actionExpr{ - pos: position{line: 728, col: 21, offset: 24227}, + pos: position{line: 729, col: 21, offset: 24302}, run: (*parser).callonIncludedFileLine1, expr: &seqExpr{ - pos: position{line: 728, col: 21, offset: 24227}, + pos: position{line: 729, col: 21, offset: 24302}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 728, col: 21, offset: 24227}, + pos: position{line: 729, col: 21, offset: 24302}, label: "content", expr: &zeroOrMoreExpr{ - pos: position{line: 728, col: 29, offset: 24235}, + pos: position{line: 729, col: 29, offset: 24310}, expr: &choiceExpr{ - pos: position{line: 728, col: 30, offset: 24236}, + pos: position{line: 729, col: 30, offset: 24311}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 728, col: 30, offset: 24236}, + pos: position{line: 729, col: 30, offset: 24311}, name: "IncludedFileStartTag", }, &ruleRefExpr{ - pos: position{line: 728, col: 53, offset: 24259}, + pos: position{line: 729, col: 53, offset: 24334}, name: "IncludedFileEndTag", }, &actionExpr{ - pos: position{line: 728, col: 74, offset: 24280}, + pos: position{line: 729, col: 74, offset: 24355}, run: (*parser).callonIncludedFileLine8, expr: &anyMatcher{ - line: 728, col: 74, offset: 24280, + line: 729, col: 74, offset: 24355, }, }, }, @@ -5666,7 +5695,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 728, col: 107, offset: 24313}, + pos: position{line: 729, col: 107, offset: 24388}, name: "EOL", }, }, @@ -5675,33 +5704,33 @@ var g = &grammar{ }, { name: "IncludedFileStartTag", - pos: position{line: 732, col: 1, offset: 24384}, + pos: position{line: 733, col: 1, offset: 24459}, expr: &actionExpr{ - pos: position{line: 732, col: 25, offset: 24408}, + pos: position{line: 733, col: 25, offset: 24483}, run: (*parser).callonIncludedFileStartTag1, expr: &seqExpr{ - pos: position{line: 732, col: 25, offset: 24408}, + pos: position{line: 733, col: 25, offset: 24483}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 732, col: 25, offset: 24408}, + pos: position{line: 733, col: 25, offset: 24483}, val: "tag::", ignoreCase: false, want: "\"tag::\"", }, &labeledExpr{ - pos: position{line: 732, col: 33, offset: 24416}, + pos: position{line: 733, col: 33, offset: 24491}, label: "tag", expr: &actionExpr{ - pos: position{line: 732, col: 38, offset: 24421}, + pos: position{line: 733, col: 38, offset: 24496}, run: (*parser).callonIncludedFileStartTag5, expr: &ruleRefExpr{ - pos: position{line: 732, col: 38, offset: 24421}, + pos: position{line: 733, col: 38, offset: 24496}, name: "Alphanums", }, }, }, &litMatcher{ - pos: position{line: 732, col: 78, offset: 24461}, + pos: position{line: 733, col: 78, offset: 24536}, val: "[]", ignoreCase: false, want: "\"[]\"", @@ -5712,33 +5741,33 @@ var g = &grammar{ }, { name: "IncludedFileEndTag", - pos: position{line: 736, col: 1, offset: 24526}, + pos: position{line: 737, col: 1, offset: 24601}, expr: &actionExpr{ - pos: position{line: 736, col: 23, offset: 24548}, + pos: position{line: 737, col: 23, offset: 24623}, run: (*parser).callonIncludedFileEndTag1, expr: &seqExpr{ - pos: position{line: 736, col: 23, offset: 24548}, + pos: position{line: 737, col: 23, offset: 24623}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 736, col: 23, offset: 24548}, + pos: position{line: 737, col: 23, offset: 24623}, val: "end::", ignoreCase: false, want: "\"end::\"", }, &labeledExpr{ - pos: position{line: 736, col: 31, offset: 24556}, + pos: position{line: 737, col: 31, offset: 24631}, label: "tag", expr: &actionExpr{ - pos: position{line: 736, col: 36, offset: 24561}, + pos: position{line: 737, col: 36, offset: 24636}, run: (*parser).callonIncludedFileEndTag5, expr: &ruleRefExpr{ - pos: position{line: 736, col: 36, offset: 24561}, + pos: position{line: 737, col: 36, offset: 24636}, name: "Alphanums", }, }, }, &litMatcher{ - pos: position{line: 736, col: 76, offset: 24601}, + pos: position{line: 737, col: 76, offset: 24676}, val: "[]", ignoreCase: false, want: "\"[]\"", @@ -5749,32 +5778,32 @@ var g = &grammar{ }, { name: "ListParagraph", - pos: position{line: 743, col: 1, offset: 24765}, + pos: position{line: 744, col: 1, offset: 24840}, expr: &choiceExpr{ - pos: position{line: 743, col: 18, offset: 24782}, + pos: position{line: 744, col: 18, offset: 24857}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 743, col: 18, offset: 24782}, + pos: position{line: 744, col: 18, offset: 24857}, run: (*parser).callonListParagraph2, expr: &labeledExpr{ - pos: position{line: 743, col: 18, offset: 24782}, + pos: position{line: 744, col: 18, offset: 24857}, label: "comment", expr: &ruleRefExpr{ - pos: position{line: 743, col: 27, offset: 24791}, + pos: position{line: 744, col: 27, offset: 24866}, name: "SingleLineComment", }, }, }, &actionExpr{ - pos: position{line: 745, col: 9, offset: 24848}, + pos: position{line: 746, col: 9, offset: 24923}, run: (*parser).callonListParagraph5, expr: &labeledExpr{ - pos: position{line: 745, col: 9, offset: 24848}, + pos: position{line: 746, col: 9, offset: 24923}, label: "lines", expr: &oneOrMoreExpr{ - pos: position{line: 745, col: 15, offset: 24854}, + pos: position{line: 746, col: 15, offset: 24929}, expr: &ruleRefExpr{ - pos: position{line: 745, col: 16, offset: 24855}, + pos: position{line: 746, col: 16, offset: 24930}, name: "ListParagraphLine", }, }, @@ -5785,96 +5814,96 @@ var g = &grammar{ }, { name: "ListParagraphLine", - pos: position{line: 749, col: 1, offset: 24947}, + pos: position{line: 750, col: 1, offset: 25022}, expr: &actionExpr{ - pos: position{line: 749, col: 22, offset: 24968}, + pos: position{line: 750, col: 22, offset: 25043}, run: (*parser).callonListParagraphLine1, expr: &seqExpr{ - pos: position{line: 749, col: 22, offset: 24968}, + pos: position{line: 750, col: 22, offset: 25043}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 749, col: 22, offset: 24968}, + pos: position{line: 750, col: 22, offset: 25043}, expr: &ruleRefExpr{ - pos: position{line: 749, col: 23, offset: 24969}, + pos: position{line: 750, col: 23, offset: 25044}, name: "EOF", }, }, ¬Expr{ - pos: position{line: 750, col: 5, offset: 24977}, + pos: position{line: 751, col: 5, offset: 25052}, expr: &ruleRefExpr{ - pos: position{line: 750, col: 6, offset: 24978}, + pos: position{line: 751, col: 6, offset: 25053}, name: "BlankLine", }, }, ¬Expr{ - pos: position{line: 751, col: 5, offset: 24993}, + pos: position{line: 752, col: 5, offset: 25068}, expr: &ruleRefExpr{ - pos: position{line: 751, col: 6, offset: 24994}, + pos: position{line: 752, col: 6, offset: 25069}, name: "SingleLineComment", }, }, ¬Expr{ - pos: position{line: 752, col: 5, offset: 25016}, + pos: position{line: 753, col: 5, offset: 25091}, expr: &ruleRefExpr{ - pos: position{line: 752, col: 6, offset: 25017}, + pos: position{line: 753, col: 6, offset: 25092}, name: "OrderedListItemPrefix", }, }, ¬Expr{ - pos: position{line: 753, col: 5, offset: 25043}, + pos: position{line: 754, col: 5, offset: 25118}, expr: &ruleRefExpr{ - pos: position{line: 753, col: 6, offset: 25044}, + pos: position{line: 754, col: 6, offset: 25119}, name: "UnorderedListItemPrefix", }, }, ¬Expr{ - pos: position{line: 754, col: 5, offset: 25072}, + pos: position{line: 755, col: 5, offset: 25147}, expr: &ruleRefExpr{ - pos: position{line: 754, col: 6, offset: 25073}, + pos: position{line: 755, col: 6, offset: 25148}, name: "CalloutListItemPrefix", }, }, ¬Expr{ - pos: position{line: 755, col: 5, offset: 25099}, + pos: position{line: 756, col: 5, offset: 25174}, expr: &ruleRefExpr{ - pos: position{line: 755, col: 6, offset: 25100}, + pos: position{line: 756, col: 6, offset: 25175}, name: "ListItemContinuation", }, }, ¬Expr{ - pos: position{line: 756, col: 5, offset: 25125}, + pos: position{line: 757, col: 5, offset: 25200}, expr: &ruleRefExpr{ - pos: position{line: 756, col: 6, offset: 25126}, + pos: position{line: 757, col: 6, offset: 25201}, name: "ElementAttribute", }, }, ¬Expr{ - pos: position{line: 757, col: 5, offset: 25147}, + pos: position{line: 758, col: 5, offset: 25222}, expr: &ruleRefExpr{ - pos: position{line: 757, col: 6, offset: 25148}, + pos: position{line: 758, col: 6, offset: 25223}, name: "BlockDelimiter", }, }, ¬Expr{ - pos: position{line: 758, col: 5, offset: 25167}, + pos: position{line: 759, col: 5, offset: 25242}, expr: &ruleRefExpr{ - pos: position{line: 758, col: 6, offset: 25168}, + pos: position{line: 759, col: 6, offset: 25243}, name: "LabeledListItemPrefix", }, }, &labeledExpr{ - pos: position{line: 759, col: 5, offset: 25195}, + pos: position{line: 760, col: 5, offset: 25270}, label: "line", expr: &actionExpr{ - pos: position{line: 759, col: 11, offset: 25201}, + pos: position{line: 760, col: 11, offset: 25276}, run: (*parser).callonListParagraphLine24, expr: &labeledExpr{ - pos: position{line: 759, col: 11, offset: 25201}, + pos: position{line: 760, col: 11, offset: 25276}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 759, col: 20, offset: 25210}, + pos: position{line: 760, col: 20, offset: 25285}, expr: &ruleRefExpr{ - pos: position{line: 759, col: 21, offset: 25211}, + pos: position{line: 760, col: 21, offset: 25286}, name: "InlineElement", }, }, @@ -5882,7 +5911,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 761, col: 12, offset: 25310}, + pos: position{line: 762, col: 12, offset: 25385}, name: "EOL", }, }, @@ -5891,25 +5920,25 @@ var g = &grammar{ }, { name: "ListItemContinuation", - pos: position{line: 765, col: 1, offset: 25349}, + pos: position{line: 766, col: 1, offset: 25424}, expr: &seqExpr{ - pos: position{line: 765, col: 25, offset: 25373}, + pos: position{line: 766, col: 25, offset: 25448}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 765, col: 25, offset: 25373}, + pos: position{line: 766, col: 25, offset: 25448}, val: "+", ignoreCase: false, want: "\"+\"", }, &zeroOrMoreExpr{ - pos: position{line: 765, col: 29, offset: 25377}, + pos: position{line: 766, col: 29, offset: 25452}, expr: &ruleRefExpr{ - pos: position{line: 765, col: 29, offset: 25377}, + pos: position{line: 766, col: 29, offset: 25452}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 765, col: 36, offset: 25384}, + pos: position{line: 766, col: 36, offset: 25459}, name: "Newline", }, }, @@ -5917,22 +5946,22 @@ var g = &grammar{ }, { name: "ContinuedListItemElement", - pos: position{line: 767, col: 1, offset: 25456}, + pos: position{line: 768, col: 1, offset: 25531}, expr: &actionExpr{ - pos: position{line: 767, col: 29, offset: 25484}, + pos: position{line: 768, col: 29, offset: 25559}, run: (*parser).callonContinuedListItemElement1, expr: &seqExpr{ - pos: position{line: 767, col: 29, offset: 25484}, + pos: position{line: 768, col: 29, offset: 25559}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 767, col: 29, offset: 25484}, + pos: position{line: 768, col: 29, offset: 25559}, name: "ListItemContinuation", }, &labeledExpr{ - pos: position{line: 767, col: 50, offset: 25505}, + pos: position{line: 768, col: 50, offset: 25580}, label: "element", expr: &ruleRefExpr{ - pos: position{line: 767, col: 58, offset: 25513}, + pos: position{line: 768, col: 58, offset: 25588}, name: "ContinuedListItemContent", }, }, @@ -5942,84 +5971,84 @@ var g = &grammar{ }, { name: "ContinuedListItemContent", - pos: position{line: 771, col: 1, offset: 25619}, + pos: position{line: 772, col: 1, offset: 25694}, expr: &actionExpr{ - pos: position{line: 771, col: 29, offset: 25647}, + pos: position{line: 772, col: 29, offset: 25722}, run: (*parser).callonContinuedListItemContent1, expr: &seqExpr{ - pos: position{line: 771, col: 29, offset: 25647}, + pos: position{line: 772, col: 29, offset: 25722}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 771, col: 29, offset: 25647}, + pos: position{line: 772, col: 29, offset: 25722}, expr: &ruleRefExpr{ - pos: position{line: 771, col: 30, offset: 25648}, + pos: position{line: 772, col: 30, offset: 25723}, name: "EOF", }, }, &labeledExpr{ - pos: position{line: 772, col: 5, offset: 25657}, + pos: position{line: 773, col: 5, offset: 25732}, label: "content", expr: &choiceExpr{ - pos: position{line: 772, col: 14, offset: 25666}, + pos: position{line: 773, col: 14, offset: 25741}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 772, col: 14, offset: 25666}, + pos: position{line: 773, col: 14, offset: 25741}, name: "DelimitedBlock", }, &ruleRefExpr{ - pos: position{line: 773, col: 11, offset: 25691}, + pos: position{line: 774, col: 11, offset: 25766}, name: "FileInclusion", }, &ruleRefExpr{ - pos: position{line: 774, col: 11, offset: 25715}, + pos: position{line: 775, col: 11, offset: 25790}, name: "ImageBlock", }, &ruleRefExpr{ - pos: position{line: 775, col: 11, offset: 25736}, + pos: position{line: 776, col: 11, offset: 25811}, name: "RawVerseParagraph", }, &ruleRefExpr{ - pos: position{line: 776, col: 11, offset: 25764}, + pos: position{line: 777, col: 11, offset: 25839}, name: "ThematicBreak", }, &ruleRefExpr{ - pos: position{line: 777, col: 11, offset: 25788}, + pos: position{line: 778, col: 11, offset: 25863}, name: "OrderedListItem", }, &ruleRefExpr{ - pos: position{line: 778, col: 11, offset: 25815}, + pos: position{line: 779, col: 11, offset: 25890}, name: "UnorderedListItem", }, &ruleRefExpr{ - pos: position{line: 779, col: 11, offset: 25844}, + pos: position{line: 780, col: 11, offset: 25919}, name: "LabeledListItem", }, &ruleRefExpr{ - pos: position{line: 781, col: 11, offset: 25909}, + pos: position{line: 782, col: 11, offset: 25984}, name: "BlankLine", }, &ruleRefExpr{ - pos: position{line: 782, col: 11, offset: 25960}, + pos: position{line: 783, col: 11, offset: 26035}, name: "LiteralBlock", }, &ruleRefExpr{ - pos: position{line: 783, col: 11, offset: 25984}, + pos: position{line: 784, col: 11, offset: 26059}, name: "AttributeDeclaration", }, &ruleRefExpr{ - pos: position{line: 784, col: 11, offset: 26016}, + pos: position{line: 785, col: 11, offset: 26091}, name: "AttributeReset", }, &ruleRefExpr{ - pos: position{line: 785, col: 11, offset: 26042}, + pos: position{line: 786, col: 11, offset: 26117}, name: "TableOfContentsPlaceHolder", }, &ruleRefExpr{ - pos: position{line: 786, col: 11, offset: 26079}, + pos: position{line: 787, col: 11, offset: 26154}, name: "UserMacroBlock", }, &ruleRefExpr{ - pos: position{line: 787, col: 11, offset: 26104}, + pos: position{line: 788, col: 11, offset: 26179}, name: "ContinuedRawParagraph", }, }, @@ -6031,37 +6060,37 @@ var g = &grammar{ }, { name: "OrderedListItem", - pos: position{line: 794, col: 1, offset: 26270}, + pos: position{line: 795, col: 1, offset: 26345}, expr: &actionExpr{ - pos: position{line: 794, col: 20, offset: 26289}, + pos: position{line: 795, col: 20, offset: 26364}, run: (*parser).callonOrderedListItem1, expr: &seqExpr{ - pos: position{line: 794, col: 20, offset: 26289}, + pos: position{line: 795, col: 20, offset: 26364}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 794, col: 20, offset: 26289}, + pos: position{line: 795, col: 20, offset: 26364}, label: "attrs", expr: &zeroOrMoreExpr{ - pos: position{line: 794, col: 26, offset: 26295}, + pos: position{line: 795, col: 26, offset: 26370}, expr: &ruleRefExpr{ - pos: position{line: 794, col: 27, offset: 26296}, + pos: position{line: 795, col: 27, offset: 26371}, name: "BlockAttrs", }, }, }, &labeledExpr{ - pos: position{line: 794, col: 40, offset: 26309}, + pos: position{line: 795, col: 40, offset: 26384}, label: "prefix", expr: &ruleRefExpr{ - pos: position{line: 794, col: 48, offset: 26317}, + pos: position{line: 795, col: 48, offset: 26392}, name: "OrderedListItemPrefix", }, }, &labeledExpr{ - pos: position{line: 794, col: 71, offset: 26340}, + pos: position{line: 795, col: 71, offset: 26415}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 794, col: 80, offset: 26349}, + pos: position{line: 795, col: 80, offset: 26424}, name: "OrderedListItemContent", }, }, @@ -6071,42 +6100,42 @@ var g = &grammar{ }, { name: "OrderedListItemPrefix", - pos: position{line: 798, col: 1, offset: 26484}, + pos: position{line: 799, col: 1, offset: 26559}, expr: &actionExpr{ - pos: position{line: 799, col: 5, offset: 26514}, + pos: position{line: 800, col: 5, offset: 26589}, run: (*parser).callonOrderedListItemPrefix1, expr: &seqExpr{ - pos: position{line: 799, col: 5, offset: 26514}, + pos: position{line: 800, col: 5, offset: 26589}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 799, col: 5, offset: 26514}, + pos: position{line: 800, col: 5, offset: 26589}, expr: &ruleRefExpr{ - pos: position{line: 799, col: 5, offset: 26514}, + pos: position{line: 800, col: 5, offset: 26589}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 799, col: 12, offset: 26521}, + pos: position{line: 800, col: 12, offset: 26596}, label: "prefix", expr: &choiceExpr{ - pos: position{line: 801, col: 9, offset: 26584}, + pos: position{line: 802, col: 9, offset: 26659}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 801, col: 9, offset: 26584}, + pos: position{line: 802, col: 9, offset: 26659}, run: (*parser).callonOrderedListItemPrefix7, expr: &seqExpr{ - pos: position{line: 801, col: 9, offset: 26584}, + pos: position{line: 802, col: 9, offset: 26659}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 801, col: 9, offset: 26584}, + pos: position{line: 802, col: 9, offset: 26659}, label: "depth", expr: &actionExpr{ - pos: position{line: 801, col: 16, offset: 26591}, + pos: position{line: 802, col: 16, offset: 26666}, run: (*parser).callonOrderedListItemPrefix10, expr: &oneOrMoreExpr{ - pos: position{line: 801, col: 16, offset: 26591}, + pos: position{line: 802, col: 16, offset: 26666}, expr: &litMatcher{ - pos: position{line: 801, col: 17, offset: 26592}, + pos: position{line: 802, col: 17, offset: 26667}, val: ".", ignoreCase: false, want: "\".\"", @@ -6115,22 +6144,22 @@ var g = &grammar{ }, }, &andCodeExpr{ - pos: position{line: 805, col: 9, offset: 26692}, + pos: position{line: 806, col: 9, offset: 26767}, run: (*parser).callonOrderedListItemPrefix13, }, }, }, }, &actionExpr{ - pos: position{line: 824, col: 11, offset: 27409}, + pos: position{line: 825, col: 11, offset: 27484}, run: (*parser).callonOrderedListItemPrefix14, expr: &seqExpr{ - pos: position{line: 824, col: 11, offset: 27409}, + pos: position{line: 825, col: 11, offset: 27484}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 824, col: 11, offset: 27409}, + pos: position{line: 825, col: 11, offset: 27484}, expr: &charClassMatcher{ - pos: position{line: 824, col: 12, offset: 27410}, + pos: position{line: 825, col: 12, offset: 27485}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -6138,7 +6167,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 824, col: 20, offset: 27418}, + pos: position{line: 825, col: 20, offset: 27493}, val: ".", ignoreCase: false, want: "\".\"", @@ -6147,20 +6176,20 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 826, col: 13, offset: 27529}, + pos: position{line: 827, col: 13, offset: 27604}, run: (*parser).callonOrderedListItemPrefix19, expr: &seqExpr{ - pos: position{line: 826, col: 13, offset: 27529}, + pos: position{line: 827, col: 13, offset: 27604}, exprs: []interface{}{ &charClassMatcher{ - pos: position{line: 826, col: 14, offset: 27530}, + pos: position{line: 827, col: 14, offset: 27605}, val: "[a-z]", ranges: []rune{'a', 'z'}, ignoreCase: false, inverted: false, }, &litMatcher{ - pos: position{line: 826, col: 21, offset: 27537}, + pos: position{line: 827, col: 21, offset: 27612}, val: ".", ignoreCase: false, want: "\".\"", @@ -6169,20 +6198,20 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 828, col: 13, offset: 27651}, + pos: position{line: 829, col: 13, offset: 27726}, run: (*parser).callonOrderedListItemPrefix23, expr: &seqExpr{ - pos: position{line: 828, col: 13, offset: 27651}, + pos: position{line: 829, col: 13, offset: 27726}, exprs: []interface{}{ &charClassMatcher{ - pos: position{line: 828, col: 14, offset: 27652}, + pos: position{line: 829, col: 14, offset: 27727}, val: "[A-Z]", ranges: []rune{'A', 'Z'}, ignoreCase: false, inverted: false, }, &litMatcher{ - pos: position{line: 828, col: 21, offset: 27659}, + pos: position{line: 829, col: 21, offset: 27734}, val: ".", ignoreCase: false, want: "\".\"", @@ -6191,15 +6220,15 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 830, col: 13, offset: 27773}, + pos: position{line: 831, col: 13, offset: 27848}, run: (*parser).callonOrderedListItemPrefix27, expr: &seqExpr{ - pos: position{line: 830, col: 13, offset: 27773}, + pos: position{line: 831, col: 13, offset: 27848}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 830, col: 13, offset: 27773}, + pos: position{line: 831, col: 13, offset: 27848}, expr: &charClassMatcher{ - pos: position{line: 830, col: 14, offset: 27774}, + pos: position{line: 831, col: 14, offset: 27849}, val: "[a-z]", ranges: []rune{'a', 'z'}, ignoreCase: false, @@ -6207,7 +6236,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 830, col: 22, offset: 27782}, + pos: position{line: 831, col: 22, offset: 27857}, val: ")", ignoreCase: false, want: "\")\"", @@ -6216,15 +6245,15 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 832, col: 13, offset: 27896}, + pos: position{line: 833, col: 13, offset: 27971}, run: (*parser).callonOrderedListItemPrefix32, expr: &seqExpr{ - pos: position{line: 832, col: 13, offset: 27896}, + pos: position{line: 833, col: 13, offset: 27971}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 832, col: 13, offset: 27896}, + pos: position{line: 833, col: 13, offset: 27971}, expr: &charClassMatcher{ - pos: position{line: 832, col: 14, offset: 27897}, + pos: position{line: 833, col: 14, offset: 27972}, val: "[A-Z]", ranges: []rune{'A', 'Z'}, ignoreCase: false, @@ -6232,7 +6261,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 832, col: 22, offset: 27905}, + pos: position{line: 833, col: 22, offset: 27980}, val: ")", ignoreCase: false, want: "\")\"", @@ -6244,9 +6273,9 @@ var g = &grammar{ }, }, &oneOrMoreExpr{ - pos: position{line: 834, col: 12, offset: 28018}, + pos: position{line: 835, col: 12, offset: 28093}, expr: &ruleRefExpr{ - pos: position{line: 834, col: 12, offset: 28018}, + pos: position{line: 835, col: 12, offset: 28093}, name: "Space", }, }, @@ -6256,17 +6285,17 @@ var g = &grammar{ }, { name: "OrderedListItemContent", - pos: position{line: 838, col: 1, offset: 28053}, + pos: position{line: 839, col: 1, offset: 28128}, expr: &actionExpr{ - pos: position{line: 838, col: 27, offset: 28079}, + pos: position{line: 839, col: 27, offset: 28154}, run: (*parser).callonOrderedListItemContent1, expr: &labeledExpr{ - pos: position{line: 838, col: 27, offset: 28079}, + pos: position{line: 839, col: 27, offset: 28154}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 838, col: 37, offset: 28089}, + pos: position{line: 839, col: 37, offset: 28164}, expr: &ruleRefExpr{ - pos: position{line: 838, col: 37, offset: 28089}, + pos: position{line: 839, col: 37, offset: 28164}, name: "ListParagraph", }, }, @@ -6275,48 +6304,48 @@ var g = &grammar{ }, { name: "UnorderedListItem", - pos: position{line: 845, col: 1, offset: 28289}, + pos: position{line: 846, col: 1, offset: 28364}, expr: &actionExpr{ - pos: position{line: 845, col: 22, offset: 28310}, + pos: position{line: 846, col: 22, offset: 28385}, run: (*parser).callonUnorderedListItem1, expr: &seqExpr{ - pos: position{line: 845, col: 22, offset: 28310}, + pos: position{line: 846, col: 22, offset: 28385}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 845, col: 22, offset: 28310}, + pos: position{line: 846, col: 22, offset: 28385}, label: "attrs", expr: &zeroOrMoreExpr{ - pos: position{line: 845, col: 28, offset: 28316}, + pos: position{line: 846, col: 28, offset: 28391}, expr: &ruleRefExpr{ - pos: position{line: 845, col: 29, offset: 28317}, + pos: position{line: 846, col: 29, offset: 28392}, name: "BlockAttrs", }, }, }, &labeledExpr{ - pos: position{line: 845, col: 42, offset: 28330}, + pos: position{line: 846, col: 42, offset: 28405}, label: "prefix", expr: &ruleRefExpr{ - pos: position{line: 845, col: 50, offset: 28338}, + pos: position{line: 846, col: 50, offset: 28413}, name: "UnorderedListItemPrefix", }, }, &labeledExpr{ - pos: position{line: 845, col: 75, offset: 28363}, + pos: position{line: 846, col: 75, offset: 28438}, label: "checkstyle", expr: &zeroOrOneExpr{ - pos: position{line: 845, col: 86, offset: 28374}, + pos: position{line: 846, col: 86, offset: 28449}, expr: &ruleRefExpr{ - pos: position{line: 845, col: 87, offset: 28375}, + pos: position{line: 846, col: 87, offset: 28450}, name: "UnorderedListItemCheckStyle", }, }, }, &labeledExpr{ - pos: position{line: 845, col: 117, offset: 28405}, + pos: position{line: 846, col: 117, offset: 28480}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 845, col: 126, offset: 28414}, + pos: position{line: 846, col: 126, offset: 28489}, name: "UnorderedListItemContent", }, }, @@ -6326,42 +6355,42 @@ var g = &grammar{ }, { name: "UnorderedListItemPrefix", - pos: position{line: 849, col: 1, offset: 28567}, + pos: position{line: 850, col: 1, offset: 28642}, expr: &actionExpr{ - pos: position{line: 850, col: 5, offset: 28599}, + pos: position{line: 851, col: 5, offset: 28674}, run: (*parser).callonUnorderedListItemPrefix1, expr: &seqExpr{ - pos: position{line: 850, col: 5, offset: 28599}, + pos: position{line: 851, col: 5, offset: 28674}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 850, col: 5, offset: 28599}, + pos: position{line: 851, col: 5, offset: 28674}, expr: &ruleRefExpr{ - pos: position{line: 850, col: 5, offset: 28599}, + pos: position{line: 851, col: 5, offset: 28674}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 850, col: 12, offset: 28606}, + pos: position{line: 851, col: 12, offset: 28681}, label: "prefix", expr: &choiceExpr{ - pos: position{line: 850, col: 20, offset: 28614}, + pos: position{line: 851, col: 20, offset: 28689}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 852, col: 9, offset: 28671}, + pos: position{line: 853, col: 9, offset: 28746}, run: (*parser).callonUnorderedListItemPrefix7, expr: &seqExpr{ - pos: position{line: 852, col: 9, offset: 28671}, + pos: position{line: 853, col: 9, offset: 28746}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 852, col: 9, offset: 28671}, + pos: position{line: 853, col: 9, offset: 28746}, label: "depth", expr: &actionExpr{ - pos: position{line: 852, col: 16, offset: 28678}, + pos: position{line: 853, col: 16, offset: 28753}, run: (*parser).callonUnorderedListItemPrefix10, expr: &oneOrMoreExpr{ - pos: position{line: 852, col: 16, offset: 28678}, + pos: position{line: 853, col: 16, offset: 28753}, expr: &litMatcher{ - pos: position{line: 852, col: 17, offset: 28679}, + pos: position{line: 853, col: 17, offset: 28754}, val: "*", ignoreCase: false, want: "\"*\"", @@ -6370,20 +6399,20 @@ var g = &grammar{ }, }, &andCodeExpr{ - pos: position{line: 856, col: 9, offset: 28779}, + pos: position{line: 857, col: 9, offset: 28854}, run: (*parser).callonUnorderedListItemPrefix13, }, }, }, }, &labeledExpr{ - pos: position{line: 873, col: 14, offset: 29486}, + pos: position{line: 874, col: 14, offset: 29561}, label: "depth", expr: &actionExpr{ - pos: position{line: 873, col: 21, offset: 29493}, + pos: position{line: 874, col: 21, offset: 29568}, run: (*parser).callonUnorderedListItemPrefix15, expr: &litMatcher{ - pos: position{line: 873, col: 22, offset: 29494}, + pos: position{line: 874, col: 22, offset: 29569}, val: "-", ignoreCase: false, want: "\"-\"", @@ -6394,9 +6423,9 @@ var g = &grammar{ }, }, &oneOrMoreExpr{ - pos: position{line: 875, col: 13, offset: 29580}, + pos: position{line: 876, col: 13, offset: 29655}, expr: &ruleRefExpr{ - pos: position{line: 875, col: 13, offset: 29580}, + pos: position{line: 876, col: 13, offset: 29655}, name: "Space", }, }, @@ -6406,53 +6435,53 @@ var g = &grammar{ }, { name: "UnorderedListItemCheckStyle", - pos: position{line: 879, col: 1, offset: 29616}, + pos: position{line: 880, col: 1, offset: 29691}, expr: &actionExpr{ - pos: position{line: 879, col: 32, offset: 29647}, + pos: position{line: 880, col: 32, offset: 29722}, run: (*parser).callonUnorderedListItemCheckStyle1, expr: &seqExpr{ - pos: position{line: 879, col: 32, offset: 29647}, + pos: position{line: 880, col: 32, offset: 29722}, exprs: []interface{}{ &andExpr{ - pos: position{line: 879, col: 32, offset: 29647}, + pos: position{line: 880, col: 32, offset: 29722}, expr: &litMatcher{ - pos: position{line: 879, col: 33, offset: 29648}, + pos: position{line: 880, col: 33, offset: 29723}, val: "[", ignoreCase: false, want: "\"[\"", }, }, &labeledExpr{ - pos: position{line: 879, col: 37, offset: 29652}, + pos: position{line: 880, col: 37, offset: 29727}, label: "style", expr: &choiceExpr{ - pos: position{line: 880, col: 7, offset: 29666}, + pos: position{line: 881, col: 7, offset: 29741}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 880, col: 7, offset: 29666}, + pos: position{line: 881, col: 7, offset: 29741}, run: (*parser).callonUnorderedListItemCheckStyle7, expr: &litMatcher{ - pos: position{line: 880, col: 7, offset: 29666}, + pos: position{line: 881, col: 7, offset: 29741}, val: "[ ]", ignoreCase: false, want: "\"[ ]\"", }, }, &actionExpr{ - pos: position{line: 881, col: 7, offset: 29711}, + pos: position{line: 882, col: 7, offset: 29786}, run: (*parser).callonUnorderedListItemCheckStyle9, expr: &litMatcher{ - pos: position{line: 881, col: 7, offset: 29711}, + pos: position{line: 882, col: 7, offset: 29786}, val: "[*]", ignoreCase: false, want: "\"[*]\"", }, }, &actionExpr{ - pos: position{line: 882, col: 7, offset: 29754}, + pos: position{line: 883, col: 7, offset: 29829}, run: (*parser).callonUnorderedListItemCheckStyle11, expr: &litMatcher{ - pos: position{line: 882, col: 7, offset: 29754}, + pos: position{line: 883, col: 7, offset: 29829}, val: "[x]", ignoreCase: false, want: "\"[x]\"", @@ -6462,9 +6491,9 @@ var g = &grammar{ }, }, &oneOrMoreExpr{ - pos: position{line: 883, col: 7, offset: 29796}, + pos: position{line: 884, col: 7, offset: 29871}, expr: &ruleRefExpr{ - pos: position{line: 883, col: 7, offset: 29796}, + pos: position{line: 884, col: 7, offset: 29871}, name: "Space", }, }, @@ -6474,17 +6503,17 @@ var g = &grammar{ }, { name: "UnorderedListItemContent", - pos: position{line: 887, col: 1, offset: 29838}, + pos: position{line: 888, col: 1, offset: 29913}, expr: &actionExpr{ - pos: position{line: 887, col: 29, offset: 29866}, + pos: position{line: 888, col: 29, offset: 29941}, run: (*parser).callonUnorderedListItemContent1, expr: &labeledExpr{ - pos: position{line: 887, col: 29, offset: 29866}, + pos: position{line: 888, col: 29, offset: 29941}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 887, col: 39, offset: 29876}, + pos: position{line: 888, col: 39, offset: 29951}, expr: &ruleRefExpr{ - pos: position{line: 887, col: 39, offset: 29876}, + pos: position{line: 888, col: 39, offset: 29951}, name: "ListParagraph", }, }, @@ -6493,47 +6522,47 @@ var g = &grammar{ }, { name: "LabeledListItem", - pos: position{line: 894, col: 1, offset: 30192}, + pos: position{line: 895, col: 1, offset: 30267}, expr: &actionExpr{ - pos: position{line: 894, col: 20, offset: 30211}, + pos: position{line: 895, col: 20, offset: 30286}, run: (*parser).callonLabeledListItem1, expr: &seqExpr{ - pos: position{line: 894, col: 20, offset: 30211}, + pos: position{line: 895, col: 20, offset: 30286}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 894, col: 20, offset: 30211}, + pos: position{line: 895, col: 20, offset: 30286}, label: "attrs", expr: &zeroOrMoreExpr{ - pos: position{line: 894, col: 26, offset: 30217}, + pos: position{line: 895, col: 26, offset: 30292}, expr: &ruleRefExpr{ - pos: position{line: 894, col: 27, offset: 30218}, + pos: position{line: 895, col: 27, offset: 30293}, name: "BlockAttrs", }, }, }, &labeledExpr{ - pos: position{line: 894, col: 40, offset: 30231}, + pos: position{line: 895, col: 40, offset: 30306}, label: "term", expr: &ruleRefExpr{ - pos: position{line: 894, col: 46, offset: 30237}, + pos: position{line: 895, col: 46, offset: 30312}, name: "VerbatimLabeledListItemTerm", }, }, &labeledExpr{ - pos: position{line: 894, col: 75, offset: 30266}, + pos: position{line: 895, col: 75, offset: 30341}, label: "separator", expr: &ruleRefExpr{ - pos: position{line: 894, col: 86, offset: 30277}, + pos: position{line: 895, col: 86, offset: 30352}, name: "LabeledListItemSeparator", }, }, &labeledExpr{ - pos: position{line: 894, col: 112, offset: 30303}, + pos: position{line: 895, col: 112, offset: 30378}, label: "description", expr: &zeroOrOneExpr{ - pos: position{line: 894, col: 124, offset: 30315}, + pos: position{line: 895, col: 124, offset: 30390}, expr: &ruleRefExpr{ - pos: position{line: 894, col: 125, offset: 30316}, + pos: position{line: 895, col: 125, offset: 30391}, name: "LabeledListItemDescription", }, }, @@ -6544,16 +6573,16 @@ var g = &grammar{ }, { name: "LabeledListItemPrefix", - pos: position{line: 898, col: 1, offset: 30457}, + pos: position{line: 899, col: 1, offset: 30532}, expr: &seqExpr{ - pos: position{line: 898, col: 26, offset: 30482}, + pos: position{line: 899, col: 26, offset: 30557}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 898, col: 26, offset: 30482}, + pos: position{line: 899, col: 26, offset: 30557}, name: "VerbatimLabeledListItemTerm", }, &ruleRefExpr{ - pos: position{line: 898, col: 54, offset: 30510}, + pos: position{line: 899, col: 54, offset: 30585}, name: "LabeledListItemSeparator", }, }, @@ -6561,14 +6590,14 @@ var g = &grammar{ }, { name: "VerbatimLabeledListItemChars", - pos: position{line: 900, col: 1, offset: 30536}, + pos: position{line: 901, col: 1, offset: 30611}, expr: &choiceExpr{ - pos: position{line: 900, col: 33, offset: 30568}, + pos: position{line: 901, col: 33, offset: 30643}, alternatives: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 900, col: 33, offset: 30568}, + pos: position{line: 901, col: 33, offset: 30643}, expr: &charClassMatcher{ - pos: position{line: 900, col: 33, offset: 30568}, + pos: position{line: 901, col: 33, offset: 30643}, val: "[^:\\r\\n]", chars: []rune{':', '\r', '\n'}, ignoreCase: false, @@ -6576,18 +6605,18 @@ var g = &grammar{ }, }, &seqExpr{ - pos: position{line: 900, col: 45, offset: 30580}, + pos: position{line: 901, col: 45, offset: 30655}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 900, col: 45, offset: 30580}, + pos: position{line: 901, col: 45, offset: 30655}, val: ":", ignoreCase: false, want: "\":\"", }, ¬Expr{ - pos: position{line: 900, col: 49, offset: 30584}, + pos: position{line: 901, col: 49, offset: 30659}, expr: &litMatcher{ - pos: position{line: 900, col: 50, offset: 30585}, + pos: position{line: 901, col: 50, offset: 30660}, val: ":", ignoreCase: false, want: "\":\"", @@ -6600,20 +6629,20 @@ var g = &grammar{ }, { name: "VerbatimLabeledListItemTerm", - pos: position{line: 901, col: 1, offset: 30589}, + pos: position{line: 902, col: 1, offset: 30664}, expr: &actionExpr{ - pos: position{line: 901, col: 32, offset: 30620}, + pos: position{line: 902, col: 32, offset: 30695}, run: (*parser).callonVerbatimLabeledListItemTerm1, expr: &labeledExpr{ - pos: position{line: 901, col: 32, offset: 30620}, + pos: position{line: 902, col: 32, offset: 30695}, label: "content", expr: &actionExpr{ - pos: position{line: 901, col: 42, offset: 30630}, + pos: position{line: 902, col: 42, offset: 30705}, run: (*parser).callonVerbatimLabeledListItemTerm3, expr: &oneOrMoreExpr{ - pos: position{line: 901, col: 42, offset: 30630}, + pos: position{line: 902, col: 42, offset: 30705}, expr: &ruleRefExpr{ - pos: position{line: 901, col: 42, offset: 30630}, + pos: position{line: 902, col: 42, offset: 30705}, name: "VerbatimLabeledListItemChars", }, }, @@ -6623,36 +6652,36 @@ var g = &grammar{ }, { name: "LabeledListItemTerm", - pos: position{line: 907, col: 1, offset: 30785}, + pos: position{line: 908, col: 1, offset: 30860}, expr: &actionExpr{ - pos: position{line: 907, col: 24, offset: 30808}, + pos: position{line: 908, col: 24, offset: 30883}, run: (*parser).callonLabeledListItemTerm1, expr: &labeledExpr{ - pos: position{line: 907, col: 24, offset: 30808}, + pos: position{line: 908, col: 24, offset: 30883}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 907, col: 33, offset: 30817}, + pos: position{line: 908, col: 33, offset: 30892}, expr: &seqExpr{ - pos: position{line: 907, col: 34, offset: 30818}, + pos: position{line: 908, col: 34, offset: 30893}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 907, col: 34, offset: 30818}, + pos: position{line: 908, col: 34, offset: 30893}, expr: &ruleRefExpr{ - pos: position{line: 907, col: 35, offset: 30819}, + pos: position{line: 908, col: 35, offset: 30894}, name: "Newline", }, }, ¬Expr{ - pos: position{line: 907, col: 43, offset: 30827}, + pos: position{line: 908, col: 43, offset: 30902}, expr: &litMatcher{ - pos: position{line: 907, col: 44, offset: 30828}, + pos: position{line: 908, col: 44, offset: 30903}, val: "::", ignoreCase: false, want: "\"::\"", }, }, &ruleRefExpr{ - pos: position{line: 907, col: 49, offset: 30833}, + pos: position{line: 908, col: 49, offset: 30908}, name: "LabeledListItemTermElement", }, }, @@ -6663,89 +6692,89 @@ var g = &grammar{ }, { name: "LabeledListItemTermElement", - pos: position{line: 911, col: 1, offset: 30960}, + pos: position{line: 912, col: 1, offset: 31035}, expr: &actionExpr{ - pos: position{line: 911, col: 31, offset: 30990}, + pos: position{line: 912, col: 31, offset: 31065}, run: (*parser).callonLabeledListItemTermElement1, expr: &labeledExpr{ - pos: position{line: 911, col: 31, offset: 30990}, + pos: position{line: 912, col: 31, offset: 31065}, label: "element", expr: &choiceExpr{ - pos: position{line: 911, col: 40, offset: 30999}, + pos: position{line: 912, col: 40, offset: 31074}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 911, col: 40, offset: 30999}, + pos: position{line: 912, col: 40, offset: 31074}, name: "Word", }, &ruleRefExpr{ - pos: position{line: 912, col: 11, offset: 31014}, + pos: position{line: 913, col: 11, offset: 31089}, name: "LineBreak", }, &oneOrMoreExpr{ - pos: position{line: 913, col: 11, offset: 31063}, + pos: position{line: 914, col: 11, offset: 31138}, expr: &ruleRefExpr{ - pos: position{line: 913, col: 11, offset: 31063}, + pos: position{line: 914, col: 11, offset: 31138}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 914, col: 11, offset: 31081}, + pos: position{line: 915, col: 11, offset: 31156}, name: "CrossReference", }, &ruleRefExpr{ - pos: position{line: 915, col: 11, offset: 31106}, + pos: position{line: 916, col: 11, offset: 31181}, name: "ConcealedIndexTerm", }, &ruleRefExpr{ - pos: position{line: 916, col: 11, offset: 31135}, + pos: position{line: 917, col: 11, offset: 31210}, name: "IndexTerm", }, &ruleRefExpr{ - pos: position{line: 917, col: 11, offset: 31155}, + pos: position{line: 918, col: 11, offset: 31230}, name: "InlinePassthrough", }, &ruleRefExpr{ - pos: position{line: 918, col: 11, offset: 31244}, + pos: position{line: 919, col: 11, offset: 31319}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 919, col: 11, offset: 31265}, + pos: position{line: 920, col: 11, offset: 31340}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 920, col: 11, offset: 31288}, + pos: position{line: 921, col: 11, offset: 31363}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 921, col: 11, offset: 31303}, + pos: position{line: 922, col: 11, offset: 31378}, name: "InlineFootnote", }, &ruleRefExpr{ - pos: position{line: 922, col: 11, offset: 31328}, + pos: position{line: 923, col: 11, offset: 31403}, name: "QuotedString", }, &ruleRefExpr{ - pos: position{line: 923, col: 11, offset: 31351}, + pos: position{line: 924, col: 11, offset: 31426}, name: "QuotedText", }, &ruleRefExpr{ - pos: position{line: 924, col: 11, offset: 31372}, + pos: position{line: 925, col: 11, offset: 31447}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 925, col: 11, offset: 31399}, + pos: position{line: 926, col: 11, offset: 31474}, name: "Symbol", }, &ruleRefExpr{ - pos: position{line: 926, col: 11, offset: 31416}, + pos: position{line: 927, col: 11, offset: 31491}, name: "AttributeSubstitution", }, &ruleRefExpr{ - pos: position{line: 927, col: 11, offset: 31448}, + pos: position{line: 928, col: 11, offset: 31523}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 928, col: 11, offset: 31476}, + pos: position{line: 929, col: 11, offset: 31551}, name: "AnyChar", }, }, @@ -6755,23 +6784,23 @@ var g = &grammar{ }, { name: "LabeledListItemSeparator", - pos: position{line: 932, col: 1, offset: 31515}, + pos: position{line: 933, col: 1, offset: 31590}, expr: &actionExpr{ - pos: position{line: 933, col: 5, offset: 31548}, + pos: position{line: 934, col: 5, offset: 31623}, run: (*parser).callonLabeledListItemSeparator1, expr: &seqExpr{ - pos: position{line: 933, col: 5, offset: 31548}, + pos: position{line: 934, col: 5, offset: 31623}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 933, col: 5, offset: 31548}, + pos: position{line: 934, col: 5, offset: 31623}, label: "separator", expr: &actionExpr{ - pos: position{line: 933, col: 16, offset: 31559}, + pos: position{line: 934, col: 16, offset: 31634}, run: (*parser).callonLabeledListItemSeparator4, expr: &oneOrMoreExpr{ - pos: position{line: 933, col: 16, offset: 31559}, + pos: position{line: 934, col: 16, offset: 31634}, expr: &litMatcher{ - pos: position{line: 933, col: 17, offset: 31560}, + pos: position{line: 934, col: 17, offset: 31635}, val: ":", ignoreCase: false, want: "\":\"", @@ -6780,30 +6809,30 @@ var g = &grammar{ }, }, &andCodeExpr{ - pos: position{line: 936, col: 5, offset: 31618}, + pos: position{line: 937, col: 5, offset: 31693}, run: (*parser).callonLabeledListItemSeparator7, }, &choiceExpr{ - pos: position{line: 940, col: 6, offset: 31794}, + pos: position{line: 941, col: 6, offset: 31869}, alternatives: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 940, col: 6, offset: 31794}, + pos: position{line: 941, col: 6, offset: 31869}, expr: &choiceExpr{ - pos: position{line: 940, col: 7, offset: 31795}, + pos: position{line: 941, col: 7, offset: 31870}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 940, col: 7, offset: 31795}, + pos: position{line: 941, col: 7, offset: 31870}, name: "Space", }, &ruleRefExpr{ - pos: position{line: 940, col: 15, offset: 31803}, + pos: position{line: 941, col: 15, offset: 31878}, name: "Newline", }, }, }, }, &ruleRefExpr{ - pos: position{line: 940, col: 27, offset: 31815}, + pos: position{line: 941, col: 27, offset: 31890}, name: "EOL", }, }, @@ -6814,17 +6843,17 @@ var g = &grammar{ }, { name: "LabeledListItemDescription", - pos: position{line: 944, col: 1, offset: 31855}, + pos: position{line: 945, col: 1, offset: 31930}, expr: &actionExpr{ - pos: position{line: 944, col: 31, offset: 31885}, + pos: position{line: 945, col: 31, offset: 31960}, run: (*parser).callonLabeledListItemDescription1, expr: &labeledExpr{ - pos: position{line: 944, col: 31, offset: 31885}, + pos: position{line: 945, col: 31, offset: 31960}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 944, col: 40, offset: 31894}, + pos: position{line: 945, col: 40, offset: 31969}, expr: &ruleRefExpr{ - pos: position{line: 944, col: 41, offset: 31895}, + pos: position{line: 945, col: 41, offset: 31970}, name: "ListParagraph", }, }, @@ -6833,55 +6862,55 @@ var g = &grammar{ }, { name: "AdmonitionKind", - pos: position{line: 951, col: 1, offset: 32086}, + pos: position{line: 952, col: 1, offset: 32161}, expr: &choiceExpr{ - pos: position{line: 951, col: 19, offset: 32104}, + pos: position{line: 952, col: 19, offset: 32179}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 951, col: 19, offset: 32104}, + pos: position{line: 952, col: 19, offset: 32179}, run: (*parser).callonAdmonitionKind2, expr: &litMatcher{ - pos: position{line: 951, col: 19, offset: 32104}, + pos: position{line: 952, col: 19, offset: 32179}, val: "TIP", ignoreCase: false, want: "\"TIP\"", }, }, &actionExpr{ - pos: position{line: 953, col: 9, offset: 32150}, + pos: position{line: 954, col: 9, offset: 32225}, run: (*parser).callonAdmonitionKind4, expr: &litMatcher{ - pos: position{line: 953, col: 9, offset: 32150}, + pos: position{line: 954, col: 9, offset: 32225}, val: "NOTE", ignoreCase: false, want: "\"NOTE\"", }, }, &actionExpr{ - pos: position{line: 955, col: 9, offset: 32198}, + pos: position{line: 956, col: 9, offset: 32273}, run: (*parser).callonAdmonitionKind6, expr: &litMatcher{ - pos: position{line: 955, col: 9, offset: 32198}, + pos: position{line: 956, col: 9, offset: 32273}, val: "IMPORTANT", ignoreCase: false, want: "\"IMPORTANT\"", }, }, &actionExpr{ - pos: position{line: 957, col: 9, offset: 32256}, + pos: position{line: 958, col: 9, offset: 32331}, run: (*parser).callonAdmonitionKind8, expr: &litMatcher{ - pos: position{line: 957, col: 9, offset: 32256}, + pos: position{line: 958, col: 9, offset: 32331}, val: "WARNING", ignoreCase: false, want: "\"WARNING\"", }, }, &actionExpr{ - pos: position{line: 959, col: 9, offset: 32310}, + pos: position{line: 960, col: 9, offset: 32385}, run: (*parser).callonAdmonitionKind10, expr: &litMatcher{ - pos: position{line: 959, col: 9, offset: 32310}, + pos: position{line: 960, col: 9, offset: 32385}, val: "CAUTION", ignoreCase: false, want: "\"CAUTION\"", @@ -6892,48 +6921,48 @@ var g = &grammar{ }, { name: "RawParagraph", - pos: position{line: 970, col: 1, offset: 32626}, + pos: position{line: 971, col: 1, offset: 32701}, expr: &choiceExpr{ - pos: position{line: 972, col: 5, offset: 32676}, + pos: position{line: 973, col: 5, offset: 32751}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 972, col: 5, offset: 32676}, + pos: position{line: 973, col: 5, offset: 32751}, run: (*parser).callonRawParagraph2, expr: &seqExpr{ - pos: position{line: 972, col: 5, offset: 32676}, + pos: position{line: 973, col: 5, offset: 32751}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 972, col: 5, offset: 32676}, + pos: position{line: 973, col: 5, offset: 32751}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 972, col: 16, offset: 32687}, + pos: position{line: 973, col: 16, offset: 32762}, expr: &ruleRefExpr{ - pos: position{line: 972, col: 17, offset: 32688}, + pos: position{line: 973, col: 17, offset: 32763}, name: "Attributes", }, }, }, &labeledExpr{ - pos: position{line: 972, col: 30, offset: 32701}, + pos: position{line: 973, col: 30, offset: 32776}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 972, col: 33, offset: 32704}, + pos: position{line: 973, col: 33, offset: 32779}, name: "AdmonitionKind", }, }, &litMatcher{ - pos: position{line: 972, col: 49, offset: 32720}, + pos: position{line: 973, col: 49, offset: 32795}, val: ": ", ignoreCase: false, want: "\": \"", }, &labeledExpr{ - pos: position{line: 972, col: 54, offset: 32725}, + pos: position{line: 973, col: 54, offset: 32800}, label: "lines", expr: &oneOrMoreExpr{ - pos: position{line: 972, col: 60, offset: 32731}, + pos: position{line: 973, col: 60, offset: 32806}, expr: &ruleRefExpr{ - pos: position{line: 972, col: 61, offset: 32732}, + pos: position{line: 973, col: 61, offset: 32807}, name: "RawParagraphLine", }, }, @@ -6942,33 +6971,33 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 976, col: 5, offset: 32915}, + pos: position{line: 977, col: 5, offset: 32990}, run: (*parser).callonRawParagraph13, expr: &seqExpr{ - pos: position{line: 976, col: 5, offset: 32915}, + pos: position{line: 977, col: 5, offset: 32990}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 976, col: 5, offset: 32915}, + pos: position{line: 977, col: 5, offset: 32990}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 976, col: 16, offset: 32926}, + pos: position{line: 977, col: 16, offset: 33001}, expr: &ruleRefExpr{ - pos: position{line: 976, col: 17, offset: 32927}, + pos: position{line: 977, col: 17, offset: 33002}, name: "Attributes", }, }, }, &litMatcher{ - pos: position{line: 976, col: 30, offset: 32940}, + pos: position{line: 977, col: 30, offset: 33015}, val: "> ", ignoreCase: false, want: "\"> \"", }, &labeledExpr{ - pos: position{line: 976, col: 35, offset: 32945}, + pos: position{line: 977, col: 35, offset: 33020}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 976, col: 44, offset: 32954}, + pos: position{line: 977, col: 44, offset: 33029}, name: "MarkdownQuoteBlockRawContent", }, }, @@ -6976,40 +7005,40 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 980, col: 5, offset: 33144}, + pos: position{line: 981, col: 5, offset: 33219}, run: (*parser).callonRawParagraph21, expr: &seqExpr{ - pos: position{line: 980, col: 5, offset: 33144}, + pos: position{line: 981, col: 5, offset: 33219}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 980, col: 5, offset: 33144}, + pos: position{line: 981, col: 5, offset: 33219}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 980, col: 16, offset: 33155}, + pos: position{line: 981, col: 16, offset: 33230}, expr: &ruleRefExpr{ - pos: position{line: 980, col: 17, offset: 33156}, + pos: position{line: 981, col: 17, offset: 33231}, name: "Attributes", }, }, }, &andCodeExpr{ - pos: position{line: 980, col: 30, offset: 33169}, + pos: position{line: 981, col: 30, offset: 33244}, run: (*parser).callonRawParagraph26, }, ¬Expr{ - pos: position{line: 987, col: 7, offset: 33448}, + pos: position{line: 988, col: 7, offset: 33523}, expr: &ruleRefExpr{ - pos: position{line: 987, col: 8, offset: 33449}, + pos: position{line: 988, col: 8, offset: 33524}, name: "BlockDelimiter", }, }, &labeledExpr{ - pos: position{line: 987, col: 23, offset: 33464}, + pos: position{line: 988, col: 23, offset: 33539}, label: "content", expr: &oneOrMoreExpr{ - pos: position{line: 987, col: 31, offset: 33472}, + pos: position{line: 988, col: 31, offset: 33547}, expr: &ruleRefExpr{ - pos: position{line: 987, col: 32, offset: 33473}, + pos: position{line: 988, col: 32, offset: 33548}, name: "RawParagraphLine", }, }, @@ -7018,36 +7047,36 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 991, col: 5, offset: 33656}, + pos: position{line: 992, col: 5, offset: 33731}, run: (*parser).callonRawParagraph32, expr: &seqExpr{ - pos: position{line: 991, col: 5, offset: 33656}, + pos: position{line: 992, col: 5, offset: 33731}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 991, col: 5, offset: 33656}, + pos: position{line: 992, col: 5, offset: 33731}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 991, col: 16, offset: 33667}, + pos: position{line: 992, col: 16, offset: 33742}, expr: &ruleRefExpr{ - pos: position{line: 991, col: 17, offset: 33668}, + pos: position{line: 992, col: 17, offset: 33743}, name: "Attributes", }, }, }, ¬Expr{ - pos: position{line: 991, col: 30, offset: 33681}, + pos: position{line: 992, col: 30, offset: 33756}, expr: &ruleRefExpr{ - pos: position{line: 991, col: 31, offset: 33682}, + pos: position{line: 992, col: 31, offset: 33757}, name: "BlockDelimiter", }, }, &labeledExpr{ - pos: position{line: 991, col: 46, offset: 33697}, + pos: position{line: 992, col: 46, offset: 33772}, label: "lines", expr: &oneOrMoreExpr{ - pos: position{line: 991, col: 52, offset: 33703}, + pos: position{line: 992, col: 52, offset: 33778}, expr: &ruleRefExpr{ - pos: position{line: 991, col: 53, offset: 33704}, + pos: position{line: 992, col: 53, offset: 33779}, name: "RawParagraphLine", }, }, @@ -7060,36 +7089,36 @@ var g = &grammar{ }, { name: "MarkdownQuoteBlockRawContent", - pos: position{line: 995, col: 1, offset: 33802}, + pos: position{line: 996, col: 1, offset: 33877}, expr: &oneOrMoreExpr{ - pos: position{line: 995, col: 33, offset: 33834}, + pos: position{line: 996, col: 33, offset: 33909}, expr: &actionExpr{ - pos: position{line: 995, col: 34, offset: 33835}, + pos: position{line: 996, col: 34, offset: 33910}, run: (*parser).callonMarkdownQuoteBlockRawContent2, expr: &seqExpr{ - pos: position{line: 995, col: 34, offset: 33835}, + pos: position{line: 996, col: 34, offset: 33910}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 995, col: 34, offset: 33835}, + pos: position{line: 996, col: 34, offset: 33910}, expr: &ruleRefExpr{ - pos: position{line: 995, col: 35, offset: 33836}, + pos: position{line: 996, col: 35, offset: 33911}, name: "BlankLine", }, }, &zeroOrOneExpr{ - pos: position{line: 995, col: 45, offset: 33846}, + pos: position{line: 996, col: 45, offset: 33921}, expr: &litMatcher{ - pos: position{line: 995, col: 45, offset: 33846}, + pos: position{line: 996, col: 45, offset: 33921}, val: "> ", ignoreCase: false, want: "\"> \"", }, }, &labeledExpr{ - pos: position{line: 995, col: 51, offset: 33852}, + pos: position{line: 996, col: 51, offset: 33927}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 995, col: 60, offset: 33861}, + pos: position{line: 996, col: 60, offset: 33936}, name: "RawLine", }, }, @@ -7100,46 +7129,43 @@ var g = &grammar{ }, { name: "RawParagraphLine", - pos: position{line: 999, col: 1, offset: 33994}, + pos: position{line: 1000, col: 1, offset: 34069}, expr: &actionExpr{ - pos: position{line: 999, col: 21, offset: 34014}, + pos: position{line: 1001, col: 5, offset: 34094}, run: (*parser).callonRawParagraphLine1, expr: &seqExpr{ - pos: position{line: 999, col: 21, offset: 34014}, + pos: position{line: 1001, col: 5, offset: 34094}, exprs: []interface{}{ - ¬Expr{ - pos: position{line: 999, col: 21, offset: 34014}, - expr: &ruleRefExpr{ - pos: position{line: 999, col: 22, offset: 34015}, - name: "BlankLine", - }, - }, &labeledExpr{ - pos: position{line: 999, col: 32, offset: 34025}, + pos: position{line: 1001, col: 5, offset: 34094}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 999, col: 41, offset: 34034}, + pos: position{line: 1001, col: 14, offset: 34103}, name: "RawParagraphLineContent", }, }, &ruleRefExpr{ - pos: position{line: 999, col: 66, offset: 34059}, + pos: position{line: 1001, col: 39, offset: 34128}, name: "EOL", }, + &andCodeExpr{ + pos: position{line: 1001, col: 43, offset: 34132}, + run: (*parser).callonRawParagraphLine6, + }, }, }, }, }, { name: "RawParagraphLineContent", - pos: position{line: 1003, col: 1, offset: 34114}, + pos: position{line: 1011, col: 1, offset: 34367}, expr: &actionExpr{ - pos: position{line: 1003, col: 28, offset: 34141}, + pos: position{line: 1011, col: 28, offset: 34394}, run: (*parser).callonRawParagraphLineContent1, expr: &oneOrMoreExpr{ - pos: position{line: 1003, col: 28, offset: 34141}, + pos: position{line: 1011, col: 28, offset: 34394}, expr: &charClassMatcher{ - pos: position{line: 1003, col: 28, offset: 34141}, + pos: position{line: 1011, col: 28, offset: 34394}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -7150,48 +7176,48 @@ var g = &grammar{ }, { name: "Paragraph", - pos: position{line: 1009, col: 1, offset: 34340}, + pos: position{line: 1017, col: 1, offset: 34593}, expr: &choiceExpr{ - pos: position{line: 1011, col: 5, offset: 34387}, + pos: position{line: 1019, col: 5, offset: 34640}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1011, col: 5, offset: 34387}, + pos: position{line: 1019, col: 5, offset: 34640}, run: (*parser).callonParagraph2, expr: &seqExpr{ - pos: position{line: 1011, col: 5, offset: 34387}, + pos: position{line: 1019, col: 5, offset: 34640}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1011, col: 5, offset: 34387}, + pos: position{line: 1019, col: 5, offset: 34640}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1011, col: 16, offset: 34398}, + pos: position{line: 1019, col: 16, offset: 34651}, expr: &ruleRefExpr{ - pos: position{line: 1011, col: 17, offset: 34399}, + pos: position{line: 1019, col: 17, offset: 34652}, name: "Attributes", }, }, }, &labeledExpr{ - pos: position{line: 1011, col: 30, offset: 34412}, + pos: position{line: 1019, col: 30, offset: 34665}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 1011, col: 33, offset: 34415}, + pos: position{line: 1019, col: 33, offset: 34668}, name: "AdmonitionKind", }, }, &litMatcher{ - pos: position{line: 1011, col: 49, offset: 34431}, + pos: position{line: 1019, col: 49, offset: 34684}, val: ": ", ignoreCase: false, want: "\": \"", }, &labeledExpr{ - pos: position{line: 1011, col: 54, offset: 34436}, + pos: position{line: 1019, col: 54, offset: 34689}, label: "lines", expr: &oneOrMoreExpr{ - pos: position{line: 1011, col: 60, offset: 34442}, + pos: position{line: 1019, col: 60, offset: 34695}, expr: &ruleRefExpr{ - pos: position{line: 1011, col: 61, offset: 34443}, + pos: position{line: 1019, col: 61, offset: 34696}, name: "ParagraphLine", }, }, @@ -7200,40 +7226,40 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1015, col: 5, offset: 34629}, + pos: position{line: 1023, col: 5, offset: 34882}, run: (*parser).callonParagraph13, expr: &seqExpr{ - pos: position{line: 1015, col: 5, offset: 34629}, + pos: position{line: 1023, col: 5, offset: 34882}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1015, col: 5, offset: 34629}, + pos: position{line: 1023, col: 5, offset: 34882}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1015, col: 16, offset: 34640}, + pos: position{line: 1023, col: 16, offset: 34893}, expr: &ruleRefExpr{ - pos: position{line: 1015, col: 17, offset: 34641}, + pos: position{line: 1023, col: 17, offset: 34894}, name: "Attributes", }, }, }, &andCodeExpr{ - pos: position{line: 1015, col: 30, offset: 34654}, + pos: position{line: 1023, col: 30, offset: 34907}, run: (*parser).callonParagraph18, }, ¬Expr{ - pos: position{line: 1022, col: 7, offset: 34933}, + pos: position{line: 1030, col: 7, offset: 35186}, expr: &ruleRefExpr{ - pos: position{line: 1022, col: 8, offset: 34934}, + pos: position{line: 1030, col: 8, offset: 35187}, name: "BlockDelimiter", }, }, &labeledExpr{ - pos: position{line: 1022, col: 23, offset: 34949}, + pos: position{line: 1030, col: 23, offset: 35202}, label: "content", expr: &oneOrMoreExpr{ - pos: position{line: 1022, col: 31, offset: 34957}, + pos: position{line: 1030, col: 31, offset: 35210}, expr: &ruleRefExpr{ - pos: position{line: 1022, col: 32, offset: 34958}, + pos: position{line: 1030, col: 32, offset: 35211}, name: "ParagraphLine", }, }, @@ -7242,36 +7268,36 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1026, col: 5, offset: 35138}, + pos: position{line: 1034, col: 5, offset: 35391}, run: (*parser).callonParagraph24, expr: &seqExpr{ - pos: position{line: 1026, col: 5, offset: 35138}, + pos: position{line: 1034, col: 5, offset: 35391}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1026, col: 5, offset: 35138}, + pos: position{line: 1034, col: 5, offset: 35391}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1026, col: 16, offset: 35149}, + pos: position{line: 1034, col: 16, offset: 35402}, expr: &ruleRefExpr{ - pos: position{line: 1026, col: 17, offset: 35150}, + pos: position{line: 1034, col: 17, offset: 35403}, name: "Attributes", }, }, }, ¬Expr{ - pos: position{line: 1026, col: 30, offset: 35163}, + pos: position{line: 1034, col: 30, offset: 35416}, expr: &ruleRefExpr{ - pos: position{line: 1026, col: 31, offset: 35164}, + pos: position{line: 1034, col: 31, offset: 35417}, name: "BlockDelimiter", }, }, &labeledExpr{ - pos: position{line: 1026, col: 46, offset: 35179}, + pos: position{line: 1034, col: 46, offset: 35432}, label: "lines", expr: &oneOrMoreExpr{ - pos: position{line: 1026, col: 52, offset: 35185}, + pos: position{line: 1034, col: 52, offset: 35438}, expr: &ruleRefExpr{ - pos: position{line: 1026, col: 53, offset: 35186}, + pos: position{line: 1034, col: 53, offset: 35439}, name: "ParagraphLine", }, }, @@ -7284,37 +7310,37 @@ var g = &grammar{ }, { name: "ParagraphLine", - pos: position{line: 1030, col: 1, offset: 35281}, + pos: position{line: 1038, col: 1, offset: 35534}, expr: &ruleRefExpr{ - pos: position{line: 1030, col: 18, offset: 35298}, + pos: position{line: 1038, col: 18, offset: 35551}, name: "InlineElements", }, }, { name: "MarkdownQuoteBlockAttribution", - pos: position{line: 1032, col: 1, offset: 35314}, + pos: position{line: 1040, col: 1, offset: 35567}, expr: &actionExpr{ - pos: position{line: 1032, col: 34, offset: 35347}, + pos: position{line: 1040, col: 34, offset: 35600}, run: (*parser).callonMarkdownQuoteBlockAttribution1, expr: &seqExpr{ - pos: position{line: 1032, col: 34, offset: 35347}, + pos: position{line: 1040, col: 34, offset: 35600}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1032, col: 34, offset: 35347}, + pos: position{line: 1040, col: 34, offset: 35600}, val: "-- ", ignoreCase: false, want: "\"-- \"", }, &labeledExpr{ - pos: position{line: 1032, col: 40, offset: 35353}, + pos: position{line: 1040, col: 40, offset: 35606}, label: "author", expr: &actionExpr{ - pos: position{line: 1032, col: 48, offset: 35361}, + pos: position{line: 1040, col: 48, offset: 35614}, run: (*parser).callonMarkdownQuoteBlockAttribution5, expr: &oneOrMoreExpr{ - pos: position{line: 1032, col: 49, offset: 35362}, + pos: position{line: 1040, col: 49, offset: 35615}, expr: &charClassMatcher{ - pos: position{line: 1032, col: 49, offset: 35362}, + pos: position{line: 1040, col: 49, offset: 35615}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -7324,7 +7350,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1034, col: 8, offset: 35412}, + pos: position{line: 1042, col: 8, offset: 35665}, name: "EOL", }, }, @@ -7333,27 +7359,27 @@ var g = &grammar{ }, { name: "OpenPassthroughParagraphContent", - pos: position{line: 1038, col: 1, offset: 35444}, + pos: position{line: 1047, col: 1, offset: 35714}, expr: &oneOrMoreExpr{ - pos: position{line: 1038, col: 36, offset: 35479}, + pos: position{line: 1047, col: 36, offset: 35749}, expr: &actionExpr{ - pos: position{line: 1038, col: 37, offset: 35480}, + pos: position{line: 1047, col: 37, offset: 35750}, run: (*parser).callonOpenPassthroughParagraphContent2, expr: &seqExpr{ - pos: position{line: 1038, col: 37, offset: 35480}, + pos: position{line: 1047, col: 37, offset: 35750}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1038, col: 37, offset: 35480}, + pos: position{line: 1047, col: 37, offset: 35750}, expr: &ruleRefExpr{ - pos: position{line: 1038, col: 38, offset: 35481}, + pos: position{line: 1047, col: 38, offset: 35751}, name: "BlankLine", }, }, &labeledExpr{ - pos: position{line: 1038, col: 48, offset: 35491}, + pos: position{line: 1047, col: 48, offset: 35761}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1038, col: 57, offset: 35500}, + pos: position{line: 1047, col: 57, offset: 35770}, name: "VerbatimContent", }, }, @@ -7364,43 +7390,43 @@ var g = &grammar{ }, { name: "SimpleParagraph", - pos: position{line: 1043, col: 1, offset: 35711}, + pos: position{line: 1052, col: 1, offset: 35981}, expr: &actionExpr{ - pos: position{line: 1043, col: 20, offset: 35730}, + pos: position{line: 1052, col: 20, offset: 36000}, run: (*parser).callonSimpleParagraph1, expr: &seqExpr{ - pos: position{line: 1043, col: 20, offset: 35730}, + pos: position{line: 1052, col: 20, offset: 36000}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1043, col: 20, offset: 35730}, + pos: position{line: 1052, col: 20, offset: 36000}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1043, col: 31, offset: 35741}, + pos: position{line: 1052, col: 31, offset: 36011}, expr: &ruleRefExpr{ - pos: position{line: 1043, col: 32, offset: 35742}, + pos: position{line: 1052, col: 32, offset: 36012}, name: "Attributes", }, }, }, &andCodeExpr{ - pos: position{line: 1044, col: 5, offset: 35760}, + pos: position{line: 1053, col: 5, offset: 36030}, run: (*parser).callonSimpleParagraph6, }, &labeledExpr{ - pos: position{line: 1052, col: 5, offset: 36046}, + pos: position{line: 1061, col: 5, offset: 36316}, label: "firstLine", expr: &ruleRefExpr{ - pos: position{line: 1052, col: 16, offset: 36057}, + pos: position{line: 1061, col: 16, offset: 36327}, name: "FirstParagraphRawLine", }, }, &labeledExpr{ - pos: position{line: 1053, col: 5, offset: 36083}, + pos: position{line: 1062, col: 5, offset: 36353}, label: "otherLines", expr: &zeroOrMoreExpr{ - pos: position{line: 1053, col: 16, offset: 36094}, + pos: position{line: 1062, col: 16, offset: 36364}, expr: &ruleRefExpr{ - pos: position{line: 1053, col: 17, offset: 36095}, + pos: position{line: 1062, col: 17, offset: 36365}, name: "OtherParagraphRawLine", }, }, @@ -7411,34 +7437,34 @@ var g = &grammar{ }, { name: "FirstParagraphRawLine", - pos: position{line: 1057, col: 1, offset: 36232}, + pos: position{line: 1066, col: 1, offset: 36502}, expr: &actionExpr{ - pos: position{line: 1058, col: 5, offset: 36262}, + pos: position{line: 1067, col: 5, offset: 36532}, run: (*parser).callonFirstParagraphRawLine1, expr: &seqExpr{ - pos: position{line: 1058, col: 5, offset: 36262}, + pos: position{line: 1067, col: 5, offset: 36532}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1058, col: 5, offset: 36262}, + pos: position{line: 1067, col: 5, offset: 36532}, label: "content", expr: &actionExpr{ - pos: position{line: 1058, col: 14, offset: 36271}, + pos: position{line: 1067, col: 14, offset: 36541}, run: (*parser).callonFirstParagraphRawLine4, expr: &seqExpr{ - pos: position{line: 1058, col: 14, offset: 36271}, + pos: position{line: 1067, col: 14, offset: 36541}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1058, col: 14, offset: 36271}, + pos: position{line: 1067, col: 14, offset: 36541}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1058, col: 23, offset: 36280}, + pos: position{line: 1067, col: 23, offset: 36550}, name: "Word", }, }, &zeroOrMoreExpr{ - pos: position{line: 1058, col: 28, offset: 36285}, + pos: position{line: 1067, col: 28, offset: 36555}, expr: &charClassMatcher{ - pos: position{line: 1058, col: 28, offset: 36285}, + pos: position{line: 1067, col: 28, offset: 36555}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -7450,7 +7476,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1058, col: 68, offset: 36325}, + pos: position{line: 1067, col: 68, offset: 36595}, name: "EOL", }, }, @@ -7459,65 +7485,54 @@ var g = &grammar{ }, { name: "OtherParagraphRawLine", - pos: position{line: 1062, col: 1, offset: 36381}, + pos: position{line: 1071, col: 1, offset: 36651}, expr: &ruleRefExpr{ - pos: position{line: 1062, col: 26, offset: 36406}, + pos: position{line: 1071, col: 26, offset: 36676}, name: "RawParagraphLine", }, }, - { - name: "NormalParagraphContent", - pos: position{line: 1065, col: 1, offset: 36502}, - expr: &oneOrMoreExpr{ - pos: position{line: 1065, col: 27, offset: 36528}, - expr: &ruleRefExpr{ - pos: position{line: 1065, col: 27, offset: 36528}, - name: "InlineElements", - }, - }, - }, { name: "ContinuedRawParagraph", - pos: position{line: 1072, col: 1, offset: 36739}, + pos: position{line: 1078, col: 1, offset: 36888}, expr: &choiceExpr{ - pos: position{line: 1074, col: 5, offset: 36798}, + pos: position{line: 1080, col: 5, offset: 36947}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1074, col: 5, offset: 36798}, + pos: position{line: 1080, col: 5, offset: 36947}, run: (*parser).callonContinuedRawParagraph2, expr: &seqExpr{ - pos: position{line: 1074, col: 5, offset: 36798}, + pos: position{line: 1080, col: 5, offset: 36947}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1074, col: 5, offset: 36798}, + pos: position{line: 1080, col: 5, offset: 36947}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1074, col: 16, offset: 36809}, + pos: position{line: 1080, col: 16, offset: 36958}, expr: &ruleRefExpr{ - pos: position{line: 1074, col: 17, offset: 36810}, + pos: position{line: 1080, col: 17, offset: 36959}, name: "Attributes", }, }, }, &labeledExpr{ - pos: position{line: 1074, col: 30, offset: 36823}, + pos: position{line: 1080, col: 30, offset: 36972}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 1074, col: 33, offset: 36826}, + pos: position{line: 1080, col: 33, offset: 36975}, name: "AdmonitionKind", }, }, &litMatcher{ - pos: position{line: 1074, col: 49, offset: 36842}, + pos: position{line: 1080, col: 49, offset: 36991}, val: ": ", ignoreCase: false, want: "\": \"", }, &labeledExpr{ - pos: position{line: 1074, col: 54, offset: 36847}, + pos: position{line: 1080, col: 54, offset: 36996}, label: "lines", expr: &ruleRefExpr{ - pos: position{line: 1074, col: 61, offset: 36854}, + pos: position{line: 1080, col: 61, offset: 37003}, name: "ContinuedRawParagraphLines", }, }, @@ -7525,27 +7540,27 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1078, col: 5, offset: 37057}, + pos: position{line: 1084, col: 5, offset: 37206}, run: (*parser).callonContinuedRawParagraph12, expr: &seqExpr{ - pos: position{line: 1078, col: 5, offset: 37057}, + pos: position{line: 1084, col: 5, offset: 37206}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1078, col: 5, offset: 37057}, + pos: position{line: 1084, col: 5, offset: 37206}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1078, col: 16, offset: 37068}, + pos: position{line: 1084, col: 16, offset: 37217}, expr: &ruleRefExpr{ - pos: position{line: 1078, col: 17, offset: 37069}, + pos: position{line: 1084, col: 17, offset: 37218}, name: "Attributes", }, }, }, &labeledExpr{ - pos: position{line: 1078, col: 30, offset: 37082}, + pos: position{line: 1084, col: 30, offset: 37231}, label: "lines", expr: &ruleRefExpr{ - pos: position{line: 1078, col: 37, offset: 37089}, + pos: position{line: 1084, col: 37, offset: 37238}, name: "ContinuedRawParagraphLines", }, }, @@ -7557,38 +7572,38 @@ var g = &grammar{ }, { name: "ContinuedRawParagraphLines", - pos: position{line: 1082, col: 1, offset: 37193}, + pos: position{line: 1088, col: 1, offset: 37342}, expr: &actionExpr{ - pos: position{line: 1082, col: 31, offset: 37223}, + pos: position{line: 1088, col: 31, offset: 37372}, run: (*parser).callonContinuedRawParagraphLines1, expr: &seqExpr{ - pos: position{line: 1082, col: 31, offset: 37223}, + pos: position{line: 1088, col: 31, offset: 37372}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1082, col: 31, offset: 37223}, + pos: position{line: 1088, col: 31, offset: 37372}, label: "firstLine", expr: &ruleRefExpr{ - pos: position{line: 1082, col: 42, offset: 37234}, + pos: position{line: 1088, col: 42, offset: 37383}, name: "FirstParagraphRawLine", }, }, &labeledExpr{ - pos: position{line: 1082, col: 65, offset: 37257}, + pos: position{line: 1088, col: 65, offset: 37406}, label: "otherLines", expr: &zeroOrMoreExpr{ - pos: position{line: 1082, col: 76, offset: 37268}, + pos: position{line: 1088, col: 76, offset: 37417}, expr: &seqExpr{ - pos: position{line: 1082, col: 77, offset: 37269}, + pos: position{line: 1088, col: 77, offset: 37418}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1082, col: 77, offset: 37269}, + pos: position{line: 1088, col: 77, offset: 37418}, expr: &ruleRefExpr{ - pos: position{line: 1082, col: 78, offset: 37270}, + pos: position{line: 1088, col: 78, offset: 37419}, name: "ListItemContinuation", }, }, &ruleRefExpr{ - pos: position{line: 1082, col: 99, offset: 37291}, + pos: position{line: 1088, col: 99, offset: 37440}, name: "OtherParagraphRawLine", }, }, @@ -7601,35 +7616,35 @@ var g = &grammar{ }, { name: "RawVerseParagraph", - pos: position{line: 1090, col: 1, offset: 37513}, + pos: position{line: 1096, col: 1, offset: 37662}, expr: &actionExpr{ - pos: position{line: 1091, col: 5, offset: 37539}, + pos: position{line: 1097, col: 5, offset: 37688}, run: (*parser).callonRawVerseParagraph1, expr: &seqExpr{ - pos: position{line: 1091, col: 5, offset: 37539}, + pos: position{line: 1097, col: 5, offset: 37688}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1091, col: 5, offset: 37539}, + pos: position{line: 1097, col: 5, offset: 37688}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1091, col: 16, offset: 37550}, + pos: position{line: 1097, col: 16, offset: 37699}, expr: &ruleRefExpr{ - pos: position{line: 1091, col: 17, offset: 37551}, + pos: position{line: 1097, col: 17, offset: 37700}, name: "Attributes", }, }, }, &andCodeExpr{ - pos: position{line: 1092, col: 5, offset: 37568}, + pos: position{line: 1098, col: 5, offset: 37717}, run: (*parser).callonRawVerseParagraph6, }, &labeledExpr{ - pos: position{line: 1099, col: 5, offset: 37773}, + pos: position{line: 1105, col: 5, offset: 37922}, label: "lines", expr: &oneOrMoreExpr{ - pos: position{line: 1099, col: 11, offset: 37779}, + pos: position{line: 1105, col: 11, offset: 37928}, expr: &ruleRefExpr{ - pos: position{line: 1099, col: 12, offset: 37780}, + pos: position{line: 1105, col: 12, offset: 37929}, name: "RawLine", }, }, @@ -7640,57 +7655,57 @@ var g = &grammar{ }, { name: "InlineElements", - pos: position{line: 1107, col: 1, offset: 37986}, + pos: position{line: 1113, col: 1, offset: 38135}, expr: &actionExpr{ - pos: position{line: 1107, col: 19, offset: 38004}, + pos: position{line: 1113, col: 19, offset: 38153}, run: (*parser).callonInlineElements1, expr: &seqExpr{ - pos: position{line: 1107, col: 19, offset: 38004}, + pos: position{line: 1113, col: 19, offset: 38153}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1107, col: 19, offset: 38004}, + pos: position{line: 1113, col: 19, offset: 38153}, expr: &ruleRefExpr{ - pos: position{line: 1107, col: 20, offset: 38005}, + pos: position{line: 1113, col: 20, offset: 38154}, name: "BlankLine", }, }, &labeledExpr{ - pos: position{line: 1108, col: 5, offset: 38019}, + pos: position{line: 1114, col: 5, offset: 38168}, label: "elements", expr: &choiceExpr{ - pos: position{line: 1108, col: 15, offset: 38029}, + pos: position{line: 1114, col: 15, offset: 38178}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1108, col: 15, offset: 38029}, + pos: position{line: 1114, col: 15, offset: 38178}, run: (*parser).callonInlineElements7, expr: &labeledExpr{ - pos: position{line: 1108, col: 15, offset: 38029}, + pos: position{line: 1114, col: 15, offset: 38178}, label: "comment", expr: &ruleRefExpr{ - pos: position{line: 1108, col: 24, offset: 38038}, + pos: position{line: 1114, col: 24, offset: 38187}, name: "SingleLineComment", }, }, }, &actionExpr{ - pos: position{line: 1110, col: 9, offset: 38130}, + pos: position{line: 1116, col: 9, offset: 38279}, run: (*parser).callonInlineElements10, expr: &seqExpr{ - pos: position{line: 1110, col: 9, offset: 38130}, + pos: position{line: 1116, col: 9, offset: 38279}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1110, col: 9, offset: 38130}, + pos: position{line: 1116, col: 9, offset: 38279}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 1110, col: 18, offset: 38139}, + pos: position{line: 1116, col: 18, offset: 38288}, expr: &ruleRefExpr{ - pos: position{line: 1110, col: 19, offset: 38140}, + pos: position{line: 1116, col: 19, offset: 38289}, name: "InlineElement", }, }, }, &ruleRefExpr{ - pos: position{line: 1110, col: 35, offset: 38156}, + pos: position{line: 1116, col: 35, offset: 38305}, name: "EOL", }, }, @@ -7705,110 +7720,110 @@ var g = &grammar{ }, { name: "InlineElement", - pos: position{line: 1116, col: 1, offset: 38273}, + pos: position{line: 1122, col: 1, offset: 38422}, expr: &actionExpr{ - pos: position{line: 1117, col: 5, offset: 38296}, + pos: position{line: 1123, col: 5, offset: 38445}, run: (*parser).callonInlineElement1, expr: &labeledExpr{ - pos: position{line: 1117, col: 5, offset: 38296}, + pos: position{line: 1123, col: 5, offset: 38445}, label: "element", expr: &choiceExpr{ - pos: position{line: 1117, col: 14, offset: 38305}, + pos: position{line: 1123, col: 14, offset: 38454}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1117, col: 14, offset: 38305}, + pos: position{line: 1123, col: 14, offset: 38454}, name: "InlineWord", }, &ruleRefExpr{ - pos: position{line: 1118, col: 11, offset: 38356}, + pos: position{line: 1124, col: 11, offset: 38505}, name: "LineBreak", }, &oneOrMoreExpr{ - pos: position{line: 1119, col: 11, offset: 38401}, + pos: position{line: 1125, col: 11, offset: 38550}, expr: &ruleRefExpr{ - pos: position{line: 1119, col: 11, offset: 38401}, + pos: position{line: 1125, col: 11, offset: 38550}, name: "Space", }, }, &seqExpr{ - pos: position{line: 1120, col: 11, offset: 38419}, + pos: position{line: 1126, col: 11, offset: 38568}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1120, col: 11, offset: 38419}, + pos: position{line: 1126, col: 11, offset: 38568}, expr: &ruleRefExpr{ - pos: position{line: 1120, col: 12, offset: 38420}, + pos: position{line: 1126, col: 12, offset: 38569}, name: "EOL", }, }, &choiceExpr{ - pos: position{line: 1121, col: 13, offset: 38438}, + pos: position{line: 1127, col: 13, offset: 38587}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1121, col: 13, offset: 38438}, + pos: position{line: 1127, col: 13, offset: 38587}, name: "QuotedString", }, &ruleRefExpr{ - pos: position{line: 1122, col: 15, offset: 38465}, + pos: position{line: 1128, col: 15, offset: 38614}, name: "QuotedText", }, &ruleRefExpr{ - pos: position{line: 1123, col: 15, offset: 38490}, + pos: position{line: 1129, col: 15, offset: 38639}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 1124, col: 15, offset: 38515}, + pos: position{line: 1130, col: 15, offset: 38664}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 1125, col: 15, offset: 38542}, + pos: position{line: 1131, col: 15, offset: 38691}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 1126, col: 15, offset: 38562}, + pos: position{line: 1132, col: 15, offset: 38711}, name: "InlinePassthrough", }, &ruleRefExpr{ - pos: position{line: 1127, col: 15, offset: 38655}, + pos: position{line: 1133, col: 15, offset: 38804}, name: "InlineFootnote", }, &ruleRefExpr{ - pos: position{line: 1128, col: 15, offset: 38685}, + pos: position{line: 1134, col: 15, offset: 38834}, name: "CrossReference", }, &ruleRefExpr{ - pos: position{line: 1129, col: 15, offset: 38715}, + pos: position{line: 1135, col: 15, offset: 38864}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 1130, col: 15, offset: 38746}, + pos: position{line: 1136, col: 15, offset: 38895}, name: "Symbol", }, &ruleRefExpr{ - pos: position{line: 1131, col: 15, offset: 38767}, + pos: position{line: 1137, col: 15, offset: 38916}, name: "InlineUserMacro", }, &ruleRefExpr{ - pos: position{line: 1132, col: 15, offset: 38798}, + pos: position{line: 1138, col: 15, offset: 38947}, name: "AttributeSubstitution", }, &ruleRefExpr{ - pos: position{line: 1133, col: 15, offset: 38835}, + pos: position{line: 1139, col: 15, offset: 38984}, name: "InlineElementID", }, &ruleRefExpr{ - pos: position{line: 1134, col: 15, offset: 38865}, + pos: position{line: 1140, col: 15, offset: 39014}, name: "ConcealedIndexTerm", }, &ruleRefExpr{ - pos: position{line: 1135, col: 15, offset: 38898}, + pos: position{line: 1141, col: 15, offset: 39047}, name: "IndexTerm", }, &ruleRefExpr{ - pos: position{line: 1136, col: 15, offset: 38922}, + pos: position{line: 1142, col: 15, offset: 39071}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 1137, col: 15, offset: 38954}, + pos: position{line: 1143, col: 15, offset: 39103}, name: "AnyChar", }, }, @@ -7822,34 +7837,34 @@ var g = &grammar{ }, { name: "LineBreak", - pos: position{line: 1144, col: 1, offset: 39177}, + pos: position{line: 1150, col: 1, offset: 39326}, expr: &actionExpr{ - pos: position{line: 1144, col: 14, offset: 39190}, + pos: position{line: 1150, col: 14, offset: 39339}, run: (*parser).callonLineBreak1, expr: &seqExpr{ - pos: position{line: 1144, col: 14, offset: 39190}, + pos: position{line: 1150, col: 14, offset: 39339}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1144, col: 14, offset: 39190}, + pos: position{line: 1150, col: 14, offset: 39339}, name: "Space", }, &litMatcher{ - pos: position{line: 1144, col: 20, offset: 39196}, + pos: position{line: 1150, col: 20, offset: 39345}, val: "+", ignoreCase: false, want: "\"+\"", }, &zeroOrMoreExpr{ - pos: position{line: 1144, col: 24, offset: 39200}, + pos: position{line: 1150, col: 24, offset: 39349}, expr: &ruleRefExpr{ - pos: position{line: 1144, col: 24, offset: 39200}, + pos: position{line: 1150, col: 24, offset: 39349}, name: "Space", }, }, &andExpr{ - pos: position{line: 1144, col: 31, offset: 39207}, + pos: position{line: 1150, col: 31, offset: 39356}, expr: &ruleRefExpr{ - pos: position{line: 1144, col: 32, offset: 39208}, + pos: position{line: 1150, col: 32, offset: 39357}, name: "EOL", }, }, @@ -7859,20 +7874,20 @@ var g = &grammar{ }, { name: "QuotedText", - pos: position{line: 1151, col: 1, offset: 39492}, + pos: position{line: 1157, col: 1, offset: 39641}, expr: &choiceExpr{ - pos: position{line: 1151, col: 15, offset: 39506}, + pos: position{line: 1157, col: 15, offset: 39655}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1151, col: 15, offset: 39506}, + pos: position{line: 1157, col: 15, offset: 39655}, name: "UnconstrainedQuotedText", }, &ruleRefExpr{ - pos: position{line: 1151, col: 41, offset: 39532}, + pos: position{line: 1157, col: 41, offset: 39681}, name: "ConstrainedQuotedText", }, &ruleRefExpr{ - pos: position{line: 1151, col: 65, offset: 39556}, + pos: position{line: 1157, col: 65, offset: 39705}, name: "EscapedQuotedText", }, }, @@ -7880,23 +7895,23 @@ var g = &grammar{ }, { name: "ConstrainedQuotedTextMarker", - pos: position{line: 1153, col: 1, offset: 39575}, + pos: position{line: 1159, col: 1, offset: 39724}, expr: &choiceExpr{ - pos: position{line: 1153, col: 32, offset: 39606}, + pos: position{line: 1159, col: 32, offset: 39755}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 1153, col: 32, offset: 39606}, + pos: position{line: 1159, col: 32, offset: 39755}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1153, col: 32, offset: 39606}, + pos: position{line: 1159, col: 32, offset: 39755}, val: "*", ignoreCase: false, want: "\"*\"", }, ¬Expr{ - pos: position{line: 1153, col: 36, offset: 39610}, + pos: position{line: 1159, col: 36, offset: 39759}, expr: &litMatcher{ - pos: position{line: 1153, col: 37, offset: 39611}, + pos: position{line: 1159, col: 37, offset: 39760}, val: "*", ignoreCase: false, want: "\"*\"", @@ -7905,18 +7920,18 @@ var g = &grammar{ }, }, &seqExpr{ - pos: position{line: 1153, col: 43, offset: 39617}, + pos: position{line: 1159, col: 43, offset: 39766}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1153, col: 43, offset: 39617}, + pos: position{line: 1159, col: 43, offset: 39766}, val: "_", ignoreCase: false, want: "\"_\"", }, ¬Expr{ - pos: position{line: 1153, col: 47, offset: 39621}, + pos: position{line: 1159, col: 47, offset: 39770}, expr: &litMatcher{ - pos: position{line: 1153, col: 48, offset: 39622}, + pos: position{line: 1159, col: 48, offset: 39771}, val: "_", ignoreCase: false, want: "\"_\"", @@ -7925,18 +7940,18 @@ var g = &grammar{ }, }, &seqExpr{ - pos: position{line: 1153, col: 54, offset: 39628}, + pos: position{line: 1159, col: 54, offset: 39777}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1153, col: 54, offset: 39628}, + pos: position{line: 1159, col: 54, offset: 39777}, val: "#", ignoreCase: false, want: "\"#\"", }, ¬Expr{ - pos: position{line: 1153, col: 58, offset: 39632}, + pos: position{line: 1159, col: 58, offset: 39781}, expr: &litMatcher{ - pos: position{line: 1153, col: 59, offset: 39633}, + pos: position{line: 1159, col: 59, offset: 39782}, val: "#", ignoreCase: false, want: "\"#\"", @@ -7945,18 +7960,18 @@ var g = &grammar{ }, }, &seqExpr{ - pos: position{line: 1153, col: 65, offset: 39639}, + pos: position{line: 1159, col: 65, offset: 39788}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1153, col: 65, offset: 39639}, + pos: position{line: 1159, col: 65, offset: 39788}, val: "`", ignoreCase: false, want: "\"`\"", }, ¬Expr{ - pos: position{line: 1153, col: 69, offset: 39643}, + pos: position{line: 1159, col: 69, offset: 39792}, expr: &litMatcher{ - pos: position{line: 1153, col: 70, offset: 39644}, + pos: position{line: 1159, col: 70, offset: 39793}, val: "`", ignoreCase: false, want: "\"`\"", @@ -7969,42 +7984,42 @@ var g = &grammar{ }, { name: "UnconstrainedQuotedTextPrefix", - pos: position{line: 1155, col: 1, offset: 39649}, + pos: position{line: 1161, col: 1, offset: 39798}, expr: &choiceExpr{ - pos: position{line: 1155, col: 34, offset: 39682}, + pos: position{line: 1161, col: 34, offset: 39831}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 1155, col: 34, offset: 39682}, + pos: position{line: 1161, col: 34, offset: 39831}, val: "**", ignoreCase: false, want: "\"**\"", }, &litMatcher{ - pos: position{line: 1155, col: 41, offset: 39689}, + pos: position{line: 1161, col: 41, offset: 39838}, val: "__", ignoreCase: false, want: "\"__\"", }, &litMatcher{ - pos: position{line: 1155, col: 48, offset: 39696}, + pos: position{line: 1161, col: 48, offset: 39845}, val: "``", ignoreCase: false, want: "\"``\"", }, &litMatcher{ - pos: position{line: 1155, col: 55, offset: 39703}, + pos: position{line: 1161, col: 55, offset: 39852}, val: "##", ignoreCase: false, want: "\"##\"", }, &litMatcher{ - pos: position{line: 1155, col: 62, offset: 39710}, + pos: position{line: 1161, col: 62, offset: 39859}, val: "^", ignoreCase: false, want: "\"^\"", }, &litMatcher{ - pos: position{line: 1155, col: 68, offset: 39716}, + pos: position{line: 1161, col: 68, offset: 39865}, val: "~", ignoreCase: false, want: "\"~\"", @@ -8014,42 +8029,42 @@ var g = &grammar{ }, { name: "ConstrainedQuotedText", - pos: position{line: 1157, col: 1, offset: 39721}, + pos: position{line: 1163, col: 1, offset: 39870}, expr: &actionExpr{ - pos: position{line: 1157, col: 26, offset: 39746}, + pos: position{line: 1163, col: 26, offset: 39895}, run: (*parser).callonConstrainedQuotedText1, expr: &labeledExpr{ - pos: position{line: 1157, col: 26, offset: 39746}, + pos: position{line: 1163, col: 26, offset: 39895}, label: "text", expr: &choiceExpr{ - pos: position{line: 1157, col: 32, offset: 39752}, + pos: position{line: 1163, col: 32, offset: 39901}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1157, col: 32, offset: 39752}, + pos: position{line: 1163, col: 32, offset: 39901}, name: "SingleQuoteBoldText", }, &ruleRefExpr{ - pos: position{line: 1158, col: 15, offset: 39787}, + pos: position{line: 1164, col: 15, offset: 39936}, name: "SingleQuoteItalicText", }, &ruleRefExpr{ - pos: position{line: 1159, col: 15, offset: 39823}, + pos: position{line: 1165, col: 15, offset: 39972}, name: "SingleQuoteMarkedText", }, &ruleRefExpr{ - pos: position{line: 1160, col: 15, offset: 39859}, + pos: position{line: 1166, col: 15, offset: 40008}, name: "SingleQuoteMonospaceText", }, &ruleRefExpr{ - pos: position{line: 1161, col: 15, offset: 39899}, + pos: position{line: 1167, col: 15, offset: 40048}, name: "SubscriptText", }, &ruleRefExpr{ - pos: position{line: 1162, col: 15, offset: 39928}, + pos: position{line: 1168, col: 15, offset: 40077}, name: "SuperscriptText", }, &ruleRefExpr{ - pos: position{line: 1163, col: 15, offset: 39959}, + pos: position{line: 1169, col: 15, offset: 40108}, name: "SubscriptOrSuperscriptPrefix", }, }, @@ -8059,24 +8074,24 @@ var g = &grammar{ }, { name: "UnconstrainedQuotedText", - pos: position{line: 1167, col: 1, offset: 40113}, + pos: position{line: 1173, col: 1, offset: 40262}, expr: &choiceExpr{ - pos: position{line: 1167, col: 28, offset: 40140}, + pos: position{line: 1173, col: 28, offset: 40289}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1167, col: 28, offset: 40140}, + pos: position{line: 1173, col: 28, offset: 40289}, name: "DoubleQuoteBoldText", }, &ruleRefExpr{ - pos: position{line: 1168, col: 15, offset: 40174}, + pos: position{line: 1174, col: 15, offset: 40323}, name: "DoubleQuoteItalicText", }, &ruleRefExpr{ - pos: position{line: 1169, col: 15, offset: 40210}, + pos: position{line: 1175, col: 15, offset: 40359}, name: "DoubleQuoteMarkedText", }, &ruleRefExpr{ - pos: position{line: 1170, col: 15, offset: 40246}, + pos: position{line: 1176, col: 15, offset: 40395}, name: "DoubleQuoteMonospaceText", }, }, @@ -8084,32 +8099,32 @@ var g = &grammar{ }, { name: "EscapedQuotedText", - pos: position{line: 1172, col: 1, offset: 40272}, + pos: position{line: 1178, col: 1, offset: 40421}, expr: &choiceExpr{ - pos: position{line: 1172, col: 22, offset: 40293}, + pos: position{line: 1178, col: 22, offset: 40442}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1172, col: 22, offset: 40293}, + pos: position{line: 1178, col: 22, offset: 40442}, name: "EscapedBoldText", }, &ruleRefExpr{ - pos: position{line: 1173, col: 15, offset: 40324}, + pos: position{line: 1179, col: 15, offset: 40473}, name: "EscapedItalicText", }, &ruleRefExpr{ - pos: position{line: 1174, col: 15, offset: 40356}, + pos: position{line: 1180, col: 15, offset: 40505}, name: "EscapedMarkedText", }, &ruleRefExpr{ - pos: position{line: 1175, col: 15, offset: 40388}, + pos: position{line: 1181, col: 15, offset: 40537}, name: "EscapedMonospaceText", }, &ruleRefExpr{ - pos: position{line: 1176, col: 15, offset: 40424}, + pos: position{line: 1182, col: 15, offset: 40573}, name: "EscapedSubscriptText", }, &ruleRefExpr{ - pos: position{line: 1177, col: 15, offset: 40460}, + pos: position{line: 1183, col: 15, offset: 40609}, name: "EscapedSuperscriptText", }, }, @@ -8117,21 +8132,21 @@ var g = &grammar{ }, { name: "SubscriptOrSuperscriptPrefix", - pos: position{line: 1179, col: 1, offset: 40484}, + pos: position{line: 1185, col: 1, offset: 40633}, expr: &choiceExpr{ - pos: position{line: 1179, col: 33, offset: 40516}, + pos: position{line: 1185, col: 33, offset: 40665}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 1179, col: 33, offset: 40516}, + pos: position{line: 1185, col: 33, offset: 40665}, val: "^", ignoreCase: false, want: "\"^\"", }, &actionExpr{ - pos: position{line: 1179, col: 39, offset: 40522}, + pos: position{line: 1185, col: 39, offset: 40671}, run: (*parser).callonSubscriptOrSuperscriptPrefix3, expr: &litMatcher{ - pos: position{line: 1179, col: 39, offset: 40522}, + pos: position{line: 1185, col: 39, offset: 40671}, val: "~", ignoreCase: false, want: "\"~\"", @@ -8142,14 +8157,14 @@ var g = &grammar{ }, { name: "OneOrMoreBackslashes", - pos: position{line: 1183, col: 1, offset: 40655}, + pos: position{line: 1189, col: 1, offset: 40804}, expr: &actionExpr{ - pos: position{line: 1183, col: 25, offset: 40679}, + pos: position{line: 1189, col: 25, offset: 40828}, run: (*parser).callonOneOrMoreBackslashes1, expr: &oneOrMoreExpr{ - pos: position{line: 1183, col: 25, offset: 40679}, + pos: position{line: 1189, col: 25, offset: 40828}, expr: &litMatcher{ - pos: position{line: 1183, col: 25, offset: 40679}, + pos: position{line: 1189, col: 25, offset: 40828}, val: "\\", ignoreCase: false, want: "\"\\\\\"", @@ -8159,23 +8174,23 @@ var g = &grammar{ }, { name: "TwoOrMoreBackslashes", - pos: position{line: 1187, col: 1, offset: 40720}, + pos: position{line: 1193, col: 1, offset: 40869}, expr: &actionExpr{ - pos: position{line: 1187, col: 25, offset: 40744}, + pos: position{line: 1193, col: 25, offset: 40893}, run: (*parser).callonTwoOrMoreBackslashes1, expr: &seqExpr{ - pos: position{line: 1187, col: 25, offset: 40744}, + pos: position{line: 1193, col: 25, offset: 40893}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1187, col: 25, offset: 40744}, + pos: position{line: 1193, col: 25, offset: 40893}, val: "\\\\", ignoreCase: false, want: "\"\\\\\\\\\"", }, &zeroOrMoreExpr{ - pos: position{line: 1187, col: 30, offset: 40749}, + pos: position{line: 1193, col: 30, offset: 40898}, expr: &litMatcher{ - pos: position{line: 1187, col: 30, offset: 40749}, + pos: position{line: 1193, col: 30, offset: 40898}, val: "\\", ignoreCase: false, want: "\"\\\\\"", @@ -8187,16 +8202,16 @@ var g = &grammar{ }, { name: "BoldText", - pos: position{line: 1195, col: 1, offset: 40846}, + pos: position{line: 1201, col: 1, offset: 40995}, expr: &choiceExpr{ - pos: position{line: 1195, col: 13, offset: 40858}, + pos: position{line: 1201, col: 13, offset: 41007}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1195, col: 13, offset: 40858}, + pos: position{line: 1201, col: 13, offset: 41007}, name: "DoubleQuoteBoldText", }, &ruleRefExpr{ - pos: position{line: 1195, col: 35, offset: 40880}, + pos: position{line: 1201, col: 35, offset: 41029}, name: "SingleQuoteBoldText", }, }, @@ -8204,40 +8219,40 @@ var g = &grammar{ }, { name: "DoubleQuoteBoldText", - pos: position{line: 1197, col: 1, offset: 40947}, + pos: position{line: 1203, col: 1, offset: 41096}, expr: &actionExpr{ - pos: position{line: 1197, col: 24, offset: 40970}, + pos: position{line: 1203, col: 24, offset: 41119}, run: (*parser).callonDoubleQuoteBoldText1, expr: &seqExpr{ - pos: position{line: 1197, col: 24, offset: 40970}, + pos: position{line: 1203, col: 24, offset: 41119}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1197, col: 24, offset: 40970}, + pos: position{line: 1203, col: 24, offset: 41119}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1197, col: 30, offset: 40976}, + pos: position{line: 1203, col: 30, offset: 41125}, expr: &ruleRefExpr{ - pos: position{line: 1197, col: 31, offset: 40977}, + pos: position{line: 1203, col: 31, offset: 41126}, name: "QuotedTextAttrs", }, }, }, &litMatcher{ - pos: position{line: 1197, col: 49, offset: 40995}, + pos: position{line: 1203, col: 49, offset: 41144}, val: "**", ignoreCase: false, want: "\"**\"", }, &labeledExpr{ - pos: position{line: 1197, col: 54, offset: 41000}, + pos: position{line: 1203, col: 54, offset: 41149}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1197, col: 64, offset: 41010}, + pos: position{line: 1203, col: 64, offset: 41159}, name: "DoubleQuoteBoldTextElements", }, }, &litMatcher{ - pos: position{line: 1197, col: 93, offset: 41039}, + pos: position{line: 1203, col: 93, offset: 41188}, val: "**", ignoreCase: false, want: "\"**\"", @@ -8248,37 +8263,37 @@ var g = &grammar{ }, { name: "DoubleQuoteBoldTextElements", - pos: position{line: 1201, col: 1, offset: 41126}, + pos: position{line: 1207, col: 1, offset: 41275}, expr: &seqExpr{ - pos: position{line: 1201, col: 32, offset: 41157}, + pos: position{line: 1207, col: 32, offset: 41306}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1201, col: 32, offset: 41157}, + pos: position{line: 1207, col: 32, offset: 41306}, name: "DoubleQuoteBoldTextElement", }, &zeroOrMoreExpr{ - pos: position{line: 1201, col: 59, offset: 41184}, + pos: position{line: 1207, col: 59, offset: 41333}, expr: &seqExpr{ - pos: position{line: 1201, col: 60, offset: 41185}, + pos: position{line: 1207, col: 60, offset: 41334}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1201, col: 60, offset: 41185}, + pos: position{line: 1207, col: 60, offset: 41334}, expr: &litMatcher{ - pos: position{line: 1201, col: 62, offset: 41187}, + pos: position{line: 1207, col: 62, offset: 41336}, val: "**", ignoreCase: false, want: "\"**\"", }, }, &choiceExpr{ - pos: position{line: 1201, col: 69, offset: 41194}, + pos: position{line: 1207, col: 69, offset: 41343}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1201, col: 69, offset: 41194}, + pos: position{line: 1207, col: 69, offset: 41343}, name: "Space", }, &ruleRefExpr{ - pos: position{line: 1201, col: 77, offset: 41202}, + pos: position{line: 1207, col: 77, offset: 41351}, name: "DoubleQuoteBoldTextElement", }, }, @@ -8291,92 +8306,92 @@ var g = &grammar{ }, { name: "DoubleQuoteBoldTextElement", - pos: position{line: 1203, col: 1, offset: 41267}, + pos: position{line: 1209, col: 1, offset: 41416}, expr: &choiceExpr{ - pos: position{line: 1203, col: 31, offset: 41297}, + pos: position{line: 1209, col: 31, offset: 41446}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1203, col: 31, offset: 41297}, + pos: position{line: 1209, col: 31, offset: 41446}, name: "Word", }, &seqExpr{ - pos: position{line: 1204, col: 11, offset: 41312}, + pos: position{line: 1210, col: 11, offset: 41461}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1204, col: 11, offset: 41312}, + pos: position{line: 1210, col: 11, offset: 41461}, name: "Newline", }, ¬Expr{ - pos: position{line: 1204, col: 19, offset: 41320}, + pos: position{line: 1210, col: 19, offset: 41469}, expr: &ruleRefExpr{ - pos: position{line: 1204, col: 20, offset: 41321}, + pos: position{line: 1210, col: 20, offset: 41470}, name: "Newline", }, }, }, }, &ruleRefExpr{ - pos: position{line: 1205, col: 11, offset: 41339}, + pos: position{line: 1211, col: 11, offset: 41488}, name: "SingleQuoteBoldText", }, &ruleRefExpr{ - pos: position{line: 1206, col: 11, offset: 41369}, + pos: position{line: 1212, col: 11, offset: 41518}, name: "QuotedString", }, &ruleRefExpr{ - pos: position{line: 1207, col: 11, offset: 41392}, + pos: position{line: 1213, col: 11, offset: 41541}, name: "ItalicText", }, &ruleRefExpr{ - pos: position{line: 1208, col: 11, offset: 41413}, + pos: position{line: 1214, col: 11, offset: 41562}, name: "MarkedText", }, &ruleRefExpr{ - pos: position{line: 1209, col: 11, offset: 41434}, + pos: position{line: 1215, col: 11, offset: 41583}, name: "MonospaceText", }, &ruleRefExpr{ - pos: position{line: 1210, col: 11, offset: 41458}, + pos: position{line: 1216, col: 11, offset: 41607}, name: "SubscriptText", }, &ruleRefExpr{ - pos: position{line: 1211, col: 11, offset: 41482}, + pos: position{line: 1217, col: 11, offset: 41631}, name: "SuperscriptText", }, &ruleRefExpr{ - pos: position{line: 1212, col: 11, offset: 41508}, + pos: position{line: 1218, col: 11, offset: 41657}, name: "InlinePassthrough", }, &ruleRefExpr{ - pos: position{line: 1213, col: 11, offset: 41597}, + pos: position{line: 1219, col: 11, offset: 41746}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 1214, col: 11, offset: 41624}, + pos: position{line: 1220, col: 11, offset: 41773}, name: "Symbol", }, &ruleRefExpr{ - pos: position{line: 1215, col: 11, offset: 41641}, + pos: position{line: 1221, col: 11, offset: 41790}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 1216, col: 11, offset: 41662}, + pos: position{line: 1222, col: 11, offset: 41811}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 1217, col: 11, offset: 41684}, + pos: position{line: 1223, col: 11, offset: 41833}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 1218, col: 11, offset: 41699}, + pos: position{line: 1224, col: 11, offset: 41848}, name: "AttributeSubstitution", }, &ruleRefExpr{ - pos: position{line: 1219, col: 11, offset: 41731}, + pos: position{line: 1225, col: 11, offset: 41880}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 1220, col: 11, offset: 41759}, + pos: position{line: 1226, col: 11, offset: 41908}, name: "DoubleQuoteBoldTextFallbackCharacter", }, }, @@ -8384,31 +8399,31 @@ var g = &grammar{ }, { name: "DoubleQuoteBoldTextFallbackCharacter", - pos: position{line: 1223, col: 1, offset: 41798}, + pos: position{line: 1229, col: 1, offset: 41947}, expr: &choiceExpr{ - pos: position{line: 1224, col: 5, offset: 41842}, + pos: position{line: 1230, col: 5, offset: 41991}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 1224, col: 5, offset: 41842}, + pos: position{line: 1230, col: 5, offset: 41991}, val: "[^\\r\\n*]", chars: []rune{'\r', '\n', '*'}, ignoreCase: false, inverted: true, }, &actionExpr{ - pos: position{line: 1225, col: 7, offset: 41939}, + pos: position{line: 1231, col: 7, offset: 42088}, run: (*parser).callonDoubleQuoteBoldTextFallbackCharacter3, expr: &seqExpr{ - pos: position{line: 1225, col: 7, offset: 41939}, + pos: position{line: 1231, col: 7, offset: 42088}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1225, col: 7, offset: 41939}, + pos: position{line: 1231, col: 7, offset: 42088}, val: "**", ignoreCase: false, want: "\"**\"", }, &ruleRefExpr{ - pos: position{line: 1225, col: 12, offset: 41944}, + pos: position{line: 1231, col: 12, offset: 42093}, name: "Alphanums", }, }, @@ -8419,40 +8434,40 @@ var g = &grammar{ }, { name: "SingleQuoteBoldText", - pos: position{line: 1229, col: 1, offset: 42107}, + pos: position{line: 1235, col: 1, offset: 42256}, expr: &choiceExpr{ - pos: position{line: 1229, col: 24, offset: 42130}, + pos: position{line: 1235, col: 24, offset: 42279}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1229, col: 24, offset: 42130}, + pos: position{line: 1235, col: 24, offset: 42279}, run: (*parser).callonSingleQuoteBoldText2, expr: &seqExpr{ - pos: position{line: 1229, col: 24, offset: 42130}, + pos: position{line: 1235, col: 24, offset: 42279}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1229, col: 24, offset: 42130}, + pos: position{line: 1235, col: 24, offset: 42279}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1229, col: 30, offset: 42136}, + pos: position{line: 1235, col: 30, offset: 42285}, expr: &ruleRefExpr{ - pos: position{line: 1229, col: 31, offset: 42137}, + pos: position{line: 1235, col: 31, offset: 42286}, name: "QuotedTextAttrs", }, }, }, &seqExpr{ - pos: position{line: 1229, col: 51, offset: 42157}, + pos: position{line: 1235, col: 51, offset: 42306}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1229, col: 51, offset: 42157}, + pos: position{line: 1235, col: 51, offset: 42306}, val: "*", ignoreCase: false, want: "\"*\"", }, ¬Expr{ - pos: position{line: 1229, col: 55, offset: 42161}, + pos: position{line: 1235, col: 55, offset: 42310}, expr: &litMatcher{ - pos: position{line: 1229, col: 56, offset: 42162}, + pos: position{line: 1235, col: 56, offset: 42311}, val: "*", ignoreCase: false, want: "\"*\"", @@ -8461,25 +8476,25 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 1229, col: 61, offset: 42167}, + pos: position{line: 1235, col: 61, offset: 42316}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1229, col: 71, offset: 42177}, + pos: position{line: 1235, col: 71, offset: 42326}, name: "SingleQuoteBoldTextElements", }, }, &litMatcher{ - pos: position{line: 1229, col: 100, offset: 42206}, + pos: position{line: 1235, col: 100, offset: 42355}, val: "*", ignoreCase: false, want: "\"*\"", }, &andExpr{ - pos: position{line: 1229, col: 104, offset: 42210}, + pos: position{line: 1235, col: 104, offset: 42359}, expr: ¬Expr{ - pos: position{line: 1229, col: 106, offset: 42212}, + pos: position{line: 1235, col: 106, offset: 42361}, expr: &ruleRefExpr{ - pos: position{line: 1229, col: 107, offset: 42213}, + pos: position{line: 1235, col: 107, offset: 42362}, name: "Alphanum", }, }, @@ -8488,49 +8503,49 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1231, col: 5, offset: 42407}, + pos: position{line: 1237, col: 5, offset: 42556}, run: (*parser).callonSingleQuoteBoldText17, expr: &seqExpr{ - pos: position{line: 1231, col: 5, offset: 42407}, + pos: position{line: 1237, col: 5, offset: 42556}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1231, col: 5, offset: 42407}, + pos: position{line: 1237, col: 5, offset: 42556}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1231, col: 11, offset: 42413}, + pos: position{line: 1237, col: 11, offset: 42562}, expr: &ruleRefExpr{ - pos: position{line: 1231, col: 12, offset: 42414}, + pos: position{line: 1237, col: 12, offset: 42563}, name: "QuotedTextAttrs", }, }, }, &litMatcher{ - pos: position{line: 1231, col: 30, offset: 42432}, + pos: position{line: 1237, col: 30, offset: 42581}, val: "*", ignoreCase: false, want: "\"*\"", }, &labeledExpr{ - pos: position{line: 1231, col: 34, offset: 42436}, + pos: position{line: 1237, col: 34, offset: 42585}, label: "elements", expr: &seqExpr{ - pos: position{line: 1231, col: 44, offset: 42446}, + pos: position{line: 1237, col: 44, offset: 42595}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1231, col: 44, offset: 42446}, + pos: position{line: 1237, col: 44, offset: 42595}, val: "*", ignoreCase: false, want: "\"*\"", }, &ruleRefExpr{ - pos: position{line: 1231, col: 48, offset: 42450}, + pos: position{line: 1237, col: 48, offset: 42599}, name: "SingleQuoteBoldTextElements", }, }, }, }, &litMatcher{ - pos: position{line: 1231, col: 77, offset: 42479}, + pos: position{line: 1237, col: 77, offset: 42628}, val: "*", ignoreCase: false, want: "\"*\"", @@ -8543,21 +8558,21 @@ var g = &grammar{ }, { name: "SingleQuoteBoldTextElements", - pos: position{line: 1235, col: 1, offset: 42685}, + pos: position{line: 1241, col: 1, offset: 42834}, expr: &seqExpr{ - pos: position{line: 1235, col: 32, offset: 42716}, + pos: position{line: 1241, col: 32, offset: 42865}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1235, col: 32, offset: 42716}, + pos: position{line: 1241, col: 32, offset: 42865}, expr: &ruleRefExpr{ - pos: position{line: 1235, col: 33, offset: 42717}, + pos: position{line: 1241, col: 33, offset: 42866}, name: "Space", }, }, &oneOrMoreExpr{ - pos: position{line: 1235, col: 39, offset: 42723}, + pos: position{line: 1241, col: 39, offset: 42872}, expr: &ruleRefExpr{ - pos: position{line: 1235, col: 39, offset: 42723}, + pos: position{line: 1241, col: 39, offset: 42872}, name: "SingleQuoteBoldTextElement", }, }, @@ -8566,63 +8581,63 @@ var g = &grammar{ }, { name: "SingleQuoteBoldTextElement", - pos: position{line: 1237, col: 1, offset: 42752}, + pos: position{line: 1243, col: 1, offset: 42901}, expr: &choiceExpr{ - pos: position{line: 1237, col: 31, offset: 42782}, + pos: position{line: 1243, col: 31, offset: 42931}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1237, col: 31, offset: 42782}, + pos: position{line: 1243, col: 31, offset: 42931}, name: "Word", }, &seqExpr{ - pos: position{line: 1238, col: 11, offset: 42797}, + pos: position{line: 1244, col: 11, offset: 42946}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1238, col: 11, offset: 42797}, + pos: position{line: 1244, col: 11, offset: 42946}, name: "Newline", }, ¬Expr{ - pos: position{line: 1238, col: 19, offset: 42805}, + pos: position{line: 1244, col: 19, offset: 42954}, expr: &ruleRefExpr{ - pos: position{line: 1238, col: 20, offset: 42806}, + pos: position{line: 1244, col: 20, offset: 42955}, name: "Newline", }, }, }, }, &ruleRefExpr{ - pos: position{line: 1239, col: 11, offset: 42824}, + pos: position{line: 1245, col: 11, offset: 42973}, name: "DoubleQuoteBoldText", }, &ruleRefExpr{ - pos: position{line: 1240, col: 11, offset: 42854}, + pos: position{line: 1246, col: 11, offset: 43003}, name: "QuotedString", }, &seqExpr{ - pos: position{line: 1241, col: 11, offset: 42877}, + pos: position{line: 1247, col: 11, offset: 43026}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 1241, col: 11, offset: 42877}, + pos: position{line: 1247, col: 11, offset: 43026}, expr: &ruleRefExpr{ - pos: position{line: 1241, col: 11, offset: 42877}, + pos: position{line: 1247, col: 11, offset: 43026}, name: "Space", }, }, &zeroOrOneExpr{ - pos: position{line: 1241, col: 18, offset: 42884}, + pos: position{line: 1247, col: 18, offset: 43033}, expr: &seqExpr{ - pos: position{line: 1241, col: 19, offset: 42885}, + pos: position{line: 1247, col: 19, offset: 43034}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1241, col: 19, offset: 42885}, + pos: position{line: 1247, col: 19, offset: 43034}, val: "*", ignoreCase: false, want: "\"*\"", }, ¬Expr{ - pos: position{line: 1241, col: 23, offset: 42889}, + pos: position{line: 1247, col: 23, offset: 43038}, expr: &litMatcher{ - pos: position{line: 1241, col: 24, offset: 42890}, + pos: position{line: 1247, col: 24, offset: 43039}, val: "*", ignoreCase: false, want: "\"*\"", @@ -8634,59 +8649,59 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1242, col: 11, offset: 42906}, + pos: position{line: 1248, col: 11, offset: 43055}, name: "ItalicText", }, &ruleRefExpr{ - pos: position{line: 1243, col: 11, offset: 42927}, + pos: position{line: 1249, col: 11, offset: 43076}, name: "MarkedText", }, &ruleRefExpr{ - pos: position{line: 1244, col: 11, offset: 42948}, + pos: position{line: 1250, col: 11, offset: 43097}, name: "MonospaceText", }, &ruleRefExpr{ - pos: position{line: 1245, col: 11, offset: 42972}, + pos: position{line: 1251, col: 11, offset: 43121}, name: "SubscriptText", }, &ruleRefExpr{ - pos: position{line: 1246, col: 11, offset: 42996}, + pos: position{line: 1252, col: 11, offset: 43145}, name: "SuperscriptText", }, &ruleRefExpr{ - pos: position{line: 1247, col: 11, offset: 43022}, + pos: position{line: 1253, col: 11, offset: 43171}, name: "InlinePassthrough", }, &ruleRefExpr{ - pos: position{line: 1248, col: 11, offset: 43111}, + pos: position{line: 1254, col: 11, offset: 43260}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 1249, col: 11, offset: 43138}, + pos: position{line: 1255, col: 11, offset: 43287}, name: "Symbol", }, &ruleRefExpr{ - pos: position{line: 1250, col: 11, offset: 43155}, + pos: position{line: 1256, col: 11, offset: 43304}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 1251, col: 11, offset: 43176}, + pos: position{line: 1257, col: 11, offset: 43325}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 1252, col: 11, offset: 43199}, + pos: position{line: 1258, col: 11, offset: 43348}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 1253, col: 11, offset: 43216}, + pos: position{line: 1259, col: 11, offset: 43365}, name: "AttributeSubstitution", }, &ruleRefExpr{ - pos: position{line: 1254, col: 11, offset: 43248}, + pos: position{line: 1260, col: 11, offset: 43397}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 1255, col: 11, offset: 43276}, + pos: position{line: 1261, col: 11, offset: 43425}, name: "SingleQuoteBoldTextFallbackCharacter", }, }, @@ -8694,31 +8709,31 @@ var g = &grammar{ }, { name: "SingleQuoteBoldTextFallbackCharacter", - pos: position{line: 1257, col: 1, offset: 43314}, + pos: position{line: 1263, col: 1, offset: 43463}, expr: &choiceExpr{ - pos: position{line: 1258, col: 5, offset: 43358}, + pos: position{line: 1264, col: 5, offset: 43507}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 1258, col: 5, offset: 43358}, + pos: position{line: 1264, col: 5, offset: 43507}, val: "[^\\r\\n*]", chars: []rune{'\r', '\n', '*'}, ignoreCase: false, inverted: true, }, &actionExpr{ - pos: position{line: 1259, col: 7, offset: 43455}, + pos: position{line: 1265, col: 7, offset: 43604}, run: (*parser).callonSingleQuoteBoldTextFallbackCharacter3, expr: &seqExpr{ - pos: position{line: 1259, col: 7, offset: 43455}, + pos: position{line: 1265, col: 7, offset: 43604}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1259, col: 7, offset: 43455}, + pos: position{line: 1265, col: 7, offset: 43604}, val: "*", ignoreCase: false, want: "\"*\"", }, &ruleRefExpr{ - pos: position{line: 1259, col: 11, offset: 43459}, + pos: position{line: 1265, col: 11, offset: 43608}, name: "Alphanums", }, }, @@ -8729,40 +8744,40 @@ var g = &grammar{ }, { name: "EscapedBoldText", - pos: position{line: 1263, col: 1, offset: 43622}, + pos: position{line: 1269, col: 1, offset: 43771}, expr: &choiceExpr{ - pos: position{line: 1264, col: 5, offset: 43646}, + pos: position{line: 1270, col: 5, offset: 43795}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1264, col: 5, offset: 43646}, + pos: position{line: 1270, col: 5, offset: 43795}, run: (*parser).callonEscapedBoldText2, expr: &seqExpr{ - pos: position{line: 1264, col: 5, offset: 43646}, + pos: position{line: 1270, col: 5, offset: 43795}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1264, col: 5, offset: 43646}, + pos: position{line: 1270, col: 5, offset: 43795}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1264, col: 18, offset: 43659}, + pos: position{line: 1270, col: 18, offset: 43808}, name: "TwoOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1264, col: 40, offset: 43681}, + pos: position{line: 1270, col: 40, offset: 43830}, val: "**", ignoreCase: false, want: "\"**\"", }, &labeledExpr{ - pos: position{line: 1264, col: 45, offset: 43686}, + pos: position{line: 1270, col: 45, offset: 43835}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1264, col: 55, offset: 43696}, + pos: position{line: 1270, col: 55, offset: 43845}, name: "DoubleQuoteBoldTextElements", }, }, &litMatcher{ - pos: position{line: 1264, col: 84, offset: 43725}, + pos: position{line: 1270, col: 84, offset: 43874}, val: "**", ignoreCase: false, want: "\"**\"", @@ -8771,35 +8786,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1266, col: 9, offset: 43882}, + pos: position{line: 1272, col: 9, offset: 44031}, run: (*parser).callonEscapedBoldText10, expr: &seqExpr{ - pos: position{line: 1266, col: 9, offset: 43882}, + pos: position{line: 1272, col: 9, offset: 44031}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1266, col: 9, offset: 43882}, + pos: position{line: 1272, col: 9, offset: 44031}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1266, col: 22, offset: 43895}, + pos: position{line: 1272, col: 22, offset: 44044}, name: "OneOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1266, col: 44, offset: 43917}, + pos: position{line: 1272, col: 44, offset: 44066}, val: "**", ignoreCase: false, want: "\"**\"", }, &labeledExpr{ - pos: position{line: 1266, col: 49, offset: 43922}, + pos: position{line: 1272, col: 49, offset: 44071}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1266, col: 59, offset: 43932}, + pos: position{line: 1272, col: 59, offset: 44081}, name: "SingleQuoteBoldTextElements", }, }, &litMatcher{ - pos: position{line: 1266, col: 88, offset: 43961}, + pos: position{line: 1272, col: 88, offset: 44110}, val: "*", ignoreCase: false, want: "\"*\"", @@ -8808,35 +8823,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1269, col: 9, offset: 44161}, + pos: position{line: 1275, col: 9, offset: 44310}, run: (*parser).callonEscapedBoldText18, expr: &seqExpr{ - pos: position{line: 1269, col: 9, offset: 44161}, + pos: position{line: 1275, col: 9, offset: 44310}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1269, col: 9, offset: 44161}, + pos: position{line: 1275, col: 9, offset: 44310}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1269, col: 22, offset: 44174}, + pos: position{line: 1275, col: 22, offset: 44323}, name: "OneOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1269, col: 44, offset: 44196}, + pos: position{line: 1275, col: 44, offset: 44345}, val: "*", ignoreCase: false, want: "\"*\"", }, &labeledExpr{ - pos: position{line: 1269, col: 48, offset: 44200}, + pos: position{line: 1275, col: 48, offset: 44349}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1269, col: 58, offset: 44210}, + pos: position{line: 1275, col: 58, offset: 44359}, name: "SingleQuoteBoldTextElements", }, }, &litMatcher{ - pos: position{line: 1269, col: 87, offset: 44239}, + pos: position{line: 1275, col: 87, offset: 44388}, val: "*", ignoreCase: false, want: "\"*\"", @@ -8849,16 +8864,16 @@ var g = &grammar{ }, { name: "ItalicText", - pos: position{line: 1277, col: 1, offset: 44447}, + pos: position{line: 1283, col: 1, offset: 44596}, expr: &choiceExpr{ - pos: position{line: 1277, col: 15, offset: 44461}, + pos: position{line: 1283, col: 15, offset: 44610}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1277, col: 15, offset: 44461}, + pos: position{line: 1283, col: 15, offset: 44610}, name: "DoubleQuoteItalicText", }, &ruleRefExpr{ - pos: position{line: 1277, col: 39, offset: 44485}, + pos: position{line: 1283, col: 39, offset: 44634}, name: "SingleQuoteItalicText", }, }, @@ -8866,40 +8881,40 @@ var g = &grammar{ }, { name: "DoubleQuoteItalicText", - pos: position{line: 1279, col: 1, offset: 44508}, + pos: position{line: 1285, col: 1, offset: 44657}, expr: &actionExpr{ - pos: position{line: 1279, col: 26, offset: 44533}, + pos: position{line: 1285, col: 26, offset: 44682}, run: (*parser).callonDoubleQuoteItalicText1, expr: &seqExpr{ - pos: position{line: 1279, col: 26, offset: 44533}, + pos: position{line: 1285, col: 26, offset: 44682}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1279, col: 26, offset: 44533}, + pos: position{line: 1285, col: 26, offset: 44682}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1279, col: 32, offset: 44539}, + pos: position{line: 1285, col: 32, offset: 44688}, expr: &ruleRefExpr{ - pos: position{line: 1279, col: 33, offset: 44540}, + pos: position{line: 1285, col: 33, offset: 44689}, name: "QuotedTextAttrs", }, }, }, &litMatcher{ - pos: position{line: 1279, col: 51, offset: 44558}, + pos: position{line: 1285, col: 51, offset: 44707}, val: "__", ignoreCase: false, want: "\"__\"", }, &labeledExpr{ - pos: position{line: 1279, col: 56, offset: 44563}, + pos: position{line: 1285, col: 56, offset: 44712}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1279, col: 66, offset: 44573}, + pos: position{line: 1285, col: 66, offset: 44722}, name: "DoubleQuoteItalicTextElements", }, }, &litMatcher{ - pos: position{line: 1279, col: 97, offset: 44604}, + pos: position{line: 1285, col: 97, offset: 44753}, val: "__", ignoreCase: false, want: "\"__\"", @@ -8910,37 +8925,37 @@ var g = &grammar{ }, { name: "DoubleQuoteItalicTextElements", - pos: position{line: 1283, col: 1, offset: 44738}, + pos: position{line: 1289, col: 1, offset: 44887}, expr: &seqExpr{ - pos: position{line: 1283, col: 34, offset: 44771}, + pos: position{line: 1289, col: 34, offset: 44920}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1283, col: 34, offset: 44771}, + pos: position{line: 1289, col: 34, offset: 44920}, name: "DoubleQuoteItalicTextElement", }, &zeroOrMoreExpr{ - pos: position{line: 1283, col: 63, offset: 44800}, + pos: position{line: 1289, col: 63, offset: 44949}, expr: &seqExpr{ - pos: position{line: 1283, col: 64, offset: 44801}, + pos: position{line: 1289, col: 64, offset: 44950}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1283, col: 64, offset: 44801}, + pos: position{line: 1289, col: 64, offset: 44950}, expr: &litMatcher{ - pos: position{line: 1283, col: 66, offset: 44803}, + pos: position{line: 1289, col: 66, offset: 44952}, val: "__", ignoreCase: false, want: "\"__\"", }, }, &choiceExpr{ - pos: position{line: 1283, col: 73, offset: 44810}, + pos: position{line: 1289, col: 73, offset: 44959}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1283, col: 73, offset: 44810}, + pos: position{line: 1289, col: 73, offset: 44959}, name: "Space", }, &ruleRefExpr{ - pos: position{line: 1283, col: 81, offset: 44818}, + pos: position{line: 1289, col: 81, offset: 44967}, name: "DoubleQuoteItalicTextElement", }, }, @@ -8953,88 +8968,88 @@ var g = &grammar{ }, { name: "DoubleQuoteItalicTextElement", - pos: position{line: 1285, col: 1, offset: 44885}, + pos: position{line: 1291, col: 1, offset: 45034}, expr: &choiceExpr{ - pos: position{line: 1285, col: 33, offset: 44917}, + pos: position{line: 1291, col: 33, offset: 45066}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1285, col: 33, offset: 44917}, + pos: position{line: 1291, col: 33, offset: 45066}, name: "Word", }, &seqExpr{ - pos: position{line: 1286, col: 11, offset: 44932}, + pos: position{line: 1292, col: 11, offset: 45081}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1286, col: 11, offset: 44932}, + pos: position{line: 1292, col: 11, offset: 45081}, name: "Newline", }, ¬Expr{ - pos: position{line: 1286, col: 19, offset: 44940}, + pos: position{line: 1292, col: 19, offset: 45089}, expr: &ruleRefExpr{ - pos: position{line: 1286, col: 20, offset: 44941}, + pos: position{line: 1292, col: 20, offset: 45090}, name: "Newline", }, }, }, }, &ruleRefExpr{ - pos: position{line: 1287, col: 11, offset: 44959}, + pos: position{line: 1293, col: 11, offset: 45108}, name: "SingleQuoteItalicText", }, &ruleRefExpr{ - pos: position{line: 1288, col: 11, offset: 44991}, + pos: position{line: 1294, col: 11, offset: 45140}, name: "QuotedString", }, &ruleRefExpr{ - pos: position{line: 1289, col: 11, offset: 45014}, + pos: position{line: 1295, col: 11, offset: 45163}, name: "BoldText", }, &ruleRefExpr{ - pos: position{line: 1290, col: 11, offset: 45033}, + pos: position{line: 1296, col: 11, offset: 45182}, name: "MarkedText", }, &ruleRefExpr{ - pos: position{line: 1291, col: 11, offset: 45054}, + pos: position{line: 1297, col: 11, offset: 45203}, name: "MonospaceText", }, &ruleRefExpr{ - pos: position{line: 1292, col: 11, offset: 45078}, + pos: position{line: 1298, col: 11, offset: 45227}, name: "SubscriptText", }, &ruleRefExpr{ - pos: position{line: 1293, col: 11, offset: 45102}, + pos: position{line: 1299, col: 11, offset: 45251}, name: "SuperscriptText", }, &ruleRefExpr{ - pos: position{line: 1294, col: 11, offset: 45128}, + pos: position{line: 1300, col: 11, offset: 45277}, name: "InlinePassthrough", }, &ruleRefExpr{ - pos: position{line: 1295, col: 11, offset: 45217}, + pos: position{line: 1301, col: 11, offset: 45366}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 1296, col: 11, offset: 45244}, + pos: position{line: 1302, col: 11, offset: 45393}, name: "Symbol", }, &ruleRefExpr{ - pos: position{line: 1297, col: 11, offset: 45261}, + pos: position{line: 1303, col: 11, offset: 45410}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 1298, col: 11, offset: 45282}, + pos: position{line: 1304, col: 11, offset: 45431}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 1299, col: 11, offset: 45305}, + pos: position{line: 1305, col: 11, offset: 45454}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 1300, col: 11, offset: 45321}, + pos: position{line: 1306, col: 11, offset: 45470}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 1301, col: 11, offset: 45349}, + pos: position{line: 1307, col: 11, offset: 45498}, name: "DoubleQuoteItalicTextFallbackCharacter", }, }, @@ -9042,31 +9057,31 @@ var g = &grammar{ }, { name: "DoubleQuoteItalicTextFallbackCharacter", - pos: position{line: 1303, col: 1, offset: 45389}, + pos: position{line: 1309, col: 1, offset: 45538}, expr: &choiceExpr{ - pos: position{line: 1304, col: 5, offset: 45435}, + pos: position{line: 1310, col: 5, offset: 45584}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 1304, col: 5, offset: 45435}, + pos: position{line: 1310, col: 5, offset: 45584}, val: "[^\\r\\n_]", chars: []rune{'\r', '\n', '_'}, ignoreCase: false, inverted: true, }, &actionExpr{ - pos: position{line: 1305, col: 7, offset: 45534}, + pos: position{line: 1311, col: 7, offset: 45683}, run: (*parser).callonDoubleQuoteItalicTextFallbackCharacter3, expr: &seqExpr{ - pos: position{line: 1305, col: 7, offset: 45534}, + pos: position{line: 1311, col: 7, offset: 45683}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1305, col: 7, offset: 45534}, + pos: position{line: 1311, col: 7, offset: 45683}, val: "__", ignoreCase: false, want: "\"__\"", }, &ruleRefExpr{ - pos: position{line: 1305, col: 12, offset: 45539}, + pos: position{line: 1311, col: 12, offset: 45688}, name: "Alphanums", }, }, @@ -9077,40 +9092,40 @@ var g = &grammar{ }, { name: "SingleQuoteItalicText", - pos: position{line: 1309, col: 1, offset: 45704}, + pos: position{line: 1315, col: 1, offset: 45853}, expr: &choiceExpr{ - pos: position{line: 1309, col: 26, offset: 45729}, + pos: position{line: 1315, col: 26, offset: 45878}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1309, col: 26, offset: 45729}, + pos: position{line: 1315, col: 26, offset: 45878}, run: (*parser).callonSingleQuoteItalicText2, expr: &seqExpr{ - pos: position{line: 1309, col: 26, offset: 45729}, + pos: position{line: 1315, col: 26, offset: 45878}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1309, col: 26, offset: 45729}, + pos: position{line: 1315, col: 26, offset: 45878}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1309, col: 32, offset: 45735}, + pos: position{line: 1315, col: 32, offset: 45884}, expr: &ruleRefExpr{ - pos: position{line: 1309, col: 33, offset: 45736}, + pos: position{line: 1315, col: 33, offset: 45885}, name: "QuotedTextAttrs", }, }, }, &seqExpr{ - pos: position{line: 1309, col: 52, offset: 45755}, + pos: position{line: 1315, col: 52, offset: 45904}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1309, col: 52, offset: 45755}, + pos: position{line: 1315, col: 52, offset: 45904}, val: "_", ignoreCase: false, want: "\"_\"", }, ¬Expr{ - pos: position{line: 1309, col: 56, offset: 45759}, + pos: position{line: 1315, col: 56, offset: 45908}, expr: &litMatcher{ - pos: position{line: 1309, col: 57, offset: 45760}, + pos: position{line: 1315, col: 57, offset: 45909}, val: "_", ignoreCase: false, want: "\"_\"", @@ -9119,15 +9134,15 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 1309, col: 62, offset: 45765}, + pos: position{line: 1315, col: 62, offset: 45914}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1309, col: 72, offset: 45775}, + pos: position{line: 1315, col: 72, offset: 45924}, name: "SingleQuoteItalicTextElements", }, }, &litMatcher{ - pos: position{line: 1309, col: 103, offset: 45806}, + pos: position{line: 1315, col: 103, offset: 45955}, val: "_", ignoreCase: false, want: "\"_\"", @@ -9136,49 +9151,49 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1311, col: 5, offset: 45996}, + pos: position{line: 1317, col: 5, offset: 46145}, run: (*parser).callonSingleQuoteItalicText14, expr: &seqExpr{ - pos: position{line: 1311, col: 5, offset: 45996}, + pos: position{line: 1317, col: 5, offset: 46145}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1311, col: 5, offset: 45996}, + pos: position{line: 1317, col: 5, offset: 46145}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1311, col: 11, offset: 46002}, + pos: position{line: 1317, col: 11, offset: 46151}, expr: &ruleRefExpr{ - pos: position{line: 1311, col: 12, offset: 46003}, + pos: position{line: 1317, col: 12, offset: 46152}, name: "QuotedTextAttrs", }, }, }, &litMatcher{ - pos: position{line: 1311, col: 30, offset: 46021}, + pos: position{line: 1317, col: 30, offset: 46170}, val: "_", ignoreCase: false, want: "\"_\"", }, &labeledExpr{ - pos: position{line: 1311, col: 34, offset: 46025}, + pos: position{line: 1317, col: 34, offset: 46174}, label: "elements", expr: &seqExpr{ - pos: position{line: 1311, col: 44, offset: 46035}, + pos: position{line: 1317, col: 44, offset: 46184}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1311, col: 44, offset: 46035}, + pos: position{line: 1317, col: 44, offset: 46184}, val: "_", ignoreCase: false, want: "\"_\"", }, &ruleRefExpr{ - pos: position{line: 1311, col: 48, offset: 46039}, + pos: position{line: 1317, col: 48, offset: 46188}, name: "SingleQuoteItalicTextElements", }, }, }, }, &litMatcher{ - pos: position{line: 1311, col: 79, offset: 46070}, + pos: position{line: 1317, col: 79, offset: 46219}, val: "_", ignoreCase: false, want: "\"_\"", @@ -9191,21 +9206,21 @@ var g = &grammar{ }, { name: "SingleQuoteItalicTextElements", - pos: position{line: 1315, col: 1, offset: 46280}, + pos: position{line: 1321, col: 1, offset: 46429}, expr: &seqExpr{ - pos: position{line: 1315, col: 34, offset: 46313}, + pos: position{line: 1321, col: 34, offset: 46462}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1315, col: 34, offset: 46313}, + pos: position{line: 1321, col: 34, offset: 46462}, expr: &ruleRefExpr{ - pos: position{line: 1315, col: 35, offset: 46314}, + pos: position{line: 1321, col: 35, offset: 46463}, name: "Space", }, }, &oneOrMoreExpr{ - pos: position{line: 1315, col: 41, offset: 46320}, + pos: position{line: 1321, col: 41, offset: 46469}, expr: &ruleRefExpr{ - pos: position{line: 1315, col: 41, offset: 46320}, + pos: position{line: 1321, col: 41, offset: 46469}, name: "SingleQuoteItalicTextElement", }, }, @@ -9214,63 +9229,63 @@ var g = &grammar{ }, { name: "SingleQuoteItalicTextElement", - pos: position{line: 1317, col: 1, offset: 46351}, + pos: position{line: 1323, col: 1, offset: 46500}, expr: &choiceExpr{ - pos: position{line: 1317, col: 33, offset: 46383}, + pos: position{line: 1323, col: 33, offset: 46532}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1317, col: 33, offset: 46383}, + pos: position{line: 1323, col: 33, offset: 46532}, name: "Word", }, &seqExpr{ - pos: position{line: 1318, col: 11, offset: 46398}, + pos: position{line: 1324, col: 11, offset: 46547}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1318, col: 11, offset: 46398}, + pos: position{line: 1324, col: 11, offset: 46547}, name: "Newline", }, ¬Expr{ - pos: position{line: 1318, col: 19, offset: 46406}, + pos: position{line: 1324, col: 19, offset: 46555}, expr: &ruleRefExpr{ - pos: position{line: 1318, col: 20, offset: 46407}, + pos: position{line: 1324, col: 20, offset: 46556}, name: "Newline", }, }, }, }, &ruleRefExpr{ - pos: position{line: 1319, col: 11, offset: 46425}, + pos: position{line: 1325, col: 11, offset: 46574}, name: "DoubleQuoteItalicText", }, &ruleRefExpr{ - pos: position{line: 1320, col: 11, offset: 46457}, + pos: position{line: 1326, col: 11, offset: 46606}, name: "QuotedString", }, &seqExpr{ - pos: position{line: 1321, col: 11, offset: 46480}, + pos: position{line: 1327, col: 11, offset: 46629}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 1321, col: 11, offset: 46480}, + pos: position{line: 1327, col: 11, offset: 46629}, expr: &ruleRefExpr{ - pos: position{line: 1321, col: 11, offset: 46480}, + pos: position{line: 1327, col: 11, offset: 46629}, name: "Space", }, }, &zeroOrOneExpr{ - pos: position{line: 1321, col: 18, offset: 46487}, + pos: position{line: 1327, col: 18, offset: 46636}, expr: &seqExpr{ - pos: position{line: 1321, col: 19, offset: 46488}, + pos: position{line: 1327, col: 19, offset: 46637}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1321, col: 19, offset: 46488}, + pos: position{line: 1327, col: 19, offset: 46637}, val: "_", ignoreCase: false, want: "\"_\"", }, ¬Expr{ - pos: position{line: 1321, col: 23, offset: 46492}, + pos: position{line: 1327, col: 23, offset: 46641}, expr: &litMatcher{ - pos: position{line: 1321, col: 24, offset: 46493}, + pos: position{line: 1327, col: 24, offset: 46642}, val: "_", ignoreCase: false, want: "\"_\"", @@ -9282,59 +9297,59 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1322, col: 11, offset: 46509}, + pos: position{line: 1328, col: 11, offset: 46658}, name: "BoldText", }, &ruleRefExpr{ - pos: position{line: 1323, col: 11, offset: 46528}, + pos: position{line: 1329, col: 11, offset: 46677}, name: "MarkedText", }, &ruleRefExpr{ - pos: position{line: 1324, col: 11, offset: 46549}, + pos: position{line: 1330, col: 11, offset: 46698}, name: "MonospaceText", }, &ruleRefExpr{ - pos: position{line: 1325, col: 11, offset: 46573}, + pos: position{line: 1331, col: 11, offset: 46722}, name: "SubscriptText", }, &ruleRefExpr{ - pos: position{line: 1326, col: 11, offset: 46597}, + pos: position{line: 1332, col: 11, offset: 46746}, name: "SuperscriptText", }, &ruleRefExpr{ - pos: position{line: 1327, col: 11, offset: 46623}, + pos: position{line: 1333, col: 11, offset: 46772}, name: "InlinePassthrough", }, &ruleRefExpr{ - pos: position{line: 1328, col: 11, offset: 46712}, + pos: position{line: 1334, col: 11, offset: 46861}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 1329, col: 11, offset: 46739}, + pos: position{line: 1335, col: 11, offset: 46888}, name: "Symbol", }, &ruleRefExpr{ - pos: position{line: 1330, col: 11, offset: 46756}, + pos: position{line: 1336, col: 11, offset: 46905}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 1331, col: 11, offset: 46777}, + pos: position{line: 1337, col: 11, offset: 46926}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 1332, col: 11, offset: 46800}, + pos: position{line: 1338, col: 11, offset: 46949}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 1333, col: 11, offset: 46817}, + pos: position{line: 1339, col: 11, offset: 46966}, name: "AttributeSubstitution", }, &ruleRefExpr{ - pos: position{line: 1334, col: 11, offset: 46849}, + pos: position{line: 1340, col: 11, offset: 46998}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 1335, col: 11, offset: 46877}, + pos: position{line: 1341, col: 11, offset: 47026}, name: "SingleQuoteItalicTextFallbackCharacter", }, }, @@ -9342,31 +9357,31 @@ var g = &grammar{ }, { name: "SingleQuoteItalicTextFallbackCharacter", - pos: position{line: 1337, col: 1, offset: 46917}, + pos: position{line: 1343, col: 1, offset: 47066}, expr: &choiceExpr{ - pos: position{line: 1338, col: 5, offset: 46963}, + pos: position{line: 1344, col: 5, offset: 47112}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 1338, col: 5, offset: 46963}, + pos: position{line: 1344, col: 5, offset: 47112}, val: "[^\\r\\n_]", chars: []rune{'\r', '\n', '_'}, ignoreCase: false, inverted: true, }, &actionExpr{ - pos: position{line: 1339, col: 7, offset: 47062}, + pos: position{line: 1345, col: 7, offset: 47211}, run: (*parser).callonSingleQuoteItalicTextFallbackCharacter3, expr: &seqExpr{ - pos: position{line: 1339, col: 7, offset: 47062}, + pos: position{line: 1345, col: 7, offset: 47211}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1339, col: 7, offset: 47062}, + pos: position{line: 1345, col: 7, offset: 47211}, val: "_", ignoreCase: false, want: "\"_\"", }, &ruleRefExpr{ - pos: position{line: 1339, col: 11, offset: 47066}, + pos: position{line: 1345, col: 11, offset: 47215}, name: "Alphanums", }, }, @@ -9377,40 +9392,40 @@ var g = &grammar{ }, { name: "EscapedItalicText", - pos: position{line: 1343, col: 1, offset: 47232}, + pos: position{line: 1349, col: 1, offset: 47381}, expr: &choiceExpr{ - pos: position{line: 1344, col: 5, offset: 47258}, + pos: position{line: 1350, col: 5, offset: 47407}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1344, col: 5, offset: 47258}, + pos: position{line: 1350, col: 5, offset: 47407}, run: (*parser).callonEscapedItalicText2, expr: &seqExpr{ - pos: position{line: 1344, col: 5, offset: 47258}, + pos: position{line: 1350, col: 5, offset: 47407}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1344, col: 5, offset: 47258}, + pos: position{line: 1350, col: 5, offset: 47407}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1344, col: 18, offset: 47271}, + pos: position{line: 1350, col: 18, offset: 47420}, name: "TwoOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1344, col: 40, offset: 47293}, + pos: position{line: 1350, col: 40, offset: 47442}, val: "__", ignoreCase: false, want: "\"__\"", }, &labeledExpr{ - pos: position{line: 1344, col: 45, offset: 47298}, + pos: position{line: 1350, col: 45, offset: 47447}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1344, col: 55, offset: 47308}, + pos: position{line: 1350, col: 55, offset: 47457}, name: "DoubleQuoteItalicTextElements", }, }, &litMatcher{ - pos: position{line: 1344, col: 86, offset: 47339}, + pos: position{line: 1350, col: 86, offset: 47488}, val: "__", ignoreCase: false, want: "\"__\"", @@ -9419,35 +9434,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1346, col: 9, offset: 47496}, + pos: position{line: 1352, col: 9, offset: 47645}, run: (*parser).callonEscapedItalicText10, expr: &seqExpr{ - pos: position{line: 1346, col: 9, offset: 47496}, + pos: position{line: 1352, col: 9, offset: 47645}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1346, col: 9, offset: 47496}, + pos: position{line: 1352, col: 9, offset: 47645}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1346, col: 22, offset: 47509}, + pos: position{line: 1352, col: 22, offset: 47658}, name: "OneOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1346, col: 44, offset: 47531}, + pos: position{line: 1352, col: 44, offset: 47680}, val: "__", ignoreCase: false, want: "\"__\"", }, &labeledExpr{ - pos: position{line: 1346, col: 49, offset: 47536}, + pos: position{line: 1352, col: 49, offset: 47685}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1346, col: 59, offset: 47546}, + pos: position{line: 1352, col: 59, offset: 47695}, name: "SingleQuoteItalicTextElements", }, }, &litMatcher{ - pos: position{line: 1346, col: 90, offset: 47577}, + pos: position{line: 1352, col: 90, offset: 47726}, val: "_", ignoreCase: false, want: "\"_\"", @@ -9456,35 +9471,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1349, col: 9, offset: 47777}, + pos: position{line: 1355, col: 9, offset: 47926}, run: (*parser).callonEscapedItalicText18, expr: &seqExpr{ - pos: position{line: 1349, col: 9, offset: 47777}, + pos: position{line: 1355, col: 9, offset: 47926}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1349, col: 9, offset: 47777}, + pos: position{line: 1355, col: 9, offset: 47926}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1349, col: 22, offset: 47790}, + pos: position{line: 1355, col: 22, offset: 47939}, name: "OneOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1349, col: 44, offset: 47812}, + pos: position{line: 1355, col: 44, offset: 47961}, val: "_", ignoreCase: false, want: "\"_\"", }, &labeledExpr{ - pos: position{line: 1349, col: 48, offset: 47816}, + pos: position{line: 1355, col: 48, offset: 47965}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1349, col: 58, offset: 47826}, + pos: position{line: 1355, col: 58, offset: 47975}, name: "SingleQuoteItalicTextElements", }, }, &litMatcher{ - pos: position{line: 1349, col: 89, offset: 47857}, + pos: position{line: 1355, col: 89, offset: 48006}, val: "_", ignoreCase: false, want: "\"_\"", @@ -9497,16 +9512,16 @@ var g = &grammar{ }, { name: "MonospaceText", - pos: position{line: 1356, col: 1, offset: 48067}, + pos: position{line: 1362, col: 1, offset: 48216}, expr: &choiceExpr{ - pos: position{line: 1356, col: 18, offset: 48084}, + pos: position{line: 1362, col: 18, offset: 48233}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1356, col: 18, offset: 48084}, + pos: position{line: 1362, col: 18, offset: 48233}, name: "DoubleQuoteMonospaceText", }, &ruleRefExpr{ - pos: position{line: 1356, col: 45, offset: 48111}, + pos: position{line: 1362, col: 45, offset: 48260}, name: "SingleQuoteMonospaceText", }, }, @@ -9514,40 +9529,40 @@ var g = &grammar{ }, { name: "DoubleQuoteMonospaceText", - pos: position{line: 1358, col: 1, offset: 48137}, + pos: position{line: 1364, col: 1, offset: 48286}, expr: &actionExpr{ - pos: position{line: 1358, col: 29, offset: 48165}, + pos: position{line: 1364, col: 29, offset: 48314}, run: (*parser).callonDoubleQuoteMonospaceText1, expr: &seqExpr{ - pos: position{line: 1358, col: 29, offset: 48165}, + pos: position{line: 1364, col: 29, offset: 48314}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1358, col: 29, offset: 48165}, + pos: position{line: 1364, col: 29, offset: 48314}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1358, col: 35, offset: 48171}, + pos: position{line: 1364, col: 35, offset: 48320}, expr: &ruleRefExpr{ - pos: position{line: 1358, col: 36, offset: 48172}, + pos: position{line: 1364, col: 36, offset: 48321}, name: "QuotedTextAttrs", }, }, }, &litMatcher{ - pos: position{line: 1358, col: 54, offset: 48190}, + pos: position{line: 1364, col: 54, offset: 48339}, val: "``", ignoreCase: false, want: "\"``\"", }, &labeledExpr{ - pos: position{line: 1358, col: 59, offset: 48195}, + pos: position{line: 1364, col: 59, offset: 48344}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1358, col: 69, offset: 48205}, + pos: position{line: 1364, col: 69, offset: 48354}, name: "DoubleQuoteMonospaceTextElements", }, }, &litMatcher{ - pos: position{line: 1358, col: 103, offset: 48239}, + pos: position{line: 1364, col: 103, offset: 48388}, val: "``", ignoreCase: false, want: "\"``\"", @@ -9558,37 +9573,37 @@ var g = &grammar{ }, { name: "DoubleQuoteMonospaceTextElements", - pos: position{line: 1362, col: 1, offset: 48376}, + pos: position{line: 1368, col: 1, offset: 48525}, expr: &seqExpr{ - pos: position{line: 1362, col: 37, offset: 48412}, + pos: position{line: 1368, col: 37, offset: 48561}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1362, col: 37, offset: 48412}, + pos: position{line: 1368, col: 37, offset: 48561}, name: "DoubleQuoteMonospaceTextElement", }, &zeroOrMoreExpr{ - pos: position{line: 1362, col: 69, offset: 48444}, + pos: position{line: 1368, col: 69, offset: 48593}, expr: &seqExpr{ - pos: position{line: 1362, col: 70, offset: 48445}, + pos: position{line: 1368, col: 70, offset: 48594}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1362, col: 70, offset: 48445}, + pos: position{line: 1368, col: 70, offset: 48594}, expr: &litMatcher{ - pos: position{line: 1362, col: 72, offset: 48447}, + pos: position{line: 1368, col: 72, offset: 48596}, val: "``", ignoreCase: false, want: "\"``\"", }, }, &choiceExpr{ - pos: position{line: 1362, col: 79, offset: 48454}, + pos: position{line: 1368, col: 79, offset: 48603}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1362, col: 79, offset: 48454}, + pos: position{line: 1368, col: 79, offset: 48603}, name: "Space", }, &ruleRefExpr{ - pos: position{line: 1362, col: 87, offset: 48462}, + pos: position{line: 1368, col: 87, offset: 48611}, name: "DoubleQuoteMonospaceTextElement", }, }, @@ -9601,88 +9616,88 @@ var g = &grammar{ }, { name: "DoubleQuoteMonospaceTextElement", - pos: position{line: 1364, col: 1, offset: 48531}, + pos: position{line: 1370, col: 1, offset: 48680}, expr: &choiceExpr{ - pos: position{line: 1364, col: 36, offset: 48566}, + pos: position{line: 1370, col: 36, offset: 48715}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1364, col: 36, offset: 48566}, + pos: position{line: 1370, col: 36, offset: 48715}, name: "Word", }, &seqExpr{ - pos: position{line: 1365, col: 11, offset: 48581}, + pos: position{line: 1371, col: 11, offset: 48730}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1365, col: 11, offset: 48581}, + pos: position{line: 1371, col: 11, offset: 48730}, name: "Newline", }, ¬Expr{ - pos: position{line: 1365, col: 19, offset: 48589}, + pos: position{line: 1371, col: 19, offset: 48738}, expr: &ruleRefExpr{ - pos: position{line: 1365, col: 20, offset: 48590}, + pos: position{line: 1371, col: 20, offset: 48739}, name: "Newline", }, }, }, }, &ruleRefExpr{ - pos: position{line: 1366, col: 11, offset: 48608}, + pos: position{line: 1372, col: 11, offset: 48757}, name: "QuotedString", }, &ruleRefExpr{ - pos: position{line: 1367, col: 11, offset: 48631}, + pos: position{line: 1373, col: 11, offset: 48780}, name: "InlinePassthrough", }, &ruleRefExpr{ - pos: position{line: 1368, col: 11, offset: 48720}, + pos: position{line: 1374, col: 11, offset: 48869}, name: "Symbol", }, &ruleRefExpr{ - pos: position{line: 1369, col: 11, offset: 48737}, + pos: position{line: 1375, col: 11, offset: 48886}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 1370, col: 11, offset: 48764}, + pos: position{line: 1376, col: 11, offset: 48913}, name: "SingleQuoteMonospaceText", }, &ruleRefExpr{ - pos: position{line: 1371, col: 11, offset: 48799}, + pos: position{line: 1377, col: 11, offset: 48948}, name: "BoldText", }, &ruleRefExpr{ - pos: position{line: 1372, col: 11, offset: 48818}, + pos: position{line: 1378, col: 11, offset: 48967}, name: "ItalicText", }, &ruleRefExpr{ - pos: position{line: 1373, col: 11, offset: 48839}, + pos: position{line: 1379, col: 11, offset: 48988}, name: "MarkedText", }, &ruleRefExpr{ - pos: position{line: 1374, col: 11, offset: 48860}, + pos: position{line: 1380, col: 11, offset: 49009}, name: "SubscriptText", }, &ruleRefExpr{ - pos: position{line: 1375, col: 11, offset: 48884}, + pos: position{line: 1381, col: 11, offset: 49033}, name: "SuperscriptText", }, &ruleRefExpr{ - pos: position{line: 1376, col: 11, offset: 48910}, + pos: position{line: 1382, col: 11, offset: 49059}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 1377, col: 11, offset: 48931}, + pos: position{line: 1383, col: 11, offset: 49080}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 1378, col: 11, offset: 48953}, + pos: position{line: 1384, col: 11, offset: 49102}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 1379, col: 11, offset: 48968}, + pos: position{line: 1385, col: 11, offset: 49117}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 1380, col: 11, offset: 48996}, + pos: position{line: 1386, col: 11, offset: 49145}, name: "DoubleQuoteMonospaceTextFallbackCharacter", }, }, @@ -9690,31 +9705,31 @@ var g = &grammar{ }, { name: "DoubleQuoteMonospaceTextFallbackCharacter", - pos: position{line: 1382, col: 1, offset: 49039}, + pos: position{line: 1388, col: 1, offset: 49188}, expr: &choiceExpr{ - pos: position{line: 1383, col: 5, offset: 49088}, + pos: position{line: 1389, col: 5, offset: 49237}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 1383, col: 5, offset: 49088}, + pos: position{line: 1389, col: 5, offset: 49237}, val: "[^\\r\\n`]", chars: []rune{'\r', '\n', '`'}, ignoreCase: false, inverted: true, }, &actionExpr{ - pos: position{line: 1384, col: 7, offset: 49190}, + pos: position{line: 1390, col: 7, offset: 49339}, run: (*parser).callonDoubleQuoteMonospaceTextFallbackCharacter3, expr: &seqExpr{ - pos: position{line: 1384, col: 7, offset: 49190}, + pos: position{line: 1390, col: 7, offset: 49339}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1384, col: 7, offset: 49190}, + pos: position{line: 1390, col: 7, offset: 49339}, val: "``", ignoreCase: false, want: "\"``\"", }, &ruleRefExpr{ - pos: position{line: 1384, col: 12, offset: 49195}, + pos: position{line: 1390, col: 12, offset: 49344}, name: "Alphanums", }, }, @@ -9725,40 +9740,40 @@ var g = &grammar{ }, { name: "SingleQuoteMonospaceText", - pos: position{line: 1388, col: 1, offset: 49363}, + pos: position{line: 1394, col: 1, offset: 49512}, expr: &choiceExpr{ - pos: position{line: 1388, col: 29, offset: 49391}, + pos: position{line: 1394, col: 29, offset: 49540}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1388, col: 29, offset: 49391}, + pos: position{line: 1394, col: 29, offset: 49540}, run: (*parser).callonSingleQuoteMonospaceText2, expr: &seqExpr{ - pos: position{line: 1388, col: 29, offset: 49391}, + pos: position{line: 1394, col: 29, offset: 49540}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1388, col: 29, offset: 49391}, + pos: position{line: 1394, col: 29, offset: 49540}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1388, col: 35, offset: 49397}, + pos: position{line: 1394, col: 35, offset: 49546}, expr: &ruleRefExpr{ - pos: position{line: 1388, col: 36, offset: 49398}, + pos: position{line: 1394, col: 36, offset: 49547}, name: "QuotedTextAttrs", }, }, }, &seqExpr{ - pos: position{line: 1388, col: 55, offset: 49417}, + pos: position{line: 1394, col: 55, offset: 49566}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1388, col: 55, offset: 49417}, + pos: position{line: 1394, col: 55, offset: 49566}, val: "`", ignoreCase: false, want: "\"`\"", }, ¬Expr{ - pos: position{line: 1388, col: 59, offset: 49421}, + pos: position{line: 1394, col: 59, offset: 49570}, expr: &litMatcher{ - pos: position{line: 1388, col: 60, offset: 49422}, + pos: position{line: 1394, col: 60, offset: 49571}, val: "`", ignoreCase: false, want: "\"`\"", @@ -9767,15 +9782,15 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 1388, col: 65, offset: 49427}, + pos: position{line: 1394, col: 65, offset: 49576}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1388, col: 75, offset: 49437}, + pos: position{line: 1394, col: 75, offset: 49586}, name: "SingleQuoteMonospaceTextElements", }, }, &litMatcher{ - pos: position{line: 1388, col: 109, offset: 49471}, + pos: position{line: 1394, col: 109, offset: 49620}, val: "`", ignoreCase: false, want: "\"`\"", @@ -9784,49 +9799,49 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1390, col: 5, offset: 49664}, + pos: position{line: 1396, col: 5, offset: 49813}, run: (*parser).callonSingleQuoteMonospaceText14, expr: &seqExpr{ - pos: position{line: 1390, col: 5, offset: 49664}, + pos: position{line: 1396, col: 5, offset: 49813}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1390, col: 5, offset: 49664}, + pos: position{line: 1396, col: 5, offset: 49813}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1390, col: 11, offset: 49670}, + pos: position{line: 1396, col: 11, offset: 49819}, expr: &ruleRefExpr{ - pos: position{line: 1390, col: 12, offset: 49671}, + pos: position{line: 1396, col: 12, offset: 49820}, name: "QuotedTextAttrs", }, }, }, &litMatcher{ - pos: position{line: 1390, col: 30, offset: 49689}, + pos: position{line: 1396, col: 30, offset: 49838}, val: "`", ignoreCase: false, want: "\"`\"", }, &labeledExpr{ - pos: position{line: 1390, col: 34, offset: 49693}, + pos: position{line: 1396, col: 34, offset: 49842}, label: "elements", expr: &seqExpr{ - pos: position{line: 1390, col: 44, offset: 49703}, + pos: position{line: 1396, col: 44, offset: 49852}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1390, col: 44, offset: 49703}, + pos: position{line: 1396, col: 44, offset: 49852}, val: "`", ignoreCase: false, want: "\"`\"", }, &ruleRefExpr{ - pos: position{line: 1390, col: 48, offset: 49707}, + pos: position{line: 1396, col: 48, offset: 49856}, name: "SingleQuoteMonospaceTextElements", }, }, }, }, &litMatcher{ - pos: position{line: 1390, col: 82, offset: 49741}, + pos: position{line: 1396, col: 82, offset: 49890}, val: "`", ignoreCase: false, want: "\"`\"", @@ -9839,21 +9854,21 @@ var g = &grammar{ }, { name: "SingleQuoteMonospaceTextElements", - pos: position{line: 1394, col: 1, offset: 49955}, + pos: position{line: 1400, col: 1, offset: 50104}, expr: &seqExpr{ - pos: position{line: 1394, col: 37, offset: 49991}, + pos: position{line: 1400, col: 37, offset: 50140}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1394, col: 37, offset: 49991}, + pos: position{line: 1400, col: 37, offset: 50140}, expr: &ruleRefExpr{ - pos: position{line: 1394, col: 38, offset: 49992}, + pos: position{line: 1400, col: 38, offset: 50141}, name: "Space", }, }, &oneOrMoreExpr{ - pos: position{line: 1394, col: 44, offset: 49998}, + pos: position{line: 1400, col: 44, offset: 50147}, expr: &ruleRefExpr{ - pos: position{line: 1394, col: 44, offset: 49998}, + pos: position{line: 1400, col: 44, offset: 50147}, name: "SingleQuoteMonospaceTextElement", }, }, @@ -9862,63 +9877,63 @@ var g = &grammar{ }, { name: "SingleQuoteMonospaceTextElement", - pos: position{line: 1396, col: 1, offset: 50032}, + pos: position{line: 1402, col: 1, offset: 50181}, expr: &choiceExpr{ - pos: position{line: 1396, col: 37, offset: 50068}, + pos: position{line: 1402, col: 37, offset: 50217}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1396, col: 37, offset: 50068}, + pos: position{line: 1402, col: 37, offset: 50217}, name: "Word", }, &seqExpr{ - pos: position{line: 1397, col: 11, offset: 50083}, + pos: position{line: 1403, col: 11, offset: 50232}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1397, col: 11, offset: 50083}, + pos: position{line: 1403, col: 11, offset: 50232}, name: "Newline", }, ¬Expr{ - pos: position{line: 1397, col: 19, offset: 50091}, + pos: position{line: 1403, col: 19, offset: 50240}, expr: &ruleRefExpr{ - pos: position{line: 1397, col: 20, offset: 50092}, + pos: position{line: 1403, col: 20, offset: 50241}, name: "Newline", }, }, }, }, &ruleRefExpr{ - pos: position{line: 1398, col: 11, offset: 50110}, + pos: position{line: 1404, col: 11, offset: 50259}, name: "DoubleQuoteMonospaceText", }, &ruleRefExpr{ - pos: position{line: 1399, col: 11, offset: 50145}, + pos: position{line: 1405, col: 11, offset: 50294}, name: "QuotedString", }, &seqExpr{ - pos: position{line: 1400, col: 11, offset: 50168}, + pos: position{line: 1406, col: 11, offset: 50317}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 1400, col: 11, offset: 50168}, + pos: position{line: 1406, col: 11, offset: 50317}, expr: &ruleRefExpr{ - pos: position{line: 1400, col: 11, offset: 50168}, + pos: position{line: 1406, col: 11, offset: 50317}, name: "Space", }, }, &zeroOrOneExpr{ - pos: position{line: 1400, col: 18, offset: 50175}, + pos: position{line: 1406, col: 18, offset: 50324}, expr: &seqExpr{ - pos: position{line: 1400, col: 19, offset: 50176}, + pos: position{line: 1406, col: 19, offset: 50325}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1400, col: 19, offset: 50176}, + pos: position{line: 1406, col: 19, offset: 50325}, val: "`", ignoreCase: false, want: "\"`\"", }, ¬Expr{ - pos: position{line: 1400, col: 23, offset: 50180}, + pos: position{line: 1406, col: 23, offset: 50329}, expr: &litMatcher{ - pos: position{line: 1400, col: 24, offset: 50181}, + pos: position{line: 1406, col: 24, offset: 50330}, val: "`", ignoreCase: false, want: "\"`\"", @@ -9930,73 +9945,73 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1401, col: 11, offset: 50309}, + pos: position{line: 1407, col: 11, offset: 50458}, name: "BoldText", }, &ruleRefExpr{ - pos: position{line: 1402, col: 11, offset: 50328}, + pos: position{line: 1408, col: 11, offset: 50477}, name: "ItalicText", }, &ruleRefExpr{ - pos: position{line: 1403, col: 11, offset: 50349}, + pos: position{line: 1409, col: 11, offset: 50498}, name: "MarkedText", }, &ruleRefExpr{ - pos: position{line: 1404, col: 11, offset: 50370}, + pos: position{line: 1410, col: 11, offset: 50519}, name: "SubscriptText", }, &ruleRefExpr{ - pos: position{line: 1405, col: 11, offset: 50394}, + pos: position{line: 1411, col: 11, offset: 50543}, name: "SuperscriptText", }, &ruleRefExpr{ - pos: position{line: 1406, col: 11, offset: 50420}, + pos: position{line: 1412, col: 11, offset: 50569}, name: "InlinePassthrough", }, &seqExpr{ - pos: position{line: 1407, col: 11, offset: 50509}, + pos: position{line: 1413, col: 11, offset: 50658}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1407, col: 11, offset: 50509}, + pos: position{line: 1413, col: 11, offset: 50658}, expr: &litMatcher{ - pos: position{line: 1407, col: 12, offset: 50510}, + pos: position{line: 1413, col: 12, offset: 50659}, val: "`", ignoreCase: false, want: "\"`\"", }, }, &ruleRefExpr{ - pos: position{line: 1407, col: 16, offset: 50514}, + pos: position{line: 1413, col: 16, offset: 50663}, name: "Symbol", }, }, }, &ruleRefExpr{ - pos: position{line: 1408, col: 11, offset: 50531}, + pos: position{line: 1414, col: 11, offset: 50680}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 1409, col: 11, offset: 50558}, + pos: position{line: 1415, col: 11, offset: 50707}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 1410, col: 11, offset: 50579}, + pos: position{line: 1416, col: 11, offset: 50728}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 1411, col: 11, offset: 50602}, + pos: position{line: 1417, col: 11, offset: 50751}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 1412, col: 11, offset: 50618}, + pos: position{line: 1418, col: 11, offset: 50767}, name: "AttributeSubstitution", }, &ruleRefExpr{ - pos: position{line: 1413, col: 11, offset: 50650}, + pos: position{line: 1419, col: 11, offset: 50799}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 1414, col: 11, offset: 50678}, + pos: position{line: 1420, col: 11, offset: 50827}, name: "SingleQuoteMonospaceTextFallbackCharacter", }, }, @@ -10004,31 +10019,31 @@ var g = &grammar{ }, { name: "SingleQuoteMonospaceTextFallbackCharacter", - pos: position{line: 1416, col: 1, offset: 50721}, + pos: position{line: 1422, col: 1, offset: 50870}, expr: &choiceExpr{ - pos: position{line: 1417, col: 5, offset: 50770}, + pos: position{line: 1423, col: 5, offset: 50919}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 1417, col: 5, offset: 50770}, + pos: position{line: 1423, col: 5, offset: 50919}, val: "[^\\r\\n`]", chars: []rune{'\r', '\n', '`'}, ignoreCase: false, inverted: true, }, &actionExpr{ - pos: position{line: 1418, col: 7, offset: 50872}, + pos: position{line: 1424, col: 7, offset: 51021}, run: (*parser).callonSingleQuoteMonospaceTextFallbackCharacter3, expr: &seqExpr{ - pos: position{line: 1418, col: 7, offset: 50872}, + pos: position{line: 1424, col: 7, offset: 51021}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1418, col: 7, offset: 50872}, + pos: position{line: 1424, col: 7, offset: 51021}, val: "`", ignoreCase: false, want: "\"`\"", }, &ruleRefExpr{ - pos: position{line: 1418, col: 11, offset: 50876}, + pos: position{line: 1424, col: 11, offset: 51025}, name: "Alphanums", }, }, @@ -10039,40 +10054,40 @@ var g = &grammar{ }, { name: "EscapedMonospaceText", - pos: position{line: 1422, col: 1, offset: 51045}, + pos: position{line: 1428, col: 1, offset: 51194}, expr: &choiceExpr{ - pos: position{line: 1423, col: 5, offset: 51074}, + pos: position{line: 1429, col: 5, offset: 51223}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1423, col: 5, offset: 51074}, + pos: position{line: 1429, col: 5, offset: 51223}, run: (*parser).callonEscapedMonospaceText2, expr: &seqExpr{ - pos: position{line: 1423, col: 5, offset: 51074}, + pos: position{line: 1429, col: 5, offset: 51223}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1423, col: 5, offset: 51074}, + pos: position{line: 1429, col: 5, offset: 51223}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1423, col: 18, offset: 51087}, + pos: position{line: 1429, col: 18, offset: 51236}, name: "TwoOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1423, col: 40, offset: 51109}, + pos: position{line: 1429, col: 40, offset: 51258}, val: "``", ignoreCase: false, want: "\"``\"", }, &labeledExpr{ - pos: position{line: 1423, col: 45, offset: 51114}, + pos: position{line: 1429, col: 45, offset: 51263}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1423, col: 55, offset: 51124}, + pos: position{line: 1429, col: 55, offset: 51273}, name: "DoubleQuoteMonospaceTextElements", }, }, &litMatcher{ - pos: position{line: 1423, col: 89, offset: 51158}, + pos: position{line: 1429, col: 89, offset: 51307}, val: "``", ignoreCase: false, want: "\"``\"", @@ -10081,35 +10096,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1425, col: 9, offset: 51315}, + pos: position{line: 1431, col: 9, offset: 51464}, run: (*parser).callonEscapedMonospaceText10, expr: &seqExpr{ - pos: position{line: 1425, col: 9, offset: 51315}, + pos: position{line: 1431, col: 9, offset: 51464}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1425, col: 9, offset: 51315}, + pos: position{line: 1431, col: 9, offset: 51464}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1425, col: 22, offset: 51328}, + pos: position{line: 1431, col: 22, offset: 51477}, name: "OneOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1425, col: 44, offset: 51350}, + pos: position{line: 1431, col: 44, offset: 51499}, val: "``", ignoreCase: false, want: "\"``\"", }, &labeledExpr{ - pos: position{line: 1425, col: 49, offset: 51355}, + pos: position{line: 1431, col: 49, offset: 51504}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1425, col: 59, offset: 51365}, + pos: position{line: 1431, col: 59, offset: 51514}, name: "SingleQuoteMonospaceTextElements", }, }, &litMatcher{ - pos: position{line: 1425, col: 93, offset: 51399}, + pos: position{line: 1431, col: 93, offset: 51548}, val: "`", ignoreCase: false, want: "\"`\"", @@ -10118,35 +10133,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1428, col: 9, offset: 51599}, + pos: position{line: 1434, col: 9, offset: 51748}, run: (*parser).callonEscapedMonospaceText18, expr: &seqExpr{ - pos: position{line: 1428, col: 9, offset: 51599}, + pos: position{line: 1434, col: 9, offset: 51748}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1428, col: 9, offset: 51599}, + pos: position{line: 1434, col: 9, offset: 51748}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1428, col: 22, offset: 51612}, + pos: position{line: 1434, col: 22, offset: 51761}, name: "OneOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1428, col: 44, offset: 51634}, + pos: position{line: 1434, col: 44, offset: 51783}, val: "`", ignoreCase: false, want: "\"`\"", }, &labeledExpr{ - pos: position{line: 1428, col: 48, offset: 51638}, + pos: position{line: 1434, col: 48, offset: 51787}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1428, col: 58, offset: 51648}, + pos: position{line: 1434, col: 58, offset: 51797}, name: "SingleQuoteMonospaceTextElements", }, }, &litMatcher{ - pos: position{line: 1428, col: 92, offset: 51682}, + pos: position{line: 1434, col: 92, offset: 51831}, val: "`", ignoreCase: false, want: "\"`\"", @@ -10159,16 +10174,16 @@ var g = &grammar{ }, { name: "MarkedText", - pos: position{line: 1436, col: 1, offset: 51890}, + pos: position{line: 1442, col: 1, offset: 52039}, expr: &choiceExpr{ - pos: position{line: 1436, col: 15, offset: 51904}, + pos: position{line: 1442, col: 15, offset: 52053}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1436, col: 15, offset: 51904}, + pos: position{line: 1442, col: 15, offset: 52053}, name: "DoubleQuoteMarkedText", }, &ruleRefExpr{ - pos: position{line: 1436, col: 39, offset: 51928}, + pos: position{line: 1442, col: 39, offset: 52077}, name: "SingleQuoteMarkedText", }, }, @@ -10176,40 +10191,40 @@ var g = &grammar{ }, { name: "DoubleQuoteMarkedText", - pos: position{line: 1438, col: 1, offset: 51951}, + pos: position{line: 1444, col: 1, offset: 52100}, expr: &actionExpr{ - pos: position{line: 1438, col: 26, offset: 51976}, + pos: position{line: 1444, col: 26, offset: 52125}, run: (*parser).callonDoubleQuoteMarkedText1, expr: &seqExpr{ - pos: position{line: 1438, col: 26, offset: 51976}, + pos: position{line: 1444, col: 26, offset: 52125}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1438, col: 26, offset: 51976}, + pos: position{line: 1444, col: 26, offset: 52125}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1438, col: 32, offset: 51982}, + pos: position{line: 1444, col: 32, offset: 52131}, expr: &ruleRefExpr{ - pos: position{line: 1438, col: 33, offset: 51983}, + pos: position{line: 1444, col: 33, offset: 52132}, name: "QuotedTextAttrs", }, }, }, &litMatcher{ - pos: position{line: 1438, col: 51, offset: 52001}, + pos: position{line: 1444, col: 51, offset: 52150}, val: "##", ignoreCase: false, want: "\"##\"", }, &labeledExpr{ - pos: position{line: 1438, col: 56, offset: 52006}, + pos: position{line: 1444, col: 56, offset: 52155}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1438, col: 66, offset: 52016}, + pos: position{line: 1444, col: 66, offset: 52165}, name: "DoubleQuoteMarkedTextElements", }, }, &litMatcher{ - pos: position{line: 1438, col: 97, offset: 52047}, + pos: position{line: 1444, col: 97, offset: 52196}, val: "##", ignoreCase: false, want: "\"##\"", @@ -10220,37 +10235,37 @@ var g = &grammar{ }, { name: "DoubleQuoteMarkedTextElements", - pos: position{line: 1442, col: 1, offset: 52181}, + pos: position{line: 1448, col: 1, offset: 52330}, expr: &seqExpr{ - pos: position{line: 1442, col: 34, offset: 52214}, + pos: position{line: 1448, col: 34, offset: 52363}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1442, col: 34, offset: 52214}, + pos: position{line: 1448, col: 34, offset: 52363}, name: "DoubleQuoteMarkedTextElement", }, &zeroOrMoreExpr{ - pos: position{line: 1442, col: 63, offset: 52243}, + pos: position{line: 1448, col: 63, offset: 52392}, expr: &seqExpr{ - pos: position{line: 1442, col: 64, offset: 52244}, + pos: position{line: 1448, col: 64, offset: 52393}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1442, col: 64, offset: 52244}, + pos: position{line: 1448, col: 64, offset: 52393}, expr: &litMatcher{ - pos: position{line: 1442, col: 66, offset: 52246}, + pos: position{line: 1448, col: 66, offset: 52395}, val: "##", ignoreCase: false, want: "\"##\"", }, }, &choiceExpr{ - pos: position{line: 1442, col: 73, offset: 52253}, + pos: position{line: 1448, col: 73, offset: 52402}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1442, col: 73, offset: 52253}, + pos: position{line: 1448, col: 73, offset: 52402}, name: "Space", }, &ruleRefExpr{ - pos: position{line: 1442, col: 81, offset: 52261}, + pos: position{line: 1448, col: 81, offset: 52410}, name: "DoubleQuoteMarkedTextElement", }, }, @@ -10263,88 +10278,88 @@ var g = &grammar{ }, { name: "DoubleQuoteMarkedTextElement", - pos: position{line: 1444, col: 1, offset: 52328}, + pos: position{line: 1450, col: 1, offset: 52477}, expr: &choiceExpr{ - pos: position{line: 1444, col: 33, offset: 52360}, + pos: position{line: 1450, col: 33, offset: 52509}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1444, col: 33, offset: 52360}, + pos: position{line: 1450, col: 33, offset: 52509}, name: "Word", }, &ruleRefExpr{ - pos: position{line: 1445, col: 11, offset: 52375}, + pos: position{line: 1451, col: 11, offset: 52524}, name: "SingleQuoteMarkedText", }, &seqExpr{ - pos: position{line: 1446, col: 11, offset: 52407}, + pos: position{line: 1452, col: 11, offset: 52556}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1446, col: 11, offset: 52407}, + pos: position{line: 1452, col: 11, offset: 52556}, name: "Newline", }, ¬Expr{ - pos: position{line: 1446, col: 19, offset: 52415}, + pos: position{line: 1452, col: 19, offset: 52564}, expr: &ruleRefExpr{ - pos: position{line: 1446, col: 20, offset: 52416}, + pos: position{line: 1452, col: 20, offset: 52565}, name: "Newline", }, }, }, }, &ruleRefExpr{ - pos: position{line: 1447, col: 11, offset: 52434}, + pos: position{line: 1453, col: 11, offset: 52583}, name: "QuotedString", }, &ruleRefExpr{ - pos: position{line: 1448, col: 11, offset: 52457}, + pos: position{line: 1454, col: 11, offset: 52606}, name: "BoldText", }, &ruleRefExpr{ - pos: position{line: 1449, col: 11, offset: 52476}, + pos: position{line: 1455, col: 11, offset: 52625}, name: "ItalicText", }, &ruleRefExpr{ - pos: position{line: 1450, col: 11, offset: 52497}, + pos: position{line: 1456, col: 11, offset: 52646}, name: "MonospaceText", }, &ruleRefExpr{ - pos: position{line: 1451, col: 11, offset: 52521}, + pos: position{line: 1457, col: 11, offset: 52670}, name: "SubscriptText", }, &ruleRefExpr{ - pos: position{line: 1452, col: 11, offset: 52545}, + pos: position{line: 1458, col: 11, offset: 52694}, name: "SuperscriptText", }, &ruleRefExpr{ - pos: position{line: 1453, col: 11, offset: 52571}, + pos: position{line: 1459, col: 11, offset: 52720}, name: "InlinePassthrough", }, &ruleRefExpr{ - pos: position{line: 1454, col: 11, offset: 52660}, + pos: position{line: 1460, col: 11, offset: 52809}, name: "Symbol", }, &ruleRefExpr{ - pos: position{line: 1455, col: 11, offset: 52677}, + pos: position{line: 1461, col: 11, offset: 52826}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 1456, col: 11, offset: 52704}, + pos: position{line: 1462, col: 11, offset: 52853}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 1457, col: 11, offset: 52725}, + pos: position{line: 1463, col: 11, offset: 52874}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 1458, col: 11, offset: 52747}, + pos: position{line: 1464, col: 11, offset: 52896}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 1459, col: 11, offset: 52762}, + pos: position{line: 1465, col: 11, offset: 52911}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 1460, col: 11, offset: 52790}, + pos: position{line: 1466, col: 11, offset: 52939}, name: "DoubleQuoteMarkedTextFallbackCharacter", }, }, @@ -10352,31 +10367,31 @@ var g = &grammar{ }, { name: "DoubleQuoteMarkedTextFallbackCharacter", - pos: position{line: 1462, col: 1, offset: 52830}, + pos: position{line: 1468, col: 1, offset: 52979}, expr: &choiceExpr{ - pos: position{line: 1463, col: 5, offset: 52876}, + pos: position{line: 1469, col: 5, offset: 53025}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 1463, col: 5, offset: 52876}, + pos: position{line: 1469, col: 5, offset: 53025}, val: "[^\\r\\n#]", chars: []rune{'\r', '\n', '#'}, ignoreCase: false, inverted: true, }, &actionExpr{ - pos: position{line: 1464, col: 7, offset: 52975}, + pos: position{line: 1470, col: 7, offset: 53124}, run: (*parser).callonDoubleQuoteMarkedTextFallbackCharacter3, expr: &seqExpr{ - pos: position{line: 1464, col: 7, offset: 52975}, + pos: position{line: 1470, col: 7, offset: 53124}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1464, col: 7, offset: 52975}, + pos: position{line: 1470, col: 7, offset: 53124}, val: "##", ignoreCase: false, want: "\"##\"", }, &ruleRefExpr{ - pos: position{line: 1464, col: 12, offset: 52980}, + pos: position{line: 1470, col: 12, offset: 53129}, name: "Alphanums", }, }, @@ -10387,40 +10402,40 @@ var g = &grammar{ }, { name: "SingleQuoteMarkedText", - pos: position{line: 1468, col: 1, offset: 53145}, + pos: position{line: 1474, col: 1, offset: 53294}, expr: &choiceExpr{ - pos: position{line: 1468, col: 26, offset: 53170}, + pos: position{line: 1474, col: 26, offset: 53319}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1468, col: 26, offset: 53170}, + pos: position{line: 1474, col: 26, offset: 53319}, run: (*parser).callonSingleQuoteMarkedText2, expr: &seqExpr{ - pos: position{line: 1468, col: 26, offset: 53170}, + pos: position{line: 1474, col: 26, offset: 53319}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1468, col: 26, offset: 53170}, + pos: position{line: 1474, col: 26, offset: 53319}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1468, col: 32, offset: 53176}, + pos: position{line: 1474, col: 32, offset: 53325}, expr: &ruleRefExpr{ - pos: position{line: 1468, col: 33, offset: 53177}, + pos: position{line: 1474, col: 33, offset: 53326}, name: "QuotedTextAttrs", }, }, }, &seqExpr{ - pos: position{line: 1468, col: 52, offset: 53196}, + pos: position{line: 1474, col: 52, offset: 53345}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1468, col: 52, offset: 53196}, + pos: position{line: 1474, col: 52, offset: 53345}, val: "#", ignoreCase: false, want: "\"#\"", }, ¬Expr{ - pos: position{line: 1468, col: 56, offset: 53200}, + pos: position{line: 1474, col: 56, offset: 53349}, expr: &litMatcher{ - pos: position{line: 1468, col: 57, offset: 53201}, + pos: position{line: 1474, col: 57, offset: 53350}, val: "#", ignoreCase: false, want: "\"#\"", @@ -10429,15 +10444,15 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 1468, col: 62, offset: 53206}, + pos: position{line: 1474, col: 62, offset: 53355}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1468, col: 72, offset: 53216}, + pos: position{line: 1474, col: 72, offset: 53365}, name: "SingleQuoteMarkedTextElements", }, }, &litMatcher{ - pos: position{line: 1468, col: 103, offset: 53247}, + pos: position{line: 1474, col: 103, offset: 53396}, val: "#", ignoreCase: false, want: "\"#\"", @@ -10446,49 +10461,49 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1470, col: 5, offset: 53437}, + pos: position{line: 1476, col: 5, offset: 53586}, run: (*parser).callonSingleQuoteMarkedText14, expr: &seqExpr{ - pos: position{line: 1470, col: 5, offset: 53437}, + pos: position{line: 1476, col: 5, offset: 53586}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1470, col: 5, offset: 53437}, + pos: position{line: 1476, col: 5, offset: 53586}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1470, col: 11, offset: 53443}, + pos: position{line: 1476, col: 11, offset: 53592}, expr: &ruleRefExpr{ - pos: position{line: 1470, col: 12, offset: 53444}, + pos: position{line: 1476, col: 12, offset: 53593}, name: "QuotedTextAttrs", }, }, }, &litMatcher{ - pos: position{line: 1470, col: 30, offset: 53462}, + pos: position{line: 1476, col: 30, offset: 53611}, val: "#", ignoreCase: false, want: "\"#\"", }, &labeledExpr{ - pos: position{line: 1470, col: 34, offset: 53466}, + pos: position{line: 1476, col: 34, offset: 53615}, label: "elements", expr: &seqExpr{ - pos: position{line: 1470, col: 44, offset: 53476}, + pos: position{line: 1476, col: 44, offset: 53625}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1470, col: 44, offset: 53476}, + pos: position{line: 1476, col: 44, offset: 53625}, val: "#", ignoreCase: false, want: "\"#\"", }, &ruleRefExpr{ - pos: position{line: 1470, col: 48, offset: 53480}, + pos: position{line: 1476, col: 48, offset: 53629}, name: "SingleQuoteMarkedTextElements", }, }, }, }, &litMatcher{ - pos: position{line: 1470, col: 79, offset: 53511}, + pos: position{line: 1476, col: 79, offset: 53660}, val: "#", ignoreCase: false, want: "\"#\"", @@ -10501,21 +10516,21 @@ var g = &grammar{ }, { name: "SingleQuoteMarkedTextElements", - pos: position{line: 1474, col: 1, offset: 53720}, + pos: position{line: 1480, col: 1, offset: 53869}, expr: &seqExpr{ - pos: position{line: 1474, col: 34, offset: 53753}, + pos: position{line: 1480, col: 34, offset: 53902}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1474, col: 34, offset: 53753}, + pos: position{line: 1480, col: 34, offset: 53902}, expr: &ruleRefExpr{ - pos: position{line: 1474, col: 35, offset: 53754}, + pos: position{line: 1480, col: 35, offset: 53903}, name: "Space", }, }, &oneOrMoreExpr{ - pos: position{line: 1474, col: 41, offset: 53760}, + pos: position{line: 1480, col: 41, offset: 53909}, expr: &ruleRefExpr{ - pos: position{line: 1474, col: 41, offset: 53760}, + pos: position{line: 1480, col: 41, offset: 53909}, name: "SingleQuoteMarkedTextElement", }, }, @@ -10524,63 +10539,63 @@ var g = &grammar{ }, { name: "SingleQuoteMarkedTextElement", - pos: position{line: 1476, col: 1, offset: 53791}, + pos: position{line: 1482, col: 1, offset: 53940}, expr: &choiceExpr{ - pos: position{line: 1476, col: 33, offset: 53823}, + pos: position{line: 1482, col: 33, offset: 53972}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1476, col: 33, offset: 53823}, + pos: position{line: 1482, col: 33, offset: 53972}, name: "Word", }, &ruleRefExpr{ - pos: position{line: 1477, col: 11, offset: 53838}, + pos: position{line: 1483, col: 11, offset: 53987}, name: "DoubleQuoteMarkedText", }, &seqExpr{ - pos: position{line: 1478, col: 11, offset: 53870}, + pos: position{line: 1484, col: 11, offset: 54019}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1478, col: 11, offset: 53870}, + pos: position{line: 1484, col: 11, offset: 54019}, name: "Newline", }, ¬Expr{ - pos: position{line: 1478, col: 19, offset: 53878}, + pos: position{line: 1484, col: 19, offset: 54027}, expr: &ruleRefExpr{ - pos: position{line: 1478, col: 20, offset: 53879}, + pos: position{line: 1484, col: 20, offset: 54028}, name: "Newline", }, }, }, }, &ruleRefExpr{ - pos: position{line: 1479, col: 11, offset: 53897}, + pos: position{line: 1485, col: 11, offset: 54046}, name: "QuotedString", }, &seqExpr{ - pos: position{line: 1480, col: 11, offset: 53920}, + pos: position{line: 1486, col: 11, offset: 54069}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 1480, col: 11, offset: 53920}, + pos: position{line: 1486, col: 11, offset: 54069}, expr: &ruleRefExpr{ - pos: position{line: 1480, col: 11, offset: 53920}, + pos: position{line: 1486, col: 11, offset: 54069}, name: "Space", }, }, &zeroOrOneExpr{ - pos: position{line: 1480, col: 18, offset: 53927}, + pos: position{line: 1486, col: 18, offset: 54076}, expr: &seqExpr{ - pos: position{line: 1480, col: 19, offset: 53928}, + pos: position{line: 1486, col: 19, offset: 54077}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1480, col: 19, offset: 53928}, + pos: position{line: 1486, col: 19, offset: 54077}, val: "#", ignoreCase: false, want: "\"#\"", }, ¬Expr{ - pos: position{line: 1480, col: 23, offset: 53932}, + pos: position{line: 1486, col: 23, offset: 54081}, expr: &litMatcher{ - pos: position{line: 1480, col: 24, offset: 53933}, + pos: position{line: 1486, col: 24, offset: 54082}, val: "#", ignoreCase: false, want: "\"#\"", @@ -10592,59 +10607,59 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1481, col: 11, offset: 53949}, + pos: position{line: 1487, col: 11, offset: 54098}, name: "BoldText", }, &ruleRefExpr{ - pos: position{line: 1482, col: 11, offset: 53968}, + pos: position{line: 1488, col: 11, offset: 54117}, name: "ItalicText", }, &ruleRefExpr{ - pos: position{line: 1483, col: 11, offset: 53989}, + pos: position{line: 1489, col: 11, offset: 54138}, name: "MonospaceText", }, &ruleRefExpr{ - pos: position{line: 1484, col: 11, offset: 54013}, + pos: position{line: 1490, col: 11, offset: 54162}, name: "SubscriptText", }, &ruleRefExpr{ - pos: position{line: 1485, col: 11, offset: 54037}, + pos: position{line: 1491, col: 11, offset: 54186}, name: "SuperscriptText", }, &ruleRefExpr{ - pos: position{line: 1486, col: 11, offset: 54063}, + pos: position{line: 1492, col: 11, offset: 54212}, name: "Symbol", }, &ruleRefExpr{ - pos: position{line: 1487, col: 11, offset: 54080}, + pos: position{line: 1493, col: 11, offset: 54229}, name: "InlinePassthrough", }, &ruleRefExpr{ - pos: position{line: 1488, col: 11, offset: 54169}, + pos: position{line: 1494, col: 11, offset: 54318}, name: "SpecialCharacter", }, &ruleRefExpr{ - pos: position{line: 1489, col: 11, offset: 54196}, + pos: position{line: 1495, col: 11, offset: 54345}, name: "InlineIcon", }, &ruleRefExpr{ - pos: position{line: 1490, col: 11, offset: 54217}, + pos: position{line: 1496, col: 11, offset: 54366}, name: "InlineImage", }, &ruleRefExpr{ - pos: position{line: 1491, col: 11, offset: 54239}, + pos: position{line: 1497, col: 11, offset: 54388}, name: "Link", }, &ruleRefExpr{ - pos: position{line: 1492, col: 11, offset: 54254}, + pos: position{line: 1498, col: 11, offset: 54403}, name: "AttributeSubstitution", }, &ruleRefExpr{ - pos: position{line: 1493, col: 11, offset: 54286}, + pos: position{line: 1499, col: 11, offset: 54435}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 1494, col: 11, offset: 54314}, + pos: position{line: 1500, col: 11, offset: 54463}, name: "SingleQuoteMarkedTextFallbackCharacter", }, }, @@ -10652,31 +10667,31 @@ var g = &grammar{ }, { name: "SingleQuoteMarkedTextFallbackCharacter", - pos: position{line: 1496, col: 1, offset: 54354}, + pos: position{line: 1502, col: 1, offset: 54503}, expr: &choiceExpr{ - pos: position{line: 1497, col: 5, offset: 54400}, + pos: position{line: 1503, col: 5, offset: 54549}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 1497, col: 5, offset: 54400}, + pos: position{line: 1503, col: 5, offset: 54549}, val: "[^\\r\\n#]", chars: []rune{'\r', '\n', '#'}, ignoreCase: false, inverted: true, }, &actionExpr{ - pos: position{line: 1498, col: 7, offset: 54497}, + pos: position{line: 1504, col: 7, offset: 54646}, run: (*parser).callonSingleQuoteMarkedTextFallbackCharacter3, expr: &seqExpr{ - pos: position{line: 1498, col: 7, offset: 54497}, + pos: position{line: 1504, col: 7, offset: 54646}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1498, col: 7, offset: 54497}, + pos: position{line: 1504, col: 7, offset: 54646}, val: "#", ignoreCase: false, want: "\"#\"", }, &ruleRefExpr{ - pos: position{line: 1498, col: 11, offset: 54501}, + pos: position{line: 1504, col: 11, offset: 54650}, name: "Alphanums", }, }, @@ -10687,40 +10702,40 @@ var g = &grammar{ }, { name: "EscapedMarkedText", - pos: position{line: 1502, col: 1, offset: 54664}, + pos: position{line: 1508, col: 1, offset: 54813}, expr: &choiceExpr{ - pos: position{line: 1503, col: 5, offset: 54689}, + pos: position{line: 1509, col: 5, offset: 54838}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1503, col: 5, offset: 54689}, + pos: position{line: 1509, col: 5, offset: 54838}, run: (*parser).callonEscapedMarkedText2, expr: &seqExpr{ - pos: position{line: 1503, col: 5, offset: 54689}, + pos: position{line: 1509, col: 5, offset: 54838}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1503, col: 5, offset: 54689}, + pos: position{line: 1509, col: 5, offset: 54838}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1503, col: 18, offset: 54702}, + pos: position{line: 1509, col: 18, offset: 54851}, name: "TwoOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1503, col: 40, offset: 54724}, + pos: position{line: 1509, col: 40, offset: 54873}, val: "##", ignoreCase: false, want: "\"##\"", }, &labeledExpr{ - pos: position{line: 1503, col: 45, offset: 54729}, + pos: position{line: 1509, col: 45, offset: 54878}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1503, col: 55, offset: 54739}, + pos: position{line: 1509, col: 55, offset: 54888}, name: "DoubleQuoteMarkedTextElements", }, }, &litMatcher{ - pos: position{line: 1503, col: 86, offset: 54770}, + pos: position{line: 1509, col: 86, offset: 54919}, val: "##", ignoreCase: false, want: "\"##\"", @@ -10729,35 +10744,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1505, col: 9, offset: 54927}, + pos: position{line: 1511, col: 9, offset: 55076}, run: (*parser).callonEscapedMarkedText10, expr: &seqExpr{ - pos: position{line: 1505, col: 9, offset: 54927}, + pos: position{line: 1511, col: 9, offset: 55076}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1505, col: 9, offset: 54927}, + pos: position{line: 1511, col: 9, offset: 55076}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1505, col: 22, offset: 54940}, + pos: position{line: 1511, col: 22, offset: 55089}, name: "OneOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1505, col: 44, offset: 54962}, + pos: position{line: 1511, col: 44, offset: 55111}, val: "##", ignoreCase: false, want: "\"##\"", }, &labeledExpr{ - pos: position{line: 1505, col: 49, offset: 54967}, + pos: position{line: 1511, col: 49, offset: 55116}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1505, col: 59, offset: 54977}, + pos: position{line: 1511, col: 59, offset: 55126}, name: "SingleQuoteMarkedTextElements", }, }, &litMatcher{ - pos: position{line: 1505, col: 90, offset: 55008}, + pos: position{line: 1511, col: 90, offset: 55157}, val: "#", ignoreCase: false, want: "\"#\"", @@ -10766,35 +10781,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1508, col: 9, offset: 55208}, + pos: position{line: 1514, col: 9, offset: 55357}, run: (*parser).callonEscapedMarkedText18, expr: &seqExpr{ - pos: position{line: 1508, col: 9, offset: 55208}, + pos: position{line: 1514, col: 9, offset: 55357}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1508, col: 9, offset: 55208}, + pos: position{line: 1514, col: 9, offset: 55357}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1508, col: 22, offset: 55221}, + pos: position{line: 1514, col: 22, offset: 55370}, name: "OneOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1508, col: 44, offset: 55243}, + pos: position{line: 1514, col: 44, offset: 55392}, val: "#", ignoreCase: false, want: "\"#\"", }, &labeledExpr{ - pos: position{line: 1508, col: 48, offset: 55247}, + pos: position{line: 1514, col: 48, offset: 55396}, label: "elements", expr: &ruleRefExpr{ - pos: position{line: 1508, col: 58, offset: 55257}, + pos: position{line: 1514, col: 58, offset: 55406}, name: "SingleQuoteMarkedTextElements", }, }, &litMatcher{ - pos: position{line: 1508, col: 89, offset: 55288}, + pos: position{line: 1514, col: 89, offset: 55437}, val: "#", ignoreCase: false, want: "\"#\"", @@ -10807,40 +10822,40 @@ var g = &grammar{ }, { name: "SubscriptText", - pos: position{line: 1513, col: 1, offset: 55438}, + pos: position{line: 1519, col: 1, offset: 55587}, expr: &actionExpr{ - pos: position{line: 1513, col: 18, offset: 55455}, + pos: position{line: 1519, col: 18, offset: 55604}, run: (*parser).callonSubscriptText1, expr: &seqExpr{ - pos: position{line: 1513, col: 18, offset: 55455}, + pos: position{line: 1519, col: 18, offset: 55604}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1513, col: 18, offset: 55455}, + pos: position{line: 1519, col: 18, offset: 55604}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1513, col: 24, offset: 55461}, + pos: position{line: 1519, col: 24, offset: 55610}, expr: &ruleRefExpr{ - pos: position{line: 1513, col: 25, offset: 55462}, + pos: position{line: 1519, col: 25, offset: 55611}, name: "QuotedTextAttrs", }, }, }, &litMatcher{ - pos: position{line: 1513, col: 43, offset: 55480}, + pos: position{line: 1519, col: 43, offset: 55629}, val: "~", ignoreCase: false, want: "\"~\"", }, &labeledExpr{ - pos: position{line: 1513, col: 47, offset: 55484}, + pos: position{line: 1519, col: 47, offset: 55633}, label: "element", expr: &ruleRefExpr{ - pos: position{line: 1513, col: 56, offset: 55493}, + pos: position{line: 1519, col: 56, offset: 55642}, name: "SubscriptTextElement", }, }, &litMatcher{ - pos: position{line: 1513, col: 78, offset: 55515}, + pos: position{line: 1519, col: 78, offset: 55664}, val: "~", ignoreCase: false, want: "\"~\"", @@ -10851,16 +10866,16 @@ var g = &grammar{ }, { name: "SubscriptTextElement", - pos: position{line: 1517, col: 1, offset: 55611}, + pos: position{line: 1523, col: 1, offset: 55760}, expr: &choiceExpr{ - pos: position{line: 1517, col: 25, offset: 55635}, + pos: position{line: 1523, col: 25, offset: 55784}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1517, col: 25, offset: 55635}, + pos: position{line: 1523, col: 25, offset: 55784}, name: "QuotedText", }, &ruleRefExpr{ - pos: position{line: 1517, col: 38, offset: 55648}, + pos: position{line: 1523, col: 38, offset: 55797}, name: "NonSubscriptText", }, }, @@ -10868,14 +10883,14 @@ var g = &grammar{ }, { name: "NonSubscriptText", - pos: position{line: 1519, col: 1, offset: 55667}, + pos: position{line: 1525, col: 1, offset: 55816}, expr: &actionExpr{ - pos: position{line: 1519, col: 21, offset: 55687}, + pos: position{line: 1525, col: 21, offset: 55836}, run: (*parser).callonNonSubscriptText1, expr: &oneOrMoreExpr{ - pos: position{line: 1519, col: 21, offset: 55687}, + pos: position{line: 1525, col: 21, offset: 55836}, expr: &charClassMatcher{ - pos: position{line: 1519, col: 21, offset: 55687}, + pos: position{line: 1525, col: 21, offset: 55836}, val: "[^\\r\\n ~]", chars: []rune{'\r', '\n', ' ', '~'}, ignoreCase: false, @@ -10886,37 +10901,37 @@ var g = &grammar{ }, { name: "EscapedSubscriptText", - pos: position{line: 1523, col: 1, offset: 55764}, + pos: position{line: 1529, col: 1, offset: 55913}, expr: &actionExpr{ - pos: position{line: 1523, col: 25, offset: 55788}, + pos: position{line: 1529, col: 25, offset: 55937}, run: (*parser).callonEscapedSubscriptText1, expr: &seqExpr{ - pos: position{line: 1523, col: 25, offset: 55788}, + pos: position{line: 1529, col: 25, offset: 55937}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1523, col: 25, offset: 55788}, + pos: position{line: 1529, col: 25, offset: 55937}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1523, col: 38, offset: 55801}, + pos: position{line: 1529, col: 38, offset: 55950}, name: "OneOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1523, col: 60, offset: 55823}, + pos: position{line: 1529, col: 60, offset: 55972}, val: "~", ignoreCase: false, want: "\"~\"", }, &labeledExpr{ - pos: position{line: 1523, col: 64, offset: 55827}, + pos: position{line: 1529, col: 64, offset: 55976}, label: "element", expr: &ruleRefExpr{ - pos: position{line: 1523, col: 73, offset: 55836}, + pos: position{line: 1529, col: 73, offset: 55985}, name: "SubscriptTextElement", }, }, &litMatcher{ - pos: position{line: 1523, col: 95, offset: 55858}, + pos: position{line: 1529, col: 95, offset: 56007}, val: "~", ignoreCase: false, want: "\"~\"", @@ -10927,40 +10942,40 @@ var g = &grammar{ }, { name: "SuperscriptText", - pos: position{line: 1527, col: 1, offset: 55987}, + pos: position{line: 1533, col: 1, offset: 56136}, expr: &actionExpr{ - pos: position{line: 1527, col: 20, offset: 56006}, + pos: position{line: 1533, col: 20, offset: 56155}, run: (*parser).callonSuperscriptText1, expr: &seqExpr{ - pos: position{line: 1527, col: 20, offset: 56006}, + pos: position{line: 1533, col: 20, offset: 56155}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1527, col: 20, offset: 56006}, + pos: position{line: 1533, col: 20, offset: 56155}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1527, col: 26, offset: 56012}, + pos: position{line: 1533, col: 26, offset: 56161}, expr: &ruleRefExpr{ - pos: position{line: 1527, col: 27, offset: 56013}, + pos: position{line: 1533, col: 27, offset: 56162}, name: "QuotedTextAttrs", }, }, }, &litMatcher{ - pos: position{line: 1527, col: 45, offset: 56031}, + pos: position{line: 1533, col: 45, offset: 56180}, val: "^", ignoreCase: false, want: "\"^\"", }, &labeledExpr{ - pos: position{line: 1527, col: 49, offset: 56035}, + pos: position{line: 1533, col: 49, offset: 56184}, label: "element", expr: &ruleRefExpr{ - pos: position{line: 1527, col: 58, offset: 56044}, + pos: position{line: 1533, col: 58, offset: 56193}, name: "SuperscriptTextElement", }, }, &litMatcher{ - pos: position{line: 1527, col: 82, offset: 56068}, + pos: position{line: 1533, col: 82, offset: 56217}, val: "^", ignoreCase: false, want: "\"^\"", @@ -10971,16 +10986,16 @@ var g = &grammar{ }, { name: "SuperscriptTextElement", - pos: position{line: 1531, col: 1, offset: 56166}, + pos: position{line: 1537, col: 1, offset: 56315}, expr: &choiceExpr{ - pos: position{line: 1531, col: 27, offset: 56192}, + pos: position{line: 1537, col: 27, offset: 56341}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1531, col: 27, offset: 56192}, + pos: position{line: 1537, col: 27, offset: 56341}, name: "QuotedText", }, &ruleRefExpr{ - pos: position{line: 1531, col: 40, offset: 56205}, + pos: position{line: 1537, col: 40, offset: 56354}, name: "NonSuperscriptText", }, }, @@ -10988,14 +11003,14 @@ var g = &grammar{ }, { name: "NonSuperscriptText", - pos: position{line: 1533, col: 1, offset: 56226}, + pos: position{line: 1539, col: 1, offset: 56375}, expr: &actionExpr{ - pos: position{line: 1533, col: 23, offset: 56248}, + pos: position{line: 1539, col: 23, offset: 56397}, run: (*parser).callonNonSuperscriptText1, expr: &oneOrMoreExpr{ - pos: position{line: 1533, col: 23, offset: 56248}, + pos: position{line: 1539, col: 23, offset: 56397}, expr: &charClassMatcher{ - pos: position{line: 1533, col: 23, offset: 56248}, + pos: position{line: 1539, col: 23, offset: 56397}, val: "[^\\r\\n ^]", chars: []rune{'\r', '\n', ' ', '^'}, ignoreCase: false, @@ -11006,37 +11021,37 @@ var g = &grammar{ }, { name: "EscapedSuperscriptText", - pos: position{line: 1537, col: 1, offset: 56325}, + pos: position{line: 1543, col: 1, offset: 56474}, expr: &actionExpr{ - pos: position{line: 1537, col: 27, offset: 56351}, + pos: position{line: 1543, col: 27, offset: 56500}, run: (*parser).callonEscapedSuperscriptText1, expr: &seqExpr{ - pos: position{line: 1537, col: 27, offset: 56351}, + pos: position{line: 1543, col: 27, offset: 56500}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1537, col: 27, offset: 56351}, + pos: position{line: 1543, col: 27, offset: 56500}, label: "backslashes", expr: &ruleRefExpr{ - pos: position{line: 1537, col: 40, offset: 56364}, + pos: position{line: 1543, col: 40, offset: 56513}, name: "OneOrMoreBackslashes", }, }, &litMatcher{ - pos: position{line: 1537, col: 62, offset: 56386}, + pos: position{line: 1543, col: 62, offset: 56535}, val: "^", ignoreCase: false, want: "\"^\"", }, &labeledExpr{ - pos: position{line: 1537, col: 66, offset: 56390}, + pos: position{line: 1543, col: 66, offset: 56539}, label: "element", expr: &ruleRefExpr{ - pos: position{line: 1537, col: 75, offset: 56399}, + pos: position{line: 1543, col: 75, offset: 56548}, name: "SuperscriptTextElement", }, }, &litMatcher{ - pos: position{line: 1537, col: 99, offset: 56423}, + pos: position{line: 1543, col: 99, offset: 56572}, val: "^", ignoreCase: false, want: "\"^\"", @@ -11047,20 +11062,20 @@ var g = &grammar{ }, { name: "InlinePassthrough", - pos: position{line: 1544, col: 1, offset: 56665}, + pos: position{line: 1550, col: 1, offset: 56814}, expr: &choiceExpr{ - pos: position{line: 1544, col: 22, offset: 56686}, + pos: position{line: 1550, col: 22, offset: 56835}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1544, col: 22, offset: 56686}, + pos: position{line: 1550, col: 22, offset: 56835}, name: "TriplePlusPassthrough", }, &ruleRefExpr{ - pos: position{line: 1544, col: 46, offset: 56710}, + pos: position{line: 1550, col: 46, offset: 56859}, name: "SinglePlusPassthrough", }, &ruleRefExpr{ - pos: position{line: 1544, col: 70, offset: 56734}, + pos: position{line: 1550, col: 70, offset: 56883}, name: "PassthroughMacro", }, }, @@ -11068,9 +11083,9 @@ var g = &grammar{ }, { name: "SinglePlusPassthroughPrefix", - pos: position{line: 1546, col: 1, offset: 56752}, + pos: position{line: 1552, col: 1, offset: 56901}, expr: &litMatcher{ - pos: position{line: 1546, col: 32, offset: 56783}, + pos: position{line: 1552, col: 32, offset: 56932}, val: "+", ignoreCase: false, want: "\"+\"", @@ -11078,33 +11093,33 @@ var g = &grammar{ }, { name: "SinglePlusPassthrough", - pos: position{line: 1548, col: 1, offset: 56788}, + pos: position{line: 1554, col: 1, offset: 56937}, expr: &actionExpr{ - pos: position{line: 1548, col: 26, offset: 56813}, + pos: position{line: 1554, col: 26, offset: 56962}, run: (*parser).callonSinglePlusPassthrough1, expr: &seqExpr{ - pos: position{line: 1548, col: 26, offset: 56813}, + pos: position{line: 1554, col: 26, offset: 56962}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1548, col: 26, offset: 56813}, + pos: position{line: 1554, col: 26, offset: 56962}, name: "SinglePlusPassthroughPrefix", }, &labeledExpr{ - pos: position{line: 1548, col: 54, offset: 56841}, + pos: position{line: 1554, col: 54, offset: 56990}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1548, col: 63, offset: 56850}, + pos: position{line: 1554, col: 63, offset: 56999}, name: "SinglePlusPassthroughContent", }, }, &ruleRefExpr{ - pos: position{line: 1548, col: 93, offset: 56880}, + pos: position{line: 1554, col: 93, offset: 57029}, name: "SinglePlusPassthroughPrefix", }, ¬Expr{ - pos: position{line: 1548, col: 121, offset: 56908}, + pos: position{line: 1554, col: 121, offset: 57057}, expr: &ruleRefExpr{ - pos: position{line: 1548, col: 122, offset: 56909}, + pos: position{line: 1554, col: 122, offset: 57058}, name: "Alphanum", }, }, @@ -11114,85 +11129,85 @@ var g = &grammar{ }, { name: "SinglePlusPassthroughContent", - pos: position{line: 1552, col: 1, offset: 57014}, + pos: position{line: 1558, col: 1, offset: 57163}, expr: &choiceExpr{ - pos: position{line: 1552, col: 33, offset: 57046}, + pos: position{line: 1558, col: 33, offset: 57195}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1552, col: 34, offset: 57047}, + pos: position{line: 1558, col: 34, offset: 57196}, run: (*parser).callonSinglePlusPassthroughContent2, expr: &seqExpr{ - pos: position{line: 1552, col: 34, offset: 57047}, + pos: position{line: 1558, col: 34, offset: 57196}, exprs: []interface{}{ &seqExpr{ - pos: position{line: 1552, col: 35, offset: 57048}, + pos: position{line: 1558, col: 35, offset: 57197}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1552, col: 35, offset: 57048}, + pos: position{line: 1558, col: 35, offset: 57197}, expr: &ruleRefExpr{ - pos: position{line: 1552, col: 36, offset: 57049}, + pos: position{line: 1558, col: 36, offset: 57198}, name: "SinglePlusPassthroughPrefix", }, }, ¬Expr{ - pos: position{line: 1552, col: 64, offset: 57077}, + pos: position{line: 1558, col: 64, offset: 57226}, expr: &ruleRefExpr{ - pos: position{line: 1552, col: 65, offset: 57078}, + pos: position{line: 1558, col: 65, offset: 57227}, name: "Space", }, }, ¬Expr{ - pos: position{line: 1552, col: 71, offset: 57084}, + pos: position{line: 1558, col: 71, offset: 57233}, expr: &ruleRefExpr{ - pos: position{line: 1552, col: 72, offset: 57085}, + pos: position{line: 1558, col: 72, offset: 57234}, name: "Newline", }, }, &anyMatcher{ - line: 1552, col: 80, offset: 57093, + line: 1558, col: 80, offset: 57242, }, }, }, &zeroOrMoreExpr{ - pos: position{line: 1552, col: 83, offset: 57096}, + pos: position{line: 1558, col: 83, offset: 57245}, expr: &seqExpr{ - pos: position{line: 1552, col: 84, offset: 57097}, + pos: position{line: 1558, col: 84, offset: 57246}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1552, col: 84, offset: 57097}, + pos: position{line: 1558, col: 84, offset: 57246}, expr: &seqExpr{ - pos: position{line: 1552, col: 86, offset: 57099}, + pos: position{line: 1558, col: 86, offset: 57248}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 1552, col: 86, offset: 57099}, + pos: position{line: 1558, col: 86, offset: 57248}, expr: &ruleRefExpr{ - pos: position{line: 1552, col: 86, offset: 57099}, + pos: position{line: 1558, col: 86, offset: 57248}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1552, col: 93, offset: 57106}, + pos: position{line: 1558, col: 93, offset: 57255}, name: "SinglePlusPassthroughPrefix", }, }, }, }, ¬Expr{ - pos: position{line: 1552, col: 122, offset: 57135}, + pos: position{line: 1558, col: 122, offset: 57284}, expr: &ruleRefExpr{ - pos: position{line: 1552, col: 123, offset: 57136}, + pos: position{line: 1558, col: 123, offset: 57285}, name: "SinglePlusPassthroughPrefix", }, }, ¬Expr{ - pos: position{line: 1552, col: 151, offset: 57164}, + pos: position{line: 1558, col: 151, offset: 57313}, expr: &ruleRefExpr{ - pos: position{line: 1552, col: 152, offset: 57165}, + pos: position{line: 1558, col: 152, offset: 57314}, name: "Newline", }, }, &anyMatcher{ - line: 1552, col: 160, offset: 57173, + line: 1558, col: 160, offset: 57322, }, }, }, @@ -11201,34 +11216,34 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1554, col: 7, offset: 57315}, + pos: position{line: 1560, col: 7, offset: 57464}, run: (*parser).callonSinglePlusPassthroughContent24, expr: &seqExpr{ - pos: position{line: 1554, col: 8, offset: 57316}, + pos: position{line: 1560, col: 8, offset: 57465}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1554, col: 8, offset: 57316}, + pos: position{line: 1560, col: 8, offset: 57465}, expr: &ruleRefExpr{ - pos: position{line: 1554, col: 9, offset: 57317}, + pos: position{line: 1560, col: 9, offset: 57466}, name: "Space", }, }, ¬Expr{ - pos: position{line: 1554, col: 15, offset: 57323}, + pos: position{line: 1560, col: 15, offset: 57472}, expr: &ruleRefExpr{ - pos: position{line: 1554, col: 16, offset: 57324}, + pos: position{line: 1560, col: 16, offset: 57473}, name: "Newline", }, }, ¬Expr{ - pos: position{line: 1554, col: 24, offset: 57332}, + pos: position{line: 1560, col: 24, offset: 57481}, expr: &ruleRefExpr{ - pos: position{line: 1554, col: 25, offset: 57333}, + pos: position{line: 1560, col: 25, offset: 57482}, name: "SinglePlusPassthroughPrefix", }, }, &anyMatcher{ - line: 1554, col: 53, offset: 57361, + line: 1560, col: 53, offset: 57510, }, }, }, @@ -11238,9 +11253,9 @@ var g = &grammar{ }, { name: "TriplePlusPassthroughPrefix", - pos: position{line: 1558, col: 1, offset: 57443}, + pos: position{line: 1564, col: 1, offset: 57592}, expr: &litMatcher{ - pos: position{line: 1558, col: 32, offset: 57474}, + pos: position{line: 1564, col: 32, offset: 57623}, val: "+++", ignoreCase: false, want: "\"+++\"", @@ -11248,33 +11263,33 @@ var g = &grammar{ }, { name: "TriplePlusPassthrough", - pos: position{line: 1560, col: 1, offset: 57481}, + pos: position{line: 1566, col: 1, offset: 57630}, expr: &actionExpr{ - pos: position{line: 1560, col: 26, offset: 57506}, + pos: position{line: 1566, col: 26, offset: 57655}, run: (*parser).callonTriplePlusPassthrough1, expr: &seqExpr{ - pos: position{line: 1560, col: 26, offset: 57506}, + pos: position{line: 1566, col: 26, offset: 57655}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1560, col: 26, offset: 57506}, + pos: position{line: 1566, col: 26, offset: 57655}, name: "TriplePlusPassthroughPrefix", }, &labeledExpr{ - pos: position{line: 1560, col: 54, offset: 57534}, + pos: position{line: 1566, col: 54, offset: 57683}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1560, col: 63, offset: 57543}, + pos: position{line: 1566, col: 63, offset: 57692}, name: "TriplePlusPassthroughContent", }, }, &ruleRefExpr{ - pos: position{line: 1560, col: 93, offset: 57573}, + pos: position{line: 1566, col: 93, offset: 57722}, name: "TriplePlusPassthroughPrefix", }, ¬Expr{ - pos: position{line: 1560, col: 121, offset: 57601}, + pos: position{line: 1566, col: 121, offset: 57750}, expr: &ruleRefExpr{ - pos: position{line: 1560, col: 122, offset: 57602}, + pos: position{line: 1566, col: 122, offset: 57751}, name: "Alphanum", }, }, @@ -11284,63 +11299,63 @@ var g = &grammar{ }, { name: "TriplePlusPassthroughContent", - pos: position{line: 1564, col: 1, offset: 57707}, + pos: position{line: 1570, col: 1, offset: 57856}, expr: &choiceExpr{ - pos: position{line: 1564, col: 33, offset: 57739}, + pos: position{line: 1570, col: 33, offset: 57888}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1564, col: 34, offset: 57740}, + pos: position{line: 1570, col: 34, offset: 57889}, run: (*parser).callonTriplePlusPassthroughContent2, expr: &zeroOrMoreExpr{ - pos: position{line: 1564, col: 34, offset: 57740}, + pos: position{line: 1570, col: 34, offset: 57889}, expr: &seqExpr{ - pos: position{line: 1564, col: 35, offset: 57741}, + pos: position{line: 1570, col: 35, offset: 57890}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1564, col: 35, offset: 57741}, + pos: position{line: 1570, col: 35, offset: 57890}, expr: &ruleRefExpr{ - pos: position{line: 1564, col: 36, offset: 57742}, + pos: position{line: 1570, col: 36, offset: 57891}, name: "TriplePlusPassthroughPrefix", }, }, &anyMatcher{ - line: 1564, col: 64, offset: 57770, + line: 1570, col: 64, offset: 57919, }, }, }, }, }, &actionExpr{ - pos: position{line: 1566, col: 7, offset: 57935}, + pos: position{line: 1572, col: 7, offset: 58084}, run: (*parser).callonTriplePlusPassthroughContent8, expr: &zeroOrOneExpr{ - pos: position{line: 1566, col: 7, offset: 57935}, + pos: position{line: 1572, col: 7, offset: 58084}, expr: &seqExpr{ - pos: position{line: 1566, col: 8, offset: 57936}, + pos: position{line: 1572, col: 8, offset: 58085}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1566, col: 8, offset: 57936}, + pos: position{line: 1572, col: 8, offset: 58085}, expr: &ruleRefExpr{ - pos: position{line: 1566, col: 9, offset: 57937}, + pos: position{line: 1572, col: 9, offset: 58086}, name: "Space", }, }, ¬Expr{ - pos: position{line: 1566, col: 15, offset: 57943}, + pos: position{line: 1572, col: 15, offset: 58092}, expr: &ruleRefExpr{ - pos: position{line: 1566, col: 16, offset: 57944}, + pos: position{line: 1572, col: 16, offset: 58093}, name: "Newline", }, }, ¬Expr{ - pos: position{line: 1566, col: 24, offset: 57952}, + pos: position{line: 1572, col: 24, offset: 58101}, expr: &ruleRefExpr{ - pos: position{line: 1566, col: 25, offset: 57953}, + pos: position{line: 1572, col: 25, offset: 58102}, name: "TriplePlusPassthroughPrefix", }, }, &anyMatcher{ - line: 1566, col: 53, offset: 57981, + line: 1572, col: 53, offset: 58130, }, }, }, @@ -11351,35 +11366,35 @@ var g = &grammar{ }, { name: "PassthroughMacro", - pos: position{line: 1570, col: 1, offset: 58064}, + pos: position{line: 1576, col: 1, offset: 58213}, expr: &choiceExpr{ - pos: position{line: 1570, col: 21, offset: 58084}, + pos: position{line: 1576, col: 21, offset: 58233}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1570, col: 21, offset: 58084}, + pos: position{line: 1576, col: 21, offset: 58233}, run: (*parser).callonPassthroughMacro2, expr: &seqExpr{ - pos: position{line: 1570, col: 21, offset: 58084}, + pos: position{line: 1576, col: 21, offset: 58233}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1570, col: 21, offset: 58084}, + pos: position{line: 1576, col: 21, offset: 58233}, val: "pass:[", ignoreCase: false, want: "\"pass:[\"", }, &labeledExpr{ - pos: position{line: 1570, col: 30, offset: 58093}, + pos: position{line: 1576, col: 30, offset: 58242}, label: "content", expr: &zeroOrMoreExpr{ - pos: position{line: 1570, col: 38, offset: 58101}, + pos: position{line: 1576, col: 38, offset: 58250}, expr: &ruleRefExpr{ - pos: position{line: 1570, col: 39, offset: 58102}, + pos: position{line: 1576, col: 39, offset: 58251}, name: "PassthroughMacroCharacter", }, }, }, &litMatcher{ - pos: position{line: 1570, col: 67, offset: 58130}, + pos: position{line: 1576, col: 67, offset: 58279}, val: "]", ignoreCase: false, want: "\"]\"", @@ -11388,31 +11403,31 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1572, col: 5, offset: 58226}, + pos: position{line: 1578, col: 5, offset: 58375}, run: (*parser).callonPassthroughMacro9, expr: &seqExpr{ - pos: position{line: 1572, col: 5, offset: 58226}, + pos: position{line: 1578, col: 5, offset: 58375}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1572, col: 5, offset: 58226}, + pos: position{line: 1578, col: 5, offset: 58375}, val: "pass:q[", ignoreCase: false, want: "\"pass:q[\"", }, &labeledExpr{ - pos: position{line: 1572, col: 15, offset: 58236}, + pos: position{line: 1578, col: 15, offset: 58385}, label: "content", expr: &zeroOrMoreExpr{ - pos: position{line: 1572, col: 23, offset: 58244}, + pos: position{line: 1578, col: 23, offset: 58393}, expr: &choiceExpr{ - pos: position{line: 1572, col: 24, offset: 58245}, + pos: position{line: 1578, col: 24, offset: 58394}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1572, col: 24, offset: 58245}, + pos: position{line: 1578, col: 24, offset: 58394}, name: "QuotedText", }, &ruleRefExpr{ - pos: position{line: 1572, col: 37, offset: 58258}, + pos: position{line: 1578, col: 37, offset: 58407}, name: "PassthroughMacroCharacter", }, }, @@ -11420,7 +11435,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 1572, col: 65, offset: 58286}, + pos: position{line: 1578, col: 65, offset: 58435}, val: "]", ignoreCase: false, want: "\"]\"", @@ -11433,12 +11448,12 @@ var g = &grammar{ }, { name: "PassthroughMacroCharacter", - pos: position{line: 1576, col: 1, offset: 58382}, + pos: position{line: 1582, col: 1, offset: 58531}, expr: &actionExpr{ - pos: position{line: 1576, col: 30, offset: 58411}, + pos: position{line: 1582, col: 30, offset: 58560}, run: (*parser).callonPassthroughMacroCharacter1, expr: &charClassMatcher{ - pos: position{line: 1576, col: 30, offset: 58411}, + pos: position{line: 1582, col: 30, offset: 58560}, val: "[^\\]]", chars: []rune{']'}, ignoreCase: false, @@ -11448,16 +11463,16 @@ var g = &grammar{ }, { name: "CrossReference", - pos: position{line: 1583, col: 1, offset: 58584}, + pos: position{line: 1589, col: 1, offset: 58733}, expr: &choiceExpr{ - pos: position{line: 1583, col: 19, offset: 58602}, + pos: position{line: 1589, col: 19, offset: 58751}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1583, col: 19, offset: 58602}, + pos: position{line: 1589, col: 19, offset: 58751}, name: "InternalCrossReference", }, &ruleRefExpr{ - pos: position{line: 1583, col: 44, offset: 58627}, + pos: position{line: 1589, col: 44, offset: 58776}, name: "ExternalCrossReference", }, }, @@ -11465,53 +11480,53 @@ var g = &grammar{ }, { name: "InternalCrossReference", - pos: position{line: 1585, col: 1, offset: 58652}, + pos: position{line: 1591, col: 1, offset: 58801}, expr: &choiceExpr{ - pos: position{line: 1585, col: 27, offset: 58678}, + pos: position{line: 1591, col: 27, offset: 58827}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1585, col: 27, offset: 58678}, + pos: position{line: 1591, col: 27, offset: 58827}, run: (*parser).callonInternalCrossReference2, expr: &seqExpr{ - pos: position{line: 1585, col: 27, offset: 58678}, + pos: position{line: 1591, col: 27, offset: 58827}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1585, col: 27, offset: 58678}, + pos: position{line: 1591, col: 27, offset: 58827}, val: "<<", ignoreCase: false, want: "\"<<\"", }, &labeledExpr{ - pos: position{line: 1585, col: 32, offset: 58683}, + pos: position{line: 1591, col: 32, offset: 58832}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 1585, col: 36, offset: 58687}, + pos: position{line: 1591, col: 36, offset: 58836}, name: "ID", }, }, &zeroOrMoreExpr{ - pos: position{line: 1585, col: 40, offset: 58691}, + pos: position{line: 1591, col: 40, offset: 58840}, expr: &ruleRefExpr{ - pos: position{line: 1585, col: 40, offset: 58691}, + pos: position{line: 1591, col: 40, offset: 58840}, name: "Space", }, }, &litMatcher{ - pos: position{line: 1585, col: 47, offset: 58698}, + pos: position{line: 1591, col: 47, offset: 58847}, val: ",", ignoreCase: false, want: "\",\"", }, &labeledExpr{ - pos: position{line: 1585, col: 51, offset: 58702}, + pos: position{line: 1591, col: 51, offset: 58851}, label: "label", expr: &ruleRefExpr{ - pos: position{line: 1585, col: 58, offset: 58709}, + pos: position{line: 1591, col: 58, offset: 58858}, name: "CrossReferenceLabel", }, }, &litMatcher{ - pos: position{line: 1585, col: 79, offset: 58730}, + pos: position{line: 1591, col: 79, offset: 58879}, val: ">>", ignoreCase: false, want: "\">>\"", @@ -11520,27 +11535,27 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1587, col: 5, offset: 58813}, + pos: position{line: 1593, col: 5, offset: 58962}, run: (*parser).callonInternalCrossReference13, expr: &seqExpr{ - pos: position{line: 1587, col: 5, offset: 58813}, + pos: position{line: 1593, col: 5, offset: 58962}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1587, col: 5, offset: 58813}, + pos: position{line: 1593, col: 5, offset: 58962}, val: "<<", ignoreCase: false, want: "\"<<\"", }, &labeledExpr{ - pos: position{line: 1587, col: 10, offset: 58818}, + pos: position{line: 1593, col: 10, offset: 58967}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 1587, col: 14, offset: 58822}, + pos: position{line: 1593, col: 14, offset: 58971}, name: "ID", }, }, &litMatcher{ - pos: position{line: 1587, col: 18, offset: 58826}, + pos: position{line: 1593, col: 18, offset: 58975}, val: ">>", ignoreCase: false, want: "\">>\"", @@ -11553,32 +11568,32 @@ var g = &grammar{ }, { name: "ExternalCrossReference", - pos: position{line: 1591, col: 1, offset: 58898}, + pos: position{line: 1597, col: 1, offset: 59047}, expr: &actionExpr{ - pos: position{line: 1591, col: 27, offset: 58924}, + pos: position{line: 1597, col: 27, offset: 59073}, run: (*parser).callonExternalCrossReference1, expr: &seqExpr{ - pos: position{line: 1591, col: 27, offset: 58924}, + pos: position{line: 1597, col: 27, offset: 59073}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1591, col: 27, offset: 58924}, + pos: position{line: 1597, col: 27, offset: 59073}, val: "xref:", ignoreCase: false, want: "\"xref:\"", }, &labeledExpr{ - pos: position{line: 1591, col: 35, offset: 58932}, + pos: position{line: 1597, col: 35, offset: 59081}, label: "url", expr: &ruleRefExpr{ - pos: position{line: 1591, col: 40, offset: 58937}, + pos: position{line: 1597, col: 40, offset: 59086}, name: "FileLocation", }, }, &labeledExpr{ - pos: position{line: 1591, col: 54, offset: 58951}, + pos: position{line: 1597, col: 54, offset: 59100}, label: "inlineAttributes", expr: &ruleRefExpr{ - pos: position{line: 1591, col: 72, offset: 58969}, + pos: position{line: 1597, col: 72, offset: 59118}, name: "LinkAttributes", }, }, @@ -11588,24 +11603,24 @@ var g = &grammar{ }, { name: "CrossReferenceLabel", - pos: position{line: 1595, col: 1, offset: 59092}, + pos: position{line: 1601, col: 1, offset: 59241}, expr: &ruleRefExpr{ - pos: position{line: 1595, col: 24, offset: 59115}, + pos: position{line: 1601, col: 24, offset: 59264}, name: "ElementTitleContent", }, }, { name: "Link", - pos: position{line: 1600, col: 1, offset: 59237}, + pos: position{line: 1606, col: 1, offset: 59386}, expr: &choiceExpr{ - pos: position{line: 1600, col: 9, offset: 59245}, + pos: position{line: 1606, col: 9, offset: 59394}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1600, col: 9, offset: 59245}, + pos: position{line: 1606, col: 9, offset: 59394}, name: "RelativeLink", }, &ruleRefExpr{ - pos: position{line: 1600, col: 24, offset: 59260}, + pos: position{line: 1606, col: 24, offset: 59409}, name: "ExternalLink", }, }, @@ -11613,32 +11628,32 @@ var g = &grammar{ }, { name: "RelativeLink", - pos: position{line: 1603, col: 1, offset: 59341}, + pos: position{line: 1609, col: 1, offset: 59490}, expr: &actionExpr{ - pos: position{line: 1603, col: 17, offset: 59357}, + pos: position{line: 1609, col: 17, offset: 59506}, run: (*parser).callonRelativeLink1, expr: &seqExpr{ - pos: position{line: 1603, col: 17, offset: 59357}, + pos: position{line: 1609, col: 17, offset: 59506}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1603, col: 17, offset: 59357}, + pos: position{line: 1609, col: 17, offset: 59506}, val: "link:", ignoreCase: false, want: "\"link:\"", }, &labeledExpr{ - pos: position{line: 1603, col: 25, offset: 59365}, + pos: position{line: 1609, col: 25, offset: 59514}, label: "url", expr: &ruleRefExpr{ - pos: position{line: 1603, col: 30, offset: 59370}, + pos: position{line: 1609, col: 30, offset: 59519}, name: "Location", }, }, &labeledExpr{ - pos: position{line: 1603, col: 40, offset: 59380}, + pos: position{line: 1609, col: 40, offset: 59529}, label: "inlineAttributes", expr: &ruleRefExpr{ - pos: position{line: 1603, col: 58, offset: 59398}, + pos: position{line: 1609, col: 58, offset: 59547}, name: "LinkAttributes", }, }, @@ -11648,28 +11663,28 @@ var g = &grammar{ }, { name: "ExternalLink", - pos: position{line: 1607, col: 1, offset: 59509}, + pos: position{line: 1613, col: 1, offset: 59658}, expr: &actionExpr{ - pos: position{line: 1607, col: 17, offset: 59525}, + pos: position{line: 1613, col: 17, offset: 59674}, run: (*parser).callonExternalLink1, expr: &seqExpr{ - pos: position{line: 1607, col: 17, offset: 59525}, + pos: position{line: 1613, col: 17, offset: 59674}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1607, col: 17, offset: 59525}, + pos: position{line: 1613, col: 17, offset: 59674}, label: "url", expr: &ruleRefExpr{ - pos: position{line: 1607, col: 22, offset: 59530}, + pos: position{line: 1613, col: 22, offset: 59679}, name: "LocationWithScheme", }, }, &labeledExpr{ - pos: position{line: 1607, col: 42, offset: 59550}, + pos: position{line: 1613, col: 42, offset: 59699}, label: "inlineAttributes", expr: &zeroOrOneExpr{ - pos: position{line: 1607, col: 59, offset: 59567}, + pos: position{line: 1613, col: 59, offset: 59716}, expr: &ruleRefExpr{ - pos: position{line: 1607, col: 60, offset: 59568}, + pos: position{line: 1613, col: 60, offset: 59717}, name: "LinkAttributes", }, }, @@ -11680,50 +11695,50 @@ var g = &grammar{ }, { name: "LinkAttributes", - pos: position{line: 1611, col: 1, offset: 59661}, + pos: position{line: 1617, col: 1, offset: 59810}, expr: &actionExpr{ - pos: position{line: 1611, col: 19, offset: 59679}, + pos: position{line: 1617, col: 19, offset: 59828}, run: (*parser).callonLinkAttributes1, expr: &seqExpr{ - pos: position{line: 1611, col: 19, offset: 59679}, + pos: position{line: 1617, col: 19, offset: 59828}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1611, col: 19, offset: 59679}, + pos: position{line: 1617, col: 19, offset: 59828}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 1611, col: 23, offset: 59683}, + pos: position{line: 1617, col: 23, offset: 59832}, label: "firstAttr", expr: &zeroOrMoreExpr{ - pos: position{line: 1611, col: 33, offset: 59693}, + pos: position{line: 1617, col: 33, offset: 59842}, expr: &ruleRefExpr{ - pos: position{line: 1611, col: 34, offset: 59694}, + pos: position{line: 1617, col: 34, offset: 59843}, name: "FirstLinkAttributeElement", }, }, }, &zeroOrMoreExpr{ - pos: position{line: 1612, col: 5, offset: 59726}, + pos: position{line: 1618, col: 5, offset: 59875}, expr: &ruleRefExpr{ - pos: position{line: 1612, col: 5, offset: 59726}, + pos: position{line: 1618, col: 5, offset: 59875}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 1612, col: 12, offset: 59733}, + pos: position{line: 1618, col: 12, offset: 59882}, label: "otherattrs", expr: &zeroOrMoreExpr{ - pos: position{line: 1612, col: 23, offset: 59744}, + pos: position{line: 1618, col: 23, offset: 59893}, expr: &ruleRefExpr{ - pos: position{line: 1612, col: 24, offset: 59745}, + pos: position{line: 1618, col: 24, offset: 59894}, name: "GenericAttribute", }, }, }, &litMatcher{ - pos: position{line: 1612, col: 43, offset: 59764}, + pos: position{line: 1618, col: 43, offset: 59913}, val: "]", ignoreCase: false, want: "\"]\"", @@ -11734,46 +11749,46 @@ var g = &grammar{ }, { name: "FirstLinkAttributeElement", - pos: position{line: 1616, col: 1, offset: 59881}, + pos: position{line: 1622, col: 1, offset: 60030}, expr: &actionExpr{ - pos: position{line: 1616, col: 30, offset: 59910}, + pos: position{line: 1622, col: 30, offset: 60059}, run: (*parser).callonFirstLinkAttributeElement1, expr: &labeledExpr{ - pos: position{line: 1616, col: 30, offset: 59910}, + pos: position{line: 1622, col: 30, offset: 60059}, label: "element", expr: &choiceExpr{ - pos: position{line: 1618, col: 5, offset: 59961}, + pos: position{line: 1624, col: 5, offset: 60110}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1618, col: 6, offset: 59962}, + pos: position{line: 1624, col: 6, offset: 60111}, run: (*parser).callonFirstLinkAttributeElement4, expr: &seqExpr{ - pos: position{line: 1618, col: 6, offset: 59962}, + pos: position{line: 1624, col: 6, offset: 60111}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1618, col: 6, offset: 59962}, + pos: position{line: 1624, col: 6, offset: 60111}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, &labeledExpr{ - pos: position{line: 1618, col: 11, offset: 59967}, + pos: position{line: 1624, col: 11, offset: 60116}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 1618, col: 20, offset: 59976}, + pos: position{line: 1624, col: 20, offset: 60125}, expr: &choiceExpr{ - pos: position{line: 1618, col: 21, offset: 59977}, + pos: position{line: 1624, col: 21, offset: 60126}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1618, col: 21, offset: 59977}, + pos: position{line: 1624, col: 21, offset: 60126}, name: "QuotedString", }, &ruleRefExpr{ - pos: position{line: 1618, col: 36, offset: 59992}, + pos: position{line: 1624, col: 36, offset: 60141}, name: "QuotedText", }, &ruleRefExpr{ - pos: position{line: 1618, col: 49, offset: 60005}, + pos: position{line: 1624, col: 49, offset: 60154}, name: "QuotedAttributeChar", }, }, @@ -11781,17 +11796,17 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 1618, col: 71, offset: 60027}, + pos: position{line: 1624, col: 71, offset: 60176}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, &andExpr{ - pos: position{line: 1618, col: 76, offset: 60032}, + pos: position{line: 1624, col: 76, offset: 60181}, expr: ¬Expr{ - pos: position{line: 1618, col: 78, offset: 60034}, + pos: position{line: 1624, col: 78, offset: 60183}, expr: &litMatcher{ - pos: position{line: 1618, col: 79, offset: 60035}, + pos: position{line: 1624, col: 79, offset: 60184}, val: "=", ignoreCase: false, want: "\"=\"", @@ -11799,9 +11814,9 @@ var g = &grammar{ }, }, &zeroOrOneExpr{ - pos: position{line: 1618, col: 84, offset: 60040}, + pos: position{line: 1624, col: 84, offset: 60189}, expr: &litMatcher{ - pos: position{line: 1618, col: 84, offset: 60040}, + pos: position{line: 1624, col: 84, offset: 60189}, val: ",", ignoreCase: false, want: "\",\"", @@ -11811,29 +11826,29 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1622, col: 6, offset: 60167}, + pos: position{line: 1628, col: 6, offset: 60316}, run: (*parser).callonFirstLinkAttributeElement19, expr: &seqExpr{ - pos: position{line: 1622, col: 6, offset: 60167}, + pos: position{line: 1628, col: 6, offset: 60316}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1622, col: 6, offset: 60167}, + pos: position{line: 1628, col: 6, offset: 60316}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 1622, col: 15, offset: 60176}, + pos: position{line: 1628, col: 15, offset: 60325}, expr: &choiceExpr{ - pos: position{line: 1622, col: 16, offset: 60177}, + pos: position{line: 1628, col: 16, offset: 60326}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1622, col: 16, offset: 60177}, + pos: position{line: 1628, col: 16, offset: 60326}, name: "QuotedString", }, &ruleRefExpr{ - pos: position{line: 1622, col: 31, offset: 60192}, + pos: position{line: 1628, col: 31, offset: 60341}, name: "QuotedText", }, &ruleRefExpr{ - pos: position{line: 1622, col: 44, offset: 60205}, + pos: position{line: 1628, col: 44, offset: 60354}, name: "UnquotedAttributeChar", }, }, @@ -11841,11 +11856,11 @@ var g = &grammar{ }, }, &andExpr{ - pos: position{line: 1622, col: 68, offset: 60229}, + pos: position{line: 1628, col: 68, offset: 60378}, expr: ¬Expr{ - pos: position{line: 1622, col: 70, offset: 60231}, + pos: position{line: 1628, col: 70, offset: 60380}, expr: &litMatcher{ - pos: position{line: 1622, col: 71, offset: 60232}, + pos: position{line: 1628, col: 71, offset: 60381}, val: "=", ignoreCase: false, want: "\"=\"", @@ -11853,9 +11868,9 @@ var g = &grammar{ }, }, &zeroOrOneExpr{ - pos: position{line: 1622, col: 76, offset: 60237}, + pos: position{line: 1628, col: 76, offset: 60386}, expr: &litMatcher{ - pos: position{line: 1622, col: 76, offset: 60237}, + pos: position{line: 1628, col: 76, offset: 60386}, val: ",", ignoreCase: false, want: "\",\"", @@ -11871,12 +11886,12 @@ var g = &grammar{ }, { name: "AttributeChar", - pos: position{line: 1628, col: 1, offset: 60351}, + pos: position{line: 1634, col: 1, offset: 60500}, expr: &actionExpr{ - pos: position{line: 1628, col: 18, offset: 60368}, + pos: position{line: 1634, col: 18, offset: 60517}, run: (*parser).callonAttributeChar1, expr: &charClassMatcher{ - pos: position{line: 1628, col: 18, offset: 60368}, + pos: position{line: 1634, col: 18, offset: 60517}, val: "[^\\r\\n\"=\\],]", chars: []rune{'\r', '\n', '"', '=', ']', ','}, ignoreCase: false, @@ -11886,12 +11901,12 @@ var g = &grammar{ }, { name: "QuotedAttributeChar", - pos: position{line: 1632, col: 1, offset: 60454}, + pos: position{line: 1638, col: 1, offset: 60603}, expr: &actionExpr{ - pos: position{line: 1632, col: 24, offset: 60477}, + pos: position{line: 1638, col: 24, offset: 60626}, run: (*parser).callonQuotedAttributeChar1, expr: &charClassMatcher{ - pos: position{line: 1632, col: 24, offset: 60477}, + pos: position{line: 1638, col: 24, offset: 60626}, val: "[^\\r\\n\"=\\]]", chars: []rune{'\r', '\n', '"', '=', ']'}, ignoreCase: false, @@ -11901,12 +11916,12 @@ var g = &grammar{ }, { name: "UnquotedAttributeChar", - pos: position{line: 1636, col: 1, offset: 60570}, + pos: position{line: 1642, col: 1, offset: 60719}, expr: &actionExpr{ - pos: position{line: 1636, col: 26, offset: 60595}, + pos: position{line: 1642, col: 26, offset: 60744}, run: (*parser).callonUnquotedAttributeChar1, expr: &charClassMatcher{ - pos: position{line: 1636, col: 26, offset: 60595}, + pos: position{line: 1642, col: 26, offset: 60744}, val: "[^\\r\\n\"=\\],]", chars: []rune{'\r', '\n', '"', '=', ']', ','}, ignoreCase: false, @@ -11916,58 +11931,58 @@ var g = &grammar{ }, { name: "InlineLinks", - pos: position{line: 1641, col: 1, offset: 60751}, + pos: position{line: 1647, col: 1, offset: 60900}, expr: &actionExpr{ - pos: position{line: 1642, col: 5, offset: 60770}, + pos: position{line: 1648, col: 5, offset: 60919}, run: (*parser).callonInlineLinks1, expr: &seqExpr{ - pos: position{line: 1642, col: 5, offset: 60770}, + pos: position{line: 1648, col: 5, offset: 60919}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1642, col: 5, offset: 60770}, + pos: position{line: 1648, col: 5, offset: 60919}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 1642, col: 14, offset: 60779}, + pos: position{line: 1648, col: 14, offset: 60928}, expr: &choiceExpr{ - pos: position{line: 1642, col: 15, offset: 60780}, + pos: position{line: 1648, col: 15, offset: 60929}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1642, col: 15, offset: 60780}, + pos: position{line: 1648, col: 15, offset: 60929}, name: "Word", }, &ruleRefExpr{ - pos: position{line: 1643, col: 11, offset: 60795}, + pos: position{line: 1649, col: 11, offset: 60944}, name: "Symbol", }, &ruleRefExpr{ - pos: position{line: 1644, col: 11, offset: 60812}, + pos: position{line: 1650, col: 11, offset: 60961}, name: "SpecialCharacter", }, &oneOrMoreExpr{ - pos: position{line: 1645, col: 11, offset: 60839}, + pos: position{line: 1651, col: 11, offset: 60988}, expr: &ruleRefExpr{ - pos: position{line: 1645, col: 11, offset: 60839}, + pos: position{line: 1651, col: 11, offset: 60988}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1646, col: 11, offset: 60857}, + pos: position{line: 1652, col: 11, offset: 61006}, name: "ResolvedLink", }, &ruleRefExpr{ - pos: position{line: 1647, col: 11, offset: 60881}, + pos: position{line: 1653, col: 11, offset: 61030}, name: "Parenthesis", }, &ruleRefExpr{ - pos: position{line: 1648, col: 11, offset: 60903}, + pos: position{line: 1654, col: 11, offset: 61052}, name: "ImpliedApostrophe", }, &ruleRefExpr{ - pos: position{line: 1649, col: 11, offset: 60931}, + pos: position{line: 1655, col: 11, offset: 61080}, name: "AnyChar", }, &ruleRefExpr{ - pos: position{line: 1650, col: 11, offset: 60949}, + pos: position{line: 1656, col: 11, offset: 61098}, name: "Newline", }, }, @@ -11975,7 +11990,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1650, col: 21, offset: 60959}, + pos: position{line: 1656, col: 21, offset: 61108}, name: "EOF", }, }, @@ -11984,16 +11999,16 @@ var g = &grammar{ }, { name: "ResolvedLink", - pos: position{line: 1654, col: 1, offset: 61029}, + pos: position{line: 1660, col: 1, offset: 61178}, expr: &choiceExpr{ - pos: position{line: 1654, col: 17, offset: 61045}, + pos: position{line: 1660, col: 17, offset: 61194}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1654, col: 17, offset: 61045}, + pos: position{line: 1660, col: 17, offset: 61194}, name: "ResolvedRelativeLink", }, &ruleRefExpr{ - pos: position{line: 1654, col: 40, offset: 61068}, + pos: position{line: 1660, col: 40, offset: 61217}, name: "ResolvedExternalLink", }, }, @@ -12001,41 +12016,41 @@ var g = &grammar{ }, { name: "ResolvedRelativeLink", - pos: position{line: 1657, col: 1, offset: 61196}, + pos: position{line: 1663, col: 1, offset: 61345}, expr: &actionExpr{ - pos: position{line: 1657, col: 25, offset: 61220}, + pos: position{line: 1663, col: 25, offset: 61369}, run: (*parser).callonResolvedRelativeLink1, expr: &seqExpr{ - pos: position{line: 1657, col: 25, offset: 61220}, + pos: position{line: 1663, col: 25, offset: 61369}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1657, col: 25, offset: 61220}, + pos: position{line: 1663, col: 25, offset: 61369}, val: "link:", ignoreCase: false, want: "\"link:\"", }, &labeledExpr{ - pos: position{line: 1657, col: 33, offset: 61228}, + pos: position{line: 1663, col: 33, offset: 61377}, label: "url", expr: &choiceExpr{ - pos: position{line: 1657, col: 38, offset: 61233}, + pos: position{line: 1663, col: 38, offset: 61382}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1657, col: 38, offset: 61233}, + pos: position{line: 1663, col: 38, offset: 61382}, name: "ResolvedLocation", }, &ruleRefExpr{ - pos: position{line: 1657, col: 57, offset: 61252}, + pos: position{line: 1663, col: 57, offset: 61401}, name: "ResolvedFileLocation", }, }, }, }, &labeledExpr{ - pos: position{line: 1657, col: 79, offset: 61274}, + pos: position{line: 1663, col: 79, offset: 61423}, label: "inlineAttributes", expr: &ruleRefExpr{ - pos: position{line: 1657, col: 97, offset: 61292}, + pos: position{line: 1663, col: 97, offset: 61441}, name: "LinkAttributes", }, }, @@ -12045,28 +12060,28 @@ var g = &grammar{ }, { name: "ResolvedExternalLink", - pos: position{line: 1661, col: 1, offset: 61403}, + pos: position{line: 1667, col: 1, offset: 61552}, expr: &actionExpr{ - pos: position{line: 1661, col: 25, offset: 61427}, + pos: position{line: 1667, col: 25, offset: 61576}, run: (*parser).callonResolvedExternalLink1, expr: &seqExpr{ - pos: position{line: 1661, col: 25, offset: 61427}, + pos: position{line: 1667, col: 25, offset: 61576}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1661, col: 25, offset: 61427}, + pos: position{line: 1667, col: 25, offset: 61576}, label: "url", expr: &ruleRefExpr{ - pos: position{line: 1661, col: 30, offset: 61432}, + pos: position{line: 1667, col: 30, offset: 61581}, name: "ResolvedLocation", }, }, &labeledExpr{ - pos: position{line: 1661, col: 48, offset: 61450}, + pos: position{line: 1667, col: 48, offset: 61599}, label: "inlineAttributes", expr: &zeroOrOneExpr{ - pos: position{line: 1661, col: 65, offset: 61467}, + pos: position{line: 1667, col: 65, offset: 61616}, expr: &ruleRefExpr{ - pos: position{line: 1661, col: 66, offset: 61468}, + pos: position{line: 1667, col: 66, offset: 61617}, name: "LinkAttributes", }, }, @@ -12077,55 +12092,55 @@ var g = &grammar{ }, { name: "ImageBlock", - pos: position{line: 1668, col: 1, offset: 61663}, + pos: position{line: 1674, col: 1, offset: 61812}, expr: &actionExpr{ - pos: position{line: 1668, col: 15, offset: 61677}, + pos: position{line: 1674, col: 15, offset: 61826}, run: (*parser).callonImageBlock1, expr: &seqExpr{ - pos: position{line: 1668, col: 15, offset: 61677}, + pos: position{line: 1674, col: 15, offset: 61826}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1668, col: 15, offset: 61677}, + pos: position{line: 1674, col: 15, offset: 61826}, label: "attributes", expr: &zeroOrMoreExpr{ - pos: position{line: 1668, col: 26, offset: 61688}, + pos: position{line: 1674, col: 26, offset: 61837}, expr: &ruleRefExpr{ - pos: position{line: 1668, col: 27, offset: 61689}, + pos: position{line: 1674, col: 27, offset: 61838}, name: "BlockImageAttrs", }, }, }, &litMatcher{ - pos: position{line: 1668, col: 45, offset: 61707}, + pos: position{line: 1674, col: 45, offset: 61856}, val: "image::", ignoreCase: false, want: "\"image::\"", }, &labeledExpr{ - pos: position{line: 1668, col: 55, offset: 61717}, + pos: position{line: 1674, col: 55, offset: 61866}, label: "path", expr: &ruleRefExpr{ - pos: position{line: 1668, col: 61, offset: 61723}, + pos: position{line: 1674, col: 61, offset: 61872}, name: "Location", }, }, &labeledExpr{ - pos: position{line: 1668, col: 71, offset: 61733}, + pos: position{line: 1674, col: 71, offset: 61882}, label: "inlineAttrs", expr: &ruleRefExpr{ - pos: position{line: 1668, col: 84, offset: 61746}, + pos: position{line: 1674, col: 84, offset: 61895}, name: "InlineImageAttrs", }, }, &zeroOrMoreExpr{ - pos: position{line: 1668, col: 102, offset: 61764}, + pos: position{line: 1674, col: 102, offset: 61913}, expr: &ruleRefExpr{ - pos: position{line: 1668, col: 102, offset: 61764}, + pos: position{line: 1674, col: 102, offset: 61913}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1668, col: 109, offset: 61771}, + pos: position{line: 1674, col: 109, offset: 61920}, name: "EOL", }, }, @@ -12134,41 +12149,41 @@ var g = &grammar{ }, { name: "InlineImage", - pos: position{line: 1672, col: 1, offset: 61878}, + pos: position{line: 1678, col: 1, offset: 62027}, expr: &actionExpr{ - pos: position{line: 1672, col: 16, offset: 61893}, + pos: position{line: 1678, col: 16, offset: 62042}, run: (*parser).callonInlineImage1, expr: &seqExpr{ - pos: position{line: 1672, col: 16, offset: 61893}, + pos: position{line: 1678, col: 16, offset: 62042}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1672, col: 16, offset: 61893}, + pos: position{line: 1678, col: 16, offset: 62042}, val: "image:", ignoreCase: false, want: "\"image:\"", }, ¬Expr{ - pos: position{line: 1672, col: 25, offset: 61902}, + pos: position{line: 1678, col: 25, offset: 62051}, expr: &litMatcher{ - pos: position{line: 1672, col: 26, offset: 61903}, + pos: position{line: 1678, col: 26, offset: 62052}, val: ":", ignoreCase: false, want: "\":\"", }, }, &labeledExpr{ - pos: position{line: 1672, col: 30, offset: 61907}, + pos: position{line: 1678, col: 30, offset: 62056}, label: "path", expr: &ruleRefExpr{ - pos: position{line: 1672, col: 36, offset: 61913}, + pos: position{line: 1678, col: 36, offset: 62062}, name: "Location", }, }, &labeledExpr{ - pos: position{line: 1672, col: 46, offset: 61923}, + pos: position{line: 1678, col: 46, offset: 62072}, label: "inlineAttrs", expr: &ruleRefExpr{ - pos: position{line: 1672, col: 59, offset: 61936}, + pos: position{line: 1678, col: 59, offset: 62085}, name: "InlineImageAttrs", }, }, @@ -12178,53 +12193,53 @@ var g = &grammar{ }, { name: "InlineImageAttrs", - pos: position{line: 1676, col: 1, offset: 62046}, + pos: position{line: 1682, col: 1, offset: 62195}, expr: &actionExpr{ - pos: position{line: 1676, col: 21, offset: 62066}, + pos: position{line: 1682, col: 21, offset: 62215}, run: (*parser).callonInlineImageAttrs1, expr: &seqExpr{ - pos: position{line: 1676, col: 21, offset: 62066}, + pos: position{line: 1682, col: 21, offset: 62215}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1676, col: 21, offset: 62066}, + pos: position{line: 1682, col: 21, offset: 62215}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 1676, col: 25, offset: 62070}, + pos: position{line: 1682, col: 25, offset: 62219}, label: "alt", expr: &ruleRefExpr{ - pos: position{line: 1676, col: 29, offset: 62074}, + pos: position{line: 1682, col: 29, offset: 62223}, name: "ImageAltInline", }, }, &labeledExpr{ - pos: position{line: 1676, col: 44, offset: 62089}, + pos: position{line: 1682, col: 44, offset: 62238}, label: "w", expr: &ruleRefExpr{ - pos: position{line: 1676, col: 46, offset: 62091}, + pos: position{line: 1682, col: 46, offset: 62240}, name: "ImageWidth", }, }, &labeledExpr{ - pos: position{line: 1676, col: 57, offset: 62102}, + pos: position{line: 1682, col: 57, offset: 62251}, label: "h", expr: &ruleRefExpr{ - pos: position{line: 1676, col: 59, offset: 62104}, + pos: position{line: 1682, col: 59, offset: 62253}, name: "ImageHeight", }, }, &labeledExpr{ - pos: position{line: 1676, col: 71, offset: 62116}, + pos: position{line: 1682, col: 71, offset: 62265}, label: "nv", expr: &ruleRefExpr{ - pos: position{line: 1676, col: 74, offset: 62119}, + pos: position{line: 1682, col: 74, offset: 62268}, name: "NamedAttrs", }, }, &litMatcher{ - pos: position{line: 1676, col: 85, offset: 62130}, + pos: position{line: 1682, col: 85, offset: 62279}, val: "]", ignoreCase: false, want: "\"]\"", @@ -12235,20 +12250,20 @@ var g = &grammar{ }, { name: "BlockImageAttrs", - pos: position{line: 1680, col: 1, offset: 62192}, + pos: position{line: 1686, col: 1, offset: 62341}, expr: &choiceExpr{ - pos: position{line: 1680, col: 20, offset: 62211}, + pos: position{line: 1686, col: 20, offset: 62360}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1680, col: 20, offset: 62211}, + pos: position{line: 1686, col: 20, offset: 62360}, name: "ImageAttrList", }, &ruleRefExpr{ - pos: position{line: 1680, col: 36, offset: 62227}, + pos: position{line: 1686, col: 36, offset: 62376}, name: "ElementTitle", }, &ruleRefExpr{ - pos: position{line: 1680, col: 51, offset: 62242}, + pos: position{line: 1686, col: 51, offset: 62391}, name: "ElementID", }, }, @@ -12256,57 +12271,57 @@ var g = &grammar{ }, { name: "ImageAttrList", - pos: position{line: 1682, col: 1, offset: 62253}, + pos: position{line: 1688, col: 1, offset: 62402}, expr: &actionExpr{ - pos: position{line: 1682, col: 18, offset: 62270}, + pos: position{line: 1688, col: 18, offset: 62419}, run: (*parser).callonImageAttrList1, expr: &seqExpr{ - pos: position{line: 1682, col: 18, offset: 62270}, + pos: position{line: 1688, col: 18, offset: 62419}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1682, col: 18, offset: 62270}, + pos: position{line: 1688, col: 18, offset: 62419}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 1682, col: 22, offset: 62274}, + pos: position{line: 1688, col: 22, offset: 62423}, label: "attrs", expr: &seqExpr{ - pos: position{line: 1682, col: 29, offset: 62281}, + pos: position{line: 1688, col: 29, offset: 62430}, exprs: []interface{}{ &zeroOrOneExpr{ - pos: position{line: 1682, col: 29, offset: 62281}, + pos: position{line: 1688, col: 29, offset: 62430}, expr: &ruleRefExpr{ - pos: position{line: 1682, col: 29, offset: 62281}, + pos: position{line: 1688, col: 29, offset: 62430}, name: "ImageAltAttr", }, }, &zeroOrMoreExpr{ - pos: position{line: 1682, col: 43, offset: 62295}, + pos: position{line: 1688, col: 43, offset: 62444}, expr: &ruleRefExpr{ - pos: position{line: 1682, col: 43, offset: 62295}, + pos: position{line: 1688, col: 43, offset: 62444}, name: "ShortHandAttr", }, }, &zeroOrOneExpr{ - pos: position{line: 1682, col: 58, offset: 62310}, + pos: position{line: 1688, col: 58, offset: 62459}, expr: &ruleRefExpr{ - pos: position{line: 1682, col: 58, offset: 62310}, + pos: position{line: 1688, col: 58, offset: 62459}, name: "ImageWidthAttr", }, }, &zeroOrOneExpr{ - pos: position{line: 1682, col: 74, offset: 62326}, + pos: position{line: 1688, col: 74, offset: 62475}, expr: &ruleRefExpr{ - pos: position{line: 1682, col: 74, offset: 62326}, + pos: position{line: 1688, col: 74, offset: 62475}, name: "ImageHeightAttr", }, }, &zeroOrMoreExpr{ - pos: position{line: 1682, col: 91, offset: 62343}, + pos: position{line: 1688, col: 91, offset: 62492}, expr: &ruleRefExpr{ - pos: position{line: 1682, col: 91, offset: 62343}, + pos: position{line: 1688, col: 91, offset: 62492}, name: "NamedAttr", }, }, @@ -12314,20 +12329,20 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 1682, col: 103, offset: 62355}, + pos: position{line: 1688, col: 103, offset: 62504}, val: "]", ignoreCase: false, want: "\"]\"", }, &zeroOrMoreExpr{ - pos: position{line: 1682, col: 107, offset: 62359}, + pos: position{line: 1688, col: 107, offset: 62508}, expr: &ruleRefExpr{ - pos: position{line: 1682, col: 107, offset: 62359}, + pos: position{line: 1688, col: 107, offset: 62508}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1682, col: 114, offset: 62366}, + pos: position{line: 1688, col: 114, offset: 62515}, name: "EOL", }, }, @@ -12336,17 +12351,17 @@ var g = &grammar{ }, { name: "ImageAltInline", - pos: position{line: 1686, col: 1, offset: 62420}, + pos: position{line: 1692, col: 1, offset: 62569}, expr: &actionExpr{ - pos: position{line: 1686, col: 19, offset: 62438}, + pos: position{line: 1692, col: 19, offset: 62587}, run: (*parser).callonImageAltInline1, expr: &labeledExpr{ - pos: position{line: 1686, col: 19, offset: 62438}, + pos: position{line: 1692, col: 19, offset: 62587}, label: "value", expr: &zeroOrOneExpr{ - pos: position{line: 1686, col: 25, offset: 62444}, + pos: position{line: 1692, col: 25, offset: 62593}, expr: &ruleRefExpr{ - pos: position{line: 1686, col: 25, offset: 62444}, + pos: position{line: 1692, col: 25, offset: 62593}, name: "InlineVal", }, }, @@ -12355,29 +12370,29 @@ var g = &grammar{ }, { name: "ImageWidth", - pos: position{line: 1690, col: 1, offset: 62523}, + pos: position{line: 1696, col: 1, offset: 62672}, expr: &actionExpr{ - pos: position{line: 1690, col: 15, offset: 62537}, + pos: position{line: 1696, col: 15, offset: 62686}, run: (*parser).callonImageWidth1, expr: &seqExpr{ - pos: position{line: 1690, col: 15, offset: 62537}, + pos: position{line: 1696, col: 15, offset: 62686}, exprs: []interface{}{ &zeroOrOneExpr{ - pos: position{line: 1690, col: 15, offset: 62537}, + pos: position{line: 1696, col: 15, offset: 62686}, expr: &litMatcher{ - pos: position{line: 1690, col: 15, offset: 62537}, + pos: position{line: 1696, col: 15, offset: 62686}, val: ",", ignoreCase: false, want: "\",\"", }, }, &labeledExpr{ - pos: position{line: 1690, col: 20, offset: 62542}, + pos: position{line: 1696, col: 20, offset: 62691}, label: "value", expr: &zeroOrOneExpr{ - pos: position{line: 1690, col: 26, offset: 62548}, + pos: position{line: 1696, col: 26, offset: 62697}, expr: &ruleRefExpr{ - pos: position{line: 1690, col: 26, offset: 62548}, + pos: position{line: 1696, col: 26, offset: 62697}, name: "InlineVal", }, }, @@ -12388,29 +12403,29 @@ var g = &grammar{ }, { name: "ImageHeight", - pos: position{line: 1694, col: 1, offset: 62624}, + pos: position{line: 1700, col: 1, offset: 62773}, expr: &actionExpr{ - pos: position{line: 1694, col: 16, offset: 62639}, + pos: position{line: 1700, col: 16, offset: 62788}, run: (*parser).callonImageHeight1, expr: &seqExpr{ - pos: position{line: 1694, col: 16, offset: 62639}, + pos: position{line: 1700, col: 16, offset: 62788}, exprs: []interface{}{ &zeroOrOneExpr{ - pos: position{line: 1694, col: 16, offset: 62639}, + pos: position{line: 1700, col: 16, offset: 62788}, expr: &litMatcher{ - pos: position{line: 1694, col: 16, offset: 62639}, + pos: position{line: 1700, col: 16, offset: 62788}, val: ",", ignoreCase: false, want: "\",\"", }, }, &labeledExpr{ - pos: position{line: 1694, col: 21, offset: 62644}, + pos: position{line: 1700, col: 21, offset: 62793}, label: "value", expr: &zeroOrOneExpr{ - pos: position{line: 1694, col: 27, offset: 62650}, + pos: position{line: 1700, col: 27, offset: 62799}, expr: &ruleRefExpr{ - pos: position{line: 1694, col: 27, offset: 62650}, + pos: position{line: 1700, col: 27, offset: 62799}, name: "InlineVal", }, }, @@ -12421,32 +12436,32 @@ var g = &grammar{ }, { name: "ImageAltAttr", - pos: position{line: 1698, col: 1, offset: 62732}, + pos: position{line: 1704, col: 1, offset: 62881}, expr: &actionExpr{ - pos: position{line: 1698, col: 17, offset: 62748}, + pos: position{line: 1704, col: 17, offset: 62897}, run: (*parser).callonImageAltAttr1, expr: &seqExpr{ - pos: position{line: 1698, col: 17, offset: 62748}, + pos: position{line: 1704, col: 17, offset: 62897}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 1698, col: 17, offset: 62748}, + pos: position{line: 1704, col: 17, offset: 62897}, expr: &ruleRefExpr{ - pos: position{line: 1698, col: 17, offset: 62748}, + pos: position{line: 1704, col: 17, offset: 62897}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 1698, col: 24, offset: 62755}, + pos: position{line: 1704, col: 24, offset: 62904}, label: "value", expr: &ruleRefExpr{ - pos: position{line: 1698, col: 30, offset: 62761}, + pos: position{line: 1704, col: 30, offset: 62910}, name: "PositionalValue", }, }, &zeroOrMoreExpr{ - pos: position{line: 1698, col: 46, offset: 62777}, + pos: position{line: 1704, col: 46, offset: 62926}, expr: &ruleRefExpr{ - pos: position{line: 1698, col: 46, offset: 62777}, + pos: position{line: 1704, col: 46, offset: 62926}, name: "Space", }, }, @@ -12456,40 +12471,40 @@ var g = &grammar{ }, { name: "ImageWidthAttr", - pos: position{line: 1702, col: 1, offset: 62862}, + pos: position{line: 1708, col: 1, offset: 63011}, expr: &actionExpr{ - pos: position{line: 1702, col: 19, offset: 62880}, + pos: position{line: 1708, col: 19, offset: 63029}, run: (*parser).callonImageWidthAttr1, expr: &seqExpr{ - pos: position{line: 1702, col: 19, offset: 62880}, + pos: position{line: 1708, col: 19, offset: 63029}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 1702, col: 19, offset: 62880}, + pos: position{line: 1708, col: 19, offset: 63029}, expr: &ruleRefExpr{ - pos: position{line: 1702, col: 19, offset: 62880}, + pos: position{line: 1708, col: 19, offset: 63029}, name: "Space", }, }, &litMatcher{ - pos: position{line: 1702, col: 26, offset: 62887}, + pos: position{line: 1708, col: 26, offset: 63036}, val: ",", ignoreCase: false, want: "\",\"", }, &zeroOrMoreExpr{ - pos: position{line: 1702, col: 30, offset: 62891}, + pos: position{line: 1708, col: 30, offset: 63040}, expr: &ruleRefExpr{ - pos: position{line: 1702, col: 30, offset: 62891}, + pos: position{line: 1708, col: 30, offset: 63040}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 1702, col: 37, offset: 62898}, + pos: position{line: 1708, col: 37, offset: 63047}, label: "value", expr: &zeroOrOneExpr{ - pos: position{line: 1702, col: 43, offset: 62904}, + pos: position{line: 1708, col: 43, offset: 63053}, expr: &ruleRefExpr{ - pos: position{line: 1702, col: 43, offset: 62904}, + pos: position{line: 1708, col: 43, offset: 63053}, name: "PositionalValue", }, }, @@ -12500,40 +12515,40 @@ var g = &grammar{ }, { name: "ImageHeightAttr", - pos: position{line: 1709, col: 1, offset: 63048}, + pos: position{line: 1715, col: 1, offset: 63197}, expr: &actionExpr{ - pos: position{line: 1709, col: 20, offset: 63067}, + pos: position{line: 1715, col: 20, offset: 63216}, run: (*parser).callonImageHeightAttr1, expr: &seqExpr{ - pos: position{line: 1709, col: 20, offset: 63067}, + pos: position{line: 1715, col: 20, offset: 63216}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 1709, col: 20, offset: 63067}, + pos: position{line: 1715, col: 20, offset: 63216}, expr: &ruleRefExpr{ - pos: position{line: 1709, col: 20, offset: 63067}, + pos: position{line: 1715, col: 20, offset: 63216}, name: "Space", }, }, &litMatcher{ - pos: position{line: 1709, col: 27, offset: 63074}, + pos: position{line: 1715, col: 27, offset: 63223}, val: ",", ignoreCase: false, want: "\",\"", }, &zeroOrMoreExpr{ - pos: position{line: 1709, col: 31, offset: 63078}, + pos: position{line: 1715, col: 31, offset: 63227}, expr: &ruleRefExpr{ - pos: position{line: 1709, col: 31, offset: 63078}, + pos: position{line: 1715, col: 31, offset: 63227}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 1709, col: 38, offset: 63085}, + pos: position{line: 1715, col: 38, offset: 63234}, label: "value", expr: &zeroOrOneExpr{ - pos: position{line: 1709, col: 44, offset: 63091}, + pos: position{line: 1715, col: 44, offset: 63240}, expr: &ruleRefExpr{ - pos: position{line: 1709, col: 44, offset: 63091}, + pos: position{line: 1715, col: 44, offset: 63240}, name: "PositionalValue", }, }, @@ -12544,29 +12559,29 @@ var g = &grammar{ }, { name: "InlineIcon", - pos: position{line: 1720, col: 1, offset: 63434}, + pos: position{line: 1726, col: 1, offset: 63583}, expr: &actionExpr{ - pos: position{line: 1720, col: 15, offset: 63448}, + pos: position{line: 1726, col: 15, offset: 63597}, run: (*parser).callonInlineIcon1, expr: &seqExpr{ - pos: position{line: 1720, col: 15, offset: 63448}, + pos: position{line: 1726, col: 15, offset: 63597}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1720, col: 15, offset: 63448}, + pos: position{line: 1726, col: 15, offset: 63597}, val: "icon:", ignoreCase: false, want: "\"icon:\"", }, &labeledExpr{ - pos: position{line: 1720, col: 23, offset: 63456}, + pos: position{line: 1726, col: 23, offset: 63605}, label: "icon", expr: &actionExpr{ - pos: position{line: 1720, col: 29, offset: 63462}, + pos: position{line: 1726, col: 29, offset: 63611}, run: (*parser).callonInlineIcon5, expr: &oneOrMoreExpr{ - pos: position{line: 1720, col: 29, offset: 63462}, + pos: position{line: 1726, col: 29, offset: 63611}, expr: &charClassMatcher{ - pos: position{line: 1720, col: 29, offset: 63462}, + pos: position{line: 1726, col: 29, offset: 63611}, val: "[\\pL0-9_-]", chars: []rune{'_', '-'}, ranges: []rune{'0', '9'}, @@ -12578,10 +12593,10 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 1720, col: 73, offset: 63506}, + pos: position{line: 1726, col: 73, offset: 63655}, label: "attrs", expr: &ruleRefExpr{ - pos: position{line: 1720, col: 80, offset: 63513}, + pos: position{line: 1726, col: 80, offset: 63662}, name: "IconAttrs", }, }, @@ -12591,37 +12606,37 @@ var g = &grammar{ }, { name: "IconAttrs", - pos: position{line: 1724, col: 1, offset: 63595}, + pos: position{line: 1730, col: 1, offset: 63744}, expr: &actionExpr{ - pos: position{line: 1724, col: 14, offset: 63608}, + pos: position{line: 1730, col: 14, offset: 63757}, run: (*parser).callonIconAttrs1, expr: &seqExpr{ - pos: position{line: 1724, col: 14, offset: 63608}, + pos: position{line: 1730, col: 14, offset: 63757}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1724, col: 14, offset: 63608}, + pos: position{line: 1730, col: 14, offset: 63757}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 1724, col: 18, offset: 63612}, + pos: position{line: 1730, col: 18, offset: 63761}, label: "size", expr: &ruleRefExpr{ - pos: position{line: 1724, col: 23, offset: 63617}, + pos: position{line: 1730, col: 23, offset: 63766}, name: "IconSize", }, }, &labeledExpr{ - pos: position{line: 1724, col: 32, offset: 63626}, + pos: position{line: 1730, col: 32, offset: 63775}, label: "nv", expr: &ruleRefExpr{ - pos: position{line: 1724, col: 35, offset: 63629}, + pos: position{line: 1730, col: 35, offset: 63778}, name: "NamedAttrs", }, }, &litMatcher{ - pos: position{line: 1724, col: 46, offset: 63640}, + pos: position{line: 1730, col: 46, offset: 63789}, val: "]", ignoreCase: false, want: "\"]\"", @@ -12632,17 +12647,17 @@ var g = &grammar{ }, { name: "IconSize", - pos: position{line: 1728, col: 1, offset: 63697}, + pos: position{line: 1734, col: 1, offset: 63846}, expr: &actionExpr{ - pos: position{line: 1728, col: 13, offset: 63709}, + pos: position{line: 1734, col: 13, offset: 63858}, run: (*parser).callonIconSize1, expr: &labeledExpr{ - pos: position{line: 1728, col: 13, offset: 63709}, + pos: position{line: 1734, col: 13, offset: 63858}, label: "value", expr: &zeroOrOneExpr{ - pos: position{line: 1728, col: 19, offset: 63715}, + pos: position{line: 1734, col: 19, offset: 63864}, expr: &ruleRefExpr{ - pos: position{line: 1728, col: 19, offset: 63715}, + pos: position{line: 1734, col: 19, offset: 63864}, name: "InlineVal", }, }, @@ -12651,32 +12666,32 @@ var g = &grammar{ }, { name: "InlineFootnote", - pos: position{line: 1735, col: 1, offset: 63991}, + pos: position{line: 1741, col: 1, offset: 64140}, expr: &choiceExpr{ - pos: position{line: 1735, col: 19, offset: 64009}, + pos: position{line: 1741, col: 19, offset: 64158}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 1735, col: 19, offset: 64009}, + pos: position{line: 1741, col: 19, offset: 64158}, run: (*parser).callonInlineFootnote2, expr: &seqExpr{ - pos: position{line: 1735, col: 19, offset: 64009}, + pos: position{line: 1741, col: 19, offset: 64158}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1735, col: 19, offset: 64009}, + pos: position{line: 1741, col: 19, offset: 64158}, val: "footnote:[", ignoreCase: false, want: "\"footnote:[\"", }, &labeledExpr{ - pos: position{line: 1735, col: 32, offset: 64022}, + pos: position{line: 1741, col: 32, offset: 64171}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1735, col: 41, offset: 64031}, + pos: position{line: 1741, col: 41, offset: 64180}, name: "FootnoteContent", }, }, &litMatcher{ - pos: position{line: 1735, col: 58, offset: 64048}, + pos: position{line: 1741, col: 58, offset: 64197}, val: "]", ignoreCase: false, want: "\"]\"", @@ -12685,44 +12700,44 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1737, col: 5, offset: 64116}, + pos: position{line: 1743, col: 5, offset: 64265}, run: (*parser).callonInlineFootnote8, expr: &seqExpr{ - pos: position{line: 1737, col: 5, offset: 64116}, + pos: position{line: 1743, col: 5, offset: 64265}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1737, col: 5, offset: 64116}, + pos: position{line: 1743, col: 5, offset: 64265}, val: "footnote:", ignoreCase: false, want: "\"footnote:\"", }, &labeledExpr{ - pos: position{line: 1737, col: 17, offset: 64128}, + pos: position{line: 1743, col: 17, offset: 64277}, label: "ref", expr: &ruleRefExpr{ - pos: position{line: 1737, col: 22, offset: 64133}, + pos: position{line: 1743, col: 22, offset: 64282}, name: "FootnoteRef", }, }, &litMatcher{ - pos: position{line: 1737, col: 35, offset: 64146}, + pos: position{line: 1743, col: 35, offset: 64295}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 1737, col: 39, offset: 64150}, + pos: position{line: 1743, col: 39, offset: 64299}, label: "content", expr: &zeroOrOneExpr{ - pos: position{line: 1737, col: 47, offset: 64158}, + pos: position{line: 1743, col: 47, offset: 64307}, expr: &ruleRefExpr{ - pos: position{line: 1737, col: 48, offset: 64159}, + pos: position{line: 1743, col: 48, offset: 64308}, name: "FootnoteContent", }, }, }, &litMatcher{ - pos: position{line: 1737, col: 66, offset: 64177}, + pos: position{line: 1743, col: 66, offset: 64326}, val: "]", ignoreCase: false, want: "\"]\"", @@ -12735,37 +12750,37 @@ var g = &grammar{ }, { name: "FootnoteRef", - pos: position{line: 1741, col: 1, offset: 64238}, + pos: position{line: 1747, col: 1, offset: 64387}, expr: &ruleRefExpr{ - pos: position{line: 1741, col: 16, offset: 64253}, + pos: position{line: 1747, col: 16, offset: 64402}, name: "Alphanums", }, }, { name: "FootnoteContent", - pos: position{line: 1743, col: 1, offset: 64264}, + pos: position{line: 1749, col: 1, offset: 64413}, expr: &actionExpr{ - pos: position{line: 1743, col: 20, offset: 64283}, + pos: position{line: 1749, col: 20, offset: 64432}, run: (*parser).callonFootnoteContent1, expr: &labeledExpr{ - pos: position{line: 1743, col: 20, offset: 64283}, + pos: position{line: 1749, col: 20, offset: 64432}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 1743, col: 29, offset: 64292}, + pos: position{line: 1749, col: 29, offset: 64441}, expr: &seqExpr{ - pos: position{line: 1743, col: 30, offset: 64293}, + pos: position{line: 1749, col: 30, offset: 64442}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1743, col: 30, offset: 64293}, + pos: position{line: 1749, col: 30, offset: 64442}, expr: &litMatcher{ - pos: position{line: 1743, col: 31, offset: 64294}, + pos: position{line: 1749, col: 31, offset: 64443}, val: "]", ignoreCase: false, want: "\"]\"", }, }, &ruleRefExpr{ - pos: position{line: 1743, col: 35, offset: 64298}, + pos: position{line: 1749, col: 35, offset: 64447}, name: "InlineElement", }, }, @@ -12776,60 +12791,60 @@ var g = &grammar{ }, { name: "DelimitedBlock", - pos: position{line: 1750, col: 1, offset: 64622}, + pos: position{line: 1756, col: 1, offset: 64771}, expr: &actionExpr{ - pos: position{line: 1750, col: 19, offset: 64640}, + pos: position{line: 1756, col: 19, offset: 64789}, run: (*parser).callonDelimitedBlock1, expr: &seqExpr{ - pos: position{line: 1750, col: 19, offset: 64640}, + pos: position{line: 1756, col: 19, offset: 64789}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1750, col: 19, offset: 64640}, + pos: position{line: 1756, col: 19, offset: 64789}, expr: &ruleRefExpr{ - pos: position{line: 1750, col: 20, offset: 64641}, + pos: position{line: 1756, col: 20, offset: 64790}, name: "Alphanum", }, }, &labeledExpr{ - pos: position{line: 1751, col: 5, offset: 64729}, + pos: position{line: 1757, col: 5, offset: 64878}, label: "block", expr: &choiceExpr{ - pos: position{line: 1751, col: 12, offset: 64736}, + pos: position{line: 1757, col: 12, offset: 64885}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1751, col: 12, offset: 64736}, + pos: position{line: 1757, col: 12, offset: 64885}, name: "FencedBlock", }, &ruleRefExpr{ - pos: position{line: 1752, col: 11, offset: 64759}, + pos: position{line: 1758, col: 11, offset: 64908}, name: "ListingBlock", }, &ruleRefExpr{ - pos: position{line: 1753, col: 11, offset: 64783}, + pos: position{line: 1759, col: 11, offset: 64932}, name: "ExampleBlock", }, &ruleRefExpr{ - pos: position{line: 1754, col: 11, offset: 64807}, + pos: position{line: 1760, col: 11, offset: 64956}, name: "QuoteBlock", }, &ruleRefExpr{ - pos: position{line: 1755, col: 11, offset: 64828}, + pos: position{line: 1761, col: 11, offset: 64977}, name: "SidebarBlock", }, &ruleRefExpr{ - pos: position{line: 1756, col: 11, offset: 64851}, + pos: position{line: 1762, col: 11, offset: 65000}, name: "SingleLineComment", }, &ruleRefExpr{ - pos: position{line: 1757, col: 11, offset: 64879}, + pos: position{line: 1763, col: 11, offset: 65028}, name: "PassthroughBlock", }, &ruleRefExpr{ - pos: position{line: 1758, col: 11, offset: 64906}, + pos: position{line: 1764, col: 11, offset: 65055}, name: "Table", }, &ruleRefExpr{ - pos: position{line: 1759, col: 11, offset: 64922}, + pos: position{line: 1765, col: 11, offset: 65071}, name: "CommentBlock", }, }, @@ -12841,52 +12856,52 @@ var g = &grammar{ }, { name: "BlockDelimiter", - pos: position{line: 1763, col: 1, offset: 64963}, + pos: position{line: 1769, col: 1, offset: 65112}, expr: &choiceExpr{ - pos: position{line: 1763, col: 19, offset: 64981}, + pos: position{line: 1769, col: 19, offset: 65130}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 1763, col: 19, offset: 64981}, + pos: position{line: 1769, col: 19, offset: 65130}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1763, col: 19, offset: 64981}, + pos: position{line: 1769, col: 19, offset: 65130}, expr: &ruleRefExpr{ - pos: position{line: 1763, col: 21, offset: 64983}, + pos: position{line: 1769, col: 21, offset: 65132}, name: "Alphanum", }, }, &ruleRefExpr{ - pos: position{line: 1763, col: 31, offset: 64993}, + pos: position{line: 1769, col: 31, offset: 65142}, name: "LiteralBlockDelimiter", }, }, }, &ruleRefExpr{ - pos: position{line: 1764, col: 19, offset: 65064}, + pos: position{line: 1770, col: 19, offset: 65213}, name: "FencedBlockDelimiter", }, &ruleRefExpr{ - pos: position{line: 1765, col: 19, offset: 65104}, + pos: position{line: 1771, col: 19, offset: 65253}, name: "ListingBlockDelimiter", }, &ruleRefExpr{ - pos: position{line: 1766, col: 19, offset: 65145}, + pos: position{line: 1772, col: 19, offset: 65294}, name: "ExampleBlockDelimiter", }, &ruleRefExpr{ - pos: position{line: 1767, col: 19, offset: 65186}, + pos: position{line: 1773, col: 19, offset: 65335}, name: "CommentBlockDelimiter", }, &ruleRefExpr{ - pos: position{line: 1768, col: 19, offset: 65227}, + pos: position{line: 1774, col: 19, offset: 65376}, name: "QuoteBlockDelimiter", }, &ruleRefExpr{ - pos: position{line: 1769, col: 19, offset: 65265}, + pos: position{line: 1775, col: 19, offset: 65414}, name: "SidebarBlockDelimiter", }, &ruleRefExpr{ - pos: position{line: 1770, col: 19, offset: 65305}, + pos: position{line: 1776, col: 19, offset: 65454}, name: "PassthroughBlockDelimiter", }, }, @@ -12894,16 +12909,16 @@ var g = &grammar{ }, { name: "DelimitedBlockRawLine", - pos: position{line: 1772, col: 1, offset: 65332}, + pos: position{line: 1778, col: 1, offset: 65481}, expr: &choiceExpr{ - pos: position{line: 1772, col: 26, offset: 65357}, + pos: position{line: 1778, col: 26, offset: 65506}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1772, col: 26, offset: 65357}, + pos: position{line: 1778, col: 26, offset: 65506}, name: "FileInclusion", }, &ruleRefExpr{ - pos: position{line: 1772, col: 42, offset: 65373}, + pos: position{line: 1778, col: 42, offset: 65522}, name: "RawLine", }, }, @@ -12911,30 +12926,30 @@ var g = &grammar{ }, { name: "RawLine", - pos: position{line: 1774, col: 1, offset: 65382}, + pos: position{line: 1780, col: 1, offset: 65531}, expr: &actionExpr{ - pos: position{line: 1774, col: 12, offset: 65393}, + pos: position{line: 1780, col: 12, offset: 65542}, run: (*parser).callonRawLine1, expr: &seqExpr{ - pos: position{line: 1774, col: 12, offset: 65393}, + pos: position{line: 1780, col: 12, offset: 65542}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1774, col: 12, offset: 65393}, + pos: position{line: 1780, col: 12, offset: 65542}, expr: &ruleRefExpr{ - pos: position{line: 1774, col: 13, offset: 65394}, + pos: position{line: 1780, col: 13, offset: 65543}, name: "EOF", }, }, &labeledExpr{ - pos: position{line: 1774, col: 17, offset: 65398}, + pos: position{line: 1780, col: 17, offset: 65547}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1774, col: 26, offset: 65407}, + pos: position{line: 1780, col: 26, offset: 65556}, name: "RawLineContent", }, }, &ruleRefExpr{ - pos: position{line: 1774, col: 42, offset: 65423}, + pos: position{line: 1780, col: 42, offset: 65572}, name: "EOL", }, }, @@ -12943,14 +12958,14 @@ var g = &grammar{ }, { name: "RawLineContent", - pos: position{line: 1778, col: 1, offset: 65503}, + pos: position{line: 1784, col: 1, offset: 65652}, expr: &actionExpr{ - pos: position{line: 1778, col: 19, offset: 65521}, + pos: position{line: 1784, col: 19, offset: 65670}, run: (*parser).callonRawLineContent1, expr: &zeroOrMoreExpr{ - pos: position{line: 1778, col: 19, offset: 65521}, + pos: position{line: 1784, col: 19, offset: 65670}, expr: &charClassMatcher{ - pos: position{line: 1778, col: 19, offset: 65521}, + pos: position{line: 1784, col: 19, offset: 65670}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -12959,196 +12974,30 @@ var g = &grammar{ }, }, }, - { - name: "VerbatimContent", - pos: position{line: 1782, col: 1, offset: 65568}, - expr: &ruleRefExpr{ - pos: position{line: 1782, col: 20, offset: 65587}, - name: "VerbatimLine", - }, - }, - { - name: "VerbatimLine", - pos: position{line: 1784, col: 1, offset: 65601}, - expr: &actionExpr{ - pos: position{line: 1784, col: 17, offset: 65617}, - run: (*parser).callonVerbatimLine1, - expr: &seqExpr{ - pos: position{line: 1784, col: 17, offset: 65617}, - exprs: []interface{}{ - &labeledExpr{ - pos: position{line: 1784, col: 17, offset: 65617}, - label: "content", - expr: &ruleRefExpr{ - pos: position{line: 1784, col: 26, offset: 65626}, - name: "VerbatimLineContent", - }, - }, - &labeledExpr{ - pos: position{line: 1784, col: 47, offset: 65647}, - label: "callouts", - expr: &zeroOrOneExpr{ - pos: position{line: 1784, col: 56, offset: 65656}, - expr: &ruleRefExpr{ - pos: position{line: 1784, col: 57, offset: 65657}, - name: "Callouts", - }, - }, - }, - &ruleRefExpr{ - pos: position{line: 1784, col: 68, offset: 65668}, - name: "EOL", - }, - }, - }, - }, - }, - { - name: "VerbatimLineContent", - pos: position{line: 1788, col: 1, offset: 65738}, - expr: &actionExpr{ - pos: position{line: 1788, col: 24, offset: 65761}, - run: (*parser).callonVerbatimLineContent1, - expr: &zeroOrMoreExpr{ - pos: position{line: 1788, col: 24, offset: 65761}, - expr: &seqExpr{ - pos: position{line: 1788, col: 25, offset: 65762}, - exprs: []interface{}{ - ¬Expr{ - pos: position{line: 1788, col: 25, offset: 65762}, - expr: &ruleRefExpr{ - pos: position{line: 1788, col: 26, offset: 65763}, - name: "Callouts", - }, - }, - &choiceExpr{ - pos: position{line: 1788, col: 36, offset: 65773}, - alternatives: []interface{}{ - &oneOrMoreExpr{ - pos: position{line: 1788, col: 36, offset: 65773}, - expr: &ruleRefExpr{ - pos: position{line: 1788, col: 36, offset: 65773}, - name: "Space", - }, - }, - &oneOrMoreExpr{ - pos: position{line: 1788, col: 45, offset: 65782}, - expr: &charClassMatcher{ - pos: position{line: 1788, col: 45, offset: 65782}, - val: "[^ \\r\\n]", - chars: []rune{' ', '\r', '\n'}, - ignoreCase: false, - inverted: true, - }, - }, - }, - }, - }, - }, - }, - }, - }, - { - name: "Callouts", - pos: position{line: 1792, col: 1, offset: 65832}, - expr: &oneOrMoreExpr{ - pos: position{line: 1792, col: 13, offset: 65844}, - expr: &ruleRefExpr{ - pos: position{line: 1792, col: 13, offset: 65844}, - name: "Callout", - }, - }, - }, - { - name: "Callout", - pos: position{line: 1794, col: 1, offset: 65854}, - expr: &actionExpr{ - pos: position{line: 1794, col: 12, offset: 65865}, - run: (*parser).callonCallout1, - expr: &seqExpr{ - pos: position{line: 1794, col: 12, offset: 65865}, - exprs: []interface{}{ - &litMatcher{ - pos: position{line: 1794, col: 12, offset: 65865}, - val: "<", - ignoreCase: false, - want: "\"<\"", - }, - &labeledExpr{ - pos: position{line: 1794, col: 16, offset: 65869}, - label: "ref", - expr: &actionExpr{ - pos: position{line: 1794, col: 21, offset: 65874}, - run: (*parser).callonCallout5, - expr: &oneOrMoreExpr{ - pos: position{line: 1794, col: 21, offset: 65874}, - expr: &charClassMatcher{ - pos: position{line: 1794, col: 21, offset: 65874}, - val: "[0-9]", - ranges: []rune{'0', '9'}, - ignoreCase: false, - inverted: false, - }, - }, - }, - }, - &litMatcher{ - pos: position{line: 1794, col: 69, offset: 65922}, - val: ">", - ignoreCase: false, - want: "\">\"", - }, - &zeroOrMoreExpr{ - pos: position{line: 1794, col: 73, offset: 65926}, - expr: &ruleRefExpr{ - pos: position{line: 1794, col: 73, offset: 65926}, - name: "Space", - }, - }, - &andExpr{ - pos: position{line: 1794, col: 80, offset: 65933}, - expr: &choiceExpr{ - pos: position{line: 1794, col: 82, offset: 65935}, - alternatives: []interface{}{ - &ruleRefExpr{ - pos: position{line: 1794, col: 82, offset: 65935}, - name: "EOL", - }, - &ruleRefExpr{ - pos: position{line: 1794, col: 88, offset: 65941}, - name: "Callout", - }, - }, - }, - }, - }, - }, - }, - }, { name: "CalloutListItem", - pos: position{line: 1798, col: 1, offset: 65994}, + pos: position{line: 1788, col: 1, offset: 65717}, expr: &actionExpr{ - pos: position{line: 1798, col: 20, offset: 66013}, + pos: position{line: 1788, col: 20, offset: 65736}, run: (*parser).callonCalloutListItem1, expr: &seqExpr{ - pos: position{line: 1798, col: 20, offset: 66013}, + pos: position{line: 1788, col: 20, offset: 65736}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1798, col: 20, offset: 66013}, + pos: position{line: 1788, col: 20, offset: 65736}, label: "ref", expr: &ruleRefExpr{ - pos: position{line: 1798, col: 25, offset: 66018}, + pos: position{line: 1788, col: 25, offset: 65741}, name: "CalloutListItemPrefix", }, }, &labeledExpr{ - pos: position{line: 1798, col: 48, offset: 66041}, + pos: position{line: 1788, col: 48, offset: 65764}, label: "description", expr: &oneOrMoreExpr{ - pos: position{line: 1798, col: 61, offset: 66054}, + pos: position{line: 1788, col: 61, offset: 65777}, expr: &ruleRefExpr{ - pos: position{line: 1798, col: 61, offset: 66054}, + pos: position{line: 1788, col: 61, offset: 65777}, name: "ListParagraph", }, }, @@ -13159,29 +13008,29 @@ var g = &grammar{ }, { name: "CalloutListItemPrefix", - pos: position{line: 1802, col: 1, offset: 66151}, + pos: position{line: 1792, col: 1, offset: 65874}, expr: &actionExpr{ - pos: position{line: 1802, col: 26, offset: 66176}, + pos: position{line: 1792, col: 26, offset: 65899}, run: (*parser).callonCalloutListItemPrefix1, expr: &seqExpr{ - pos: position{line: 1802, col: 26, offset: 66176}, + pos: position{line: 1792, col: 26, offset: 65899}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1802, col: 26, offset: 66176}, + pos: position{line: 1792, col: 26, offset: 65899}, val: "<", ignoreCase: false, want: "\"<\"", }, &labeledExpr{ - pos: position{line: 1802, col: 30, offset: 66180}, + pos: position{line: 1792, col: 30, offset: 65903}, label: "ref", expr: &actionExpr{ - pos: position{line: 1802, col: 35, offset: 66185}, + pos: position{line: 1792, col: 35, offset: 65908}, run: (*parser).callonCalloutListItemPrefix5, expr: &oneOrMoreExpr{ - pos: position{line: 1802, col: 35, offset: 66185}, + pos: position{line: 1792, col: 35, offset: 65908}, expr: &charClassMatcher{ - pos: position{line: 1802, col: 35, offset: 66185}, + pos: position{line: 1792, col: 35, offset: 65908}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -13191,15 +13040,15 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 1802, col: 83, offset: 66233}, + pos: position{line: 1792, col: 83, offset: 65956}, val: ">", ignoreCase: false, want: "\">\"", }, &oneOrMoreExpr{ - pos: position{line: 1802, col: 87, offset: 66237}, + pos: position{line: 1792, col: 87, offset: 65960}, expr: &ruleRefExpr{ - pos: position{line: 1802, col: 87, offset: 66237}, + pos: position{line: 1792, col: 87, offset: 65960}, name: "Space", }, }, @@ -13209,25 +13058,25 @@ var g = &grammar{ }, { name: "FencedBlockDelimiter", - pos: position{line: 1809, col: 1, offset: 66464}, + pos: position{line: 1799, col: 1, offset: 66187}, expr: &seqExpr{ - pos: position{line: 1809, col: 25, offset: 66488}, + pos: position{line: 1799, col: 25, offset: 66211}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1809, col: 25, offset: 66488}, + pos: position{line: 1799, col: 25, offset: 66211}, val: "```", ignoreCase: false, want: "\"```\"", }, &zeroOrMoreExpr{ - pos: position{line: 1809, col: 31, offset: 66494}, + pos: position{line: 1799, col: 31, offset: 66217}, expr: &ruleRefExpr{ - pos: position{line: 1809, col: 31, offset: 66494}, + pos: position{line: 1799, col: 31, offset: 66217}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1809, col: 38, offset: 66501}, + pos: position{line: 1799, col: 38, offset: 66224}, name: "EOL", }, }, @@ -13235,25 +13084,25 @@ var g = &grammar{ }, { name: "FencedBlockStartDelimiter", - pos: position{line: 1811, col: 1, offset: 66561}, + pos: position{line: 1801, col: 1, offset: 66284}, expr: &seqExpr{ - pos: position{line: 1811, col: 30, offset: 66590}, + pos: position{line: 1801, col: 30, offset: 66313}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1811, col: 30, offset: 66590}, + pos: position{line: 1801, col: 30, offset: 66313}, val: "```", ignoreCase: false, want: "\"```\"", }, &zeroOrMoreExpr{ - pos: position{line: 1811, col: 36, offset: 66596}, + pos: position{line: 1801, col: 36, offset: 66319}, expr: &ruleRefExpr{ - pos: position{line: 1811, col: 36, offset: 66596}, + pos: position{line: 1801, col: 36, offset: 66319}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1811, col: 43, offset: 66603}, + pos: position{line: 1801, col: 43, offset: 66326}, name: "EOL", }, }, @@ -13261,34 +13110,34 @@ var g = &grammar{ }, { name: "FencedBlockEndDelimiter", - pos: position{line: 1813, col: 1, offset: 66608}, + pos: position{line: 1803, col: 1, offset: 66331}, expr: &choiceExpr{ - pos: position{line: 1813, col: 28, offset: 66635}, + pos: position{line: 1803, col: 28, offset: 66358}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 1813, col: 29, offset: 66636}, + pos: position{line: 1803, col: 29, offset: 66359}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1813, col: 29, offset: 66636}, + pos: position{line: 1803, col: 29, offset: 66359}, val: "```", ignoreCase: false, want: "\"```\"", }, &zeroOrMoreExpr{ - pos: position{line: 1813, col: 35, offset: 66642}, + pos: position{line: 1803, col: 35, offset: 66365}, expr: &ruleRefExpr{ - pos: position{line: 1813, col: 35, offset: 66642}, + pos: position{line: 1803, col: 35, offset: 66365}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1813, col: 42, offset: 66649}, + pos: position{line: 1803, col: 42, offset: 66372}, name: "EOL", }, }, }, &ruleRefExpr{ - pos: position{line: 1813, col: 49, offset: 66656}, + pos: position{line: 1803, col: 49, offset: 66379}, name: "EOF", }, }, @@ -13296,38 +13145,38 @@ var g = &grammar{ }, { name: "FencedBlock", - pos: position{line: 1815, col: 1, offset: 66661}, + pos: position{line: 1805, col: 1, offset: 66384}, expr: &actionExpr{ - pos: position{line: 1815, col: 16, offset: 66676}, + pos: position{line: 1805, col: 16, offset: 66399}, run: (*parser).callonFencedBlock1, expr: &seqExpr{ - pos: position{line: 1815, col: 16, offset: 66676}, + pos: position{line: 1805, col: 16, offset: 66399}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1815, col: 16, offset: 66676}, + pos: position{line: 1805, col: 16, offset: 66399}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1815, col: 27, offset: 66687}, + pos: position{line: 1805, col: 27, offset: 66410}, expr: &ruleRefExpr{ - pos: position{line: 1815, col: 28, offset: 66688}, + pos: position{line: 1805, col: 28, offset: 66411}, name: "Attributes", }, }, }, &ruleRefExpr{ - pos: position{line: 1815, col: 41, offset: 66701}, + pos: position{line: 1805, col: 41, offset: 66424}, name: "FencedBlockStartDelimiter", }, &labeledExpr{ - pos: position{line: 1815, col: 67, offset: 66727}, + pos: position{line: 1805, col: 67, offset: 66450}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1815, col: 76, offset: 66736}, + pos: position{line: 1805, col: 76, offset: 66459}, name: "FencedBlockRawContent", }, }, &ruleRefExpr{ - pos: position{line: 1815, col: 99, offset: 66759}, + pos: position{line: 1805, col: 99, offset: 66482}, name: "FencedBlockEndDelimiter", }, }, @@ -13336,27 +13185,27 @@ var g = &grammar{ }, { name: "FencedBlockRawContent", - pos: position{line: 1819, col: 1, offset: 66874}, + pos: position{line: 1809, col: 1, offset: 66597}, expr: &zeroOrMoreExpr{ - pos: position{line: 1819, col: 26, offset: 66899}, + pos: position{line: 1809, col: 26, offset: 66622}, expr: &actionExpr{ - pos: position{line: 1819, col: 27, offset: 66900}, + pos: position{line: 1809, col: 27, offset: 66623}, run: (*parser).callonFencedBlockRawContent2, expr: &seqExpr{ - pos: position{line: 1819, col: 27, offset: 66900}, + pos: position{line: 1809, col: 27, offset: 66623}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1819, col: 27, offset: 66900}, + pos: position{line: 1809, col: 27, offset: 66623}, expr: &ruleRefExpr{ - pos: position{line: 1819, col: 28, offset: 66901}, + pos: position{line: 1809, col: 28, offset: 66624}, name: "FencedBlockEndDelimiter", }, }, &labeledExpr{ - pos: position{line: 1819, col: 52, offset: 66925}, + pos: position{line: 1809, col: 52, offset: 66648}, label: "line", expr: &ruleRefExpr{ - pos: position{line: 1819, col: 58, offset: 66931}, + pos: position{line: 1809, col: 58, offset: 66654}, name: "DelimitedBlockRawLine", }, }, @@ -13367,25 +13216,25 @@ var g = &grammar{ }, { name: "ListingBlockDelimiter", - pos: position{line: 1826, col: 1, offset: 67271}, + pos: position{line: 1816, col: 1, offset: 66994}, expr: &seqExpr{ - pos: position{line: 1826, col: 26, offset: 67296}, + pos: position{line: 1816, col: 26, offset: 67019}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1826, col: 26, offset: 67296}, + pos: position{line: 1816, col: 26, offset: 67019}, val: "----", ignoreCase: false, want: "\"----\"", }, &zeroOrMoreExpr{ - pos: position{line: 1826, col: 33, offset: 67303}, + pos: position{line: 1816, col: 33, offset: 67026}, expr: &ruleRefExpr{ - pos: position{line: 1826, col: 33, offset: 67303}, + pos: position{line: 1816, col: 33, offset: 67026}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1826, col: 40, offset: 67310}, + pos: position{line: 1816, col: 40, offset: 67033}, name: "EOL", }, }, @@ -13393,25 +13242,25 @@ var g = &grammar{ }, { name: "ListingBlockStartDelimiter", - pos: position{line: 1828, col: 1, offset: 67315}, + pos: position{line: 1818, col: 1, offset: 67038}, expr: &seqExpr{ - pos: position{line: 1828, col: 31, offset: 67345}, + pos: position{line: 1818, col: 31, offset: 67068}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1828, col: 31, offset: 67345}, + pos: position{line: 1818, col: 31, offset: 67068}, val: "----", ignoreCase: false, want: "\"----\"", }, &zeroOrMoreExpr{ - pos: position{line: 1828, col: 38, offset: 67352}, + pos: position{line: 1818, col: 38, offset: 67075}, expr: &ruleRefExpr{ - pos: position{line: 1828, col: 38, offset: 67352}, + pos: position{line: 1818, col: 38, offset: 67075}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1828, col: 45, offset: 67359}, + pos: position{line: 1818, col: 45, offset: 67082}, name: "EOL", }, }, @@ -13419,34 +13268,34 @@ var g = &grammar{ }, { name: "ListingBlockEndDelimiter", - pos: position{line: 1830, col: 1, offset: 67364}, + pos: position{line: 1820, col: 1, offset: 67087}, expr: &choiceExpr{ - pos: position{line: 1830, col: 29, offset: 67392}, + pos: position{line: 1820, col: 29, offset: 67115}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 1830, col: 30, offset: 67393}, + pos: position{line: 1820, col: 30, offset: 67116}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1830, col: 30, offset: 67393}, + pos: position{line: 1820, col: 30, offset: 67116}, val: "----", ignoreCase: false, want: "\"----\"", }, &zeroOrMoreExpr{ - pos: position{line: 1830, col: 37, offset: 67400}, + pos: position{line: 1820, col: 37, offset: 67123}, expr: &ruleRefExpr{ - pos: position{line: 1830, col: 37, offset: 67400}, + pos: position{line: 1820, col: 37, offset: 67123}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1830, col: 44, offset: 67407}, + pos: position{line: 1820, col: 44, offset: 67130}, name: "EOL", }, }, }, &ruleRefExpr{ - pos: position{line: 1830, col: 51, offset: 67414}, + pos: position{line: 1820, col: 51, offset: 67137}, name: "EOF", }, }, @@ -13454,38 +13303,38 @@ var g = &grammar{ }, { name: "ListingBlock", - pos: position{line: 1832, col: 1, offset: 67419}, + pos: position{line: 1822, col: 1, offset: 67142}, expr: &actionExpr{ - pos: position{line: 1832, col: 17, offset: 67435}, + pos: position{line: 1822, col: 17, offset: 67158}, run: (*parser).callonListingBlock1, expr: &seqExpr{ - pos: position{line: 1832, col: 17, offset: 67435}, + pos: position{line: 1822, col: 17, offset: 67158}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1832, col: 17, offset: 67435}, + pos: position{line: 1822, col: 17, offset: 67158}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1832, col: 28, offset: 67446}, + pos: position{line: 1822, col: 28, offset: 67169}, expr: &ruleRefExpr{ - pos: position{line: 1832, col: 29, offset: 67447}, + pos: position{line: 1822, col: 29, offset: 67170}, name: "Attributes", }, }, }, &ruleRefExpr{ - pos: position{line: 1832, col: 42, offset: 67460}, + pos: position{line: 1822, col: 42, offset: 67183}, name: "ListingBlockStartDelimiter", }, &labeledExpr{ - pos: position{line: 1832, col: 69, offset: 67487}, + pos: position{line: 1822, col: 69, offset: 67210}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1832, col: 78, offset: 67496}, + pos: position{line: 1822, col: 78, offset: 67219}, name: "ListingBlockRawContent", }, }, &ruleRefExpr{ - pos: position{line: 1832, col: 102, offset: 67520}, + pos: position{line: 1822, col: 102, offset: 67243}, name: "ListingBlockEndDelimiter", }, }, @@ -13494,27 +13343,27 @@ var g = &grammar{ }, { name: "ListingBlockRawContent", - pos: position{line: 1836, col: 1, offset: 67637}, + pos: position{line: 1826, col: 1, offset: 67360}, expr: &zeroOrMoreExpr{ - pos: position{line: 1836, col: 27, offset: 67663}, + pos: position{line: 1826, col: 27, offset: 67386}, expr: &actionExpr{ - pos: position{line: 1836, col: 28, offset: 67664}, + pos: position{line: 1826, col: 28, offset: 67387}, run: (*parser).callonListingBlockRawContent2, expr: &seqExpr{ - pos: position{line: 1836, col: 28, offset: 67664}, + pos: position{line: 1826, col: 28, offset: 67387}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1836, col: 28, offset: 67664}, + pos: position{line: 1826, col: 28, offset: 67387}, expr: &ruleRefExpr{ - pos: position{line: 1836, col: 29, offset: 67665}, + pos: position{line: 1826, col: 29, offset: 67388}, name: "ListingBlockEndDelimiter", }, }, &labeledExpr{ - pos: position{line: 1836, col: 54, offset: 67690}, + pos: position{line: 1826, col: 54, offset: 67413}, label: "line", expr: &ruleRefExpr{ - pos: position{line: 1836, col: 60, offset: 67696}, + pos: position{line: 1826, col: 60, offset: 67419}, name: "DelimitedBlockRawLine", }, }, @@ -13525,25 +13374,25 @@ var g = &grammar{ }, { name: "ExampleBlockDelimiter", - pos: position{line: 1843, col: 1, offset: 68036}, + pos: position{line: 1833, col: 1, offset: 67759}, expr: &seqExpr{ - pos: position{line: 1843, col: 26, offset: 68061}, + pos: position{line: 1833, col: 26, offset: 67784}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1843, col: 26, offset: 68061}, + pos: position{line: 1833, col: 26, offset: 67784}, val: "====", ignoreCase: false, want: "\"====\"", }, &zeroOrMoreExpr{ - pos: position{line: 1843, col: 33, offset: 68068}, + pos: position{line: 1833, col: 33, offset: 67791}, expr: &ruleRefExpr{ - pos: position{line: 1843, col: 33, offset: 68068}, + pos: position{line: 1833, col: 33, offset: 67791}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1843, col: 40, offset: 68075}, + pos: position{line: 1833, col: 40, offset: 67798}, name: "EOL", }, }, @@ -13551,25 +13400,25 @@ var g = &grammar{ }, { name: "ExampleBlockStartDelimiter", - pos: position{line: 1845, col: 1, offset: 68080}, + pos: position{line: 1835, col: 1, offset: 67803}, expr: &seqExpr{ - pos: position{line: 1845, col: 31, offset: 68110}, + pos: position{line: 1835, col: 31, offset: 67833}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1845, col: 31, offset: 68110}, + pos: position{line: 1835, col: 31, offset: 67833}, val: "====", ignoreCase: false, want: "\"====\"", }, &zeroOrMoreExpr{ - pos: position{line: 1845, col: 38, offset: 68117}, + pos: position{line: 1835, col: 38, offset: 67840}, expr: &ruleRefExpr{ - pos: position{line: 1845, col: 38, offset: 68117}, + pos: position{line: 1835, col: 38, offset: 67840}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1845, col: 45, offset: 68124}, + pos: position{line: 1835, col: 45, offset: 67847}, name: "EOL", }, }, @@ -13577,34 +13426,34 @@ var g = &grammar{ }, { name: "ExampleBlockEndDelimiter", - pos: position{line: 1847, col: 1, offset: 68129}, + pos: position{line: 1837, col: 1, offset: 67852}, expr: &choiceExpr{ - pos: position{line: 1847, col: 29, offset: 68157}, + pos: position{line: 1837, col: 29, offset: 67880}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 1847, col: 30, offset: 68158}, + pos: position{line: 1837, col: 30, offset: 67881}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1847, col: 30, offset: 68158}, + pos: position{line: 1837, col: 30, offset: 67881}, val: "====", ignoreCase: false, want: "\"====\"", }, &zeroOrMoreExpr{ - pos: position{line: 1847, col: 37, offset: 68165}, + pos: position{line: 1837, col: 37, offset: 67888}, expr: &ruleRefExpr{ - pos: position{line: 1847, col: 37, offset: 68165}, + pos: position{line: 1837, col: 37, offset: 67888}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1847, col: 44, offset: 68172}, + pos: position{line: 1837, col: 44, offset: 67895}, name: "EOL", }, }, }, &ruleRefExpr{ - pos: position{line: 1847, col: 51, offset: 68179}, + pos: position{line: 1837, col: 51, offset: 67902}, name: "EOF", }, }, @@ -13612,38 +13461,38 @@ var g = &grammar{ }, { name: "ExampleBlock", - pos: position{line: 1849, col: 1, offset: 68184}, + pos: position{line: 1839, col: 1, offset: 67907}, expr: &actionExpr{ - pos: position{line: 1849, col: 17, offset: 68200}, + pos: position{line: 1839, col: 17, offset: 67923}, run: (*parser).callonExampleBlock1, expr: &seqExpr{ - pos: position{line: 1849, col: 17, offset: 68200}, + pos: position{line: 1839, col: 17, offset: 67923}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1849, col: 17, offset: 68200}, + pos: position{line: 1839, col: 17, offset: 67923}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1849, col: 28, offset: 68211}, + pos: position{line: 1839, col: 28, offset: 67934}, expr: &ruleRefExpr{ - pos: position{line: 1849, col: 29, offset: 68212}, + pos: position{line: 1839, col: 29, offset: 67935}, name: "Attributes", }, }, }, &ruleRefExpr{ - pos: position{line: 1849, col: 42, offset: 68225}, + pos: position{line: 1839, col: 42, offset: 67948}, name: "ExampleBlockStartDelimiter", }, &labeledExpr{ - pos: position{line: 1849, col: 69, offset: 68252}, + pos: position{line: 1839, col: 69, offset: 67975}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1849, col: 78, offset: 68261}, + pos: position{line: 1839, col: 78, offset: 67984}, name: "ExampleBlockRawContent", }, }, &ruleRefExpr{ - pos: position{line: 1849, col: 102, offset: 68285}, + pos: position{line: 1839, col: 102, offset: 68008}, name: "ExampleBlockEndDelimiter", }, }, @@ -13652,27 +13501,27 @@ var g = &grammar{ }, { name: "ExampleBlockRawContent", - pos: position{line: 1853, col: 1, offset: 68402}, + pos: position{line: 1843, col: 1, offset: 68125}, expr: &zeroOrMoreExpr{ - pos: position{line: 1853, col: 27, offset: 68428}, + pos: position{line: 1843, col: 27, offset: 68151}, expr: &actionExpr{ - pos: position{line: 1853, col: 28, offset: 68429}, + pos: position{line: 1843, col: 28, offset: 68152}, run: (*parser).callonExampleBlockRawContent2, expr: &seqExpr{ - pos: position{line: 1853, col: 28, offset: 68429}, + pos: position{line: 1843, col: 28, offset: 68152}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1853, col: 28, offset: 68429}, + pos: position{line: 1843, col: 28, offset: 68152}, expr: &ruleRefExpr{ - pos: position{line: 1853, col: 29, offset: 68430}, + pos: position{line: 1843, col: 29, offset: 68153}, name: "ExampleBlockEndDelimiter", }, }, &labeledExpr{ - pos: position{line: 1853, col: 54, offset: 68455}, + pos: position{line: 1843, col: 54, offset: 68178}, label: "line", expr: &ruleRefExpr{ - pos: position{line: 1853, col: 60, offset: 68461}, + pos: position{line: 1843, col: 60, offset: 68184}, name: "DelimitedBlockRawLine", }, }, @@ -13683,25 +13532,25 @@ var g = &grammar{ }, { name: "QuoteBlockDelimiter", - pos: position{line: 1860, col: 1, offset: 68799}, + pos: position{line: 1850, col: 1, offset: 68522}, expr: &seqExpr{ - pos: position{line: 1860, col: 24, offset: 68822}, + pos: position{line: 1850, col: 24, offset: 68545}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1860, col: 24, offset: 68822}, + pos: position{line: 1850, col: 24, offset: 68545}, val: "____", ignoreCase: false, want: "\"____\"", }, &zeroOrMoreExpr{ - pos: position{line: 1860, col: 31, offset: 68829}, + pos: position{line: 1850, col: 31, offset: 68552}, expr: &ruleRefExpr{ - pos: position{line: 1860, col: 31, offset: 68829}, + pos: position{line: 1850, col: 31, offset: 68552}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1860, col: 38, offset: 68836}, + pos: position{line: 1850, col: 38, offset: 68559}, name: "EOL", }, }, @@ -13709,25 +13558,25 @@ var g = &grammar{ }, { name: "QuoteBlockStartDelimiter", - pos: position{line: 1862, col: 1, offset: 68866}, + pos: position{line: 1852, col: 1, offset: 68589}, expr: &seqExpr{ - pos: position{line: 1862, col: 29, offset: 68894}, + pos: position{line: 1852, col: 29, offset: 68617}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1862, col: 29, offset: 68894}, + pos: position{line: 1852, col: 29, offset: 68617}, val: "____", ignoreCase: false, want: "\"____\"", }, &zeroOrMoreExpr{ - pos: position{line: 1862, col: 36, offset: 68901}, + pos: position{line: 1852, col: 36, offset: 68624}, expr: &ruleRefExpr{ - pos: position{line: 1862, col: 36, offset: 68901}, + pos: position{line: 1852, col: 36, offset: 68624}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1862, col: 43, offset: 68908}, + pos: position{line: 1852, col: 43, offset: 68631}, name: "EOL", }, }, @@ -13735,34 +13584,34 @@ var g = &grammar{ }, { name: "QuoteBlockEndDelimiter", - pos: position{line: 1864, col: 1, offset: 68938}, + pos: position{line: 1854, col: 1, offset: 68661}, expr: &choiceExpr{ - pos: position{line: 1864, col: 27, offset: 68964}, + pos: position{line: 1854, col: 27, offset: 68687}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 1864, col: 28, offset: 68965}, + pos: position{line: 1854, col: 28, offset: 68688}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1864, col: 28, offset: 68965}, + pos: position{line: 1854, col: 28, offset: 68688}, val: "____", ignoreCase: false, want: "\"____\"", }, &zeroOrMoreExpr{ - pos: position{line: 1864, col: 35, offset: 68972}, + pos: position{line: 1854, col: 35, offset: 68695}, expr: &ruleRefExpr{ - pos: position{line: 1864, col: 35, offset: 68972}, + pos: position{line: 1854, col: 35, offset: 68695}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1864, col: 42, offset: 68979}, + pos: position{line: 1854, col: 42, offset: 68702}, name: "EOL", }, }, }, &ruleRefExpr{ - pos: position{line: 1864, col: 49, offset: 68986}, + pos: position{line: 1854, col: 49, offset: 68709}, name: "EOF", }, }, @@ -13770,38 +13619,38 @@ var g = &grammar{ }, { name: "QuoteBlock", - pos: position{line: 1866, col: 1, offset: 69016}, + pos: position{line: 1856, col: 1, offset: 68739}, expr: &actionExpr{ - pos: position{line: 1866, col: 15, offset: 69030}, + pos: position{line: 1856, col: 15, offset: 68753}, run: (*parser).callonQuoteBlock1, expr: &seqExpr{ - pos: position{line: 1866, col: 15, offset: 69030}, + pos: position{line: 1856, col: 15, offset: 68753}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1866, col: 15, offset: 69030}, + pos: position{line: 1856, col: 15, offset: 68753}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1866, col: 26, offset: 69041}, + pos: position{line: 1856, col: 26, offset: 68764}, expr: &ruleRefExpr{ - pos: position{line: 1866, col: 27, offset: 69042}, + pos: position{line: 1856, col: 27, offset: 68765}, name: "Attributes", }, }, }, &ruleRefExpr{ - pos: position{line: 1866, col: 40, offset: 69055}, + pos: position{line: 1856, col: 40, offset: 68778}, name: "QuoteBlockStartDelimiter", }, &labeledExpr{ - pos: position{line: 1866, col: 65, offset: 69080}, + pos: position{line: 1856, col: 65, offset: 68803}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1866, col: 74, offset: 69089}, + pos: position{line: 1856, col: 74, offset: 68812}, name: "QuoteBlockVerbatimElement", }, }, &ruleRefExpr{ - pos: position{line: 1866, col: 101, offset: 69116}, + pos: position{line: 1856, col: 101, offset: 68839}, name: "QuoteBlockEndDelimiter", }, }, @@ -13810,27 +13659,27 @@ var g = &grammar{ }, { name: "QuoteBlockVerbatimElement", - pos: position{line: 1870, col: 1, offset: 69229}, + pos: position{line: 1860, col: 1, offset: 68952}, expr: &zeroOrMoreExpr{ - pos: position{line: 1870, col: 30, offset: 69258}, + pos: position{line: 1860, col: 30, offset: 68981}, expr: &actionExpr{ - pos: position{line: 1870, col: 31, offset: 69259}, + pos: position{line: 1860, col: 31, offset: 68982}, run: (*parser).callonQuoteBlockVerbatimElement2, expr: &seqExpr{ - pos: position{line: 1870, col: 31, offset: 69259}, + pos: position{line: 1860, col: 31, offset: 68982}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1870, col: 31, offset: 69259}, + pos: position{line: 1860, col: 31, offset: 68982}, expr: &ruleRefExpr{ - pos: position{line: 1870, col: 32, offset: 69260}, + pos: position{line: 1860, col: 32, offset: 68983}, name: "QuoteBlockEndDelimiter", }, }, &labeledExpr{ - pos: position{line: 1870, col: 55, offset: 69283}, + pos: position{line: 1860, col: 55, offset: 69006}, label: "line", expr: &ruleRefExpr{ - pos: position{line: 1870, col: 61, offset: 69289}, + pos: position{line: 1860, col: 61, offset: 69012}, name: "DelimitedBlockRawLine", }, }, @@ -13841,25 +13690,25 @@ var g = &grammar{ }, { name: "SidebarBlockDelimiter", - pos: position{line: 1877, col: 1, offset: 69629}, + pos: position{line: 1867, col: 1, offset: 69352}, expr: &seqExpr{ - pos: position{line: 1877, col: 26, offset: 69654}, + pos: position{line: 1867, col: 26, offset: 69377}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1877, col: 26, offset: 69654}, + pos: position{line: 1867, col: 26, offset: 69377}, val: "****", ignoreCase: false, want: "\"****\"", }, &zeroOrMoreExpr{ - pos: position{line: 1877, col: 33, offset: 69661}, + pos: position{line: 1867, col: 33, offset: 69384}, expr: &ruleRefExpr{ - pos: position{line: 1877, col: 33, offset: 69661}, + pos: position{line: 1867, col: 33, offset: 69384}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1877, col: 40, offset: 69668}, + pos: position{line: 1867, col: 40, offset: 69391}, name: "EOL", }, }, @@ -13867,25 +13716,25 @@ var g = &grammar{ }, { name: "SidebarBlockStartDelimiter", - pos: position{line: 1879, col: 1, offset: 69673}, + pos: position{line: 1869, col: 1, offset: 69396}, expr: &seqExpr{ - pos: position{line: 1879, col: 31, offset: 69703}, + pos: position{line: 1869, col: 31, offset: 69426}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1879, col: 31, offset: 69703}, + pos: position{line: 1869, col: 31, offset: 69426}, val: "****", ignoreCase: false, want: "\"****\"", }, &zeroOrMoreExpr{ - pos: position{line: 1879, col: 38, offset: 69710}, + pos: position{line: 1869, col: 38, offset: 69433}, expr: &ruleRefExpr{ - pos: position{line: 1879, col: 38, offset: 69710}, + pos: position{line: 1869, col: 38, offset: 69433}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1879, col: 45, offset: 69717}, + pos: position{line: 1869, col: 45, offset: 69440}, name: "EOL", }, }, @@ -13893,34 +13742,34 @@ var g = &grammar{ }, { name: "SidebarBlockEndDelimiter", - pos: position{line: 1881, col: 1, offset: 69722}, + pos: position{line: 1871, col: 1, offset: 69445}, expr: &choiceExpr{ - pos: position{line: 1881, col: 29, offset: 69750}, + pos: position{line: 1871, col: 29, offset: 69473}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 1881, col: 30, offset: 69751}, + pos: position{line: 1871, col: 30, offset: 69474}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1881, col: 30, offset: 69751}, + pos: position{line: 1871, col: 30, offset: 69474}, val: "****", ignoreCase: false, want: "\"****\"", }, &zeroOrMoreExpr{ - pos: position{line: 1881, col: 37, offset: 69758}, + pos: position{line: 1871, col: 37, offset: 69481}, expr: &ruleRefExpr{ - pos: position{line: 1881, col: 37, offset: 69758}, + pos: position{line: 1871, col: 37, offset: 69481}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1881, col: 44, offset: 69765}, + pos: position{line: 1871, col: 44, offset: 69488}, name: "EOL", }, }, }, &ruleRefExpr{ - pos: position{line: 1881, col: 51, offset: 69772}, + pos: position{line: 1871, col: 51, offset: 69495}, name: "EOF", }, }, @@ -13928,38 +13777,38 @@ var g = &grammar{ }, { name: "SidebarBlock", - pos: position{line: 1883, col: 1, offset: 69777}, + pos: position{line: 1873, col: 1, offset: 69500}, expr: &actionExpr{ - pos: position{line: 1883, col: 17, offset: 69793}, + pos: position{line: 1873, col: 17, offset: 69516}, run: (*parser).callonSidebarBlock1, expr: &seqExpr{ - pos: position{line: 1883, col: 17, offset: 69793}, + pos: position{line: 1873, col: 17, offset: 69516}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1883, col: 17, offset: 69793}, + pos: position{line: 1873, col: 17, offset: 69516}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1883, col: 28, offset: 69804}, + pos: position{line: 1873, col: 28, offset: 69527}, expr: &ruleRefExpr{ - pos: position{line: 1883, col: 29, offset: 69805}, + pos: position{line: 1873, col: 29, offset: 69528}, name: "Attributes", }, }, }, &ruleRefExpr{ - pos: position{line: 1883, col: 42, offset: 69818}, + pos: position{line: 1873, col: 42, offset: 69541}, name: "SidebarBlockStartDelimiter", }, &labeledExpr{ - pos: position{line: 1883, col: 69, offset: 69845}, + pos: position{line: 1873, col: 69, offset: 69568}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1883, col: 78, offset: 69854}, + pos: position{line: 1873, col: 78, offset: 69577}, name: "SidebarBlockRawContent", }, }, &ruleRefExpr{ - pos: position{line: 1883, col: 102, offset: 69878}, + pos: position{line: 1873, col: 102, offset: 69601}, name: "SidebarBlockEndDelimiter", }, }, @@ -13968,27 +13817,27 @@ var g = &grammar{ }, { name: "SidebarBlockRawContent", - pos: position{line: 1887, col: 1, offset: 69995}, + pos: position{line: 1877, col: 1, offset: 69718}, expr: &zeroOrMoreExpr{ - pos: position{line: 1887, col: 27, offset: 70021}, + pos: position{line: 1877, col: 27, offset: 69744}, expr: &actionExpr{ - pos: position{line: 1887, col: 28, offset: 70022}, + pos: position{line: 1877, col: 28, offset: 69745}, run: (*parser).callonSidebarBlockRawContent2, expr: &seqExpr{ - pos: position{line: 1887, col: 28, offset: 70022}, + pos: position{line: 1877, col: 28, offset: 69745}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1887, col: 28, offset: 70022}, + pos: position{line: 1877, col: 28, offset: 69745}, expr: &ruleRefExpr{ - pos: position{line: 1887, col: 29, offset: 70023}, + pos: position{line: 1877, col: 29, offset: 69746}, name: "SidebarBlockEndDelimiter", }, }, &labeledExpr{ - pos: position{line: 1887, col: 54, offset: 70048}, + pos: position{line: 1877, col: 54, offset: 69771}, label: "line", expr: &ruleRefExpr{ - pos: position{line: 1887, col: 60, offset: 70054}, + pos: position{line: 1877, col: 60, offset: 69777}, name: "DelimitedBlockRawLine", }, }, @@ -13999,25 +13848,25 @@ var g = &grammar{ }, { name: "PassthroughBlockDelimiter", - pos: position{line: 1894, col: 1, offset: 70398}, + pos: position{line: 1884, col: 1, offset: 70121}, expr: &seqExpr{ - pos: position{line: 1894, col: 30, offset: 70427}, + pos: position{line: 1884, col: 30, offset: 70150}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1894, col: 30, offset: 70427}, + pos: position{line: 1884, col: 30, offset: 70150}, val: "++++", ignoreCase: false, want: "\"++++\"", }, &zeroOrMoreExpr{ - pos: position{line: 1894, col: 37, offset: 70434}, + pos: position{line: 1884, col: 37, offset: 70157}, expr: &ruleRefExpr{ - pos: position{line: 1894, col: 37, offset: 70434}, + pos: position{line: 1884, col: 37, offset: 70157}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1894, col: 44, offset: 70441}, + pos: position{line: 1884, col: 44, offset: 70164}, name: "EOL", }, }, @@ -14025,25 +13874,25 @@ var g = &grammar{ }, { name: "PassthroughBlockStartDelimiter", - pos: position{line: 1896, col: 1, offset: 70446}, + pos: position{line: 1886, col: 1, offset: 70169}, expr: &seqExpr{ - pos: position{line: 1896, col: 35, offset: 70480}, + pos: position{line: 1886, col: 35, offset: 70203}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1896, col: 35, offset: 70480}, + pos: position{line: 1886, col: 35, offset: 70203}, val: "++++", ignoreCase: false, want: "\"++++\"", }, &zeroOrMoreExpr{ - pos: position{line: 1896, col: 42, offset: 70487}, + pos: position{line: 1886, col: 42, offset: 70210}, expr: &ruleRefExpr{ - pos: position{line: 1896, col: 42, offset: 70487}, + pos: position{line: 1886, col: 42, offset: 70210}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1896, col: 49, offset: 70494}, + pos: position{line: 1886, col: 49, offset: 70217}, name: "EOL", }, }, @@ -14051,34 +13900,34 @@ var g = &grammar{ }, { name: "PassthroughBlockEndDelimiter", - pos: position{line: 1898, col: 1, offset: 70499}, + pos: position{line: 1888, col: 1, offset: 70222}, expr: &choiceExpr{ - pos: position{line: 1898, col: 33, offset: 70531}, + pos: position{line: 1888, col: 33, offset: 70254}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 1898, col: 34, offset: 70532}, + pos: position{line: 1888, col: 34, offset: 70255}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1898, col: 34, offset: 70532}, + pos: position{line: 1888, col: 34, offset: 70255}, val: "++++", ignoreCase: false, want: "\"++++\"", }, &zeroOrMoreExpr{ - pos: position{line: 1898, col: 41, offset: 70539}, + pos: position{line: 1888, col: 41, offset: 70262}, expr: &ruleRefExpr{ - pos: position{line: 1898, col: 41, offset: 70539}, + pos: position{line: 1888, col: 41, offset: 70262}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1898, col: 48, offset: 70546}, + pos: position{line: 1888, col: 48, offset: 70269}, name: "EOL", }, }, }, &ruleRefExpr{ - pos: position{line: 1898, col: 55, offset: 70553}, + pos: position{line: 1888, col: 55, offset: 70276}, name: "EOF", }, }, @@ -14086,38 +13935,38 @@ var g = &grammar{ }, { name: "PassthroughBlock", - pos: position{line: 1900, col: 1, offset: 70558}, + pos: position{line: 1890, col: 1, offset: 70281}, expr: &actionExpr{ - pos: position{line: 1900, col: 21, offset: 70578}, + pos: position{line: 1890, col: 21, offset: 70301}, run: (*parser).callonPassthroughBlock1, expr: &seqExpr{ - pos: position{line: 1900, col: 21, offset: 70578}, + pos: position{line: 1890, col: 21, offset: 70301}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1900, col: 21, offset: 70578}, + pos: position{line: 1890, col: 21, offset: 70301}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 1900, col: 32, offset: 70589}, + pos: position{line: 1890, col: 32, offset: 70312}, expr: &ruleRefExpr{ - pos: position{line: 1900, col: 33, offset: 70590}, + pos: position{line: 1890, col: 33, offset: 70313}, name: "Attributes", }, }, }, &ruleRefExpr{ - pos: position{line: 1900, col: 46, offset: 70603}, + pos: position{line: 1890, col: 46, offset: 70326}, name: "PassthroughBlockStartDelimiter", }, &labeledExpr{ - pos: position{line: 1900, col: 77, offset: 70634}, + pos: position{line: 1890, col: 77, offset: 70357}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1900, col: 86, offset: 70643}, + pos: position{line: 1890, col: 86, offset: 70366}, name: "PassthroughBlockRawContent", }, }, &ruleRefExpr{ - pos: position{line: 1900, col: 114, offset: 70671}, + pos: position{line: 1890, col: 114, offset: 70394}, name: "PassthroughBlockEndDelimiter", }, }, @@ -14126,27 +13975,27 @@ var g = &grammar{ }, { name: "PassthroughBlockRawContent", - pos: position{line: 1904, col: 1, offset: 70796}, + pos: position{line: 1894, col: 1, offset: 70519}, expr: &zeroOrMoreExpr{ - pos: position{line: 1904, col: 31, offset: 70826}, + pos: position{line: 1894, col: 31, offset: 70549}, expr: &actionExpr{ - pos: position{line: 1904, col: 32, offset: 70827}, + pos: position{line: 1894, col: 32, offset: 70550}, run: (*parser).callonPassthroughBlockRawContent2, expr: &seqExpr{ - pos: position{line: 1904, col: 32, offset: 70827}, + pos: position{line: 1894, col: 32, offset: 70550}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1904, col: 32, offset: 70827}, + pos: position{line: 1894, col: 32, offset: 70550}, expr: &ruleRefExpr{ - pos: position{line: 1904, col: 33, offset: 70828}, + pos: position{line: 1894, col: 33, offset: 70551}, name: "PassthroughBlockEndDelimiter", }, }, &labeledExpr{ - pos: position{line: 1904, col: 62, offset: 70857}, + pos: position{line: 1894, col: 62, offset: 70580}, label: "line", expr: &ruleRefExpr{ - pos: position{line: 1904, col: 68, offset: 70863}, + pos: position{line: 1894, col: 68, offset: 70586}, name: "DelimitedBlockRawLine", }, }, @@ -14157,48 +14006,48 @@ var g = &grammar{ }, { name: "ThematicBreak", - pos: position{line: 1909, col: 1, offset: 71025}, + pos: position{line: 1899, col: 1, offset: 70748}, expr: &actionExpr{ - pos: position{line: 1909, col: 18, offset: 71042}, + pos: position{line: 1899, col: 18, offset: 70765}, run: (*parser).callonThematicBreak1, expr: &seqExpr{ - pos: position{line: 1909, col: 18, offset: 71042}, + pos: position{line: 1899, col: 18, offset: 70765}, exprs: []interface{}{ &choiceExpr{ - pos: position{line: 1909, col: 19, offset: 71043}, + pos: position{line: 1899, col: 19, offset: 70766}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 1909, col: 19, offset: 71043}, + pos: position{line: 1899, col: 19, offset: 70766}, val: "***", ignoreCase: false, want: "\"***\"", }, &litMatcher{ - pos: position{line: 1909, col: 27, offset: 71051}, + pos: position{line: 1899, col: 27, offset: 70774}, val: "* * *", ignoreCase: false, want: "\"* * *\"", }, &litMatcher{ - pos: position{line: 1909, col: 37, offset: 71061}, + pos: position{line: 1899, col: 37, offset: 70784}, val: "---", ignoreCase: false, want: "\"---\"", }, &litMatcher{ - pos: position{line: 1909, col: 45, offset: 71069}, + pos: position{line: 1899, col: 45, offset: 70792}, val: "- - -", ignoreCase: false, want: "\"- - -\"", }, &litMatcher{ - pos: position{line: 1909, col: 55, offset: 71079}, + pos: position{line: 1899, col: 55, offset: 70802}, val: "___", ignoreCase: false, want: "\"___\"", }, &litMatcher{ - pos: position{line: 1909, col: 63, offset: 71087}, + pos: position{line: 1899, col: 63, offset: 70810}, val: "_ _ _", ignoreCase: false, want: "\"_ _ _\"", @@ -14206,7 +14055,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1909, col: 72, offset: 71096}, + pos: position{line: 1899, col: 72, offset: 70819}, name: "EOL", }, }, @@ -14214,97 +14063,584 @@ var g = &grammar{ }, }, { - name: "NormalBlockContent", - pos: position{line: 1918, col: 1, offset: 71393}, - expr: &zeroOrMoreExpr{ - pos: position{line: 1918, col: 23, offset: 71415}, - expr: &ruleRefExpr{ - pos: position{line: 1918, col: 23, offset: 71415}, - name: "NormalElement", + name: "NormalParagraphContentSubstitution", + pos: position{line: 1909, col: 1, offset: 71201}, + expr: &oneOrMoreExpr{ + pos: position{line: 1910, col: 5, offset: 71246}, + expr: &choiceExpr{ + pos: position{line: 1910, col: 9, offset: 71250}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 1910, col: 9, offset: 71250}, + name: "SingleLineComment", + }, + &seqExpr{ + pos: position{line: 1911, col: 13, offset: 71282}, + exprs: []interface{}{ + &oneOrMoreExpr{ + pos: position{line: 1911, col: 13, offset: 71282}, + expr: &choiceExpr{ + pos: position{line: 1911, col: 14, offset: 71283}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 1911, col: 14, offset: 71283}, + name: "InlineWord", + }, + &ruleRefExpr{ + pos: position{line: 1912, col: 15, offset: 71338}, + name: "LineBreak", + }, + &oneOrMoreExpr{ + pos: position{line: 1913, col: 15, offset: 71387}, + expr: &ruleRefExpr{ + pos: position{line: 1913, col: 15, offset: 71387}, + name: "Space", + }, + }, + &ruleRefExpr{ + pos: position{line: 1914, col: 15, offset: 71409}, + name: "Quotes", + }, + &ruleRefExpr{ + pos: position{line: 1915, col: 15, offset: 71430}, + name: "InlineMacros", + }, + &ruleRefExpr{ + pos: position{line: 1916, col: 15, offset: 71457}, + name: "Replacements", + }, + &ruleRefExpr{ + pos: position{line: 1917, col: 15, offset: 71484}, + name: "AttributeSubstitution", + }, + &ruleRefExpr{ + pos: position{line: 1918, col: 15, offset: 71520}, + name: "AnyChar", + }, + }, + }, + }, + &zeroOrOneExpr{ + pos: position{line: 1919, col: 16, offset: 71543}, + expr: &ruleRefExpr{ + pos: position{line: 1919, col: 16, offset: 71543}, + name: "Newline", + }, + }, + }, + }, + }, }, }, }, { - name: "NormalElement", - pos: position{line: 1920, col: 1, offset: 71431}, - expr: &actionExpr{ - pos: position{line: 1921, col: 5, offset: 71453}, - run: (*parser).callonNormalElement1, - expr: &seqExpr{ - pos: position{line: 1921, col: 5, offset: 71453}, - exprs: []interface{}{ - ¬Expr{ - pos: position{line: 1921, col: 5, offset: 71453}, - expr: &ruleRefExpr{ - pos: position{line: 1921, col: 6, offset: 71454}, - name: "EOF", - }, - }, - &labeledExpr{ - pos: position{line: 1921, col: 10, offset: 71458}, - label: "element", - expr: &choiceExpr{ - pos: position{line: 1921, col: 19, offset: 71467}, - alternatives: []interface{}{ - &ruleRefExpr{ - pos: position{line: 1921, col: 19, offset: 71467}, - name: "BlankLine", - }, - &ruleRefExpr{ - pos: position{line: 1922, col: 15, offset: 71492}, - name: "FileInclusion", - }, - &ruleRefExpr{ - pos: position{line: 1923, col: 15, offset: 71520}, - name: "ImageBlock", - }, - &ruleRefExpr{ - pos: position{line: 1924, col: 15, offset: 71545}, - name: "ThematicBreak", - }, - &ruleRefExpr{ - pos: position{line: 1925, col: 15, offset: 71573}, - name: "OrderedListItem", - }, - &ruleRefExpr{ - pos: position{line: 1926, col: 15, offset: 71604}, - name: "UnorderedListItem", - }, - &ruleRefExpr{ - pos: position{line: 1927, col: 15, offset: 71637}, - name: "LabeledListItem", - }, - &ruleRefExpr{ - pos: position{line: 1928, col: 15, offset: 71668}, - name: "ContinuedListItemElement", - }, - &ruleRefExpr{ - pos: position{line: 1929, col: 15, offset: 71707}, - name: "DelimitedBlock", - }, - &ruleRefExpr{ - pos: position{line: 1930, col: 15, offset: 71736}, - name: "LiteralBlock", - }, - &ruleRefExpr{ - pos: position{line: 1931, col: 15, offset: 71764}, + name: "Quotes", + pos: position{line: 1922, col: 1, offset: 71561}, + expr: &ruleRefExpr{ + pos: position{line: 1922, col: 11, offset: 71571}, + name: "QuotedText", + }, + }, + { + name: "InlineMacros", + pos: position{line: 1924, col: 1, offset: 71583}, + expr: &choiceExpr{ + pos: position{line: 1924, col: 17, offset: 71599}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 1924, col: 17, offset: 71599}, + name: "InlineIcon", + }, + &ruleRefExpr{ + pos: position{line: 1925, col: 19, offset: 71628}, + name: "InlineImage", + }, + &ruleRefExpr{ + pos: position{line: 1926, col: 19, offset: 71659}, + name: "Link", + }, + &ruleRefExpr{ + pos: position{line: 1927, col: 19, offset: 71683}, + name: "InlinePassthrough", + }, + &ruleRefExpr{ + pos: position{line: 1928, col: 19, offset: 71720}, + name: "InlineFootnote", + }, + &ruleRefExpr{ + pos: position{line: 1929, col: 19, offset: 71754}, + name: "CrossReference", + }, + &ruleRefExpr{ + pos: position{line: 1930, col: 19, offset: 71788}, + name: "InlineUserMacro", + }, + &ruleRefExpr{ + pos: position{line: 1931, col: 19, offset: 71823}, + name: "InlineElementID", + }, + &ruleRefExpr{ + pos: position{line: 1932, col: 19, offset: 71857}, + name: "ConcealedIndexTerm", + }, + &ruleRefExpr{ + pos: position{line: 1933, col: 19, offset: 71894}, + name: "IndexTerm", + }, + }, + }, + }, + { + name: "Replacements", + pos: position{line: 1935, col: 1, offset: 71917}, + expr: &choiceExpr{ + pos: position{line: 1935, col: 17, offset: 71933}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 1935, col: 17, offset: 71933}, + name: "Symbol", + }, + &ruleRefExpr{ + pos: position{line: 1936, col: 19, offset: 71958}, + name: "SpecialCharacter", + }, + &ruleRefExpr{ + pos: position{line: 1937, col: 19, offset: 71993}, + name: "QuotedString", + }, + &ruleRefExpr{ + pos: position{line: 1938, col: 19, offset: 72025}, + name: "ImpliedApostrophe", + }, + }, + }, + }, + { + name: "NormalBlockContentSubstitution", + pos: position{line: 1941, col: 1, offset: 72111}, + expr: &zeroOrMoreExpr{ + pos: position{line: 1941, col: 35, offset: 72145}, + expr: &ruleRefExpr{ + pos: position{line: 1941, col: 35, offset: 72145}, + name: "NormalElement", + }, + }, + }, + { + name: "NormalElement", + pos: position{line: 1943, col: 1, offset: 72161}, + expr: &actionExpr{ + pos: position{line: 1944, col: 5, offset: 72183}, + run: (*parser).callonNormalElement1, + expr: &seqExpr{ + pos: position{line: 1944, col: 5, offset: 72183}, + exprs: []interface{}{ + ¬Expr{ + pos: position{line: 1944, col: 5, offset: 72183}, + expr: &ruleRefExpr{ + pos: position{line: 1944, col: 6, offset: 72184}, + name: "EOF", + }, + }, + &labeledExpr{ + pos: position{line: 1944, col: 10, offset: 72188}, + label: "element", + expr: &choiceExpr{ + pos: position{line: 1944, col: 19, offset: 72197}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 1944, col: 19, offset: 72197}, + name: "BlankLine", + }, + &ruleRefExpr{ + pos: position{line: 1945, col: 15, offset: 72222}, + name: "FileInclusion", + }, + &ruleRefExpr{ + pos: position{line: 1946, col: 15, offset: 72250}, + name: "ImageBlock", + }, + &ruleRefExpr{ + pos: position{line: 1947, col: 15, offset: 72275}, + name: "ThematicBreak", + }, + &ruleRefExpr{ + pos: position{line: 1948, col: 15, offset: 72303}, + name: "OrderedListItem", + }, + &ruleRefExpr{ + pos: position{line: 1949, col: 15, offset: 72334}, + name: "UnorderedListItem", + }, + &ruleRefExpr{ + pos: position{line: 1950, col: 15, offset: 72367}, + name: "LabeledListItem", + }, + &ruleRefExpr{ + pos: position{line: 1951, col: 15, offset: 72398}, + name: "ContinuedListItemElement", + }, + &ruleRefExpr{ + pos: position{line: 1952, col: 15, offset: 72437}, + name: "DelimitedBlock", + }, + &ruleRefExpr{ + pos: position{line: 1953, col: 15, offset: 72466}, + name: "LiteralBlock", + }, + &ruleRefExpr{ + pos: position{line: 1954, col: 15, offset: 72494}, name: "AttributeDeclaration", }, &ruleRefExpr{ - pos: position{line: 1932, col: 15, offset: 71800}, + pos: position{line: 1955, col: 15, offset: 72530}, name: "AttributeReset", }, &ruleRefExpr{ - pos: position{line: 1933, col: 15, offset: 71830}, + pos: position{line: 1956, col: 15, offset: 72560}, name: "TableOfContentsPlaceHolder", }, &ruleRefExpr{ - pos: position{line: 1934, col: 15, offset: 71871}, + pos: position{line: 1957, col: 15, offset: 72601}, name: "StandaloneAttributes", }, &ruleRefExpr{ - pos: position{line: 1935, col: 15, offset: 71906}, - name: "Paragraph", + pos: position{line: 1958, col: 15, offset: 72636}, + name: "Paragraph", + }, + }, + }, + }, + }, + }, + }, + }, + { + name: "VerbatimContentSubstitution", + pos: position{line: 1962, col: 1, offset: 72685}, + expr: &ruleRefExpr{ + pos: position{line: 1962, col: 32, offset: 72716}, + name: "VerbatimLine", + }, + }, + { + name: "VerbatimLine", + pos: position{line: 1964, col: 1, offset: 72730}, + expr: &actionExpr{ + pos: position{line: 1964, col: 17, offset: 72746}, + run: (*parser).callonVerbatimLine1, + expr: &seqExpr{ + pos: position{line: 1964, col: 17, offset: 72746}, + exprs: []interface{}{ + &labeledExpr{ + pos: position{line: 1964, col: 17, offset: 72746}, + label: "content", + expr: &ruleRefExpr{ + pos: position{line: 1964, col: 26, offset: 72755}, + name: "VerbatimLineContent", + }, + }, + &labeledExpr{ + pos: position{line: 1964, col: 47, offset: 72776}, + label: "callouts", + expr: &zeroOrOneExpr{ + pos: position{line: 1964, col: 56, offset: 72785}, + expr: &ruleRefExpr{ + pos: position{line: 1964, col: 57, offset: 72786}, + name: "Callouts", + }, + }, + }, + &ruleRefExpr{ + pos: position{line: 1964, col: 68, offset: 72797}, + name: "EOL", + }, + }, + }, + }, + }, + { + name: "VerbatimLineContent", + pos: position{line: 1968, col: 1, offset: 72867}, + expr: &actionExpr{ + pos: position{line: 1968, col: 24, offset: 72890}, + run: (*parser).callonVerbatimLineContent1, + expr: &zeroOrMoreExpr{ + pos: position{line: 1968, col: 24, offset: 72890}, + expr: &seqExpr{ + pos: position{line: 1968, col: 25, offset: 72891}, + exprs: []interface{}{ + ¬Expr{ + pos: position{line: 1968, col: 25, offset: 72891}, + expr: &ruleRefExpr{ + pos: position{line: 1968, col: 26, offset: 72892}, + name: "Callouts", + }, + }, + &choiceExpr{ + pos: position{line: 1968, col: 36, offset: 72902}, + alternatives: []interface{}{ + &oneOrMoreExpr{ + pos: position{line: 1968, col: 36, offset: 72902}, + expr: &ruleRefExpr{ + pos: position{line: 1968, col: 36, offset: 72902}, + name: "Space", + }, + }, + &oneOrMoreExpr{ + pos: position{line: 1968, col: 45, offset: 72911}, + expr: &charClassMatcher{ + pos: position{line: 1968, col: 45, offset: 72911}, + val: "[^ \\r\\n]", + chars: []rune{' ', '\r', '\n'}, + ignoreCase: false, + inverted: true, + }, + }, + }, + }, + }, + }, + }, + }, + }, + { + name: "Callouts", + pos: position{line: 1972, col: 1, offset: 72961}, + expr: &oneOrMoreExpr{ + pos: position{line: 1972, col: 13, offset: 72973}, + expr: &ruleRefExpr{ + pos: position{line: 1972, col: 13, offset: 72973}, + name: "Callout", + }, + }, + }, + { + name: "Callout", + pos: position{line: 1974, col: 1, offset: 72983}, + expr: &actionExpr{ + pos: position{line: 1974, col: 12, offset: 72994}, + run: (*parser).callonCallout1, + expr: &seqExpr{ + pos: position{line: 1974, col: 12, offset: 72994}, + exprs: []interface{}{ + &litMatcher{ + pos: position{line: 1974, col: 12, offset: 72994}, + val: "<", + ignoreCase: false, + want: "\"<\"", + }, + &labeledExpr{ + pos: position{line: 1974, col: 16, offset: 72998}, + label: "ref", + expr: &actionExpr{ + pos: position{line: 1974, col: 21, offset: 73003}, + run: (*parser).callonCallout5, + expr: &oneOrMoreExpr{ + pos: position{line: 1974, col: 21, offset: 73003}, + expr: &charClassMatcher{ + pos: position{line: 1974, col: 21, offset: 73003}, + val: "[0-9]", + ranges: []rune{'0', '9'}, + ignoreCase: false, + inverted: false, + }, + }, + }, + }, + &litMatcher{ + pos: position{line: 1974, col: 69, offset: 73051}, + val: ">", + ignoreCase: false, + want: "\">\"", + }, + &zeroOrMoreExpr{ + pos: position{line: 1974, col: 73, offset: 73055}, + expr: &ruleRefExpr{ + pos: position{line: 1974, col: 73, offset: 73055}, + name: "Space", + }, + }, + &andExpr{ + pos: position{line: 1974, col: 80, offset: 73062}, + expr: &choiceExpr{ + pos: position{line: 1974, col: 82, offset: 73064}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 1974, col: 82, offset: 73064}, + name: "EOL", + }, + &ruleRefExpr{ + pos: position{line: 1974, col: 88, offset: 73070}, + name: "Callout", + }, + }, + }, + }, + }, + }, + }, + }, + { + name: "QuotedTextSubstitution", + pos: position{line: 1979, col: 1, offset: 73172}, + expr: &actionExpr{ + pos: position{line: 1979, col: 27, offset: 73198}, + run: (*parser).callonQuotedTextSubstitution1, + expr: &labeledExpr{ + pos: position{line: 1979, col: 27, offset: 73198}, + label: "elements", + expr: &oneOrMoreExpr{ + pos: position{line: 1979, col: 36, offset: 73207}, + expr: &choiceExpr{ + pos: position{line: 1979, col: 37, offset: 73208}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 1979, col: 37, offset: 73208}, + name: "InlineWord", + }, + &oneOrMoreExpr{ + pos: position{line: 1980, col: 11, offset: 73259}, + expr: &ruleRefExpr{ + pos: position{line: 1980, col: 11, offset: 73259}, + name: "Space", + }, + }, + &ruleRefExpr{ + pos: position{line: 1981, col: 11, offset: 73277}, + name: "QuotedText", + }, + &ruleRefExpr{ + pos: position{line: 1982, col: 11, offset: 73299}, + name: "AnyChar", + }, + &ruleRefExpr{ + pos: position{line: 1983, col: 11, offset: 73317}, + name: "Newline", + }, + }, + }, + }, + }, + }, + }, + { + name: "InlineMacrosSubstitution", + pos: position{line: 1988, col: 1, offset: 73442}, + expr: &actionExpr{ + pos: position{line: 1988, col: 29, offset: 73470}, + run: (*parser).callonInlineMacrosSubstitution1, + expr: &labeledExpr{ + pos: position{line: 1988, col: 29, offset: 73470}, + label: "elements", + expr: &oneOrMoreExpr{ + pos: position{line: 1988, col: 38, offset: 73479}, + expr: &choiceExpr{ + pos: position{line: 1988, col: 39, offset: 73480}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 1988, col: 39, offset: 73480}, + name: "InlineWord", + }, + &oneOrMoreExpr{ + pos: position{line: 1989, col: 11, offset: 73531}, + expr: &ruleRefExpr{ + pos: position{line: 1989, col: 11, offset: 73531}, + name: "Space", + }, + }, + &ruleRefExpr{ + pos: position{line: 1990, col: 11, offset: 73549}, + name: "InlineMacros", + }, + &ruleRefExpr{ + pos: position{line: 1991, col: 11, offset: 73572}, + name: "AnyChar", + }, + &ruleRefExpr{ + pos: position{line: 1992, col: 11, offset: 73590}, + name: "Newline", + }, + }, + }, + }, + }, + }, + }, + { + name: "AttributesSubstitution", + pos: position{line: 1997, col: 1, offset: 73719}, + expr: &actionExpr{ + pos: position{line: 1997, col: 27, offset: 73745}, + run: (*parser).callonAttributesSubstitution1, + expr: &labeledExpr{ + pos: position{line: 1997, col: 27, offset: 73745}, + label: "elements", + expr: &oneOrMoreExpr{ + pos: position{line: 1997, col: 36, offset: 73754}, + expr: &choiceExpr{ + pos: position{line: 1997, col: 37, offset: 73755}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 1997, col: 37, offset: 73755}, + name: "InlineWord", + }, + &oneOrMoreExpr{ + pos: position{line: 1998, col: 11, offset: 73806}, + expr: &ruleRefExpr{ + pos: position{line: 1998, col: 11, offset: 73806}, + name: "Space", + }, + }, + &ruleRefExpr{ + pos: position{line: 1999, col: 11, offset: 73824}, + name: "AttributeSubstitution", + }, + &ruleRefExpr{ + pos: position{line: 2000, col: 11, offset: 73856}, + name: "AnyChar", + }, + &ruleRefExpr{ + pos: position{line: 2001, col: 11, offset: 73874}, + name: "Newline", + }, + }, + }, + }, + }, + }, + }, + { + name: "NoneSubstitution", + pos: position{line: 2006, col: 1, offset: 73996}, + expr: &oneOrMoreExpr{ + pos: position{line: 2006, col: 21, offset: 74016}, + expr: &choiceExpr{ + pos: position{line: 2007, col: 5, offset: 74022}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 2007, col: 5, offset: 74022}, + name: "SingleLineComment", + }, + &actionExpr{ + pos: position{line: 2008, col: 8, offset: 74048}, + run: (*parser).callonNoneSubstitution4, + expr: &seqExpr{ + pos: position{line: 2008, col: 8, offset: 74048}, + exprs: []interface{}{ + &oneOrMoreExpr{ + pos: position{line: 2008, col: 8, offset: 74048}, + expr: &charClassMatcher{ + pos: position{line: 2008, col: 8, offset: 74048}, + val: "[^\\r\\n]", + chars: []rune{'\r', '\n'}, + ignoreCase: false, + inverted: true, + }, + }, + &ruleRefExpr{ + pos: position{line: 2008, col: 17, offset: 74057}, + name: "EOL", }, }, }, @@ -14314,44 +14650,44 @@ var g = &grammar{ }, }, { - name: "VerseBlockContent", - pos: position{line: 1940, col: 1, offset: 72019}, + name: "VerseBlockContentSubstitution", + pos: position{line: 2013, col: 1, offset: 74204}, expr: &zeroOrMoreExpr{ - pos: position{line: 1940, col: 22, offset: 72040}, + pos: position{line: 2013, col: 34, offset: 74237}, expr: &ruleRefExpr{ - pos: position{line: 1940, col: 22, offset: 72040}, + pos: position{line: 2013, col: 34, offset: 74237}, name: "VerseBlockElement", }, }, }, { name: "VerseBlockElement", - pos: position{line: 1942, col: 1, offset: 72060}, + pos: position{line: 2015, col: 1, offset: 74257}, expr: &actionExpr{ - pos: position{line: 1942, col: 22, offset: 72081}, + pos: position{line: 2015, col: 22, offset: 74278}, run: (*parser).callonVerseBlockElement1, expr: &seqExpr{ - pos: position{line: 1942, col: 22, offset: 72081}, + pos: position{line: 2015, col: 22, offset: 74278}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1942, col: 22, offset: 72081}, + pos: position{line: 2015, col: 22, offset: 74278}, expr: &ruleRefExpr{ - pos: position{line: 1942, col: 23, offset: 72082}, + pos: position{line: 2015, col: 23, offset: 74279}, name: "EOF", }, }, &labeledExpr{ - pos: position{line: 1942, col: 27, offset: 72086}, + pos: position{line: 2015, col: 27, offset: 74283}, label: "element", expr: &choiceExpr{ - pos: position{line: 1942, col: 36, offset: 72095}, + pos: position{line: 2015, col: 36, offset: 74292}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1942, col: 36, offset: 72095}, + pos: position{line: 2015, col: 36, offset: 74292}, name: "BlankLine", }, &ruleRefExpr{ - pos: position{line: 1942, col: 48, offset: 72107}, + pos: position{line: 2015, col: 48, offset: 74304}, name: "VerseBlockParagraph", }, }, @@ -14363,17 +14699,17 @@ var g = &grammar{ }, { name: "VerseBlockParagraph", - pos: position{line: 1946, col: 1, offset: 72157}, + pos: position{line: 2019, col: 1, offset: 74354}, expr: &actionExpr{ - pos: position{line: 1946, col: 24, offset: 72180}, + pos: position{line: 2019, col: 24, offset: 74377}, run: (*parser).callonVerseBlockParagraph1, expr: &labeledExpr{ - pos: position{line: 1946, col: 24, offset: 72180}, + pos: position{line: 2019, col: 24, offset: 74377}, label: "lines", expr: &oneOrMoreExpr{ - pos: position{line: 1946, col: 30, offset: 72186}, + pos: position{line: 2019, col: 30, offset: 74383}, expr: &ruleRefExpr{ - pos: position{line: 1946, col: 31, offset: 72187}, + pos: position{line: 2019, col: 31, offset: 74384}, name: "VerseBlockParagraphLine", }, }, @@ -14382,26 +14718,26 @@ var g = &grammar{ }, { name: "VerseBlockParagraphLine", - pos: position{line: 1950, col: 1, offset: 72277}, + pos: position{line: 2023, col: 1, offset: 74474}, expr: &actionExpr{ - pos: position{line: 1950, col: 28, offset: 72304}, + pos: position{line: 2023, col: 28, offset: 74501}, run: (*parser).callonVerseBlockParagraphLine1, expr: &seqExpr{ - pos: position{line: 1950, col: 28, offset: 72304}, + pos: position{line: 2023, col: 28, offset: 74501}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1950, col: 28, offset: 72304}, + pos: position{line: 2023, col: 28, offset: 74501}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 1950, col: 37, offset: 72313}, + pos: position{line: 2023, col: 37, offset: 74510}, expr: &ruleRefExpr{ - pos: position{line: 1950, col: 38, offset: 72314}, + pos: position{line: 2023, col: 38, offset: 74511}, name: "InlineElement", }, }, }, &ruleRefExpr{ - pos: position{line: 1950, col: 54, offset: 72330}, + pos: position{line: 2023, col: 54, offset: 74527}, name: "EOL", }, }, @@ -14410,62 +14746,62 @@ var g = &grammar{ }, { name: "Table", - pos: position{line: 1957, col: 1, offset: 72572}, + pos: position{line: 2030, col: 1, offset: 74769}, expr: &actionExpr{ - pos: position{line: 1957, col: 10, offset: 72581}, + pos: position{line: 2030, col: 10, offset: 74778}, run: (*parser).callonTable1, expr: &seqExpr{ - pos: position{line: 1957, col: 10, offset: 72581}, + pos: position{line: 2030, col: 10, offset: 74778}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 1957, col: 10, offset: 72581}, + pos: position{line: 2030, col: 10, offset: 74778}, label: "attrs", expr: &zeroOrOneExpr{ - pos: position{line: 1957, col: 16, offset: 72587}, + pos: position{line: 2030, col: 16, offset: 74784}, expr: &zeroOrMoreExpr{ - pos: position{line: 1957, col: 17, offset: 72588}, + pos: position{line: 2030, col: 17, offset: 74785}, expr: &ruleRefExpr{ - pos: position{line: 1957, col: 17, offset: 72588}, + pos: position{line: 2030, col: 17, offset: 74785}, name: "BlockAttrs", }, }, }, }, &ruleRefExpr{ - pos: position{line: 1957, col: 31, offset: 72602}, + pos: position{line: 2030, col: 31, offset: 74799}, name: "TableDelimiter", }, &labeledExpr{ - pos: position{line: 1958, col: 5, offset: 72621}, + pos: position{line: 2031, col: 5, offset: 74818}, label: "header", expr: &zeroOrOneExpr{ - pos: position{line: 1958, col: 12, offset: 72628}, + pos: position{line: 2031, col: 12, offset: 74825}, expr: &ruleRefExpr{ - pos: position{line: 1958, col: 13, offset: 72629}, + pos: position{line: 2031, col: 13, offset: 74826}, name: "TableLineHeader", }, }, }, &labeledExpr{ - pos: position{line: 1959, col: 5, offset: 72651}, + pos: position{line: 2032, col: 5, offset: 74848}, label: "lines", expr: &zeroOrMoreExpr{ - pos: position{line: 1959, col: 11, offset: 72657}, + pos: position{line: 2032, col: 11, offset: 74854}, expr: &ruleRefExpr{ - pos: position{line: 1959, col: 12, offset: 72658}, + pos: position{line: 2032, col: 12, offset: 74855}, name: "TableLine", }, }, }, &choiceExpr{ - pos: position{line: 1960, col: 6, offset: 72675}, + pos: position{line: 2033, col: 6, offset: 74872}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1960, col: 6, offset: 72675}, + pos: position{line: 2033, col: 6, offset: 74872}, name: "TableDelimiter", }, &ruleRefExpr{ - pos: position{line: 1960, col: 23, offset: 72692}, + pos: position{line: 2033, col: 23, offset: 74889}, name: "EOF", }, }, @@ -14476,20 +14812,20 @@ var g = &grammar{ }, { name: "TableCellSeparator", - pos: position{line: 1964, col: 1, offset: 72802}, + pos: position{line: 2037, col: 1, offset: 74999}, expr: &seqExpr{ - pos: position{line: 1964, col: 23, offset: 72824}, + pos: position{line: 2037, col: 23, offset: 75021}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1964, col: 23, offset: 72824}, + pos: position{line: 2037, col: 23, offset: 75021}, val: "|", ignoreCase: false, want: "\"|\"", }, &zeroOrMoreExpr{ - pos: position{line: 1964, col: 27, offset: 72828}, + pos: position{line: 2037, col: 27, offset: 75025}, expr: &ruleRefExpr{ - pos: position{line: 1964, col: 27, offset: 72828}, + pos: position{line: 2037, col: 27, offset: 75025}, name: "Space", }, }, @@ -14498,25 +14834,25 @@ var g = &grammar{ }, { name: "TableDelimiter", - pos: position{line: 1966, col: 1, offset: 72836}, + pos: position{line: 2039, col: 1, offset: 75033}, expr: &seqExpr{ - pos: position{line: 1966, col: 19, offset: 72854}, + pos: position{line: 2039, col: 19, offset: 75051}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1966, col: 19, offset: 72854}, + pos: position{line: 2039, col: 19, offset: 75051}, val: "|===", ignoreCase: false, want: "\"|===\"", }, &zeroOrMoreExpr{ - pos: position{line: 1966, col: 26, offset: 72861}, + pos: position{line: 2039, col: 26, offset: 75058}, expr: &ruleRefExpr{ - pos: position{line: 1966, col: 26, offset: 72861}, + pos: position{line: 2039, col: 26, offset: 75058}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1966, col: 33, offset: 72868}, + pos: position{line: 2039, col: 33, offset: 75065}, name: "EOL", }, }, @@ -14524,37 +14860,37 @@ var g = &grammar{ }, { name: "TableLineHeader", - pos: position{line: 1969, col: 1, offset: 72936}, + pos: position{line: 2042, col: 1, offset: 75133}, expr: &actionExpr{ - pos: position{line: 1969, col: 20, offset: 72955}, + pos: position{line: 2042, col: 20, offset: 75152}, run: (*parser).callonTableLineHeader1, expr: &seqExpr{ - pos: position{line: 1969, col: 20, offset: 72955}, + pos: position{line: 2042, col: 20, offset: 75152}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1969, col: 20, offset: 72955}, + pos: position{line: 2042, col: 20, offset: 75152}, expr: &ruleRefExpr{ - pos: position{line: 1969, col: 21, offset: 72956}, + pos: position{line: 2042, col: 21, offset: 75153}, name: "TableDelimiter", }, }, &labeledExpr{ - pos: position{line: 1969, col: 36, offset: 72971}, + pos: position{line: 2042, col: 36, offset: 75168}, label: "cells", expr: &oneOrMoreExpr{ - pos: position{line: 1969, col: 42, offset: 72977}, + pos: position{line: 2042, col: 42, offset: 75174}, expr: &ruleRefExpr{ - pos: position{line: 1969, col: 43, offset: 72978}, + pos: position{line: 2042, col: 43, offset: 75175}, name: "TableCell", }, }, }, &ruleRefExpr{ - pos: position{line: 1969, col: 55, offset: 72990}, + pos: position{line: 2042, col: 55, offset: 75187}, name: "EOL", }, &ruleRefExpr{ - pos: position{line: 1969, col: 59, offset: 72994}, + pos: position{line: 2042, col: 59, offset: 75191}, name: "BlankLine", }, }, @@ -14563,39 +14899,39 @@ var g = &grammar{ }, { name: "TableLine", - pos: position{line: 1973, col: 1, offset: 73062}, + pos: position{line: 2046, col: 1, offset: 75259}, expr: &actionExpr{ - pos: position{line: 1973, col: 14, offset: 73075}, + pos: position{line: 2046, col: 14, offset: 75272}, run: (*parser).callonTableLine1, expr: &seqExpr{ - pos: position{line: 1973, col: 14, offset: 73075}, + pos: position{line: 2046, col: 14, offset: 75272}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1973, col: 14, offset: 73075}, + pos: position{line: 2046, col: 14, offset: 75272}, expr: &ruleRefExpr{ - pos: position{line: 1973, col: 15, offset: 73076}, + pos: position{line: 2046, col: 15, offset: 75273}, name: "TableDelimiter", }, }, &labeledExpr{ - pos: position{line: 1973, col: 30, offset: 73091}, + pos: position{line: 2046, col: 30, offset: 75288}, label: "cells", expr: &oneOrMoreExpr{ - pos: position{line: 1973, col: 36, offset: 73097}, + pos: position{line: 2046, col: 36, offset: 75294}, expr: &ruleRefExpr{ - pos: position{line: 1973, col: 37, offset: 73098}, + pos: position{line: 2046, col: 37, offset: 75295}, name: "TableCell", }, }, }, &ruleRefExpr{ - pos: position{line: 1973, col: 49, offset: 73110}, + pos: position{line: 2046, col: 49, offset: 75307}, name: "EOL", }, &zeroOrMoreExpr{ - pos: position{line: 1973, col: 53, offset: 73114}, + pos: position{line: 2046, col: 53, offset: 75311}, expr: &ruleRefExpr{ - pos: position{line: 1973, col: 53, offset: 73114}, + pos: position{line: 2046, col: 53, offset: 75311}, name: "BlankLine", }, }, @@ -14605,54 +14941,54 @@ var g = &grammar{ }, { name: "TableCell", - pos: position{line: 1977, col: 1, offset: 73183}, + pos: position{line: 2050, col: 1, offset: 75380}, expr: &actionExpr{ - pos: position{line: 1977, col: 14, offset: 73196}, + pos: position{line: 2050, col: 14, offset: 75393}, run: (*parser).callonTableCell1, expr: &seqExpr{ - pos: position{line: 1977, col: 14, offset: 73196}, + pos: position{line: 2050, col: 14, offset: 75393}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1977, col: 14, offset: 73196}, + pos: position{line: 2050, col: 14, offset: 75393}, name: "TableCellSeparator", }, &labeledExpr{ - pos: position{line: 1977, col: 33, offset: 73215}, + pos: position{line: 2050, col: 33, offset: 75412}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 1977, col: 42, offset: 73224}, + pos: position{line: 2050, col: 42, offset: 75421}, expr: &seqExpr{ - pos: position{line: 1977, col: 43, offset: 73225}, + pos: position{line: 2050, col: 43, offset: 75422}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1977, col: 43, offset: 73225}, + pos: position{line: 2050, col: 43, offset: 75422}, expr: &ruleRefExpr{ - pos: position{line: 1977, col: 44, offset: 73226}, + pos: position{line: 2050, col: 44, offset: 75423}, name: "TableCellSeparator", }, }, ¬Expr{ - pos: position{line: 1977, col: 63, offset: 73245}, + pos: position{line: 2050, col: 63, offset: 75442}, expr: &ruleRefExpr{ - pos: position{line: 1977, col: 64, offset: 73246}, + pos: position{line: 2050, col: 64, offset: 75443}, name: "EOL", }, }, &zeroOrMoreExpr{ - pos: position{line: 1977, col: 68, offset: 73250}, + pos: position{line: 2050, col: 68, offset: 75447}, expr: &ruleRefExpr{ - pos: position{line: 1977, col: 68, offset: 73250}, + pos: position{line: 2050, col: 68, offset: 75447}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1977, col: 75, offset: 73257}, + pos: position{line: 2050, col: 75, offset: 75454}, name: "InlineElement", }, &zeroOrMoreExpr{ - pos: position{line: 1977, col: 89, offset: 73271}, + pos: position{line: 2050, col: 89, offset: 75468}, expr: &ruleRefExpr{ - pos: position{line: 1977, col: 89, offset: 73271}, + pos: position{line: 2050, col: 89, offset: 75468}, name: "Space", }, }, @@ -14666,25 +15002,25 @@ var g = &grammar{ }, { name: "CommentBlockDelimiter", - pos: position{line: 1984, col: 1, offset: 73520}, + pos: position{line: 2057, col: 1, offset: 75717}, expr: &seqExpr{ - pos: position{line: 1984, col: 26, offset: 73545}, + pos: position{line: 2057, col: 26, offset: 75742}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1984, col: 26, offset: 73545}, + pos: position{line: 2057, col: 26, offset: 75742}, val: "////", ignoreCase: false, want: "\"////\"", }, &zeroOrMoreExpr{ - pos: position{line: 1984, col: 33, offset: 73552}, + pos: position{line: 2057, col: 33, offset: 75749}, expr: &ruleRefExpr{ - pos: position{line: 1984, col: 33, offset: 73552}, + pos: position{line: 2057, col: 33, offset: 75749}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1984, col: 40, offset: 73559}, + pos: position{line: 2057, col: 40, offset: 75756}, name: "EOL", }, }, @@ -14692,25 +15028,25 @@ var g = &grammar{ }, { name: "CommentBlockStartDelimiter", - pos: position{line: 1986, col: 1, offset: 73564}, + pos: position{line: 2059, col: 1, offset: 75761}, expr: &seqExpr{ - pos: position{line: 1986, col: 31, offset: 73594}, + pos: position{line: 2059, col: 31, offset: 75791}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1986, col: 31, offset: 73594}, + pos: position{line: 2059, col: 31, offset: 75791}, val: "////", ignoreCase: false, want: "\"////\"", }, &zeroOrMoreExpr{ - pos: position{line: 1986, col: 38, offset: 73601}, + pos: position{line: 2059, col: 38, offset: 75798}, expr: &ruleRefExpr{ - pos: position{line: 1986, col: 38, offset: 73601}, + pos: position{line: 2059, col: 38, offset: 75798}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1986, col: 45, offset: 73608}, + pos: position{line: 2059, col: 45, offset: 75805}, name: "EOL", }, }, @@ -14718,34 +15054,34 @@ var g = &grammar{ }, { name: "CommentBlockEndDelimiter", - pos: position{line: 1988, col: 1, offset: 73613}, + pos: position{line: 2061, col: 1, offset: 75810}, expr: &choiceExpr{ - pos: position{line: 1988, col: 29, offset: 73641}, + pos: position{line: 2061, col: 29, offset: 75838}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 1988, col: 30, offset: 73642}, + pos: position{line: 2061, col: 30, offset: 75839}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1988, col: 30, offset: 73642}, + pos: position{line: 2061, col: 30, offset: 75839}, val: "////", ignoreCase: false, want: "\"////\"", }, &zeroOrMoreExpr{ - pos: position{line: 1988, col: 37, offset: 73649}, + pos: position{line: 2061, col: 37, offset: 75846}, expr: &ruleRefExpr{ - pos: position{line: 1988, col: 37, offset: 73649}, + pos: position{line: 2061, col: 37, offset: 75846}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 1988, col: 44, offset: 73656}, + pos: position{line: 2061, col: 44, offset: 75853}, name: "EOL", }, }, }, &ruleRefExpr{ - pos: position{line: 1988, col: 51, offset: 73663}, + pos: position{line: 2061, col: 51, offset: 75860}, name: "EOF", }, }, @@ -14753,27 +15089,27 @@ var g = &grammar{ }, { name: "CommentBlock", - pos: position{line: 1990, col: 1, offset: 73668}, + pos: position{line: 2063, col: 1, offset: 75865}, expr: &actionExpr{ - pos: position{line: 1990, col: 17, offset: 73684}, + pos: position{line: 2063, col: 17, offset: 75881}, run: (*parser).callonCommentBlock1, expr: &seqExpr{ - pos: position{line: 1990, col: 17, offset: 73684}, + pos: position{line: 2063, col: 17, offset: 75881}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1990, col: 17, offset: 73684}, + pos: position{line: 2063, col: 17, offset: 75881}, name: "CommentBlockStartDelimiter", }, &labeledExpr{ - pos: position{line: 1990, col: 44, offset: 73711}, + pos: position{line: 2063, col: 44, offset: 75908}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1990, col: 53, offset: 73720}, + pos: position{line: 2063, col: 53, offset: 75917}, name: "CommentBlockRawContent", }, }, &ruleRefExpr{ - pos: position{line: 1990, col: 78, offset: 73745}, + pos: position{line: 2063, col: 78, offset: 75942}, name: "CommentBlockEndDelimiter", }, }, @@ -14782,27 +15118,27 @@ var g = &grammar{ }, { name: "CommentBlockRawContent", - pos: position{line: 1994, col: 1, offset: 73855}, + pos: position{line: 2067, col: 1, offset: 76052}, expr: &zeroOrMoreExpr{ - pos: position{line: 1994, col: 27, offset: 73881}, + pos: position{line: 2067, col: 27, offset: 76078}, expr: &actionExpr{ - pos: position{line: 1994, col: 28, offset: 73882}, + pos: position{line: 2067, col: 28, offset: 76079}, run: (*parser).callonCommentBlockRawContent2, expr: &seqExpr{ - pos: position{line: 1994, col: 28, offset: 73882}, + pos: position{line: 2067, col: 28, offset: 76079}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1994, col: 28, offset: 73882}, + pos: position{line: 2067, col: 28, offset: 76079}, expr: &ruleRefExpr{ - pos: position{line: 1994, col: 29, offset: 73883}, + pos: position{line: 2067, col: 29, offset: 76080}, name: "CommentBlockEndDelimiter", }, }, &labeledExpr{ - pos: position{line: 1994, col: 54, offset: 73908}, + pos: position{line: 2067, col: 54, offset: 76105}, label: "line", expr: &ruleRefExpr{ - pos: position{line: 1994, col: 60, offset: 73914}, + pos: position{line: 2067, col: 60, offset: 76111}, name: "DelimitedBlockRawLine", }, }, @@ -14813,43 +15149,36 @@ var g = &grammar{ }, { name: "SingleLineComment", - pos: position{line: 1998, col: 1, offset: 74058}, + pos: position{line: 2071, col: 1, offset: 76255}, expr: &actionExpr{ - pos: position{line: 1998, col: 22, offset: 74079}, + pos: position{line: 2071, col: 22, offset: 76276}, run: (*parser).callonSingleLineComment1, expr: &seqExpr{ - pos: position{line: 1998, col: 22, offset: 74079}, + pos: position{line: 2071, col: 22, offset: 76276}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 1998, col: 22, offset: 74079}, + pos: position{line: 2071, col: 22, offset: 76276}, expr: &ruleRefExpr{ - pos: position{line: 1998, col: 23, offset: 74080}, + pos: position{line: 2071, col: 23, offset: 76277}, name: "CommentBlockDelimiter", }, }, - &zeroOrMoreExpr{ - pos: position{line: 1998, col: 45, offset: 74102}, - expr: &ruleRefExpr{ - pos: position{line: 1998, col: 45, offset: 74102}, - name: "Space", - }, - }, &litMatcher{ - pos: position{line: 1998, col: 52, offset: 74109}, + pos: position{line: 2071, col: 45, offset: 76299}, val: "//", ignoreCase: false, want: "\"//\"", }, &labeledExpr{ - pos: position{line: 1998, col: 57, offset: 74114}, + pos: position{line: 2071, col: 50, offset: 76304}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 1998, col: 66, offset: 74123}, + pos: position{line: 2071, col: 59, offset: 76313}, name: "SingleLineCommentContent", }, }, &ruleRefExpr{ - pos: position{line: 1998, col: 92, offset: 74149}, + pos: position{line: 2071, col: 85, offset: 76339}, name: "EOL", }, }, @@ -14858,14 +15187,14 @@ var g = &grammar{ }, { name: "SingleLineCommentContent", - pos: position{line: 2002, col: 1, offset: 74214}, + pos: position{line: 2075, col: 1, offset: 76404}, expr: &actionExpr{ - pos: position{line: 2002, col: 29, offset: 74242}, + pos: position{line: 2075, col: 29, offset: 76432}, run: (*parser).callonSingleLineCommentContent1, expr: &zeroOrMoreExpr{ - pos: position{line: 2002, col: 29, offset: 74242}, + pos: position{line: 2075, col: 29, offset: 76432}, expr: &charClassMatcher{ - pos: position{line: 2002, col: 29, offset: 74242}, + pos: position{line: 2075, col: 29, offset: 76432}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -14876,20 +15205,20 @@ var g = &grammar{ }, { name: "LiteralBlock", - pos: position{line: 2010, col: 1, offset: 74555}, + pos: position{line: 2083, col: 1, offset: 76745}, expr: &choiceExpr{ - pos: position{line: 2010, col: 17, offset: 74571}, + pos: position{line: 2083, col: 17, offset: 76761}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 2010, col: 17, offset: 74571}, + pos: position{line: 2083, col: 17, offset: 76761}, name: "ParagraphWithLiteralAttribute", }, &ruleRefExpr{ - pos: position{line: 2010, col: 49, offset: 74603}, + pos: position{line: 2083, col: 49, offset: 76793}, name: "ParagraphWithHeadingSpaces", }, &ruleRefExpr{ - pos: position{line: 2010, col: 78, offset: 74632}, + pos: position{line: 2083, col: 78, offset: 76822}, name: "ParagraphWithLiteralBlockDelimiter", }, }, @@ -14897,9 +15226,9 @@ var g = &grammar{ }, { name: "LiteralBlockDelimiter", - pos: position{line: 2012, col: 1, offset: 74668}, + pos: position{line: 2085, col: 1, offset: 76858}, expr: &litMatcher{ - pos: position{line: 2012, col: 26, offset: 74693}, + pos: position{line: 2085, col: 26, offset: 76883}, val: "....", ignoreCase: false, want: "\"....\"", @@ -14907,29 +15236,29 @@ var g = &grammar{ }, { name: "ParagraphWithHeadingSpaces", - pos: position{line: 2015, col: 1, offset: 74765}, + pos: position{line: 2088, col: 1, offset: 76955}, expr: &actionExpr{ - pos: position{line: 2015, col: 31, offset: 74795}, + pos: position{line: 2088, col: 31, offset: 76985}, run: (*parser).callonParagraphWithHeadingSpaces1, expr: &seqExpr{ - pos: position{line: 2015, col: 31, offset: 74795}, + pos: position{line: 2088, col: 31, offset: 76985}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 2015, col: 31, offset: 74795}, + pos: position{line: 2088, col: 31, offset: 76985}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 2015, col: 42, offset: 74806}, + pos: position{line: 2088, col: 42, offset: 76996}, expr: &ruleRefExpr{ - pos: position{line: 2015, col: 43, offset: 74807}, + pos: position{line: 2088, col: 43, offset: 76997}, name: "Attributes", }, }, }, &labeledExpr{ - pos: position{line: 2015, col: 56, offset: 74820}, + pos: position{line: 2088, col: 56, offset: 77010}, label: "lines", expr: &ruleRefExpr{ - pos: position{line: 2015, col: 63, offset: 74827}, + pos: position{line: 2088, col: 63, offset: 77017}, name: "ParagraphWithHeadingSpacesLines", }, }, @@ -14939,33 +15268,33 @@ var g = &grammar{ }, { name: "ParagraphWithHeadingSpacesLines", - pos: position{line: 2020, col: 1, offset: 75057}, + pos: position{line: 2093, col: 1, offset: 77247}, expr: &actionExpr{ - pos: position{line: 2021, col: 5, offset: 75097}, + pos: position{line: 2094, col: 5, offset: 77287}, run: (*parser).callonParagraphWithHeadingSpacesLines1, expr: &seqExpr{ - pos: position{line: 2021, col: 5, offset: 75097}, + pos: position{line: 2094, col: 5, offset: 77287}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 2021, col: 5, offset: 75097}, + pos: position{line: 2094, col: 5, offset: 77287}, label: "firstLine", expr: &actionExpr{ - pos: position{line: 2021, col: 16, offset: 75108}, + pos: position{line: 2094, col: 16, offset: 77298}, run: (*parser).callonParagraphWithHeadingSpacesLines4, expr: &seqExpr{ - pos: position{line: 2021, col: 16, offset: 75108}, + pos: position{line: 2094, col: 16, offset: 77298}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 2021, col: 16, offset: 75108}, + pos: position{line: 2094, col: 16, offset: 77298}, expr: &ruleRefExpr{ - pos: position{line: 2021, col: 16, offset: 75108}, + pos: position{line: 2094, col: 16, offset: 77298}, name: "Space", }, }, &oneOrMoreExpr{ - pos: position{line: 2021, col: 23, offset: 75115}, + pos: position{line: 2094, col: 23, offset: 77305}, expr: &charClassMatcher{ - pos: position{line: 2021, col: 23, offset: 75115}, + pos: position{line: 2094, col: 23, offset: 77305}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -14977,37 +15306,37 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 2023, col: 8, offset: 75168}, + pos: position{line: 2096, col: 8, offset: 77358}, name: "EOL", }, &labeledExpr{ - pos: position{line: 2024, col: 5, offset: 75231}, + pos: position{line: 2097, col: 5, offset: 77421}, label: "otherLines", expr: &zeroOrMoreExpr{ - pos: position{line: 2024, col: 16, offset: 75242}, + pos: position{line: 2097, col: 16, offset: 77432}, expr: &actionExpr{ - pos: position{line: 2025, col: 9, offset: 75252}, + pos: position{line: 2098, col: 9, offset: 77442}, run: (*parser).callonParagraphWithHeadingSpacesLines13, expr: &seqExpr{ - pos: position{line: 2025, col: 9, offset: 75252}, + pos: position{line: 2098, col: 9, offset: 77442}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 2025, col: 9, offset: 75252}, + pos: position{line: 2098, col: 9, offset: 77442}, expr: &ruleRefExpr{ - pos: position{line: 2025, col: 10, offset: 75253}, + pos: position{line: 2098, col: 10, offset: 77443}, name: "BlankLine", }, }, &labeledExpr{ - pos: position{line: 2026, col: 9, offset: 75272}, + pos: position{line: 2099, col: 9, offset: 77462}, label: "otherLine", expr: &actionExpr{ - pos: position{line: 2026, col: 20, offset: 75283}, + pos: position{line: 2099, col: 20, offset: 77473}, run: (*parser).callonParagraphWithHeadingSpacesLines18, expr: &oneOrMoreExpr{ - pos: position{line: 2026, col: 20, offset: 75283}, + pos: position{line: 2099, col: 20, offset: 77473}, expr: &charClassMatcher{ - pos: position{line: 2026, col: 20, offset: 75283}, + pos: position{line: 2099, col: 20, offset: 77473}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -15017,7 +15346,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 2028, col: 12, offset: 75344}, + pos: position{line: 2101, col: 12, offset: 77534}, name: "EOL", }, }, @@ -15031,72 +15360,72 @@ var g = &grammar{ }, { name: "ParagraphWithLiteralBlockDelimiter", - pos: position{line: 2035, col: 1, offset: 75574}, + pos: position{line: 2108, col: 1, offset: 77764}, expr: &actionExpr{ - pos: position{line: 2035, col: 39, offset: 75612}, + pos: position{line: 2108, col: 39, offset: 77802}, run: (*parser).callonParagraphWithLiteralBlockDelimiter1, expr: &seqExpr{ - pos: position{line: 2035, col: 39, offset: 75612}, + pos: position{line: 2108, col: 39, offset: 77802}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 2035, col: 39, offset: 75612}, + pos: position{line: 2108, col: 39, offset: 77802}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 2035, col: 50, offset: 75623}, + pos: position{line: 2108, col: 50, offset: 77813}, expr: &ruleRefExpr{ - pos: position{line: 2035, col: 51, offset: 75624}, + pos: position{line: 2108, col: 51, offset: 77814}, name: "Attributes", }, }, }, &ruleRefExpr{ - pos: position{line: 2036, col: 9, offset: 75645}, + pos: position{line: 2109, col: 9, offset: 77835}, name: "LiteralBlockDelimiter", }, &zeroOrMoreExpr{ - pos: position{line: 2036, col: 31, offset: 75667}, + pos: position{line: 2109, col: 31, offset: 77857}, expr: &ruleRefExpr{ - pos: position{line: 2036, col: 31, offset: 75667}, + pos: position{line: 2109, col: 31, offset: 77857}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 2036, col: 38, offset: 75674}, + pos: position{line: 2109, col: 38, offset: 77864}, name: "Newline", }, &labeledExpr{ - pos: position{line: 2036, col: 46, offset: 75682}, + pos: position{line: 2109, col: 46, offset: 77872}, label: "lines", expr: &ruleRefExpr{ - pos: position{line: 2036, col: 53, offset: 75689}, + pos: position{line: 2109, col: 53, offset: 77879}, name: "ParagraphWithLiteralBlockDelimiterLines", }, }, &choiceExpr{ - pos: position{line: 2036, col: 95, offset: 75731}, + pos: position{line: 2109, col: 95, offset: 77921}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 2036, col: 96, offset: 75732}, + pos: position{line: 2109, col: 96, offset: 77922}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 2036, col: 96, offset: 75732}, + pos: position{line: 2109, col: 96, offset: 77922}, name: "LiteralBlockDelimiter", }, &zeroOrMoreExpr{ - pos: position{line: 2036, col: 118, offset: 75754}, + pos: position{line: 2109, col: 118, offset: 77944}, expr: &ruleRefExpr{ - pos: position{line: 2036, col: 118, offset: 75754}, + pos: position{line: 2109, col: 118, offset: 77944}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 2036, col: 125, offset: 75761}, + pos: position{line: 2109, col: 125, offset: 77951}, name: "EOL", }, }, }, &ruleRefExpr{ - pos: position{line: 2036, col: 132, offset: 75768}, + pos: position{line: 2109, col: 132, offset: 77958}, name: "EOF", }, }, @@ -15107,17 +15436,17 @@ var g = &grammar{ }, { name: "ParagraphWithLiteralBlockDelimiterLines", - pos: position{line: 2041, col: 1, offset: 75927}, + pos: position{line: 2114, col: 1, offset: 78117}, expr: &actionExpr{ - pos: position{line: 2041, col: 44, offset: 75970}, + pos: position{line: 2114, col: 44, offset: 78160}, run: (*parser).callonParagraphWithLiteralBlockDelimiterLines1, expr: &labeledExpr{ - pos: position{line: 2041, col: 44, offset: 75970}, + pos: position{line: 2114, col: 44, offset: 78160}, label: "lines", expr: &zeroOrMoreExpr{ - pos: position{line: 2041, col: 50, offset: 75976}, + pos: position{line: 2114, col: 50, offset: 78166}, expr: &ruleRefExpr{ - pos: position{line: 2041, col: 51, offset: 75977}, + pos: position{line: 2114, col: 51, offset: 78167}, name: "ParagraphWithLiteralBlockDelimiterLine", }, }, @@ -15126,33 +15455,33 @@ var g = &grammar{ }, { name: "ParagraphWithLiteralBlockDelimiterLine", - pos: position{line: 2045, col: 1, offset: 76061}, + pos: position{line: 2118, col: 1, offset: 78251}, expr: &actionExpr{ - pos: position{line: 2046, col: 5, offset: 76116}, + pos: position{line: 2119, col: 5, offset: 78306}, run: (*parser).callonParagraphWithLiteralBlockDelimiterLine1, expr: &seqExpr{ - pos: position{line: 2046, col: 5, offset: 76116}, + pos: position{line: 2119, col: 5, offset: 78306}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 2046, col: 5, offset: 76116}, + pos: position{line: 2119, col: 5, offset: 78306}, label: "line", expr: &actionExpr{ - pos: position{line: 2046, col: 11, offset: 76122}, + pos: position{line: 2119, col: 11, offset: 78312}, run: (*parser).callonParagraphWithLiteralBlockDelimiterLine4, expr: &seqExpr{ - pos: position{line: 2046, col: 11, offset: 76122}, + pos: position{line: 2119, col: 11, offset: 78312}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 2046, col: 11, offset: 76122}, + pos: position{line: 2119, col: 11, offset: 78312}, expr: &ruleRefExpr{ - pos: position{line: 2046, col: 12, offset: 76123}, + pos: position{line: 2119, col: 12, offset: 78313}, name: "LiteralBlockDelimiter", }, }, &zeroOrMoreExpr{ - pos: position{line: 2046, col: 34, offset: 76145}, + pos: position{line: 2119, col: 34, offset: 78335}, expr: &charClassMatcher{ - pos: position{line: 2046, col: 34, offset: 76145}, + pos: position{line: 2119, col: 34, offset: 78335}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -15164,7 +15493,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 2048, col: 8, offset: 76198}, + pos: position{line: 2121, col: 8, offset: 78388}, name: "EOL", }, }, @@ -15173,33 +15502,33 @@ var g = &grammar{ }, { name: "ParagraphWithLiteralAttribute", - pos: position{line: 2053, col: 1, offset: 76324}, + pos: position{line: 2126, col: 1, offset: 78514}, expr: &actionExpr{ - pos: position{line: 2054, col: 5, offset: 76362}, + pos: position{line: 2127, col: 5, offset: 78552}, run: (*parser).callonParagraphWithLiteralAttribute1, expr: &seqExpr{ - pos: position{line: 2054, col: 5, offset: 76362}, + pos: position{line: 2127, col: 5, offset: 78552}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 2054, col: 5, offset: 76362}, + pos: position{line: 2127, col: 5, offset: 78552}, label: "attributes", expr: &zeroOrOneExpr{ - pos: position{line: 2054, col: 16, offset: 76373}, + pos: position{line: 2127, col: 16, offset: 78563}, expr: &ruleRefExpr{ - pos: position{line: 2054, col: 17, offset: 76374}, + pos: position{line: 2127, col: 17, offset: 78564}, name: "Attributes", }, }, }, &andCodeExpr{ - pos: position{line: 2055, col: 5, offset: 76391}, + pos: position{line: 2128, col: 5, offset: 78581}, run: (*parser).callonParagraphWithLiteralAttribute6, }, &labeledExpr{ - pos: position{line: 2062, col: 5, offset: 76598}, + pos: position{line: 2135, col: 5, offset: 78788}, label: "lines", expr: &ruleRefExpr{ - pos: position{line: 2062, col: 12, offset: 76605}, + pos: position{line: 2135, col: 12, offset: 78795}, name: "ParagraphWithLiteralAttributeLines", }, }, @@ -15209,12 +15538,12 @@ var g = &grammar{ }, { name: "LiteralKind", - pos: position{line: 2066, col: 1, offset: 76755}, + pos: position{line: 2139, col: 1, offset: 78945}, expr: &actionExpr{ - pos: position{line: 2066, col: 16, offset: 76770}, + pos: position{line: 2139, col: 16, offset: 78960}, run: (*parser).callonLiteralKind1, expr: &litMatcher{ - pos: position{line: 2066, col: 16, offset: 76770}, + pos: position{line: 2139, col: 16, offset: 78960}, val: "literal", ignoreCase: false, want: "\"literal\"", @@ -15223,17 +15552,17 @@ var g = &grammar{ }, { name: "ParagraphWithLiteralAttributeLines", - pos: position{line: 2071, col: 1, offset: 76853}, + pos: position{line: 2144, col: 1, offset: 79043}, expr: &actionExpr{ - pos: position{line: 2071, col: 39, offset: 76891}, + pos: position{line: 2144, col: 39, offset: 79081}, run: (*parser).callonParagraphWithLiteralAttributeLines1, expr: &labeledExpr{ - pos: position{line: 2071, col: 39, offset: 76891}, + pos: position{line: 2144, col: 39, offset: 79081}, label: "lines", expr: &oneOrMoreExpr{ - pos: position{line: 2071, col: 45, offset: 76897}, + pos: position{line: 2144, col: 45, offset: 79087}, expr: &ruleRefExpr{ - pos: position{line: 2071, col: 46, offset: 76898}, + pos: position{line: 2144, col: 46, offset: 79088}, name: "ParagraphWithLiteralAttributeLine", }, }, @@ -15242,30 +15571,30 @@ var g = &grammar{ }, { name: "ParagraphWithLiteralAttributeLine", - pos: position{line: 2075, col: 1, offset: 76978}, + pos: position{line: 2148, col: 1, offset: 79168}, expr: &actionExpr{ - pos: position{line: 2075, col: 38, offset: 77015}, + pos: position{line: 2148, col: 38, offset: 79205}, run: (*parser).callonParagraphWithLiteralAttributeLine1, expr: &seqExpr{ - pos: position{line: 2075, col: 38, offset: 77015}, + pos: position{line: 2148, col: 38, offset: 79205}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 2075, col: 38, offset: 77015}, + pos: position{line: 2148, col: 38, offset: 79205}, expr: &ruleRefExpr{ - pos: position{line: 2075, col: 39, offset: 77016}, + pos: position{line: 2148, col: 39, offset: 79206}, name: "BlankLine", }, }, &labeledExpr{ - pos: position{line: 2075, col: 49, offset: 77026}, + pos: position{line: 2148, col: 49, offset: 79216}, label: "content", expr: &actionExpr{ - pos: position{line: 2075, col: 58, offset: 77035}, + pos: position{line: 2148, col: 58, offset: 79225}, run: (*parser).callonParagraphWithLiteralAttributeLine6, expr: &oneOrMoreExpr{ - pos: position{line: 2075, col: 58, offset: 77035}, + pos: position{line: 2148, col: 58, offset: 79225}, expr: &charClassMatcher{ - pos: position{line: 2075, col: 58, offset: 77035}, + pos: position{line: 2148, col: 58, offset: 79225}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -15275,7 +15604,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 2077, col: 4, offset: 77080}, + pos: position{line: 2150, col: 4, offset: 79270}, name: "EOL", }, }, @@ -15284,29 +15613,29 @@ var g = &grammar{ }, { name: "IndexTerm", - pos: position{line: 2084, col: 1, offset: 77266}, + pos: position{line: 2157, col: 1, offset: 79456}, expr: &actionExpr{ - pos: position{line: 2084, col: 14, offset: 77279}, + pos: position{line: 2157, col: 14, offset: 79469}, run: (*parser).callonIndexTerm1, expr: &seqExpr{ - pos: position{line: 2084, col: 14, offset: 77279}, + pos: position{line: 2157, col: 14, offset: 79469}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 2084, col: 14, offset: 77279}, + pos: position{line: 2157, col: 14, offset: 79469}, val: "((", ignoreCase: false, want: "\"((\"", }, &labeledExpr{ - pos: position{line: 2084, col: 19, offset: 77284}, + pos: position{line: 2157, col: 19, offset: 79474}, label: "term", expr: &ruleRefExpr{ - pos: position{line: 2084, col: 25, offset: 77290}, + pos: position{line: 2157, col: 25, offset: 79480}, name: "IndexTermContent", }, }, &litMatcher{ - pos: position{line: 2084, col: 43, offset: 77308}, + pos: position{line: 2157, col: 43, offset: 79498}, val: "))", ignoreCase: false, want: "\"))\"", @@ -15317,55 +15646,55 @@ var g = &grammar{ }, { name: "IndexTermContent", - pos: position{line: 2088, col: 1, offset: 77373}, + pos: position{line: 2161, col: 1, offset: 79563}, expr: &actionExpr{ - pos: position{line: 2088, col: 21, offset: 77393}, + pos: position{line: 2161, col: 21, offset: 79583}, run: (*parser).callonIndexTermContent1, expr: &labeledExpr{ - pos: position{line: 2088, col: 21, offset: 77393}, + pos: position{line: 2161, col: 21, offset: 79583}, label: "elements", expr: &oneOrMoreExpr{ - pos: position{line: 2088, col: 30, offset: 77402}, + pos: position{line: 2161, col: 30, offset: 79592}, expr: &choiceExpr{ - pos: position{line: 2088, col: 31, offset: 77403}, + pos: position{line: 2161, col: 31, offset: 79593}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 2088, col: 31, offset: 77403}, + pos: position{line: 2161, col: 31, offset: 79593}, name: "Word", }, &ruleRefExpr{ - pos: position{line: 2088, col: 38, offset: 77410}, + pos: position{line: 2161, col: 38, offset: 79600}, name: "QuotedString", }, &ruleRefExpr{ - pos: position{line: 2088, col: 53, offset: 77425}, + pos: position{line: 2161, col: 53, offset: 79615}, name: "QuotedText", }, &ruleRefExpr{ - pos: position{line: 2088, col: 66, offset: 77438}, + pos: position{line: 2161, col: 66, offset: 79628}, name: "Space", }, &ruleRefExpr{ - pos: position{line: 2088, col: 74, offset: 77446}, + pos: position{line: 2161, col: 74, offset: 79636}, name: "SpecialCharacter", }, &actionExpr{ - pos: position{line: 2088, col: 93, offset: 77465}, + pos: position{line: 2161, col: 93, offset: 79655}, run: (*parser).callonIndexTermContent10, expr: &seqExpr{ - pos: position{line: 2088, col: 94, offset: 77466}, + pos: position{line: 2161, col: 94, offset: 79656}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 2088, col: 94, offset: 77466}, + pos: position{line: 2161, col: 94, offset: 79656}, expr: &litMatcher{ - pos: position{line: 2088, col: 95, offset: 77467}, + pos: position{line: 2161, col: 95, offset: 79657}, val: "))", ignoreCase: false, want: "\"))\"", }, }, &anyMatcher{ - line: 2088, col: 100, offset: 77472, + line: 2161, col: 100, offset: 79662, }, }, }, @@ -15378,63 +15707,63 @@ var g = &grammar{ }, { name: "ConcealedIndexTerm", - pos: position{line: 2094, col: 1, offset: 77578}, + pos: position{line: 2167, col: 1, offset: 79768}, expr: &actionExpr{ - pos: position{line: 2094, col: 23, offset: 77600}, + pos: position{line: 2167, col: 23, offset: 79790}, run: (*parser).callonConcealedIndexTerm1, expr: &seqExpr{ - pos: position{line: 2094, col: 23, offset: 77600}, + pos: position{line: 2167, col: 23, offset: 79790}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 2094, col: 23, offset: 77600}, + pos: position{line: 2167, col: 23, offset: 79790}, val: "(((", ignoreCase: false, want: "\"(((\"", }, &labeledExpr{ - pos: position{line: 2094, col: 29, offset: 77606}, + pos: position{line: 2167, col: 29, offset: 79796}, label: "term1", expr: &ruleRefExpr{ - pos: position{line: 2094, col: 36, offset: 77613}, + pos: position{line: 2167, col: 36, offset: 79803}, name: "ConcealedIndexTermContent", }, }, &labeledExpr{ - pos: position{line: 2095, col: 5, offset: 77645}, + pos: position{line: 2168, col: 5, offset: 79835}, label: "term2", expr: &zeroOrOneExpr{ - pos: position{line: 2095, col: 11, offset: 77651}, + pos: position{line: 2168, col: 11, offset: 79841}, expr: &actionExpr{ - pos: position{line: 2095, col: 12, offset: 77652}, + pos: position{line: 2168, col: 12, offset: 79842}, run: (*parser).callonConcealedIndexTerm8, expr: &seqExpr{ - pos: position{line: 2095, col: 12, offset: 77652}, + pos: position{line: 2168, col: 12, offset: 79842}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 2095, col: 12, offset: 77652}, + pos: position{line: 2168, col: 12, offset: 79842}, expr: &ruleRefExpr{ - pos: position{line: 2095, col: 12, offset: 77652}, + pos: position{line: 2168, col: 12, offset: 79842}, name: "Space", }, }, &litMatcher{ - pos: position{line: 2095, col: 19, offset: 77659}, + pos: position{line: 2168, col: 19, offset: 79849}, val: ",", ignoreCase: false, want: "\",\"", }, &zeroOrMoreExpr{ - pos: position{line: 2095, col: 23, offset: 77663}, + pos: position{line: 2168, col: 23, offset: 79853}, expr: &ruleRefExpr{ - pos: position{line: 2095, col: 23, offset: 77663}, + pos: position{line: 2168, col: 23, offset: 79853}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 2095, col: 30, offset: 77670}, + pos: position{line: 2168, col: 30, offset: 79860}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 2095, col: 39, offset: 77679}, + pos: position{line: 2168, col: 39, offset: 79869}, name: "ConcealedIndexTermContent", }, }, @@ -15444,41 +15773,41 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 2096, col: 5, offset: 77737}, + pos: position{line: 2169, col: 5, offset: 79927}, label: "term3", expr: &zeroOrOneExpr{ - pos: position{line: 2096, col: 11, offset: 77743}, + pos: position{line: 2169, col: 11, offset: 79933}, expr: &actionExpr{ - pos: position{line: 2096, col: 12, offset: 77744}, + pos: position{line: 2169, col: 12, offset: 79934}, run: (*parser).callonConcealedIndexTerm19, expr: &seqExpr{ - pos: position{line: 2096, col: 12, offset: 77744}, + pos: position{line: 2169, col: 12, offset: 79934}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 2096, col: 12, offset: 77744}, + pos: position{line: 2169, col: 12, offset: 79934}, expr: &ruleRefExpr{ - pos: position{line: 2096, col: 12, offset: 77744}, + pos: position{line: 2169, col: 12, offset: 79934}, name: "Space", }, }, &litMatcher{ - pos: position{line: 2096, col: 19, offset: 77751}, + pos: position{line: 2169, col: 19, offset: 79941}, val: ",", ignoreCase: false, want: "\",\"", }, &zeroOrMoreExpr{ - pos: position{line: 2096, col: 23, offset: 77755}, + pos: position{line: 2169, col: 23, offset: 79945}, expr: &ruleRefExpr{ - pos: position{line: 2096, col: 23, offset: 77755}, + pos: position{line: 2169, col: 23, offset: 79945}, name: "Space", }, }, &labeledExpr{ - pos: position{line: 2096, col: 30, offset: 77762}, + pos: position{line: 2169, col: 30, offset: 79952}, label: "content", expr: &ruleRefExpr{ - pos: position{line: 2096, col: 39, offset: 77771}, + pos: position{line: 2169, col: 39, offset: 79961}, name: "ConcealedIndexTermContent", }, }, @@ -15488,7 +15817,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 2097, col: 5, offset: 77829}, + pos: position{line: 2170, col: 5, offset: 80019}, val: ")))", ignoreCase: false, want: "\")))\"", @@ -15499,21 +15828,21 @@ var g = &grammar{ }, { name: "ConcealedIndexTermContent", - pos: position{line: 2101, col: 1, offset: 77908}, + pos: position{line: 2174, col: 1, offset: 80098}, expr: &actionExpr{ - pos: position{line: 2101, col: 30, offset: 77937}, + pos: position{line: 2174, col: 30, offset: 80127}, run: (*parser).callonConcealedIndexTermContent1, expr: &oneOrMoreExpr{ - pos: position{line: 2101, col: 30, offset: 77937}, + pos: position{line: 2174, col: 30, offset: 80127}, expr: &choiceExpr{ - pos: position{line: 2101, col: 31, offset: 77938}, + pos: position{line: 2174, col: 31, offset: 80128}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 2101, col: 31, offset: 77938}, + pos: position{line: 2174, col: 31, offset: 80128}, name: "Alphanum", }, &ruleRefExpr{ - pos: position{line: 2101, col: 42, offset: 77949}, + pos: position{line: 2174, col: 42, offset: 80139}, name: "Space", }, }, @@ -15523,29 +15852,29 @@ var g = &grammar{ }, { name: "BlankLine", - pos: position{line: 2108, col: 1, offset: 78098}, + pos: position{line: 2181, col: 1, offset: 80288}, expr: &actionExpr{ - pos: position{line: 2108, col: 14, offset: 78111}, + pos: position{line: 2181, col: 14, offset: 80301}, run: (*parser).callonBlankLine1, expr: &seqExpr{ - pos: position{line: 2108, col: 14, offset: 78111}, + pos: position{line: 2181, col: 14, offset: 80301}, exprs: []interface{}{ ¬Expr{ - pos: position{line: 2108, col: 14, offset: 78111}, + pos: position{line: 2181, col: 14, offset: 80301}, expr: &ruleRefExpr{ - pos: position{line: 2108, col: 15, offset: 78112}, + pos: position{line: 2181, col: 15, offset: 80302}, name: "EOF", }, }, &zeroOrMoreExpr{ - pos: position{line: 2108, col: 19, offset: 78116}, + pos: position{line: 2181, col: 19, offset: 80306}, expr: &ruleRefExpr{ - pos: position{line: 2108, col: 19, offset: 78116}, + pos: position{line: 2181, col: 19, offset: 80306}, name: "Space", }, }, &ruleRefExpr{ - pos: position{line: 2108, col: 26, offset: 78123}, + pos: position{line: 2181, col: 26, offset: 80313}, name: "EOL", }, }, @@ -15554,28 +15883,28 @@ var g = &grammar{ }, { name: "Symbol", - pos: position{line: 2116, col: 1, offset: 78268}, + pos: position{line: 2189, col: 1, offset: 80458}, expr: &choiceExpr{ - pos: position{line: 2116, col: 11, offset: 78278}, + pos: position{line: 2189, col: 11, offset: 80468}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 2116, col: 11, offset: 78278}, + pos: position{line: 2189, col: 11, offset: 80468}, name: "Apostrophe", }, &ruleRefExpr{ - pos: position{line: 2116, col: 24, offset: 78291}, + pos: position{line: 2189, col: 24, offset: 80481}, name: "Copyright", }, &ruleRefExpr{ - pos: position{line: 2116, col: 36, offset: 78303}, + pos: position{line: 2189, col: 36, offset: 80493}, name: "Trademark", }, &ruleRefExpr{ - pos: position{line: 2116, col: 48, offset: 78315}, + pos: position{line: 2189, col: 48, offset: 80505}, name: "Registered", }, &ruleRefExpr{ - pos: position{line: 2116, col: 61, offset: 78328}, + pos: position{line: 2189, col: 61, offset: 80518}, name: "Ellipsis", }, }, @@ -15583,12 +15912,12 @@ var g = &grammar{ }, { name: "Apostrophe", - pos: position{line: 2118, col: 1, offset: 78338}, + pos: position{line: 2191, col: 1, offset: 80528}, expr: &actionExpr{ - pos: position{line: 2118, col: 15, offset: 78352}, + pos: position{line: 2191, col: 15, offset: 80542}, run: (*parser).callonApostrophe1, expr: &litMatcher{ - pos: position{line: 2118, col: 15, offset: 78352}, + pos: position{line: 2191, col: 15, offset: 80542}, val: "`'", ignoreCase: false, want: "\"`'\"", @@ -15597,12 +15926,12 @@ var g = &grammar{ }, { name: "Copyright", - pos: position{line: 2121, col: 1, offset: 78405}, + pos: position{line: 2194, col: 1, offset: 80595}, expr: &actionExpr{ - pos: position{line: 2121, col: 14, offset: 78418}, + pos: position{line: 2194, col: 14, offset: 80608}, run: (*parser).callonCopyright1, expr: &litMatcher{ - pos: position{line: 2121, col: 14, offset: 78418}, + pos: position{line: 2194, col: 14, offset: 80608}, val: "(C)", ignoreCase: false, want: "\"(C)\"", @@ -15611,12 +15940,12 @@ var g = &grammar{ }, { name: "Trademark", - pos: position{line: 2124, col: 1, offset: 78472}, + pos: position{line: 2197, col: 1, offset: 80662}, expr: &actionExpr{ - pos: position{line: 2124, col: 14, offset: 78485}, + pos: position{line: 2197, col: 14, offset: 80675}, run: (*parser).callonTrademark1, expr: &litMatcher{ - pos: position{line: 2124, col: 14, offset: 78485}, + pos: position{line: 2197, col: 14, offset: 80675}, val: "(TM)", ignoreCase: false, want: "\"(TM)\"", @@ -15625,12 +15954,12 @@ var g = &grammar{ }, { name: "Registered", - pos: position{line: 2127, col: 1, offset: 78540}, + pos: position{line: 2200, col: 1, offset: 80730}, expr: &actionExpr{ - pos: position{line: 2127, col: 15, offset: 78554}, + pos: position{line: 2200, col: 15, offset: 80744}, run: (*parser).callonRegistered1, expr: &litMatcher{ - pos: position{line: 2127, col: 15, offset: 78554}, + pos: position{line: 2200, col: 15, offset: 80744}, val: "(R)", ignoreCase: false, want: "\"(R)\"", @@ -15639,12 +15968,12 @@ var g = &grammar{ }, { name: "Ellipsis", - pos: position{line: 2130, col: 1, offset: 78608}, + pos: position{line: 2203, col: 1, offset: 80798}, expr: &actionExpr{ - pos: position{line: 2130, col: 13, offset: 78620}, + pos: position{line: 2203, col: 13, offset: 80810}, run: (*parser).callonEllipsis1, expr: &litMatcher{ - pos: position{line: 2130, col: 13, offset: 78620}, + pos: position{line: 2203, col: 13, offset: 80810}, val: "...", ignoreCase: false, want: "\"...\"", @@ -15653,27 +15982,27 @@ var g = &grammar{ }, { name: "ImpliedApostrophe", - pos: position{line: 2138, col: 1, offset: 78897}, + pos: position{line: 2211, col: 1, offset: 81087}, expr: &actionExpr{ - pos: position{line: 2138, col: 22, offset: 78918}, + pos: position{line: 2211, col: 22, offset: 81108}, run: (*parser).callonImpliedApostrophe1, expr: &seqExpr{ - pos: position{line: 2138, col: 22, offset: 78918}, + pos: position{line: 2211, col: 22, offset: 81108}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 2138, col: 22, offset: 78918}, + pos: position{line: 2211, col: 22, offset: 81108}, name: "Alphanum", }, &litMatcher{ - pos: position{line: 2138, col: 31, offset: 78927}, + pos: position{line: 2211, col: 31, offset: 81117}, val: "'", ignoreCase: false, want: "\"'\"", }, &andExpr{ - pos: position{line: 2138, col: 35, offset: 78931}, + pos: position{line: 2211, col: 35, offset: 81121}, expr: &charClassMatcher{ - pos: position{line: 2138, col: 36, offset: 78932}, + pos: position{line: 2211, col: 36, offset: 81122}, val: "[\\pL]", classes: []*unicode.RangeTable{rangeTable("L")}, ignoreCase: false, @@ -15686,33 +16015,33 @@ var g = &grammar{ }, { name: "SpecialCharacter", - pos: position{line: 2147, col: 1, offset: 79294}, + pos: position{line: 2220, col: 1, offset: 81484}, expr: &actionExpr{ - pos: position{line: 2147, col: 21, offset: 79314}, + pos: position{line: 2220, col: 21, offset: 81504}, run: (*parser).callonSpecialCharacter1, expr: &choiceExpr{ - pos: position{line: 2147, col: 22, offset: 79315}, + pos: position{line: 2220, col: 22, offset: 81505}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 2147, col: 22, offset: 79315}, + pos: position{line: 2220, col: 22, offset: 81505}, val: "<", ignoreCase: false, want: "\"<\"", }, &litMatcher{ - pos: position{line: 2147, col: 28, offset: 79321}, + pos: position{line: 2220, col: 28, offset: 81511}, val: ">", ignoreCase: false, want: "\">\"", }, &litMatcher{ - pos: position{line: 2147, col: 34, offset: 79327}, + pos: position{line: 2220, col: 34, offset: 81517}, val: "&", ignoreCase: false, want: "\"&\"", }, &litMatcher{ - pos: position{line: 2147, col: 40, offset: 79333}, + pos: position{line: 2220, col: 40, offset: 81523}, val: "+", ignoreCase: false, want: "\"+\"", @@ -15723,9 +16052,9 @@ var g = &grammar{ }, { name: "Alphanum", - pos: position{line: 2154, col: 1, offset: 79625}, + pos: position{line: 2227, col: 1, offset: 81815}, expr: &charClassMatcher{ - pos: position{line: 2154, col: 13, offset: 79637}, + pos: position{line: 2227, col: 13, offset: 81827}, val: "[\\pL0-9]", ranges: []rune{'0', '9'}, classes: []*unicode.RangeTable{rangeTable("L")}, @@ -15735,42 +16064,42 @@ var g = &grammar{ }, { name: "Parenthesis", - pos: position{line: 2156, col: 1, offset: 79647}, + pos: position{line: 2229, col: 1, offset: 81837}, expr: &choiceExpr{ - pos: position{line: 2156, col: 16, offset: 79662}, + pos: position{line: 2229, col: 16, offset: 81852}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 2156, col: 16, offset: 79662}, + pos: position{line: 2229, col: 16, offset: 81852}, val: "(", ignoreCase: false, want: "\"(\"", }, &litMatcher{ - pos: position{line: 2156, col: 22, offset: 79668}, + pos: position{line: 2229, col: 22, offset: 81858}, val: ")", ignoreCase: false, want: "\")\"", }, &litMatcher{ - pos: position{line: 2156, col: 28, offset: 79674}, + pos: position{line: 2229, col: 28, offset: 81864}, val: "[", ignoreCase: false, want: "\"[\"", }, &litMatcher{ - pos: position{line: 2156, col: 34, offset: 79680}, + pos: position{line: 2229, col: 34, offset: 81870}, val: "]", ignoreCase: false, want: "\"]\"", }, &litMatcher{ - pos: position{line: 2156, col: 40, offset: 79686}, + pos: position{line: 2229, col: 40, offset: 81876}, val: "{", ignoreCase: false, want: "\"{\"", }, &litMatcher{ - pos: position{line: 2156, col: 46, offset: 79692}, + pos: position{line: 2229, col: 46, offset: 81882}, val: "}", ignoreCase: false, want: "\"}\"", @@ -15780,14 +16109,14 @@ var g = &grammar{ }, { name: "Alphanums", - pos: position{line: 2158, col: 1, offset: 79698}, + pos: position{line: 2231, col: 1, offset: 81888}, expr: &actionExpr{ - pos: position{line: 2158, col: 14, offset: 79711}, + pos: position{line: 2231, col: 14, offset: 81901}, run: (*parser).callonAlphanums1, expr: &oneOrMoreExpr{ - pos: position{line: 2158, col: 14, offset: 79711}, + pos: position{line: 2231, col: 14, offset: 81901}, expr: &charClassMatcher{ - pos: position{line: 2158, col: 14, offset: 79711}, + pos: position{line: 2231, col: 14, offset: 81901}, val: "[\\pL0-9]", ranges: []rune{'0', '9'}, classes: []*unicode.RangeTable{rangeTable("L")}, @@ -15799,20 +16128,20 @@ var g = &grammar{ }, { name: "Word", - pos: position{line: 2162, col: 1, offset: 79757}, + pos: position{line: 2235, col: 1, offset: 81947}, expr: &choiceExpr{ - pos: position{line: 2166, col: 5, offset: 80084}, + pos: position{line: 2239, col: 5, offset: 82274}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 2166, col: 5, offset: 80084}, + pos: position{line: 2239, col: 5, offset: 82274}, run: (*parser).callonWord2, expr: &seqExpr{ - pos: position{line: 2166, col: 5, offset: 80084}, + pos: position{line: 2239, col: 5, offset: 82274}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 2166, col: 5, offset: 80084}, + pos: position{line: 2239, col: 5, offset: 82274}, expr: &charClassMatcher{ - pos: position{line: 2166, col: 5, offset: 80084}, + pos: position{line: 2239, col: 5, offset: 82274}, val: "[\\pL0-9]", ranges: []rune{'0', '9'}, classes: []*unicode.RangeTable{rangeTable("L")}, @@ -15821,19 +16150,19 @@ var g = &grammar{ }, }, &andExpr{ - pos: position{line: 2166, col: 15, offset: 80094}, + pos: position{line: 2239, col: 15, offset: 82284}, expr: &choiceExpr{ - pos: position{line: 2166, col: 17, offset: 80096}, + pos: position{line: 2239, col: 17, offset: 82286}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 2166, col: 17, offset: 80096}, + pos: position{line: 2239, col: 17, offset: 82286}, val: "[\\r\\n ,\\]]", chars: []rune{'\r', '\n', ' ', ',', ']'}, ignoreCase: false, inverted: false, }, &ruleRefExpr{ - pos: position{line: 2166, col: 30, offset: 80109}, + pos: position{line: 2239, col: 30, offset: 82299}, name: "EOF", }, }, @@ -15843,15 +16172,15 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2168, col: 9, offset: 80179}, + pos: position{line: 2241, col: 9, offset: 82369}, run: (*parser).callonWord10, expr: &seqExpr{ - pos: position{line: 2168, col: 9, offset: 80179}, + pos: position{line: 2241, col: 9, offset: 82369}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 2168, col: 9, offset: 80179}, + pos: position{line: 2241, col: 9, offset: 82369}, expr: &charClassMatcher{ - pos: position{line: 2168, col: 9, offset: 80179}, + pos: position{line: 2241, col: 9, offset: 82369}, val: "[\\pL0-9]", ranges: []rune{'0', '9'}, classes: []*unicode.RangeTable{rangeTable("L")}, @@ -15860,21 +16189,21 @@ var g = &grammar{ }, }, &oneOrMoreExpr{ - pos: position{line: 2168, col: 19, offset: 80189}, + pos: position{line: 2241, col: 19, offset: 82379}, expr: &seqExpr{ - pos: position{line: 2168, col: 20, offset: 80190}, + pos: position{line: 2241, col: 20, offset: 82380}, exprs: []interface{}{ &charClassMatcher{ - pos: position{line: 2168, col: 20, offset: 80190}, + pos: position{line: 2241, col: 20, offset: 82380}, val: "[=*_`]", chars: []rune{'=', '*', '_', '`'}, ignoreCase: false, inverted: false, }, &oneOrMoreExpr{ - pos: position{line: 2168, col: 27, offset: 80197}, + pos: position{line: 2241, col: 27, offset: 82387}, expr: &charClassMatcher{ - pos: position{line: 2168, col: 27, offset: 80197}, + pos: position{line: 2241, col: 27, offset: 82387}, val: "[\\pL0-9]", ranges: []rune{'0', '9'}, classes: []*unicode.RangeTable{rangeTable("L")}, @@ -15893,20 +16222,20 @@ var g = &grammar{ }, { name: "InlineWord", - pos: position{line: 2172, col: 1, offset: 80273}, + pos: position{line: 2245, col: 1, offset: 82463}, expr: &choiceExpr{ - pos: position{line: 2173, col: 5, offset: 80354}, + pos: position{line: 2246, col: 5, offset: 82544}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 2173, col: 5, offset: 80354}, + pos: position{line: 2246, col: 5, offset: 82544}, run: (*parser).callonInlineWord2, expr: &seqExpr{ - pos: position{line: 2173, col: 5, offset: 80354}, + pos: position{line: 2246, col: 5, offset: 82544}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 2173, col: 5, offset: 80354}, + pos: position{line: 2246, col: 5, offset: 82544}, expr: &charClassMatcher{ - pos: position{line: 2173, col: 5, offset: 80354}, + pos: position{line: 2246, col: 5, offset: 82544}, val: "[\\pL0-9,?!;]", chars: []rune{',', '?', '!', ';'}, ranges: []rune{'0', '9'}, @@ -15916,19 +16245,19 @@ var g = &grammar{ }, }, &andExpr{ - pos: position{line: 2173, col: 19, offset: 80368}, + pos: position{line: 2246, col: 19, offset: 82558}, expr: &choiceExpr{ - pos: position{line: 2173, col: 21, offset: 80370}, + pos: position{line: 2246, col: 21, offset: 82560}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 2173, col: 21, offset: 80370}, + pos: position{line: 2246, col: 21, offset: 82560}, val: "[\\r\\n ]", chars: []rune{'\r', '\n', ' '}, ignoreCase: false, inverted: false, }, &ruleRefExpr{ - pos: position{line: 2173, col: 31, offset: 80380}, + pos: position{line: 2246, col: 31, offset: 82570}, name: "EOF", }, }, @@ -15938,7 +16267,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 2175, col: 9, offset: 80449}, + pos: position{line: 2248, col: 9, offset: 82639}, name: "Word", }, }, @@ -15946,12 +16275,12 @@ var g = &grammar{ }, { name: "AnyChar", - pos: position{line: 2178, col: 1, offset: 80549}, + pos: position{line: 2251, col: 1, offset: 82739}, expr: &actionExpr{ - pos: position{line: 2178, col: 12, offset: 80560}, + pos: position{line: 2251, col: 12, offset: 82750}, run: (*parser).callonAnyChar1, expr: &charClassMatcher{ - pos: position{line: 2178, col: 12, offset: 80560}, + pos: position{line: 2251, col: 12, offset: 82750}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -15961,24 +16290,24 @@ var g = &grammar{ }, { name: "FileLocation", - pos: position{line: 2182, col: 1, offset: 80625}, + pos: position{line: 2255, col: 1, offset: 82815}, expr: &actionExpr{ - pos: position{line: 2182, col: 17, offset: 80641}, + pos: position{line: 2255, col: 17, offset: 82831}, run: (*parser).callonFileLocation1, expr: &labeledExpr{ - pos: position{line: 2182, col: 17, offset: 80641}, + pos: position{line: 2255, col: 17, offset: 82831}, label: "path", expr: &oneOrMoreExpr{ - pos: position{line: 2182, col: 22, offset: 80646}, + pos: position{line: 2255, col: 22, offset: 82836}, expr: &choiceExpr{ - pos: position{line: 2182, col: 23, offset: 80647}, + pos: position{line: 2255, col: 23, offset: 82837}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 2182, col: 23, offset: 80647}, + pos: position{line: 2255, col: 23, offset: 82837}, name: "FILENAME", }, &ruleRefExpr{ - pos: position{line: 2182, col: 34, offset: 80658}, + pos: position{line: 2255, col: 34, offset: 82848}, name: "AttributeSubstitution", }, }, @@ -15989,17 +16318,17 @@ var g = &grammar{ }, { name: "ResolvedFileLocation", - pos: position{line: 2186, col: 1, offset: 80742}, + pos: position{line: 2259, col: 1, offset: 82932}, expr: &actionExpr{ - pos: position{line: 2186, col: 25, offset: 80766}, + pos: position{line: 2259, col: 25, offset: 82956}, run: (*parser).callonResolvedFileLocation1, expr: &labeledExpr{ - pos: position{line: 2186, col: 25, offset: 80766}, + pos: position{line: 2259, col: 25, offset: 82956}, label: "path", expr: &oneOrMoreExpr{ - pos: position{line: 2186, col: 30, offset: 80771}, + pos: position{line: 2259, col: 30, offset: 82961}, expr: &charClassMatcher{ - pos: position{line: 2186, col: 31, offset: 80772}, + pos: position{line: 2259, col: 31, offset: 82962}, val: "[^\\r\\n []", chars: []rune{'\r', '\n', ' ', '['}, ignoreCase: false, @@ -16011,38 +16340,38 @@ var g = &grammar{ }, { name: "Location", - pos: position{line: 2190, col: 1, offset: 80844}, + pos: position{line: 2263, col: 1, offset: 83034}, expr: &actionExpr{ - pos: position{line: 2190, col: 13, offset: 80856}, + pos: position{line: 2263, col: 13, offset: 83046}, run: (*parser).callonLocation1, expr: &seqExpr{ - pos: position{line: 2190, col: 13, offset: 80856}, + pos: position{line: 2263, col: 13, offset: 83046}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 2190, col: 13, offset: 80856}, + pos: position{line: 2263, col: 13, offset: 83046}, label: "scheme", expr: &zeroOrOneExpr{ - pos: position{line: 2190, col: 20, offset: 80863}, + pos: position{line: 2263, col: 20, offset: 83053}, expr: &ruleRefExpr{ - pos: position{line: 2190, col: 21, offset: 80864}, + pos: position{line: 2263, col: 21, offset: 83054}, name: "URL_SCHEME", }, }, }, &labeledExpr{ - pos: position{line: 2190, col: 34, offset: 80877}, + pos: position{line: 2263, col: 34, offset: 83067}, label: "path", expr: &oneOrMoreExpr{ - pos: position{line: 2190, col: 39, offset: 80882}, + pos: position{line: 2263, col: 39, offset: 83072}, expr: &choiceExpr{ - pos: position{line: 2190, col: 40, offset: 80883}, + pos: position{line: 2263, col: 40, offset: 83073}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 2190, col: 40, offset: 80883}, + pos: position{line: 2263, col: 40, offset: 83073}, name: "FILENAME", }, &ruleRefExpr{ - pos: position{line: 2190, col: 51, offset: 80894}, + pos: position{line: 2263, col: 51, offset: 83084}, name: "AttributeSubstitution", }, }, @@ -16055,35 +16384,35 @@ var g = &grammar{ }, { name: "LocationWithScheme", - pos: position{line: 2194, col: 1, offset: 80982}, + pos: position{line: 2267, col: 1, offset: 83172}, expr: &actionExpr{ - pos: position{line: 2194, col: 23, offset: 81004}, + pos: position{line: 2267, col: 23, offset: 83194}, run: (*parser).callonLocationWithScheme1, expr: &seqExpr{ - pos: position{line: 2194, col: 23, offset: 81004}, + pos: position{line: 2267, col: 23, offset: 83194}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 2194, col: 23, offset: 81004}, + pos: position{line: 2267, col: 23, offset: 83194}, label: "scheme", expr: &ruleRefExpr{ - pos: position{line: 2194, col: 31, offset: 81012}, + pos: position{line: 2267, col: 31, offset: 83202}, name: "URL_SCHEME", }, }, &labeledExpr{ - pos: position{line: 2194, col: 43, offset: 81024}, + pos: position{line: 2267, col: 43, offset: 83214}, label: "path", expr: &oneOrMoreExpr{ - pos: position{line: 2194, col: 48, offset: 81029}, + pos: position{line: 2267, col: 48, offset: 83219}, expr: &choiceExpr{ - pos: position{line: 2194, col: 49, offset: 81030}, + pos: position{line: 2267, col: 49, offset: 83220}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 2194, col: 49, offset: 81030}, + pos: position{line: 2267, col: 49, offset: 83220}, name: "FILENAME", }, &ruleRefExpr{ - pos: position{line: 2194, col: 60, offset: 81041}, + pos: position{line: 2267, col: 60, offset: 83231}, name: "AttributeSubstitution", }, }, @@ -16096,11 +16425,11 @@ var g = &grammar{ }, { name: "FILENAME", - pos: position{line: 2198, col: 1, offset: 81129}, + pos: position{line: 2271, col: 1, offset: 83319}, expr: &oneOrMoreExpr{ - pos: position{line: 2198, col: 13, offset: 81141}, + pos: position{line: 2271, col: 13, offset: 83331}, expr: &charClassMatcher{ - pos: position{line: 2198, col: 14, offset: 81142}, + pos: position{line: 2271, col: 14, offset: 83332}, val: "[^\\r\\n{}[\\] ]", chars: []rune{'\r', '\n', '{', '}', '[', ']', ' '}, ignoreCase: false, @@ -16110,26 +16439,26 @@ var g = &grammar{ }, { name: "ResolvedLocation", - pos: position{line: 2200, col: 1, offset: 81276}, + pos: position{line: 2273, col: 1, offset: 83466}, expr: &actionExpr{ - pos: position{line: 2200, col: 21, offset: 81296}, + pos: position{line: 2273, col: 21, offset: 83486}, run: (*parser).callonResolvedLocation1, expr: &seqExpr{ - pos: position{line: 2200, col: 21, offset: 81296}, + pos: position{line: 2273, col: 21, offset: 83486}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 2200, col: 21, offset: 81296}, + pos: position{line: 2273, col: 21, offset: 83486}, label: "scheme", expr: &ruleRefExpr{ - pos: position{line: 2200, col: 29, offset: 81304}, + pos: position{line: 2273, col: 29, offset: 83494}, name: "URL_SCHEME", }, }, &labeledExpr{ - pos: position{line: 2200, col: 41, offset: 81316}, + pos: position{line: 2273, col: 41, offset: 83506}, label: "path", expr: &ruleRefExpr{ - pos: position{line: 2200, col: 47, offset: 81322}, + pos: position{line: 2273, col: 47, offset: 83512}, name: "RESOLVED_FILENAME", }, }, @@ -16139,11 +16468,11 @@ var g = &grammar{ }, { name: "RESOLVED_FILENAME", - pos: position{line: 2205, col: 1, offset: 81570}, + pos: position{line: 2278, col: 1, offset: 83760}, expr: &oneOrMoreExpr{ - pos: position{line: 2205, col: 22, offset: 81591}, + pos: position{line: 2278, col: 22, offset: 83781}, expr: &charClassMatcher{ - pos: position{line: 2205, col: 23, offset: 81592}, + pos: position{line: 2278, col: 23, offset: 83782}, val: "[^\\r\\n[\\] ]", chars: []rune{'\r', '\n', '[', ']', ' '}, ignoreCase: false, @@ -16153,14 +16482,14 @@ var g = &grammar{ }, { name: "URL", - pos: position{line: 2207, col: 1, offset: 81724}, + pos: position{line: 2280, col: 1, offset: 83914}, expr: &actionExpr{ - pos: position{line: 2207, col: 9, offset: 81732}, + pos: position{line: 2280, col: 9, offset: 83922}, run: (*parser).callonURL1, expr: &oneOrMoreExpr{ - pos: position{line: 2207, col: 9, offset: 81732}, + pos: position{line: 2280, col: 9, offset: 83922}, expr: &charClassMatcher{ - pos: position{line: 2207, col: 9, offset: 81732}, + pos: position{line: 2280, col: 9, offset: 83922}, val: "[^\\r\\n[\\]]", chars: []rune{'\r', '\n', '[', ']'}, ignoreCase: false, @@ -16171,36 +16500,36 @@ var g = &grammar{ }, { name: "URL_SCHEME", - pos: position{line: 2211, col: 1, offset: 81780}, + pos: position{line: 2284, col: 1, offset: 83970}, expr: &choiceExpr{ - pos: position{line: 2211, col: 15, offset: 81794}, + pos: position{line: 2284, col: 15, offset: 83984}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 2211, col: 15, offset: 81794}, + pos: position{line: 2284, col: 15, offset: 83984}, val: "http://", ignoreCase: false, want: "\"http://\"", }, &litMatcher{ - pos: position{line: 2211, col: 27, offset: 81806}, + pos: position{line: 2284, col: 27, offset: 83996}, val: "https://", ignoreCase: false, want: "\"https://\"", }, &litMatcher{ - pos: position{line: 2211, col: 40, offset: 81819}, + pos: position{line: 2284, col: 40, offset: 84009}, val: "ftp://", ignoreCase: false, want: "\"ftp://\"", }, &litMatcher{ - pos: position{line: 2211, col: 51, offset: 81830}, + pos: position{line: 2284, col: 51, offset: 84020}, val: "irc://", ignoreCase: false, want: "\"irc://\"", }, &litMatcher{ - pos: position{line: 2211, col: 62, offset: 81841}, + pos: position{line: 2284, col: 62, offset: 84031}, val: "mailto:", ignoreCase: false, want: "\"mailto:\"", @@ -16210,14 +16539,14 @@ var g = &grammar{ }, { name: "ID", - pos: position{line: 2213, col: 1, offset: 81852}, + pos: position{line: 2286, col: 1, offset: 84042}, expr: &actionExpr{ - pos: position{line: 2213, col: 7, offset: 81858}, + pos: position{line: 2286, col: 7, offset: 84048}, run: (*parser).callonID1, expr: &oneOrMoreExpr{ - pos: position{line: 2213, col: 7, offset: 81858}, + pos: position{line: 2286, col: 7, offset: 84048}, expr: &charClassMatcher{ - pos: position{line: 2213, col: 7, offset: 81858}, + pos: position{line: 2286, col: 7, offset: 84048}, val: "[^[\\]<>,]", chars: []rune{'[', ']', '<', '>', ','}, ignoreCase: false, @@ -16228,12 +16557,12 @@ var g = &grammar{ }, { name: "DIGIT", - pos: position{line: 2217, col: 1, offset: 81983}, + pos: position{line: 2290, col: 1, offset: 84173}, expr: &actionExpr{ - pos: position{line: 2217, col: 10, offset: 81992}, + pos: position{line: 2290, col: 10, offset: 84182}, run: (*parser).callonDIGIT1, expr: &charClassMatcher{ - pos: position{line: 2217, col: 10, offset: 81992}, + pos: position{line: 2290, col: 10, offset: 84182}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -16243,26 +16572,26 @@ var g = &grammar{ }, { name: "NUMBER", - pos: position{line: 2221, col: 1, offset: 82034}, + pos: position{line: 2294, col: 1, offset: 84224}, expr: &actionExpr{ - pos: position{line: 2221, col: 11, offset: 82044}, + pos: position{line: 2294, col: 11, offset: 84234}, run: (*parser).callonNUMBER1, expr: &seqExpr{ - pos: position{line: 2221, col: 11, offset: 82044}, + pos: position{line: 2294, col: 11, offset: 84234}, exprs: []interface{}{ &zeroOrOneExpr{ - pos: position{line: 2221, col: 11, offset: 82044}, + pos: position{line: 2294, col: 11, offset: 84234}, expr: &litMatcher{ - pos: position{line: 2221, col: 11, offset: 82044}, + pos: position{line: 2294, col: 11, offset: 84234}, val: "-", ignoreCase: false, want: "\"-\"", }, }, &oneOrMoreExpr{ - pos: position{line: 2221, col: 16, offset: 82049}, + pos: position{line: 2294, col: 16, offset: 84239}, expr: &ruleRefExpr{ - pos: position{line: 2221, col: 16, offset: 82049}, + pos: position{line: 2294, col: 16, offset: 84239}, name: "DIGIT", }, }, @@ -16272,21 +16601,21 @@ var g = &grammar{ }, { name: "Space", - pos: position{line: 2225, col: 1, offset: 82101}, + pos: position{line: 2298, col: 1, offset: 84291}, expr: &choiceExpr{ - pos: position{line: 2225, col: 10, offset: 82110}, + pos: position{line: 2298, col: 10, offset: 84300}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 2225, col: 10, offset: 82110}, + pos: position{line: 2298, col: 10, offset: 84300}, val: " ", ignoreCase: false, want: "\" \"", }, &actionExpr{ - pos: position{line: 2225, col: 16, offset: 82116}, + pos: position{line: 2298, col: 16, offset: 84306}, run: (*parser).callonSpace3, expr: &litMatcher{ - pos: position{line: 2225, col: 16, offset: 82116}, + pos: position{line: 2298, col: 16, offset: 84306}, val: "\t", ignoreCase: false, want: "\"\\t\"", @@ -16297,24 +16626,24 @@ var g = &grammar{ }, { name: "Newline", - pos: position{line: 2229, col: 1, offset: 82157}, + pos: position{line: 2302, col: 1, offset: 84347}, expr: &choiceExpr{ - pos: position{line: 2229, col: 12, offset: 82168}, + pos: position{line: 2302, col: 12, offset: 84358}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 2229, col: 12, offset: 82168}, + pos: position{line: 2302, col: 12, offset: 84358}, val: "\r\n", ignoreCase: false, want: "\"\\r\\n\"", }, &litMatcher{ - pos: position{line: 2229, col: 21, offset: 82177}, + pos: position{line: 2302, col: 21, offset: 84367}, val: "\r", ignoreCase: false, want: "\"\\r\"", }, &litMatcher{ - pos: position{line: 2229, col: 28, offset: 82184}, + pos: position{line: 2302, col: 28, offset: 84374}, val: "\n", ignoreCase: false, want: "\"\\n\"", @@ -16324,26 +16653,26 @@ var g = &grammar{ }, { name: "EOF", - pos: position{line: 2231, col: 1, offset: 82190}, + pos: position{line: 2304, col: 1, offset: 84380}, expr: ¬Expr{ - pos: position{line: 2231, col: 8, offset: 82197}, + pos: position{line: 2304, col: 8, offset: 84387}, expr: &anyMatcher{ - line: 2231, col: 9, offset: 82198, + line: 2304, col: 9, offset: 84388, }, }, }, { name: "EOL", - pos: position{line: 2233, col: 1, offset: 82201}, + pos: position{line: 2306, col: 1, offset: 84391}, expr: &choiceExpr{ - pos: position{line: 2233, col: 8, offset: 82208}, + pos: position{line: 2306, col: 8, offset: 84398}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 2233, col: 8, offset: 82208}, + pos: position{line: 2306, col: 8, offset: 84398}, name: "Newline", }, &ruleRefExpr{ - pos: position{line: 2233, col: 18, offset: 82218}, + pos: position{line: 2306, col: 18, offset: 84408}, name: "EOF", }, }, @@ -18342,8 +18671,24 @@ func (p *parser) callonMarkdownQuoteBlockRawContent2() (interface{}, error) { return p.cur.onMarkdownQuoteBlockRawContent2(stack["content"]) } +func (c *current) onRawParagraphLine6(content interface{}) (bool, error) { + // exclude line if it is a blankline + if strings.Trim(content.(string), " \t") == "" { + return false, nil + } + return true, nil + +} + +func (p *parser) callonRawParagraphLine6() (bool, error) { + stack := p.vstack[len(p.vstack)-1] + _ = stack + return p.cur.onRawParagraphLine6(stack["content"]) +} + func (c *current) onRawParagraphLine1(content interface{}) (interface{}, error) { return types.NewRawLine(content.(string)) + } func (p *parser) callonRawParagraphLine1() (interface{}, error) { @@ -19539,47 +19884,6 @@ func (p *parser) callonRawLineContent1() (interface{}, error) { return p.cur.onRawLineContent1() } -func (c *current) onVerbatimLine1(content, callouts interface{}) (interface{}, error) { - return types.NewVerbatimLine(content.(string), callouts) -} - -func (p *parser) callonVerbatimLine1() (interface{}, error) { - stack := p.vstack[len(p.vstack)-1] - _ = stack - return p.cur.onVerbatimLine1(stack["content"], stack["callouts"]) -} - -func (c *current) onVerbatimLineContent1() (interface{}, error) { - - return string(c.text), nil -} - -func (p *parser) callonVerbatimLineContent1() (interface{}, error) { - stack := p.vstack[len(p.vstack)-1] - _ = stack - return p.cur.onVerbatimLineContent1() -} - -func (c *current) onCallout5() (interface{}, error) { - return strconv.Atoi(string(c.text)) -} - -func (p *parser) callonCallout5() (interface{}, error) { - stack := p.vstack[len(p.vstack)-1] - _ = stack - return p.cur.onCallout5() -} - -func (c *current) onCallout1(ref interface{}) (interface{}, error) { - return types.NewCallout(ref.(int)) -} - -func (p *parser) callonCallout1() (interface{}, error) { - stack := p.vstack[len(p.vstack)-1] - _ = stack - return p.cur.onCallout1(stack["ref"]) -} - func (c *current) onCalloutListItem1(ref, description interface{}) (interface{}, error) { return types.NewCalloutListItem(ref.(int), description.([]interface{})) } @@ -19757,6 +20061,89 @@ func (p *parser) callonNormalElement1() (interface{}, error) { return p.cur.onNormalElement1(stack["element"]) } +func (c *current) onVerbatimLine1(content, callouts interface{}) (interface{}, error) { + return types.NewVerbatimLine(content.(string), callouts) +} + +func (p *parser) callonVerbatimLine1() (interface{}, error) { + stack := p.vstack[len(p.vstack)-1] + _ = stack + return p.cur.onVerbatimLine1(stack["content"], stack["callouts"]) +} + +func (c *current) onVerbatimLineContent1() (interface{}, error) { + + return string(c.text), nil +} + +func (p *parser) callonVerbatimLineContent1() (interface{}, error) { + stack := p.vstack[len(p.vstack)-1] + _ = stack + return p.cur.onVerbatimLineContent1() +} + +func (c *current) onCallout5() (interface{}, error) { + return strconv.Atoi(string(c.text)) +} + +func (p *parser) callonCallout5() (interface{}, error) { + stack := p.vstack[len(p.vstack)-1] + _ = stack + return p.cur.onCallout5() +} + +func (c *current) onCallout1(ref interface{}) (interface{}, error) { + return types.NewCallout(ref.(int)) +} + +func (p *parser) callonCallout1() (interface{}, error) { + stack := p.vstack[len(p.vstack)-1] + _ = stack + return p.cur.onCallout1(stack["ref"]) +} + +func (c *current) onQuotedTextSubstitution1(elements interface{}) (interface{}, error) { + return types.NewInlineElements(elements.([]interface{})) +} + +func (p *parser) callonQuotedTextSubstitution1() (interface{}, error) { + stack := p.vstack[len(p.vstack)-1] + _ = stack + return p.cur.onQuotedTextSubstitution1(stack["elements"]) +} + +func (c *current) onInlineMacrosSubstitution1(elements interface{}) (interface{}, error) { + return types.NewInlineElements(elements.([]interface{})) +} + +func (p *parser) callonInlineMacrosSubstitution1() (interface{}, error) { + stack := p.vstack[len(p.vstack)-1] + _ = stack + return p.cur.onInlineMacrosSubstitution1(stack["elements"]) +} + +func (c *current) onAttributesSubstitution1(elements interface{}) (interface{}, error) { + return types.NewInlineElements(elements.([]interface{})) +} + +func (p *parser) callonAttributesSubstitution1() (interface{}, error) { + stack := p.vstack[len(p.vstack)-1] + _ = stack + return p.cur.onAttributesSubstitution1(stack["elements"]) +} + +func (c *current) onNoneSubstitution4() (interface{}, error) { + // just text + return types.NewStringElement(string(c.text)) + +} + +func (p *parser) callonNoneSubstitution4() (interface{}, error) { + stack := p.vstack[len(p.vstack)-1] + _ = stack + return p.cur.onNoneSubstitution4() +} + func (c *current) onVerseBlockElement1(element interface{}) (interface{}, error) { return element, nil } @@ -20393,6 +20780,63 @@ func Entrypoint(ruleName string) Option { } } +// Statistics adds a user provided Stats struct to the parser to allow +// the user to process the results after the parsing has finished. +// Also the key for the "no match" counter is set. +// +// Example usage: +// +// input := "input" +// stats := Stats{} +// _, err := Parse("input-file", []byte(input), Statistics(&stats, "no match")) +// if err != nil { +// log.Panicln(err) +// } +// b, err := json.MarshalIndent(stats.ChoiceAltCnt, "", " ") +// if err != nil { +// log.Panicln(err) +// } +// fmt.Println(string(b)) +// +func Statistics(stats *Stats, choiceNoMatch string) Option { + return func(p *parser) Option { + oldStats := p.Stats + p.Stats = stats + oldChoiceNoMatch := p.choiceNoMatch + p.choiceNoMatch = choiceNoMatch + if p.Stats.ChoiceAltCnt == nil { + p.Stats.ChoiceAltCnt = make(map[string]map[string]int) + } + return Statistics(oldStats, oldChoiceNoMatch) + } +} + +// Debug creates an Option to set the debug flag to b. When set to true, +// debugging information is printed to stdout while parsing. +// +// The default is false. +func Debug(b bool) Option { + return func(p *parser) Option { + old := p.debug + p.debug = b + return Debug(old) + } +} + +// Memoize creates an Option to set the memoize flag to b. When set to true, +// the parser will cache all results so each expression is evaluated only +// once. This guarantees linear parsing time even for pathological cases, +// at the expense of more memory and slower times for typical cases. +// +// The default is false. +func Memoize(b bool) Option { + return func(p *parser) Option { + old := p.memoize + p.memoize = b + return Memoize(old) + } +} + // AllowInvalidUTF8 creates an Option to allow invalid UTF-8 bytes. // Every invalid UTF-8 byte is treated as a utf8.RuneError (U+FFFD) // by character class matchers and is matched by the any matcher. @@ -20431,6 +20875,16 @@ func GlobalStore(key string, value interface{}) Option { } } +// InitState creates an Option to set a key to a certain value in +// the global "state" store. +func InitState(key string, value interface{}) Option { + return func(p *parser) Option { + old := p.cur.state[key] + p.cur.state[key] = value + return InitState(key, old) + } +} + // ParseFile parses the file identified by filename. func ParseFile(filename string, opts ...Option) (i interface{}, err error) { f, err := os.Open(filename) @@ -20483,6 +20937,11 @@ type current struct { pos position // start position of the match text []byte // raw text of the match + // state is a store for arbitrary key,value pairs that the user wants to be + // tied to the backtracking of the parser. + // This is always rolled back if a parsing rule fails. + state storeDict + // globalStore is a general store for the user to store arbitrary key-value // pairs that they need to manage and that they do not want tied to the // backtracking of the parser. This is only modified by the user and never @@ -20557,6 +21016,11 @@ type ruleRefExpr struct { name string } +type stateCodeExpr struct { + pos position + run func(*parser) error +} + type andCodeExpr struct { pos position run func(*parser) (bool, error) @@ -20660,6 +21124,7 @@ func newParser(filename string, b []byte, opts ...Option) *parser { pt: savepoint{position: position{line: 1}}, recover: true, cur: current{ + state: make(storeDict), globalStore: make(storeDict), }, maxFailPos: position{col: 1, line: 1}, @@ -20724,6 +21189,12 @@ type parser struct { depth int recover bool + debug bool + + memoize bool + // memoization table for the packrat algorithm: + // map[offset in source] map[expression or rule] {value, match} + memo map[int]map[interface{}]resultTuple // rules table, maps the rule identifier to the rule node rules map[string]*rule @@ -20808,6 +21279,26 @@ func (p *parser) popRecovery() { p.recoveryStack = p.recoveryStack[:len(p.recoveryStack)-1] } +func (p *parser) print(prefix, s string) string { + if !p.debug { + return s + } + + fmt.Printf("%s %d:%d:%d: %s [%#U]\n", + prefix, p.pt.line, p.pt.col, p.pt.offset, s, p.pt.rn) + return s +} + +func (p *parser) in(s string) string { + p.depth++ + return p.print(strings.Repeat(" ", p.depth)+">", s) +} + +func (p *parser) out(s string) string { + p.depth-- + return p.print(strings.Repeat(" ", p.depth)+"<", s) +} + func (p *parser) addErr(err error) { p.addErrAt(err, p.pt.position, []string{}) } @@ -20876,17 +21367,93 @@ func (p *parser) read() { // restore parser position to the savepoint pt. func (p *parser) restore(pt savepoint) { + if p.debug { + defer p.out(p.in("restore")) + } if pt.offset == p.pt.offset { return } p.pt = pt } +// Cloner is implemented by any value that has a Clone method, which returns a +// copy of the value. This is mainly used for types which are not passed by +// value (e.g map, slice, chan) or structs that contain such types. +// +// This is used in conjunction with the global state feature to create proper +// copies of the state to allow the parser to properly restore the state in +// the case of backtracking. +type Cloner interface { + Clone() interface{} +} + +var statePool = &sync.Pool{ + New: func() interface{} { return make(storeDict) }, +} + +func (sd storeDict) Discard() { + for k := range sd { + delete(sd, k) + } + statePool.Put(sd) +} + +// clone and return parser current state. +func (p *parser) cloneState() storeDict { + if p.debug { + defer p.out(p.in("cloneState")) + } + + state := statePool.Get().(storeDict) + for k, v := range p.cur.state { + if c, ok := v.(Cloner); ok { + state[k] = c.Clone() + } else { + state[k] = v + } + } + return state +} + +// restore parser current state to the state storeDict. +// every restoreState should applied only one time for every cloned state +func (p *parser) restoreState(state storeDict) { + if p.debug { + defer p.out(p.in("restoreState")) + } + p.cur.state.Discard() + p.cur.state = state +} + // get the slice of bytes from the savepoint start to the current position. func (p *parser) sliceFrom(start savepoint) []byte { return p.data[start.position.offset:p.pt.position.offset] } +func (p *parser) getMemoized(node interface{}) (resultTuple, bool) { + if len(p.memo) == 0 { + return resultTuple{}, false + } + m := p.memo[p.pt.offset] + if len(m) == 0 { + return resultTuple{}, false + } + res, ok := m[node] + return res, ok +} + +func (p *parser) setMemoized(pt savepoint, node interface{}, tuple resultTuple) { + if p.memo == nil { + p.memo = make(map[int]map[interface{}]resultTuple) + } + m := p.memo[pt.offset] + if m == nil { + m = make(map[interface{}]resultTuple) + p.memo[pt.offset] = m + } + m[node] = tuple +} + func (p *parser) buildRulesTable(g *grammar) { p.rules = make(map[string]*rule, len(g.rules)) for _, r := range g.rules { @@ -20908,6 +21475,9 @@ func (p *parser) parse(g *grammar) (val interface{}, err error) { // and return the panic as an error. defer func() { if e := recover(); e != nil { + if p.debug { + defer p.out(p.in("panic handler")) + } val = nil switch e := e.(type) { case error: @@ -20969,15 +21539,45 @@ func listJoin(list []string, sep string, lastSep string) string { } func (p *parser) parseRule(rule *rule) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseRule " + rule.name)) + } + + if p.memoize { + res, ok := p.getMemoized(rule) + if ok { + p.restore(res.end) + return res.v, res.b + } + } + + start := p.pt p.rstack = append(p.rstack, rule) p.pushV() val, ok := p.parseExpr(rule.expr) p.popV() p.rstack = p.rstack[:len(p.rstack)-1] + if ok && p.debug { + p.print(strings.Repeat(" ", p.depth)+"MATCH", string(p.sliceFrom(start))) + } + + if p.memoize { + p.setMemoized(start, rule, resultTuple{val, ok, p.pt}) + } return val, ok } func (p *parser) parseExpr(expr interface{}) (interface{}, bool) { + var pt savepoint + + if p.memoize { + res, ok := p.getMemoized(expr) + if ok { + p.restore(res.end) + return res.v, res.b + } + pt = p.pt + } p.ExprCnt++ if p.ExprCnt > p.maxExprCnt { @@ -21015,6 +21615,8 @@ func (p *parser) parseExpr(expr interface{}) (interface{}, bool) { val, ok = p.parseRuleRefExpr(expr) case *seqExpr: val, ok = p.parseSeqExpr(expr) + case *stateCodeExpr: + val, ok = p.parseStateCodeExpr(expr) case *throwExpr: val, ok = p.parseThrowExpr(expr) case *zeroOrMoreExpr: @@ -21024,46 +21626,74 @@ func (p *parser) parseExpr(expr interface{}) (interface{}, bool) { default: panic(fmt.Sprintf("unknown expression type %T", expr)) } + if p.memoize { + p.setMemoized(pt, expr, resultTuple{val, ok, p.pt}) + } return val, ok } func (p *parser) parseActionExpr(act *actionExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseActionExpr")) + } + start := p.pt val, ok := p.parseExpr(act.expr) if ok { p.cur.pos = start.position p.cur.text = p.sliceFrom(start) + state := p.cloneState() actVal, err := act.run(p) if err != nil { p.addErrAt(err, start.position, []string{}) } + p.restoreState(state) val = actVal } + if ok && p.debug { + p.print(strings.Repeat(" ", p.depth)+"MATCH", string(p.sliceFrom(start))) + } return val, ok } func (p *parser) parseAndCodeExpr(and *andCodeExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseAndCodeExpr")) + } + + state := p.cloneState() ok, err := and.run(p) if err != nil { p.addErr(err) } + p.restoreState(state) return nil, ok } func (p *parser) parseAndExpr(and *andExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseAndExpr")) + } + pt := p.pt + state := p.cloneState() p.pushV() _, ok := p.parseExpr(and.expr) p.popV() + p.restoreState(state) p.restore(pt) return nil, ok } func (p *parser) parseAnyMatcher(any *anyMatcher) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseAnyMatcher")) + } + if p.pt.rn == utf8.RuneError && p.pt.w == 0 { // EOF - see utf8.DecodeRune p.failAt(false, p.pt.position, ".") @@ -21076,6 +21706,10 @@ func (p *parser) parseAnyMatcher(any *anyMatcher) (interface{}, bool) { } func (p *parser) parseCharClassMatcher(chr *charClassMatcher) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseCharClassMatcher")) + } + cur := p.pt.rn start := p.pt @@ -21137,22 +21771,50 @@ func (p *parser) parseCharClassMatcher(chr *charClassMatcher) (interface{}, bool return nil, false } +func (p *parser) incChoiceAltCnt(ch *choiceExpr, altI int) { + choiceIdent := fmt.Sprintf("%s %d:%d", p.rstack[len(p.rstack)-1].name, ch.pos.line, ch.pos.col) + m := p.ChoiceAltCnt[choiceIdent] + if m == nil { + m = make(map[string]int) + p.ChoiceAltCnt[choiceIdent] = m + } + // We increment altI by 1, so the keys do not start at 0 + alt := strconv.Itoa(altI + 1) + if altI == choiceNoMatch { + alt = p.choiceNoMatch + } + m[alt]++ +} + func (p *parser) parseChoiceExpr(ch *choiceExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseChoiceExpr")) + } + for altI, alt := range ch.alternatives { // dummy assignment to prevent compile error if optimized _ = altI + state := p.cloneState() + p.pushV() val, ok := p.parseExpr(alt) p.popV() if ok { + p.incChoiceAltCnt(ch, altI) return val, ok } + p.restoreState(state) } + p.incChoiceAltCnt(ch, choiceNoMatch) return nil, false } func (p *parser) parseLabeledExpr(lab *labeledExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseLabeledExpr")) + } + p.pushV() val, ok := p.parseExpr(lab.expr) p.popV() @@ -21164,6 +21826,10 @@ func (p *parser) parseLabeledExpr(lab *labeledExpr) (interface{}, bool) { } func (p *parser) parseLitMatcher(lit *litMatcher) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseLitMatcher")) + } + start := p.pt for _, want := range lit.val { cur := p.pt.rn @@ -21182,27 +21848,44 @@ func (p *parser) parseLitMatcher(lit *litMatcher) (interface{}, bool) { } func (p *parser) parseNotCodeExpr(not *notCodeExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseNotCodeExpr")) + } + + state := p.cloneState() + ok, err := not.run(p) if err != nil { p.addErr(err) } + p.restoreState(state) return nil, !ok } func (p *parser) parseNotExpr(not *notExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseNotExpr")) + } + pt := p.pt + state := p.cloneState() p.pushV() p.maxFailInvertExpected = !p.maxFailInvertExpected _, ok := p.parseExpr(not.expr) p.maxFailInvertExpected = !p.maxFailInvertExpected p.popV() + p.restoreState(state) p.restore(pt) return nil, !ok } func (p *parser) parseOneOrMoreExpr(expr *oneOrMoreExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseOneOrMoreExpr")) + } + var vals []interface{} for { @@ -21221,6 +21904,9 @@ func (p *parser) parseOneOrMoreExpr(expr *oneOrMoreExpr) (interface{}, bool) { } func (p *parser) parseRecoveryExpr(recover *recoveryExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseRecoveryExpr (" + strings.Join(recover.failureLabel, ",") + ")")) + } p.pushRecovery(recover.failureLabel, recover.recoverExpr) val, ok := p.parseExpr(recover.expr) @@ -21230,6 +21916,10 @@ func (p *parser) parseRecoveryExpr(recover *recoveryExpr) (interface{}, bool) { } func (p *parser) parseRuleRefExpr(ref *ruleRefExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseRuleRefExpr " + ref.name)) + } + if ref.name == "" { panic(fmt.Sprintf("%s: invalid rule: missing name", ref.pos)) } @@ -21243,12 +21933,18 @@ func (p *parser) parseRuleRefExpr(ref *ruleRefExpr) (interface{}, bool) { } func (p *parser) parseSeqExpr(seq *seqExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseSeqExpr")) + } + vals := make([]interface{}, 0, len(seq.exprs)) pt := p.pt + state := p.cloneState() for _, expr := range seq.exprs { val, ok := p.parseExpr(expr) if !ok { + p.restoreState(state) p.restore(pt) return nil, false } @@ -21257,7 +21953,22 @@ func (p *parser) parseSeqExpr(seq *seqExpr) (interface{}, bool) { return vals, true } +func (p *parser) parseStateCodeExpr(state *stateCodeExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseStateCodeExpr")) + } + + err := state.run(p) + if err != nil { + p.addErr(err) + } + return nil, true +} + func (p *parser) parseThrowExpr(expr *throwExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseThrowExpr")) + } for i := len(p.recoveryStack) - 1; i >= 0; i-- { if recoverExpr, ok := p.recoveryStack[i][expr.label]; ok { @@ -21271,6 +21982,10 @@ func (p *parser) parseThrowExpr(expr *throwExpr) (interface{}, bool) { } func (p *parser) parseZeroOrMoreExpr(expr *zeroOrMoreExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseZeroOrMoreExpr")) + } + var vals []interface{} for { @@ -21285,6 +22000,10 @@ func (p *parser) parseZeroOrMoreExpr(expr *zeroOrMoreExpr) (interface{}, bool) { } func (p *parser) parseZeroOrOneExpr(expr *zeroOrOneExpr) (interface{}, bool) { + if p.debug { + defer p.out(p.in("parseZeroOrOneExpr")) + } + p.pushV() val, _ := p.parseExpr(expr.expr) p.popV() diff --git a/pkg/parser/parser.peg b/pkg/parser/parser.peg index e05ef077..df895fa4 100644 --- a/pkg/parser/parser.peg +++ b/pkg/parser/parser.peg @@ -68,6 +68,7 @@ DocumentRawBlock <- / StandaloneAttributes / RawParagraph +// TODO: unused? AsciidocDocumentBlocksWithinDelimitedBlock <- blocks:(DocumentBlockWithinDelimitedBlock)* DocumentBlockWithinDelimitedBlock <- !EOF @@ -117,9 +118,9 @@ YamlFrontMatterContent <- ((!YamlFrontMatterToken .)+)* { // Document Header and Metadata // ------------------------------------------ DocumentHeader <- "=" Space+ title:(TitleElements) id:(InlineElementID*) EOL - (SingleLineComment / CommentBlock)* + (Space* SingleLineComment / CommentBlock)* authors:(DocumentAuthors?) - (SingleLineComment / CommentBlock)* + (Space* SingleLineComment / CommentBlock)* revision:(DocumentRevision?) { return types.NewDocumentHeader(title.([]interface{}), authors, revision) } @@ -466,9 +467,9 @@ AttrValueNone <- "None" { return "", nil } -// ------------------------------------------ +// ------------------------------------------------------ // Quoted Strings (between curly single or double quotes) -// ------------------------------------------ +// ------------------------------------------------------ QuotedString <- SingleQuotedString / DoubleQuotedString @@ -719,7 +720,7 @@ VerbatimFileLine <- !EOF content:([^\r\n]* { } // Entrypoint to parse a file to include. May contain nested file inclusion macros -RawFileContent <- (FileInclusion / RawLine)* +RawFileContent <- (FileInclusion / SingleLineComment / RawLine)* // ------------------------------------------ @@ -996,9 +997,16 @@ MarkdownQuoteBlockRawContent <- (!BlankLine "> "? content:(RawLine) { // at this return content, nil })+ -RawParagraphLine <- !BlankLine content:(RawParagraphLineContent) EOL { - return types.NewRawLine(content.(string)) -} +RawParagraphLine <- + content:(RawParagraphLineContent) EOL &{ + // exclude line if it is a blankline + if strings.Trim(content.(string), " \t") == "" { + return false, nil + } + return true, nil + } { + return types.NewRawLine(content.(string)) + } RawParagraphLineContent <- [^\r\n]+ { return string(c.text), nil @@ -1035,6 +1043,7 @@ MarkdownQuoteBlockAttribution <- "-- " author:(([^\r\n]+) { return author, nil } +// TODO: unused? OpenPassthroughParagraphContent <- (!BlankLine content:(VerbatimContent) { // at this stage, content is a mix of FileInclusions and lines of text (i.e., StringElement) return content, nil })+ @@ -1061,9 +1070,6 @@ FirstParagraphRawLine <- OtherParagraphRawLine <- RawParagraphLine -// extra entrypoint when parsing a paragraph line during the substition phase -NormalParagraphContent <- InlineElements+ - // ------------------------------------------ // Continued Paragraphs // ------------------------------------------ @@ -1779,22 +1785,6 @@ RawLineContent <- [^\r\n]* { return string(c.text), nil } -VerbatimContent <- VerbatimLine - -VerbatimLine <- content:(VerbatimLineContent) callouts:(Callouts)? EOL { - return types.NewVerbatimLine(content.(string), callouts) -} - -VerbatimLineContent <- (!Callouts (Space+ / [^ \r\n]+))* { - return string(c.text), nil -} - -Callouts <- Callout+ - -Callout <- "<" ref:([0-9]+ { return strconv.Atoi(string(c.text)) }) ">" Space* &(EOL / Callout) { - return types.NewCallout(ref.(int)) -} - CalloutListItem <- ref:(CalloutListItemPrefix) description:(ListParagraph+) { return types.NewCalloutListItem(ref.(int), description.([]interface{})) } @@ -1910,12 +1900,45 @@ ThematicBreak <- ("***" / "* * *" / "---" / "- - -" / "___" / "_ _ _") EOL { return types.NewThematicBreak() } + // ------------------------------------------------------------------------------------- -// DelimitedBlock content +// DelimitedBlock and Paragraph Substitutions (standalone rules) // ------------------------------------------------------------------------------------- +// extra entrypoint when parsing a whole paragraph line at once during the substition phase +NormalParagraphContentSubstitution <- + ( SingleLineComment / + ( (InlineWord // more permissive than words + / LineBreak // must be before spaces + / Space+ + / Quotes + / InlineMacros + / Replacements + / AttributeSubstitution + / AnyChar + )+ Newline?) + )+ + +Quotes <- QuotedText + +InlineMacros <- InlineIcon + / InlineImage + / Link + / InlinePassthrough + / InlineFootnote + / CrossReference + / InlineUserMacro + / InlineElementID + / ConcealedIndexTerm + / IndexTerm + +Replacements <- Symbol + / SpecialCharacter + / QuotedString + / ImpliedApostrophe + // standalone rule when applying substitutions -NormalBlockContent <- NormalElement* +NormalBlockContentSubstitution <- NormalElement* NormalElement <- !EOF element:(BlankLine @@ -1936,8 +1959,58 @@ NormalElement <- return element, nil } +VerbatimContentSubstitution <- VerbatimLine + +VerbatimLine <- content:(VerbatimLineContent) callouts:(Callouts)? EOL { + return types.NewVerbatimLine(content.(string), callouts) +} + +VerbatimLineContent <- (!Callouts (Space+ / [^ \r\n]+))* { + return string(c.text), nil +} + +Callouts <- Callout+ + +Callout <- "<" ref:([0-9]+ { return strconv.Atoi(string(c.text)) }) ">" Space* &(EOL / Callout) { + return types.NewCallout(ref.(int)) +} + +// standalone rule for the "quotes" substitution +QuotedTextSubstitution <- elements:(InlineWord // more permissive than words + / Space+ + / QuotedText + / AnyChar + / Newline)+ { + return types.NewInlineElements(elements.([]interface{})) +} + +// standalone rule for the "macros" substitution +InlineMacrosSubstitution <- elements:(InlineWord // more permissive than words + / Space+ + / InlineMacros + / AnyChar + / Newline)+ { + return types.NewInlineElements(elements.([]interface{})) +} + +// standalone rule for the "attributes" substitution +AttributesSubstitution <- elements:(InlineWord // more permissive than words + / Space+ + / AttributeSubstitution + / AnyChar + / Newline)+{ + return types.NewInlineElements(elements.([]interface{})) +} + +// standalone rule for the "none" substitution +NoneSubstitution <- ( + SingleLineComment + / ([^\r\n]+ EOL { // just text + return types.NewStringElement(string(c.text)) + }))+ + // standalone rule used by the default verse block substitution -VerseBlockContent <- VerseBlockElement* +VerseBlockContentSubstitution <- VerseBlockElement* VerseBlockElement <- !EOF element:(BlankLine / VerseBlockParagraph) { return element, nil @@ -1995,7 +2068,7 @@ CommentBlockRawContent <- (!CommentBlockEndDelimiter line:(DelimitedBlockRawLine return line, nil })* -SingleLineComment <- !CommentBlockDelimiter Space* "//" content:(SingleLineCommentContent) EOL { +SingleLineComment <- !CommentBlockDelimiter "//" content:(SingleLineCommentContent) EOL { return types.NewSingleLineComment(content.(string)) } diff --git a/pkg/types/attributes.go b/pkg/types/attributes.go index a676b5f6..fcbebd62 100644 --- a/pkg/types/attributes.go +++ b/pkg/types/attributes.go @@ -127,6 +127,8 @@ const ( AttrTipCaption = "tip-caption" // AttrWarningCaption is the TIP caption AttrWarningCaption = "warning-caption" + // AttrSubstitutions the "subs" attribute to configure substitutions on delimited blocks and paragraphs + AttrSubstitutions = "subs" ) // NewElementID initializes a new attribute map with a single entry for the ID using the given value diff --git a/pkg/types/types.go b/pkg/types/types.go index 0c824429..d8fa57ef 100644 --- a/pkg/types/types.go +++ b/pkg/types/types.go @@ -1101,23 +1101,20 @@ func NewParagraph(lines []interface{}, attributes interface{}) (Paragraph, error if err != nil { return Paragraph{}, errors.Wrapf(err, "failed to initialize a Paragraph element") } - // log.Debugf("initializing a new paragraph with %d line(s) and %d attribute(s)", len(lines), len(attrs)) - elements := make([]interface{}, 0) - for _, line := range lines { - switch l := line.(type) { - case RawLine, []interface{}: - // log.Debugf("processing paragraph line of type %T", line) - // if len(l) > 0 { - elements = append(elements, l) - // } - default: - return Paragraph{}, errors.Errorf("unsupported paragraph line of type %[1]T: %[1]v", line) - } - } + // // log.Debugf("initializing a new paragraph with %d line(s) and %d attribute(s)", len(lines), len(attrs)) + // elements := make([]interface{}, 0) + // for _, line := range lines { + // switch l := line.(type) { + // case RawLine, SingleLineComment, []interface{}: + // elements = append(elements, l) + // default: + // return Paragraph{}, errors.Errorf("unsupported paragraph line of type %[1]T: %[1]v", line) + // } + // } // log.Debugf("generated a paragraph with %d line(s): %v", len(elements), elements) return Paragraph{ Attributes: attrs, - Lines: elements, + Lines: lines, }, nil } @@ -1448,9 +1445,7 @@ func (s *sequence) nextVal() int { // ------------------------------------------ // RawLine a line with raw content, read as-is by the parser (before further processing) -type RawLine struct { - Content string -} +type RawLine = StringElement // NewRawLine returns a new slice containing a single StringElement with the given content func NewRawLine(content string) (RawLine, error) {