summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-05-03 12:03:24 +0100
committerMichael Williamson <mike@zwobble.org>2026-05-03 12:03:24 +0100
commit93baba8070b505f24aa2d3382922c72564044f2b (patch)
tree478662df86e199d45f4aac5363fdb870c9591955 /src/main
parent3f8039bff09578fc3219503ca34a4d99833a7323 (diff)
Rename scalar type to native type
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java4
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/builtins/BuiltinTypes.java7
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/builtins/NativeTypes.java7
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java18
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerGlobalContext.java10
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceContext.java4
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/NativeType.java (renamed from src/main/java/org/zwobble/hobgoblin/compiler/types/ScalarType.java)2
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java2
8 files changed, 27 insertions, 27 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java b/src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java
index 873ecfd..7c2c6cc 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java
@@ -1,7 +1,7 @@
package org.zwobble.hobgoblin.compiler;
import org.zwobble.hobgoblin.compiler.ast.typed.TypedNamespaceNode;
-import org.zwobble.hobgoblin.compiler.builtins.BuiltinTypes;
+import org.zwobble.hobgoblin.compiler.builtins.NativeTypes;
import org.zwobble.hobgoblin.compiler.config.ProjectConfig;
import org.zwobble.hobgoblin.compiler.parser.Parser;
import org.zwobble.hobgoblin.compiler.typechecker.TypeChecker;
@@ -37,7 +37,7 @@ public class HobgoblinCompiler {
var untypedNamespaceNode = Parser.parseNamespace(sourceText, namespaceName);
var typeCheckerContext = TypeCheckerGlobalContext.initial();
- typeCheckerContext.addBuiltinScalarType(BuiltinTypes.INT_32);
+ typeCheckerContext.addNativeType(NativeTypes.INT_32);
var typedNamespaceNode = TypeChecker.typeCheckNamespace(untypedNamespaceNode, typeCheckerContext);
typedNamespaceNodes.add(typedNamespaceNode);
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/builtins/BuiltinTypes.java b/src/main/java/org/zwobble/hobgoblin/compiler/builtins/BuiltinTypes.java
deleted file mode 100644
index 9ed5fcf..0000000
--- a/src/main/java/org/zwobble/hobgoblin/compiler/builtins/BuiltinTypes.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.zwobble.hobgoblin.compiler.builtins;
-
-import org.zwobble.hobgoblin.compiler.types.ScalarType;
-
-public class BuiltinTypes {
- public static ScalarType INT_32 = new ScalarType("Int32");
-}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/builtins/NativeTypes.java b/src/main/java/org/zwobble/hobgoblin/compiler/builtins/NativeTypes.java
new file mode 100644
index 0000000..7a2f181
--- /dev/null
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/builtins/NativeTypes.java
@@ -0,0 +1,7 @@
+package org.zwobble.hobgoblin.compiler.builtins;
+
+import org.zwobble.hobgoblin.compiler.types.NativeType;
+
+public class NativeTypes {
+ public static NativeType INT_32 = new NativeType("Int32");
+}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java
index 8fa60a7..2f5c620 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java
@@ -4,7 +4,7 @@ import org.zwobble.hobgoblin.compiler.ast.typed.TypedNamespaceNode;
import org.zwobble.hobgoblin.compiler.ast.typed.TypedStructDefinitionNode;
import org.zwobble.hobgoblin.compiler.ast.typed.TypedSumDefinitionNode;
import org.zwobble.hobgoblin.compiler.ast.typed.TypedTypeLevelExpressionNode;
-import org.zwobble.hobgoblin.compiler.builtins.BuiltinTypes;
+import org.zwobble.hobgoblin.compiler.builtins.NativeTypes;
import org.zwobble.hobgoblin.compiler.config.OutputConfig;
import org.zwobble.hobgoblin.compiler.output.CodeWriter;
import org.zwobble.hobgoblin.compiler.output.generators.Generator;
@@ -132,20 +132,20 @@ public class JavaTypesGenerator implements Generator {
private JavaTypeRef generateTypeRef(Type type) {
return switch (type) {
- case StructType structType ->
- new JavaTypeRef(namespaceToJavaPackageParts(structType.namespaceName()), structType.name());
-
- case SumType sumType ->
- new JavaTypeRef(namespaceToJavaPackageParts(sumType.namespaceName()), sumType.name());
-
- case ScalarType scalarType -> {
- if (type.equals(BuiltinTypes.INT_32)) {
+ case NativeType nativeType -> {
+ if (type.equals(NativeTypes.INT_32)) {
yield new JavaTypeRef(List.of(), "int");
} else {
throw new UnsupportedOperationException("TODO");
}
}
+ case StructType structType ->
+ new JavaTypeRef(namespaceToJavaPackageParts(structType.namespaceName()), structType.name());
+
+ case SumType sumType ->
+ new JavaTypeRef(namespaceToJavaPackageParts(sumType.namespaceName()), sumType.name());
+
case TypeLevelValueType typeLevelValueType ->
throw new UnsupportedOperationException("TODO");
};
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerGlobalContext.java b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerGlobalContext.java
index 849da2f..e98afc0 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerGlobalContext.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerGlobalContext.java
@@ -1,7 +1,7 @@
package org.zwobble.hobgoblin.compiler.typechecker;
import org.zwobble.hobgoblin.compiler.types.NamespaceName;
-import org.zwobble.hobgoblin.compiler.types.ScalarType;
+import org.zwobble.hobgoblin.compiler.types.NativeType;
import org.zwobble.hobgoblin.compiler.types.Type;
import org.zwobble.hobgoblin.compiler.types.TypeLevelValueType;
@@ -9,7 +9,7 @@ import java.util.HashMap;
import java.util.Map;
public class TypeCheckerGlobalContext {
- private final Map<String, Type> builtins = new HashMap<>();
+ private final Map<String, Type> nativeTypes = new HashMap<>();
public static TypeCheckerGlobalContext initial() {
return new TypeCheckerGlobalContext();
@@ -18,11 +18,11 @@ public class TypeCheckerGlobalContext {
private TypeCheckerGlobalContext() {
}
- public void addBuiltinScalarType(ScalarType type) {
- this.builtins.put(type.name(), new TypeLevelValueType(type));
+ public void addNativeType(NativeType type) {
+ this.nativeTypes.put(type.name(), new TypeLevelValueType(type));
}
public TypeCheckerNamespaceContext enterNamespace(NamespaceName namespaceName) {
- return TypeCheckerNamespaceContext.initial(namespaceName, this.builtins);
+ return TypeCheckerNamespaceContext.initial(namespaceName, this.nativeTypes);
}
}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceContext.java b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceContext.java
index 353209b..b18267b 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceContext.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceContext.java
@@ -10,9 +10,9 @@ import java.util.stream.Collectors;
public class TypeCheckerNamespaceContext {
public static TypeCheckerNamespaceContext initial(
NamespaceName namespaceName,
- Map<String, Type> builtins
+ Map<String, Type> nativeTypes
) {
- var variables = builtins.entrySet().stream()
+ var variables = nativeTypes.entrySet().stream()
.collect(Collectors.toMap(
entry -> entry.getKey(),
entry -> Variable.defined(entry.getValue())
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/types/ScalarType.java b/src/main/java/org/zwobble/hobgoblin/compiler/types/NativeType.java
index 22032a1..2a45a1f 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/types/ScalarType.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/NativeType.java
@@ -1,6 +1,6 @@
package org.zwobble.hobgoblin.compiler.types;
-public record ScalarType(String name) implements Type {
+public record NativeType(String name) implements Type {
@Override
public String describe() {
return name;
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java b/src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java
index 4155d05..eeccb8b 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java
@@ -1,5 +1,5 @@
package org.zwobble.hobgoblin.compiler.types;
-public sealed interface Type extends TypeLevelValue permits ScalarType, StructType, SumType, TypeLevelValueType {
+public sealed interface Type extends TypeLevelValue permits NativeType, StructType, SumType, TypeLevelValueType {
String name();
}