aboutsummaryrefslogtreecommitdiff
path: root/test/qsp_parser_test.ml
diff options
context:
space:
mode:
authorChimrod <>2023-09-28 14:34:11 +0200
committerChimrod <>2023-09-29 10:00:21 +0200
commit93355b06a8270f02d345bdbe7b6a8c1bea9789bb (patch)
tree486b89672215278d7ff1a25a853ab25e1c8d2a38 /test/qsp_parser_test.ml
parent4efc1d21441c5e9ad7f24a3e473bbbd8025de124 (diff)
Reduced the number of error messages
Diffstat (limited to 'test/qsp_parser_test.ml')
-rw-r--r--test/qsp_parser_test.ml38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/qsp_parser_test.ml b/test/qsp_parser_test.ml
index 25619b7..c37c7f1 100644
--- a/test/qsp_parser_test.ml
+++ b/test/qsp_parser_test.ml
@@ -689,6 +689,43 @@ let test_input () =
Tree.Ast.Literal (_position, "") ));
]
+let test_mutiple_inline_ifs () =
+ _test_instruction "if 1 > 0: 1 else if 1 < 0: 0"
+ [
+ Tree.Ast.If
+ {
+ loc = _position;
+ then_ =
+ ( _position,
+ Tree.Ast.BinaryOp
+ ( _position,
+ Gt,
+ Tree.Ast.Integer (_position, "1"),
+ Tree.Ast.Integer (_position, "0") ),
+ [ Tree.Ast.Expression (Tree.Ast.Integer (_position, "1")) ] );
+ elifs = [];
+ else_ =
+ [
+ Tree.Ast.If
+ {
+ loc = _position;
+ then_ =
+ ( _position,
+ Tree.Ast.BinaryOp
+ ( _position,
+ Lt,
+ Tree.Ast.Integer (_position, "1"),
+ Tree.Ast.Integer (_position, "0") ),
+ [
+ Tree.Ast.Expression (Tree.Ast.Integer (_position, "0"));
+ ] );
+ elifs = [];
+ else_ = [];
+ };
+ ];
+ };
+ ]
+
let syntax =
( "Syntax",
[
@@ -750,6 +787,7 @@ let syntax =
Alcotest.test_case "Operator2" `Quick test_operator2;
Alcotest.test_case "Dyneval" `Quick test_dyneval;
Alcotest.test_case "Input" `Quick test_input;
+ Alcotest.test_case "inline if else if" `Quick test_mutiple_inline_ifs;
] )
let () = Alcotest.run "qsp_parser" [ syntax ]