summaryrefslogtreecommitdiff
path: root/chapter17/src/main/java
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-09-23 16:35:50 -0700
committerCliff Click <cliffc@acm.org>2026-09-23 16:35:50 -0700
commit0f32001b466def0cee753557ad6e296cf15e2504 (patch)
tree9e16038c574407bbd3f5c21f469c2df71e6835f8 /chapter17/src/main/java
parent695429df954b084d2226fe2a6c1a47e1861bcc01 (diff)
downloadSimple-0f32001b466def0cee753557ad6e296cf15e2504.tar.gz
Simple-0f32001b466def0cee753557ad6e296cf15e2504.zip
Keyboard shortcuts
Fast forward/reverse, pick-a-frame. Shorter type names.
Diffstat (limited to 'chapter17/src/main/java')
-rw-r--r--chapter17/src/main/java/com/seaofnodes/simple/type/TypeMem.java2
-rw-r--r--chapter17/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java4
-rw-r--r--chapter17/src/main/java/com/seaofnodes/simple/type/TypeStruct.java8
3 files changed, 13 insertions, 1 deletions
diff --git a/chapter17/src/main/java/com/seaofnodes/simple/type/TypeMem.java b/chapter17/src/main/java/com/seaofnodes/simple/type/TypeMem.java
index 33c6a8ce..6dcd401a 100644
--- a/chapter17/src/main/java/com/seaofnodes/simple/type/TypeMem.java
+++ b/chapter17/src/main/java/com/seaofnodes/simple/type/TypeMem.java
@@ -57,6 +57,8 @@ public class TypeMem extends Type {
@Override
public StringBuilder print(StringBuilder sb) {
+ if( this==BOT ) return sb.append("MemBot");
+ if( this==TOP ) return sb.append("MemTop");
sb.append("MEM#");
if( _alias== 0 ) return sb.append("TOP");
if( _alias==-1 ) return sb.append("BOT");
diff --git a/chapter17/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java b/chapter17/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java
index c24fccf3..9e33e15d 100644
--- a/chapter17/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java
+++ b/chapter17/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java
@@ -84,12 +84,16 @@ public class TypeMemPtr extends Type {
// [void,name,MANY]*[,?]
@Override
public StringBuilder print(StringBuilder sb) {
+ if( this==BOT ) return sb.append("PtrBot");
+ if( this==TOP ) return sb.append("PtrTop");
if( this== NULLPTR) return sb.append("null");
if( this== VOIDPTR) return sb.append("*void");
return _obj.print(sb.append("*")).append(_nil ? "?" : "");
}
@Override public String str() {
+ if( this==BOT ) return "PtrBot";
+ if( this==TOP ) return "PtrTop";
if( this== NULLPTR) return "null";
if( this== VOIDPTR) return "*void";
return "*"+_obj.str()+(_nil ? "?" : "");
diff --git a/chapter17/src/main/java/com/seaofnodes/simple/type/TypeStruct.java b/chapter17/src/main/java/com/seaofnodes/simple/type/TypeStruct.java
index b3dbcad0..97664e3c 100644
--- a/chapter17/src/main/java/com/seaofnodes/simple/type/TypeStruct.java
+++ b/chapter17/src/main/java/com/seaofnodes/simple/type/TypeStruct.java
@@ -196,6 +196,8 @@ public class TypeStruct extends Type {
@Override
public StringBuilder print(StringBuilder sb) {
+ if( this==BOT ) return sb.append("StructBot");
+ if( this==TOP ) return sb.append("StructTop");
sb.append(_name);
if( _fields == null ) return sb; // Forward reference struct, just print the name
sb.append(" {");
@@ -204,7 +206,11 @@ public class TypeStruct extends Type {
return sb.append("}");
}
- @Override public String str() { return _name; }
+ @Override public String str() {
+ if( this==BOT ) return "StructBot";
+ if( this==TOP ) return "StructTop";
+ return _name;
+ }
public boolean isAry() { return _fields.length==2 && _fields[1]._fname.equals("[]"); }