diff options
6 files changed, 7 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java b/src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java index eb78e2a..0bd9192 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/HobgoblinCompiler.java @@ -44,6 +44,7 @@ public class HobgoblinCompiler { var typeCheckerContext = TypeCheckerGlobalContext.initial(); typeCheckerContext.addNativeType(NativeTypes.BOOL); + typeCheckerContext.addNativeType(NativeTypes.FLOAT_64); typeCheckerContext.addNativeType(NativeTypes.INT_8); typeCheckerContext.addNativeType(NativeTypes.INT_32); typeCheckerContext.addNativeType(NativeTypes.INT_64); 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 36748a7..21b27fd 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/builtins/NativeTypes.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/builtins/NativeTypes.java @@ -6,6 +6,7 @@ import java.util.List; public class NativeTypes { public static SimpleNativeType BOOL = SimpleNativeType.builtin("Bool"); + public static SimpleNativeType FLOAT_64 = SimpleNativeType.builtin("Float64"); public static SimpleNativeType INT_8 = SimpleNativeType.builtin("Int8"); public static SimpleNativeType INT_32 = SimpleNativeType.builtin("Int32"); public static SimpleNativeType INT_64 = SimpleNativeType.builtin("Int64"); 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 4a2d6f1..032f474 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 @@ -78,6 +78,7 @@ public record JavaGeneratorConfig( private static final Map<SimpleNativeType, JavaNativeTypeConfig> DEFAULT_NATIVE_TYPE_CONFIGS = Map.ofEntries( Map.entry(NativeTypes.BOOL, JavaNativeTypeConfig.primitive(JavaTypeRef.BOOLEAN, JavaTypeRef.BOOLEAN_BOXED, new JavaBooleanLiteral(false))), + Map.entry(NativeTypes.FLOAT_64, JavaNativeTypeConfig.primitive(JavaTypeRef.DOUBLE, JavaTypeRef.DOUBLE_BOXED, new JavaIntegerLiteral(0))), Map.entry( NativeTypes.INT_8, JavaNativeTypeConfig.primitive( diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rust/RustGeneratorConfig.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rust/RustGeneratorConfig.java index 4c64601..7ba66d1 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rust/RustGeneratorConfig.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rust/RustGeneratorConfig.java @@ -53,6 +53,7 @@ public record RustGeneratorConfig( private static final Map<SimpleNativeType, RustNativeTypeConfig> DEFAULT_NATIVE_TYPE_CONFIGS = Map.ofEntries( Map.entry(NativeTypes.BOOL, new RustNativeTypeConfig(RustTypes.BOOL)), + Map.entry(NativeTypes.FLOAT_64, new RustNativeTypeConfig(RustTypes.F64)), Map.entry(NativeTypes.INT_8, new RustNativeTypeConfig(RustTypes.I8)), Map.entry(NativeTypes.INT_32, new RustNativeTypeConfig(RustTypes.I32)), Map.entry(NativeTypes.INT_64, new RustNativeTypeConfig(RustTypes.I64)), 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 00a6c1d..779020f 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 @@ -76,6 +76,8 @@ public record JavaTypeRef( public static final JavaTypeRef BOOLEAN_BOXED = topLevel(JavaPackages.JAVA_LANG, JavaIdentifier.of("Boolean")); public static final JavaTypeRef BYTE = primitive("byte"); public static final JavaTypeRef BYTE_BOXED = topLevel(JavaPackages.JAVA_LANG, JavaIdentifier.of("Byte")); + public static final JavaTypeRef DOUBLE = primitive("double"); + public static final JavaTypeRef DOUBLE_BOXED = topLevel(JavaPackages.JAVA_LANG, JavaIdentifier.of("Double")); public static final JavaTypeRef INT = primitive("int"); public static final JavaTypeRef INT_BOXED = topLevel(JavaPackages.JAVA_LANG, JavaIdentifier.of("Integer")); public static final JavaTypeRef LONG = primitive("long"); diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java index b3d65d4..e7cd5ac 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java @@ -13,6 +13,7 @@ public class RustTypes { } public static RustPath BOOL = RustPath.primitive("bool"); + public static RustPath F64 = RustPath.primitive("f64"); public static RustPath I8 = RustPath.primitive("i8"); public static RustPath I32 = RustPath.primitive("i32"); public static RustPath I64 = RustPath.primitive("i64"); |
