#![allow(non_snake_case)]

use logos::Logos;
use parser::Parser;

use crate::lexer::Token;
mod ast;
mod lexer;
mod parser;

const VFS: &str = include_str!("../assets/vfs.idl");

fn main() {
    dbg!(Token::lexer(VFS).for_each(|a| println!("{:#?}", a)));
    dbg!(Parser::new(VFS).parse());
}

#[macro_export]
macro_rules! unwrap_match {
    ($x:expr, $m:pat => $a:expr) => {
        match $x {
            $m => $a,
            _ => unreachable!()
        }
    };
}