No grammar left behind
Instaparse aims to be the simplest way to build parsers in Clojure.
Turns standard EBNF or ABNF notation for context-free grammars into an executable parser that takes a string as an input and produces a parse tree for that string.
No Grammar Left Behind: Works for any context-free grammar, including left-recursive, right-recursive, and ambiguous grammars.
Extends the power of context-free grammars with PEG-like syntax for lookahead and negative lookahead.
Supports both of Clojure's most popular tree formats (hiccup and enlive) as output targets
Detailed reporting of parse errors.
Optionally produces lazy sequence of all parses (especially useful for diagnosing and debugging ambiguous grammars).
``Total parsing'' mode where leftover string is embedded in the parse tree.
Optional combinator library for building grammars programmatically.
Performant.
System | Target | Derivation | Build status |
---|---|---|---|
x86_64-linux | /gnu/store/lshwamyb4bkn981680gvgnw4ins0v41i-clojure-instaparse-1.4.9.drv | ||
i686-linux | /gnu/store/5gayr15vkks7w0mkmns21jri0dzlwp6z-clojure-instaparse-1.4.9.drv |
Linter | Message | Location |
---|---|---|
derivation Report failure to compile a package to a derivation | failed to create armhf-linux derivation: (match-error "match" "no matching pattern" "armhf-linux") | |
derivation Report failure to compile a package to a derivation | failed to create aarch64-linux derivation: (match-error "match" "no matching pattern" "aarch64-linux") | |
derivation Report failure to compile a package to a derivation | failed to create mips64el-linux derivation: (match-error "match" "no matching pattern" "mips64el-linux") |