proxy.golang.org : github.com/jakebailey/comb
Package comb is the comb parser combinator framework. comb is an efficient parser combinator framework. comb offers various useful parsers, including nonterminals such as characters, character ranges, tokens, and regular expressions. Also included are sequences, repetitions, and optional parsers. For example, here is a parser that recognizes the decimal, octal, and hex integers accepted in Go. (Though, this is more succinctly expressed with a regular expression, giving a moderate performance gain.) comb uses a scanner which traverses a rune slice. All builtin parsers return results that are simply slices of the original data, keeping copying to a minimum. The combext package offers other general-use parsers (such as alpha-numeric characters, whitespace, etc) that may be frequently needed, though not always used. In the _examples directory, you can find examples of comb in use, including a recursive expression calculator. comb takes inspiration from the following Go parser combinator libraries: • jmikkola/parsego (https://github.com/jmikkola/parsego) • prataprc/goparsec (https://github.com/prataprc/goparsec) I tried both of these while writing a parser for another project. They both offer some amount of good usability and performance, but not enough to my liking. I thought the changes I would make would be too breaking to turn into a reasonable PR, so here we are.
Registry
-
Source
- Documentation
- JSON
purl: pkg:golang/github.com/jakebailey/comb
License: MIT
Latest release: 2 months ago
Namespace: github.com/jakebailey
Stars: 0 on GitHub
Forks: 0 on GitHub
See more repository details: repos.ecosyste.ms
Last synced: 2 months ago