From b0e03bc70a258b2d6cb39817e21c1d5920759ddf Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 23 Dec 2024 15:25:27 +0000 Subject: Change StringParser to SourceParser --- .../org/shedlang/compiler/config/BinConfig.java | 5 ++-- .../org/shedlang/compiler/parser/SourceParser.java | 28 +++++++++++++++++++++ .../org/shedlang/compiler/parser/StringParser.java | 29 ---------------------- 3 files changed, 31 insertions(+), 31 deletions(-) create mode 100644 src/main/java/org/shedlang/compiler/parser/SourceParser.java delete mode 100644 src/main/java/org/shedlang/compiler/parser/StringParser.java (limited to 'src/main/java') 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/SourceParser.java b/src/main/java/org/shedlang/compiler/parser/SourceParser.java new file mode 100644 index 00000000..19be58d4 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/parser/SourceParser.java @@ -0,0 +1,28 @@ +package org.shedlang.compiler.parser; + +import org.shedlang.compiler.sources.Source; +import org.shedlang.compiler.tokeniser.TokenIterator; +import org.shedlang.compiler.types.NamespaceName; + +import java.util.function.Function; + +import static org.shedlang.compiler.parser.Tokeniser.tokenise; + +public class SourceParser { + private SourceParser() { + } + + public static NamespaceName parseNamespaceName(Source source) { + return parseSource(source, tokens -> Parser.parseNamespaceName(tokens)); + } + + private static T parseSource( + Source source, + Function, T> parseTokens + ) { + var tokens = tokenise(source); + var result = parseTokens.apply(tokens); + tokens.skip(TokenType.END); + return result; + } +} diff --git a/src/main/java/org/shedlang/compiler/parser/StringParser.java b/src/main/java/org/shedlang/compiler/parser/StringParser.java deleted file mode 100644 index 37a85667..00000000 --- a/src/main/java/org/shedlang/compiler/parser/StringParser.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.shedlang.compiler.parser; - -import org.shedlang.compiler.sources.Sources; -import org.shedlang.compiler.tokeniser.TokenIterator; -import org.shedlang.compiler.types.NamespaceName; - -import java.util.function.Function; - -import static org.shedlang.compiler.parser.Tokeniser.tokenise; - -public class StringParser { - private StringParser() { - } - - public static NamespaceName parseNamespaceName(String value) { - return parseString(value, tokens -> Parser.parseNamespaceName(tokens)); - } - - private static T parseString( - String sourceContents, - Function, T> parseTokens - ) { - var source = Sources.file("", sourceContents); - var tokens = tokenise(source); - var result = parseTokens.apply(tokens); - tokens.skip(TokenType.END); - return result; - } -} -- cgit v1.2.3