From f37915a2907d090b10fb5a323211cf858bb8f2bf Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 20 Jul 2023 16:55:12 +0100 Subject: Add Patio void type --- src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java | 3 +++ src/main/java/org/shedlang/compiler/patio/ast/types/PatioType.java | 2 +- src/main/java/org/shedlang/compiler/patio/ast/types/PatioTypes.java | 1 + .../java/org/shedlang/compiler/patio/ast/types/PatioVoidType.java | 5 +++++ 4 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/shedlang/compiler/patio/ast/types/PatioVoidType.java (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java b/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java index 6059101e..4182b918 100644 --- a/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java +++ b/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java @@ -206,6 +206,9 @@ public class PatioSerializer { case PatioIntType intType -> treeIdentifier("int"); + + case PatioVoidType voidType -> + treeIdentifier("void"); }; } diff --git a/src/main/java/org/shedlang/compiler/patio/ast/types/PatioType.java b/src/main/java/org/shedlang/compiler/patio/ast/types/PatioType.java index 37b7ec4c..69b07faf 100644 --- a/src/main/java/org/shedlang/compiler/patio/ast/types/PatioType.java +++ b/src/main/java/org/shedlang/compiler/patio/ast/types/PatioType.java @@ -1,4 +1,4 @@ package org.shedlang.compiler.patio.ast.types; -public sealed interface PatioType permits PatioDataPointerType, PatioFunctionPointerType, PatioIntType { +public sealed interface PatioType permits PatioDataPointerType, PatioFunctionPointerType, PatioIntType, PatioVoidType { } diff --git a/src/main/java/org/shedlang/compiler/patio/ast/types/PatioTypes.java b/src/main/java/org/shedlang/compiler/patio/ast/types/PatioTypes.java index 7059715d..95e07fbf 100644 --- a/src/main/java/org/shedlang/compiler/patio/ast/types/PatioTypes.java +++ b/src/main/java/org/shedlang/compiler/patio/ast/types/PatioTypes.java @@ -9,6 +9,7 @@ public class PatioTypes { public static final PatioDataPointerType DATA_POINTER = PatioDataPointerType.INSTANCE; public static final PatioFunctionPointerType FUNCTION_POINTER = PatioFunctionPointerType.INSTANCE; public static final PatioIntType INT = PatioIntType.INSTANCE; + public static final PatioVoidType VOID = PatioVoidType.INSTANCE; public static PatioDataLayout scalar(PatioType type) { return new PatioScalar(type); diff --git a/src/main/java/org/shedlang/compiler/patio/ast/types/PatioVoidType.java b/src/main/java/org/shedlang/compiler/patio/ast/types/PatioVoidType.java new file mode 100644 index 00000000..359f17e3 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/patio/ast/types/PatioVoidType.java @@ -0,0 +1,5 @@ +package org.shedlang.compiler.patio.ast.types; + +public record PatioVoidType() implements PatioType { + public static final PatioVoidType INSTANCE = new PatioVoidType(); +} -- cgit v1.2.3