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 65)
61fn main() -> Result<(), TokenParseError> {
62 let quoted = quote_m2!(left + right);
63 println!("1. quote_m2! produced:\n{quoted:#?}\n");
64
65 let parsed: Addition = parse2(quoted)?;
66 println!("2. Parse produced:\n{parsed:#?}\n");
67
68 let emitted = parsed.to_token_stream();
69 println!("3. Lex produced:\n{emitted:#?}\n");
70 println!("4. Display merged those tokens as: {emitted}");
71
72 let reparsed: Addition = parse2(emitted)?;
73 assert_eq!(reparsed, parsed);
74
75 Ok(())
76}