diff options
Diffstat (limited to 'src/main/java/org')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java | 4 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/builtins/BuiltinTypes.java | 7 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/builtins/NativeTypes.java | 7 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java | 18 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerGlobalContext.java | 10 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceContext.java | 4 | ||||
| -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.java | 2 |
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(); } |
