diff options
Diffstat (limited to 'tests/test_parser.rs')
-rw-r--r-- | tests/test_parser.rs | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/tests/test_parser.rs b/tests/test_parser.rs index c619745..e33cdfa 100644 --- a/tests/test_parser.rs +++ b/tests/test_parser.rs @@ -52,43 +52,36 @@ fn test_complex_annotations() { } const program: &'static str = -"func foo() = - bar - if this: +"func foo(x): (int -> int) = + if this = that - else: + else = this hello foo bar baz -func foo = +func foo: (bool -> int) = this - if that: - then this "; const lexed: &'static str = -"func foo() = { - bar; - if this: { +"func foo(x): (int -> int) = { + if this = { that; - } - else: { + }; + else = { this; - } -} + }; +}; hello; foo; bar; baz; -func foo = { +func foo: (bool -> int) = { this; - if that: { - then this; - } -}"; +};"; #[test] fn test_lexer() { @@ -96,3 +89,19 @@ fn test_lexer() { assert!(result.is_ok()); assert_eq!(result.unwrap(), lexed); } + +#[test] +fn test_parser() { + let result = parse_lang(lexed); + assert!(result.is_err()); + + let file = std::fs::read_to_string("tests/src/negate.nim"); + assert!(file.is_ok()); + let result = parse_lang(&file.unwrap()); + assert!(result.is_err()); + + let file = std::fs::read_to_string("tests/src/fib.nim"); + assert!(file.is_ok()); + let result = parse_lang(&file.unwrap()); + assert!(result.is_err()); +} |