aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/shedlang/compiler/ShedCompiler.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-30 19:51:50 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-30 19:51:50 +0100
commit334782898b59817a00a3ee9b8031cd974178d1ec (patch)
treed5b731976eeab3c52f47cb47e857e31a8f2639f7 /src/main/java/org/shedlang/compiler/ShedCompiler.java
parent71c588ca231d275c5263b3e9ca5f7f57c4e048a1 (diff)
Define builtin modules outside of code gen
Diffstat (limited to 'src/main/java/org/shedlang/compiler/ShedCompiler.java')
-rw-r--r--src/main/java/org/shedlang/compiler/ShedCompiler.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main/java/org/shedlang/compiler/ShedCompiler.java b/src/main/java/org/shedlang/compiler/ShedCompiler.java
index 3aedc946..bf26436e 100644
--- a/src/main/java/org/shedlang/compiler/ShedCompiler.java
+++ b/src/main/java/org/shedlang/compiler/ShedCompiler.java
@@ -37,6 +37,14 @@ public class ShedCompiler {
var namespaces = new LinkedHashMap<NamespaceName, List<Instruction>>();
var typeCheckerContext = TypeCheckerContext.EMPTY
+ // TODO: remove duplication of builtin namespace definition
+ .addNamespaceFields(NamespaceName.of("Shed", "Builtins"), P.orderedMap(
+ Map.entry("print", new FunctionType(
+ List.of(Types.STRING),
+ List.of(),
+ Types.UNIT
+ ))
+ ))
.enter(P.map(
Map.entry("Io", Types.effectType(Effects.IO)),
Map.entry("Unit", Types.metaType(Types.UNIT)),