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