Added Bracket, Where, and Token (without tests)
This commit is contained in:
16
bytes/bytes.go
Normal file
16
bytes/bytes.go
Normal file
@ -0,0 +1,16 @@
|
||||
package bytes
|
||||
|
||||
import (
|
||||
"git.codemonkeysoftware.net/b/gigaparsec"
|
||||
)
|
||||
|
||||
func Token[Out, WSOut any](whitespace gigaparsec.Parser[byte, WSOut]) func(p gigaparsec.Parser[byte, Out]) gigaparsec.Parser[byte, Out] {
|
||||
mappedWS := gigaparsec.Map(whitespace, func(WSOut) struct{} { return struct{}{} })
|
||||
var ignoreWS gigaparsec.Parser[byte, struct{}] = func(s gigaparsec.State[byte]) (gigaparsec.Result[byte, struct{}], error) {
|
||||
result, err := mappedWS(s)
|
||||
return result.Consume(false), err
|
||||
}
|
||||
return func(p gigaparsec.Parser[byte, Out]) gigaparsec.Parser[byte, Out] {
|
||||
return gigaparsec.Seq2(p, gigaparsec.Repeat(0, ignoreWS), func(val Out, _ []struct{}) Out { return val })
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user