#![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!() } }; }