From e3c26ba70200db0b38ad3f06c509bf90d0790da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=A0s?= <86352901+LucasVbr@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:26:22 +0200 Subject: [PATCH] feat: Add Assign --- lib/ast/print.ml | 1 + lib/ast/syntax.ml | 1 + lib/parser.mly | 1 + test/ast/print.ml | 1 + 4 files changed, 4 insertions(+) diff --git a/lib/ast/print.ml b/lib/ast/print.ml index 39c425b..ea5d642 100644 --- a/lib/ast/print.ml +++ b/lib/ast/print.ml @@ -25,6 +25,7 @@ let string_of_binary_operator = function | LessThanEquals -> "LessThanEquals" | GreaterThan -> "GreaterThan" | GreaterThanEquals -> "GreaterThanEquals" + | Assign -> "Assign" (** [string_of_unary_operator op] returns a string representation of the unary operator [op]. *) let string_of_unary_operator = function Negate -> "Negate" | Not -> "Not" diff --git a/lib/ast/syntax.ml b/lib/ast/syntax.ml index 41a0fc6..e56ae4c 100644 --- a/lib/ast/syntax.ml +++ b/lib/ast/syntax.ml @@ -29,6 +29,7 @@ type binary_operator = | LessThanEquals | GreaterThan | GreaterThanEquals + | Assign type unary_operator = Negate | Not diff --git a/lib/parser.mly b/lib/parser.mly index cdb38f1..066f4a9 100644 --- a/lib/parser.mly +++ b/lib/parser.mly @@ -114,3 +114,4 @@ binary_expression: | e1=expression "<=" e2=expression { BinaryExpression(LessThanEquals, e1, e2) } | e1=expression ">" e2=expression { BinaryExpression(GreaterThan, e1, e2) } | e1=expression ">=" e2=expression { BinaryExpression(GreaterThanEquals, e1, e2) } + | e1=expression "=" e2=expression { BinaryExpression(Assign, e1, e2) } diff --git a/test/ast/print.ml b/test/ast/print.ml index cf7bf35..c04cfae 100644 --- a/test/ast/print.ml +++ b/test/ast/print.ml @@ -61,6 +61,7 @@ let test_string_of_binary_operator () = ("<=", "LessThanEquals", LessThanEquals); (">", "GreaterThan", GreaterThan); (">=", "GreaterThanEquals", GreaterThanEquals); + ("=", "Assign", Assign); ] in List.iter