|
static Ary< Type > | ALL_TYPES () |
|
static boolean | eq (Type[] t0, Type[] t1) |
|
static void | init0 (HashMap< String, Type > types) |
|
static boolean | intern_check () |
|
static TypeTuple | make () |
|
static TypeTuple | make (Type t0, Type t1) |
|
static TypeTuple | make (Type t0, Type t1, Type t2) |
|
static TypeTuple | make (Type t0, Type t1, Type t2, Type t3) |
|
static TypeTuple | make (Type t0, Type t1, Type t2, Type t3, Type t4) |
|
static TypeTuple | make (Type t0, Type t1, Type t2, Type t3, Type t4, Type t5) |
|
static TypeTuple | make (Type[] ts) |
|
static TypeTuple | make (TypeStruct ts) |
|
static TypeTuple | make0 (boolean any, Type[] ts) |
|
static TypeTuple | make_args () |
|
static TypeTuple | make_args (Type t2) |
|
static TypeTuple | make_args (Type t2, Type t3) |
|
static TypeTuple | make_args (Type t2, Type t3, Type t4) |
|
static TypeTuple | make_args (Type[] ts) |
|
static TypeTuple | make_ret (Type trez) |
|
|
static final Type | ALL |
|
static final Type | ANY |
|
static final TypeTuple | CALLE = make(CTRL, TypeMem.ALLMEM, ALL) |
|
static final Type | CTRL |
|
static final TypeTuple | FLT64 = make_args(TypeFlt.FLT64) |
|
static final TypeTuple | FLT64_FLT64 = make_args(TypeFlt.FLT64,TypeFlt.FLT64) |
|
static final TypeTuple | IF_ALL = make(CTRL ,CTRL ) |
|
static final TypeTuple | IF_ANY = IF_ALL.dual() |
|
static final TypeTuple | IF_FALSE = make(CTRL ,XCTRL) |
|
static final TypeTuple | IF_TRUE = make(XCTRL,CTRL ) |
|
static final TypeTuple | INT64 = make_args(TypeInt.INT64) |
|
static final TypeTuple | INT64_INT64 = make_args(TypeInt.INT64,TypeInt.INT64) |
|
static final TypeTuple | LVAL_LEN = make_args(TypeMemPtr.ARYPTR) |
|
static final TypeTuple | LVAL_RD = make_args(TypeMemPtr.ARYPTR,TypeInt.INT64) |
|
static final TypeTuple | LVAL_WR = make_args(TypeMemPtr.ARYPTR,TypeInt.INT64,Type.SCALAR) |
|
static final Type | NIL |
|
static final TypeTuple | NO_ARGS = make_args() |
|
static final Type | NSCALR |
|
static final TypeTuple | OOP_OOP = make_args(TypeMemPtr.ISUSED0,TypeMemPtr.ISUSED0) |
|
static final Type | REAL |
|
static int | RECURSIVE_MEET |
|
static final TypeTuple | RET = make(CTRL, TypeMem.ALLMEM, ALL) |
|
static final Type | SCALAR |
|
static final TypeTuple | SCALAR1 = make_args(SCALAR) |
|
static final TypeTuple | START_STATE = make(CTRL, TypeMem.EMPTY) |
|
static final TypeTuple | STRPTR = make_args(TypeMemPtr.STRPTR) |
|
static final TypeTuple | TEST0 = make(CTRL, TypeMem.MEM , TypeFunPtr.GENERIC_FUNPTR, SCALAR) |
|
static final TypeTuple | TEST1 = make(CTRL, TypeMem.EMPTY, TypeFunPtr.GENERIC_FUNPTR, SCALAR) |
|
static final Type | XCTRL |
|
static final Type | XNIL |
|
static final Type | XNSCALR |
|
static final Type | XSCALAR |
|
Definition at line 11 of file TypeTuple.java.
◆ [static initializer]()
com.cliffc.aa.type.TypeTuple.[static initializer] |
|
staticpackage |
◆ _set_name()
Definition at line 558 of file Type.java.
562 return t1.hashcons_free();
◆ _uid()
◆ above()
Definition at line 625 of file Type.java.
625 {
return t !=
this &&
meet(t)==t; }
◆ above_center()
boolean com.cliffc.aa.type.TypeTuple.above_center |
( |
| ) |
|
◆ ALL_TYPES()
Definition at line 651 of file Type.java.
656 concat(ts,TypeFunPtr.TYPES);
657 concat(ts,TypeFunSig.TYPES);
661 concat(ts,TypeMemPtr.TYPES);
665 concat(ts,TypeStruct.TYPES);
671 for(
int i=0; i<ts.
_len; i++ )
672 for(
int j=i+1; j<ts.
_len; j++ )
◆ at()
Type com.cliffc.aa.type.TypeTuple.at |
( |
int |
idx | ) |
|
Definition at line 182 of file TypeTuple.java.
References com.cliffc.aa.type.TypeTuple._ts.
Referenced by com.cliffc.aa.tvar.TV2._find_tvar(), com.cliffc.aa.node.TestNodeSmall._testMonotonicChain(), com.cliffc.aa.node.PrimNode.ConvertTypeName.apply(), com.cliffc.aa.node.FunNode.bad_mem_use(), com.cliffc.aa.node.CallNode.err(), com.cliffc.aa.node.CallNode.escapees(), com.cliffc.aa.node.CEProjNode.good_call(), com.cliffc.aa.node.AssertNode.ideal_grow(), com.cliffc.aa.node.CallEpiNode.ideal_reduce(), com.cliffc.aa.node.IntrinsicNode.ideal_reduce(), com.cliffc.aa.node.FunNode.ideal_reduce(), com.cliffc.aa.type.TypeFunSig.init(), com.cliffc.aa.node.CallNode.least_cost(), com.cliffc.aa.node.PrimNode.PrimNode(), com.cliffc.aa.GVNGCM.retype_mem(), com.cliffc.aa.node.CallNode.tesc(), com.cliffc.aa.node.CallNode.ttfp(), com.cliffc.aa.node.CallNode.ttfpx(), com.cliffc.aa.node.MProjNode.value(), com.cliffc.aa.node.PrimNode.value(), and com.cliffc.aa.node.PrimNode.xstr().
◆ check_commute()
Definition at line 593 of file Type.java.
594 if( t==
this )
return true;
601 if( mt==nmt2 )
return true;
602 System.out.println(
"Meet not commutative: "+
this+
".meet("+t+
")="+mt+
",\n but "+t+
".meet("+
this+
")="+nmt2);
◆ check_name()
Definition at line 548 of file Type.java.
548 {
return n.isEmpty() || n.charAt(n.length()-1)==
':'; }
◆ check_startup()
Definition at line 684 of file Type.java.
689 for(
Type t1 : ts ) {
692 assert t0.check_symmetric(t1,mt);
699 for(
Type t2 : ts ) {
704 if( t01_2 != t0_12 && errs++ < 10 )
705 System.err.println(
"("+t0+
"&"+t1+
") & "+t2+
" == "+t0+
" & ("+t1+
" & "+t2+
"); "+
706 "("+t01 +
") & "+t2+
" == "+t0+
" & ("+t12 +
"); "+
707 t01_2 +
" == "+t0_12);
709 assert errs==0 :
"Found "+errs+
" associative errors";
714 for(
Type t1 : ts ) {
716 for(
Type t2 : ts ) {
720 if( mt != t12 && errs++ < 10 ) {
721 System.err.println(
"("+t0+
" ^ "+t2+
") = "+t02+
"; "+
722 "("+t1+
" ^ "+t2+
") = "+t12+
"; "+
723 "their meet = "+mt+
" which is not "+t12);
728 assert errs==0 :
"Found "+errs+
" non-join-type errors";
731 SCALAR_PRIMS =
new Type[] { TypeInt.INT64, TypeFlt.FLT64, TypeMemPtr.OOP0, TypeFunPtr.GENERIC_FUNPTR, TypeRPC.ALL_CALL };
◆ check_symmetric()
Definition at line 608 of file Type.java.
609 if( t==
this )
return true;
613 System.err.print(
"("+
this+
" & "+t+
")=="+mt+
" but \n("+mt.
_dual+
" & ");
614 if( ta!=t.
_dual ) System.err.println(t.
_dual+
")=="+ta+
" \nwhich is not "+t.
_dual);
615 else System.err.println(
_dual+
")=="+tb+
" \nwhich is not "+
_dual);
◆ clone()
Definition at line 304 of file Type.java.
311 if( t instanceof TypeStruct )
312 ((TypeStruct)t)._cyclic =
false;
315 catch( CloneNotSupportedException cns ) {
throw new RuntimeException(cns); }
◆ compute_hash()
int com.cliffc.aa.type.TypeTuple.compute_hash |
( |
| ) |
|
Definition at line 25 of file TypeTuple.java.
29 a = b = c = 0xdeadbeef + (
_ts.length<<2) + hash;
30 for( i=0; i+2<
_ts.length; i+=3 ) {
34 a -= c; a ^=
rot(c, 4); c += b;
35 b -= a; b ^=
rot(a, 6); a += c;
36 c -= b; c ^=
rot(b, 8); b += a;
37 a -= c; a ^=
rot(c,16); c += b;
38 b -= a; b ^=
rot(a,19); a += c;
39 c -= b; c ^=
rot(b, 4); b += a;
41 switch(
_ts.length-i) {
45 c ^= b; c -=
rot(b,14);
46 a ^= c; a -=
rot(c,11);
47 b ^= a; b -=
rot(a,25);
48 c ^= b; c -=
rot(b,16);
49 a ^= c; a -=
rot(c, 4);
50 b ^= a; b -=
rot(a,14);
51 c ^= b; c -=
rot(b,24);
References com.cliffc.aa.type.TypeTuple._any, com.cliffc.aa.type.Type< T extends Type< T >._hash, com.cliffc.aa.type.TypeTuple._ts, com.cliffc.aa.type.TypeTuple.rot(), and com.cliffc.aa.type.Type< TypeTuple >.TTUPLE.
◆ concat()
Definition at line 676 of file Type.java.
677 for(
Type t1 : ts1 ) {
678 assert !t1.above_center();
680 if( t1!=t1.dual() ) ts.
push(t1.dual());
◆ contains() [1/2]
◆ contains() [2/2]
◆ cross_nil()
◆ cycle_equals()
boolean com.cliffc.aa.type.TypeTuple.cycle_equals |
( |
Type |
o | ) |
|
◆ dual()
◆ eq()
Definition at line 136 of file Type.java.
137 if( t0==t1 )
return true;
138 if( t0==
null || t1==
null )
return false;
139 if( t0.length != t1.length )
return false;
140 for(
int i=0; i<t0.length; i++ )
◆ equals()
boolean com.cliffc.aa.type.TypeTuple.equals |
( |
Object |
o | ) |
|
◆ getd()
◆ getl()
◆ getstr()
◆ has_name()
◆ hashCode()
◆ hashcons()
Definition at line 165 of file Type.java.
167 T t2 = (T)
INTERN.get(
this);
169 assert t2._dual !=
null;
180 d._hash = d.compute_hash();
182 if(
this==d )
return d;
184 assert d._dual==
null;
185 assert
INTERN.get(d)==
null;
◆ hashcons_free()
◆ high()
◆ init() [1/2]
TypeTuple com.cliffc.aa.type.TypeTuple.init |
( |
boolean |
any, |
|
|
Type[] |
ts |
|
) |
| |
|
protected |
◆ init() [2/2]
◆ init0()
Definition at line 642 of file Type.java.
643 types.put(
"real",
REAL);
644 types.put(
"scalar",
SCALAR);
645 TypeInt.init1(types);
646 TypeFlt.init1(types);
647 TypeStr.init1(types);
◆ intern_check()
Definition at line 212 of file Type.java.
216 if( !k.intern_check0(v) ) {
217 System.out.println(
"INTERN_CHECK FAIL: "+k._uid+
":"+k+
" vs "+v.
_uid+
":"+v);
◆ intern_check0()
◆ intern_check1()
◆ intern_find()
◆ intern_lookup()
◆ intern_size()
◆ interned()
◆ is_con()
boolean com.cliffc.aa.type.TypeTuple.is_con |
( |
| ) |
|
◆ is_display()
◆ is_display_ptr()
◆ is_forward_ref()
◆ is_num()
◆ is_ptr()
◆ is_simple()
◆ isa()
◆ isa_scalar()
◆ isBitShape()
byte com.cliffc.aa.type.TypeTuple.isBitShape |
( |
Type |
t | ) |
|
◆ join()
◆ len()
int com.cliffc.aa.type.TypeTuple.len |
( |
| ) |
|
◆ make() [1/10]
static TypeTuple com.cliffc.aa.type.TypeTuple.make |
( |
| ) |
|
|
static |
◆ make() [2/10]
static TypeTuple com.cliffc.aa.type.TypeTuple.make |
( |
boolean |
any, |
|
|
Type[] |
ts |
|
) |
| |
|
staticprivate |
Definition at line 82 of file TypeTuple.java.
84 return t1.init(any,ts).hashcons_free();
References com.cliffc.aa.type.Type< T extends Type< T >.hashcons_free(), com.cliffc.aa.type.TypeTuple.init(), com.cliffc.aa.type.Type< TypeTuple >.POOLS, and com.cliffc.aa.type.Type< TypeTuple >.TTUPLE.
Referenced by com.cliffc.aa.node.NewStrNode.AddStrStr._value(), com.cliffc.aa.node.IntrinsicNode.convertTypeNameStruct(), com.cliffc.aa.node.TestNodeSmall.testCallNodeResolve(), com.cliffc.aa.node.TestNodeSmall.testCallNodeResolve2(), com.cliffc.aa.node.MemSplitNode.value(), com.cliffc.aa.node.NewStrNode.AddStrStr.value(), com.cliffc.aa.node.NewNode< TypeStruct >.value(), com.cliffc.aa.node.RetNode.value(), com.cliffc.aa.node.CallEpiNode.value(), and com.cliffc.aa.node.CallNode.value().
◆ make() [3/10]
Definition at line 147 of file Type.java.
148 Pool P =
POOLS[type];
149 Type t1 = P.malloc();
150 return t1.
init(type,
"").hashcons_free();
◆ make() [4/10]
◆ make() [5/10]
◆ make() [6/10]
◆ make() [7/10]
◆ make() [8/10]
◆ make() [9/10]
◆ make() [10/10]
◆ make0()
static TypeTuple com.cliffc.aa.type.TypeTuple.make0 |
( |
boolean |
any, |
|
|
Type[] |
ts |
|
) |
| |
|
static |
◆ make_args() [1/5]
static TypeTuple com.cliffc.aa.type.TypeTuple.make_args |
( |
| ) |
|
|
static |
◆ make_args() [2/5]
static TypeTuple com.cliffc.aa.type.TypeTuple.make_args |
( |
Type |
t2 | ) |
|
|
static |
◆ make_args() [3/5]
◆ make_args() [4/5]
◆ make_args() [5/5]
static TypeTuple com.cliffc.aa.type.TypeTuple.make_args |
( |
Type[] |
ts | ) |
|
|
static |
Definition at line 106 of file TypeTuple.java.
107 assert ts[MEM_IDX] instanceof TypeMem && ts[DSP_IDX].is_display_ptr();
References com.cliffc.aa.type.Type< T extends Type< T >.is_display_ptr(), and com.cliffc.aa.type.TypeTuple.make().
Referenced by com.cliffc.aa.HM.HM9.Root.add_sig(), com.cliffc.aa.HM.HM.Root.add_sig(), com.cliffc.aa.node.IntrinsicNode.convertTypeName(), com.cliffc.aa.node.PrimNode.ConvertTypeName.ConvertTypeName(), com.cliffc.aa.node.FunNode.FunNode(), com.cliffc.aa.node.PrimNode.Id.Id(), com.cliffc.aa.type.TypeFunSig.make(), com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< TypeAry >.NewPrimNode(), com.cliffc.aa.node.TestNodeSmall.testMemoryArgs(), com.cliffc.aa.node.TestNodeSmall.testRecursiveDisplay(), com.cliffc.aa.HM.TestHM.tfs(), com.cliffc.aa.HM.TestHM9.tfs(), com.cliffc.aa.Parse.type0(), and com.cliffc.aa.node.FunNode.type_special().
◆ make_from()
◆ make_from_arg()
TypeTuple com.cliffc.aa.type.TypeTuple.make_from_arg |
( |
int |
idx, |
|
|
Type |
arg |
|
) |
| |
◆ make_ret()
static TypeTuple com.cliffc.aa.type.TypeTuple.make_ret |
( |
Type |
trez | ) |
|
|
static |
Definition at line 120 of file TypeTuple.java.
120 {
return make(
Type.CTRL,TypeMem.ANYMEM,trez); }
References com.cliffc.aa.type.TypeMem.ANYMEM, com.cliffc.aa.type.Type< T extends Type< T >.CTRL, and com.cliffc.aa.type.TypeTuple.make().
Referenced by com.cliffc.aa.HM.HM9.Root.add_sig(), com.cliffc.aa.HM.HM.Root.add_sig(), com.cliffc.aa.node.IntrinsicNode.convertTypeName(), com.cliffc.aa.node.IntrinsicNode.convertTypeNameStruct(), com.cliffc.aa.node.PrimNode.PrimNode(), com.cliffc.aa.HM.TestHM.tfs(), com.cliffc.aa.HM.TestHM9.tfs(), and com.cliffc.aa.Parse.type0().
◆ may_be_con()
boolean com.cliffc.aa.type.TypeTuple.may_be_con |
( |
| ) |
|
◆ may_nil()
◆ meet()
Definition at line 412 of file Type.java.
414 if( t ==
this )
return this;
416 Type mt = Key.get(
this,t);
417 if( mt !=
null )
return mt;
◆ meet_loop()
◆ meet_nil()
Type com.cliffc.aa.type.TypeTuple.meet_nil |
( |
Type |
t | ) |
|
◆ mtname()
Definition at line 567 of file Type.java.
568 Type t0 =
this, t1 = t;
569 String s0 = t0.
_name, s1 = t1._name;
571 if(
Util.
eq(s0,s1) )
return s0;
573 if( s0.length() > s1.length() ) { t1=
this; t0=t; s0=t0.
_name; s1=t1._name; }
574 int x = 0, i;
char c;
576 for( i = 0; i < s0.length(); i++ ) {
577 if( (c=s0.charAt(i)) != s1.charAt(i) )
585 String s2 = i==s0.length() ? s0 : s0.substring(0, x).intern();
◆ must_nil()
boolean com.cliffc.aa.type.TypeTuple.must_nil |
( |
| ) |
|
◆ not_nil()
Type com.cliffc.aa.type.TypeTuple.not_nil |
( |
| ) |
|
|
package |
◆ oob() [1/6]
◆ oob() [2/6]
◆ oob() [3/6]
◆ oob() [4/6]
◆ oob() [5/6]
◆ oob() [6/6]
◆ oob_deep()
◆ oop_deep_impl()
◆ rdual()
◆ remove_name()
◆ repeats_in_cycles()
◆ retern()
◆ rot()
static int com.cliffc.aa.type.TypeTuple.rot |
( |
int |
x, |
|
|
int |
k |
|
) |
| |
|
staticprivate |
◆ set()
◆ set_name()
◆ sharptr() [1/2]
◆ sharptr() [2/2]
◆ simple_ptr()
Type com.cliffc.aa.type.TypeTuple.simple_ptr |
( |
| ) |
|
◆ str()
Definition at line 65 of file TypeTuple.java.
68 if(
_ts!=
null &&
_ts.length>0 ) {
71 for( j--; j>0; j-- )
if(
_ts[j] != last )
break;
72 _ts[0].
str(sb,dups,mem,debug);
73 for(
int i=1; i<=j+1; i++ )
74 _ts[i].
str(sb.p(
','),dups,mem,debug);
75 if( j+2<
_ts.length-1 ) sb.
p(
"...");
76 if(
_ts.length> j+2 ) last.str(sb.p(
','),dups,mem,debug);
References com.cliffc.aa.type.TypeTuple._any, com.cliffc.aa.type.TypeTuple._ts, com.cliffc.aa.util.SB.p(), and com.cliffc.aa.type.Type< T extends Type< T >.str().
Referenced by com.cliffc.aa.type.TypeFunSig.str().
◆ toString()
◆ typerr()
Definition at line 947 of file Type.java.
948 throw new RuntimeException(
"Should not reach here: internal type system error with "+
this+(t==
null?
"":(
" and "+t)));
◆ untern()
◆ walk()
◆ widen()
TypeTuple com.cliffc.aa.type.TypeTuple.widen |
( |
| ) |
|
◆ xdual()
TypeTuple com.cliffc.aa.type.TypeTuple.xdual |
( |
| ) |
|
|
protected |
◆ xmeet()
Type com.cliffc.aa.type.TypeTuple.xmeet |
( |
Type |
t | ) |
|
|
protected |
◆ xmeet1()
◆ xmt_name()
◆ _any
boolean com.cliffc.aa.type.TypeTuple._any |
|
package |
◆ _dual
◆ _hash
◆ _name
◆ _ts
Type [] com.cliffc.aa.type.TypeTuple._ts |
Definition at line 13 of file TypeTuple.java.
Referenced by com.cliffc.aa.node.TestNodeSmall._testMonotonicChain(), com.cliffc.aa.type.TypeFunSig.arg(), com.cliffc.aa.type.TypeTuple.at(), com.cliffc.aa.type.TypeTuple.compute_hash(), com.cliffc.aa.type.TypeTuple.equals(), com.cliffc.aa.type.TypeTuple.init(), com.cliffc.aa.type.TypeTuple.is_con(), com.cliffc.aa.type.TypeTuple.isBitShape(), com.cliffc.aa.node.CallNode.least_cost(), com.cliffc.aa.type.TypeTuple.len(), com.cliffc.aa.type.TypeTuple.make_from_arg(), com.cliffc.aa.type.TypeTuple.may_be_con(), com.cliffc.aa.type.TypeFunSig.nargs(), com.cliffc.aa.type.TypeTuple.set(), com.cliffc.aa.type.TypeTuple.sharptr(), com.cliffc.aa.type.TypeTuple.simple_ptr(), com.cliffc.aa.type.TypeTuple.str(), com.cliffc.aa.node.ProjNode.value(), com.cliffc.aa.node.MProjNode.value(), com.cliffc.aa.node.CallEpiNode.value(), com.cliffc.aa.type.TypeTuple.widen(), com.cliffc.aa.type.TypeTuple.xdual(), com.cliffc.aa.type.TypeTuple.xmeet(), and com.cliffc.aa.type.TypeTuple.xmeet1().
◆ _type
◆ _uid
◆ ALL
◆ ALL_TYPES
◆ ANY
◆ CALLE
◆ CNT
◆ CTRL
◆ FLT64
◆ FLT64_FLT64
◆ IF_ALL
◆ IF_ANY
final TypeTuple com.cliffc.aa.type.TypeTuple.IF_ANY = IF_ALL.dual() |
|
static |
◆ IF_FALSE
◆ IF_TRUE
◆ INT64
◆ INT64_INT64
◆ INTERN
◆ ISA_SCALAR
◆ LVAL_LEN
◆ LVAL_RD
◆ LVAL_WR
◆ NIL
◆ NO_ARGS
◆ NREAL
◆ NSCALR
◆ OOP_OOP
◆ POOLS
◆ REAL
◆ RECURSIVE_MEET
◆ RET
Definition at line 130 of file TypeTuple.java.
Referenced by com.cliffc.aa.node.FunNode.FunNode(), com.cliffc.aa.node.CallEpiNode.ideal_reduce(), com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< TypeAry >.NewPrimNode(), com.cliffc.aa.node.FunNode.split_size(), com.cliffc.aa.node.TestNodeSmall.testMemoryArgs(), com.cliffc.aa.node.TestNode.testMonotonic(), com.cliffc.aa.node.TestNodeSmall.testRecursiveDisplay(), com.cliffc.aa.node.ThretNode.value(), com.cliffc.aa.node.RetNode.value(), com.cliffc.aa.node.CallEpiNode.value(), com.cliffc.aa.node.PrimNode.AndThen.value(), and com.cliffc.aa.node.PrimNode.OrElse.value().
◆ SCALAR
◆ SCALAR1
◆ SCALAR_PRIMS
◆ START_STATE
◆ STRPTR
◆ STRS
◆ TALL
◆ TANY
◆ TARY
◆ TCTRL
◆ TEST0
◆ TEST1
◆ TFLD
◆ TFLT
◆ TFUNPTR
◆ TFUNSIG
◆ TINT
◆ TLAST
◆ TLIVE
◆ TMEM
◆ TMEMPTR
◆ TNIL
◆ TNREAL
◆ TNSCALR
◆ TOBJ
◆ TREAL
◆ TRPC
◆ TSCALAR
◆ TSIMPLE
◆ TSTR
◆ TSTRUCT
◆ TTUPLE
◆ TXCTRL
◆ TXNIL
◆ TXNREAL
◆ TXNSCALR
◆ TXREAL
◆ TXSCALAR
◆ TYPES
final TypeTuple [] com.cliffc.aa.type.TypeTuple.TYPES |
|
staticpackage |
◆ XCTRL
◆ XNIL
◆ XNREAL
◆ XNSCALR
◆ XREAL
◆ XSCALAR
The documentation for this class was generated from the following file:
static final byte TMEMPTR
E push(E e)
Add element in amortized constant time.
RuntimeException typerr(Type t)
static boolean eq(String s0, String s1)
static final TypeTuple START_STATE
boolean check_commute(Type t, Type mt)
an implementation of language AA
SB str(SB sb, VBitSet dups, TypeMem mem, boolean debug)
Type xmt_name(Type t, Type mt)
static boolean check_name(String n)
SB str(SB sb, VBitSet dups, TypeMem mem, boolean debug)
static final byte TFUNPTR
static final TypeTuple IF_TRUE
static final byte[] ISA_SCALAR
static Ary< Type > ALL_TYPES
static final byte TXNREAL
TypeTuple xmeet1(TypeTuple tmax)
final T set_name(String name)
static int RECURSIVE_MEET
final boolean contains(Type t)
static TypeTuple make0(boolean any, Type[] ts)
static final TypeTuple FLT64
static final TypeTuple IF_ALL
static final ConcurrentHashMap< Type, Type > INTERN
final String mtname(Type t, Type mt)
T init(byte type, String name)
static final byte TSCALAR
static final Type[] TYPES
static final byte TXSCALAR
Tight/tiny StringBuilder wrapper.
static final byte TSIMPLE
Type oop_deep_impl(Type t)
static Type[] SCALAR_PRIMS
static final TypeTuple STRPTR
static final TypeTuple INT64_INT64
static final TypeTuple CALLE
static final TypeTuple OOP_OOP
static final Pool[] POOLS
static final TypeTuple FLT64_FLT64
static void concat(Ary< Type > ts, Type[] ts1)
static final byte TNSCALR
static final TypeTuple INT64
static int rot(int x, int k)
static final TypeTuple NO_ARGS
static final byte TXNSCALR
static final TypeTuple IF_FALSE
static final TypeTuple TEST1
static final TypeTuple TEST0