forked from JavaTX/JavaCompilerCore
Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into targetBytecode
This commit is contained in:
commit
5623fdc020
1
.gitignore
vendored
1
.gitignore
vendored
@ -19,6 +19,7 @@ bin
|
||||
.DS_Store
|
||||
.project
|
||||
.settings/
|
||||
.vscode/
|
||||
/target/
|
||||
settings.json
|
||||
|
||||
|
18
pom.xml
18
pom.xml
@ -51,13 +51,24 @@ http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
<version>3.11.0</version>
|
||||
<configuration>
|
||||
<compilerArgs>--enable-preview</compilerArgs>
|
||||
<source>20</source>
|
||||
<target>20</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<configuration>
|
||||
<argLine>--enable-preview</argLine>
|
||||
<excludes>
|
||||
<exclude>**/JavaTXCompilerTest.java</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.antlr</groupId>
|
||||
<artifactId>antlr4-maven-plugin</artifactId>
|
||||
@ -74,6 +85,7 @@ http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.3.0</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifest>
|
||||
@ -112,8 +124,6 @@ http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
</repository>
|
||||
</repositories>
|
||||
<properties>
|
||||
<maven.compiler.source>20</maven.compiler.source>
|
||||
<maven.compiler.target>20</maven.compiler.target>
|
||||
<mainClass>de.dhbwstuttgart.core.ConsoleInterface</mainClass>
|
||||
</properties>
|
||||
<distributionManagement>
|
||||
@ -123,4 +133,4 @@ http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<url>file:///${project.basedir}/maven-repository/</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
</project>
|
||||
</project>
|
@ -1,13 +0,0 @@
|
||||
class Box<A>{
|
||||
void m(A a){}
|
||||
}
|
||||
|
||||
class B { }
|
||||
|
||||
class Box_Main extends B {
|
||||
|
||||
m(b) {
|
||||
b.m(new Box_Main());
|
||||
b.m(new B());
|
||||
}
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
class Box<A>{
|
||||
A f;
|
||||
}
|
||||
|
||||
class B { }
|
||||
|
||||
class Box_Main extends B {//Fehler Bugzilla Bug 230
|
||||
|
||||
m(b) {
|
||||
b.f = new Box_Main();
|
||||
b.f = new B();
|
||||
}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
import java.util.Vector;
|
||||
import java.util.List;
|
||||
import java.lang.Integer;
|
||||
|
||||
class FCTest1 extends Vector<Vector<Integer>> {
|
||||
fc1() {
|
||||
var y;
|
||||
var z;
|
||||
y.add(z);
|
||||
return y;
|
||||
}
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
import java.util.Vector;
|
||||
import java.util.List;
|
||||
import java.lang.Integer;
|
||||
|
||||
class FCTest2 extends Vector<Vector<Integer>> {
|
||||
fc2(y) {
|
||||
var z;
|
||||
y.add(z);
|
||||
return y;
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
import java.util.Vector;
|
||||
import java.lang.Integer;
|
||||
|
||||
class FCTest3 extends Pair<Vector<Integer>, Vector<Integer>> {
|
||||
|
||||
|
||||
fc2(x) {
|
||||
x.snd().addElement(2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
fc2a() {
|
||||
var y;
|
||||
y.snd().addElement(2);
|
||||
return y;
|
||||
}
|
||||
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
import java.lang.Integer;
|
||||
import java.util.Vector;
|
||||
|
||||
public class GenTest {
|
||||
|
||||
main(x) {
|
||||
var v = new Vector();
|
||||
return 1 + v.elementAt(0);
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Generics {
|
||||
a;
|
||||
id(b) { return b; }
|
||||
setA(x) {
|
||||
a = x;
|
||||
return a;
|
||||
}
|
||||
m(x,y) { x = id(y); }
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
|
||||
/*
|
||||
class Pair<T, U> {
|
||||
T x;
|
||||
U y;
|
||||
@ -17,7 +17,7 @@ class Pair<T, U> {
|
||||
return y;
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
public class Iteration {
|
||||
id(x) {
|
||||
|
@ -1,7 +0,0 @@
|
||||
import java.util.List;
|
||||
class M {
|
||||
void m(p, p2){
|
||||
|
||||
new addList().addLists(p, p2);
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
import java.util.Stack;
|
||||
import java.util.Vector;
|
||||
|
||||
class OverloadingMain {
|
||||
|
||||
mmMain(x) { var y; return new O1().mm(y); }
|
||||
|
||||
}
|
||||
|
@ -1,20 +0,0 @@
|
||||
import java.lang.Integer;
|
||||
|
||||
|
||||
public class Overloading_Generics {
|
||||
|
||||
id1 (x) { return x; }
|
||||
|
||||
//Integer id (Integer x) { return x; }
|
||||
}
|
||||
|
||||
|
||||
class Overloading_Generics1 {
|
||||
main(x) {
|
||||
var olg = new Overloading_Generics();
|
||||
return olg.id1(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,25 +0,0 @@
|
||||
import java.util.Vector;
|
||||
import java.util.Stack;
|
||||
|
||||
class OverrideMain {
|
||||
ovrMain(x) {
|
||||
var overide;
|
||||
overide.ovr(x);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
[
|
||||
[(TPH L = java.util.Stack<TPH FTM>), (TPH N = java.lang.String), (TPH M = ? extends Override2), (TPH FTN, TPH FTM), (TPH K = void)],
|
||||
[(TPH FTO, TPH FTP), (TPH M = ? extends Override2), (TPH N = java.lang.String), (TPH L = java.util.Stack<TPH FTP>), (TPH K = void)],
|
||||
[(TPH M = ? extends Override2), (TPH N = java.lang.String), (TPH K = void), (TPH FTR, TPH FTQ), (TPH L = java.util.Vector<TPH FTQ>)],
|
||||
[(TPH FTT, TPH FTS), (TPH M = ? extends Override2), (TPH L = java.util.Vector<TPH FTS>), (TPH K = void), (TPH N = java.lang.String)],
|
||||
[(TPH L = java.util.Vector<TPH FTV>), (TPH M = ? extends Override2), (TPH N = java.lang.String), (TPH FTU, TPH FTV), (TPH K = void)],
|
||||
[(TPH FTX, TPH FTW), (TPH M = ? extends Override2), (TPH L = java.util.Vector<TPH FTW>), (TPH K = void), (TPH N = java.lang.String)],
|
||||
[(TPH M = ? extends Override2), (TPH L = java.util.Stack<TPH FTZ>), (TPH K = void), (TPH FTY, TPH FTZ), (TPH N = java.lang.String)],
|
||||
[(TPH FUB, TPH FUA), (TPH K = void), (TPH M = ? extends Override2), (TPH N = java.lang.String), (TPH L = java.util.Vector<TPH FUA>)],
|
||||
[(TPH N = java.lang.String), (TPH L = java.util.Vector<TPH FUC>), (TPH FUD, TPH FUC), (TPH M = ? extends Override2), (TPH K = void)],
|
||||
[(TPH N = java.lang.String), (TPH FUF, TPH FUE), (TPH M = ? extends Override2), (TPH K = void), (TPH L = java.util.Vector<TPH FUE>)]]
|
||||
|
||||
[[(TPH M = ? extends Override2), (TPH MNX, TPH MNY), (TPH N = java.lang.String), (TPH K = void), (TPH L = java.util.Stack<TPH MNY>)], [(TPH L = java.util.Stack<TPH MOC>), (TPH N = java.lang.String), (TPH M = ? extends Override2), (TPH K = void), (TPH MOB, TPH MOC)], [(TPH M = ? extends Override2), (TPH N = java.lang.String), (TPH MNZ, TPH MOA), (TPH L = java.util.Vector<TPH MOA>), (TPH K = void)], [(TPH L = java.util.Vector<TPH MOE>), (TPH K = void), (TPH M = ? extends Override2), (TPH MOD, TPH MOE), (TPH N = java.lang.String)], [(TPH M = ? extends Override2), (TPH K = void), (TPH N = java.lang.String), (TPH MOF, TPH MOG), (TPH L = java.util.Stack<TPH MOG>)], [(TPH L = java.util.Vector<TPH MOI>), (TPH K = void), (TPH MOH, TPH MOI), (TPH M = ? extends Override2), (TPH N = java.lang.String)], [(TPH L = java.util.Vector<TPH MOK>), (TPH MOJ, TPH MOK), (TPH K = void), (TPH M = ? extends Override2), (TPH N = java.lang.String)], [(TPH MOL, TPH MOM), (TPH L = java.util.Stack<TPH MOM>), (TPH M = ? extends Override2), (TPH K = void), (TPH N = java.lang.String)], [(TPH L = java.util.Vector<TPH MOO>), (TPH MON, TPH MOO), (TPH N = java.lang.String), (TPH K = void), (TPH M = ? extends Override2)], [(TPH L = java.util.Stack<TPH MOP>), (TPH N = java.lang.String), (TPH M = ? extends Override2), (TPH MOQ, TPH MOP), (TPH K = void)]]
|
||||
*/
|
@ -1,11 +0,0 @@
|
||||
import java.util.Vector;
|
||||
import java.util.Stack;
|
||||
|
||||
class OverrideMainRet {
|
||||
ovrMain() {
|
||||
var overide;
|
||||
var x;
|
||||
overide.ovr(x);
|
||||
return x;
|
||||
}
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
class Pair<T, U> {
|
||||
T x;
|
||||
U y;
|
||||
|
||||
public Pair() { }
|
||||
public Pair(T x, U y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
public T fst () {
|
||||
return x;
|
||||
}
|
||||
|
||||
public U snd () {
|
||||
return y;
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
import java.util.Vector;
|
||||
import java.util.Stack;
|
||||
|
||||
class Put {
|
||||
|
||||
putElement(ele, v) {
|
||||
v.addElement(ele);
|
||||
}
|
||||
|
||||
putElement(ele, s) {
|
||||
s.push(ele);
|
||||
}
|
||||
|
||||
|
||||
main(ele, x) {
|
||||
putElement(ele, x);
|
||||
}
|
||||
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
class Test {
|
||||
a;
|
||||
Test b;
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
import java.util.ArrayList;
|
||||
|
||||
class TestSubTypless {
|
||||
m(a){
|
||||
var l = new ArrayList<>();
|
||||
l.add(a);
|
||||
return m2(l).get(0);
|
||||
}
|
||||
m2(a){
|
||||
return m(a);
|
||||
}
|
||||
}
|
19
resources/AllgemeinTest/TripleTest.jav
Normal file
19
resources/AllgemeinTest/TripleTest.jav
Normal file
@ -0,0 +1,19 @@
|
||||
class Triple<U, T, S> {
|
||||
U a;
|
||||
T b;
|
||||
S c;
|
||||
|
||||
Triple(U x, T y, S z) {
|
||||
a = x; b = y; c = z;
|
||||
}
|
||||
|
||||
U fst() { return a; }
|
||||
T snd() { return b; }
|
||||
S thrd() { return c; }
|
||||
}
|
||||
|
||||
public class TripleTest {
|
||||
m() {
|
||||
return new Triple<>(m().thrd(), m().thrd(), m().thrd());
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
class Twice {
|
||||
twice = f -> x -> f.apply(f.apply(x));
|
||||
}
|
12
resources/AllgemeinTest/Twice2.jav
Normal file
12
resources/AllgemeinTest/Twice2.jav
Normal file
@ -0,0 +1,12 @@
|
||||
class Twice2 {
|
||||
id1inst = new Id<>();
|
||||
id1 = id1inst.id;
|
||||
id2inst = new Id<>();
|
||||
id2 = id2inst.id;
|
||||
twice = id1.apply(id2);
|
||||
|
||||
}
|
||||
|
||||
class Id<T> {
|
||||
id = (T x) -> x;
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
class Var {
|
||||
|
||||
var(x) { var y; }
|
||||
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
import java.util.Vector;
|
||||
import java.lang.Integer;
|
||||
|
||||
|
||||
public class VectorConstAdd {
|
||||
vectorAdd(v1) {
|
||||
var i = 0;
|
||||
var erg = new Vector<>();
|
||||
while (i < v1.size()) {
|
||||
erg.addElement(v1.elementAt(i) + 1);
|
||||
i++;
|
||||
}
|
||||
return erg;
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
import java.util.Vector;
|
||||
|
||||
class VectorNotObject {
|
||||
|
||||
vectorAddAll(v1, v2) {
|
||||
v1.addAll(v2);
|
||||
return v1;
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
import java.util.Vector;
|
||||
import java.lang.Integer;
|
||||
import java.lang.String;
|
||||
|
||||
class WildcardCaptureConversionTest {
|
||||
|
||||
m(x, y ,z) {
|
||||
x = new Vector<Integer>();
|
||||
y = new Vector<String>();
|
||||
x.add(1);
|
||||
y.add("2");
|
||||
//Integer i = x.elementAt(0);
|
||||
//String s = y.elementAt(0);
|
||||
return z.vectorAddAll(x, y);
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
class Wildcard_Andi {
|
||||
|
||||
Test<? extends A> ex = new Test<>();
|
||||
|
||||
Test<? super A> sup = new Test<>();
|
||||
}
|
||||
|
||||
|
@ -1,8 +0,0 @@
|
||||
import java.util.List;
|
||||
|
||||
class addList {
|
||||
addLists(a, b){
|
||||
a.add(b.get(0));
|
||||
b.add(a.get(0));
|
||||
}
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
import java.util.List;
|
||||
import java.lang.Integer;
|
||||
import java.lang.Object;
|
||||
import java.lang.Boolean;
|
||||
|
||||
class wildcardPair {
|
||||
|
||||
make(l) {
|
||||
var p = new Pair(l.get(0), l.get(1));
|
||||
return p;
|
||||
}
|
||||
//<X>Boolean compare(Pair<X, X> x) { return true; }
|
||||
void m(l) {
|
||||
Object o = l.get(0);
|
||||
|
||||
//Pair<? extends Object, ? extends Object> p;
|
||||
//List<?> b;
|
||||
//this.compare(p); //1, type incorrect
|
||||
make(l);
|
||||
//this.compare(this.make(b)); //2, OK
|
||||
}
|
||||
}
|
@ -1,3 +1,5 @@
|
||||
import java.lang.String;
|
||||
|
||||
public class FieldTph2 {
|
||||
a;
|
||||
|
||||
|
18
resources/bytecode/javFiles/InstanceOf.jav
Normal file
18
resources/bytecode/javFiles/InstanceOf.jav
Normal file
@ -0,0 +1,18 @@
|
||||
import java.lang.Number;
|
||||
import java.lang.Integer;
|
||||
import java.lang.Double;
|
||||
import java.lang.String;
|
||||
|
||||
public class InstanceOf {
|
||||
main(n) {
|
||||
if (n instanceof Integer i) {
|
||||
takes(i);
|
||||
return "Integer";
|
||||
} else if (n instanceof Double d) {
|
||||
takes(d);
|
||||
return "Double";
|
||||
}
|
||||
}
|
||||
|
||||
takes(i) {} // Should be overloaded
|
||||
}
|
@ -1,32 +1,15 @@
|
||||
import java.lang.Double;
|
||||
import java.lang.String;
|
||||
import java.lang.Integer;
|
||||
import java.lang.Double;
|
||||
import java.lang.Boolean;
|
||||
//import java.util.Vector;
|
||||
import java.lang.Long;
|
||||
|
||||
|
||||
public class OL {
|
||||
|
||||
java.lang.Double m(java.lang.Double x) { return x + x; }
|
||||
java.lang.Integer m(java.lang.Integer x) { return x + x; }
|
||||
java.lang.String m(java.lang.String x) { return x + x; }
|
||||
java.lang.Boolean m(Boolean x) { return x; }
|
||||
|
||||
// if the class contains just this method, then correct BC will be generated.
|
||||
// But if another methods are contained then the generated BC is not correct
|
||||
// m(x) {
|
||||
// //x.add(1);
|
||||
// x.addAll(x);
|
||||
// return x;
|
||||
// }
|
||||
|
||||
class OL {
|
||||
m (x) { return x + x; }
|
||||
}
|
||||
|
||||
public class OLMain {
|
||||
|
||||
main(x) {
|
||||
class OLMain {
|
||||
main(x) {
|
||||
var ol;
|
||||
ol = new OL();
|
||||
return ol.m(x);
|
||||
}
|
||||
ol = new OL();
|
||||
return ol.m(x);
|
||||
}
|
||||
}
|
||||
|
50
resources/bytecode/javFiles/OverloadPattern.jav
Normal file
50
resources/bytecode/javFiles/OverloadPattern.jav
Normal file
@ -0,0 +1,50 @@
|
||||
import java.lang.Integer;
|
||||
import java.lang.Number;
|
||||
import java.lang.Float;
|
||||
|
||||
record Point(Number x, Number y) {}
|
||||
|
||||
public class OverloadPattern {
|
||||
m(Point(Integer x, Integer y)) {
|
||||
return x + y;
|
||||
}
|
||||
|
||||
m(Point(Float x, Float y)) {
|
||||
return x * y;
|
||||
}
|
||||
|
||||
m(Integer x) {
|
||||
return x;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
public class OverloadPattern {
|
||||
Integer m$Point$_$java$lang$Integer$_$java$lang$Integer$_$(Point point) {
|
||||
var x = point.x();
|
||||
var y = point.y();
|
||||
return x + y;
|
||||
}
|
||||
|
||||
Float m$Point$_$java$lang$Float$_$java$lang$Float$_$(Point point) {
|
||||
var x = point.x();
|
||||
var y = point.y();
|
||||
return x * y;
|
||||
}
|
||||
|
||||
Number m(Point point) {
|
||||
switch(point) {
|
||||
case Point(Integer x, Integer y) ->
|
||||
m$Point$_$java$lang$Integer$_$java$lang$Integer$_$(point);
|
||||
case Point(Float x, Float y) ->
|
||||
m$Point$_$java$lang$Float$_$java$lang$Float$_$(point);
|
||||
default -> throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
|
||||
Integer m(Integer x) {
|
||||
return x;
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
0
resources/bytecode/javFiles/PairNoGenerics.jav
Normal file
0
resources/bytecode/javFiles/PairNoGenerics.jav
Normal file
22
resources/bytecode/javFiles/RecordTest.jav
Normal file
22
resources/bytecode/javFiles/RecordTest.jav
Normal file
@ -0,0 +1,22 @@
|
||||
import java.lang.Integer;
|
||||
|
||||
record Rec(Integer a, Integer b) {}
|
||||
|
||||
/*public class Rec {
|
||||
x; y;
|
||||
Rec(Integer a, Integer b) {
|
||||
x = a;
|
||||
y = b;
|
||||
}
|
||||
}*/
|
||||
|
||||
public class RecordTest {
|
||||
a = new Rec(10, 20);
|
||||
b = new Rec(10, 20);
|
||||
c = new Rec(20, 40);
|
||||
|
||||
doesEqual() { return a.equals(b); }
|
||||
doesNotEqual() { return b.equals(c); }
|
||||
hashCode() { return a.hashCode(); }
|
||||
toString() { return a.toString(); }
|
||||
}
|
17
resources/bytecode/javFiles/Switch.jav
Normal file
17
resources/bytecode/javFiles/Switch.jav
Normal file
@ -0,0 +1,17 @@
|
||||
import java.lang.Integer;
|
||||
import java.lang.Object;
|
||||
import java.lang.Float;
|
||||
|
||||
record Rec(Integer a, Object b) {}
|
||||
|
||||
public class Switch {
|
||||
main(o) {
|
||||
return switch (o) {
|
||||
case Rec(Integer a, Integer b) -> a + b;
|
||||
case Rec(Integer a, Float b) -> a + 10;
|
||||
case Rec(Integer a, Rec(Integer b, Integer c)) -> a + b + c;
|
||||
case Integer i -> i;
|
||||
default -> 0;
|
||||
};
|
||||
}
|
||||
}
|
14
resources/bytecode/javFiles/SwitchString.jav
Normal file
14
resources/bytecode/javFiles/SwitchString.jav
Normal file
@ -0,0 +1,14 @@
|
||||
import java.lang.Integer;
|
||||
import java.lang.String;
|
||||
import java.lang.Object;
|
||||
|
||||
public class SwitchString {
|
||||
main(o) {
|
||||
return switch (o) {
|
||||
case "AaAaAa" -> 1; // These two have the same hash code!
|
||||
case "AaAaBB" -> 2;
|
||||
case "test", "TEST" -> 3;
|
||||
default -> 4;
|
||||
};
|
||||
}
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
public class EmptyMethod{
|
||||
static String s1 ="";
|
||||
String s2;
|
||||
public void m1(){
|
||||
//String s = "";
|
||||
System.out.println("test");
|
||||
//Integer ab = Math.abs(1);
|
||||
//Math.abs(1);
|
||||
//String lV = "local";
|
||||
//s1 = "1";
|
||||
//s1.concat("2");
|
||||
s2 = s1;
|
||||
//m2();
|
||||
Clazz i = new Clazz();
|
||||
Integer i = new Integer(1);
|
||||
}
|
||||
|
||||
public void m2(){}
|
||||
}
|
||||
|
||||
class Clazz{}
|
||||
/*
|
||||
public class EmptyMethod2{
|
||||
public static test = "5";
|
||||
public void m1(Integer i, String j, Boolean b){
|
||||
//String s = "";
|
||||
EmptyMethod em = new EmptyMethod();
|
||||
em.m1();
|
||||
em.s1 = "";
|
||||
//Integer ab = Math.abs(1);
|
||||
//Math.abs(1);
|
||||
//String lV = "local";
|
||||
//s1 = "1";
|
||||
//s1.concat("2");
|
||||
//s2 = s1;
|
||||
}
|
||||
}*/
|
@ -1,16 +0,0 @@
|
||||
import java.lang.Integer;
|
||||
|
||||
class Faculty {
|
||||
//fact;
|
||||
|
||||
Integer mul(Integer x, Integer y) {
|
||||
return x;
|
||||
}
|
||||
|
||||
m () {
|
||||
var fact = (Integer x) -> {
|
||||
return mul(x, fact.apply(x));
|
||||
};
|
||||
return fact;
|
||||
}
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
import java.lang.String;
|
||||
|
||||
class Generics<B> {
|
||||
//<A extends B> A mt1(A a, B b){
|
||||
B mt1(B a, B b){
|
||||
return mt1(a, a);
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
methode(String s){
|
||||
return new Generics<String>().mt1(s,s);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Problem:
|
||||
auto test = new List<String>();
|
||||
auto test2 = new List<Integer>();
|
||||
... //code, welcher möglicherweise test und test2 vertauscht
|
||||
test.add("hallo");
|
||||
*/
|
@ -1,14 +0,0 @@
|
||||
import java.lang.Integer;
|
||||
import java.lang.Boolean;
|
||||
import java.lang.Object;
|
||||
|
||||
public class IfTest {
|
||||
Object m1(b) {
|
||||
Integer i;
|
||||
if(b) {
|
||||
return i;
|
||||
}else{
|
||||
return b;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
import java.util.Vector;
|
||||
|
||||
class Import {
|
||||
void methode(){
|
||||
var v;
|
||||
v.add(v);
|
||||
}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
|
||||
class Apply { }
|
||||
|
||||
public class Lambda {
|
||||
|
||||
m () {
|
||||
var lam1 = (x) -> {
|
||||
return x;
|
||||
};
|
||||
return lam1.apply(new Apply());
|
||||
}
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
import java.lang.String;
|
||||
|
||||
public class Lambda2
|
||||
{
|
||||
public static void main(List<String> args){
|
||||
var listOfStrings = new List<String>();
|
||||
var listOfObjects;
|
||||
listOfObjects = map(listOfStrings, (a) -> a);
|
||||
}
|
||||
|
||||
public map(a , b){
|
||||
b.apply(a);
|
||||
return a;
|
||||
}
|
||||
|
||||
/*
|
||||
public static <I,O> List<O> map(List<I> input, Function<I,O> func) {
|
||||
List<O> output;
|
||||
output = new List<O>();
|
||||
output.add(func.apply(input.get()));
|
||||
return output;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
class List<A>{
|
||||
A get();
|
||||
void add(A);
|
||||
}
|
||||
|
||||
class Function<A,B>{
|
||||
B apply(A a);
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
import java.lang.String;
|
||||
|
||||
public class Lambda2
|
||||
{
|
||||
/*
|
||||
public static <A> List<A> map(List<? extends A> input,
|
||||
Function<? super A, ? extends A> func){
|
||||
input.add(func.apply(input.get()));
|
||||
}
|
||||
*/
|
||||
public map(input,func){
|
||||
input.add(func.apply(input.get()));
|
||||
return map(new List<String>(), func);
|
||||
}
|
||||
}
|
||||
|
||||
class List<A>{
|
||||
A get();
|
||||
void add(A);
|
||||
}
|
||||
|
||||
class Function<A,B>{
|
||||
B apply(A a);
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
import java.util.Vector;
|
||||
import java.lang.Integer;
|
||||
|
||||
class Matrix extends Vector<Vector<Integer>> {
|
||||
Integer mul1(Integer x, Integer y) { return x;}
|
||||
Integer add1(Integer x, Integer y) { return x;}
|
||||
mul(m) {
|
||||
var ret = new Matrix();
|
||||
var i = 0;
|
||||
while(i < size()) {
|
||||
var v1 = this.elementAt(i);
|
||||
var v2 = new Vector<Integer>();
|
||||
var j = 0;
|
||||
while(j < v1.size()) {
|
||||
var erg = 0;
|
||||
var k = 0;
|
||||
while(k < v1.size()) {
|
||||
erg = erg + v1.elementAt(k) * m.elementAt(k).elementAt(j);
|
||||
//erg = add1(erg, mul1(v1.elementAt(k),
|
||||
// m.elementAt(k).elementAt(j)));
|
||||
k++; }
|
||||
v2.addElement(new Integer(erg));
|
||||
j++; }
|
||||
ret.addElement(v2);
|
||||
i++; }
|
||||
return ret;
|
||||
}
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
|
||||
class Methods {
|
||||
mt4(a,b,c) { return a.add(b).sub(c) ; }
|
||||
|
||||
mt1(a) {return a;}
|
||||
|
||||
mt2(a) {return a.f; }
|
||||
|
||||
mt3(a) {return a.add(); }
|
||||
}
|
||||
|
||||
class Test {
|
||||
java.lang.Object f;
|
||||
add(){}
|
||||
add(b){return b;}
|
||||
sub(b){}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
import java.lang.Double;
|
||||
import java.lang.String;
|
||||
import java.lang.Long;
|
||||
|
||||
class OL {
|
||||
m (x) { return x + x; }
|
||||
}
|
||||
|
||||
class OLMain {
|
||||
main(x) {
|
||||
var ol;
|
||||
ol = new OL();
|
||||
return ol.m(x);
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
import java.util.List;
|
||||
import java.util.Collection;
|
||||
|
||||
class Sorting{
|
||||
void merge(a, b){
|
||||
a.addAll(b);
|
||||
return a;
|
||||
}
|
||||
|
||||
sort(in){
|
||||
var firstHalf = in;
|
||||
var secondHalf = in;
|
||||
return merge(sort(firstHalf), sort(secondHalf));
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
class MathStruc <A> {
|
||||
|
||||
A model;
|
||||
|
||||
innerOp = o -> ms -> new MathStruc<A>(o.apply(this.model, ms.model));
|
||||
|
||||
MathStruc(A m) { model=m; }
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
import java.lang.Integer;
|
||||
import java.util.Vector;
|
||||
|
||||
public class Gen{
|
||||
Vector<Integer> m(Vector<Integer> v){
|
||||
return v;
|
||||
}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
import java.lang.String;
|
||||
import java.lang.Integer;
|
||||
import java.lang.Double;
|
||||
|
||||
public class OLMain {
|
||||
|
||||
main(x) {
|
||||
var ol;
|
||||
ol = new OLextends();
|
||||
return ol.m(x);
|
||||
}
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
import java.lang.String;
|
||||
import java.lang.Integer;
|
||||
import java.lang.Double;
|
||||
import java.lang.Boolean;
|
||||
|
||||
|
||||
public class OLOneFile {
|
||||
|
||||
m2(x) { return x + x; }
|
||||
|
||||
}
|
||||
|
||||
public class OLextendsOneFile extends OLOneFile { }
|
||||
|
||||
public class OLMainOneFile {
|
||||
|
||||
main(x) {
|
||||
var ol;
|
||||
ol = new OLextendsOneFile();
|
||||
return ol.m2(x);
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
java -jar ~/eclipse-workspace/JavaCompilerCore/target/JavaTXcompiler-0.2-jar-with-dependencies.jar de/test/OL.jav -d de/test/output
|
||||
java -jar ~/eclipse-workspace/JavaCompilerCore/target/JavaTXcompiler-0.2-jar-with-dependencies.jar OLextends.jav -cp de/test/output
|
||||
java -jar ~/eclipse-workspace/JavaCompilerCore/target/JavaTXcompiler-0.2-jar-with-dependencies.jar OLMain.jav -cp .:de/test/output
|
||||
javac UseOLMain.java
|
||||
java -cp .:de/test/output UseOLMain
|
||||
rm -f UseOLMain.class
|
@ -1,7 +0,0 @@
|
||||
import de.test.OL;
|
||||
|
||||
|
||||
public class OLextends extends OL {
|
||||
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import de.test.Pair;
|
||||
|
||||
class Pairs {
|
||||
setfst(fst) {
|
||||
return new Pair<>(snd, fst);
|
||||
}
|
||||
|
||||
swap () {
|
||||
return new Pair<> (snd, fst); }
|
||||
|
||||
polyrec(p) {
|
||||
return polyrec (p.swap());
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
|
||||
public class Test{
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
class UseOLMain {
|
||||
public static void main(String[] arg) {
|
||||
System.out.println(new OLMain().main(1+1));
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
package de.test;
|
||||
|
||||
import de.test.ToImport;
|
||||
|
||||
class ImportTest{
|
||||
void methode(){
|
||||
new ToImport();
|
||||
}
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
package de.test;
|
||||
|
||||
import de.test.subpackage1.ToImport2;
|
||||
import de.test.subpackage2.ToImport3;
|
||||
|
||||
class ImportTest2{
|
||||
void methode(){
|
||||
new ToImport2().m1();
|
||||
new ToImport3().m2();
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
package de.test;
|
||||
|
||||
class ImportTestDefault{
|
||||
void methode(){
|
||||
new ToImport();
|
||||
}
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
package de.test;
|
||||
import java.lang.String;
|
||||
import java.lang.Integer;
|
||||
import java.lang.Double;
|
||||
import java.lang.Boolean;
|
||||
//import java.util.Vector;
|
||||
|
||||
|
||||
public class OL {
|
||||
|
||||
public m(x) { return x + x; }
|
||||
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
package de.test;
|
||||
|
||||
class Pair {
|
||||
fst;
|
||||
snd;
|
||||
|
||||
Pair(fst, snd) {
|
||||
this.fst = fst;
|
||||
this.snd = snd;
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +0,0 @@
|
||||
package de.test;
|
||||
|
||||
public class TestClass{}
|
@ -1,4 +0,0 @@
|
||||
package de.test;
|
||||
|
||||
class ToImport{
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
package de.test;
|
||||
|
||||
|
||||
import java.util.Vector;
|
||||
import java.lang.Integer;
|
||||
|
||||
public class mathStruc {
|
||||
model;
|
||||
|
||||
//Fun1*<Fun2*<A,A,A>, Fun1*<MathStruc <A>,MathStruc <A>>>
|
||||
innerOp = (o) -> (ms) -> new mathStruc<>(o.apply(model,ms.model));
|
||||
|
||||
public mathStruc(m) {
|
||||
model =m;
|
||||
//innerOp = (o) -> (ms) -> new mathStruc<>(o.apply(this.model,ms.model));
|
||||
}
|
||||
}
|
||||
|
@ -1,33 +0,0 @@
|
||||
package de.test;
|
||||
|
||||
import java.util.Vector;
|
||||
import java.lang.Integer;
|
||||
import java.lang.Boolean;
|
||||
|
||||
import de.test.mathStruc;
|
||||
import de.test.vectorAdd;
|
||||
|
||||
|
||||
public class mathStrucVector {
|
||||
|
||||
public main() {
|
||||
Vector<Integer> v1 = new Vector<Integer>();
|
||||
v1.addElement(2);
|
||||
v1.addElement(2);
|
||||
Vector<Integer> v2 = new Vector<Integer>();
|
||||
v2.addElement(3);
|
||||
v2.addElement(3);
|
||||
|
||||
vectorAdd va = new vectorAdd();
|
||||
|
||||
var ms;
|
||||
ms = new mathStruc<>(v1);
|
||||
var ms2;
|
||||
ms2 = new mathStruc<>(v2);
|
||||
var ms3;
|
||||
|
||||
ms3 = ms.innerOp.apply(va.add).apply(ms2);
|
||||
return ms3;
|
||||
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package de.test;
|
||||
import de.test.mathStrucVector;
|
||||
|
||||
|
||||
class mathStrucVectorUse {
|
||||
|
||||
public static void main(String[] args) {
|
||||
new mathStrucVector().main();
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
|
||||
|
||||
class mathStrucVectorUse {
|
||||
|
||||
public static void main(String[] args) {
|
||||
new mathStrucVector().main();
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
package de.tesst;
|
||||
|
||||
class TestClass{}
|
@ -1,4 +0,0 @@
|
||||
package de.test.subpackage1;
|
||||
|
||||
class Test1{
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
package de.test.subpackage1;
|
||||
|
||||
class ToImport2{
|
||||
void m1(){}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
package de.test.subpackage2;
|
||||
|
||||
class Test2{
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
package de.test.subpackage2;
|
||||
|
||||
class ToImport3{
|
||||
void m2(){}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
package de.test;
|
||||
|
||||
import java.util.Vector;
|
||||
import java.lang.Integer;
|
||||
import java.lang.Boolean;
|
||||
|
||||
|
||||
public class vectorAdd {
|
||||
|
||||
public add = (v1, v2) -> {
|
||||
var ret = new Vector<Integer>();
|
||||
var i = 0;
|
||||
while(i < v1.size()) {
|
||||
//if (i < v2.size()) {
|
||||
ret.addElement(v1.elementAt(i) + v2.elementAt(i));
|
||||
//}
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
}
|
0
resources/packageTest/Gen.jav
Normal file
0
resources/packageTest/Gen.jav
Normal file
0
resources/packageTest/OLMain.jav
Normal file
0
resources/packageTest/OLMain.jav
Normal file
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user