floop 0.1.2

A more convenient and less error prone replacement for loop `{ select! { .. }}`
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use unsynn::*;

use crate::{code_generation::generate_code, parser::{UnvalidatedAst, rust_analyzer_friendly::friendly_error}};

pub(crate) fn floop(tokens: TokenStream) -> TokenStream {
    let ast = match UnvalidatedAst::parse_all(&mut tokens.clone().to_token_iter()) {
        Ok(ast) => ast,
        Err(err) => {
            return friendly_error(tokens, err);
        }
    };
    let ast = match ast.validated() {
        Ok(ast) => ast,
        Err(err) => return friendly_error(tokens, err),
    };

    generate_code(ast)
}