aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-10-22 22:43:04 +0100
committerMichael Williamson <mike@zwobble.org>2023-10-22 22:43:04 +0100
commit732f95b8b9e66e1e7324f90ae1bb3e285b1b497f (patch)
treeb6c220c4b6df1593886ff080c93f6b7d5ba259c9 /src/main/java
parent82d3887e90e255912c6f92e10d819d923c4f1940 (diff)
Add function to parse namespace name
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/parser/Parser.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/main/java/org/shedlang/compiler/parser/Parser.java b/src/main/java/org/shedlang/compiler/parser/Parser.java
index fcc92d99..9a108e9b 100644
--- a/src/main/java/org/shedlang/compiler/parser/Parser.java
+++ b/src/main/java/org/shedlang/compiler/parser/Parser.java
@@ -457,11 +457,7 @@ public class Parser {
tokens.skip(TokenType.KEYWORD_IMPORT);
- var namespaceNameParts = parseOneOrMoreNoTrailingSeparator(
- () -> tokens.nextValue(TokenType.IDENTIFIER),
- () -> tokens.trySkip(TokenType.SYMBOL_FORWARD_SLASH)
- );
- var namespaceName = new NamespaceName(namespaceNameParts);
+ var namespaceName = parseNamespaceName(tokens);
tokens.skip(TokenType.SYMBOL_SEMICOLON);
@@ -536,6 +532,14 @@ public class Parser {
}
}
+ public static NamespaceName parseNamespaceName(TokenIterator<TokenType> tokens) {
+ var namespaceNameParts = parseOneOrMoreNoTrailingSeparator(
+ () -> tokens.nextValue(TokenType.IDENTIFIER),
+ () -> tokens.trySkip(TokenType.SYMBOL_FORWARD_SLASH)
+ );
+ return new NamespaceName(namespaceNameParts);
+ }
+
static UntypedNamespaceStatementNode parseNamespaceStatement(TokenIterator<TokenType> tokens) {
return switch (tokens.peek().tokenType()) {
case KEYWORD_FUN ->