Compare commits

...

609 Commits

Author SHA1 Message Date
Martin Plümicke 1a2454e00b modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Kommentare zur Max Min optimierung rasugenommen
2018-07-04 11:47:02 +02:00
Martin Plümicke bc1a796e28 modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java 2018-07-03 11:54:24 +02:00
Martin Plümicke b8e229cf3f modified: ../../src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
modified:   ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/Unifier.java
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
	modified:   ../javFiles/Matrix.jav
2018-07-02 17:24:16 +02:00
Martin Plümicke e0c5afcd6d modified: test/bytecode/javFiles/Lambda.jav
modified:   test/javFiles/Vector.jav
	modified:   test/typeinference/UnifyTest.java
2018-07-02 11:11:29 +02:00
JanUlrich 9123e222f4 Vector TEst anfügen 2018-06-28 16:47:05 +02:00
Fayez Abu Alia 29bd9a3f4f remove logFile 2018-06-27 15:39:04 +02:00
Fayez Abu Alia 7926c25c7d Soviel wie möglich unnötige TPHs aus Signaturen von Paramtrisierten Typen entfernt 2018-06-27 15:20:35 +02:00
Fayez Abu Alia b4c604e2b1 Bug in der Methode simplifyPairs gefixt.
Bug 82 gefixt.
TPHs in paramtrisierten Typen als TypeVariablen in Signature hinzugefügt.
Lambda.jav funktioniert.
2018-06-27 14:49:22 +02:00
Martin Plümicke d8bb4d6188 modified: test/bytecode/javFiles/Lambda.jav
Lambda auf apply angepasst
2018-06-23 10:54:14 +02:00
Martin Plümicke 0ecaf36648 modified: src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
Bei Literal die Zuweisung des Typs eingefuegt aber wieder auskommentiert,
weil es im Moment nur double Literals gibt.
	modified:   test/javFiles/Lambda.jav
2018-06-23 10:42:46 +02:00
Martin Plümicke 2eb7a63480 modified: src/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java
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
2018-06-23 01:05:13 +02:00
Fayez Abu Alia 11649b39d3 generateBCForFun() um Parameter path erweitert. 2018-06-20 18:15:44 +02:00
Fayez Abu Alia 303cfa5409 log entfernt 2018-06-20 18:08:25 +02:00
Fayez Abu Alia 660ef68f7e generateBytecode() um Parameter path erweitert. Alle Tests angepasst 2018-06-20 18:07:17 +02:00
Fayez Abu Alia 23eab0c9a4 TPHs, die nicht in ParameterListe der Methode vorkommen, werden in Signature geschrieben 2018-06-19 14:56:22 +02:00
Fayez Abu Alia 162ca3eb27 Merge branch 'bytecode2' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2018-06-19 13:32:24 +02:00
Fayez Abu Alia 6d70464a1c TPH X < TPH Y <...< TPH Z vereinfacht => TPH X < TPH Z und Signature-Erzeugung wird angepasst 2018-06-19 13:31:39 +02:00
Martin Plümicke 04d3ac84e7 jeweils apply eingefuegt, was nicht funktioniert
modified:   ../../test/typeinference/UnifyTest.java
Matrix auskommentiert und Lambda einkommentiert
2018-06-15 16:19:12 +02:00
Fayez Abu Alia 2db5ecc260 logFile deleted 2018-06-13 15:51:59 +02:00
Fayez Abu Alia b325e205a1 Bugs gefixt. Bytecode-Erzeugung für MethodCall ergänzt. Bytecode für Matrix-Test (Funktioniert noch nicht ganzErzeugung Signatures und Descriptors verbessert 2018-06-13 15:50:05 +02:00
Fayez Abu Alia ff2bca5ce5 Alle TPHS einer Methode und pairs (TPH < SuperTPH) werden gesammelt,
gemeinsamme TPHs werden bestimmt, die Klassenkopf als Type-Variables
	definiert werden sollen.
	Erzeugung von Signature angepasst.
2018-06-12 11:41:59 +02:00
Fayez Abu Alia 66078360da Alle TPH der Methode werden in eine Liste gespeichert.
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.
2018-05-30 15:27:21 +02:00
Martin Plümicke bb26112a9b modified: ../../../target/JavaTXcompiler-0.1-jar-with-dependencies.jar
modified:   Fac.jav
	modified:   Faculty.jav
	modified:   OL.jav
	modified:   While.jav
	modified:   ../../javFiles/AddLong.jav
2018-05-30 00:27:20 +02:00
Martin Plümicke 97d893e66b Merge branch 'plugin' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into plugin
merge
2018-05-28 16:36:46 +02:00
Martin Plümicke 57fb90afaf modified: src/de/dhbwstuttgart/core/JavaTXCompiler.java
modified:   src/de/dhbwstuttgart/typeinference/unify/TypeUnify.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
LogFile  optional gemacht
2018-05-28 16:35:47 +02:00
JanUlrich 63ac79f02c Hotfix für Typparsen Problem 2018-05-28 16:21:52 +02:00
JanUlrich 07fa62d11d merge Keine Ahnung mit was ... 2018-05-28 16:21:43 +02:00
Martin Plümicke 66587a8f71 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
SMALERNEQDOT in Regel a <!=. Theta korrigiert
SMALERNEQDOT in Regel Theta <!=. a geloescht
2018-05-28 16:07:29 +02:00
Martin Plümicke 581e5e574e Merge branch 'bytecode2' into plugin 2018-05-25 14:41:22 +02:00
Martin Plümicke ae14dfd947 modified: src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
modified:   src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
2018-05-25 14:39:54 +02:00
Martin Plümicke 9d53d9d5d1 modified: src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
kleiner Fehler korrigiert
	modified:   test/javFiles/Matrix.jav
2018-05-25 11:16:02 +02:00
Fayez Abu Alia 58f5e17ab5 FacTest.java 2018-05-25 10:01:44 +02:00
Fayez Abu Alia 6fce2760c5 While.jav 2018-05-25 09:53:30 +02:00
Martin Plümicke 1de897fb1f modified: src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
System.out.println geloescht
2018-05-24 17:59:51 +02:00
Martin Plümicke 87dede5d5f modified: ../../src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
F-Bounded Problematik durche neues greater ggf. geloest.
Es werden Falle ausgeschlossen. Diese Faelle muessen noch ergaenzt werden.
2018-05-24 17:45:10 +02:00
Fayez Abu Alia f085f9f499 Merge branch 'bytecode2' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2018-05-24 16:44:28 +02:00
Fayez Abu Alia a40d2b991f kleine Änderung 2018-05-24 16:44:05 +02:00
Martin Plümicke 704415ae3b Merge branch 'unifyOptimierung' into plugin
fixed	test/javFiles/Matrix.jav
2018-05-24 16:43:31 +02:00
Martin Plümicke 65531ac12e modified: ../../src/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java
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
2018-05-24 16:20:57 +02:00
Martin Plümicke 34e632b872 modified: ../../src/de/dhbwstuttgart/core/JavaTXCompiler.java
Reduce ausgetauscht bei ArgPara und Returntype
	modified:   ../../src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
isUndefinedPair korrigiert.
	modified:   ../../test/bytecode/LambdaTest.java
	modified:   ../../test/bytecode/javFiles/Plus.jav
	modified:   ../../test/bytecode/javFiles/RelOps.jav
2018-05-24 14:11:04 +02:00
Martin Plümicke 3470215bae Merge branch 'bytecode2' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2018-05-24 10:48:57 +02:00
Martin Plümicke f5398fa8e9 deleted: ../../test/logFiles/log 2018-05-24 10:34:50 +02:00
Martin Plümicke f617ad8946 modified: ../../src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
Relationen auf verschiedene Numeric-Typen umgestellt
im equals Null abgefragt
2018-05-24 10:28:22 +02:00
Martin Plümicke 876ec6a4f6 Merge branch 'bytecode2' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unifyOptimierung
Conflicts:
	src/de/dhbwstuttgart/core/JavaTXCompiler.java
solved
2018-05-24 09:41:15 +02:00
Martin Plümicke 26d9b1215f modified: ../../src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
modified:   ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/interfaces/IFiniteClosure.java
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/ExtendsType.java
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/FunNType.java
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/PlaceholderType.java
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/ReferenceType.java
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/SuperType.java
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/UnifyType.java
	modified:   ../../test/javFiles/Matrix.jav
F-Bounded angefangen
2018-05-24 09:17:31 +02:00
Fayez Abu Alia 0f29bc038a Bugs gefixt. Tests für relationalen Operatoren(GreaterEqualTest, ...) laufen.
Für Typplaceholder werden Generics verwendet.

Neue Tests angefügt.
2018-05-23 15:38:41 +02:00
Martin Plümicke a5ed5a2a46 Merge branch 'unifyOptimierung' into plugin 2018-05-22 17:29:44 +02:00
Martin Plümicke c597b0430a modified: ../../src/de/dhbwstuttgart/core/JavaTXCompiler.java
cardProd als Variable eingfuegt
	modified:   ../../src/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java
toString() eingfuegt
	modified:   ../../src/de/dhbwstuttgart/syntaxtree/GenericDeclarationList.java
toString() eingfuegt
	modified:   ../../src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
BinaryOp <. statt =.
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Bei nicht importierten (result []) undefinPair gesetzt
	modified:   ../javFiles/Matrix.jav
falsche importe rausgenommen
2018-05-22 17:10:07 +02:00
Martin Plümicke 06a0cb8eaf modified: TypeUnifyTask.java
noAllErasedElements eingefuegt
2018-05-19 10:13:08 +02:00
Martin Plümicke b5a601d798 modified: TypeUnifyTask.java
Varianceweitergabe in den verschiedenen Cases eingefuegt
Erste Zaehlungen eingefuegt
2018-05-19 09:50:57 +02:00
Martin Plümicke 7ea6777906 modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   ../javFiles/Lambda.jav
	modified:   ../typeinference/UnifyTest.java
2018-05-18 13:12:49 +02:00
Martin Plümicke 6b1896f58c modified: src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
modified:   src/de/dhbwstuttgart/typeinference/unify/distributeVariance.java
greaterFUNN und smallFUNN fuer generierte TPHs Variance gesetzt
	modified:   test/javFiles/Lambda.jav
vom bytecode ruebergeholt
2018-05-18 09:55:45 +02:00
Martin Plümicke d81c06cdd9 modified: ../../src/de/dhbwstuttgart/typeinference/unify/distributeVariance.java
Implementierung fuer FuNN eingefuegt
	deleted:    ../../src/de/dhbwstuttgart/typeinference/unify/inheritVariance.java

wahrscheinlich bei FuNN-Regeln Variance setzen.
2018-05-18 00:03:07 +02:00
Martin Plümicke 8baff8f376 modified: ../../src/de/dhbwstuttgart/core/JavaTXCompiler.java
Variancenvererbung eingefuegt
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Variancenvererbung geloescht
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/PlaceholderType.java
	modified:   ../../test/typeinference/UnifyTest.java
2018-05-17 22:51:41 +02:00
Martin Plümicke bc2cab8c95 modified: src/de/dhbwstuttgart/core/JavaTXCompiler.java
modified:   src/de/dhbwstuttgart/syntaxtree/factory/UnifyTypeFactory.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/PlaceholderType.java
	modified:   test/javFiles/Lambda.jav
	modified:   test/javFiles/Lambda3.jav
2018-05-17 18:07:21 +02:00
JanUlrich dca5d21c23 JavaCompilerCoreWithDependencies upload 2018-05-17 12:47:01 +02:00
Martin Plümicke 51a2acdbaf modified: src/de/dhbwstuttgart/core/JavaTXCompiler.java
modified:   test/typeinference/UnifyTest.java
2018-05-17 11:42:03 +02:00
Fayez Abu Alia dcc36f082f code aufräumen 2018-05-16 13:37:31 +02:00
Fayez Abu Alia 9575afd0b4 Fun umbenannt und Argumente umgedreht 2018-05-15 10:33:30 +02:00
Martin Plümicke 5c797a44a1 modified: ../../src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
disableWildcardtable in den FUNN-Regeln eingefuegt.
2018-05-10 09:07:33 +02:00
Martin Plümicke 87dbcfdad4 Merge branch 'unifyOptimierung' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unifyOptimierung
Merge
2018-05-09 18:10:17 +02:00
Martin Plümicke 8048af2106 modified: ../../test/javFiles/Lambda2.jav
modified:   ../../test/typeinference/UnifyTest.java
2018-05-09 18:10:08 +02:00
Martin Plümicke e4243b612c modified: src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
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
2018-05-09 18:05:06 +02:00
Martin Plümicke da4c59f2cf modified: ../../src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
modified:   ../../test/typeinference/UnifyTest.java
2018-05-09 16:24:28 +02:00
Martin Plümicke 1c22fc7d57 Merge branch 'bytecode2' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unifyOptimierung
merge bytecode2
2018-05-09 13:29:11 +02:00
Martin Plümicke 0b7aea21d9 modified: ../../test/bytecode/LambdaTest.java
modified:   ../../test/bytecode/javFiles/Lambda2.jav
2018-05-08 18:52:43 +02:00
Fayez Abu Alia 521a1cbf3b Bug 77 gefixt 2018-05-08 17:42:58 +02:00
Martin Plümicke 22ca2cbd4a modified: BytecodeGenMethod.java 2018-05-08 11:28:24 +02:00
Fayez Abu Alia 49ea4ee283 Pfad der erzeugten klassendateien angepasst 2018-05-08 10:19:13 +02:00
Martin Plümicke 225dc16a89 modified: test/typeinference/UnifyTest.java 2018-05-08 09:23:20 +02:00
Martin Plümicke 4738add4fc modified: ../../../../../test/javFiles/Matrix.jav
modified:   ../../../../../test/typeinference/UnifyTest.java
2018-05-07 15:31:31 +02:00
JanUlrich bc99dc4c8b Merge branch 'plugin' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into plugin 2018-05-02 21:30:11 +02:00
JanUlrich 2bbf9eac36 target/repository anlegen 2018-05-02 21:08:32 +02:00
Fayez Abu Alia a785c85d42 tests 2018-05-02 20:54:07 +02:00
Martin Plümicke ec2b501e63 new file: test/javFiles/LambdaField.jav
modified:   test/typeinference/UnifyTest.java
Lambda-Ausdruck als Attribute/field eingefuegt
2018-04-26 15:10:23 +02:00
Martin Plümicke 8be4f94edf modified: test/javFiles/Matrix.jav
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
2018-04-25 23:32:12 +02:00
Fayez Abu Alia 1b6cae1be0 GenTest angefügt 2018-04-25 16:44:27 +02:00
JanUlrich 41774b3faf Merge mit bytecode 2018-04-25 16:13:23 +02:00
Martin Plümicke 62d44eb15c modified: ../../src/de/dhbwstuttgart/core/JavaTXCompiler.java
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
2018-04-24 00:53:33 +02:00
Martin Plümicke 5f8c73f176 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
In compare wird die Gleichung a =. Theta neu gefiltert
2018-04-22 00:56:49 +02:00
Martin Plümicke 0ae777b4ac modified: src/de/dhbwstuttgart/core/JavaTXCompiler.java
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
2018-04-20 23:52:12 +02:00
Martin Plümicke 087170bdbf modified: src/de/dhbwstuttgart/core/JavaTXCompiler.java
modified:   src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/Unifier.java
Variance wieder auskommentiert
	modified:   test/javFiles/Matrix.jav
import String
2018-04-20 13:16:49 +02:00
Martin Plümicke 93d0caaefb modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Varianceberechnung geaendert
2018-04-20 09:36:29 +02:00
Martin Plümicke 1f031149d3 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/Unifier.java
Varianceweitergabe eingefuegt
2018-04-20 01:08:35 +02:00
Martin Plümicke fc870fd706 modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java 2018-04-18 19:44:00 +02:00
stan 4450f5c0cd Merge 2018-04-18 15:08:37 +02:00
Fayez Abu Alia 478a2df3dc Statische Methoden Test 2018-04-18 11:51:10 +02:00
Martin Plümicke 59243d9f94 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java 2018-04-17 16:31:13 +02:00
Martin Plümicke 82b08c5aae modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
Wildcard Ordnung veraendert
2018-04-17 14:25:52 +02:00
Martin Plümicke 615983bf37 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
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
2018-04-13 18:13:31 +02:00
Martin Plümicke 21bc2a67a1 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java 2018-04-11 16:58:38 +02:00
Fayez Abu Alia 52a96d7253 OL Test eingefügt 2018-04-11 13:55:32 +02:00
Martin Plümicke fef4d27d21 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java 2018-04-11 11:10:08 +02:00
Martin Plümicke 603c4c9c46 modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
logging ergaenzt

	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/Unifier.java
getSubstitution() durch getAllSubstitutions() ersetzt
2018-04-06 20:01:14 +02:00
Martin Plümicke baee0024e9 modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
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
2018-04-05 18:09:24 +02:00
Martin Plümicke 1baaf79f8c modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
UndefPairs werden zurueckgegegeben und die naechsten gefiltert

protected boolean isUndefinedPairSet(Set<UnifyPair> s) hat Fehler
2018-04-04 21:47:07 +02:00
Martin Plümicke 52f480147e modified: src/de/dhbwstuttgart/typeinference/unify/MartelliMontanariUnify.java
modified:   src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/Unifier.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java

Subsitution auf UnifyPair umgestellt
2018-04-04 01:14:30 +02:00
Martin Plümicke 9717c54d53 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Mehrfacher Aufruf von computeCartesianRecursive entfernt
2018-04-03 14:16:38 +02:00
Martin Plümicke c271c689de modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
abhaengige Substitutionen auch bei Faellen 1 - 8 eingefuegt
2018-04-03 10:29:58 +02:00
Martin Plümicke 24c27303dd modified: src/de/dhbwstuttgart/typeinference/unify/MartelliMontanariUnify.java
modified:   src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/Unifier.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
Substututions die eine UnifyPair erzeugen eingefuegt
UnifyCase1-8 weitermachen
2018-04-01 22:04:10 +02:00
Martin Plümicke 117106a7b3 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
? 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
2018-04-01 17:07:58 +02:00
Martin Plümicke 5680f913ef modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
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
2018-03-28 17:42:25 +02:00
stan 22ff521d08 Aufräumen 2018-03-28 15:35:04 +02:00
Fayez Abu Alia 32ab198f9e Bugfix für duplicate methods 2018-03-28 14:57:36 +02:00
Martin Plümicke fae26a8f26 modified: src/de/dhbwstuttgart/typeinference/unify/freshPlaceholder.java
modified:   src/de/dhbwstuttgart/typeinference/unify/interfaces/UnifyTypeVisitor.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/ExtendsType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/FunNType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/PlaceholderType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/ReferenceType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/SuperType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/UnifyType.java

Visitors verallgemeinert
2018-03-28 12:06:23 +02:00
Fayez Abu Alia bb5a4e8580 Bug 72 gefixt 2018-03-28 11:31:32 +02:00
JanUlrich 000c16b907 Gencoy ASP Generator implementieren 2018-03-27 23:56:12 +02:00
JanUlrich 87a2ed8117 APS GeneratorTest.simple anfügen 2018-03-27 14:25:54 +02:00
Fayez Abu Alia a0de7a4467 Test, bei dem Bug 72 auftritt 2018-03-24 20:28:26 +01:00
JanUlrich 4886976752 Fehler in FCGenerator beheben 2018-03-23 17:20:15 +01:00
JanUlrich daf684deef ASP Factory für Algorithmus von Herr Gencay 2018-03-23 16:54:32 +01:00
Martin Plümicke 0b680f831d modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
2018-03-22 20:40:22 +01:00
JanUlrich 41c87e3085 Merge branch 'bigRefactoring' into sat 2018-03-22 13:50:30 +01:00
JanUlrich bcee5e5209 Fehler im Parsen von Package beheben 2018-03-22 11:41:59 +01:00
Martin Plümicke 95e9b2dbda modified: src/de/dhbwstuttgart/core/JavaTXCompiler.java
modified:   src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/PlaceholderType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
Variance auf PlacehloderType uebertragen
2018-03-22 11:26:29 +01:00
JanUlrich 72f27fab7a Fehler in ASTFactory Generierung von Superinterfaces beheben 2018-03-22 11:17:51 +01:00
JanUlrich 06bb978cf6 Testfall erweitern 2018-03-21 18:08:33 +01:00
Pluemicke Martin dbe05bb718 modified: src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/FCGenerator.java
Feher rausgemacht

TODO: Varianven werden nicht uebertragen wahrscheinlich subst
2018-03-21 17:37:34 +01:00
JanUlrich 9a735e86dd GenericFC Test anfügen 2018-03-21 17:26:43 +01:00
JanUlrich 240d57a8ba Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2018-03-21 17:26:23 +01:00
stan dd18c7c40e Test anfügen 2018-03-21 17:24:12 +01:00
JanUlrich 45ccfb58e3 Test commit 2018-03-21 17:10:40 +01:00
Pluemicke Martin 4ac99b61bf Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unify-test 2018-03-21 17:07:14 +01:00
Pluemicke Martin f107c8d1f7 modified: src/de/dhbwstuttgart/core/JavaTXCompiler.java
Variancebestimmung fuer Argument- und Returntypen der Methoden eingefuegt.
2018-03-21 17:03:32 +01:00
stan 161c1a1b53 Test anfügen 2018-03-21 15:15:31 +01:00
stan 6b1a4eddfc Java 9 zu Java 8 ändern. Sollte ausreichen 2018-03-21 14:40:47 +01:00
JanUlrich ae7a63fbca Tests fix 2018-03-21 14:22:30 +01:00
stan 79810be94f FC Generator berücksichtig interfaces 2018-03-21 14:21:50 +01:00
Fayez Abu Alia 8870bc326c Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2018-03-21 13:47:19 +01:00
Fayez Abu Alia e1c6369bcb Bytecode für Post-/Preincrement und Post-/Predecrement 2018-03-21 13:08:39 +01:00
Pluemicke Martin 46255efb70 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unify-test 2018-03-21 11:29:01 +01:00
JanUlrich fb77f9192f Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2018-03-21 11:28:35 +01:00
JanUlrich a71e56ea97 Fix 2018-03-21 11:28:21 +01:00
Pluemicke Martin 5dfa6769b2 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unify-test 2018-03-21 11:16:45 +01:00
JanUlrich 77be216ee5 Fix 2018-03-21 11:15:59 +01:00
Pluemicke Martin 100db9baac Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unify-test
Fehler by atElement
2018-03-21 11:13:20 +01:00
JanUlrich e1f579664a Fix Generics in MethodCall 2018-03-21 11:12:06 +01:00
JanUlrich 7a9c0a1e69 LambdaRunnableTest fix 2018-03-21 11:09:29 +01:00
JanUlrich 7e5aa852d7 Fehler fix 2018-03-21 10:35:46 +01:00
Martin Plümicke 5d39863cc6 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Maximumsbildung auf maximale Elemente soweit fertig
Argument von mul funktion nicht, liefret nur Vec<TypPl>
2018-03-20 22:30:57 +01:00
Martin Plümicke 01dd4e57e6 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
Letzte Version bevor MatchUnifyTask
2018-03-20 10:14:01 +01:00
Martin Plümicke 6faffdf90c modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java 2018-03-19 17:43:27 +01:00
Martin Plümicke f4bc057aff modified: src/de/dhbwstuttgart/core/JavaTXCompiler.java
LogAusgabe FC

	modified:   src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
fresh TV in unifyCase1 auf alle cs ausgedehnt
	modified:   test/javFiles/Matrix.jav
2018-03-19 15:25:40 +01:00
Martin Plümicke 78db0f0177 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Errorrueckgabe auskommentiert
	new file:   src/de/dhbwstuttgart/typeinference/unify/interfaces/UnifyTypeVisitor.java
eingecheckt vorher vergessen
	modified:   test/javFiles/Matrix.jav
add und mul aktiviert
2018-03-19 09:38:37 +01:00
Fayez Abu Alia 3233ccd845 Overloading funktioniert. Erzeugt Bytecode für Postincrement (für Integers). 2018-03-18 16:08:52 +01:00
Martin Plümicke b0b1426e20 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
new file:   src/de/dhbwstuttgart/typeinference/unify/freshPlaceholder.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/ExtendsType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/FunNType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/PlaceholderType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/ReferenceType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/SuperType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/UnifyType.java
freshtypevraiable Vistor soweit fertig noch nicht getestet
2018-03-18 15:11:45 +01:00
Martin Plümicke 103c7e4b14 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   src/de/dhbwstuttgart/typeinference/unify/model/ExtendsType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/FunNType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/PlaceholderType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/ReferenceType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/SuperType.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/TypeParams.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/UnifyType.java
visitor freshPlaceholder implements UnifyTypeVisitor
2018-03-17 15:01:03 +01:00
Martin Plümicke 3638edfa73 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   test/javFiles/Matrix.jav
Fehler entdeckt, in unifyCase1 fuer die Typen aus FC keine fresh TV getsetzt werden.
2018-03-16 14:10:40 +01:00
Martin Plümicke bd98bed5ca Merge branch 'unify-test' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unify-test
Merge
2018-03-15 20:50:59 +01:00
Martin Plümicke 6299086297 modified: typeinference/unify/TypeUnifyTask.java
modified:   typeinference/unify/model/UnifyPair.java
2018-03-15 20:47:16 +01:00
Martin Plümicke de5b43d72b modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   src/de/dhbwstuttgart/typeinference/unify/model/Unifier.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java

Links der substitierten Pare eingefuegt.
2018-03-15 17:00:26 +01:00
Martin Plümicke 7e6dee8e1d modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   ../javFiles/Matrix.jav
2018-03-14 17:48:04 +01:00
Fayez Abu Alia dafcd2f125 Bytecode für While-Schleifen 2018-03-14 15:51:38 +01:00
JanUlrich 6a5ababa51 ANTLR Parsetreewalker für ASP Result implementieren 2018-03-14 14:32:36 +01:00
Martin Plümicke 273ddb92d7 modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/UnifyPair.java
	modified:   ../javFiles/Matrix.jav
2018-03-14 13:56:28 +01:00
JanUlrich 4a2b901465 aufräumen 2018-03-13 14:53:27 +01:00
Martin Plümicke dea3da3b69 Merge branch 'bigRefactoring' into unify-test
Fehelr mit elementAt geloest
2018-03-13 10:41:57 +01:00
Martin Plümicke 13c70148a8 modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
	modified:   ../javFiles/Matrix.jav
mul1 und add ergaenzt.
Fehler bei elementAt: Liefert Object als Returntyp
2018-03-13 08:46:25 +01:00
JanUlrich bb5945898a Bug in ASTFactory beseitigen 2018-03-13 01:57:21 +01:00
JanUlrich 123f94aea7 ANTLR Parser für ASP Statements implementieren 2018-03-13 00:24:40 +01:00
JanUlrich dff72b0c97 ResultSetOutputGenerator 2018-03-12 00:38:02 +01:00
Martin Plümicke 1667b394f2 modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
Variancen gesetzt
2018-03-11 20:39:38 +01:00
Martin Plümicke 95943b1627 modified: src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
compare(Matrix, Vector<gen_ab>, ? extends Vector<? extends Integer>> <.? gen_ab
   eingefuegt.
2018-03-10 12:32:07 +01:00
Martin Plümicke 0315a1f144 modified: ../../src/de/dhbwstuttgart/core/JavaTXCompiler.java
modified:   ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnify.java
	modified:   ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
compare(Matrix, Vector<gen_ab>, ? extends Vector<? extends Integer>> <.? gen_ab
funktioniert nicht
2018-03-10 01:04:19 +01:00
Fayez Abu Alia 52a5fd7904 erzeugt Bytecode für relationale Operatoren. Getestet. 2018-03-09 21:57:39 +01:00
Martin Plümicke b5b5b5d9c9 modified: ../../src/de/dhbwstuttgart/typeinference/constraints/Pair.java
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.
2018-03-09 01:23:02 +01:00
JanUlrich 83aaff140c Aufräumen 2018-03-08 01:44:40 +01:00
JanUlrich 3deaceec01 UnifyWithoutWildcards Test läuft durch 2018-03-08 01:41:38 +01:00
Martin Plümicke 9862df9e63 modified: ../../src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   ../../src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java

Minimum funktion soweit
2018-03-08 01:12:17 +01:00
JanUlrich 9f2702276f Fehler beheben 2018-03-08 00:03:26 +01:00
JanUlrich 87cf674352 Fehler in FCGenerator beheben 2018-03-07 23:07:53 +01:00
JanUlrich dfd6a1f532 erge branch 'bigRefactoring' into sat 2018-03-07 23:04:16 +01:00
JanUlrich e8388e2748 Aufräumen 2018-03-07 22:42:05 +01:00
JanUlrich 095f9a7956 Tests an neue ASPFactory anpassen 2018-03-07 22:41:00 +01:00
JanUlrich c4aec8379e Erste Version von ASPFactory implementieren 2018-03-07 21:52:46 +01:00
Martin Plümicke ccc16fd22b modified: ../../src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
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
2018-03-07 13:09:47 +01:00
Fayez Abu Alia 54cf24926e Bytecode arithmetische Operatoren unterschiedlischer Typen vollständig und getestet 2018-03-07 12:26:30 +01:00
Fayez Abu Alia 94d39ee21a Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2018-03-07 11:49:16 +01:00
JanUlrich 725b071d28 Problem mit BinaryExpr gefixt 2018-03-07 08:47:43 +01:00
JanUlrich 284af1246b Nicht lauffähig. ASPFactory neu implementieren 2018-03-07 07:41:46 +01:00
Fayez Abu Alia f453343f1c Bytecode für arithmetische Operatoren mit Parametern unterschiedlicher Typen. Testfälle bereinigt und aufgeräumt. 2018-03-06 19:14:27 +01:00
Martin Plümicke bb016e6417 modified: src/de/dhbwstuttgart/typeinference/unify/interfaces/IFiniteClosure.java
modified:   src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
2018-03-05 20:04:10 +01:00
Martin Plümicke 831bf1fe17 modified: src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
weitere Fälle in die Ordnung eingebaut
2018-03-04 22:58:31 +01:00
Martin Plümicke cba489f279 modified: src/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
eine Variable korrigiert
TODO eingefuegt
compare muss fuer ale moeglichen Faelle aus calculatePairSets erstellt werden
2018-03-03 01:07:25 +01:00
Martin Plümicke 9f3439a15e x 2018-03-02 14:12:06 +01:00
Martin Plümicke 356b8a7a34 modified: src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
modified:   src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Eq for Unify vereinfachen noch nicht fertig
2018-03-01 18:00:38 +01:00
JanUlrich ab37e1a607 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2018-03-01 15:03:48 +01:00
JanUlrich 18545cff9a GenericRefType umgestalten. Unnötige Backreferenzen entfernen 2018-03-01 13:25:03 +01:00
JanUlrich 9840281d83 Test für ASP anfügen 2018-03-01 12:31:56 +01:00
Martin Plümicke 6256bdfe2e modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
In Unfy:
- Bildung des kartesischen Produkts auf secondlevel-Ebene entfernt

In computeCartesianRecursive:
- Vereinigung der Ergebnisse ueber die Schleifen und die Rekursion eingefuegt
- Minimumbestimmung korrigiert
2018-03-01 12:27:38 +01:00
Martin Plümicke 6a9db81981 Merge 2018-02-28 17:16:28 +01:00
Pluemicke Martin 53087a8e04 result.add wieder aktiviert 2018-02-28 17:11:50 +01:00
JanUlrich aa631b5099 UnifyTest korrekt benennen 2018-02-28 16:35:45 +01:00
JanUlrich a3a02fe475 Merge branch 'bigRefactoring' into unify-Test 2018-02-28 16:34:48 +01:00
JanUlrich 99ce7c1122 <, > Operatoren einführen 2018-02-28 16:33:18 +01:00
Martin Plümicke cef82c6359 Typgenerator auf alten Stand setzen, damit Matrix test lauft 2018-02-28 16:27:08 +01:00
Martin Plümicke 67fe88215a eigenerTest 2018-02-28 16:25:45 +01:00
Martin Plümicke f31023b4fa merge2 2018-02-28 16:16:22 +01:00
Martin Plümicke a733eee8b5 merge 2018-02-28 16:12:57 +01:00
Martin Plümicke 15f5a2dc76 Merge branch 'bigRefactoring' into unify-Test 2018-02-28 16:10:08 +01:00
Martin Plümicke 6fcaafe477 test 2018-02-28 16:07:02 +01:00
Fayez Abu Alia 35b99a4095 Bytecode kann für folgende Operationen +,-,*,/,% erzeugt werden 2018-02-28 15:59:21 +01:00
JanUlrich 327f36f1c2 Faculty Test ändern. UnifyTypeFactory konvertiert automatisch FunN Typen korrekt 2018-02-28 15:21:12 +01:00
Fayez Abu Alia 6b57aacef0 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2018-02-28 14:58:58 +01:00
JanUlrich f023754328 TypeStmt für +,-,/,*,% einführen 2018-02-28 14:50:16 +01:00
JanUlrich 77aaa0ecb6 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2018-02-28 13:32:51 +01:00
JanUlrich 9f9a94b5cf Testfälle bereinigen 2018-02-28 13:32:36 +01:00
JanUlrich b66d06a165 Merge branch 'parser' into bigRefactoring 2018-02-28 11:53:53 +01:00
JanUlrich 92b110a971 Funktionierender Clingo Test 2018-02-27 19:10:16 +01:00
Fayez Abu Alia 2277f68509 Ordner manually/ in .gitignore hinzugefügt 2018-02-25 13:20:19 +01:00
Martin Plümicke 1c0fa6a820 modified: de/dhbwstuttgart/typeinference/unify/RuleSet.java
modified:   de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
logFile eingefuegt
2018-02-24 19:56:22 +01:00
Fayez Abu Alia 59569380ed Kleiner Bug beseitigt 2018-02-23 20:17:32 +01:00
Fayez Abu Alia 4fbcf87e0c Methoden visit(assign)/visit(literal) angepasst und generiert bytecode für Binaryexpressions. noch nicht fertig 2018-02-23 20:10:11 +01:00
JanUlrich 10b5d87119 Merge branch 'bigRefactoring' into sat 2018-02-23 11:14:47 +01:00
JanUlrich 73c37027d9 Fehler in TypeStmt UnaryExpression beheben 2018-02-23 09:16:12 +01:00
Martin Plümicke 8e198679c7 Instabiler Zustand reduce funktionert nicht 2018-02-23 00:37:59 +01:00
Martin Plümicke 419e4a6d0e MERGE
Merge branch 'unify-test' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unify-test
2018-02-21 17:55:47 +01:00
Pluemicke Martin 5cd2ee7d80 geändert: src/de/dhbwstuttgart/core/JavaTXCompiler.java
geändert:   src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
recursiveCartesionProduct wieder entfernt
2018-02-21 17:54:26 +01:00
Martin Plümicke 9c35f04a09 modified: src/de/dhbwstuttgart/typeinference/unify/RuleSet.java 2018-02-21 17:22:23 +01:00
Fayez Abu Alia 6808535f67 Merge branch 'parser' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2018-02-21 15:45:22 +01:00
Fayez Abu Alia ac4a79f0e7 Additive/multiplicativeExpression und UnaryExpression implementiert 2018-02-21 15:43:28 +01:00
Martin Plümicke 89246ece5c modified: src/de/dhbwstuttgart/core/JavaTXCompiler.java
modified:   src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
	modified:   test/javFiles/Matrix.jav
2018-02-21 14:02:48 +01:00
Fayez Abu Alia 7c2f7c54dd Kleine Änderung 2018-02-21 11:44:03 +01:00
JanUlrich c747ab0885 Additive Expression implementieren 2018-02-21 11:40:54 +01:00
JanUlrich 6cf98f200b Merge branch 'bytecode2' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2018-02-21 11:05:57 +01:00
JanUlrich ed3a3909c0 Merge branch 'bytecode2' into bigRefactoring 2018-02-21 11:05:25 +01:00
JanUlrich d53faa0c86 FiniteClosure korrekt generieren 2018-02-19 11:33:08 +01:00
JanUlrich b7bb0fa1c4 Vector Test Fehler beheben 2018-02-19 04:47:10 +01:00
JanUlrich 166aa5e506 merge mit sat 2018-02-19 04:22:08 +01:00
Martin Plümicke 5270cecec9 Changes to be committed:
modified:   src/de/dhbwstuttgart/core/JavaTXCompiler.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   test/javFiles/Matrix.jav

Fehler in der Aufteilung von Unify korrigiert.
Equalcheck in Schritt 6 wiedre eingefuegt.
2018-02-14 17:45:08 +01:00
Fayez Abu Alia f6e0c561bb Merge branch 'bytecode2' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2018-02-14 14:38:46 +01:00
Fayez Abu Alia a45aa50574 erzeugt bytecode für Zuweisung von Literale 2018-02-14 14:37:36 +01:00
JanUlrich 191a1166b9 ASP Generator auf neues Format anpassen 2018-02-13 05:25:18 +01:00
JanUlrich 6e770b5ec5 Java 9: Classloader ändern
*
2018-02-12 22:32:03 +01:00
Martin Plümicke 87fe51767c modified: src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
Reduce 1
C und D koennen auch gleich sein.
Muss nochmals ueberprueft werden.
2018-02-09 22:55:40 +01:00
Martin Plümicke f0610aeff1 Changes to be committed:
modified:   src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   test/typeinference/JavaTXCompilerTest.java
2018-02-09 21:32:15 +01:00
Martin Plümicke e4fbd17a55 modified: src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
modified:   test/javFiles/Matrix.jav
Rekursive Berechnung des Kartesischen Produkts
2018-02-08 00:02:27 +01:00
Martin Plümicke 9c526f20fb merge 2018-02-07 16:56:11 +01:00
Martin Plümicke 1f269918fb nicht lauffaehig 2018-02-07 16:53:24 +01:00
Martin Plümicke 2d5c863008 HEAD detached at 2f994cdf
Changes to be committed:
Aenderungen am Unify: Fehler behoben und Vereinfachung

	modified:   src/de/dhbwstuttgart/core/JavaTXCompiler.java
	new file:   src/de/dhbwstuttgart/typeinference/unify/Match.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	new file:   src/de/dhbwstuttgart/typeinference/unify/interfaces/IMatch.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/Node.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/TypeParams.java
	modified:   src/de/dhbwstuttgart/typeinference/unify/model/Unifier.java
	modified:   test/javFiles/Matrix.jav
2018-02-07 14:38:45 +01:00
Martin Plümicke 22499f09e8 modified: src/de/dhbwstuttgart/typeinference/unify/model/TypeParams.java
Zeile 101 Dangling-else Problematik behoben
War Fehler im Occurs-Cheeck von Montanari-Martelli.
2018-02-01 00:17:12 +01:00
JanUlrich 1f89238fe4 Kleiner Bug beseitigt. Ungetesteter Stand 2018-01-31 18:38:52 +01:00
Fayez Abu Alia c61dd5411e Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2018-01-31 16:47:18 +01:00
Fayez Abu Alia 52487f3389 test LamAssign 2018-01-31 16:47:08 +01:00
stan 5a3dcd7100 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into plugin 2018-01-31 16:43:04 +01:00
JanUlrich 2f994cdfa8 java.lang. nicht standardmäßig importieren 2018-01-31 16:42:51 +01:00
JanUlrich 9c4f763c9a java.lang. nicht standardmäßig importieren 2018-01-31 16:42:25 +01:00
JanUlrich 8f9c07d88e Merge 2018-01-31 16:18:29 +01:00
Fayez Abu Alia b32e437a05 Fehler 2018-01-31 16:16:05 +01:00
JanUlrich 48e2d2eec2 Tests fixen 2018-01-31 16:15:07 +01:00
stan 1a1ab2696d Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into plugin 2018-01-31 16:06:21 +01:00
Fayez Abu Alia 1888eb6d46 merge 2018-01-31 15:57:58 +01:00
Fayez Abu Alia 56d919f446 bug fix 2018-01-31 15:55:02 +01:00
JanUlrich 15d120d594 Funktionsfähiges Matrix Beispiel, aber nicht komplett 2018-01-31 15:51:38 +01:00
JanUlrich e556a470e7 Literal löschen 2018-01-31 15:39:19 +01:00
Fayez Abu Alia 398c1992fa merge 2018-01-31 14:23:19 +01:00
Fayez Abu Alia 9a94ba2114 unnötige Kommentare wurden entfernt 2018-01-31 14:16:20 +01:00
JanUlrich cdcebdd4ac Merge 2018-01-31 13:36:35 +01:00
JanUlrich 8e4791cca6 Anpassungen im Matrix Test 2018-01-31 13:34:54 +01:00
JanUlrich 3ce4937bc1 Fehler im Trailing Return anhängen beheben 2018-01-30 02:23:58 +01:00
JanUlrich 027538a082 Unary Expression und while statement anfügen 2018-01-30 01:08:21 +01:00
Martin Plümicke 39793b461e modified: test/javFiles/Matrix.jav
Falsche Typen in methode korrigiert.
2018-01-29 22:35:48 +01:00
Martin Plümicke 29173ba172 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring
Genauere Fehlermeldung im Unify
2018-01-29 21:32:46 +01:00
Martin Plümicke 5d94820fed modified: src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
modified:   src/de/dhbwstuttgart/typeinference/unify/model/Node.java
Genauere Fehlermeldung
2018-01-29 21:30:45 +01:00
JanUlrich c7dea4c86b Matrix Test 2018-01-29 18:26:14 +01:00
JanUlrich ede55d228e Fehler in ASTFactory beheben. GenericRefType statt RefType in den Parameterlisten 2018-01-29 17:35:49 +01:00
JanUlrich 0610ea8e63 FC Generator 2018-01-29 17:32:25 +01:00
stan 9186f5dff5 Alle Dependencies werden in eine Jar gepackt. Diese in Eclipseplugin umwandeln und einbinden funktioniert \o/ 2018-01-24 19:05:09 +01:00
stan 5c9b40e0b7 Rumprobieren. Nicht lauffähig 2018-01-24 16:37:01 +01:00
JanUlrich 8d12821c68 Methode erbt nicht mehr von Feld 2018-01-21 11:38:55 +01:00
JanUlrich 311d7ee63a Merge branch 'bigRefactoring' into sat 2018-01-21 11:17:46 +01:00
JanUlrich bd0678f362 Lokales Repo eintragen 2018-01-21 11:17:20 +01:00
stan a08e2e8815 Versuche google und reflections auch noch als plugin zu verpacken. WIll nicht funktionieren 2018-01-19 17:48:25 +01:00
stan 47689f2fc6 ZIP-FIle erstellen 2018-01-19 16:55:23 +01:00
stan b7aca99301 local maven repository 2018-01-19 16:36:08 +01:00
JanUlrich 8920b32020 Unnötige import entfernen 2018-01-19 15:28:54 +01:00
JanUlrich 1f5071d4e4 Methode soll kein Feld mehr sein. Nicht lauffähig! 2018-01-19 15:24:49 +01:00
stan da41857a4f Plugin deploy backup 2018-01-19 15:22:29 +01:00
stan 09dcdaeb96 Local Repo anfügen 2018-01-19 15:14:39 +01:00
stan 6d0392956d Pom anpassen 2018-01-19 14:34:41 +01:00
Fayez Abu Alia 542f87e8a3 erzeugt Klassendatei für FunN 2018-01-17 13:49:18 +01:00
JanUlrich 57df329751 Merge branch 'bigRefactoring' into sat 2018-01-12 22:47:49 +01:00
Fayez Abu Alia 7b24e2d83f bytecode für Generics: LamAssignTest funktioniert richtig 2018-01-10 15:37:50 +01:00
JanUlrich b1b1cfdc54 --amend 2018-01-10 12:14:20 +01:00
JanUlrich 672373fc8d --amend 2018-01-10 12:11:51 +01:00
JanUlrich ab86cc3229 RefType.toString(): Ausgabe von Parameterliste implementieren 2018-01-10 12:10:01 +01:00
JanUlrich 0c19cc7400 Merge branch 'bigRefactoring' into bytecode2 2018-01-10 11:58:03 +01:00
Fayez Abu Alia 268056542b erzeugt bytecode für generics 2018-01-10 11:36:29 +01:00
JanUlrich 19a1ef4024 Erste lauffähige aber unvollständige Version des UnifyWithoutWildcards 2018-01-10 10:53:07 +01:00
JanUlrich 3c732346d9 ASPParameterlist erzeugt auch paramNum 2018-01-06 09:38:53 +01:00
Fayez Abu Alia 01339ca7ec Descriptor-Erzeugen neu mit Visitor-pattern implementiert 2017-12-28 10:20:28 +01:00
JanUlrich 6ddc4983b0 Fehler im Type beheben 2017-12-20 17:12:40 +01:00
JanUlrich 719d1a5ced Interface Modifier setzen 2017-12-20 15:59:07 +01:00
JanUlrich 90a9273fc2 TypeToStringVisitor 2017-12-20 15:37:33 +01:00
JanUlrich 009a638c9a FC ohne java.lang generieren 2017-12-20 15:27:39 +01:00
JanUlrich 55be865ab4 Bugfix 2017-12-20 15:06:04 +01:00
Fayez Abu Alia 01fd396d29 Test generics 2017-12-20 15:04:03 +01:00
JanUlrich dccdc5da2b Merge branch 'bigRefactoring' into bytecode2 2017-12-20 15:01:19 +01:00
JanUlrich 940c922c80 ResultSet kann GenericRefTypes auflösen 2017-12-20 15:01:02 +01:00
JanUlrich bdc2a83b1c Merge branch 'bytecode2' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2017-12-20 14:14:25 +01:00
Fayez Abu Alia d989100b47 korrekte bytecode 2017-12-20 14:14:05 +01:00
JanUlrich f015ef75f7 Merge branch 'bigRefactoring' into bytecode2 2017-12-20 13:43:46 +01:00
Fayez Abu Alia 5f731bb09c letzte tests 2017-12-20 13:35:55 +01:00
JanUlrich 09bdaa6a21 Generics Test erzeugt falsches ConstraintSet 2017-12-20 13:34:34 +01:00
JanUlrich e8757a179f ASP-Generierung: parameterListe 2017-12-18 14:43:03 +01:00
JanUlrich 3a444c0172 Aufräumen 2017-12-15 13:12:18 +01:00
Fayez Abu Alia ab36050f9b Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2017-12-15 09:01:59 +01:00
JanUlrich 9919ecd083 Anfangen mit Masterarbeit 2017-12-15 00:06:57 +01:00
JanUlrich 7d8e8249ed Merge branch 'sat' into bigRefactoring 2017-12-15 00:05:47 +01:00
JanUlrich fb0ef510b2 Fehlende Klasse 2017-12-15 00:05:30 +01:00
Fayez Abu Alia 72fdf2dca8 merge 2017-12-14 21:20:57 +01:00
JanUlrich eb8db0e0eb TPH = TPH ist jetzt auch im ResultSet möglich. Anpassungen an der Generierung der Imports einer SourceFile; läuft noch nicht fehlerfrei 2017-12-14 17:44:43 +01:00
JanUlrich 5386227a34 Merge branch 'bigRefactoring' into sat 2017-12-14 00:06:11 +01:00
JanUlrich 5e675b9a93 Test anfügen 2017-12-13 13:34:22 +01:00
JanUlrich fd8df92c03 generatedBC-Directory anfügen 2017-12-13 13:32:00 +01:00
JanUlrich eddac2c8ed VoidMeth Test korrigieren 2017-12-13 13:15:11 +01:00
Fayez Abu Alia a8274bdc69 erzeugt bytecode fuer lambda 2017-11-29 14:45:15 +01:00
JanUlrich e702f745c3 Dirty fix 2017-11-29 14:31:07 +01:00
JanUlrich 4616f82b09 Merge branch 'bytecode2' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2017-11-22 13:15:21 +01:00
JanUlrich dbe47f41c1 FunNClass anfügen 2017-11-22 13:12:21 +01:00
JanUlrich b55d0779e9 ResultPairs des Unify Algorithmus könnnen nun auch Wildcard-Typen enthalten 2017-11-22 06:49:11 +01:00
JanUlrich 928396927e Faculty Test geht wieder 2017-11-16 17:28:50 +01:00
JanUlrich 9a886ed223 Typdeklarationen wie List, werden jetzt automatisch TPHs eingesetzt. (Als hätte man den Diamond-Operator benutzt) 2017-11-16 16:56:12 +01:00
JanUlrich 16e14f9363 Finite CLosure TEst läuft wieder halbwegs. Sonst unfertiger Zustand 2017-11-16 15:10:08 +01:00
JanUlrich b51d8356b7 Unvollständiger Zustand; Verknüpfung zwischen GTVs und TPH geändert. Änderungen in TypeStmt 2017-11-15 17:58:15 +01:00
JanUlrich 48dc76646b createPair Methode entfernen. Die Generics können nicht generell aufgelöst werden. (unvollständiger Zustand) 2017-11-14 19:28:46 +01:00
JanUlrich fea86460e8 Änderungen an der FC generierung und an dem Verhalten von GTVs im Type Algorithmus UNVOLLSTÄNDIG. Kleines Backup, da große Änderung am Type-Algorithmus noch ansteht. 2017-11-09 19:41:53 +01:00
Fayez Abu Alia 01703a73c5 generiert Bytecode fuer einfachen Lambda 2017-11-07 10:55:33 +01:00
Fayez Abu Alia bb5e697699 Merge branch 'bytecode2' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2017-11-03 14:18:32 +01:00
Fayez Abu Alia 5a026a431c kleine Aenderung 2017-11-03 14:17:36 +01:00
JanUlrich 1d767a7696 Matrix Test 2017-11-03 13:56:04 +01:00
JanUlrich d2fa9e00f8 Fix bug #60 2017-10-30 18:08:40 +01:00
JanUlrich 934e5f85f8 Unterschied zwischen Expr-Receiver und Classname-Receiver 2017-10-26 21:45:04 +02:00
JanUlrich bfa106913b extends in Parser implementieren. Dirty fix für fehlende Object-Klasse in der JavaClassNameRegistry 2017-10-18 16:40:27 +02:00
JanUlrich 44f4aa4b27 Test anfügen 2017-10-18 16:18:46 +02:00
JanUlrich a69b827805 Var Keyword ist kein keyword mehr, kann also auch als Variablennamen verwendet werden 2017-10-18 00:22:42 +02:00
JanUlrich 0c80a4c343 Fix bei Typeinsetzung 2017-10-16 19:19:42 +02:00
JanUlrich e18439918c Merge 2017-10-15 23:09:46 +02:00
JanUlrich b116139357 Guava Version update 2017-10-15 22:49:23 +02:00
JanUlrich 040300d78e unnötige Imports entfernen 2017-10-10 17:05:32 +02:00
JanUlrich c442e2ac17 Merge branch 'bigRefactoring' 2017-10-10 15:51:13 +02:00
JanUlrich 9607fcf980 Imports in parser implementieren 2017-10-10 15:34:52 +02:00
JanUlrich cecec91f74 Merge 2017-10-10 14:51:53 +02:00
JanUlrich 8c00d89731 Finite Closure beachtet imports 2017-10-10 14:47:05 +02:00
JanUlrich d5d74fef85 Merge 2017-10-06 14:13:31 +02:00
JanUlrich 36bb442bff Aufräumen 2017-10-06 13:34:03 +02:00
Fayez Abu Alia c595925112 Fehlende Tests anfügen 2017-10-06 13:31:36 +02:00
JanUlrich 0116643bc1 .gitignore erweitern 2017-10-06 13:24:17 +02:00
JanUlrich 8d6a722cec .gitignore erweitern 2017-10-06 13:23:48 +02:00
Fayez Abu Alia 672d40c557 Merge branch 'bytecode2' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2017-10-06 09:16:42 +02:00
JanUlrich 94c69cca55 Merge branch 'bigRefactoring' into bytecode2 2017-10-06 03:59:58 +02:00
JanUlrich 843dd7453d ANTLR Plugin + Configuration an pom.xml anfügen 2017-10-06 03:59:35 +02:00
Fayez Abu Alia ad36158a47 Test dateien 2017-10-05 20:23:27 +02:00
Fayez Abu Alia 7de617f0c1 test 2017-10-05 20:02:11 +02:00
JanUlrich 6738eecdf3 Merge 2017-10-05 19:21:30 +02:00
JanUlrich a011061f22 Merge branch 'bytecode2' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2017-10-05 18:29:37 +02:00
JanUlrich 15e18c5907 merge unvollständig 2017-10-05 18:29:27 +02:00
Fayez Abu Alia 4c213eb3cf generate bytecode 2017-10-05 18:25:52 +02:00
JanUlrich a194bdbc9f Aufräumen 2017-10-05 18:23:28 +02:00
JanUlrich e341d9075e Alle Klassen aus Standard Library laden 2017-10-05 01:13:08 +02:00
JanUlrich b104ff591f Aufräumen 2017-10-05 00:47:05 +02:00
JanUlrich bf8e6d1492 merge 2017-10-04 16:46:31 +02:00
JanUlrich bd024d9f4a Aufräumen 2017-10-04 16:39:02 +02:00
JanUlrich a78b7c5af3 unnötige librarys löschen 2017-10-04 13:26:18 +02:00
JanUlrich 5d5132faf4 Merge branch 'bigRefactoring' 2017-10-04 13:23:56 +02:00
Martin Plümicke 0a8236cd86 modified: src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
In reduceFunN:
&& (pair.getPairOp() != PairOperator.EQUALSDOT))     //PL 2017-10-03 hinzugefuegt
		                                                       //da Regel auch fuer EQUALSDOT anwendbar
			                                                   //TODO: fuer allen anderen Relationen noch pruefen
2017-10-03 22:06:37 +02:00
Martin Plümicke 7f888a1bf8 modified: src/de/dhbwstuttgart/typeinference/unify/RuleSet.java
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
2017-10-03 21:58:39 +02:00
Martin Plümicke fa92fee98d modified: .classpath
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);
2017-09-30 14:51:05 +02:00
JanUlrich 43413d5e3c Bugfix in Test 2017-09-28 16:55:29 +02:00
JanUlrich d24b2fa7d6 bcel entfernen. pom.xml anlegen 2017-09-28 16:52:07 +02:00
JanUlrich db9298e383 library adden 2017-09-26 12:37:21 +02:00
JanUlrich 1e0da98c4b auto-keyword zu var-keyword ändern 2017-09-25 23:47:38 +02:00
JanUlrich 4b44fba421 Bugfix 2017-09-25 16:49:27 +02:00
JanUlrich 07b159f9a3 Bugfix 2017-09-25 15:57:35 +02:00
JanUlrich 276ff44756 Berücksichtige TPH =. TPH Ergebnisse im ResultSet 2017-09-25 11:22:53 +02:00
JanUlrich b31da88902 Logik für Generics implementieren. Unvollständig 2017-09-25 01:14:02 +02:00
JanUlrich 6a1f5dc248 Unvollständiger Stand bei der Implementierung von Generics 2017-09-22 18:31:47 +02:00
JanUlrich 0e2390a80a GlobalGenerics eingeführt 2017-09-20 23:41:06 +02:00
JanUlrich 8ce017c2f2 Fehler beheben. PackageCrawler lauffähig 2017-09-20 18:20:52 +02:00
stan b8a5795bb3 PackageCrawler und CompilationEnvironment implementieren 2017-09-20 17:26:09 +02:00
stan 9b960329fc PackageCrawler wieder einführen. Unvollständig 2017-09-20 15:52:14 +02:00
stan b1adc4671d Environment einführen 2017-09-20 14:00:44 +02:00
JanUlrich 6e03d24582 Tests auslagern 2017-09-19 18:51:44 +02:00
JanUlrich f81496fe1f Fehler in TypeStmt beheben 2017-09-18 18:32:22 +02:00
JanUlrich 201a0978bc Constructor für IfStmt 2017-09-18 13:56:27 +02:00
JanUlrich 98331af3c0 Fehler in UnifyTypeConvert beheben 2017-09-07 19:52:05 +02:00
JanUlrich a355fe7786 fehler beheben 2017-09-07 18:37:56 +02:00
JanUlrich ea1e81bb95 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2017-09-07 17:03:15 +02:00
JanUlrich b6f62b48eb ResultSet um resolveType erweitern 2017-09-07 17:02:49 +02:00
Fayez Abu Alia 995af3004a Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2017-09-07 16:42:19 +02:00
Pluemicke Martin 5c66212afb neue Datei: S2017_Jan-Elric_Neumann.pdf 2017-09-04 09:30:59 +02:00
Fayez Abu Alia 9a233e437b bytecode 2017-08-30 18:08:05 +02:00
Fayez Abu Alia 9918e78f97 Merge branch 'master' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2017-08-30 17:21:17 +02:00
JanUlrich d245aa7367 Added Modifier to Method 2017-08-30 17:20:59 +02:00
Fayez Abu Alia 3d07f60145 Merge branch 'master' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2017-08-30 17:11:46 +02:00
JanUlrich 7c3181c3f0 Super-Statement an Constructor angefügt 2017-08-30 17:06:42 +02:00
JanUlrich b251a646ca System.out.println Statement schein halbwegs zu funktionieren ^^ 2017-08-30 15:29:34 +02:00
Fayez Abu Alia 276f235b56 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2017-08-30 14:43:53 +02:00
Fayez Abu Alia 866429ffe7 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode2 2017-08-30 14:43:31 +02:00
JanUlrich 4b21f03a5a Refactoring 2017-08-30 14:36:40 +02:00
JanUlrich a7e1a5e2c2 Fehler beheben 2017-08-28 18:36:26 +02:00
JanUlrich 932b277dcc Imports implementieren 2017-08-28 17:36:51 +02:00
JanUlrich 45c85b7686 Type refactoring 2017-08-28 15:42:51 +02:00
JanUlrich ff59b585bd TypeInsert ausbessern 2017-08-25 03:39:54 +02:00
JanUlrich 397ac3cd58 TypeInsert ausbessern 2017-08-25 02:59:16 +02:00
JanUlrich 77c59de0f0 Assign ändern. Es gibt jetzt eine AssignLeftSide 2017-08-23 18:28:26 +02:00
Fayez Abu Alia 6e72bbab16 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/gast/abualia/test/JavaCompilerCore into bytecode2 2017-08-23 17:27:23 +02:00
Fayez Abu Alia 43f017a224 Bytecode TEst 2017-08-23 17:26:59 +02:00
JanUlrich 9a7e717c25 Constructor um fieldInits erweitern, auch der TYPE algo 2017-08-23 16:24:25 +02:00
JanUlrich 6b98bf6a58 Feld initialisierungen werden an Konstruktoren angehängt 2017-08-23 03:52:24 +02:00
JanUlrich bbc61c67a9 TypeInsert Fehler beheben 2017-08-23 01:43:20 +02:00
JanUlrich 1023ed8557 Generics einsetzen 2017-08-22 18:31:07 +02:00
JanUlrich 3274f12922 Fehler in TypeInsert beheben 2017-08-22 16:45:28 +02:00
JanUlrich 52f562b570 DoStmt zu ASTPrinter hinzufügen 2017-08-17 15:58:56 +02:00
FelixKrespach a9c49676a9 do statement implemented 2017-08-17 15:30:57 +02:00
FelixKrespach 856f9b059d while Statement implemented 2017-08-17 15:08:30 +02:00
JanUlrich ae02ee247a SAT Package erstellen 2017-08-17 15:08:07 +02:00
JanUlrich 0cf8f82283 Remove ClassNotFoundException 2017-08-07 23:51:22 +02:00
stan 1e6f046eff Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2017-07-14 17:48:04 +02:00
stan 841ac5fcbf PackageCrawler durch ClassLoader ersetzen 2017-07-14 17:47:02 +02:00
stan 3b95cdd76f Merge (auweioiwae) 2017-07-14 15:39:16 +02:00
JanUlrich 057df7c702 TypeInsert API anpassen 2017-07-10 21:23:48 +02:00
JanUlrich 86f29f1396 TypeInsert API anpassen 2017-07-09 16:35:33 +02:00
JanUlrich 0f6381f30b TypeInsert anpassen 2017-07-05 20:09:09 +02:00
JanUlrich adda1db195 Add parse(String) to Compiler 2017-07-05 18:46:08 +02:00
JanUlrich 2167a4288e Add possibility to parse a String to parser 2017-07-05 17:52:23 +02:00
JanUlrich 0ad97251ca Change Parser FileInput to InputStream 2017-07-05 17:50:38 +02:00
JanUlrich 87d2edaaa6 Change TIP creation 2017-07-05 17:42:41 +02:00
JanUlrich fc6040da39 Fehler in TYPE beseitigen 2017-06-30 13:48:59 +02:00
JanUlrich d64823ea30 Fehler bei GenericInsertPoints beheben 2017-06-30 12:14:07 +02:00
JanUlrich 3b8ef58222 ASTTypePrinter anfügen 2017-06-30 11:13:15 +02:00
JanUlrich 0aa18c74ba ASTPrinter verbessern 2017-06-29 01:19:13 +02:00
JanUlrich 726eb60eb3 ASTPrinter einführen 2017-06-28 21:10:28 +02:00
JanUlrich afd3f32f23 ASTVisitor implementieren 2017-06-28 17:20:26 +02:00
JanUlrich 3173cccefa Typen einsetzen um Wildcards erweitern 2017-06-26 18:19:56 +02:00
JanUlrich e6c58d44c2 Type für Return fixen 2017-06-26 16:59:10 +02:00
JanUlrich 1be1bb83ca FunN-Typen erstellen bei Methodenaufrufen 2017-06-23 21:33:27 +02:00
JanUlrich 2c25e56a76 Einsetzen von Generics korrigieren 2017-06-20 14:50:27 +02:00
JanUlrich c272688b2d Fehler beim Ausrechnen zusammenhängender Constraints beheben 2017-06-20 01:14:04 +02:00
JanUlrich cf6d9880e3 Generische Parameter einsetzen (nur Test, nicht korrekt eingesetzt) 2017-06-15 04:48:53 +02:00
JanUlrich 920eea43ad Lambda Test angepasst 2017-06-15 02:57:49 +02:00
JanUlrich 70ca62202d Typeinsetzen erweitert 2017-06-15 02:17:46 +02:00
JanUlrich 44481b4140 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2017-06-14 04:07:43 +02:00
JanUlrich 7a337843e6 Lambda-TYPE anpassen. Beginnen mit TypeInsert 2017-06-14 04:07:27 +02:00
Martin Plümicke fcca50ed78 modified: .classpath
modified:   src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java
	modified:   src/de/dhbwstuttgart/syntaxtree/SourceFile.java
	modified:   src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java
	modified:   src/de/dhbwstuttgart/typecheck/GenericTypeName.java
	modified:   src/de/dhbwstuttgart/typeinference/typeAlgo/TYPE.java
	modified:   test/astfactory/ASTFactoryTest.java

imports auskommentiert
2017-06-13 17:38:43 +02:00
JanUlrich 5f31150dc8 TYPE-Algo für LambdaExpression implementieren 2017-06-12 18:57:12 +02:00
JanUlrich 2129299eed Auto-Keyword an Grammatik anfügen 2017-05-31 17:10:50 +02:00
Jan-Elric Neumann a48cbae5a5 Removed faulty (and unused import), which prevented ObjectiF from parsing SyntaxTreeNode 2017-05-30 19:40:51 +02:00
Jan-Elric Neumann b395f6e137 Fixed return type to make code parsable for ObjectiF 2017-05-30 19:38:03 +02:00
JanUlrich 810164ac17 LocalVar bekommt den Typ beim Parsen 2017-05-19 17:40:47 +02:00
JanUlrich 4a52bc0e6e TypeInsertFactory anfügen, convert UnifyPair->Pair implementieren 2017-05-18 13:17:52 +02:00
JanUlrich 2c999d0eb6 Umstellung auf Visitor Pattern des TYPE-Algos 2017-05-15 13:15:49 +02:00
JanUlrich 058402e056 StatementVisitor einführen 2017-05-11 17:39:48 +02:00
JanUlrich 43bfc551ff Fehler in Test beheben 2017-05-09 20:15:42 +02:00
JanUlrich 4261ce2603 Interfaces angefügt. Generierung von Generics im Parser geändert 2017-05-05 16:20:12 +02:00
Pluemicke Martin 88ea14bbe8 Studienarbeiten Schroedter Steurer hinzugefuegt 2017-05-03 17:59:34 +02:00
JanUlrich a9909d5f32 Merge mit Antlr 2017-04-20 18:55:34 +02:00
JanUlrich caa7f7deee Lambdas einführen 2017-04-20 18:51:27 +02:00
Jakob Herrmann f05222fb56 Some cleanup to be able to recompile, i.e:
* Remove handling of superclasses which needs further debugging
* add missing exceptions
* remove ClassFinder as it is not used and needs debugging
2017-04-20 17:15:52 +02:00
Jakob Herrmann 5cc418371d Main class for JavaTXParser. 2017-04-20 13:47:06 +02:00
JanUlrich e5d3d67dad sun.NotImplementedExceptions ersetzen 2017-04-19 15:31:11 +02:00
JanUlrich 3d835304cf Lambda Ausdruck dem Parser anfügen 2017-04-19 15:26:37 +02:00
JanUlrich 29a17731fd NewClass Constraints generieren angefügt 2017-04-18 21:06:04 +02:00
Jakob Herrmann 18965e0eda Simple bash script to compile packages needed for parser. 2017-04-13 15:00:13 +02:00
JanUlrich af1f7f28e2 New Aufruf im Parser anfügen 2017-04-07 02:33:20 +02:00
JanUlrich e1af4e1f65 Tests ändern 2017-04-06 16:22:36 +02:00
JanUlrich ed56e24ff6 Merge branch 'bigRefactoring' into antlr 2017-04-06 16:20:33 +02:00
Jakob Herrmann dad08cfa46 PackageCrawler latest version 2017-04-06 16:16:47 +02:00
JanUlrich f920269e51 @NotNull entfernen 2017-04-06 16:01:32 +02:00
JanUlrich 5d32f20a51 @NotNull entfernen 2017-04-06 16:01:10 +02:00
JanUlrich 42010c5859 NotNull entfernen 2017-04-06 15:35:52 +02:00
JanUlrich 0c4cdd63b5 NotNull entfernen 2017-04-06 15:33:20 +02:00
JanUlrich c02a3480e8 Cast Test 2017-04-06 12:26:04 +02:00
JanUlrich 561f1d1150 Fehler beim Parsen von Method behoben 2017-04-06 12:12:06 +02:00
JanUlrich 30099f5e50 Parser um Cast erweitern 2017-04-06 11:23:25 +02:00
JanUlrich de91e49bcc Fehlendes Return am Ende von Blocks beim Parsen einfügen 2017-03-29 19:44:24 +02:00
JanUlrich 4ecf526b14 Generics anfügen 2017-03-29 17:28:29 +02:00
JanUlrich 56e4192df4 Fehler in JavaClassRegistry.contains fixen 2017-03-22 17:10:51 +01:00
JanUlrich c480e25805 Bug im convert(Feld) gefixt 2017-03-22 16:16:38 +01:00
JanUlrich 47f1f9ad54 Generics angefügt 2017-03-22 16:05:59 +01:00
JanUlrich d0eb091666 Unify angefügt 2017-03-17 15:48:06 +01:00
JanUlrich c8beb9579e UnifyTypeFactory angefügt 2017-03-16 20:02:53 +01:00
JanUlrich 92c284a04b Constraints generieren. Fehler beheben 2017-03-15 16:54:43 +01:00
JanUlrich 5fab817154 MethodCall Constraints erstellen 2017-03-15 16:17:07 +01:00
JanUlrich a38b796a6f ImportTest2 2017-03-09 16:20:05 +01:00
JanUlrich d9cc613600 JavaClassName nur in der Regestry erstellen 2017-03-09 15:43:13 +01:00
JanUlrich 2cdca93077 ASTFactory erweitert 2017-03-08 17:51:59 +01:00
JanUlrich 9fae52e1e6 Factory angefügt. java.lang.reflect.Modifier benutzen 2017-03-08 03:43:47 +01:00
JanUlrich 4c4c0d5ada getConstraints() eingeführt 2017-03-06 17:59:01 +01:00
JanUlrich a44baeaa34 Beginnen mit Typinferenzalgorithmus 2017-03-02 18:16:14 +01:00
JanUlrich 0b17894ed2 Parser erweitert 2017-03-02 16:48:08 +01:00
JanUlrich 52f51c7932 Parser erweitern 2017-03-01 15:34:57 +01:00
JanUlrich a51cef7100 Merge branch 'antlr' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2017-02-23 01:11:35 +01:00
Jakob Herrmann 2e9a71a18d * Implemented recognition of SingleTypeImportDecl (tested).
* InvalidClassNameException is thrown if class/package in ImportDecl is
not known.
2017-02-22 21:25:57 +01:00
JanUlrich fbcb369f1c Merge branch 'antlr' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2017-02-22 14:47:53 +01:00
JanUlrich 32d262341a SyntaxtreeGenerator um einige Regeln zur Erstellung von Statements erweitert 2017-02-22 14:47:34 +01:00
Jakob Herrmann d5ba34e620 * Extend PackageCrawler
* Dummy methods for converting imports
2017-02-22 14:31:59 +01:00
Jakob Herrmann d63fe45d08 Helper methods to convert type names. 2017-02-22 13:14:32 +01:00
JanUlrich d328faeee2 Merge branch 'antlr' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2017-02-22 01:35:59 +01:00
Jakob Herrmann 15f8a1b99d PackageCrawler: Convert class names to list of strings. 2017-02-22 00:04:16 +01:00
Jakob Herrmann 72bf03ec58 RunParser now reads from file instead of stdin. 2017-02-21 22:19:00 +01:00
JanUlrich 18d477ba07 Merge branch 'refactoring' into bigRefactoring 2017-02-17 18:00:08 +01:00
JanUlrich 40d87c8636 Method Parsen verbessert 2017-02-17 17:20:50 +01:00
JanUlrich fb629b417f FormalParameter convert änderung 2017-02-17 17:08:10 +01:00
JanUlrich 3299f329ea Method Parameter parsen 2017-02-17 16:58:19 +01:00
JanUlrich 656b014ad4 Parser um return und method call erweitern 2017-02-17 16:34:40 +01:00
JanUlrich fa4a24c653 Reflections Library anfügen. PackageCrawler anfügen 2017-02-15 16:29:11 +01:00
Jakob Herrmann d9b81224b6 Notes/Fragen 2017-02-15 13:05:51 +01:00
Jakob Herrmann b5a2d64a7b * Some getters in syntaxtree
* Extend RunParser (makes problems).
2017-02-15 12:22:06 +01:00
Jakob Herrmann 7f05966093 Idea to resolve the problem with initial fields. 2017-02-15 00:51:34 +01:00
Jakob Herrmann cca2da8018 Implemented converter for FieldModifier. 2017-02-14 21:37:17 +01:00
Jakob Herrmann e9e2d5c27b Generate classes of interface FieldModifier. 2017-02-14 15:26:56 +01:00
JanUlrich 5c36e68825 Merge branch 'antlr' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into antlr 2017-02-10 17:37:56 +01:00
JanUlrich 60a304667a ANTLR Parser erweitert 2017-02-10 17:37:42 +01:00
Jakob Herrmann 50a618ee4b SyntaxTreeGenerator.setPackageName() is now used properly. 2017-02-07 22:12:40 +01:00
JanUlrich 8d0f24f2f8 Merge 2017-02-03 15:22:45 +01:00
JanUlrich d064f16de4 Merge 2017-02-03 15:21:45 +01:00
JanUlrich 39747f4138 ANTLR Parser SyntaxtreeGenerator erweitern. 2017-02-03 15:20:26 +01:00
Jakob Herrmann ade687483c Fixed RunParser according to new constructor. 2017-02-01 12:36:23 +01:00
Jakob Herrmann d55d6734d9 JavaClassRegistry is now required for constructor. 2017-02-01 12:32:20 +01:00
JanUlrich 77fbe99fed merge 2017-01-27 14:20:33 +01:00
JanUlrich bee92ef11d Parser package-Struktur umstellen 2017-01-27 13:20:22 +01:00
JanUlrich f92a53ce74 Aufräumen 2017-01-26 17:16:06 +01:00
JanUlrich acf9cbd20b Merge mit antlr-branch. Löschen aller ino.Kommentare 2017-01-20 15:20:45 +01:00
JanUlrich 049f435537 Unnötige ino-Kommentare entfernen 2017-01-20 13:57:20 +01:00
JanUlrich f2ddce2e89 Merge mit antlr 2017-01-20 13:54:06 +01:00
JanUlrich a4dc47cc4e Merge branch 'antlr' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into antlr 2017-01-20 13:01:08 +01:00
JanUlrich 10ede1ba98 Entfernen von unnötigen ino.* Kommentaren 2017-01-20 13:00:25 +01:00
Jakob Herrmann a77b65e65c Extend converter for modifiers by strictfp. 2017-01-18 15:58:34 +01:00
Jakob Herrmann a1bbd8b11e Implement Strictfp modifier. 2017-01-18 15:55:07 +01:00
Jakob Herrmann e8537c3886 TODO cleanup 2017-01-18 15:12:16 +01:00
Jakob Herrmann c3320858a3 RunParser no handles line breaks.This should also fix problems with
comments.
2017-01-18 13:27:17 +01:00
Jakob Herrmann 68476f9f96 * Implemented converter for Modifier.
* Missing getters etc. in some classes added.
2017-01-18 00:45:46 +01:00
Jakob Herrmann fbfa407c26 More converters & cleanup. 2017-01-17 20:59:42 +01:00
Jakob Herrmann 5814cac83f Start rewriting converters to simplify readability etc. 2017-01-17 12:34:23 +01:00
Jakob Herrmann 9ef41280ca * Implement missing constructor for Modifiers.
* TODO: convert for Modifier
2017-01-17 00:58:03 +01:00
Jakob Herrmann 0db15bffa8 Begin rewriting of convert for TypeDecl. 2017-01-16 23:32:12 +01:00
Jakob Herrmann 4c79023889 Implement base constructor in ClassOrInterface. 2017-01-16 14:28:22 +01:00
JanUlrich 72bcfd41d3 Merge mit ANTLR branch 2017-01-13 17:49:58 +01:00
Jakob Herrmann e4e98797fc Extend constructor of SourceFile. 2017-01-11 16:42:02 +01:00
Jakob Herrmann 647196bf16 * Start implementing "getters and setters" for
symtaxtree.ClassOrInterface (=no choice!!!).
* Start implementing converters TypeDeclerytion -> Class.
2017-01-10 23:44:19 +01:00
Jakob Herrmann 3c6ffcf4d8 * "Normal" class and interface names can now be resolved.
* TODO: line comments
2017-01-10 22:20:44 +01:00
Jakob Herrmann fb10220da9 * Set JavaClassName constroctur to public.
* Implemented "class resolution" for interfaces.
2017-01-10 20:07:23 +01:00
Jakob Herrmann 599c8b2573 * SyntaxTreeGenerator: Implemented method to get package name of
CompilationUnitCtx (ongoing).
* RunParser: test methods
2017-01-10 17:42:20 +01:00
Jakob Herrmann f0028f6aaf Minor changes (nameReg/constructor). 2016-12-21 15:49:38 +01:00
JanUlrich 5f61d478fa Class ändern zu ClassOrInterface 2016-12-21 15:46:28 +01:00
JanUlrich aed261c807 JavaClassName aufräumen 2016-12-21 15:39:07 +01:00
JanUlrich 3b6363d71a Aufrömen 2016-12-21 15:06:55 +01:00
JanUlrich ddbcc5ee6e GenericType für Bytecodegenerierung eingeführt 2016-12-16 14:33:04 +01:00
JanUlrich 1b99f74f39 Generics als RefType entfernen 2016-12-16 13:26:28 +01:00
JanUlrich 7b9a00a7e6 Revert "Syntaxbaum bereinigen. Allen Code löschen. Nur Struktur bleibt erhalten"
This reverts commit 3ab96a3ed7.
2016-12-16 01:05:54 +01:00
JanUlrich c329ba6cef merge 2016-12-16 01:05:45 +01:00
JanUlrich 3ab96a3ed7 Syntaxbaum bereinigen. Allen Code löschen. Nur Struktur bleibt erhalten 2016-12-16 00:00:37 +01:00
JanUlrich 76880708a1 Merge 2016-12-15 17:07:17 +01:00
JanUlrich e84d6373c7 Aufräumen 2016-12-15 17:02:39 +01:00
JanUlrich a35bcd490b Merge branch 'antlr' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into antlr 2016-12-15 16:28:26 +01:00
JanUlrich 40ba5fb621 Beispiel für ANTLR Parser 2016-12-15 16:28:12 +01:00
Jakob Herrmann ad02e94967 notes parse_tree 2016-12-15 16:17:40 +01:00
JanUlrich c34b3c4c14 Aufräumen 2016-12-15 16:00:28 +01:00
JanUlrich 01a954ca68 TypeCheck package 2016-12-15 15:45:23 +01:00
JanUlrich 5c6b001ae1 Merge branch 'antlr' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into antlr 2016-12-15 15:35:26 +01:00
JanUlrich fc43cd11da Aufräumen 2016-12-15 15:35:14 +01:00
Jakob Herrmann e1d68291c9 Added some basic handling of package declarations. 2016-12-15 15:01:57 +01:00
Jakob Herrmann b0a6585252 Small changes, i.e. RunParser now reads from System.in. 2016-12-15 13:35:07 +01:00
Jakob Herrmann 81e223334b Created RunParser which is supposed the main class (still rather
experimental).
2016-12-15 12:05:23 +01:00
Jakob Herrmann 82a1e86186 * Started implementing CompilationUnitEvaluator.java which is supposed to be the base
class for syntax tree construction.
* Deleted JavaClassName and JavaClassRegistry as they cannot be compiled
so far (backups exist).
2016-12-15 11:21:33 +01:00
JanUlrich aff39ba442 Type löschen 2016-12-09 04:34:50 +01:00
JanUlrich 343c7d3a55 Merge branch 'antlr' of /home/janulrich/Development/intellijworkspace/../eclipseworkspace/eclipseWorkspaceHorb/JavaCompilerCore into antlr 2016-12-07 14:32:56 +01:00
JanUlrich c1cbb78fe5 Aufräumen 2016-12-07 14:32:48 +01:00
JanUlrich 4e43de987d Merge branch 'antlr' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into antlr 2016-12-07 14:06:19 +01:00
JanUlrich 717fd5d53e Field anpassen 2016-12-02 01:23:01 +01:00
Jakob Herrmann d9e6ef6e47 Parser now handles untyped method declarations but this needs further
inspection as constructors are not handled properly.
2016-11-29 21:08:53 +01:00
Jakob Herrmann b2e5555da5 Grammar now supports untyped parameters in method declarations. 2016-11-29 19:46:07 +01:00
Jakob Herrmann c5ea9a3464 Grammar now supports untyped field declarations. 2016-11-29 18:34:33 +01:00
Jakob Herrmann 52a5e54c3a Recompile grammer due to some technical problems. 2016-11-29 18:31:50 +01:00
Jakob Herrmann 264ede100c Create list with notes/questions/problems. 2016-11-23 00:43:57 +01:00
JanUlrich d651a6cdff Parser austauschen 2016-11-16 14:51:45 +01:00
JanUlrich c9e3743fb5 Merge branch 'antlr' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into antlr 2016-11-16 14:33:38 +01:00
Jakob Herrmann 7d38c9af43 Added package declaration to sources. 2016-11-16 14:32:51 +01:00
JanUlrich cdb1850668 ANTLR Lib an classpath anfügen 2016-11-16 14:28:28 +01:00
JanUlrich 90b6e81195 Merge branch 'antlr' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into antlr 2016-11-16 14:17:47 +01:00
JanUlrich 7606aee9c3 Unnötige Datein in bin löschen 2016-11-16 14:17:38 +01:00
Jakob Herrmann 7504211df2 * Add base antlr grammer and corresponding classes.
* Add antlr4 runtime library.
2016-11-16 14:09:33 +01:00
JanUlrich 7d09131c27 ObjectClass einführen 2016-11-16 13:41:25 +01:00
JanUlrich 388685d3b2 Bugfix #4 (FunVoidN Typen) 2016-11-15 23:00:07 +01:00
JanUlrich 642394c25b ObjectClass added 2016-11-15 21:15:09 +01:00
JanUlrich 85dc60169a Merge, ObjectClass anfügen 2016-11-15 19:47:46 +01:00
JanUlrich 73e6e5c45f LambdaTest30 anfügen 2016-11-15 19:46:50 +01:00
JanUlrich 1a94f449a0 bugfix 2016-11-11 11:50:55 +01:00
JanUlrich 6a4cb673bf Mergen... (nicht fertig) 2016-11-11 11:01:55 +01:00
JanUlrich accbe5bbfc Beginnen der BytecodeTypeFactory 2016-11-09 16:59:08 +01:00
JanUlrich c4aff43f71 NameGenerator einführen 2016-10-28 18:32:05 +02:00
JanUlrich 107201c00c Fehler in FunN Generierung beheben 2016-10-28 18:31:42 +02:00
JanUlrich e60e6b622c Bugfix 2016-10-07 14:12:18 +02:00
Martin Plümicke a33ce04734 modified 2016-09-30 12:48:41 +02:00
JanUlrich b05b0ea5df Syntaxbaum anpassen 2016-09-30 12:46:02 +02:00
JanUlrich a1227a8b1b Expr und ExprStmt ändern 2016-09-20 15:18:13 +02:00
JanUlrich a5c34896ba Fehler in Lambda-Generierung fixen 2016-09-16 14:26:18 +02:00
JanUlrich bc812ad083 Aufräumen 2016-09-16 13:25:20 +02:00
JanUlrich 1ac500715b Aufräumen 2016-09-13 17:32:22 +02:00
JanUlrich 5be508e943 Beginnen der AST Anpassungen für das ANTLR-Projekt. Constructor-Aufrufe ändern. UsedID entfernen. parserPostProcessing entfernen. Anpassungen am AST Layout. 2016-09-10 00:40:17 +02:00
JanUlrich aa6a6beb93 StackMapTable-Fix 2016-08-25 19:52:06 +02:00
JanUlrich dbe09c237c Lambda Bytecodegenerierung implementieren 2016-08-17 00:45:14 +02:00
JanUlrich 592af65c08 Einführen von BCEL 6.1 2016-07-21 16:36:53 +02:00
JanUlrich 25329cd39e Einführen von BCEL 6.1 2016-07-21 16:36:33 +02:00
JanUlrich 5aebc06337 Fehlerhaften Filter auslassen 2016-07-21 16:20:37 +02:00
JanUlrich 0896cf8236 StackMapTable funktioniert 2016-07-11 20:23:36 +02:00
JanUlrich 81c8764fc6 Aufräumen, neue BCEL-Version 2016-06-23 16:49:30 +02:00
JanUlrich eb0da3c36a Aufräumen, neues Eclipse-Projekt anlegen 2016-06-22 20:29:16 +02:00
1350 changed files with 45332 additions and 94063 deletions
-14
View File
@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="BCEL"/>
<classpathentry excluding=".classpath|.cvsignore|.externalToolBuilders/|.project|.settings/|Papers/|bin/|doc/|examples/|lib/|notizen/|src/|test/|tools/|BCEL/" including="log4j.xml" kind="src" path=""/>
<classpathentry kind="src" path="test"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="lib" path="lib/junit-4.0.jar" sourcepath="/home/janulrich/.m2/repository/junit/junit/4.0/junit-4.0-sources.jar"/>
<classpathentry kind="lib" path="lib/cloning.jar"/>
<classpathentry kind="lib" path="lib/guava-10.0.1.jar"/>
<classpathentry kind="lib" path="lib/commons-bcel6-6.0-SNAPSHOT.jar" sourcepath="/home/janulrich/Development/intellijworkspace/bcel/src/main/java"/>
<classpathentry kind="lib" path="lib/bcel-6.0-SNAPSHOT.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
-12
View File
@@ -1,12 +0,0 @@
bin
*.class
output*
JavaLexer.java
JavaParser.java
*.~*~
*.aux
*.dvi
*.log
y.output
Bytecode
JavaParserBuilder.launch
@@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/JavaCompilerCore"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="JavaCompilerCore"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/JavaCompilerCore/tools/AntParserBuilderWindows.xml}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="incremental,clean"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/JavaCompilerCore/tools}"/>
</launchConfiguration>
+13
View File
@@ -10,3 +10,16 @@ bin
*.jar
*.war
*.ear
# IDEs
.classpath
*.iml
.idea/
/target/
.DS_Store
.project
.settings/
/target/
#
manually/
-8
View File
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/JavaCompilerCore.iml" filepath="$PROJECT_DIR$/JavaCompilerCore.iml" />
</modules>
</component>
</project>
Generated
-6
View File
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
-31
View File
@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>JavaCompilerCore</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
<dictionary>
<key>LaunchConfigHandle</key>
<value>&lt;project&gt;/.externalToolBuilders/JavaParserBuilder.launch</value>
</dictionary>
<dictionary>
<key>incclean</key>
<value>true</value>
</dictionary>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
@@ -1,2 +0,0 @@
eclipse.preferences.version=1
filesCopiedToWebInfLib=
@@ -1,7 +0,0 @@
eclipse.preferences.version=1
encoding//src/de/dhbwstuttgart/core/MyCompiler.java=UTF-8
encoding//src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java=UTF-8
encoding//src/de/dhbwstuttgart/typeinference/UndConstraint.java=UTF-8
encoding//src/de/dhbwstuttgart/typeinference/UnifySingleConstraint.java=UTF-8
encoding//src/de/dhbwstuttgart/typeinference/UnifyUndConstraint.java=UTF-8
encoding/<project>=UTF-8
-13
View File
@@ -1,13 +0,0 @@
eclipse.preferences.version=1
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
-4
View File
@@ -1,4 +0,0 @@
#Sun Jul 27 10:21:29 CEST 2008
eclipse.preferences.version=1
instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
internal.default.compliance=default
-6
View File
@@ -1,6 +0,0 @@
package bcelifier;
public class BooleanValue {
Boolean c = true;
Boolean b = c.booleanValue();
}
-63
View File
@@ -1,63 +0,0 @@
package bcelifier;
import org.apache.commons.bcel6.generic.*;
import org.apache.commons.bcel6.classfile.*;
import org.apache.commons.bcel6.*;
import java.io.*;
public class BooleanValueCreator implements Constants {
private InstructionFactory _factory;
private ConstantPoolGen _cp;
private ClassGen _cg;
public BooleanValueCreator() {
_cg = new ClassGen("bcelifier.BooleanValue", "java.lang.Object", "BooleanValue.java", ACC_PUBLIC | ACC_SUPER, new String[] { });
_cp = _cg.getConstantPool();
_factory = new InstructionFactory(_cg, _cp);
}
public void create(OutputStream out) throws IOException {
createFields();
createMethod_0();
_cg.getJavaClass().dump(out);
}
private void createFields() {
FieldGen field;
field = new FieldGen(0, new ObjectType("java.lang.Boolean"), "c", _cp);
_cg.addField(field.getField());
field = new FieldGen(0, new ObjectType("java.lang.Boolean"), "b", _cp);
_cg.addField(field.getField());
}
private void createMethod_0() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "<init>", "bcelifier.BooleanValue", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createInvoke("java.lang.Object", "<init>", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL));
InstructionHandle ih_4 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(new PUSH(_cp, 1));
il.append(_factory.createInvoke("java.lang.Boolean", "valueOf", new ObjectType("java.lang.Boolean"), new Type[] { Type.BOOLEAN }, Constants.INVOKESTATIC));
il.append(_factory.createFieldAccess("bcelifier.BooleanValue", "c", new ObjectType("java.lang.Boolean"), Constants.PUTFIELD));
InstructionHandle ih_12 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createFieldAccess("bcelifier.BooleanValue", "c", new ObjectType("java.lang.Boolean"), Constants.GETFIELD));
il.append(_factory.createInvoke("java.lang.Boolean", "booleanValue", Type.BOOLEAN, Type.NO_ARGS, Constants.INVOKEVIRTUAL));
il.append(_factory.createInvoke("java.lang.Boolean", "valueOf", new ObjectType("java.lang.Boolean"), new Type[] { Type.BOOLEAN }, Constants.INVOKESTATIC));
il.append(_factory.createFieldAccess("bcelifier.BooleanValue", "b", new ObjectType("java.lang.Boolean"), Constants.PUTFIELD));
InstructionHandle ih_26 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
public static void main(String[] args) throws Exception {
bcelifier.BooleanValueCreator creator = new bcelifier.BooleanValueCreator();
creator.create(new FileOutputStream("bcelifier.BooleanValue.class"));
}
}
-11
View File
@@ -1,11 +0,0 @@
package bcelifier;
public class FieldDeclaration {
Integer field = methode();
Integer methode()
{
return field;
}
}
@@ -1,68 +0,0 @@
package bcelifier;
import org.apache.commons.bcel6.generic.*;
import org.apache.commons.bcel6.classfile.*;
import org.apache.commons.bcel6.*;
import java.io.*;
public class FieldDeclarationCreator implements Constants {
private InstructionFactory _factory;
private ConstantPoolGen _cp;
private ClassGen _cg;
public FieldDeclarationCreator() {
_cg = new ClassGen("bcelifier.FieldDeclaration", "java.lang.Object", "FieldDeclaration.java", ACC_PUBLIC | ACC_SUPER, new String[] { });
_cp = _cg.getConstantPool();
_factory = new InstructionFactory(_cg, _cp);
}
public void create(OutputStream out) throws IOException {
createFields();
createMethod_0();
createMethod_1();
_cg.getJavaClass().dump(out);
}
private void createFields() {
FieldGen field;
field = new FieldGen(0, new ObjectType("java.lang.Integer"), "field", _cp);
_cg.addField(field.getField());
}
private void createMethod_0() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "<init>", "bcelifier.FieldDeclaration", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createInvoke("java.lang.Object", "<init>", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL));
InstructionHandle ih_4 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createInvoke("bcelifier.FieldDeclaration", "methode", new ObjectType("java.lang.Integer"), Type.NO_ARGS, Constants.INVOKEVIRTUAL));
il.append(_factory.createFieldAccess("bcelifier.FieldDeclaration", "field", new ObjectType("java.lang.Integer"), Constants.PUTFIELD));
InstructionHandle ih_12 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
private void createMethod_1() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(0, new ObjectType("java.lang.Integer"), Type.NO_ARGS, new String[] { }, "methode", "bcelifier.FieldDeclaration", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createFieldAccess("bcelifier.FieldDeclaration", "field", new ObjectType("java.lang.Integer"), Constants.GETFIELD));
InstructionHandle ih_4 = il.append(_factory.createReturn(Type.OBJECT));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
public static void main(String[] args) throws Exception {
bcelifier.FieldDeclarationCreator creator = new bcelifier.FieldDeclarationCreator();
creator.create(new FileOutputStream("bcelifier.FieldDeclaration.class"));
}
}
-12
View File
@@ -1,12 +0,0 @@
package bcelifier;
class IfStatement{
Integer methode(Boolean b){
if(b){
return 1;
}else{
return 2;
}
}
}
-71
View File
@@ -1,71 +0,0 @@
package bcelifier;
import org.apache.commons.bcel6.generic.*;
import de.dhbwstuttgart.syntaxtree.type.RefType;
import de.dhbwstuttgart.bytecode.ClassGenerator;
import de.dhbwstuttgart.bytecode.MethodGenerator;
import de.dhbwstuttgart.typeinference.TypeinferenceResults;
import org.apache.commons.bcel6.*;
import java.io.*;
public class IfStatementCreator {
private InstructionFactory _factory;
private ConstantPoolGen _cp;
private ClassGenerator _cg;
public IfStatementCreator() {
TypeinferenceResults typeinferenceResults = null;
_cg = new ClassGenerator("bcelifier.IfStatement", new RefType("java.lang.Object", null, 0), "IfStatement.java", Const.ACC_SUPER, new String[] { }, typeinferenceResults);
_cp = _cg.getConstantPool();
_factory = new InstructionFactory(_cg, _cp);
}
public void create(OutputStream out) throws IOException {
createMethod_0();
createMethod_1();
_cg.getJavaClass().dump(out);
}
private void createMethod_0() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGenerator(0, Type.VOID, new Type[] { new ObjectType("java.lang.Boolean") }, new String[] { "arg0" }, "<init>", "bcelifier.IfStatement", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createInvoke("java.lang.Object", "<init>", Type.VOID, Type.NO_ARGS, Const.INVOKESPECIAL));
InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
}
private void createMethod_1() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGenerator(0, new ObjectType("java.lang.Integer"), new Type[] { new ObjectType("java.lang.Boolean") }, new String[] { "arg0" }, "methode", "bcelifier.IfStatement", il, _cp);
il.append(InstructionFactory.createLoad(Type.OBJECT, 1));
il.append(_factory.createInvoke("java.lang.Boolean", "booleanValue", Type.BOOLEAN, Type.NO_ARGS, Const.INVOKEVIRTUAL));
BranchInstruction ifeq_4 = InstructionFactory.createBranchInstruction(Const.IFEQ, null);
il.append(ifeq_4);
il.append(new PUSH(_cp, 1));
il.append(_factory.createInvoke("java.lang.Integer", "valueOf", new ObjectType("java.lang.Integer"), new Type[] { Type.INT }, Const.INVOKESTATIC));
il.append(InstructionFactory.createReturn(Type.OBJECT));
InstructionHandle ih_12 = il.append(new PUSH(_cp, 2));
il.append(_factory.createInvoke("java.lang.Integer", "valueOf", new ObjectType("java.lang.Integer"), new Type[] { Type.INT }, Const.INVOKESTATIC));
il.append(InstructionFactory.createReturn(Type.OBJECT));
ifeq_4.setTarget(ih_12);
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
}
public static void main(String[] args) throws Exception {
bcelifier.IfStatementCreator creator = new bcelifier.IfStatementCreator();
creator.create(new FileOutputStream("bcelifier.IfStatement.class"));
System.out.println("bcelifier.IfStatement.class");
}
}
Binary file not shown.
-7
View File
@@ -1,7 +0,0 @@
package bcelifier;
public class IntLiteral {
Integer methode(){
return 50000;
}
}
-56
View File
@@ -1,56 +0,0 @@
package bcelifier;
import org.apache.commons.bcel6.generic.*;
import org.apache.commons.bcel6.classfile.*;
import org.apache.commons.bcel6.*;
import java.io.*;
public class IntLiteralCreator implements Constants {
private InstructionFactory _factory;
private ConstantPoolGen _cp;
private ClassGen _cg;
public IntLiteralCreator() {
_cg = new ClassGen("bcelifier.IntLiteral", "java.lang.Object", "IntLiteral.java", ACC_PUBLIC | ACC_SUPER, new String[] { });
_cp = _cg.getConstantPool();
_factory = new InstructionFactory(_cg, _cp);
}
public void create(OutputStream out) throws IOException {
createMethod_0();
createMethod_1();
_cg.getJavaClass().dump(out);
}
private void createMethod_0() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "<init>", "bcelifier.IntLiteral", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createInvoke("java.lang.Object", "<init>", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL));
InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
private void createMethod_1() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(0, new ObjectType("java.lang.Integer"), Type.NO_ARGS, new String[] { }, "methode", "bcelifier.IntLiteral", il, _cp);
InstructionHandle ih_0 = il.append(new PUSH(_cp, 50000));
il.append(_factory.createInvoke("java.lang.Integer", "valueOf", new ObjectType("java.lang.Integer"), new Type[] { Type.INT }, Constants.INVOKESTATIC));
InstructionHandle ih_5 = il.append(_factory.createReturn(Type.OBJECT));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
public static void main(String[] args) throws Exception {
bcelifier.IntLiteralCreator creator = new bcelifier.IntLiteralCreator();
creator.create(new FileOutputStream("bcelifier.IntLiteral.class"));
}
}
-43
View File
@@ -1,43 +0,0 @@
package bcelifier;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.OpenOption;
import java.nio.file.Path;
import org.apache.commons.bcel6.classfile.ClassFormatException;
import org.apache.commons.bcel6.classfile.ClassParser;
import org.apache.commons.bcel6.classfile.JavaClass;
import org.apache.commons.bcel6.util.BCELifier;
public class JavaToBCEL {
public final static String rootDirectory = System.getProperty("user.dir")+"/BCEL/bcelifier/";
public static void main(String args[]){
new JavaToBCEL();
}
public JavaToBCEL(){
try {
//new BCELifier(new ClassParser(rootDirectory+"Lambda1.class").parse(), new FileOutputStream(new File(rootDirectory+"Lambda1Creator.java"))).start();
//new BCELifier(new ClassParser(rootDirectory+"This.class").parse(), new FileOutputStream(new File(rootDirectory+"ThisCreator.java"))).start();
//new BCELifier(new ClassParser(rootDirectory+"IntLiteral.class").parse(), new FileOutputStream(new File(rootDirectory+"IntLiteralCreator.java"))).start();
//new BCELifier(new ClassParser(rootDirectory+"MethodCall.class").parse(), new FileOutputStream(new File(rootDirectory+"MethodCallCreator.java"))).start();
//new BCELifier(new ClassParser(rootDirectory+"FieldDeclaration.class").parse(), new FileOutputStream(new File(rootDirectory+"FieldDeclarationCreator.java"))).start();
//new BCELifier(new ClassParser(rootDirectory+"Null.class").parse(), new FileOutputStream(new File(rootDirectory+"NullCreator.java"))).start();
//new BCELifier(new ClassParser(rootDirectory+"LocalVarAccess.class").parse(), new FileOutputStream(new File(rootDirectory+"LocalVarAccessCreator.java"))).start();
//new BCELifier(new ClassParser(rootDirectory+"Wildcard.class").parse(), new FileOutputStream(new File(rootDirectory+"WildcardCreator.java"))).start();
//new BCELifier(new ClassParser(rootDirectory+"BooleanValue.class").parse(), new FileOutputStream(new File(rootDirectory+"BooleanValueCreator.java"))).start();
//new BCELifier(new ClassParser(rootDirectory+"NewClass.class").parse(), new FileOutputStream(new File(rootDirectory+"NewClassCreator.java"))).start();
new BCELifier(new ClassParser(rootDirectory+"IfStatement.class").parse(), new FileOutputStream(new File(rootDirectory+"IfStatementCreator.java"))).start();
} catch (ClassFormatException | IOException e) {
e.printStackTrace();
}
}
}
Binary file not shown.
Binary file not shown.
-8
View File
@@ -1,8 +0,0 @@
package bcelifier;
public class Lambda1 {
Runnable methode(){
return ()->System.out.println(this);
}
}
View File
-10
View File
@@ -1,10 +0,0 @@
package bcelifier;
public class LocalVarAccess {
Integer methode(Integer i){
Integer var;
var = 10 + i;
return var;
}
}
-61
View File
@@ -1,61 +0,0 @@
package bcelifier;
import org.apache.commons.bcel6.generic.*;
import org.apache.commons.bcel6.classfile.*;
import org.apache.commons.bcel6.*;
import java.io.*;
public class LocalVarAccessCreator implements Constants {
private InstructionFactory _factory;
private ConstantPoolGen _cp;
private ClassGen _cg;
public LocalVarAccessCreator() {
_cg = new ClassGen("bcelifier.LocalVarAccess", "java.lang.Object", "LocalVarAccess.java", ACC_PUBLIC | ACC_SUPER, new String[] { });
_cp = _cg.getConstantPool();
_factory = new InstructionFactory(_cg, _cp);
}
public void create(OutputStream out) throws IOException {
createMethod_0();
createMethod_1();
_cg.getJavaClass().dump(out);
}
private void createMethod_0() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "<init>", "bcelifier.LocalVarAccess", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createInvoke("java.lang.Object", "<init>", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL));
InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
private void createMethod_1() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(0, new ObjectType("java.lang.Integer"), new Type[] { new ObjectType("java.lang.Integer") }, new String[] { "arg0" }, "methode", "bcelifier.LocalVarAccess", il, _cp);
InstructionHandle ih_0 = il.append(new PUSH(_cp, 10));
il.append(_factory.createLoad(Type.OBJECT, 1));
il.append(_factory.createInvoke("java.lang.Integer", "intValue", Type.INT, Type.NO_ARGS, Constants.INVOKEVIRTUAL));
il.append(InstructionConstants.IADD);
il.append(_factory.createInvoke("java.lang.Integer", "valueOf", new ObjectType("java.lang.Integer"), new Type[] { Type.INT }, Constants.INVOKESTATIC));
il.append(_factory.createStore(Type.OBJECT, 2));
InstructionHandle ih_11 = il.append(_factory.createLoad(Type.OBJECT, 2));
InstructionHandle ih_12 = il.append(_factory.createReturn(Type.OBJECT));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
public static void main(String[] args) throws Exception {
bcelifier.LocalVarAccessCreator creator = new bcelifier.LocalVarAccessCreator();
creator.create(new FileOutputStream("bcelifier.LocalVarAccess.class"));
}
}
Binary file not shown.
-12
View File
@@ -1,12 +0,0 @@
package bcelifier;
public class MethodCall {
void methode(){
}
void methode2(Runnable r){
methode();
r.run();
}
}
-70
View File
@@ -1,70 +0,0 @@
package bcelifier;
import org.apache.commons.bcel6.generic.*;
import org.apache.commons.bcel6.classfile.*;
import org.apache.commons.bcel6.*;
import java.io.*;
public class MethodCallCreator implements Constants {
private InstructionFactory _factory;
private ConstantPoolGen _cp;
private ClassGen _cg;
public MethodCallCreator() {
_cg = new ClassGen("bcelifier.MethodCall", "java.lang.Object", "MethodCall.java", ACC_PUBLIC | ACC_SUPER, new String[] { });
_cp = _cg.getConstantPool();
_factory = new InstructionFactory(_cg, _cp);
}
public void create(OutputStream out) throws IOException {
createMethod_0();
createMethod_1();
createMethod_2();
_cg.getJavaClass().dump(out);
}
private void createMethod_0() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "<init>", "bcelifier.MethodCall", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createInvoke("java.lang.Object", "<init>", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL));
InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
private void createMethod_1() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(0, Type.VOID, Type.NO_ARGS, new String[] { }, "methode", "bcelifier.MethodCall", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
private void createMethod_2() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(0, Type.VOID, new Type[] { new ObjectType("java.lang.Runnable") }, new String[] { "arg0" }, "methode2", "bcelifier.MethodCall", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createInvoke("bcelifier.MethodCall", "methode", Type.VOID, Type.NO_ARGS, Constants.INVOKEVIRTUAL));
InstructionHandle ih_4 = il.append(_factory.createLoad(Type.OBJECT, 1));
il.append(_factory.createInvoke("java.lang.Runnable", "run", Type.VOID, Type.NO_ARGS, Constants.INVOKEINTERFACE));
InstructionHandle ih_10 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
public static void main(String[] args) throws Exception {
bcelifier.MethodCallCreator creator = new bcelifier.MethodCallCreator();
creator.create(new FileOutputStream("bcelifier.MethodCall.class"));
}
}
-10
View File
@@ -1,10 +0,0 @@
package bcelifier;
public class NewClass {
public NewClass(Integer i){}
void methode2(){
new NewClass(1);
}
}
-60
View File
@@ -1,60 +0,0 @@
package bcelifier;
import org.apache.commons.bcel6.generic.*;
import org.apache.commons.bcel6.classfile.*;
import org.apache.commons.bcel6.*;
import java.io.*;
public class NewClassCreator implements Constants {
private InstructionFactory _factory;
private ConstantPoolGen _cp;
private ClassGen _cg;
public NewClassCreator() {
_cg = new ClassGen("bcelifier.NewClass", "java.lang.Object", "NewClass.java", ACC_PUBLIC | ACC_SUPER, new String[] { });
_cp = _cg.getConstantPool();
_factory = new InstructionFactory(_cg, _cp);
}
public void create(OutputStream out) throws IOException {
createMethod_0();
createMethod_1();
_cg.getJavaClass().dump(out);
}
private void createMethod_0() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, new Type[] { new ObjectType("java.lang.Integer") }, new String[] { "arg0" }, "<init>", "bcelifier.NewClass", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createInvoke("java.lang.Object", "<init>", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL));
InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
private void createMethod_1() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(0, Type.VOID, Type.NO_ARGS, new String[] { }, "methode2", "bcelifier.NewClass", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createNew("bcelifier.NewClass"));
il.append(InstructionConstants.DUP);
il.append(new PUSH(_cp, 1));
il.append(_factory.createInvoke("java.lang.Integer", "valueOf", new ObjectType("java.lang.Integer"), new Type[] { Type.INT }, Constants.INVOKESTATIC));
il.append(_factory.createInvoke("bcelifier.NewClass", "<init>", Type.VOID, new Type[] { new ObjectType("java.lang.Integer") }, Constants.INVOKESPECIAL));
il.append(InstructionConstants.POP);
InstructionHandle ih_12 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
public static void main(String[] args) throws Exception {
bcelifier.NewClassCreator creator = new bcelifier.NewClassCreator();
creator.create(new FileOutputStream("bcelifier.NewClass.class"));
}
}
-7
View File
@@ -1,7 +0,0 @@
package bcelifier;
public class Null {
Integer i = null;
}
-53
View File
@@ -1,53 +0,0 @@
package bcelifier;
import org.apache.commons.bcel6.generic.*;
import org.apache.commons.bcel6.classfile.*;
import org.apache.commons.bcel6.*;
import java.io.*;
public class NullCreator implements Constants {
private InstructionFactory _factory;
private ConstantPoolGen _cp;
private ClassGen _cg;
public NullCreator() {
_cg = new ClassGen("bcelifier.Null", "java.lang.Object", "Null.java", ACC_PUBLIC | ACC_SUPER, new String[] { });
_cp = _cg.getConstantPool();
_factory = new InstructionFactory(_cg, _cp);
}
public void create(OutputStream out) throws IOException {
createFields();
createMethod_0();
_cg.getJavaClass().dump(out);
}
private void createFields() {
FieldGen field;
field = new FieldGen(0, new ObjectType("java.lang.Integer"), "i", _cp);
_cg.addField(field.getField());
}
private void createMethod_0() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "<init>", "bcelifier.Null", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createInvoke("java.lang.Object", "<init>", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL));
InstructionHandle ih_4 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(InstructionConstants.ACONST_NULL);
il.append(_factory.createFieldAccess("bcelifier.Null", "i", new ObjectType("java.lang.Integer"), Constants.PUTFIELD));
InstructionHandle ih_9 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
public static void main(String[] args) throws Exception {
bcelifier.NullCreator creator = new bcelifier.NullCreator();
creator.create(new FileOutputStream("bcelifier.Null.class"));
}
}
Binary file not shown.
-8
View File
@@ -1,8 +0,0 @@
package bcelifier;
public class This {
This methode(){
return this;
}
}
-55
View File
@@ -1,55 +0,0 @@
package bcelifier;
import org.apache.commons.bcel6.generic.*;
import org.apache.commons.bcel6.classfile.*;
import org.apache.commons.bcel6.*;
import java.io.*;
public class ThisCreator implements Constants {
private InstructionFactory _factory;
private ConstantPoolGen _cp;
private ClassGen _cg;
public ThisCreator() {
_cg = new ClassGen("bcelifier.This", "java.lang.Object", "This.java", ACC_PUBLIC | ACC_SUPER, new String[] { });
_cp = _cg.getConstantPool();
_factory = new InstructionFactory(_cg, _cp);
}
public void create(OutputStream out) throws IOException {
createMethod_0();
createMethod_1();
_cg.getJavaClass().dump(out);
}
private void createMethod_0() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "<init>", "bcelifier.This", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createInvoke("java.lang.Object", "<init>", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL));
InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
private void createMethod_1() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(0, new ObjectType("bcelifier.This"), Type.NO_ARGS, new String[] { }, "methode", "bcelifier.This", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
InstructionHandle ih_1 = il.append(_factory.createReturn(Type.OBJECT));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
public static void main(String[] args) throws Exception {
bcelifier.ThisCreator creator = new bcelifier.ThisCreator();
creator.create(new FileOutputStream("bcelifier.This.class"));
}
}
-5
View File
@@ -1,5 +0,0 @@
package bcelifier;
public class Wildcard<A> {
Wildcard<? super String> a;
}
-50
View File
@@ -1,50 +0,0 @@
package bcelifier;
import org.apache.commons.bcel6.generic.*;
import org.apache.commons.bcel6.classfile.*;
import org.apache.commons.bcel6.*;
import java.io.*;
public class WildcardCreator implements Constants {
private InstructionFactory _factory;
private ConstantPoolGen _cp;
private ClassGen _cg;
public WildcardCreator() {
_cg = new ClassGen("bcelifier.Wildcard", "java.lang.Object", "Wildcard.java", ACC_PUBLIC | ACC_SUPER, new String[] { });
_cp = _cg.getConstantPool();
_factory = new InstructionFactory(_cg, _cp);
}
public void create(OutputStream out) throws IOException {
createFields();
createMethod_0();
_cg.getJavaClass().dump(out);
}
private void createFields() {
FieldGen field;
field = new FieldGen(0, new ObjectType("bcelifier.Wildcard"), "a", _cp);
_cg.addField(field.getField());
}
private void createMethod_0() {
InstructionList il = new InstructionList();
MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "<init>", "bcelifier.Wildcard", il, _cp);
InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0));
il.append(_factory.createInvoke("java.lang.Object", "<init>", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL));
InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID));
method.setMaxStack();
method.setMaxLocals();
_cg.addMethod(method.getMethod());
il.dispose();
}
public static void main(String[] args) throws Exception {
bcelifier.WildcardCreator creator = new bcelifier.WildcardCreator();
creator.create(new FileOutputStream("bcelifier.Wildcard.class"));
}
}
-75
View File
@@ -1,75 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="EclipseModuleManager">
<libelement value="jar://$MODULE_DIR$/lib/junit-4.0.jar!/" />
<libelement value="jar://$MODULE_DIR$/lib/cloning.jar!/" />
<libelement value="jar://$MODULE_DIR$/lib/guava-10.0.1.jar!/" />
<libelement value="jar://$MODULE_DIR$/lib/commons-bcel6-6.0-SNAPSHOT.jar!/" />
<libelement value="jar://$MODULE_DIR$/lib/bcel-6.0-SNAPSHOT.jar!/" />
<src_description expected_position="0">
<src_folder value="file://$MODULE_DIR$/src" expected_position="0" />
<src_folder value="file://$MODULE_DIR$/BCEL" expected_position="1" />
<src_folder value="file://$MODULE_DIR$/" expected_position="2" />
<src_folder value="file://$MODULE_DIR$/test" expected_position="3" />
</src_description>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/bin" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="false" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="module-library">
<library name="junit-4.0.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/junit-4.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.0/junit-4.0-sources.jar!/" />
</SOURCES>
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="cloning.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/cloning.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="guava-10.0.1.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/guava-10.0.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="commons-bcel6-6.0-SNAPSHOT.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/commons-bcel6-6.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="file://$USER_HOME$/Development/intellijworkspace/bcel/src/main/java" />
</SOURCES>
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="bcel-6.0-SNAPSHOT.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/bcel-6.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
</component>
</module>
-76
View File
@@ -1,76 +0,0 @@
\begin{thebibliography}{CMP00}
\bibitem[B{\"a}u05]{JB05}
J{\"o}rg B{\"a}uerle.
\newblock {\em Typinferenz in \textsf{Java}}.
\newblock Studienarbeit, BA Stuttgart/Horb, 2005.
\newblock (in german).
\bibitem[CMP00]{CMP2000}
Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano.
\newblock {\em D\'eveloppement d'applications avec Objective Caml}.
\newblock O'Reilly, avril 2000.
\newblock in french, translation http://caml.inria.fr/oreilly-book.
\bibitem[Lit98]{VL98}
Vassily Litvinov.
\newblock Constraint-based polymorphism in {Cecil}: Towards a practical and
static type system.
\newblock In {\em {OOPSLA} '98 Conference Proceedings}, volume 33(10), pages
388--411, 1998.
\bibitem[Mel05]{MM05}
Markus Melzer.
\newblock {\em Integration der \textsf{Java}--Typeinferenz in eine
Programmierumgebung}.
\newblock Studienarbeit, BA Stuttgart/Horb, 2005.
\newblock Studienarbeit (in german).
\bibitem[Ode02]{MO02}
Martin Odersky.
\newblock Inferred type instantiation for {GJ}.
\newblock Note sent to the types mailing list, January 2002.
\bibitem[Ott04]{TO04}
Thomas Ott.
\newblock {\em Typinferenz in \textsf{Java}}.
\newblock Studienarbeit, BA Stuttgart/Horb, 2004.
\newblock (in german).
\bibitem[OZZ01]{OZZ01}
Martin Odersky, Christoph Zenger, and Matthias Zenger.
\newblock Colored local type inference.
\newblock {\em ACM SIG{\-}PLAN Notices}, 36(3):41--53, 2001.
\bibitem[PC94]{PC94}
John Plevyak and Andrew~A. Chien.
\newblock Precise concrete type inference for object-oriented languages.
\newblock In {\em Proceedings of the ninth annual conference on Object-oriented
programming systems, language, and applications}, pages 324--340. ACM Press,
1994.
\bibitem[Pl{\"u}04]{Plue04_1}
Martin Pl{\"u}micke.
\newblock Type unification in \textsf{Generic--Java}.
\newblock In Michael Kohlhase, editor, {\em Proceedings of 18th {I}nternational
{W}orkshop on {U}nification ({U}{N}{I}{F}'04)}, July 2004.
\newblock {\tt http://www.faculty.iu-bremen.de/mkohlhase/event/unif04}.
\bibitem[PS91]{PS91}
Jens Palsberg and Michael~I. Schwartzbach.
\newblock Object-oriented type inference.
\newblock {\em Proceedings of OOPSLA'91, ACM SIGPLAN Sixth Annual Conference on
Object-Oriented Programming Systems, Languages and Applications}, pages
146--161, October 1991.
\bibitem[PS94]{PS94}
Jens Palsberg and Michael~I. Schwartzbach.
\newblock {\em Object-oriented type systems}.
\newblock John Wiley \& Sons, 1994.
\bibitem[PT00]{PT00}
Benjamin~C. Pierce and David~N. Turner.
\newblock Local type inference.
\newblock {\em ACM Trans. Program. Lang. Syst.}, 22(1):1--44, 2000.
\end{thebibliography}
Binary file not shown.
-140
View File
@@ -1,140 +0,0 @@
\documentclass[11pt]{article}
\setlength{\unitlength}{1 true cm}
\setlength{\oddsidemargin}{0 true mm}
\setlength{\evensidemargin}{\oddsidemargin}
\setlength{\textwidth}{160 true mm}
\setlength{\parindent}{5 true mm}
\setlength{\topmargin}{1 true mm}
\setlength{\headheight}{12 true pt}
\setlength{\headsep}{20 true pt}
\setlength{\textheight}{240 true mm}
\setlength{\footskip}{15 true mm}
\setlength{\voffset}{-10 true mm}
%\setlength{\footheight}{5 true mm}
\usepackage{prolog}
\title{Type--Inference in \javafive}
\author{J\"org B\"auerle, Markus Melzer, Martin Pl\"umicke\medskip\\
\small
University of Cooperative Education Stuttgart\\
%Department of Information Technology\\
%Florianstra{\ss}e 15\\
%D--72160 Horb\\
%tel. +49-7451-521142\\
%fax. +49-7451-521190\\
\small m.pluemicke@ba-horb.de
}
\begin{document}
\bibliographystyle{alpha}
\maketitle
\section{Overview}
We have developed for \javafive a type inference system. This means that the
user can write programs without any type annotations and the system determines
the correct types. We have implemented a prototype for this
system. Furthermore we have implemented a plugin for the integrated development
environment \eclipse.
\section{The Type Inference Algorithm}
Since then type inference in \oldjava similar languages is known as the
automatic parameter instantiation in polymorphic methods (local type inference)
\cite{PT00,OZZ01,MO02}. It is proved that this type inference is
unsound. Some techniques are presented, which solve these unsoundness.
We extend these approaches to a global variant, where additionally
the types of method parameters, methods' return types and the
types of local variables are determined automatically. The input of the algorithm
are only the types of the fields of the respective classes.
The type inference algorithm traverses the programming code as an abstract syntax
tree and forms sets of type inequations. As it is known that even the local
type inference is unsound, it is obvious that our approach is also unsound. We
deal with this problem, as we allow different type assumptions for the
parameters, the return type, the local variables, and the expressions of each
method, respectively. During traversing the set of type assumptions is adapted, such
that the set contains exactly the assumptions, which are possible assumptions at
the respective position during the traverse. The adaption is done by solving the
inequations as far as possible by a type unification algorithm
\cite{Plue04_1}. The type unification is not unitary but finitary. This means
that each unification step reduces the set of type assumptions if there is no
solution for one set of inequations. On the other hand the set of type assumptions is extended, if
there is more than one solution for a set of inequations.
The result of the type inference algorithm is the set of all correct
combinations of types of the parameters, the return type, and the local
variables.
After the type inference step during the compilation, there are two possibilities. Either for each
combination of types of each method, byte code could be built,
respectively. This would lead to the property that method names, which are
declared only once, could be overloaded.
On the other hand one combination could
be selected. Then, for this combination of types byte code would be built. We
implemented the second possibility (cp. section \ref{sec:IDE}).
Furthermore, we have done comparisons to other type inference
approaches. We considered the
type system of \textsf{Cecil} \cite{VL98}, which is a static type system
providing type checking and local type inference. Furthermore we considered a
type system for a language oriented at \textsf{Smalltalk} \cite{PS91,
PS94}. In this approach the types are computed by a least fixed point derivation.
In \cite{PC94} type inference for the language \textsf{Concurrent Aggregates} is
described, which contains a data flow analysis. Finally, we considered the type
system of \textsf{ocaml} \cite{CMP2000}. The approach of this type system
differs from our's, as \textsf{ocaml} allows higher-order functions.
\section{Implementation}
We have done the implementation in \oldjava. The implementation consists of two
parts. First we describe the implementation of the type unification
algorithm. Then we present the implementation of the actual type inference via
code traverse.
\subsection{Type Unification}
The implementation of the type unification \cite{TO04} contains as the main
datastructure a Menge of type term pairs. The algorithm itself is
implemented as an extension of the usual unification algorithm. Pairs of
the form $a \olsub ty$ respectively $ty \olsub a$, where $a$ is a variable and
$ty$ is a term but no variable, generate multiple solutions.
\subsection{Type Inference}
The idea of the implementation of the actual type inference algorithm
\cite{JB05} is that each construct in a \javafive program (method, parameter,
return type, variable,
expression) get first a variable as its type assumption. Then, for each variable a
type is determined by the algorithm.
There are two main datastructures.
The first one represents type assumptions for methods, fields, and
variables. During runtime a set of instances of this
datastructure represent the different possibilities of type assumptions. The
second main datastructure represents the substitutions of the variables to types,
calculated step by step.
During runtime each construct of the abstract syntax tree is registered
as a listener by the corresponding type variable. These registrations finally allow
to substitute the variables in the abstract syntax tree by the
calculated types.
\section{Integrated Development Environment (IDE)}
\label{sec:IDE}
For \javafive without explicite type declaration a plugin for \eclipse is
developed \cite{MM05}. The IDE allows to show all different correct
possibilities to give types to the methods, parameters, return types, and local
variables, which are determined by the type inference algorithm. Then, the user
can select the favored type for each construct step by step. Finally, the
selected types are substituted in the respective constructs of the abstract syntax
tree.
\section{Summary and Outlook}
We have developed a system, which allows to give typeless \javafive
programs. The system calculates the correct types. The soundness problem is
solved such that all different possibilities are determined and the user
himself decides, which type should be used.
In the moment only a subset of \javafive is implemented. Interfaces and
F--bounded type parameters are not implemented yet. This should be done
henceforth.
\bibliography{martin,SE}
\end{document}
File diff suppressed because it is too large Load Diff
-708
View File
@@ -1,708 +0,0 @@
\usepackage{float}
\usepackage{color}
\usepackage{xspace_spezial}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{alltt}
\usepackage{fancybox}
\usepackage{stmaryrd}
\usepackage{verbatim}
\usepackage{epsfig}
\usepackage{multicol}
\newlength{\textwid}
\setlength{\textwid}{\textwidth}
\addtolength{\textwid}{-4ex}
\newlength{\textfighei}
\setlength{\textfighei}{\textheight}
\addtolength{\textfighei}{-10ex}
\DeclareSymbolFont{blackboard}{OT1}{bbm}{m}{sl}
\DeclareMathSymbol{\IR}{0}{blackboard}{"52}
\DeclareMathSymbol{\IN}{0}{blackboard}{"4E}
\DeclareMathSymbol{\IF}{0}{blackboard}{"46}
\DeclareMathSymbol{\IP}{0}{blackboard}{"50}
\DeclareMathSymbol{\IK}{0}{blackboard}{"4D}
\DeclareMathSymbol{\IZ}{0}{blackboard}{"5A}
\DeclareMathSymbol{\IQ}{0}{blackboard}{"51}
\DeclareMathSymbol{\IC}{0}{blackboard}{"43}
\parindent 0mm
\renewcommand{\unlhd}{<}
%\renewcommand{\lhd}{<\!\!|}
%\renewcommand{\rhd}{|\!\!>}
\definecolor{blue}{rgb}{0,0,1}
\definecolor{red}{rgb}{1,0,0}
\definecolor{green}{rgb}{0,1,0.3}
\definecolor{bluered}{rgb}{1,0,1}
\definecolor{bluegreen}{rgb}{1,0.3,0}
\newcommand{\red}[1]{\textcolor{red}{#1}}
\newcommand{\blue}[1]{\textcolor{blue}{#1}}
\newcommand{\green}[1]{\textcolor{green}{#1}}
\newcommand{\bluered}[1]{\textcolor{bluered}{#1}}
\newcommand{\bluegreen}[1]{\textcolor{bluegreen}{#1}}
\reversemarginpar
\newcommand{\commentary}[1]{\marginpar[\tiny #1]{\tiny #1}}
%\newcommand{\commentaryforKlaeren}[1]{\marginpar[\tiny #1]{\tiny #1}}
%\newcommand{\commentary}[1]{}
\newcommand{\commentaryforKlaeren}[1]{}
%
% figure - Einstellungen
%
\def\textfraction{0}
\def\topfraction{1.5}
\def\bottomfraction{1}
\def\floatpagefraction{1.0}
%\def\dbltopfraction{1}
%\def\dblfloatpagefraction{1.0}
\newcommand{\indexentry}[2]{\item[] #1 \dotfill #2\qquad\qquad\vspace{-0.8em}}
\newcommand{\sub}{\textrm{\,$\sqsubseteq$\,}\xspace}
\newcommand{\nsub}{\text{\,$\not\sqsubseteq$\,}\xspace}
\newcommand{\ecap}{\mbox{$\,\sqcap\,$}}
\newcommand{\ecup}{\mbox{$\,\sqcup\,$}}
\newcommand{\pre}{\mbox{$\,\preceq\,$}}
\newcommand{\botam}{{\{\, \bot,\ \amalg \,\}}\xspace}
%
% Substitutions
%
\newcommand{\subst}{\textrm{$\expbf{subst}{\normaltset}$}}
%
% Signaturen
%
\def\einf#1#2{\mbox{$(#1,~#2)$}\xspace}
\newcommand{\sig}{\einf{\normalbtermset}{\Theta}}
\newcommand{\typesig}{\einf{BTV}{TC}\xspace}
\newcommand{\einsig}{\einf{\normaltermset}{F}\xspace}
\newcommand{\msig}{\einsig}
\newcommand{\mssig}{\einf{\equivtermset}{F_{ms}}\xspace}
\newcommand{\ossig}{\einf{\normaltset, \sub}{F_{os}}\xspace}
\def\einfm#1#2{\langle #1,\ #2 \rangle}
%\def\pos#1#2{\einf{#1,\ \sqsubseteq}{#2}}
\def\pos#1#2#3{\einf{#1,\ #2}{#3}}
\def\posm#1#2{\pos{#1}{#2}}
\def\posSO#1{\pos{#1}{F}}
\def\posSIG#1{\pos{S}{#1}}
\newcommand{\posig}{\pos{\normaltset}{\olsub}{\Sigma}}
\newcommand{\posigM}{\pos{\normaltset}{\olsub}{M}}
%\newcommand{\posig}{\pos{S}{\Sigma}}
\newcommand{\overposig}{\pos{\overline{S}}{\overline{\Sigma}}}
\def\fsf#1#2#3{\mbox{$#1^{(#2,#3)}$}\xspace}
\def\Sigmaa#1#2{\fsf{F}{#1}{#2}\xspace}
\newcommand{\Sigmaws}{\Sigmaa{w}{s}}
\newcommand{\Sigmawt}{\Sigmaa{w}{\theta}}
\def\set#1{\{\,#1 \,\}}
\newcommand{\termset}[3]{\textrm{$\exp{#1_{#2}}{#3}$}\xspace}
\newcommand{\normaltset}{\termset{T}{\Theta}{TV}}
\newcommand{\normaltermset}{\termset{T}{\Theta}{TV}}
\newcommand{\normalbtermset}{\termset{T}{TC}{BTV}}
\newcommand{\equivtermset}{\textrm{$\exp{T_{\Theta_{\sim}}}{TV}$}\xspace}
\newcommand{\equiva}[1]{[#1]_{\sim}}
\newcommand{\popoSIG}[1]{\einf{\normaltset,~\sqsubseteq}{#1}}
\newcommand{\poposig}{\popoSIG{F}}
%\newcommand{\poss}{polymorphically order-sorted signature\xspace}
%\newcommand{\posa}{polymorphically order-sorted algebra\xspace}
\newcommand{\polyosalg}{\textrm{\rm \textbf{PolyOSAlg}$_{\SigO}$}}
\newcommand{\polyalg}{\textrm{\rm \textbf{PolyAlg}$_{\SigM}$}}
\newcommand{\SigO}{\textrm{$\Sigma_{\textit{os}}$}\xspace}
\newcommand{\FuO}{\textrm{$F$}\xspace}
\newcommand{\SigM}{\textrm{$\Sigma_{\textit{ms}}$}\xspace}
\newcommand{\FuM}{\textrm{$F$}\xspace}
\newcommand{\Sig}{\textrm{$\Sigma$}\xspace}
\newcommand{\SigE}{\textrm{$\Sigma_{\textit{ext}}$}\xspace}
\newcommand{\objprogram}{\textrm{$<\Sig, \, E>$}\xspace}
%
% Algebren
%
\let\oldsqsubseteq=\sqsubseteq
\renewcommand{\sqsubseteq}{\leq}
\def\alg#1#2{\textrm{{\rm (}$#1;#2${\rm )}}\xspace}
\def\algm#1#2{(#1;#2)}
\def\algME#1{\alg{#1}{\alpha}}
\def\algABB#1{\alg{A}{#1}}
\def\algebra{\alg{A}{\alpha}}
\def\termalg{\mbox{$\algm{T_{\text{\rm posig}}}{\iota}$}}
\def\termalgm#1{\algm{T_{\text{#1}}}{\iota_{\text{#1}}}}
\def\OStermsetvar#1{\textrm{$T_{\SigO}#1$}\xspace}
\def\OStermset{\OStermsetvar{(V)}}
\def\OStset{\OStermsetvar{}\xspace}
\def\OStermsettypevar#1#2{\textrm{$T^{#1}_{\SigO}#2$}\xspace}
\def\OStermsettype#1{\OStermsettypevar{#1}{(V)}}
\def\ops{\exp{Ops}{A}}
\def\exp#1#2{#1(\,#2\,)\xspace}
%\def\exptt#1#2{\exp{\text{\tt #1}}{\text{\tt #2}}}
\def\exptt#1#2{\exp{\mbox{$\mathtt{#1}$}}{\mbox{$\mathtt{#2}$}}}
\def\expsyn#1#2{\exp{\syn{#1}}{\syn{#2}}}
\def\expbf#1#2{\exp{\text{\bf #1}}{#2}}
\def\expsf#1#2{\exp{\text{\sf #1}}{#2}}
\def\exptype#1#2{#1\textrm{{\tt <}}#2\textrm{{\tt >}}\xspace}
\def\exptypett#1#2{\mathtt{#1}\textrm{{\tt <}}\mathtt{#2}\textrm{{\tt >}}\xspace}
\def\smalltt#1{\texttt{\small #1}}
\def\term{\textrm{$\exp{f}{t_1, \ \ldots \ ,t_n}$}\xspace}
\def\hverbandm#1#2{\textrm{$(#1,~#2)$}}
\def\partord#1#2{\hverbandm{#1}{#2}\xspace}
\def\eval#1{eval_{\left<#1\right>}\xspace}
\def\evalA{$\eval{\algm{A}{\alpha}}$\xspace}
\def\la#1#2{\mbox{$\lambda#1.#2$}\xspace}
\def\set#1{\{\, #1 \,\}}
\newcommand{\inletters}[1]{
\ifx\the
first
\fi}
%\newcommand{\olsub}{\textrm{$\, \ol{\sqsubseteq} \,$}\xspace}
\newcommand{\olsub}{\textrm{$\, \leq^\ast \,$}\xspace}
\newcommand{\olsubprime}{\textrm{$\, \ol{\sqsubseteq}' \,$}\xspace}
\newcommand{\nolsub}{\textrm{$\, \not\sqsubseteq^* \,$}\xspace}
\newcommand{\hverband}{\partord{S}{\sqsubseteq}\xspace}
\newcommand{\qverband}{\partord{\exp{\ol{T}_{\Theta}}{V}}{\olsub}}
\newcommand{\cloqverband}{\partord{\exp{T_{\Theta}}{V}}{\olsub}}
\newcommand{\hord}{\mbox{$(S,~\sqsubseteq)$}\xspace}
\def\einschr#1{|_{#1}}
%\newcommand{\lsem}{[\hspace*{-0.3ex}[}
%\newcommand{\rsem}{]\hspace*{-0.3ex}]}
\newcommand{\lsem}{\llbracket\hspace{.5ex}}
\newcommand{\rsem}{\hspace{.5ex}\rrbracket}
\newcommand{\lsemm}{\lsem}
\newcommand{\rsemm}{\rsem}
\newcommand{\semantic}[1]{\lsem #1 \rsem\xspace}
\newcommand{\ol}[1]{\overline{#1}}
\newcommand{\ul}[1]{\underline{#1}}
\newcommand{\dps}{\displaystyle}
\newcommand{\sema}[3]{{\cal #1}_{#2}\semantic{#3}}
\newcommand{\sem}[2]{\sema{#1}{}{#2}\xspace}
%
% Programming languages
%
\newcommand{\haskell}{\textsf{Haskell}\xspace}
\newcommand{\gofer}{\textsf{Gofer}\xspace}
\newcommand{\objp}{\mbox{\textsf{OBJ--P}}\xspace}
\newcommand{\java}{\mbox{\textsf{G--JAVA}}\xspace}
\newcommand{\oldjava}{\mbox{\textsf{JAVA}}\xspace}
\newcommand{\javafive}{\mbox{\textsf{JAVA 5.0}}\xspace}
\newcommand{\eclipse}{\mbox{\textsf{eclipse}}\xspace}
\newcommand{\pizza}{\mbox{\textsf{PIZZA}}\xspace}
\newcommand{\gj}{\mbox{\textsf{GJ}}\xspace}
\newcommand{\sml}{\mbox{\textsf{SML}}\xspace}
\newcommand{\ocaml}{\textsf{OCAML}}
\newcommand{\obj}{\mbox{\textsf{OBJ--3}}\xspace}
\newcommand{\objtwo}{\mbox{\textsf{OBJ--2}}\xspace}
\def\pot#1{{\cal P}(\, #1 \,)\xspace}
\def\partf{\overset{\text{\tiny part}}{\longrightarrow}\xspace}
%
% Deduktionssystem
%
\newcommand{\byrule}[1]{\raisebox{1.5ex}[0ex][0ex]{{{\rm [{\bf \small #1}]}}}}
\newcommand{\byruleok}[1]{\raisebox{1.5ex}[0ex][0ex]{{{\rm \small #1}}}}
\newcommand{\byrulewb}[1]{\raisebox{2.5ex}[0ex][0ex]{{{\rm [{\bf \small #1}]}}}}
\newcommand{\byruleokwb}[1]{\raisebox{2.5ex}[0ex][0ex]{{{\rm \small #1}}}}
\newcommand{\byrulesli}[1]{\raisebox{3.0ex}[0ex][0ex]{{{\rm [{\bf \small #1}]}}}}
\newcommand{\inter}[1]{\bigwedge \hspace{-.55em} \bigwedge_{#1}}
%
% ARRAY WITH ARGUMENTS
%
\newcommand{\sarray}[2]{\begin{array}[t]{#1} #2 \end{array}}
\newcommand{\sarrayt}[2]{\begin{array}[t]{#1} #2 \end{array}}
\newcommand{\sarrayb}[2]{\begin{array}[b]{#1} #2 \end{array}}
\newcommand{\sarrayo}[2]{\begin{array}{#1} #2 \end{array}}
%
% INFERENCE RULES
%
\newcommand{\byrulenew}[1]{\raisebox{2.1ex}[0ex][0ex]{{{\rm [{\bf \small #1}]}}}}
\newcommand{\postcond}[1]{\raisebox{2.1ex}[0ex][0ex]{#1}}
\newcommand{\lef}[1]{\multicolumn{1}{@{}l}{#1}}
\newcommand{\ri}[1]{\multicolumn{1}{r@{}}{#1}}
\newcommand{\ce}[1]{\multicolumn{1}{@{}c}{#1}}
\newcommand{\axiom}[2]{\textrm{[}\textbf{\small #1}\textrm{]} & \lef{#2}}
\newcommand{\irule}[4]{& \sarray{c}{#2}\vspace{1ex}\\\cline{2-2}
\vspace{-2ex}\\ \byrulenew{#1} & \sarray{c}{#3} & \postcond{$#4$}}
\newcommand{\irulealign}[6]{& \sarray{#2}{#3}\vspace{1ex}\\\cline{2-2}
\vspace{-2ex}\\ \byrulenew{#1} & \sarray{#4}{#5} & \postcond{$#6$}}
\newenvironment{irules}{$\begin{array}{lcl}}{\end{array}$}
%
% Kategorien
%
\newcommand{\funs}[1]{\mbox{$F^S_{ERR}$(\, #1 \,)}\xspace}
\newcommand{\funa}[1]{\mbox{$F^A_{ERR}$(\, #1 \,)}\xspace}
\newcommand{\funh}[1]{\mbox{$F^H_{ERR}(\, #1 \,)$}\xspace}
%
% Typherleitungen
%
%\let\oldrhd=\rhd
%\newcommand{\rder}{\hspace*{0.5ex} \rhd_{\textrm{\tiny $\Sig$}} \hspace{0.5ex}}
\newcommand{\rder}{\hspace*{0.5ex} \rhd \hspace{0.5ex}}
%\newcommand{\lder}{\hspace*{0.5ex} \lhd_{\textrm{\tiny $\Sig$}} \hspace*{0.5ex}}
\newcommand{\lder}{\hspace*{0.5ex} \lhd \hspace*{0.5ex}}
\newcommand{\rderStmt}{\hspace*{0.5ex} \rhd_{Stmt} \hspace*{0.5ex}}
\newcommand{\rderExpr}{\hspace*{0.5ex} \rhd_{Expr} \hspace*{0.5ex}}
\newcommand{\rderIdent}{\hspace*{0.5ex} \rhd_{Id} \hspace*{0.5ex}}
\let\oldblacktriangleright=\blacktriangleright
%\newcommand{\fder}{\hspace*{1ex} \textrm{$\blacktriangleright_{\textsl{\tiny \hspace{-1ex}\Sig}}$}}
\newcommand{\fder}{\hspace*{1ex} \textrm{$\blacktriangleright$}}
\newcommand{\newtheo}[3]{\newtheorem{#1}[defhalbordnung]{#2}
\begin{#1} {\rm #3} \label{#1} \end{#1}}
\newcommand{\der}[2]{\mbox{$#1 \rhd\ #2$}\xspace}
\newcommand{\derl}[2]{#1 \lhd_{\textrm{\tiny $\Sig$}} #2\xspace}
\newcommand{\derr}[2]{#1 \rhd_{\textrm{\tiny \hspace{-1ex}$\Sig$}} #2\xspace}
\newcommand{\derf}[3]{( \, #1, \, #2 \, ) \fder #3\xspace}
\newcommand{\deri}[1]{\der{A}{K}{#1}\xspace}
\newcommand{\derif}[1]{\derf{A}{K}{D}{#1}\xspace}
\newcommand{\arity}[3]{\textrm{$\alpha^{(#1,#2)}_{#3}$}\xspace}
\newcommand{\coarity}[2]{\textrm{$\beta^{(#1,#2)}$}\xspace}
\newcommand{\sodaprg}{\textrm{$(\,\textsl{csig},\ D\,)$\xspace}}
%
% Typen
%
\newcommand{\typ}[3]{\textrm{$ #1 \times \ldots \times #2 \rightarrow #3$}\xspace}
\newcommand{\syn}[1]{{\rm \texttt{\small #1}}}
\newcommand{\sigmatyp}{\typ{\sigma_1}{\sigma_n}{\sigma}\xspace}
\newcommand{\sigmadef}{\mbox{$\sigma_1 \times \ldots \times \sigma_n$}\xspace}
\newcommand{\tautyp}{\typ{\tau_1}{\tau_n}{\tau}\xspace}
\newcommand{\tautypsup}[1]{\typ{\tau^{#1}_1}{\tau^{#1}_n}{\tau^{#1}}\xspace}
\newcommand{\taudef}{\mbox{$\tau_1 \times \ldots \times \tau_n$}\xspace}
\newcommand{\thetatyp}{\typ{\theta_1}{\theta_n}{\theta_0}\xspace}
\newcommand{\type}{\text{$\text{TYPE}(\,S,\ V\,)$}\xspace}
\newcommand{\typea}{\text{$\text{TYPE}_T(\,S,\ V\,)$}\xspace}
\newcommand{\ptype}{{\rm \expsf{Type}{\normalbtermset}}\xspace}
\newcommand{\ptypea}{\text{$\text{TYPE}_T(\,\Theta,\ V\,)$}\xspace}
\newcommand{\types}{\text{$\text{TYPE}_s(\,S,\ \Gamma\,)$}\xspace}
\newcommand{\epsbox}[2]{
%\begin{center}
\setlength{\fboxsep}{4mm}
\fbox{\epsfxsize=#1 \epsfbox{#2}}
%\end{center}
}
\newcommand{\epsxybox}[3]{
\begin{minipage}[t]{#1}
\setlength{\fboxsep}{4mm}
\fbox{\epsfysize=#2 \epsfbox{#3}}
\end{minipage}}
\newenvironment{program}{\begin{alltt}\small}
{\normalsize\end{alltt}\vspace*{-1em}}
\floatstyle{plain}
\newfloat{soda}{htp}{lop}
\floatname{soda}{SODA-Program}
%\sodaprog
% 1. width
% 2. figure
% 3. file
\newcommand{\sodaprog}[3]{
\begin{figure}%[#2]
%\begin{center}
\begin{Sbox}
\begin{minipage}{#1}
\small
\begin{alltt}
\verbatiminput{#3.soda}
\end{alltt}
\normalsize
\end{minipage}
\end{Sbox}
\setlength{\fboxsep}{2mm}
\fbox{\TheSbox}
%\end{center}
\caption{SODA module \texttt{#3}}
\label{fig:#3}
\end{figure}
}
%
% Theorem
%
\newcommand{\QED}{\rule{1.1ex}{1.1ex}}
%\newenvironment{proof}{\par \bigskip \noindent {\bf Proof:}
% }{\mbox{ } \hfill \QED \par \smallskip}
%\newenvironment{remark}{\par \bigskip \noindent {\bf Remark}
% }{\par \smallskip}
%\newtheorem{definition}{Definition}[section]
%\newtheorem{example}[definition]{Example}
%\newtheorem{theorem}[definition]{Theorem}
%\newtheorem{corollary}[definition]{Corollary}
%\newtheorem{lemma}[definition]{Lemma}
%\newtheorem{algorithm}[definition]{Algorithm}
%\newenvironment{abstract}{\small \begin{center} {\bf Abstract}\\[2ex]
%\begin{minipage}{0.85\textwidth}}{\end{minipage} \end{center}}
\newenvironment{Zusammenfassung}{\small \begin{center} {\bf Zusammenfassung}\\[2ex]
\begin{minipage}{0.85\textwidth}}{\end{minipage} \end{center}}
\newlength{\level}
\newlength{\wid}
%\newcommand{\thelb}{
\def\notunlhd{\mathrel{\unlhd\!\!\!\!\!\mid}}
\def\In#1#2{#1 \! \in \! #2}
\def\Leq#1#2#3{#1 \! \leqslant \! #2 \! \leqslant \! #3}
\def\Lequ#1#2#3{#1 \leqslant #2 \leqslant #3}
\newcommand{\ma}[1]{\text{``}#1\text{''}\xspace}
\newcommand{\ttm}[1]{\mbox{\tt #1}\xspace}
\newcommand{\ret}[2]{\ttm{r}^{\ttm{\footnotesize #1}}_{\ttm{\footnotesize #2}}\xspace}
\newcommand{\retm}[2]{\ttm{r}^{#1}_{#2}\xspace}
\newcommand{\re}[2]{\displaystyle r^{#1}_{#2}\xspace}
\newlength{\qwert}
%\newcommand{\htext}[1]{\settowidth{\qwert}{#1} \addtolength{\qwert}{-0.65ex} \hspace*{\qwert}}
\newcommand{\htext}[1]{\settowidth{\qwert}{#1} \hspace*{\qwert}}
\newcommand{\leng}[1]{\settowidth{\qwert}{#1} \qwert}
\newcommand{\ldo}{, \ldots , }
%
% Algorithmus
%
\newcommand{\nll}{\newline\hspace*{\level}}
\newcommand{\nlevel}{\addtolength{\level}{0.4cm}}
\newcommand{\llevel}{\addtolength{\level}{-0.4cm}}
\newcommand{\ifc}[1]{\textbf{if} \nlevel #1 \llevel}
\newcommand{\elsifc}[1]{\textbf{elsif} \nlevel #1 \llevel}
\newcommand{\foreachc}[2]{\textbf{foreach} #1 \nlevel #2 \llevel}
\newcommand{\thenc}[1]{\textbf{then} \nlevel #1 \llevel}
\newcommand{\ifthenc}[2]{\textbf{if} #1 \textbf{then} \nlevel #2 \llevel}
\newcommand{\elsec}[1]{\textbf{else} \nlevel #1 \llevel}
\newcommand{\eifc}{\textbf{endif}\\}
\newcommand{\casec}[2]{\fbox{\textbf{case} #1}\ \nlevel \nlevel #2 \llevel \llevel}
\newcommand{\letc}[2]{\textbf{let} \nlevel \\ #1 = \nlevel #2 \llevel \llevel}
\newcommand{\letbf}[1]{\textbf{let} \nlevel \\ #1 \llevel}
\newcommand{\inc}[1]{\textbf{in} \nlevel #1 \llevel \nopagebreak\\ \textbf{end}}
\newcommand{\lam}[2]{\textbf{fn } #1 \textrm{$\, \Rightarrow \,$} #2}
\newcommand{\inputc}[1]{\nll \textbf{Input:} \nlevel #1 \llevel}
\newcommand{\outputc}[1]{\nll \textbf{Output:} \nlevel #1 \llevel}
%\newcommand{\letforeachc}[3]{\textbf{let-foreach} \nlevel #1:\\ \ul{#2} = \nlevel #3 \llevel \llevel}
\newcommand{\letforeachc}[3]{\textbf{let-foreach} \nlevel #1:\\ #2 = \nlevel #3 \llevel \llevel}
%\newcommand{\letuc}[2]{\textbf{let} \nlevel \\ \ul{#1} = \nlevel #2 \llevel \llevel}
\newcommand{\letuc}[2]{\textbf{let} \nlevel \\ #1 = \nlevel #2 \llevel \llevel}
\newcommand{\letoeq}[3]{\textbf{let} \nlevel \\ #1 #2 \nlevel #3 \llevel \llevel}
\newcommand{\letoeqol}[3]{\nlevel \\ #1 #2 \nlevel #3 \llevel \llevel}
%\newcommand{\letu}[2]{\nlevel\\ \ul{#1} = \nlevel #2 \llevel\llevel}
\newcommand{\letu}[2]{\nlevel\\ #1 = \nlevel #2 \llevel\llevel}
\newcommand{\letnc}[2]{\nlevel\\ #1 = \nlevel #2 \llevel\llevel}
\newcommand{\misc}[1]{\nlevel\\ #1 \llevel}
\newcommand{\least}{\textrm{$\top$}\xspace}
\newenvironment{algocommands}{
\setlength{\level}{2mm}
\renewcommand{\\}{\nll}
\noindent
}{\renewcommand{\\}{\newline}
\vspace{1ex}
}
\newenvironment{algo}{\begin{algorithm} \rm %\mbox{}\\
\begin{algocommands}
}{\end{algocommands}
\end{algorithm}
}
\newenvironment{boxedalgo}{
\begin{Sbox}
\begin{minipage}{\textwid}
\begin{algo}
}{\end{algo}
\end{minipage}
\end{Sbox}
\fbox{\TheSbox}
}
\newenvironment{Liste}{\begin{list}{\textbf{--}}{
\setlength{\parsep}{0pt plus0.0ex}
\setlength{\labelwidth}{2ex}
\setlength{\itemsep}{0pt}
\setlength{\leftmargin}{\labelsep +\labelwidth}
}}{\normalsize \end{list}}
\newcounter{ficall}
\setcounter{ficall}{0}
\newcommand{\ficall}[1]{\addtocounter{ficall}{1}\subsubsection*{(\theficall) \
#1}
\setcounter{secall}{0}
\setcounter{thicall}{0}
\setcounter{focall}{0}
\setcounter{fifcall}{0}
\setcounter{sixcall}{0}
\setcounter{sevcall}{0}
\setcounter{eigcall}{0}
\setcounter{nicall}{0}
\setcounter{tencall}{0}
\setcounter{elecall}{0}
}
\newcommand{\reficall}[1]{\subsubsection*{(\theficall) \
#1}}
\newcounter{fifinum}
\newcommand{\finumset}{\setcounter{fifinum}{\value{ficall}}}
\newcommand{\finum}{\thefifinum}
\newcounter{fifinumold}
\newcommand{\finumoldset}{
\setcounter{fifinumold}{\value{fifinum}}
}
\newcommand{\finumold}{\thesefinumold}
\newcounter{secall}
\setcounter{secall}{0}
\newcounter{sefinum}\newcounter{sesenum}
\newcommand{\senumset}{\setcounter{sefinum}{\value{ficall}}\setcounter{sesenum}{\value{secall}}}
\newcommand{\secall}[1]{\addtocounter{secall}{1}\subsubsection*{(\theficall.\thesecall) \ #1}
\setcounter{thicall}{0}
\setcounter{focall}{0}
\setcounter{fifcall}{0}
\setcounter{sixcall}{0}
\setcounter{sevcall}{0}
\setcounter{eigcall}{0}
\setcounter{nicall}{0}
\setcounter{tencall}{0}
\setcounter{elecall}{0}
}
\newcommand{\resecall}[1]{\subsubsection*{(\theficall.\thesecall) \ #1}}
\newcommand{\senum}{\thesefinum.\thesesenum}
\newcounter{sefinumold}
\newcounter{sesenumold}
\newcommand{\senumoldset}{
\setcounter{sefinumold}{\value{sefinum}}
\setcounter{sesenumold}{\value{sesenum}}
}
\newcommand{\senumold}{\thesefinumold.\thesesenumold}
\newcounter{thicall}
\setcounter{thicall}{0}
\newcounter{thifinum}\newcounter{thisenum}\newcounter{thithinum}
\newcommand{\thinumset}{\setcounter{thifinum}{\value{ficall}}\setcounter{thisenum}{\value{secall}}\setcounter{thithinum}{\value{thicall}}}
\newcommand{\thicall}[1]{\addtocounter{thicall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall) \ #1}
\setcounter{focall}{0}
\setcounter{fifcall}{0}
\setcounter{sixcall}{0}
\setcounter{sevcall}{0}
\setcounter{eigcall}{0}
\setcounter{nicall}{0}
\setcounter{tencall}{0}
\setcounter{elecall}{0}
}
\newcommand{\rethicall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall) \ #1}}
\newcommand{\thinum}{\thethifinum.\thethisenum.\thethithinum}
\newcounter{focall}
\setcounter{focall}{0}
\newcounter{fofinum}\newcounter{fosenum}\newcounter{fothinum}\newcounter{fofonum}
\newcommand{\focall}[1]{\addtocounter{focall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall) \ #1}
\setcounter{fifcall}{0}
\setcounter{sixcall}{0}
\setcounter{sevcall}{0}
\setcounter{eigcall}{0}
\setcounter{nicall}{0}
\setcounter{tencall}{0}
\setcounter{elecall}{0}
}
\newcommand{\fonumset}{\setcounter{fofinum}{\value{ficall}}\setcounter{fosenum}{\value{secall}}\setcounter{fothinum}{\value{thicall}}\setcounter{fofonum}{\value{focall}}}
\newcommand{\fonum}{\thefofinum.\thefosenum.\thefothinum.\thefofonum}
\newcommand{\refocall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall) \ #1}}
\newcounter{fifcall}
\setcounter{fifcall}{0}
\newcommand{\fifcall}[1]{\addtocounter{fifcall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall) \ #1}
\setcounter{sixcall}{0}
\setcounter{sevcall}{0}
\setcounter{eigcall}{0}
\setcounter{nicall}{0}
\setcounter{tencall}{0}
\setcounter{elecall}{0}
}
\newcounter{fiffinum}\newcounter{fifsenum}\newcounter{fifthinum}\newcounter{fiffonum}\newcounter{fiffifnum}
\newcommand{\fifnumset}{\setcounter{fiffinum}{\value{ficall}}\setcounter{fifsenum}{\value{secall}}\setcounter{fifthinum}{\value{thicall}}\setcounter{fiffonum}{\value{focall}}\setcounter{fiffifnum}{\value{fifcall}}}
\newcommand{\fifnum}{\thefiffinum.\thefifsenum.\thefifthinum.\thefiffonum.\thefiffifnum}
\newcommand{\refifcall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall) \ #1}}
\newcounter{fiffinumold}
\newcounter{fifsenumold}
\newcounter{fifthinumold}
\newcounter{fiffonumold}
\newcounter{fiffifnumold}
\newcommand{\fifnumoldset}{
\setcounter{fiffinumold}{\value{fiffinum}}
\setcounter{fifsenumold}{\value{fifsenum}}
\setcounter{fifthinumold}{\value{fifthinum}}
\setcounter{fiffonumold}{\value{fiffonum}}
\setcounter{fiffifnumold}{\value{fiffifnum}}
}
\newcommand{\fifnumold}{\thefiffinumold.\thefifsenumold.\thefifthinumold.\thefiffonumold.\thefiffifnumold}
\newcounter{fiffinumoldold}
\newcounter{fifsenumoldold}
\newcounter{fifthinumoldold}
\newcounter{fiffonumoldold}
\newcounter{fiffifnumoldold}
\newcommand{\fifnumoldoldset}{
\setcounter{fiffinumoldold}{\value{fiffinum}}
\setcounter{fifsenumoldold}{\value{fifsenum}}
\setcounter{fifthinumoldold}{\value{fifthinum}}
\setcounter{fiffonumoldold}{\value{fiffonum}}
\setcounter{fiffifnumoldold}{\value{fiffifnum}}
}
\newcommand{\fifnumoldold}{\thefiffinumoldold.\thefifsenumoldold.\thefifthinumoldold.\thefiffonumoldold.\thefiffifnumoldold}
\newcounter{sixcall}
\setcounter{sixcall}{0}
\newcommand{\sixcall}[1]{\addtocounter{sixcall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall) \ #1}
\setcounter{sevcall}{0}
\setcounter{eigcall}{0}
\setcounter{nicall}{0}
\setcounter{tencall}{0}
\setcounter{elecall}{0}
}
\newcounter{sixfinum}
\newcounter{sixsenum}
\newcounter{sixthinum}
\newcounter{sixfonum}
\newcounter{sixfifnum}
\newcounter{sixsixnum}
\newcommand{\sixnumset}{
\setcounter{sixfinum}{\value{ficall}}
\setcounter{sixsenum}{\value{secall}}
\setcounter{sixthinum}{\value{thicall}}
\setcounter{sixfonum}{\value{focall}}
\setcounter{sixfifnum}{\value{fifcall}}
\setcounter{sixsixnum}{\value{sixcall}}
}
\newcommand{\sixnum}{\thesixfinum.\thesixsenum.\thesixthinum.\thesixfonum.\thesixfifnum.\thesixsixnum}
\newcommand{\resixcall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall) \ #1}}
\newcounter{sevcall}
\setcounter{sevcall}{0}
\newcommand{\sevcall}[1]{\addtocounter{sevcall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall) \ #1}
\setcounter{eigcall}{0}
\setcounter{nicall}{0}
\setcounter{tencall}{0}
\setcounter{elecall}{0}
}
\newcounter{sevfinum}
\newcounter{sevsenum}
\newcounter{sevthinum}
\newcounter{sevfonum}
\newcounter{sevfifnum}
\newcounter{sevsixnum}
\newcounter{sevsevnum}
\newcommand{\sevnumset}{
\setcounter{sevfinum}{\value{ficall}}
\setcounter{sevsenum}{\value{secall}}
\setcounter{sevthinum}{\value{thicall}}
\setcounter{sevfonum}{\value{focall}}
\setcounter{sevfifnum}{\value{fifcall}}
\setcounter{sevsixnum}{\value{sixcall}}
\setcounter{sevsevnum}{\value{sevcall}}
}
\newcommand{\sevnum}{\thesevfinum.\thesevsenum.\thesevthinum.\thesevfonum.\thesevfifnum.\thesevsixnum.\thesevsevnum}
\newcommand{\resevcall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall) \ #1}}
\newcounter{eigcall}
\newcounter{eigfinum}\newcounter{eigsenum}\newcounter{eigthinum}\newcounter{eigfonum}\newcounter{eigfifnum}\newcounter{eigsixnum}\newcounter{eigsevnum}\newcounter{eigeignum}
\setcounter{eigcall}{0}
\newcommand{\eignumset}{\setcounter{eigfinum}{\value{ficall}}\setcounter{eigsenum}{\value{secall}}\setcounter{eigthinum}{\value{thicall}}\setcounter{eigfonum}{\value{focall}}\setcounter{eigfifnum}{\value{fifcall}}\setcounter{eigsixnum}{\value{sixcall}}\setcounter{eigsevnum}{\value{sevcall}}\setcounter{eigeignum}{\value{eigcall}}}
\newcommand{\eignum}{\theeigfinum.\theeigsenum.\theeigthinum.\theeigfonum.\theeigfifnum.\theeigsixnum.\theeigsevnum.\theeigeignum}
\newcommand{\eigcall}[1]{\addtocounter{eigcall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall) \ #1}
\setcounter{nicall}{0}
\setcounter{tencall}{0}
\setcounter{elecall}{0}
}
\newcommand{\reeigcall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall) \ #1}}
\newcounter{nicall}
\newcounter{nifinum}\newcounter{nisenum}\newcounter{nithinum}\newcounter{nifonum}\newcounter{nififnum}\newcounter{nisixnum}\newcounter{nisevnum}\newcounter{nieignum}\newcounter{nininum}
\setcounter{nicall}{0}
\newcommand{\ninumset}{\setcounter{nifinum}{\value{ficall}}\setcounter{nisenum}{\value{secall}}\setcounter{nithinum}{\value{thicall}}\setcounter{nifonum}{\value{focall}}\setcounter{nififnum}{\value{fifcall}}\setcounter{nisixnum}{\value{sixcall}}\setcounter{nisevnum}{\value{sevcall}}\setcounter{nieignum}{\value{eigcall}}\setcounter{nininum}{\value{nicall}}}
\newcommand{\ninum}{\thenifinum.\thenisenum.\thenithinum.\thenifonum.\thenififnum.\thenisixnum.\thenisevnum.\thenieignum.\thenininum}
\newcommand{\nicall}[1]{\addtocounter{nicall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall.\thenicall)
\ #1}
\setcounter{tencall}{0}
\setcounter{elecall}{0}
}
\newcommand{\renicall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall.\thenicall)
\ #1}}
\newcounter{nifinumold}
\newcounter{nisenumold}
\newcounter{nithinumold}
\newcounter{nifonumold}
\newcounter{nififnumold}
\newcounter{nisixnumold}
\newcounter{nisevnumold}
\newcounter{nieignumold}
\newcounter{nininumold}
\newcommand{\ninumoldset}{
\setcounter{nifinumold}{\value{nifinum}}
\setcounter{nisenumold}{\value{nisenum}}
\setcounter{nithinumold}{\value{nithinum}}
\setcounter{nifonumold}{\value{nifonum}}
\setcounter{nififnumold}{\value{nififnum}}
\setcounter{nisixnumold}{\value{nisixnum}}
\setcounter{nisevnumold}{\value{nisevnum}}
\setcounter{nieignumold}{\value{nieignum}}
\setcounter{nininumold}{\value{nininum}}
}
\newcommand{\ninumold}{\thenifinumold.\thenisenumold.\thenithinumold.\thenifonumold.\thenififnumold.\thenisixnumold.\thenisevnumold.\thenieignumold.\thenininumold}
\newcounter{tencall}
\setcounter{tencall}{0}
\newcommand{\tencall}[1]{\addtocounter{tencall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall.\thenicall.\thetencall)
\ #1}
\setcounter{elecall}{0}
}
\newcommand{\retencall}[1]{\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall.\thenicall.\thetencall)
\ #1}}
\newcounter{tenfinum}
\newcounter{tensenum}
\newcounter{tenthinum}
\newcounter{tenfonum}
\newcounter{tenfifnum}
\newcounter{tensixnum}
\newcounter{tensevnum}
\newcounter{teneignum}
\newcounter{tenninum}
\newcounter{tentennum}
\newcommand{\tennumset}{
\setcounter{tenfinum}{\value{ficall}}
\setcounter{tensenum}{\value{secall}}
\setcounter{tenthinum}{\value{thicall}}
\setcounter{tenfonum}{\value{focall}}
\setcounter{tenfifnum}{\value{fifcall}}
\setcounter{tensixnum}{\value{sixcall}}
\setcounter{tensevnum}{\value{sevcall}}
\setcounter{teneignum}{\value{eigcall}}
\setcounter{tenninum}{\value{nicall}}
\setcounter{tentennum}{\value{tencall}}}
\newcommand{\tennum}{\thetenfinum.\thetensenum.\thetenthinum.\thetenfonum.\thetenfifnum.\thetensixnum.\thetensevnum.\theteneignum.\thetenninum.\thetentennum}
\newcounter{elecall}
\setcounter{elecall}{0}
\newcommand{\elecall}[1]{\addtocounter{elecall}{1}\subsubsection*{(\theficall.\thesecall.\thethicall.\thefocall.\thefifcall.\thesixcall.\thesevcall.\theeigcall.\thenicall.\thetencall.\theelecall) \ #1}}
\newcounter{elefinum}
\newcounter{elesenum}
\newcounter{elethinum}
\newcounter{elefonum}
\newcounter{elefifnum}
\newcounter{elesixnum}
\newcounter{elesevnum}
\newcounter{eleeignum}
\newcounter{eleninum}
\newcounter{eletennum}
\newcounter{eleelenum}
\newcommand{\elenumset}{
\setcounter{elefinum}{\value{ficall}}
\setcounter{elesenum}{\value{secall}}
\setcounter{elethinum}{\value{thicall}}
\setcounter{elefonum}{\value{focall}}
\setcounter{elefifnum}{\value{fifcall}}
\setcounter{elesixnum}{\value{sixcall}}
\setcounter{elesevnum}{\value{sevcall}}
\setcounter{eleeignum}{\value{eigcall}}
\setcounter{eleninum}{\value{nicall}}
\setcounter{eletennum}{\value{tencall}}
\setcounter{eleelenum}{\value{elecall}}
}
\newcommand{\elenum}{\theelefinum.\theelesenum.\theelethinum.\theelefonum.\theelefifnum.\theelesixnum.\theelesevnum.\theeleeignum.\theeleninum.\theeletennum.\theeleelenum}
+19
View File
@@ -0,0 +1,19 @@
# plugin site erstellen
* die JAvaTXCOmpiler DAtei in ein plugin umwandeln und deployen.
* siehe: http://www.vogella.com/tutorials/EclipseJarToPlugin/article.html#convert-jar-files-to-osgi-bundles-with-the-p2-maven-plugin
* AUsführung:
* mvn deploy #erstellt die JAR-Datei und steckt sie in ein lokales Repo (maven-repository)
* mvn p2:site
* mvn package # hier wird die ZIP-Filf zum Einbinden in Eclipse erstellt
# Einbinden in Eclipse
* In Eclipse kann die Zip-FIle wie ein Plugin installiert werden
* Hier tritt FEhler auf. Reflections-Library kann nicht installiert werden. Möglicherweise wird sie auch nicht gebraucht
* Nach dem installieren de.dhbwstuttagrt.JavaTXcompiler zu den DEpendencies des plugins hinzufügen
* Anschließend unter "Overview" auf "Updata Classpath" klicken
# Windows
* JAVA_HOME setzen:
* export JAVA_HOME=/c/Program\ Files/Java/jdk1.8.0_102/
-2
View File
@@ -1,2 +0,0 @@
Nächste Aufgaben:
-1028
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-515
View File
@@ -1,515 +0,0 @@
// Generated from Java8.g4 by ANTLR 4.4
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class Java8Lexer extends Lexer {
static { RuntimeMetaData.checkVersion("4.4", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8,
CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15,
ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23,
IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29,
NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36,
SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42,
THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VOID=48, VOLATILE=49,
WHILE=50, IntegerLiteral=51, FloatingPointLiteral=52, BooleanLiteral=53,
CharacterLiteral=54, StringLiteral=55, NullLiteral=56, LPAREN=57, RPAREN=58,
LBRACE=59, RBRACE=60, LBRACK=61, RBRACK=62, SEMI=63, COMMA=64, DOT=65,
ASSIGN=66, GT=67, LT=68, BANG=69, TILDE=70, QUESTION=71, COLON=72, EQUAL=73,
LE=74, GE=75, NOTEQUAL=76, AND=77, OR=78, INC=79, DEC=80, ADD=81, SUB=82,
MUL=83, DIV=84, BITAND=85, BITOR=86, CARET=87, MOD=88, ADD_ASSIGN=89,
SUB_ASSIGN=90, MUL_ASSIGN=91, DIV_ASSIGN=92, AND_ASSIGN=93, OR_ASSIGN=94,
XOR_ASSIGN=95, MOD_ASSIGN=96, LSHIFT_ASSIGN=97, RSHIFT_ASSIGN=98, URSHIFT_ASSIGN=99,
Identifier=100, AT=101, ELLIPSIS=102, WS=103, COMMENT=104, LINE_COMMENT=105;
public static String[] modeNames = {
"DEFAULT_MODE"
};
public static final String[] tokenNames = {
"'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'",
"'\\u0006'", "'\\u0007'", "'\b'", "'\t'", "'\n'", "'\\u000B'", "'\f'",
"'\r'", "'\\u000E'", "'\\u000F'", "'\\u0010'", "'\\u0011'", "'\\u0012'",
"'\\u0013'", "'\\u0014'", "'\\u0015'", "'\\u0016'", "'\\u0017'", "'\\u0018'",
"'\\u0019'", "'\\u001A'", "'\\u001B'", "'\\u001C'", "'\\u001D'", "'\\u001E'",
"'\\u001F'", "' '", "'!'", "'\"'", "'#'", "'$'", "'%'", "'&'", "'''",
"'('", "')'", "'*'", "'+'", "','", "'-'", "'.'", "'/'", "'0'", "'1'",
"'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "':'", "';'",
"'<'", "'='", "'>'", "'?'", "'@'", "'A'", "'B'", "'C'", "'D'", "'E'",
"'F'", "'G'", "'H'", "'I'", "'J'", "'K'", "'L'", "'M'", "'N'", "'O'",
"'P'", "'Q'", "'R'", "'S'", "'T'", "'U'", "'V'", "'W'", "'X'", "'Y'",
"'Z'", "'['", "'\\'", "']'", "'^'", "'_'", "'`'", "'a'", "'b'", "'c'",
"'d'", "'e'", "'f'", "'g'", "'h'", "'i'"
};
public static final String[] ruleNames = {
"ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", "CHAR",
"CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", "ENUM",
"EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS",
"IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", "NEW", "PACKAGE",
"PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC", "STRICTFP",
"SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS", "TRANSIENT",
"TRY", "VOID", "VOLATILE", "WHILE", "IntegerLiteral", "DecimalIntegerLiteral",
"HexIntegerLiteral", "OctalIntegerLiteral", "BinaryIntegerLiteral", "IntegerTypeSuffix",
"DecimalNumeral", "Digits", "Digit", "NonZeroDigit", "DigitOrUnderscore",
"Underscores", "HexNumeral", "HexDigits", "HexDigit", "HexDigitOrUnderscore",
"OctalNumeral", "OctalDigits", "OctalDigit", "OctalDigitOrUnderscore",
"BinaryNumeral", "BinaryDigits", "BinaryDigit", "BinaryDigitOrUnderscore",
"FloatingPointLiteral", "DecimalFloatingPointLiteral", "ExponentPart",
"ExponentIndicator", "SignedInteger", "Sign", "FloatTypeSuffix", "HexadecimalFloatingPointLiteral",
"HexSignificand", "BinaryExponent", "BinaryExponentIndicator", "BooleanLiteral",
"CharacterLiteral", "SingleCharacter", "StringLiteral", "StringCharacters",
"StringCharacter", "EscapeSequence", "OctalEscape", "UnicodeEscape", "ZeroToThree",
"NullLiteral", "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK",
"SEMI", "COMMA", "DOT", "ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION",
"COLON", "EQUAL", "LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD",
"SUB", "MUL", "DIV", "BITAND", "BITOR", "CARET", "MOD", "ADD_ASSIGN",
"SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN",
"MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", "Identifier",
"JavaLetter", "JavaLetterOrDigit", "AT", "ELLIPSIS", "WS", "COMMENT",
"LINE_COMMENT"
};
public Java8Lexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@Override
public String getGrammarFileName() { return "Java8.g4"; }
@Override
public String[] getTokenNames() { return tokenNames; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public String[] getModeNames() { return modeNames; }
@Override
public ATN getATN() { return _ATN; }
@Override
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 140: return JavaLetter_sempred((RuleContext)_localctx, predIndex);
case 141: return JavaLetterOrDigit_sempred((RuleContext)_localctx, predIndex);
}
return true;
}
private boolean JavaLetterOrDigit_sempred(RuleContext _localctx, int predIndex) {
switch (predIndex) {
case 2: return Character.isJavaIdentifierPart(_input.LA(-1));
case 3: return Character.isJavaIdentifierPart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)));
}
return true;
}
private boolean JavaLetter_sempred(RuleContext _localctx, int predIndex) {
switch (predIndex) {
case 0: return Character.isJavaIdentifierStart(_input.LA(-1));
case 1: return Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)));
}
return true;
}
public static final String _serializedATN =
"\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2k\u042e\b\1\4\2\t"+
"\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+
"\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
"\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+
"\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+
",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+
"\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+
"\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+
"\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+
"\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+
"`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+
"k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"+
"w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080"+
"\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084\4\u0085"+
"\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089"+
"\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e"+
"\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092"+
"\4\u0093\t\u0093\4\u0094\t\u0094\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3"+
"\3\3\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5"+
"\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3"+
"\b\3\b\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\13"+
"\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r"+
"\3\r\3\r\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3"+
"\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\22\3"+
"\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24\3\24\3"+
"\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\27\3\27\3"+
"\27\3\30\3\30\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3"+
"\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3"+
"\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3"+
"\35\3\35\3\35\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3"+
"\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3!\3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3"+
"\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3"+
"$\3$\3%\3%\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3\'\3"+
"\'\3(\3(\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3*\3"+
"+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3"+
"-\3.\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3\60\3\60\3\60\3"+
"\60\3\61\3\61\3\61\3\61\3\61\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3"+
"\62\3\63\3\63\3\63\3\63\3\63\3\63\3\64\3\64\3\64\3\64\5\64\u0281\n\64"+
"\3\65\3\65\5\65\u0285\n\65\3\66\3\66\5\66\u0289\n\66\3\67\3\67\5\67\u028d"+
"\n\67\38\38\58\u0291\n8\39\39\3:\3:\3:\5:\u0298\n:\3:\3:\3:\5:\u029d\n"+
":\5:\u029f\n:\3;\3;\7;\u02a3\n;\f;\16;\u02a6\13;\3;\5;\u02a9\n;\3<\3<"+
"\5<\u02ad\n<\3=\3=\3>\3>\5>\u02b3\n>\3?\6?\u02b6\n?\r?\16?\u02b7\3@\3"+
"@\3@\3@\3A\3A\7A\u02c0\nA\fA\16A\u02c3\13A\3A\5A\u02c6\nA\3B\3B\3C\3C"+
"\5C\u02cc\nC\3D\3D\5D\u02d0\nD\3D\3D\3E\3E\7E\u02d6\nE\fE\16E\u02d9\13"+
"E\3E\5E\u02dc\nE\3F\3F\3G\3G\5G\u02e2\nG\3H\3H\3H\3H\3I\3I\7I\u02ea\n"+
"I\fI\16I\u02ed\13I\3I\5I\u02f0\nI\3J\3J\3K\3K\5K\u02f6\nK\3L\3L\5L\u02fa"+
"\nL\3M\3M\3M\5M\u02ff\nM\3M\5M\u0302\nM\3M\5M\u0305\nM\3M\3M\3M\5M\u030a"+
"\nM\3M\5M\u030d\nM\3M\3M\3M\5M\u0312\nM\3M\3M\3M\5M\u0317\nM\3N\3N\3N"+
"\3O\3O\3P\5P\u031f\nP\3P\3P\3Q\3Q\3R\3R\3S\3S\3S\5S\u032a\nS\3T\3T\5T"+
"\u032e\nT\3T\3T\3T\5T\u0333\nT\3T\3T\5T\u0337\nT\3U\3U\3U\3V\3V\3W\3W"+
"\3W\3W\3W\3W\3W\3W\3W\5W\u0347\nW\3X\3X\3X\3X\3X\3X\3X\3X\5X\u0351\nX"+
"\3Y\3Y\3Z\3Z\5Z\u0357\nZ\3Z\3Z\3[\6[\u035c\n[\r[\16[\u035d\3\\\3\\\5\\"+
"\u0362\n\\\3]\3]\3]\3]\5]\u0368\n]\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\5"+
"^\u0375\n^\3_\3_\3_\3_\3_\3_\3_\3`\3`\3a\3a\3a\3a\3a\3b\3b\3c\3c\3d\3"+
"d\3e\3e\3f\3f\3g\3g\3h\3h\3i\3i\3j\3j\3k\3k\3l\3l\3m\3m\3n\3n\3o\3o\3"+
"p\3p\3q\3q\3r\3r\3r\3s\3s\3s\3t\3t\3t\3u\3u\3u\3v\3v\3v\3w\3w\3w\3x\3"+
"x\3x\3y\3y\3y\3z\3z\3{\3{\3|\3|\3}\3}\3~\3~\3\177\3\177\3\u0080\3\u0080"+
"\3\u0081\3\u0081\3\u0082\3\u0082\3\u0082\3\u0083\3\u0083\3\u0083\3\u0084"+
"\3\u0084\3\u0084\3\u0085\3\u0085\3\u0085\3\u0086\3\u0086\3\u0086\3\u0087"+
"\3\u0087\3\u0087\3\u0088\3\u0088\3\u0088\3\u0089\3\u0089\3\u0089\3\u008a"+
"\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b\3\u008b\3\u008b\3\u008c\3\u008c"+
"\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\7\u008d\u03f4\n\u008d\f\u008d"+
"\16\u008d\u03f7\13\u008d\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e"+
"\5\u008e\u03ff\n\u008e\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f"+
"\5\u008f\u0407\n\u008f\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091"+
"\3\u0092\6\u0092\u0410\n\u0092\r\u0092\16\u0092\u0411\3\u0092\3\u0092"+
"\3\u0093\3\u0093\3\u0093\3\u0093\7\u0093\u041a\n\u0093\f\u0093\16\u0093"+
"\u041d\13\u0093\3\u0093\3\u0093\3\u0093\3\u0093\3\u0093\3\u0094\3\u0094"+
"\3\u0094\3\u0094\7\u0094\u0428\n\u0094\f\u0094\16\u0094\u042b\13\u0094"+
"\3\u0094\3\u0094\3\u041b\2\u0095\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23"+
"\13\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31"+
"\61\32\63\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60"+
"_\61a\62c\63e\64g\65i\2k\2m\2o\2q\2s\2u\2w\2y\2{\2}\2\177\2\u0081\2\u0083"+
"\2\u0085\2\u0087\2\u0089\2\u008b\2\u008d\2\u008f\2\u0091\2\u0093\2\u0095"+
"\2\u0097\66\u0099\2\u009b\2\u009d\2\u009f\2\u00a1\2\u00a3\2\u00a5\2\u00a7"+
"\2\u00a9\2\u00ab\2\u00ad\67\u00af8\u00b1\2\u00b39\u00b5\2\u00b7\2\u00b9"+
"\2\u00bb\2\u00bd\2\u00bf\2\u00c1:\u00c3;\u00c5<\u00c7=\u00c9>\u00cb?\u00cd"+
"@\u00cfA\u00d1B\u00d3C\u00d5D\u00d7E\u00d9F\u00dbG\u00ddH\u00dfI\u00e1"+
"J\u00e3K\u00e5L\u00e7M\u00e9N\u00ebO\u00edP\u00efQ\u00f1R\u00f3S\u00f5"+
"T\u00f7U\u00f9V\u00fbW\u00fdX\u00ffY\u0101Z\u0103[\u0105\\\u0107]\u0109"+
"^\u010b_\u010d`\u010fa\u0111b\u0113c\u0115d\u0117e\u0119f\u011b\2\u011d"+
"\2\u011fg\u0121h\u0123i\u0125j\u0127k\3\2\30\4\2NNnn\3\2\63;\4\2ZZzz\5"+
"\2\62;CHch\3\2\629\4\2DDdd\3\2\62\63\4\2GGgg\4\2--//\6\2FFHHffhh\4\2R"+
"Rrr\4\2))^^\4\2$$^^\n\2$$))^^ddhhppttvv\3\2\62\65\6\2&&C\\aac|\4\2\2\u0101"+
"\ud802\udc01\3\2\ud802\udc01\3\2\udc02\ue001\7\2&&\62;C\\aac|\5\2\13\f"+
"\16\17\"\"\4\2\f\f\17\17\u043c\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t"+
"\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2"+
"\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2"+
"\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2"+
"+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2"+
"\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2"+
"C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3"+
"\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2"+
"\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2"+
"\u0097\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2\2\2\u00b3\3\2\2\2\2\u00c1"+
"\3\2\2\2\2\u00c3\3\2\2\2\2\u00c5\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2"+
"\2\2\u00cb\3\2\2\2\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3"+
"\3\2\2\2\2\u00d5\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2\2"+
"\2\2\u00dd\3\2\2\2\2\u00df\3\2\2\2\2\u00e1\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5"+
"\3\2\2\2\2\u00e7\3\2\2\2\2\u00e9\3\2\2\2\2\u00eb\3\2\2\2\2\u00ed\3\2\2"+
"\2\2\u00ef\3\2\2\2\2\u00f1\3\2\2\2\2\u00f3\3\2\2\2\2\u00f5\3\2\2\2\2\u00f7"+
"\3\2\2\2\2\u00f9\3\2\2\2\2\u00fb\3\2\2\2\2\u00fd\3\2\2\2\2\u00ff\3\2\2"+
"\2\2\u0101\3\2\2\2\2\u0103\3\2\2\2\2\u0105\3\2\2\2\2\u0107\3\2\2\2\2\u0109"+
"\3\2\2\2\2\u010b\3\2\2\2\2\u010d\3\2\2\2\2\u010f\3\2\2\2\2\u0111\3\2\2"+
"\2\2\u0113\3\2\2\2\2\u0115\3\2\2\2\2\u0117\3\2\2\2\2\u0119\3\2\2\2\2\u011f"+
"\3\2\2\2\2\u0121\3\2\2\2\2\u0123\3\2\2\2\2\u0125\3\2\2\2\2\u0127\3\2\2"+
"\2\3\u0129\3\2\2\2\5\u0132\3\2\2\2\7\u0139\3\2\2\2\t\u0141\3\2\2\2\13"+
"\u0147\3\2\2\2\r\u014c\3\2\2\2\17\u0151\3\2\2\2\21\u0157\3\2\2\2\23\u015c"+
"\3\2\2\2\25\u0162\3\2\2\2\27\u0168\3\2\2\2\31\u0171\3\2\2\2\33\u0179\3"+
"\2\2\2\35\u017c\3\2\2\2\37\u0183\3\2\2\2!\u0188\3\2\2\2#\u018d\3\2\2\2"+
"%\u0195\3\2\2\2\'\u019b\3\2\2\2)\u01a3\3\2\2\2+\u01a9\3\2\2\2-\u01ad\3"+
"\2\2\2/\u01b0\3\2\2\2\61\u01b5\3\2\2\2\63\u01c0\3\2\2\2\65\u01c7\3\2\2"+
"\2\67\u01d2\3\2\2\29\u01d6\3\2\2\2;\u01e0\3\2\2\2=\u01e5\3\2\2\2?\u01ec"+
"\3\2\2\2A\u01f0\3\2\2\2C\u01f8\3\2\2\2E\u0200\3\2\2\2G\u020a\3\2\2\2I"+
"\u0211\3\2\2\2K\u0218\3\2\2\2M\u021e\3\2\2\2O\u0225\3\2\2\2Q\u022e\3\2"+
"\2\2S\u0234\3\2\2\2U\u023b\3\2\2\2W\u0248\3\2\2\2Y\u024d\3\2\2\2[\u0253"+
"\3\2\2\2]\u025a\3\2\2\2_\u0264\3\2\2\2a\u0268\3\2\2\2c\u026d\3\2\2\2e"+
"\u0276\3\2\2\2g\u0280\3\2\2\2i\u0282\3\2\2\2k\u0286\3\2\2\2m\u028a\3\2"+
"\2\2o\u028e\3\2\2\2q\u0292\3\2\2\2s\u029e\3\2\2\2u\u02a0\3\2\2\2w\u02ac"+
"\3\2\2\2y\u02ae\3\2\2\2{\u02b2\3\2\2\2}\u02b5\3\2\2\2\177\u02b9\3\2\2"+
"\2\u0081\u02bd\3\2\2\2\u0083\u02c7\3\2\2\2\u0085\u02cb\3\2\2\2\u0087\u02cd"+
"\3\2\2\2\u0089\u02d3\3\2\2\2\u008b\u02dd\3\2\2\2\u008d\u02e1\3\2\2\2\u008f"+
"\u02e3\3\2\2\2\u0091\u02e7\3\2\2\2\u0093\u02f1\3\2\2\2\u0095\u02f5\3\2"+
"\2\2\u0097\u02f9\3\2\2\2\u0099\u0316\3\2\2\2\u009b\u0318\3\2\2\2\u009d"+
"\u031b\3\2\2\2\u009f\u031e\3\2\2\2\u00a1\u0322\3\2\2\2\u00a3\u0324\3\2"+
"\2\2\u00a5\u0326\3\2\2\2\u00a7\u0336\3\2\2\2\u00a9\u0338\3\2\2\2\u00ab"+
"\u033b\3\2\2\2\u00ad\u0346\3\2\2\2\u00af\u0350\3\2\2\2\u00b1\u0352\3\2"+
"\2\2\u00b3\u0354\3\2\2\2\u00b5\u035b\3\2\2\2\u00b7\u0361\3\2\2\2\u00b9"+
"\u0367\3\2\2\2\u00bb\u0374\3\2\2\2\u00bd\u0376\3\2\2\2\u00bf\u037d\3\2"+
"\2\2\u00c1\u037f\3\2\2\2\u00c3\u0384\3\2\2\2\u00c5\u0386\3\2\2\2\u00c7"+
"\u0388\3\2\2\2\u00c9\u038a\3\2\2\2\u00cb\u038c\3\2\2\2\u00cd\u038e\3\2"+
"\2\2\u00cf\u0390\3\2\2\2\u00d1\u0392\3\2\2\2\u00d3\u0394\3\2\2\2\u00d5"+
"\u0396\3\2\2\2\u00d7\u0398\3\2\2\2\u00d9\u039a\3\2\2\2\u00db\u039c\3\2"+
"\2\2\u00dd\u039e\3\2\2\2\u00df\u03a0\3\2\2\2\u00e1\u03a2\3\2\2\2\u00e3"+
"\u03a4\3\2\2\2\u00e5\u03a7\3\2\2\2\u00e7\u03aa\3\2\2\2\u00e9\u03ad\3\2"+
"\2\2\u00eb\u03b0\3\2\2\2\u00ed\u03b3\3\2\2\2\u00ef\u03b6\3\2\2\2\u00f1"+
"\u03b9\3\2\2\2\u00f3\u03bc\3\2\2\2\u00f5\u03be\3\2\2\2\u00f7\u03c0\3\2"+
"\2\2\u00f9\u03c2\3\2\2\2\u00fb\u03c4\3\2\2\2\u00fd\u03c6\3\2\2\2\u00ff"+
"\u03c8\3\2\2\2\u0101\u03ca\3\2\2\2\u0103\u03cc\3\2\2\2\u0105\u03cf\3\2"+
"\2\2\u0107\u03d2\3\2\2\2\u0109\u03d5\3\2\2\2\u010b\u03d8\3\2\2\2\u010d"+
"\u03db\3\2\2\2\u010f\u03de\3\2\2\2\u0111\u03e1\3\2\2\2\u0113\u03e4\3\2"+
"\2\2\u0115\u03e8\3\2\2\2\u0117\u03ec\3\2\2\2\u0119\u03f1\3\2\2\2\u011b"+
"\u03fe\3\2\2\2\u011d\u0406\3\2\2\2\u011f\u0408\3\2\2\2\u0121\u040a\3\2"+
"\2\2\u0123\u040f\3\2\2\2\u0125\u0415\3\2\2\2\u0127\u0423\3\2\2\2\u0129"+
"\u012a\7c\2\2\u012a\u012b\7d\2\2\u012b\u012c\7u\2\2\u012c\u012d\7v\2\2"+
"\u012d\u012e\7t\2\2\u012e\u012f\7c\2\2\u012f\u0130\7e\2\2\u0130\u0131"+
"\7v\2\2\u0131\4\3\2\2\2\u0132\u0133\7c\2\2\u0133\u0134\7u\2\2\u0134\u0135"+
"\7u\2\2\u0135\u0136\7g\2\2\u0136\u0137\7t\2\2\u0137\u0138\7v\2\2\u0138"+
"\6\3\2\2\2\u0139\u013a\7d\2\2\u013a\u013b\7q\2\2\u013b\u013c\7q\2\2\u013c"+
"\u013d\7n\2\2\u013d\u013e\7g\2\2\u013e\u013f\7c\2\2\u013f\u0140\7p\2\2"+
"\u0140\b\3\2\2\2\u0141\u0142\7d\2\2\u0142\u0143\7t\2\2\u0143\u0144\7g"+
"\2\2\u0144\u0145\7c\2\2\u0145\u0146\7m\2\2\u0146\n\3\2\2\2\u0147\u0148"+
"\7d\2\2\u0148\u0149\7{\2\2\u0149\u014a\7v\2\2\u014a\u014b\7g\2\2\u014b"+
"\f\3\2\2\2\u014c\u014d\7e\2\2\u014d\u014e\7c\2\2\u014e\u014f\7u\2\2\u014f"+
"\u0150\7g\2\2\u0150\16\3\2\2\2\u0151\u0152\7e\2\2\u0152\u0153\7c\2\2\u0153"+
"\u0154\7v\2\2\u0154\u0155\7e\2\2\u0155\u0156\7j\2\2\u0156\20\3\2\2\2\u0157"+
"\u0158\7e\2\2\u0158\u0159\7j\2\2\u0159\u015a\7c\2\2\u015a\u015b\7t\2\2"+
"\u015b\22\3\2\2\2\u015c\u015d\7e\2\2\u015d\u015e\7n\2\2\u015e\u015f\7"+
"c\2\2\u015f\u0160\7u\2\2\u0160\u0161\7u\2\2\u0161\24\3\2\2\2\u0162\u0163"+
"\7e\2\2\u0163\u0164\7q\2\2\u0164\u0165\7p\2\2\u0165\u0166\7u\2\2\u0166"+
"\u0167\7v\2\2\u0167\26\3\2\2\2\u0168\u0169\7e\2\2\u0169\u016a\7q\2\2\u016a"+
"\u016b\7p\2\2\u016b\u016c\7v\2\2\u016c\u016d\7k\2\2\u016d\u016e\7p\2\2"+
"\u016e\u016f\7w\2\2\u016f\u0170\7g\2\2\u0170\30\3\2\2\2\u0171\u0172\7"+
"f\2\2\u0172\u0173\7g\2\2\u0173\u0174\7h\2\2\u0174\u0175\7c\2\2\u0175\u0176"+
"\7w\2\2\u0176\u0177\7n\2\2\u0177\u0178\7v\2\2\u0178\32\3\2\2\2\u0179\u017a"+
"\7f\2\2\u017a\u017b\7q\2\2\u017b\34\3\2\2\2\u017c\u017d\7f\2\2\u017d\u017e"+
"\7q\2\2\u017e\u017f\7w\2\2\u017f\u0180\7d\2\2\u0180\u0181\7n\2\2\u0181"+
"\u0182\7g\2\2\u0182\36\3\2\2\2\u0183\u0184\7g\2\2\u0184\u0185\7n\2\2\u0185"+
"\u0186\7u\2\2\u0186\u0187\7g\2\2\u0187 \3\2\2\2\u0188\u0189\7g\2\2\u0189"+
"\u018a\7p\2\2\u018a\u018b\7w\2\2\u018b\u018c\7o\2\2\u018c\"\3\2\2\2\u018d"+
"\u018e\7g\2\2\u018e\u018f\7z\2\2\u018f\u0190\7v\2\2\u0190\u0191\7g\2\2"+
"\u0191\u0192\7p\2\2\u0192\u0193\7f\2\2\u0193\u0194\7u\2\2\u0194$\3\2\2"+
"\2\u0195\u0196\7h\2\2\u0196\u0197\7k\2\2\u0197\u0198\7p\2\2\u0198\u0199"+
"\7c\2\2\u0199\u019a\7n\2\2\u019a&\3\2\2\2\u019b\u019c\7h\2\2\u019c\u019d"+
"\7k\2\2\u019d\u019e\7p\2\2\u019e\u019f\7c\2\2\u019f\u01a0\7n\2\2\u01a0"+
"\u01a1\7n\2\2\u01a1\u01a2\7{\2\2\u01a2(\3\2\2\2\u01a3\u01a4\7h\2\2\u01a4"+
"\u01a5\7n\2\2\u01a5\u01a6\7q\2\2\u01a6\u01a7\7c\2\2\u01a7\u01a8\7v\2\2"+
"\u01a8*\3\2\2\2\u01a9\u01aa\7h\2\2\u01aa\u01ab\7q\2\2\u01ab\u01ac\7t\2"+
"\2\u01ac,\3\2\2\2\u01ad\u01ae\7k\2\2\u01ae\u01af\7h\2\2\u01af.\3\2\2\2"+
"\u01b0\u01b1\7i\2\2\u01b1\u01b2\7q\2\2\u01b2\u01b3\7v\2\2\u01b3\u01b4"+
"\7q\2\2\u01b4\60\3\2\2\2\u01b5\u01b6\7k\2\2\u01b6\u01b7\7o\2\2\u01b7\u01b8"+
"\7r\2\2\u01b8\u01b9\7n\2\2\u01b9\u01ba\7g\2\2\u01ba\u01bb\7o\2\2\u01bb"+
"\u01bc\7g\2\2\u01bc\u01bd\7p\2\2\u01bd\u01be\7v\2\2\u01be\u01bf\7u\2\2"+
"\u01bf\62\3\2\2\2\u01c0\u01c1\7k\2\2\u01c1\u01c2\7o\2\2\u01c2\u01c3\7"+
"r\2\2\u01c3\u01c4\7q\2\2\u01c4\u01c5\7t\2\2\u01c5\u01c6\7v\2\2\u01c6\64"+
"\3\2\2\2\u01c7\u01c8\7k\2\2\u01c8\u01c9\7p\2\2\u01c9\u01ca\7u\2\2\u01ca"+
"\u01cb\7v\2\2\u01cb\u01cc\7c\2\2\u01cc\u01cd\7p\2\2\u01cd\u01ce\7e\2\2"+
"\u01ce\u01cf\7g\2\2\u01cf\u01d0\7q\2\2\u01d0\u01d1\7h\2\2\u01d1\66\3\2"+
"\2\2\u01d2\u01d3\7k\2\2\u01d3\u01d4\7p\2\2\u01d4\u01d5\7v\2\2\u01d58\3"+
"\2\2\2\u01d6\u01d7\7k\2\2\u01d7\u01d8\7p\2\2\u01d8\u01d9\7v\2\2\u01d9"+
"\u01da\7g\2\2\u01da\u01db\7t\2\2\u01db\u01dc\7h\2\2\u01dc\u01dd\7c\2\2"+
"\u01dd\u01de\7e\2\2\u01de\u01df\7g\2\2\u01df:\3\2\2\2\u01e0\u01e1\7n\2"+
"\2\u01e1\u01e2\7q\2\2\u01e2\u01e3\7p\2\2\u01e3\u01e4\7i\2\2\u01e4<\3\2"+
"\2\2\u01e5\u01e6\7p\2\2\u01e6\u01e7\7c\2\2\u01e7\u01e8\7v\2\2\u01e8\u01e9"+
"\7k\2\2\u01e9\u01ea\7x\2\2\u01ea\u01eb\7g\2\2\u01eb>\3\2\2\2\u01ec\u01ed"+
"\7p\2\2\u01ed\u01ee\7g\2\2\u01ee\u01ef\7y\2\2\u01ef@\3\2\2\2\u01f0\u01f1"+
"\7r\2\2\u01f1\u01f2\7c\2\2\u01f2\u01f3\7e\2\2\u01f3\u01f4\7m\2\2\u01f4"+
"\u01f5\7c\2\2\u01f5\u01f6\7i\2\2\u01f6\u01f7\7g\2\2\u01f7B\3\2\2\2\u01f8"+
"\u01f9\7r\2\2\u01f9\u01fa\7t\2\2\u01fa\u01fb\7k\2\2\u01fb\u01fc\7x\2\2"+
"\u01fc\u01fd\7c\2\2\u01fd\u01fe\7v\2\2\u01fe\u01ff\7g\2\2\u01ffD\3\2\2"+
"\2\u0200\u0201\7r\2\2\u0201\u0202\7t\2\2\u0202\u0203\7q\2\2\u0203\u0204"+
"\7v\2\2\u0204\u0205\7g\2\2\u0205\u0206\7e\2\2\u0206\u0207\7v\2\2\u0207"+
"\u0208\7g\2\2\u0208\u0209\7f\2\2\u0209F\3\2\2\2\u020a\u020b\7r\2\2\u020b"+
"\u020c\7w\2\2\u020c\u020d\7d\2\2\u020d\u020e\7n\2\2\u020e\u020f\7k\2\2"+
"\u020f\u0210\7e\2\2\u0210H\3\2\2\2\u0211\u0212\7t\2\2\u0212\u0213\7g\2"+
"\2\u0213\u0214\7v\2\2\u0214\u0215\7w\2\2\u0215\u0216\7t\2\2\u0216\u0217"+
"\7p\2\2\u0217J\3\2\2\2\u0218\u0219\7u\2\2\u0219\u021a\7j\2\2\u021a\u021b"+
"\7q\2\2\u021b\u021c\7t\2\2\u021c\u021d\7v\2\2\u021dL\3\2\2\2\u021e\u021f"+
"\7u\2\2\u021f\u0220\7v\2\2\u0220\u0221\7c\2\2\u0221\u0222\7v\2\2\u0222"+
"\u0223\7k\2\2\u0223\u0224\7e\2\2\u0224N\3\2\2\2\u0225\u0226\7u\2\2\u0226"+
"\u0227\7v\2\2\u0227\u0228\7t\2\2\u0228\u0229\7k\2\2\u0229\u022a\7e\2\2"+
"\u022a\u022b\7v\2\2\u022b\u022c\7h\2\2\u022c\u022d\7r\2\2\u022dP\3\2\2"+
"\2\u022e\u022f\7u\2\2\u022f\u0230\7w\2\2\u0230\u0231\7r\2\2\u0231\u0232"+
"\7g\2\2\u0232\u0233\7t\2\2\u0233R\3\2\2\2\u0234\u0235\7u\2\2\u0235\u0236"+
"\7y\2\2\u0236\u0237\7k\2\2\u0237\u0238\7v\2\2\u0238\u0239\7e\2\2\u0239"+
"\u023a\7j\2\2\u023aT\3\2\2\2\u023b\u023c\7u\2\2\u023c\u023d\7{\2\2\u023d"+
"\u023e\7p\2\2\u023e\u023f\7e\2\2\u023f\u0240\7j\2\2\u0240\u0241\7t\2\2"+
"\u0241\u0242\7q\2\2\u0242\u0243\7p\2\2\u0243\u0244\7k\2\2\u0244\u0245"+
"\7|\2\2\u0245\u0246\7g\2\2\u0246\u0247\7f\2\2\u0247V\3\2\2\2\u0248\u0249"+
"\7v\2\2\u0249\u024a\7j\2\2\u024a\u024b\7k\2\2\u024b\u024c\7u\2\2\u024c"+
"X\3\2\2\2\u024d\u024e\7v\2\2\u024e\u024f\7j\2\2\u024f\u0250\7t\2\2\u0250"+
"\u0251\7q\2\2\u0251\u0252\7y\2\2\u0252Z\3\2\2\2\u0253\u0254\7v\2\2\u0254"+
"\u0255\7j\2\2\u0255\u0256\7t\2\2\u0256\u0257\7q\2\2\u0257\u0258\7y\2\2"+
"\u0258\u0259\7u\2\2\u0259\\\3\2\2\2\u025a\u025b\7v\2\2\u025b\u025c\7t"+
"\2\2\u025c\u025d\7c\2\2\u025d\u025e\7p\2\2\u025e\u025f\7u\2\2\u025f\u0260"+
"\7k\2\2\u0260\u0261\7g\2\2\u0261\u0262\7p\2\2\u0262\u0263\7v\2\2\u0263"+
"^\3\2\2\2\u0264\u0265\7v\2\2\u0265\u0266\7t\2\2\u0266\u0267\7{\2\2\u0267"+
"`\3\2\2\2\u0268\u0269\7x\2\2\u0269\u026a\7q\2\2\u026a\u026b\7k\2\2\u026b"+
"\u026c\7f\2\2\u026cb\3\2\2\2\u026d\u026e\7x\2\2\u026e\u026f\7q\2\2\u026f"+
"\u0270\7n\2\2\u0270\u0271\7c\2\2\u0271\u0272\7v\2\2\u0272\u0273\7k\2\2"+
"\u0273\u0274\7n\2\2\u0274\u0275\7g\2\2\u0275d\3\2\2\2\u0276\u0277\7y\2"+
"\2\u0277\u0278\7j\2\2\u0278\u0279\7k\2\2\u0279\u027a\7n\2\2\u027a\u027b"+
"\7g\2\2\u027bf\3\2\2\2\u027c\u0281\5i\65\2\u027d\u0281\5k\66\2\u027e\u0281"+
"\5m\67\2\u027f\u0281\5o8\2\u0280\u027c\3\2\2\2\u0280\u027d\3\2\2\2\u0280"+
"\u027e\3\2\2\2\u0280\u027f\3\2\2\2\u0281h\3\2\2\2\u0282\u0284\5s:\2\u0283"+
"\u0285\5q9\2\u0284\u0283\3\2\2\2\u0284\u0285\3\2\2\2\u0285j\3\2\2\2\u0286"+
"\u0288\5\177@\2\u0287\u0289\5q9\2\u0288\u0287\3\2\2\2\u0288\u0289\3\2"+
"\2\2\u0289l\3\2\2\2\u028a\u028c\5\u0087D\2\u028b\u028d\5q9\2\u028c\u028b"+
"\3\2\2\2\u028c\u028d\3\2\2\2\u028dn\3\2\2\2\u028e\u0290\5\u008fH\2\u028f"+
"\u0291\5q9\2\u0290\u028f\3\2\2\2\u0290\u0291\3\2\2\2\u0291p\3\2\2\2\u0292"+
"\u0293\t\2\2\2\u0293r\3\2\2\2\u0294\u029f\7\62\2\2\u0295\u029c\5y=\2\u0296"+
"\u0298\5u;\2\u0297\u0296\3\2\2\2\u0297\u0298\3\2\2\2\u0298\u029d\3\2\2"+
"\2\u0299\u029a\5}?\2\u029a\u029b\5u;\2\u029b\u029d\3\2\2\2\u029c\u0297"+
"\3\2\2\2\u029c\u0299\3\2\2\2\u029d\u029f\3\2\2\2\u029e\u0294\3\2\2\2\u029e"+
"\u0295\3\2\2\2\u029ft\3\2\2\2\u02a0\u02a8\5w<\2\u02a1\u02a3\5{>\2\u02a2"+
"\u02a1\3\2\2\2\u02a3\u02a6\3\2\2\2\u02a4\u02a2\3\2\2\2\u02a4\u02a5\3\2"+
"\2\2\u02a5\u02a7\3\2\2\2\u02a6\u02a4\3\2\2\2\u02a7\u02a9\5w<\2\u02a8\u02a4"+
"\3\2\2\2\u02a8\u02a9\3\2\2\2\u02a9v\3\2\2\2\u02aa\u02ad\7\62\2\2\u02ab"+
"\u02ad\5y=\2\u02ac\u02aa\3\2\2\2\u02ac\u02ab\3\2\2\2\u02adx\3\2\2\2\u02ae"+
"\u02af\t\3\2\2\u02afz\3\2\2\2\u02b0\u02b3\5w<\2\u02b1\u02b3\7a\2\2\u02b2"+
"\u02b0\3\2\2\2\u02b2\u02b1\3\2\2\2\u02b3|\3\2\2\2\u02b4\u02b6\7a\2\2\u02b5"+
"\u02b4\3\2\2\2\u02b6\u02b7\3\2\2\2\u02b7\u02b5\3\2\2\2\u02b7\u02b8\3\2"+
"\2\2\u02b8~\3\2\2\2\u02b9\u02ba\7\62\2\2\u02ba\u02bb\t\4\2\2\u02bb\u02bc"+
"\5\u0081A\2\u02bc\u0080\3\2\2\2\u02bd\u02c5\5\u0083B\2\u02be\u02c0\5\u0085"+
"C\2\u02bf\u02be\3\2\2\2\u02c0\u02c3\3\2\2\2\u02c1\u02bf\3\2\2\2\u02c1"+
"\u02c2\3\2\2\2\u02c2\u02c4\3\2\2\2\u02c3\u02c1\3\2\2\2\u02c4\u02c6\5\u0083"+
"B\2\u02c5\u02c1\3\2\2\2\u02c5\u02c6\3\2\2\2\u02c6\u0082\3\2\2\2\u02c7"+
"\u02c8\t\5\2\2\u02c8\u0084\3\2\2\2\u02c9\u02cc\5\u0083B\2\u02ca\u02cc"+
"\7a\2\2\u02cb\u02c9\3\2\2\2\u02cb\u02ca\3\2\2\2\u02cc\u0086\3\2\2\2\u02cd"+
"\u02cf\7\62\2\2\u02ce\u02d0\5}?\2\u02cf\u02ce\3\2\2\2\u02cf\u02d0\3\2"+
"\2\2\u02d0\u02d1\3\2\2\2\u02d1\u02d2\5\u0089E\2\u02d2\u0088\3\2\2\2\u02d3"+
"\u02db\5\u008bF\2\u02d4\u02d6\5\u008dG\2\u02d5\u02d4\3\2\2\2\u02d6\u02d9"+
"\3\2\2\2\u02d7\u02d5\3\2\2\2\u02d7\u02d8\3\2\2\2\u02d8\u02da\3\2\2\2\u02d9"+
"\u02d7\3\2\2\2\u02da\u02dc\5\u008bF\2\u02db\u02d7\3\2\2\2\u02db\u02dc"+
"\3\2\2\2\u02dc\u008a\3\2\2\2\u02dd\u02de\t\6\2\2\u02de\u008c\3\2\2\2\u02df"+
"\u02e2\5\u008bF\2\u02e0\u02e2\7a\2\2\u02e1\u02df\3\2\2\2\u02e1\u02e0\3"+
"\2\2\2\u02e2\u008e\3\2\2\2\u02e3\u02e4\7\62\2\2\u02e4\u02e5\t\7\2\2\u02e5"+
"\u02e6\5\u0091I\2\u02e6\u0090\3\2\2\2\u02e7\u02ef\5\u0093J\2\u02e8\u02ea"+
"\5\u0095K\2\u02e9\u02e8\3\2\2\2\u02ea\u02ed\3\2\2\2\u02eb\u02e9\3\2\2"+
"\2\u02eb\u02ec\3\2\2\2\u02ec\u02ee\3\2\2\2\u02ed\u02eb\3\2\2\2\u02ee\u02f0"+
"\5\u0093J\2\u02ef\u02eb\3\2\2\2\u02ef\u02f0\3\2\2\2\u02f0\u0092\3\2\2"+
"\2\u02f1\u02f2\t\b\2\2\u02f2\u0094\3\2\2\2\u02f3\u02f6\5\u0093J\2\u02f4"+
"\u02f6\7a\2\2\u02f5\u02f3\3\2\2\2\u02f5\u02f4\3\2\2\2\u02f6\u0096\3\2"+
"\2\2\u02f7\u02fa\5\u0099M\2\u02f8\u02fa\5\u00a5S\2\u02f9\u02f7\3\2\2\2"+
"\u02f9\u02f8\3\2\2\2\u02fa\u0098\3\2\2\2\u02fb\u02fc\5u;\2\u02fc\u02fe"+
"\7\60\2\2\u02fd\u02ff\5u;\2\u02fe\u02fd\3\2\2\2\u02fe\u02ff\3\2\2\2\u02ff"+
"\u0301\3\2\2\2\u0300\u0302\5\u009bN\2\u0301\u0300\3\2\2\2\u0301\u0302"+
"\3\2\2\2\u0302\u0304\3\2\2\2\u0303\u0305\5\u00a3R\2\u0304\u0303\3\2\2"+
"\2\u0304\u0305\3\2\2\2\u0305\u0317\3\2\2\2\u0306\u0307\7\60\2\2\u0307"+
"\u0309\5u;\2\u0308\u030a\5\u009bN\2\u0309\u0308\3\2\2\2\u0309\u030a\3"+
"\2\2\2\u030a\u030c\3\2\2\2\u030b\u030d\5\u00a3R\2\u030c\u030b\3\2\2\2"+
"\u030c\u030d\3\2\2\2\u030d\u0317\3\2\2\2\u030e\u030f\5u;\2\u030f\u0311"+
"\5\u009bN\2\u0310\u0312\5\u00a3R\2\u0311\u0310\3\2\2\2\u0311\u0312\3\2"+
"\2\2\u0312\u0317\3\2\2\2\u0313\u0314\5u;\2\u0314\u0315\5\u00a3R\2\u0315"+
"\u0317\3\2\2\2\u0316\u02fb\3\2\2\2\u0316\u0306\3\2\2\2\u0316\u030e\3\2"+
"\2\2\u0316\u0313\3\2\2\2\u0317\u009a\3\2\2\2\u0318\u0319\5\u009dO\2\u0319"+
"\u031a\5\u009fP\2\u031a\u009c\3\2\2\2\u031b\u031c\t\t\2\2\u031c\u009e"+
"\3\2\2\2\u031d\u031f\5\u00a1Q\2\u031e\u031d\3\2\2\2\u031e\u031f\3\2\2"+
"\2\u031f\u0320\3\2\2\2\u0320\u0321\5u;\2\u0321\u00a0\3\2\2\2\u0322\u0323"+
"\t\n\2\2\u0323\u00a2\3\2\2\2\u0324\u0325\t\13\2\2\u0325\u00a4\3\2\2\2"+
"\u0326\u0327\5\u00a7T\2\u0327\u0329\5\u00a9U\2\u0328\u032a\5\u00a3R\2"+
"\u0329\u0328\3\2\2\2\u0329\u032a\3\2\2\2\u032a\u00a6\3\2\2\2\u032b\u032d"+
"\5\177@\2\u032c\u032e\7\60\2\2\u032d\u032c\3\2\2\2\u032d\u032e\3\2\2\2"+
"\u032e\u0337\3\2\2\2\u032f\u0330\7\62\2\2\u0330\u0332\t\4\2\2\u0331\u0333"+
"\5\u0081A\2\u0332\u0331\3\2\2\2\u0332\u0333\3\2\2\2\u0333\u0334\3\2\2"+
"\2\u0334\u0335\7\60\2\2\u0335\u0337\5\u0081A\2\u0336\u032b\3\2\2\2\u0336"+
"\u032f\3\2\2\2\u0337\u00a8\3\2\2\2\u0338\u0339\5\u00abV\2\u0339\u033a"+
"\5\u009fP\2\u033a\u00aa\3\2\2\2\u033b\u033c\t\f\2\2\u033c\u00ac\3\2\2"+
"\2\u033d\u033e\7v\2\2\u033e\u033f\7t\2\2\u033f\u0340\7w\2\2\u0340\u0347"+
"\7g\2\2\u0341\u0342\7h\2\2\u0342\u0343\7c\2\2\u0343\u0344\7n\2\2\u0344"+
"\u0345\7u\2\2\u0345\u0347\7g\2\2\u0346\u033d\3\2\2\2\u0346\u0341\3\2\2"+
"\2\u0347\u00ae\3\2\2\2\u0348\u0349\7)\2\2\u0349\u034a\5\u00b1Y\2\u034a"+
"\u034b\7)\2\2\u034b\u0351\3\2\2\2\u034c\u034d\7)\2\2\u034d\u034e\5\u00b9"+
"]\2\u034e\u034f\7)\2\2\u034f\u0351\3\2\2\2\u0350\u0348\3\2\2\2\u0350\u034c"+
"\3\2\2\2\u0351\u00b0\3\2\2\2\u0352\u0353\n\r\2\2\u0353\u00b2\3\2\2\2\u0354"+
"\u0356\7$\2\2\u0355\u0357\5\u00b5[\2\u0356\u0355\3\2\2\2\u0356\u0357\3"+
"\2\2\2\u0357\u0358\3\2\2\2\u0358\u0359\7$\2\2\u0359\u00b4\3\2\2\2\u035a"+
"\u035c\5\u00b7\\\2\u035b\u035a\3\2\2\2\u035c\u035d\3\2\2\2\u035d\u035b"+
"\3\2\2\2\u035d\u035e\3\2\2\2\u035e\u00b6\3\2\2\2\u035f\u0362\n\16\2\2"+
"\u0360\u0362\5\u00b9]\2\u0361\u035f\3\2\2\2\u0361\u0360\3\2\2\2\u0362"+
"\u00b8\3\2\2\2\u0363\u0364\7^\2\2\u0364\u0368\t\17\2\2\u0365\u0368\5\u00bb"+
"^\2\u0366\u0368\5\u00bd_\2\u0367\u0363\3\2\2\2\u0367\u0365\3\2\2\2\u0367"+
"\u0366\3\2\2\2\u0368\u00ba\3\2\2\2\u0369\u036a\7^\2\2\u036a\u0375\5\u008b"+
"F\2\u036b\u036c\7^\2\2\u036c\u036d\5\u008bF\2\u036d\u036e\5\u008bF\2\u036e"+
"\u0375\3\2\2\2\u036f\u0370\7^\2\2\u0370\u0371\5\u00bf`\2\u0371\u0372\5"+
"\u008bF\2\u0372\u0373\5\u008bF\2\u0373\u0375\3\2\2\2\u0374\u0369\3\2\2"+
"\2\u0374\u036b\3\2\2\2\u0374\u036f\3\2\2\2\u0375\u00bc\3\2\2\2\u0376\u0377"+
"\7^\2\2\u0377\u0378\7w\2\2\u0378\u0379\5\u0083B\2\u0379\u037a\5\u0083"+
"B\2\u037a\u037b\5\u0083B\2\u037b\u037c\5\u0083B\2\u037c\u00be\3\2\2\2"+
"\u037d\u037e\t\20\2\2\u037e\u00c0\3\2\2\2\u037f\u0380\7p\2\2\u0380\u0381"+
"\7w\2\2\u0381\u0382\7n\2\2\u0382\u0383\7n\2\2\u0383\u00c2\3\2\2\2\u0384"+
"\u0385\7*\2\2\u0385\u00c4\3\2\2\2\u0386\u0387\7+\2\2\u0387\u00c6\3\2\2"+
"\2\u0388\u0389\7}\2\2\u0389\u00c8\3\2\2\2\u038a\u038b\7\177\2\2\u038b"+
"\u00ca\3\2\2\2\u038c\u038d\7]\2\2\u038d\u00cc\3\2\2\2\u038e\u038f\7_\2"+
"\2\u038f\u00ce\3\2\2\2\u0390\u0391\7=\2\2\u0391\u00d0\3\2\2\2\u0392\u0393"+
"\7.\2\2\u0393\u00d2\3\2\2\2\u0394\u0395\7\60\2\2\u0395\u00d4\3\2\2\2\u0396"+
"\u0397\7?\2\2\u0397\u00d6\3\2\2\2\u0398\u0399\7@\2\2\u0399\u00d8\3\2\2"+
"\2\u039a\u039b\7>\2\2\u039b\u00da\3\2\2\2\u039c\u039d\7#\2\2\u039d\u00dc"+
"\3\2\2\2\u039e\u039f\7\u0080\2\2\u039f\u00de\3\2\2\2\u03a0\u03a1\7A\2"+
"\2\u03a1\u00e0\3\2\2\2\u03a2\u03a3\7<\2\2\u03a3\u00e2\3\2\2\2\u03a4\u03a5"+
"\7?\2\2\u03a5\u03a6\7?\2\2\u03a6\u00e4\3\2\2\2\u03a7\u03a8\7>\2\2\u03a8"+
"\u03a9\7?\2\2\u03a9\u00e6\3\2\2\2\u03aa\u03ab\7@\2\2\u03ab\u03ac\7?\2"+
"\2\u03ac\u00e8\3\2\2\2\u03ad\u03ae\7#\2\2\u03ae\u03af\7?\2\2\u03af\u00ea"+
"\3\2\2\2\u03b0\u03b1\7(\2\2\u03b1\u03b2\7(\2\2\u03b2\u00ec\3\2\2\2\u03b3"+
"\u03b4\7~\2\2\u03b4\u03b5\7~\2\2\u03b5\u00ee\3\2\2\2\u03b6\u03b7\7-\2"+
"\2\u03b7\u03b8\7-\2\2\u03b8\u00f0\3\2\2\2\u03b9\u03ba\7/\2\2\u03ba\u03bb"+
"\7/\2\2\u03bb\u00f2\3\2\2\2\u03bc\u03bd\7-\2\2\u03bd\u00f4\3\2\2\2\u03be"+
"\u03bf\7/\2\2\u03bf\u00f6\3\2\2\2\u03c0\u03c1\7,\2\2\u03c1\u00f8\3\2\2"+
"\2\u03c2\u03c3\7\61\2\2\u03c3\u00fa\3\2\2\2\u03c4\u03c5\7(\2\2\u03c5\u00fc"+
"\3\2\2\2\u03c6\u03c7\7~\2\2\u03c7\u00fe\3\2\2\2\u03c8\u03c9\7`\2\2\u03c9"+
"\u0100\3\2\2\2\u03ca\u03cb\7\'\2\2\u03cb\u0102\3\2\2\2\u03cc\u03cd\7-"+
"\2\2\u03cd\u03ce\7?\2\2\u03ce\u0104\3\2\2\2\u03cf\u03d0\7/\2\2\u03d0\u03d1"+
"\7?\2\2\u03d1\u0106\3\2\2\2\u03d2\u03d3\7,\2\2\u03d3\u03d4\7?\2\2\u03d4"+
"\u0108\3\2\2\2\u03d5\u03d6\7\61\2\2\u03d6\u03d7\7?\2\2\u03d7\u010a\3\2"+
"\2\2\u03d8\u03d9\7(\2\2\u03d9\u03da\7?\2\2\u03da\u010c\3\2\2\2\u03db\u03dc"+
"\7~\2\2\u03dc\u03dd\7?\2\2\u03dd\u010e\3\2\2\2\u03de\u03df\7`\2\2\u03df"+
"\u03e0\7?\2\2\u03e0\u0110\3\2\2\2\u03e1\u03e2\7\'\2\2\u03e2\u03e3\7?\2"+
"\2\u03e3\u0112\3\2\2\2\u03e4\u03e5\7>\2\2\u03e5\u03e6\7>\2\2\u03e6\u03e7"+
"\7?\2\2\u03e7\u0114\3\2\2\2\u03e8\u03e9\7@\2\2\u03e9\u03ea\7@\2\2\u03ea"+
"\u03eb\7?\2\2\u03eb\u0116\3\2\2\2\u03ec\u03ed\7@\2\2\u03ed\u03ee\7@\2"+
"\2\u03ee\u03ef\7@\2\2\u03ef\u03f0\7?\2\2\u03f0\u0118\3\2\2\2\u03f1\u03f5"+
"\5\u011b\u008e\2\u03f2\u03f4\5\u011d\u008f\2\u03f3\u03f2\3\2\2\2\u03f4"+
"\u03f7\3\2\2\2\u03f5\u03f3\3\2\2\2\u03f5\u03f6\3\2\2\2\u03f6\u011a\3\2"+
"\2\2\u03f7\u03f5\3\2\2\2\u03f8\u03ff\t\21\2\2\u03f9\u03fa\n\22\2\2\u03fa"+
"\u03ff\6\u008e\2\2\u03fb\u03fc\t\23\2\2\u03fc\u03fd\t\24\2\2\u03fd\u03ff"+
"\6\u008e\3\2\u03fe\u03f8\3\2\2\2\u03fe\u03f9\3\2\2\2\u03fe\u03fb\3\2\2"+
"\2\u03ff\u011c\3\2\2\2\u0400\u0407\t\25\2\2\u0401\u0402\n\22\2\2\u0402"+
"\u0407\6\u008f\4\2\u0403\u0404\t\23\2\2\u0404\u0405\t\24\2\2\u0405\u0407"+
"\6\u008f\5\2\u0406\u0400\3\2\2\2\u0406\u0401\3\2\2\2\u0406\u0403\3\2\2"+
"\2\u0407\u011e\3\2\2\2\u0408\u0409\7B\2\2\u0409\u0120\3\2\2\2\u040a\u040b"+
"\7\60\2\2\u040b\u040c\7\60\2\2\u040c\u040d\7\60\2\2\u040d\u0122\3\2\2"+
"\2\u040e\u0410\t\26\2\2\u040f\u040e\3\2\2\2\u0410\u0411\3\2\2\2\u0411"+
"\u040f\3\2\2\2\u0411\u0412\3\2\2\2\u0412\u0413\3\2\2\2\u0413\u0414\b\u0092"+
"\2\2\u0414\u0124\3\2\2\2\u0415\u0416\7\61\2\2\u0416\u0417\7,\2\2\u0417"+
"\u041b\3\2\2\2\u0418\u041a\13\2\2\2\u0419\u0418\3\2\2\2\u041a\u041d\3"+
"\2\2\2\u041b\u041c\3\2\2\2\u041b\u0419\3\2\2\2\u041c\u041e\3\2\2\2\u041d"+
"\u041b\3\2\2\2\u041e\u041f\7,\2\2\u041f\u0420\7\61\2\2\u0420\u0421\3\2"+
"\2\2\u0421\u0422\b\u0093\2\2\u0422\u0126\3\2\2\2\u0423\u0424\7\61\2\2"+
"\u0424\u0425\7\61\2\2\u0425\u0429\3\2\2\2\u0426\u0428\n\27\2\2\u0427\u0426"+
"\3\2\2\2\u0428\u042b\3\2\2\2\u0429\u0427\3\2\2\2\u0429\u042a\3\2\2\2\u042a"+
"\u042c\3\2\2\2\u042b\u0429\3\2\2\2\u042c\u042d\b\u0094\2\2\u042d\u0128"+
"\3\2\2\2\64\2\u0280\u0284\u0288\u028c\u0290\u0297\u029c\u029e\u02a4\u02a8"+
"\u02ac\u02b2\u02b7\u02c1\u02c5\u02cb\u02cf\u02d7\u02db\u02e1\u02eb\u02ef"+
"\u02f5\u02f9\u02fe\u0301\u0304\u0309\u030c\u0311\u0316\u031e\u0329\u032d"+
"\u0332\u0336\u0346\u0350\u0356\u035d\u0361\u0367\u0374\u03f5\u03fe\u0406"+
"\u0411\u041b\u0429\3\b\2\2";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-4
View File
@@ -1,4 +0,0 @@
all:
java -jar ./antlr-4.4-complete.jar Java8.g4
javac -cp ./antlr-4.4-complete.jar:. *.java
-35
View File
@@ -1,35 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="CONSOLE" class="de.dhbwstuttgart.logger.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="de.dhbwstuttgart.logger.PatternLayout">
<param name="ConversionPattern" value="%-15C{1} %-5p [%-9c] %m%n"/>
</layout>
</appender>
<logger name="codegen">
<level value="INFO"/>
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="parser">
<level value="OFF"/>
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="inference">
<level value="WARN"/>
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="bytecode">
<level value="INFO"/>
<appender-ref ref="CONSOLE"/>
</logger>
</log4j:configuration>
-24
View File
@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="CONSOLE" class="de.dhbwstuttgart.logger.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="de.dhbwstuttgart.logger.PatternLayout">
<param name="ConversionPattern" value="%-15C{1} %-5p [%-9c] %m%n"/>
</layout>
</appender>
<logger name="trtest">
<level value="DEBUG"/>
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="funcTest">
<level value="DEBUG"/>
<appender-ref ref="CONSOLE"/>
</logger>
</log4j:configuration>
-3
View File
@@ -1,3 +0,0 @@
class Matrix{
<A extends B, C extends B> String op = "String";
}
-3
View File
@@ -1,3 +0,0 @@
class FieldInitializationTest{
String var = "hallo";
}
-3
View File
@@ -1,3 +0,0 @@
class Test{
<A> A var;
}
-4
View File
@@ -1,4 +0,0 @@
import java.util.*;
class ImportTest{
}
+4 -4
View File
@@ -55,7 +55,7 @@
<li><a href="de/dhbwstuttgart/typeinference/unify/CSubstitutionSet.html" title="class in de.dhbwstuttgart.typeinference.unify" target="classFrame">CSubstitutionSet</a></li>
<li><a href="de/dhbwstuttgart/myexception/CTypeReconstructionException.html" title="class in de.dhbwstuttgart.myexception" target="classFrame">CTypeReconstructionException</a></li>
<li><a href="de/dhbwstuttgart/typeinference/unify/CVectorSet.html" title="class in de.dhbwstuttgart.typeinference.unify" target="classFrame">CVectorSet</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/DebugException.html" title="class in de.dhbwstuttgart.typeinference.exceptions" target="classFrame">DebugException</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/DebugException.html" title="class in de.dhbwstuttgart.exceptions" target="classFrame">DebugException</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/misc/DeclId.html" title="class in de.dhbwstuttgart.syntaxtree.misc" target="classFrame">DeclId</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/operator/DivideOp.html" title="class in de.dhbwstuttgart.syntaxtree.operator" target="classFrame">DivideOp</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/statement/DoubleLiteral.html" title="class in de.dhbwstuttgart.syntaxtree.statement" target="classFrame">DoubleLiteral</a></li>
@@ -203,7 +203,7 @@
<li><a href="syntaxTree/NodeEqualTest.html" title="class in syntaxTree" target="classFrame">NodeEqualTest</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/operator/NotEqualOp.html" title="class in de.dhbwstuttgart.syntaxtree.operator" target="classFrame">NotEqualOp</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/statement/NotExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement" target="classFrame">NotExpr</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/NotImplementedException.html" title="class in de.dhbwstuttgart.typeinference.exceptions" target="classFrame">NotImplementedException</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/NotImplementedException.html" title="class in de.dhbwstuttgart.exceptions" target="classFrame">NotImplementedException</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/statement/Null.html" title="class in de.dhbwstuttgart.syntaxtree.statement" target="classFrame">Null</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/type/ObjectType.html" title="class in de.dhbwstuttgart.syntaxtree.type" target="classFrame">ObjectType</a></li>
<li><a href="de/dhbwstuttgart/typeinference/OderConstraint.html" title="class in de.dhbwstuttgart.typeinference" target="classFrame">OderConstraint</a></li>
@@ -228,7 +228,7 @@
<li><a href="de/dhbwstuttgart/typeinference/assumptions/ParameterAssumption.html" title="class in de.dhbwstuttgart.typeinference.assumptions" target="classFrame">ParameterAssumption</a></li>
<li><a href="plugindevelopment/ParameterInsertTest.html" title="class in plugindevelopment" target="classFrame">ParameterInsertTest</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/ParameterList.html" title="class in de.dhbwstuttgart.syntaxtree" target="classFrame">ParameterList</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.typeinference.exceptions" target="classFrame">ParserError</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.exceptions" target="classFrame">ParserError</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/operator/PlusOp.html" title="class in de.dhbwstuttgart.syntaxtree.operator" target="classFrame">PlusOp</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/statement/PositivExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement" target="classFrame">PositivExpr</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/statement/PostDecExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement" target="classFrame">PostDecExpr</a></li>
@@ -282,7 +282,7 @@
<li><a href="de/dhbwstuttgart/typeinference/assumptions/TypeAssumptions.html" title="class in de.dhbwstuttgart.typeinference.assumptions" target="classFrame">TypeAssumptions</a></li>
<li><a href="plugindevelopment/TypeInsertTests/LargeSourceCodeTests/TypedMatrixSimpleTest.html" title="class in plugindevelopment.TypeInsertTests.LargeSourceCodeTests" target="classFrame">TypedMatrixSimpleTest</a></li>
<li><a href="plugindevelopment/TypeInsertTests/LargeSourceCodeTests/TypedMatrixTest.html" title="class in plugindevelopment.TypeInsertTests.LargeSourceCodeTests" target="classFrame">TypedMatrixTest</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html" title="class in de.dhbwstuttgart.typeinference.exceptions" target="classFrame">TypeinferenceException</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html" title="class in de.dhbwstuttgart.exceptions" target="classFrame">TypeinferenceException</a></li>
<li><a href="de/dhbwstuttgart/typeinference/TypeinferenceResultSet.html" title="class in de.dhbwstuttgart.typeinference" target="classFrame">TypeinferenceResultSet</a></li>
<li><a href="de/dhbwstuttgart/typeinference/TypeInsertable.html" title="interface in de.dhbwstuttgart.typeinference" target="classFrame"><span class="interfaceName">TypeInsertable</span></a></li>
<li><a href="de/dhbwstuttgart/typeinference/typedeployment/TypeInsertPoint.html" title="class in de.dhbwstuttgart.typeinference.typedeployment" target="classFrame">TypeInsertPoint</a></li>
+4 -4
View File
@@ -55,7 +55,7 @@
<li><a href="de/dhbwstuttgart/typeinference/unify/CSubstitutionSet.html" title="class in de.dhbwstuttgart.typeinference.unify">CSubstitutionSet</a></li>
<li><a href="de/dhbwstuttgart/myexception/CTypeReconstructionException.html" title="class in de.dhbwstuttgart.myexception">CTypeReconstructionException</a></li>
<li><a href="de/dhbwstuttgart/typeinference/unify/CVectorSet.html" title="class in de.dhbwstuttgart.typeinference.unify">CVectorSet</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/DebugException.html" title="class in de.dhbwstuttgart.typeinference.exceptions">DebugException</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/DebugException.html" title="class in de.dhbwstuttgart.exceptions">DebugException</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/misc/DeclId.html" title="class in de.dhbwstuttgart.syntaxtree.misc">DeclId</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/operator/DivideOp.html" title="class in de.dhbwstuttgart.syntaxtree.operator">DivideOp</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/statement/DoubleLiteral.html" title="class in de.dhbwstuttgart.syntaxtree.statement">DoubleLiteral</a></li>
@@ -203,7 +203,7 @@
<li><a href="syntaxTree/NodeEqualTest.html" title="class in syntaxTree">NodeEqualTest</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/operator/NotEqualOp.html" title="class in de.dhbwstuttgart.syntaxtree.operator">NotEqualOp</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/statement/NotExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement">NotExpr</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/NotImplementedException.html" title="class in de.dhbwstuttgart.typeinference.exceptions">NotImplementedException</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/NotImplementedException.html" title="class in de.dhbwstuttgart.exceptions">NotImplementedException</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/statement/Null.html" title="class in de.dhbwstuttgart.syntaxtree.statement">Null</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/type/ObjectType.html" title="class in de.dhbwstuttgart.syntaxtree.type">ObjectType</a></li>
<li><a href="de/dhbwstuttgart/typeinference/OderConstraint.html" title="class in de.dhbwstuttgart.typeinference">OderConstraint</a></li>
@@ -228,7 +228,7 @@
<li><a href="de/dhbwstuttgart/typeinference/assumptions/ParameterAssumption.html" title="class in de.dhbwstuttgart.typeinference.assumptions">ParameterAssumption</a></li>
<li><a href="plugindevelopment/ParameterInsertTest.html" title="class in plugindevelopment">ParameterInsertTest</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/ParameterList.html" title="class in de.dhbwstuttgart.syntaxtree">ParameterList</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.exceptions">ParserError</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/operator/PlusOp.html" title="class in de.dhbwstuttgart.syntaxtree.operator">PlusOp</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/statement/PositivExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement">PositivExpr</a></li>
<li><a href="de/dhbwstuttgart/syntaxtree/statement/PostDecExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement">PostDecExpr</a></li>
@@ -282,7 +282,7 @@
<li><a href="de/dhbwstuttgart/typeinference/assumptions/TypeAssumptions.html" title="class in de.dhbwstuttgart.typeinference.assumptions">TypeAssumptions</a></li>
<li><a href="plugindevelopment/TypeInsertTests/LargeSourceCodeTests/TypedMatrixSimpleTest.html" title="class in plugindevelopment.TypeInsertTests.LargeSourceCodeTests">TypedMatrixSimpleTest</a></li>
<li><a href="plugindevelopment/TypeInsertTests/LargeSourceCodeTests/TypedMatrixTest.html" title="class in plugindevelopment.TypeInsertTests.LargeSourceCodeTests">TypedMatrixTest</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html" title="class in de.dhbwstuttgart.typeinference.exceptions">TypeinferenceException</a></li>
<li><a href="de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html" title="class in de.dhbwstuttgart.exceptions">TypeinferenceException</a></li>
<li><a href="de/dhbwstuttgart/typeinference/TypeinferenceResultSet.html" title="class in de.dhbwstuttgart.typeinference">TypeinferenceResultSet</a></li>
<li><a href="de/dhbwstuttgart/typeinference/TypeInsertable.html" title="interface in de.dhbwstuttgart.typeinference"><span class="interfaceName">TypeInsertable</span></a></li>
<li><a href="de/dhbwstuttgart/typeinference/typedeployment/TypeInsertPoint.html" title="class in de.dhbwstuttgart.typeinference.typedeployment">TypeInsertPoint</a></li>
@@ -567,11 +567,11 @@ implements <a href="../../../de/dhbwstuttgart/core/MyCompilerAPI.html" title="in
<li class="blockList">
<h4>parse2SyntaxTree</h4>
<pre>private&nbsp;<a href="../../../de/dhbwstuttgart/syntaxtree/SourceFile.html" title="class in de.dhbwstuttgart.syntaxtree">SourceFile</a>&nbsp;parse2SyntaxTree(java.io.Reader&nbsp;fileContent)
throws <a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></pre>
throws <a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.exceptions">ParserError</a></pre>
<div class="block">Parst den Inhalt einer Datei zu einem Syntaxbaum.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></code></dd>
<dd><code><a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.exceptions">ParserError</a></code></dd>
</dl>
</li>
</ul>
@@ -582,7 +582,7 @@ implements <a href="../../../de/dhbwstuttgart/core/MyCompilerAPI.html" title="in
<li class="blockList">
<h4>parse</h4>
<pre>public&nbsp;void&nbsp;parse(<a href="../../../de/dhbwstuttgart/typeinference/Menge.html" title="class in de.dhbwstuttgart.typeinference">Menge</a>&lt;java.lang.String&gt;&nbsp;filenames)
throws <a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></pre>
throws <a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.exceptions">ParserError</a></pre>
<div class="block">Diese Funktion nimmt einen Menge von Dateinamen. Alle diese Dateien werden zu einem SyntaxBaum geparst.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -590,7 +590,7 @@ implements <a href="../../../de/dhbwstuttgart/core/MyCompilerAPI.html" title="in
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filenames</code> - - Eine Liste von Quellcodedateien, welche gseparst werden sollen</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></code></dd>
<dd><code><a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.exceptions">ParserError</a></code></dd>
</dl>
</li>
</ul>
@@ -237,7 +237,7 @@ var activeTableTab = "activeTableTab";
<h4>typeReconstruction</h4>
<pre><a href="../../../de/dhbwstuttgart/typeinference/Menge.html" title="class in de.dhbwstuttgart.typeinference">Menge</a>&lt;<a href="../../../de/dhbwstuttgart/typeinference/TypeinferenceResultSet.html" title="class in de.dhbwstuttgart.typeinference">TypeinferenceResultSet</a>&gt;&nbsp;typeReconstruction()
throws java.lang.NullPointerException,
<a href="../../../de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html" title="class in de.dhbwstuttgart.typeinference.exceptions">TypeinferenceException</a></pre>
<a href="../../../de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html" title="class in de.dhbwstuttgart.exceptions">TypeinferenceException</a></pre>
<div class="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><a href="../../../de/dhbwstuttgart/typeinference/exceptions/TypeinferenceException.html" title="class in de.dhbwstuttgart.typeinference.exceptions">TypeinferenceException</a></code></dd>
<dd><code><a href="../../../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";
<li class="blockList">
<h4>parse</h4>
<pre>void&nbsp;parse(<a href="../../../de/dhbwstuttgart/typeinference/Menge.html" title="class in de.dhbwstuttgart.typeinference">Menge</a>&lt;java.lang.String&gt;&nbsp;filenames)
throws <a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></pre>
throws <a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.exceptions">ParserError</a></pre>
<div class="block">Parst zusammenhängende JavaKlassen in verschiedenen Dateien.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filenames</code> - - Eine Liste von Quellcodedateien, welche gseparst werden sollen</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></code></dd>
<dd><code><a href="../../../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";
<li class="blockList">
<h4>parse</h4>
<pre><a href="../../../de/dhbwstuttgart/syntaxtree/SourceFile.html" title="class in de.dhbwstuttgart.syntaxtree">SourceFile</a>&nbsp;parse(java.lang.String&nbsp;sourceCode)
throws <a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></pre>
throws <a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.exceptions">ParserError</a></pre>
<div class="block">Parst den SourceCode einer Datei.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -305,7 +305,7 @@ var activeTableTab = "activeTableTab";
<dt><span class="returnLabel">Returns:</span></dt>
<dd>den aus dem sourceCode generierten Syntaxbaum</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.typeinference.exceptions">ParserError</a></code></dd>
<dd><code><a href="../../../de/dhbwstuttgart/typeinference/exceptions/ParserError.html" title="class in de.dhbwstuttgart.exceptions">ParserError</a></code></dd>
</dl>
</li>
</ul>
@@ -100,7 +100,7 @@ var activeTableTab = "activeTableTab";
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.parser.JavaClassName</li>
<li>de.dhbwstuttgart.typecheck.JavaClassName</li>
</ul>
</li>
</ul>
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.parser.JavaClassName</title>
<title>Uses of Class de.dhbwstuttgart.typecheck.JavaClassName</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
@@ -70,7 +70,7 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.parser.JavaClassName" class="title">Uses of Class<br>de.dhbwstuttgart.parser.JavaClassName</h2>
<h2 title="Uses of Class de.dhbwstuttgart.typecheck.JavaClassName" class="title">Uses of Class<br>de.dhbwstuttgart.parser.JavaClassName</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
@@ -91,7 +91,7 @@
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#de.dhbwstuttgart.typeinference.exceptions">de.dhbwstuttgart.typeinference.exceptions</a></td>
<td class="colFirst"><a href="#de.dhbwstuttgart.exceptions">de.dhbwstuttgart.exceptions</a></td>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
@@ -160,12 +160,12 @@
</tbody>
</table>
</li>
<li class="blockList"><a name="de.dhbwstuttgart.typeinference.exceptions">
<li class="blockList"><a name="de.dhbwstuttgart.exceptions">
<!-- -->
</a>
<h3>Uses of <a href="../../../../de/dhbwstuttgart/parser/JavaParser.yyException.html" title="class in de.dhbwstuttgart.parser">JavaParser.yyException</a> in <a href="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.typeinference.exceptions</a></h3>
<h3>Uses of <a href="../../../../de/dhbwstuttgart/parser/JavaParser.yyException.html" title="class in de.dhbwstuttgart.parser">JavaParser.yyException</a> in <a href="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.exceptions</a></h3>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
<caption><span>Constructors in <a href="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.typeinference.exceptions</a> with parameters of type <a href="../../../../de/dhbwstuttgart/parser/JavaParser.yyException.html" title="class in de.dhbwstuttgart.parser">JavaParser.yyException</a></span><span class="tabEnd">&nbsp;</span></caption>
<caption><span>Constructors in <a href="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.exceptions</a> with parameters of type <a href="../../../../de/dhbwstuttgart/parser/JavaParser.yyException.html" title="class in de.dhbwstuttgart.parser">JavaParser.yyException</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
@@ -107,7 +107,7 @@
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#de.dhbwstuttgart.typeinference.exceptions">de.dhbwstuttgart.typeinference.exceptions</a></td>
<td class="colFirst"><a href="#de.dhbwstuttgart.exceptions">de.dhbwstuttgart.exceptions</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
@@ -238,11 +238,11 @@
</tbody>
</table>
</li>
<li class="blockList"><a name="de.dhbwstuttgart.typeinference.exceptions">
<li class="blockList"><a name="de.dhbwstuttgart.exceptions">
<!-- -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../de/dhbwstuttgart/parser/package-summary.html">de.dhbwstuttgart.parser</a> used by <a href="../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.typeinference.exceptions</a></span><span class="tabEnd">&nbsp;</span></caption>
<caption><span>Classes in <a href="../../../de/dhbwstuttgart/parser/package-summary.html">de.dhbwstuttgart.parser</a> used by <a href="../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.exceptions</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
@@ -69,9 +69,9 @@
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.Class">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.ClassOrInterface">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.Class">Method</a></li>
<li><a href="#methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.ClassOrInterface">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
@@ -100,7 +100,7 @@
<li><a href="../../../de/dhbwstuttgart/syntaxtree/GTVDeclarationContext.html" title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.GTVDeclarationContext</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../de/dhbwstuttgart/syntaxtree/Class.html" title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.Class</a></li>
<li><a href="../../../de/dhbwstuttgart/syntaxtree/Class.html" title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.ClassOrInterface</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.BasicAssumptionClass</li>
@@ -137,7 +137,7 @@ extends <a href="../../../de/dhbwstuttgart/syntaxtree/Class.html" title="class i
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.Class">
<li class="blockList"><a name="fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.ClassOrInterface">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.<a href="../../../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
</a>
<h3>Method Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.Class">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.ClassOrInterface">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.<a href="../../../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
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.Class">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.ClassOrInterface">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.Class">Method</a></li>
<li><a href="#methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.ClassOrInterface">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
@@ -106,7 +106,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../de/dhbwstuttgart/syntaxtree/GTVDeclarationContext.html" title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.GTVDeclarationContext</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.Class</li>
<li>de.dhbwstuttgart.syntaxtree.ClassOrInterface</li>
</ul>
</li>
</ul>
@@ -75,7 +75,7 @@ var activeTableTab = "activeTableTab";
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.Class">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.ClassOrInterface">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
@@ -106,7 +106,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../de/dhbwstuttgart/syntaxtree/GTVDeclarationContext.html" title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.GTVDeclarationContext</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../de/dhbwstuttgart/syntaxtree/Class.html" title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.Class</a></li>
<li><a href="../../../de/dhbwstuttgart/syntaxtree/Class.html" title="class in de.dhbwstuttgart.syntaxtree">de.dhbwstuttgart.syntaxtree.ClassOrInterface</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.Interface</li>
@@ -148,7 +148,7 @@ extends <a href="../../../de/dhbwstuttgart/syntaxtree/Class.html" title="class i
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.Class">
<li class="blockList"><a name="fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.ClassOrInterface">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.<a href="../../../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
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.Class">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.ClassOrInterface">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.<a href="../../../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
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.Class">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.ClassOrInterface">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.Class</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.ClassOrInterface</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
@@ -70,7 +70,7 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.Class" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.Class</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.ClassOrInterface" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.Class</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
@@ -111,7 +111,7 @@
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#de.dhbwstuttgart.typeinference.exceptions">de.dhbwstuttgart.typeinference.exceptions</a></td>
<td class="colFirst"><a href="#de.dhbwstuttgart.exceptions">de.dhbwstuttgart.exceptions</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
@@ -1296,12 +1296,12 @@
</tbody>
</table>
</li>
<li class="blockList"><a name="de.dhbwstuttgart.typeinference.exceptions">
<li class="blockList"><a name="de.dhbwstuttgart.exceptions">
<!-- -->
</a>
<h3>Uses of <a href="../../../../de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.html" title="class in de.dhbwstuttgart.syntaxtree">SyntaxTreeNode</a> in <a href="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.typeinference.exceptions</a></h3>
<h3>Uses of <a href="../../../../de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.html" title="class in de.dhbwstuttgart.syntaxtree">SyntaxTreeNode</a> in <a href="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.exceptions</a></h3>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
<caption><span>Constructors in <a href="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.typeinference.exceptions</a> with parameters of type <a href="../../../../de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.html" title="class in de.dhbwstuttgart.syntaxtree">SyntaxTreeNode</a></span><span class="tabEnd">&nbsp;</span></caption>
<caption><span>Constructors in <a href="../../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.exceptions</a> with parameters of type <a href="../../../../de/dhbwstuttgart/syntaxtree/SyntaxTreeNode.html" title="class in de.dhbwstuttgart.syntaxtree">SyntaxTreeNode</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
@@ -115,7 +115,7 @@
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#de.dhbwstuttgart.typeinference.exceptions">de.dhbwstuttgart.typeinference.exceptions</a></td>
<td class="colFirst"><a href="#de.dhbwstuttgart.exceptions">de.dhbwstuttgart.exceptions</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
@@ -367,11 +367,11 @@
</tbody>
</table>
</li>
<li class="blockList"><a name="de.dhbwstuttgart.typeinference.exceptions">
<li class="blockList"><a name="de.dhbwstuttgart.exceptions">
<!-- -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../de/dhbwstuttgart/syntaxtree/package-summary.html">de.dhbwstuttgart.syntaxtree</a> used by <a href="../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.typeinference.exceptions</a></span><span class="tabEnd">&nbsp;</span></caption>
<caption><span>Classes in <a href="../../../de/dhbwstuttgart/syntaxtree/package-summary.html">de.dhbwstuttgart.syntaxtree</a> used by <a href="../../../de/dhbwstuttgart/typeinference/exceptions/package-summary.html">de.dhbwstuttgart.exceptions</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.BoolLiteral</li>
<li>de.dhbwstuttgart.syntaxtree.statement.literal.BoolLiteral</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.CharLiteral</li>
<li>de.dhbwstuttgart.syntaxtree.statement.literal.CharLiteral</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.DoubleLiteral</li>
<li>de.dhbwstuttgart.syntaxtree.statement.literal.DoubleLiteral</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.FloatLiteral</li>
<li>de.dhbwstuttgart.syntaxtree.statement.literal.FloatLiteral</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.IntLiteral</li>
<li>de.dhbwstuttgart.syntaxtree.statement.literal.NumberLiteral</li>
</ul>
</li>
</ul>
@@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Expr.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Expr</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.LocalOrFieldVar</li>
<li>de.dhbwstuttgart.syntaxtree.statement.LocalVar</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.NegativeExpr</li>
<li>de.dhbwstuttgart.syntaxtree.statement.javaInternal.NegativeExpr</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.NotExpr</li>
<li>de.dhbwstuttgart.syntaxtree.statement.javaInternal.NotExpr</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.Null</li>
<li>de.dhbwstuttgart.syntaxtree.statement.literal.Null</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.PositivExpr</li>
<li>de.dhbwstuttgart.syntaxtree.statement.javaInternal.PositivExpr</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.PostDecExpr</li>
<li>de.dhbwstuttgart.syntaxtree.statement.javaInternal.PostDecExpr</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.PostIncExpr</li>
<li>de.dhbwstuttgart.syntaxtree.statement.javaInternal.PostIncExpr</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.PreDecExpr</li>
<li>de.dhbwstuttgart.syntaxtree.statement.javaInternal.PreDecExpr</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/UnaryExpr.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.UnaryExpr</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.PreIncExpr</li>
<li>de.dhbwstuttgart.syntaxtree.statement.javaInternal.PreIncExpr</li>
</ul>
</li>
</ul>
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.StringLiteral</li>
<li>de.dhbwstuttgart.syntaxtree.statement.literal.StringLiteral</li>
</ul>
</li>
</ul>
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.BoolLiteral</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.BoolLiteral</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -70,9 +70,9 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.BoolLiteral" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.BoolLiteral</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.BoolLiteral" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.BoolLiteral</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.BoolLiteral</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.literal.BoolLiteral</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.CharLiteral</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.CharLiteral</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -70,9 +70,9 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.CharLiteral" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.CharLiteral</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.CharLiteral" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.CharLiteral</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.CharLiteral</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.literal.CharLiteral</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.DoubleLiteral</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.DoubleLiteral</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -70,9 +70,9 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.DoubleLiteral" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.DoubleLiteral</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.DoubleLiteral" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.DoubleLiteral</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.DoubleLiteral</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.literal.DoubleLiteral</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.FloatLiteral</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.FloatLiteral</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -70,9 +70,9 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.FloatLiteral" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.FloatLiteral</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.FloatLiteral" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.FloatLiteral</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.FloatLiteral</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.literal.FloatLiteral</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.IntLiteral</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.NumberLiteral</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -70,9 +70,9 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.IntLiteral" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.IntLiteral</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.NumberLiteral" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.IntLiteral</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.IntLiteral</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.literal.NumberLiteral</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.LocalOrFieldVar</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.LocalVar</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -70,9 +70,9 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.LocalOrFieldVar" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.LocalOrFieldVar</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.LocalVar" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.LocalOrFieldVar</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.LocalOrFieldVar</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.LocalVar</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.NegativeExpr</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.NegativeExpr</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -70,9 +70,9 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.NegativeExpr" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.NegativeExpr</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.NegativeExpr" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.NegativeExpr</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.NegativeExpr</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.javaInternal.NegativeExpr</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.NotExpr</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.NotExpr</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -70,9 +70,9 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.NotExpr" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.NotExpr</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.NotExpr" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.NotExpr</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.NotExpr</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.javaInternal.NotExpr</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.Null</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.Null</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -70,9 +70,9 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.Null" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.Null</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.Null" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.Null</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.Null</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.literal.Null</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.PositivExpr</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.PositivExpr</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -70,9 +70,9 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.PositivExpr" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PositivExpr</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.PositivExpr" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PositivExpr</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.PositivExpr</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.javaInternal.PositivExpr</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.PostDecExpr</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.PostDecExpr</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -70,9 +70,9 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.PostDecExpr" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PostDecExpr</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.PostDecExpr" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PostDecExpr</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.PostDecExpr</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.javaInternal.PostDecExpr</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
@@ -3,7 +3,7 @@
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.PostIncExpr</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.PostIncExpr</title>
<meta name="date" content="2015-05-12">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
@@ -70,9 +70,9 @@
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.PostIncExpr" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PostIncExpr</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.javaInternal.PostIncExpr" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.PostIncExpr</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.PostIncExpr</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.javaInternal.PostIncExpr</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->

Some files were not shown because too many files have changed in this diff Show More