diff --git a/apply.go b/apply.go index 9e3b037..8cb662c 100644 --- a/apply.go +++ b/apply.go @@ -20,7 +20,7 @@ func bindKeyVals(receiver reflect.Value, keyVals map[string][]string) bool { func bindOptions(receiver reflect.Value, shortForms []string, o []option) bool { ms := make(map[string]string) for i := 0; i < len(shortForms); i += 2 { - ms[shortForms[i]] = shortForms[i + 1] + ms[shortForms[i]] = shortForms[i+1] } v := make(map[string][]any) diff --git a/command.go b/command.go index 2c3f896..ba0724b 100644 --- a/command.go +++ b/command.go @@ -1,11 +1,11 @@ package wand import ( + "code.squareroundforest.org/arpio/bind" "errors" "fmt" "reflect" "regexp" - "code.squareroundforest.org/arpio/bind" ) var commandNameExpression = regexp.MustCompile("^[a-zA-Z_][a-zA-Z_0-9]*$") @@ -224,13 +224,13 @@ func validateShortFormsTree(cmd Cmd) (map[string]string, map[string]string, erro } } - if len(cmd.shortForms) % 2 != 0 { - return nil, nil, fmt.Errorf("unassigned short form: %s", cmd.shortForms[len(cmd.shortForms) - 1]) + if len(cmd.shortForms)%2 != 0 { + return nil, nil, fmt.Errorf("unassigned short form: %s", cmd.shortForms[len(cmd.shortForms)-1]) } mf := mapFields(cmd.impl) for i := 0; i < len(cmd.shortForms); i += 2 { - s, l := cmd.shortForms[i], cmd.shortForms[i + 1] + s, l := cmd.shortForms[i], cmd.shortForms[i+1] r := []rune(s) if len(r) != 1 || r[0] < 'a' || r[0] > 'z' { return nil, nil, fmt.Errorf("invalid short form: %s", s) diff --git a/commandline.go b/commandline.go index 33eb11c..193e2d6 100644 --- a/commandline.go +++ b/commandline.go @@ -1,11 +1,11 @@ package wand import ( + "code.squareroundforest.org/arpio/bind" "slices" "strconv" "strings" "unicode" - "code.squareroundforest.org/arpio/bind" ) type value struct { @@ -281,7 +281,7 @@ func hasHelpOption(cmd Cmd, o []option) bool { sf := make(map[string]string) for i := 0; i < len(cmd.shortForms); i += 2 { - sf[cmd.shortForms[i]] = cmd.shortForms[i + 1] + sf[cmd.shortForms[i]] = cmd.shortForms[i+1] } for _, oi := range o { diff --git a/docreflect.gen.go b/docreflect.gen.go index 45379f1..c003166 100644 --- a/docreflect.gen.go +++ b/docreflect.gen.go @@ -2,30 +2,31 @@ Generated with https://code.squareroundforest.org/arpio/docreflect */ - package wand + import "code.squareroundforest.org/arpio/docreflect" + func init() { -docreflect.Register("code.squareroundforest.org/arpio/wand/tools", "") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.Docreflect", "\nfunc(out, packageName, gopaths)") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.Exec", "\nfunc(o, stdin, args)") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.ExecOptions", "") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.ExecOptions.CacheDir", "") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.ExecOptions.ClearCache", "") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.ExecOptions.Import", "") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.ExecOptions.InlineImport", "") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.ExecOptions.NoCache", "") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.Man", "\nfunc(out, commandDir)") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.Markdown", "\nfunc(out, o, commandDir)") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.MarkdownOptions", "") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.MarkdownOptions.Level", "") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.commandReader", "\nfunc(in)") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.execCommandDir", "\nfunc(out, commandDir, env)") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.execInternal", "\nfunc(command, args)") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.execTransparent", "\nfunc(command, args)") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.execWand", "\nfunc(o, args)") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.execc", "\nfunc(stdin, stdout, stderr, command, args, env)") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.hash", "\nfunc(expression, imports, inlineImports)") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.printGoFile", "\nfunc(fn, expression, imports, inlineImports)") -docreflect.Register("code.squareroundforest.org/arpio/wand/tools.readExec", "\nfunc(o, stdin)") -} \ No newline at end of file + docreflect.Register("code.squareroundforest.org/arpio/wand/tools", "") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.Docreflect", "\nfunc(out, packageName, gopaths)") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.Exec", "\nfunc(o, stdin, args)") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.ExecOptions", "") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.ExecOptions.CacheDir", "") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.ExecOptions.ClearCache", "") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.ExecOptions.Import", "") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.ExecOptions.InlineImport", "") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.ExecOptions.NoCache", "") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.Man", "\nfunc(out, commandDir)") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.Markdown", "\nfunc(out, o, commandDir)") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.MarkdownOptions", "") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.MarkdownOptions.Level", "") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.commandReader", "\nfunc(in)") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.execCommandDir", "\nfunc(out, commandDir, env)") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.execInternal", "\nfunc(command, args)") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.execTransparent", "\nfunc(command, args)") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.execWand", "\nfunc(o, args)") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.execc", "\nfunc(stdin, stdout, stderr, command, args, env)") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.hash", "\nfunc(expression, imports, inlineImports)") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.printGoFile", "\nfunc(fn, expression, imports, inlineImports)") + docreflect.Register("code.squareroundforest.org/arpio/wand/tools.readExec", "\nfunc(o, stdin)") +} diff --git a/help.go b/help.go index 757b273..7c87639 100644 --- a/help.go +++ b/help.go @@ -1,8 +1,8 @@ package wand import ( - "code.squareroundforest.org/arpio/docreflect" "code.squareroundforest.org/arpio/bind" + "code.squareroundforest.org/arpio/docreflect" "fmt" "io" "reflect" diff --git a/iniparser.gen.go b/iniparser.gen.go index 957d3ba..7023607 100644 --- a/iniparser.gen.go +++ b/iniparser.gen.go @@ -1,4 +1,3 @@ - /* This file was generated with treerack (https://code.squareroundforest.org/arpio/treerack). @@ -17,30 +16,29 @@ that the user of treerack generating this file declares for it, or it is unlicensed. */ - package wand // head import ( - "strconv" - "io" - "strings" - "unicode" - "fmt" "bufio" "errors" + "fmt" + "io" + "strconv" + "strings" + "unicode" ) type charParser struct { - name string - id int - not bool - chars []rune - ranges [][]rune + name string + id int + not bool + chars []rune + ranges [][]rune } type charBuilder struct { - name string - id int + name string + id int } func (p *charParser) nodeName() string { @@ -90,22 +88,22 @@ func (b *charBuilder) build(c *context) ([]*node, bool) { } type sequenceParser struct { - name string - id int - commit commitType - items []parser - ranges [][]int - generalizations []int - allChars bool + name string + id int + commit commitType + items []parser + ranges [][]int + generalizations []int + allChars bool } type sequenceBuilder struct { - name string - id int - commit commitType - items []builder - ranges [][]int - generalizations []int - allChars bool + name string + id int + commit commitType + items []builder + ranges [][]int + generalizations []int + allChars bool } func (p *sequenceParser) nodeName() string { @@ -126,8 +124,8 @@ func (p *sequenceParser) parse(c *context) { c.results.markPending(c.offset, p.id) } var ( - currentCount int - parsed bool + currentCount int + parsed bool ) itemIndex := 0 from := c.offset @@ -229,9 +227,9 @@ func (b *sequenceBuilder) build(c *context) ([]*node, bool) { } } var ( - itemIndex int - currentCount int - nodes []*node + itemIndex int + currentCount int + nodes []*node ) for itemIndex < len(b.items) { itemFrom := c.offset @@ -271,18 +269,18 @@ func (b *sequenceBuilder) build(c *context) ([]*node, bool) { } type choiceParser struct { - name string - id int - commit commitType - options []parser - generalizations []int + name string + id int + commit commitType + options []parser + generalizations []int } type choiceBuilder struct { - name string - id int - commit commitType - options []builder - generalizations []int + name string + id int + commit commitType + options []builder + generalizations []int } func (p *choiceParser) nodeName() string { @@ -304,10 +302,10 @@ func (p *choiceParser) parse(c *context) { } c.results.markPending(c.offset, p.id) var ( - match bool - optionIndex int - foundMatch bool - failingParser parser + match bool + optionIndex int + foundMatch bool + failingParser parser ) from := c.offset to := c.offset @@ -456,9 +454,9 @@ func (s *idSet) has(id int) bool { } type results struct { - noMatch []*idSet - match [][]int - isPending [][]int + noMatch []*idSet + match [][]int + isPending [][]int } func ensureOffsetInts(ints [][]int, offset int) [][]int { @@ -597,19 +595,19 @@ func (r *results) unmarkPending(offset, id int) { } type context struct { - reader io.RuneReader - keywords []parser - offset int - readOffset int - consumed int - offsetLimit int - failOffset int - failingParser parser - readErr error - eof bool - results *results - tokens []rune - matchLast bool + reader io.RuneReader + keywords []parser + offset int + readOffset int + consumed int + offsetLimit int + failOffset int + failingParser parser + readErr error + eof bool + results *results + tokens []rune + matchLast bool } func newContext(r io.RuneReader, keywords []parser) *context { @@ -731,10 +729,10 @@ func (c *context) finalizeParse(root parser) error { } type node struct { - Name string - Nodes []*node - From, To int - tokens []rune + Name string + Nodes []*node + From, To int + tokens []rune } func (n *node) Tokens() []rune { @@ -750,8 +748,8 @@ func (n *node) Text() string { type commitType int const ( - none commitType = 0 - alias commitType = 1 << iota + none commitType = 0 + alias commitType = 1 << iota whitespace noWhitespace keyword @@ -764,17 +762,17 @@ const ( type formatFlags int const ( - formatNone formatFlags = 0 - formatPretty formatFlags = 1 << iota + formatNone formatFlags = 0 + formatPretty formatFlags = 1 << iota formatIncludeComments ) type parseError struct { - Input string - Offset int - Line int - Column int - Definition string + Input string + Offset int + Line int + Column int + Definition string } type parser interface { nodeName() string @@ -815,9 +813,238 @@ func parseInput(r io.Reader, p parser, b builder, kw []parser) (*node, error) { func parse(r io.Reader) (*node, error) { -var p67 = sequenceParser{id: 67, commit: 128,ranges: [][]int{{0, -1},{1, 1},{0, -1},},};var p65 = choiceParser{id: 65, commit: 2,};var p64 = sequenceParser{id: 64, commit: 262,name: "whitespace",allChars: true,ranges: [][]int{{1, 1},{1, 1},},generalizations: []int{65,},};var p1 = charParser{id: 1,chars: []rune{32,8,12,13,9,11,},};p64.items = []parser{&p1,};p65.options = []parser{&p64,};var p66 = sequenceParser{id: 66, commit: 258,name: "doc:wsroot",ranges: [][]int{{0, 1},},};var p63 = sequenceParser{id: 63, commit: 2,ranges: [][]int{{1, 1},{0, -1},},};var p61 = choiceParser{id: 61, commit: 2,};var p58 = sequenceParser{id: 58, commit: 256,name: "key-val",ranges: [][]int{{0, 1},{0, -1},{1, 1},{0, -1},{0, 1},{0, -1},{0, 1},},generalizations: []int{61,},};var p54 = sequenceParser{id: 54, commit: 2,ranges: [][]int{{1, 1},{0, -1},{1, 1},},};var p14 = sequenceParser{id: 14, commit: 256,name: "comment",ranges: [][]int{{1, 1},{0, 1},},};var p8 = sequenceParser{id: 8, commit: 258,name: "comment-line",ranges: [][]int{{1, 1},{0, 1},},generalizations: []int{61,},};var p3 = sequenceParser{id: 3, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var p2 = charParser{id: 2,chars: []rune{35,},};p3.items = []parser{&p2,};var p7 = sequenceParser{id: 7, commit: 2,ranges: [][]int{{0, -1},{1, 1},{0, -1},},};var p5 = sequenceParser{id: 5, commit: 2,allChars: true,ranges: [][]int{{1, 1},},};var p4 = charParser{id: 4,not: true,chars: []rune{10,},};p5.items = []parser{&p4,};var p6 = sequenceParser{id: 6, commit: 2,ranges: [][]int{{0, -1},{1, 1},},};p6.items = []parser{&p65,&p5,};p7.items = []parser{&p65,&p5,&p6,};p8.items = []parser{&p3,&p7,};var p13 = sequenceParser{id: 13, commit: 2,ranges: [][]int{{0, -1},{1, 1},{0, -1},},};var p11 = sequenceParser{id: 11, commit: 2,ranges: [][]int{{1, 1},{0, -1},{1, 1},},};var p10 = sequenceParser{id: 10, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var p9 = charParser{id: 9,chars: []rune{10,},};p10.items = []parser{&p9,};p11.items = []parser{&p10,&p65,&p8,};var p12 = sequenceParser{id: 12, commit: 2,ranges: [][]int{{0, -1},{1, 1},},};p12.items = []parser{&p65,&p11,};p13.items = []parser{&p65,&p11,&p12,};p14.items = []parser{&p8,&p13,};var p53 = sequenceParser{id: 53, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var p52 = charParser{id: 52,chars: []rune{10,},};p53.items = []parser{&p52,};p54.items = []parser{&p14,&p65,&p53,};var p39 = choiceParser{id: 39, commit: 256,name: "key",};var p38 = sequenceParser{id: 38, commit: 266,name: "word",ranges: [][]int{{1, 1},{0, -1},{1, 1},{0, -1},},generalizations: []int{39,},};var p29 = sequenceParser{id: 29, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var p28 = charParser{id: 28,chars: []rune{95,},ranges: [][]rune{{97, 122},{65, 90},},};p29.items = []parser{&p28,};var p37 = choiceParser{id: 37, commit: 10,};var p31 = sequenceParser{id: 31, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},generalizations: []int{37,},};var p30 = charParser{id: 30,chars: []rune{95,45,},ranges: [][]rune{{97, 122},{65, 90},{48, 57},},};p31.items = []parser{&p30,};var p36 = sequenceParser{id: 36, commit: 10,ranges: [][]int{{1, 1},{1, 1},{1, 1},{1, 1},},generalizations: []int{37,},};var p33 = sequenceParser{id: 33, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var p32 = charParser{id: 32,chars: []rune{92,},};p33.items = []parser{&p32,};var p35 = sequenceParser{id: 35, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var p34 = charParser{id: 34,not: true,};p35.items = []parser{&p34,};p36.items = []parser{&p33,&p35,};p37.options = []parser{&p31,&p36,};p38.items = []parser{&p29,&p37,};var p27 = sequenceParser{id: 27, commit: 266,name: "quoted",ranges: [][]int{{1, 1},{0, -1},{1, 1},{1, 1},{0, -1},{1, 1},},generalizations: []int{39,51,},};var p16 = sequenceParser{id: 16, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var p15 = charParser{id: 15,chars: []rune{34,},};p16.items = []parser{&p15,};var p24 = choiceParser{id: 24, commit: 10,};var p18 = sequenceParser{id: 18, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},generalizations: []int{24,},};var p17 = charParser{id: 17,not: true,chars: []rune{92,34,},};p18.items = []parser{&p17,};var p23 = sequenceParser{id: 23, commit: 10,ranges: [][]int{{1, 1},{1, 1},{1, 1},{1, 1},},generalizations: []int{24,},};var p20 = sequenceParser{id: 20, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var p19 = charParser{id: 19,chars: []rune{92,},};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,};p22.items = []parser{&p21,};p23.items = []parser{&p20,&p22,};p24.options = []parser{&p18,&p23,};var p26 = sequenceParser{id: 26, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var p25 = charParser{id: 25,chars: []rune{34,},};p26.items = []parser{&p25,};p27.items = []parser{&p16,&p24,&p26,};p39.options = []parser{&p38,&p27,};var p57 = sequenceParser{id: 57, commit: 2,ranges: [][]int{{1, 1},{0, -1},{0, 1},},};var p56 = sequenceParser{id: 56, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var p55 = charParser{id: 55,chars: []rune{61,},};p56.items = []parser{&p55,};var p51 = choiceParser{id: 51, commit: 256,name: "value",};var p50 = sequenceParser{id: 50, commit: 2,ranges: [][]int{{1, 1},{0, -1},},generalizations: []int{51,},};var p48 = sequenceParser{id: 48, commit: 266,name: "value-chars",ranges: [][]int{{1, -1},{1, -1},},};var p47 = choiceParser{id: 47, commit: 10,};var p41 = sequenceParser{id: 41, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},generalizations: []int{47,},};var p40 = charParser{id: 40,not: true,chars: []rune{92,34,10,61,35,32,8,12,13,9,11,},};p41.items = []parser{&p40,};var p46 = sequenceParser{id: 46, commit: 10,ranges: [][]int{{1, 1},{1, 1},{1, 1},{1, 1},},generalizations: []int{47,},};var p43 = sequenceParser{id: 43, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var p42 = charParser{id: 42,chars: []rune{92,},};p43.items = []parser{&p42,};var p45 = sequenceParser{id: 45, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var p44 = charParser{id: 44,not: true,};p45.items = []parser{&p44,};p46.items = []parser{&p43,&p45,};p47.options = []parser{&p41,&p46,};p48.items = []parser{&p47,};var p49 = sequenceParser{id: 49, commit: 2,ranges: [][]int{{0, -1},{1, 1},},};p49.items = []parser{&p65,&p48,};p50.items = []parser{&p48,&p49,};p51.options = []parser{&p50,&p27,};p57.items = []parser{&p56,&p65,&p51,};p58.items = []parser{&p54,&p65,&p39,&p65,&p57,&p65,&p8,};var p60 = sequenceParser{id: 60, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},generalizations: []int{61,},};var p59 = charParser{id: 59,chars: []rune{10,},};p60.items = []parser{&p59,};p61.options = []parser{&p58,&p8,&p60,};var p62 = sequenceParser{id: 62, commit: 2,ranges: [][]int{{0, -1},{1, 1},},};p62.items = []parser{&p65,&p61,};p63.items = []parser{&p61,&p62,};p66.items = []parser{&p63,};p67.items = []parser{&p65,&p66,&p65,};var b67 = sequenceBuilder{id: 67, commit: 128,name: "doc",ranges: [][]int{{0, -1},{1, 1},{0, -1},},};var b65 = choiceBuilder{id: 65, commit: 2,};var b64 = sequenceBuilder{id: 64, commit: 262,allChars: true,ranges: [][]int{{1, 1},{1, 1},},generalizations: []int{65,},};var b1 = charBuilder{};b64.items = []builder{&b1,};b65.options = []builder{&b64,};var b66 = sequenceBuilder{id: 66, commit: 258,ranges: [][]int{{0, 1},},};var b63 = sequenceBuilder{id: 63, commit: 2,ranges: [][]int{{1, 1},{0, -1},},};var b61 = choiceBuilder{id: 61, commit: 2,};var b58 = sequenceBuilder{id: 58, commit: 256,name: "key-val",ranges: [][]int{{0, 1},{0, -1},{1, 1},{0, -1},{0, 1},{0, -1},{0, 1},},generalizations: []int{61,},};var b54 = sequenceBuilder{id: 54, commit: 2,ranges: [][]int{{1, 1},{0, -1},{1, 1},},};var b14 = sequenceBuilder{id: 14, commit: 256,name: "comment",ranges: [][]int{{1, 1},{0, 1},},};var b8 = sequenceBuilder{id: 8, commit: 258,ranges: [][]int{{1, 1},{0, 1},},generalizations: []int{61,},};var b3 = sequenceBuilder{id: 3, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var b2 = charBuilder{};b3.items = []builder{&b2,};var b7 = sequenceBuilder{id: 7, commit: 2,ranges: [][]int{{0, -1},{1, 1},{0, -1},},};var b5 = sequenceBuilder{id: 5, commit: 2,allChars: true,ranges: [][]int{{1, 1},},};var b4 = charBuilder{};b5.items = []builder{&b4,};var b6 = sequenceBuilder{id: 6, commit: 2,ranges: [][]int{{0, -1},{1, 1},},};b6.items = []builder{&b65,&b5,};b7.items = []builder{&b65,&b5,&b6,};b8.items = []builder{&b3,&b7,};var b13 = sequenceBuilder{id: 13, commit: 2,ranges: [][]int{{0, -1},{1, 1},{0, -1},},};var b11 = sequenceBuilder{id: 11, commit: 2,ranges: [][]int{{1, 1},{0, -1},{1, 1},},};var b10 = sequenceBuilder{id: 10, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var b9 = charBuilder{};b10.items = []builder{&b9,};b11.items = []builder{&b10,&b65,&b8,};var b12 = sequenceBuilder{id: 12, commit: 2,ranges: [][]int{{0, -1},{1, 1},},};b12.items = []builder{&b65,&b11,};b13.items = []builder{&b65,&b11,&b12,};b14.items = []builder{&b8,&b13,};var b53 = sequenceBuilder{id: 53, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var b52 = charBuilder{};b53.items = []builder{&b52,};b54.items = []builder{&b14,&b65,&b53,};var b39 = choiceBuilder{id: 39, commit: 256,name: "key",};var b38 = sequenceBuilder{id: 38, commit: 266,ranges: [][]int{{1, 1},{0, -1},{1, 1},{0, -1},},generalizations: []int{39,},};var b29 = sequenceBuilder{id: 29, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var b28 = charBuilder{};b29.items = []builder{&b28,};var b37 = choiceBuilder{id: 37, commit: 10,};var b31 = sequenceBuilder{id: 31, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},generalizations: []int{37,},};var b30 = charBuilder{};b31.items = []builder{&b30,};var b36 = sequenceBuilder{id: 36, commit: 10,ranges: [][]int{{1, 1},{1, 1},{1, 1},{1, 1},},generalizations: []int{37,},};var b33 = sequenceBuilder{id: 33, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var b32 = charBuilder{};b33.items = []builder{&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,};b37.options = []builder{&b31,&b36,};b38.items = []builder{&b29,&b37,};var b27 = sequenceBuilder{id: 27, commit: 266,ranges: [][]int{{1, 1},{0, -1},{1, 1},{1, 1},{0, -1},{1, 1},},generalizations: []int{39,51,},};var b16 = sequenceBuilder{id: 16, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var b15 = charBuilder{};b16.items = []builder{&b15,};var b24 = choiceBuilder{id: 24, commit: 10,};var b18 = sequenceBuilder{id: 18, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},generalizations: []int{24,},};var b17 = charBuilder{};b18.items = []builder{&b17,};var b23 = sequenceBuilder{id: 23, commit: 10,ranges: [][]int{{1, 1},{1, 1},{1, 1},{1, 1},},generalizations: []int{24,},};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,};b24.options = []builder{&b18,&b23,};var b26 = sequenceBuilder{id: 26, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var b25 = charBuilder{};b26.items = []builder{&b25,};b27.items = []builder{&b16,&b24,&b26,};b39.options = []builder{&b38,&b27,};var b57 = sequenceBuilder{id: 57, commit: 2,ranges: [][]int{{1, 1},{0, -1},{0, 1},},};var b56 = sequenceBuilder{id: 56, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},};var b55 = charBuilder{};b56.items = []builder{&b55,};var b51 = choiceBuilder{id: 51, commit: 256,name: "value",};var b50 = sequenceBuilder{id: 50, commit: 2,ranges: [][]int{{1, 1},{0, -1},},generalizations: []int{51,},};var b48 = sequenceBuilder{id: 48, commit: 266,ranges: [][]int{{1, -1},{1, -1},},};var b47 = choiceBuilder{id: 47, commit: 10,};var b41 = sequenceBuilder{id: 41, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},generalizations: []int{47,},};var b40 = charBuilder{};b41.items = []builder{&b40,};var b46 = sequenceBuilder{id: 46, commit: 10,ranges: [][]int{{1, 1},{1, 1},{1, 1},{1, 1},},generalizations: []int{47,},};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,};b46.items = []builder{&b43,&b45,};b47.options = []builder{&b41,&b46,};b48.items = []builder{&b47,};var b49 = sequenceBuilder{id: 49, commit: 2,ranges: [][]int{{0, -1},{1, 1},},};b49.items = []builder{&b65,&b48,};b50.items = []builder{&b48,&b49,};b51.options = []builder{&b50,&b27,};b57.items = []builder{&b56,&b65,&b51,};b58.items = []builder{&b54,&b65,&b39,&b65,&b57,&b65,&b8,};var b60 = sequenceBuilder{id: 60, commit: 10,allChars: true,ranges: [][]int{{1, 1},{1, 1},},generalizations: []int{61,},};var b59 = charBuilder{};b60.items = []builder{&b59,};b61.options = []builder{&b58,&b8,&b60,};var b62 = sequenceBuilder{id: 62, commit: 2,ranges: [][]int{{0, -1},{1, 1},},};b62.items = []builder{&b65,&b61,};b63.items = []builder{&b61,&b62,};b66.items = []builder{&b63,};b67.items = []builder{&b65,&b66,&b65,}; + var p67 = sequenceParser{id: 67, commit: 128, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} + var p65 = choiceParser{id: 65, commit: 2} + var p64 = sequenceParser{id: 64, commit: 262, name: "whitespace", allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{65}} + var p1 = charParser{id: 1, chars: []rune{32, 8, 12, 13, 9, 11}} + p64.items = []parser{&p1} + p65.options = []parser{&p64} + var p66 = sequenceParser{id: 66, commit: 258, name: "doc:wsroot", ranges: [][]int{{0, 1}}} + var p63 = sequenceParser{id: 63, commit: 2, ranges: [][]int{{1, 1}, {0, -1}}} + var p61 = choiceParser{id: 61, commit: 2} + var p58 = sequenceParser{id: 58, commit: 256, name: "key-val", ranges: [][]int{{0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {0, 1}}, generalizations: []int{61}} + var p54 = sequenceParser{id: 54, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}}} + var p14 = sequenceParser{id: 14, commit: 256, name: "comment", ranges: [][]int{{1, 1}, {0, 1}}} + var p8 = sequenceParser{id: 8, commit: 258, name: "comment-line", ranges: [][]int{{1, 1}, {0, 1}}, generalizations: []int{61}} + var p3 = sequenceParser{id: 3, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p2 = charParser{id: 2, chars: []rune{35}} + p3.items = []parser{&p2} + var p7 = sequenceParser{id: 7, commit: 2, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} + var p5 = sequenceParser{id: 5, commit: 2, allChars: true, ranges: [][]int{{1, 1}}} + var p4 = charParser{id: 4, not: true, chars: []rune{10}} + p5.items = []parser{&p4} + var p6 = sequenceParser{id: 6, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + p6.items = []parser{&p65, &p5} + p7.items = []parser{&p65, &p5, &p6} + p8.items = []parser{&p3, &p7} + var p13 = sequenceParser{id: 13, commit: 2, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} + var p11 = sequenceParser{id: 11, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}}} + var p10 = sequenceParser{id: 10, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p9 = charParser{id: 9, chars: []rune{10}} + p10.items = []parser{&p9} + p11.items = []parser{&p10, &p65, &p8} + var p12 = sequenceParser{id: 12, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + p12.items = []parser{&p65, &p11} + p13.items = []parser{&p65, &p11, &p12} + p14.items = []parser{&p8, &p13} + var p53 = sequenceParser{id: 53, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p52 = charParser{id: 52, chars: []rune{10}} + p53.items = []parser{&p52} + p54.items = []parser{&p14, &p65, &p53} + var p39 = choiceParser{id: 39, commit: 256, name: "key"} + var p38 = sequenceParser{id: 38, commit: 266, name: "word", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}, generalizations: []int{39}} + var p29 = sequenceParser{id: 29, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p28 = charParser{id: 28, chars: []rune{95}, ranges: [][]rune{{97, 122}, {65, 90}}} + p29.items = []parser{&p28} + var p37 = choiceParser{id: 37, commit: 10} + var p31 = sequenceParser{id: 31, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{37}} + var p30 = charParser{id: 30, chars: []rune{95, 45}, ranges: [][]rune{{97, 122}, {65, 90}, {48, 57}}} + p31.items = []parser{&p30} + var p36 = sequenceParser{id: 36, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{37}} + var p33 = sequenceParser{id: 33, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p32 = charParser{id: 32, chars: []rune{92}} + p33.items = []parser{&p32} + var p35 = sequenceParser{id: 35, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p34 = charParser{id: 34, not: true} + p35.items = []parser{&p34} + p36.items = []parser{&p33, &p35} + p37.options = []parser{&p31, &p36} + p38.items = []parser{&p29, &p37} + var p27 = sequenceParser{id: 27, commit: 266, name: "quoted", ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{39, 51}} + var p16 = sequenceParser{id: 16, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p15 = charParser{id: 15, chars: []rune{34}} + p16.items = []parser{&p15} + var p24 = choiceParser{id: 24, commit: 10} + var p18 = sequenceParser{id: 18, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{24}} + var p17 = charParser{id: 17, not: true, chars: []rune{92, 34}} + p18.items = []parser{&p17} + var p23 = sequenceParser{id: 23, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{24}} + var p20 = sequenceParser{id: 20, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p19 = charParser{id: 19, chars: []rune{92}} + 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} + p22.items = []parser{&p21} + p23.items = []parser{&p20, &p22} + p24.options = []parser{&p18, &p23} + var p26 = sequenceParser{id: 26, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p25 = charParser{id: 25, chars: []rune{34}} + p26.items = []parser{&p25} + p27.items = []parser{&p16, &p24, &p26} + p39.options = []parser{&p38, &p27} + var p57 = sequenceParser{id: 57, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {0, 1}}} + var p56 = sequenceParser{id: 56, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p55 = charParser{id: 55, chars: []rune{61}} + p56.items = []parser{&p55} + var p51 = choiceParser{id: 51, commit: 256, name: "value"} + var p50 = sequenceParser{id: 50, commit: 2, ranges: [][]int{{1, 1}, {0, -1}}, generalizations: []int{51}} + var p48 = sequenceParser{id: 48, commit: 266, name: "value-chars", ranges: [][]int{{1, -1}, {1, -1}}} + var p47 = choiceParser{id: 47, commit: 10} + var p41 = sequenceParser{id: 41, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{47}} + var p40 = charParser{id: 40, not: true, chars: []rune{92, 34, 10, 61, 35, 32, 8, 12, 13, 9, 11}} + p41.items = []parser{&p40} + var p46 = sequenceParser{id: 46, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{47}} + var p43 = sequenceParser{id: 43, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p42 = charParser{id: 42, chars: []rune{92}} + p43.items = []parser{&p42} + var p45 = sequenceParser{id: 45, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var p44 = charParser{id: 44, not: true} + p45.items = []parser{&p44} + p46.items = []parser{&p43, &p45} + p47.options = []parser{&p41, &p46} + p48.items = []parser{&p47} + var p49 = sequenceParser{id: 49, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + p49.items = []parser{&p65, &p48} + p50.items = []parser{&p48, &p49} + p51.options = []parser{&p50, &p27} + p57.items = []parser{&p56, &p65, &p51} + p58.items = []parser{&p54, &p65, &p39, &p65, &p57, &p65, &p8} + var p60 = sequenceParser{id: 60, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{61}} + var p59 = charParser{id: 59, chars: []rune{10}} + p60.items = []parser{&p59} + p61.options = []parser{&p58, &p8, &p60} + var p62 = sequenceParser{id: 62, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + p62.items = []parser{&p65, &p61} + p63.items = []parser{&p61, &p62} + p66.items = []parser{&p63} + p67.items = []parser{&p65, &p66, &p65} + var b67 = sequenceBuilder{id: 67, commit: 128, name: "doc", ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} + var b65 = choiceBuilder{id: 65, commit: 2} + var b64 = sequenceBuilder{id: 64, commit: 262, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{65}} + var b1 = charBuilder{} + b64.items = []builder{&b1} + b65.options = []builder{&b64} + var b66 = sequenceBuilder{id: 66, commit: 258, ranges: [][]int{{0, 1}}} + var b63 = sequenceBuilder{id: 63, commit: 2, ranges: [][]int{{1, 1}, {0, -1}}} + var b61 = choiceBuilder{id: 61, commit: 2} + var b58 = sequenceBuilder{id: 58, commit: 256, name: "key-val", ranges: [][]int{{0, 1}, {0, -1}, {1, 1}, {0, -1}, {0, 1}, {0, -1}, {0, 1}}, generalizations: []int{61}} + var b54 = sequenceBuilder{id: 54, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}}} + var b14 = sequenceBuilder{id: 14, commit: 256, name: "comment", ranges: [][]int{{1, 1}, {0, 1}}} + var b8 = sequenceBuilder{id: 8, commit: 258, ranges: [][]int{{1, 1}, {0, 1}}, generalizations: []int{61}} + var b3 = sequenceBuilder{id: 3, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b2 = charBuilder{} + b3.items = []builder{&b2} + var b7 = sequenceBuilder{id: 7, commit: 2, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} + var b5 = sequenceBuilder{id: 5, commit: 2, allChars: true, ranges: [][]int{{1, 1}}} + var b4 = charBuilder{} + b5.items = []builder{&b4} + var b6 = sequenceBuilder{id: 6, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + b6.items = []builder{&b65, &b5} + b7.items = []builder{&b65, &b5, &b6} + b8.items = []builder{&b3, &b7} + var b13 = sequenceBuilder{id: 13, commit: 2, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} + var b11 = sequenceBuilder{id: 11, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}}} + var b10 = sequenceBuilder{id: 10, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b9 = charBuilder{} + b10.items = []builder{&b9} + b11.items = []builder{&b10, &b65, &b8} + var b12 = sequenceBuilder{id: 12, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + b12.items = []builder{&b65, &b11} + b13.items = []builder{&b65, &b11, &b12} + b14.items = []builder{&b8, &b13} + var b53 = sequenceBuilder{id: 53, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b52 = charBuilder{} + b53.items = []builder{&b52} + b54.items = []builder{&b14, &b65, &b53} + var b39 = choiceBuilder{id: 39, commit: 256, name: "key"} + var b38 = sequenceBuilder{id: 38, commit: 266, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {0, -1}}, generalizations: []int{39}} + var b29 = sequenceBuilder{id: 29, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b28 = charBuilder{} + b29.items = []builder{&b28} + var b37 = choiceBuilder{id: 37, commit: 10} + var b31 = sequenceBuilder{id: 31, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{37}} + var b30 = charBuilder{} + b31.items = []builder{&b30} + var b36 = sequenceBuilder{id: 36, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{37}} + var b33 = sequenceBuilder{id: 33, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b32 = charBuilder{} + b33.items = []builder{&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} + b37.options = []builder{&b31, &b36} + b38.items = []builder{&b29, &b37} + var b27 = sequenceBuilder{id: 27, commit: 266, ranges: [][]int{{1, 1}, {0, -1}, {1, 1}, {1, 1}, {0, -1}, {1, 1}}, generalizations: []int{39, 51}} + var b16 = sequenceBuilder{id: 16, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b15 = charBuilder{} + b16.items = []builder{&b15} + var b24 = choiceBuilder{id: 24, commit: 10} + var b18 = sequenceBuilder{id: 18, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{24}} + var b17 = charBuilder{} + b18.items = []builder{&b17} + var b23 = sequenceBuilder{id: 23, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{24}} + 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} + b24.options = []builder{&b18, &b23} + var b26 = sequenceBuilder{id: 26, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b25 = charBuilder{} + b26.items = []builder{&b25} + b27.items = []builder{&b16, &b24, &b26} + b39.options = []builder{&b38, &b27} + var b57 = sequenceBuilder{id: 57, commit: 2, ranges: [][]int{{1, 1}, {0, -1}, {0, 1}}} + var b56 = sequenceBuilder{id: 56, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}} + var b55 = charBuilder{} + b56.items = []builder{&b55} + var b51 = choiceBuilder{id: 51, commit: 256, name: "value"} + var b50 = sequenceBuilder{id: 50, commit: 2, ranges: [][]int{{1, 1}, {0, -1}}, generalizations: []int{51}} + var b48 = sequenceBuilder{id: 48, commit: 266, ranges: [][]int{{1, -1}, {1, -1}}} + var b47 = choiceBuilder{id: 47, commit: 10} + var b41 = sequenceBuilder{id: 41, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{47}} + var b40 = charBuilder{} + b41.items = []builder{&b40} + var b46 = sequenceBuilder{id: 46, commit: 10, ranges: [][]int{{1, 1}, {1, 1}, {1, 1}, {1, 1}}, generalizations: []int{47}} + 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} + b46.items = []builder{&b43, &b45} + b47.options = []builder{&b41, &b46} + b48.items = []builder{&b47} + var b49 = sequenceBuilder{id: 49, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + b49.items = []builder{&b65, &b48} + b50.items = []builder{&b48, &b49} + b51.options = []builder{&b50, &b27} + b57.items = []builder{&b56, &b65, &b51} + b58.items = []builder{&b54, &b65, &b39, &b65, &b57, &b65, &b8} + var b60 = sequenceBuilder{id: 60, commit: 10, allChars: true, ranges: [][]int{{1, 1}, {1, 1}}, generalizations: []int{61}} + var b59 = charBuilder{} + b60.items = []builder{&b59} + b61.options = []builder{&b58, &b8, &b60} + var b62 = sequenceBuilder{id: 62, commit: 2, ranges: [][]int{{0, -1}, {1, 1}}} + b62.items = []builder{&b65, &b61} + b63.items = []builder{&b61, &b62} + b66.items = []builder{&b63} + b67.items = []builder{&b65, &b66, &b65} -var keywords = []parser{} + var keywords = []parser{} -return parseInput(r, &p67, &b67, keywords) + return parseInput(r, &p67, &b67, keywords) } diff --git a/input.go b/input.go index ffd3410..78299cd 100644 --- a/input.go +++ b/input.go @@ -1,9 +1,9 @@ package wand import ( + "code.squareroundforest.org/arpio/bind" "fmt" "reflect" - "code.squareroundforest.org/arpio/bind" ) func validateKeyValues(cmd Cmd, keyValues map[string][]string, originalNames map[string]string) error { diff --git a/reflect.go b/reflect.go index 44c0612..e6c6787 100644 --- a/reflect.go +++ b/reflect.go @@ -1,11 +1,11 @@ package wand import ( - "reflect" "code.squareroundforest.org/arpio/bind" "io" - "time" + "reflect" "strings" + "time" ) func filter[T any](list []T, predicate func(T) bool) []T { @@ -297,7 +297,7 @@ func bindable(t reflect.Type) bool { func scalarTypeString(t bind.Scalar) string { r := reflect.TypeOf(t) p := strings.Split(r.Name(), ".") - n := p[len(p) - 1] + n := p[len(p)-1] n = strings.ToLower(n) return n } diff --git a/script/docreflect/docs.go b/script/docreflect/docs.go index ec66bf5..cc0e6e2 100644 --- a/script/docreflect/docs.go +++ b/script/docreflect/docs.go @@ -1,9 +1,9 @@ package main import ( + "code.squareroundforest.org/arpio/wand/tools" "log" "os" - "code.squareroundforest.org/arpio/wand/tools" ) func main() { diff --git a/tools/exec.go b/tools/exec.go index 16f5cb8..d697d3f 100644 --- a/tools/exec.go +++ b/tools/exec.go @@ -1,11 +1,11 @@ package tools import ( - "io" - "strings" - "os/exec" - "os" "bytes" + "io" + "os" + "os/exec" + "strings" ) func execc(stdin io.Reader, stdout, stderr io.Writer, command string, args []string, env []string) error { diff --git a/tools/execwand.go b/tools/execwand.go index 98d3f28..f50f98a 100644 --- a/tools/execwand.go +++ b/tools/execwand.go @@ -1,33 +1,33 @@ package tools import ( - "io" "bufio" - "errors" - "fmt" - "unicode" - "hash/fnv" "bytes" "encoding/base64" - "strings" + "errors" + "fmt" + "hash/fnv" + "io" "os" - "sort" "path" + "sort" + "strings" + "unicode" ) type ExecOptions struct { - NoCache bool - ClearCache bool - CacheDir string - Import []string + NoCache bool + ClearCache bool + CacheDir string + Import []string InlineImport []string } func commandReader(in io.Reader) func() ([]string, error) { var ( - yieldErr error - currentArg []rune - args []string + yieldErr error + currentArg []rune + args []string escapeOne, escapePartial, escapeFull bool ) diff --git a/tools/lib.go b/tools/lib.go index af60a1f..54ec0f5 100644 --- a/tools/lib.go +++ b/tools/lib.go @@ -2,8 +2,8 @@ package tools import ( "code.squareroundforest.org/arpio/docreflect/generate" - "io" "fmt" + "io" ) type MarkdownOptions struct {