Commit Graph

549 Commits

Author SHA1 Message Date
pl@gohorb.ba-horb.de
3b77a1271b modified: src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java 2023-01-24 11:31:55 +01:00
luca9913
4f4ca50c75 Implementierung ConvertClass-Methode in ASTGen fortgesetzt 2023-01-24 08:14:14 +01:00
Victorious3
9d20c0564c Get rid of inner type variables for methods 2023-01-23 16:04:19 +01:00
pl@gohorb.ba-horb.de
8be7f3d790 modified: ../../../src/main/java/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java 2023-01-23 15:14:39 +01:00
pl@gohorb.ba-horb.de
9e6b2e9ced modified: ../../../src/main/java/de/dhbwstuttgart/typeinference/assumptions/MethodAssumption.java
modified:   ../../../src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
2023-01-23 15:13:51 +01:00
Victorious3
69bdb4aa5b Consider environment of type variables in method call 2023-01-23 13:56:21 +01:00
pl@gohorb.ba-horb.de
8aa67594d9 modified: ../../../src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
argTypes in MethodCall werden gesetzt
2023-01-23 13:49:11 +01:00
luca9913
1cf23bec90 Implementierung neuer ASTGen fortgesetzt 2023-01-21 05:35:15 +01:00
luca9913
3bdc3b764d Merge remote-tracking branch 'origin/bigRefactoring' into patternMatching 2023-01-20 06:16:25 +01:00
luca9913
a13294edf4 Visitor Ansatz verworfen, STG in ASTGen neu aufsetzen 2023-01-20 06:13:38 +01:00
luca9913
a85b60b95f ASTGen auf basis von antlr visitor 2023-01-20 02:54:59 +01:00
pl@gohorb.ba-horb.de
d1fd65fad7 modified: src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
Loeschungen angezeigt

	modified:   src/main/java/de/dhbwstuttgart/target/generate/ASTToTargetAST.java
Ansatz fuer Veraenderung des Algorithmus bei Generated Generics eingefuegt.

	modified:   src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPE.java
Loeschungen angezeigt

	modified:   src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
Loeschungen angezeigt

	modified:   src/test/java/targetast/TestComplete.java
tphTest eingfuegt
2023-01-18 18:11:45 +01:00
JanUlrich
752faaca86 Add jar-building to pom-file. Fix ConsoleInterface 2023-01-17 19:31:15 +01:00
JanUlrich
d6b25bc76e Add jar-building to pom-file. Fix ConsoleInterface 2023-01-17 17:42:32 +01:00
pl@gohorb.ba-horb.de
a2d8ab35ae Merge branch 'targetBytecode' of gohorb.ba-horb.de:/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-01-17 17:22:46 +01:00
pl@gohorb.ba-horb.de
0944cf59fb modified: src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
modified:   src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPE.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/model/OrderingUnifyPair.java
	new file:   src/main/java/de/dhbwstuttgart/util/BiRelation.java
	renamed:    src/main/java/de/dhbwstuttgart/typeinference/unify/model/Pair.java -> src/main/java/de/dhbwstuttgart/util/Pair.java
2023-01-17 17:22:22 +01:00
Victorious3
abe7553c37 Add missing object bounds 2023-01-17 15:57:41 +01:00
Victorious3
43e8837308 Simplify tests by adding BoundsChain 2023-01-17 12:42:20 +01:00
luca9913
c78a148766 Alternativ-labels in grammatik & neuen ast-generator auf basis von antlr visitor 2023-01-17 06:38:00 +01:00
luca9913
cb564dc436 Beginn anpassung SyntaxTreeGenerator an neue Grammatik 2023-01-17 06:37:07 +01:00
luca9913
6d52949215 Anpassungen der Grammatikregeln übernommen 2023-01-17 06:34:39 +01:00
pl@gohorb.ba-horb.de
f0f3a91e27 Constraints fuer Generated Generics erzeugt und schreibt diese als Attribute methCallargTypesRetType in den Klassen TYPE, TypeStmt und JavaTXCompiler
modified:   src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/constraints/Constraint.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPE.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
2023-01-11 18:51:55 +01:00
Victorious3
7aa7f94110 Add user defined generics to methods 2023-01-10 16:06:57 +01:00
Vic Nightfall
96ffc12ebc Merge with bigRefactoring 2023-01-04 16:07:48 +01:00
Vic Nightfall
f3e7fc0dc3 Test generics 2023-01-04 15:46:25 +01:00
Vic Nightfall
9f27d0d0fa Work on the generics tests 2022-12-06 17:44:39 +01:00
luca9913
a7dc943692 Merge remote-tracking branch 'origin/bigRefactoring' into patternMatching 2022-12-04 21:20:09 +01:00
luca9913
4b6d69d748 Antlr-Grammatik angepasst, um syntaxtree-Klassen zu matchen 2022-12-04 21:17:39 +01:00
luca9913
1145f010c6 Referenzen auf Parser-Klassen von Java8 zu Java17 umbenannt 2022-12-04 21:15:36 +01:00
luca9913
d89e414ca7 Alte Java8- durch neue Java17-Grammatik ersetzt 2022-12-03 22:54:22 +01:00
luca9913
58cd490639 rootDirectory GeneralParserTest, dep. Klasse JavaTXParser 2022-12-01 22:20:39 +01:00
Andreas Stadelmeier
b41680dc84 Merge with targetBytecode, Set language level to Java 19 + preview-features 2022-11-28 13:38:31 +01:00
Vic Nightfall
b63d1bcf73 Fix FunNGenerator 2022-11-27 13:22:47 +01:00
Vic Nightfall
8806d1462c Fix FunNGenerator using the wrong string 2022-11-27 12:57:47 +01:00
luca9913
df3e2b55f9 Grammatik-Regeln für "instanceof-PatternMatching" eingefügt 2022-11-24 22:33:23 +01:00
Vic Nightfall
dbd5311d93 Fix the build by reinstating old classes 2022-11-23 21:35:33 +01:00
luca9913
09ac2fc5cf Neue Grammatik-Regeln und daraus resultierende bugfixes 2022-11-22 21:44:13 +01:00
Andreas Stadelmeier
00c8f41671 Change pom.xml: Clean up, Set java version to 17, Antlr4 plugin uses standard source directory. Project changes: move /test/resources to /resources 2022-11-15 16:21:09 +01:00
Vic Nightfall
84cb7d871b Move package 2022-11-14 15:55:40 +01:00
Vic Nightfall
83b735716f Convert FunNGenerator to class with static methods instead of using a singleton 2022-11-14 15:44:31 +01:00
Vic Nightfall
15e94111d4 Rework FunNGenerator to use target types 2022-11-14 15:28:00 +01:00
Vic Nightfall
9d942a7014 Start replacing the code generator 2022-11-13 19:03:54 +01:00
Vic Nightfall
aa156b793f Generate proper FunN types 2022-11-13 17:05:14 +01:00
Vic Nightfall
be1c356a9f Don't drop wildcards 2022-11-13 14:38:21 +01:00
Victorious3
4307371dee Box test 2022-11-13 13:47:24 +01:00
Andreas Stadelmeier
8f7becd62d Fix for Bug 230 2022-10-03 10:08:50 +02:00
Victorious3
b4e1be0fb7 Fix some type conversions 2022-10-02 18:27:41 +02:00
Victorious3
a660d7a295 Remove bounds with Object when more concrete bounds are added 2022-09-22 22:01:28 +02:00
pl@gohorb.ba-horb.de
33e9b87562 Der Returntyp des Konstruktors wurde mit TypePlaceholders als Parameter bestimmt.
Korrigiert: TypePlaceholders durch GenericRefType ersetzt

	modified:   ../../../../main/java/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java
Methode generateTypeOfThisClass eingefuegt. Macht aus der atuellen Klasse den zugehoerigen RefType

In getConstructors in new MethodAssumption den ofType-Parameter (Typeplaceholders) durch cl.generateTypeOfThisClass()
ersetzt. Dadurch werden GenericRefType in den Typ eingefuegt.
2022-09-18 00:19:20 +02:00
Victorious3
5503f3723c Fix Tph2 2022-08-26 17:21:23 +02:00
Victorious3
b0c1d5d96d Remove duplicate type variables 2022-08-26 16:05:59 +02:00
Victorious3
6fb329ae1a Initialize local variables to null 2022-08-26 15:13:48 +02:00
Victorious3
45b80bb6c5 Don't change the constraints anymore 2022-08-26 14:55:03 +02:00
Victorious3
edf85dca7f Fix Tph4-6 2022-08-09 12:59:23 +02:00
Victorious3
f36f981ca8 Lambda captures 2022-08-08 14:50:43 +02:00
Victorious3
bca02137a6 Fix method calls in matrixOp 2022-08-07 20:09:57 +02:00
Victorious3
4e6e8c5cc7 Add Tph7 test. 2022-08-05 16:20:30 +02:00
Victorious3
c21104f646 Find functions in class files and primitive types 2022-08-02 18:10:52 +02:00
Victorious3
6e1786ec7c Test cases and some fixes 2022-07-13 14:38:17 +02:00
Victorious3
699155e21a Equalize type variables in covariant and contravariant position 2022-07-03 19:24:54 +02:00
Victorious3
de417d3ee6 Remove inner type variables 2022-07-03 18:10:40 +02:00
Victorious3
ef06a8de38 Actually replace instead of removing pairs 2022-07-03 15:25:35 +02:00
Victorious3
560f0c5a6f Filter out cycles and infima 2022-07-03 15:17:12 +02:00
Victorious3
b43afd40ee Decouple Sigma from Target 2022-07-02 15:57:33 +02:00
Victorious3
a8be387dd9 Add generics to the generated class file 2022-06-23 20:39:34 +02:00
Victorious3
7e259e2597 Mostly finish up populating generics 2022-06-23 18:52:30 +02:00
Victorious3
f00ee2598f Start implementing family of generics 2022-06-22 17:06:49 +02:00
Victorious3
3b439a49cd IDEA wants it that way 2022-06-17 15:16:56 +02:00
Victorious3
29112e7bd7 First implementation for overloaded functions and test case 2022-06-17 15:15:08 +02:00
Victorious3
0a1a596bb9 Add Field transform 2022-05-31 14:02:39 +02:00
Victorious3
372182aa8b Convert the AST 2022-05-29 20:06:08 +02:00
JanUlrich
1ef3f22c18 Add AST To Target AST emptyClass testcase 2022-05-24 15:42:41 +02:00
Victorious3
20f11a5bef Changes 2022-05-24 14:35:30 +02:00
Victorious3
6c584f92e9 More tests 2022-05-16 14:18:58 +02:00
Victorious3
8666bfdf17 Start testing 2022-05-15 18:45:49 +02:00
Victorious3
590a4f04ae Implement target t AST 2022-05-03 21:37:14 +02:00
Victorious3
e8cc6ade11 Start working on the code generator 2022-04-27 13:05:01 +02:00
Andreas Stadelmeier
8e80cc2985 Add TargetExpression 2022-03-30 03:17:55 +02:00
Andreas Stadelmeier
f03d3f5e64 Merge branch 'refactorToAPIs' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into refactorToAPIs 2022-03-29 19:25:13 +02:00
Andreas Stadelmeier
dfd12422a6 Set language level to Java 17. Add target AST as records 2022-03-29 19:25:01 +02:00
Etienne Zink
eebb07ec8b Verbesserung FunNGenerator:
Generics werden nicht mehr mehrfach hinzugefügt.
TPHS werden im Klassenname als LTPH angegeben, so entsteht keine Uneindeutigkeit zu Klassen mit Object (ohne TPH) im Klassenname.
2022-03-29 19:19:31 +02:00
Etienne Zink
c65102d89a Hinzufügen von OLFun2 und Änderung der Spezialisierungen von FunN, dass diese statt des TPH im Namen Object haben.
Ansonsten werden diese nicht wieder gefunden.
2022-03-29 17:00:06 +02:00
Etienne Zink
ed00aeb056 Fixed bug mit der korrekten Signatur im Bytecode der FunN Typen.
Verbesserung der BytecodeGenMethod -> Nun werden die korrekt resolveten Typen verwendet.
2022-03-29 16:20:14 +02:00
Etienne Zink
7012010462 Korrektur in TypeToDescriptor und TypeToSignature -> Ohne Angabe im Deskriptor wird automatisch angenommen es soll eine spezialisierte Signatur erstellt werden. 2022-03-29 15:58:10 +02:00
Etienne Zink
9444ee38d6 Änderung generateSuperBytecode() sodass dies nun korrekten Bytecode generiert. 2022-03-29 15:43:43 +02:00
Etienne Zink
4ed30f11f7 Änderung: Spezialisierte FunN beinhaltet TPH im Namen und dieser wird FunN als Generic hinzugefügt. 2022-03-29 15:00:52 +02:00
Etienne Zink
d8bdcf854c Refactoring der Bytecodegenerierung und Anpassung von Kommentaren. 2022-03-29 08:56:38 +02:00
Etienne Zink
0e363cfae3 Löchen des Intermediate-Packages und Erstellung einer Utility-Klasse zur FunN Bytecodegenerierung.
Übertragung der Funktionalität zur Generierung von FunN auf FunNGenerator.
2022-03-28 22:34:07 +02:00
Etienne Zink
fedf33a006 Alle Tests der Bytecode-Generierung sind nun auf grün mit den Spezialisierungen der FunN Typen.
Bytecode muss noch manuell überprüft werden, ob überall korrekt!
2022-03-28 11:56:14 +02:00
Etienne Zink
4522aeff36 Verbesserung der Bytecodegenerierung für FunN Typen.
Immernoch in drei Tests fehlerhaft.
2022-03-28 10:47:49 +02:00
Etienne Zink
bcf56e6bdd Verbesserung der Generierung von FunN-Typen.
Lambda Expressions noch fehlerhaft.
2022-03-24 10:38:12 +01:00
Etienne Zink
15c05e5cba Verbesserung der Konvertierung und der Bytecodegenerierung für FunN Typen.
Beinhaltet noch Fehler!
2022-03-23 16:12:25 +01:00
Etienne Zink
dc9a54be3b Hinzufügen der ersten Einbeziehung der API zur Generierung der spezialisierten FunN Typen, ohne Tests. 2022-03-22 20:42:16 +01:00
Etienne Zink
21adeb7f26 Implementierung der von convert(..) in ASTToIntermediate. 2022-03-21 17:15:03 +01:00
Etienne Zink
6381d09174 Implementierung von getBytecode() in FunN und Hinzufügen entsprechender Tests. 2022-03-21 11:29:37 +01:00
Etienne Zink
918a2cc04d Implementierung in FunN von getSuperBytecode() und Hinzufügen entsprechender Test.
Umbenennung in IntermediateRefType: getTypParameter() -> getTypArgument() und getTypParameterSize() -> getTypArgumentSize().
2022-03-21 08:42:50 +01:00
Etienne Zink
ac1e0340c3 Hinzufügen von FunN zur Generierung von echten Funktionstypen.
FunN ist Subtyp von IntermediateRefType.
Hinzufügen erster FunNTests.
2022-03-20 22:25:55 +01:00
Etienne Zink
0d84e8361f Hinzufügen von IntermediateWildcard und dessen Tests.
Hinzufügen der Tests für IntermediateSuperWildcard und IntermediateExtendsWildcard.
Verbesserung von IntermediateRefType: typParameter können IntermediateType sein und nicht nur IntermediateInnerType.
2022-03-20 20:38:54 +01:00
Etienne Zink
0207c7d1b0 Verbesserung typParameter von IntermediateRefType: Können IntermediateInnerType sein! Nicht nur IntermediateRefType wie zuvor.
Hizufügen entsprechender Tests.
2022-03-20 16:59:24 +01:00
Etienne Zink
f1f028f0b9 Hinzufügen von equals() und hashCode() Tests zu IntermediateRefTypeTest und IntermediateGenericTypeTest. 2022-03-20 16:42:12 +01:00