Swap to pegn/scanner

main v0.17
Rob Muhlestein 2 years ago
parent cbb7b625a4
commit 938c21c981

@ -1,18 +1,3 @@
module github.com/rwxrob/bonzai
go 1.18
require (
github.com/rwxrob/compcmd v0.3.0
github.com/rwxrob/fn v0.3.3
github.com/rwxrob/scan v0.9.0
github.com/rwxrob/structs v0.6.0
github.com/rwxrob/term v0.2.8
github.com/rwxrob/to v0.8.0
)
require (
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab // indirect
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect
)

@ -1,48 +0,0 @@
github.com/rwxrob/compcmd v0.1.1 h1:VCpA28yXWSS5ijAe6N5DswYektT1KT3ZryirINZVYgs=
github.com/rwxrob/compcmd v0.1.1/go.mod h1:l4anbcmNEBs4vNb2uxfD45jSgm2FmPvpYfBNGqlO3rc=
github.com/rwxrob/compcmd v0.2.3 h1:L05+CnLoJWpRp745+Hpz8fB0dz8SIzH0+uwSZxIZgEM=
github.com/rwxrob/compcmd v0.2.3/go.mod h1:fS9smeE6XIb/2511RU6618IimOJjg0tC69eXISxaxU4=
github.com/rwxrob/compcmd v0.3.0 h1:AlJNItb7+Yk17qmH5E7TJFyBXhna/rS3NeQAgjqbFls=
github.com/rwxrob/compcmd v0.3.0/go.mod h1:XOHl6bS2Uen6Wx2mxtbtUhT8Sbz1IhnaE55xPkhTBD4=
github.com/rwxrob/fn v0.3.3 h1:ymRQGWDhrrvoHKXLJ4WZlgI2qrC7gMOotowQMGvwmVQ=
github.com/rwxrob/fn v0.3.3/go.mod h1:omPqOqEB+dDna09z5pi5YFxq4IZqDvv3wFPUCES5LvY=
github.com/rwxrob/scan v0.6.1 h1:KMGi/kV7TY4pcVo8H/HVwwyQZ2gBFNQI3g7tT121Voo=
github.com/rwxrob/scan v0.6.1/go.mod h1:eF28AgH3YUvP7E9UrhjePRUyLq3Gh7+fR28P7Z/Ku4E=
github.com/rwxrob/scan v0.9.0 h1:0FhHGrjmwRvRJWCW6I2BlOgEZKa4Af/R6t/2or8abAE=
github.com/rwxrob/scan v0.9.0/go.mod h1:sDIllL5+Ppk33AHkhhdrkPLP0EheWQPoNotKMhUfCIg=
github.com/rwxrob/structs v0.5.1 h1:epff+4ihej+EgsQx0qOAS/cn7ix3qSLor0M/AjWiV3M=
github.com/rwxrob/structs v0.5.1/go.mod h1:e888JzBSTrMMizNYFnk426F77QneVUKgdxM5inMHErY=
github.com/rwxrob/structs v0.6.0 h1:t8JVd/Pee1OGaXgT6QYmGed470C9vOw6scdH8Cr5LPg=
github.com/rwxrob/structs v0.6.0/go.mod h1:txMfzPfEiIDNM5bwhzUqxr/1QQ3ekOuj3KLT8Nt1fA0=
github.com/rwxrob/term v0.2.6 h1:C8BqqHaEh8MGYp1cVrPRlDAYPEK3HfvhGjf7l5AvnV8=
github.com/rwxrob/term v0.2.6/go.mod h1:II0qQ7aHUdPniZCAPWOdYwugcZqdmRmEWIJQN7Z8NA0=
github.com/rwxrob/term v0.2.7 h1:uFhFcZkjphRQHhkzaV5G34r4es7R6qEw52XA3xD0yn0=
github.com/rwxrob/term v0.2.7/go.mod h1:II0qQ7aHUdPniZCAPWOdYwugcZqdmRmEWIJQN7Z8NA0=
github.com/rwxrob/term v0.2.8 h1:N9spr+owF8mRizSqPiATu5F0v2VJUIKwRldsibAUys8=
github.com/rwxrob/term v0.2.8/go.mod h1:UruWGJ5mrQH5v1XBg52s7ldZUBXxEODevbkoFUM4SrQ=
github.com/rwxrob/to v0.5.2 h1:BK2xKkWNhnR5TwEzbsPpXjGODFrTrgZfXzfEdtgCeyU=
github.com/rwxrob/to v0.5.2/go.mod h1:lojk6scni4ZRYjnKJO/f2DVRTW0BB6l9LZQ/NvZZt4Y=
github.com/rwxrob/to v0.5.4 h1:eUKF6O4eLhiA/pdcl/BXfp492PZ6Lz1Vs1gQZnSZlj4=
github.com/rwxrob/to v0.5.4/go.mod h1:lojk6scni4ZRYjnKJO/f2DVRTW0BB6l9LZQ/NvZZt4Y=
github.com/rwxrob/to v0.5.5 h1:gtcsVTF/0XAfsWLTQ3lC0byKc9XWE96Gz5icus3zk3I=
github.com/rwxrob/to v0.5.5/go.mod h1:PzU60XDkBkkiQxuiUsqwwAkjja2B5O0nKiRV9nHO84Q=
github.com/rwxrob/to v0.7.0 h1:hTs6pH6J4/JAex/T+ktsz3to8ojuuS9tCW4j4fHBTvY=
github.com/rwxrob/to v0.7.0/go.mod h1:5z3Y1tyXRmPfa+be5hvnxYuLQ0NSBQsE6mIBVTqlYTA=
github.com/rwxrob/to v0.8.0 h1:SUhUppTxrRZQpPP5twHxuyj08ENZkM0PD8RL5DkCYWY=
github.com/rwxrob/to v0.8.0/go.mod h1:5z3Y1tyXRmPfa+be5hvnxYuLQ0NSBQsE6mIBVTqlYTA=
golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 h1:kUhD7nTDoI3fVd9G4ORWrbV5NY0liEs/Jg2pv5f+bBA=
golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/sys v0.0.0-20220412071739-889880a91fd5 h1:NubxfvTRuNb4RVzWrIDAUzUvREH1HkCD4JjyQTSG9As=
golang.org/x/sys v0.0.0-20220412071739-889880a91fd5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 h1:xHms4gcpe1YE7A3yIllJXP16CMAGuqwO2lX1mTyyRRc=
golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220808155132-1c4a2a72c664 h1:v1W7bwXHsnLLloWYTVEdvGvA7BHMeBYsPcF0GLDxIRs=
golang.org/x/sys v0.0.0-20220808155132-1c4a2a72c664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab h1:2QkjZIsXupsJbJIdSjjUOgWK3aEtzyuh2mPt3l/CkeU=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 h1:EH1Deb8WZJ0xc0WK//leUHXcX9aLE5SymusoTmMZye8=
golang.org/x/term v0.0.0-20220411215600-e5f449aeb171/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 h1:Q5284mrmYTpACcm+eAKjKJH48BBwSyfJqmmGDTtT8Vc=
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=

@ -6,7 +6,7 @@ import (
"strconv"
"unicode"
"github.com/rwxrob/scan"
"github.com/rwxrob/pegn/scanner"
"github.com/rwxrob/term"
"github.com/rwxrob/to"
)
@ -85,7 +85,7 @@ func Blocks(in string) []*Block {
in = to.Dedented(in) // also trims initial white space
s := scan.R{B: []byte(in)}
s := scanner.New(in)
//s.Trace++
for s.Scan() {
@ -93,48 +93,48 @@ func Blocks(in string) []*Block {
// Bulleted
if s.Is("* ") {
var beg, end int
beg = s.P - 1
beg = s.E - 1
for s.Scan() {
if s.Is("\n\n") {
end = s.P - 1
s.P++
end = s.E - 1
s.E++
break
}
end = s.P
end = s.E
}
blocks = append(blocks, &Block{Bulleted, s.B[beg:end]})
blocks = append(blocks, &Block{Bulleted, s.Buf[beg:end]})
continue
}
// Numbered
if s.Is("1. ") {
var beg, end int
beg = s.P - 1
beg = s.E - 1
for s.Scan() {
if s.Is("\n\n") {
end = s.P - 1
s.P++
end = s.E - 1
s.E++
break
}
end = s.P
end = s.E
}
blocks = append(blocks, &Block{Numbered, s.B[beg:end]})
blocks = append(blocks, &Block{Numbered, s.Buf[beg:end]})
continue
}
// Verbatim
if ln := s.Match(begVerbatim); ln >= 4 {
var beg, end int
beg = s.LP
beg = s.B
for s.Scan() {
if s.Is("\n\n") {
end = s.P - 1
s.P++
end = s.E - 1
s.E++
break
}
end = s.P
end = s.E
}
dedented := to.Dedented(string(s.B[beg:end]))
dedented := to.Dedented(string(s.Buf[beg:end]))
blocks = append(blocks, &Block{Verbatim, []byte(dedented)})
continue
}
@ -142,17 +142,17 @@ func Blocks(in string) []*Block {
// Paragraph (default)
if !unicode.IsSpace(s.R) {
var beg, end int
beg = s.LP
beg = s.B
for s.Scan() {
if s.Is("\n\n") {
end = s.P - 1
s.P++
end = s.E - 1
s.E++
break
}
end = s.P
end = s.E
}
blocks = append(blocks, &Block{Paragraph,
[]byte(to.Words(string(s.B[beg:end])))})
[]byte(to.Words(string(s.Buf[beg:end])))})
continue
}
@ -186,7 +186,7 @@ var endItalic = regexp.MustCompile(`^\p{L}\*`)
func Emph[T string | []byte | []rune](buf T) string {
var nbuf []rune
s := scan.R{B: []byte(string(buf))}
s := scanner.New(buf)
for s.Scan() {
@ -199,7 +199,7 @@ func Emph[T string | []byte | []rune](buf T) string {
nbuf = append(nbuf, s.R)
nbuf = append(nbuf, []rune(term.Reset)...)
nbuf = append(nbuf, '>')
s.P++
s.E++
break
}
nbuf = append(nbuf, s.R)
@ -216,7 +216,7 @@ func Emph[T string | []byte | []rune](buf T) string {
if s.Match(endBoldItalic) > 0 {
nbuf = append(nbuf, s.R)
nbuf = append(nbuf, []rune(term.Reset)...)
s.P += 3
s.E += 3
break
}
nbuf = append(nbuf, s.R)
@ -227,12 +227,12 @@ func Emph[T string | []byte | []rune](buf T) string {
// **Bold**
if s.Match(begBold) > 0 {
s.P += 1
s.E += 1
nbuf = append(nbuf, []rune(term.Bold)...)
for s.Scan() {
if s.Match(endBold) > 0 {
nbuf = append(nbuf, s.R)
s.P += 2
s.E += 2
nbuf = append(nbuf, []rune(term.Reset)...)
break
}
@ -248,7 +248,7 @@ func Emph[T string | []byte | []rune](buf T) string {
if s.Match(endItalic) > 0 {
nbuf = append(nbuf, s.R)
nbuf = append(nbuf, []rune(term.Reset)...)
s.P++
s.E++
break
}
nbuf = append(nbuf, s.R)

@ -4,7 +4,6 @@ import (
"fmt"
Z "github.com/rwxrob/bonzai/z"
// "github.com/rwxrob/scan"
"github.com/rwxrob/term"
)
@ -14,7 +13,6 @@ func init() {
term.BoldItalic = `<bolditalic>`
term.Under = `<under>`
term.Reset = `<reset>`
// scan.Trace++
}
func ExampleLines() {
@ -72,10 +70,6 @@ func ExampleBlocks_numbered() {
func ExampleBlocks_paragraph() {
// defer func() { scan.Trace = 0 }()
// log.SetFlags(0)
// scan.Trace = 1
in := `
Simple paragraph
here on multiple

Loading…
Cancel
Save