modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/model/Node.java
Fehler in der Transitivaet der Finit Closure gefixt
modified: ../../../java/bytecode/InheritTest.java
modified: ../../bytecode/javFiles/AA.jav
modified: ../../bytecode/javFiles/CC.jav
modified: ../../bytecode/javFiles/Inherit.jav
Noch Probl;em in der Reflections
modified: ../src/main/java/de/dhbwstuttgart/typeinference/constraints/Constraint.java
modified: ../src/test/java/bytecode/InheritTest.java
new file: ../src/test/resources/bytecode/javFiles/AA.jav
new file: ../src/test/resources/bytecode/javFiles/BB.jav
new file: ../src/test/resources/bytecode/javFiles/CC.jav
new file: ../src/test/resources/bytecode/javFiles/DD.jav
modified: ../src/test/resources/bytecode/javFiles/Inherit.jav
Inherit funktioniert noch nicht ganz
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/RuleSet.java
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Call-graph weiter umgesetzt, aber noch Fehler in MatrixOP
new file: ../../../java/bytecode/mathStrucMatrixOPTest.java.txt
new file: ../../../java/bytecode/mathStrucVectorAddTest.java.txt
new file: ../../../java/packages/mathStrucMatrixOPTest.java.txt
new file: ../../AllgemeinTest/FCTest1.jav
new file: ../../AllgemeinTest/FCTest2.jav
new file: ../../AllgemeinTest/FCTest3.jav
new file: ../../AllgemeinTest/GenTest.jav
new file: ../../AllgemeinTest/Generics.jav
new file: ../../AllgemeinTest/OverloadingMain.jav
new file: ../../AllgemeinTest/Overloading_Generics.jav
new file: ../../AllgemeinTest/OverrideMain.jav
new file: ../../AllgemeinTest/OverrideMainRet.jav
new file: ../../AllgemeinTest/Pair.java
modified: src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
wenn nicht wildcardable dann receiver ? extends geloescht
modified: src/main/java/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
kleiner Fehler in compare
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
Das fehlerveruraschende Paar wird auch zu abhSubst hingefuegt.
modified: src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Reihenfolge geaendert, so dass bei Variance 1 (x <. theta) vorne und bei Variance -1 (theta <. x) vorne
modified: ../src/main/java/de/dhbwstuttgart/typeinference/unify/RuleSet.java
modified: ../src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified: ../src/main/java/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
noch Fehler bei mathStruc<Integer> und Matrix laeuft sehr lange vll. terminiert es nicht.
Typen der Methoden der Oder-Constraiunts benutzen wieder rueckgaenig gemacht
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
wieder alle grArg im a <. theta' benutzen
modified: ../../bytecode/javFiles/MatrixOP.jav
Nachtraegliches Einfuegen von Variance in OderConstraints auskommentiert.
modified: src/main/java/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java
Variance im konvertieren eingefuegt
modified: src/main/java/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java
Variace eingefuegt
modified: src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
In OderConstraints Variance bei der Erstellung eingefuegt
Variance aller Argumente in Oderconstraints auf 1 gesetzt muss nochmals ueberarbeitet werden
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
Returntypen von Operatoren sind \doteq gestezt
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Bei Variance = 2 parallel abgearbeitet geloescht, dass nicht nochmals bearbeitet werden.
Bug "." wird in replaceAll nicht ersetzt, deshalb "/" durch "." und nicht "." durch "/" ersetzt.
modified: ../../../java/packages/OLTest.java
modified: ../../../java/packages/mathStrucVectorTest.java
renamed: de/test/OL.jav -> OL.jav
renamed: de/test/OLMain.jav -> OLMain.jav
OL ins default-Package verschoben
new file: ../../resources/javFiles/packageTest/de/test/mathStruc.jav
new file: ../../resources/javFiles/packageTest/de/test/mathStrucVector.jav
new file: ../../resources/javFiles/packageTest/de/test/vectorAdd.jav
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Threadsteuerung veranendert, so dass möglichst veile Threads gleichzeitig laufen.
Müsste noch verbessert werden können.
log-File-Ausgabe etwas ergaenzt
modified: src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java
Fehler korrigiert, dass alle Fieldinitializer bei mehreren Klassen additiv hinzugefuegt werden
modified: src/main/java/de/dhbwstuttgart/syntaxtree/statement/This.java
toString veranedert
modified: src/test/resources/bytecode/javFiles/mathStruc.jav
leichte Korrektur
new file: src/test/java/bytecode/mathStrucIntegerTest.java
new file: src/test/resources/bytecode/javFiles/mathStrucInteger.jav
mathStruc auf Integer angewandt
new file: src/test/resources/bytecode/javFiles/mathStrucMatrixOP.jav
mathStruc auf MatrixOP angewandt, laeuft noch nicht durch, des halb Test noch nicht eingecheckt
modified: src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
log-File in anderen Pfad
modified: src/main/java/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
substitutions gekapselt
Damit kommen immer die gleichen Constraints raus. Diese werden ohnehin in der Bytecodegenerierung
nochmals ausgewertet.
modified: ../../../../main/java/de/dhbwstuttgart/bytecode/TPHExtractor.java
Zugriff auf Constraints ueber ResultSet eingefuehrt
modified: ../../../../main/java/de/dhbwstuttgart/bytecode/signature/Signature.java
Zugriff auf Constraints ueber ResultSet eingefuehrt
modified: ../../../../main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/result/GenericInsertPair.java
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/result/PairTPHequalRefTypeOrWildcardType.java
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/result/PairTPHsmallerTPH.java
toString veraendert
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/result/ResultSet.java
Attribut genIns eingefuehrt, indem alle GenericInsertPairs gespeichert werden, die Form (TPH a <. TPH b)
im Attribut results haben
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified: ../../bytecode/javFiles/Id.jav
modified: ../../bytecode/javFiles/MatrixOP.jav
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/model/ReferenceType.java
Konstruktur fuer ReferenceType mit zwei Argumenten versehen, um Generice unterscheiden zu können.
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/model/ReferenceType.java
Generische Typvariablen im Unify durch Tag im ReferenceType eingefuehrt
========================================
UnifyResultListener muss übergeben werden, da sonst Ergebnisse gemeldet werden (notify), ohne dass das Plugin als UnifyResultListener registriert wurde.
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnify.java
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Die Ueberpruefung von a bzw. nSaL in Methode checkA ausgelagert und für die Faelle a <. th und ty <. a implementiert.
Conflicts:
src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
It looks like you may be committing a merge.
If this is not correct, please remove the file
.git/MERGE_HEAD
and try again.
disableCondWildcards wird aufgerufen
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
/**
* wenn in einem Paar bestehend aus 2 Typvariablen eine nicht wildcardtable ist,
* so beide auf nicht wildcardtable setzen
*/
public void disableCondWildcards()
eingefuegt
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
Noch einige Fehler
modified: ../../../main/java/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java
deleted: ../../../main/java/de/dhbwstuttgart/syntaxtree/type/FunN.java
modified: ../../../main/java/de/dhbwstuttgart/typeinference/assumptions/FunNClass.java
modified: ../../../main/java/de/dhbwstuttgart/typeinference/assumptions/MethodAssumption.java
modified: ../../../main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/model/FunNType.java
Es wird jetzt FunN-Type FunN$$ geparst
Der Typ FunN wurde entfernt
Der Name des Typs FunNType wurde um $$ am Ende ergänzt
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
close log-Files
TypeUnifyTask in TypeUnify2Task bei Abarbeitung oderconstraints umgetauscht
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/RuleSet.java
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
Einen Fall ? extends/super a <.? a ergaenzt bei dem compare falsches Ergbnis geliefret hat
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnify.java
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnify2Task.java
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified: ../../../main/java/de/dhbwstuttgart/typeinference/unify/UnifyResultModel.java
zurueckumwandlung von den Unifytypen in UnifyResultModel verlegt.
Bug in generate BC fuer if(Boolean) gefixt
modified: src/main/java/de/dhbwstuttgart/bytecode/signature/Signature.java
new file: src/main/java/de/dhbwstuttgart/bytecode/utilities/ConstraintsFinder.java
Fasst alle Constraints mit der gleichen Linke-Seite in einer Liste zusammen
new file: src/main/java/de/dhbwstuttgart/bytecode/utilities/NameReplacer.java
Ersetzt die gleiche Type Variables durch einen neuen eindeutigen Namen
modified: src/main/java/de/dhbwstuttgart/bytecode/utilities/Simplify.java
Algorithmus angepasst
modified: src/test/java/bytecode/FieldTphMMethTest.java
Test funktioniert
new file: src/test/java/bytecode/InfTest.java
Infimum Test funktioniert
new file: src/test/java/bytecode/simplifyalgo/FinderTest.java
Tests fuer die HilfsMethoden
reduce2 nochmals angepasst
modified: src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
- Fehler behoben
- In den Thread nur noch Element von nextSet verschieben, die auf alle Faele berechnet werdne muessen
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
im Fall 1 die Substitutionen der Typeplaceholders der Muster entfernt
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/model/PlaceholderType.java
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/model/UnifyType.java
modified: ../../../../main/java/de/dhbwstuttgart/typeinference/unify/model/WildcardType.java
modified: ../../bytecode/javFiles/MatrixOP.jav
modified: ../../bytecode/javFiles/Merge.jav
Throwable wieder in Exception zurückgewandelt
modified: ../../../../main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
Log-Files um Name des jeweiligen Jav-Files ergaenzt
modified: ../../javFiles/Faculty.jav
modified: ../../src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Abfrage, ob OderConstraints empty sind, bei der Unify-Abbruchbedingungen eingefuegt
modified: ../../src/test/java/bytecode/BinaryTest.java
modified: ../../src/test/java/bytecode/MatrixTest.java
modified: ../../src/test/java/bytecode/applyLambdaTest.java
Pfadanpassungen
Conflicts:
src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
It looks like you may be committing a merge.
If this is not correct, please remove the file
.git/MERGE_HEAD
and try again.
Please enter the commit message for your changes. Lines starting
with '#' will be ignored, and an empty message aborts the commit.
Committer: Martin Plümicke <pl@macmini_pl.verw.ba-horb.de>
On branch bytecode2
Your branch and 'origin/bytecode2' have diverged,
and have 1 and 2 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
All conflicts fixed but you are still merging.
Changes to be committed:
modified: src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
im Max den Fall a <.? ? extends a beruecksichtigt
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/PlaceholderType.java
; in der Schleife generate fresh Type Var entfernt
modified: ../../src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java
Zusäztlich Ein Fehler in der Trennung von Konstruktoren und Methoden gefixt.
modified: ../../src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java
modified: ../../src/de/dhbwstuttgart/syntaxtree/Constructor.java
modified: ../../src/de/dhbwstuttgart/syntaxtree/factory/ASTFactory.java
modified: ../../src/de/dhbwstuttgart/typeinference/assumptions/FunNClass.java
modified: ../../src/de/dhbwstuttgart/typeinference/typeAlgo/TYPE.java
modified: ../../test/bytecode/MatrixOpTest.java
Variance =2 eingefuehrt, wenn Variancen einer Menge unterschiedlich sind (Oer-Constraints)
modified: ../bytecode/MatrixOpTest.java
wieder zum Ausfuehren eingeschaltet
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
Oder-Constraints als Subsitutions zu den Substitutions der UnifyPairs hinzugefuegt.
Unterscheidung zwischen FUNN-Receiver und anderem Receiver wieder geloescht
(war nur auskmmentiert)
modified: ../../src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
Fehler in der Reduce-FUNN-Rege beseitigt
modified: ../../src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java
FieldVars eingefuegt, dass sie genauso wie localsvars immer die gleiche Typvariable in der abstrakten Syntax bekommen
public void visit(AssignToField assignLeftSide) {
//Hier ist kein Code nötig. Es werden keine extra Constraints generiert
//HIER muss Code rein PL 2018-10-24
assignLeftSide.field.accept(this); eingefuegt
}
modified: src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java
new file: test/bytecode/FieldTest.java
modified: test/bytecode/MatrixOpTest.java
new file: test/bytecode/javFiles/Field.jav
modified: test/bytecode/javFiles/Sorting.jav
Boxing-Problem bei methodCall geloest und Tests funktionieren
Trennung von Integer und Double in private Expression convert(Java8Parser.LiteralContext literal) eingefuegt
modified: ../../src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
Typisierung von Literals eingefuegt
modified: ../../test/bytecode/javFiles/MatrixOP.jav
Name Matrix durch MatrixOP ersetzt
modified: ../../src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
Gleichungen a <.? b werden durch a =. b ersetzt und subst angewandt.
deleted: ../../test/bytecode/VectorAddTest.java
modified: ../../test/bytecode/javFiles/Matrix.jav
modified: ../../test/bytecode/javFiles/Sorting.jav
new file: src/de/dhbwstuttgart/bytecode/IfStatement.java
Bytecode für If statement wir erzeugt aber noch nicht vollständig.
modified: test/bytecode/javFiles/Faculty.jav
Test angepasst.
Variance für Attribute/Fields eingefuegt
new file: ../FacultyTest.java
new file: ../MatrixOpTest.java
new file: ../SortingTest.java
new file: MatrixOP.jav
modified: Sorting.jav
new file: ../../test/bytecode/javFiles/Tph5.jav
erzeugt Typfehler zur Laufzeit mit
mport java.util.Vector;
public class Tph5Use {
public static void main(String[] args) {
Tph5 tph5 = new Tph5();
Integer i = tph5.<Integer, Integer, Integer, Integer>m(1,2,3);
String s = tph5.<String, String, Integer, Integer>m("xx",2,3);
}
}
modified: test/bytecode/javFiles/Lambda.jav
aufgeraeumt
new file: test/bytecode/LambdaVoidTest.java
new file: test/bytecode/javFiles/LambdaVoid.jav
FunVoidN-Tests
noch unvllstaendig
modified: ../../test/bytecode/MatrixTest.java
Test korrekt
modified: ../../test/bytecode/javFiles/Matrix.jav
import byte entfernt, so dass Laufzeit passt
Test einfeguegt nicht getestet
modified: test/bytecode/OLTest.java
Test eingefuegt
modified: test/bytecode/javFiles/OL.jav
- Main in OLMain umbenannt
- Klassen publich gemacht
Bei der Addition + Abfragen eingefuegt, ob die Subtypen von Number jeweils import sind. Nur dann werden Annahmen erstellt.
modified: ../../../../../test/bytecode/javFiles/Matrix.jav
modified: ../../../../../test/bytecode/javFiles/OL.jav
new file: src/de/dhbwstuttgart/bytecode/ArgumentVisitor.java
Visitor für Argumente des Method Call einer Methode aus Standard-Bibliothek und dient dazu,
wenn die Argument eine primitive Typ besitzt dann wird unboxing gemacht.
Signatur von Konstruktoren angepasst.
Bei Literal die Zuweisung des Typs eingefuegt aber wieder auskommentiert,
weil es im Moment nur double Literals gibt.
modified: test/javFiles/Lambda.jav
FunN$$ eingefuegt
modified: src/de/dhbwstuttgart/syntaxtree/type/FunN.java
modified: src/de/dhbwstuttgart/typeinference/assumptions/FunNClass.java
modified: src/de/dhbwstuttgart/typeinference/assumptions/MethodAssumption.java
modified: src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
Methodcall einige Bugs sowohl beim apply als uch bei allen anderen gefixt.
modified: test/javFiles/Lambda.jav
FunN-Types werden nach RefTypes mit FunN$$ nach Unifikation zurueckkonvertiert.
modified: target/JavaTXcompiler-0.1-jar-with-dependencies.jar
modified: test/bytecode/javFiles/Faculty.jav
modified: test/bytecode/javFiles/Lambda.jav
modified: test/bytecode/javFiles/OL.jav
modified: test/javFiles/Lambda.jav
modified: src/de/dhbwstuttgart/typedeployment/TypeInsert.java
modified: src/de/dhbwstuttgart/typedeployment/TypeInsertPoint.java
equals Methoden eingefuegt um Marker nur einmal im Plugin zu haben
modified: target/JavaTXcompiler-0.1-jar-with-dependencies.jar
modified: test/bytecode/javFiles/OL.jav
modified: test/typeinference/UnifyTest.java
new file: Website/JavaTXExamples.zip
new file: Website/index.html
new file: Website/install/Restart.png
new file: Website/install/availableSoftware1.png
new file: Website/install/availableSoftware2.png
new file: Website/install/instal.html
new file: Website/install/install.html
new file: Website/install/installAnyway.png
new file: Website/install/installationDetails.png
new file: Website/install/licenseAgreement.png
new file: Website/install/newsoftware.png
new file: Website/install/selectInstallation.png
new file: Website/newJavaTXProject/addLibrary2.png
new file: Website/newJavaTXProject/buildPath1.png
new file: Website/newJavaTXProject/buildPath2.png
new file: Website/newJavaTXProject/buildPath3.png
new file: Website/newJavaTXProject/buildPath4.png
new file: Website/newJavaTXProject/newJavFile.png
new file: Website/newJavaTXProject/newJavFolder1.png
new file: Website/newJavaTXProject/newJavFolder2.png
new file: Website/newJavaTXProject/newJavaTXProject.html
new file: Website/newJavaTXProject/newJavaTXProject.png
new file: Website/usePlugin/usePlugin.html
new file: Website/usePlugin/usePlugin1.png
new file: Website/usePlugin/usePlugin2.png
modified: test/bytecode/javFiles/OL.jav
Bug gefixt => FacTest liefert richtiges Ergebnis.
Deskriptoren von Methoden, in denen TPHs auftauchen, werden erzeugt.
Signaturen von von Methoden, in denen TPHs auftauchen, werden erzeugt.
Test, RückagbeTypen der Methoden = TPH und ParameterTypen = TPH.
modified: ../../src/de/dhbwstuttgart/typeinference/constraints/Pair.java
modified: ../../src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/PairOperator.java
Einführung eines neuen Operators SMALLERNEQDOT um Ungleichungen a <!=. Number für die Relationsoperatoren einfuehren zu koennen.
modified: ../../test/javFiles/Matrix.jav
Operatoren neue getypte
Returnargument bei FUNN nach hinten verschoben
modified: src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
Returnargument bei FUNN nach hinten verschoben
Wildcards in Argumenten von als Undefined Pairs (funktioniert noch nicht)
Methode wrongWildcard eingefuegt
modified: src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
Methode doubleWildcard ind wrongWildcard umbenannt
modified: src/de/dhbwstuttgart/typeinference/unify/model/UnifyType.java
Methode doubleWildcard ind wrongWildcard umbenannt
modified: src/de/dhbwstuttgart/typeinference/unify/model/WildcardType.java
Methode doubleWildcard ind wrongWildcard umbenannt
In Matrix.jav Binary-Operation eingefuegt.
new file: test/javFiles/Meth_Gen.jav
new file: test/typeinference/Meth_GenTest.java
Test zu Constraints ueber eine Methode hinaus
modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Undefined Pairs auf oberster Ebene wird zu new HashTable<>() in compute
new file: ../../src/de/dhbwstuttgart/typeinference/unify/inheritVariance.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
Unterscheidung zw. <. <? ein compere eingefuegt
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/PlaceholderType.java
Attribut wildcardable eingefuegt
varianceInheritance nach TypeUnifyTask.java verschoben
Kommentar eingefuegt
TODO:
1. compare-Funktinen nochmals ueberpruefen
2. Undef-Pairs in JavaTXiCompiler.java abfangen
3. ? extends bei allen Argumenttypen und Returntypen rauslassen
resuat add in cartesion angepasst
modified: src/de/dhbwstuttgart/typeinference/unify/model/Unifier.java
modified: src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
equals in UnfyPair auf UndefinedPairs angepasst
Zu beginn von unify werden doppelte wildcard konstruktionen entfernt
Variableneumbenennung bei smaller in Fall 1 weider entfernt
modified: ../../src/de/dhbwstuttgart/typeinference/unify/interfaces/IMatch.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/interfaces/IUnify.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/ExtendsType.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
In computeGreater unify durch match ersetzt
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/UnifyType.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/WildcardType.java
Abfrage ob eine doppelte wildcard konstruktion vorhanden ist eingefuegt
modified: src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
UndefPairs werden zurueckgegegeben und die naechsten gefiltert
protected boolean isUndefinedPairSet(Set<UnifyPair> s) hat Fehler
? ext theta bei smaller eingefuegt
modified: src/de/dhbwstuttgart/typeinference/unify/model/Unifier.java
basiPair und Subsitution nur noch gefuegt, wen wirk etwas eingesetzt wurde
modified: src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
unifier umbenannt in substitution
getBasePair und getSubsitutuon eingefuegt
new file: src/de/dhbwstuttgart/typeinference/unify/distributeVariance.java
modified: src/de/dhbwstuttgart/typeinference/unify/model/PlaceholderType.java
new file: src/de/dhbwstuttgart/typeinference/unify/visitUnifyTypeVisitor.java
LogAusgabe FC
modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
fresh TV in unifyCase1 auf alle cs ausgedehnt
modified: test/javFiles/Matrix.jav
Errorrueckgabe auskommentiert
new file: src/de/dhbwstuttgart/typeinference/unify/interfaces/UnifyTypeVisitor.java
eingecheckt vorher vergessen
modified: test/javFiles/Matrix.jav
add und mul aktiviert
modified: src/de/dhbwstuttgart/typeinference/unify/model/Unifier.java
modified: src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
Links der substitierten Pare eingefuegt.
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
modified: ../javFiles/Matrix.jav
mul1 und add ergaenzt.
Fehler bei elementAt: Liefert Object als Returntyp
modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
Varinace in UnfyPair eingefuegt und Abfrage in computeCartesianRecursive eingefuegt
Pruefen, ob Varianve bei Subst und andrene erhalten bleibt.
modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/interfaces/IRuleSet.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
1. Version mit compare von UnifyPairs
In Unfy:
- Bildung des kartesischen Produkts auf secondlevel-Ebene entfernt
In computeCartesianRecursive:
- Vereinigung der Ergebnisse ueber die Schleifen und die Rekursion eingefuegt
- Minimumbestimmung korrigiert
In reduceFunN:
&& (pair.getPairOp() != PairOperator.EQUALSDOT)) //PL 2017-10-03 hinzugefuegt
//da Regel auch fuer EQUALSDOT anwendbar
//TODO: fuer allen anderen Relationen noch pruefen
FunType von Bedingung <. auf beliebig zu gelassen
modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
bei childrenaufruf unifyCase1 gleiches Element hinzugefuegt
modified: test/typeinference/JavaTXCompilerTest.java
typeinference-Aufruf vor die Schleife gezogen
Keine Ahnung
modified: src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
Aenderung Zeile 578
rhsType = pair.getRhsType(); //PL eingefuegt 2017-09-29 statt !((rhsType = pair.getRhsType()) instanceof PlaceholderType)
if(lhsType != null
//&& !((rhsType = pair.getRhsType()) instanceof PlaceholderType) //PL geloescht am 2017-09-29 Begründung: auch Typvariablen muessen ersetzt werden.
modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
1. Aenderung: Zeile 168
/*
* Step 6 a) Restart (fork) for pairs where subst was applied
*/
if(parallel) {
if //(eqPrime.equals(eq)) //PL 2017-09-29 auskommentiert und durch
(!eqPrimePrime.isPresent()) //PL 2071-09-29 dies ersetzt
//Begruendung: Wenn in der Substitution keine Veraenderung
//(!eqPrimePrime.isPresent()) erfolgt ist, ist das Ergebnis erzielt.
eqPrimePrimeSet.add(eqPrime);
2. Aenderung: Ziel 188
else { // sequentiell (Step 6b is included)
if //(eqPrime.equals(eq)) //PL 2017-09-29 auskommentiert und durch
(!eqPrimePrime.isPresent()) //PL 2071-09-29 dies ersetzt
//Begruendung: Wenn in der Substitution keine Veraenderung
//(!eqPrimePrime.isPresent()) erfolgt ist, ist das Ergebnis erzielt.
eqPrimePrimeSet.add(eqPrime);
[INFO] Installing /Users/pl/workspace_oxygen/JavaCompilerCore/target/JavaTXcompiler-0.2.jar to /Users/pl/.m2/repository/de/dhbwstuttgart/JavaTXcompiler/0.2/JavaTXcompiler-0.2.jar
[INFO] Installing /Users/pl/workspace_oxygen/JavaCompilerCore/pom.xml to /Users/pl/.m2/repository/de/dhbwstuttgart/JavaTXcompiler/0.2/JavaTXcompiler-0.2.pom
[INFO] Installing /Users/pl/workspace_oxygen/JavaCompilerCore/target/JavaTXcompiler-0.2-jar-with-dependencies.jar to /Users/pl/.m2/repository/de/dhbwstuttgart/JavaTXcompiler/0.2/JavaTXcompiler-0.2-jar-with-dependencies.jar
Java-TX (Java Type eXtended) is an extension of Java in which a global type inference algorithm and real function types are added. Since the end of the nineties features from functional program- ming languages have been transferred to Java. Parametric polymorphism extended by wildcards, called generics, were transfered to Java 5.0. Higher-order functions and lambda expression were introduced in Java 8. Java 8 uses functional interfaces as target types of lambda expressions in contrast to real function types as in functional programming languages.
The powerful feature type inference from functional programming languages is incorporated into Java, as into other object-oriented
languages, i.e. only in a restricted way called local type inference. Local type inference allows certain type annotations to be omitted. For instance, it is often not necessary to specify the type of a variable. Type parameters of classes in the new-statement can be left out. Return types of methods can often also be omitted. Local type inference is at its most pronounced in Scala. In Java 10 an extention of local type inference is introduced, where types of local variables can be replaced by the keyword var and inferred automatically during the compilation. In contrast to global type inference, local type inference allows types of recursive methods and lambda expressions not to be omitted.<br>
The Java-TX project contributes to the design of object-oriented languages by developing global type inference algorithms for Java-like languages.
<h3>First Example</h3>
The class <tt>Id</tt> has the method <tt>id</tt>. The type annotations are omitted.
<br/>
<pre><codeclass="language-java">
class Id {
id(x) {
return x;
}
}
</code></pre>
The type inference algorithm inferrs the types, such that <tt>Id</tt> can be applied:
<pre>
new Id().id(1);
new Id().id("hallo");
</pre>
<h3>More complex example</h3>
<pre>
import java.lang.Integer;
import java.lang.Double;
import java.lang.String;
class OL {
m(x) { return x + x; }
}
class OLMain {
main(x) {
var ol;
ol = new OL();
return ol.m(x);
}
}
</pre>
The type inference mechanism considers only imported types. Therefore <tt>Integer</tt><tt>Double</tt>, and <tt>String</tt> are imported.
<br/>
As the operator <tt>+</tt> is overloaded by all numeric types and String the methods <tt>m</tt> in the class <tt>OL</tt> and <tt>main</tt> in the class <tt>OLMain</tt>, respectively, gets all these types. The generated classfile demonstrates this:
<pre>
> javap OL.class
Compiled from "OL.jav"
class OL {
public OL();
public java.lang.Integer m(java.lang.Integer);
public java.lang.Double m(java.lang.Double);
}
> javap OLMain.class
Compiled from "OLMain.jav"
class OLMain {
public OLMain();
public java.lang.Integer main(java.lang.Integer);
public java.lang.Double main(java.lang.Double);
}
</pre>
<hr>
<address></address>
<!-- hhmts start -->Last modified: Fri Jun 1 16:43:55 CEST 2018 <!-- hhmts end -->
<li><ahref="de/dhbwstuttgart/typeinference/unify/CSubstitutionSet.html"title="class in de.dhbwstuttgart.typeinference.unify"target="classFrame">CSubstitutionSet</a></li>
<li><ahref="de/dhbwstuttgart/myexception/CTypeReconstructionException.html"title="class in de.dhbwstuttgart.myexception"target="classFrame">CTypeReconstructionException</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/unify/CVectorSet.html"title="class in de.dhbwstuttgart.typeinference.unify"target="classFrame">CVectorSet</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/DebugException.html"title="class in de.dhbwstuttgart.typeinference.exceptions"target="classFrame">DebugException</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/DebugException.html"title="class in de.dhbwstuttgart.exceptions"target="classFrame">DebugException</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/misc/DeclId.html"title="class in de.dhbwstuttgart.syntaxtree.misc"target="classFrame">DeclId</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/operator/DivideOp.html"title="class in de.dhbwstuttgart.syntaxtree.operator"target="classFrame">DivideOp</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/statement/DoubleLiteral.html"title="class in de.dhbwstuttgart.syntaxtree.statement"target="classFrame">DoubleLiteral</a></li>
@ -203,7 +203,7 @@
<li><ahref="syntaxTree/NodeEqualTest.html"title="class in syntaxTree"target="classFrame">NodeEqualTest</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/operator/NotEqualOp.html"title="class in de.dhbwstuttgart.syntaxtree.operator"target="classFrame">NotEqualOp</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/statement/NotExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement"target="classFrame">NotExpr</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/NotImplementedException.html"title="class in de.dhbwstuttgart.typeinference.exceptions"target="classFrame">NotImplementedException</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/NotImplementedException.html"title="class in de.dhbwstuttgart.exceptions"target="classFrame">NotImplementedException</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/statement/Null.html"title="class in de.dhbwstuttgart.syntaxtree.statement"target="classFrame">Null</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/type/ObjectType.html"title="class in de.dhbwstuttgart.syntaxtree.type"target="classFrame">ObjectType</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/OderConstraint.html"title="class in de.dhbwstuttgart.typeinference"target="classFrame">OderConstraint</a></li>
@ -228,7 +228,7 @@
<li><ahref="de/dhbwstuttgart/typeinference/assumptions/ParameterAssumption.html"title="class in de.dhbwstuttgart.typeinference.assumptions"target="classFrame">ParameterAssumption</a></li>
<li><ahref="plugindevelopment/ParameterInsertTest.html"title="class in plugindevelopment"target="classFrame">ParameterInsertTest</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/ParameterList.html"title="class in de.dhbwstuttgart.syntaxtree"target="classFrame">ParameterList</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.typeinference.exceptions"target="classFrame">ParserError</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.exceptions"target="classFrame">ParserError</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/operator/PlusOp.html"title="class in de.dhbwstuttgart.syntaxtree.operator"target="classFrame">PlusOp</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/statement/PositivExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement"target="classFrame">PositivExpr</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/statement/PostDecExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement"target="classFrame">PostDecExpr</a></li>
@ -282,7 +282,7 @@
<li><ahref="de/dhbwstuttgart/typeinference/assumptions/TypeAssumptions.html"title="class in de.dhbwstuttgart.typeinference.assumptions"target="classFrame">TypeAssumptions</a></li>
<li><ahref="plugindevelopment/TypeInsertTests/LargeSourceCodeTests/TypedMatrixSimpleTest.html"title="class in plugindevelopment.TypeInsertTests.LargeSourceCodeTests"target="classFrame">TypedMatrixSimpleTest</a></li>
<li><ahref="plugindevelopment/TypeInsertTests/LargeSourceCodeTests/TypedMatrixTest.html"title="class in plugindevelopment.TypeInsertTests.LargeSourceCodeTests"target="classFrame">TypedMatrixTest</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html"title="class in de.dhbwstuttgart.typeinference.exceptions"target="classFrame">TypeinferenceException</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html"title="class in de.dhbwstuttgart.exceptions"target="classFrame">TypeinferenceException</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/TypeinferenceResultSet.html"title="class in de.dhbwstuttgart.typeinference"target="classFrame">TypeinferenceResultSet</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/TypeInsertable.html"title="interface in de.dhbwstuttgart.typeinference"target="classFrame"><spanclass="interfaceName">TypeInsertable</span></a></li>
<li><ahref="de/dhbwstuttgart/typeinference/typedeployment/TypeInsertPoint.html"title="class in de.dhbwstuttgart.typeinference.typedeployment"target="classFrame">TypeInsertPoint</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/unify/CSubstitutionSet.html"title="class in de.dhbwstuttgart.typeinference.unify">CSubstitutionSet</a></li>
<li><ahref="de/dhbwstuttgart/myexception/CTypeReconstructionException.html"title="class in de.dhbwstuttgart.myexception">CTypeReconstructionException</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/unify/CVectorSet.html"title="class in de.dhbwstuttgart.typeinference.unify">CVectorSet</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/DebugException.html"title="class in de.dhbwstuttgart.typeinference.exceptions">DebugException</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/DebugException.html"title="class in de.dhbwstuttgart.exceptions">DebugException</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/misc/DeclId.html"title="class in de.dhbwstuttgart.syntaxtree.misc">DeclId</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/operator/DivideOp.html"title="class in de.dhbwstuttgart.syntaxtree.operator">DivideOp</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/statement/DoubleLiteral.html"title="class in de.dhbwstuttgart.syntaxtree.statement">DoubleLiteral</a></li>
@ -203,7 +203,7 @@
<li><ahref="syntaxTree/NodeEqualTest.html"title="class in syntaxTree">NodeEqualTest</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/operator/NotEqualOp.html"title="class in de.dhbwstuttgart.syntaxtree.operator">NotEqualOp</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/statement/NotExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">NotExpr</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/NotImplementedException.html"title="class in de.dhbwstuttgart.typeinference.exceptions">NotImplementedException</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/NotImplementedException.html"title="class in de.dhbwstuttgart.exceptions">NotImplementedException</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/statement/Null.html"title="class in de.dhbwstuttgart.syntaxtree.statement">Null</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/type/ObjectType.html"title="class in de.dhbwstuttgart.syntaxtree.type">ObjectType</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/OderConstraint.html"title="class in de.dhbwstuttgart.typeinference">OderConstraint</a></li>
@ -228,7 +228,7 @@
<li><ahref="de/dhbwstuttgart/typeinference/assumptions/ParameterAssumption.html"title="class in de.dhbwstuttgart.typeinference.assumptions">ParameterAssumption</a></li>
<li><ahref="plugindevelopment/ParameterInsertTest.html"title="class in plugindevelopment">ParameterInsertTest</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/ParameterList.html"title="class in de.dhbwstuttgart.syntaxtree">ParameterList</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.exceptions">ParserError</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/operator/PlusOp.html"title="class in de.dhbwstuttgart.syntaxtree.operator">PlusOp</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/statement/PositivExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">PositivExpr</a></li>
<li><ahref="de/dhbwstuttgart/syntaxtree/statement/PostDecExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">PostDecExpr</a></li>
@ -282,7 +282,7 @@
<li><ahref="de/dhbwstuttgart/typeinference/assumptions/TypeAssumptions.html"title="class in de.dhbwstuttgart.typeinference.assumptions">TypeAssumptions</a></li>
<li><ahref="plugindevelopment/TypeInsertTests/LargeSourceCodeTests/TypedMatrixSimpleTest.html"title="class in plugindevelopment.TypeInsertTests.LargeSourceCodeTests">TypedMatrixSimpleTest</a></li>
<li><ahref="plugindevelopment/TypeInsertTests/LargeSourceCodeTests/TypedMatrixTest.html"title="class in plugindevelopment.TypeInsertTests.LargeSourceCodeTests">TypedMatrixTest</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html"title="class in de.dhbwstuttgart.typeinference.exceptions">TypeinferenceException</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html"title="class in de.dhbwstuttgart.exceptions">TypeinferenceException</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/TypeinferenceResultSet.html"title="class in de.dhbwstuttgart.typeinference">TypeinferenceResultSet</a></li>
<li><ahref="de/dhbwstuttgart/typeinference/TypeInsertable.html"title="interface in de.dhbwstuttgart.typeinference"><spanclass="interfaceName">TypeInsertable</span></a></li>
<li><ahref="de/dhbwstuttgart/typeinference/typedeployment/TypeInsertPoint.html"title="class in de.dhbwstuttgart.typeinference.typedeployment">TypeInsertPoint</a></li>
<pre>private <ahref="../../../de/dhbwstuttgart/syntaxtree/SourceFile.html"title="class in de.dhbwstuttgart.syntaxtree">SourceFile</a> parse2SyntaxTree(java.io.Reader fileContent)
throws <ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></pre>
throws <ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.exceptions">ParserError</a></pre>
<divclass="block">Parst den Inhalt einer Datei zu einem Syntaxbaum.</div>
<dl>
<dt><spanclass="throwsLabel">Throws:</span></dt>
<dd><code><ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></code></dd>
<dd><code><ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.exceptions">ParserError</a></code></dd>
<pre>public void parse(<ahref="../../../de/dhbwstuttgart/typeinference/Menge.html"title="class in de.dhbwstuttgart.typeinference">Menge</a><java.lang.String> filenames)
throws <ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></pre>
throws <ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.exceptions">ParserError</a></pre>
<divclass="block">Diese Funktion nimmt einen Menge von Dateinamen. Alle diese Dateien werden zu einem SyntaxBaum geparst.</div>
<dd><code>filenames</code> - - Eine Liste von Quellcodedateien, welche gseparst werden sollen</dd>
<dt><spanclass="throwsLabel">Throws:</span></dt>
<dd><code><ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></code></dd>
<dd><code><ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.exceptions">ParserError</a></code></dd>
@ -237,7 +237,7 @@ var activeTableTab = "activeTableTab";
<h4>typeReconstruction</h4>
<pre><ahref="../../../de/dhbwstuttgart/typeinference/Menge.html"title="class in de.dhbwstuttgart.typeinference">Menge</a><<ahref="../../../de/dhbwstuttgart/typeinference/TypeinferenceResultSet.html"title="class in de.dhbwstuttgart.typeinference">TypeinferenceResultSet</a>> typeReconstruction()
throws java.lang.NullPointerException,
<ahref="../../../de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html"title="class in de.dhbwstuttgart.typeinference.exceptions">TypeinferenceException</a></pre>
<ahref="../../../de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html"title="class in de.dhbwstuttgart.exceptions">TypeinferenceException</a></pre>
<divclass="block">Author: Jörg Bäuerle<br/>
Ruft den Typrekonstruktionsalgorithmus auf.</div>
<dl>
@ -247,7 +247,7 @@ var activeTableTab = "activeTableTab";
<dd><code>java.lang.NullPointerException</code> - Wenn noch kein abstrakter Syntaxbaum vorhanden
ist. @throws CTypeReconstructionException Wenn ein Fehler bei der
Typrekonstruktion auftritt.</dd>
<dd><code><ahref="../../../de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html"title="class in de.dhbwstuttgart.typeinference.exceptions">TypeinferenceException</a></code></dd>
<dd><code><ahref="../../../de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html"title="class in de.dhbwstuttgart.exceptions">TypeinferenceException</a></code></dd>
</dl>
</li>
</ul>
@ -280,13 +280,13 @@ var activeTableTab = "activeTableTab";
<liclass="blockList">
<h4>parse</h4>
<pre>void parse(<ahref="../../../de/dhbwstuttgart/typeinference/Menge.html"title="class in de.dhbwstuttgart.typeinference">Menge</a><java.lang.String> filenames)
throws <ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></pre>
throws <ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.exceptions">ParserError</a></pre>
<divclass="block">Parst zusammenhängende JavaKlassen in verschiedenen Dateien.</div>
<dd><code>filenames</code> - - Eine Liste von Quellcodedateien, welche gseparst werden sollen</dd>
<dt><spanclass="throwsLabel">Throws:</span></dt>
<dd><code><ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></code></dd>
<dd><code><ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.exceptions">ParserError</a></code></dd>
</dl>
</li>
</ul>
@ -297,7 +297,7 @@ var activeTableTab = "activeTableTab";
<liclass="blockList">
<h4>parse</h4>
<pre><ahref="../../../de/dhbwstuttgart/syntaxtree/SourceFile.html"title="class in de.dhbwstuttgart.syntaxtree">SourceFile</a> parse(java.lang.String sourceCode)
throws <ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></pre>
throws <ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.exceptions">ParserError</a></pre>
<divclass="block">Parst den SourceCode einer Datei.</div>
@ -305,7 +305,7 @@ var activeTableTab = "activeTableTab";
<dt><spanclass="returnLabel">Returns:</span></dt>
<dd>den aus dem sourceCode generierten Syntaxbaum</dd>
<dt><spanclass="throwsLabel">Throws:</span></dt>
<dd><code><ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></code></dd>
<dd><code><ahref="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html"title="class in de.dhbwstuttgart.exceptions">ParserError</a></code></dd>
<h3>Uses of <ahref="../../../../de/dhbwstuttgart/parser/JavaParser.yyException.html"title="class in de.dhbwstuttgart.parser">JavaParser.yyException</a> in <ahref="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.typeinference.exceptions</a></h3>
<h3>Uses of <ahref="../../../../de/dhbwstuttgart/parser/JavaParser.yyException.html"title="class in de.dhbwstuttgart.parser">JavaParser.yyException</a> in <ahref="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.exceptions</a></h3>
<tableclass="useSummary"border="0"cellpadding="3"cellspacing="0"summary="Use table, listing constructors, and an explanation">
<caption><span>Constructors in <ahref="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.typeinference.exceptions</a> with parameters of type <ahref="../../../../de/dhbwstuttgart/parser/JavaParser.yyException.html"title="class in de.dhbwstuttgart.parser">JavaParser.yyException</a></span><spanclass="tabEnd"> </span></caption>
<caption><span>Constructors in <ahref="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.exceptions</a> with parameters of type <ahref="../../../../de/dhbwstuttgart/parser/JavaParser.yyException.html"title="class in de.dhbwstuttgart.parser">JavaParser.yyException</a></span><spanclass="tabEnd"> </span></caption>
<tr>
<thclass="colOne"scope="col">Constructor and Description</th>
<tableclass="useSummary"border="0"cellpadding="3"cellspacing="0"summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <ahref="../../../de/dhbwstuttgart/parser/package-summary.html">de.dhbwstuttgart.parser</a> used by <ahref="../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.typeinference.exceptions</a></span><spanclass="tabEnd"> </span></caption>
<caption><span>Classes in <ahref="../../../de/dhbwstuttgart/parser/package-summary.html">de.dhbwstuttgart.parser</a> used by <ahref="../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.exceptions</a></span><spanclass="tabEnd"> </span></caption>
<tr>
<thclass="colOne"scope="col">Class and Description</th>
<li><ahref="../../../de/dhbwstuttgart/syntaxtree/GTVDeclarationContext.html"title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.GTVDeclarationContext</a></li>
<li>
<ulclass="inheritance">
<li><ahref="../../../de/dhbwstuttgart/syntaxtree/Class.html"title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.Class</a></li>
<li><ahref="../../../de/dhbwstuttgart/syntaxtree/Class.html"title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.ClassOrInterface</a></li>
<h3>Fields inherited from class de.dhbwstuttgart.syntaxtree.<ahref="../../../de/dhbwstuttgart/syntaxtree/Class.html"title="class in de.dhbwstuttgart.syntaxtree">Class</a></h3>
@ -173,7 +173,7 @@ extends <a href="../../../de/dhbwstuttgart/syntaxtree/Class.html" title="class i
<h3>Methods inherited from class de.dhbwstuttgart.syntaxtree.<ahref="../../../de/dhbwstuttgart/syntaxtree/Class.html"title="class in de.dhbwstuttgart.syntaxtree">Class</a></h3>
@ -287,9 +287,9 @@ extends <a href="../../../de/dhbwstuttgart/syntaxtree/Class.html" title="class i
@ -106,7 +106,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../de/dhbwstuttgart/syntaxtree/GTVDeclarationContext.html"title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.GTVDeclarationContext</a></li>
@ -106,7 +106,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../de/dhbwstuttgart/syntaxtree/GTVDeclarationContext.html"title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.GTVDeclarationContext</a></li>
<li>
<ulclass="inheritance">
<li><ahref="../../../de/dhbwstuttgart/syntaxtree/Class.html"title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.Class</a></li>
<li><ahref="../../../de/dhbwstuttgart/syntaxtree/Class.html"title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.ClassOrInterface</a></li>
<li>
<ulclass="inheritance">
<li>de.dhbwstuttgart.syntaxtree.Interface</li>
@ -148,7 +148,7 @@ extends <a href="../../../de/dhbwstuttgart/syntaxtree/Class.html" title="class i
<h3>Fields inherited from class de.dhbwstuttgart.syntaxtree.<ahref="../../../de/dhbwstuttgart/syntaxtree/Class.html"title="class in de.dhbwstuttgart.syntaxtree">Class</a></h3>
@ -205,7 +205,7 @@ extends <a href="../../../de/dhbwstuttgart/syntaxtree/Class.html" title="class i
<h3>Methods inherited from class de.dhbwstuttgart.syntaxtree.<ahref="../../../de/dhbwstuttgart/syntaxtree/Class.html"title="class in de.dhbwstuttgart.syntaxtree">Class</a></h3>
@ -356,7 +356,7 @@ extends <a href="../../../de/dhbwstuttgart/syntaxtree/Class.html" title="class i
<h3>Uses of <ahref="../../../../de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.html"title="class in de.dhbwstuttgart.syntaxtree">SyntaxTreeNode</a> in <ahref="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.typeinference.exceptions</a></h3>
<h3>Uses of <ahref="../../../../de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.html"title="class in de.dhbwstuttgart.syntaxtree">SyntaxTreeNode</a> in <ahref="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.exceptions</a></h3>
<tableclass="useSummary"border="0"cellpadding="3"cellspacing="0"summary="Use table, listing constructors, and an explanation">
<caption><span>Constructors in <ahref="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.typeinference.exceptions</a> with parameters of type <ahref="../../../../de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.html"title="class in de.dhbwstuttgart.syntaxtree">SyntaxTreeNode</a></span><spanclass="tabEnd"> </span></caption>
<caption><span>Constructors in <ahref="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.exceptions</a> with parameters of type <ahref="../../../../de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.html"title="class in de.dhbwstuttgart.syntaxtree">SyntaxTreeNode</a></span><spanclass="tabEnd"> </span></caption>
<tr>
<thclass="colOne"scope="col">Constructor and Description</th>
<tableclass="useSummary"border="0"cellpadding="3"cellspacing="0"summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <ahref="../../../de/dhbwstuttgart/syntaxtree/package-summary.html">de.dhbwstuttgart.syntaxtree</a> used by <ahref="../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.typeinference.exceptions</a></span><spanclass="tabEnd"> </span></caption>
<caption><span>Classes in <ahref="../../../de/dhbwstuttgart/syntaxtree/package-summary.html">de.dhbwstuttgart.syntaxtree</a> used by <ahref="../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.exceptions</a></span><spanclass="tabEnd"> </span></caption>
<tr>
<thclass="colOne"scope="col">Class and Description</th>
@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.