Skip to main content

parse2

Function parse2 

Source
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}