diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-10-20 17:51:33 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-10-20 17:51:33 +0100 |
| commit | c57ca9e4d30e07d2ff0ba2f113e905a3c3794c75 (patch) | |
| tree | 0ad284e2ac442edd68aa32e171f84a1dcfc2ec8c /src/test/java/org/shedlang/compiler/parser | |
| parent | d2df851ca20b0ec02cb3450c861288d65d45f165 (diff) | |
Parse imports in namespace
Diffstat (limited to 'src/test/java/org/shedlang/compiler/parser')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/parser/ParserNamespaceTests.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/parser/ParserNamespaceTests.java b/src/test/java/org/shedlang/compiler/parser/ParserNamespaceTests.java index 9c14e5b4..4f0b81be 100644 --- a/src/test/java/org/shedlang/compiler/parser/ParserNamespaceTests.java +++ b/src/test/java/org/shedlang/compiler/parser/ParserNamespaceTests.java @@ -5,6 +5,7 @@ import org.shedlang.compiler.ast.untyped.UntypedNamespaceNode; import org.shedlang.compiler.types.NamespaceName; import static org.shedlang.compiler.ast.untyped.UntypedNodeMatchers.isUntypedFunctionDefinitionNode; +import static org.shedlang.compiler.ast.untyped.UntypedNodeMatchers.isUntypedImportNode; import static org.shedlang.compiler.parser.ParserTesting.parseString; import static org.zwobble.precisely.AssertThat.assertThat; import static org.zwobble.precisely.Matchers.*; @@ -49,4 +50,24 @@ public class ParserNamespaceTests { )) )); } + + @Test + public void canParseNamespaceWithImports() { + var source = """ + import One; + import Two/Three;"""; + + var node = parseString( + source, + tokens -> Parser.parseNamespace(tokens, NamespaceName.of("Example", "Project")) + ); + + assertThat(node, instanceOf( + UntypedNamespaceNode.class, + has("imports", x -> x.imports(), isSequence( + isUntypedImportNode(NamespaceName.of("One")), + isUntypedImportNode(NamespaceName.of("Two", "Three")) + )) + )); + } } |
