aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-07 19:27:16 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-07 19:27:16 +0100
commitea029c89aff87d3d4b352a495d06b1fe67ec4432 (patch)
tree2fd7c63b29b2050f5d7fd8fc386ec7bb4837e3b1 /src/test/java
parent3cb64a2536dabcb89f449e81fa5453e528ecd446 (diff)
Add parser for type level references
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/ast/UntypedNodeMatchers.java7
-rw-r--r--src/test/java/org/shedlang/compiler/parser/ParserTypeLevelReferenceTests.java18
2 files changed, 25 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/ast/UntypedNodeMatchers.java b/src/test/java/org/shedlang/compiler/ast/UntypedNodeMatchers.java
index 3925ec80..bf98f5bc 100644
--- a/src/test/java/org/shedlang/compiler/ast/UntypedNodeMatchers.java
+++ b/src/test/java/org/shedlang/compiler/ast/UntypedNodeMatchers.java
@@ -39,4 +39,11 @@ public class UntypedNodeMatchers {
has("value", x -> x.value(), equalTo(value))
);
}
+
+ public static Matcher<UntypedTypeLevelExpressionNode> isUntypedTypeLevelReferenceNode(String name) {
+ return instanceOf(
+ UntypedTypeLevelReferenceNode.class,
+ has("name", x -> x.name(), equalTo(name))
+ );
+ }
}
diff --git a/src/test/java/org/shedlang/compiler/parser/ParserTypeLevelReferenceTests.java b/src/test/java/org/shedlang/compiler/parser/ParserTypeLevelReferenceTests.java
new file mode 100644
index 00000000..9e72ee25
--- /dev/null
+++ b/src/test/java/org/shedlang/compiler/parser/ParserTypeLevelReferenceTests.java
@@ -0,0 +1,18 @@
+package org.shedlang.compiler.parser;
+
+import org.junit.jupiter.api.Test;
+
+import static org.shedlang.compiler.ast.UntypedNodeMatchers.isUntypedTypeLevelReferenceNode;
+import static org.shedlang.compiler.parser.ParserTesting.parseString;
+import static org.zwobble.precisely.AssertThat.assertThat;
+
+public class ParserTypeLevelReferenceTests {
+ @Test
+ public void canParseIdentifierAsReference() {
+ var source = "Value";
+
+ var node = parseString(source, Parser::parseTopLevelTypeLevelExpression);
+
+ assertThat(node, isUntypedTypeLevelReferenceNode("Value"));
+ }
+}