kravl_parser/syntax/
mod.rs

1pub 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}