From f12f949dda91f596c8ec401375e48cef584218c2 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 21 Jul 2023 16:16:19 +0100 Subject: Introduce type for Stack IR namespaces --- src/main/java/org/shedlang/compiler/ShedCompiler.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/main/java/org/shedlang/compiler/ShedCompiler.java') diff --git a/src/main/java/org/shedlang/compiler/ShedCompiler.java b/src/main/java/org/shedlang/compiler/ShedCompiler.java index 9b030916..45411d3c 100644 --- a/src/main/java/org/shedlang/compiler/ShedCompiler.java +++ b/src/main/java/org/shedlang/compiler/ShedCompiler.java @@ -5,7 +5,7 @@ import org.shedlang.compiler.config.ProjectConfig; import org.shedlang.compiler.parser.Parser; import org.shedlang.compiler.sources.Sources; import org.shedlang.compiler.stackir.StackCompiler; -import org.shedlang.compiler.stackir.instructions.Instruction; +import org.shedlang.compiler.stackir.StackIrNamespace; import org.shedlang.compiler.typechecker.TypeChecker; import org.shedlang.compiler.typechecker.TypeCheckerContext; import org.shedlang.compiler.types.Effects; @@ -20,7 +20,10 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Map; import java.util.stream.StreamSupport; import static org.shedlang.compiler.parser.Tokeniser.tokenise; @@ -33,7 +36,7 @@ public class ShedCompiler { var sourceFilePaths = collectSourceFilePaths(sourceRoot); - var namespaces = new LinkedHashMap>(); + var namespaces = new ArrayList(); var typeCheckerContext = TypeCheckerContext.EMPTY .addNamespaceFields(ShedBuiltins.NAMESPACE_NAME, P.orderedMap( @@ -67,8 +70,8 @@ public class ShedCompiler { var typeCheckNamespaceResult = TypeChecker.typeCheckNamespace(untypedNode, typeCheckerContext); typeCheckerContext = typeCheckNamespaceResult.context(); - var instructions = StackCompiler.compileNamespace(typeCheckNamespaceResult.value()); - namespaces.put(namespaceName, instructions); + var stackIrNamespace = StackCompiler.compileNamespace(typeCheckNamespaceResult.value()); + namespaces.add(stackIrNamespace); } backend.compile(config, namespaces, typeCheckerContext.toTypeInfo(), config.targetDir().resolve(backend.name())); -- cgit v1.2.3