summaryrefslogtreecommitdiff
path: root/chapter23/src/main/java/com
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 /chapter23/src/main/java/com
parent695429df954b084d2226fe2a6c1a47e1861bcc01 (diff)
downloadSimple-0f32001b466def0cee753557ad6e296cf15e2504.tar.gz
Simple-0f32001b466def0cee753557ad6e296cf15e2504.zip
Keyboard shortcuts
Fast forward/reverse, pick-a-frame. Shorter type names.
Diffstat (limited to 'chapter23/src/main/java/com')
-rw-r--r--chapter23/src/main/java/com/seaofnodes/simple/type/TypeFunPtr.java8
-rw-r--r--chapter23/src/main/java/com/seaofnodes/simple/type/TypeMem.java2
-rw-r--r--chapter23/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java6
-rw-r--r--chapter23/src/main/java/com/seaofnodes/simple/type/TypeStruct.java8
4 files changed, 20 insertions, 4 deletions
diff --git a/chapter23/src/main/java/com/seaofnodes/simple/type/TypeFunPtr.java b/chapter23/src/main/java/com/seaofnodes/simple/type/TypeFunPtr.java
index 82631121..cbf06e0c 100644
--- a/chapter23/src/main/java/com/seaofnodes/simple/type/TypeFunPtr.java
+++ b/chapter23/src/main/java/com/seaofnodes/simple/type/TypeFunPtr.java
@@ -231,9 +231,15 @@ public class TypeFunPtr extends TypeNil {
return true;
}
- @Override public String str() { return "{"+printFIDX()+"}"; }
+ @Override public String str() {
+ if( this==BOT ) return "FunBot";
+ if( this==BOT.dual() ) return "FunTop";
+ return "{"+printFIDX()+"}";
+ }
SB _print(SB sb, BitSet visit, boolean html ) {
+ if( this==BOT ) return sb.p("FunBot");
+ if( this==BOT.dual() ) return sb.p("FunTop");
sb.p(x()).p("{ ");
if( _sig!=null )
for( Type t : _sig )
diff --git a/chapter23/src/main/java/com/seaofnodes/simple/type/TypeMem.java b/chapter23/src/main/java/com/seaofnodes/simple/type/TypeMem.java
index 99b19c75..d5ee8bd8 100644
--- a/chapter23/src/main/java/com/seaofnodes/simple/type/TypeMem.java
+++ b/chapter23/src/main/java/com/seaofnodes/simple/type/TypeMem.java
@@ -99,6 +99,8 @@ public class TypeMem extends Type {
@Override void set( int idx, Type t ) { _t = t; }
@Override public SB _print(SB sb, BitSet visit, boolean html) {
+ if( this==BOT ) return sb.p("MemBot");
+ if( this==TOP ) return sb.p("MemTop");
sb.p("#");
if( _alias==0 ) return sb.p(_t._type==TTOP ? "TOP" : "BOT");
return _t.print(sb.p(_alias).p(":"),visit,html);
diff --git a/chapter23/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java b/chapter23/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java
index 6041155d..ffbc71da 100644
--- a/chapter23/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java
+++ b/chapter23/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java
@@ -134,14 +134,16 @@ public class TypeMemPtr extends TypeNil {
@Override void set( int idx, Type t ) { _obj = (TypeStruct)t; }
@Override public String str() {
+ if( this==BOT ) return "PtrBot";
+ if( this==TOP ) return "PtrTop";
if( this== NOTBOT) return "*void";
- if( this== BOT) return "*void?";
return x()+"*"+_obj.str()+q();
}
@Override SB _print(SB sb, BitSet visit, boolean html ) {
+ if( this==BOT ) return sb.p("PtrBot");
+ if( this==TOP ) return sb.p("PtrTop");
if( this== NOTBOT) return sb.p("*void");
- if( this== BOT) return sb.p("*void?");
return _obj.print(sb.p(x()).p("*"),visit,html).p(q());
}
}
diff --git a/chapter23/src/main/java/com/seaofnodes/simple/type/TypeStruct.java b/chapter23/src/main/java/com/seaofnodes/simple/type/TypeStruct.java
index 73fecdab..dc796ffd 100644
--- a/chapter23/src/main/java/com/seaofnodes/simple/type/TypeStruct.java
+++ b/chapter23/src/main/java/com/seaofnodes/simple/type/TypeStruct.java
@@ -386,6 +386,8 @@ public class TypeStruct extends Type {
@Override
SB _print(SB sb, BitSet visit, boolean html ) {
+ if( this==BOT ) return sb.p("StructBot");
+ if( this==TOP ) return sb.p("StructTop");
if( isFree() ) return sb.p("FREE:").p(_name);
if( isAry() && field("[]")._t instanceof TypeConAry con )
return sb.p(con.str());
@@ -399,7 +401,11 @@ public class TypeStruct extends Type {
return sb.p("}");
}
- @Override public String str() { return (isFree() ? "FREE:":"")+_name; }
+ @Override public String str() {
+ if( this==BOT ) return "StructBot";
+ if( this==TOP ) return "StructTop";
+ return (isFree() ? "FREE:":"")+_name;
+ }
public boolean isAry() { return _fields.length>=2 && _fields[_fields.length-1]._fname=="[]"; }