aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-22 11:04:23 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-22 11:04:23 +0100
commit8f92d8d255989dbb093cc91d67b801cf7ee038ba (patch)
treeb21debbb2a239b5b0ba2edfb66b1d219131357ff /src/main/java
parent5a0f2590a6b9c20b7ba47375ebff6ebc1eef5973 (diff)
Add int as Patio data value
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java6
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValue.java2
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValueInt.java4
-rw-r--r--src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValues.java4
4 files changed, 15 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 095d2d3d..3bf96507 100644
--- a/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java
+++ b/src/main/java/org/shedlang/compiler/patio/ast/PatioSerializer.java
@@ -334,6 +334,12 @@ public class PatioSerializer {
treeIdentifier("byte"),
treeIdentifier(String.format("0x%02x", byte_.value()))
);
+
+ case PatioDataValueInt int_ ->
+ treeList(
+ treeIdentifier("int"),
+ treeIdentifier(Integer.toString(int_.value()))
+ );
};
}
diff --git a/src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValue.java b/src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValue.java
index e2b9c7a9..4f7a7f14 100644
--- a/src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValue.java
+++ b/src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValue.java
@@ -1,4 +1,4 @@
package org.shedlang.compiler.patio.ast.types;
-public sealed interface PatioDataValue permits PatioDataValueArray, PatioDataValueByte {
+public sealed interface PatioDataValue permits PatioDataValueArray, PatioDataValueByte, PatioDataValueInt {
}
diff --git a/src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValueInt.java b/src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValueInt.java
new file mode 100644
index 00000000..db53a7a7
--- /dev/null
+++ b/src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValueInt.java
@@ -0,0 +1,4 @@
+package org.shedlang.compiler.patio.ast.types;
+
+public record PatioDataValueInt(int value) implements PatioDataValue {
+}
diff --git a/src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValues.java b/src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValues.java
index ad011ef5..3eac715a 100644
--- a/src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValues.java
+++ b/src/main/java/org/shedlang/compiler/patio/ast/types/PatioDataValues.java
@@ -12,4 +12,8 @@ public class PatioDataValues {
public static PatioDataValue byte_(int value) {
return new PatioDataValueByte((byte) value);
}
+
+ public static PatioDataValue int_(int value) {
+ return new PatioDataValueInt(value);
+ }
}