diff --git a/Makefile b/Makefile index 65e7ec8..28d5f75 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ build: $(SOURCES) install: $(SOURCES) go install ./cmd/treerack -head: $(SOURCES) +head: $(SOURCES) fmt go run scripts/createhead.go -- \ char.go \ sequence.go \ @@ -29,19 +29,54 @@ head: $(SOURCES) nodehead.go \ syntaxhead.go \ > head.go + @gofmt -s -w head.go -generate: $(SOURCES) $(PARSERS) head install +generate: $(SOURCES) $(PARSERS) fmt head install treerack generate -export -package-name self < syntax.treerack > self/self.go.next @mv self/self.go{.next,} @gofmt -s -w self/self.go -regenerate: $(SOURCES) $(PARSERS) head install +regenerate: $(SOURCES) $(PARSERS) fmt head install treerack generate -export -package-name self < syntax.treerack > self/self.go.next @mv self/self.go{.next,} treerack generate -export -package-name self < syntax.treerack > self/self.go.next @mv self/self.go{.next,} @gofmt -s -w self/self.go +check-generate: $(SOURCES) $(PARSERS) + @echo checking head + @mv head.go head.go.backup + @go run scripts/createhead.go -- \ + char.go \ + sequence.go \ + choice.go \ + idset.go \ + results.go \ + context.go \ + nodehead.go \ + syntaxhead.go \ + > head.go + @gofmt -s -w head.go + @if ! diff head.go head.go.backup > /dev/null; then \ + mv head.go.backup head.go; \ + echo head does not match; \ + false; \ + fi + @echo checking self + @mv self/self.go self/self.go.backup + @treerack generate -export -package-name self < syntax.treerack > self/self.go.next + @mv self/self.go{.next,} + @gofmt -s -w self/self.go + @if ! diff self/self.go self/self.go.backup > /dev/null; then \ + mv self/self.go.backup self/self.go; \ + echo self does not match; \ + false; \ + fi + + @echo ok + @mv head.go.backup head.go + @mv self/self.go.backup self/self.go + check: imports build $(PARSERS) go test -test.short -run ^Test go test ./cmd/treerack -test.short -run ^Test @@ -90,7 +125,7 @@ checkfmt: $(SOURCES) vet: go vet ./... -precommit: regenerate fmt vet build checkall +precommit: fmt check-generate vet build checkall clean: rm -f *.test diff --git a/choicedefine.go b/choicedefine.go index c824cad..30a29bc 100644 --- a/choicedefine.go +++ b/choicedefine.go @@ -41,7 +41,7 @@ func (d *choiceDefinition) validate(r *registry) error { d.validated = true for i := range d.options { - o, ok := r.definitions[d.options[i]] + o, ok := r.definition[d.options[i]] if !ok { return parserNotFound(d.options[i]) } @@ -64,7 +64,7 @@ func (d *choiceDefinition) createBuilder() { func (d *choiceDefinition) initOptions(r *registry) { for _, o := range d.options { - def := r.definitions[o] + def := r.definition[o] d.optionDefs = append(d.optionDefs, def) def.init(r) d.cbuilder.options = append(d.cbuilder.options, def.builder()) @@ -128,7 +128,7 @@ func (d *choiceDefinition) format(r *registry, f formatFlags) string { chars = append(chars, []rune(" | ")...) } - optionDef, _ := r.definition(d.options[i]) + optionDef := r.definition[d.options[i]] if optionDef.commitType()&userDefined != 0 { chars = append(chars, []rune(optionDef.nodeName())...) } else { diff --git a/format_test.go b/format_test.go index beb0405..d8925a8 100644 --- a/format_test.go +++ b/format_test.go @@ -30,7 +30,7 @@ func testDefinitionFormatItem(t *testing.T, treerack *Syntax, f formatFlags, tes t.Fatal(err) } - def, ok := s.registry.definition("def") + def, ok := s.registry.definition["def"] if !ok { t.Fatal("failed to register definition") } diff --git a/notes.txt b/notes.txt index 5fb9f6c..6fed736 100644 --- a/notes.txt +++ b/notes.txt @@ -1,9 +1,10 @@ [next] no random generator output and generator output check errors -spellcheck -linting +generator 1 releasing +parser +generator 2 formatter report unused parsers parse hashed, storing only the results @@ -15,14 +16,23 @@ test error report on invalid flag input name: may be just dropped because completely controlled by the client input name needed in command to differentiate between syntax and input in check and parse subcommands +[generator 1] +allchars: can have char sequence +make generator output non-random (track parsers in a list in definition order) +fix the license in the output + +[releasing] +spellcheck +linting +convert notes into issues +try to remove some files + [parser] custom tokens indentation streaming support // ReadNode(io.Reader) -[generator] -allchars: can have char sequence -make generator output non-random (track parsers in a list in definition order) +[generator 2] js [optimization] diff --git a/registry.go b/registry.go index 4a38f69..ac859df 100644 --- a/registry.go +++ b/registry.go @@ -2,12 +2,13 @@ package treerack type registry struct { idSeed int - definitions map[string]definition + definition map[string]definition + definitions []definition } func newRegistry(defs ...definition) *registry { r := ®istry{ - definitions: make(map[string]definition), + definition: make(map[string]definition), } for _, def := range defs { @@ -17,13 +18,8 @@ func newRegistry(defs ...definition) *registry { return r } -func (r *registry) definition(name string) (definition, bool) { - d, ok := r.definitions[name] - return d, ok -} - func (r *registry) setDefinition(d definition) error { - if _, ok := r.definitions[d.nodeName()]; ok { + if _, ok := r.definition[d.nodeName()]; ok { return duplicateDefinition(d.nodeName()) } @@ -31,15 +27,7 @@ func (r *registry) setDefinition(d definition) error { id := r.idSeed d.setID(id) - r.definitions[d.nodeName()] = d + r.definition[d.nodeName()] = d + r.definitions = append(r.definitions, d) return nil } - -func (r *registry) getDefinitions() []definition { - var defs []definition - for _, def := range r.definitions { - defs = append(defs, def) - } - - return defs -} diff --git a/self/self.go b/self/self.go index 14ad750..2250fc7 100644 --- a/self/self.go +++ b/self/self.go @@ -741,598 +741,598 @@ func Parse(r io.Reader) (*Node, error) { var p188 = sequenceParser{id: 188, commit: 32, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} var p186 = choiceParser{id: 186, commit: 2} var p185 = choiceParser{id: 185, commit: 70, name: "wsc", generalizations: []int{186}} - var p16 = choiceParser{id: 16, commit: 66, name: "wschar", generalizations: []int{185, 186}} - var p96 = sequenceParser{id: 96, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{16, 185, 186}} - var p179 = charParser{id: 179, chars: []rune{32}} - p96.items = []parser{&p179} - var p1 = sequenceParser{id: 1, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{16, 185, 186}} - var p83 = charParser{id: 83, chars: []rune{9}} - p1.items = []parser{&p83} - var p175 = sequenceParser{id: 175, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{16, 185, 186}} - var p116 = charParser{id: 116, chars: []rune{10}} - p175.items = []parser{&p116} - var p85 = sequenceParser{id: 85, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{16, 185, 186}} - var p84 = charParser{id: 84, chars: []rune{8}} - p85.items = []parser{&p84} - var p44 = sequenceParser{id: 44, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{16, 185, 186}} - var p103 = charParser{id: 103, chars: []rune{12}} - p44.items = []parser{&p103} - var p117 = sequenceParser{id: 117, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{16, 185, 186}} - var p154 = charParser{id: 154, chars: []rune{13}} - p117.items = []parser{&p154} - var p90 = sequenceParser{id: 90, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{16, 185, 186}} - var p55 = charParser{id: 55, chars: []rune{11}} - p90.items = []parser{&p55} - p16.options = []parser{&p96, &p1, &p175, &p85, &p44, &p117, &p90} - var p171 = sequenceParser{id: 171, commit: 72, name: "comment", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}, generalizations: []int{185, 186}} - var p160 = choiceParser{id: 160, commit: 74, name: "comment-segment"} - var p124 = sequenceParser{id: 124, commit: 74, name: "line-comment", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}, generalizations: []int{160}} - var p139 = sequenceParser{id: 139, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var p67 = charParser{id: 67, chars: []rune{47}} - var p143 = charParser{id: 143, chars: []rune{47}} - p139.items = []parser{&p67, &p143} - var p144 = sequenceParser{id: 144, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p29 = charParser{id: 29, not: true, chars: []rune{10}} - p144.items = []parser{&p29} - p124.items = []parser{&p139, &p144} - var p110 = sequenceParser{id: 110, commit: 74, name: "block-comment", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{160}} - var p45 = sequenceParser{id: 45, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var p2 = charParser{id: 2, chars: []rune{47}} - var p100 = charParser{id: 100, chars: []rune{42}} - p45.items = []parser{&p2, &p100} - var p36 = choiceParser{id: 36, commit: 10} - var p180 = sequenceParser{id: 180, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{36}} - var p159 = sequenceParser{id: 159, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p3 = charParser{id: 3, chars: []rune{42}} - p159.items = []parser{&p3} - var p91 = sequenceParser{id: 91, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p46 = charParser{id: 46, not: true, chars: []rune{47}} - p91.items = []parser{&p46} - p180.items = []parser{&p159, &p91} - var p66 = sequenceParser{id: 66, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{36}} - var p131 = charParser{id: 131, not: true, chars: []rune{42}} - p66.items = []parser{&p131} - p36.options = []parser{&p180, &p66} - var p97 = sequenceParser{id: 97, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var p47 = charParser{id: 47, chars: []rune{42}} - var p73 = charParser{id: 73, chars: []rune{47}} - p97.items = []parser{&p47, &p73} - p110.items = []parser{&p45, &p36, &p97} - p160.options = []parser{&p124, &p110} - var p149 = sequenceParser{id: 149, commit: 10, ranges: [][]int{{0, -1}, {0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}}} - var p111 = choiceParser{id: 111, commit: 74, name: "ws-no-nl"} - var p37 = sequenceParser{id: 37, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{111}} - var p74 = charParser{id: 74, chars: []rune{32}} - p37.items = []parser{&p74} - var p80 = sequenceParser{id: 80, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{111}} - var p38 = charParser{id: 38, chars: []rune{9}} - p80.items = []parser{&p38} - var p92 = sequenceParser{id: 92, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{111}} - var p161 = charParser{id: 161, chars: []rune{8}} - p92.items = []parser{&p161} - var p148 = sequenceParser{id: 148, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{111}} - var p56 = charParser{id: 56, chars: []rune{12}} - p148.items = []parser{&p56} - var p166 = sequenceParser{id: 166, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{111}} - var p8 = charParser{id: 8, chars: []rune{13}} - p166.items = []parser{&p8} - var p155 = sequenceParser{id: 155, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{111}} - var p4 = charParser{id: 4, chars: []rune{11}} - p155.items = []parser{&p4} - p111.options = []parser{&p37, &p80, &p92, &p148, &p166, &p155} - var p167 = sequenceParser{id: 167, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p162 = charParser{id: 162, chars: []rune{10}} - p167.items = []parser{&p162} - p149.items = []parser{&p111, &p167, &p111, &p160} - p171.items = []parser{&p160, &p149} - p185.options = []parser{&p16, &p171} + var p15 = choiceParser{id: 15, commit: 66, name: "wschar", generalizations: []int{185, 186}} + var p2 = sequenceParser{id: 2, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}} + var p1 = charParser{id: 1, chars: []rune{32}} + p2.items = []parser{&p1} + var p4 = sequenceParser{id: 4, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}} + var p3 = charParser{id: 3, chars: []rune{9}} + p4.items = []parser{&p3} + var p6 = sequenceParser{id: 6, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}} + var p5 = charParser{id: 5, chars: []rune{10}} + p6.items = []parser{&p5} + var p8 = sequenceParser{id: 8, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}} + var p7 = charParser{id: 7, chars: []rune{8}} + p8.items = []parser{&p7} + var p10 = sequenceParser{id: 10, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}} + var p9 = charParser{id: 9, chars: []rune{12}} + p10.items = []parser{&p9} + var p12 = sequenceParser{id: 12, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}} + var p11 = charParser{id: 11, chars: []rune{13}} + p12.items = []parser{&p11} + var p14 = sequenceParser{id: 14, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{15, 185, 186}} + var p13 = charParser{id: 13, chars: []rune{11}} + p14.items = []parser{&p13} + p15.options = []parser{&p2, &p4, &p6, &p8, &p10, &p12, &p14} + var p54 = sequenceParser{id: 54, commit: 72, name: "comment", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}, generalizations: []int{185, 186}} + var p37 = choiceParser{id: 37, commit: 74, name: "comment-segment"} + var p36 = sequenceParser{id: 36, commit: 74, name: "line-comment", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}, generalizations: []int{37}} + var p33 = sequenceParser{id: 33, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var p31 = charParser{id: 31, chars: []rune{47}} + var p32 = charParser{id: 32, chars: []rune{47}} + p33.items = []parser{&p31, &p32} + var p35 = sequenceParser{id: 35, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p34 = charParser{id: 34, not: true, chars: []rune{10}} + p35.items = []parser{&p34} + p36.items = []parser{&p33, &p35} + var p30 = sequenceParser{id: 30, commit: 74, name: "block-comment", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{37}} + var p18 = sequenceParser{id: 18, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var p16 = charParser{id: 16, chars: []rune{47}} + var p17 = charParser{id: 17, chars: []rune{42}} + p18.items = []parser{&p16, &p17} + var p26 = choiceParser{id: 26, commit: 10} + var p23 = sequenceParser{id: 23, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{26}} + var p20 = sequenceParser{id: 20, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p19 = charParser{id: 19, chars: []rune{42}} + p20.items = []parser{&p19} + var p22 = sequenceParser{id: 22, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p21 = charParser{id: 21, not: true, chars: []rune{47}} + p22.items = []parser{&p21} + p23.items = []parser{&p20, &p22} + var p25 = sequenceParser{id: 25, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{26}} + var p24 = charParser{id: 24, not: true, chars: []rune{42}} + p25.items = []parser{&p24} + p26.options = []parser{&p23, &p25} + var p29 = sequenceParser{id: 29, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var p27 = charParser{id: 27, chars: []rune{42}} + var p28 = charParser{id: 28, chars: []rune{47}} + p29.items = []parser{&p27, &p28} + p30.items = []parser{&p18, &p26, &p29} + p37.options = []parser{&p36, &p30} + var p53 = sequenceParser{id: 53, commit: 10, ranges: [][]int{{0, -1}, {0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}}} + var p50 = choiceParser{id: 50, commit: 74, name: "ws-no-nl"} + var p39 = sequenceParser{id: 39, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}} + var p38 = charParser{id: 38, chars: []rune{32}} + p39.items = []parser{&p38} + var p41 = sequenceParser{id: 41, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}} + var p40 = charParser{id: 40, chars: []rune{9}} + p41.items = []parser{&p40} + var p43 = sequenceParser{id: 43, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}} + var p42 = charParser{id: 42, chars: []rune{8}} + p43.items = []parser{&p42} + var p45 = sequenceParser{id: 45, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}} + var p44 = charParser{id: 44, chars: []rune{12}} + p45.items = []parser{&p44} + var p47 = sequenceParser{id: 47, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}} + var p46 = charParser{id: 46, chars: []rune{13}} + p47.items = []parser{&p46} + var p49 = sequenceParser{id: 49, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}} + var p48 = charParser{id: 48, chars: []rune{11}} + p49.items = []parser{&p48} + p50.options = []parser{&p39, &p41, &p43, &p45, &p47, &p49} + var p52 = sequenceParser{id: 52, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p51 = charParser{id: 51, chars: []rune{10}} + p52.items = []parser{&p51} + p53.items = []parser{&p50, &p52, &p50, &p37} + p54.items = []parser{&p37, &p53} + p185.options = []parser{&p15, &p54} p186.options = []parser{&p185} var p187 = sequenceParser{id: 187, commit: 66, name: "syntax:wsroot", ranges: [][]int{{0, 1}, {0, -1}, {0, 1}, {0, 1}}} - var p136 = sequenceParser{id: 136, commit: 2, ranges: [][]int{{1, 1}, {0, -1}}} - var p7 = sequenceParser{id: 7, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p115 = charParser{id: 115, chars: []rune{59}} - p7.items = []parser{&p115} - var p135 = sequenceParser{id: 135, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} - p135.items = []parser{&p186, &p7} - p136.items = []parser{&p7, &p135} - var p35 = sequenceParser{id: 35, commit: 66, name: "definitions", ranges: [][]int{{1, 1}, {0, 1}}} - var p72 = sequenceParser{id: 72, commit: 64, name: "definition", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}} - var p178 = sequenceParser{id: 178, commit: 74, name: "definition-name", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} - var p119 = sequenceParser{id: 119, commit: 72, name: "symbol", ranges: [][]int{{1, -1}, {1, -1}}, generalizations: []int{23, 158, 6}} - var p101 = sequenceParser{id: 101, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p86 = charParser{id: 86, not: true, chars: []rune{92, 32, 10, 9, 8, 12, 13, 11, 47, 46, 91, 93, 34, 123, 125, 94, 43, 42, 63, 124, 40, 41, 58, 61, 59}} - p101.items = []parser{&p86} - p119.items = []parser{&p101} - var p146 = sequenceParser{id: 146, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var p28 = sequenceParser{id: 28, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p82 = charParser{id: 82, chars: []rune{58}} - p28.items = []parser{&p82} - var p14 = choiceParser{id: 14, commit: 66, name: "flag"} - var p123 = sequenceParser{id: 123, commit: 72, name: "alias", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{14}} - var p60 = charParser{id: 60, chars: []rune{97}} - var p174 = charParser{id: 174, chars: []rune{108}} - var p43 = charParser{id: 43, chars: []rune{105}} - var p51 = charParser{id: 51, chars: []rune{97}} - var p11 = charParser{id: 11, chars: []rune{115}} - p123.items = []parser{&p60, &p174, &p43, &p51, &p11} - var p78 = sequenceParser{id: 78, commit: 72, name: "ws", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{14}} - var p52 = charParser{id: 52, chars: []rune{119}} - var p12 = charParser{id: 12, chars: []rune{115}} - p78.items = []parser{&p52, &p12} - var p109 = sequenceParser{id: 109, commit: 72, name: "nows", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{14}} - var p184 = charParser{id: 184, chars: []rune{110}} - var p79 = charParser{id: 79, chars: []rune{111}} - var p88 = charParser{id: 88, chars: []rune{119}} - var p128 = charParser{id: 128, chars: []rune{115}} - p109.items = []parser{&p184, &p79, &p88, &p128} - var p71 = sequenceParser{id: 71, commit: 72, name: "failpass", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{14}} - var p32 = charParser{id: 32, chars: []rune{102}} - var p134 = charParser{id: 134, chars: []rune{97}} - var p53 = charParser{id: 53, chars: []rune{105}} - var p129 = charParser{id: 129, chars: []rune{108}} - var p65 = charParser{id: 65, chars: []rune{112}} - var p145 = charParser{id: 145, chars: []rune{97}} - var p24 = charParser{id: 24, chars: []rune{115}} - var p13 = charParser{id: 13, chars: []rune{115}} - p71.items = []parser{&p32, &p134, &p53, &p129, &p65, &p145, &p24, &p13} - var p54 = sequenceParser{id: 54, commit: 72, name: "root", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{14}} - var p27 = charParser{id: 27, chars: []rune{114}} - var p169 = charParser{id: 169, chars: []rune{111}} - var p142 = charParser{id: 142, chars: []rune{111}} - var p170 = charParser{id: 170, chars: []rune{116}} - p54.items = []parser{&p27, &p169, &p142, &p170} - p14.options = []parser{&p123, &p78, &p109, &p71, &p54} - p146.items = []parser{&p28, &p14} - p178.items = []parser{&p119, &p146} - var p89 = sequenceParser{id: 89, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p151 = charParser{id: 151, chars: []rune{61}} - p89.items = []parser{&p151} - var p23 = choiceParser{id: 23, commit: 66, name: "expression"} - var p181 = choiceParser{id: 181, commit: 66, name: "terminal", generalizations: []int{23, 158, 6}} - var p39 = sequenceParser{id: 39, commit: 72, name: "any-char", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{181, 23, 158, 6}} - var p25 = charParser{id: 25, chars: []rune{46}} - p39.items = []parser{&p25} - var p58 = sequenceParser{id: 58, commit: 72, name: "char-class", ranges: [][]int{{1, 1}, {0, 1}, {0, -1}, {1, 1}, {1, 1}, {0, 1}, {0, -1}, {1, 1}}, generalizations: []int{181, 23, 158, 6}} - var p125 = sequenceParser{id: 125, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p18 = charParser{id: 18, chars: []rune{91}} - p125.items = []parser{&p18} - var p10 = sequenceParser{id: 10, commit: 72, name: "class-not", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p9 = charParser{id: 9, chars: []rune{94}} - p10.items = []parser{&p9} - var p156 = choiceParser{id: 156, commit: 10} - var p132 = choiceParser{id: 132, commit: 72, name: "class-char", generalizations: []int{156}} - var p26 = sequenceParser{id: 26, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{132, 156}} - var p57 = charParser{id: 57, not: true, chars: []rune{92, 91, 93, 94, 45}} - p26.items = []parser{&p57} - var p98 = sequenceParser{id: 98, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{132, 156}} - var p118 = sequenceParser{id: 118, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p5 = charParser{id: 5, chars: []rune{92}} - p118.items = []parser{&p5} - var p102 = sequenceParser{id: 102, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p61 = charParser{id: 61, not: true} - p102.items = []parser{&p61} - p98.items = []parser{&p118, &p102} - p132.options = []parser{&p26, &p98} - var p140 = sequenceParser{id: 140, commit: 72, name: "char-range", ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{156}} - var p62 = sequenceParser{id: 62, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p17 = charParser{id: 17, chars: []rune{45}} - p62.items = []parser{&p17} - p140.items = []parser{&p132, &p62, &p132} - p156.options = []parser{&p132, &p140} - var p93 = sequenceParser{id: 93, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p150 = charParser{id: 150, chars: []rune{93}} - p93.items = []parser{&p150} - p58.items = []parser{&p125, &p10, &p156, &p93} - var p20 = sequenceParser{id: 20, commit: 72, name: "char-sequence", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{181, 23, 158, 6}} - var p68 = sequenceParser{id: 68, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p63 = charParser{id: 63, chars: []rune{34}} - p68.items = []parser{&p63} - var p31 = choiceParser{id: 31, commit: 72, name: "sequence-char"} - var p48 = sequenceParser{id: 48, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{31}} - var p157 = charParser{id: 157, not: true, chars: []rune{92, 34}} - p48.items = []parser{&p157} - var p94 = sequenceParser{id: 94, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{31}} - var p75 = sequenceParser{id: 75, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p19 = charParser{id: 19, chars: []rune{92}} - p75.items = []parser{&p19} - var p126 = sequenceParser{id: 126, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p133 = charParser{id: 133, not: true} - p126.items = []parser{&p133} - p94.items = []parser{&p75, &p126} - p31.options = []parser{&p48, &p94} - var p69 = sequenceParser{id: 69, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p104 = charParser{id: 104, chars: []rune{34}} - p69.items = []parser{&p104} - p20.items = []parser{&p68, &p31, &p69} - p181.options = []parser{&p39, &p58, &p20} - var p40 = sequenceParser{id: 40, commit: 66, name: "group", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{23, 158, 6}} - var p105 = sequenceParser{id: 105, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p95 = charParser{id: 95, chars: []rune{40}} - p105.items = []parser{&p95} - var p99 = sequenceParser{id: 99, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p59 = charParser{id: 59, chars: []rune{41}} - p99.items = []parser{&p59} - p40.items = []parser{&p105, &p186, &p23, &p186, &p99} - var p108 = sequenceParser{id: 108, commit: 64, name: "sequence", ranges: [][]int{{1, 1}, {0, -1}}, generalizations: []int{23, 6}} - var p15 = sequenceParser{id: 15, commit: 72, name: "item", ranges: [][]int{{1, 1}, {0, 1}, {1, 1}, {0, 1}}} - var p158 = choiceParser{id: 158, commit: 10} - p158.options = []parser{&p181, &p119, &p40} - var p50 = choiceParser{id: 50, commit: 66, name: "quantity"} - var p41 = sequenceParser{id: 41, commit: 64, name: "count-quantifier", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{50}} + var p182 = sequenceParser{id: 182, commit: 2, ranges: [][]int{{1, 1}, {0, -1}}} + var p178 = sequenceParser{id: 178, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p177 = charParser{id: 177, chars: []rune{59}} + p178.items = []parser{&p177} + var p181 = sequenceParser{id: 181, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + p181.items = []parser{&p186, &p178} + p182.items = []parser{&p178, &p181} + var p176 = sequenceParser{id: 176, commit: 66, name: "definitions", ranges: [][]int{{1, 1}, {0, 1}}} + var p169 = sequenceParser{id: 169, commit: 64, name: "definition", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}} + var p166 = sequenceParser{id: 166, commit: 74, name: "definition-name", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} + var p92 = sequenceParser{id: 92, commit: 72, name: "symbol", ranges: [][]int{{1, -1}, {1, -1}}, generalizations: []int{133, 123, 127}} + var p91 = sequenceParser{id: 91, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p90 = charParser{id: 90, not: true, chars: []rune{92, 32, 10, 9, 8, 12, 13, 11, 47, 46, 91, 93, 34, 123, 125, 94, 43, 42, 63, 124, 40, 41, 58, 61, 59}} + p91.items = []parser{&p90} + p92.items = []parser{&p91} + var p165 = sequenceParser{id: 165, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} var p164 = sequenceParser{id: 164, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p49 = charParser{id: 49, chars: []rune{123}} - p164.items = []parser{&p49} - var p176 = sequenceParser{id: 176, commit: 64, name: "count", ranges: [][]int{{1, 1}}} - var p120 = sequenceParser{id: 120, commit: 74, name: "number", ranges: [][]int{{1, -1}, {1, -1}}} - var p182 = sequenceParser{id: 182, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p163 = charParser{id: 163, ranges: [][]rune{{48, 57}}} - p182.items = []parser{&p163} - p120.items = []parser{&p182} - p176.items = []parser{&p120} + var p163 = charParser{id: 163, chars: []rune{58}} + p164.items = []parser{&p163} + var p162 = choiceParser{id: 162, commit: 66, name: "flag"} + var p139 = sequenceParser{id: 139, commit: 72, name: "alias", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{162}} + var p134 = charParser{id: 134, chars: []rune{97}} + var p135 = charParser{id: 135, chars: []rune{108}} + var p136 = charParser{id: 136, chars: []rune{105}} + var p137 = charParser{id: 137, chars: []rune{97}} + var p138 = charParser{id: 138, chars: []rune{115}} + p139.items = []parser{&p134, &p135, &p136, &p137, &p138} + var p142 = sequenceParser{id: 142, commit: 72, name: "ws", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{162}} + var p140 = charParser{id: 140, chars: []rune{119}} + var p141 = charParser{id: 141, chars: []rune{115}} + p142.items = []parser{&p140, &p141} + var p147 = sequenceParser{id: 147, commit: 72, name: "nows", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{162}} + var p143 = charParser{id: 143, chars: []rune{110}} + var p144 = charParser{id: 144, chars: []rune{111}} + var p145 = charParser{id: 145, chars: []rune{119}} + var p146 = charParser{id: 146, chars: []rune{115}} + p147.items = []parser{&p143, &p144, &p145, &p146} + var p156 = sequenceParser{id: 156, commit: 72, name: "failpass", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{162}} + var p148 = charParser{id: 148, chars: []rune{102}} + var p149 = charParser{id: 149, chars: []rune{97}} + var p150 = charParser{id: 150, chars: []rune{105}} + var p151 = charParser{id: 151, chars: []rune{108}} + var p152 = charParser{id: 152, chars: []rune{112}} + var p153 = charParser{id: 153, chars: []rune{97}} + var p154 = charParser{id: 154, chars: []rune{115}} + var p155 = charParser{id: 155, chars: []rune{115}} + p156.items = []parser{&p148, &p149, &p150, &p151, &p152, &p153, &p154, &p155} + var p161 = sequenceParser{id: 161, commit: 72, name: "root", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{162}} + var p157 = charParser{id: 157, chars: []rune{114}} + var p158 = charParser{id: 158, chars: []rune{111}} + var p159 = charParser{id: 159, chars: []rune{111}} + var p160 = charParser{id: 160, chars: []rune{116}} + p161.items = []parser{&p157, &p158, &p159, &p160} + p162.options = []parser{&p139, &p142, &p147, &p156, &p161} + p165.items = []parser{&p164, &p162} + p166.items = []parser{&p92, &p165} + var p168 = sequenceParser{id: 168, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p167 = charParser{id: 167, chars: []rune{61}} + p168.items = []parser{&p167} + var p133 = choiceParser{id: 133, commit: 66, name: "expression"} + var p89 = choiceParser{id: 89, commit: 66, name: "terminal", generalizations: []int{133, 123, 127}} + var p56 = sequenceParser{id: 56, commit: 72, name: "any-char", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{89, 133, 123, 127}} + var p55 = charParser{id: 55, chars: []rune{46}} + p56.items = []parser{&p55} + var p75 = sequenceParser{id: 75, commit: 72, name: "char-class", ranges: [][]int{{1, 1}, {0, 1}, {0, -1}, {1, 1}, {1, 1}, {0, 1}, {0, -1}, {1, 1}}, generalizations: []int{89, 133, 123, 127}} + var p71 = sequenceParser{id: 71, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p70 = charParser{id: 70, chars: []rune{91}} + p71.items = []parser{&p70} + var p58 = sequenceParser{id: 58, commit: 72, name: "class-not", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p57 = charParser{id: 57, chars: []rune{94}} + p58.items = []parser{&p57} + var p72 = choiceParser{id: 72, commit: 10} + var p66 = choiceParser{id: 66, commit: 72, name: "class-char", generalizations: []int{72}} + var p60 = sequenceParser{id: 60, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{66, 72}} + var p59 = charParser{id: 59, not: true, chars: []rune{92, 91, 93, 94, 45}} + p60.items = []parser{&p59} + var p65 = sequenceParser{id: 65, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{66, 72}} + var p62 = sequenceParser{id: 62, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p61 = charParser{id: 61, chars: []rune{92}} + p62.items = []parser{&p61} + var p64 = sequenceParser{id: 64, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p63 = charParser{id: 63, not: true} + p64.items = []parser{&p63} + p65.items = []parser{&p62, &p64} + p66.options = []parser{&p60, &p65} + var p69 = sequenceParser{id: 69, commit: 72, name: "char-range", ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{72}} + var p68 = sequenceParser{id: 68, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p67 = charParser{id: 67, chars: []rune{45}} + p68.items = []parser{&p67} + p69.items = []parser{&p66, &p68, &p66} + p72.options = []parser{&p66, &p69} + var p74 = sequenceParser{id: 74, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p73 = charParser{id: 73, chars: []rune{93}} + p74.items = []parser{&p73} + p75.items = []parser{&p71, &p58, &p72, &p74} + var p88 = sequenceParser{id: 88, commit: 72, name: "char-sequence", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{89, 133, 123, 127}} + var p85 = sequenceParser{id: 85, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p84 = charParser{id: 84, chars: []rune{34}} + p85.items = []parser{&p84} + var p83 = choiceParser{id: 83, commit: 72, name: "sequence-char"} + var p77 = sequenceParser{id: 77, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{83}} + var p76 = charParser{id: 76, not: true, chars: []rune{92, 34}} + p77.items = []parser{&p76} + var p82 = sequenceParser{id: 82, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{83}} + var p79 = sequenceParser{id: 79, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p78 = charParser{id: 78, chars: []rune{92}} + p79.items = []parser{&p78} + var p81 = sequenceParser{id: 81, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p80 = charParser{id: 80, not: true} + p81.items = []parser{&p80} + p82.items = []parser{&p79, &p81} + p83.options = []parser{&p77, &p82} var p87 = sequenceParser{id: 87, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p141 = charParser{id: 141, chars: []rune{125}} - p87.items = []parser{&p141} - p41.items = []parser{&p164, &p186, &p176, &p186, &p87} - var p70 = sequenceParser{id: 70, commit: 64, name: "range-quantifier", ranges: [][]int{{1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}}, generalizations: []int{50}} - var p106 = sequenceParser{id: 106, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p76 = charParser{id: 76, chars: []rune{123}} - p106.items = []parser{&p76} - var p42 = sequenceParser{id: 42, commit: 64, name: "range-from", ranges: [][]int{{1, 1}}} - p42.items = []parser{&p120} - var p172 = sequenceParser{id: 172, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p112 = charParser{id: 112, chars: []rune{44}} - p172.items = []parser{&p112} - var p21 = sequenceParser{id: 21, commit: 64, name: "range-to", ranges: [][]int{{1, 1}}} - p21.items = []parser{&p120} - var p165 = sequenceParser{id: 165, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p81 = charParser{id: 81, chars: []rune{125}} - p165.items = []parser{&p81} - p70.items = []parser{&p106, &p186, &p42, &p186, &p172, &p186, &p21, &p186, &p165} - var p127 = sequenceParser{id: 127, commit: 72, name: "one-or-more", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}} - var p183 = charParser{id: 183, chars: []rune{43}} - p127.items = []parser{&p183} - var p22 = sequenceParser{id: 22, commit: 72, name: "zero-or-more", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}} - var p177 = charParser{id: 177, chars: []rune{42}} - p22.items = []parser{&p177} - var p168 = sequenceParser{id: 168, commit: 72, name: "zero-or-one", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{50}} - var p30 = charParser{id: 30, chars: []rune{63}} - p168.items = []parser{&p30} - p50.options = []parser{&p41, &p70, &p127, &p22, &p168} - p15.items = []parser{&p158, &p50} - var p107 = sequenceParser{id: 107, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} - p107.items = []parser{&p186, &p15} - p108.items = []parser{&p15, &p107} - var p122 = sequenceParser{id: 122, commit: 64, name: "choice", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}, generalizations: []int{23}} - var p6 = choiceParser{id: 6, commit: 66, name: "option"} - p6.options = []parser{&p181, &p119, &p40, &p108} - var p77 = sequenceParser{id: 77, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}}} - var p173 = sequenceParser{id: 173, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p64 = charParser{id: 64, chars: []rune{124}} - p173.items = []parser{&p64} - p77.items = []parser{&p173, &p186, &p6} - var p121 = sequenceParser{id: 121, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} - p121.items = []parser{&p186, &p77} - p122.items = []parser{&p6, &p186, &p77, &p121} - p23.options = []parser{&p181, &p119, &p40, &p108, &p122} - p72.items = []parser{&p178, &p186, &p89, &p186, &p23} - var p34 = sequenceParser{id: 34, commit: 2, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} - var p114 = sequenceParser{id: 114, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {0, -1}, {1, 1}}} - var p147 = sequenceParser{id: 147, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p152 = charParser{id: 152, chars: []rune{59}} - p147.items = []parser{&p152} - var p113 = sequenceParser{id: 113, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} - p113.items = []parser{&p186, &p147} - p114.items = []parser{&p147, &p113, &p186, &p72} - var p33 = sequenceParser{id: 33, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} - p33.items = []parser{&p186, &p114} - p34.items = []parser{&p186, &p114, &p33} - p35.items = []parser{&p72, &p34} - var p138 = sequenceParser{id: 138, commit: 2, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} - var p130 = sequenceParser{id: 130, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var p153 = charParser{id: 153, chars: []rune{59}} - p130.items = []parser{&p153} - var p137 = sequenceParser{id: 137, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} - p137.items = []parser{&p186, &p130} - p138.items = []parser{&p186, &p130, &p137} - p187.items = []parser{&p136, &p186, &p35, &p138} + var p86 = charParser{id: 86, chars: []rune{34}} + p87.items = []parser{&p86} + p88.items = []parser{&p85, &p83, &p87} + p89.options = []parser{&p56, &p75, &p88} + var p97 = sequenceParser{id: 97, commit: 66, name: "group", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{133, 123, 127}} + var p94 = sequenceParser{id: 94, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p93 = charParser{id: 93, chars: []rune{40}} + p94.items = []parser{&p93} + var p96 = sequenceParser{id: 96, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p95 = charParser{id: 95, chars: []rune{41}} + p96.items = []parser{&p95} + p97.items = []parser{&p94, &p186, &p133, &p186, &p96} + var p126 = sequenceParser{id: 126, commit: 64, name: "sequence", ranges: [][]int{{1, 1}, {0, -1}}, generalizations: []int{133, 127}} + var p124 = sequenceParser{id: 124, commit: 72, name: "item", ranges: [][]int{{1, 1}, {0, 1}, {1, 1}, {0, 1}}} + var p123 = choiceParser{id: 123, commit: 10} + p123.options = []parser{&p89, &p92, &p97} + var p122 = choiceParser{id: 122, commit: 66, name: "quantity"} + var p106 = sequenceParser{id: 106, commit: 64, name: "count-quantifier", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{122}} + var p103 = sequenceParser{id: 103, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p102 = charParser{id: 102, chars: []rune{123}} + p103.items = []parser{&p102} + var p101 = sequenceParser{id: 101, commit: 64, name: "count", ranges: [][]int{{1, 1}}} + var p100 = sequenceParser{id: 100, commit: 74, name: "number", ranges: [][]int{{1, -1}, {1, -1}}} + var p99 = sequenceParser{id: 99, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p98 = charParser{id: 98, ranges: [][]rune{{48, 57}}} + p99.items = []parser{&p98} + p100.items = []parser{&p99} + p101.items = []parser{&p100} + var p105 = sequenceParser{id: 105, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p104 = charParser{id: 104, chars: []rune{125}} + p105.items = []parser{&p104} + p106.items = []parser{&p103, &p186, &p101, &p186, &p105} + var p115 = sequenceParser{id: 115, commit: 64, name: "range-quantifier", ranges: [][]int{{1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}}, generalizations: []int{122}} + var p110 = sequenceParser{id: 110, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p109 = charParser{id: 109, chars: []rune{123}} + p110.items = []parser{&p109} + var p107 = sequenceParser{id: 107, commit: 64, name: "range-from", ranges: [][]int{{1, 1}}} + p107.items = []parser{&p100} + var p112 = sequenceParser{id: 112, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p111 = charParser{id: 111, chars: []rune{44}} + p112.items = []parser{&p111} + var p108 = sequenceParser{id: 108, commit: 64, name: "range-to", ranges: [][]int{{1, 1}}} + p108.items = []parser{&p100} + var p114 = sequenceParser{id: 114, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p113 = charParser{id: 113, chars: []rune{125}} + p114.items = []parser{&p113} + p115.items = []parser{&p110, &p186, &p107, &p186, &p112, &p186, &p108, &p186, &p114} + var p117 = sequenceParser{id: 117, commit: 72, name: "one-or-more", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{122}} + var p116 = charParser{id: 116, chars: []rune{43}} + p117.items = []parser{&p116} + var p119 = sequenceParser{id: 119, commit: 72, name: "zero-or-more", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{122}} + var p118 = charParser{id: 118, chars: []rune{42}} + p119.items = []parser{&p118} + var p121 = sequenceParser{id: 121, commit: 72, name: "zero-or-one", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{122}} + var p120 = charParser{id: 120, chars: []rune{63}} + p121.items = []parser{&p120} + p122.options = []parser{&p106, &p115, &p117, &p119, &p121} + p124.items = []parser{&p123, &p122} + var p125 = sequenceParser{id: 125, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + p125.items = []parser{&p186, &p124} + p126.items = []parser{&p124, &p125} + var p132 = sequenceParser{id: 132, commit: 64, name: "choice", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}, generalizations: []int{133}} + var p127 = choiceParser{id: 127, commit: 66, name: "option"} + p127.options = []parser{&p89, &p92, &p97, &p126} + var p130 = sequenceParser{id: 130, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}}} + var p129 = sequenceParser{id: 129, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p128 = charParser{id: 128, chars: []rune{124}} + p129.items = []parser{&p128} + p130.items = []parser{&p129, &p186, &p127} + var p131 = sequenceParser{id: 131, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + p131.items = []parser{&p186, &p130} + p132.items = []parser{&p127, &p186, &p130, &p131} + p133.options = []parser{&p89, &p92, &p97, &p126, &p132} + p169.items = []parser{&p166, &p186, &p168, &p186, &p133} + var p175 = sequenceParser{id: 175, commit: 2, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} + var p173 = sequenceParser{id: 173, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {0, -1}, {1, 1}}} + var p171 = sequenceParser{id: 171, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p170 = charParser{id: 170, chars: []rune{59}} + p171.items = []parser{&p170} + var p172 = sequenceParser{id: 172, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + p172.items = []parser{&p186, &p171} + p173.items = []parser{&p171, &p172, &p186, &p169} + var p174 = sequenceParser{id: 174, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + p174.items = []parser{&p186, &p173} + p175.items = []parser{&p186, &p173, &p174} + p176.items = []parser{&p169, &p175} + var p184 = sequenceParser{id: 184, commit: 2, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} + var p180 = sequenceParser{id: 180, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p179 = charParser{id: 179, chars: []rune{59}} + p180.items = []parser{&p179} + var p183 = sequenceParser{id: 183, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + p183.items = []parser{&p186, &p180} + p184.items = []parser{&p186, &p180, &p183} + p187.items = []parser{&p182, &p186, &p176, &p184} p188.items = []parser{&p186, &p187, &p186} var b188 = sequenceBuilder{id: 188, commit: 32, name: "syntax", ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} var b186 = choiceBuilder{id: 186, commit: 2} var b185 = choiceBuilder{id: 185, commit: 70} - var b16 = choiceBuilder{id: 16, commit: 66} - var b96 = sequenceBuilder{id: 96, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b179 = charBuilder{} - b96.items = []builder{&b179} - var b1 = sequenceBuilder{id: 1, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b83 = charBuilder{} - b1.items = []builder{&b83} - var b175 = sequenceBuilder{id: 175, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b116 = charBuilder{} - b175.items = []builder{&b116} + var b15 = choiceBuilder{id: 15, commit: 66} + var b2 = sequenceBuilder{id: 2, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b1 = charBuilder{} + b2.items = []builder{&b1} + var b4 = sequenceBuilder{id: 4, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b3 = charBuilder{} + b4.items = []builder{&b3} + var b6 = sequenceBuilder{id: 6, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b5 = charBuilder{} + b6.items = []builder{&b5} + var b8 = sequenceBuilder{id: 8, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b7 = charBuilder{} + b8.items = []builder{&b7} + var b10 = sequenceBuilder{id: 10, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b9 = charBuilder{} + b10.items = []builder{&b9} + var b12 = sequenceBuilder{id: 12, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b11 = charBuilder{} + b12.items = []builder{&b11} + var b14 = sequenceBuilder{id: 14, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b13 = charBuilder{} + b14.items = []builder{&b13} + b15.options = []builder{&b2, &b4, &b6, &b8, &b10, &b12, &b14} + var b54 = sequenceBuilder{id: 54, commit: 72, name: "comment", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} + var b37 = choiceBuilder{id: 37, commit: 74} + var b36 = sequenceBuilder{id: 36, commit: 74, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} + var b33 = sequenceBuilder{id: 33, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b31 = charBuilder{} + var b32 = charBuilder{} + b33.items = []builder{&b31, &b32} + var b35 = sequenceBuilder{id: 35, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b34 = charBuilder{} + b35.items = []builder{&b34} + b36.items = []builder{&b33, &b35} + var b30 = sequenceBuilder{id: 30, commit: 74, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}} + var b18 = sequenceBuilder{id: 18, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b16 = charBuilder{} + var b17 = charBuilder{} + b18.items = []builder{&b16, &b17} + var b26 = choiceBuilder{id: 26, commit: 10} + var b23 = sequenceBuilder{id: 23, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b20 = sequenceBuilder{id: 20, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b19 = charBuilder{} + b20.items = []builder{&b19} + var b22 = sequenceBuilder{id: 22, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b21 = charBuilder{} + b22.items = []builder{&b21} + b23.items = []builder{&b20, &b22} + var b25 = sequenceBuilder{id: 25, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b24 = charBuilder{} + b25.items = []builder{&b24} + b26.options = []builder{&b23, &b25} + var b29 = sequenceBuilder{id: 29, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b27 = charBuilder{} + var b28 = charBuilder{} + b29.items = []builder{&b27, &b28} + b30.items = []builder{&b18, &b26, &b29} + b37.options = []builder{&b36, &b30} + var b53 = sequenceBuilder{id: 53, commit: 10, ranges: [][]int{{0, -1}, {0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}}} + var b50 = choiceBuilder{id: 50, commit: 74} + var b39 = sequenceBuilder{id: 39, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b38 = charBuilder{} + b39.items = []builder{&b38} + var b41 = sequenceBuilder{id: 41, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b40 = charBuilder{} + b41.items = []builder{&b40} + var b43 = sequenceBuilder{id: 43, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b42 = charBuilder{} + b43.items = []builder{&b42} + var b45 = sequenceBuilder{id: 45, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b44 = charBuilder{} + b45.items = []builder{&b44} + var b47 = sequenceBuilder{id: 47, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b46 = charBuilder{} + b47.items = []builder{&b46} + var b49 = sequenceBuilder{id: 49, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b48 = charBuilder{} + b49.items = []builder{&b48} + b50.options = []builder{&b39, &b41, &b43, &b45, &b47, &b49} + var b52 = sequenceBuilder{id: 52, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b51 = charBuilder{} + b52.items = []builder{&b51} + b53.items = []builder{&b50, &b52, &b50, &b37} + b54.items = []builder{&b37, &b53} + b185.options = []builder{&b15, &b54} + b186.options = []builder{&b185} + var b187 = sequenceBuilder{id: 187, commit: 66, ranges: [][]int{{0, 1}, {0, -1}, {0, 1}, {0, 1}}} + var b182 = sequenceBuilder{id: 182, commit: 2, ranges: [][]int{{1, 1}, {0, -1}}} + var b178 = sequenceBuilder{id: 178, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b177 = charBuilder{} + b178.items = []builder{&b177} + var b181 = sequenceBuilder{id: 181, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + b181.items = []builder{&b186, &b178} + b182.items = []builder{&b178, &b181} + var b176 = sequenceBuilder{id: 176, commit: 66, ranges: [][]int{{1, 1}, {0, 1}}} + var b169 = sequenceBuilder{id: 169, commit: 64, name: "definition", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}} + var b166 = sequenceBuilder{id: 166, commit: 74, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} + var b92 = sequenceBuilder{id: 92, commit: 72, name: "symbol", ranges: [][]int{{1, -1}, {1, -1}}} + var b91 = sequenceBuilder{id: 91, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b90 = charBuilder{} + b91.items = []builder{&b90} + b92.items = []builder{&b91} + var b165 = sequenceBuilder{id: 165, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b164 = sequenceBuilder{id: 164, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b163 = charBuilder{} + b164.items = []builder{&b163} + var b162 = choiceBuilder{id: 162, commit: 66} + var b139 = sequenceBuilder{id: 139, commit: 72, name: "alias", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b134 = charBuilder{} + var b135 = charBuilder{} + var b136 = charBuilder{} + var b137 = charBuilder{} + var b138 = charBuilder{} + b139.items = []builder{&b134, &b135, &b136, &b137, &b138} + var b142 = sequenceBuilder{id: 142, commit: 72, name: "ws", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b140 = charBuilder{} + var b141 = charBuilder{} + b142.items = []builder{&b140, &b141} + var b147 = sequenceBuilder{id: 147, commit: 72, name: "nows", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b143 = charBuilder{} + var b144 = charBuilder{} + var b145 = charBuilder{} + var b146 = charBuilder{} + b147.items = []builder{&b143, &b144, &b145, &b146} + var b156 = sequenceBuilder{id: 156, commit: 72, name: "failpass", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b148 = charBuilder{} + var b149 = charBuilder{} + var b150 = charBuilder{} + var b151 = charBuilder{} + var b152 = charBuilder{} + var b153 = charBuilder{} + var b154 = charBuilder{} + var b155 = charBuilder{} + b156.items = []builder{&b148, &b149, &b150, &b151, &b152, &b153, &b154, &b155} + var b161 = sequenceBuilder{id: 161, commit: 72, name: "root", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b157 = charBuilder{} + var b158 = charBuilder{} + var b159 = charBuilder{} + var b160 = charBuilder{} + b161.items = []builder{&b157, &b158, &b159, &b160} + b162.options = []builder{&b139, &b142, &b147, &b156, &b161} + b165.items = []builder{&b164, &b162} + b166.items = []builder{&b92, &b165} + var b168 = sequenceBuilder{id: 168, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b167 = charBuilder{} + b168.items = []builder{&b167} + var b133 = choiceBuilder{id: 133, commit: 66} + var b89 = choiceBuilder{id: 89, commit: 66} + var b56 = sequenceBuilder{id: 56, commit: 72, name: "any-char", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b55 = charBuilder{} + b56.items = []builder{&b55} + var b75 = sequenceBuilder{id: 75, commit: 72, name: "char-class", ranges: [][]int{{1, 1}, {0, 1}, {0, -1}, {1, 1}, {1, 1}, {0, 1}, {0, -1}, {1, 1}}} + var b71 = sequenceBuilder{id: 71, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b70 = charBuilder{} + b71.items = []builder{&b70} + var b58 = sequenceBuilder{id: 58, commit: 72, name: "class-not", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b57 = charBuilder{} + b58.items = []builder{&b57} + var b72 = choiceBuilder{id: 72, commit: 10} + var b66 = choiceBuilder{id: 66, commit: 72, name: "class-char"} + var b60 = sequenceBuilder{id: 60, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b59 = charBuilder{} + b60.items = []builder{&b59} + var b65 = sequenceBuilder{id: 65, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b62 = sequenceBuilder{id: 62, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b61 = charBuilder{} + b62.items = []builder{&b61} + var b64 = sequenceBuilder{id: 64, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b63 = charBuilder{} + b64.items = []builder{&b63} + b65.items = []builder{&b62, &b64} + b66.options = []builder{&b60, &b65} + var b69 = sequenceBuilder{id: 69, commit: 72, name: "char-range", ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b68 = sequenceBuilder{id: 68, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b67 = charBuilder{} + b68.items = []builder{&b67} + b69.items = []builder{&b66, &b68, &b66} + b72.options = []builder{&b66, &b69} + var b74 = sequenceBuilder{id: 74, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b73 = charBuilder{} + b74.items = []builder{&b73} + b75.items = []builder{&b71, &b58, &b72, &b74} + var b88 = sequenceBuilder{id: 88, commit: 72, name: "char-sequence", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}} var b85 = sequenceBuilder{id: 85, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b84 = charBuilder{} b85.items = []builder{&b84} - var b44 = sequenceBuilder{id: 44, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b103 = charBuilder{} - b44.items = []builder{&b103} - var b117 = sequenceBuilder{id: 117, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b154 = charBuilder{} - b117.items = []builder{&b154} - var b90 = sequenceBuilder{id: 90, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b55 = charBuilder{} - b90.items = []builder{&b55} - b16.options = []builder{&b96, &b1, &b175, &b85, &b44, &b117, &b90} - var b171 = sequenceBuilder{id: 171, commit: 72, name: "comment", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} - var b160 = choiceBuilder{id: 160, commit: 74} - var b124 = sequenceBuilder{id: 124, commit: 74, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} - var b139 = sequenceBuilder{id: 139, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b67 = charBuilder{} - var b143 = charBuilder{} - b139.items = []builder{&b67, &b143} - var b144 = sequenceBuilder{id: 144, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b29 = charBuilder{} - b144.items = []builder{&b29} - b124.items = []builder{&b139, &b144} - var b110 = sequenceBuilder{id: 110, commit: 74, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}} - var b45 = sequenceBuilder{id: 45, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b2 = charBuilder{} - var b100 = charBuilder{} - b45.items = []builder{&b2, &b100} - var b36 = choiceBuilder{id: 36, commit: 10} - var b180 = sequenceBuilder{id: 180, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b159 = sequenceBuilder{id: 159, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b3 = charBuilder{} - b159.items = []builder{&b3} - var b91 = sequenceBuilder{id: 91, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b46 = charBuilder{} - b91.items = []builder{&b46} - b180.items = []builder{&b159, &b91} - var b66 = sequenceBuilder{id: 66, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b131 = charBuilder{} - b66.items = []builder{&b131} - b36.options = []builder{&b180, &b66} - var b97 = sequenceBuilder{id: 97, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b47 = charBuilder{} - var b73 = charBuilder{} - b97.items = []builder{&b47, &b73} - b110.items = []builder{&b45, &b36, &b97} - b160.options = []builder{&b124, &b110} - var b149 = sequenceBuilder{id: 149, commit: 10, ranges: [][]int{{0, -1}, {0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}}} - var b111 = choiceBuilder{id: 111, commit: 74} - var b37 = sequenceBuilder{id: 37, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b74 = charBuilder{} - b37.items = []builder{&b74} - var b80 = sequenceBuilder{id: 80, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b38 = charBuilder{} - b80.items = []builder{&b38} - var b92 = sequenceBuilder{id: 92, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b161 = charBuilder{} - b92.items = []builder{&b161} - var b148 = sequenceBuilder{id: 148, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b56 = charBuilder{} - b148.items = []builder{&b56} - var b166 = sequenceBuilder{id: 166, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b8 = charBuilder{} - b166.items = []builder{&b8} - var b155 = sequenceBuilder{id: 155, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b4 = charBuilder{} - b155.items = []builder{&b4} - b111.options = []builder{&b37, &b80, &b92, &b148, &b166, &b155} - var b167 = sequenceBuilder{id: 167, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b162 = charBuilder{} - b167.items = []builder{&b162} - b149.items = []builder{&b111, &b167, &b111, &b160} - b171.items = []builder{&b160, &b149} - b185.options = []builder{&b16, &b171} - b186.options = []builder{&b185} - var b187 = sequenceBuilder{id: 187, commit: 66, ranges: [][]int{{0, 1}, {0, -1}, {0, 1}, {0, 1}}} - var b136 = sequenceBuilder{id: 136, commit: 2, ranges: [][]int{{1, 1}, {0, -1}}} - var b7 = sequenceBuilder{id: 7, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b115 = charBuilder{} - b7.items = []builder{&b115} - var b135 = sequenceBuilder{id: 135, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} - b135.items = []builder{&b186, &b7} - b136.items = []builder{&b7, &b135} - var b35 = sequenceBuilder{id: 35, commit: 66, ranges: [][]int{{1, 1}, {0, 1}}} - var b72 = sequenceBuilder{id: 72, commit: 64, name: "definition", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}} - var b178 = sequenceBuilder{id: 178, commit: 74, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} - var b119 = sequenceBuilder{id: 119, commit: 72, name: "symbol", ranges: [][]int{{1, -1}, {1, -1}}} - var b101 = sequenceBuilder{id: 101, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b86 = charBuilder{} - b101.items = []builder{&b86} - b119.items = []builder{&b101} - var b146 = sequenceBuilder{id: 146, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b28 = sequenceBuilder{id: 28, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b82 = charBuilder{} - b28.items = []builder{&b82} - var b14 = choiceBuilder{id: 14, commit: 66} - var b123 = sequenceBuilder{id: 123, commit: 72, name: "alias", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b60 = charBuilder{} - var b174 = charBuilder{} - var b43 = charBuilder{} - var b51 = charBuilder{} - var b11 = charBuilder{} - b123.items = []builder{&b60, &b174, &b43, &b51, &b11} - var b78 = sequenceBuilder{id: 78, commit: 72, name: "ws", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b52 = charBuilder{} - var b12 = charBuilder{} - b78.items = []builder{&b52, &b12} - var b109 = sequenceBuilder{id: 109, commit: 72, name: "nows", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b184 = charBuilder{} - var b79 = charBuilder{} - var b88 = charBuilder{} - var b128 = charBuilder{} - b109.items = []builder{&b184, &b79, &b88, &b128} - var b71 = sequenceBuilder{id: 71, commit: 72, name: "failpass", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b32 = charBuilder{} - var b134 = charBuilder{} - var b53 = charBuilder{} - var b129 = charBuilder{} - var b65 = charBuilder{} - var b145 = charBuilder{} - var b24 = charBuilder{} - var b13 = charBuilder{} - b71.items = []builder{&b32, &b134, &b53, &b129, &b65, &b145, &b24, &b13} - var b54 = sequenceBuilder{id: 54, commit: 72, name: "root", allChars: true, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b27 = charBuilder{} - var b169 = charBuilder{} - var b142 = charBuilder{} - var b170 = charBuilder{} - b54.items = []builder{&b27, &b169, &b142, &b170} - b14.options = []builder{&b123, &b78, &b109, &b71, &b54} - b146.items = []builder{&b28, &b14} - b178.items = []builder{&b119, &b146} - var b89 = sequenceBuilder{id: 89, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b151 = charBuilder{} - b89.items = []builder{&b151} - var b23 = choiceBuilder{id: 23, commit: 66} - var b181 = choiceBuilder{id: 181, commit: 66} - var b39 = sequenceBuilder{id: 39, commit: 72, name: "any-char", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b25 = charBuilder{} - b39.items = []builder{&b25} - var b58 = sequenceBuilder{id: 58, commit: 72, name: "char-class", ranges: [][]int{{1, 1}, {0, 1}, {0, -1}, {1, 1}, {1, 1}, {0, 1}, {0, -1}, {1, 1}}} - var b125 = sequenceBuilder{id: 125, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b18 = charBuilder{} - b125.items = []builder{&b18} - var b10 = sequenceBuilder{id: 10, commit: 72, name: "class-not", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b9 = charBuilder{} - b10.items = []builder{&b9} - var b156 = choiceBuilder{id: 156, commit: 10} - var b132 = choiceBuilder{id: 132, commit: 72, name: "class-char"} - var b26 = sequenceBuilder{id: 26, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b57 = charBuilder{} - b26.items = []builder{&b57} - var b98 = sequenceBuilder{id: 98, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b118 = sequenceBuilder{id: 118, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b5 = charBuilder{} - b118.items = []builder{&b5} - var b102 = sequenceBuilder{id: 102, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b61 = charBuilder{} - b102.items = []builder{&b61} - b98.items = []builder{&b118, &b102} - b132.options = []builder{&b26, &b98} - var b140 = sequenceBuilder{id: 140, commit: 72, name: "char-range", ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b62 = sequenceBuilder{id: 62, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b17 = charBuilder{} - b62.items = []builder{&b17} - b140.items = []builder{&b132, &b62, &b132} - b156.options = []builder{&b132, &b140} - var b93 = sequenceBuilder{id: 93, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b150 = charBuilder{} - b93.items = []builder{&b150} - b58.items = []builder{&b125, &b10, &b156, &b93} - var b20 = sequenceBuilder{id: 20, commit: 72, name: "char-sequence", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}} - var b68 = sequenceBuilder{id: 68, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b63 = charBuilder{} - b68.items = []builder{&b63} - var b31 = choiceBuilder{id: 31, commit: 72, name: "sequence-char"} - var b48 = sequenceBuilder{id: 48, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b157 = charBuilder{} - b48.items = []builder{&b157} - var b94 = sequenceBuilder{id: 94, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} - var b75 = sequenceBuilder{id: 75, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b19 = charBuilder{} - b75.items = []builder{&b19} - var b126 = sequenceBuilder{id: 126, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b133 = charBuilder{} - b126.items = []builder{&b133} - b94.items = []builder{&b75, &b126} - b31.options = []builder{&b48, &b94} - var b69 = sequenceBuilder{id: 69, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b104 = charBuilder{} - b69.items = []builder{&b104} - b20.items = []builder{&b68, &b31, &b69} - b181.options = []builder{&b39, &b58, &b20} - var b40 = sequenceBuilder{id: 40, commit: 66, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}} - var b105 = sequenceBuilder{id: 105, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b95 = charBuilder{} - b105.items = []builder{&b95} - var b99 = sequenceBuilder{id: 99, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b59 = charBuilder{} - b99.items = []builder{&b59} - b40.items = []builder{&b105, &b186, &b23, &b186, &b99} - var b108 = sequenceBuilder{id: 108, commit: 64, name: "sequence", ranges: [][]int{{1, 1}, {0, -1}}} - var b15 = sequenceBuilder{id: 15, commit: 72, name: "item", ranges: [][]int{{1, 1}, {0, 1}, {1, 1}, {0, 1}}} - var b158 = choiceBuilder{id: 158, commit: 10} - b158.options = []builder{&b181, &b119, &b40} - var b50 = choiceBuilder{id: 50, commit: 66} - var b41 = sequenceBuilder{id: 41, commit: 64, name: "count-quantifier", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}} - var b164 = sequenceBuilder{id: 164, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b49 = charBuilder{} - b164.items = []builder{&b49} - var b176 = sequenceBuilder{id: 176, commit: 64, name: "count", ranges: [][]int{{1, 1}}} - var b120 = sequenceBuilder{id: 120, commit: 74, ranges: [][]int{{1, -1}, {1, -1}}} - var b182 = sequenceBuilder{id: 182, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b163 = charBuilder{} - b182.items = []builder{&b163} - b120.items = []builder{&b182} - b176.items = []builder{&b120} - var b87 = sequenceBuilder{id: 87, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b141 = charBuilder{} - b87.items = []builder{&b141} - b41.items = []builder{&b164, &b186, &b176, &b186, &b87} - var b70 = sequenceBuilder{id: 70, commit: 64, name: "range-quantifier", ranges: [][]int{{1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}}} - var b106 = sequenceBuilder{id: 106, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b83 = choiceBuilder{id: 83, commit: 72, name: "sequence-char"} + var b77 = sequenceBuilder{id: 77, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} var b76 = charBuilder{} - b106.items = []builder{&b76} - var b42 = sequenceBuilder{id: 42, commit: 64, name: "range-from", ranges: [][]int{{1, 1}}} - b42.items = []builder{&b120} - var b172 = sequenceBuilder{id: 172, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b112 = charBuilder{} - b172.items = []builder{&b112} - var b21 = sequenceBuilder{id: 21, commit: 64, name: "range-to", ranges: [][]int{{1, 1}}} - b21.items = []builder{&b120} - var b165 = sequenceBuilder{id: 165, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b81 = charBuilder{} - b165.items = []builder{&b81} - b70.items = []builder{&b106, &b186, &b42, &b186, &b172, &b186, &b21, &b186, &b165} - var b127 = sequenceBuilder{id: 127, commit: 72, name: "one-or-more", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b183 = charBuilder{} - b127.items = []builder{&b183} - var b22 = sequenceBuilder{id: 22, commit: 72, name: "zero-or-more", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b177 = charBuilder{} - b22.items = []builder{&b177} - var b168 = sequenceBuilder{id: 168, commit: 72, name: "zero-or-one", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b30 = charBuilder{} - b168.items = []builder{&b30} - b50.options = []builder{&b41, &b70, &b127, &b22, &b168} - b15.items = []builder{&b158, &b50} - var b107 = sequenceBuilder{id: 107, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} - b107.items = []builder{&b186, &b15} - b108.items = []builder{&b15, &b107} - var b122 = sequenceBuilder{id: 122, commit: 64, name: "choice", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} - var b6 = choiceBuilder{id: 6, commit: 66} - b6.options = []builder{&b181, &b119, &b40, &b108} - var b77 = sequenceBuilder{id: 77, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}}} - var b173 = sequenceBuilder{id: 173, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b64 = charBuilder{} - b173.items = []builder{&b64} - b77.items = []builder{&b173, &b186, &b6} - var b121 = sequenceBuilder{id: 121, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} - b121.items = []builder{&b186, &b77} - b122.items = []builder{&b6, &b186, &b77, &b121} - b23.options = []builder{&b181, &b119, &b40, &b108, &b122} - b72.items = []builder{&b178, &b186, &b89, &b186, &b23} - var b34 = sequenceBuilder{id: 34, commit: 2, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} - var b114 = sequenceBuilder{id: 114, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {0, -1}, {1, 1}}} - var b147 = sequenceBuilder{id: 147, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b152 = charBuilder{} - b147.items = []builder{&b152} - var b113 = sequenceBuilder{id: 113, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} - b113.items = []builder{&b186, &b147} - b114.items = []builder{&b147, &b113, &b186, &b72} - var b33 = sequenceBuilder{id: 33, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} - b33.items = []builder{&b186, &b114} - b34.items = []builder{&b186, &b114, &b33} - b35.items = []builder{&b72, &b34} - var b138 = sequenceBuilder{id: 138, commit: 2, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} - var b130 = sequenceBuilder{id: 130, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} - var b153 = charBuilder{} - b130.items = []builder{&b153} - var b137 = sequenceBuilder{id: 137, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} - b137.items = []builder{&b186, &b130} - b138.items = []builder{&b186, &b130, &b137} - b187.items = []builder{&b136, &b186, &b35, &b138} + b77.items = []builder{&b76} + var b82 = sequenceBuilder{id: 82, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}} + var b79 = sequenceBuilder{id: 79, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b78 = charBuilder{} + b79.items = []builder{&b78} + var b81 = sequenceBuilder{id: 81, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b80 = charBuilder{} + b81.items = []builder{&b80} + b82.items = []builder{&b79, &b81} + b83.options = []builder{&b77, &b82} + var b87 = sequenceBuilder{id: 87, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b86 = charBuilder{} + b87.items = []builder{&b86} + b88.items = []builder{&b85, &b83, &b87} + b89.options = []builder{&b56, &b75, &b88} + var b97 = sequenceBuilder{id: 97, commit: 66, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}} + var b94 = sequenceBuilder{id: 94, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b93 = charBuilder{} + b94.items = []builder{&b93} + var b96 = sequenceBuilder{id: 96, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b95 = charBuilder{} + b96.items = []builder{&b95} + b97.items = []builder{&b94, &b186, &b133, &b186, &b96} + var b126 = sequenceBuilder{id: 126, commit: 64, name: "sequence", ranges: [][]int{{1, 1}, {0, -1}}} + var b124 = sequenceBuilder{id: 124, commit: 72, name: "item", ranges: [][]int{{1, 1}, {0, 1}, {1, 1}, {0, 1}}} + var b123 = choiceBuilder{id: 123, commit: 10} + b123.options = []builder{&b89, &b92, &b97} + var b122 = choiceBuilder{id: 122, commit: 66} + var b106 = sequenceBuilder{id: 106, commit: 64, name: "count-quantifier", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}, {1, 1}}} + var b103 = sequenceBuilder{id: 103, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b102 = charBuilder{} + b103.items = []builder{&b102} + var b101 = sequenceBuilder{id: 101, commit: 64, name: "count", ranges: [][]int{{1, 1}}} + var b100 = sequenceBuilder{id: 100, commit: 74, ranges: [][]int{{1, -1}, {1, -1}}} + var b99 = sequenceBuilder{id: 99, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b98 = charBuilder{} + b99.items = []builder{&b98} + b100.items = []builder{&b99} + b101.items = []builder{&b100} + var b105 = sequenceBuilder{id: 105, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b104 = charBuilder{} + b105.items = []builder{&b104} + b106.items = []builder{&b103, &b186, &b101, &b186, &b105} + var b115 = sequenceBuilder{id: 115, commit: 64, name: "range-quantifier", ranges: [][]int{{1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {1, 1}}} + var b110 = sequenceBuilder{id: 110, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b109 = charBuilder{} + b110.items = []builder{&b109} + var b107 = sequenceBuilder{id: 107, commit: 64, name: "range-from", ranges: [][]int{{1, 1}}} + b107.items = []builder{&b100} + var b112 = sequenceBuilder{id: 112, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b111 = charBuilder{} + b112.items = []builder{&b111} + var b108 = sequenceBuilder{id: 108, commit: 64, name: "range-to", ranges: [][]int{{1, 1}}} + b108.items = []builder{&b100} + var b114 = sequenceBuilder{id: 114, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b113 = charBuilder{} + b114.items = []builder{&b113} + b115.items = []builder{&b110, &b186, &b107, &b186, &b112, &b186, &b108, &b186, &b114} + var b117 = sequenceBuilder{id: 117, commit: 72, name: "one-or-more", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b116 = charBuilder{} + b117.items = []builder{&b116} + var b119 = sequenceBuilder{id: 119, commit: 72, name: "zero-or-more", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b118 = charBuilder{} + b119.items = []builder{&b118} + var b121 = sequenceBuilder{id: 121, commit: 72, name: "zero-or-one", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b120 = charBuilder{} + b121.items = []builder{&b120} + b122.options = []builder{&b106, &b115, &b117, &b119, &b121} + b124.items = []builder{&b123, &b122} + var b125 = sequenceBuilder{id: 125, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + b125.items = []builder{&b186, &b124} + b126.items = []builder{&b124, &b125} + var b132 = sequenceBuilder{id: 132, commit: 64, name: "choice", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}} + var b127 = choiceBuilder{id: 127, commit: 66} + b127.options = []builder{&b89, &b92, &b97, &b126} + var b130 = sequenceBuilder{id: 130, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}}} + var b129 = sequenceBuilder{id: 129, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b128 = charBuilder{} + b129.items = []builder{&b128} + b130.items = []builder{&b129, &b186, &b127} + var b131 = sequenceBuilder{id: 131, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + b131.items = []builder{&b186, &b130} + b132.items = []builder{&b127, &b186, &b130, &b131} + b133.options = []builder{&b89, &b92, &b97, &b126, &b132} + b169.items = []builder{&b166, &b186, &b168, &b186, &b133} + var b175 = sequenceBuilder{id: 175, commit: 2, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} + var b173 = sequenceBuilder{id: 173, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {0, -1}, {1, 1}}} + var b171 = sequenceBuilder{id: 171, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b170 = charBuilder{} + b171.items = []builder{&b170} + var b172 = sequenceBuilder{id: 172, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + b172.items = []builder{&b186, &b171} + b173.items = []builder{&b171, &b172, &b186, &b169} + var b174 = sequenceBuilder{id: 174, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + b174.items = []builder{&b186, &b173} + b175.items = []builder{&b186, &b173, &b174} + b176.items = []builder{&b169, &b175} + var b184 = sequenceBuilder{id: 184, commit: 2, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} + var b180 = sequenceBuilder{id: 180, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b179 = charBuilder{} + b180.items = []builder{&b179} + var b183 = sequenceBuilder{id: 183, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + b183.items = []builder{&b186, &b180} + b184.items = []builder{&b186, &b180, &b183} + b187.items = []builder{&b182, &b186, &b176, &b184} b188.items = []builder{&b186, &b187, &b186} return parseInput(r, &p188, &b188) diff --git a/sequencedefine.go b/sequencedefine.go index a5891c0..c1e65df 100644 --- a/sequencedefine.go +++ b/sequencedefine.go @@ -79,7 +79,7 @@ func (d *sequenceDefinition) validate(r *registry) error { d.validated = true for i := range d.items { - ii, ok := r.definition(d.items[i].Name) + ii, ok := r.definition[d.items[i].Name] if !ok { return parserNotFound(d.items[i].Name) } @@ -104,7 +104,7 @@ func (d *sequenceDefinition) createBuilder() { func (d *sequenceDefinition) initItems(r *registry) { allChars := true for _, item := range d.items { - def := r.definitions[item.Name] + def := r.definition[item.Name] d.itemDefs = append(d.itemDefs, def) def.init(r) d.sbuilder.items = append(d.sbuilder.items, def.builder()) @@ -175,7 +175,7 @@ func (d *sequenceDefinition) isCharSequence(r *registry) bool { return false } - itemDef, _ := r.definition(d.originalItems[i].Name) + itemDef := r.definition[d.originalItems[i].Name] c, ok := itemDef.(*charParser) if !ok || !c.isSingleChar() { return false @@ -188,14 +188,14 @@ func (d *sequenceDefinition) isCharSequence(r *registry) bool { func (d *sequenceDefinition) format(r *registry, f formatFlags) string { if d.isCharSequence(r) { if len(d.originalItems) == 1 { - itemDef, _ := r.definition(d.originalItems[0].Name) + itemDef := r.definition[d.originalItems[0].Name] c, _ := itemDef.(*charParser) return c.format(r, f) } var chars []rune for i := range d.originalItems { - itemDef, _ := r.definition(d.originalItems[i].Name) + itemDef := r.definition[d.originalItems[i].Name] c, _ := itemDef.(*charParser) chars = append(chars, c.chars[0]) } @@ -213,7 +213,7 @@ func (d *sequenceDefinition) format(r *registry, f formatFlags) string { item := normalizeItemRange(d.originalItems[i]) needsQuantifier := item.Min != 1 || item.Max != 1 - itemDef, _ := r.definition(item.Name) + itemDef := r.definition[item.Name] isSymbol := itemDef.commitType()&userDefined != 0 ch, isChoice := itemDef.(*choiceDefinition) diff --git a/syntax.go b/syntax.go index 754d44d..d180935 100644 --- a/syntax.go +++ b/syntax.go @@ -264,8 +264,8 @@ func (s *Syntax) Init() error { return ErrRootFailPass } - defs := s.registry.getDefinitions() - for i := range defs { + defs := s.registry.definitions + for i := range s.registry.definitions { defs[i].preinit() } diff --git a/syntax_test.go b/syntax_test.go index bee7b2d..635e64a 100644 --- a/syntax_test.go +++ b/syntax_test.go @@ -104,7 +104,7 @@ func TestInit(t *testing.T) { } s.Init() - if len(s.registry.definitions["a"].(*sequenceDefinition).generalizations) != 1 { + if len(s.registry.definition["a"].(*sequenceDefinition).generalizations) != 1 { t.Error("invalid number of generalizations") } }) @@ -291,7 +291,7 @@ func TestDefinition(t *testing.T) { t.Error(err) } - if _, ok := s.registry.definition("a"); !ok { + if _, ok := s.registry.definition["a"]; !ok { t.Error("definition failed") } }) @@ -301,7 +301,7 @@ func TestDefinition(t *testing.T) { t.Error(err) } - if _, ok := s.registry.definition("b"); !ok { + if _, ok := s.registry.definition["b"]; !ok { t.Error("definition failed") } }) @@ -311,7 +311,7 @@ func TestDefinition(t *testing.T) { t.Error(err) } - if _, ok := s.registry.definition("c"); !ok { + if _, ok := s.registry.definition["c"]; !ok { t.Error("definition failed") } }) @@ -321,7 +321,7 @@ func TestDefinition(t *testing.T) { t.Error(err) } - if _, ok := s.registry.definition("d"); !ok { + if _, ok := s.registry.definition["d"]; !ok { t.Error("definition failed") } }) @@ -331,7 +331,7 @@ func TestDefinition(t *testing.T) { t.Error(err) } - if _, ok := s.registry.definition("e"); !ok { + if _, ok := s.registry.definition["e"]; !ok { t.Error("definition failed") } })