diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-07-31 14:45:04 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-07-31 15:22:40 +0100 |
| commit | 91860485774924e82da9b0774179d4c3c8da810a (patch) | |
| tree | e06f52f147502e80aea139c20adac706479cb7ea /src/transient-0/java/org | |
| parent | 410fff7b7ecf6f36a0a46ab1d90553169e3728f1 (diff) | |
Use transient-0 instead of flatbuffersmain
Diffstat (limited to 'src/transient-0/java/org')
9 files changed, 1927 insertions, 0 deletions
diff --git a/src/transient-0/java/org/shedlang/compiler/patio/instructions/transient0/HobgoblinTransient0Instructions.java b/src/transient-0/java/org/shedlang/compiler/patio/instructions/transient0/HobgoblinTransient0Instructions.java new file mode 100644 index 00000000..bf74f430 --- /dev/null +++ b/src/transient-0/java/org/shedlang/compiler/patio/instructions/transient0/HobgoblinTransient0Instructions.java @@ -0,0 +1,712 @@ +// Generated by hobgoblin. + +package org.shedlang.compiler.patio.instructions.transient0; + +// Custom area start: org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions imports +// Custom area end: org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions imports + +public final class HobgoblinTransient0Instructions { + public static void encodePatioInstruction(org.shedlang.compiler.patio.instructions.PatioInstruction value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + switch (value) { + case org.shedlang.compiler.patio.instructions.PatioBlock value$0 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(0, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioBlock(value$0, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioBoolToInt value$1 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(1, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioBoolToInt(value$1, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioCall value$2 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(2, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioCall(value$2, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioCallPointer value$3 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(3, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioCallPointer(value$3, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioDataPtrToInt value$4 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(4, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioDataPtrToInt(value$4, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioIf value$5 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(5, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioIf(value$5, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioIntAdd value$6 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(6, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioIntAdd(value$6, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioIntEquals value$7 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(7, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioIntEquals(value$7, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioIntNotEqual value$8 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(8, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioIntNotEqual(value$8, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioIntSub value$9 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(9, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioIntSub(value$9, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioIntToBool value$10 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(10, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioIntToBool(value$10, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioIntToDataPtr value$11 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(11, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioIntToDataPtr(value$11, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioLocalStore value$12 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(12, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioLocalStore(value$12, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioLoop value$13 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(13, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioLoop(value$13, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioLoopBreak value$14 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(14, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioLoopBreak(value$14, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioLoopContinue value$15 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(15, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioLoopContinue(value$15, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioMemoryLoad value$16 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(16, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioMemoryLoad(value$16, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioMemoryStore value$17 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(17, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioMemoryStore(value$17, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioReturn value$18 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(18, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioReturn(value$18, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioSwitch value$19 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(19, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioSwitch(value$19, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioThrow value$20 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(20, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioThrow(value$20, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioTry value$21 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(21, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioTry(value$21, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioUnreachable value$22 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(22, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioUnreachable(value$22, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioVarLoad value$23 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(23, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioVarLoad(value$23, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.instructions.PatioVarStore value$24 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(24, outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioVarStore(value$24, outputStream, sharedValues); + } + } + } + + public static org.shedlang.compiler.patio.instructions.PatioInstruction decodePatioInstruction(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var variantTag = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + switch (variantTag) { + case 0 -> { + var value$0 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioBlock(inputStream, sharedValues); + return value$0; + } + case 1 -> { + var value$1 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioBoolToInt(inputStream, sharedValues); + return value$1; + } + case 2 -> { + var value$2 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioCall(inputStream, sharedValues); + return value$2; + } + case 3 -> { + var value$3 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioCallPointer(inputStream, sharedValues); + return value$3; + } + case 4 -> { + var value$4 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioDataPtrToInt(inputStream, sharedValues); + return value$4; + } + case 5 -> { + var value$5 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioIf(inputStream, sharedValues); + return value$5; + } + case 6 -> { + var value$6 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioIntAdd(inputStream, sharedValues); + return value$6; + } + case 7 -> { + var value$7 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioIntEquals(inputStream, sharedValues); + return value$7; + } + case 8 -> { + var value$8 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioIntNotEqual(inputStream, sharedValues); + return value$8; + } + case 9 -> { + var value$9 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioIntSub(inputStream, sharedValues); + return value$9; + } + case 10 -> { + var value$10 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioIntToBool(inputStream, sharedValues); + return value$10; + } + case 11 -> { + var value$11 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioIntToDataPtr(inputStream, sharedValues); + return value$11; + } + case 12 -> { + var value$12 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioLocalStore(inputStream, sharedValues); + return value$12; + } + case 13 -> { + var value$13 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioLoop(inputStream, sharedValues); + return value$13; + } + case 14 -> { + var value$14 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioLoopBreak(inputStream, sharedValues); + return value$14; + } + case 15 -> { + var value$15 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioLoopContinue(inputStream, sharedValues); + return value$15; + } + case 16 -> { + var value$16 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioMemoryLoad(inputStream, sharedValues); + return value$16; + } + case 17 -> { + var value$17 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioMemoryStore(inputStream, sharedValues); + return value$17; + } + case 18 -> { + var value$18 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioReturn(inputStream, sharedValues); + return value$18; + } + case 19 -> { + var value$19 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioSwitch(inputStream, sharedValues); + return value$19; + } + case 20 -> { + var value$20 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioThrow(inputStream, sharedValues); + return value$20; + } + case 21 -> { + var value$21 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioTry(inputStream, sharedValues); + return value$21; + } + case 22 -> { + var value$22 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioUnreachable(inputStream, sharedValues); + return value$22; + } + case 23 -> { + var value$23 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioVarLoad(inputStream, sharedValues); + return value$23; + } + case 24 -> { + var value$24 = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioVarStore(inputStream, sharedValues); + return value$24; + } + default -> { + throw new java.lang.RuntimeException("unexpected patio/instructions.PatioInstruction variant tag: " + variantTag); + } + } + } + + public static void encodePatioBlock(org.shedlang.compiler.patio.instructions.PatioBlock value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.body().size(), outputStream, sharedValues); + for (var element : value.body()) { + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioInstruction(element, outputStream, sharedValues); + } + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.results().size(), outputStream, sharedValues); + for (var element : value.results()) { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(element, outputStream, sharedValues); + } + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioBlock decodePatioBlock(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var body$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var body = new java.util.ArrayList<org.shedlang.compiler.patio.instructions.PatioInstruction>((int) body$size); + for (long body$index = 0; body$index < body$size; body$index++) { + var body$element = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioInstruction(inputStream, sharedValues); + body.add(body$element); + } + var results$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var results = new java.util.ArrayList<org.shedlang.compiler.patio.operands.PatioOperand>((int) results$size); + for (long results$index = 0; results$index < results$size; results$index++) { + var results$element = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + results.add(results$element); + } + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioBlock(body, results, source); + } + + public static void encodePatioBoolToInt(org.shedlang.compiler.patio.instructions.PatioBoolToInt value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.destination(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.value(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioBoolToInt decodePatioBoolToInt(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destination = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var value = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioBoolToInt(destination, value, source); + } + + public static void encodePatioCall(org.shedlang.compiler.patio.instructions.PatioCall value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.destinations().size(), outputStream, sharedValues); + for (var element : value.destinations()) { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(element, outputStream, sharedValues); + } + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.functionName(), outputStream, sharedValues); + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.args().size(), outputStream, sharedValues); + for (var element : value.args()) { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(element, outputStream, sharedValues); + } + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioCall decodePatioCall(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destinations$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var destinations = new java.util.ArrayList<org.shedlang.compiler.patio.operands.PatioLocalRef>((int) destinations$size); + for (long destinations$index = 0; destinations$index < destinations$size; destinations$index++) { + var destinations$element = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + destinations.add(destinations$element); + } + var functionName = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + var args$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var args = new java.util.ArrayList<org.shedlang.compiler.patio.operands.PatioOperand>((int) args$size); + for (long args$index = 0; args$index < args$size; args$index++) { + var args$element = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + args.add(args$element); + } + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioCall(destinations, functionName, args, source); + } + + public static void encodePatioCallPointer(org.shedlang.compiler.patio.instructions.PatioCallPointer value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.destinations().size(), outputStream, sharedValues); + for (var element : value.destinations()) { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(element, outputStream, sharedValues); + } + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.functionPointer(), outputStream, sharedValues); + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.args().size(), outputStream, sharedValues); + for (var element : value.args()) { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(element, outputStream, sharedValues); + } + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioCallPointer decodePatioCallPointer(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destinations$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var destinations = new java.util.ArrayList<org.shedlang.compiler.patio.operands.PatioLocalRef>((int) destinations$size); + for (long destinations$index = 0; destinations$index < destinations$size; destinations$index++) { + var destinations$element = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + destinations.add(destinations$element); + } + var functionPointer = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var args$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var args = new java.util.ArrayList<org.shedlang.compiler.patio.operands.PatioOperand>((int) args$size); + for (long args$index = 0; args$index < args$size; args$index++) { + var args$element = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + args.add(args$element); + } + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioCallPointer(destinations, functionPointer, args, source); + } + + public static void encodePatioDataPtrToInt(org.shedlang.compiler.patio.instructions.PatioDataPtrToInt value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.destination(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.value(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioDataPtrToInt decodePatioDataPtrToInt(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destination = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var value = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioDataPtrToInt(destination, value, source); + } + + public static void encodePatioIf(org.shedlang.compiler.patio.instructions.PatioIf value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.destinations().size(), outputStream, sharedValues); + for (var element : value.destinations()) { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(element, outputStream, sharedValues); + } + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.condition(), outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioBlock(value.trueBody(), outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioBlock(value.falseBody(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioIf decodePatioIf(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destinations$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var destinations = new java.util.ArrayList<org.shedlang.compiler.patio.operands.PatioLocalRef>((int) destinations$size); + for (long destinations$index = 0; destinations$index < destinations$size; destinations$index++) { + var destinations$element = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + destinations.add(destinations$element); + } + var condition = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var trueBody = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioBlock(inputStream, sharedValues); + var falseBody = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioBlock(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioIf(destinations, condition, trueBody, falseBody, source); + } + + public static void encodePatioIntAdd(org.shedlang.compiler.patio.instructions.PatioIntAdd value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.destination(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.left(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.right(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioIntAdd decodePatioIntAdd(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destination = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var left = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var right = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioIntAdd(destination, left, right, source); + } + + public static void encodePatioIntEquals(org.shedlang.compiler.patio.instructions.PatioIntEquals value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.destination(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.left(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.right(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioIntEquals decodePatioIntEquals(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destination = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var left = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var right = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioIntEquals(destination, left, right, source); + } + + public static void encodePatioIntNotEqual(org.shedlang.compiler.patio.instructions.PatioIntNotEqual value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.destination(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.left(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.right(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioIntNotEqual decodePatioIntNotEqual(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destination = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var left = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var right = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioIntNotEqual(destination, left, right, source); + } + + public static void encodePatioIntSub(org.shedlang.compiler.patio.instructions.PatioIntSub value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.destination(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.left(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.right(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioIntSub decodePatioIntSub(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destination = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var left = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var right = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioIntSub(destination, left, right, source); + } + + public static void encodePatioIntToBool(org.shedlang.compiler.patio.instructions.PatioIntToBool value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.destination(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.value(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioIntToBool decodePatioIntToBool(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destination = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var value = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioIntToBool(destination, value, source); + } + + public static void encodePatioIntToDataPtr(org.shedlang.compiler.patio.instructions.PatioIntToDataPtr value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.destination(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.value(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioIntToDataPtr decodePatioIntToDataPtr(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destination = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var value = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioIntToDataPtr(destination, value, source); + } + + public static void encodePatioLocalStore(org.shedlang.compiler.patio.instructions.PatioLocalStore value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.destination(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.value(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioLocalStore decodePatioLocalStore(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destination = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var value = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioLocalStore(destination, value, source); + } + + public static void encodePatioLoop(org.shedlang.compiler.patio.instructions.PatioLoop value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.body().size(), outputStream, sharedValues); + for (var element : value.body()) { + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioInstruction(element, outputStream, sharedValues); + } + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioLoop decodePatioLoop(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var body$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var body = new java.util.ArrayList<org.shedlang.compiler.patio.instructions.PatioInstruction>((int) body$size); + for (long body$index = 0; body$index < body$size; body$index++) { + var body$element = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioInstruction(inputStream, sharedValues); + body.add(body$element); + } + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioLoop(body, source); + } + + public static void encodePatioLoopBreak(org.shedlang.compiler.patio.instructions.PatioLoopBreak value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioLoopBreak decodePatioLoopBreak(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioLoopBreak(source); + } + + public static void encodePatioLoopContinue(org.shedlang.compiler.patio.instructions.PatioLoopContinue value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioLoopContinue decodePatioLoopContinue(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioLoopContinue(source); + } + + public static void encodePatioMemoryLoad(org.shedlang.compiler.patio.instructions.PatioMemoryLoad value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.destination(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.pointer(), outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayout(value.layout(), outputStream, sharedValues); + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.elementOffsets().size(), outputStream, sharedValues); + for (var element : value.elementOffsets()) { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(element, outputStream, sharedValues); + } + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioMemoryLoad decodePatioMemoryLoad(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destination = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var pointer = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var layout = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayout(inputStream, sharedValues); + var elementOffsets$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var elementOffsets = new java.util.ArrayList<java.lang.Integer>((int) elementOffsets$size); + for (long elementOffsets$index = 0; elementOffsets$index < elementOffsets$size; elementOffsets$index++) { + var elementOffsets$element = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + elementOffsets.add(elementOffsets$element); + } + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioMemoryLoad(destination, pointer, layout, elementOffsets, source); + } + + public static void encodePatioMemoryStore(org.shedlang.compiler.patio.instructions.PatioMemoryStore value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.pointer(), outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayout(value.layout(), outputStream, sharedValues); + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.elementOffsets().size(), outputStream, sharedValues); + for (var element : value.elementOffsets()) { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(element, outputStream, sharedValues); + } + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.value(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioMemoryStore decodePatioMemoryStore(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var pointer = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var layout = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayout(inputStream, sharedValues); + var elementOffsets$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var elementOffsets = new java.util.ArrayList<java.lang.Integer>((int) elementOffsets$size); + for (long elementOffsets$index = 0; elementOffsets$index < elementOffsets$size; elementOffsets$index++) { + var elementOffsets$element = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + elementOffsets.add(elementOffsets$element); + } + var value = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioMemoryStore(pointer, layout, elementOffsets, value, source); + } + + public static void encodePatioReturn(org.shedlang.compiler.patio.instructions.PatioReturn value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.values().size(), outputStream, sharedValues); + for (var element : value.values()) { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(element, outputStream, sharedValues); + } + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioReturn decodePatioReturn(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var values$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var values = new java.util.ArrayList<org.shedlang.compiler.patio.operands.PatioOperand>((int) values$size); + for (long values$index = 0; values$index < values$size; values$index++) { + var values$element = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + values.add(values$element); + } + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioReturn(values, source); + } + + public static void encodePatioSwitch(org.shedlang.compiler.patio.instructions.PatioSwitch value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.destinations().size(), outputStream, sharedValues); + for (var element : value.destinations()) { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(element, outputStream, sharedValues); + } + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.value(), outputStream, sharedValues); + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.cases().size(), outputStream, sharedValues); + for (var element : value.cases()) { + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioSwitchCase(element, outputStream, sharedValues); + } + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioBlock(value.defaultBody(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioSwitch decodePatioSwitch(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destinations$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var destinations = new java.util.ArrayList<org.shedlang.compiler.patio.operands.PatioLocalRef>((int) destinations$size); + for (long destinations$index = 0; destinations$index < destinations$size; destinations$index++) { + var destinations$element = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + destinations.add(destinations$element); + } + var value = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var cases$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var cases = new java.util.ArrayList<org.shedlang.compiler.patio.instructions.PatioSwitchCase>((int) cases$size); + for (long cases$index = 0; cases$index < cases$size; cases$index++) { + var cases$element = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioSwitchCase(inputStream, sharedValues); + cases.add(cases$element); + } + var defaultBody = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioBlock(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioSwitch(destinations, value, cases, defaultBody, source); + } + + public static void encodePatioSwitchCase(org.shedlang.compiler.patio.instructions.PatioSwitchCase value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(value.value(), outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioBlock(value.body(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioSwitchCase decodePatioSwitchCase(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var value = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + var body = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioBlock(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioSwitchCase(value, body, source); + } + + public static void encodePatioThrow(org.shedlang.compiler.patio.instructions.PatioThrow value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.exceptionTypeName(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.value(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioThrow decodePatioThrow(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var exceptionTypeName = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + var value = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioThrow(exceptionTypeName, value, source); + } + + public static void encodePatioTry(org.shedlang.compiler.patio.instructions.PatioTry value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.destinations().size(), outputStream, sharedValues); + for (var element : value.destinations()) { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(element, outputStream, sharedValues); + } + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.catchClauses().size(), outputStream, sharedValues); + for (var element : value.catchClauses()) { + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioCatchClause(element, outputStream, sharedValues); + } + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioBlock(value.body(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioTry decodePatioTry(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destinations$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var destinations = new java.util.ArrayList<org.shedlang.compiler.patio.operands.PatioLocalRef>((int) destinations$size); + for (long destinations$index = 0; destinations$index < destinations$size; destinations$index++) { + var destinations$element = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + destinations.add(destinations$element); + } + var catchClauses$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var catchClauses = new java.util.ArrayList<org.shedlang.compiler.patio.instructions.PatioCatchClause>((int) catchClauses$size); + for (long catchClauses$index = 0; catchClauses$index < catchClauses$size; catchClauses$index++) { + var catchClauses$element = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioCatchClause(inputStream, sharedValues); + catchClauses.add(catchClauses$element); + } + var body = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioBlock(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioTry(destinations, catchClauses, body, source); + } + + public static void encodePatioCatchClause(org.shedlang.compiler.patio.instructions.PatioCatchClause value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.exceptionTypeName(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.destination(), outputStream, sharedValues); + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioBlock(value.body(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioCatchClause decodePatioCatchClause(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var exceptionTypeName = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + var destination = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var body = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioBlock(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioCatchClause(exceptionTypeName, destination, body, source); + } + + public static void encodePatioUnreachable(org.shedlang.compiler.patio.instructions.PatioUnreachable value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioUnreachable decodePatioUnreachable(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioUnreachable(source); + } + + public static void encodePatioVarLoad(org.shedlang.compiler.patio.instructions.PatioVarLoad value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.destination(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.var(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioVarLoad decodePatioVarLoad(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var destination = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var var = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioVarLoad(destination, var, source); + } + + public static void encodePatioVarStore(org.shedlang.compiler.patio.instructions.PatioVarStore value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value.var(), outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioOperand(value.value(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.instructions.PatioVarStore decodePatioVarStore(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var var = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + var value = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioOperand(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.instructions.PatioVarStore(var, value, source); + } + + // Custom area start: org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions body + // Custom area end: org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions body +} diff --git a/src/transient-0/java/org/shedlang/compiler/patio/operands/transient0/HobgoblinTransient0Operands.java b/src/transient-0/java/org/shedlang/compiler/patio/operands/transient0/HobgoblinTransient0Operands.java new file mode 100644 index 00000000..6ef7b90f --- /dev/null +++ b/src/transient-0/java/org/shedlang/compiler/patio/operands/transient0/HobgoblinTransient0Operands.java @@ -0,0 +1,144 @@ +// Generated by hobgoblin. + +package org.shedlang.compiler.patio.operands.transient0; + +// Custom area start: org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands imports +// Custom area end: org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands imports + +public final class HobgoblinTransient0Operands { + public static void encodePatioOperand(org.shedlang.compiler.patio.operands.PatioOperand value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + switch (value) { + case org.shedlang.compiler.patio.operands.PatioLocalRef value$0 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(0, outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioLocalRef(value$0, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.operands.PatioBoolConst value$1 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(1, outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioBoolConst(value$1, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.operands.PatioByteConst value$2 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(2, outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioByteConst(value$2, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.operands.PatioDataPtrConst value$3 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(3, outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioDataPtrConst(value$3, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.operands.PatioFunctionPtrConst value$4 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(4, outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioFunctionPtrConst(value$4, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.operands.PatioInt32Const value$5 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(5, outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioInt32Const(value$5, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.operands.PatioIntConst value$6 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(6, outputStream, sharedValues); + org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.encodePatioIntConst(value$6, outputStream, sharedValues); + } + } + } + + public static org.shedlang.compiler.patio.operands.PatioOperand decodePatioOperand(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var variantTag = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + switch (variantTag) { + case 0 -> { + var value$0 = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioLocalRef(inputStream, sharedValues); + return value$0; + } + case 1 -> { + var value$1 = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioBoolConst(inputStream, sharedValues); + return value$1; + } + case 2 -> { + var value$2 = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioByteConst(inputStream, sharedValues); + return value$2; + } + case 3 -> { + var value$3 = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioDataPtrConst(inputStream, sharedValues); + return value$3; + } + case 4 -> { + var value$4 = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioFunctionPtrConst(inputStream, sharedValues); + return value$4; + } + case 5 -> { + var value$5 = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioInt32Const(inputStream, sharedValues); + return value$5; + } + case 6 -> { + var value$6 = org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands.decodePatioIntConst(inputStream, sharedValues); + return value$6; + } + default -> { + throw new java.lang.RuntimeException("unexpected patio/operands.PatioOperand variant tag: " + variantTag); + } + } + } + + public static void encodePatioLocalRef(org.shedlang.compiler.patio.operands.PatioLocalRef value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.name(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.operands.PatioLocalRef decodePatioLocalRef(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var name = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + return new org.shedlang.compiler.patio.operands.PatioLocalRef(name); + } + + public static void encodePatioBoolConst(org.shedlang.compiler.patio.operands.PatioBoolConst value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeBool(value.value(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.operands.PatioBoolConst decodePatioBoolConst(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var value = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeBool(inputStream, sharedValues); + return new org.shedlang.compiler.patio.operands.PatioBoolConst(value); + } + + public static void encodePatioByteConst(org.shedlang.compiler.patio.operands.PatioByteConst value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt8(value.value(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.operands.PatioByteConst decodePatioByteConst(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var value = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt8(inputStream, sharedValues); + return new org.shedlang.compiler.patio.operands.PatioByteConst(value); + } + + public static void encodePatioDataPtrConst(org.shedlang.compiler.patio.operands.PatioDataPtrConst value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.encodePatioDataPtrValue(value.value(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.operands.PatioDataPtrConst decodePatioDataPtrConst(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var value = org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.decodePatioDataPtrValue(inputStream, sharedValues); + return new org.shedlang.compiler.patio.operands.PatioDataPtrConst(value); + } + + public static void encodePatioFunctionPtrConst(org.shedlang.compiler.patio.operands.PatioFunctionPtrConst value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.name(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.operands.PatioFunctionPtrConst decodePatioFunctionPtrConst(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var name = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + return new org.shedlang.compiler.patio.operands.PatioFunctionPtrConst(name); + } + + public static void encodePatioInt32Const(org.shedlang.compiler.patio.operands.PatioInt32Const value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.encodePatioIntValue(value.value(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.operands.PatioInt32Const decodePatioInt32Const(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var value = org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.decodePatioIntValue(inputStream, sharedValues); + return new org.shedlang.compiler.patio.operands.PatioInt32Const(value); + } + + public static void encodePatioIntConst(org.shedlang.compiler.patio.operands.PatioIntConst value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.encodePatioIntValue(value.value(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.operands.PatioIntConst decodePatioIntConst(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var value = org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.decodePatioIntValue(inputStream, sharedValues); + return new org.shedlang.compiler.patio.operands.PatioIntConst(value); + } + + // Custom area start: org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands body + // Custom area end: org.shedlang.compiler.patio.operands.transient0.HobgoblinTransient0Operands body +} diff --git a/src/transient-0/java/org/shedlang/compiler/patio/transient0/HobgoblinTransient0Patio.java b/src/transient-0/java/org/shedlang/compiler/patio/transient0/HobgoblinTransient0Patio.java new file mode 100644 index 00000000..77b4f6d6 --- /dev/null +++ b/src/transient-0/java/org/shedlang/compiler/patio/transient0/HobgoblinTransient0Patio.java @@ -0,0 +1,257 @@ +// Generated by hobgoblin. + +package org.shedlang.compiler.patio.transient0; + +// Custom area start: org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio imports +// Custom area end: org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio imports + +public final class HobgoblinTransient0Patio { + public static void encodePatioCompilationUnit(org.shedlang.compiler.patio.PatioCompilationUnit value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.elements().size(), outputStream, sharedValues); + for (var element : value.elements()) { + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioCompilationUnitElement(element, outputStream, sharedValues); + } + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.PatioCompilationUnit decodePatioCompilationUnit(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var elements$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var elements = new java.util.ArrayList<org.shedlang.compiler.patio.PatioCompilationUnitElement>((int) elements$size); + for (long elements$index = 0; elements$index < elements$size; elements$index++) { + var elements$element = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioCompilationUnitElement(inputStream, sharedValues); + elements.add(elements$element); + } + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.PatioCompilationUnit(elements, source); + } + + public static void encodePatioCompilationUnitElement(org.shedlang.compiler.patio.PatioCompilationUnitElement value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + switch (value) { + case org.shedlang.compiler.patio.PatioDataElementImmutableDefinition value$0 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(0, outputStream, sharedValues); + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioDataElementImmutableDefinition(value$0, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.PatioDataElementMutableDeclaration value$1 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(1, outputStream, sharedValues); + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioDataElementMutableDeclaration(value$1, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.PatioDataElementMutableDefinition value$2 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(2, outputStream, sharedValues); + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioDataElementMutableDefinition(value$2, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.PatioExceptionTypeDefinition value$3 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(3, outputStream, sharedValues); + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioExceptionTypeDefinition(value$3, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.PatioFunctionDeclaration value$4 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(4, outputStream, sharedValues); + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioFunctionDeclaration(value$4, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.PatioFunctionDefinition value$5 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(5, outputStream, sharedValues); + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioFunctionDefinition(value$5, outputStream, sharedValues); + } + } + } + + public static org.shedlang.compiler.patio.PatioCompilationUnitElement decodePatioCompilationUnitElement(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var variantTag = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + switch (variantTag) { + case 0 -> { + var value$0 = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioDataElementImmutableDefinition(inputStream, sharedValues); + return value$0; + } + case 1 -> { + var value$1 = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioDataElementMutableDeclaration(inputStream, sharedValues); + return value$1; + } + case 2 -> { + var value$2 = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioDataElementMutableDefinition(inputStream, sharedValues); + return value$2; + } + case 3 -> { + var value$3 = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioExceptionTypeDefinition(inputStream, sharedValues); + return value$3; + } + case 4 -> { + var value$4 = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioFunctionDeclaration(inputStream, sharedValues); + return value$4; + } + case 5 -> { + var value$5 = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioFunctionDefinition(inputStream, sharedValues); + return value$5; + } + default -> { + throw new java.lang.RuntimeException("unexpected patio.PatioCompilationUnitElement variant tag: " + variantTag); + } + } + } + + public static void encodePatioDataElementImmutableDefinition(org.shedlang.compiler.patio.PatioDataElementImmutableDefinition value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.name(), outputStream, sharedValues); + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioVisibility(value.visibility(), outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataValue(value.value(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.PatioDataElementImmutableDefinition decodePatioDataElementImmutableDefinition(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var name = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + var visibility = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioVisibility(inputStream, sharedValues); + var value = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataValue(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.PatioDataElementImmutableDefinition(name, visibility, value, source); + } + + public static void encodePatioDataElementMutableDeclaration(org.shedlang.compiler.patio.PatioDataElementMutableDeclaration value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.name(), outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayout(value.layout(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.PatioDataElementMutableDeclaration decodePatioDataElementMutableDeclaration(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var name = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + var layout = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayout(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.PatioDataElementMutableDeclaration(name, layout, source); + } + + public static void encodePatioDataElementMutableDefinition(org.shedlang.compiler.patio.PatioDataElementMutableDefinition value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.name(), outputStream, sharedValues); + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioVisibility(value.visibility(), outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataValue(value.initialValue(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.PatioDataElementMutableDefinition decodePatioDataElementMutableDefinition(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var name = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + var visibility = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioVisibility(inputStream, sharedValues); + var initialValue = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataValue(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.PatioDataElementMutableDefinition(name, visibility, initialValue, source); + } + + public static void encodePatioExceptionTypeDefinition(org.shedlang.compiler.patio.PatioExceptionTypeDefinition value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.name(), outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioType(value.valueType(), outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.PatioExceptionTypeDefinition decodePatioExceptionTypeDefinition(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var name = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + var valueType = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioType(inputStream, sharedValues); + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.PatioExceptionTypeDefinition(name, valueType, source); + } + + public static void encodePatioFunctionDeclaration(org.shedlang.compiler.patio.PatioFunctionDeclaration value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.name(), outputStream, sharedValues); + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.params().size(), outputStream, sharedValues); + for (var element : value.params()) { + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioLocal(element, outputStream, sharedValues); + } + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.returnTypes().size(), outputStream, sharedValues); + for (var element : value.returnTypes()) { + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioType(element, outputStream, sharedValues); + } + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.PatioFunctionDeclaration decodePatioFunctionDeclaration(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var name = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + var params$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var params = new java.util.ArrayList<org.shedlang.compiler.patio.PatioLocal>((int) params$size); + for (long params$index = 0; params$index < params$size; params$index++) { + var params$element = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioLocal(inputStream, sharedValues); + params.add(params$element); + } + var returnTypes$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var returnTypes = new java.util.ArrayList<org.shedlang.compiler.patio.types.PatioType>((int) returnTypes$size); + for (long returnTypes$index = 0; returnTypes$index < returnTypes$size; returnTypes$index++) { + var returnTypes$element = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioType(inputStream, sharedValues); + returnTypes.add(returnTypes$element); + } + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.PatioFunctionDeclaration(name, params, returnTypes, source); + } + + public static void encodePatioFunctionDefinition(org.shedlang.compiler.patio.PatioFunctionDefinition value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.name(), outputStream, sharedValues); + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioVisibility(value.visibility(), outputStream, sharedValues); + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.locals().size(), outputStream, sharedValues); + for (var element : value.locals()) { + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioLocal(element, outputStream, sharedValues); + } + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.returnTypes().size(), outputStream, sharedValues); + for (var element : value.returnTypes()) { + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioType(element, outputStream, sharedValues); + } + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.body().size(), outputStream, sharedValues); + for (var element : value.body()) { + org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.encodePatioInstruction(element, outputStream, sharedValues); + } + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeSource(value.source(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.PatioFunctionDefinition decodePatioFunctionDefinition(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var name = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + var visibility = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioVisibility(inputStream, sharedValues); + var locals$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var locals = new java.util.ArrayList<org.shedlang.compiler.patio.PatioLocal>((int) locals$size); + for (long locals$index = 0; locals$index < locals$size; locals$index++) { + var locals$element = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioLocal(inputStream, sharedValues); + locals.add(locals$element); + } + var returnTypes$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var returnTypes = new java.util.ArrayList<org.shedlang.compiler.patio.types.PatioType>((int) returnTypes$size); + for (long returnTypes$index = 0; returnTypes$index < returnTypes$size; returnTypes$index++) { + var returnTypes$element = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioType(inputStream, sharedValues); + returnTypes.add(returnTypes$element); + } + var body$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var body = new java.util.ArrayList<org.shedlang.compiler.patio.instructions.PatioInstruction>((int) body$size); + for (long body$index = 0; body$index < body$size; body$index++) { + var body$element = org.shedlang.compiler.patio.instructions.transient0.HobgoblinTransient0Instructions.decodePatioInstruction(inputStream, sharedValues); + body.add(body$element); + } + var source = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeSource(inputStream, sharedValues); + return new org.shedlang.compiler.patio.PatioFunctionDefinition(name, visibility, locals, returnTypes, body, source); + } + + public static void encodePatioVisibility(org.shedlang.compiler.patio.PatioVisibility value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(value.ordinal(), outputStream, sharedValues); + } + + private static final org.shedlang.compiler.patio.PatioVisibility[] PatioVisibility$values = org.shedlang.compiler.patio.PatioVisibility.values(); + + public static org.shedlang.compiler.patio.PatioVisibility decodePatioVisibility(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var ordinal = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + return PatioVisibility$values[ordinal]; + } + + public static void encodePatioLocal(org.shedlang.compiler.patio.PatioLocal value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.name(), outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioType(value.type(), outputStream, sharedValues); + org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.encodePatioLocalType(value.localType(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.PatioLocal decodePatioLocal(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var name = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + var type = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioType(inputStream, sharedValues); + var localType = org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio.decodePatioLocalType(inputStream, sharedValues); + return new org.shedlang.compiler.patio.PatioLocal(name, type, localType); + } + + public static void encodePatioLocalType(org.shedlang.compiler.patio.PatioLocalType value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(value.ordinal(), outputStream, sharedValues); + } + + private static final org.shedlang.compiler.patio.PatioLocalType[] PatioLocalType$values = org.shedlang.compiler.patio.PatioLocalType.values(); + + public static org.shedlang.compiler.patio.PatioLocalType decodePatioLocalType(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var ordinal = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + return PatioLocalType$values[ordinal]; + } + + // Custom area start: org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio body + // Custom area end: org.shedlang.compiler.patio.transient0.HobgoblinTransient0Patio body +} diff --git a/src/transient-0/java/org/shedlang/compiler/patio/types/transient0/HobgoblinTransient0Types.java b/src/transient-0/java/org/shedlang/compiler/patio/types/transient0/HobgoblinTransient0Types.java new file mode 100644 index 00000000..efc0b55f --- /dev/null +++ b/src/transient-0/java/org/shedlang/compiler/patio/types/transient0/HobgoblinTransient0Types.java @@ -0,0 +1,414 @@ +// Generated by hobgoblin. + +package org.shedlang.compiler.patio.types.transient0; + +// Custom area start: org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types imports +// Custom area end: org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types imports + +public final class HobgoblinTransient0Types { + public static void encodePatioType(org.shedlang.compiler.patio.types.PatioType value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + switch (value) { + case org.shedlang.compiler.patio.types.PatioBoolType value$0 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(0, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioBoolType(value$0, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioByteType value$1 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(1, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioByteType(value$1, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataPtrType value$2 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(2, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataPtrType(value$2, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioFunctionPtrType value$3 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(3, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioFunctionPtrType(value$3, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioInt32Type value$4 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(4, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioInt32Type(value$4, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioIntType value$5 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(5, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioIntType(value$5, outputStream, sharedValues); + } + } + } + + public static org.shedlang.compiler.patio.types.PatioType decodePatioType(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var variantTag = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + switch (variantTag) { + case 0 -> { + var value$0 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioBoolType(inputStream, sharedValues); + return value$0; + } + case 1 -> { + var value$1 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioByteType(inputStream, sharedValues); + return value$1; + } + case 2 -> { + var value$2 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataPtrType(inputStream, sharedValues); + return value$2; + } + case 3 -> { + var value$3 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioFunctionPtrType(inputStream, sharedValues); + return value$3; + } + case 4 -> { + var value$4 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioInt32Type(inputStream, sharedValues); + return value$4; + } + case 5 -> { + var value$5 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioIntType(inputStream, sharedValues); + return value$5; + } + default -> { + throw new java.lang.RuntimeException("unexpected patio/types.PatioType variant tag: " + variantTag); + } + } + } + + public static void encodePatioBoolType(org.shedlang.compiler.patio.types.PatioBoolType value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.types.PatioBoolType decodePatioBoolType(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.patio.types.PatioBoolType.INSTANCE; + } + + public static void encodePatioByteType(org.shedlang.compiler.patio.types.PatioByteType value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.types.PatioByteType decodePatioByteType(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.patio.types.PatioByteType.INSTANCE; + } + + public static void encodePatioDataPtrType(org.shedlang.compiler.patio.types.PatioDataPtrType value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.types.PatioDataPtrType decodePatioDataPtrType(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.patio.types.PatioDataPtrType.INSTANCE; + } + + public static void encodePatioFunctionPtrType(org.shedlang.compiler.patio.types.PatioFunctionPtrType value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.types.PatioFunctionPtrType decodePatioFunctionPtrType(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.patio.types.PatioFunctionPtrType.INSTANCE; + } + + public static void encodePatioInt32Type(org.shedlang.compiler.patio.types.PatioInt32Type value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.types.PatioInt32Type decodePatioInt32Type(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.patio.types.PatioInt32Type.INSTANCE; + } + + public static void encodePatioIntType(org.shedlang.compiler.patio.types.PatioIntType value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.types.PatioIntType decodePatioIntType(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.patio.types.PatioIntType.INSTANCE; + } + + public static void encodePatioDataLayout(org.shedlang.compiler.patio.types.PatioDataLayout value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + switch (value) { + case org.shedlang.compiler.patio.types.PatioDataLayoutArray value$0 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(0, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayoutArray(value$0, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataLayoutBool value$1 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(1, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayoutBool(value$1, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataLayoutByte value$2 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(2, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayoutByte(value$2, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataLayoutDataPtr value$3 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(3, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayoutDataPtr(value$3, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataLayoutFunctionPtr value$4 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(4, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayoutFunctionPtr(value$4, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataLayoutInt value$5 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(5, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayoutInt(value$5, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataLayoutInt32 value$6 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(6, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayoutInt32(value$6, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataLayoutStruct value$7 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(7, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayoutStruct(value$7, outputStream, sharedValues); + } + } + } + + public static org.shedlang.compiler.patio.types.PatioDataLayout decodePatioDataLayout(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var variantTag = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + switch (variantTag) { + case 0 -> { + var value$0 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayoutArray(inputStream, sharedValues); + return value$0; + } + case 1 -> { + var value$1 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayoutBool(inputStream, sharedValues); + return value$1; + } + case 2 -> { + var value$2 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayoutByte(inputStream, sharedValues); + return value$2; + } + case 3 -> { + var value$3 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayoutDataPtr(inputStream, sharedValues); + return value$3; + } + case 4 -> { + var value$4 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayoutFunctionPtr(inputStream, sharedValues); + return value$4; + } + case 5 -> { + var value$5 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayoutInt(inputStream, sharedValues); + return value$5; + } + case 6 -> { + var value$6 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayoutInt32(inputStream, sharedValues); + return value$6; + } + case 7 -> { + var value$7 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayoutStruct(inputStream, sharedValues); + return value$7; + } + default -> { + throw new java.lang.RuntimeException("unexpected patio/types.PatioDataLayout variant tag: " + variantTag); + } + } + } + + public static void encodePatioDataLayoutArray(org.shedlang.compiler.patio.types.PatioDataLayoutArray value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayout(value.element(), outputStream, sharedValues); + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(value.size(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.types.PatioDataLayoutArray decodePatioDataLayoutArray(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var element = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayout(inputStream, sharedValues); + var size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + return new org.shedlang.compiler.patio.types.PatioDataLayoutArray(element, size); + } + + public static void encodePatioDataLayoutBool(org.shedlang.compiler.patio.types.PatioDataLayoutBool value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.types.PatioDataLayoutBool decodePatioDataLayoutBool(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.patio.types.PatioDataLayoutBool.INSTANCE; + } + + public static void encodePatioDataLayoutByte(org.shedlang.compiler.patio.types.PatioDataLayoutByte value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.types.PatioDataLayoutByte decodePatioDataLayoutByte(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.patio.types.PatioDataLayoutByte.INSTANCE; + } + + public static void encodePatioDataLayoutDataPtr(org.shedlang.compiler.patio.types.PatioDataLayoutDataPtr value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.types.PatioDataLayoutDataPtr decodePatioDataLayoutDataPtr(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.patio.types.PatioDataLayoutDataPtr.INSTANCE; + } + + public static void encodePatioDataLayoutFunctionPtr(org.shedlang.compiler.patio.types.PatioDataLayoutFunctionPtr value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.types.PatioDataLayoutFunctionPtr decodePatioDataLayoutFunctionPtr(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.patio.types.PatioDataLayoutFunctionPtr.INSTANCE; + } + + public static void encodePatioDataLayoutInt(org.shedlang.compiler.patio.types.PatioDataLayoutInt value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.types.PatioDataLayoutInt decodePatioDataLayoutInt(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.patio.types.PatioDataLayoutInt.INSTANCE; + } + + public static void encodePatioDataLayoutInt32(org.shedlang.compiler.patio.types.PatioDataLayoutInt32 value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.types.PatioDataLayoutInt32 decodePatioDataLayoutInt32(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.patio.types.PatioDataLayoutInt32.INSTANCE; + } + + public static void encodePatioDataLayoutStruct(org.shedlang.compiler.patio.types.PatioDataLayoutStruct value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.elements().size(), outputStream, sharedValues); + for (var element : value.elements()) { + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayout(element, outputStream, sharedValues); + } + } + + public static org.shedlang.compiler.patio.types.PatioDataLayoutStruct decodePatioDataLayoutStruct(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var elements$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var elements = new java.util.ArrayList<org.shedlang.compiler.patio.types.PatioDataLayout>((int) elements$size); + for (long elements$index = 0; elements$index < elements$size; elements$index++) { + var elements$element = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayout(inputStream, sharedValues); + elements.add(elements$element); + } + return new org.shedlang.compiler.patio.types.PatioDataLayoutStruct(elements); + } + + public static void encodePatioDataValue(org.shedlang.compiler.patio.types.PatioDataValue value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + switch (value) { + case org.shedlang.compiler.patio.types.PatioDataValueArray value$0 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(0, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataValueArray(value$0, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataValueBool value$1 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(1, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataValueBool(value$1, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataValueByte value$2 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(2, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataValueByte(value$2, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataValueDataPtr value$3 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(3, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataValueDataPtr(value$3, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataValueInt value$4 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(4, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataValueInt(value$4, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataValueInt32 value$5 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(5, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataValueInt32(value$5, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.types.PatioDataValueStruct value$6 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(6, outputStream, sharedValues); + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataValueStruct(value$6, outputStream, sharedValues); + } + } + } + + public static org.shedlang.compiler.patio.types.PatioDataValue decodePatioDataValue(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var variantTag = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + switch (variantTag) { + case 0 -> { + var value$0 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataValueArray(inputStream, sharedValues); + return value$0; + } + case 1 -> { + var value$1 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataValueBool(inputStream, sharedValues); + return value$1; + } + case 2 -> { + var value$2 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataValueByte(inputStream, sharedValues); + return value$2; + } + case 3 -> { + var value$3 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataValueDataPtr(inputStream, sharedValues); + return value$3; + } + case 4 -> { + var value$4 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataValueInt(inputStream, sharedValues); + return value$4; + } + case 5 -> { + var value$5 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataValueInt32(inputStream, sharedValues); + return value$5; + } + case 6 -> { + var value$6 = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataValueStruct(inputStream, sharedValues); + return value$6; + } + default -> { + throw new java.lang.RuntimeException("unexpected patio/types.PatioDataValue variant tag: " + variantTag); + } + } + } + + public static void encodePatioDataValueArray(org.shedlang.compiler.patio.types.PatioDataValueArray value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayout(value.elementLayout(), outputStream, sharedValues); + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.elements().size(), outputStream, sharedValues); + for (var element : value.elements()) { + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataValue(element, outputStream, sharedValues); + } + } + + public static org.shedlang.compiler.patio.types.PatioDataValueArray decodePatioDataValueArray(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var elementLayout = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayout(inputStream, sharedValues); + var elements$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var elements = new java.util.ArrayList<org.shedlang.compiler.patio.types.PatioDataValue>((int) elements$size); + for (long elements$index = 0; elements$index < elements$size; elements$index++) { + var elements$element = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataValue(inputStream, sharedValues); + elements.add(elements$element); + } + return new org.shedlang.compiler.patio.types.PatioDataValueArray(elementLayout, elements); + } + + public static void encodePatioDataValueBool(org.shedlang.compiler.patio.types.PatioDataValueBool value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeBool(value.value(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.types.PatioDataValueBool decodePatioDataValueBool(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var value = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeBool(inputStream, sharedValues); + return new org.shedlang.compiler.patio.types.PatioDataValueBool(value); + } + + public static void encodePatioDataValueByte(org.shedlang.compiler.patio.types.PatioDataValueByte value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt8(value.value(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.types.PatioDataValueByte decodePatioDataValueByte(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var value = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt8(inputStream, sharedValues); + return new org.shedlang.compiler.patio.types.PatioDataValueByte(value); + } + + public static void encodePatioDataValueDataPtr(org.shedlang.compiler.patio.types.PatioDataValueDataPtr value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.encodePatioDataPtrValue(value.value(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.types.PatioDataValueDataPtr decodePatioDataValueDataPtr(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var value = org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.decodePatioDataPtrValue(inputStream, sharedValues); + return new org.shedlang.compiler.patio.types.PatioDataValueDataPtr(value); + } + + public static void encodePatioDataValueInt(org.shedlang.compiler.patio.types.PatioDataValueInt value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.encodePatioIntValue(value.value(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.types.PatioDataValueInt decodePatioDataValueInt(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var value = org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.decodePatioIntValue(inputStream, sharedValues); + return new org.shedlang.compiler.patio.types.PatioDataValueInt(value); + } + + public static void encodePatioDataValueInt32(org.shedlang.compiler.patio.types.PatioDataValueInt32 value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.encodePatioIntValue(value.value(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.types.PatioDataValueInt32 decodePatioDataValueInt32(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var value = org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.decodePatioIntValue(inputStream, sharedValues); + return new org.shedlang.compiler.patio.types.PatioDataValueInt32(value); + } + + public static void encodePatioDataValueStruct(org.shedlang.compiler.patio.types.PatioDataValueStruct value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.elements().size(), outputStream, sharedValues); + for (var element : value.elements()) { + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataValue(element, outputStream, sharedValues); + } + } + + public static org.shedlang.compiler.patio.types.PatioDataValueStruct decodePatioDataValueStruct(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var elements$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var elements = new java.util.ArrayList<org.shedlang.compiler.patio.types.PatioDataValue>((int) elements$size); + for (long elements$index = 0; elements$index < elements$size; elements$index++) { + var elements$element = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataValue(inputStream, sharedValues); + elements.add(elements$element); + } + return new org.shedlang.compiler.patio.types.PatioDataValueStruct(elements); + } + + // Custom area start: org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types body + // Custom area end: org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types body +} diff --git a/src/transient-0/java/org/shedlang/compiler/patio/values/transient0/HobgoblinTransient0Values.java b/src/transient-0/java/org/shedlang/compiler/patio/values/transient0/HobgoblinTransient0Values.java new file mode 100644 index 00000000..05523dc2 --- /dev/null +++ b/src/transient-0/java/org/shedlang/compiler/patio/values/transient0/HobgoblinTransient0Values.java @@ -0,0 +1,132 @@ +// Generated by hobgoblin. + +package org.shedlang.compiler.patio.values.transient0; + +// Custom area start: org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values imports +// Custom area end: org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values imports + +public final class HobgoblinTransient0Values { + public static void encodePatioDataPtrValue(org.shedlang.compiler.patio.values.PatioDataPtrValue value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + switch (value) { + case org.shedlang.compiler.patio.values.PatioDataPtrValueDataElement value$0 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(0, outputStream, sharedValues); + org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.encodePatioDataPtrValueDataElement(value$0, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.values.PatioDataPtrValueNull value$1 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(1, outputStream, sharedValues); + org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.encodePatioDataPtrValueNull(value$1, outputStream, sharedValues); + } + } + } + + public static org.shedlang.compiler.patio.values.PatioDataPtrValue decodePatioDataPtrValue(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var variantTag = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + switch (variantTag) { + case 0 -> { + var value$0 = org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.decodePatioDataPtrValueDataElement(inputStream, sharedValues); + return value$0; + } + case 1 -> { + var value$1 = org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.decodePatioDataPtrValueNull(inputStream, sharedValues); + return value$1; + } + default -> { + throw new java.lang.RuntimeException("unexpected patio/values.PatioDataPtrValue variant tag: " + variantTag); + } + } + } + + public static void encodePatioDataPtrValueDataElement(org.shedlang.compiler.patio.values.PatioDataPtrValueDataElement value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeString(value.name(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.values.PatioDataPtrValueDataElement decodePatioDataPtrValueDataElement(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var name = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + return new org.shedlang.compiler.patio.values.PatioDataPtrValueDataElement(name); + } + + public static void encodePatioDataPtrValueNull(org.shedlang.compiler.patio.values.PatioDataPtrValueNull value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.patio.values.PatioDataPtrValueNull decodePatioDataPtrValueNull(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return new org.shedlang.compiler.patio.values.PatioDataPtrValueNull(); + } + + public static void encodePatioIntValue(org.shedlang.compiler.patio.values.PatioIntValue value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + switch (value) { + case org.shedlang.compiler.patio.values.PatioIntValueByteOffsetOf value$0 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(0, outputStream, sharedValues); + org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.encodePatioIntValueByteOffsetOf(value$0, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.values.PatioIntValueByteSizeOf value$1 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(1, outputStream, sharedValues); + org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.encodePatioIntValueByteSizeOf(value$1, outputStream, sharedValues); + } + case org.shedlang.compiler.patio.values.PatioIntValueLiteral value$2 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(2, outputStream, sharedValues); + org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.encodePatioIntValueLiteral(value$2, outputStream, sharedValues); + } + } + } + + public static org.shedlang.compiler.patio.values.PatioIntValue decodePatioIntValue(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var variantTag = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + switch (variantTag) { + case 0 -> { + var value$0 = org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.decodePatioIntValueByteOffsetOf(inputStream, sharedValues); + return value$0; + } + case 1 -> { + var value$1 = org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.decodePatioIntValueByteSizeOf(inputStream, sharedValues); + return value$1; + } + case 2 -> { + var value$2 = org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values.decodePatioIntValueLiteral(inputStream, sharedValues); + return value$2; + } + default -> { + throw new java.lang.RuntimeException("unexpected patio/values.PatioIntValue variant tag: " + variantTag); + } + } + } + + public static void encodePatioIntValueByteOffsetOf(org.shedlang.compiler.patio.values.PatioIntValueByteOffsetOf value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayout(value.layout(), outputStream, sharedValues); + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) value.elementOffsets().size(), outputStream, sharedValues); + for (var element : value.elementOffsets()) { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(element, outputStream, sharedValues); + } + } + + public static org.shedlang.compiler.patio.values.PatioIntValueByteOffsetOf decodePatioIntValueByteOffsetOf(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var layout = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayout(inputStream, sharedValues); + var elementOffsets$size = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var elementOffsets = new java.util.ArrayList<java.lang.Integer>((int) elementOffsets$size); + for (long elementOffsets$index = 0; elementOffsets$index < elementOffsets$size; elementOffsets$index++) { + var elementOffsets$element = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + elementOffsets.add(elementOffsets$element); + } + return new org.shedlang.compiler.patio.values.PatioIntValueByteOffsetOf(layout, elementOffsets); + } + + public static void encodePatioIntValueByteSizeOf(org.shedlang.compiler.patio.values.PatioIntValueByteSizeOf value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.encodePatioDataLayout(value.layout(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.values.PatioIntValueByteSizeOf decodePatioIntValueByteSizeOf(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var layout = org.shedlang.compiler.patio.types.transient0.HobgoblinTransient0Types.decodePatioDataLayout(inputStream, sharedValues); + return new org.shedlang.compiler.patio.values.PatioIntValueByteSizeOf(layout); + } + + public static void encodePatioIntValueLiteral(org.shedlang.compiler.patio.values.PatioIntValueLiteral value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(value.value(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.patio.values.PatioIntValueLiteral decodePatioIntValueLiteral(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var value = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + return new org.shedlang.compiler.patio.values.PatioIntValueLiteral(value); + } + + // Custom area start: org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values body + // Custom area end: org.shedlang.compiler.patio.values.transient0.HobgoblinTransient0Values body +} diff --git a/src/transient-0/java/org/shedlang/compiler/sources/transient0/HobgoblinTransient0Sources.java b/src/transient-0/java/org/shedlang/compiler/sources/transient0/HobgoblinTransient0Sources.java new file mode 100644 index 00000000..94af36bb --- /dev/null +++ b/src/transient-0/java/org/shedlang/compiler/sources/transient0/HobgoblinTransient0Sources.java @@ -0,0 +1,72 @@ +// Generated by hobgoblin. + +package org.shedlang.compiler.sources.transient0; + +// Custom area start: org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources imports +// Custom area end: org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources imports + +public final class HobgoblinTransient0Sources { + public static void encodeSource(org.shedlang.compiler.sources.Source value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + switch (value) { + case org.shedlang.compiler.sources.NullSource value$0 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(0, outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeNullSource(value$0, outputStream, sharedValues); + } + case org.shedlang.compiler.sources.RuntimeSource value$1 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(1, outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeRuntimeSource(value$1, outputStream, sharedValues); + } + case org.shedlang.compiler.sources.FileFragmentSource value$2 -> { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(2, outputStream, sharedValues); + org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.encodeFileFragmentSource(value$2, outputStream, sharedValues); + } + } + } + + public static org.shedlang.compiler.sources.Source decodeSource(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var variantTag = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + switch (variantTag) { + case 0 -> { + var value$0 = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeNullSource(inputStream, sharedValues); + return value$0; + } + case 1 -> { + var value$1 = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeRuntimeSource(inputStream, sharedValues); + return value$1; + } + case 2 -> { + var value$2 = org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources.decodeFileFragmentSource(inputStream, sharedValues); + return value$2; + } + default -> { + throw new java.lang.RuntimeException("unexpected sources.Source variant tag: " + variantTag); + } + } + } + + public static void encodeNullSource(org.shedlang.compiler.sources.NullSource value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.sources.NullSource decodeNullSource(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.sources.NullSource.INSTANCE; + } + + public static void encodeRuntimeSource(org.shedlang.compiler.sources.RuntimeSource value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + } + + public static org.shedlang.compiler.sources.RuntimeSource decodeRuntimeSource(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return org.shedlang.compiler.sources.RuntimeSource.INSTANCE; + } + + public static void encodeFileFragmentSource(org.shedlang.compiler.sources.FileFragmentSource value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext.encodeSourceRange(value.sourceRange(), outputStream, sharedValues); + } + + public static org.shedlang.compiler.sources.FileFragmentSource decodeFileFragmentSource(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var sourceRange = org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext.decodeSourceRange(inputStream, sharedValues); + return new org.shedlang.compiler.sources.FileFragmentSource(sourceRange); + } + + // Custom area start: org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources body + // Custom area end: org.shedlang.compiler.sources.transient0.HobgoblinTransient0Sources body +} diff --git a/src/transient-0/java/org/shedlang/compiler/transient0/HobgoblinTransient0Builtins.java b/src/transient-0/java/org/shedlang/compiler/transient0/HobgoblinTransient0Builtins.java new file mode 100644 index 00000000..4a272077 --- /dev/null +++ b/src/transient-0/java/org/shedlang/compiler/transient0/HobgoblinTransient0Builtins.java @@ -0,0 +1,79 @@ +// Generated by hobgoblin. + +package org.shedlang.compiler.transient0; + +// Custom area start: org.shedlang.compiler.transient0.HobgoblinTransient0Builtins imports +// Custom area end: org.shedlang.compiler.transient0.HobgoblinTransient0Builtins imports + +public final class HobgoblinTransient0Builtins { + public static void encodeBool(boolean value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + outputStream.write(value ? 1 : 0); + } + + public static boolean decodeBool(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return inputStream.read() != 0; + } + + public static void encodeInt8(byte value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + outputStream.write(value); + } + + public static byte decodeInt8(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + return (byte) inputStream.read(); + } + + public static void encodeInt32(int value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + outputStream.write(value >>> 0 & 255); + outputStream.write(value >>> 8 & 255); + outputStream.write(value >>> 16 & 255); + outputStream.write(value >>> 24 & 255); + } + + public static int decodeInt32(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + int value = 0; + value = value | inputStream.read() << 0; + value = value | inputStream.read() << 8; + value = value | inputStream.read() << 16; + value = value | inputStream.read() << 24; + return value; + } + + public static void encodeInt64(long value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + outputStream.write((int) (value >>> 0 & 255)); + outputStream.write((int) (value >>> 8 & 255)); + outputStream.write((int) (value >>> 16 & 255)); + outputStream.write((int) (value >>> 24 & 255)); + outputStream.write((int) (value >>> 32 & 255)); + outputStream.write((int) (value >>> 40 & 255)); + outputStream.write((int) (value >>> 48 & 255)); + outputStream.write((int) (value >>> 56 & 255)); + } + + public static long decodeInt64(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + long value = 0; + value = value | inputStream.read() << 0; + value = value | inputStream.read() << 8; + value = value | inputStream.read() << 16; + value = value | inputStream.read() << 24; + value = value | inputStream.read() << 32; + value = value | inputStream.read() << 40; + value = value | inputStream.read() << 48; + value = value | inputStream.read() << 56; + return value; + } + + public static void encodeString(String value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + var bytes = value.getBytes(java.nio.charset.StandardCharsets.UTF_8); + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64((long) bytes.length, outputStream, sharedValues); + outputStream.write(bytes); + } + + public static String decodeString(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var bytesLength = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + var bytes = inputStream.readNBytes((int) bytesLength); + return new String(bytes, java.nio.charset.StandardCharsets.UTF_8); + } + + // Custom area start: org.shedlang.compiler.transient0.HobgoblinTransient0Builtins body + // Custom area end: org.shedlang.compiler.transient0.HobgoblinTransient0Builtins body +} diff --git a/src/transient-0/java/org/shedlang/compiler/transient0/HobgoblinTransient0TaggedSharedValue.java b/src/transient-0/java/org/shedlang/compiler/transient0/HobgoblinTransient0TaggedSharedValue.java new file mode 100644 index 00000000..d918276f --- /dev/null +++ b/src/transient-0/java/org/shedlang/compiler/transient0/HobgoblinTransient0TaggedSharedValue.java @@ -0,0 +1,22 @@ +// Generated by hobgoblin. + +package org.shedlang.compiler.transient0; + +// Custom area start: org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue imports +// Custom area end: org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue imports + +public record HobgoblinTransient0TaggedSharedValue( + long typeId, + java.lang.Object value +) { + public boolean equals(java.lang.Object other) { + return other instanceof org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue otherSharedValue && this.typeId == otherSharedValue.typeId && this.value == otherSharedValue.value; + } + + public int hashCode() { + return 37 * (37 * 17 + java.lang.Long.hashCode(this.typeId)) + java.lang.System.identityHashCode(this.value); + } + + // Custom area start: org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue body + // Custom area end: org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue body +} diff --git a/src/transient-0/java/org/zwobble/sourcetext/transient0/HobgoblinTransient0Sourcetext.java b/src/transient-0/java/org/zwobble/sourcetext/transient0/HobgoblinTransient0Sourcetext.java new file mode 100644 index 00000000..75b369ae --- /dev/null +++ b/src/transient-0/java/org/zwobble/sourcetext/transient0/HobgoblinTransient0Sourcetext.java @@ -0,0 +1,95 @@ +// Generated by hobgoblin. + +package org.zwobble.sourcetext.transient0; + +// Custom area start: org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext imports +import org.shedlang.compiler.transient0.HobgoblinTransient0Builtins; +import org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue; +import org.zwobble.sourcetext.SourceText; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; +// Custom area end: org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext imports + +public final class HobgoblinTransient0Sourcetext { + public static void encodeSourceRange(org.zwobble.sourcetext.SourceRange value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + { + var existingId = sharedValues.get(new org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue(0, value.sourceText())); + if (existingId != null) { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64(existingId, outputStream, sharedValues); + } else { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64(sharedValues.size(), outputStream, sharedValues); + sharedValues.put(new org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue(0, value.sourceText()), (long) sharedValues.size()); + org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext.encodeSourceText(value.sourceText(), outputStream, sharedValues); + } + } + org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext.encodeSourcePosition(value.start(), outputStream, sharedValues); + org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext.encodeSourcePosition(value.end(), outputStream, sharedValues); + } + + public static org.zwobble.sourcetext.SourceRange decodeSourceRange(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var sourceText$id = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + org.zwobble.sourcetext.SourceText sourceText; + if (sourceText$id < sharedValues.size()) { + sourceText = (org.zwobble.sourcetext.SourceText) sharedValues.get((int) sourceText$id); + } else { + var sourceText$decodedValue = org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext.decodeSourceText(inputStream, sharedValues); + sharedValues.add(sourceText$decodedValue); + sourceText = sourceText$decodedValue; + } + var start = org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext.decodeSourcePosition(inputStream, sharedValues); + var end = org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext.decodeSourcePosition(inputStream, sharedValues); + return new org.zwobble.sourcetext.SourceRange(sourceText, start, end); + } + + public static void encodeSourcePosition(org.zwobble.sourcetext.SourcePosition value, java.io.OutputStream outputStream, java.util.Map<org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException { + { + var existingId = sharedValues.get(new org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue(0, value.sourceText())); + if (existingId != null) { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64(existingId, outputStream, sharedValues); + } else { + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt64(sharedValues.size(), outputStream, sharedValues); + sharedValues.put(new org.shedlang.compiler.transient0.HobgoblinTransient0TaggedSharedValue(0, value.sourceText()), (long) sharedValues.size()); + org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext.encodeSourceText(value.sourceText(), outputStream, sharedValues); + } + } + org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.encodeInt32(value.characterIndex(), outputStream, sharedValues); + } + + public static org.zwobble.sourcetext.SourcePosition decodeSourcePosition(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException { + var sourceText$id = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt64(inputStream, sharedValues); + org.zwobble.sourcetext.SourceText sourceText; + if (sourceText$id < sharedValues.size()) { + sourceText = (org.zwobble.sourcetext.SourceText) sharedValues.get((int) sourceText$id); + } else { + var sourceText$decodedValue = org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext.decodeSourceText(inputStream, sharedValues); + sharedValues.add(sourceText$decodedValue); + sourceText = sourceText$decodedValue; + } + var characterIndex = org.shedlang.compiler.transient0.HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues); + return new org.zwobble.sourcetext.SourcePosition(sourceText, characterIndex); + } + + // Custom area start: org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext body + private static void encodeSourceText( + SourceText sourceText, + OutputStream outputStream, + Map<HobgoblinTransient0TaggedSharedValue, Long> sharedValues + ) throws IOException { + HobgoblinTransient0Builtins.encodeString(sourceText.name(), outputStream, sharedValues); + HobgoblinTransient0Builtins.encodeString(sourceText.charSequence().toString(), outputStream, sharedValues); + } + + private static SourceText decodeSourceText( + InputStream inputStream, + List<Object> sharedValues + ) throws IOException { + var name = HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + var contents = HobgoblinTransient0Builtins.decodeString(inputStream, sharedValues); + return SourceText.fromString(name, contents); + } + // Custom area end: org.zwobble.sourcetext.transient0.HobgoblinTransient0Sourcetext body +} |
