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 parser::Parser;
|
2023-05-04 02:27:04 -05:00
|
|
|
|
2023-05-04 06:19:32 -05:00
|
|
|
mod ast;
|
|
|
|
mod lexer;
|
|
|
|
mod parser;
|
2023-05-04 02:27:04 -05:00
|
|
|
|
2023-05-04 07:44:49 -05:00
|
|
|
const TEST: &str = include_str!("../assets/why.idl");
|
2023-05-04 02:27:04 -05:00
|
|
|
|
|
|
|
fn main() {
|
2023-05-04 07:44:49 -05:00
|
|
|
let res = Parser::new(TEST).parse();
|
|
|
|
match res {
|
|
|
|
Ok(ast) => { dbg!(ast); }
|
|
|
|
Err(e) => println!("{}", e)
|
|
|
|
}
|
2023-05-04 06:19:32 -05:00
|
|
|
}
|
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
|
|
|
}
|