diff --git a/src/de/dhbwstuttgart/bytecode/ClassFile.java b/src/de/dhbwstuttgart/bytecode/ClassFile.java index e4f0144c..2ace9462 100755 --- a/src/de/dhbwstuttgart/bytecode/ClassFile.java +++ b/src/de/dhbwstuttgart/bytecode/ClassFile.java @@ -48,7 +48,7 @@ public class ClassFile // ino.end // ino.class.ClassFile.21492.body { - public boolean hamaAload0 = false; //hama: f�gt in Konstruktor und set Methode ein aload_0 ein wird f�r StoreSomethingParmCon ben�tigt + public boolean hamaAload0 = false; //hama: f�gt in Konstruktor und set Methode ein aload_0 ein wird f�r StoreSomethingParmCon ben�tigt // ino.attribute.codegenlog.21495.decldescription type=line // Logger fuer Code-Gen @@ -391,15 +391,15 @@ public class ClassFile //aload_0 zuwening im Konstruktor erzeugt. Deshalb schreibe ich //es hier hard rein. //Test Workaround: Das eigentliche Problem: "Warum fehlt das aload_0" ist - //noch nicht behoben. Au�erdem stimmt das hier nur f�r den einen Use Case - //in allen anderen F�llen wird f�lschlicher Weise das aload_0 einef�gt. + //noch nicht behoben. Au�erdem stimmt das hier nur f�r den einen Use Case + //in allen anderen F�llen wird f�lschlicher Weise das aload_0 einef�gt. if(this.hamaAload0 == true) { byte b2 = 42; Byte b1 = new Byte(b2); code.add_code(b1); - codegenlog.warn("hama: Class ClassFile: !!!!!!!!!!!!!!!!!!!!ACHTUNG experimentell aload_0 in Konstrukor eingef�gt!!!"); + codegenlog.warn("hama: Class ClassFile: !!!!!!!!!!!!!!!!!!!!ACHTUNG experimentell aload_0 in Konstrukor eingef�gt!!!"); } //hama: bis hier experimentell if(block != null) @@ -418,9 +418,9 @@ public class ClassFile //aload_0 zuwening in der set Methode erzeugt. Deshalb schreibe ich //es hier hard rein. //Test Workaround: Das eigentliche Problem: "Warum fehlt das aload_0" ist - //noch nicht behoben. Au�erdem stimmt das hier nur f�r den einen Use Case - //in allen anderen F�llen einer Set Methode wird f�lschlicher Weise das - //aload_0 einef�gt. + //noch nicht behoben. Au�erdem stimmt das hier nur f�r den einen Use Case + //in allen anderen F�llen einer Set Methode wird f�lschlicher Weise das + //aload_0 einef�gt. if(this.hamaAload0 == true) { if(name.equals("set")) @@ -429,7 +429,7 @@ public class ClassFile Byte b1 = new Byte(b2); code.add_code(b1); - codegenlog.warn("hama: Class ClassFile: !!!!!!!!!!!!!!!!!!!!ACHTUNG experimentell aload_0 in die set Methode eingef�gt!!!"); + codegenlog.warn("hama: Class ClassFile: !!!!!!!!!!!!!!!!!!!!ACHTUNG experimentell aload_0 in die set Methode eingef�gt!!!"); } } //hama: bis hier experimentell. diff --git a/src/de/dhbwstuttgart/bytecode/CodeAttribute.java b/src/de/dhbwstuttgart/bytecode/CodeAttribute.java index 47fee80c..8cff67c4 100755 --- a/src/de/dhbwstuttgart/bytecode/CodeAttribute.java +++ b/src/de/dhbwstuttgart/bytecode/CodeAttribute.java @@ -1,5 +1,5 @@ //PL 14-03-21: calculate_max_stack() duerfte nicht stimmen -//vorübergehend max_stack und set_max_stack eingeführt +//vorübergehend max_stack und set_max_stack eingeführt //in codegen "short max_stack = calculate_max_stack();" auskommentiert //muss wieder einkommentiert werden diff --git a/src/de/dhbwstuttgart/bytecode/JVMCode.java b/src/de/dhbwstuttgart/bytecode/JVMCode.java index 6dbeb2f5..a1df3da4 100755 --- a/src/de/dhbwstuttgart/bytecode/JVMCode.java +++ b/src/de/dhbwstuttgart/bytecode/JVMCode.java @@ -1083,7 +1083,7 @@ public class JVMCode String type_neu = ((GenericTypeVar)paralist.elementAt(i)).getName(); if(type_neu.equals(type)) { - codegenlog.debug("Typ wurde auf java.lang.Object geändert! (da Typparameter)"); + codegenlog.debug("Typ wurde auf java.lang.Object geändert! (da Typparameter)"); type = "Object"; } } diff --git a/src/de/dhbwstuttgart/core/ConsoleInterface.java b/src/de/dhbwstuttgart/core/ConsoleInterface.java index fff92abf..83b4f7e7 100755 --- a/src/de/dhbwstuttgart/core/ConsoleInterface.java +++ b/src/de/dhbwstuttgart/core/ConsoleInterface.java @@ -20,7 +20,7 @@ public class ConsoleInterface { for(String file : args){ filenames.add(file); } - Logger.setStandardConfiguration(new LoggerConfiguration()); // sämtliches Logging unterdrücken + Logger.setStandardConfiguration(new LoggerConfiguration()); // sämtliches Logging unterdrücken run(filenames); } @@ -47,7 +47,7 @@ public class ConsoleInterface { /////////////////////// // Ausgabe: /////////////////////// - if(resultSet == null)System.out.println("Keine Lösung!"); + if(resultSet == null)System.out.println("Keine Lösung!"); ArrayList resultJavaCodes = new ArrayList(); for(TypeinferenceResultSet result : resultSet){ String javaCode = result.getInterferedClass().printJavaCode(result); @@ -55,7 +55,7 @@ public class ConsoleInterface { } for(String out : resultJavaCodes){ - System.out.println("\nMögliche Typisierung:\n\n"); + System.out.println("\nMögliche Typisierung:\n\n"); System.out.println(out); } }catch(Exception e){ diff --git a/src/de/dhbwstuttgart/core/MyCompiler.java b/src/de/dhbwstuttgart/core/MyCompiler.java index bd7fe90d..3866e2aa 100755 --- a/src/de/dhbwstuttgart/core/MyCompiler.java +++ b/src/de/dhbwstuttgart/core/MyCompiler.java @@ -83,7 +83,7 @@ public class MyCompiler implements MyCompilerAPI // ino.attribute.m_AbstractSyntaxTree.21280.decldescription type=javadoc /** * Der abstrake Syntaxbaum - *
Autor: J�rg B�uerle + *
Autor: J�rg B�uerle */ // ino.end // ino.attribute.m_AbstractSyntaxTree.21280.declaration @@ -92,10 +92,10 @@ public class MyCompiler implements MyCompilerAPI // ino.method.MyCompiler.21283.defdescription type=javadoc /** - * Author: J�rg B�uerle
- * Der private Konstruktor. Es soll von au�en kein Compiler angelegt werden - * k�nnen, sondern nur eine API zur Verf�gung gestellt werden. - * @param logger Konfiguration für Debug Ausgabe TODO + * Author: J�rg B�uerle
+ * Der private Konstruktor. Es soll von au�en kein Compiler angelegt werden + * k�nnen, sondern nur eine API zur Verf�gung gestellt werden. + * @param logger Konfiguration für Debug Ausgabe TODO */ // ino.end // ino.method.MyCompiler.21283.definition @@ -109,8 +109,8 @@ public class MyCompiler implements MyCompilerAPI // ino.method.getAPI.21286.defdescription type=javadoc /** - * Author: J�rg B�uerle
- * Stellt eine neue Instanz der CompilerAPI zur Verf�gung. + * Author: J�rg B�uerle
+ * Stellt eine neue Instanz der CompilerAPI zur Verf�gung. * Diese Methode sollte von der IDE aus aufgerufen werden, * um eine Quellcode-Datei zu kompilieren. * @return Die Compiler-API @@ -132,8 +132,8 @@ public class MyCompiler implements MyCompilerAPI /** * Author: Thomas Ott
* Ersetzt in der Superklassenparameterliste einer Klasse, diejenigen - * GenericTypeVars, zu denen es eine Klasse gibt, die gleich hei�t. - * Beim Parsen werden n�mlich vom Jay nur GenericTypeVars erzeugt und keine + * GenericTypeVars, zu denen es eine Klasse gibt, die gleich hei�t. + * Beim Parsen werden n�mlich vom Jay nur GenericTypeVars erzeugt und keine * RefTypes. Dies wird durch diese Methode nachgeholt.
* Bsp.: class JoergsTolleKlasse extends MartinsSuperklasse *
Wie man an diesem Beispiel sieht, kann nur eine Superklasse instantiierte @@ -153,7 +153,7 @@ public class MyCompiler implements MyCompilerAPI //wandleGeneric2RefType SOLLTE NICHT NUR FUER LISTEN //VON TYPEN FUNKTIONIEREN PL 05-01-19 // otth: GenericTypeVar in Superklassenparameterlisten in RefTypes mit Parameterlsite = NULL umwandeln, - // falls: f�r GenericTypeVar existiert eine gleichnamige Klasse + // falls: f�r GenericTypeVar existiert eine gleichnamige Klasse if(Parameter == null) return; for( int i = 0; i < Parameter.size(); i++) @@ -165,7 +165,7 @@ public class MyCompiler implements MyCompilerAPI if ( TempParameter instanceof GenericTypeVar) { inferencelog.debug("Generic, WANDLE: " + TempParameter.getName()); - // existiert f�r GenericTypeVar eine deklarierte Klasse + // existiert f�r GenericTypeVar eine deklarierte Klasse for( int k = 0; k < KlassenVektor.size(); k++) { if( KlassenVektor.elementAt(k).getSimpleName().equals(TempParameter.getSimpleName()) ) @@ -228,9 +228,9 @@ public class MyCompiler implements MyCompilerAPI /** * Parst den Quellcode und baut den abstrakten Syntaxbaum auf. Danach wird * automatisch der von Thomas Ott implementierte Algorithmus - * NewTVar(jclass) (siehe Algorithmus 5.17 TRProg, Martin Pl�micke) + * NewTVar(jclass) (siehe Algorithmus 5.17 TRProg, Martin Pl�micke) * aufgerufen. - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @param reader * @throws IOException * @throws JavaParser.yyException @@ -248,7 +248,7 @@ public class MyCompiler implements MyCompilerAPI parserlog.info("#########################################\n"); ////////////////////////////////////// - // Alte Daten l�schen: + // Alte Daten l�schen: ////////////////////////////////////// m_AbstractSyntaxTree = null; @@ -268,7 +268,7 @@ public class MyCompiler implements MyCompilerAPI //PL 05-07-31 verschoben nach SourceFile.java in Methode typeReconstruction // otth: TypePlaceholders in Superklassenparameterlisten in RefTypes mit Parameterlsite = NULL umwandeln, - // falls: f�r TypePlaceholder existiert eine gleichnamige Klasse + // falls: f�r TypePlaceholder existiert eine gleichnamige Klasse // Superklasse suchen //for( int i = 0; i < srcFile.KlassenVektor.size(); i++ ) //{ @@ -309,10 +309,10 @@ public class MyCompiler implements MyCompilerAPI if ( tempKlassBody != null ) { strKlasse = tempKlasse.getName(); - parserlog.debug("T->Felddeklarationen f�r die Klasse:" + strKlasse); + parserlog.debug("T->Felddeklarationen f�r die Klasse:" + strKlasse); parserlog.debug( "------------------------------------"); - // Schleife �ber alle fielddeclarations + // Schleife �ber alle fielddeclarations tempMengeFieldDecl = tempKlassBody.getFields(); for( int k = 0; k < tempMengeFieldDecl.size(); k++ ) { @@ -321,7 +321,7 @@ public class MyCompiler implements MyCompilerAPI { //parserlog.debug("T->Konstruktor: " + ((DeclId)tempFieldDecl.get_Name().elementAt(0)).get_Name() + " - ReturnType: " + tempFieldDecl.getTypeName()); - // pr�fen, ob Construktorname == Klassenname - falls nein: Construktor in Methode umwandeln !!! + // pr�fen, ob Construktorname == Klassenname - falls nein: Construktor in Methode umwandeln !!! String strConstName = ((DeclId)tempFieldDecl.get_Name().elementAt(0)).get_Name(); // Konstruktorname if ( !strConstName.equals( strKlasse ) ) { @@ -336,9 +336,9 @@ public class MyCompiler implements MyCompilerAPI Methode.set_ExceptionList( Konstruktor.get_ExceptionList() ); Methode.setReturnType( Konstruktor.getReturnType() ); Methode.setDeclIdMenge( Konstruktor.getDeclIdMenge() ); - // types_in_parameterlist wird wohl erst sp�ter und intern gef�llt + // types_in_parameterlist wird wohl erst sp�ter und intern gef�llt - // R�ckgabetyp = Objekt der Klasse 'TypePlaceholder' + // R�ckgabetyp = Objekt der Klasse 'TypePlaceholder' // #JB# 31.03.2005 // ########################################################### @@ -359,7 +359,7 @@ public class MyCompiler implements MyCompilerAPI // Debugg-Infos parserlog.debug(""); - parserlog.debug("T->NEUE Felddeklarationen f�r die Klasse:" + strKlasse); + parserlog.debug("T->NEUE Felddeklarationen f�r die Klasse:" + strKlasse); parserlog.debug( "-----------------------------------------"); for( int k = 0; k < tempMengeFieldDecl.size(); k++ ) { @@ -389,14 +389,14 @@ public class MyCompiler implements MyCompilerAPI tempMethod = (Method)tempFieldDecl; tempReturn = tempMethod.getReturnType(); - // Funktionen ohne definierten R�ckgabetyp suchen!!! + // Funktionen ohne definierten R�ckgabetyp suchen!!! if( tempReturn instanceof TypePlaceholder ) { - // Methode mit nicht-definiertem R�ckgabetyp gefunden! + // Methode mit nicht-definiertem R�ckgabetyp gefunden! // #JB# 31.03.2005 // ########################################################### - // Wird bereits �ber fresh() gemacht!! + // Wird bereits �ber fresh() gemacht!! //tempReturn.setName( TypePlaceholder.makeNewName() ); // ########################################################### parserlog.debug(""); @@ -425,7 +425,7 @@ public class MyCompiler implements MyCompilerAPI // #JB# 31.03.2005 // ########################################################### - // Wird bereits �ber fresh() gemacht!! + // Wird bereits �ber fresh() gemacht!! //tempType.setName( TypePlaceholder.makeNewName() ); // ########################################################### } @@ -458,7 +458,7 @@ public class MyCompiler implements MyCompilerAPI ///////////////////////////////////////////////////////////////////////////////////////////////// // ino.method.init.21295.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* Initialisiert den Compiler */ // ino.end @@ -476,11 +476,11 @@ public class MyCompiler implements MyCompilerAPI // ino.method.parse.21298.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* Ruft die Parse-Methode. * @param file Die Quellcode-Datei * @throws FileNotFoundException Wenn die Quellcode-Datei nicht existiert. - * @throws IOException Wenn was schief l�uft. + * @throws IOException Wenn was schief l�uft. * @throws JavaParser.yyException Wenn ein Fehler beim Parsen auftritt. */ // ino.end @@ -500,9 +500,9 @@ public class MyCompiler implements MyCompilerAPI // ino.method.typeReconstruction.21304.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* Ruft den Typrekonstruktionsalgorithmus auf. - * @return Die Menge aller m�glichen Typkombinationen + * @return Die Menge aller m�glichen Typkombinationen * @throws NullPointerException Wenn noch kein abstrakter Syntaxbaum vorhanden * ist. @throws CTypeReconstructionException Wenn ein Fehler bei der * Typrekonstruktion auftritt. @@ -538,13 +538,13 @@ public class MyCompiler implements MyCompilerAPI /** * Erstellt die FunN-Assumptions - * Fun0-FunN (momentan für N = 6) + * Fun0-FunN (momentan für N = 6) * @return */ private TypeAssumptions makeFunNAssumptions(){ TypeAssumptions ret = new TypeAssumptions(); - //Basic Assumptions für die FunN Interfaces: + //Basic Assumptions für die FunN Interfaces: //TODO: Hier mehr als Fun1-Fun5 implementieren for(int i = 0; i<6; i++){ FunNInterface funN = new FunNInterface(i); @@ -556,8 +556,8 @@ public class MyCompiler implements MyCompilerAPI } /** - * Author: J�rg B�uerle
- * Generiert den Bytecode und das Class-File f�r den Syntaxbaum. + * Author: J�rg B�uerle
+ * Generiert den Bytecode und das Class-File f�r den Syntaxbaum. * @throws NullPointerException Wenn noch kein abstrakter Syntaxbaum vorhanden * ist. @@ -583,7 +583,7 @@ public class MyCompiler implements MyCompilerAPI // ino.method.main.21313.defdescription type=javadoc /** - * Die Main-Funktion, �ber die der Compiler auch per Konsole gestartet + * Die Main-Funktion, �ber die der Compiler auch per Konsole gestartet * werden kann. * @param args Klassendatei */ @@ -696,7 +696,7 @@ public class MyCompiler implements MyCompilerAPI for( int i = 0; i < containedTypes.size(); i++) { Type tempParameter = (Type)(containedTypes.elementAt(i)); - // Nat�rlich nur RefTypes updaten + // Nat�rlich nur RefTypes updaten if(tempParameter instanceof RefType){ RefType typ=(RefType)tempParameter; UsedId fullyQualifiedName=UsedId.createFromQualifiedName(typ.getTypeName(),typ.getOffset()); @@ -717,9 +717,9 @@ public class MyCompiler implements MyCompilerAPI // ino.end */ /** - * @author Arne Lüdtke + * @author Arne Lüdtke * Ersetzt alle GTVs durch TPHs mit gleichem Namen. Arbeitet Rekursiv. - * ACHTUNG: BACKDOOR CREATE!!! Nur für Testzwecke verwenden. + * ACHTUNG: BACKDOOR CREATE!!! Nur für Testzwecke verwenden. * @param T - Typ, bei welchem die GTVs ersetzt werden sollen. */ public static Type makeGenericTypeVars2TypePlaceHolders(Type T) @@ -811,12 +811,12 @@ public class MyCompiler implements MyCompilerAPI StringReader srcreader = new StringReader(fileData.toString()); //Den aus der Datei ausgelesenen Quellcode zu einem Syntaxbaum parsen: - this.m_AbstractSyntaxTree.add(parse2SyntaxTree(srcreader)); // Alle Dateien nacheinander hintereinander anhängen... + this.m_AbstractSyntaxTree.add(parse2SyntaxTree(srcreader)); // Alle Dateien nacheinander hintereinander anhängen... } /* String gesamterSrc = ""; - //Hier werden alle übergebenen Dateinamen abgearbeitet: + //Hier werden alle übergebenen Dateinamen abgearbeitet: for(String filename : filenames){ try { StringBuffer fileData = new StringBuffer(); @@ -829,15 +829,15 @@ public class MyCompiler implements MyCompilerAPI fileData.append(readData); } reader.close(); - gesamterSrc += fileData.toString() + "\n"; // Alle Dateien nacheinander hintereinander anhängen... + gesamterSrc += fileData.toString() + "\n"; // Alle Dateien nacheinander hintereinander anhängen... } catch (Exception e) { e.printStackTrace(); - throw new TypinferenzException("Die übergebenen Dateien konnten nicht zum Parsen eingelesen werden."); + throw new TypinferenzException("Die übergebenen Dateien konnten nicht zum Parsen eingelesen werden."); } } try { - // und anschließend zum Parsen übergeben. + // und anschließend zum Parsen übergeben. this.parse(gesamterSrc.toString()); } catch (Exception e) { e.printStackTrace(); diff --git a/src/de/dhbwstuttgart/core/MyCompilerAPI.java b/src/de/dhbwstuttgart/core/MyCompilerAPI.java index 24b7728c..16fc0bd8 100755 --- a/src/de/dhbwstuttgart/core/MyCompilerAPI.java +++ b/src/de/dhbwstuttgart/core/MyCompilerAPI.java @@ -24,7 +24,7 @@ import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException; * IDE als Compiler-API zum Kompilieren einer Quellcode-Datei * dienen und stellt somit die Schnittstelle zur Studienarbeit * von Markus Melzer (Eclipse-Plugin) dar. - * @author Jörg Bäuerle + * @author Jörg Bäuerle * @version $Date: 2013/09/09 11:04:24 $ */ // ino.end @@ -36,7 +36,7 @@ public interface MyCompilerAPI // ino.method.init.21331.decldescription type=javadoc /** - * Author: Jörg Bäuerle
+ * Author: Jörg Bäuerle
* Initialisiert den Compiler */ // ino.end @@ -46,11 +46,11 @@ public interface MyCompilerAPI // ino.method.parse.21334.decldescription type=javadoc /** - * Author: Jörg Bäuerle
+ * Author: Jörg Bäuerle
* Parst eine Quellcodedatei und baut den abstrakten Syntaxbaum auf. * @param file Die Quellcode-Datei * @throws FileNotFoundException Wenn die Quellcode-Datei nicht existiert. - * @throws IOException Wenn was schief läuft. + * @throws IOException Wenn was schief läuft. * @throws JavaParser.yyException Wenn ein Fehler beim Parsen auftritt. */ // ino.end @@ -61,10 +61,10 @@ public interface MyCompilerAPI // ino.method.parse.21337.decldescription type=javadoc /** - * Author: Jörg Bäuerle
+ * Author: Jörg Bäuerle
* Parst einen String und baut den abstrakten Syntaxbaum auf. * @param srcCode Der zu parsende Quellcode - * @throws IOException Wenn was schief läuft. + * @throws IOException Wenn was schief läuft. * @throws JavaParser.yyException Wenn ein Fehler beim Parsen auftritt. // ino.end @@ -76,9 +76,9 @@ public interface MyCompilerAPI // ino.method.typeReconstruction.21340.decldescription type=javadoc /** - * Author: Jörg Bäuerle
+ * Author: Jörg Bäuerle
* Ruft den Typrekonstruktionsalgorithmus auf. - * @return Die Menge aller möglichen Typkombinationen + * @return Die Menge aller möglichen Typkombinationen * @throws NullPointerException Wenn noch kein abstrakter Syntaxbaum vorhanden * ist. @throws CTypeReconstructionException Wenn ein Fehler bei der * Typrekonstruktion auftritt. @@ -91,8 +91,8 @@ public interface MyCompilerAPI // ino.method.codeGeneration.21346.decldescription type=javadoc /** - * Author: Jörg Bäuerle
- * Generiert den Bytecode und das Class-File für den Syntaxbaum. + * Author: Jörg Bäuerle
+ * Generiert den Bytecode und das Class-File für den Syntaxbaum. * @param syntaxTree Der Syntaxbaum * @throws NullPointerException Wenn noch kein abstrakter Syntaxbaum vorhanden * ist. @throws JVMCodeException @@ -124,7 +124,7 @@ public interface MyCompilerAPI // ino.end /** - * Parst zusammenhängende JavaKlassen in verschiedenen Dateien. + * Parst zusammenhängende JavaKlassen in verschiedenen Dateien. * @param filenames - Eine Liste von Quellcodedateien, welche gseparst werden sollen */ public void parse(Menge filenames) throws ParserError; diff --git a/src/de/dhbwstuttgart/logger/Logger.java b/src/de/dhbwstuttgart/logger/Logger.java index 983369bb..98107988 100755 --- a/src/de/dhbwstuttgart/logger/Logger.java +++ b/src/de/dhbwstuttgart/logger/Logger.java @@ -34,8 +34,8 @@ public class Logger { */ /** - * Logt eine Debug Message, welche zusätzlich einer bestimmten Section zugewiesen wird. - * Dadurch lässt sich die DEBUG ausgabe übersichtlicher gestalten. + * Logt eine Debug Message, welche zusätzlich einer bestimmten Section zugewiesen wird. + * Dadurch lässt sich die DEBUG ausgabe übersichtlicher gestalten. * @param message * @param section */ @@ -45,7 +45,7 @@ public class Logger { /** * Liefert den Logger mit dem angegebenen Namen. - * Üblicherweise wird diese Methode mit dem Namen der Klasse aufgerufen, in welcher der Logger tätig ist. + * Ãœblicherweise wird diese Methode mit dem Namen der Klasse aufgerufen, in welcher der Logger tätig ist. * @param name - Name der Klasse ( Ermittelbar mittels .class.getName() ) * @return */ @@ -94,7 +94,7 @@ public class Logger { } /** - * wird hier null übergeben, so wird sämtliches Logging unterdrückt. + * wird hier null übergeben, so wird sämtliches Logging unterdrückt. */ public static void setStandardConfiguration(LoggerConfiguration config) { Logger.standardConfiguration = config; diff --git a/src/de/dhbwstuttgart/logger/LoggerConfiguration.java b/src/de/dhbwstuttgart/logger/LoggerConfiguration.java index 56d57d99..275c68a3 100644 --- a/src/de/dhbwstuttgart/logger/LoggerConfiguration.java +++ b/src/de/dhbwstuttgart/logger/LoggerConfiguration.java @@ -12,7 +12,7 @@ public class LoggerConfiguration{ public LoggerConfiguration setOutput(Section forSection, PrintStream output){ if(outputs.containsKey(forSection)){ - //throw new DebugException("Eine outputStream für Section "+forSection+" ist bereits vorhanden"); + //throw new DebugException("Eine outputStream für Section "+forSection+" ist bereits vorhanden"); if(outputs.get(forSection).equals(output)){ //do nothing }else{ diff --git a/src/de/dhbwstuttgart/logger/SectionLogger.java b/src/de/dhbwstuttgart/logger/SectionLogger.java index dd786328..66fbbd80 100644 --- a/src/de/dhbwstuttgart/logger/SectionLogger.java +++ b/src/de/dhbwstuttgart/logger/SectionLogger.java @@ -3,7 +3,7 @@ package de.dhbwstuttgart.logger; import java.util.logging.Level; /** - * Sämtliche Logging Ausgaben werden in die bei der Erstellung des Loggers übergebene Section eingeteilt + * Sämtliche Logging Ausgaben werden in die bei der Erstellung des Loggers übergebene Section eingeteilt * @author janulrich * */ diff --git a/src/de/dhbwstuttgart/myexception/CTypeReconstructionException.java b/src/de/dhbwstuttgart/myexception/CTypeReconstructionException.java index 5a7d0bca..3ca780a7 100755 --- a/src/de/dhbwstuttgart/myexception/CTypeReconstructionException.java +++ b/src/de/dhbwstuttgart/myexception/CTypeReconstructionException.java @@ -9,7 +9,7 @@ import de.dhbwstuttgart.core.IItemWithOffset; // ino.class.CTypeReconstructionException.23746.description type=javadoc /** - * @author J�rg B�uerle + * @author J�rg B�uerle * @version $Date: 2006/06/13 10:37:31 $ */ // ino.end diff --git a/src/de/dhbwstuttgart/parser/JavaClassName.java b/src/de/dhbwstuttgart/parser/JavaClassName.java index 372b647d..352437c4 100644 --- a/src/de/dhbwstuttgart/parser/JavaClassName.java +++ b/src/de/dhbwstuttgart/parser/JavaClassName.java @@ -66,7 +66,7 @@ public class JavaClassName { return false; if (packageName != null && other.packageName != null) { if (!packageName.equals(other.packageName)) - return false;//Spezialfall, nicht beide Typen müssen eindeutig mit Packagenamen angegeben werden + return false;//Spezialfall, nicht beide Typen müssen eindeutig mit Packagenamen angegeben werden } return true; } diff --git a/src/de/dhbwstuttgart/parser/JavaLexer.java b/src/de/dhbwstuttgart/parser/JavaLexer.java index db5eb4f2..2479f279 100644 --- a/src/de/dhbwstuttgart/parser/JavaLexer.java +++ b/src/de/dhbwstuttgart/parser/JavaLexer.java @@ -1,7 +1,7 @@ /******************************************** * file: JavaLexer.lex * * * - * enth�lt die JLex-Spezifikation f�r die * + * enth�lt die JLex-Spezifikation f�r die * * Generierung des lexical analyzers * * * ********************************************/ diff --git a/src/de/dhbwstuttgart/parser/JavaParser.java b/src/de/dhbwstuttgart/parser/JavaParser.java index 2baa8e12..5f023cb0 100644 --- a/src/de/dhbwstuttgart/parser/JavaParser.java +++ b/src/de/dhbwstuttgart/parser/JavaParser.java @@ -46,7 +46,7 @@ void initUsedIdsToCheck() { } //PL 05-07-30 eingefuegt. ENDE -//LUAR 07-05-29 Anfang für Wildcard Test +//LUAR 07-05-29 Anfang für Wildcard Test public Menge testPair = new Menge(); //LUAR 07-05-29 Ende // line 53 "-" @@ -817,7 +817,7 @@ case 19: { UsedId UI = new UsedId(((Token)yyVals[0+yyTop]).getOffset()); UI.set_Name( ((Token)yyVals[0+yyTop]).getLexem() ); - UI.setOffset(((Token)yyVals[0+yyTop]).getOffset());/*hinzugef�gt hoth: 07.04.2006*/ + UI.setOffset(((Token)yyVals[0+yyTop]).getOffset());/*hinzugef�gt hoth: 07.04.2006*/ yyVal = UI; } break; @@ -980,7 +980,7 @@ case 36: pl.getParalist().addElement(new GenericTypeVar(((Token)yyVals[0+yyTop]).getLexem(),null, ((Token)yyVals[0+yyTop]).getOffset())); /*pl.getParalist().addElement( new TypePlaceholder($1.getLexem()) );*/ /* ########################################################### */ - de.dhbwstuttgart.logger.Logger.getLogger("parser").debug( "IDENTIFIER --> Paralist f�r " + ((Token)yyVals[0+yyTop]).getLexem() + " TV", Section.PARSER); + de.dhbwstuttgart.logger.Logger.getLogger("parser").debug( "IDENTIFIER --> Paralist f�r " + ((Token)yyVals[0+yyTop]).getLexem() + " TV", Section.PARSER); yyVal = pl; } break; @@ -991,7 +991,7 @@ case 37: RefType t = new RefType( ((Token)yyVals[-3+yyTop]).getLexem(),null,((Token)yyVals[-3+yyTop]).getOffset() ); t.set_ParaList( ((ParaList)yyVals[-1+yyTop]).get_ParaList() ); pl.getParalist().addElement(t); - de.dhbwstuttgart.logger.Logger.getLogger("parser").debug( "IDENTIFIER '<' paralist '>' --> Paralist f�r " + ((Token)yyVals[-3+yyTop]).getLexem() + ": RefType", Section.PARSER); + de.dhbwstuttgart.logger.Logger.getLogger("parser").debug( "IDENTIFIER '<' paralist '>' --> Paralist f�r " + ((Token)yyVals[-3+yyTop]).getLexem() + ": RefType", Section.PARSER); yyVal = pl; } break; @@ -1012,7 +1012,7 @@ case 39: ((ParaList)yyVals[-2+yyTop]).getParalist().addElement(new GenericTypeVar(((Token)yyVals[0+yyTop]).getLexem(), null,((Token)yyVals[0+yyTop]).getOffset())); /*$1.getParalist().addElement(new TypePlaceholder($3.getLexem()));*/ /* ########################################################### */ - de.dhbwstuttgart.logger.Logger.getLogger("parser").debug( "paralist ',' IDENTIFIER --> Paralist f�r " + ((Token)yyVals[0+yyTop]).getLexem() + ": TV", Section.PARSER); + de.dhbwstuttgart.logger.Logger.getLogger("parser").debug( "paralist ',' IDENTIFIER --> Paralist f�r " + ((Token)yyVals[0+yyTop]).getLexem() + ": TV", Section.PARSER); de.dhbwstuttgart.logger.Logger.getLogger("parser").debug( "paralist: " + ((ParaList)yyVals[-2+yyTop]).getParalist(), Section.PARSER); yyVal=((ParaList)yyVals[-2+yyTop]); } @@ -1023,7 +1023,7 @@ case 40: RefType t = new RefType( ((Token)yyVals[-3+yyTop]).getLexem(),null ,((Token)yyVals[-3+yyTop]).getOffset() ); t.set_ParaList( ((ParaList)yyVals[-1+yyTop]).get_ParaList() ); ((ParaList)yyVals[-5+yyTop]).getParalist().addElement(t); - de.dhbwstuttgart.logger.Logger.getLogger("parser").debug( "paralist ',' IDENTIFIER '<' paralist '>' --> Paralist f�r " + ((Token)yyVals[-3+yyTop]).getLexem() + ": RefType", Section.PARSER); + de.dhbwstuttgart.logger.Logger.getLogger("parser").debug( "paralist ',' IDENTIFIER '<' paralist '>' --> Paralist f�r " + ((Token)yyVals[-3+yyTop]).getLexem() + ": RefType", Section.PARSER); yyVal=((ParaList)yyVals[-5+yyTop]); } break; @@ -1252,7 +1252,7 @@ case 71: { if (((Menge)yyVals[0+yyTop]) != null) { /*$1.set_ParaList($2.get_ParaList());*/ - ((UsedId)yyVals[-1+yyTop]).set_ParaList(((Menge)yyVals[0+yyTop]));/*Änderung von Andreas Stadelmeier. Type statt GenericVarType*/ + ((UsedId)yyVals[-1+yyTop]).set_ParaList(((Menge)yyVals[0+yyTop]));/*Änderung von Andreas Stadelmeier. Type statt GenericVarType*/ /* otth: originale (also diese) Parameterliste retten */ /*((UsedId)$1).vParaOrg = new Menge( $2.get_ParaList() );*/ } @@ -1410,7 +1410,7 @@ case 91: break; case 92: // line 863 "./../src/de/dhbwstuttgart/parser/JavaParser.jay" - {/*angefügt von Andreas Stadelmeier*/ + {/*angefügt von Andreas Stadelmeier*/ ((FieldDeclaration)yyVals[-1+yyTop]).setType(((Type)yyVals[-2+yyTop])); ((FieldDeclaration)yyVals[-1+yyTop]).setGenericParameter(((GenericDeclarationList)yyVals[-3+yyTop])); yyVal=((FieldDeclaration)yyVals[-1+yyTop]); @@ -1906,7 +1906,7 @@ case 153: /* #JB# 10.04.2005 */ /* ########################################################### */ met.setLineNumber(((Token)yyVals[-2+yyTop]).getLineNumber()); - met.setOffset(((Token)yyVals[-2+yyTop]).getOffset());/*hinzugef�gt hoth: 07.04.2006*/ + met.setOffset(((Token)yyVals[-2+yyTop]).getOffset());/*hinzugef�gt hoth: 07.04.2006*/ /* ########################################################### */ DeclId DImethod = new DeclId(); DImethod.set_Name(((Token)yyVals[-2+yyTop]).getLexem()); @@ -1921,7 +1921,7 @@ case 154: /* #JB# 10.04.2005 */ /* ########################################################### */ met_para.setLineNumber(((Token)yyVals[-3+yyTop]).getLineNumber()); - met_para.setOffset(((Token)yyVals[-3+yyTop]).getOffset());/*hinzugef�gt hoth: 07.04.2006*/ + met_para.setOffset(((Token)yyVals[-3+yyTop]).getOffset());/*hinzugef�gt hoth: 07.04.2006*/ /* ########################################################### */ DeclId Dimet_para = new DeclId(); Dimet_para.set_Name(((Token)yyVals[-3+yyTop]).getLexem()); @@ -1990,7 +1990,7 @@ case 161: { FormalParameter FP = new FormalParameter(((DeclId)yyVals[0+yyTop])); FP.setType(((Type)yyVals[-1+yyTop])); - /*FP.set_DeclId($2); //auskommentiert von Andreas Stadelmeier. DeclId wird nun dem Konstruktor von FormalParameter übergeben.*/ + /*FP.set_DeclId($2); //auskommentiert von Andreas Stadelmeier. DeclId wird nun dem Konstruktor von FormalParameter übergeben.*/ yyVal=FP; } break; @@ -2042,7 +2042,7 @@ case 166: /* #JB# 10.04.2005 */ /* ########################################################### */ DI.setLineNumber(((Token)yyVals[0+yyTop]).getLineNumber()); - DI.setOffset(((Token)yyVals[0+yyTop]).getOffset());/*hinzugef�gt hoth: 07.04.2006*/ + DI.setOffset(((Token)yyVals[0+yyTop]).getOffset());/*hinzugef�gt hoth: 07.04.2006*/ /* ########################################################### */ DI.set_Name(((Token)yyVals[0+yyTop]).getLexem()); yyVal=DI; diff --git a/src/de/dhbwstuttgart/parser/Token.java b/src/de/dhbwstuttgart/parser/Token.java index a371818e..7e6f005c 100755 --- a/src/de/dhbwstuttgart/parser/Token.java +++ b/src/de/dhbwstuttgart/parser/Token.java @@ -16,7 +16,7 @@ public class Token private int m_LineNumber; // ino.end // ino.attribute.m_Offset.24871.declaration - private int m_Offset;//hinzugefügt hoth: 14.04.2006 + private int m_Offset;//hinzugefügt hoth: 14.04.2006 // ino.end @@ -54,7 +54,7 @@ public class Token // ino.end // ino.method.Token.24883.defdescription type=line - // hinzugefügt hoth: 14.04.2006 + // hinzugefügt hoth: 14.04.2006 // ino.end // ino.method.Token.24883.definition Token (int tok, String s, int lineNumber, int charOffset) @@ -69,7 +69,7 @@ public class Token // ino.end // ino.method.Token.24886.defdescription type=line - // hinzugefügt hoth: 14.04.2006 + // hinzugefügt hoth: 14.04.2006 // ino.end // ino.method.Token.24886.definition Token (int tok, char c, int lineNumber, int charOffset) diff --git a/src/de/dhbwstuttgart/syntaxtree/Class.java b/src/de/dhbwstuttgart/syntaxtree/Class.java index 8f63cd5a..b93e7df9 100755 --- a/src/de/dhbwstuttgart/syntaxtree/Class.java +++ b/src/de/dhbwstuttgart/syntaxtree/Class.java @@ -125,7 +125,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I // ino.attribute.containedTypes.23032.decldescription type=line // PL 05-07-30 eingefuegt. Vektor aller Typdeklarationen, die in der Klasse - // vorkommen. Wird in der Studienarbeit von Andreas Stadelmeier nur für Verifizierung der Tests eingesetzt. + // vorkommen. Wird in der Studienarbeit von Andreas Stadelmeier nur für Verifizierung der Tests eingesetzt. // ino.end // ino.attribute.containedTypes.23032.declaration private Menge containedTypes = new Menge(); @@ -134,7 +134,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I private Menge usedIdsToCheck = new Menge(); // ino.end - private TypeAssumptions typeAssumptions = null;//muss mit null Initialisiert werden. Darf nur über getTypeAssumptions abgerufen werden. + private TypeAssumptions typeAssumptions = null;//muss mit null Initialisiert werden. Darf nur über getTypeAssumptions abgerufen werden. // ino.attribute.parserlog.23038.declaration //protected Logger parselog = Logger.getLogger("parser"); @@ -157,14 +157,14 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I superclassid=null; } this.offset = offset; - if(!name.equals("Object"))//Alle Klassen außer Object erben von Object: + if(!name.equals("Object"))//Alle Klassen außer Object erben von Object: this.superClass = new Class("Object", -1).getType(); } // ino.end /** - * Erstellt eine Klasse, welche nur für die Assumptions verwendet wird. - * Sie enthält keine unnötigen Informationen, wie Offset oder ClassBody. + * Erstellt eine Klasse, welche nur für die Assumptions verwendet wird. + * Sie enthält keine unnötigen Informationen, wie Offset oder ClassBody. * @param name * @param superClass * @param modifiers @@ -285,8 +285,8 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I /** * @author Andreas Stadelmeier, a10023 - * Fügt der Klasse eine Feld hinzu. - * Prüft dabei, ob es sich um einen Constructor handelt und wandelt diesen direkt um. + * Fügt der Klasse eine Feld hinzu. + * Prüft dabei, ob es sich um einen Constructor handelt und wandelt diesen direkt um. * @param feld */ public void addField(Field i) @@ -328,7 +328,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I // ino.method.complete_paralist.23062.body { - //Diese Funktion vervollt�ndigt die Parameterliste f�r vererbte Klassen + //Diese Funktion vervollt�ndigt die Parameterliste f�r vererbte Klassen Menge child = paralist; paralist = (Menge)superclassid.get_ParaList(); @@ -344,7 +344,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I /** - * Generiert die ClassFile für diese Klasse. + * Generiert die ClassFile für diese Klasse. * @param typeinferenceResult - Das ResultSet einer Typinferierung oder null, falls alle Typen eindeutig feststehen. * @return * @throws JVMCodeException @@ -371,7 +371,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I // pkgName = sf.getPackageName().get_codegen_UsedId() + "/"; //} - //geändert von Andreas Stadelmeier: pkgName wird nicht mehr aus dem SourceFile ausgelesen: + //geändert von Andreas Stadelmeier: pkgName wird nicht mehr aus dem SourceFile ausgelesen: String packageName = ""; if(pkgName != null) packageName = pkgName.get_Name_1Element(); classfile.add_class(getName(), superClass, getAccessFlags()); @@ -409,36 +409,36 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I // ino.end /** - * Setzt den ClassBody dieser Klasse. Wird zum Parsen benötigt. - * Der ClassBody enthält sämtliche Felder dieser Klasse. - * Mit dem Aufruf dieser Methode werden alle Felder des ClassBody in diese Class übertragen. - * (Nur einmal während des Parsens aufrufen!) + * Setzt den ClassBody dieser Klasse. Wird zum Parsen benötigt. + * Der ClassBody enthält sämtliche Felder dieser Klasse. + * Mit dem Aufruf dieser Methode werden alle Felder des ClassBody in diese Class übertragen. + * (Nur einmal während des Parsens aufrufen!) */ public void set_ClassBody(ClassBody body) { Menge tempFields=body.getFields(); for(Field f : this.getFields()){ - if(f instanceof Method){ //Wenn es sich um eine Methode handelt ist eine zusätzliche Prüfung erfoderlich: (Ist es ein Konstruktor?) + if(f instanceof Method){ //Wenn es sich um eine Methode handelt ist eine zusätzliche Prüfung erfoderlich: (Ist es ein Konstruktor?) Method m = (Method)f; /* * Ermitteln ob es sich bei der Methode um einen Konstruktor handelt: * (Parser kann nicht zwischen Methode und Konstruktor unterscheiden. - * Denn für einen Konstruktor gelten besondere Regeln: + * Denn für einen Konstruktor gelten besondere Regeln: * -Typ des Blocks eines Konstruktor ist void (kein Return-Statement) - * -Rückgabetyp der Methode/Konstruktors ist der Typ der Klasse + * -Rückgabetyp der Methode/Konstruktors ist der Typ der Klasse * -Ein Konstruktor kann nicht aufgerufen werden (nur mit new) */ - if(m.get_Method_Name().equals(""))throw new TypeinferenceException(" ist kein gültiger Methodenname", m); + if(m.get_Method_Name().equals(""))throw new TypeinferenceException(" ist kein gültiger Methodenname", m); if((m.get_Method_Name().equals(this.getName()))) { Constructor constructor = new Constructor(m); - tempFields.add(constructor); //Den Konstruktor anstatt der Methode anfügen + tempFields.add(constructor); //Den Konstruktor anstatt der Methode anfügen }else{ - //Handelt es sich um keinen Konstruktor, dann die Methode unverändert den Feldern hinzufügen: + //Handelt es sich um keinen Konstruktor, dann die Methode unverändert den Feldern hinzufügen: tempFields.add(m); } }else{ - tempFields.add(f); //Ansonsten das Feld anfügen... + tempFields.add(f); //Ansonsten das Feld anfügen... } } @@ -640,14 +640,14 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I ///////////////////////////////////////////////////////////////////////// // ino.method.TRProg.23110.defdescription type=javadoc /** - * Ausgangspunkt f�r den Typrekonstruktionsalgorithmus. Hier werden zun�chst + * Ausgangspunkt f�r den Typrekonstruktionsalgorithmus. Hier werden zun�chst * die Mengen von Typannahmen V_fields_methods und V_i erstellt, die als Eingabe - * f�r den Algorithmus dienen.
- * (siehe Algorithmus 5.17 TRProg, Martin Pl�micke) - *
Author: J�rg B�uerle + * f�r den Algorithmus dienen.
+ * (siehe Algorithmus 5.17 TRProg, Martin Pl�micke) + *
Author: J�rg B�uerle * @param supportData * @param globalAssumptions - * @return Liste aller bisher berechneten, m�glichen Typkombinationen + * @return Liste aller bisher berechneten, m�glichen Typkombinationen * @throws CTypeReconstructionException */ // ino.end @@ -671,16 +671,16 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I ////////////////////////////// //Erzeuge Assumptions: TypeAssumptions assumptions = this.getPrivateFieldAssumptions(); - //Globale Assumptions anfügen: + //Globale Assumptions anfügen: assumptions.add(globalAssumptions); ConstraintsSet oderConstraints = new ConstraintsSet(); for(Type gparam : this.get_ParaList()){ - if(gparam instanceof GenericTypeVar)assumptions.add(((GenericTypeVar)gparam).createAssumptions()); //Constraints für die Generischen Variablen erstellen und diese dem AssumptionsSet hinzufügen + if(gparam instanceof GenericTypeVar)assumptions.add(((GenericTypeVar)gparam).createAssumptions()); //Constraints für die Generischen Variablen erstellen und diese dem AssumptionsSet hinzufügen } for(Type gparam : this.get_ParaList()){ - if(gparam instanceof GenericTypeVar)oderConstraints.add(((GenericTypeVar)gparam).TYPE(assumptions)); //Constraints für die Generischen Variablen erstellen und diese dem AssumptionsSet hinzufügen + if(gparam instanceof GenericTypeVar)oderConstraints.add(((GenericTypeVar)gparam).TYPE(assumptions)); //Constraints für die Generischen Variablen erstellen und diese dem AssumptionsSet hinzufügen } typinferenzLog.debug("Erstellte Assumptions: "+assumptions, Section.TYPEINFERENCE); @@ -709,7 +709,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I /* CReconstructionTupleSet retTupleSet = this.TRStart(methodList, V, V_fields_methods, supportData); - inferencelog.debug("Bin aus TRStart() zur�ck in TRProg()."); + inferencelog.debug("Bin aus TRStart() zur�ck in TRProg()."); ////////////////////////////// // Neu Ergebnismenge A aller // Typannahmen erzeugen: @@ -717,12 +717,12 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I inferencelog.debug("Erstelle Ergebnismenge..."); Menge newA = new Menge(); - // Alle bisherigen M�glichkeiten an Typkombinationen durchgehen: + // Alle bisherigen M�glichkeiten an Typkombinationen durchgehen: Menge oldA = supportData.getA(); for(int i=0; i retTupleIt = retTupleSet.getIterator(); while(retTupleIt.hasNext()){ CReconstructionTuple possibleTuple = retTupleIt.next(); @@ -745,7 +745,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I } newReconResult.addGenericTypeVars(this.getName(), genericsList); - //Hinzuf�gen: + //Hinzuf�gen: newA.addElement(newReconResult); } } @@ -761,7 +761,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I if(this.methodList != null) return this.methodList; - //TODO: Unnötige Berechnungen im folgenden Code rauskürzen: + //TODO: Unnötige Berechnungen im folgenden Code rauskürzen: ////////////////////////////// // Die Eingabedaten bauen: ////////////////////////////// @@ -774,7 +774,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I ////////////////////////////// // Alle Felder durchgehen: // Zuerst alle Attribute, dann Methoden - // ge�ndert: hoth 06.04.2006 + // ge�ndert: hoth 06.04.2006 ////////////////////////////// for(Field field : this.getFields()) @@ -813,7 +813,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I methodList.addElement(method); - // F�r V_fields_methods: + // F�r V_fields_methods: CMethodTypeAssumption methodAssum = new CMethodTypeAssumption(this.getType(), method.get_Method_Name(), method.getReturnType(), method.getParameterCount(),method.getLineNumber(),method.getOffset(),new Menge(),method.getGenericMethodParameters()); // Typannahme bauen... @@ -826,7 +826,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I method.setOverloadedID(methodAssum.getHashSetKey().getOverloadedMethodID()); - // F�r die V_i: + // F�r die V_i: CTypeAssumptionSet localAssum = new CTypeAssumptionSet(); // Bauen... @@ -834,7 +834,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I if(parameterList!=null){ for(int i=0; i()); //fuege Offsets fuer Parameter hinzu, hoth: 06.04.2006 Class.isFirstLocalVarDecl=false; @@ -847,13 +847,13 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I - // F�r die V_i: + // F�r die V_i: CLocalVarTypeAssumption varAssum = new CLocalVarTypeAssumption(this.getName(), method.get_Method_Name(), method.getParameterCount(), method.getOverloadedID(),"1", para.getIdentifier(),para.getType(), para.getLineNumber(),para.getOffset(),new Menge()); localAssum.addElement(varAssum); rememberLocals.addElement(varAssum); } } - // ...und hinzuf�gen: + // ...und hinzuf�gen: V.addElement(localAssum); } @@ -866,15 +866,15 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I */ /** - * Ermittelt alle privaten Felder und Methoden der Klasse und Erstellt eine Assumption für diese. - * Bemerkung: Momentan werden noch alle Felder dieser Klasse zurückgegeben. + * Ermittelt alle privaten Felder und Methoden der Klasse und Erstellt eine Assumption für diese. + * Bemerkung: Momentan werden noch alle Felder dieser Klasse zurückgegeben. * @return Die erstellten TypeAssumptions */ private TypeAssumptions getPrivateFieldAssumptions() { - if(this.typeAssumptions != null)return this.typeAssumptions; //Das sorgt dafür, dass die Assumptions nur einmalig generiert werden. + if(this.typeAssumptions != null)return this.typeAssumptions; //Das sorgt dafür, dass die Assumptions nur einmalig generiert werden. TypeAssumptions assumptions = new TypeAssumptions(this.getName()); - //this.getMethodList(); //Diese Funktion muss zuerst ausgeführt werden. - //Assumption für this, also die aktuelle Klasse: (ist nicht mehr nötig, da jedes AssumptionSet einer Klasse (dem namen einer Klasse) zugewiesen ist. + //this.getMethodList(); //Diese Funktion muss zuerst ausgeführt werden. + //Assumption für this, also die aktuelle Klasse: (ist nicht mehr nötig, da jedes AssumptionSet einer Klasse (dem namen einer Klasse) zugewiesen ist. //CLocalVarTypeAssumption thisAssumption = new CLocalVarTypeAssumption(this.name, name, 0, 0, name, "this", new RefType(name,0), 0, 0, null); //assumptions.setThisV(thisAssumption); @@ -882,20 +882,20 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I if(!field.isPublic())assumptions.add(field.createTypeAssumptions(this)); } - //Eine Assumption für den Standardkonstruktor: - // (Ein Standardkonstruktor wird immer angefügt, da es momentan keine statischen Klassen gibt) - //auskommentiert, da der Standardkonstruktor beim Parser-Postprocessing angefügt wird. - //if(assumptions.getMethodAssumptions(this.getName(), "").size()==0){ //Falls kein Konstruktor für diese Klasse definiert wurde: + //Eine Assumption für den Standardkonstruktor: + // (Ein Standardkonstruktor wird immer angefügt, da es momentan keine statischen Klassen gibt) + //auskommentiert, da der Standardkonstruktor beim Parser-Postprocessing angefügt wird. + //if(assumptions.getMethodAssumptions(this.getName(), "").size()==0){ //Falls kein Konstruktor für diese Klasse definiert wurde: // assumptions.addMethodAssumption(new RefType(this.getName(),0), "", new RefType(this.getName(),0), new Menge()); //} - this.typeAssumptions = assumptions; //Diese müssen anschließend nicht wieder generiert werden. + this.typeAssumptions = assumptions; //Diese müssen anschließend nicht wieder generiert werden. return assumptions; } /* public ConstraintsSet TYPE(Menge methodList, Menge fielddeclarationList, TypeAssumptions assumptions){ ConstraintsSet ret = new ConstraintsSet(); - // Die Felddeklarationen werden zu den Assumptions hinzugefügt und gelten danach für jede Methode. + // Die Felddeklarationen werden zu den Assumptions hinzugefügt und gelten danach für jede Methode. //TypeAssumptions assumptionsPlusFieldAssumptions = new TypeAssumptions(assumptions); for(Expr expr : fielddeclarationList){ //ret.add(expr.TYPEStmt(assumptionsPlusFieldAssumptions)); @@ -912,9 +912,9 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I // ino.method.RetType.23119.defdescription type=javadoc /** - * Liefert den berechneten R�ckgabetyp f�r die �bergebene Methode zur�ck.
- * (siehe Algorithmus RetType, Martin Pl�micke) - *
Author: J�rg B�uerle + * Liefert den berechneten R�ckgabetyp f�r die �bergebene Methode zur�ck.
+ * (siehe Algorithmus RetType, Martin Pl�micke) + *
Author: J�rg B�uerle * @param me * @param V * @return @@ -936,7 +936,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I */ // ino.method.toString.23125.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end @@ -954,7 +954,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I // ino.method.wandleRefTypeAttributes2GenericAttributes.23128.defdescription type=javadoc /** - * Alle Methoden der Klassen überprüfen, ob sie als + * Alle Methoden der Klassen überprüfen, ob sie als * RefType deklarierte Attribute haben, die aber GenericTypeVars sind * und ggf. ersetzen * @@ -1043,7 +1043,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I /** - * Generiert den JavaCode dieser Klasse im Falle für das übergebene resultSet. + * Generiert den JavaCode dieser Klasse im Falle für das übergebene resultSet. * Dem ResultSet entsprechend werden in diesem Java-Code die TypePlaceholder durch die in ResultSet stehenden Typen ersetzt. * @return Java-Sourcefile */ @@ -1073,7 +1073,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I classBodyCode.attach(bodyString); - //Zuerst die generischen Parameter für diese Klasse berechnen: + //Zuerst die generischen Parameter für diese Klasse berechnen: //this.createGenericTypeVars(classBodyCode.getUnresolvedTPH()); if(this.genericClassParameters != null && this.genericClassParameters.size()>0){ @@ -1094,9 +1094,9 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I } /** - * Errechnet die Generischen Parameter der Klasse für diese Klasse. - * Die berechneten Variablen werden anschließend in die this.genericTypeVars eingesetzt. Dabei werden alte genericTypeVars überschrieben. - * @param tphs : Alle übriggebliebenen TypePLaceholder + * Errechnet die Generischen Parameter der Klasse für diese Klasse. + * Die berechneten Variablen werden anschließend in die this.genericTypeVars eingesetzt. Dabei werden alte genericTypeVars überschrieben. + * @param tphs : Alle übriggebliebenen TypePLaceholder private void createGenericTypeVars(Menge tphs){ this.genericClassParameters = new GenericDeclarationList(new Menge()); @@ -1107,8 +1107,8 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I } */ /** - * Errechnet die Generischen Parameter der Klasse für diese Klasse. - * Die berechneten Variablen werden anschließend in die this.genericTypeVars eingesetzt. Dabei werden alte genericTypeVars überschrieben. + * Errechnet die Generischen Parameter der Klasse für diese Klasse. + * Die berechneten Variablen werden anschließend in die this.genericTypeVars eingesetzt. Dabei werden alte genericTypeVars überschrieben. * @param reconstructionResult public void createGenericTypeVars(TypeinferenceResultSet reconstructionResult){ @@ -1193,7 +1193,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I } this.fielddecl = tempFields; - //Prüfen ob ein Konstruktor vorhanden ist: + //Prüfen ob ein Konstruktor vorhanden ist: boolean constructorVorhanden = false; for(Field f : this.getFields()){ if(f instanceof Constructor){ @@ -1201,7 +1201,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I break; } } - if(!constructorVorhanden){//Falls kein Konstruktor vorhanden ist, muss noch der Standardkonstruktor angefügt werden: + if(!constructorVorhanden){//Falls kein Konstruktor vorhanden ist, muss noch der Standardkonstruktor angefügt werden: Constructor standardKonstruktor = new Constructor(Method.createEmptyMethod(this.getName().toString(), this)); this.addField(standardKonstruktor); } @@ -1289,7 +1289,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I @Override public int getGenericVarDeclarationOffset(){ - // Falls Generische Parameterliste vorhanden, hier Wert der Liste zurückgegebn + // Falls Generische Parameterliste vorhanden, hier Wert der Liste zurückgegebn if(this.genericClassParameters != null){ return this.genericClassParameters.getEndOffset(); }else{ @@ -1299,7 +1299,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I /** * Die Super Klasse dieser Klasse. - * @return null für Klasse Object + * @return null für Klasse Object */ public Type getSuperClass(){ return this.superClass; diff --git a/src/de/dhbwstuttgart/syntaxtree/ClassBody.java b/src/de/dhbwstuttgart/syntaxtree/ClassBody.java index c8fae5a0..e0b36c8f 100755 --- a/src/de/dhbwstuttgart/syntaxtree/ClassBody.java +++ b/src/de/dhbwstuttgart/syntaxtree/ClassBody.java @@ -103,7 +103,7 @@ Paratyp gesetzt."); } /** * @author Andreas Stadelmeier, a10023 - * Fügt der Klasse eine Feld hinzu. + * Fügt der Klasse eine Feld hinzu. * @param feld */ public void addField(Field i) @@ -305,7 +305,7 @@ public void istParameterOK( Menge Parameter, Menge KlassenVektor ) { if( ((RefType)TempParameter).get_ParaList().size() != KlassenVektor.elementAt(k).get_ParaList().size() ) { - parserlog.error( "SEMANTIK-CHECK-FEHLER: Parameteranzahl von\n" + TempParameter.getName() + " stimmt mit der Klassendefinition\n" + KlassenVektor.elementAt(k).getName() + " nicht �berein.", Section.OLD ); + parserlog.error( "SEMANTIK-CHECK-FEHLER: Parameteranzahl von\n" + TempParameter.getName() + " stimmt mit der Klassendefinition\n" + KlassenVektor.elementAt(k).getName() + " nicht �berein.", Section.OLD ); System.exit( 1 ); } else @@ -332,7 +332,7 @@ public void istParameterOK( Menge Parameter, Menge KlassenVektor ) } else { - // Tylose Variablen d�rfen nicht deklariert sein + // Tylose Variablen d�rfen nicht deklariert sein for( int k = 0; k < KlassenVektor.size(); k++) { if( KlassenVektor.elementAt(k).getName().equals(TempParameter.getName()) ) @@ -350,7 +350,7 @@ public void istParameterOK( Menge Parameter, Menge KlassenVektor ) // ino.method.toString.23203.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/ClassHelper.java b/src/de/dhbwstuttgart/syntaxtree/ClassHelper.java index c8b53433..36560d7e 100755 --- a/src/de/dhbwstuttgart/syntaxtree/ClassHelper.java +++ b/src/de/dhbwstuttgart/syntaxtree/ClassHelper.java @@ -18,8 +18,8 @@ public class ClassHelper /** * HOTI * Diese Methode sucht in der Klassendefinition nach einen GTV, die - * so heißt wie die im RefType definierte Variable. Wenn sie diese gefunden - * hat, wird sie zurückgeben. Wenn dies nicht der Fall war, schaut sie, falls + * so heißt wie die im RefType definierte Variable. Wenn sie diese gefunden + * hat, wird sie zurückgeben. Wenn dies nicht der Fall war, schaut sie, falls * angegeben in den Methodenparametern nach. Findet sie dort auch nichts, liefert * die Methode null. * @param type diff --git a/src/de/dhbwstuttgart/syntaxtree/Field.java b/src/de/dhbwstuttgart/syntaxtree/Field.java index b54de818..0437b44c 100644 --- a/src/de/dhbwstuttgart/syntaxtree/Field.java +++ b/src/de/dhbwstuttgart/syntaxtree/Field.java @@ -79,7 +79,7 @@ public abstract class Field extends GTVDeclarationContext implements TypeInserta public Menge getDeclIdMenge() { - // otth: ganzer Vektor zur�ckgeben, um ihn zu kopieren (vgl. MyCompiler - Konstruktor in Methode umwandeln) + // otth: ganzer Vektor zur�ckgeben, um ihn zu kopieren (vgl. MyCompiler - Konstruktor in Methode umwandeln) return declid; } @@ -95,7 +95,7 @@ public abstract class Field extends GTVDeclarationContext implements TypeInserta public abstract JavaCodeResult printJavaCode(ResultSet resultSet); /** - * Diese Methode generiert die Assumptions für dieses Feld der Klasse classmember + * Diese Methode generiert die Assumptions für dieses Feld der Klasse classmember * @param classmember * @return */ @@ -150,7 +150,7 @@ public abstract class Field extends GTVDeclarationContext implements TypeInserta @Override public int getGenericVarDeclarationOffset(){ - // Falls Generische Parameterliste vorhanden, hier Wert der Liste zurückgegebn + // Falls Generische Parameterliste vorhanden, hier Wert der Liste zurückgegebn if(this.genericParameters != null){ return this.genericParameters.getEndOffset(); }else{ diff --git a/src/de/dhbwstuttgart/syntaxtree/FieldDeclaration.java b/src/de/dhbwstuttgart/syntaxtree/FieldDeclaration.java index e47a0ce9..5eef3ade 100644 --- a/src/de/dhbwstuttgart/syntaxtree/FieldDeclaration.java +++ b/src/de/dhbwstuttgart/syntaxtree/FieldDeclaration.java @@ -21,7 +21,7 @@ import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException; /** - * Eine Feldinitialisation steht für eine Felddeklaration mit gleichzeitiger Wertzuweisung + * Eine Feldinitialisation steht für eine Felddeklaration mit gleichzeitiger Wertzuweisung * Beispiel: 'public Feld FeldVar = FeldWert;' * @author janulrich * @@ -33,8 +33,8 @@ public class FieldDeclaration extends Field{ //private Menge parameter; /** - * Dieser Konstruktor der FieldDeclaration erstellt den Syntaxknoten vollständig. - * Kein nachträgliches hinzfügen von Informationen oder aufrufen von parserPostProcessing ist notwendig. + * Dieser Konstruktor der FieldDeclaration erstellt den Syntaxknoten vollständig. + * Kein nachträgliches hinzfügen von Informationen oder aufrufen von parserPostProcessing ist notwendig. */ public FieldDeclaration(String name, Type typ){ super(0);//Dieser Deklarator wird nicht vom Parser aufgerufen. Dadurch gibt es auch keinen Offset @@ -88,7 +88,7 @@ public class FieldDeclaration extends Field{ ////////////////////////////// TypeAssumptions assumptions = new TypeAssumptions(); /* - * Der Feld-Assumption muss ein TPH als Typ hinzugefügt werden, falls er Typlos initialisiert wurde. Dies kann auch der Type-Algorithmus der Inst/FieldVar - Klasse machen. + * Der Feld-Assumption muss ein TPH als Typ hinzugefügt werden, falls er Typlos initialisiert wurde. Dies kann auch der Type-Algorithmus der Inst/FieldVar - Klasse machen. * Wird das Feld mit einem Typ initialisiert so muss dieser auch in die Assumptions. */ if(this.getType() == null)throw new TypeinferenceException("Der Typ eines Feldes darf nicht null sein", this); @@ -117,7 +117,7 @@ public class FieldDeclaration extends Field{ @Override public ConstraintsSet TYPE(TypeAssumptions publicAssumptions) { if(this.wert == null && (this.getType() == null || this.getType() instanceof TypePlaceholder)) - throw new TypeinferenceException("Typlose Felder müssen mit Wert initialisiert werden", this); + throw new TypeinferenceException("Typlose Felder müssen mit Wert initialisiert werden", this); ConstraintsSet ret = new ConstraintsSet(); TypeAssumptions localAssumptions = publicAssumptions.clone(); @@ -151,7 +151,7 @@ public class FieldDeclaration extends Field{ ret.add(c1); //Damit die TypVariable des Felds in den Constraints auftaucht if(this.wert!=null){ - //Falls bei der Deklaration ein Wert zugewiesen wird, verhält sich das Constraintserzeugen wie bei dem Assign-Statement: + //Falls bei der Deklaration ein Wert zugewiesen wird, verhält sich das Constraintserzeugen wie bei dem Assign-Statement: ret.add(this.wert.TYPEExpr(localAssumptions)); ret.add(new SingleConstraint(this.wert.getType().TYPE(localAssumptions,this), thisType)); } @@ -161,7 +161,7 @@ public class FieldDeclaration extends Field{ @Override public void wandleRefTypeAttributes2GenericAttributes(Menge paralist){ super.wandleRefTypeAttributes2GenericAttributes(paralist); - if(this.getWert()!=null)this.getWert().wandleRefTypeAttributes2GenericAttributes(paralist, new Menge()); //FieldDeclaration hat keine Generischen Variablen, daher leere Liste übergeben + if(this.getWert()!=null)this.getWert().wandleRefTypeAttributes2GenericAttributes(paralist, new Menge()); //FieldDeclaration hat keine Generischen Variablen, daher leere Liste übergeben } } diff --git a/src/de/dhbwstuttgart/syntaxtree/FormalParameter.java b/src/de/dhbwstuttgart/syntaxtree/FormalParameter.java index d229de60..c4115bc4 100755 --- a/src/de/dhbwstuttgart/syntaxtree/FormalParameter.java +++ b/src/de/dhbwstuttgart/syntaxtree/FormalParameter.java @@ -43,7 +43,7 @@ public class FormalParameter extends SyntaxTreeNode implements Typeable, TypeIns @Override public boolean equals(Object object) { - //if(!super.equals(object))return false; //Nicht die Position im SyntaxBaum prüfen. + //if(!super.equals(object))return false; //Nicht die Position im SyntaxBaum prüfen. if(!(object instanceof FormalParameter))return false; FormalParameter equals = (FormalParameter)object; if((this.type==null)!=(equals.type == null))return false; @@ -56,7 +56,7 @@ public class FormalParameter extends SyntaxTreeNode implements Typeable, TypeIns // ino.method.setType.23404.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @param t */ // ino.end @@ -142,7 +142,7 @@ public class FormalParameter extends SyntaxTreeNode implements Typeable, TypeIns // ino.method.getLineNumber.23425.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end @@ -158,7 +158,7 @@ public class FormalParameter extends SyntaxTreeNode implements Typeable, TypeIns // ino.method.getTypeLineNumber.23431.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/Generic.java b/src/de/dhbwstuttgart/syntaxtree/Generic.java index 7bcb538a..bcd36611 100644 --- a/src/de/dhbwstuttgart/syntaxtree/Generic.java +++ b/src/de/dhbwstuttgart/syntaxtree/Generic.java @@ -6,7 +6,7 @@ import de.dhbwstuttgart.typeinference.Menge; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; /** - * Wird von allen Klassen implementiert, welche generische Parameter halten können. (Class, Method und Field) + * Wird von allen Klassen implementiert, welche generische Parameter halten können. (Class, Method und Field) * @author janulrich * */ diff --git a/src/de/dhbwstuttgart/syntaxtree/ImportDeclarations.java b/src/de/dhbwstuttgart/syntaxtree/ImportDeclarations.java index 0ecbaa6d..a25efc00 100755 --- a/src/de/dhbwstuttgart/syntaxtree/ImportDeclarations.java +++ b/src/de/dhbwstuttgart/syntaxtree/ImportDeclarations.java @@ -14,7 +14,7 @@ import de.dhbwstuttgart.syntaxtree.misc.UsedId; * HOTI 4.5.06 * Auch wenn es nicht so aussieht, hat diese Klasse einen Sinn :-) * Der Parser kann keine Generischen Typen darstellen, damit trotzdem - * an amap Stellen die Typsicherheit gewährleistet ist, hier eine Kapselung... + * an amap Stellen die Typsicherheit gewährleistet ist, hier eine Kapselung... */ // ino.end // ino.class.ImportDeclarations.23434.declaration diff --git a/src/de/dhbwstuttgart/syntaxtree/Method.java b/src/de/dhbwstuttgart/syntaxtree/Method.java index a776235a..f068ab67 100755 --- a/src/de/dhbwstuttgart/syntaxtree/Method.java +++ b/src/de/dhbwstuttgart/syntaxtree/Method.java @@ -86,7 +86,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable // ino.attribute.m_LineNumber.23512.declaration private int m_LineNumber = MyCompiler.NO_LINENUMBER; // ino.end - private int m_Offset = -1; //hinzugef�gt hoth: 07.04.2006 + private int m_Offset = -1; //hinzugef�gt hoth: 07.04.2006 // ino.attribute.inferencelog.23515.declaration protected static Logger inferencelog = Logger.getLogger("inference"); // ino.end @@ -389,7 +389,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable // ino.end // ino.method.getOffset.23590.defdescription type=line - // hinzugef�gt hoth: 07.04.2006 + // hinzugef�gt hoth: 07.04.2006 // ino.end // ino.method.getOffset.23590.definition public int getOffset() @@ -410,7 +410,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable // ino.end // ino.method.setOffset.23596.defdescription type=line - // hinzugef�gt hoth: 07.04.2006 + // hinzugef�gt hoth: 07.04.2006 // ino.end // ino.method.setOffset.23596.definition public void setOffset(int Offset) @@ -439,7 +439,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable // ino.method.toString.23605.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end @@ -529,8 +529,8 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable public ConstraintsSet TYPE(TypeAssumptions ass) { ConstraintsSet ret = new ConstraintsSet(); TypeAssumptions localAss = new TypeAssumptions(); - localAss.add(ass); //Die globalen Assumptions anhängen - //Generische Parameterdeklarationen den Assumptions anfügen: + localAss.add(ass); //Die globalen Assumptions anhängen + //Generische Parameterdeklarationen den Assumptions anfügen: for(GenericTypeVar gtv : this.getGenericParameter()){ localAss.add(gtv.createAssumptions()); } @@ -549,7 +549,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable this.returntype = replaceType; } */ - //Die Parameter zu den Assumptions hinzufügen: + //Die Parameter zu den Assumptions hinzufügen: if(this.parameterlist!=null)for(FormalParameter param : this.parameterlist){ param.setType(param.getType().checkTYPE(localAss, this)); @@ -567,7 +567,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable localAss.addAssumption(new ParameterAssumption(param)); } ret.add(this.block.TYPEStmt(localAss)); - //eine Verknüpfung mit der Type Assumption aus dem Assumption Set und dem ermittelten Typ der Methode: + //eine Verknüpfung mit der Type Assumption aus dem Assumption Set und dem ermittelten Typ der Methode: ret.add(new SingleConstraint(this.block.getType().TYPE(localAss, this), this.returntype.TYPE(localAss, this))); return ret; } @@ -629,7 +629,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable //methodList.addElement(method); - //F�r V_fields_methods: + //F�r V_fields_methods: CMethodTypeAssumption methodAssum = new CMethodTypeAssumption(classmember.getType(), this.get_Method_Name(), this.getType(), this.getParameterCount(),this.getLineNumber(),this.getOffset(),new Menge(),this.getGenericMethodParameters()); // Typannahme bauen... @@ -642,7 +642,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable this.setOverloadedID(methodAssum.getHashSetKey().getOverloadedMethodID()); - //F�r die V_i: + //F�r die V_i: CTypeAssumptionSet localAssum = new CTypeAssumptionSet(); //Bauen... @@ -650,7 +650,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable if(parameterList!=null){ for(int i=0; i()); //fuege Offsets fuer Parameter hinzu, hoth: 06.04.2006 Class.isFirstLocalVarDecl=false; @@ -660,15 +660,15 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable methodAssum.addParaAssumption(paraAssum); - // F�r die V_i: + // F�r die V_i: CLocalVarTypeAssumption varAssum = new CLocalVarTypeAssumption(classmember.getName(), this.get_Method_Name(), this.getParameterCount(), this.getOverloadedID(),"1", para.get_Name(),para.getType(), para.getLineNumber(),para.getOffset(),new Menge()); localAssum.addElement(varAssum); //rememberLocals.addElement(varAssum); } } - //...und hinzuf�gen: + //...und hinzuf�gen: - assumptions.add(localAssum);//Assumptions für lokale Variablen den Assumptions hinzufügen + assumptions.add(localAssum);//Assumptions für lokale Variablen den Assumptions hinzufügen //Hier wird der Typ der als Assumption eingetragen wird in die Variable assumedType dieser Klasse geschrieben: if(this.assumedType == null) // Falls der Typ nicht schon gesetzt ist. Das ist der Fall, falls die Methode ein Konstruktor ist @@ -682,7 +682,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable @Override public void parserPostProcessing(SyntaxTreeNode parent){ if(this.getType()==null)this.setType(TypePlaceholder.fresh(this)); - //Bei dem Elterntyp der Methode darf es sich nur um eine Klasse handeln, daher Cast ohne Prüfung: + //Bei dem Elterntyp der Methode darf es sich nur um eine Klasse handeln, daher Cast ohne Prüfung: //Class parentClass = (Class)parent; if(this.returntype == null)this.returntype = TypePlaceholder.fresh(this); super.parserPostProcessing(parent); @@ -714,7 +714,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable // Methode und Block teilen sich einen ReturnType: //this.block.setType(t); this.returntype = t; - this.returntype.parent = this; //TODO: Dieser Hack sollte nicht nötig sein. (Parser ändern) + this.returntype.parent = this; //TODO: Dieser Hack sollte nicht nötig sein. (Parser ändern) } /** diff --git a/src/de/dhbwstuttgart/syntaxtree/ParameterList.java b/src/de/dhbwstuttgart/syntaxtree/ParameterList.java index 2deffc91..7839e55d 100755 --- a/src/de/dhbwstuttgart/syntaxtree/ParameterList.java +++ b/src/de/dhbwstuttgart/syntaxtree/ParameterList.java @@ -105,7 +105,7 @@ public class ParameterList extends SyntaxTreeNode implements Iterable + * Author: J�rg B�uerle
* @return Die Anzahl der Parameter */ // ino.end @@ -132,7 +132,7 @@ public class ParameterList extends SyntaxTreeNode implements Iterabletrue gesetzt ist, wird immer als Superklasse Object - * mit rein geladen. Dies hat natürlich zur Folge, dass man in der GUI jeden Typ - * auswählen muss, weil ALLES in Java von Object erbt. Sobald die GUI das über eine - * Checkbox o.ä. ausblendbar macht kann es aktiviert werden. Ebenso beeinflusst es + * mit rein geladen. Dies hat natürlich zur Folge, dass man in der GUI jeden Typ + * auswählen muss, weil ALLES in Java von Object erbt. Sobald die GUI das über eine + * Checkbox o.ä. ausblendbar macht kann es aktiviert werden. Ebenso beeinflusst es * die superclass von allen Class-Objekten. (Wenn true ist jede Class automatisch * wenn nicht anders eingegeben Subclass von Object (Wie es sein muss)) */ @@ -87,7 +87,7 @@ public class SourceFile // ino.attribute.READ_BASE_TYPE_SUPERCLASSES_FROM_JRE.21364.decldescription type=javadoc /** - * Wenn dieses Flag auf false ist, werden für alle Basisklassen (definiert + * Wenn dieses Flag auf false ist, werden für alle Basisklassen (definiert * durch die Hashtable baseTypeTranslationTable) KEINE Superklassen geladen. D.h. * Integer hat bspw. nicht die Superklasse Number sondern OBJECT. * Dies verursacht bei den Int-Operationen ein Problem @@ -100,7 +100,7 @@ public class SourceFile /** * @autor PL - * Wenn dieses Flag auf false ist, werden für alle importierten Klassen + * Wenn dieses Flag auf false ist, werden für alle importierten Klassen * KEINE Superklassen geladen. */ private static final boolean READ_IMPORTED_SUPERCLASSES_FROM_JRE = false; @@ -128,7 +128,7 @@ public class SourceFile // ino.end /** - * Die SourceFile repräsntiert eine zu einem Syntaxbaum eingelesene Java-Datei. + * Die SourceFile repräsntiert eine zu einem Syntaxbaum eingelesene Java-Datei. * SourceFile stellt dabei den Wurzelknoten des Syntaxbaumes dar. */ public SourceFile(){ @@ -178,12 +178,12 @@ public class SourceFile // ino.end // ino.attribute.baseTypeTranslationTable.21385.decldescription type=javadoc /** - * Table zum Übersetzen der nicht implementierten Base-Types: - * Überall im Compiler wird statt bspw. int Integer verwendet + * Table zum Ãœbersetzen der nicht implementierten Base-Types: + * Ãœberall im Compiler wird statt bspw. int Integer verwendet * d.h. 1+2 liefert ein Integer - * Deshalb benötigen wir hier eine Tabelle, mit der man die von + * Deshalb benötigen wir hier eine Tabelle, mit der man die von * der JRE gelieferten Base-Typen (int,char, etc) und die Objekt- - * Typen umwandeln können + * Typen umwandeln können */ // ino.end // ino.attribute.baseTypeTranslationTable.21385.declaration @@ -295,7 +295,7 @@ public class SourceFile // ino.method.makeFC.21403.defdescription type=javadoc /** * Erstellt die Finite Closure - * @return FC_TTO-Object, welches die Finite Closure repräsentiert + * @return FC_TTO-Object, welches die Finite Closure repräsentiert */ // ino.end // ino.method.makeFC.21403.definition @@ -311,7 +311,7 @@ public class SourceFile globalAssumptions.add(this.getPublicFieldAssumptions()); // 1. Menge <= in FC aufnehmen --> Iteration ueber alle Klassen - Menge ignoreTypes = new Menge<>(); //Enthält die Typen, welche nicht in der FC als Supertypen enthalten sein sollen. + Menge ignoreTypes = new Menge<>(); //Enthält die Typen, welche nicht in der FC als Supertypen enthalten sein sollen. ignoreTypes.add(new RefType("Long",null,-1).TYPE(globalAssumptions, parent).getType()); ignoreTypes.add(new RefType("Float",null,-1).TYPE(globalAssumptions, parent).getType()); ignoreTypes.add(new RefType("Double",null,-1).TYPE(globalAssumptions, parent).getType()); @@ -327,10 +327,10 @@ public class SourceFile //System.out.println("FCPair: "+p); if(! t1.equals(t2)){//Um FC_TTO darf kein T <. T stehen. Type superTypeFromAssumptions = ass.getTypeFor(t2, t2).getType(); //In den Assumptions den SuperTyp nachschlagen - if(superTypeFromAssumptions != null && ! ignoreTypes.contains(superTypeFromAssumptions)){//Die Superklasse eines Typs nur anfügen, wenn er auch in den Assumptions vorkommt. + if(superTypeFromAssumptions != null && ! ignoreTypes.contains(superTypeFromAssumptions)){//Die Superklasse eines Typs nur anfügen, wenn er auch in den Assumptions vorkommt. vFC.add(p); } - basicAssumptionsClassMenge.add(cAss.getAssumedClass());//Klasse ohne die Superklasse anfügen + basicAssumptionsClassMenge.add(cAss.getAssumedClass());//Klasse ohne die Superklasse anfügen }else{ //System.out.println("Wurde nicht aufgenommen"); } @@ -403,7 +403,7 @@ public class SourceFile // konkret: rechte Seite von FC nach Typkonstruktoren in der Parameterliste durchsuchen for( int n = 0; n < vFC.size(); n++ ) { - // Elemente in FC k�nnen nur Pair's sein --> Cast ohne Abfrage + // Elemente in FC k�nnen nur Pair's sein --> Cast ohne Abfrage Pair PTypKonst = vFC.elementAt(n); // Parameter des rechten Typausdrucks des betrachteten Paars extrahieren @@ -445,7 +445,7 @@ public class SourceFile { inferencelog.debug(" gefundener Typ links: " + ((RefType)(PSuchen.TA1)).getName(), Section.FINITECLOSURE ); inferencelog.debug(" gefundener Typ rechts: " + ((RefType)(PSuchen.TA2)).getName() , Section.FINITECLOSURE); - // Paar gefunden, das als linken Typ den gleichen Typen enth�lt, der als Parameter einen Typkonstruktor hat + // Paar gefunden, das als linken Typ den gleichen Typen enth�lt, der als Parameter einen Typkonstruktor hat // Substitution //Pair P = new Pair( PSuchen.getTA1Copy( ), PSuchen.getTA2Copy( ) ); //linker Typterm bleibt gleich @@ -498,7 +498,7 @@ public class SourceFile // new RefType( (RefType)vPara.elementAt(u) ), // false ); // rechte Seite substituieren //Es genuegt die rechte Seite zu substituieren, da - //die linke Seite ein Typterm ausschlie�lich mit + //die linke Seite ein Typterm ausschlie�lich mit //Typvariablen ist } //Unify.SubstHashtableGeneric(((RefType)P.TA1), hts); //funktioniert nicht @@ -597,7 +597,7 @@ public class SourceFile } } // end for: linke Seite suchen } // end if: Element ist RefType - } // end for: Transitivit�ten berechnen + } // end for: Transitivit�ten berechnen //PL HIER REFLEXIVE HUELLE EINFUEGEN // 05-01-07 @@ -658,13 +658,13 @@ public class SourceFile ///////////////////////////////////////////////////////////////////////// // ino.method.typeReconstruction.21406.defdescription type=javadoc /** - * Tyrekonstruktionsalgorithmus: ruft f�r jede Klasse den Algorithmus TRProg auf. - * Dessen Ergebnismenge A, die Menge aller Typannahmen, f�r eine Klasse dient als - * Eingabe f�r TRProg der n�chsten Klasse. Am Ende enth�lt A alle m�glichen - * Typkombinationen f�r alle Klassen zusammen. - *
Author: J�rg B�uerle - * @return Liste aller m�glichen Typkombinationen - * @throws CTypeReconstructionException Wenn was schief l�uft + * Tyrekonstruktionsalgorithmus: ruft f�r jede Klasse den Algorithmus TRProg auf. + * Dessen Ergebnismenge A, die Menge aller Typannahmen, f�r eine Klasse dient als + * Eingabe f�r TRProg der n�chsten Klasse. Am Ende enth�lt A alle m�glichen + * Typkombinationen f�r alle Klassen zusammen. + *
Author: J�rg B�uerle + * @return Liste aller m�glichen Typkombinationen + * @throws CTypeReconstructionException Wenn was schief l�uft */ // ino.end // ino.method.typeReconstruction.21406.definition @@ -678,7 +678,7 @@ public class SourceFile //Logger initialisieren: Logger typinferenzLog = Logger.getLogger("Typeinference"); - //Alle Assumptions für diese SourceFile sammeln: + //Alle Assumptions für diese SourceFile sammeln: for(Class klasse : this.KlassenVektor){ globalAssumptions.add(klasse.getPublicFieldAssumptions()); } @@ -703,14 +703,14 @@ public class SourceFile //Karthesisches Produkt bilden: //////////////// - //Unmögliche ConstraintsSets aussortieren durch Unifizierung + //Unmögliche ConstraintsSets aussortieren durch Unifizierung Unifier unifier = (pairs)->{ Menge> retValue = new Menge<>(); retValue = Unify.unify(pairs, finiteClosure); return retValue;}; //oderConstraints.filterWrongConstraints(unifier); oderConstraints.unifyUndConstraints(unifier); - typinferenzLog.debug("Übriggebliebene Konstraints:\n"+oderConstraints+"\n", Section.TYPEINFERENCE); + typinferenzLog.debug("Ãœbriggebliebene Konstraints:\n"+oderConstraints+"\n", Section.TYPEINFERENCE); //Die Constraints in Pair's umwandeln (Karthesisches Produkt bilden): Menge> xConstraints = oderConstraints.cartesianProduct(); /* @@ -731,10 +731,10 @@ public class SourceFile ////////////////////////////// boolean unifyFail = true; for(Menge constraints : xConstraints){ - //Alle durch das Karthesische Produkt entstandenen Möglichkeiten durchgehen: + //Alle durch das Karthesische Produkt entstandenen Möglichkeiten durchgehen: Menge> result = new Menge>(); - //Alle FunN-Typen werden per clone-methode in RefTypes verwandelt. (Die clone Methode in FunN darf nicht überschrieben werden. + //Alle FunN-Typen werden per clone-methode in RefTypes verwandelt. (Die clone Methode in FunN darf nicht überschrieben werden. for(Pair p : constraints){ if(p.TA1 instanceof FunN){ p.TA1 = p.TA1.clone(); @@ -802,7 +802,7 @@ public class SourceFile ).collect(Menge::new, Menge::add, Menge::addAll); //Schritt 2: Schnittmengen jedes Elements mit jedem Elememt von vars bilden und dann index zusammenfassen - //in indexset sind dann die Mengen von Indizes enthalten, die gemeisam unifiziert wreden müssen + //in indexset sind dann die Mengen von Indizes enthalten, die gemeisam unifiziert wreden müssen Menge> indexeset = new Menge<>(); if (constraintsclonevars != null && constraintsclonevars.size()>0) { indexeset = Unify.schnitt(constraintsclonevars); @@ -880,7 +880,7 @@ public class SourceFile }); //Menge> unifyResult = Unify.unify(constraintsClone, finiteClosure); - //Dann den Ergebnissen anfügen + //Dann den Ergebnissen anfügen result.addAll(unifyResult); // Debugoutput:Menge> @@ -888,10 +888,10 @@ public class SourceFile //typinferenzLog.debug("Unifiziertes Ergebnis: "+result, Section.TYPEINFERENCE); /* - // Prüfe ob eindeutige Lösung: + // Prüfe ob eindeutige Lösung: if(result.size()>1 && !Unify.hasSolvedForm(result.elementAt(0))){ - typinferenzLog.debug("Keine eindeutige Lösung!"); + typinferenzLog.debug("Keine eindeutige Lösung!"); }else if(result.size()>1){ @@ -912,9 +912,9 @@ public class SourceFile //typinferenzLog.debug(this.printJavaCode(new ResultSet(new Menge()))); - //Für jede Klasse in diesem SourceFile gilt das selbe ResultSet: + //Für jede Klasse in diesem SourceFile gilt das selbe ResultSet: for(Class klasse : this.KlassenVektor){ - //Der Unifikationsalgorithmus kann wiederum auch mehrere Lösungen errechnen, diese werden im folgenden durchlaufen: + //Der Unifikationsalgorithmus kann wiederum auch mehrere Lösungen errechnen, diese werden im folgenden durchlaufen: for(Menge resultSet : result){ unifyFail = false; //Ein Unifiziertes Ergebnis ist entstanden (es kann auch leer sein, das bedeutet nur, dass die Constraints mindestens in einem Fall Sinn ergaben) //Add Result set as a new ReconstructionResult to ret: @@ -922,7 +922,7 @@ public class SourceFile ret.add(reconstructionResult); //ResultSet res = new ResultSet(resultSet); - typinferenzLog.debug("JavaFile für ResultSet "+reconstructionResult+"\n", Section.TYPEINFERENCE); + typinferenzLog.debug("JavaFile für ResultSet "+reconstructionResult+"\n", Section.TYPEINFERENCE); typinferenzLog.debug(klasse.printJavaCode(reconstructionResult), Section.TYPEINFERENCE); } @@ -934,8 +934,8 @@ public class SourceFile return ret; /* // HOTI: Nur zur Info.Ich habe den Loglevel auf Info geschaltet, damit - // in der GUI (Eclipse-Plugin) die Console nicht zugemüllt wird. - // Wers braucht kanns natürlich ausschalten + // in der GUI (Eclipse-Plugin) die Console nicht zugemüllt wird. + // Wers braucht kanns natürlich ausschalten // inferencelog.setLevel(Level.INFO); @@ -966,7 +966,7 @@ public class SourceFile this.KlassenVektor); } - // HOTI 04-13-06 Alle Methoden der Klassen überprüfen, ob sie als + // HOTI 04-13-06 Alle Methoden der Klassen überprüfen, ob sie als // RefType deklarierte Attribute haben, die aber GenericTypeVars sind // Bsp.: // bei public E elementAt(i){...} wird E vorerst als RefType erkannt @@ -1014,10 +1014,10 @@ public class SourceFile inferencelog.info("Rufe \"SourceFile.makeFC()\"..."); - inferencelog.info("������������������������������������"); + inferencelog.info("������������������������������������"); FC_TTO finiteClosure = this.makeFC(); - inferencelog.info("������������������������������������"); - inferencelog.info("Bin aus \"SourceFile.makeFC()\" zur�ck."); + inferencelog.info("������������������������������������"); + inferencelog.info("Bin aus \"SourceFile.makeFC()\" zur�ck."); this.removeBasicAssumptions(); // PL 05-08-02 @@ -1031,19 +1031,19 @@ public class SourceFile Interface intf = intf_it.next(); // HOTI In diesem Moment gibt es nur _eine_ potentielle CTypeReconstructionResult, d.h. - // dort können die Definitionen der Interfaces (Methodintersectiontypes, FieldDecls) abgelegt werden + // dort können die Definitionen der Interfaces (Methodintersectiontypes, FieldDecls) abgelegt werden //intf.addThisToAssumptions(basics); } - // Fuer jede Klasse die Assumptions der öffentlichen Felder zusammentragen: + // Fuer jede Klasse die Assumptions der öffentlichen Felder zusammentragen: TypeAssumptions publicFieldsAssumptions = new TypeAssumptions(); for(Class cl : KlassenVektor){ publicFieldsAssumptions.add(cl.getPublicFieldAssumptions()); } - // Die BasicAssumptions anfügen: + // Die BasicAssumptions anfügen: publicFieldsAssumptions.add(this.getBasicAssumptions()); // Fuer jede Klasse separat den TRA aufrufen @@ -1064,7 +1064,7 @@ public class SourceFile * Erstellt die Basic Assumptions (siehe MakeBasicAssumptions) als AssumptionSet * @return - @Deprecated //angefügt von Andreas Stadelmeier. Grund: Die Funktion wurde neu als makeBasicAssumptionsFromJRE angelegt + @Deprecated //angefügt von Andreas Stadelmeier. Grund: Die Funktion wurde neu als makeBasicAssumptionsFromJRE angelegt private TypeAssumptions getBasicAssumptions() { TypeAssumptions ret = new TypeAssumptions(null); @@ -1077,7 +1077,7 @@ public class SourceFile mod.addModifier(new Public()); - // Für jede einzelne Klasse + // Für jede einzelne Klasse while (imports.size()>0) { UsedId importDecl = imports.get(0); @@ -1209,9 +1209,9 @@ public class SourceFile }*/ /** - * Erstellt die Assumptions der standardmäßig importierten Packages (java.lang.) sowie der von imports übergebenen Klassen zusammen. + * Erstellt die Assumptions der standardmäßig importierten Packages (java.lang.) sowie der von imports übergebenen Klassen zusammen. * @param imports - * @param withSuptypes - Gibt an, ob auch die subklassen der Packages den Assumptions angefügt werden sollen. + * @param withSuptypes - Gibt an, ob auch die subklassen der Packages den Assumptions angefügt werden sollen. * @return */ private TypeAssumptions makeBasicAssumptionsFromJRE(Menge imports, boolean withSubtypes) @@ -1228,10 +1228,10 @@ public class SourceFile Modifiers mod = new Modifiers(); mod.addModifier(new Public()); - //Für Object: + //Für Object: imports.add(new UsedId("java.lang.Object",-1)); - // Für jede einzelne Klasse + // Für jede einzelne Klasse while (imports.size()>0) { UsedId importDecl = imports.get(0); @@ -1394,7 +1394,7 @@ public class SourceFile return new Class("java.lang.Object",new Modifiers(), 0); } - Menge supertypeGenPara = new Menge<>();//Die Generischen Parameter für die Superklasse berechnen: + Menge supertypeGenPara = new Menge<>();//Die Generischen Parameter für die Superklasse berechnen: java.lang.reflect.TypeVariable[] superclassTVS=s.getTypeParameters(); for(int tvi=0;tviAchtung Workaround: Die RefTypes m�ssen sp�ter noch durch BaseTypes + * Erzeugt die Anfangsinformationen �ber bereits bekannte Klassen. + *
Achtung Workaround: Die RefTypes m�ssen sp�ter noch durch BaseTypes * ersetzt werden.
- * Author: J�rg B�uerle + * Author: J�rg B�uerle * * @return A priori Typinformationen * @throws ClassNotFoundException @@ -1599,7 +1599,7 @@ public class SourceFile // Menge bauen: //------------------------ foo.addClassName("java.lang.Menge"); //PL 05-08-01 eingefuegt - TypePlaceholder E = TypePlaceholder.fresh(); // Sp�ter ersetzen durch GenericTypeVar + TypePlaceholder E = TypePlaceholder.fresh(); // Sp�ter ersetzen durch GenericTypeVar Menge typeGenPara = new Menge(); typeGenPara.addElement(new GenericTypeVar(E.getName(),-1)); foo.addGenericTypeVars("java.lang.Menge", typeGenPara); @@ -1641,7 +1641,7 @@ public class SourceFile */ TypeAssumptions ret = new TypeAssumptions(); - //Basic Assumptions für die FunN Interfaces: + //Basic Assumptions für die FunN Interfaces: //TODO: Hier mehr als Fun1-Fun5 implementieren for(int i = 0; i<6; i++){ FunNInterface funN = new FunNInterface(i); @@ -1649,7 +1649,7 @@ public class SourceFile } - return ret; //TODO: Diese TypeAssumptions mit basic-Assumptions füllen + return ret; //TODO: Diese TypeAssumptions mit basic-Assumptions füllen } // ino.end @@ -1666,8 +1666,8 @@ public class SourceFile // ino.method.removeBasicAssumptions.21424.defdescription type=javadoc /** - * L�scht die Anfangsinformation wieder aus dem Klassenvektor - *
Author: J�rg B�uerle + * L�scht die Anfangsinformation wieder aus dem Klassenvektor + *
Author: J�rg B�uerle */ // ino.end // ino.method.removeBasicAssumptions.21424.definition @@ -1687,11 +1687,11 @@ public class SourceFile // ino.method.getPackageName.21427.defdescription type=javadoc /** - * Erzeugt f�r jede Klasse einen Menge, in den Referenzen auf die GenericTypeVars + * Erzeugt f�r jede Klasse einen Menge, in den Referenzen auf die GenericTypeVars * dieser Klasse gespeichert werden. Diese Mengeen werden unter den Klassennamen * in der - * Ergebnisdatenstruktur abgelegt. Au�erdem werden alle Klassennamen gespeichert. - *
Author: J�rg B�uerle + * Ergebnisdatenstruktur abgelegt. Au�erdem werden alle Klassennamen gespeichert. + *
Author: J�rg B�uerle * @param res * / * /*private void addClassNamesAndGenericsToRR(CTypeReconstructionResult res){ diff --git a/src/de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.java b/src/de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.java index a1b43e84..e263adc3 100644 --- a/src/de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.java +++ b/src/de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.java @@ -21,11 +21,11 @@ public abstract class SyntaxTreeNode implements IItemWithOffset{ /** * Wird nach dem Parsen aufgerufen. - * Erfüllt folgenden Aufgaben: - * 1. Füllt fehlende Typangaben mit TPHs auf. - * 2. Verknüpft die Knoten des Syntaxbaums. (setzt Parent) + * Erfüllt folgenden Aufgaben: + * 1. Füllt fehlende Typangaben mit TPHs auf. + * 2. Verknüpft die Knoten des Syntaxbaums. (setzt Parent) * 3. Wechselt RefTypes gegebenenfalls mit GenericTypeVars aus. - * 4. Führt einen Teil des Syntaxckecks durch. + * 4. Führt einen Teil des Syntaxckecks durch. * */ public void parserPostProcessing(SyntaxTreeNode parent) { @@ -63,13 +63,13 @@ public abstract class SyntaxTreeNode implements IItemWithOffset{ SyntaxTreeNode equal = (SyntaxTreeNode)object; if(!equal.getDescription().equals(this.getDescription()))return false; if(this.getParent()!=null) - if(!this.getParent().equals(equal.getParent()))return false; //auch das Elternelement überprüfen. + if(!this.getParent().equals(equal.getParent()))return false; //auch das Elternelement überprüfen. return true; } /** * Methode zur Generierung der TypeInsertPoints - * @param insertSet - Generierte InsertPoints werden dem insertSet angefügt + * @param insertSet - Generierte InsertPoints werden dem insertSet angefügt * @param result - Das ResultSet auf dessen Basis die InsertPoints generiert werden */ public void addTypeInsertPoints(TypeInsertSet insertSet,ResultSet result) { @@ -77,7 +77,7 @@ public abstract class SyntaxTreeNode implements IItemWithOffset{ node.addTypeInsertPoints(insertSet, result); } - TypeInsertPoint tip = null; //Der TypInsertPoint für diesen Knoten + TypeInsertPoint tip = null; //Der TypInsertPoint für diesen Knoten //Fall der Knoten ein TypeInsertable ist, kann direkt der TypeInsertPoint generiert werden. if(this instanceof TypeInsertable){ TypeInsertable that = (TypeInsertable)this; @@ -87,7 +87,7 @@ public abstract class SyntaxTreeNode implements IItemWithOffset{ insertSet.add(tip);//ret.addAll(((TypePlaceholder)t).getTypeInsertPoints(result)); } /* - //Für den Fall, dass dieser Knoten Generische Variablen halten kann. + //Für den Fall, dass dieser Knoten Generische Variablen halten kann. if(that instanceof Generic && that.getOffset()>=0){ //Alle unresolvedTPHs ermitteln und GenericTypeVarInsertPoints bilden: Menge uTPHs = insertSet.getUnresolvedTPHs(); diff --git a/src/de/dhbwstuttgart/syntaxtree/misc/DeclId.java b/src/de/dhbwstuttgart/syntaxtree/misc/DeclId.java index 4d750fa2..679125ed 100755 --- a/src/de/dhbwstuttgart/syntaxtree/misc/DeclId.java +++ b/src/de/dhbwstuttgart/syntaxtree/misc/DeclId.java @@ -54,7 +54,7 @@ public class DeclId // ino.attribute.m_LineNumber.23295.declaration private int m_LineNumber = MyCompiler.NO_LINENUMBER; // ino.end - private int m_Offset = -1; //hinzugef�gt hoth: 07.04.2006 + private int m_Offset = -1; //hinzugef�gt hoth: 07.04.2006 // ino.attribute.codegenlog.23298.decldescription type=line // Logger fuer Code-Gen // ino.end @@ -199,7 +199,7 @@ public class DeclId Constant ct = new Constant(name, modifiers); ct.setType(type); if (!(wert instanceof Expr)) - throw new JVMCodeException("Das Generieren einer Konstante dieses Typs wird nicht unterstützt!"); + throw new JVMCodeException("Das Generieren einer Konstante dieses Typs wird nicht unterstützt!"); ct.setValue((Expr) wert); ct.codegen( classfile, paralist); @@ -277,7 +277,7 @@ public class DeclId // ino.end // ino.method.getOffset.23349.defdescription type=line - // hinzugef�gt hoth: 07.04.2006 + // hinzugef�gt hoth: 07.04.2006 // ino.end // ino.method.getOffset.23349.definition public int getOffset() @@ -289,7 +289,7 @@ public class DeclId // ino.end // ino.method.setOffset.23352.defdescription type=line - // hinzugef�gt hoth: 07.04.2006 + // hinzugef�gt hoth: 07.04.2006 // ino.end // ino.method.setOffset.23352.definition public void setOffset(int Offset) @@ -302,7 +302,7 @@ public class DeclId // ino.method.toString.23355.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/misc/UsedId.java b/src/de/dhbwstuttgart/syntaxtree/misc/UsedId.java index 25837caf..e02d0cb3 100755 --- a/src/de/dhbwstuttgart/syntaxtree/misc/UsedId.java +++ b/src/de/dhbwstuttgart/syntaxtree/misc/UsedId.java @@ -31,7 +31,7 @@ public class UsedId implements IItemWithOffset // ino.attribute.vParaOrg.23672.declaration public Menge vParaOrg = null; // otth: originale Parameterliste // ino.end - private int m_Offset = -1; //hinzugef�gt hoth: 07.04.2006 + private int m_Offset = -1; //hinzugef�gt hoth: 07.04.2006 // ino.method.UsedId.23675.definition public UsedId(int offset) @@ -49,7 +49,7 @@ public class UsedId implements IItemWithOffset } // ino.method.getOffset.23678.defdescription type=line - // hinzugef�gt hoth: 07.04.2006 + // hinzugef�gt hoth: 07.04.2006 // ino.end // ino.method.getOffset.23678.definition public int getOffset() @@ -70,7 +70,7 @@ public class UsedId implements IItemWithOffset // ino.end // ino.method.setOffset.23684.defdescription type=line - // hinzugef�gt hoth: 07.04.2006 + // hinzugef�gt hoth: 07.04.2006 // ino.end // ino.method.setOffset.23684.definition public void setOffset(int Offset) @@ -219,7 +219,7 @@ public class UsedId implements IItemWithOffset // ino.method.toString.23723.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end @@ -228,7 +228,7 @@ public class UsedId implements IItemWithOffset // ino.end // ino.method.toString.23723.body { - return this.get_Name_1Element();//name.toString(); //geändert von Andreas Stadelmeier + return this.get_Name_1Element();//name.toString(); //geändert von Andreas Stadelmeier /*String s = ""; for(int i = 0; iAuthor: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java b/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java index f48cb7e7..c86f7c51 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Binary.java @@ -251,8 +251,8 @@ public class Binary extends BinaryExpr ret.add(this.expr1.TYPEExpr(assumptions)); ret.add(this.expr2.TYPEExpr(assumptions)); /** - * Berechnet die Constraints dieses Operators für die 2 gegebenen Parameter - * Die Operatoren sind meistens überladen. Es entstehen mehrere Oder-Verknüpfte Constraints. + * Berechnet die Constraints dieses Operators für die 2 gegebenen Parameter + * Die Operatoren sind meistens überladen. Es entstehen mehrere Oder-Verknüpfte Constraints. * @param expr1 * @param expr2 * @return diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Block.java b/src/de/dhbwstuttgart/syntaxtree/statement/Block.java index f330bffc..18275a7e 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Block.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Block.java @@ -128,7 +128,7 @@ public class Block extends Statement // ino.method.toString.25083.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end @@ -174,7 +174,7 @@ public class Block extends Statement typinferenceLog.debug("Prozessing statement: "+stmt, Section.TYPEINFERENCE); ret.add(stmt.TYPEStmt(assumptions)); /* if((stmt instanceof Return)){ - ret.add(new Constraint(stmt.getTypeVariable(), this.getTypeVariable()));//TODO: Dies nochmal prüfen. + ret.add(new Constraint(stmt.getTypeVariable(), this.getTypeVariable()));//TODO: Dies nochmal prüfen. } */ } @@ -188,7 +188,7 @@ public class Block extends Statement if (!(stmt.getReturnType() instanceof Void)) if (this.getReturnType() instanceof Void) { //this.setTypeVariable(stmt.getTypeVariable()); - throw new TypeinferenceException("Block besitzt falschen Rückgabetyp (fehlendes return-stmt)", this); + throw new TypeinferenceException("Block besitzt falschen Rückgabetyp (fehlendes return-stmt)", this); } else { TypePlaceholder tph = TypePlaceholder.fresh(this); @@ -212,7 +212,7 @@ public class Block extends Statement typinferenceLog.debug("Prozessing statement: "+stmt); ret.add(stmt.TYPEStmt(assumptions)); if((stmt instanceof Return)){ - ret.add(new Constraint(stmt.getTypeVariable(), this.getTypeVariable()));//TODO: Dies nochmal prüfen. + ret.add(new Constraint(stmt.getTypeVariable(), this.getTypeVariable()));//TODO: Dies nochmal prüfen. } } return ret; diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/DoubleLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/DoubleLiteral.java index 4215b26c..8b5ce901 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/DoubleLiteral.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/DoubleLiteral.java @@ -79,7 +79,7 @@ public class DoubleLiteral extends Literal // ino.end // ino.method.sc_check.25466.body { - parserlog.debug("SC -> Semantik-Check f�r DoubleLiteral wurde aufgerufen --> nichts zu tun!"); + parserlog.debug("SC -> Semantik-Check f�r DoubleLiteral wurde aufgerufen --> nichts zu tun!"); } // ino.end */ @@ -142,7 +142,7 @@ public class DoubleLiteral extends Literal // ino.method.toString.25484.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Expr.java b/src/de/dhbwstuttgart/syntaxtree/statement/Expr.java index 8cc69721..57bffa6d 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Expr.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Expr.java @@ -95,15 +95,15 @@ public abstract class Expr extends ExprStmt /** * @author AI10023 - Andreas Stadelmeier - * Implementierung des Java 8 - Typinferenzalgorithmus von Martin Plümicke + * Implementierung des Java 8 - Typinferenzalgorithmus von Martin Plümicke * Jede Expression wird im Zuge des Algorithmus durch die TYPEExpr-Funktion angesprochen. */ public abstract ConstraintsSet TYPEExpr(TypeAssumptions assumptions); /** * @author AI10023 - Andreas Stadelmeier - * Die Funktion überschreiben, damit sie von Expressions nicht mehr spezifiziert werden muss. - * Denn Expressions müssen diese Funktion nicht implementieren. + * Die Funktion überschreiben, damit sie von Expressions nicht mehr spezifiziert werden muss. + * Denn Expressions müssen diese Funktion nicht implementieren. */ @Override public ConstraintsSet TYPEStmt(TypeAssumptions assumptions){ diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/ExprStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/ExprStmt.java index 34c0a8fb..abdda826 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/ExprStmt.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/ExprStmt.java @@ -52,7 +52,7 @@ public abstract class ExprStmt extends Statement // ino.method.getTypeLineNumber.25291.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/FloatLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/FloatLiteral.java index 06e3b7bf..68671710 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/FloatLiteral.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/FloatLiteral.java @@ -74,7 +74,7 @@ public class FloatLiteral extends Literal // ino.end // ino.method.sc_check.25466.body { - parserlog.debug("SC -> Semantik-Check f�r FloatLiteral wurde aufgerufen --> nichts zu tun!"); + parserlog.debug("SC -> Semantik-Check f�r FloatLiteral wurde aufgerufen --> nichts zu tun!"); } // ino.end */ @@ -138,7 +138,7 @@ public class FloatLiteral extends Literal // ino.method.toString.25484.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/IfStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/IfStmt.java index 1f0e2617..b0e798f9 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/IfStmt.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/IfStmt.java @@ -197,18 +197,18 @@ public class IfStmt extends Statement int breakpoint2 = code.get_code_length(); if(!(else_block==null || else_block instanceof EmptyStmt)) { - //hama: Die zwei folgenen if-Abfragen wurden eingef�gt und beheben den Bug, - //der zuerst im Use Case Toggle1 bemerkt wurde. Hier wird nun gepr�ft ob der + //hama: Die zwei folgenen if-Abfragen wurden eingef�gt und beheben den Bug, + //der zuerst im Use Case Toggle1 bemerkt wurde. Hier wird nun gepr�ft ob der //letzte Befehl in einem if-Block ein return war. Trifft dieser Fall zu, - //so wird kein goto Befehl (f�r das �berspringen des else-Blocks eingef�gt) - //-> das verlangt die vm ->der code w�re nicht erreichbar. - //Allerdings k�nnte das return-Statement nat�rlich auch an einer anderen - //Stelle (nicht als letzter Befehl) stehen, f�r diesen Fall d�rfte die + //so wird kein goto Befehl (f�r das �berspringen des else-Blocks eingef�gt) + //-> das verlangt die vm ->der code w�re nicht erreichbar. + //Allerdings k�nnte das return-Statement nat�rlich auch an einer anderen + //Stelle (nicht als letzter Befehl) stehen, f�r diesen Fall d�rfte die //Codegenerierung noch nicht funktionieren. Hab versucht diesen Fall mit //Toggle3 zu erzeugen - wird aber richtig generiert. //letztes Statement im Menge in s schreiben //Statement s = (Statement)(((Block)this.then_block).statements.lastElement()); - //Instanz von Return zum pr�fen anlegen + //Instanz von Return zum pr�fen anlegen Return r = new Return(getOffset(),getVariableLength()); if( !(((Block)this.then_block).statements.lastElement()).getClass().equals(r.getClass()) ) @@ -252,7 +252,7 @@ public class IfStmt extends Statement ConstraintsSet ret = new ConstraintsSet(); this.setType(TypePlaceholder.fresh(this)); - ret.add(expr.TYPEExpr(assumptions)); // die Constraints für (expressionDesIfStmt) + ret.add(expr.TYPEExpr(assumptions)); // die Constraints für (expressionDesIfStmt) ret.add(this.then_block.TYPEStmt(assumptions)); if(else_block!=null){ ret.add(this.else_block.TYPEStmt(assumptions)); diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/InstVar.java b/src/de/dhbwstuttgart/syntaxtree/statement/InstVar.java index 246ca279..c6a254c8 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/InstVar.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/InstVar.java @@ -80,7 +80,7 @@ public class InstVar extends Expr // ino.method.InstVar.25414.defdescription type=javadoc /** * macht aus einem UsedId mit einem Menge von Strings eine InstVar - *
Author: Martin Pl�micke PL 05-08-17 + *
Author: Martin Pl�micke PL 05-08-17 * @param ui * @return */ @@ -180,7 +180,7 @@ public class InstVar extends Expr // ino.method.toString.25441.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/IntLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/IntLiteral.java index 1484b53f..7a4c15ad 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/IntLiteral.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/IntLiteral.java @@ -77,7 +77,7 @@ public class IntLiteral extends Literal // ino.end // ino.method.sc_check.25466.body { - parserlog.debug("SC -> Semantik-Check f�r IntLiteral wurde aufgerufen --> nichts zu tun!"); + parserlog.debug("SC -> Semantik-Check f�r IntLiteral wurde aufgerufen --> nichts zu tun!"); } // ino.end */ @@ -138,7 +138,7 @@ public class IntLiteral extends Literal // ino.method.toString.25484.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java b/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java index 6ca6dcfe..fc66ae38 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java @@ -129,32 +129,32 @@ public class LambdaExpression extends Expr{ * TYPEExpr( Ass, Lambda( (x1 , . . . , xN ), expr|stmt ) ) = * let * AssArgs = { xi : ai | ai fresh type variables } - * (exprt : rty, ConS) = TYPEExpr( Ass ∪ AssArgs, expr ) + * (exprt : rty, ConS) = TYPEExpr( Ass ∪ AssArgs, expr ) * | (stmtt : rty, ConS) = TYPEStmt( Ass u AssArgs, stmt ) * in * (Lambda( (x1 : a1 , . . . , xN : aN ), exprt : rty|stmtt : rty ) : a, - * ConS ∪ { (FunN a) }), + * ConS ∪ { (FunN a) }), * where a is a fresh type variable */ @Override public ConstraintsSet TYPEExpr(TypeAssumptions assumptions) { ConstraintsSet ret = new ConstraintsSet(); - //Die Assumptions für die Parameter der LambdaExpression + //Die Assumptions für die Parameter der LambdaExpression TypeAssumptions ArgumentAssumptions = new TypeAssumptions(this.getParentClass().getName()); Menge paramTypes = new Menge(); for(FormalParameter param : params.formalparameter){ if(param.getType()==null)param.setType(TypePlaceholder.fresh(this)); int offset = 0; - //Jeder Parameter der LambdaExpression wird als CParaTypeAssumption der Assumption liste hinzugefügt: + //Jeder Parameter der LambdaExpression wird als CParaTypeAssumption der Assumption liste hinzugefügt: ArgumentAssumptions.addAssumption(new ParameterAssumption(param)); paramTypes.add(param.getType()); } this.setType(TypePlaceholder.fresh(this)); - //ArgumentAssumptions + assumptions ergeben die Assumptions für die Statements innerhalb des Lambda-Bodys: + //ArgumentAssumptions + assumptions ergeben die Assumptions für die Statements innerhalb des Lambda-Bodys: ret.add(method_body.TYPEStmt(ArgumentAssumptions.add(assumptions))); //Es gibt die LambdaExpression nur mit einem Block als Method Body, nicht mit einer einzelnen Expression - //Die Constraints für ParameterTypen und Ret Typ erstellen: + //Die Constraints für ParameterTypen und Ret Typ erstellen: Menge modifiedParamTypes = new Menge<>(); for(Type pT : paramTypes){ if(pT instanceof WildcardType){ @@ -175,7 +175,7 @@ public class LambdaExpression extends Expr{ if(retType instanceof SuperWildcardType){ throw new TypeinferenceException("Typfehler von Parametertyp "+retType,this); }else{ - //retType bleibt unverändert + //retType bleibt unverändert } }else{ retType = new ExtendsWildcardType((ObjectType) retType); diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LocalOrFieldVar.java b/src/de/dhbwstuttgart/syntaxtree/statement/LocalOrFieldVar.java index e558d172..2a3f38b6 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LocalOrFieldVar.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LocalOrFieldVar.java @@ -148,7 +148,7 @@ public class LocalOrFieldVar extends Expr // ino.method.toString.25534.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end @@ -174,7 +174,7 @@ public class LocalOrFieldVar extends Expr @Override public ConstraintsSet TYPEExpr(TypeAssumptions assumptions) { ConstraintsSet ret = new ConstraintsSet(); - //gibt es eine Assumption für den die LocalOrFieldVar-Variablen, dann folgendes ausführen: + //gibt es eine Assumption für den die LocalOrFieldVar-Variablen, dann folgendes ausführen: Type thisTypeAssumption = assumptions.getVarType(this.get_Name(), this.getParentClass()); if(thisTypeAssumption == null)throw new TypeinferenceException("Eine Variable "+this.get_Name()+" ist in den Assumptions nicht vorhanden",this); Type thisType = thisTypeAssumption.checkTYPE(assumptions, this); diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java b/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java index 9b937799..0b7a283d 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LocalVarDecl.java @@ -214,7 +214,7 @@ public class LocalVarDecl extends Statement implements TypeInsertable parserlog.debug(c.getName()+" "+c.get_ParaList().size()); SCStatementException ex = new SCStatementException(); SCExcept e = new SCExcept(); - e.set_error("Klasse "+c.getName()+" �berhaupt garnicht parametrisiert!"); + e.set_error("Klasse "+c.getName()+" �berhaupt garnicht parametrisiert!"); e.set_function("complete_parahashtable() --> check_anz()"); e.set_statement(type.getName().toString()); ex.addException(e); @@ -279,7 +279,7 @@ public class LocalVarDecl extends Statement implements TypeInsertable // ino.method.getLineNumber.25602.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end @@ -319,7 +319,7 @@ public class LocalVarDecl extends Statement implements TypeInsertable // ino.method.getTypeLineNumber.25611.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end @@ -335,7 +335,7 @@ public class LocalVarDecl extends Statement implements TypeInsertable // ino.method.toString.25617.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end @@ -371,8 +371,8 @@ public class LocalVarDecl extends Statement implements TypeInsertable /** * @author Andreas Stadelmeier, a10023 - * Der Typ der Variablendeklaration wird den Assumptions angefügt. - * Bei einer Deklaration ohne Typangabe wird ein TypePlaceholder den Assumptions hinzugefügt. + * Der Typ der Variablendeklaration wird den Assumptions angefügt. + * Bei einer Deklaration ohne Typangabe wird ein TypePlaceholder den Assumptions hinzugefügt. */ @Override public ConstraintsSet TYPEStmt(TypeAssumptions assumptions) { diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LongLiteral.java b/src/de/dhbwstuttgart/syntaxtree/statement/LongLiteral.java index 0cc8fd14..157234a3 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LongLiteral.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LongLiteral.java @@ -78,7 +78,7 @@ public class LongLiteral extends Literal // ino.end // ino.method.sc_check.25466.body { - parserlog.debug("SC -> Semantik-Check f�r LongLiteral wurde aufgerufen --> nichts zu tun!"); + parserlog.debug("SC -> Semantik-Check f�r LongLiteral wurde aufgerufen --> nichts zu tun!"); } // ino.end */ @@ -140,7 +140,7 @@ public class LongLiteral extends Literal // ino.method.toString.25484.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java b/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java index 190df4da..398ab68b 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java @@ -149,7 +149,7 @@ public class MethodCall extends Expr // ino.method.toString.25738.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end @@ -182,16 +182,16 @@ public class MethodCall extends Expr /** * @author AI10023 - Andreas Stadelmeier * - * Mögliche Probleme: + * Mögliche Probleme: * Wenn die Methode ohne Angabe eines Receivers im Quelltext steht: * methodCall(param); -> (bedeutet:) this.methodCall(param); - * Parser möglicherweise anpassen (siehe JavaParser.jay Zeile 1858 ff) + * Parser möglicherweise anpassen (siehe JavaParser.jay Zeile 1858 ff) */ @Override public ConstraintsSet TYPEExpr(TypeAssumptions assumptions) { - //Hier der Ablauf für einen Methodenaufruf: + //Hier der Ablauf für einen Methodenaufruf: ConstraintsSet ret = new ConstraintsSet(); - //Der Return-Type des MEthodenaufrufs ist zunächst unbekannt: + //Der Return-Type des MEthodenaufrufs ist zunächst unbekannt: this.setType(TypePlaceholder.fresh(this)); //Berechne die Constraints des Receivers if(receiver == null){ @@ -199,19 +199,19 @@ public class MethodCall extends Expr } ret.add(receiver.get_Expr().TYPEExpr(assumptions)); - //Berechne die Constraints der Argumente aus der Argumentlist (also der Parameter, welche der Funktion übergeben wurden) + //Berechne die Constraints der Argumente aus der Argumentlist (also der Parameter, welche der Funktion übergeben wurden) if(this.arglist != null)for(Expr arg : this.arglist.expr){ ret.add(arg.TYPEExpr(assumptions)); } - //Noch das Overloading-Constraint anhängen: + //Noch das Overloading-Constraint anhängen: ret.add(overloading(assumptions)); return ret; } /** - * Erstellt die Constraints für den eigentlichen Methodenaufruf. + * Erstellt die Constraints für den eigentlichen Methodenaufruf. * Sucht in den Assumptions nach passenden Methoden und erstellt ein OderConstraintSet. * @param assumptions * @return @@ -222,9 +222,9 @@ public class MethodCall extends Expr OderConstraint oCons = new OderConstraint(); Menge methodAssumptions = assumptions.getMethodAssumptions(this.getName(), this.getArgumentList().size()); if(methodAssumptions.size()==0)throw new TypeinferenceException("Eine Methode "+this.get_Name()+" ist in den Assumptions nicht vorhanden", this); - //Alle möglichen Methoden durchgehen: + //Alle möglichen Methoden durchgehen: for(MethodAssumption methodAssumption : methodAssumptions){ - //Constraint nicht erstellen, falls Rückgabetyp von vorne herein nicht übereinstimmt: + //Constraint nicht erstellen, falls Rückgabetyp von vorne herein nicht übereinstimmt: if(!(this.type instanceof TypePlaceholder) && !this.type.equals(methodAssumption.getAssumedType()))break; oCons.addConstraint(constraintsFromMethodAssumption(methodAssumption, assumptions)); } @@ -244,22 +244,22 @@ public class MethodCall extends Expr * method, where the argument types are supertypes of a minimal type * assumption. * - * @TODO: wenn es sich um eine Methode einer anderen Klasse handelt, müssen neue TPH vergeben werden und nicht die der Assumption verwendet werden. + * @TODO: wenn es sich um eine Methode einer anderen Klasse handelt, müssen neue TPH vergeben werden und nicht die der Assumption verwendet werden. * * @return */ public UndConstraint constraintsFromMethodAssumption(MethodAssumption methodAssumption, TypeAssumptions assumptions){ UndConstraint methodConstraint = new UndConstraint(); - //Ein Constraint für den ReturnType der Methode... + //Ein Constraint für den ReturnType der Methode... methodConstraint.addConstraint(methodAssumption.getAssumedType().TYPE(assumptions, this), this.getType().TYPE(assumptions, this)); - //Ein Constraint für die Parameter der Methode... + //Ein Constraint für die Parameter der Methode... for(int i=0; i + * Author: J�rg B�uerle
* @return Returns the type. */ // ino.end @@ -66,7 +66,7 @@ public class NewArray extends Expr // ino.method.setType.25806.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param type The type to set. */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/NewClass.java b/src/de/dhbwstuttgart/syntaxtree/statement/NewClass.java index a4e646c4..12cf8422 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/NewClass.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/NewClass.java @@ -131,7 +131,7 @@ public class NewClass extends Expr // ino.method.toString.25867.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end @@ -158,10 +158,10 @@ public class NewClass extends Expr @Override public ConstraintsSet TYPEExpr(TypeAssumptions assumptions) { - //TODO: Das hier noch vervollständigen + //TODO: Das hier noch vervollständigen ConstraintsSet ret = new ConstraintsSet(); UndConstraint callConstraints = new UndConstraint(); - //Die Auskommentierten Zeilen gehören zu MethodRefNew + //Die Auskommentierten Zeilen gehören zu MethodRefNew //Menge argumentTypeList = new Menge(); //for(Expr expr : this.arglist.expr){ // argumentTypeList.add(expr.getTypeVariable()); diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Receiver.java b/src/de/dhbwstuttgart/syntaxtree/statement/Receiver.java index 0558c4f7..ddb35586 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Receiver.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Receiver.java @@ -34,7 +34,7 @@ public class Receiver // ino.method.Receiver.26132.defdescription type=javadoc /** - * Autor: J�rg B�uerle + * Autor: J�rg B�uerle * @param expr */ // ino.end @@ -76,7 +76,7 @@ public class Receiver // ino.method.toString.26147.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/Statement.java b/src/de/dhbwstuttgart/syntaxtree/statement/Statement.java index c30794f7..a450bb1d 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/Statement.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/Statement.java @@ -83,7 +83,7 @@ public abstract class Statement extends SyntaxTreeNode implements IItemWithOffse /** * @author AI10023 - Andreas Stadelmeier - * Implementierung des Java 8 - Typinferenzalgorithmus von Martin Plümicke + * Implementierung des Java 8 - Typinferenzalgorithmus von Martin Plümicke * Jedes Statement wird im Zuge des Algorithmus durch die TYPEExpr-Funktion angesprochen. */ public abstract ConstraintsSet TYPEStmt(TypeAssumptions assumptions); @@ -96,7 +96,7 @@ public abstract class Statement extends SyntaxTreeNode implements IItemWithOffse /** * @author Andreas Stadelmeier, a10023 - * Sollte von jedem Statement überschrieben werden. + * Sollte von jedem Statement überschrieben werden. * Liefert Informationen zum Statment und dessen Typ. * @return */ @@ -108,7 +108,7 @@ public abstract class Statement extends SyntaxTreeNode implements IItemWithOffse /** * @author AI10023 - Andreas Stadelmeier * Jedem Statement und jeder Expression wird im Zuge des Typinferenzalgorithmus eine Typvariable zugewiesen. - * Daher müssen alle Statements und Expressions die Methoden setTypeVariable und getTypeVariable implementieren. + * Daher müssen alle Statements und Expressions die Methoden setTypeVariable und getTypeVariable implementieren. */ public void setType(Type t) { diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java b/src/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java index c5f208b1..262da736 100644 --- a/src/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java @@ -67,7 +67,7 @@ public class SuperCall extends ThisCall return ret; }else{ //Ansonsten Fehler ausgeben: - throw new TypeinferenceException("super()-Aufruf hier nicht möglich", this); + throw new TypeinferenceException("super()-Aufruf hier nicht möglich", this); } } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/This.java b/src/de/dhbwstuttgart/syntaxtree/statement/This.java index 5c4eecc5..32b6ad8f 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/This.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/This.java @@ -124,7 +124,7 @@ public class This extends Expr public ConstraintsSet TYPEExpr(TypeAssumptions assumptions) { ConstraintsSet ret = new ConstraintsSet(); //this.set_Type(new); - //this.setType(assumptions.getThisValue());//Die Assumption für this als TypeVariable setzen. + //this.setType(assumptions.getThisValue());//Die Assumption für this als TypeVariable setzen. this.setType(this.getParentClass().getType()); return ret; } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java b/src/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java index 506c6d3e..7ca986b5 100644 --- a/src/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java @@ -87,7 +87,7 @@ public class ThisCall extends MethodCall return ret; }else{ //Ansonsten Fehler ausgeben: - throw new TypeinferenceException("this()-Aufruf hier nicht möglich", this); + throw new TypeinferenceException("this()-Aufruf hier nicht möglich", this); } } diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java index e9d32933..48f24c64 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/WhileStmt.java @@ -136,7 +136,7 @@ public class WhileStmt extends Statement // ino.method.toString.26360.defdescription type=javadoc /** - *
Author: Martin Pl�micke + *
Author: Martin Pl�micke * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/type/BaseType.java b/src/de/dhbwstuttgart/syntaxtree/type/BaseType.java index 3c4899fc..c5adcbe0 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/BaseType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/BaseType.java @@ -40,7 +40,7 @@ public abstract class BaseType extends Type // ino.method.equals.26445.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param Object * @return */ @@ -85,7 +85,7 @@ public abstract class BaseType extends Type @Override public ConstraintType TYPE(TypeAssumptions ass, SyntaxTreeNode parent) { - return super.TYPE(ass, parent); //Die Base-Types müssen nicht nachgeschlagen werden. + return super.TYPE(ass, parent); //Die Base-Types müssen nicht nachgeschlagen werden. } diff --git a/src/de/dhbwstuttgart/syntaxtree/type/BooleanType.java b/src/de/dhbwstuttgart/syntaxtree/type/BooleanType.java index cd912907..b1c88056 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/BooleanType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/BooleanType.java @@ -22,7 +22,7 @@ public class BooleanType extends BaseType // ino.method.equals.26458.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param Object * @return */ @@ -43,7 +43,7 @@ public class BooleanType extends BaseType // ino.method.clone.26461.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/type/BoundedGenericTypeVar.java b/src/de/dhbwstuttgart/syntaxtree/type/BoundedGenericTypeVar.java index 1be887c9..ad2d5ea5 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/BoundedGenericTypeVar.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/BoundedGenericTypeVar.java @@ -87,7 +87,7 @@ public class BoundedGenericTypeVar extends GenericTypeVar public ConstraintsSet TYPE(TypeAssumptions ass) { ConstraintsSet ret = super.TYPE(ass); //ass.addGenericVarAssumption(this); - //Die Type methode der BoundedGenericTypeVar schreibt zusätzlich noch die Constraints für die bounds + //Die Type methode der BoundedGenericTypeVar schreibt zusätzlich noch die Constraints für die bounds Menge tempBounds = new Menge<>(); if(this.bounds != null){ for(ObjectType ev : this.bounds){ diff --git a/src/de/dhbwstuttgart/syntaxtree/type/CharacterType.java b/src/de/dhbwstuttgart/syntaxtree/type/CharacterType.java index 7f36e038..166192af 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/CharacterType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/CharacterType.java @@ -22,7 +22,7 @@ public class CharacterType extends BaseType // ino.method.equals.26499.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param Object * @return */ @@ -43,7 +43,7 @@ public class CharacterType extends BaseType // ino.method.clone.26502.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/type/DoubleType.java b/src/de/dhbwstuttgart/syntaxtree/type/DoubleType.java index 83e2c803..50d4df58 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/DoubleType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/DoubleType.java @@ -22,7 +22,7 @@ public class DoubleType extends BaseType // ino.method.equals.26534.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param Object * @return */ @@ -43,7 +43,7 @@ public class DoubleType extends BaseType // ino.method.clone.26537.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/type/ExtendsWildcardType.java b/src/de/dhbwstuttgart/syntaxtree/type/ExtendsWildcardType.java index 0a10cfc8..347fbbe8 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/ExtendsWildcardType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/ExtendsWildcardType.java @@ -21,8 +21,8 @@ import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; public class ExtendsWildcardType extends WildcardType implements ITypeContainer, IMatchable{ /** - * Author: Arne Lüdtke
- * Standard Konstruktor für eine ExtendsWildcard + * Author: Arne Lüdtke
+ * Standard Konstruktor für eine ExtendsWildcard */ public ExtendsWildcardType (int offset, ObjectType extendsType) { @@ -35,10 +35,10 @@ public class ExtendsWildcardType extends WildcardType implements ITypeContainer, } /** - * Author: Arne Lüdtke
- * Gibt den Typen in der Wildcard zurück. + * Author: Arne Lüdtke
+ * Gibt den Typen in der Wildcard zurück. * Beispiel: ? extends Integer. - * Integer wird zurückgegeben. + * Integer wird zurückgegeben. */ public ObjectType get_ExtendsType() { @@ -46,8 +46,8 @@ public class ExtendsWildcardType extends WildcardType implements ITypeContainer, } /** - * Author: Arne Lüdtke
- * Gibt String Entsprechung zurück. + * Author: Arne Lüdtke
+ * Gibt String Entsprechung zurück. */ public String toString() { @@ -55,8 +55,8 @@ public class ExtendsWildcardType extends WildcardType implements ITypeContainer, } /** - * Author: Arne Lüdtke
- * Gibt einen Klon der Wildcard zurück. + * Author: Arne Lüdtke
+ * Gibt einen Klon der Wildcard zurück. * Der Innere Typ wird auch geklont */ public ExtendsWildcardType clone() @@ -66,7 +66,7 @@ public class ExtendsWildcardType extends WildcardType implements ITypeContainer, } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Vergleicht mit einem anderen Objekt. * @param obj - Object to compare. */ @@ -83,9 +83,9 @@ public class ExtendsWildcardType extends WildcardType implements ITypeContainer, } /** - * Author: Arne Lüdtke
- * Gibt die passende FreshWildcardType Klasse zurück. - * Wird für CaptureConversion verwendet + * Author: Arne Lüdtke
+ * Gibt die passende FreshWildcardType Klasse zurück. + * Wird für CaptureConversion verwendet */ public FreshExtendsWildcardType GetFreshWildcardType() { @@ -93,9 +93,9 @@ public class ExtendsWildcardType extends WildcardType implements ITypeContainer, } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Das gleiche wie get_ExtendsType(). - * Überschreibt die Methode der Superklasse. + * Ãœberschreibt die Methode der Superklasse. */ public Type GetWildcardType() { @@ -103,7 +103,7 @@ public class ExtendsWildcardType extends WildcardType implements ITypeContainer, } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Setzt den Typ in der Wildcard * @param T - Type to be set */ @@ -114,7 +114,7 @@ public class ExtendsWildcardType extends WildcardType implements ITypeContainer, } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Das gleiche wie get_ExtendsType(). * Implementiert ITypeContainer */ @@ -124,9 +124,9 @@ public class ExtendsWildcardType extends WildcardType implements ITypeContainer, } /** - * Author: Arne Lüdtke
- * Gibt den Typen zurück, der bei einem match im Unify verwendet werden soll. - * Wird über IMatchable implementiert. + * Author: Arne Lüdtke
+ * Gibt den Typen zurück, der bei einem match im Unify verwendet werden soll. + * Wird über IMatchable implementiert. */ public ObjectType getMatchType() { @@ -153,7 +153,7 @@ public class ExtendsWildcardType extends WildcardType implements ITypeContainer, @Override public ConstraintType TYPE(TypeAssumptions ass, SyntaxTreeNode parent) { - //Folgender TypeCast ist sicher. Wird ein ObjectType in einen ConstraintType umgewandelt und wieder zurück, kann kein Fehler auftreten. + //Folgender TypeCast ist sicher. Wird ein ObjectType in einen ConstraintType umgewandelt und wieder zurück, kann kein Fehler auftreten. this.innerType = (ObjectType) this.innerType.TYPE(ass, parent).getType(); return super.TYPE(ass, parent); } diff --git a/src/de/dhbwstuttgart/syntaxtree/type/FloatType.java b/src/de/dhbwstuttgart/syntaxtree/type/FloatType.java index 32cfc5df..716f5bad 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/FloatType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/FloatType.java @@ -22,7 +22,7 @@ public class FloatType extends BaseType // ino.method.equals.26534.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param Object * @return */ @@ -43,7 +43,7 @@ public class FloatType extends BaseType // ino.method.clone.26537.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/type/FreshExtendsWildcardType.java b/src/de/dhbwstuttgart/syntaxtree/type/FreshExtendsWildcardType.java index 1a5c2447..4c5d8e4f 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/FreshExtendsWildcardType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/FreshExtendsWildcardType.java @@ -7,8 +7,8 @@ public class FreshExtendsWildcardType extends FreshWildcardType implements IMatc private ObjectType extendsBoundType; /** - * Author: Arne Lüdtke
- * Standard Konstruktor für eine FreshExtendsWildcard + * Author: Arne Lüdtke
+ * Standard Konstruktor für eine FreshExtendsWildcard */ public FreshExtendsWildcardType(ObjectType extendsBound,SyntaxTreeNode parent ,int offset) { @@ -17,8 +17,8 @@ public class FreshExtendsWildcardType extends FreshWildcardType implements IMatc } /** - * Author: Arne Lüdtke
- * Privater Konstruktor für clone + * Author: Arne Lüdtke
+ * Privater Konstruktor für clone */ private FreshExtendsWildcardType(ObjectType extendsBound ,SyntaxTreeNode parent,int offset, String name) { @@ -27,8 +27,8 @@ public class FreshExtendsWildcardType extends FreshWildcardType implements IMatc } /** - * Author: Arne Lüdtke
- * Gibt String Entsprechung zurück. + * Author: Arne Lüdtke
+ * Gibt String Entsprechung zurück. */ public String toString() { @@ -40,8 +40,8 @@ public class FreshExtendsWildcardType extends FreshWildcardType implements IMatc } /** - * Author: Arne Lüdtke
- * Gibt einen Klon der Wildcard zurück. + * Author: Arne Lüdtke
+ * Gibt einen Klon der Wildcard zurück. * Der Innere Typ wird auch geklont */ public FreshExtendsWildcardType clone() @@ -50,8 +50,8 @@ public class FreshExtendsWildcardType extends FreshWildcardType implements IMatc } /** - * Author: Arne Lüdtke
- * Gibt die Grenze der Wildcard zurück + * Author: Arne Lüdtke
+ * Gibt die Grenze der Wildcard zurück */ public ObjectType get_ExtendsBound() { @@ -59,8 +59,8 @@ public class FreshExtendsWildcardType extends FreshWildcardType implements IMatc } /** - * Author: Arne Lüdtke
- * Prüft, ob zwei Objekte gleich sind. NICHT INSTANZGLEICH + * Author: Arne Lüdtke
+ * Prüft, ob zwei Objekte gleich sind. NICHT INSTANZGLEICH */ public boolean equals(Object obj) { @@ -74,9 +74,9 @@ public class FreshExtendsWildcardType extends FreshWildcardType implements IMatc } /** - * Author: Arne Lüdtke
- * Gibt die passende ExtendsWildcardType Klasse zurück. - * Wird für smaller4 verwendet + * Author: Arne Lüdtke
+ * Gibt die passende ExtendsWildcardType Klasse zurück. + * Wird für smaller4 verwendet */ public ExtendsWildcardType get_WildcardType() { @@ -84,9 +84,9 @@ public class FreshExtendsWildcardType extends FreshWildcardType implements IMatc } /** - * Author: Arne Lüdtke
- * Gibt den Typen zurück, der bei einem match im Unify verwendet werden soll. - * Wird über IMatchable implementiert. + * Author: Arne Lüdtke
+ * Gibt den Typen zurück, der bei einem match im Unify verwendet werden soll. + * Wird über IMatchable implementiert. */ public Type getMatchType() { diff --git a/src/de/dhbwstuttgart/syntaxtree/type/FreshSuperWildcardType.java b/src/de/dhbwstuttgart/syntaxtree/type/FreshSuperWildcardType.java index 6670db46..743c6f30 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/FreshSuperWildcardType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/FreshSuperWildcardType.java @@ -7,8 +7,8 @@ public class FreshSuperWildcardType extends FreshWildcardType implements IMatcha private ObjectType superBoundType; /** - * Author: Arne Lüdtke
- * Standard Konstruktor für eine FreshSuperWildcard + * Author: Arne Lüdtke
+ * Standard Konstruktor für eine FreshSuperWildcard */ public FreshSuperWildcardType(ObjectType superBound ,SyntaxTreeNode parent, int offset) { @@ -17,8 +17,8 @@ public class FreshSuperWildcardType extends FreshWildcardType implements IMatcha } /** - * Author: Arne Lüdtke
- * Privater Konstruktor für clone + * Author: Arne Lüdtke
+ * Privater Konstruktor für clone */ private FreshSuperWildcardType(ObjectType superBound,SyntaxTreeNode parent,int offset, String name) { @@ -27,8 +27,8 @@ public class FreshSuperWildcardType extends FreshWildcardType implements IMatcha } /** - * Author: Arne Lüdtke
- * Gibt String Entsprechung zurück. + * Author: Arne Lüdtke
+ * Gibt String Entsprechung zurück. */ public String toString() { @@ -40,8 +40,8 @@ public class FreshSuperWildcardType extends FreshWildcardType implements IMatcha } /** - * Author: Arne Lüdtke
- * Gibt einen Klon der Wildcard zurück. + * Author: Arne Lüdtke
+ * Gibt einen Klon der Wildcard zurück. * Der Innere Typ wird auch geklont */ public FreshSuperWildcardType clone() @@ -50,8 +50,8 @@ public class FreshSuperWildcardType extends FreshWildcardType implements IMatcha } /** - * Author: Arne Lüdtke
- * Gibt die Grenze der Wildcard zurück + * Author: Arne Lüdtke
+ * Gibt die Grenze der Wildcard zurück */ public ObjectType get_SuperBound() { @@ -59,8 +59,8 @@ public class FreshSuperWildcardType extends FreshWildcardType implements IMatcha } /** - * Author: Arne Lüdtke
- * Prüft, ob zwei Objekte gleich sind. NICHT INSTANZGLEICH + * Author: Arne Lüdtke
+ * Prüft, ob zwei Objekte gleich sind. NICHT INSTANZGLEICH */ public boolean equals(Object obj) { @@ -74,9 +74,9 @@ public class FreshSuperWildcardType extends FreshWildcardType implements IMatcha } /** - * Author: Arne Lüdtke
- * Gibt die passende SuperWildcardType Klasse zurück. - * Wird für smaller4 verwendet + * Author: Arne Lüdtke
+ * Gibt die passende SuperWildcardType Klasse zurück. + * Wird für smaller4 verwendet */ public SuperWildcardType get_WildcardType() { @@ -84,9 +84,9 @@ public class FreshSuperWildcardType extends FreshWildcardType implements IMatcha } /** - * Author: Arne Lüdtke
- * Gibt den Typen zurück, der bei einem match im Unify verwendet werden soll. - * Wird über IMatchable implementiert. + * Author: Arne Lüdtke
+ * Gibt den Typen zurück, der bei einem match im Unify verwendet werden soll. + * Wird über IMatchable implementiert. */ public Type getMatchType() { diff --git a/src/de/dhbwstuttgart/syntaxtree/type/FreshWildcardType.java b/src/de/dhbwstuttgart/syntaxtree/type/FreshWildcardType.java index 535545af..73f8019c 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/FreshWildcardType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/FreshWildcardType.java @@ -14,8 +14,8 @@ public class FreshWildcardType extends Type { private Menge upperBounds = new Menge(); /** - * Author: Arne Lüdtke
- * Standard Konstruktor für eine FreshWildcard + * Author: Arne Lüdtke
+ * Standard Konstruktor für eine FreshWildcard */ public FreshWildcardType(SyntaxTreeNode parent, int offset) { @@ -24,9 +24,9 @@ public class FreshWildcardType extends Type { } /** - * Author: Arne Lüdtke
- * Protected Konstruktor für clone. - * Protected, da vererbte Klassen ihn verwenden müssen. + * Author: Arne Lüdtke
+ * Protected Konstruktor für clone. + * Protected, da vererbte Klassen ihn verwenden müssen. */ protected FreshWildcardType(SyntaxTreeNode parent, int offset, String name) { @@ -35,8 +35,8 @@ public class FreshWildcardType extends Type { } /** - * Author: Arne Lüdtke
- * Gibt String Entsprechung zurück. + * Author: Arne Lüdtke
+ * Gibt String Entsprechung zurück. */ public String toString() { @@ -56,8 +56,8 @@ public class FreshWildcardType extends Type { } /** - * Author: Arne Lüdtke
- * Gibt einen Klon der Wildcard zurück. + * Author: Arne Lüdtke
+ * Gibt einen Klon der Wildcard zurück. * Der Innere Typ wird auch geklont */ public FreshWildcardType clone() @@ -66,19 +66,19 @@ public class FreshWildcardType extends Type { } /** - * Author: Arne Lüdtke
- * Prüft, ob zwei Objekte gleich sind. NICHT INSTANZGLEICH + * Author: Arne Lüdtke
+ * Prüft, ob zwei Objekte gleich sind. NICHT INSTANZGLEICH */ public boolean equals(Object obj) { //Da die Namensgebung von Typeplaceholdern und FreshWildcards identisch ist, - //und im Type nur auf Namen geprüft wird muss verhindert werden, dass ausversehen True zurückgegeben wird, + //und im Type nur auf Namen geprüft wird muss verhindert werden, dass ausversehen True zurückgegeben wird, //Wenn eine FreshWildcard mit einem TypePlaceholder verglichen wird. return (obj instanceof FreshWildcardType) && super.equals(obj); } /** - * Erzeugt einen neuen Namen, und gibt diesen zurück + * Erzeugt einen neuen Namen, und gibt diesen zurück * Methode aus TypePlaceholder kopiert */ private static JavaClassName makeNewName() @@ -86,14 +86,14 @@ public class FreshWildcardType extends Type { // luar: Methode aus TypePlaceholder kopiert. String strReturn = strNextName; - // n�chster Name berechnen und in strNextName speichern + // n�chster Name berechnen und in strNextName speichern inc( strNextName.length() - 1 ); return new JavaClassName(strReturn); } /** - * Hilfsmethode für makeNewName + * Hilfsmethode für makeNewName * Methode aus TypePlaceholder kopiert */ private static void inc(int i) @@ -112,18 +112,18 @@ public class FreshWildcardType extends Type { // aktuelle Stelle: auf A zuruecksetzen manipulate( i, 'A' ); - // vorherige Stelle erh�hen + // vorherige Stelle erh�hen inc( i - 1 ); } else { - // aktueller Buchstabe �ndern + // aktueller Buchstabe �ndern manipulate( i, cBuchstabe ); } } /** - * Hilfsmethode für makeNewName + * Hilfsmethode für makeNewName * Methode aus TypePlaceholder kopiert */ private static void manipulate( int nStelle, char nWert ) @@ -141,24 +141,24 @@ public class FreshWildcardType extends Type { } /** - * Author: Arne Lüdtke
- * Gibt die passende WildcardType Klasse zurück. - * Wird für smaller4 verwendet + * Author: Arne Lüdtke
+ * Gibt die passende WildcardType Klasse zurück. + * Wird für smaller4 verwendet */ public WildcardType get_WildcardType() { return new WildcardType(null, this.getParent(),this.getOffset()); } /** - * Author: Arne Lüdtke
- * Gibt den Menge der oberen Grenzen zurück + * Author: Arne Lüdtke
+ * Gibt den Menge der oberen Grenzen zurück */ public Menge get_UpperBounds() { return this.upperBounds; } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Setzt den Menge der oberen Grenzen */ public void set_UpperBounds(Menge bounds) diff --git a/src/de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.java b/src/de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.java index 30d3d317..a1492e46 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.java @@ -24,8 +24,8 @@ import de.dhbwstuttgart.syntaxtree.GTVDeclarationContext; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; // ino.class.GenericTypeVar.26505.description type=javadoc /** - * TODO: Diese Klasse überarbeiten. Pair genericTypeVar ist nicht implementiert. - * @author J�rg B�uerle + * TODO: Diese Klasse überarbeiten. Pair genericTypeVar ist nicht implementiert. + * @author J�rg B�uerle * @version $Date: 2013/09/22 20:12:53 $ */ // ino.end @@ -38,9 +38,9 @@ public class GenericTypeVar extends ObjectType //Menge extendVars = new Menge(); protected Pair genericConstraint; /** - * Eine Registry f�r alle Generic-Instanzen, die vor der Bytecode-Generierung durch - * Ihre Superklasse ersetzt werden m�ssen. Siehe "Type Erasure" in Sun Spezifikation. - *
Autor: J�rg B�uerle + * Eine Registry f�r alle Generic-Instanzen, die vor der Bytecode-Generierung durch + * Ihre Superklasse ersetzt werden m�ssen. Siehe "Type Erasure" in Sun Spezifikation. + *
Autor: J�rg B�uerle */ // ino.method.GenericTypeVar.26509.defdescription type=line // private Hashtable> m_TypeErasureList; @@ -79,7 +79,7 @@ public class GenericTypeVar extends ObjectType */ // ino.method.clone.26512.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end @@ -94,7 +94,7 @@ public class GenericTypeVar extends ObjectType // ino.method.equals.26515.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @param obj * @return */ @@ -200,7 +200,7 @@ public class GenericTypeVar extends ObjectType } /** - * Die Type Methode auf generische Variablen angewandt sorgt für deren Eintragung in die TypeAssumptions. + * Die Type Methode auf generische Variablen angewandt sorgt für deren Eintragung in die TypeAssumptions. * @param ass * @return */ @@ -212,7 +212,7 @@ public class GenericTypeVar extends ObjectType @Override public ConstraintType TYPE(TypeAssumptions ass, SyntaxTreeNode parent) { - ass.addGenericVarAssumption(this); //Eine GenericTypeVar kann nur an Stellen vorkommen, an denen sie auch gültig ist. Daher kann sie den Assumptions hinzugefügt werden. + ass.addGenericVarAssumption(this); //Eine GenericTypeVar kann nur an Stellen vorkommen, an denen sie auch gültig ist. Daher kann sie den Assumptions hinzugefügt werden. return super.TYPE(ass, parent); } @@ -224,7 +224,7 @@ public class GenericTypeVar extends ObjectType public void parserPostProcessing(SyntaxTreeNode parent) { //SyntaxTreeNode parentTemp = this.parent; super.parserPostProcessing(parent); - //if(parentTemp != null)this.parent = parentTemp; //Der Parenttype einer GenericVar soll sich nicht ändern können, falls einmal gesetzt. + //if(parentTemp != null)this.parent = parentTemp; //Der Parenttype einer GenericVar soll sich nicht ändern können, falls einmal gesetzt. } public GTVDeclarationContext getDeclarationContext() { diff --git a/src/de/dhbwstuttgart/syntaxtree/type/IMatchable.java b/src/de/dhbwstuttgart/syntaxtree/type/IMatchable.java index 0395001e..1a125293 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/IMatchable.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/IMatchable.java @@ -2,17 +2,17 @@ package de.dhbwstuttgart.syntaxtree.type; /** * Dieses Interface wird von allen Klassen implementiert, die weitere Klassen - * enthalten, die im match des Unify beachtet werden müssen. + * enthalten, die im match des Unify beachtet werden müssen. * - * @author Arne Lüdtke + * @author Arne Lüdtke * */ public interface IMatchable { /** - * Author: Arne Lüdtke
- * Gibt den Typen zurück, der bei einem match im Unify verwendet werden soll. - * Wird über IMatchable implementiert. + * Author: Arne Lüdtke
+ * Gibt den Typen zurück, der bei einem match im Unify verwendet werden soll. + * Wird über IMatchable implementiert. */ Type getMatchType(); } diff --git a/src/de/dhbwstuttgart/syntaxtree/type/ITypeContainer.java b/src/de/dhbwstuttgart/syntaxtree/type/ITypeContainer.java index 2c8ad5c0..3ad4a511 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/ITypeContainer.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/ITypeContainer.java @@ -2,16 +2,16 @@ package de.dhbwstuttgart.syntaxtree.type; /** * Dieses Interface wird von allen Klassen implementiert, die weitere Klassen enthalten. - * Wird für diverse Hilfsmethoden verwendet. + * Wird für diverse Hilfsmethoden verwendet. * - * @author Arne Lüdtke + * @author Arne Lüdtke * */ public interface ITypeContainer { /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Das gleiche wie get_ExtendsType(). * Implementiert ITypeContainer */ diff --git a/src/de/dhbwstuttgart/syntaxtree/type/IntegerType.java b/src/de/dhbwstuttgart/syntaxtree/type/IntegerType.java index e94dc34e..84f0b1da 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/IntegerType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/IntegerType.java @@ -22,7 +22,7 @@ public class IntegerType extends BaseType // ino.method.equals.26534.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param Object * @return */ @@ -43,7 +43,7 @@ public class IntegerType extends BaseType // ino.method.clone.26537.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/type/LongType.java b/src/de/dhbwstuttgart/syntaxtree/type/LongType.java index a465dcd8..5b016403 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/LongType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/LongType.java @@ -22,7 +22,7 @@ public class LongType extends BaseType // ino.method.equals.26534.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param Object * @return */ @@ -43,7 +43,7 @@ public class LongType extends BaseType // ino.method.clone.26537.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/type/RefType.java b/src/de/dhbwstuttgart/syntaxtree/type/RefType.java index 321b222b..bb938fe8 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/RefType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/RefType.java @@ -86,7 +86,7 @@ public class RefType extends ObjectType implements IMatchable public int hashCode() { int hash = 0; hash += super.hashCode(); - hash += this.name.hashCode();//Nur den Name hashen. Sorgt für langsame, aber funktionierende HashMaps + hash += this.name.hashCode();//Nur den Name hashen. Sorgt für langsame, aber funktionierende HashMaps return hash; } @@ -114,8 +114,8 @@ public class RefType extends ObjectType implements IMatchable // ino.end /** - * Erstellt einen Referenztyp aus dem übergebenen Type. - * Dabei wird der Name und der Offset des baseType's übernommen. + * Erstellt einen Referenztyp aus dem übergebenen Type. + * Dabei wird der Name und der Offset des baseType's übernommen. * @param baseType */ public RefType( Type baseType){ @@ -229,8 +229,8 @@ public class RefType extends ObjectType implements IMatchable /** * HOTI * Diese Methode sucht in der Klassendefinition nach einen GTV, die - * so heißt wie die im RefType definierte Variable. Wenn sie diese gefunden - * hat, wird sie zurückgeben. Wenn dies nicht der Fall war, schaut sie, falls + * so heißt wie die im RefType definierte Variable. Wenn sie diese gefunden + * hat, wird sie zurückgeben. Wenn dies nicht der Fall war, schaut sie, falls * angegeben in den Methodenparametern nach. Findet sie dort auch nichts, liefert * die Methode null. * @param type @@ -314,8 +314,8 @@ public class RefType extends ObjectType implements IMatchable // ino.end /** - * Fügt eine Parameterliste an und tauscht zuvor alle GenerictTypeVars durch TPH aus. - * In einem RefType dürfen keine GTVs enthalten sein. + * Fügt eine Parameterliste an und tauscht zuvor alle GenerictTypeVars durch TPH aus. + * In einem RefType dürfen keine GTVs enthalten sein. * @param v */ // ino.method.set_ParaList.26661.definition @@ -336,7 +336,7 @@ public class RefType extends ObjectType implements IMatchable // ino.end /** - * @return gibt bei leere Parameterliste null zurück. Ist entscheidend für unify-Algorithmus + * @return gibt bei leere Parameterliste null zurück. Ist entscheidend für unify-Algorithmus */ // ino.method.get_ParaList.26664.definition public Menge get_ParaList() @@ -737,9 +737,9 @@ public class RefType extends ObjectType implements IMatchable } /** - * Author: Arne Lüdtke
- * Gibt den Typen zurück, der bei einem match im Unify verwendet werden soll. - * Wird über IMatchable implementiert. + * Author: Arne Lüdtke
+ * Gibt den Typen zurück, der bei einem match im Unify verwendet werden soll. + * Wird über IMatchable implementiert. */ public Type getMatchType() { diff --git a/src/de/dhbwstuttgart/syntaxtree/type/ReturnType.java b/src/de/dhbwstuttgart/syntaxtree/type/ReturnType.java index 9426f88f..e7c4a3bf 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/ReturnType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/ReturnType.java @@ -21,7 +21,7 @@ public class ReturnType extends Type // ino.method.equals.26710.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param Object * @return */ @@ -42,7 +42,7 @@ public class ReturnType extends Type // ino.method.clone.26713.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end diff --git a/src/de/dhbwstuttgart/syntaxtree/type/SuperWildcardType.java b/src/de/dhbwstuttgart/syntaxtree/type/SuperWildcardType.java index cd477222..be2ba3b6 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/SuperWildcardType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/SuperWildcardType.java @@ -23,8 +23,8 @@ public class SuperWildcardType extends WildcardType implements ITypeContainer, I } /** - * Author: Arne Lüdtke
- * Standard Konstruktor für eine SuperWildcard + * Author: Arne Lüdtke
+ * Standard Konstruktor für eine SuperWildcard */ public SuperWildcardType(int offset, ObjectType innerType) { @@ -32,10 +32,10 @@ public class SuperWildcardType extends WildcardType implements ITypeContainer, I } /** - * Author: Arne Lüdtke
- * Gibt den Typen in der Wildcard zurück. + * Author: Arne Lüdtke
+ * Gibt den Typen in der Wildcard zurück. * Beispiel: ? super Integer. - * Integer wird zurückgegeben. + * Integer wird zurückgegeben. */ public ObjectType get_SuperType() { @@ -43,8 +43,8 @@ public class SuperWildcardType extends WildcardType implements ITypeContainer, I } /** - * Author: Arne Lüdtke
- * Gibt String Entsprechung zurück. + * Author: Arne Lüdtke
+ * Gibt String Entsprechung zurück. */ public String toString() { @@ -52,8 +52,8 @@ public class SuperWildcardType extends WildcardType implements ITypeContainer, I } /** - * Author: Arne Lüdtke
- * Gibt einen Klon der Wildcard zurück. + * Author: Arne Lüdtke
+ * Gibt einen Klon der Wildcard zurück. * Der Innere Typ wird auch geklont */ public SuperWildcardType clone() @@ -63,9 +63,9 @@ public class SuperWildcardType extends WildcardType implements ITypeContainer, I /** - * Author: Arne Lüdtke
- * Gibt die passende FreshWildcardType Klasse zurück. - * Wird für CaptureConversion verwendet + * Author: Arne Lüdtke
+ * Gibt die passende FreshWildcardType Klasse zurück. + * Wird für CaptureConversion verwendet */ public FreshSuperWildcardType GetFreshWildcardType() { @@ -73,9 +73,9 @@ public class SuperWildcardType extends WildcardType implements ITypeContainer, I } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Das gleiche wie get_innerType(). - * Überschreibt die Methode der Superklasse + * Ãœberschreibt die Methode der Superklasse */ public Type GetWildcardType() { @@ -83,7 +83,7 @@ public class SuperWildcardType extends WildcardType implements ITypeContainer, I } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Setzt den Typ in der Wildcard * @param T - Type to be set */ @@ -94,7 +94,7 @@ public class SuperWildcardType extends WildcardType implements ITypeContainer, I } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Das gleiche wie get_innerType(). * Implementiert ITypeContainer */ @@ -104,9 +104,9 @@ public class SuperWildcardType extends WildcardType implements ITypeContainer, I } /** - * Author: Arne Lüdtke
- * Gibt den Typen zurück, der bei einem match im Unify verwendet werden soll. - * Wird über IMatchable implementiert. + * Author: Arne Lüdtke
+ * Gibt den Typen zurück, der bei einem match im Unify verwendet werden soll. + * Wird über IMatchable implementiert. */ public Type getMatchType() { @@ -119,7 +119,7 @@ public class SuperWildcardType extends WildcardType implements ITypeContainer, I } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Vergleicht mit einem anderen Objekt. * @param obj - Object to compare. */ diff --git a/src/de/dhbwstuttgart/syntaxtree/type/Type.java b/src/de/dhbwstuttgart/syntaxtree/type/Type.java index 55dbc284..801dd754 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/Type.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/Type.java @@ -170,7 +170,7 @@ public abstract class Type extends SyntaxTreeNode implements IItemWithOffset // ino.method.equals.26765.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param Object * @return */ @@ -194,7 +194,7 @@ public abstract class Type extends SyntaxTreeNode implements IItemWithOffset // ino.method.clone.26768.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return // ino.end @@ -212,7 +212,7 @@ public abstract class Type extends SyntaxTreeNode implements IItemWithOffset // ino.method.toString.26771.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end @@ -288,7 +288,7 @@ public abstract class Type extends SyntaxTreeNode implements IItemWithOffset } /** - * Prüft ob der Typ von dem übergebenen TypPlaceholder abhängt. + * Prüft ob der Typ von dem übergebenen TypPlaceholder abhängt. * @param tph * @return */ @@ -297,9 +297,9 @@ public abstract class Type extends SyntaxTreeNode implements IItemWithOffset } /** - * Prüft ob der Typ in den Assumptions ass vorhanden ist. - * Dabei kann eine neue Instanz eines Typs entstehen, welche von der Methode zurückgegeben wird. - * @param ass - Die Assumptions für den jeweiligen Kontext in dem sich der Typ befindet. + * Prüft ob der Typ in den Assumptions ass vorhanden ist. + * Dabei kann eine neue Instanz eines Typs entstehen, welche von der Methode zurückgegeben wird. + * @param ass - Die Assumptions für den jeweiligen Kontext in dem sich der Typ befindet. public ConstraintType checkType(TypeAssumptions ass, SyntaxTreeNode parent){ ConstraintType t = ass.getTypeFor(this, this); @@ -308,7 +308,7 @@ public abstract class Type extends SyntaxTreeNode implements IItemWithOffset return t; } */ - //TODO: checkType wird nicht mehr gebraucht. TYPE übernimmt dessen Aufgabe. Es muss nur sichergestellt werden, dass jeder Typ in den Constraints landet, dadurch wird für jeden Typ die Methode TYPE aufgerufen. + //TODO: checkType wird nicht mehr gebraucht. TYPE übernimmt dessen Aufgabe. Es muss nur sichergestellt werden, dass jeder Typ in den Constraints landet, dadurch wird für jeden Typ die Methode TYPE aufgerufen. public ConstraintType TYPE(TypeAssumptions ass, SyntaxTreeNode parent){ ConstraintType t = ass.getTypeFor(this, parent); if(t==null) diff --git a/src/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java b/src/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java index 2db31137..41a43d47 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java @@ -20,11 +20,11 @@ import de.dhbwstuttgart.typeinference.typedeployment.TypeInsertPoint; import de.dhbwstuttgart.typeinference.typedeployment.TypeInsertSet; // ino.class.TypePlaceholder.26780.description type=javadoc /** - * Repr�sentiert einen Typparameter f�r einen vom Programmierer nicht angegeben + * Repr�sentiert einen Typparameter f�r einen vom Programmierer nicht angegeben * Typ. Jede TypePlaceholder besitzt einen eindeutigen Namen aus einem Namenspool * und * ist in einer zentralen Registry, d.h. einer Hashtable abgelegt. - * @author J�rg B�uerle + * @author J�rg B�uerle * @version $Date: 2013/06/19 12:45:37 $ */ // ino.end @@ -50,9 +50,9 @@ public class TypePlaceholder extends ObjectType // ino.method.TypePlaceholder.26794.defdescription type=javadoc /** - * Privater Konstruktor - Eine TypePlaceholder-Variable wird �ber die + * Privater Konstruktor - Eine TypePlaceholder-Variable wird �ber die * Factory-Methode fresh() erzeugt. - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @param typeName Der Name der TypePlaceholder-Variablen */ // ino.end @@ -64,14 +64,14 @@ public class TypePlaceholder extends ObjectType super(parent, -1); if(typeName == null)throw new NullPointerException(); this.name = new JavaClassName(typeName); - if(parent != null)log.debug("Erstelle TPH "+typeName+" für SyntaxTreeNode: "+parent, Section.TYPEINFERENCE); + if(parent != null)log.debug("Erstelle TPH "+typeName+" für SyntaxTreeNode: "+parent, Section.TYPEINFERENCE); } // ino.end // ino.method.getInstance.26797.defdescription type=javadoc /** * Statische Methode, um einen TypePlaceholder aus der Registry zu holen. - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @param name Der Name des TypePlaceholders * @return Der TypePlaceholder oder null, falls er nicht in der * Registry existiert @@ -88,7 +88,7 @@ public class TypePlaceholder extends ObjectType /** * Generiert einen neuen TPH mit einem bestimmten Namen. - * Wird benötigt, wenn aus Generischen Variablen TPH generiert werden. + * Wird benötigt, wenn aus Generischen Variablen TPH generiert werden. * @param name * @return */ @@ -110,7 +110,7 @@ public class TypePlaceholder extends ObjectType /** * @author Andreas Stadelmeier, a10023 * Ruft die TypePlaceholder.fresh()-Methode auf. - * Fügt zusätzlich einen Replacementlistener hinzu. + * Fügt zusätzlich einen Replacementlistener hinzu. * @param listener * @return */ @@ -129,8 +129,8 @@ public class TypePlaceholder extends ObjectType // ino.method.makeNewName.26803.defdescription type=javadoc /** - * Berechnet einen neuen, eindeutigen Namen f�r eine neue - * TypePlaceholder.
Author: J�rg B�uerle + * Berechnet einen neuen, eindeutigen Namen f�r eine neue + * TypePlaceholder.
Author: J�rg B�uerle * @return Der Name */ // ino.end @@ -142,7 +142,7 @@ public class TypePlaceholder extends ObjectType // otth: Funktion berechnet einen neuen Namen anhand eines alten gespeicherten String strReturn = strNextName; - // n�chster Name berechnen und in strNextName speichern + // n�chster Name berechnen und in strNextName speichern inc( strNextName.length() - 1 ); return strReturn; @@ -152,7 +152,7 @@ public class TypePlaceholder extends ObjectType // ino.method.inc.26806.defdescription type=javadoc /** * Hilfsfunktion zur Berechnung eines neuen Namens - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @param i */ // ino.end @@ -162,10 +162,10 @@ public class TypePlaceholder extends ObjectType // ino.method.inc.26806.body { // otth: Hilfsfunktion zur Berechnung eines neuen Namens - // otth: Erh�hung des Buchstabens an der Stelle i im String strNextName - // otth: Nach �berlauf: rekursiver Aufruf + // otth: Erh�hung des Buchstabens an der Stelle i im String strNextName + // otth: Nach �berlauf: rekursiver Aufruf - // falls i = -1 --> neuer Buchstabe vorne anf�gen + // falls i = -1 --> neuer Buchstabe vorne anf�gen if ( i == -1 ) { strNextName = "A" + strNextName; @@ -179,12 +179,12 @@ public class TypePlaceholder extends ObjectType // aktuelle Stelle: auf A zuruecksetzen manipulate( i, 'A' ); - // vorherige Stelle erh�hen + // vorherige Stelle erh�hen inc( i - 1 ); } else { - // aktueller Buchstabe �ndern + // aktueller Buchstabe �ndern manipulate( i, cBuchstabe ); } @@ -194,7 +194,7 @@ public class TypePlaceholder extends ObjectType // ino.method.manipulate.26809.defdescription type=javadoc /** * Hilfsfunktion zur Berechnung eines neuen Namens. - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @param nStelle * @param nWert */ @@ -221,7 +221,7 @@ public class TypePlaceholder extends ObjectType // ino.method.equals.26812.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param Object * @return */ @@ -244,9 +244,9 @@ public class TypePlaceholder extends ObjectType // ino.method.deleteRegistry.26839.defdescription type=javadoc /** - * L�scht die komplette Registry von TypePlaceholders. Sollte nur und - * ausschlie�lich von MyCompiler.init() aufgerufen werden!!! - *
Author: J�rg B�uerle + * L�scht die komplette Registry von TypePlaceholders. Sollte nur und + * ausschlie�lich von MyCompiler.init() aufgerufen werden!!! + *
Author: J�rg B�uerle */ // ino.end // ino.method.deleteRegistry.26839.definition @@ -262,12 +262,12 @@ public class TypePlaceholder extends ObjectType // ino.method.clone.26842.defdescription type=javadoc /** * Diese Methode sollte nur sehr sparsam und mit Vorsicht verwendet werden, da die - * Registrierung neuer Listener �ber die zentrale Instanz in der Registry laufen + * Registrierung neuer Listener �ber die zentrale Instanz in der Registry laufen * muss.
* Diese Methode erzeugt eine Kopie dieser zentralen Instanz. Listener, die sich - * �ber diese Kopie registrieren, werden sp�ter nicht �ber Status�nderungen + * �ber diese Kopie registrieren, werden sp�ter nicht �ber Status�nderungen * benachrichtigt, d.h. ihre TypePlaceholders werden nicht substituiert. - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end @@ -283,7 +283,7 @@ public class TypePlaceholder extends ObjectType /** * @author Andreas Stadelmeier, a10023 - * Überschreibt die get_Name-Methode der Type-Klasse. (Keine Ahnung wieso es überhaupt ein get_Name und ein getName gibt!) + * Ãœberschreibt die get_Name-Methode der Type-Klasse. (Keine Ahnung wieso es überhaupt ein get_Name und ein getName gibt!) */ @Override public String get_Name(){ @@ -300,15 +300,15 @@ public class TypePlaceholder extends ObjectType // ino.end /////////////////////////////////////////////////////////////////// - // Spezialfunktionen, f�r makeFC() und unify() + // Spezialfunktionen, f�r makeFC() und unify() // Sollten sonst nicht aufgerufen werden... /////////////////////////////////////////////////////////////////// // ino.method.backdoorFresh.26848.defdescription type=javadoc /** - * Backdoor-Hilfsfunktion, die f�r makeFC() und unify() - * ben�tigt wird, um neue TypePlaceholders zu erzeugen. Die erzeugten Variablen - * werden nicht registriert und sind v�llig losgel�st vom abstrakten Syntaxbaum. - *
Author: J�rg B�uerle + * Backdoor-Hilfsfunktion, die f�r makeFC() und unify() + * ben�tigt wird, um neue TypePlaceholders zu erzeugen. Die erzeugten Variablen + * werden nicht registriert und sind v�llig losgel�st vom abstrakten Syntaxbaum. + *
Author: J�rg B�uerle * @return Eine neue TypePlaceholder */ // ino.end @@ -332,14 +332,14 @@ public class TypePlaceholder extends ObjectType // ino.method.backdoorSetName.26851.defdescription type=javadoc /** - * Backdoor-Hilfsfunktion, die f�r makeFC() und unify() - * ben�tigt wird, um den Namen eines TypePlaceholders zu ver�ndern.
+ * Backdoor-Hilfsfunktion, die f�r makeFC() und unify() + * ben�tigt wird, um den Namen eines TypePlaceholders zu ver�ndern.
* ACHTUNG: Diese TypePlaceholder darf nicht Teil des abstrakten * Syntaxbaumes sein!!! Es muss sicher gestellt werden, dass die betreffende - * TypePlaceholder nicht �ber die Methode fresh(), - * sondern �ber backdoorCreate() oder backdoorClone() + * TypePlaceholder nicht �ber die Methode fresh(), + * sondern �ber backdoorCreate() oder backdoorClone() * erzeugt worden ist. - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @param varName Der Name des zu erzeugenden TypePlaceholders */ // ino.end @@ -354,10 +354,10 @@ public class TypePlaceholder extends ObjectType // ino.method.backdoorCreate.26854.defdescription type=javadoc /** - * Backdoor-Hilfsfunktion, die f�r makeFC() und unify() - * ben�tigt wird, zum Erzeugen eines TypePlaceholders, der nicht in - * der zentralen Registry eingetragen wird. Die erzeugte Variablen ist somit v�llig - * losgel�st vom abstrakten Syntaxbaum.
Author: J�rg B�uerle + * Backdoor-Hilfsfunktion, die f�r makeFC() und unify() + * ben�tigt wird, zum Erzeugen eines TypePlaceholders, der nicht in + * der zentralen Registry eingetragen wird. Die erzeugte Variablen ist somit v�llig + * losgel�st vom abstrakten Syntaxbaum.
Author: J�rg B�uerle * @param name * @return */ @@ -387,9 +387,9 @@ public class TypePlaceholder extends ObjectType public JavaCodeResult printJavaCode(ResultSet resultSet) { Type equalType = resultSet.getTypeEqualTo(this); if(equalType == null || equalType.equals(this)){ - //Für den Fall das der TPH nicht aufgelöst werden konnte. + //Für den Fall das der TPH nicht aufgelöst werden konnte. JavaCodeResult ret = new JavaCodeResult(this.getName().toString()); - //Jetzt muss eine nicht aufgelöste generische Variable dem JavaCodeResult-Set angefügt werden + //Jetzt muss eine nicht aufgelöste generische Variable dem JavaCodeResult-Set angefügt werden ret.addUnresolvedTPH(this); return ret; } @@ -401,9 +401,9 @@ public class TypePlaceholder extends ObjectType * Berechnet die InsertPoints dieses TypePlaceholders. * Alle an diesem TypePlaceholder registrierten ITypeReplacementListener werden darauf kontrolliert, * ob sie von TypeInsertable erben. - * Diese ergeben zusammen mit den Informationen aus dem übergebenen ResultSet einen TypeInsertPoint. + * Diese ergeben zusammen mit den Informationen aus dem übergebenen ResultSet einen TypeInsertPoint. * Mehrere TypeInsertPoint's ergeben ein TypeInsertSet. - * @param result Das ResultSet das den einzusetzenden Typ für diesen TPH enthält. + * @param result Das ResultSet das den einzusetzenden Typ für diesen TPH enthält. * @return * @see TypeInsertPoint */ diff --git a/src/de/dhbwstuttgart/syntaxtree/type/Void.java b/src/de/dhbwstuttgart/syntaxtree/type/Void.java index 1e58e564..e97a809f 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/Void.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/Void.java @@ -26,7 +26,7 @@ public class Void extends RefType // ino.method.equals.26864.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param Object * @return */ @@ -57,7 +57,7 @@ public class Void extends RefType // ino.method.clone.26867.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @return */ // ino.end @@ -77,7 +77,7 @@ public class Void extends RefType @Override public Type checkTYPE(TypeAssumptions ass, SyntaxTreeNode method) { - return this;//VOID ist immer korrekt, das wird vom Parser geprüft + return this;//VOID ist immer korrekt, das wird vom Parser geprüft } } diff --git a/src/de/dhbwstuttgart/syntaxtree/type/WildcardType.java b/src/de/dhbwstuttgart/syntaxtree/type/WildcardType.java index e051c38d..b07a94b6 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/WildcardType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/WildcardType.java @@ -21,8 +21,8 @@ public class WildcardType extends Type{ protected ObjectType innerType = null; /** - * Author: Arne Lüdtke
- * Standard Konstruktor für eine Wildcard + * Author: Arne Lüdtke
+ * Standard Konstruktor für eine Wildcard */ public WildcardType(ObjectType innerType, SyntaxTreeNode parent, int offset) { @@ -31,8 +31,8 @@ public class WildcardType extends Type{ } /** - * Author: Arne Lüdtke
- * Gibt String Entsprechung zurück. + * Author: Arne Lüdtke
+ * Gibt String Entsprechung zurück. */ public String toString() { @@ -40,8 +40,8 @@ public class WildcardType extends Type{ } /** - * Author: Arne Lüdtke
- * Gibt einen Klon der Wildcard zurück. + * Author: Arne Lüdtke
+ * Gibt einen Klon der Wildcard zurück. */ public WildcardType clone() { @@ -49,9 +49,9 @@ public class WildcardType extends Type{ } /** - * Author: Arne Lüdtke
- * Gibt die passende FreshWildcardType Klasse zurück. - * Wird für CaptureConversion verwendet + * Author: Arne Lüdtke
+ * Gibt die passende FreshWildcardType Klasse zurück. + * Wird für CaptureConversion verwendet */ public FreshWildcardType GetFreshWildcardType() { @@ -59,8 +59,8 @@ public class WildcardType extends Type{ } /** - * Author: Arne Lüdtke
- * Die Allgemeine Wildcard enthält keinen Typen. + * Author: Arne Lüdtke
+ * Die Allgemeine Wildcard enthält keinen Typen. */ public Type GetWildcardType() { @@ -68,7 +68,7 @@ public class WildcardType extends Type{ } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Setzt den Typ in der Wildcard, Allgemeine Wildcard hat aber keinen Typen. * @param T - Type to be set */ diff --git a/src/de/dhbwstuttgart/typeinference/FunN.java b/src/de/dhbwstuttgart/typeinference/FunN.java index 4a47c75c..d03559ec 100755 --- a/src/de/dhbwstuttgart/typeinference/FunN.java +++ b/src/de/dhbwstuttgart/typeinference/FunN.java @@ -15,7 +15,7 @@ import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption; import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; /** - * @see Spezifikation "Complete Typeinference in Java 8" von Martin Plümicke + * @see Spezifikation "Complete Typeinference in Java 8" von Martin Plümicke * "interface FunN { R apply(T1 arg1, T2 arg2, ... , TN argN); }" * @author A10023 - Andreas Stadelmeier * @@ -30,7 +30,7 @@ public class FunN extends RefType { /** * @author Andreas Stadelmeier, a10023 - * Benötigt für den Typinferenzalgorithmus für Java 8 + * Benötigt für den Typinferenzalgorithmus für Java 8 * Generiert einen RefType auf eine FunN - Klasse. * @param R * @param T @@ -73,8 +73,8 @@ public class FunN extends RefType { } /** - * Muss nach jeder Änderung von T oder R aufgerufen werden. - * Dabei werden bestimmte, von RefType geerbte, Parameter angepasst. Dies ist wichtig für den Typinferenzalgorithmus. + * Muss nach jeder Änderung von T oder R aufgerufen werden. + * Dabei werden bestimmte, von RefType geerbte, Parameter angepasst. Dies ist wichtig für den Typinferenzalgorithmus. */ private void calculateNewParalist(){ Menge t = new Menge(); @@ -143,7 +143,7 @@ public class FunN extends RefType { } */ /** - * Die Clone-Methode von RefType darf von FunN NICHT überschrieben werden. + * Die Clone-Methode von RefType darf von FunN NICHT überschrieben werden. @Override public FunN clone() { diff --git a/src/de/dhbwstuttgart/typeinference/FunNInterface.java b/src/de/dhbwstuttgart/typeinference/FunNInterface.java index 9f285fe9..2074e03b 100644 --- a/src/de/dhbwstuttgart/typeinference/FunNInterface.java +++ b/src/de/dhbwstuttgart/typeinference/FunNInterface.java @@ -20,13 +20,13 @@ import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; */ public class FunNInterface extends Class{ //TODO: Diese Klasse sollte eigentlich von Interface erben - //TODO: getType muss einen Typ mit der ParameterListe zurückliefern. + //TODO: getType muss einen Typ mit der ParameterListe zurückliefern. //private Menge gtvparalist; /** - * Ein FunN-Interface enthält nur eine Methode (namens apply). Ist also ein Funktionales Interface. + * Ein FunN-Interface enthält nur eine Methode (namens apply). Ist also ein Funktionales Interface. * @param N - Die Anzahl der Parameter der apply-Methode. Beispiel N = 1 ergibt R apply(T1 par1); */ public FunNInterface(int N) { @@ -72,7 +72,7 @@ public class FunNInterface extends Class{ } /** - * Erstellt die nach Definition des Typinferenzalgorithmus von Martin Plümicke, in jedem FunN-Interface enthaltene apply-Methode + * Erstellt die nach Definition des Typinferenzalgorithmus von Martin Plümicke, in jedem FunN-Interface enthaltene apply-Methode * @return */ private FunNMethod getApplyFunction(){ diff --git a/src/de/dhbwstuttgart/typeinference/FunNMethod.java b/src/de/dhbwstuttgart/typeinference/FunNMethod.java index 07a4182c..1a7f6e74 100755 --- a/src/de/dhbwstuttgart/typeinference/FunNMethod.java +++ b/src/de/dhbwstuttgart/typeinference/FunNMethod.java @@ -18,12 +18,12 @@ public class FunNMethod extends Method{ */ public FunNMethod(Menge paralist){ super(0); //Hat keinen Offset, da nur theoretisch gedachte Methode - int N = paralist.size(); //In der paraliste ist der erste Parameter der Rückgabetyp + int N = paralist.size(); //In der paraliste ist der erste Parameter der Rückgabetyp this.setType(paralist.firstElement()); this.set_DeclId(new DeclId("apply")); ParameterList pl = new ParameterList(); Menge fpList = new Menge(); - for(int i = 1;i fpList = new Menge(); - for(int i = 1;i<=N;i++){ //Alle verbleibenden Elemente in der übergebenen paralist durchgehen. + for(int i = 1;i<=N;i++){ //Alle verbleibenden Elemente in der übergebenen paralist durchgehen. DeclId paramName = new DeclId("T"+i); FormalParameter parameter = new FormalParameter(paramName); parameter.setType(TypePlaceholder.fresh(parameter)); diff --git a/src/de/dhbwstuttgart/typeinference/JavaCodeResult.java b/src/de/dhbwstuttgart/typeinference/JavaCodeResult.java index c5cf63a3..fff505d2 100755 --- a/src/de/dhbwstuttgart/typeinference/JavaCodeResult.java +++ b/src/de/dhbwstuttgart/typeinference/JavaCodeResult.java @@ -24,7 +24,7 @@ public class JavaCodeResult{ public JavaCodeResult attach(JavaCodeResult javaCodeResult){ this.javaCode += javaCodeResult.getJavaCode(); - //Alle TPH anfügen: + //Alle TPH anfügen: for(TypePlaceholder tph : javaCodeResult.getUnresolvedTPH())this.addUnresolvedTPH(tph); return this; } @@ -39,7 +39,7 @@ public class JavaCodeResult{ } /** - * Liefert alle TPHs, welche in diesem JavaCodeResult nicht zu einem Typ aufgelöst wurden. + * Liefert alle TPHs, welche in diesem JavaCodeResult nicht zu einem Typ aufgelöst wurden. * Diese TPHs stehen dadurch im JavaCode als Variablennamen ohne zugeordnetem Typ. * @return */ diff --git a/src/de/dhbwstuttgart/typeinference/KarthesischesProdukt.java b/src/de/dhbwstuttgart/typeinference/KarthesischesProdukt.java index 7646b1d6..527e8f4e 100755 --- a/src/de/dhbwstuttgart/typeinference/KarthesischesProdukt.java +++ b/src/de/dhbwstuttgart/typeinference/KarthesischesProdukt.java @@ -13,7 +13,7 @@ public abstract class KarthesischesProdukt { ret.add(v); } return ret; - //return m1;//throw new TypinferenzException("m1 hat zu wenige Objekte für ein Karthesisches Produkt. Es müssen mindestens 2 sein."); + //return m1;//throw new TypinferenzException("m1 hat zu wenige Objekte für ein Karthesisches Produkt. Es müssen mindestens 2 sein."); } return berechneKarthesischesProdukt(m1, null); } @@ -45,7 +45,7 @@ public abstract class KarthesischesProdukt { ret = new Menge>(); ret.addAll( karthesischesProdukt2(m1.firstElement(), m2) ); }else{ - throw new TypinferenzException("Der übergebene Vektor m1 ist leer."); + throw new TypinferenzException("Der übergebene Vektor m1 ist leer."); } return ret;*/ @@ -53,10 +53,10 @@ public abstract class KarthesischesProdukt { private static Menge> karthesischesProdukt(Menge m1, Menge m2){ Menge> ret = new Menge>(); - /* Wird dieser Teil nicht auskommentiert, so kann auch ein Karthesisches Produkt über eine Menge mit leeren Teilmengen erstellt werden + /* Wird dieser Teil nicht auskommentiert, so kann auch ein Karthesisches Produkt über eine Menge mit leeren Teilmengen erstellt werden if(m2.size() == 0){//Sonderfall, m2 ist leer: ret.add(m1); - return ret; //Die restliche Berechnungen können übersprungen werden. + return ret; //Die restliche Berechnungen können übersprungen werden. } */ //for(M o1 : m1){ diff --git a/src/de/dhbwstuttgart/typeinference/OderConstraint.java b/src/de/dhbwstuttgart/typeinference/OderConstraint.java index e48ac30e..1db2aa71 100755 --- a/src/de/dhbwstuttgart/typeinference/OderConstraint.java +++ b/src/de/dhbwstuttgart/typeinference/OderConstraint.java @@ -15,7 +15,7 @@ public class OderConstraint extends OderMenge{ private final static Logger logger = Logger.getLogger(OderConstraint.class.getName()); /** - * Erstellt ein neues Oder Constraint und fügt bereits ein Constraint hinzu. + * Erstellt ein neues Oder Constraint und fügt bereits ein Constraint hinzu. * @param p1 * @param p2 */ @@ -30,7 +30,7 @@ public class OderConstraint extends OderMenge{ /** - * Liefert alle in diesem OderConstraint enthaltene Constraints. Dabei gehen die Verknüpfungen (Oder/Und) verloren. + * Liefert alle in diesem OderConstraint enthaltene Constraints. Dabei gehen die Verknüpfungen (Oder/Und) verloren. * @return public Menge getConstraintPairs(){ @@ -44,7 +44,7 @@ public class OderConstraint extends OderMenge{ */ /** - * Fügt ein Pair(p1, p2) dem Constraint hinzu + * Fügt ein Pair(p1, p2) dem Constraint hinzu * @param p1 * @param p2 */ @@ -64,7 +64,7 @@ public class OderConstraint extends OderMenge{ this.addItems(methodConstraint);//oderConstraintPairs.add(methodConstraint); } - //TODO: Funktionalität für filter implementieren + //TODO: Funktionalität für filter implementieren void filterWrongConstraints(Unifier unifier) { /* Menge filteredConstraints = new Menge<>(); diff --git a/src/de/dhbwstuttgart/typeinference/Pair.java b/src/de/dhbwstuttgart/typeinference/Pair.java index 01d74989..1d08ae51 100755 --- a/src/de/dhbwstuttgart/typeinference/Pair.java +++ b/src/de/dhbwstuttgart/typeinference/Pair.java @@ -43,15 +43,15 @@ public class Pair // ino.attribute.bSubst.26552.decldescription type=line // false <--> vorinitialisierter Wert // true <--> Dieses Paar entstand durch reduce1-Regel (=.) - // --> Name von TA1 mu� gleich sein wie Name von TA2 + // --> Name von TA1 mu� gleich sein wie Name von TA2 // Nur noch reduce2-Regel anwendbar // luar 15-04-2007 - // Der Unify mit Wildcards benötigt 3 verschiedene Operatoren. + // Der Unify mit Wildcards benötigt 3 verschiedene Operatoren. // Deshalb wurde der boolean durch einen Enum ersetzt. // Smaller <--> vorinitialisierter Wert // SmallerExtends <--> Kleiner extends (wie vorinitialisiert, nur mit einschluss der Wildcard) - // Equal <--> Gleich: Name von TA1 und TA2 müssen gleich sein. + // Equal <--> Gleich: Name von TA1 und TA2 müssen gleich sein. // ino.end // ino.attribute.bSubst.26552.declaration @@ -301,7 +301,7 @@ public class Pair // ino.method.equals.26588.defdescription type=javadoc /** - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @param obj * @return */ @@ -321,8 +321,8 @@ public class Pair // ino.end /** - * Author: Arne Lüdtke
- * Überprüft ob die Paare die gleichen Instanzen sind. + * Author: Arne Lüdtke
+ * Ãœberprüft ob die Paare die gleichen Instanzen sind. */ public boolean instanzeEquals(Object obj) { @@ -330,7 +330,7 @@ public class Pair } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Abfrage, ob Operator vom Typ Equal ist. */ public boolean OperatorEqual() @@ -339,7 +339,7 @@ public class Pair } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Abfrage, ob Operator vom Typ Smaller ist. */ public boolean OperatorSmaller() @@ -348,7 +348,7 @@ public class Pair } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Abfrage, ob Operator vom Typ SmallerExtends ist. */ public boolean OperatorSmallerExtends() @@ -357,8 +357,8 @@ public class Pair } /** - * Author: Arne Lüdtke
- * Gibt den Operator zurück. + * Author: Arne Lüdtke
+ * Gibt den Operator zurück. */ public PairOperator GetOperator() { @@ -366,7 +366,7 @@ public class Pair } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Setzt den Operator * @param operator - Operator to set. */ @@ -376,7 +376,7 @@ public class Pair } /** - * Author: Arne Lüdtke
+ * Author: Arne Lüdtke
* Erzeugt einen Klon des Paares. */ public Pair clone() @@ -385,8 +385,8 @@ public class Pair } /** - * Gibt eine Liste aller TypePlaceholder die in diesem Pair enthalten sind zurück. - * (Immer zwischen 0 und 2 Stück ;P) + * Gibt eine Liste aller TypePlaceholder die in diesem Pair enthalten sind zurück. + * (Immer zwischen 0 und 2 Stück ;P) * @return */ public Menge getTypePlaceholder() { diff --git a/src/de/dhbwstuttgart/typeinference/ResultSet.java b/src/de/dhbwstuttgart/typeinference/ResultSet.java index 6073b795..64737673 100755 --- a/src/de/dhbwstuttgart/typeinference/ResultSet.java +++ b/src/de/dhbwstuttgart/typeinference/ResultSet.java @@ -33,7 +33,7 @@ public class ResultSet implements Iterable { } /** - * Löst den übergebenen Typ auf. Rückgabetyp ist ein Reftype oder Void + * Löst den übergebenen Typ auf. Rückgabetyp ist ein Reftype oder Void * @param type * @return */ @@ -62,7 +62,7 @@ public class ResultSet implements Iterable { } /** - * Durchsucht das ResultSet (die unifizierten Constraints des ResultSets) nach diesem Typ. Der Typ wird nicht aufgelöst. + * Durchsucht das ResultSet (die unifizierten Constraints des ResultSets) nach diesem Typ. Der Typ wird nicht aufgelöst. * Es spielt keine Rolle in welchem Kontext der Typ im ResultSet auftaucht. * @param tA1 * @return true, falls der gesuchte Typ enthalten ist. @@ -86,7 +86,7 @@ public class ResultSet implements Iterable { /** - * Sammelt alle Constraints, welche mit den übergebenen TPH's in Verbindung stehen. + * Sammelt alle Constraints, welche mit den übergebenen TPH's in Verbindung stehen. * Auch alle Constraints, welche wiederum mit den gesammelten Constraints in Verbindung stehen werden gesammelt. * @return */ @@ -109,7 +109,7 @@ public class ResultSet implements Iterable { } /** - * Durchsucht das ResultSet nach Typen, die die übergebenen unresolvedTPHs als generische Variablen einbinden. + * Durchsucht das ResultSet nach Typen, die die übergebenen unresolvedTPHs als generische Variablen einbinden. * @param unresolvedTPH * @return */ diff --git a/src/de/dhbwstuttgart/typeinference/SingleConstraint.java b/src/de/dhbwstuttgart/typeinference/SingleConstraint.java index 49639533..8b0907f0 100755 --- a/src/de/dhbwstuttgart/typeinference/SingleConstraint.java +++ b/src/de/dhbwstuttgart/typeinference/SingleConstraint.java @@ -11,9 +11,9 @@ import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException; /** - * Beschreibung von Herrn Plümicke: - * "The set of constraints consists of constraints of the form θ R θ' , where θ and - * θ' are Java types and R (R ∈ { < , { - //private Pair constraintPair; //entspricht θ condition θ' + //private Pair constraintPair; //entspricht θ condition θ' //private R condition; //entspricht der condition (R) public SingleConstraint(ConstraintType p1, ConstraintType p2){ @@ -41,7 +41,7 @@ public class SingleConstraint extends EinzelElement{ } /* - @Override //Methode überschreiben, damit immer nur ein Menge mit nur einem Element zurückgeliefert wird. + @Override //Methode überschreiben, damit immer nur ein Menge mit nur einem Element zurückgeliefert wird. public Menge getConstraintPairs(){ Menge ret = new Menge(); ret.add(constraintPair); @@ -50,7 +50,7 @@ public class SingleConstraint extends EinzelElement{ */ public void addConstraint(ConstraintPair toAdd){ - //if(constraintPair != null)throw new DebugException("Ein Constraint darf nur aus einem ConstraintPair bestehen. Das hinzufügen von "+ toAdd + " ist nicht möglich."); + //if(constraintPair != null)throw new DebugException("Ein Constraint darf nur aus einem ConstraintPair bestehen. Das hinzufügen von "+ toAdd + " ist nicht möglich."); Type p1 = toAdd.getPair().TA1; Type p2 = toAdd.getPair().TA2; @@ -64,12 +64,12 @@ public class SingleConstraint extends EinzelElement{ //if((p1 instanceof GenericTypeVar))p1 = ((GenericTypeVar)p1).getTypePlaceHolder();//throw new DebugException("GenericTypeVar sind in den Constraints nicht erlaubt");// //if((p2 instanceof GenericTypeVar))p2 = ((GenericTypeVar)p2).getTypePlaceHolder();//throw new DebugException("GenericTypeVar sind in den Constraints nicht erlaubt");// - // BaseTypes werden in RefTypes umgewandelt. Constraints dürfen nur RefTypes oder TypePlaceholder enthalten, da sonst der Unify-Algorithmus nicht funktioniert. + // BaseTypes werden in RefTypes umgewandelt. Constraints dürfen nur RefTypes oder TypePlaceholder enthalten, da sonst der Unify-Algorithmus nicht funktioniert. //if(!(p1 instanceof RefType) && !(p1 instanceof TypePlaceholder) && !(p1 instanceof GenericTypeVar))p1 = new RefType(p1); //if(!(p2 instanceof RefType) && !(p2 instanceof TypePlaceholder) && !(p2 instanceof GenericTypeVar))p2 = new RefType(p2); //if(!(TypePlaceholder.class.isInstance(p1)) || !(RefType.class.isInstance(p1)) || !(TypePlaceholder.class.isInstance(p2)) || !(RefType.class.isInstance(p2))) - //{//Wenn die beiden übergebenen Typen weder RefTypes noch TypePlaceholder sind: + //{//Wenn die beiden übergebenen Typen weder RefTypes noch TypePlaceholder sind: // throw new TypinferenzException("Ein Constraint darf nur aus TypePlaceholdern und Reftypes bestehen"); //} //if(!(p1 instanceof RefType) && !(p1 instanceof TypePlaceholder))throw new DebugException("Fehler: "+p2+" kann nicht in TPH oder RefType umgewandelt werden"); diff --git a/src/de/dhbwstuttgart/typeinference/TypeInsertable.java b/src/de/dhbwstuttgart/typeinference/TypeInsertable.java index 39411208..f4b62ddb 100644 --- a/src/de/dhbwstuttgart/typeinference/TypeInsertable.java +++ b/src/de/dhbwstuttgart/typeinference/TypeInsertable.java @@ -11,11 +11,11 @@ public interface TypeInsertable extends Typeable, IItemWithOffset { public String getIdentifier(); /** - * Errechnet den TypeInsertPoint für das TypeInsertable. - * TypeInsertPoints sollten nur über diese Funktion erstellt werden. + * Errechnet den TypeInsertPoint für das TypeInsertable. + * TypeInsertPoints sollten nur über diese Funktion erstellt werden. * @param tph * @param resultSet - * @return - kann auch null zurückgeben. + * @return - kann auch null zurückgeben. */ public TypeInsertPoint createTypeInsertPoint(TypePlaceholder tph, ResultSet resultSet); diff --git a/src/de/dhbwstuttgart/typeinference/Typeable.java b/src/de/dhbwstuttgart/typeinference/Typeable.java index 72c902d3..85118f5d 100755 --- a/src/de/dhbwstuttgart/typeinference/Typeable.java +++ b/src/de/dhbwstuttgart/typeinference/Typeable.java @@ -6,7 +6,7 @@ public interface Typeable { /** * @author Andreas Stadelmeier, a10023 * Jede Expression und jedes Statement muss im Zuge des Typinferenzalgorithmus das Interfece Typable einbinden. - * Die Funktion setTypeVariable muss während des durchlaufens des Typinferenzalgorithmus einmalig für jedes Statement und jede Expression aufgerufen werden. + * Die Funktion setTypeVariable muss während des durchlaufens des Typinferenzalgorithmus einmalig für jedes Statement und jede Expression aufgerufen werden. * Dabei kann auch eine FreshTypeVariable als Typ vergeben werden. * @param typ Der Typ der Typable-Expression/Statement */ diff --git a/src/de/dhbwstuttgart/typeinference/TypeinferenceResultSet.java b/src/de/dhbwstuttgart/typeinference/TypeinferenceResultSet.java index 58297499..7c5d9f9a 100755 --- a/src/de/dhbwstuttgart/typeinference/TypeinferenceResultSet.java +++ b/src/de/dhbwstuttgart/typeinference/TypeinferenceResultSet.java @@ -19,12 +19,12 @@ import de.dhbwstuttgart.typeinference.unify.CSubstitutionSet; // ino.class.CTypeReconstructionResult.27238.description type=javadoc /** - * Diese Container-Klasse kapselt alle Ergebniswerte f�r eine m�gliche + * Diese Container-Klasse kapselt alle Ergebniswerte f�r eine m�gliche * Typkombination einer Klasse und deren Methoden sowie lokalen Variablen. Eine - * Instanz dieser Klasse steht f�r genau eine m�gliche Typkombination.
- * Objekte dieser Klasse werden vom Typrekonstruktionsalgorithmus �ber die - * Compiler-API zur�ckgegeben. - * @author J�rg B�uerle + * Instanz dieser Klasse steht f�r genau eine m�gliche Typkombination.
+ * Objekte dieser Klasse werden vom Typrekonstruktionsalgorithmus �ber die + * Compiler-API zur�ckgegeben. + * @author J�rg B�uerle * @version $Date: 2013/09/22 20:13:02 $ */ // ino.end @@ -41,7 +41,7 @@ public class TypeinferenceResultSet * Das unifizierte ConstaraintsSet */ private ResultSet unifiedConstraints; - private de.dhbwstuttgart.syntaxtree.Class ownerOfResultSet;//Jedes Resultset gilt immer nur für eine Klasse. Diese wird in dieser Variable gespeichert. + private de.dhbwstuttgart.syntaxtree.Class ownerOfResultSet;//Jedes Resultset gilt immer nur für eine Klasse. Diese wird in dieser Variable gespeichert. // ino.method.CTypeReconstructionResult.27256.definition public TypeinferenceResultSet(de.dhbwstuttgart.syntaxtree.Class inferedClass, Menge constraints, ResultSet unifiedConstraints) @@ -57,7 +57,7 @@ public class TypeinferenceResultSet /** * @author Andreas Stadelmeier, a10023 * Anhand des Syntaxbaums errechnet der Typinferenzalgorithmus ein Set von Constraints. - * Diese Funktion ist nur für automatisierte Tests interessant. + * Diese Funktion ist nur für automatisierte Tests interessant. * Zum abrufen der Unifizierten Constraints siehe getUnifiedConstraints() * @return */ @@ -67,8 +67,8 @@ public class TypeinferenceResultSet /** * @author Andreas Stadelmeier, a10023 - * Nach dem Durchführen des Interferenzalgorithmus von Lambda 8 entsteht für jede Lösung ein Set con Constraints. - * Diese Constraints haben bereits den Unify-Algorithmus durchlaufen und weißen die errechneten Typen den Typeplacholdern zu. + * Nach dem Durchführen des Interferenzalgorithmus von Lambda 8 entsteht für jede Lösung ein Set con Constraints. + * Diese Constraints haben bereits den Unify-Algorithmus durchlaufen und weißen die errechneten Typen den Typeplacholdern zu. * @return Das fertige ConstraintsSet dieser CTypeRecunstructionResult */ public ResultSet getUnifiedConstraints() { @@ -77,7 +77,7 @@ public class TypeinferenceResultSet /** - * Ermittelt den in diesem ResultSet für den TypePlaceholder tph zugewiesenen Wert. + * Ermittelt den in diesem ResultSet für den TypePlaceholder tph zugewiesenen Wert. * @author Andreas Stadelmeier, a10023 */ public Type getTypeOfPlaceholder(TypePlaceholder tph){ @@ -86,7 +86,7 @@ public class TypeinferenceResultSet /** * Jedes TypeReconstructionResultSet entstand bei der Typinferierung einer Klasse. - * @return Gibt die Klasse zurück der dieses ResultSet zugeordnet ist. + * @return Gibt die Klasse zurück der dieses ResultSet zugeordnet ist. */ public de.dhbwstuttgart.syntaxtree.Class getInterferedClass(){ return this.ownerOfResultSet; @@ -98,8 +98,8 @@ public class TypeinferenceResultSet } /** - * Berechnet alle möglichen Punkte zum Einsetzen eines Typs im Quelltext - * Dabei entstehen TypeInsertSets. Für jeden gesammelten TypeInsertPoint werden alle Abhängigkeiten berechnet. + * Berechnet alle möglichen Punkte zum Einsetzen eines Typs im Quelltext + * Dabei entstehen TypeInsertSets. Für jeden gesammelten TypeInsertPoint werden alle Abhängigkeiten berechnet. * * @return */ @@ -112,7 +112,7 @@ public class TypeinferenceResultSet } /** - * Startet die Bytecodegenerierung dieser Lösung. + * Startet die Bytecodegenerierung dieser Lösung. * Dabei wird die codegen-Methode der inferierten Klasse mit diesem ResultSet aufgerufen. */ public void codegen(){ diff --git a/src/de/dhbwstuttgart/typeinference/UndConstraint.java b/src/de/dhbwstuttgart/typeinference/UndConstraint.java index 55d3e67c..3c221d66 100755 --- a/src/de/dhbwstuttgart/typeinference/UndConstraint.java +++ b/src/de/dhbwstuttgart/typeinference/UndConstraint.java @@ -7,7 +7,7 @@ import de.dhbwstuttgart.syntaxtree.type.Type; import de.dhbwstuttgart.typeinference.unify.Unifier; /** - * Stellt ein Constraint dar, welches aus mehreren Constraint-Paaren besteht. Diese gelten alle stets gleichzeitig / sind per "Und" miteinander verknüpft. + * Stellt ein Constraint dar, welches aus mehreren Constraint-Paaren besteht. Diese gelten alle stets gleichzeitig / sind per "Und" miteinander verknüpft. * @author janulrich * */ diff --git a/src/de/dhbwstuttgart/typeinference/UndMenge.java b/src/de/dhbwstuttgart/typeinference/UndMenge.java index 1f4d75df..709b263d 100644 --- a/src/de/dhbwstuttgart/typeinference/UndMenge.java +++ b/src/de/dhbwstuttgart/typeinference/UndMenge.java @@ -34,7 +34,7 @@ public class UndMenge
implements KomplexeMenge{ ret = km.cartesianProduct(); }else{ Menge> cartesianProduct = new Menge<>(); - for(Menge r : ret)for(Menge m : km.cartesianProduct()){ //Für jedes Element aus dem Karthesischen Produkt: + for(Menge r : ret)for(Menge m : km.cartesianProduct()){ //Für jedes Element aus dem Karthesischen Produkt: Menge undElement = new Menge(); undElement.addAll(cloner.deepClone(r)); undElement.addAll(m); diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/Assumption.java b/src/de/dhbwstuttgart/typeinference/assumptions/Assumption.java index 837dcfa4..0c66535e 100644 --- a/src/de/dhbwstuttgart/typeinference/assumptions/Assumption.java +++ b/src/de/dhbwstuttgart/typeinference/assumptions/Assumption.java @@ -11,7 +11,7 @@ public class Assumption { private TypeInsertable typable; /** - * Wird dieser Konstruktor benutzt müssen alle Methoden der Klasse Assumption überschrieben werden. + * Wird dieser Konstruktor benutzt müssen alle Methoden der Klasse Assumption überschrieben werden. */ protected Assumption(){ } diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/ParameterAssumption.java b/src/de/dhbwstuttgart/typeinference/assumptions/ParameterAssumption.java index ffbcec8f..89364bc0 100644 --- a/src/de/dhbwstuttgart/typeinference/assumptions/ParameterAssumption.java +++ b/src/de/dhbwstuttgart/typeinference/assumptions/ParameterAssumption.java @@ -3,7 +3,7 @@ package de.dhbwstuttgart.typeinference.assumptions; import de.dhbwstuttgart.syntaxtree.FormalParameter; /** - * ParameterAssumptions repräsentieren die Methodenparameter innerhalb des Rumpfes einer Methode. + * ParameterAssumptions repräsentieren die Methodenparameter innerhalb des Rumpfes einer Methode. * * @author janulrich * diff --git a/src/de/dhbwstuttgart/typeinference/assumptions/TypeAssumptions.java b/src/de/dhbwstuttgart/typeinference/assumptions/TypeAssumptions.java index 5a017420..f9b4428d 100755 --- a/src/de/dhbwstuttgart/typeinference/assumptions/TypeAssumptions.java +++ b/src/de/dhbwstuttgart/typeinference/assumptions/TypeAssumptions.java @@ -24,7 +24,7 @@ import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException; /** * Eine Sammlung von TypeAssumptions. - * Jede Expression und jedes Statement erhält beim Aufrufen ihrer TYPE-Methode ein AssumptionSet mit den Assumptions ihrer Umgebung als Parameter übergeben. + * Jede Expression und jedes Statement erhält beim Aufrufen ihrer TYPE-Methode ein AssumptionSet mit den Assumptions ihrer Umgebung als Parameter übergeben. * @author janulrich * * Es gibt verschiedene Assumptions: @@ -52,7 +52,7 @@ public class TypeAssumptions { /** * Dieser Konstruktor setzt bei der Initialisierung auch den Wert von "this" - * @param klassenname - Wert für "this" + * @param klassenname - Wert für "this" */ public TypeAssumptions(){ //this.thisClassName = klassenname; @@ -64,7 +64,7 @@ public class TypeAssumptions { } /** - * Liefert alle bekannten öffentlichen Feldern mit dem Namen withName. Dabei werden alle bekannten Klassen durchsucht. + * Liefert alle bekannten öffentlichen Feldern mit dem Namen withName. Dabei werden alle bekannten Klassen durchsucht. * @param withName * @return */ @@ -80,7 +80,7 @@ public class TypeAssumptions { * Liefert den Typ einer Feldvariable der Klasse inClass * @param withName * @param inClass - * @return null, falls die Klasse kein zugängliches Feld enthält + * @return null, falls die Klasse kein zugängliches Feld enthält */ public Type getTypeOfFieldVar(String withName, Class inClass){ for(FieldAssumption fa : this.getFieldVars(withName)){ @@ -102,7 +102,7 @@ public class TypeAssumptions { } /** - * Liefert den Typ einer lokalen Variable. Zuerst werden die Parameter dieses AssumptionSets durchsucht, dann die lokalen Variablen. Anschließend die Felder der, "this" repräsentierenden Klasse + * Liefert den Typ einer lokalen Variable. Zuerst werden die Parameter dieses AssumptionSets durchsucht, dann die lokalen Variablen. Anschließend die Felder der, "this" repräsentierenden Klasse * @param withName * @return */ @@ -121,7 +121,7 @@ public class TypeAssumptions { * Sucht nach Assumptions zu einer Methode mit dem Namen methodName und parameterCount Parametern. * @param methodName * @param i Die Parameter, welche die Methode verarbeiten soll - * @return Alle Methoden in den Assumptions, welche eine Parameterliste der Länge der übergebenen Parameterliste (parameter) verarbeiten können. + * @return Alle Methoden in den Assumptions, welche eine Parameterliste der Länge der übergebenen Parameterliste (parameter) verarbeiten können. */ public Menge getMethodAssumptions(String methodName, int parameterCount){ Menge ret = new Menge(); @@ -133,7 +133,7 @@ public class TypeAssumptions { //TODO: Dieser Teil mit der Generierung von FunN-Methoden kann raus, da die FunNInterfaces sich in den Basic-Assumptions befinden sollten. //Falls es sich um die apply-Methode eines FunN-Interface handelt: - //if(methodName.equals("apply")){ //Ein Workaround für den Typinferenzalgorithmus TODO: Das hier rausnehmen. + //if(methodName.equals("apply")){ //Ein Workaround für den Typinferenzalgorithmus TODO: Das hier rausnehmen. //CMethodTypeAssumption funNAssumption = new FunN(parameterCount).toCMethodTypeAssumption(); // MethodAssumption funNAssumption = new MethodAssumption(new FunNMethod(parameterCount), new FunNInterface(parameter)); // ret.add(funNAssumption); @@ -144,11 +144,11 @@ public class TypeAssumptions { /** - * Durchsucht die Assumptions des aktuellen Gültigkeitsbereichs (lokale Variablen und Felder der aktuellen Klasse) nach einem Eintrag für den übergebenen Variablennamen. - * In den Assumptions wird dann in der Reihenfolge LocalVarAssumptions, FieldAssumption nach dem übergebenen Variablennamen gesucht. + * Durchsucht die Assumptions des aktuellen Gültigkeitsbereichs (lokale Variablen und Felder der aktuellen Klasse) nach einem Eintrag für den übergebenen Variablennamen. + * In den Assumptions wird dann in der Reihenfolge LocalVarAssumptions, FieldAssumption nach dem übergebenen Variablennamen gesucht. * @param variableName - der Identifier der gesuchten Variablen - * @param inScope - Sucht auch die Felder der übergebenen Klasse ab. Hier kann auch null übergeben werden, dann werden nur die Lokalen Variablen dieser TypeAssumption durchsucht. - * @return - Der Typ für diesen Identifier, oder null, falls kein Typ vorliegt. + * @param inScope - Sucht auch die Felder der übergebenen Klasse ab. Hier kann auch null übergeben werden, dann werden nur die Lokalen Variablen dieser TypeAssumption durchsucht. + * @return - Der Typ für diesen Identifier, oder null, falls kein Typ vorliegt. */ public Type getVarType(String variableName, Class inScope){ //Zuerst die Parameter durchsuchen @@ -193,7 +193,7 @@ public class TypeAssumptions { } /** - * Liefert alle Assumptions, außer die der lokalen Variablen, welche einer bestimmten Klasse zugeordnet sind. + * Liefert alle Assumptions, außer die der lokalen Variablen, welche einer bestimmten Klasse zugeordnet sind. * @param className * @return */ @@ -280,7 +280,7 @@ public class TypeAssumptions { /** * Kontrolliert den vom Parser gesetzten Typ. - * Erweitert dessen Bezeichnung, wenn nötig. + * Erweitert dessen Bezeichnung, wenn nötig. * @param t * @return null, falls der Typ nicht vorhanden ist. */ @@ -305,14 +305,14 @@ public class TypeAssumptions { match = name.equals(typName); if(match && t instanceof RefType){ RefType tr = (RefType)t; - RefType ret = ass.getAssumedClass().getType(); //Dadurch erhält der RefType den vollen Namen (bsp. java.lang.Integer) + RefType ret = ass.getAssumedClass().getType(); //Dadurch erhält der RefType den vollen Namen (bsp. java.lang.Integer) - //Falls der RefType mit Parametern angegeben wurde, so müssen diese erhalten bleiben: + //Falls der RefType mit Parametern angegeben wurde, so müssen diese erhalten bleiben: if(tr.get_ParaList()!=null && tr.getParaList().size()>0){ ret.set_ParaList(tr.getParaList()); } - //Der RefType muss zusätzlich seine Parameter prüfen. + //Der RefType muss zusätzlich seine Parameter prüfen. Menge parameterList = new Menge<>(); if(ret.get_ParaList()!=null)for(Type param : ret.get_ParaList()){ ConstraintType ct = param.TYPE(this, inNode); @@ -334,7 +334,7 @@ public class TypeAssumptions { GTVDeclarationContext gtvDeclNode = ass.getAssumedType().getDeclarationContext(); //Der GTV-Kontext von inNOde GTVDeclarationContext gtvNode = inNode.getGTVDeclarationContext(); - //Überprüfungen (siehe Dokumentation): + //Ãœberprüfungen (siehe Dokumentation): if(gtvDeclNode.isClass()){ //GTV wurde in Klasse definiert if(! gtvNode.getParentClass().equals(gtvDeclNode))sameContext = false; }else{ //GTV wurde in Methode oder Feld definiert: @@ -353,7 +353,7 @@ public class TypeAssumptions { } if(t.getName() == null)throw new DebugException(t.toString()); - //Spezialfälle bei char, int, boolean, .... + //Spezialfälle bei char, int, boolean, .... String name = t.getName().toString(); switch(name){ case "int": @@ -374,8 +374,8 @@ public class TypeAssumptions { } /** - * Fügt eine TypAssumption an. - * Dadurch wird ein Pool von Typen aufgebaut, welche überhaupt erlaubt sind. + * Fügt eine TypAssumption an. + * Dadurch wird ein Pool von Typen aufgebaut, welche überhaupt erlaubt sind. * Wird genutzt um vom Parser eingelesene Typen auf ihre Korrektheit zu kontrollieren. * @param classAssumption */ @@ -397,7 +397,7 @@ public class TypeAssumptions { } /** - * Fügt eine Generische Typvariablen den Assumptions hinzu + * Fügt eine Generische Typvariablen den Assumptions hinzu * @param genericTypeVar */ public void addGenericVarAssumption( @@ -410,13 +410,13 @@ public class TypeAssumptions { } public Type checkType(RefType type, SyntaxTreeNode parent) { - ConstraintType t = this.getTypeFor(type, parent); //Richtigkeit des Typnahmensprüfen + ConstraintType t = this.getTypeFor(type, parent); //Richtigkeit des Typnahmensprüfen type.setName(t.getType().getName()); //Und diesen auf den Typ anwenden return t.getType(); } /** - * Prüft einen Typ auf das vorhandensein in den BasicAssumptions. + * Prüft einen Typ auf das vorhandensein in den BasicAssumptions. * Dabei werden alle Konstruktoren nach diesem Typ durchsucht. Denn jede Klasse hat einen Konstruktor und der muss in den TypeAssumptions vorhanden sein. * @param t * @return diff --git a/src/de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.java b/src/de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.java index 69db2739..4108f1e7 100755 --- a/src/de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.java +++ b/src/de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.java @@ -4,8 +4,8 @@ import de.dhbwstuttgart.core.IItemWithOffset; import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; /** - * Eine RuntimeException, welche bei einem Fehler während des Typinferenzalgorithmus ausgelöst wird. - * Dies wird zum Beispiel durch Programmierfehler in der Java-Eingabedatei ausgelöst. + * Eine RuntimeException, welche bei einem Fehler während des Typinferenzalgorithmus ausgelöst wird. + * Dies wird zum Beispiel durch Programmierfehler in der Java-Eingabedatei ausgelöst. * @author Andreas Stadelmeier, a10023 * */ diff --git a/src/de/dhbwstuttgart/typeinference/typedeployment/GenericTypeInsertPoint.java b/src/de/dhbwstuttgart/typeinference/typedeployment/GenericTypeInsertPoint.java index 287774ef..50f9e081 100644 --- a/src/de/dhbwstuttgart/typeinference/typedeployment/GenericTypeInsertPoint.java +++ b/src/de/dhbwstuttgart/typeinference/typedeployment/GenericTypeInsertPoint.java @@ -17,9 +17,9 @@ import de.dhbwstuttgart.typeinference.TypeInsertable; import de.dhbwstuttgart.typeinference.exceptions.DebugException; /** - * Ein InsertPoint für Generische Variablen + * Ein InsertPoint für Generische Variablen * Wird beim Einsetzen eines TIP generiert. - * Steht für die Einsetzung aller Generischen Variablendeklarationen zugehörig zu einem Punkt in der SourceFile. + * Steht für die Einsetzung aller Generischen Variablendeklarationen zugehörig zu einem Punkt in der SourceFile. * @author janulrich * */ @@ -37,7 +37,7 @@ public class GenericTypeInsertPoint extends SourcePatchPoint { } /** - * Der TypeInsertString wird im Falle des GTIP von dem zugehörigen SyntaxTreeNode generiert. + * Der TypeInsertString wird im Falle des GTIP von dem zugehörigen SyntaxTreeNode generiert. * @return */ public String getTypeInsertString() { @@ -55,7 +55,7 @@ public class GenericTypeInsertPoint extends SourcePatchPoint { @Override public int compareTo(SourcePatchPoint arg0) { int ret = super.compareTo(arg0); - if(ret == 0)ret = -666;//Hack der dazu führt, dass GTIP vor anderen InsertTypes eingesetzt werden. + if(ret == 0)ret = -666;//Hack der dazu führt, dass GTIP vor anderen InsertTypes eingesetzt werden. return ret; } @@ -95,7 +95,7 @@ class GenericVarPatch { private Menge usedTPHs; /** - * Fügt eine generische Variable in Form eines Pairs an. + * Fügt eine generische Variable in Form eines Pairs an. * @param p */ public void add(Pair p){ @@ -112,10 +112,10 @@ class GenericVarPatch { } public String getInsertString(ResultSet rs){ - //Alle Generische Einsetzungen verwerfen, welche nicht benötigt werden: + //Alle Generische Einsetzungen verwerfen, welche nicht benötigt werden: /* - * Dies geht mit der momentanen Variante nur für die genericVarDeclarations. - * Es kann passieren, dass bei den genericVarExtendDeclarations extend-Verknüpfungen enthalten sind, + * Dies geht mit der momentanen Variante nur für die genericVarDeclarations. + * Es kann passieren, dass bei den genericVarExtendDeclarations extend-Verknüpfungen enthalten sind, * welche nicht im eingesetzten Typ auftauchen, aber dennoch notwendig sind. */ Menge tmpGenVars = new Menge<>(); @@ -126,7 +126,7 @@ class GenericVarPatch { } this.genericVarDeclarations = tmpGenVars; - //Hier sollten TPHs nicht aufgelöst sondern in Generische Variablen umgewandelt werden: + //Hier sollten TPHs nicht aufgelöst sondern in Generische Variablen umgewandelt werden: String ret = ""; Iterator it1 = this.genericVarDeclarations.iterator(); boolean bereitsVorhanden = false; @@ -194,7 +194,7 @@ class GenericVarExtendsDeclarationPatch { private Pair genericPair; /** - * Kontrolliert ob der T1 mit tph übereinstimmt im Constraint: T1 extends T2 + * Kontrolliert ob der T1 mit tph übereinstimmt im Constraint: T1 extends T2 * @param tph * @return */ diff --git a/src/de/dhbwstuttgart/typeinference/typedeployment/TypeInsertPoint.java b/src/de/dhbwstuttgart/typeinference/typedeployment/TypeInsertPoint.java index 6e1dfded..2d4f0fc3 100644 --- a/src/de/dhbwstuttgart/typeinference/typedeployment/TypeInsertPoint.java +++ b/src/de/dhbwstuttgart/typeinference/typedeployment/TypeInsertPoint.java @@ -14,7 +14,7 @@ import de.dhbwstuttgart.typeinference.TypeInsertable; import de.dhbwstuttgart.typeinference.exceptions.DebugException; /** - * Stellt eine Einsetzungsmöglichkeit für einen Typ an einem (Typeable)Punkt im Syntaxbaum dar. + * Stellt eine Einsetzungsmöglichkeit für einen Typ an einem (Typeable)Punkt im Syntaxbaum dar. * Mehrere TypeInsertPoint's werden in einem TypInsertSet zusammengefasst. * @author janulrich * @@ -41,7 +41,7 @@ public class TypeInsertPoint extends SourcePatchPoint { } /** - * Setzt den Typ dieses TypeInsertPoint in den übergebenen Quelltext ein. + * Setzt den Typ dieses TypeInsertPoint in den übergebenen Quelltext ein. * @param fileContent - der Quelltext * @param additionalOffset - Falls mehrere Typen in einen Quellcode eingesetzet werden muss die Verschiebung der Offsets mit einbezogen werden. * @return @@ -59,7 +59,7 @@ public class TypeInsertPoint extends SourcePatchPoint { /** * - * @return Der Offset des TypeInsertPoints in dem geparsten Source für dessen Klasse er erstellt wurde. + * @return Der Offset des TypeInsertPoints in dem geparsten Source für dessen Klasse er erstellt wurde. */ public int getOffset(){ return this.getInsertPoint().getOffset(); @@ -79,7 +79,7 @@ public class TypeInsertPoint extends SourcePatchPoint { } /** - * @return - Der Punkt (Knoten) im Syntaxbaum, für den dieser TypeInsertPoint gilt. + * @return - Der Punkt (Knoten) im Syntaxbaum, für den dieser TypeInsertPoint gilt. */ public IItemWithOffset getInsertPoint(){ return this.point; diff --git a/src/de/dhbwstuttgart/typeinference/typedeployment/TypeInsertSet.java b/src/de/dhbwstuttgart/typeinference/typedeployment/TypeInsertSet.java index 890c7a72..7e7bb3a0 100644 --- a/src/de/dhbwstuttgart/typeinference/typedeployment/TypeInsertSet.java +++ b/src/de/dhbwstuttgart/typeinference/typedeployment/TypeInsertSet.java @@ -19,9 +19,9 @@ import de.dhbwstuttgart.typeinference.ResultSet; import de.dhbwstuttgart.typeinference.TypeInsertable; /** - * Bündelt ein Set von TypeInsertPoints, welche zu einem TypeInferenceResultSet gehören. - * Das TypeInsertSet löst zudem Abhängigkeiten auf. Wird eine Generische Variable eingesetzt, - * müssen alle mit ihr in Verbindung stehenden Typen ebenfalls eingesetzt werden. + * Bündelt ein Set von TypeInsertPoints, welche zu einem TypeInferenceResultSet gehören. + * Das TypeInsertSet löst zudem Abhängigkeiten auf. Wird eine Generische Variable eingesetzt, + * müssen alle mit ihr in Verbindung stehenden Typen ebenfalls eingesetzt werden. * @author janulrich * */ @@ -37,7 +37,7 @@ public class TypeInsertSet { } /** - * Fügt einen TypeInsertPoint dem TypeInsertSet hinzu. + * Fügt einen TypeInsertPoint dem TypeInsertSet hinzu. * @param typeInsertPoint * @return */ @@ -48,7 +48,7 @@ public class TypeInsertSet { } /** - * Fügt nur einen einzelnen TypeInsertPoint in fileContent ein. + * Fügt nur einen einzelnen TypeInsertPoint in fileContent ein. * @param tip * @param fileContent * @return @@ -60,7 +60,7 @@ public class TypeInsertSet { } /** - * Fügt einen einzelnen TypeInsertPoint einem TypePatchJob hinzu + * Fügt einen einzelnen TypeInsertPoint einem TypePatchJob hinzu * @param tip * @param tpj */ @@ -68,8 +68,8 @@ public class TypeInsertSet { /* * Ablauf: * 1. Alle TypePlaceholder im einzusetzenden Typ ermitteln. - * 2. Alle Constraints die mit diesen TPHs zusammenhängen ermitteln (Das kann möglicherweise wegfallen) - * 3. Alle TPHs, aus Schritt 1 und 2 zusammenfügen. + * 2. Alle Constraints die mit diesen TPHs zusammenhängen ermitteln (Das kann möglicherweise wegfallen) + * 3. Alle TPHs, aus Schritt 1 und 2 zusammenfügen. * 4. Kontrollieren, welche TPHs in dem InsertKontext noch nicht bekannt sind. * 5. Alle Unbekannten TPHs herausfiltern (von den Pairs nur TA2) * 6. Alle unbekannten TPHs + Pairs als GenericTypeInsertPoint deklarieren. @@ -102,7 +102,7 @@ public class TypeInsertSet { /* - // und Schritt 5: (Es werden nur die TPHs übernommen, welche noch nicht in den involvedTPHs vorkommen) + // und Schritt 5: (Es werden nur die TPHs übernommen, welche noch nicht in den involvedTPHs vorkommen) for(Pair pair : pairs)for(Type t : pair.getTypes())for(TypePlaceholder tph : t.getInvolvedTypePlaceholder()){ if(!allTPHs.contains(tph)){ allTPHs.add(tph); @@ -144,7 +144,7 @@ public class TypeInsertSet { } /** - * Fügt alle Typen dieses TypeInsertSets in den übergebenen Quellcode ein + * Fügt alle Typen dieses TypeInsertSets in den übergebenen Quellcode ein * @param fileContent * @return */ @@ -160,7 +160,7 @@ public class TypeInsertSet { /** * * @param node - * @return - null, falls kein InsertPoint für node vorhanden. + * @return - null, falls kein InsertPoint für node vorhanden. */ public TypeInsertPoint getInsertPointFor(TypeInsertable node){ for(TypeInsertPoint point : points){ @@ -179,14 +179,14 @@ public class TypeInsertSet { //Jeder TypeInsertPoint muss auch in equals vorkommen: if(!equals.points.contains(point)) return false; - //... aber nicht öfter als 1x : + //... aber nicht öfter als 1x : if(equals.points.lastIndexOf(point)!=equals.points.indexOf(point))return false; } return true; } /** - * Fügt TypeInsertPoints an + * Fügt TypeInsertPoints an * @param insertPoints */ public void add(Menge insertPoints) { diff --git a/src/de/dhbwstuttgart/typeinference/unify/CSubstitution.java b/src/de/dhbwstuttgart/typeinference/unify/CSubstitution.java index 42e776ce..eef00233 100755 --- a/src/de/dhbwstuttgart/typeinference/unify/CSubstitution.java +++ b/src/de/dhbwstuttgart/typeinference/unify/CSubstitution.java @@ -30,7 +30,7 @@ import de.dhbwstuttgart.typeinference.Pair; * TypePlaceholder auf einen Substitutions-Typ ab. Instanzen dieser * Klasse werden in der Regel aus * Pair-Objekten erzeugt. - * @author J�rg B�uerle + * @author J�rg B�uerle * @version $Date: 2006/07/10 11:27:04 $ */ // ino.end @@ -74,7 +74,7 @@ public class CSubstitution // ino.method.CSubstitution.27021.body { if(!(unifier.TA1 instanceof TypePlaceholder)){ - throw new CTypeReconstructionException("Unifier enth�lt keinen Typeplaceholder",unifier.TA1); + throw new CTypeReconstructionException("Unifier enth�lt keinen Typeplaceholder",unifier.TA1); } m_TypeVar = (TypePlaceholder)unifier.TA1; m_Type = unifier.TA2; @@ -84,7 +84,7 @@ public class CSubstitution // ino.method.getType.27024.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @return Returns the Type. */ // ino.end @@ -99,7 +99,7 @@ public class CSubstitution // ino.method.setType.27027.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param type The Type to set. */ // ino.end @@ -114,7 +114,7 @@ public class CSubstitution // ino.method.getTypeVar.27030.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @return Returns the TypeVar. */ // ino.end @@ -129,7 +129,7 @@ public class CSubstitution // ino.method.setTypeVar.27033.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @param typeVar The TypeVar to set. */ // ino.end @@ -184,7 +184,7 @@ public class CSubstitution // ino.method.applyUnifier.27048.defdescription type=javadoc /** * Wendet den Unifier auf die rechte Seite dieser Substitution an. - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @param unifier */ // ino.end @@ -207,8 +207,8 @@ public class CSubstitution // ino.method.applySubstitution.27051.defdescription type=javadoc /** - * Wendet die �bergebene Substitution rekursiv auf den �bergebenen Typ an. - *
Author: J�rg B�uerle + * Wendet die �bergebene Substitution rekursiv auf den �bergebenen Typ an. + *
Author: J�rg B�uerle * @param type Der zu untersuchende Typ * @param unifierSub Die anzuwendende Substitution * @return Den ermittelnden Typ diff --git a/src/de/dhbwstuttgart/typeinference/unify/CSubstitutionGenVar.java b/src/de/dhbwstuttgart/typeinference/unify/CSubstitutionGenVar.java index 45a8f740..e1676902 100755 --- a/src/de/dhbwstuttgart/typeinference/unify/CSubstitutionGenVar.java +++ b/src/de/dhbwstuttgart/typeinference/unify/CSubstitutionGenVar.java @@ -11,7 +11,7 @@ import de.dhbwstuttgart.syntaxtree.type.Type; * TypePlaceholder auf einen Substitutions-Typ ab. Instanzen dieser * Klasse werden in der Regel aus * Pair-Objekten erzeugt. - * @author Martin Pl�micke + * @author Martin Pl�micke * @version $Date: 2006/06/13 10:37:32 $ */ // ino.end @@ -45,7 +45,7 @@ public class CSubstitutionGenVar extends CSubstitution // ino.method.getTypeVar.27070.defdescription type=javadoc /** - * Author: J�rg B�uerle
+ * Author: J�rg B�uerle
* @return Returns the TypeVar. */ // ino.end diff --git a/src/de/dhbwstuttgart/typeinference/unify/CSubstitutionSet.java b/src/de/dhbwstuttgart/typeinference/unify/CSubstitutionSet.java index f02fd605..e10f62aa 100755 --- a/src/de/dhbwstuttgart/typeinference/unify/CSubstitutionSet.java +++ b/src/de/dhbwstuttgart/typeinference/unify/CSubstitutionSet.java @@ -12,7 +12,7 @@ import de.dhbwstuttgart.typeinference.Pair; // ino.class.CSubstitutionSet.27471.description type=javadoc /** - * @author J�rg B�uerle + * @author J�rg B�uerle * @version $Date: 2013/03/27 18:29:34 $ */ // ino.end @@ -71,7 +71,7 @@ public class CSubstitutionSet extends CVectorSet // ino.method.applyUnifier.27487.defdescription type=javadoc /** * Wendet den Unifier auf die rechten Seiten alle Substitutionen an. - *
Author: J�rg B�uerle + *
Author: J�rg B�uerle * @param unifier */ // ino.end diff --git a/src/de/dhbwstuttgart/typeinference/unify/CVectorSet.java b/src/de/dhbwstuttgart/typeinference/unify/CVectorSet.java index e126c557..96d45191 100755 --- a/src/de/dhbwstuttgart/typeinference/unify/CVectorSet.java +++ b/src/de/dhbwstuttgart/typeinference/unify/CVectorSet.java @@ -9,7 +9,7 @@ import de.dhbwstuttgart.typeinference.Menge; // ino.class.CMengeSet.27519.description type=javadoc /** - * @author J�rg B�uerle + * @author J�rg B�uerle * @version $Date: 2013/02/07 05:08:51 $ */ // ino.end @@ -85,9 +85,9 @@ public abstract class CVectorSet extends CSet // ino.end /** - * Fügt ein CMengeSet an! - * Es handelt sich um eine Vereinigung (es werden keine bereits vorhandenen Elemente übernommen) - * @param anotherSet Das hinzuzufügende CMengeSet (CSet wird ignoriert) + * Fügt ein CMengeSet an! + * Es handelt sich um eine Vereinigung (es werden keine bereits vorhandenen Elemente übernommen) + * @param anotherSet Das hinzuzufügende CMengeSet (CSet wird ignoriert) */ // ino.method.unite.27544.definition public void unite(CSet anotherSet) @@ -99,7 +99,7 @@ public abstract class CVectorSet extends CSet } CVectorSet MengeSet = (CVectorSet)anotherSet; - // Elemente der anderen Menge hinzuf�gen: + // Elemente der anderen Menge hinzuf�gen: Iterator it = MengeSet.getIterator(); while(it.hasNext()){ E elem = it.next(); diff --git a/src/de/dhbwstuttgart/typeinference/unify/FC_TTO.java b/src/de/dhbwstuttgart/typeinference/unify/FC_TTO.java index 9dc23f47..708959ae 100755 --- a/src/de/dhbwstuttgart/typeinference/unify/FC_TTO.java +++ b/src/de/dhbwstuttgart/typeinference/unify/FC_TTO.java @@ -11,8 +11,8 @@ import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; // ino.class.FC_TTO.28013.description type=javadoc /** - * Hilfsklasse f�r den Unifizierungsalgorithmus - * @author Martin Pl�micke + * Hilfsklasse f�r den Unifizierungsalgorithmus + * @author Martin Pl�micke * @version $Date: 2013/05/12 14:00:05 $ */ // ino.end diff --git a/src/de/dhbwstuttgart/typeinference/unify/Unify.java b/src/de/dhbwstuttgart/typeinference/unify/Unify.java index 37e1857e..d10f9e41 100755 --- a/src/de/dhbwstuttgart/typeinference/unify/Unify.java +++ b/src/de/dhbwstuttgart/typeinference/unify/Unify.java @@ -46,7 +46,7 @@ import de.dhbwstuttgart.typeinference.UndConstraint; // ino.class.Unify.28049.description type=javadoc /** * Implementierung des Unifizierungsalgorithmus - * @author Martin Pl�micke, Thomas Ott + * @author Martin Pl�micke, Thomas Ott * @version $Date: 2013/05/22 22:23:50 $ */ // ino.end @@ -116,7 +116,7 @@ public class Unify * Entweder alle Elemente in solved Form [A =. type, B =. type2, ...] * oder alle Elemente in der Form [A <. B, C <. D, ..., E in Typ A ...> werden keine ? extends-, ? super-Typen erzeugt + * Für den Argumenttype FunN<...> in Typ A ...> werden keine ? extends-, ? super-Typen erzeugt */ public static Menge> unify (Menge E, FC_TTO fc_tto) { @@ -140,7 +140,7 @@ public class Unify } else if(!(p.TA1 instanceof TypePlaceholder) && !(p.TA2 instanceof TypePlaceholder)) { - //Diese Paare können nicht mehr Unifiziert werden. fail. + //Diese Paare können nicht mehr Unifiziert werden. fail. inferencelog.debug("UNIFY FAIL:" + p.TA1 + " <. " + p.TA2 + " muesste mindestens einen TPH enthalten."); return new Menge>(); } @@ -152,8 +152,8 @@ public class Unify if(!Eq1.contains(p)) Eq2.add(p); } - /* Schritt 4, Teil 1: Einsammeln der Sets für das Kartesiche Produkt. - * Hier werden die Paare verglichen. Je nach Struktur können neue Paare erzeugt + /* Schritt 4, Teil 1: Einsammeln der Sets für das Kartesiche Produkt. + * Hier werden die Paare verglichen. Je nach Struktur können neue Paare erzeugt * werden, aus denen dann das kartesische Produkt gebildet wird.*/ Menge>> cartProduktSets = new Menge>>(); for(Pair p : Eq2) @@ -165,7 +165,7 @@ public class Unify p.TA2 = ((SuperWildcardType)p.TA2).get_SuperType(); //HIER GIBT ES EIN PROBLEM, WENN get_SuperType ein TPH LIEFERT PL 15-03-12 //Dann ist THP <. TPH in Eq2 anstatt in Eq1 - //Muesste mit folgendem if gelöst sein. PL 15-03-17 + //Muesste mit folgendem if gelöst sein. PL 15-03-17 if (p.TA2 instanceof TypePlaceholder) { Eq1.addElement(p); // Eq2.remove(p); @@ -216,7 +216,7 @@ public class Unify unifyErgs.add(unifyErgsElement.firstElement()); } } -// Nach dem Unifizieren wird das Ergebnis überprüft, und evtl. durch die FC entstandene TPHs werden gelöscht. +// Nach dem Unifizieren wird das Ergebnis überprüft, und evtl. durch die FC entstandene TPHs werden gelöscht. if((p_fc.TA2 instanceof RefType && !unifyErgs.isEmpty()) || p_fc.TA2.equals(p_TA2)) //Bedingung fuer Reflexifitaet BRAURHT MAN VERMUTLIRH NIRHT PL 07-08-05 { @@ -315,7 +315,7 @@ public class Unify } else if(p.OperatorSmaller() && p.TA2 instanceof GenericTypeVar) { - //Paar unverändert lassen, wenn eine GenericTypeVar ist + //Paar unverändert lassen, wenn eine GenericTypeVar ist Menge> setofsetofpairs = new Menge>(); Menge vTmp = new Menge(); vTmp.add(p); @@ -357,7 +357,7 @@ public class Unify unifyErgs.add(unifyErgsElement.firstElement()); } } - //Nach dem Unifizieren wird das Ergebnis überprüft, und evtl. durch die FC entstandene TPHs werden gelöscht. + //Nach dem Unifizieren wird das Ergebnis überprüft, und evtl. durch die FC entstandene TPHs werden gelöscht. if((p_fc.TA2 instanceof RefType && !unifyErgs.isEmpty()) || p_fc.TA2.equals(p_TA2)) //Bedingung fuer Reflexifitaet BRAURHT MAN VERMUTLIRH NIRHT PL 07-08-05 { @@ -532,7 +532,7 @@ public class Unify unifyErgs.add(unifyErgsElement.firstElement()); } } -// Nach dem Unifizieren wird das Ergebnis überprüft, und evtl. durch die FC entstandene TPHs werden gelöscht. +// Nach dem Unifizieren wird das Ergebnis überprüft, und evtl. durch die FC entstandene TPHs werden gelöscht. if((p_fc.TA2 instanceof RefType && !unifyErgs.isEmpty()) || p_fc.TA2.equals(p_TA1)) //Bedingung fuer Reflexifitaet BRAURHT MAN VERMUTLIRH NIRHT PL 07-08-05 { @@ -631,7 +631,7 @@ public class Unify } } //Schritt 4, Teil 2: Kartesisches Produkt bilden. - //TODO: Vor der Bildung des Karthesischen Produkts unmögliche Kombinationen ausfiltern + //TODO: Vor der Bildung des Karthesischen Produkts unmögliche Kombinationen ausfiltern //cartProduktSets kontrollieren: ConstraintsSet cSet = new ConstraintsSet(); for (Menge> vecvecpair : cartProduktSets){ @@ -688,7 +688,7 @@ public class Unify } //Schritt 5: Einsetzen der Subst Regel - //Hier werden die TPHs substituiert, und dann nach geänderten und nicht geänderten Sets sortiert. + //Hier werden die TPHs substituiert, und dann nach geänderten und nicht geänderten Sets sortiert. Menge> changedSets = new Menge>(); Menge> notChangedSets = new Menge>(); for(Menge vecpair : bigCartProductErg) @@ -742,29 +742,29 @@ public class Unify } } - //Eq2Set ist das eigentliche Ergebnis, dass zurückgegeben wird. + //Eq2Set ist das eigentliche Ergebnis, dass zurückgegeben wird. Menge> Eq2Set = new Menge>(); - //Schritt 6A: Beginnen mit Schritt 1 bei den geänderten. + //Schritt 6A: Beginnen mit Schritt 1 bei den geänderten. for(Menge vecpair : changedSets) { Menge> unifyErgs = unify(vecpair,fc_tto); - //Die Ergebnissvektoren sind schon im Schritt 7 von dem Rekursiven Aufruf geprüft worden. Sie können direkt eingefügt werden. + //Die Ergebnissvektoren sind schon im Schritt 7 von dem Rekursiven Aufruf geprüft worden. Sie können direkt eingefügt werden. Eq2Set.addAll(unifyErgs); } - //Schritt 6B Einfügen der nicht geänderten. + //Schritt 6B Einfügen der nicht geänderten. //Schritt 7: Aussortieren der falschen Sets /* * Durch die Rekursion in Schritt 6A sind die Ergebnisse, welche in 6A dazukommen auf jeden Fall korrekt. - * Es müssen nur die Ergebnisse aus 6B geprüft werden. + * Es müssen nur die Ergebnisse aus 6B geprüft werden. */ for(Menge vecpair : notChangedSets) { - //Überprüfen ob Menge in SolvedForm ist. + //Ãœberprüfen ob Menge in SolvedForm ist. if(hasSolvedForm(vecpair)) //PL 13-05-22 hasSolvedForm angepasst { - //Überprüfung auf FreshTypeVars in den Typen + //Ãœberprüfung auf FreshTypeVars in den Typen boolean foundFresh = false; for(Pair p : vecpair) { @@ -782,14 +782,14 @@ public class Unify } } - //Ergebnis zurückgeben. + //Ergebnis zurückgeben. return Eq2Set; } /** * PL 2014-10-25 * schnitt1 checkt ob die Typeplaceholders aus in den Elemeneten aus vars enthalten sind - * Rückgabe ist die Menge der Indizies von vars der Schnittmengen mit var nicht leer sind. + * Rückgabe ist die Menge der Indizies von vars der Schnittmengen mit var nicht leer sind. * @param var * @param vars * @param indexe @@ -840,10 +840,10 @@ public class Unify * Beispiel: unifyERgs = [[a = Integer, b = Number ]], test = Menge
* In diesm fall wird b = Number aus dem Menge entfernt. * - * Durch das Entfernen entstehen evtl. Identische Mengeen, diese werden auch gelöscht. + * Durch das Entfernen entstehen evtl. Identische Mengeen, diese werden auch gelöscht. * - * @param unifyErgs - Ergebnisse des Unify, die geprüft werden sollen. - * @param test - RefType gegen den geprüft werden soll. + * @param unifyErgs - Ergebnisse des Unify, die geprüft werden sollen. + * @param test - RefType gegen den geprüft werden soll. */ private static void testUnifyErg(Menge> unifyErgs, RefType test) { @@ -857,7 +857,7 @@ public class Unify vec--; } } - //Gleiche Mengeen löschen + //Gleiche Mengeen löschen for(int i = 0; i < unifyErgs.size(); i++) { Menge p1 = unifyErgs.elementAt(i); @@ -886,13 +886,13 @@ public class Unify } /** - * Diese Methode generiert einen Menge> wobei immer der übergebene TA1 vorne steht, und jeder Typ aus otherPairTypes hinten. + * Diese Methode generiert einen Menge> wobei immer der übergebene TA1 vorne steht, und jeder Typ aus otherPairTypes hinten. * Beispiel: otherPairTypes = [Integer, Number, Menge], TA1 = TPH a. * return: [[TPH a = Integer],[TPH a = Number],[TPH a = Menge]] * * @param TA1 - Der Typ der immer vorne steht * @param otherPairTypes - Die anderen Typen - * @return - Ein Menge> der alle Paare enthält. + * @return - Ein Menge> der alle Paare enthält. */ private static Menge> generateSetOfSetOfPair(Type TA1, Menge otherPairTypes) { @@ -993,7 +993,7 @@ public class Unify //Menge wird geclont, Elemente nicht //Menge Mub = (Menge)ub.clone(); - //Elemente die nicht kleinste obere Schranken sind, werden gel�scht + //Elemente die nicht kleinste obere Schranken sind, werden gel�scht //FUNKTIONIERT NICHT. SIEHE iftest.java PL 08-08-13 for (int i = 0; i < ub.size(); i++) { for (int j = 0; j < ub.size(); j++) { @@ -1049,7 +1049,7 @@ throws MatchException // ino.method.match.28064.body { //PL 05-01-22 - //gibt eine Substitution zur�ck, die den Variablen aus FCtype + //gibt eine Substitution zur�ck, die den Variablen aus FCtype //die Typterme aus tomatch zu ordnet. Es wird davon ausgegangen, dass //FCtype gegen tomatch gematcht werden kann. if (FCtype.getTypeName().equals(tomatch.getTypeName())) { @@ -1093,7 +1093,7 @@ throws MatchException // ino.method.sub_unify.28067.body { //PL 05-01-21 umbenannt in sub_unify - //Luar boolean useSubst hinzugefügt, um bei bedarf zu Steuern ob Subst Regel angewendet wird oder nicht. + //Luar boolean useSubst hinzugefügt, um bei bedarf zu Steuern ob Subst Regel angewendet wird oder nicht. // otth: Unifikation - Versuch 1 :-) //Menge FC = fc_tto.getFC(); @@ -1118,7 +1118,7 @@ throws MatchException inferencelog.debug("Ausgewaehltes Paar = " + P.toString() + ""); inferencelog.debug( "--------------------------------------------------"); - // Bei allen Erase erfolgt keine Kopie nach H, dadurch wird das Pair gelöscht. + // Bei allen Erase erfolgt keine Kopie nach H, dadurch wird das Pair gelöscht. //ERASE3 if( P.isEqual() && P.OperatorEqual() ) { @@ -1240,13 +1240,13 @@ throws MatchException } catch( SCException Ex ) { - inferencelog.debug("---- Unifikation nicht m�glich: Permutation fehlgeschlagen!"); + inferencelog.debug("---- Unifikation nicht m�glich: Permutation fehlgeschlagen!"); break; } } else { - inferencelog.info("---- Unifikation nicht m�glich: Anzahl der Parameter verschieden!"); + inferencelog.info("---- Unifikation nicht m�glich: Anzahl der Parameter verschieden!"); break; } } @@ -1297,13 +1297,13 @@ throws MatchException } catch( SCException Ex ) { - inferencelog.debug("---- Unifikation nicht m�glich: Permutation fehlgeschlagen!"); + inferencelog.debug("---- Unifikation nicht m�glich: Permutation fehlgeschlagen!"); break; } } else { - inferencelog.info("---- Unifikation nicht m�glich: Anzahl der Parameter verschieden!"); + inferencelog.info("---- Unifikation nicht m�glich: Anzahl der Parameter verschieden!"); break; } } @@ -1374,7 +1374,7 @@ throws MatchException RefType TA1 = null; RefType TA2 = null; - //Hier werden die RefTypes gefüllt. + //Hier werden die RefTypes gefüllt. if(P.TA1 instanceof RefType && P.TA2 instanceof RefType) { TA1 = (RefType)P.TA1; @@ -1396,7 +1396,7 @@ throws MatchException } catch( SCException Ex ) { - inferencelog.error("---- Unifikation nicht m�glich: Permutation fehlgeschlagen!"); + inferencelog.error("---- Unifikation nicht m�glich: Permutation fehlgeschlagen!"); break; } } @@ -1429,7 +1429,7 @@ throws MatchException } catch( SCException Ex ) { - inferencelog.debug("---- Unifikation nicht m�glich: Permutation fehlgeschlagen!"); + inferencelog.debug("---- Unifikation nicht m�glich: Permutation fehlgeschlagen!"); break; } } @@ -1449,7 +1449,7 @@ throws MatchException } catch( SCException Ex ) { - inferencelog.error("---- Unifikation nicht m�glich: Permutation fehlgeschlagen!"); + inferencelog.error("---- Unifikation nicht m�glich: Permutation fehlgeschlagen!"); break; } } @@ -1562,7 +1562,7 @@ throws MatchException } - // Subst --> noch zu pr�fen + // Subst --> noch zu pr�fen if( P.TA1 instanceof TypePlaceholder && P.OperatorEqual() && useSubst) //&& P.TA2 instanceof RefType ) //PL 05-02-09 P.TA@ duerfen auch TypePlaceholder sein /* BEISPIEL: @@ -1716,7 +1716,7 @@ throws MatchException /** * Implementiert die reduceEq Regel des sub_unify - * Da in reduce2 unnötigerweise pi verwendet wird (siehe Kommentar in reduce2), kann reduceEq einfach an reduce2 deligieren. + * Da in reduce2 unnötigerweise pi verwendet wird (siehe Kommentar in reduce2), kann reduceEq einfach an reduce2 deligieren. */ private static void reduceEq(Menge H, RefType TA1, RefType TA2, Menge TTO) throws SCException { @@ -1738,11 +1738,11 @@ throws MatchException inferencelog.debug("---- Parameteranzahl gleich"); inferencelog.debug("---- Reduce !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (" + L1.size() + ") neue(s) Paar(e)"); - // hier mu� die PERMUTATION erfolgen + // hier mu� die PERMUTATION erfolgen inferencelog.debug("---- PAARBILDUNG "); for( int k = 0; k < L1.size(); k++ ) { - // pi eig. bei reduce2 �berfl�ssig, schadet aber hoff. auch nicht :-) + // pi eig. bei reduce2 �berfl�ssig, schadet aber hoff. auch nicht :-) //luar 19-04-2007 durch das pi kann reduce2 auch als reduceEq verwendet werden. Wenn das pi durch k ersetzt wird, muss reduceEq entsprechend ausprogrammiert werden. Pair P2 = new Pair( L1.elementAt( pi(k, TA1.getTypeName(), TA2.getTypeName(), TTO ) ), L2.elementAt(k), PairOperator.Equal ); inferencelog.debug("---- Paar1: (" + (L1.elementAt( pi(k, TA1.getTypeName(), TA2.getTypeName(), TTO ) )).getName() + ", " + (L2.elementAt(k)).getName() + P2.OperatorEqual() + ")"); @@ -2041,7 +2041,7 @@ throws MatchException //LIEGT //erlegigt 06-04-28 Menge res = sub_unify(subunifypair, fc_tto); - if (hasSolvedForm(res)) { //PL 13-05-22: hasSolvedForm geaendert, es nicht geklärt, ob es funktioniert. + if (hasSolvedForm(res)) { //PL 13-05-22: hasSolvedForm geaendert, es nicht geklärt, ob es funktioniert. inferencelog.debug("HasSolvedForm: "); printMenge("RES_SMALLER", res, 6); ht = MengePair2SubstHashtableMengePair(res); @@ -2222,7 +2222,7 @@ throws MatchException { // otth: Funktion, die prueft, ob Paar( R1, R2 ) in FC liegt, // bzw. deren rechten Seiten, ohne die TypePlaceholder-Variablen zu beachten - // z.B. Menge w�re hier gleich wie Menge + // z.B. Menge w�re hier gleich wie Menge // z.B. FC = { ( AA <=* CC< DD > ) ,...} // R1 = AA @@ -2270,7 +2270,7 @@ throws MatchException { // otth: Funktion, die prueft, ob Paar( R1, \sigma(R2) ) in FC liegt, // bzw. deren rechten Seiten, ohne die TypePlaceholders zu beachten - // z.B. Menge w�re hier gleich wie Menge + // z.B. Menge w�re hier gleich wie Menge // z.B. FC = { ( AA <=* CC< DD > ) ,...} // R1 = AA @@ -2308,7 +2308,7 @@ throws MatchException Menge vp = sub_unify(R2vec, fc_tto); printMenge("VP", vp, 6); - if ( hasSolvedForm(vp) ) //PL 13-05-22: hasSolvedForm geaendert, es nicht geklärt, ob es funktioniert. + if ( hasSolvedForm(vp) ) //PL 13-05-22: hasSolvedForm geaendert, es nicht geklärt, ob es funktioniert. //if( isRXSimilarRY( RFC, R2 ) ) { inferencelog.debug("SIMILAR2"); @@ -2405,7 +2405,7 @@ throws MatchException if (o instanceof RefType) {//PL 05-02-09 eingefuegt siehe Methodenkopf if( bMitVorbedingung && isTVinRefType( a, (RefType)o ) ) { - inferencelog.debug(" Subst nicht m�glich, da TV " + a.getName() + " in RefType " + o.getName()); + inferencelog.debug(" Subst nicht m�glich, da TV " + a.getName() + " in RefType " + o.getName()); return false; } } @@ -2415,7 +2415,7 @@ throws MatchException { // Parameterliste durchgehen Menge vTemp = ((RefType)T).get_ParaList(); - Boolean ret = true; //EINGEFUEGT PL 14-01-16: Return darf erst am Ende zurückgegeben werden und nicht in den ifs + Boolean ret = true; //EINGEFUEGT PL 14-01-16: Return darf erst am Ende zurückgegeben werden und nicht in den ifs //sonst werden nicht alle Elemente der Forschleife durchlaufen for( int i = 0; i < vTemp.size(); i++ ) { @@ -2461,7 +2461,7 @@ throws MatchException return true; } } - //Wildcard ergänzt PL 14-12-05 + //Wildcard ergänzt PL 14-12-05 if ( T instanceof ExtendsWildcardType ) { Type Temp = ((ExtendsWildcardType) T).get_ExtendsType(); @@ -2476,7 +2476,7 @@ throws MatchException } } } - //Wildcard ergänzt PL 14-12-05 + //Wildcard ergänzt PL 14-12-05 if ( T instanceof SuperWildcardType ) { Type Temp = ((SuperWildcardType) T).get_SuperType(); @@ -2557,7 +2557,7 @@ throws MatchException { - // otth: Funktion pr�ft, ob Klasse 'Basis' von Klasse 'Mutter' direkt oder indirekt abgeleitet ist + // otth: Funktion pr�ft, ob Klasse 'Basis' von Klasse 'Mutter' direkt oder indirekt abgeleitet ist // Basisklasse suchen Menge tto = fc_tto.getTTO(); @@ -2581,9 +2581,9 @@ throws MatchException } /* - * Hier wird überprüft ob in der Paraliste ein anderes Element als ein GTV drinne ist. - * Sollte ein anderes Element gefunden werden ist Reduce nicht möglich. - * Beispiel: Matrix <. Menge> ist nur durch adapt möglich. + * Hier wird überprüft ob in der Paraliste ein anderes Element als ein GTV drinne ist. + * Sollte ein anderes Element gefunden werden ist Reduce nicht möglich. + * Beispiel: Matrix <. Menge> ist nur durch adapt möglich. */ for(Type t : s) { @@ -2717,7 +2717,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: if( n >= vD.size() ) throw F; - // Permuationswert f�r 'n' berechnen + // Permuationswert f�r 'n' berechnen Type TV = (Type)vD.elementAt(n); int nPos = -1; @@ -2749,12 +2749,12 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: // ino.method.printMengeUnifier.28121.body { //PL 05-01-21 - //Ruft f�r eine Menge von Unifikatoren die Methode + //Ruft f�r eine Menge von Unifikatoren die Methode //printMenge auf for (int i = 0; i < Uni.size(); i++) { inferencelog.debug((i+1) + ". Unifier"); printMenge(strMenge, Uni.elementAt(i), nDebug); - if( hasSolvedForm( Uni.elementAt(i) ) ) { //PL 13-05-22: hasSolvedForm geaendert, es nicht geklärt, ob es funktioniert. + if( hasSolvedForm( Uni.elementAt(i) ) ) { //PL 13-05-22: hasSolvedForm geaendert, es nicht geklärt, ob es funktioniert. inferencelog.debug((i+1) + ". Unifier ist in 'Solved form'!\n"); } else { @@ -2781,7 +2781,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: } for( int tt = 0; tt < E.size(); tt++ ) { - //luar 13-03-07 If Else Block gelöscht, da sinnlos. + //luar 13-03-07 If Else Block gelöscht, da sinnlos. if( tt > 0 ) strTemp = strTemp + ",\n" + E.elementAt(tt).toString(); else @@ -2874,7 +2874,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: /** * Implementiert die CaptureConversion. Wendet diese auf jeden Typ im Menge TVec an. - * Rückgabe ist ein ErgebnisMenge + * Rückgabe ist ein ErgebnisMenge */ private static Menge CaptureConversion(Menge TVec, FC_TTO fc_tto) { @@ -2882,7 +2882,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: for(ObjectType t : TVec) { ObjectType ccT = (ObjectType)CaptureConversion(t,fc_tto); - //CaptureConversion kann nur ObjectTypes zurückliefern, laesst sich aber nicht zurziehen. + //CaptureConversion kann nur ObjectTypes zurückliefern, laesst sich aber nicht zurziehen. if(ccT != null) retVec.add(ccT); } @@ -2892,7 +2892,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: /** * Erzeugt die CaptureConversion von einem Typ. * - * @param T - Übergebener Typ, von welchem die CaptureConversion gemacht werden soll. + * @param T - Ãœbergebener Typ, von welchem die CaptureConversion gemacht werden soll. * @param fc_tto - Hilfsklasse. * @return - CC(T) */ @@ -2927,7 +2927,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: if(t instanceof WildcardType) { FreshWildcardType fwcT = ((WildcardType)t).GetFreshWildcardType(); - //Wenn beim Original Typ an der Stelle eine BoundedGenericTypeVar ist werden die Bounds zu der Wildcard hinzugefügt. + //Wenn beim Original Typ an der Stelle eine BoundedGenericTypeVar ist werden die Bounds zu der Wildcard hinzugefügt. if(cl.get_ParaList().elementAt(i) instanceof BoundedGenericTypeVar) { BoundedGenericTypeVar bgv = (BoundedGenericTypeVar)cl.get_ParaList().elementAt(i); @@ -2941,7 +2941,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: } refT.set_ParaList(ccTypes); } - //Wenn eine CaptureConversion durchgeführt wurde den Typ zurückgeben. + //Wenn eine CaptureConversion durchgeführt wurde den Typ zurückgeben. if(ccDone) return refT; else @@ -2958,13 +2958,13 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: //Von hier an Greater implementierung 28-03-07 /** - * Der Komplette Ablauf von greater und was die einzelnen Teilschritte machen kann anhand von Aktivitätsdiagrammen - * im Inovator Projekt, oder in der Studienarbeit Arne Lüdtke, 2007 nachgelesen werden. + * Der Komplette Ablauf von greater und was die einzelnen Teilschritte machen kann anhand von Aktivitätsdiagrammen + * im Inovator Projekt, oder in der Studienarbeit Arne Lüdtke, 2007 nachgelesen werden. */ /** - * Erzeugt alle Typen die greater sind als T. Gibt diese zurück. - * Für den Argumenttype FunN<...> in Typ A ...> werden keine ? extends-, ? super-Typen erzeugt + * Erzeugt alle Typen die greater sind als T. Gibt diese zurück. + * Für den Argumenttype FunN<...> in Typ A ...> werden keine ? extends-, ? super-Typen erzeugt */ private static Menge greater(ObjectType T, FC_TTO fc_tto) //an die Aenderungen im Skript anpassen 07-11-03 @@ -2989,22 +2989,22 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: //greater1 Erzeugen Menge greater1Erg = greater1(T,fc_tto); - //Reflexivität, deshalb T hinzufügen. + //Reflexivität, deshalb T hinzufügen. if(!greater1Erg.contains(T)) greater1Erg.add(T); - //Falls in greater1Erg Typen doppelt vorhanden sind werden diese nicht in retVec übernommen. + //Falls in greater1Erg Typen doppelt vorhanden sind werden diese nicht in retVec übernommen. for(ObjectType t : greater1Erg) if(!retVec.contains(t)) retVec.add(t); - //Ergebnis von greater1 an greater2 durchreichen, ERgebnisse in retVec einfügen + //Ergebnis von greater1 an greater2 durchreichen, ERgebnisse in retVec einfügen Menge greater2Erg = greater2(greater1Erg,fc_tto); for(ObjectType t : greater2Erg) if(!retVec.contains(t)) retVec.add(t); - //Ergebnis von greater2 an greater3 durchreichen, ERgebnisse in retVec einfügen + //Ergebnis von greater2 an greater3 durchreichen, ERgebnisse in retVec einfügen Menge greater3Erg = greater3(greater2Erg,fc_tto); for(ObjectType t : greater3Erg) if(!retVec.contains(t)) @@ -3015,7 +3015,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: /** * greater1 Schritt von greater. - * Für den Argumenttype FunN<...> in Typ A ...> werden keine ? extends-, ? super-Typen erzeugt + * Für den Argumenttype FunN<...> in Typ A ...> werden keine ? extends-, ? super-Typen erzeugt */ private static Menge greater1(ObjectType T, FC_TTO fc_tto) { @@ -3053,8 +3053,8 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: } /** - * Überladung der Funktion cartProductType, damit der Programmierer beim ersten Aufruf nicht den 2. Parameter - * welcher für die rekursion erforderlich ist mit übergeben muss. + * Ãœberladung der Funktion cartProductType, damit der Programmierer beim ersten Aufruf nicht den 2. Parameter + * welcher für die rekursion erforderlich ist mit übergeben muss. */ private static Menge> cartProductType (Menge> vec) { @@ -3063,7 +3063,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: /** * Erzeugt das Kartesische Product von mehreren Mengeen von Typen. - * Für den Startaufruf ist der index = 0. Danach ruft sich cartProductType rekursiv auf. + * Für den Startaufruf ist der index = 0. Danach ruft sich cartProductType rekursiv auf. */ private static Menge> cartProductType (Menge> vec, int index) { @@ -3098,8 +3098,8 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: } /** - * Überladung der Funktion cartProductPair, damit der Programmierer beim ersten Aufruf nicht den 2. Parameter - * welcher für die rekursion erforderlich ist mit übergeben muss. + * Ãœberladung der Funktion cartProductPair, damit der Programmierer beim ersten Aufruf nicht den 2. Parameter + * welcher für die rekursion erforderlich ist mit übergeben muss. */ private static Menge> cartProductPair (Menge> vec) { @@ -3108,7 +3108,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: /** * Erzeugt das Kartesische Product von mehreren Mengeen von Paaren. - * Für den Startaufruf ist der index = 0. Danach ruft sich cartProductPair rekursiv auf. + * Für den Startaufruf ist der index = 0. Danach ruft sich cartProductPair rekursiv auf. */ private static Menge> cartProductPair (Menge> vec, int index) { @@ -3168,7 +3168,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: /** * greaterArg Schritt von greater - * Für den Argumenttype FunN<...> werden keine ? extends-, ? super-Typen erzeugt + * Für den Argumenttype FunN<...> werden keine ? extends-, ? super-Typen erzeugt */ private static Menge greaterArg(Type T, FC_TTO fc_tto) { @@ -3224,7 +3224,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: return new Menge(); */ - //Diese Abfrage sorgt für grArg(a) = {a} //Luar 07-07-31 + //Diese Abfrage sorgt für grArg(a) = {a} //Luar 07-07-31 else if(T instanceof TypePlaceholder) retVec.add(T); //Diese Abfrage verhindert, dass bei FunN Wildcard-Typen generiert werden //PL 13-05-22 @@ -3253,7 +3253,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: Menge retVec = new Menge(); /* * luar 02-05-07: Beschreibung der Funktion: - * Für Jeden Typ aus greater1 durch die FC laufen, und auf der Linken seite einen Match versuchen. + * Für Jeden Typ aus greater1 durch die FC laufen, und auf der Linken seite einen Match versuchen. * Wenn das Funktioniert, dann ist der Typ auf der rechten Seite auch greater. * */ Hashtable ht = new Hashtable(); @@ -3278,7 +3278,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: RefType TA2neu = ((RefType)p.TA2).clone(); SubstHashtableGeneric(TA2neu,ht); - //TA2neu ist greater als T. Einfügen in retVec + //TA2neu ist greater als T. Einfügen in retVec if(!retVec.contains(TA2neu)) retVec.add(TA2neu); } @@ -3308,12 +3308,12 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: //Von hier an Smaller implementierung luar 28-03-07 /** - * Der Komplette Ablauf von smaller und was die einzelnen Teilschritte machen kann anhand von Aktivitätsdiagrammen - * im Inovator Projekt, oder in der Studienarbeit Arne Lüdtke, 2007 nachgelesen werden. + * Der Komplette Ablauf von smaller und was die einzelnen Teilschritte machen kann anhand von Aktivitätsdiagrammen + * im Inovator Projekt, oder in der Studienarbeit Arne Lüdtke, 2007 nachgelesen werden. */ /** - * Erzeugt alle Typen die smaller sind als T. Gibt diese zurück. + * Erzeugt alle Typen die smaller sind als T. Gibt diese zurück. */ private static Menge smaller(ObjectType T, FC_TTO fc_tto) //an die Aenderungen im Skript anpassen 07-11-03 @@ -3349,18 +3349,18 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: if(!smaller12Erg.contains(T)) smaller12Erg.add(T); - //Ergebnise in retVec einfügen. Doppelte werden gelöscht. + //Ergebnise in retVec einfügen. Doppelte werden gelöscht. for(ObjectType t : smaller12Erg) if(!retVec.contains(t)) retVec.add(t); - //Ergebnis von smaller1 und smaller2 an smaller3 weitergeben, Ergebnisse einfügen. + //Ergebnis von smaller1 und smaller2 an smaller3 weitergeben, Ergebnisse einfügen. Menge smaller3Erg = smaller3(smaller12Erg,fc_tto); for(ObjectType t : smaller3Erg) if(!retVec.contains(t)) retVec.add(t); - //Ergebnisse von smaller3 an smaller4 weitergeben, Ergebnisse einfügen. + //Ergebnisse von smaller3 an smaller4 weitergeben, Ergebnisse einfügen. Menge smaller4Erg = smaller4(smaller3Erg); for(ObjectType t : smaller4Erg) if(!retVec.contains(t)) @@ -3409,7 +3409,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: Menge retVec = new Menge(); if(T instanceof ExtendsWildcardType) { - //Für eine ExtendsWildcard rekursiv smaller0 aufrufen, und neue Wildcards erzeugen. + //Für eine ExtendsWildcard rekursiv smaller0 aufrufen, und neue Wildcards erzeugen. ExtendsWildcardType exT = (ExtendsWildcardType)T; Menge smallerTypes = smaller0(exT.get_ExtendsType(),fc_tto); for(ObjectType t : smallerTypes) @@ -3420,7 +3420,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: } else if(T instanceof SuperWildcardType) { - //Für eine SuperWildcard rekursiv greater0 aufrufen, unr neue Wildcards erzeugen. + //Für eine SuperWildcard rekursiv greater0 aufrufen, unr neue Wildcards erzeugen. SuperWildcardType suT = (SuperWildcardType)T; Menge greaterTypes = greater0(suT.get_SuperType(),fc_tto); for(ObjectType t : greaterTypes) @@ -3459,7 +3459,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: Menge retVec = new Menge(); /* * luar 02-05-07: Beschreibung der Funktion: - * Für Jeden Typ aus Smaller12 durch die FC laufen, und auf der Rechten seite einen Match versuchen. + * Für Jeden Typ aus Smaller12 durch die FC laufen, und auf der Rechten seite einen Match versuchen. * Wenn das Funktioniert, dann ist der Typ auf der linken Seite auch smaller. * */ Hashtable ht = new Hashtable(); @@ -3482,7 +3482,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: //Macht hat funktioniert. In Linker Seite Typen substituieren RefType TA1neu = ((RefType)p.TA1).clone(); SubstHashtableGeneric(TA1neu,ht); - //TA1neu ist smaller als T. Einfügen in retVec + //TA1neu ist smaller als T. Einfügen in retVec if(!retVec.contains(TA1neu)) retVec.add(TA1neu); } @@ -3532,12 +3532,12 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: } /** - * Gibt True zurück, wenn T eine FreshWildcard ist, oder im Falle eines RefTypes oder WildcardTypes eine FreshWildcard enthält. + * Gibt True zurück, wenn T eine FreshWildcard ist, oder im Falle eines RefTypes oder WildcardTypes eine FreshWildcard enthält. */ private static boolean DelFreshWildcardTypeVar(Type T) { //luar 29-05-2007 - //Überprüft rekursiv ob in dem RefType ein FreshWildcardType enthalten ist. + //Ãœberprüft rekursiv ob in dem RefType ein FreshWildcardType enthalten ist. if(T instanceof RefType) { RefType refT = (RefType)T; @@ -3546,7 +3546,7 @@ tempKlasse.get_Superclass_Name() ); System.out.println( "P. S.: if(DelFreshWildcardTypeVar(t)) return true; } - //Im Falle einer Wildcard, Typen aus der WC rausnehmen und diesen rekursiv prüfen. + //Im Falle einer Wildcard, Typen aus der WC rausnehmen und diesen rekursiv prüfen. if(T instanceof ExtendsWildcardType) return DelFreshWildcardTypeVar(((ExtendsWildcardType)T).get_ExtendsType());