aa
|
Hindley-Milner typing. More...
Classes | |
class | Apply |
class | Con |
class | HMType |
class | HMVar |
class | Ident |
class | Lambda |
class | Lambda2 |
class | Let |
class | Oper |
class | Syntax |
Static Public Member Functions | |
static HMType | HM (Syntax prog) |
Static Package Functions | |
static void | reset () |
Hindley-Milner typing.
A Java clone from: http://dysphoria.net/code/hindley-milner/HindleyMilner.scala Andrew Forrest Based heavily on Nikita Borisov's Perl implementation at http://web.archive.org/web/20050420002559/www.cs.berkeley.edu/~nikitab/courses/cs263/hm.html which in turn is based on the paper by Luca Cardelli at http://lucacardelli.name/Papers/BasicTypechecking.pdf
Complete stand-alone, for my research. MEETs base types, instead of declaring type error. Does standard lexical scoping, which is not needed for SSA form.
Definition at line 24 of file HM1.java.
References com.cliffc.aa.type.TypeInt.BOOL, com.cliffc.aa.type.TypeFlt.FLT64, com.cliffc.aa.HM.HM1.Oper.fun(), com.cliffc.aa.HM.HM1.Syntax.hm(), com.cliffc.aa.type.TypeInt.INT64, and com.cliffc.aa.type.TypeMemPtr.STRPTR.
Referenced by com.cliffc.aa.HM.TestHM1.test0(), com.cliffc.aa.HM.TestHM1.test1(), com.cliffc.aa.HM.TestHM1.test10(), com.cliffc.aa.HM.TestHM1.test13(), com.cliffc.aa.HM.TestHM1.test17(), com.cliffc.aa.HM.TestHM1.test18(), com.cliffc.aa.HM.TestHM1.test2(), com.cliffc.aa.HM.TestHM1.test20(), com.cliffc.aa.HM.TestHM1.test23(), com.cliffc.aa.HM.TestHM1.test3(), com.cliffc.aa.HM.TestHM1.test4(), com.cliffc.aa.HM.TestHM1.test5(), com.cliffc.aa.HM.TestHM1.test6(), com.cliffc.aa.HM.TestHM1.test7(), and com.cliffc.aa.HM.TestHM1.test8().
|
staticpackage |
Definition at line 53 of file HM1.java.
References com.cliffc.aa.HM.HM1.HMVar.reset().
Referenced by com.cliffc.aa.HM.TestHM1.reset().