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