aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-20 16:55:12 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-20 16:55:12 +0100
commitf37915a2907d090b10fb5a323211cf858bb8f2bf (patch)
treead0ce833288a9b91f925e4ef5d0d8b5d460c70d0 /src/main/java
parent1bf46b8978d87e40012da86af60545e0c37dfb79 (diff)
Add Patio void type
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java3
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/types/PatioType.java2
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/types/PatioTypes.java1
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/types/PatioVoidType.java5
4 files changed, 10 insertions, 1 deletions
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();
+}