4 releases
0.3.1 | May 1, 2019 |
---|---|
0.3.0 | Apr 30, 2019 |
0.2.1 | Apr 28, 2019 |
0.2.0 | Apr 28, 2019 |
#277 in Parser tooling
120 downloads per month
Used in crabwise-antlr-parser
24KB
467 lines
combine-proc-macro
A library that allows proc_macro function-like macros to be parsed using the combine parser combinator crate.
Usage
Put this in your Cargo.toml
:
[dependencies]
combine-proc-macro = "0.3.1"
And this in your crate root:
extern crate combine_proc_macro;
To learn how the library is used, see some examples:
- The
hello_macro
in the documentation. - The grammar definition in
crabwise-antlr-parser
. - A
#[proc_macro]
implemented usingcrabwise-antlr-parser
.
Motivation
When writing a #[proc_macro_derive]
the input is Rust source code which is
well supported by the syn
crate. However, when writing a #[proc_macro]
macro, it is common to want to define a custom domain specific language.
This crate allows you to write a parser for your DSL using the combine
parser combinator library. It also preserves the source span information
in the parsed result such that rustc
can provide correct source locations
for identifiers and literals that are re-used in the output.
License
This library is licensed under the terms of both the MIT license and the Apache License (Version 2.0), and may include packages written by third parties which carry their own copyright notices and license terms.
See LICENSE-APACHE, LICENSE-MIT, and COPYRIGHT for details.
Dependencies
~1.5MB
~27K SLoC