diff options
| author | Michael Williamson <mike@zwobble.org> | 2025-01-12 17:31:24 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2025-01-12 17:31:24 +0000 |
| commit | e8bdea44688c37cc1ef983714514b933e66ab944 (patch) | |
| tree | 24cf7bd53b114b64b01abf4876508dadd48db400 /src/main/java/org/shedlang/compiler/SourceFiles.java | |
| parent | 50730c7784ee742c8c148d4d5b07c4ea312a8e58 (diff) | |
Check that namespace part is identifier
Diffstat (limited to 'src/main/java/org/shedlang/compiler/SourceFiles.java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/SourceFiles.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/main/java/org/shedlang/compiler/SourceFiles.java b/src/main/java/org/shedlang/compiler/SourceFiles.java index 451c52fa..38c3ade3 100644 --- a/src/main/java/org/shedlang/compiler/SourceFiles.java +++ b/src/main/java/org/shedlang/compiler/SourceFiles.java @@ -1,6 +1,9 @@ package org.shedlang.compiler; +import org.shedlang.compiler.parser.TokenType; +import org.shedlang.compiler.parser.Tokeniser; import org.shedlang.compiler.types.NamespaceName; +import org.zwobble.sourcetext.SourceText; import java.io.IOException; import java.nio.file.FileVisitResult; @@ -67,8 +70,11 @@ public class SourceFiles { namespaceNameParts.add(fileName.substring(0, fileName.length() - shedSuffix.length())); for (var part : namespaceNameParts) { - if (part.contains(".")) { - // TODO: parse namespace part + var tokens = Tokeniser.tokenise(SourceText.fromString("<string>", part)); + if (!( + tokens.peek().tokenType() == TokenType.IDENTIFIER && + tokens.peek(1).tokenType() == TokenType.END + )) { return Optional.empty(); } } |
