forked from JavaTX/JavaCompilerCore
Compare commits
8 Commits
unif23NoOp
...
unifyOptim
Author | SHA1 | Date | |
---|---|---|---|
|
2c9f085cca | ||
|
3e4e66d60d | ||
|
883ab50f94 | ||
|
9d37e8f637 | ||
|
496842a3bf | ||
|
608d73452a | ||
|
421169a72d | ||
|
c43d9ab9f5 |
6
.gitignore
vendored
6
.gitignore
vendored
@@ -23,9 +23,3 @@ bin
|
|||||||
|
|
||||||
#
|
#
|
||||||
manually/
|
manually/
|
||||||
|
|
||||||
logFiles/**
|
|
||||||
!logFiles/.gitkeep
|
|
||||||
|
|
||||||
src/main/java/de/dhbwstuttgart/parser/antlr/
|
|
||||||
src/main/java/de/dhbwstuttgart/sat/asp/parser/antlr/
|
|
||||||
|
3
Makefile
3
Makefile
@@ -1,3 +0,0 @@
|
|||||||
NoOptParallel:
|
|
||||||
mvn -DskipTests package
|
|
||||||
cp target/JavaTXcompiler-0.1-jar-with-dependencies.jar target/JavaTXcompiler-0.1-jar-with-dependencies_NoOptParallel.jar
|
|
19
README.md
Normal file
19
README.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# plugin site erstellen
|
||||||
|
* die JAvaTXCOmpiler DAtei in ein plugin umwandeln und deployen.
|
||||||
|
* siehe: http://www.vogella.com/tutorials/EclipseJarToPlugin/article.html#convert-jar-files-to-osgi-bundles-with-the-p2-maven-plugin
|
||||||
|
* AUsführung:
|
||||||
|
* mvn deploy #erstellt die JAR-Datei und steckt sie in ein lokales Repo (maven-repository)
|
||||||
|
* mvn p2:site
|
||||||
|
* mvn package # hier wird die ZIP-Filf zum Einbinden in Eclipse erstellt
|
||||||
|
|
||||||
|
# Einbinden in Eclipse
|
||||||
|
* In Eclipse kann die Zip-FIle wie ein Plugin installiert werden
|
||||||
|
* Hier tritt FEhler auf. Reflections-Library kann nicht installiert werden. Möglicherweise wird sie auch nicht gebraucht
|
||||||
|
* Nach dem installieren de.dhbwstuttagrt.JavaTXcompiler zu den DEpendencies des plugins hinzufügen
|
||||||
|
* Anschließend unter "Overview" auf "Updata Classpath" klicken
|
||||||
|
|
||||||
|
# Windows
|
||||||
|
* JAVA_HOME setzen:
|
||||||
|
* export JAVA_HOME=/c/Program\ Files/Java/jdk1.8.0_102/
|
@@ -1,11 +0,0 @@
|
|||||||
Stand: 24.5.21
|
|
||||||
bigRefactoring: Master-Brach
|
|
||||||
targetBytecode: Neuer Codegenerator mit generated generics Daniel
|
|
||||||
bigRefactoringUnifyComment: Dokumentation Unify, Martin
|
|
||||||
bytecodeGenericsSecond: Generated Generics, Ali, Martin
|
|
||||||
inferWildcards, Wildcards, Till
|
|
||||||
master, derzeit nicht genutzt
|
|
||||||
plugin, eigemntlicher Branch fuer Plugin-Basis, derzeit nicht aktuelle (aktuelle Version in simplifyRes
|
|
||||||
simplifyRes, Basis fuer Plugin, sollte auf Plugin gemerged werden, noch keine Packages, Michael
|
|
||||||
strucTypesNew, Struturelle Typen, alte Basis, arbeite derzeit niemand
|
|
||||||
|
|
@@ -1,25 +0,0 @@
|
|||||||
\documentclass{article}
|
|
||||||
|
|
||||||
\begin{document}
|
|
||||||
|
|
||||||
\section{Generics sind notwendig}
|
|
||||||
Generics können nicht ignoriert werden.
|
|
||||||
Folgender Fall ist Typisierbar:
|
|
||||||
|
|
||||||
\begin{program}
|
|
||||||
<T> T m1(T x){
|
|
||||||
return m2(x);
|
|
||||||
}
|
|
||||||
|
|
||||||
m2(x){
|
|
||||||
m1(1);
|
|
||||||
m2("Test");
|
|
||||||
return m1(x);
|
|
||||||
}
|
|
||||||
\end{program}
|
|
||||||
|
|
||||||
Beim weglassen des Generics T wäre es aber nicht mehr möglich.
|
|
||||||
Dann erhält jeder Constraint, welcher in Verbindung mit der Methode m1 steht
|
|
||||||
den selben TPH.
|
|
||||||
|
|
||||||
\end{document}
|
|
Binary file not shown.
Binary file not shown.
@@ -1,24 +0,0 @@
|
|||||||
# Dateien
|
|
||||||
* sämtliche Datein im Ordner de.dhbwstuttgart.parser gehören zum Parser
|
|
||||||
* Auch zu beachten: pom.xml
|
|
||||||
* Ein Teil der pom.xml instruiert maven zur Kompilierung der Java8.g4 Datei
|
|
||||||
* VORSICHT! Wird nicht zwangsläufig von der IDE ausgeführt
|
|
||||||
* siehe Kapitel "Grammatik -> Parser"
|
|
||||||
|
|
||||||
|
|
||||||
## Unterordner antlr
|
|
||||||
* Java8.g4
|
|
||||||
* die eigentliche Java Grammatik
|
|
||||||
* hier wurden Anpassungen vorgenommen, damit sie auch typloses Java annimmt
|
|
||||||
* alle anderen Dateien in diesem Ordner sind vom ANTLR-Parsergenerator autogeneriert
|
|
||||||
|
|
||||||
## Unterordner SyntaxTreeGenerator
|
|
||||||
* SyntaxTreeGenerator
|
|
||||||
* TODO
|
|
||||||
|
|
||||||
# Grammatik -> Parser
|
|
||||||
* Die Antlr-Grammatik (Java8.g4) wandelt
|
|
||||||
* Folgende Stellen sind relevant
|
|
||||||
* TODO
|
|
||||||
|
|
||||||
|
|
153
pom.xml
153
pom.xml
@@ -1,7 +1,8 @@
|
|||||||
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
||||||
http://maven.apache.org/maven-v4_0_0.xsd">
|
http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>de.dhbwstuttgart</groupId>
|
<groupId>de.dhbwstuttgart</groupId>
|
||||||
<artifactId>JavaTXcompiler</artifactId>
|
<artifactId>JavaTXcompiler</artifactId>
|
||||||
@@ -14,74 +15,83 @@ http://maven.apache.org/maven-v4_0_0.xsd">
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
<version>4.11</version>
|
<version>4.0</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- https://mvnrepository.com/artifact/org.antlr/antlr4 -->
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.antlr</groupId>
|
<groupId>org.antlr</groupId>
|
||||||
<artifactId>antlr4</artifactId>
|
<artifactId>antlr4</artifactId>
|
||||||
<version>4.11.1</version>
|
<version>4.7</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>commons-io</groupId>
|
<groupId>commons-io</groupId>
|
||||||
<artifactId>commons-io</artifactId>
|
<artifactId>commons-io</artifactId>
|
||||||
<version>2.6</version>
|
<version>2.6</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.google.guava</groupId>
|
<groupId>com.google.guava</groupId>
|
||||||
<artifactId>guava</artifactId>
|
<artifactId>guava</artifactId>
|
||||||
<version>22.0</version>
|
<version>22.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.reflections</groupId>
|
<groupId>org.reflections</groupId>
|
||||||
<artifactId>reflections</artifactId>
|
<artifactId>reflections</artifactId>
|
||||||
<version>0.9.11</version>
|
<version>0.9.11</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- https://mvnrepository.com/artifact/org.ow2.asm/asm -->
|
<dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.ow2.asm</groupId>
|
<groupId>org.ow2.asm</groupId>
|
||||||
<artifactId>asm</artifactId>
|
<artifactId>asm-all</artifactId>
|
||||||
<version>7.0</version>
|
<version>[4.0.0,)</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!--
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bitbucket.mstrobel</groupId>
|
||||||
|
<artifactId>procyon-reflection</artifactId>
|
||||||
|
<version>[0.5.32,)</version>
|
||||||
|
</dependency> -->
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
<directory>target</directory>
|
||||||
|
<outputDirectory>target/classes</outputDirectory>
|
||||||
|
<finalName>${project.artifactId}-${project.version}</finalName>
|
||||||
|
<testOutputDirectory>target/test-classes</testOutputDirectory>
|
||||||
|
<sourceDirectory>src/</sourceDirectory>
|
||||||
|
<testSourceDirectory>test/</testSourceDirectory>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<version>3.8.0</version>
|
|
||||||
<configuration>
|
|
||||||
<compilerArgs>--enable-preview</compilerArgs>
|
|
||||||
<source>19</source>
|
|
||||||
<target>19</target>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.antlr</groupId>
|
<groupId>org.antlr</groupId>
|
||||||
<artifactId>antlr4-maven-plugin</artifactId>
|
<artifactId>antlr4-maven-plugin</artifactId>
|
||||||
<version>4.11.1</version>
|
<version>4.7</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>antlr</id>
|
<id>antlr</id>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>antlr4</goal>
|
<goal>antlr4</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-jar-plugin</artifactId>
|
|
||||||
<configuration>
|
<configuration>
|
||||||
<archive>
|
<sourceDirectory>src/de/dhbwstuttgart/parser/antlr/</sourceDirectory>
|
||||||
<manifest>
|
<outputDirectory>src/de/dhbwstuttgart/parser/antlr/</outputDirectory>
|
||||||
<mainClass>de.dhbwstuttgart.core.ConsoleInterface</mainClass>
|
<arguments> <argument>-package</argument> <argument>de.dhbwstuttgart.parser.antlr</argument> </arguments>
|
||||||
</manifest>
|
|
||||||
</archive>
|
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>aspParser</id>
|
||||||
|
<goals>
|
||||||
|
<goal>antlr4</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<sourceDirectory>src/de/dhbwstuttgart/sat/asp/parser/antlr/</sourceDirectory>
|
||||||
|
<outputDirectory>src/de/dhbwstuttgart/sat/asp/parser/antlr/</outputDirectory>
|
||||||
|
<arguments>
|
||||||
|
<argument>-package</argument>
|
||||||
|
<argument>de.dhbwstuttgart.sat.asp.parser.antlr</argument>
|
||||||
|
</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<artifactId>maven-assembly-plugin</artifactId>
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
<executions>
|
<executions>
|
||||||
@@ -93,28 +103,73 @@ http://maven.apache.org/maven-v4_0_0.xsd">
|
|||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
<configuration>
|
<configuration>
|
||||||
<archive>
|
|
||||||
<manifest>
|
|
||||||
<mainClass>de.dhbwstuttgart.core.ConsoleInterface</mainClass>
|
|
||||||
</manifest>
|
|
||||||
</archive>
|
|
||||||
<descriptorRefs>
|
<descriptorRefs>
|
||||||
<descriptorRef>jar-with-dependencies</descriptorRef>
|
<descriptorRef>jar-with-dependencies</descriptorRef>
|
||||||
</descriptorRefs>
|
</descriptorRefs>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.reficio</groupId>
|
||||||
|
<artifactId>p2-maven-plugin</artifactId>
|
||||||
|
<version>1.1.2-SNAPSHOT</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>default-cli</id>
|
||||||
|
<configuration>
|
||||||
|
<artifacts>
|
||||||
|
<!-- specify your depencies here -->
|
||||||
|
<!-- groupId:artifactId:version -->
|
||||||
|
<artifact>
|
||||||
|
<id>de.dhbwstuttgart:JavaTXcompiler:0.1</id>
|
||||||
|
</artifact>
|
||||||
|
<artifact><id>org.reflections:reflections:0.9.11</id></artifact>
|
||||||
|
<artifact><id>com.google.guava:guava:22.0</id></artifact>
|
||||||
|
<artifact><id>javax.annotation:javax.annotation-api:1.3.1</id></artifact>
|
||||||
|
<artifact><id>org.glassfish:javax.annotation:3.1.1</id></artifact>
|
||||||
|
</artifacts>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.tycho</groupId>
|
||||||
|
<artifactId>tycho-p2-repository-plugin</artifactId>
|
||||||
|
<version>${tycho.version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>archive-repository</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<source>9</source>
|
||||||
|
<target>9</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
<pluginRepositories>
|
||||||
|
<pluginRepository>
|
||||||
|
<id>reficio</id>
|
||||||
|
<url>http://repo.reficio.org/maven/</url>
|
||||||
|
</pluginRepository>
|
||||||
|
</pluginRepositories>
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>maven-repository</id>
|
<id>maven-repository</id>
|
||||||
<url>file:///${project.basedir}/target</url>
|
<url>file:///${project.basedir}/target</url>
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.source>19</maven.compiler.source>
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
<maven.compiler.target>19</maven.compiler.target>
|
<maven.compiler.target>1.8</maven.compiler.target>
|
||||||
<mainClass>de.dhbwstuttgart.core.ConsoleInterface</mainClass>
|
<tycho.version>0.23.0</tycho.version>
|
||||||
</properties>
|
</properties>
|
||||||
<distributionManagement>
|
<distributionManagement>
|
||||||
<repository>
|
<repository>
|
||||||
|
@@ -1,10 +0,0 @@
|
|||||||
class Assign {
|
|
||||||
|
|
||||||
assign(x, y) {
|
|
||||||
x = y;
|
|
||||||
}
|
|
||||||
|
|
||||||
assign2(x, y) {
|
|
||||||
assign(x,y);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -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,18 +0,0 @@
|
|||||||
import java.lang.Object;
|
|
||||||
import java.util.Vector;
|
|
||||||
|
|
||||||
class CaptureConversion {
|
|
||||||
|
|
||||||
<X> void assign(Vector<X> v1, Vector<X> v2) {
|
|
||||||
v1 = v2;
|
|
||||||
}
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
Vector<?> v1;
|
|
||||||
v1 = new Vector<Object>();
|
|
||||||
Vector<? extends Object> v2;
|
|
||||||
v2 = new Vector<Object>();
|
|
||||||
v1 = v2;
|
|
||||||
assign(v1, v2);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -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,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,36 +0,0 @@
|
|||||||
import java.util.Vector;
|
|
||||||
import java.lang.Boolean;
|
|
||||||
import java.lang.Object;
|
|
||||||
|
|
||||||
class Pair<U, T> {
|
|
||||||
U a;
|
|
||||||
T b;
|
|
||||||
|
|
||||||
make(x) {
|
|
||||||
var ret = new Pair<>();
|
|
||||||
ret.a = x.elementAt(0);
|
|
||||||
ret.b = x.elementAt(1);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
eq(a, b) {
|
|
||||||
b = a;
|
|
||||||
return a == b;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
compare( p) {
|
|
||||||
return eq(p.a, p.b);
|
|
||||||
//return p.a == p.b;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
void m(Pair<?, ?> p, Vector<?> b)
|
|
||||||
{
|
|
||||||
//this.compare(p); //1, type incorrect
|
|
||||||
this.compare(this.make(b)); //2, OK
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,3 +0,0 @@
|
|||||||
class Twice {
|
|
||||||
twice = f -> x -> f.apply(f.apply(x));
|
|
||||||
}
|
|
@@ -1,12 +0,0 @@
|
|||||||
import java.util.Vector;
|
|
||||||
import java.lang.Boolean;
|
|
||||||
|
|
||||||
class UseWildcardPair{
|
|
||||||
|
|
||||||
void m(Pair<?, ?> p, Vector<?> b)
|
|
||||||
{
|
|
||||||
p.compare(p); //1, type incorrect
|
|
||||||
p.compare(p.make(b)); //2, OK
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -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,8 +0,0 @@
|
|||||||
import java.lang.Integer;
|
|
||||||
import java.lang.String;
|
|
||||||
|
|
||||||
public class AA {
|
|
||||||
m(Integer i) { return "AA"; }
|
|
||||||
|
|
||||||
m2(AA x) { return "AA"; }
|
|
||||||
}
|
|
@@ -1,3 +0,0 @@
|
|||||||
import java.lang.Integer;
|
|
||||||
|
|
||||||
public class BB extends AA { }
|
|
@@ -1,7 +0,0 @@
|
|||||||
class B { }
|
|
||||||
class Box_Main extends B {
|
|
||||||
m(b) {
|
|
||||||
b.m(new Box_Main());
|
|
||||||
b.m(new B());
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,3 +0,0 @@
|
|||||||
class Box<A> {
|
|
||||||
void m(A a) { }
|
|
||||||
}
|
|
@@ -1,11 +0,0 @@
|
|||||||
import java.lang.Integer;
|
|
||||||
import java.lang.String;
|
|
||||||
|
|
||||||
|
|
||||||
public class CC extends BB {
|
|
||||||
m(Integer i) {
|
|
||||||
return "CC";
|
|
||||||
}
|
|
||||||
|
|
||||||
m2(CC x) { return "CC"; }
|
|
||||||
}
|
|
@@ -1,8 +0,0 @@
|
|||||||
import java.lang.Integer;
|
|
||||||
|
|
||||||
public class ClassGenLam {
|
|
||||||
lam = x-> x;
|
|
||||||
// public ClassGenLam() {
|
|
||||||
// lam = x->x;
|
|
||||||
// }
|
|
||||||
}
|
|
@@ -1,6 +0,0 @@
|
|||||||
class Cycle {
|
|
||||||
m(x, y) {
|
|
||||||
y = x;
|
|
||||||
x = y;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,4 +0,0 @@
|
|||||||
import java.lang.Integer;
|
|
||||||
|
|
||||||
public class DD extends CC { }
|
|
||||||
|
|
@@ -1,52 +0,0 @@
|
|||||||
import java.lang.Integer;
|
|
||||||
//import java.lang.Long;
|
|
||||||
//import java.lang.Short;
|
|
||||||
|
|
||||||
public class Faculty {
|
|
||||||
public fact;
|
|
||||||
Faculty() {
|
|
||||||
fact = (x) -> {
|
|
||||||
if (x == 1) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return x * (fact.apply(x-1));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public getFact(x) {
|
|
||||||
return fact.apply(x);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// m (x) {
|
|
||||||
//
|
|
||||||
//// var fact = (x) -> {
|
|
||||||
//// if (x == 1) {
|
|
||||||
//// return x;
|
|
||||||
//// }
|
|
||||||
//// else {
|
|
||||||
//// return x * (fact.apply(x-1));
|
|
||||||
//// }
|
|
||||||
//// };
|
|
||||||
//// return fact;
|
|
||||||
//// var x = 13;
|
|
||||||
//// if(x>22) {
|
|
||||||
//// return 0;
|
|
||||||
//// }else if(x <1){
|
|
||||||
//// return x;
|
|
||||||
//// }else {
|
|
||||||
//// return 1;
|
|
||||||
//// }
|
|
||||||
//
|
|
||||||
// if (x < 0) {
|
|
||||||
// return 0;
|
|
||||||
// }else if(x<2) {
|
|
||||||
// return x;
|
|
||||||
// } else {
|
|
||||||
// return x * m(x-1);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
@@ -1,9 +0,0 @@
|
|||||||
import java.lang.Integer;
|
|
||||||
|
|
||||||
public class Field {
|
|
||||||
public x = 5;
|
|
||||||
|
|
||||||
m(){
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,4 +0,0 @@
|
|||||||
public class FieldTph {
|
|
||||||
a;
|
|
||||||
|
|
||||||
}
|
|
@@ -1,12 +0,0 @@
|
|||||||
public class FieldTph2 {
|
|
||||||
a;
|
|
||||||
|
|
||||||
m(b){
|
|
||||||
b = a;
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
m2(c){
|
|
||||||
a = c;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,26 +0,0 @@
|
|||||||
public class FieldTphConsMeth {
|
|
||||||
|
|
||||||
a;
|
|
||||||
public FieldTphConsMeth(c) {
|
|
||||||
a = id(c);
|
|
||||||
}
|
|
||||||
|
|
||||||
id(b) {
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
setA(x) {
|
|
||||||
a = x;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
m(x,y) {
|
|
||||||
x = id(y);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*m2(x,y) {
|
|
||||||
x = setA(y);
|
|
||||||
return x;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
}
|
|
@@ -1,27 +0,0 @@
|
|||||||
import java.lang.Boolean;
|
|
||||||
|
|
||||||
public class FieldTphMMeth {
|
|
||||||
a;
|
|
||||||
|
|
||||||
public FieldTphMMeth(c,d,e) {
|
|
||||||
a = m(c,d,e);
|
|
||||||
}
|
|
||||||
|
|
||||||
m(b,d,e) {
|
|
||||||
if(e) {
|
|
||||||
return m3(b);
|
|
||||||
} else{
|
|
||||||
return m3(d);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
m2(b) {
|
|
||||||
a = m3(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
m3(b){
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -1,12 +0,0 @@
|
|||||||
import java.util.Vector;
|
|
||||||
import java.lang.Integer;
|
|
||||||
import java.lang.String;
|
|
||||||
//import java.lang.Byte;
|
|
||||||
//import java.lang.Boolean;
|
|
||||||
|
|
||||||
public class FunOL {
|
|
||||||
|
|
||||||
add(f, y) {
|
|
||||||
return f.apply() + y;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,7 +0,0 @@
|
|||||||
import java.lang.String;
|
|
||||||
import java.lang.Integer;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
class Generics3<B extends String & List<Integer>> {
|
|
||||||
|
|
||||||
}
|
|
@@ -1,12 +0,0 @@
|
|||||||
import java.lang.String;
|
|
||||||
import java.lang.Integer;
|
|
||||||
|
|
||||||
class Generics4<B extends String> {
|
|
||||||
<C extends Integer> C m1(C b){
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
m2(x) {
|
|
||||||
return m1(x);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,20 +0,0 @@
|
|||||||
public class Id {
|
|
||||||
// a;
|
|
||||||
// id(b){
|
|
||||||
// return b;
|
|
||||||
// }
|
|
||||||
id2 = x -> x;
|
|
||||||
// id2 = () -> {
|
|
||||||
// var x = m(a);
|
|
||||||
// var y = x;
|
|
||||||
// var z = y;
|
|
||||||
// };
|
|
||||||
//
|
|
||||||
// m(a){
|
|
||||||
// return a;
|
|
||||||
// }
|
|
||||||
id3 (x) {
|
|
||||||
return id2.apply(x);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@@ -1,65 +0,0 @@
|
|||||||
public class Inf {
|
|
||||||
m(x,y,a){
|
|
||||||
var z;
|
|
||||||
var v;
|
|
||||||
var w;
|
|
||||||
var b;
|
|
||||||
y=x;
|
|
||||||
z=x;
|
|
||||||
v=y;
|
|
||||||
w=y;
|
|
||||||
y=a;
|
|
||||||
b=a;
|
|
||||||
var c;
|
|
||||||
var d;
|
|
||||||
c = v;
|
|
||||||
d = v;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
TPH M m(TPH N x, TPH O y, TPH P a)({
|
|
||||||
TPH Q z;
|
|
||||||
TPH R v;
|
|
||||||
TPH S w;
|
|
||||||
TPH T b;
|
|
||||||
(y)::TPH O = (x)::TPH N;
|
|
||||||
(z)::TPH Q = (x)::TPH N;
|
|
||||||
(v)::TPH R = (y)::TPH O;
|
|
||||||
(w)::TPH S = (y)::TPH O;
|
|
||||||
(y)::TPH O = (a)::TPH P;
|
|
||||||
(b)::TPH T = (a)::TPH P;
|
|
||||||
TPH U c;
|
|
||||||
TPH V d;
|
|
||||||
(c)::TPH U = (v)::TPH R;
|
|
||||||
(d)::TPH V = (v)::TPH R;
|
|
||||||
return;
|
|
||||||
})::TPH W
|
|
||||||
|
|
||||||
Inf()({
|
|
||||||
super(());
|
|
||||||
})::TPH Z
|
|
||||||
|
|
||||||
}
|
|
||||||
// c::U d::V
|
|
||||||
// \ /
|
|
||||||
// v::R w::S
|
|
||||||
// \ /
|
|
||||||
// z::Q y::O b::T
|
|
||||||
// \ / \ /
|
|
||||||
// x::N a::P
|
|
||||||
|
|
||||||
RESULT Final: [[(TPH N < TPH O), (TPH R < TPH V), (TPH N < TPH Q), (TPH P < TPH O), (TPH R < TPH U), (TPH M = void), (TPH O < TPH S), (TPH O < TPH R), (TPH P < TPH T)]]
|
|
||||||
Simplified constraints: [(TPH O < TPH S), (TPH P < TPH O), (TPH O < TPH R), (TPH P < TPH T), (TPH N < TPH O), (TPH N < TPH Q)]
|
|
||||||
m: [(TPH DDV = java.lang.Object), (TPH DDX = java.lang.Object), (TPH DDX < TPH DDV), (TPH N < TPH DDX), (TPH P < TPH DDX)]
|
|
||||||
Class Inf: []
|
|
||||||
Inf: []
|
|
||||||
|
|
||||||
Unify nach Oder-Constraints-Anpassung:
|
|
||||||
UND:[(void =. M, , -1 WC: false, IT: false), (N <. O, 1 WC: false, IT: false, 1 WC: false, IT: false), (P <. O, 1 WC: false, IT: false, 1 WC: false, IT: false), (N <. Q, 1 WC: false, IT: false, 0 WC: true, IT: false), (O <. S, 1 WC: false, IT: false, 0 WC: true, IT: false), (O <. R, 1 WC: false, IT: false, 0 WC: true, IT: false), (P <. T, 1 WC: false, IT: false, 0 WC: true, IT: false)]
|
|
||||||
isInherited = false
|
|
||||||
isStatement = false
|
|
||||||
|
|
||||||
ODER:
|
|
||||||
*/
|
|
||||||
|
|
@@ -1,6 +0,0 @@
|
|||||||
class Infimum {
|
|
||||||
m(x, y, z) {
|
|
||||||
y = x;
|
|
||||||
z = x;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,18 +0,0 @@
|
|||||||
import java.util.Vector;
|
|
||||||
|
|
||||||
import java.lang.Integer;
|
|
||||||
import java.lang.String;
|
|
||||||
|
|
||||||
|
|
||||||
public class Inherit {
|
|
||||||
|
|
||||||
main(d, i) {
|
|
||||||
return d.m(i);
|
|
||||||
}
|
|
||||||
|
|
||||||
main(v, i) {
|
|
||||||
var aa = v.elementAt(0);
|
|
||||||
return aa.m(i);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -1,17 +0,0 @@
|
|||||||
import java.util.Vector;
|
|
||||||
|
|
||||||
import java.lang.Integer;
|
|
||||||
import java.lang.String;
|
|
||||||
|
|
||||||
|
|
||||||
public class Inherit2 {
|
|
||||||
|
|
||||||
main(d) {
|
|
||||||
return d.m2(d);
|
|
||||||
}
|
|
||||||
|
|
||||||
main(v) {
|
|
||||||
var aa = v.elementAt(0);
|
|
||||||
return aa.m2(aa);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,13 +0,0 @@
|
|||||||
public class KompTph {
|
|
||||||
public m(a, b, c) {
|
|
||||||
var d = a;
|
|
||||||
var e = a;
|
|
||||||
a = b;
|
|
||||||
c = b;
|
|
||||||
m2(a,c);
|
|
||||||
}
|
|
||||||
|
|
||||||
public m2(a,b){
|
|
||||||
m(a,a,b);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,12 +0,0 @@
|
|||||||
import java.lang.Integer;
|
|
||||||
public class LambdaCapture {
|
|
||||||
Integer i = 8;
|
|
||||||
f;
|
|
||||||
public LambdaCapture(){
|
|
||||||
Integer w = 7;
|
|
||||||
f = j ->{
|
|
||||||
return w+i;};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -1,9 +0,0 @@
|
|||||||
import java.lang.Integer;
|
|
||||||
|
|
||||||
public class Lambda {
|
|
||||||
|
|
||||||
m () {
|
|
||||||
var lam1 = (x) -> { };
|
|
||||||
return lam1;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,43 +0,0 @@
|
|||||||
import java.util.Vector;
|
|
||||||
import java.lang.Integer;
|
|
||||||
//import java.lang.Byte;
|
|
||||||
import java.lang.Boolean;
|
|
||||||
|
|
||||||
public class MatrixOP extends Vector<Vector<Integer>> {
|
|
||||||
|
|
||||||
MatrixOP () {
|
|
||||||
}
|
|
||||||
|
|
||||||
MatrixOP(vv) {
|
|
||||||
Integer i;
|
|
||||||
i = 0;
|
|
||||||
while(i < vv.size()) {
|
|
||||||
// Boolean a = this.add(vv.elementAt(i));
|
|
||||||
this.add(vv.elementAt(i));
|
|
||||||
i=i+1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public mul = (m1, m2) -> {
|
|
||||||
var ret = new MatrixOP();
|
|
||||||
var i = 0;
|
|
||||||
while(i < m1.size()) {
|
|
||||||
var v1 = m1.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)
|
|
||||||
* m2.elementAt(k).elementAt(j);
|
|
||||||
k++; }
|
|
||||||
// v2.addElement(new Integer(erg));
|
|
||||||
v2.addElement(erg);
|
|
||||||
j++; }
|
|
||||||
ret.addElement(v2);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
}
|
|
@@ -1,20 +0,0 @@
|
|||||||
import java.util.List;
|
|
||||||
import java.lang.Integer;
|
|
||||||
//import java.util.Collection;
|
|
||||||
|
|
||||||
class Merge {
|
|
||||||
|
|
||||||
merge(a, b) {
|
|
||||||
a.addAll(b);
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sort(in){
|
|
||||||
var firstHalf = in.subList(1,2);
|
|
||||||
var secondHalf = in.subList(1,2);
|
|
||||||
return merge(sort(firstHalf), sort(secondHalf));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -1,32 +0,0 @@
|
|||||||
import java.lang.String;
|
|
||||||
import java.lang.Integer;
|
|
||||||
import java.lang.Double;
|
|
||||||
import java.lang.Boolean;
|
|
||||||
//import java.util.Vector;
|
|
||||||
|
|
||||||
|
|
||||||
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;
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public class OLMain {
|
|
||||||
|
|
||||||
main(x) {
|
|
||||||
var ol;
|
|
||||||
ol = new OL();
|
|
||||||
return ol.m(x);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,19 +0,0 @@
|
|||||||
import java.lang.String;
|
|
||||||
import java.lang.Integer;
|
|
||||||
import java.lang.Double;
|
|
||||||
import java.util.Vector;
|
|
||||||
import java.lang.Boolean;
|
|
||||||
|
|
||||||
public class OLFun {
|
|
||||||
|
|
||||||
//f = x -> {return x + x;};
|
|
||||||
m(f, x) {
|
|
||||||
x = f.apply(x+x);
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
m2(y) {
|
|
||||||
m(x -> x * 2, y);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,13 +0,0 @@
|
|||||||
import java.lang.String;
|
|
||||||
import java.lang.Integer;
|
|
||||||
import java.lang.Double;
|
|
||||||
import java.util.Vector;
|
|
||||||
import java.lang.Boolean;
|
|
||||||
|
|
||||||
public class OLFun2 {
|
|
||||||
|
|
||||||
x;
|
|
||||||
m(f){
|
|
||||||
x = f.apply(x + x);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,32 +0,0 @@
|
|||||||
import java.util.Vector;
|
|
||||||
import java.lang.Boolean;
|
|
||||||
import java.lang.Object;
|
|
||||||
|
|
||||||
class Pair<U, T> {
|
|
||||||
U a;
|
|
||||||
T b;
|
|
||||||
|
|
||||||
make(x) {
|
|
||||||
var ret = new Pair<>();
|
|
||||||
ret.a = x.elementAt(0);
|
|
||||||
ret.b = x.elementAt(1);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
eq(a, b) {
|
|
||||||
b = a;
|
|
||||||
return a == b;
|
|
||||||
}
|
|
||||||
|
|
||||||
compare( p) {
|
|
||||||
return eq(p.a, p.b);
|
|
||||||
//return p.a == p.b;
|
|
||||||
}
|
|
||||||
|
|
||||||
void m(Pair<?, ?> p, List<? extends Eq> b)
|
|
||||||
{
|
|
||||||
//this.compare(p); //1, type incorrect
|
|
||||||
this.compare(this.make(b)); //2, OK
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
@@ -1,19 +0,0 @@
|
|||||||
import java.util.Vector;
|
|
||||||
import java.util.Stack;
|
|
||||||
|
|
||||||
public class Put {
|
|
||||||
|
|
||||||
putElement(ele, v) {
|
|
||||||
v.addElement(ele);
|
|
||||||
}
|
|
||||||
|
|
||||||
putElement(ele, s) {
|
|
||||||
s.push(ele);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
main(ele, x) {
|
|
||||||
putElement(ele, x);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -1,17 +0,0 @@
|
|||||||
//import java.util.Vector;
|
|
||||||
import java.lang.Integer;
|
|
||||||
import java.lang.Float;
|
|
||||||
//import java.lang.Byte;
|
|
||||||
//import java.lang.Boolean;
|
|
||||||
|
|
||||||
public class Scalar extends Vector<Integer> {
|
|
||||||
|
|
||||||
mul(v) {
|
|
||||||
var ret = 0;
|
|
||||||
var i = 0;
|
|
||||||
while(i < size()) {
|
|
||||||
ret = ret + this.elementAt(i) * v.elementAt(i);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,25 +0,0 @@
|
|||||||
public class SimpleCycle {
|
|
||||||
|
|
||||||
m(){
|
|
||||||
var g;
|
|
||||||
var h;
|
|
||||||
g = h;
|
|
||||||
h = g;
|
|
||||||
/*
|
|
||||||
var y;
|
|
||||||
var z;
|
|
||||||
y=z;
|
|
||||||
z=y;
|
|
||||||
|
|
||||||
var j = z;
|
|
||||||
var x;
|
|
||||||
b = a;
|
|
||||||
var c = b;
|
|
||||||
var f = d;
|
|
||||||
b = x;
|
|
||||||
var l = c;
|
|
||||||
a = l;
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -1,23 +0,0 @@
|
|||||||
import java.util.List;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.lang.String;
|
|
||||||
|
|
||||||
public class Sorting{
|
|
||||||
merge(a, b){
|
|
||||||
a.addAll(b);
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
sort(in){
|
|
||||||
var firstHalf = in;
|
|
||||||
var secondHalf = in;
|
|
||||||
return merge(sort(firstHalf), sort(secondHalf));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
void sort(a){
|
|
||||||
a = merge(a,a);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
@@ -1,14 +0,0 @@
|
|||||||
public class Tph3 {
|
|
||||||
// m(a,b){
|
|
||||||
// var c = m2(a,b);
|
|
||||||
// return c;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// m2(a,b){
|
|
||||||
// return m(a,b);
|
|
||||||
// }
|
|
||||||
m1(x, y) { m2(x); x = y;
|
|
||||||
}
|
|
||||||
|
|
||||||
m2(y) { m1(y, y); }
|
|
||||||
}
|
|
@@ -1,12 +0,0 @@
|
|||||||
public class Tph4{
|
|
||||||
m(a,b){
|
|
||||||
var c = m2(b);
|
|
||||||
var d = m2(c);
|
|
||||||
return d;
|
|
||||||
}
|
|
||||||
|
|
||||||
m2(b){
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -1,13 +0,0 @@
|
|||||||
public class Tph5 {
|
|
||||||
// m(a,b,c){
|
|
||||||
// a = c;
|
|
||||||
// b = c;
|
|
||||||
// return a;
|
|
||||||
// }
|
|
||||||
|
|
||||||
m(x,y){
|
|
||||||
x = m2(y);
|
|
||||||
}
|
|
||||||
|
|
||||||
m2(y) { return y; }
|
|
||||||
}
|
|
@@ -1,14 +0,0 @@
|
|||||||
public class Tph6 {
|
|
||||||
// m(a,b,c){
|
|
||||||
// a = c;
|
|
||||||
// b = c;
|
|
||||||
// return a;
|
|
||||||
// }
|
|
||||||
|
|
||||||
m(x,y){
|
|
||||||
var c = m2(y);
|
|
||||||
c = m2(x);
|
|
||||||
}
|
|
||||||
|
|
||||||
m2(y) { return y; }
|
|
||||||
}
|
|
@@ -1,11 +0,0 @@
|
|||||||
public class Tph7 {
|
|
||||||
|
|
||||||
m(a,b){
|
|
||||||
var c = m2(b);
|
|
||||||
return m2(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
m2(b){
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,12 +0,0 @@
|
|||||||
public class TypedID/*<L extends K,K> */ {
|
|
||||||
|
|
||||||
lam = x-> x;
|
|
||||||
|
|
||||||
id(b){
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
m(){
|
|
||||||
return lam;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,26 +0,0 @@
|
|||||||
import java.util.Vector;
|
|
||||||
import java.lang.Integer;
|
|
||||||
import java.lang.String;
|
|
||||||
|
|
||||||
public class VectorAdd {
|
|
||||||
vectorAdd(v1, v2) {
|
|
||||||
var i = 0;
|
|
||||||
v1 = new Vector<Integer>();
|
|
||||||
var erg = new Vector<>();
|
|
||||||
while (i < v1.size()) {
|
|
||||||
erg.addElement(v1.elementAt(i) + v2.elementAt(i));
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
return erg;
|
|
||||||
}
|
|
||||||
|
|
||||||
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.addAll(x);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,11 +0,0 @@
|
|||||||
import java.util.Vector;
|
|
||||||
import java.lang.Integer;
|
|
||||||
|
|
||||||
public class VectorSuper {
|
|
||||||
|
|
||||||
m(x){
|
|
||||||
Integer y = 1;
|
|
||||||
x.addElement(y);
|
|
||||||
//return x;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,8 +0,0 @@
|
|||||||
import java.lang.Integer;
|
|
||||||
import java.util.List;
|
|
||||||
public class WC {
|
|
||||||
|
|
||||||
void m (List<? super Integer> a, List<? extends Integer> b) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,12 +0,0 @@
|
|||||||
import java.lang.Integer;
|
|
||||||
import java.lang.Long;
|
|
||||||
import java.lang.Double;
|
|
||||||
|
|
||||||
public class While {
|
|
||||||
m(x) {
|
|
||||||
while(x < 2) {
|
|
||||||
x = x+1;
|
|
||||||
}
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,42 +0,0 @@
|
|||||||
import java.lang.Integer;
|
|
||||||
|
|
||||||
class Y {
|
|
||||||
y;
|
|
||||||
//factorial;
|
|
||||||
|
|
||||||
Y() {
|
|
||||||
y = f -> t -> f.apply(y.apply(f)).apply(t);
|
|
||||||
//factorial = y.apply(f -> n -> { if (n == 0) return 1; else return n * f.apply(n - 1); });
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
getY() {
|
|
||||||
return y;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
class fac1 {
|
|
||||||
factorial;
|
|
||||||
|
|
||||||
fac1() {
|
|
||||||
var y;
|
|
||||||
y = new Y<Integer,Integer,Integer,Integer,Integer>().getY();
|
|
||||||
factorial = y.apply(f -> n -> { if (n == 0) return 1; else return n * f.apply(n - 1); });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ergibt Parse-Error
|
|
||||||
class fac1 {
|
|
||||||
factorial;
|
|
||||||
|
|
||||||
fac1() {
|
|
||||||
var y;
|
|
||||||
y = new Y<>().y;
|
|
||||||
factorial = y.apply(f -> n -> { if (n == 0) return 1; else return n * f.apply(n - 1); });
|
|
||||||
}
|
|
||||||
public static void main(String args[]) {
|
|
||||||
System.out.println(new fac1().factorial.apply(3));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
@@ -1,15 +0,0 @@
|
|||||||
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,23 +0,0 @@
|
|||||||
import java.util.Vector;
|
|
||||||
import java.lang.Integer;
|
|
||||||
|
|
||||||
public class mathStrucInteger {
|
|
||||||
model;
|
|
||||||
|
|
||||||
innerOp = (o) -> (ms) -> new mathStrucInteger<>(o.apply(model,ms.model));
|
|
||||||
|
|
||||||
public mathStrucInteger(m) {
|
|
||||||
model =m;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class mathStrucIntegerUse {
|
|
||||||
|
|
||||||
main() {
|
|
||||||
var ms;
|
|
||||||
ms = new mathStrucInteger<>(2);
|
|
||||||
var ms2;
|
|
||||||
ms2 = ms.innerOp.apply((x,y) -> x+y).apply(ms);
|
|
||||||
return ms2;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,91 +0,0 @@
|
|||||||
//PL 2019-10-24: laeuft nicht durch, zu gross
|
|
||||||
import java.util.Vector;
|
|
||||||
import java.lang.Integer;
|
|
||||||
import java.lang.Boolean;
|
|
||||||
|
|
||||||
public class mathStrucMatrixOP {
|
|
||||||
model;
|
|
||||||
|
|
||||||
innerOp = (o) -> (ms) -> new mathStrucMatrixOP<>(o.apply(model,ms.model));
|
|
||||||
|
|
||||||
public mathStrucMatrixOP(m) {
|
|
||||||
model =m;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class MatrixOP extends Vector<Vector<Integer>> {
|
|
||||||
|
|
||||||
MatrixOP () {
|
|
||||||
}
|
|
||||||
|
|
||||||
MatrixOP(vv) {
|
|
||||||
Integer i;
|
|
||||||
i = 0;
|
|
||||||
while(i < vv.size()) {
|
|
||||||
// Boolean a = this.add(vv.elementAt(i));
|
|
||||||
this.add(vv.elementAt(i));
|
|
||||||
i=i+1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public mul = (m1, m2) -> {
|
|
||||||
var ret = new MatrixOP();
|
|
||||||
var i = 0;
|
|
||||||
while(i < m1.size()) {
|
|
||||||
var v1 = m1.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)
|
|
||||||
* m2.elementAt(k).elementAt(j);
|
|
||||||
k++; }
|
|
||||||
// v2.addElement(new Integer(erg));
|
|
||||||
v2.addElement(erg);
|
|
||||||
j++; }
|
|
||||||
ret.addElement(v2);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class mathStrucUseMatrixOP {
|
|
||||||
|
|
||||||
main() {
|
|
||||||
Vector<Vector<Integer>> vv = new Vector<Vector<Integer>>();
|
|
||||||
Vector<Integer> v1 = new Vector<Integer>();
|
|
||||||
v1.addElement(2);
|
|
||||||
v1.addElement(2);
|
|
||||||
Vector<Integer> v2 = new Vector<Integer>();
|
|
||||||
v2.addElement(3);
|
|
||||||
v2.addElement(3);
|
|
||||||
vv.addElement(v1);
|
|
||||||
vv.addElement(v2);
|
|
||||||
|
|
||||||
MatrixOP m1 = new MatrixOP(vv);
|
|
||||||
|
|
||||||
Vector<Vector<Integer>> vv1 = new Vector<Vector<Integer>>();
|
|
||||||
Vector<Integer> v3 = new Vector<Integer>();
|
|
||||||
v3.addElement(2);
|
|
||||||
v3.addElement(2);
|
|
||||||
Vector<Integer> v4 = new Vector<Integer>();
|
|
||||||
v4.addElement(3);
|
|
||||||
v4.addElement(3);
|
|
||||||
vv1.addElement(v3);
|
|
||||||
vv1.addElement(v4);
|
|
||||||
|
|
||||||
MatrixOP m2 = new MatrixOP(vv1);
|
|
||||||
|
|
||||||
var mms;
|
|
||||||
mms = new mathStrucMatrixOP<>(m1);
|
|
||||||
var mms2;
|
|
||||||
mms2 = new mathStrucMatrixOP<>(m2);
|
|
||||||
var mms3;
|
|
||||||
mms3 = mms.innerOp.apply(m1.mul).apply(mms2);
|
|
||||||
return mms3;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,13 +0,0 @@
|
|||||||
class TestAny {
|
|
||||||
a;
|
|
||||||
b = a;
|
|
||||||
anyMethod() {
|
|
||||||
var f;
|
|
||||||
return f;
|
|
||||||
}
|
|
||||||
otherMethod(e) {
|
|
||||||
b = e;
|
|
||||||
e = a;
|
|
||||||
return e;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,9 +0,0 @@
|
|||||||
class TestAssign {
|
|
||||||
assign(x, y) {
|
|
||||||
x = y;
|
|
||||||
}
|
|
||||||
|
|
||||||
assign2(x, y) {
|
|
||||||
assign(x, y);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,6 +0,0 @@
|
|||||||
class Example{
|
|
||||||
f;
|
|
||||||
fReturn(){
|
|
||||||
return f;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,12 +0,0 @@
|
|||||||
public class TestContraVariant {
|
|
||||||
|
|
||||||
m(x) {
|
|
||||||
var y;
|
|
||||||
x = y;
|
|
||||||
return y;
|
|
||||||
}
|
|
||||||
|
|
||||||
main(x) {
|
|
||||||
return m(x);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,17 +0,0 @@
|
|||||||
public class TestGGFinder {
|
|
||||||
a;
|
|
||||||
|
|
||||||
id(b) {
|
|
||||||
var c = b;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
setA(x) {
|
|
||||||
a = x;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
m(x,y) {
|
|
||||||
x = id(y);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,7 +0,0 @@
|
|||||||
public class TestLocalVarLambda {
|
|
||||||
|
|
||||||
m(x) {
|
|
||||||
var id = z -> z;
|
|
||||||
return id.apply(x);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,17 +0,0 @@
|
|||||||
public class TestMutualRecursion {
|
|
||||||
a;
|
|
||||||
|
|
||||||
id(b) {
|
|
||||||
var c = b;
|
|
||||||
return main(b,c);
|
|
||||||
}
|
|
||||||
|
|
||||||
m(x,y) {
|
|
||||||
x = id(y);
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
main(x,y) {
|
|
||||||
return m(id(x),y);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,22 +0,0 @@
|
|||||||
public class TestMutualRecursionWithField {
|
|
||||||
a;
|
|
||||||
|
|
||||||
id(b) {
|
|
||||||
var c = b;
|
|
||||||
return main(b,c);
|
|
||||||
}
|
|
||||||
|
|
||||||
setA(x) {
|
|
||||||
a = x;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
m(x,y) {
|
|
||||||
x = id(y);
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
main(x,y) {
|
|
||||||
return m(id(x),setA(y));
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,22 +0,0 @@
|
|||||||
public class TestMutualRecursionWithField2 {
|
|
||||||
a;
|
|
||||||
|
|
||||||
id(b) {
|
|
||||||
var c = b;
|
|
||||||
return main(b,c);
|
|
||||||
}
|
|
||||||
|
|
||||||
setA(x) {
|
|
||||||
a = x;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
m(x,y) {
|
|
||||||
x = id(y);
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
main(x,y) {
|
|
||||||
return m(setA(x),id(y));
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,23 +0,0 @@
|
|||||||
public class TestMutualRecursionWithField3 {
|
|
||||||
a;
|
|
||||||
|
|
||||||
id(b) {
|
|
||||||
var c = b;
|
|
||||||
return main(b,c);
|
|
||||||
}
|
|
||||||
|
|
||||||
setA(x) {
|
|
||||||
a = x;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
m(x,y) {
|
|
||||||
x = id(y);
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
main(x,y) {
|
|
||||||
var z = m(setA(x),id(y));
|
|
||||||
return z;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,6 +0,0 @@
|
|||||||
class VarReturn {
|
|
||||||
anyMethod() {
|
|
||||||
var f;
|
|
||||||
return f;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,12 +0,0 @@
|
|||||||
class Example {
|
|
||||||
a;
|
|
||||||
b = a;
|
|
||||||
anyMethod() {
|
|
||||||
var f;
|
|
||||||
return f;
|
|
||||||
}
|
|
||||||
otherMethod(e) {
|
|
||||||
e = a;
|
|
||||||
return e;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,13 +0,0 @@
|
|||||||
class TPHsAndGenerics {
|
|
||||||
id = x -> x;
|
|
||||||
id2 (x) {
|
|
||||||
return id.apply(x);
|
|
||||||
}
|
|
||||||
m(a, b){
|
|
||||||
var c = m2(a,b);
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
m2(a, b){
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user