diff options
| author | Cliff Click <cliffc@acm.org> | 2026-09-23 16:35:50 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-09-23 16:35:50 -0700 |
| commit | 0f32001b466def0cee753557ad6e296cf15e2504 (patch) | |
| tree | 9e16038c574407bbd3f5c21f469c2df71e6835f8 /chapter24/src/main/java/com | |
| parent | 695429df954b084d2226fe2a6c1a47e1861bcc01 (diff) | |
| download | Simple-0f32001b466def0cee753557ad6e296cf15e2504.tar.gz Simple-0f32001b466def0cee753557ad6e296cf15e2504.zip | |
Keyboard shortcuts
Fast forward/reverse, pick-a-frame.
Shorter type names.
Diffstat (limited to 'chapter24/src/main/java/com')
4 files changed, 20 insertions, 4 deletions
diff --git a/chapter24/src/main/java/com/seaofnodes/simple/type/TypeFunPtr.java b/chapter24/src/main/java/com/seaofnodes/simple/type/TypeFunPtr.java index 9fb86d96..50743f69 100644 --- a/chapter24/src/main/java/com/seaofnodes/simple/type/TypeFunPtr.java +++ b/chapter24/src/main/java/com/seaofnodes/simple/type/TypeFunPtr.java @@ -236,9 +236,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/chapter24/src/main/java/com/seaofnodes/simple/type/TypeMem.java b/chapter24/src/main/java/com/seaofnodes/simple/type/TypeMem.java index 99b19c75..d5ee8bd8 100644 --- a/chapter24/src/main/java/com/seaofnodes/simple/type/TypeMem.java +++ b/chapter24/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/chapter24/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java b/chapter24/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java index 689b73ce..a07796e2 100644 --- a/chapter24/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java +++ b/chapter24/src/main/java/com/seaofnodes/simple/type/TypeMemPtr.java @@ -135,14 +135,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/chapter24/src/main/java/com/seaofnodes/simple/type/TypeStruct.java b/chapter24/src/main/java/com/seaofnodes/simple/type/TypeStruct.java index 1cabbe32..3215fe91 100644 --- a/chapter24/src/main/java/com/seaofnodes/simple/type/TypeStruct.java +++ b/chapter24/src/main/java/com/seaofnodes/simple/type/TypeStruct.java @@ -392,6 +392,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()); @@ -405,7 +407,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=="[]"; } |
