From d90948d4959d7895af5f8955cac8c1bb39ceb859 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 2 Feb 2025 18:40:12 +0000 Subject: Parse less than or equal expressions --- .../compiler/ast/untyped/UntypedNodeMatchers.java | 7 +++++ .../compiler/parser/ParserLessThanTests.java | 21 -------------- .../parser/ParserRelationalOperationTests.java | 33 ++++++++++++++++++++++ 3 files changed, 40 insertions(+), 21 deletions(-) delete mode 100644 src/test/java/org/shedlang/compiler/parser/ParserLessThanTests.java create mode 100644 src/test/java/org/shedlang/compiler/parser/ParserRelationalOperationTests.java (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java b/src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java index 71c518b2..77e25dff 100644 --- a/src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java +++ b/src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java @@ -221,6 +221,13 @@ public class UntypedNodeMatchers { return isUntypedBinaryOperationNode(UntypedBinaryOperator.LESS_THAN, left, right); } + public static Matcher isUntypedLessThanOrEqualNode( + Matcher left, + Matcher right + ) { + return isUntypedBinaryOperationNode(UntypedBinaryOperator.LESS_THAN_OR_EQUAL, left, right); + } + public static Matcher isUntypedMemberAccessNode( Matcher receiver, String memberName diff --git a/src/test/java/org/shedlang/compiler/parser/ParserLessThanTests.java b/src/test/java/org/shedlang/compiler/parser/ParserLessThanTests.java deleted file mode 100644 index 7d87b162..00000000 --- a/src/test/java/org/shedlang/compiler/parser/ParserLessThanTests.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.shedlang.compiler.parser; - -import org.junit.jupiter.api.Test; - -import static org.shedlang.compiler.ast.untyped.UntypedNodeMatchers.*; -import static org.shedlang.compiler.parser.ParserTesting.parseString; -import static org.zwobble.precisely.AssertThat.assertThat; - -public class ParserLessThanTests { - @Test - public void canParseLessThanExpression() { - var source = "1 < 2"; - - var node = parseString(source, Parser::parseTopLevelExpression); - - assertThat(node, isUntypedLessThanNode( - isUntypedIntLiteralNode(1), - isUntypedIntLiteralNode(2) - )); - } -} diff --git a/src/test/java/org/shedlang/compiler/parser/ParserRelationalOperationTests.java b/src/test/java/org/shedlang/compiler/parser/ParserRelationalOperationTests.java new file mode 100644 index 00000000..70d81280 --- /dev/null +++ b/src/test/java/org/shedlang/compiler/parser/ParserRelationalOperationTests.java @@ -0,0 +1,33 @@ +package org.shedlang.compiler.parser; + +import org.junit.jupiter.api.Test; + +import static org.shedlang.compiler.ast.untyped.UntypedNodeMatchers.*; +import static org.shedlang.compiler.parser.ParserTesting.parseString; +import static org.zwobble.precisely.AssertThat.assertThat; + +public class ParserRelationalOperationTests { + @Test + public void canParseLessThanExpression() { + var source = "1 < 2"; + + var node = parseString(source, Parser::parseTopLevelExpression); + + assertThat(node, isUntypedLessThanNode( + isUntypedIntLiteralNode(1), + isUntypedIntLiteralNode(2) + )); + } + + @Test + public void canParseLessThanOrEqualExpression() { + var source = "1 <= 2"; + + var node = parseString(source, Parser::parseTopLevelExpression); + + assertThat(node, isUntypedLessThanOrEqualNode( + isUntypedIntLiteralNode(1), + isUntypedIntLiteralNode(2) + )); + } +} -- cgit v1.2.3