From 3f49a74a9d139b6f09e1515002d63ee0f5259e4d Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 12 Jun 2026 20:20:31 +0100 Subject: Add Int64 --- src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java | 1 + src/main/java/org/zwobble/hobgoblin/compiler/builtins/NativeTypes.java | 1 + .../hobgoblin/compiler/output/generators/java/JavaGeneratorConfig.java | 1 + .../org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java | 1 + 4 files changed, 4 insertions(+) (limited to 'src/main') diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java b/src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java index db757ce..8d28d7f 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java @@ -35,6 +35,7 @@ public class HobgoblinCompiler { var typeCheckerContext = TypeCheckerGlobalContext.initial(); typeCheckerContext.addNativeType(NativeTypes.INT_32); + typeCheckerContext.addNativeType(NativeTypes.INT_64); typeCheckerContext.addNativeType(NativeTypes.STRING); typeCheckerContext.addNativeTypeConstructor(NativeTypes.LIST); diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/builtins/NativeTypes.java b/src/main/java/org/zwobble/hobgoblin/compiler/builtins/NativeTypes.java index e3a665b..1ce8e0e 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/builtins/NativeTypes.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/builtins/NativeTypes.java @@ -8,6 +8,7 @@ import java.util.List; public class NativeTypes { public static SimpleNativeType INT_32 = SimpleNativeType.builtin("Int32"); + public static SimpleNativeType INT_64 = SimpleNativeType.builtin("Int64"); public static SimpleNativeType STRING = SimpleNativeType.builtin("String"); public static final SimpleNativeType LIST_INNER = SimpleNativeType.builtin("List"); diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/java/JavaGeneratorConfig.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/java/JavaGeneratorConfig.java index 742ded7..be2fa95 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/java/JavaGeneratorConfig.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/java/JavaGeneratorConfig.java @@ -70,6 +70,7 @@ public record JavaGeneratorConfig( private static final Map DEFAULT_NATIVE_TYPE_CONFIGS = Map.ofEntries( Map.entry(NativeTypes.INT_32, JavaNativeTypeConfig.primitive(JavaTypeRef.INT, JavaTypeRef.INT_BOXED, new JavaIntegerLiteral(0))), + Map.entry(NativeTypes.INT_64, JavaNativeTypeConfig.primitive(JavaTypeRef.LONG, JavaTypeRef.LONG_BOXED, new JavaIntegerLiteral(0))), Map.entry(NativeTypes.STRING, JavaNativeTypeConfig.of(JavaTypeRef.STRING, new JavaStringLiteral(""))), Map.entry(NativeTypes.LIST_INNER, JavaNativeTypeConfig.of(JavaTypeRef.LIST, new JavaStaticMethodCall(JavaTypeRef.LIST, "of", List.of()))) ); diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java index 8f4ea1b..d58d073 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java @@ -35,6 +35,7 @@ public record JavaTypeRef(List packageName, List typeNames, List public static final JavaTypeRef INT = primitive("int"); public static final JavaTypeRef INT_BOXED = topLevel(List.of("java", "lang"), "Integer"); public static final JavaTypeRef LONG = primitive("long"); + public static final JavaTypeRef LONG_BOXED = topLevel(List.of("java", "lang"), "Long"); public static final JavaTypeRef STRING = primitive("String"); public static final JavaTypeRef VOID = primitive("void"); -- cgit v1.2.3