mycompiler.mytypereconstruction.unify
Class Unify

java.lang.Object
  extended by mycompiler.mytypereconstruction.unify.Unify

public class Unify
extends java.lang.Object

Implementierung des Unifizierungsalgorithmus

Version:
$Date: 2005/06/28 19:19:10 $
Author:
Martin Pl�micke, Thomas Ott

Constructor Summary
Unify()
           
 
Method Summary
 de.dhbwstuttgart.typeinference.Menge adapt(java.lang.String strTV, Type T, de.dhbwstuttgart.typeinference.Menge vRFC, de.dhbwstuttgart.typeinference.Menge vRE)
           
static de.dhbwstuttgart.typeinference.Menge<RefType> allGreater(RefType ty, de.dhbwstuttgart.typeinference.Menge FC)
           
static de.dhbwstuttgart.typeinference.Menge<RefType> allSmaller(RefType ty, de.dhbwstuttgart.typeinference.Menge FC)
           
static de.dhbwstuttgart.typeinference.Menge<Pair> copyMengePair(de.dhbwstuttgart.typeinference.Menge<Pair> vp)
           
 de.dhbwstuttgart.typeinference.Menge<de.dhbwstuttgart.typeinference.Menge<Pair>> copyMengeMengePair(de.dhbwstuttgart.typeinference.Menge<de.dhbwstuttgart.typeinference.Menge<Pair>> vp)
           
static boolean hasSolvedForm(de.dhbwstuttgart.typeinference.Menge E)
           
static de.dhbwstuttgart.typeinference.Menge<de.dhbwstuttgart.typeinference.Menge<Pair>> instanceSmaller(Pair P, FC_TTO fc_tto)
           
static Pair isInFC(RefType R1, RefType R2, de.dhbwstuttgart.typeinference.Menge FC)
           
static Pair isInFCrechtsUnify(RefType RT1, RefType RT2, FC_TTO fc_tto)
           
static boolean isRealSubClass(java.lang.String Basis, java.lang.String Mutter, FC_TTO fc_tto)
           
static boolean isRXSimilarRY(RefType RFC, RefType RY)
           
static boolean isTVinRefType(TyploseVariable TV, RefType RT)
           
static java.util.Hashtable match(RefType FCtype, RefType tomatch, java.util.Hashtable ht)
           
static int pi(int n, java.lang.String C, java.lang.String D, de.dhbwstuttgart.typeinference.Menge tto)
           
static void printMenge(java.lang.String strMenge, de.dhbwstuttgart.typeinference.Menge E, int nDebug)
           
static void printMengeUnifier(java.lang.String strMenge, de.dhbwstuttgart.typeinference.Menge<de.dhbwstuttgart.typeinference.Menge<Pair>> Uni, int nDebug)
           
static de.dhbwstuttgart.typeinference.Menge sub_unify(de.dhbwstuttgart.typeinference.Menge E, FC_TTO fc_tto)
           
static void Subst(Pair P, int nTypnrInPair, TyploseVariable a, Type o, boolean bMitVorbedingung)
           
static void SubstHashtable(RefType typterm, java.util.Hashtable ht)
           
static de.dhbwstuttgart.typeinference.Menge<Pair> SubstHashtable2MengePair(java.util.Hashtable ht)
           
static de.dhbwstuttgart.typeinference.Menge<de.dhbwstuttgart.typeinference.Menge<Pair>> unify(Type ty1, Type ty2, FC_TTO fc_tto)
           
static de.dhbwstuttgart.typeinference.Menge<de.dhbwstuttgart.typeinference.Menge<Pair>> unify(de.dhbwstuttgart.typeinference.Menge<Pair> E, FC_TTO fc_tto)
           
static void varSubst(RefType typterm, java.util.Hashtable ht)
           
static java.util.Hashtable MengePair2SubstHashtableMengePair(de.dhbwstuttgart.typeinference.Menge<Pair> v)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Unify

public Unify()
Method Detail

unify

public static de.dhbwstuttgart.typeinference.Menge<de.dhbwstuttgart.typeinference.Menge<Pair>> unify(Type ty1,
                                                             Type ty2,
                                                             FC_TTO fc_tto)

unify

public static de.dhbwstuttgart.typeinference.Menge<de.dhbwstuttgart.typeinference.Menge<Pair>> unify(de.dhbwstuttgart.typeinference.Menge<Pair> E,
                                                             FC_TTO fc_tto)

match

public static java.util.Hashtable match(RefType FCtype,
                                        RefType tomatch,
                                        java.util.Hashtable ht)
                                 throws MatchException
Throws:
MatchException

sub_unify

public static de.dhbwstuttgart.typeinference.Menge sub_unify(de.dhbwstuttgart.typeinference.Menge E,
                                         FC_TTO fc_tto)

adapt

public de.dhbwstuttgart.typeinference.Menge adapt(java.lang.String strTV,
                              Type T,
                              de.dhbwstuttgart.typeinference.Menge vRFC,
                              de.dhbwstuttgart.typeinference.Menge vRE)

isRXSimilarRY

public static boolean isRXSimilarRY(RefType RFC,
                                    RefType RY)

SubstHashtable2MengePair

public static de.dhbwstuttgart.typeinference.Menge<Pair> SubstHashtable2MengePair(java.util.Hashtable ht)

MengePair2SubstHashtableMengePair

public static java.util.Hashtable MengePair2SubstHashtableMengePair(de.dhbwstuttgart.typeinference.Menge<Pair> v)

copyMengePair

public static de.dhbwstuttgart.typeinference.Menge<Pair> copyMengePair(de.dhbwstuttgart.typeinference.Menge<Pair> vp)

copyMengeMengePair

public de.dhbwstuttgart.typeinference.Menge<de.dhbwstuttgart.typeinference.Menge<Pair>> copyMengeMengePair(de.dhbwstuttgart.typeinference.Menge<de.dhbwstuttgart.typeinference.Menge<Pair>> vp)

instanceSmaller

public static de.dhbwstuttgart.typeinference.Menge<de.dhbwstuttgart.typeinference.Menge<Pair>> instanceSmaller(Pair P,
                                                                       FC_TTO fc_tto)

allSmaller

public static de.dhbwstuttgart.typeinference.Menge<RefType> allSmaller(RefType ty,
                                                   de.dhbwstuttgart.typeinference.Menge FC)

allGreater

public static de.dhbwstuttgart.typeinference.Menge<RefType> allGreater(RefType ty,
                                                   de.dhbwstuttgart.typeinference.Menge FC)

isInFC

public static Pair isInFC(RefType R1,
                          RefType R2,
                          de.dhbwstuttgart.typeinference.Menge FC)

isInFCrechtsUnify

public static Pair isInFCrechtsUnify(RefType RT1,
                                     RefType RT2,
                                     FC_TTO fc_tto)

isTVinRefType

public static boolean isTVinRefType(TyploseVariable TV,
                                    RefType RT)

Subst

public static void Subst(Pair P,
                         int nTypnrInPair,
                         TyploseVariable a,
                         Type o,
                         boolean bMitVorbedingung)

SubstHashtable

public static void SubstHashtable(RefType typterm,
                                  java.util.Hashtable ht)

isRealSubClass

public static boolean isRealSubClass(java.lang.String Basis,
                                     java.lang.String Mutter,
                                     FC_TTO fc_tto)

pi

public static int pi(int n,
                     java.lang.String C,
                     java.lang.String D,
                     de.dhbwstuttgart.typeinference.Menge tto)
              throws SCException
Throws:
SCException

printMengeUnifier

public static void printMengeUnifier(java.lang.String strMenge,
                                     de.dhbwstuttgart.typeinference.Menge<de.dhbwstuttgart.typeinference.Menge<Pair>> Uni,
                                     int nDebug)

printMenge

public static void printMenge(java.lang.String strMenge,
                              de.dhbwstuttgart.typeinference.Menge E,
                              int nDebug)

hasSolvedForm

public static boolean hasSolvedForm(de.dhbwstuttgart.typeinference.Menge E)

varSubst

public static void varSubst(RefType typterm,
                            java.util.Hashtable ht)