token_stream2
is a helper crate for parsing procedural macros.
It allows you to quickly convert from proc_macro2::TokenStream
into a token_stream2::TokenStream
,
which allows you to have a much easier time traversing the token stream.
It's also extremely lightweight with only one dependency, proc_macro2
, which you most likely already have.
You can easily convert into tokenstream2::TokenStream
using .into()
.
```rs
let toparse: procmacro2::TokenStream = r#"
fn main() {
println!("Hello world!");
}
"#
.parse()
.expect("infallible");
let stream: tokenstream2::TokenStream = toparse.into(); ```
token_stream2::TokenStream
implements Iterator
, so you can use the various Iterator
methods on it.
It also has it's own .peek()
method you can use to quickly look ahead, since that will likely be a common behavior.
You can look in the /examples
directory to see an example of it in use.