Compare commits
3 Commits
ae2461b99d
...
fbf8704af6
Author | SHA1 | Date | |
---|---|---|---|
|
fbf8704af6 | ||
|
dc896a453d | ||
|
5d41a19705 |
Binary file not shown.
@@ -406,7 +406,8 @@ public class JavaTXCompiler {
|
||||
unify.unifyParallel(unifyCons.getUndConstraints(), oderConstraints, finiteClosure, logFile, log, urm, usedTasks);
|
||||
logFile.write("RES_FINAL: " + li.getResults().toString() + "\n");
|
||||
logFile.flush();
|
||||
return new LanguageServerTransferObject(li.getResults(), sf, ASTTypePrinter.print(sf));
|
||||
generateBytecode(sf, li.getResults());
|
||||
return new LanguageServerTransferObject(li.getResults(), sf, ASTTypePrinter.print(sf), generatedGenerics);
|
||||
}
|
||||
/* UnifyResultModel End */
|
||||
else {
|
||||
@@ -433,7 +434,8 @@ public class JavaTXCompiler {
|
||||
}
|
||||
} catch (IOException | ClassNotFoundException e) {
|
||||
}
|
||||
return new LanguageServerTransferObject(results.stream().map((unifyPairs -> new ResultSet(UnifyTypeFactory.convert(unifyPairs, Pair.generateTPHMap(cons))))).collect(Collectors.toList()), sf, ASTTypePrinter.print(sf));
|
||||
generateBytecode(sf, results.stream().map((unifyPairs -> new ResultSet(UnifyTypeFactory.convert(unifyPairs, Pair.generateTPHMap(cons))))).collect(Collectors.toList()));
|
||||
return new LanguageServerTransferObject(results.stream().map((unifyPairs -> new ResultSet(UnifyTypeFactory.convert(unifyPairs, Pair.generateTPHMap(cons))))).collect(Collectors.toList()), sf, ASTTypePrinter.print(sf), generatedGenerics);
|
||||
}
|
||||
|
||||
public List<ResultSet> typeInference(File file) throws ClassNotFoundException, IOException {
|
||||
|
@@ -1,21 +1,29 @@
|
||||
package de.dhbw.compiler.languageServerInterface;
|
||||
|
||||
import de.dhbw.compiler.syntaxtree.SourceFile;
|
||||
import de.dhbw.compiler.target.generate.GenericsResult;
|
||||
import de.dhbw.compiler.typeinference.result.ResultSet;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class LanguageServerTransferObject {
|
||||
List<ResultSet> resultSets;
|
||||
SourceFile Ast;
|
||||
String printedAst;
|
||||
public LanguageServerTransferObject(List<ResultSet> resultSets, SourceFile Ast, String printedAst) {
|
||||
Map<SourceFile, List<GenericsResult>> generatedGenerics = new HashMap<>();
|
||||
|
||||
|
||||
public LanguageServerTransferObject(List<ResultSet> resultSets, SourceFile Ast, String printedAst, Map<SourceFile, List<GenericsResult>> generatedGenerics) {
|
||||
this.resultSets = resultSets;
|
||||
this.Ast = Ast;
|
||||
this.printedAst = printedAst;
|
||||
this.generatedGenerics = generatedGenerics;
|
||||
}
|
||||
|
||||
public List<ResultSet> getResultSets() {return resultSets;}
|
||||
public SourceFile getAst() {return Ast;}
|
||||
public String getPrintedAst() {return printedAst;}
|
||||
public Map<SourceFile, List<GenericsResult>> getGeneratedGenerics() {return generatedGenerics;}
|
||||
}
|
||||
|
@@ -13,9 +13,8 @@ public class CompilerInterfaceTest {
|
||||
LanguageServerInterface languageServer = new LanguageServerInterface();
|
||||
var res = languageServer.getResultSetAndAbstractSyntax("import java.lang.Integer; public class test{\n" +
|
||||
" \n" +
|
||||
" public main( test){\n" +
|
||||
" Integer i = test; " +
|
||||
" return i;\n" +
|
||||
" public main(testa){\n" +
|
||||
" return testa;\n" +
|
||||
" }\n" +
|
||||
"}");
|
||||
|
||||
@@ -27,6 +26,23 @@ public class CompilerInterfaceTest {
|
||||
System.out.println(res.getPrintedAst());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConstraintTypes() throws IOException, ClassNotFoundException {
|
||||
LanguageServerInterface languageServer = new LanguageServerInterface();
|
||||
TypeResolver typeResolver = new TypeResolver();
|
||||
|
||||
|
||||
var res = typeResolver.infereMethodsWithParameters("import java.lang.Boolean; import java.lang.Integer; public class test{\n" +
|
||||
" \n" +
|
||||
" public main(testa, testa2, testa3){\n" +
|
||||
" if(testa3){\n" +
|
||||
"return testa2;}" +
|
||||
" return testa;\n" +
|
||||
" }\n" +
|
||||
"}");
|
||||
res.forEach(el -> System.out.println(el.getName() + ": " + el.getPossibleTypes() + " | " + el.getLine() + " " + el.getCharPosition()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTypeFinder() throws IOException, ClassNotFoundException {
|
||||
TypeResolver typeResolver = new TypeResolver();
|
||||
@@ -46,6 +62,21 @@ public class CompilerInterfaceTest {
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGenericTypes() throws IOException, ClassNotFoundException {
|
||||
TypeResolver typeResolver = new TypeResolver();
|
||||
var inferedMethods = typeResolver.infereMethodsWithParameters("import java.lang.Integer; public class test{\n" +
|
||||
" \n" +
|
||||
" public main(testa){\n" +
|
||||
" return testa;\n" +
|
||||
" }\n" +
|
||||
"}"
|
||||
);
|
||||
|
||||
inferedMethods.forEach(el -> System.out.println(el.getName() + ": " + el.getPossibleTypes() + " | " + el.getLine() + " " + el.getCharPosition()));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTypeFinderParameter() throws IOException, ClassNotFoundException {
|
||||
TypeResolver typeResolver = new TypeResolver();
|
||||
|
Reference in New Issue
Block a user