2023-05-04 06:19:32 -05:00
|
|
|
#![allow(non_snake_case)]
|
2023-05-04 02:27:04 -05:00
|
|
|
|
2023-05-04 06:19:32 -05:00
|
|
|
use logos::Logos;
|
|
|
|
use parser::Parser;
|
2023-05-04 02:27:04 -05:00
|
|
|
|
2023-05-04 06:19:32 -05:00
|
|
|
use crate::lexer::Token;
|
|
|
|
mod ast;
|
|
|
|
mod lexer;
|
|
|
|
mod parser;
|
2023-05-04 02:27:04 -05:00
|
|
|
|
2023-05-04 06:19:32 -05:00
|
|
|
const VFS: &str = include_str!("../assets/vfs.idl");
|
2023-05-04 02:27:04 -05:00
|
|
|
|
|
|
|
fn main() {
|
2023-05-04 06:19:32 -05:00
|
|
|
dbg!(Token::lexer(VFS).for_each(|a| println!("{:#?}", a)));
|
|
|
|
dbg!(Parser::new(VFS).parse());
|
|
|
|
}
|
2023-05-04 02:27:04 -05:00
|
|
|
|
2023-05-04 06:19:32 -05:00
|
|
|
#[macro_export]
|
|
|
|
macro_rules! unwrap_match {
|
|
|
|
($x:expr, $m:pat => $a:expr) => {
|
|
|
|
match $x {
|
|
|
|
$m => $a,
|
|
|
|
_ => unreachable!()
|
|
|
|
}
|
|
|
|
};
|
2023-05-04 02:27:04 -05:00
|
|
|
}
|