pub fn parse2<T: Parse>(tokens: TokenStream) -> Result<T, TokenParseError>Expand description
Parses one complete token stream as T.
ยงErrors
Returns TokenParseError when T cannot be parsed or leaves trailing
tokens.
Examples found in repository?
examples/parse_emit_walkthrough.rs (line 72)
68fn main() -> Result<(), TokenParseError> {
69 let quoted = quote_m2!(left + right);
70 println!("1. quote_m2! produced:\n{quoted:#?}\n");
71
72 let parsed: Addition = parse2(quoted)?;
73 println!("2. Parse produced:\n{parsed:#?}\n");
74
75 let emitted = parsed.to_token_stream();
76 println!("3. Lex produced:\n{emitted:#?}\n");
77 println!("4. Display merged those tokens as: {emitted}");
78
79 let reparsed: Addition = parse2(emitted)?;
80 assert_eq!(reparsed, parsed);
81
82 Ok(())
83}