aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-12-23 15:25:27 +0000
committerMichael Williamson <mike@zwobble.org>2024-12-23 15:25:27 +0000
commitb0e03bc70a258b2d6cb39817e21c1d5920759ddf (patch)
tree302e4d3e215f5b81682a58c2c8c6956e436d85b0 /src/main/java
parent6fe101335edb2b8596bc57d4744d264e7cfbc44f (diff)
Change StringParser to SourceParser
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/config/BinConfig.java5
-rw-r--r--src/main/java/org/shedlang/compiler/parser/SourceParser.java (renamed from src/main/java/org/shedlang/compiler/parser/StringParser.java)15
2 files changed, 10 insertions, 10 deletions
diff --git a/src/main/java/org/shedlang/compiler/config/BinConfig.java b/src/main/java/org/shedlang/compiler/config/BinConfig.java
index 382cffc2..f6f8918e 100644
--- a/src/main/java/org/shedlang/compiler/config/BinConfig.java
+++ b/src/main/java/org/shedlang/compiler/config/BinConfig.java
@@ -1,7 +1,8 @@
package org.shedlang.compiler.config;
import org.shedlang.compiler.config.toml.TomlTableWithSource;
-import org.shedlang.compiler.parser.StringParser;
+import org.shedlang.compiler.parser.SourceParser;
+import org.shedlang.compiler.sources.Sources;
import org.shedlang.compiler.types.NamespaceName;
public record BinConfig(String name, NamespaceName mainNamespace) {
@@ -10,7 +11,7 @@ public record BinConfig(String name, NamespaceName mainNamespace) {
var mainNamespaceString = table.getString("main-namespace");
// TODO: error checking
- var mainNamespace = StringParser.parseNamespaceName(mainNamespaceString);
+ var mainNamespace = SourceParser.parseNamespaceName(Sources.string(mainNamespaceString));
return new BinConfig(name, mainNamespace);
}
diff --git a/src/main/java/org/shedlang/compiler/parser/StringParser.java b/src/main/java/org/shedlang/compiler/parser/SourceParser.java
index 37a85667..19be58d4 100644
--- a/src/main/java/org/shedlang/compiler/parser/StringParser.java
+++ b/src/main/java/org/shedlang/compiler/parser/SourceParser.java
@@ -1,6 +1,6 @@
package org.shedlang.compiler.parser;
-import org.shedlang.compiler.sources.Sources;
+import org.shedlang.compiler.sources.Source;
import org.shedlang.compiler.tokeniser.TokenIterator;
import org.shedlang.compiler.types.NamespaceName;
@@ -8,19 +8,18 @@ import java.util.function.Function;
import static org.shedlang.compiler.parser.Tokeniser.tokenise;
-public class StringParser {
- private StringParser() {
+public class SourceParser {
+ private SourceParser() {
}
- public static NamespaceName parseNamespaceName(String value) {
- return parseString(value, tokens -> Parser.parseNamespaceName(tokens));
+ public static NamespaceName parseNamespaceName(Source source) {
+ return parseSource(source, tokens -> Parser.parseNamespaceName(tokens));
}
- private static <T> T parseString(
- String sourceContents,
+ private static <T> T parseSource(
+ Source source,
Function<TokenIterator<TokenType>, T> parseTokens
) {
- var source = Sources.file("<string>", sourceContents);
var tokens = tokenise(source);
var result = parseTokens.apply(tokens);
tokens.skip(TokenType.END);