aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-11-02 23:22:05 +0000
committerMichael Williamson <mike@zwobble.org>2023-11-02 23:22:05 +0000
commit72779bc8003f07742a94f34853f2be94004a61ee (patch)
treef951c9af6b6a3f237e070a8cfa9e5b5c053b8f67 /src/test/java
parenta3fc3f4b0c552443f85766fe3e057a9fcbca8cec (diff)
Parse unit literals
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java4
-rw-r--r--src/test/java/org/shedlang/compiler/parser/ParserUnitLiteralTests.java19
2 files changed, 23 insertions, 0 deletions
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 8eb92ebb..ea21a693 100644
--- a/src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java
+++ b/src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java
@@ -349,6 +349,10 @@ public class UntypedNodeMatchers {
);
}
+ public static Matcher<UntypedExpressionNode> isUntypedUnitLiteralNode() {
+ return instanceOf(UntypedUnitLiteralNode.class);
+ }
+
public static Matcher<UntypedExpressionNode> isUntypedWhenNode(
Matcher<UntypedExpressionNode> expression,
Matcher<Iterable<? extends UntypedWhenCaseNode>> cases
diff --git a/src/test/java/org/shedlang/compiler/parser/ParserUnitLiteralTests.java b/src/test/java/org/shedlang/compiler/parser/ParserUnitLiteralTests.java
new file mode 100644
index 00000000..08fcfcc7
--- /dev/null
+++ b/src/test/java/org/shedlang/compiler/parser/ParserUnitLiteralTests.java
@@ -0,0 +1,19 @@
+package org.shedlang.compiler.parser;
+
+import org.junit.jupiter.api.Test;
+
+import static org.shedlang.compiler.ast.untyped.UntypedNodeMatchers.isUntypedUnitLiteralNode;
+import static org.shedlang.compiler.parser.ParserTesting.parseString;
+import static org.zwobble.precisely.AssertThat.assertThat;
+
+public class ParserUnitLiteralTests {
+ @Test
+ public void canParseUnitLiteral() {
+ var source = "unit";
+
+ var node = parseString(source, Parser::parseTopLevelExpression);
+
+ assertThat(node, isUntypedUnitLiteralNode());
+ }
+
+}