diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-07-21 16:16:19 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-07-21 16:16:19 +0100 |
| commit | f12f949dda91f596c8ec401375e48cef584218c2 (patch) | |
| tree | 9ebd7000309764bfb7bd91ba008d4661d4bd31c1 /src/main/java/org/shedlang/compiler/ShedCompiler.java | |
| parent | 8a0d86df0f63e69f4bd6c5699411caddfb4c72f8 (diff) | |
Introduce type for Stack IR namespaces
Diffstat (limited to 'src/main/java/org/shedlang/compiler/ShedCompiler.java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/ShedCompiler.java | 13 |
1 files changed, 8 insertions, 5 deletions
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<NamespaceName, List<Instruction>>(); + var namespaces = new ArrayList<StackIrNamespace>(); 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())); |
