refactor: Syntax with unit tests

This commit is contained in:
Lucàs
2024-07-08 16:44:42 +02:00
parent 6df363c78d
commit 2e76ccf9fc
39 changed files with 460 additions and 771 deletions
+27
View File
@@ -0,0 +1,27 @@
open Alcotest
open Syntax
let test_pp_statements () =
let to_check =
[
( "Should return \"ExpressionStatement(...)\"",
"ExpressionStatement(Literal(Integer(1)))",
Statements.ExpressionStatement
(Expressions.Literal (Literals.Integer 1)) );
( "Should return \"SequenceStatement(...)\"",
"SequenceStatement(ExpressionStatement(Literal(Integer(1))), \
ExpressionStatement(Literal(Float(1.000000))))",
Statements.SequenceStatement
( Statements.ExpressionStatement
(Expressions.Literal (Literals.Integer 1)),
Statements.ExpressionStatement
(Expressions.Literal (Literals.Float 1.0)) ) );
]
in
List.iter
(fun (name, expected, actual) ->
check string name expected (Statements.pp_statements actual))
to_check
let tests =
("Statements", [ test_case "pp_statements" `Quick test_pp_statements ])