summaryrefslogtreecommitdiff
path: root/chapter22/src/main/java/com/seaofnodes
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2025-05-08 13:38:45 -0700
committerCliff Click <cliffc@acm.org>2025-05-08 13:38:45 -0700
commitf1c1c070f0491cba8b18f3169e72e9a1df8f1a2a (patch)
treed6b3a7c903daf0d3f953e40f877030d86b690377 /chapter22/src/main/java/com/seaofnodes
parenta174b75edab35f078455b4b9a737f383a3be55a3 (diff)
downloadSimple-f1c1c070f0491cba8b18f3169e72e9a1df8f1a2a.tar.gz
Simple-f1c1c070f0491cba8b18f3169e72e9a1df8f1a2a.zip
Work on a cmd-line driver for Simple
Diffstat (limited to 'chapter22/src/main/java/com/seaofnodes')
-rw-r--r--chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAry.java2
-rw-r--r--chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryB.java2
-rw-r--r--chapter22/src/main/java/com/seaofnodes/simple/type/TypeStruct.java3
3 files changed, 4 insertions, 3 deletions
diff --git a/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAry.java b/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAry.java
index 8a19c9d7..29496af6 100644
--- a/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAry.java
+++ b/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAry.java
@@ -51,7 +51,7 @@ public class TypeConAry<A> extends Type {
}
return TypeInteger.make(min,max);
}
- long at(int idx) { throw Utils.TODO(); }
+ public long at(int idx) { throw Utils.TODO(); }
public int len() { throw Utils.TODO(); }
@Override public int alignment() { return 0; }
public void write( ByteArrayOutputStream baos ) { throw Utils.TODO(); }
diff --git a/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryB.java b/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryB.java
index 34475ac1..c057c6a5 100644
--- a/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryB.java
+++ b/chapter22/src/main/java/com/seaofnodes/simple/type/TypeConAryB.java
@@ -11,7 +11,7 @@ public class TypeConAryB extends TypeConAry<byte[]> {
static final TypeConAryB ABC = make("abc");
static final TypeConAryB ABCD = make("abcd");
public static void gather(ArrayList<Type> ts) { ts.add(ABC); ts.add(ABCD); }
- @Override long at(int idx) { return _ary[idx]; }
+ @Override public long at(int idx) { return _ary[idx]; }
@Override public int len() { return _ary.length; }
@Override public int alignment() { return 0; }
@Override public String str() { return "[\""+new String(_ary)+"\"]"; }
diff --git a/chapter22/src/main/java/com/seaofnodes/simple/type/TypeStruct.java b/chapter22/src/main/java/com/seaofnodes/simple/type/TypeStruct.java
index 827e85f0..66a37d41 100644
--- a/chapter22/src/main/java/com/seaofnodes/simple/type/TypeStruct.java
+++ b/chapter22/src/main/java/com/seaofnodes/simple/type/TypeStruct.java
@@ -241,7 +241,8 @@ public class TypeStruct extends Type {
public SB print(SB sb) {
if( _con!=TypeConAry.BOT ) return sb.p(_con.str());
sb.p(_name);
- if( _fields == null || isAry() ) return sb; // Forward reference struct, just print the name
+ if( _fields == null || isAry() ) // Forward reference struct, just print the name
+ return sb.p(isFinal() ? "" : "!");
sb.p(" {");
for( Field f : _fields )
f._type.print(sb).p(f._final ? " " : " !").p(f._fname).p("; ");