diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-10-22 22:43:04 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-10-22 22:43:04 +0100 |
| commit | 732f95b8b9e66e1e7324f90ae1bb3e285b1b497f (patch) | |
| tree | b6c220c4b6df1593886ff080c93f6b7d5ba259c9 /src/main/java | |
| parent | 82d3887e90e255912c6f92e10d819d923c4f1940 (diff) | |
Add function to parse namespace name
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/parser/Parser.java | 14 |
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 -> |
