c8e6857aff
Parser-combinators are one of the simpler tools for building ad-hoc parsers. They're a good fit because they are... * Small: each parser / parser-combinator is around 10 LOC. * Functional: helix_core strives to be a functional set of utilities usable throughout the rest of the editor. * Flexible: use them to build any sort of ad-hoc parser. In the child commit, we'll parse LSP Snippet syntax using these new parser combinators. Why not use an existing parser-combinator crate? Existing popular parser-combinator crates have histories of making breaking changes (for example nom and combine). > Implementation note: I tried to not introduce a new trait since the > types can be expressed in terms of `impl Fn`s. The trait is necessary > to build `seq` implementations without a proc macro though, and also > allows us to use `&'static str`s very conveniently: see the trait > implementation for `&'static str`.
14 lines
355 B
TOML
14 lines
355 B
TOML
[package]
|
|
name = "helix-parsec"
|
|
version = "0.6.0"
|
|
authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
|
|
edition = "2021"
|
|
license = "MPL-2.0"
|
|
description = "Parser combinators for Helix"
|
|
categories = ["editor"]
|
|
repository = "https://github.com/helix-editor/helix"
|
|
homepage = "https://helix-editor.com"
|
|
include = ["src/**/*", "README.md"]
|
|
|
|
[dependencies]
|
|
regex = "1"
|