1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
pub mod tokens; pub mod lexer; pub mod ast; #[cfg(test)] mod tests { #[test] fn lexer_tokenize() { use syntax::lexer::Lexer; let mut lexer = Lexer::new(); lexer.tokenize(String::from(" define fib_sum(a -> int, b -> int) -> int if a + b <= 2 return c end fib_sum(a, b - 1) + fib_sum(a, b - 2) end ")); assert!(lexer.get_tokens().len() != 0) } #[test] fn parser_tokenize() { use syntax::lexer::Lexer; use syntax::ast::Parser; let mut lexer = Lexer::new(); lexer.tokenize(String::from(" foo = \"hey aywa\" foo = 22.2 define bar(a, b) do foo = 2 end sum = 1337 - 2 - 10.2 * 100 ")); let mut parser = Parser::from(lexer); let stack = parser.parse_full(); } }