Compare commits

...

561 Commits

Author SHA1 Message Date
JanUlrich ed5cdd58d9 Reflections 2017-10-12 15:01:12 +02:00
JanUlrich 93a97984b5 reflections entfernen 2017-10-12 14:56:23 +02:00
JanUlrich 4b2a6f99bc Added Junit 2017-10-12 14:49:47 +02:00
JanUlrich 72b5b01990 reflections source anfügen 2017-10-12 14:43:42 +02:00
Fayez Abu Alia a5800382c2 Merge branch 'ohneMaven' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into ohneMaven 2017-10-12 14:39:25 +02:00
Fayez Abu Alia a019eab6b2 asm and guava libraries 2017-10-12 14:38:43 +02:00
JanUlrich 611dc4b36b ASM Library adden 2017-10-12 14:36:17 +02:00
JanUlrich 0830458ee2 Debug. Kein Maven, Librarys manuell anfügen 2017-10-12 14:33:08 +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 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
JanUlrich dab2087f0a BCEL aktualisiert 2016-06-17 14:21:30 +02:00
JanUlrich e19dee4c99 Umstellung auf Intellij IDEA 2016-06-17 13:55:14 +02:00
JanUlrich f88d58d548 Update für StackMapTable 2016-06-17 07:02:15 +02:00
JanUlrich 9d9526ae72 Testen von StackMapTable-Generator 2016-06-15 20:58:55 +02:00
JanUlrich 86a94dfae9 Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-06-03 13:47:37 +02:00
JanUlrich fe35a1f56d Merge mit bytecode 2016-06-03 13:47:22 +02:00
i13026 5821839cbc Test für Methodenparameter erstellt 2016-06-03 10:57:48 +02:00
i13026 b6df854cc6 Stack wird pro Methode behandelt 2016-05-26 11:02:02 +02:00
JanUlrich 52b6f438b0 Merge mit Bytecode 2016-05-25 18:18:05 +02:00
JanUlrich 07ea25b5b7 Filtern von Constraints vor dem Karthesischen Produkt bilden 2016-05-25 17:46:33 +02:00
JanUlrich 0d51c3e94d Bug 49 und 52 fix 2016-05-24 00:36:59 +02:00
i13026 47c2b78713 Testfall für Bug 48: Uninizierte Variablen erstellt 2016-05-12 21:14:57 +02:00
i13026 58db64ad22 WildCardTest implementiert 2016-05-12 20:50:36 +02:00
JanUlrich b67816775e Merge branch 'refactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-05-12 19:48:39 +02:00
JanUlrich 748f25a2fd gen-TPH richtig konvertieren 2016-05-12 19:48:19 +02:00
Florian Steurer 318f6e1cc5 code review todos erledigt 2016-05-06 16:59:59 +02:00
Martin Plümicke 223f6facc7 modified: ../../../src/de/dhbwstuttgart/bytecode/ClassGenerator.java
in addMethod :
String methodNameAndTypes = m.getName()+Arrays.toString(m.getArgumentTypes());
durch
String methodNameAndTypes = m.getReturnType().getSignature()+m.getName()+Arrays.toString(m.getArgumentTypes());
ersetzt
	modified:   OL.jav
Main-Klasse hinzugefuegt
2016-05-04 00:28:57 +02:00
JanUlrich edda41f546 Generic Type Var werden zu PlaceholderTypen konvertiert 2016-05-03 22:43:43 +02:00
JanUlrich 5d760d4222 Aufruf im UnifyTest OverloadingVector ändern 2016-05-03 22:15:19 +02:00
Florian Steurer 005ed60c26 fixed vector 2016-05-03 21:07:52 +02:00
Florian Steurer 78794e377a fixed vector 2016-05-03 20:44:55 +02:00
i13026 ae01af7a40 Bugfix: OverloadingTest 2016-05-03 18:15:14 +02:00
JanUlrich db93a1dfe1 Void Reference-Typen wieder zu Void RefTypes konvertieren 2016-05-03 13:58:54 +02:00
JanUlrich f17745bfa5 Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-05-03 13:55:19 +02:00
Florian Steurer 84176275be Merge branch 'unify' of ssh://i13029@gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unify 2016-05-03 13:43:16 +02:00
Florian Steurer da49e42515 fixed long running times for lambda tests 2016-05-03 13:42:14 +02:00
JanUlrich 0a6aa450db OverloadingVector Test 2016-05-03 13:03:14 +02:00
JanUlrich dc52dc5dec Merge branch 'bytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode 2016-05-03 12:47:35 +02:00
JanUlrich ca8952a43c Void Reference-Typen wieder zu Void RefTypes konvertieren 2016-05-03 12:46:32 +02:00
JanUlrich 4a6a8d62e3 Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-05-03 12:42:04 +02:00
Florian Steurer 4f265b56a4 big refactoring of smaller and greater 2016-04-30 19:35:34 +02:00
i13026 e5fc8c8288 - Div und MulOperatoren für alle numerischen Datentypen implementiert (Nur wenn beide Operanten den gleichen Typ haben) 2016-04-30 11:14:24 +02:00
JanUlrich c2d3fce75e FormalParameter getDiscription Fix 2016-04-29 16:52:35 +02:00
JanUlrich 8134bbb297 Merge branch 'bytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-04-29 16:03:50 +02:00
JanUlrich 46f1134bad Aufräumen 2016-04-29 16:03:38 +02:00
i13026 32741f41e9 - Addition für alle Typen implementiert
- Mehrere Klassen in einer jav Datei möglich
- OLTest läuft
2016-04-29 15:52:20 +02:00
JanUlrich d03e20df90 FunN Typen konvertieren. FunVoidN Typen werden nicht mehr benutzt 2016-04-29 15:23:42 +02:00
JanUlrich d19414c513 Merge mit Bytecode 2016-04-29 14:05:25 +02:00
i13026 ba6ae74ad1 -Tests für for und While Schleife korrigiert
- While teilweise implementiert
2016-04-29 10:00:33 +02:00
i13026 dad06a5626 Alle Bytecode Tests in SourceBytecodeTests transformiert 2016-04-29 09:43:36 +02:00
JanUlrich 324864f8d8 FunN Typen werden zu den entsprechenden UnifyTypen konvertiert 2016-04-29 04:00:46 +02:00
JanUlrich f2410154aa Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-04-29 03:09:31 +02:00
Florian Steurer b39dedb9aa added application of funN Rules 2016-04-28 21:33:33 +02:00
Florian Steurer 7c0a91e624 unitTest for lambda6, alternative sequential execution, minor bugs 2016-04-28 21:24:52 +02:00
Florian Steurer c043717c06 removed todo 2016-04-28 21:04:58 +02:00
JanUlrich 9a51e79f2a Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-04-28 16:42:16 +02:00
JanUlrich a31e7b1108 BCEL Framework aktualisiert. FunN Typen implementieren 2016-04-28 15:32:12 +02:00
i13026 bbb79b1a1d - Tests für Vergleichsoperatoren angelegt 2016-04-27 15:41:49 +02:00
i13026 b3e13d09b9 - Alle Operatoren implementiert
- Tests für Sub, Mul, Div
2016-04-27 15:08:17 +02:00
i13026 5ac19d7a59 - args_size bugfix 2016-04-26 16:15:53 +02:00
i13026 362be98c30 -Test für Stackmaptable ifstatement verbessert
- IFStatementCreator erstellt
2016-04-26 15:52:22 +02:00
i13026 8bda352bc9 - Method refactored 2016-04-25 14:58:52 +02:00
Florian Steurer 856f5da86b Parallelisierung mit Fork-Join Pool 2016-04-22 16:52:16 +02:00
Florian Steurer 7d75f18319 Parallelisierung mit Fork-Join Pool 2016-04-22 16:51:05 +02:00
Florian Steurer 8fa8fc8758 comment 2016-04-22 16:11:18 +02:00
Florian Steurer 752723020e pipe execution 2016-04-22 15:45:20 +02:00
Florian Steurer 6eb7f2d1bb removed creation of new strings 2016-04-22 10:24:33 +02:00
Florian Steurer 7b6b720b57 memory optimization 2016-04-21 22:31:36 +02:00
Florian Steurer bb8df92cba equals / hashcode optimization 2016-04-21 22:19:48 +02:00
Florian Steurer b8415b122b stringbuilder in logger 2016-04-21 20:26:33 +02:00
JanUlrich 629d2dcc4d Merge branch 'unify' into refactoring 2016-04-21 14:27:49 +02:00
JanUlrich 16cbf8e1b7 Fehler bei TPH Generierung behoben 2016-04-21 14:27:32 +02:00
JanUlrich 0ca4f16c49 Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unify 2016-04-21 13:25:04 +02:00
Florian Steurer 1a32ea9ce9 size of unify result 2016-04-20 18:38:20 +02:00
JanUlrich 1afe2d4d5c Unnötige Kommentare löschen 2016-04-20 18:04:28 +02:00
Florian Steurer d8feb04938 time log 2016-04-20 17:10:26 +02:00
JanUlrich e08485740f Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-04-20 14:48:03 +02:00
Florian Steurer 8780d5d47a option for parallelization 2016-04-20 12:15:04 +02:00
Florian Steurer 863bfa40d3 performance opt 2016-04-20 11:34:40 +02:00
Florian Steurer 6a42c8ef11 performance optimization 2016-04-20 11:25:45 +02:00
JanUlrich 07d63a9586 Merge mit bytecode 2016-04-19 16:59:59 +02:00
JanUlrich fcbd05fa9c Im Unify generierte TPH beachten 2016-04-19 15:27:46 +02:00
i13026 8bad95f774 -AndOperator erweitert 2016-04-19 15:24:43 +02:00
i13026 5a7c2310a1 -Test für Methodenaufrufe und Variablen erstellt 2016-04-19 14:40:29 +02:00
JanUlrich a8f18e77be Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unify 2016-04-19 12:58:00 +02:00
Florian Steurer 904ca01207 cleaned up 2016-04-19 11:42:15 +02:00
JanUlrich b70dc71a62 Convert zu FunNTypen hinzufügen 2016-04-18 15:38:47 +02:00
Florian Steurer afc6bc7b89 neue abbruchbedingung 2016-04-14 15:15:21 +02:00
Florian Steurer fbcd0cd8a5 Merge branch 'unify' of ssh://i13029@gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unify 2016-04-14 14:56:24 +02:00
Florian Steurer 12abb0b34d reduced cases of cart product 2016-04-14 14:54:59 +02:00
i13026 65a1038574 - Speichern einer lokalen Variable unter Verwenung der InstructionFactory 2016-04-14 14:53:18 +02:00
JanUlrich 9e114207ce Fehler mit SMALLER und SMALLERDOT behoben 2016-04-14 14:50:31 +02:00
i13026 a23f77c337 -Test für Variablen erstellt 2016-04-14 14:36:18 +02:00
JanUlrich 5c12a61699 Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unify 2016-04-14 14:22:53 +02:00
JanUlrich 4b9eda962e Tests anfügen 2016-04-14 14:22:41 +02:00
Florian Steurer e26f87afba fixed rule set test 2016-04-14 14:21:19 +02:00
JanUlrich 3cd7dba316 Merge branch 'unify' into refactoring 2016-04-14 14:03:15 +02:00
i13026 9a07201498 And, Or, Plus Operator implementiert 2016-04-14 12:00:15 +02:00
i13026 dfe79a8030 Equal Operator implementiert 2016-04-13 19:31:35 +02:00
Florian Steurer e8c46dcdbd rename unify to typeUnify 2016-04-13 18:32:09 +02:00
Florian Steurer 558a873e68 commenting 2016-04-13 11:58:33 +02:00
Florian Steurer b1febd7a50 commenting refactoring 2016-04-13 11:38:07 +02:00
Florian Steurer ae9220c04b made the ruleSet interface functional (added fc in arguments) 2016-04-13 11:13:20 +02:00
i13026 11e149110a - OLTest verbessert, ist aber nicht positiv, da Autoboxing fehlt 2016-04-12 20:06:22 +02:00
Florian Steurer d8e7df425d refactoring 2016-04-12 15:47:38 +02:00
Florian Steurer 27f6abefe8 commenting and refactoring 2016-04-12 15:43:32 +02:00
Florian Steurer ba636e1da0 fixed bug in standard unify 2016-04-12 15:17:12 +02:00
JanUlrich 4173733ada Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-04-12 14:00:53 +02:00
Florian Steurer 1b9a9c0841 commenting / refactoring 2016-04-12 13:39:08 +02:00
Florian Steurer ff0d1e907f fixed flattening of sets 2016-04-12 13:21:17 +02:00
JanUlrich 3f62ef4072 Merge branch 'bytecode' into refactoring 2016-04-12 12:43:42 +02:00
JanUlrich b14c264435 Merge branch 'bytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode 2016-04-12 12:24:15 +02:00
JanUlrich 7a47de7bfa Merge branch 'bytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-04-12 12:14:38 +02:00
JanUlrich f4d0dbf95d Unify Test anfügen 2016-04-12 12:14:31 +02:00
JanUlrich b0aeaae80e Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-04-12 11:54:46 +02:00
JanUlrich 03b1321a45 UnifyTestSubclasses anfügen 2016-04-12 11:54:26 +02:00
Pluemicke Martin 7363758603 new file: OL.jav
new file:   OLTest.java
	modified:   Overloading.jav
main Methode angefuegt
2016-04-12 11:37:00 +02:00
Florian Steurer f8d7a95731 commenting 2016-04-12 11:36:43 +02:00
Florian Steurer 8b6a4d1746 refactoring and commenting 2016-04-12 11:28:07 +02:00
Florian Steurer a16e62f4bd refactoring and commenting 2016-04-12 11:18:55 +02:00
Florian Steurer ea32cd5680 commenting and refactoring 2016-04-12 11:12:57 +02:00
JanUlrich 377987abda Aufräumen in test/bytecode 2016-04-12 11:08:39 +02:00
Florian Steurer 1e96811127 refactoring and commenting 2016-04-12 10:54:17 +02:00
JanUlrich 22393888f1 Merge branch 'refactoring' into bytecode 2016-04-12 10:28:20 +02:00
JanUlrich b68107286a Merge branch 'bytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode 2016-04-12 10:23:15 +02:00
JanUlrich f630f93a3d Debug Ausgabe anfügen 2016-04-12 10:06:58 +02:00
Martin Plümicke 0438ef9af4 Merge branch 'bytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode 2016-04-12 09:57:09 +02:00
JanUlrich 3bb2153b6a Java Parser an umbenennung anpassen 2016-04-11 18:36:43 +02:00
JanUlrich 6cc0d462ab Merge branch 'unify' into refactoring 2016-04-11 18:35:50 +02:00
JanUlrich df1881bf41 Merge branch 'bytecode' into refactoring 2016-04-11 18:35:44 +02:00
JanUlrich de238b90df Assumptions erweitern 2016-04-11 18:35:18 +02:00
Florian Steurer 55f288022a commenting, refactoring 2016-04-11 16:31:55 +02:00
Florian Steurer 0313d297e1 comments and refactoring 2016-04-11 16:26:59 +02:00
Florian Steurer 044e6fbc3f comments & refactoring 2016-04-11 16:05:36 +02:00
Florian Steurer aa692c2f25 comments 2016-04-11 15:30:01 +02:00
Florian Steurer 6616d78dcb . 2016-04-11 09:56:29 +02:00
Florian Steurer 5dd90cb30c refactored standard unification 2016-04-11 09:56:06 +02:00
Florian Steurer 64247b689b signature from getLeftHandedType from type to string 2016-04-10 14:52:07 +02:00
Florian Steurer 23e0be2572 extended all cases / fixed random placeholder generation 2016-04-09 15:07:41 +02:00
Florian Steurer d080eb4a0a extended case 6 2016-04-08 18:48:35 +02:00
Florian Steurer 41b3e4f6c2 extended case 5 2016-04-08 18:28:34 +02:00
Florian Steurer 5c73224f8f support for extended case 1 // tests // bugfix in "big" cases 2016-04-08 18:04:11 +02:00
Florian Steurer e06888f5f7 organized imports 2016-04-07 22:33:14 +02:00
Florian Steurer 3a2a5510b9 removed printLn-tests fuer smArg und grArg 2016-04-07 22:32:42 +02:00
Florian Steurer b7f41c4d13 funN greater 2016-04-07 22:30:30 +02:00
Florian Steurer 53cfb4b046 Support for FunN in FC added // swap for unifiers 2016-04-07 22:24:35 +02:00
Florian Steurer 284447aad2 removed unify old test 2016-04-07 21:45:27 +02:00
i13026 b707a0f03e Bugfix: Methodenparameter 2016-04-07 15:44:29 +02:00
JanUlrich d63f08bf33 BytecodeTest falsch aufgerufen 2016-04-07 15:08:11 +02:00
JanUlrich d3ebee1b3c Merge branch 'bytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-04-07 14:55:46 +02:00
i13026 45cad9f675 - getDescription ist nicht die Descripiton im Bytecode 2016-04-07 14:53:29 +02:00
JanUlrich 74c2b5e323 Merge branch 'bytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-04-07 14:52:04 +02:00
JanUlrich e537a76cd9 Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-04-07 14:39:15 +02:00
JanUlrich 44318ee5d8 Aufräumen 2016-04-07 14:39:07 +02:00
Florian Steurer 8d69f6c82b adapt rule fixed 2016-04-07 14:30:23 +02:00
i13026 943c4e6043 Test für System.out.println erstellt. Umsetzung vorerst nicht möglich, da ein Fehler der Typeinferenz auftritt 2016-04-07 13:54:29 +02:00
i13026 7b78cf8471 Bugfix: Store and Load 2016-04-07 12:19:42 +02:00
JanUlrich 3a8f1252a4 Merge branch 'bytecode' into refactoring 2016-04-06 14:23:26 +02:00
JanUlrich e1c925b9bc Unnötige Kommentare löschen 2016-04-06 12:42:15 +02:00
Florian Steurer 6793b0bd24 rename mpair to unify pair / refactoring 2016-04-04 11:23:14 +02:00
Florian Steurer 2e30429252 added wildcardtype 2016-04-04 10:18:34 +02:00
Florian Steurer 2c642cb6ef permute params test with assert 2016-04-03 22:57:11 +02:00
Florian Steurer 20d1106e07 refactored Types // 2016-04-03 22:43:55 +02:00
Florian Steurer 6c2d71d005 random with seed 2016-04-03 17:36:44 +02:00
Florian Steurer 0d5b515a47 added extra set level / fixed subst rule bug / 2016-04-03 16:53:45 +02:00
Florian Steurer b12f301656 Merge branch 'unify' of ssh://i13029@gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into unify 2016-04-02 11:29:43 +02:00
Florian Steurer 0be7534b98 . 2016-04-02 11:29:31 +02:00
JanUlrich 1bf208b833 Merge mit refactoring 2016-04-01 18:24:36 +02:00
JanUlrich a3e7b4567a Merge mit refactoring 2016-04-01 18:21:51 +02:00
JanUlrich 4cdcde8fef Neuen Unify Algorithmus eingebaut 2016-04-01 16:12:30 +02:00
Florian Steurer d89d06797e isInSolvedForm(), Unit-Tests, removed PairOp.Equals 2016-03-31 22:09:46 +02:00
i13026 336dc52be6 Merge branch 'bytecode' of ssh://i13026@gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode 2016-03-31 18:09:16 +02:00
i13026 098cafac00 - IdentityFieldTest erstellt 2016-03-31 18:08:48 +02:00
JanUlrich 4deb91b99f Merge branch 'bytecode' into refactoring 2016-03-31 11:50:53 +02:00
i13026 8d8e27c84c - Bugfix new Statement, Deskription darf nicht mit Semikolon enden 2016-03-31 08:52:23 +02:00
JanUlrich e2d384e7f9 Merge mit Unify und Einbinden der neuen Unifizierung. Nich lauffähige Version 2016-03-30 18:16:27 +02:00
Florian Steurer 304a5693a6 wc regeln angepasst, triviale tests fertig 2016-03-30 16:25:26 +02:00
i13026 5b07d58093 - Klassenvariable ohne Wert 2016-03-30 10:14:05 +02:00
i13026 b51079280e - New Statement, Problem Syntax des Klassennamens 2016-03-30 10:09:17 +02:00
Florian Steurer 5030410978 finitclosure tests angepasst 2016-03-29 19:07:54 +02:00
Florian Steurer 23142adc70 reduce rules 2016-03-29 17:52:38 +02:00
JanUlrich 43a8c9e647 Umstellung auf MPair beginnen 2016-03-29 13:23:15 +02:00
JanUlrich fa337c5546 Umstellung auf MPair beginnen 2016-03-29 13:23:05 +02:00
Florian Steurer 639ac8430c adapted adaptRules 2016-03-28 20:56:24 +02:00
Florian Steurer 332dd57de3 greater und testy 2016-03-28 15:00:34 +02:00
Florian Steurer ac3ce7d214 smaller 2016-03-28 11:40:21 +02:00
i13026 b4d7ab02eb - UnitTest für MultiExtends Problem
- Verhindern von doppelten Methoden von Class -> ClassGen
2016-03-28 10:33:04 +02:00
Florian Steurer 67e1c5c736 15ter testcase 2016-03-28 01:26:53 +02:00
Florian Steurer de607cfd53 noch ein smaller test 2016-03-28 01:19:57 +02:00
Florian Steurer 26cc9b85ef smalller und neue testcases 2016-03-28 01:01:46 +02:00
Florian Steurer 257edfc0b3 fc smaller test 2016-03-26 14:09:45 +01:00
Florian Steurer 5e18496847 smaller and test cases 2016-03-26 12:59:38 +01:00
Florian Steurer bbfd8699e8 smaller / smArg / grArg / TODO: greater 2016-03-26 00:03:26 +01:00
JanUlrich ad2804fab9 Umstellung auf MPair beginnen 2016-03-24 11:57:31 +01:00
JanUlrich 1e9d0517f2 Umstellung auf MPair beginnen 2016-03-24 11:57:17 +01:00
Florian Steurer a5b86dc84c freshPlaceholder / implemented funn rules 2016-03-23 11:44:31 +01:00
Florian Steurer 11bcf5735a freshPlaceholder Method // funN rules (not implemented yet) 2016-03-23 10:59:41 +01:00
Florian Steurer 88726ccb70 added funN 2016-03-23 09:45:36 +01:00
Florian Steurer 14e00913e8 application of new rules 2016-03-22 20:47:39 +01:00
Florian Steurer 0e524caae7 Added missing rules 2016-03-22 20:41:24 +01:00
JanUlrich f788b74f26 Merge mit Unify und Bytecode 2016-03-22 15:13:51 +01:00
JanUlrich 47c9be5488 Aufräumen 2016-03-22 13:17:56 +01:00
i13026 c80dc162d9 - Verhindern von der Generierung von doppelte Methoden 2016-03-20 18:55:36 +01:00
Florian Steurer 21c6aef7fd cartesische produkte überarbeitet 2016-03-20 18:05:34 +01:00
Florian Steurer 299f8f56ca added missing cases 2016-03-20 15:09:12 +01:00
JanUlrich 1f825360df Test GenerateFiniteClosure anfügen 2016-03-17 16:54:43 +01:00
Florian Steurer fa9627b883 unify case 1 2016-03-17 16:35:33 +01:00
Florian Steurer d19a79bd63 finite closure greater smaller funktioniert jetzt auch mit wildcards
(muss noch getestet werden)
2016-03-16 23:27:45 +01:00
JanUlrich 1762101330 Type Factory in unifyNew bewegen 2016-03-16 14:56:02 +01:00
JanUlrich e061dea7f5 Aufräumen SourceFile 2016-03-16 14:54:41 +01:00
JanUlrich a8d8dec899 Merge branch 'unify' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactoring 2016-03-15 13:57:21 +01:00
JanUlrich 4681b03838 Unify Paper anfügen 2016-03-15 13:26:22 +01:00
Florian Steurer 6acc3c1366 step 4 rule 1 2016-03-14 14:46:10 +01:00
Florian Steurer 863904a4e8 unifier fixed (no iterated application necessary anymore) 2016-03-14 12:59:31 +01:00
Florian Steurer 6778160315 various 2016-03-13 23:01:28 +01:00
Florian Steurer 27acee3385 standard martelli montanari unifiy fixed 2016-03-13 16:00:00 +01:00
JanUlrich b1d6b44fb9 BCEL Library aktualisiert, Stackmaptable angefügt, Tests angepasst 2016-03-10 15:28:03 +01:00
JanUlrich a4ea466fe6 Methode generiert StackMapTable 2016-02-18 18:28:08 +01:00
JanUlrich 7c00940cba Merge branch 'unify' into refactoring 2016-01-12 13:32:45 +01:00
JanUlrich b069bb7b8f StackMapTable Notizen 2016-01-12 13:32:16 +01:00
Florian Steurer bdd018d922 regel 4 für paare (a <. Theta') (funktioniert zu 99 Prozent noch nicht
richtig)
2015-12-27 15:01:59 +01:00
Florian Steurer 98cbe9b389 package rename + Mapping Klasse 2015-12-27 00:29:23 +01:00
Florian Steurer 039dd3b3f4 step 5 and 6 implemented 2015-12-26 18:49:11 +01:00
Florian Steurer 8eecda2a8f subst rule 2015-12-26 16:52:18 +01:00
Florian Steurer 3ff45a01de fixed cartesian products in step 4 2015-12-26 16:22:35 +01:00
Florian Steurer 264910bfa4 tests 2015-12-23 22:53:24 +01:00
Florian Steurer 89b53351ce martelli montanari unifikation 2015-12-23 13:25:43 +01:00
Florian Steurer ab7f56db6f martelli montanari unification (unfinished) 2015-12-21 15:44:13 +01:00
JanUlrich ac42bdf0a2 Merge mit Unify und Bytecode 2015-12-11 15:44:44 +01:00
JanUlrich cd569a8374 Fehler in AutoOverloadingVector beheben 2015-12-08 16:27:15 +01:00
JanUlrich bb165e007d Filter entfernen 2015-12-08 15:48:35 +01:00
JanUlrich 5f428894ea Merge mit bytecode 2015-12-08 13:34:16 +01:00
i13026 116232df57 AutoOverloadingVector Test hinzugefügt 2015-12-05 15:15:28 +01:00
Florian Steurer 53dd7b019e cartesian products 2015-11-27 19:52:59 +01:00
i13026 3c80cb275b Doppelte Methodengenerierungen verhindert 2015-11-27 18:10:46 +01:00
JanUlrich 1017b02704 Fehler in Bytecodegen der Methode beheben 2015-11-27 16:53:01 +01:00
i13026 f7804b754d Merge branch 'bytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bytecode 2015-11-27 16:11:06 +01:00
i13026 dd478961e2 TypeinferenceResultSet von ClassGenerator getrennt 2015-11-27 16:10:35 +01:00
JanUlrich 141e952c7a Merge mit refactoring 2015-11-27 15:47:09 +01:00
JanUlrich 63b2224f46 Datei für Logausgabe in compileToBytecode ändern 2015-11-27 13:15:13 +01:00
i13026 8ae7bda535 Mehrere Lösungen in einer Classfile 2015-11-25 10:41:57 +01:00
i13026 a27b4f9d3b Mehrere Lösungen in einer Classfile 2015-11-25 10:23:06 +01:00
i13026 e4374c06fd Mehrere Lösungen in einer Classfile 2015-11-25 09:41:26 +01:00
i13026 8b0005ecee AuoOverloadingTest vervollständigt 2015-11-25 08:00:50 +01:00
Florian Steurer 97e0e2fc72 unifyTest 2015-11-23 01:03:01 +01:00
Florian Steurer 7ff9554d78 application of adaptRules 2015-11-23 00:15:12 +01:00
Florian Steurer 4576efe3ec implemented step 4 (some cases still missing) 2015-11-23 00:12:08 +01:00
Florian Steurer e2ba4490b1 step 4 grundgerüst 2015-11-22 21:57:16 +01:00
Florian Steurer 6fd382580a Fixed AdaptSup 2015-11-22 15:58:10 +01:00
Florian Steurer 9552831d4e AdaptExt and Sup revisit 2015-11-22 15:54:18 +01:00
Florian Steurer 3f4f2cd27b adapt revisit 2015-11-22 15:26:17 +01:00
i13026 2958c52610 NewClass Statement 2015-11-18 18:10:29 +01:00
i13026 fc03a744fe Ünnötige Tests gelöscht
Tests die noch nicht laufen können Ignoriert
2015-11-17 17:35:17 +01:00
Florian Steurer be6a719433 adaptSup + tests 2015-11-15 18:39:22 +01:00
Florian Steurer c45c426011 unifier 2015-11-15 18:09:21 +01:00
Florian Steurer ae37dd6255 fc identifier from string to type 2015-11-15 18:08:46 +01:00
Florian Steurer 480c7dca61 adaptExt + tests 2015-11-15 15:06:34 +01:00
Florian Steurer e447e1cd46 adapt + tests 2015-11-15 14:39:08 +01:00
Florian Steurer 3739747eca adapt 2015-11-14 18:51:46 +01:00
Florian Steurer 82c0736fee adapt Rule 2015-11-13 23:24:22 +01:00
Florian Steurer 8a40acb73e application of unifiers 2015-11-13 23:17:14 +01:00
Florian Steurer fd5902f6dd stricter equality condition for typeParams 2015-11-13 22:49:26 +01:00
Florian Steurer fb82d8c3eb changed typeplaceholders 2015-11-13 22:45:30 +01:00
Florian Steurer 9f37139ab3 real immutability 2015-11-13 22:45:13 +01:00
JanUlrich ed246e0f88 Fehler in NewClass und Constructor beheben 2015-11-13 16:29:41 +01:00
Florian Steurer c83697dedb Unfifier 2015-11-09 14:39:26 +01:00
Florian Steurer 01ef0e9385 organize imports 2015-11-08 22:25:58 +01:00
Florian Steurer c1e4fce67f reduce Ext Tests 2015-11-08 22:25:23 +01:00
Florian Steurer eeba9fb734 reduceSup Test 2015-11-08 22:21:28 +01:00
Florian Steurer 7ada9cbd47 reduce 2 Test 2015-11-08 21:41:24 +01:00
Florian Steurer 176ec7b707 subst rule interface 2015-11-08 21:30:17 +01:00
Florian Steurer 777a9b5beb reduce1 and reduceEq Tests 2015-11-08 21:23:20 +01:00
Florian Steurer e695429262 reduceUpLow test 2015-11-08 17:05:35 +01:00
Florian Steurer b3514a8375 reduceUp and reduceLow tests 2015-11-08 17:02:25 +01:00
Florian Steurer 4c6c77929f erase3 test 2015-11-08 16:42:57 +01:00
Florian Steurer 2eb11748ca erase1 and erase2 tests 2015-11-08 16:29:40 +01:00
Florian Steurer 1b1fae6b13 swap rule test 2015-11-07 20:37:29 +01:00
Florian Steurer 84641d4abf application of the rules 2015-11-07 18:03:21 +01:00
Florian Steurer a263ba5fd4 reduceSup 2015-11-07 16:49:20 +01:00
Florian Steurer 4765c2afe0 smarg and grarg tests 2015-11-07 16:21:17 +01:00
Florian Steurer e49c2a35de implemented grArg and smArg 2015-11-07 14:53:23 +01:00
Florian Steurer 28e0e8e94d visitor pattern for grarg smarg 2015-11-07 14:35:54 +01:00
Florian Steurer 6b709f0198 fc smaller greater tests 2015-11-07 13:57:54 +01:00
Florian Steurer b93f1dd376 fixed greater() 2015-11-07 11:47:54 +01:00
Florian Steurer c08a8fd347 reduceExt 2015-11-07 11:41:06 +01:00
Florian Steurer 2483044e0c rules 2015-11-07 10:57:17 +01:00
Florian Steurer a86b70e672 reduce1 regel 2015-11-06 21:02:43 +01:00
Florian Steurer 92d81ac097 rules 2015-11-01 22:12:41 +01:00
Florian Steurer 931fb01d74 finite closure 2015-10-25 11:12:36 +01:00
Florian Steurer 11fc7a4512 . 2015-10-24 20:32:05 +02:00
Florian Steurer 5f9452cfda commenting and rule application 2015-10-24 19:46:51 +02:00
Florian Steurer 4539faf241 hashcodes and work on Mpair 2015-10-24 19:05:48 +02:00
Florian Steurer 3d38ea2e08 hashcode, equals and compareTo 2015-10-24 18:53:11 +02:00
Florian Steurer b0153be1cd . 2015-10-24 17:47:46 +02:00
1169 changed files with 39176 additions and 93423 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>
+10 -1
View File
@@ -7,6 +7,15 @@ bin
.mtj.tmp/
# Package Files #
*.jar
*.war
*.ear
# IDEs
.classpath
*.iml
.idea/
/target/
.DS_Store
.project
.settings/
+3
View File
@@ -0,0 +1,3 @@
[submodule "reflections"]
path = reflections
url = ./reflections
-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,5 +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/SingleConstraint.java=UTF-8
encoding//src/de/dhbwstuttgart/typeinference/UndConstraint.java=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"));
}
}
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();
} 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"));
}
}
-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}
-2
View File
@@ -1,2 +0,0 @@
Nächste Aufgaben:
-1028
View File
File diff suppressed because it is too large Load Diff
-201
View File
@@ -1,201 +0,0 @@
THROW=44
STATIC=38
INTERFACE=28
AND_ASSIGN=93
BREAK=4
BYTE=5
ELSE=15
IF=22
ENUM=16
SUB=82
BANG=69
LPAREN=57
DOT=65
CASE=6
AT=101
LINE_COMMENT=105
StringLiteral=55
ELLIPSIS=102
LBRACK=61
PUBLIC=35
THROWS=45
NullLiteral=56
RSHIFT_ASSIGN=98
LBRACE=59
GOTO=23
SUB_ASSIGN=90
SEMI=63
CHAR=8
ASSIGN=66
COMMENT=104
IMPORT=25
BITOR=86
CATCH=7
MUL_ASSIGN=91
DOUBLE=14
PROTECTED=34
LONG=29
COMMA=64
BITAND=85
PRIVATE=33
CONTINUE=11
DIV=84
FloatingPointLiteral=52
LE=74
CharacterLiteral=54
VOLATILE=49
EXTENDS=17
INSTANCEOF=26
NEW=31
ADD=81
LT=68
CLASS=9
DO=13
FINALLY=19
Identifier=100
CONST=10
PACKAGE=32
OR_ASSIGN=94
TRY=47
IntegerLiteral=51
SYNCHRONIZED=42
MUL=83
FOR=21
FINAL=18
RPAREN=58
CARET=87
URSHIFT_ASSIGN=99
BOOLEAN=3
NOTEQUAL=76
RBRACK=62
RBRACE=60
AND=77
THIS=43
SWITCH=41
VOID=48
TRANSIENT=46
INC=79
FLOAT=20
NATIVE=30
DIV_ASSIGN=92
BooleanLiteral=53
ABSTRACT=1
STRICTFP=39
INT=27
QUESTION=71
RETURN=36
LSHIFT_ASSIGN=97
ADD_ASSIGN=89
WS=103
GE=75
SUPER=40
OR=78
DEC=80
MOD=88
XOR_ASSIGN=95
ASSERT=2
EQUAL=73
IMPLEMENTS=24
COLON=72
GT=67
SHORT=37
MOD_ASSIGN=96
WHILE=50
TILDE=70
DEFAULT=12
'import'=25
'-'=82
')'=58
'super'=40
'else'=15
'%'=88
'!'=69
'>'=67
'public'=35
'=='=73
'--'=80
'|'=86
'['=61
':'=72
'...'=102
'throw'=44
'case'=6
'.'=65
'this'=43
'*'=83
'switch'=41
'synchronized'=42
'&'=85
'double'=14
'break'=4
'short'=37
'<='=74
'enum'=16
'try'=47
'?'=71
'if'=22
'extends'=17
'goto'=23
'}'=60
'instanceof'=26
';'=63
'||'=78
'>>='=98
'class'=9
'return'=36
'&='=93
'catch'=7
'native'=30
'continue'=11
'strictfp'=39
'/'=84
'*='=91
'+'=81
'final'=18
'protected'=34
'static'=38
'@'=101
'transient'=46
'~'=70
'assert'=2
']'=62
'<'=68
'++'=79
'>>>='=99
'>='=75
'long'=29
'boolean'=3
'const'=10
'abstract'=1
'implements'=24
'volatile'=49
'throws'=45
'/='=92
','=64
'-='=90
'do'=13
'package'=32
'('=57
'null'=56
'int'=27
'|='=94
'for'=21
'^'=87
'<<='=97
'='=66
'byte'=5
'&&'=77
'^='=95
'void'=48
'while'=50
'{'=59
'float'=20
'!='=76
'new'=31
'char'=8
'finally'=19
'interface'=28
'%='=96
'private'=33
'+='=89
'default'=12
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);
}
}
}
-201
View File
@@ -1,201 +0,0 @@
THROW=44
STATIC=38
INTERFACE=28
AND_ASSIGN=93
BREAK=4
BYTE=5
ELSE=15
IF=22
ENUM=16
SUB=82
BANG=69
LPAREN=57
DOT=65
CASE=6
AT=101
LINE_COMMENT=105
StringLiteral=55
ELLIPSIS=102
LBRACK=61
PUBLIC=35
THROWS=45
NullLiteral=56
RSHIFT_ASSIGN=98
LBRACE=59
GOTO=23
SUB_ASSIGN=90
SEMI=63
CHAR=8
ASSIGN=66
COMMENT=104
IMPORT=25
BITOR=86
CATCH=7
MUL_ASSIGN=91
DOUBLE=14
PROTECTED=34
LONG=29
COMMA=64
BITAND=85
PRIVATE=33
CONTINUE=11
DIV=84
FloatingPointLiteral=52
LE=74
CharacterLiteral=54
VOLATILE=49
EXTENDS=17
INSTANCEOF=26
NEW=31
ADD=81
LT=68
CLASS=9
DO=13
FINALLY=19
Identifier=100
CONST=10
PACKAGE=32
OR_ASSIGN=94
TRY=47
IntegerLiteral=51
SYNCHRONIZED=42
MUL=83
FOR=21
FINAL=18
RPAREN=58
CARET=87
URSHIFT_ASSIGN=99
BOOLEAN=3
NOTEQUAL=76
RBRACK=62
RBRACE=60
AND=77
THIS=43
SWITCH=41
VOID=48
TRANSIENT=46
INC=79
FLOAT=20
NATIVE=30
DIV_ASSIGN=92
BooleanLiteral=53
ABSTRACT=1
STRICTFP=39
INT=27
QUESTION=71
RETURN=36
LSHIFT_ASSIGN=97
ADD_ASSIGN=89
WS=103
GE=75
SUPER=40
OR=78
DEC=80
MOD=88
XOR_ASSIGN=95
ASSERT=2
EQUAL=73
IMPLEMENTS=24
COLON=72
GT=67
SHORT=37
MOD_ASSIGN=96
WHILE=50
TILDE=70
DEFAULT=12
'import'=25
'-'=82
')'=58
'super'=40
'else'=15
'%'=88
'!'=69
'>'=67
'public'=35
'=='=73
'--'=80
'|'=86
'['=61
':'=72
'...'=102
'throw'=44
'case'=6
'.'=65
'this'=43
'*'=83
'switch'=41
'synchronized'=42
'&'=85
'double'=14
'break'=4
'short'=37
'<='=74
'enum'=16
'try'=47
'?'=71
'if'=22
'extends'=17
'goto'=23
'}'=60
'instanceof'=26
';'=63
'||'=78
'>>='=98
'class'=9
'return'=36
'&='=93
'catch'=7
'native'=30
'continue'=11
'strictfp'=39
'/'=84
'*='=91
'+'=81
'final'=18
'protected'=34
'static'=38
'@'=101
'transient'=46
'~'=70
'assert'=2
']'=62
'<'=68
'++'=79
'>>>='=99
'>='=75
'long'=29
'boolean'=3
'const'=10
'abstract'=1
'implements'=24
'volatile'=49
'throws'=45
'/='=92
','=64
'-='=90
'do'=13
'package'=32
'('=57
'null'=56
'int'=27
'|='=94
'for'=21
'^'=87
'<<='=97
'='=66
'byte'=5
'&&'=77
'^='=95
'void'=48
'while'=50
'{'=59
'float'=20
'!='=76
'new'=31
'char'=8
'finally'=19
'interface'=28
'%='=96
'private'=33
'+='=89
'default'=12
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>
@@ -112,10 +112,10 @@ 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><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.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>
@@ -253,7 +253,7 @@ extends <a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.Literal">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.literal.Literal">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.statement.<a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@@ -112,10 +112,10 @@ 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><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.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>
@@ -253,7 +253,7 @@ extends <a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.Literal">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.literal.Literal">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.statement.<a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@@ -112,10 +112,10 @@ 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><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.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>
@@ -263,7 +263,7 @@ extends <a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.Literal">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.literal.Literal">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.statement.<a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@@ -112,10 +112,10 @@ 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><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.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>
@@ -263,7 +263,7 @@ extends <a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.Literal">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.literal.Literal">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.statement.<a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@@ -112,10 +112,10 @@ 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><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.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>
@@ -263,7 +263,7 @@ extends <a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.Literal">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.literal.Literal">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.statement.<a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@@ -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.Literal</li>
<li>de.dhbwstuttgart.syntaxtree.statement.literal.Literal</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>
@@ -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><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.Literal</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.statement.LongLiteral</li>
@@ -263,7 +263,7 @@ extends <a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.Literal">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.literal.Literal">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.statement.<a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@@ -112,10 +112,10 @@ 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><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.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>
@@ -245,7 +245,7 @@ extends <a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.Literal">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.literal.Literal">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.statement.<a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@@ -112,10 +112,10 @@ 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><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.Literal</a></li>
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">de.dhbwstuttgart.syntaxtree.statement.literal.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>
@@ -253,7 +253,7 @@ extends <a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html"
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.Literal">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.statement.literal.Literal">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.statement.<a href="../../../../de/dhbwstuttgart/syntaxtree/statement/Literal.html" title="class in de.dhbwstuttgart.syntaxtree.statement">Literal</a></h3>
@@ -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.Literal</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.Literal</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.statement.Literal" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.Literal</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.Literal" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.Literal</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
@@ -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.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.StringLiteral</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.StringLiteral</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.StringLiteral" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.StringLiteral</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.statement.literal.StringLiteral" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.statement.StringLiteral</h2>
</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.StringLiteral</div>
<div class="classUseContainer">No usage of de.dhbwstuttgart.syntaxtree.statement.literal.StringLiteral</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
@@ -109,10 +109,10 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/type/ObjectType.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.ObjectType</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.GenericTypeVar</a></li>
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.GenericRefType</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.type.BoundedGenericTypeVar</li>
<li>de.dhbwstuttgart.syntaxtree.GenericTypeVar</li>
</ul>
</li>
</ul>
@@ -174,7 +174,7 @@ extends <a href="../../../../de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.htm
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.type.GenericTypeVar">
<li class="blockList"><a name="fields.inherited.from.class.de.dhbwstuttgart.syntaxtree.type.GenericRefType">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.type.<a href="../../../../de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.html" title="class in de.dhbwstuttgart.syntaxtree.type">GenericTypeVar</a></h3>
@@ -265,7 +265,7 @@ extends <a href="../../../../de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.htm
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.type.GenericTypeVar">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.type.GenericRefType">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.type.<a href="../../../../de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.html" title="class in de.dhbwstuttgart.syntaxtree.type">GenericTypeVar</a></h3>
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/type/ObjectType.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.ObjectType</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.type.GenericTypeVar</li>
<li>de.dhbwstuttgart.syntaxtree.type.GenericRefType</li>
</ul>
</li>
</ul>
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/type/ObjectType.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.ObjectType</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.type.RefType</li>
<li>de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPH</li>
</ul>
</li>
</ul>
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/type/ObjectType.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.ObjectType</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/type/RefType.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.RefType</a></li>
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/type/RefType.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.syntaxtree.type.Void</li>
@@ -219,7 +219,7 @@ extends <a href="../../../../de/dhbwstuttgart/syntaxtree/type/RefType.html" titl
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.type.RefType">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.type.<a href="../../../../de/dhbwstuttgart/syntaxtree/type/RefType.html" title="class in de.dhbwstuttgart.syntaxtree.type">RefType</a></h3>
@@ -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.type.BoundedGenericTypeVar</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.GenericTypeVar</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.type.BoundedGenericTypeVar" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.type.BoundedGenericTypeVar</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.GenericTypeVar" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.BoundedGenericTypeVar</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
@@ -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.type.GenericTypeVar</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.type.GenericRefType</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.type.GenericTypeVar" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.type.GenericTypeVar</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.type.GenericRefType" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.type.GenericTypeVar</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
@@ -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.type.RefType</title>
<title>Uses of Class de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric</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.type.RefType" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.type.RefType</h2>
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.type.RefType</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
@@ -100,7 +100,7 @@ var activeTableTab = "activeTableTab";
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../de/dhbwstuttgart/typeinference/UndMenge.html" title="class in de.dhbwstuttgart.typeinference">de.dhbwstuttgart.typeinference.UndMenge</a>&lt;<a href="../../../de/dhbwstuttgart/typeinference/Pair.html" title="class in de.dhbwstuttgart.typeinference">Pair</a>&gt;</li>
<li><a href="../../../de/dhbwstuttgart/typeinference/UndMenge.html" title="class in de.dhbwstuttgart.typeinference">de.dhbwstuttgart.typeinference.constraints.UndMenge</a>&lt;<a href="../../../de/dhbwstuttgart/typeinference/Pair.html" title="class in de.dhbwstuttgart.typeinference">Pair</a>&gt;</li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.typeinference.ConstraintsSet</li>
@@ -148,7 +148,7 @@ extends <a href="../../../de/dhbwstuttgart/typeinference/UndMenge.html" title="c
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.de.dhbwstuttgart.typeinference.UndMenge">
<li class="blockList"><a name="fields.inherited.from.class.de.dhbwstuttgart.typeinference.constraints.UndMenge">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;de.dhbwstuttgart.typeinference.<a href="../../../de/dhbwstuttgart/typeinference/UndMenge.html" title="class in de.dhbwstuttgart.typeinference">UndMenge</a></h3>
@@ -213,7 +213,7 @@ extends <a href="../../../de/dhbwstuttgart/typeinference/UndMenge.html" title="c
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.typeinference.UndMenge">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.typeinference.constraints.UndMenge">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.typeinference.<a href="../../../de/dhbwstuttgart/typeinference/UndMenge.html" title="class in de.dhbwstuttgart.typeinference">UndMenge</a></h3>
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
<li><a href="../../../de/dhbwstuttgart/syntaxtree/type/ObjectType.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.ObjectType</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../de/dhbwstuttgart/syntaxtree/type/RefType.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.RefType</a></li>
<li><a href="../../../de/dhbwstuttgart/syntaxtree/type/RefType.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric</a></li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.typeinference.FunN</li>
@@ -245,7 +245,7 @@ extends <a href="../../../de/dhbwstuttgart/syntaxtree/type/RefType.html" title="
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.type.RefType">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.syntaxtree.type.<a href="../../../de/dhbwstuttgart/syntaxtree/type/RefType.html" title="class in de.dhbwstuttgart.syntaxtree.type">RefType</a></h3>
@@ -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.typeinference.FunNInterface</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>
@@ -362,7 +362,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>
@@ -100,10 +100,10 @@ var activeTableTab = "activeTableTab";
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../de/dhbwstuttgart/typeinference/OderMenge.html" title="class in de.dhbwstuttgart.typeinference">de.dhbwstuttgart.typeinference.OderMenge</a>&lt;<a href="../../../de/dhbwstuttgart/typeinference/Pair.html" title="class in de.dhbwstuttgart.typeinference">Pair</a>&gt;</li>
<li><a href="../../../de/dhbwstuttgart/typeinference/OderMenge.html" title="class in de.dhbwstuttgart.typeinference">de.dhbwstuttgart.typeinference.constraints.OderMenge</a>&lt;<a href="../../../de/dhbwstuttgart/typeinference/Pair.html" title="class in de.dhbwstuttgart.typeinference">Pair</a>&gt;</li>
<li>
<ul class="inheritance">
<li>de.dhbwstuttgart.typeinference.OderConstraint</li>
<li>de.dhbwstuttgart.typeinference.constraints.OderConstraint</li>
</ul>
</li>
</ul>
@@ -144,7 +144,7 @@ extends <a href="../../../de/dhbwstuttgart/typeinference/OderMenge.html" title="
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.de.dhbwstuttgart.typeinference.OderMenge">
<li class="blockList"><a name="fields.inherited.from.class.de.dhbwstuttgart.typeinference.constraints.OderMenge">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;de.dhbwstuttgart.typeinference.<a href="../../../de/dhbwstuttgart/typeinference/OderMenge.html" title="class in de.dhbwstuttgart.typeinference">OderMenge</a></h3>
@@ -214,7 +214,7 @@ extends <a href="../../../de/dhbwstuttgart/typeinference/OderMenge.html" title="
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.typeinference.OderMenge">
<li class="blockList"><a name="methods.inherited.from.class.de.dhbwstuttgart.typeinference.constraints.OderMenge">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;de.dhbwstuttgart.typeinference.<a href="../../../de/dhbwstuttgart/typeinference/OderMenge.html" title="class in de.dhbwstuttgart.typeinference">OderMenge</a></h3>

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