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);
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 -->
@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Expr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Expr</a></li>
<li>
<ulclass="inheritance">
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.Literal</a></li>
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<h3>Methods inherited from class de.dhbwstuttgart.syntaxtree.statement.<ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Expr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Expr</a></li>
<li>
<ulclass="inheritance">
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.Literal</a></li>
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<h3>Methods inherited from class de.dhbwstuttgart.syntaxtree.statement.<ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Expr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Expr</a></li>
<li>
<ulclass="inheritance">
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.Literal</a></li>
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<h3>Methods inherited from class de.dhbwstuttgart.syntaxtree.statement.<ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Expr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Expr</a></li>
<li>
<ulclass="inheritance">
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.Literal</a></li>
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<h3>Methods inherited from class de.dhbwstuttgart.syntaxtree.statement.<ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Expr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Expr</a></li>
<li>
<ulclass="inheritance">
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.Literal</a></li>
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<h3>Methods inherited from class de.dhbwstuttgart.syntaxtree.statement.<ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Expr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Expr</a></li>
@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Expr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Expr</a></li>
<li>
<ulclass="inheritance">
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.Literal</a></li>
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<h3>Methods inherited from class de.dhbwstuttgart.syntaxtree.statement.<ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Expr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Expr</a></li>
<li>
<ulclass="inheritance">
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.Literal</a></li>
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<h3>Methods inherited from class de.dhbwstuttgart.syntaxtree.statement.<ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Expr.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Expr</a></li>
<li>
<ulclass="inheritance">
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.Literal</a></li>
<li><ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<h3>Methods inherited from class de.dhbwstuttgart.syntaxtree.statement.<ahref="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.Literal"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.Literal</h2>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.Literal"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.Literal</h2>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.NegativeExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.NegativeExpr</h2>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.NegativeExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.NegativeExpr</h2>
</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.NegativeExpr</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.javaInternal.NegativeExpr</div>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.NotExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.NotExpr</h2>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.NotExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.NotExpr</h2>
</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.NotExpr</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.javaInternal.NotExpr</div>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.PositivExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PositivExpr</h2>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.PositivExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PositivExpr</h2>
</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.PositivExpr</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.javaInternal.PositivExpr</div>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.PostDecExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PostDecExpr</h2>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.PostDecExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PostDecExpr</h2>
</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.PostDecExpr</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.javaInternal.PostDecExpr</div>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.PostIncExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PostIncExpr</h2>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.PostIncExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PostIncExpr</h2>
</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.PostIncExpr</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.javaInternal.PostIncExpr</div>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.PreDecExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PreDecExpr</h2>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.PreDecExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PreDecExpr</h2>
</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.PreDecExpr</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.javaInternal.PreDecExpr</div>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.PreIncExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PreIncExpr</h2>
<h2title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.PreIncExpr"class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PreIncExpr</h2>
</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.PreIncExpr</div>
<divclass="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.javaInternal.PreIncExpr</div>
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.