forked from JavaTX/JavaCompilerCore
letzte änderung
This commit is contained in:
parent
ce97cf82fd
commit
eb365bb911
@ -56,10 +56,10 @@ public class AssumptionGenerator {
|
||||
argAss.put(m, ass);
|
||||
System.out.println(String.format("Methodenname: %s , Arguments: %s -> ReturnType %s ", methodName, typeArg,
|
||||
returnType));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//TODO : Assumption für die eingene aktuelle Klasse
|
||||
// Assumption für die eingene aktuelle Klasse
|
||||
fAss.put("this", cl.getType());
|
||||
|
||||
|
||||
|
||||
|
@ -3,6 +3,10 @@ package de.dhbwstuttgart.strucTypes3;
|
||||
import java.util.List;
|
||||
|
||||
import de.dhbwstuttgart.syntaxtree.ClassOrInterface;
|
||||
import de.dhbwstuttgart.syntaxtree.Field;
|
||||
import de.dhbwstuttgart.syntaxtree.FieldDeclaration;
|
||||
import de.dhbwstuttgart.syntaxtree.FormalParameter;
|
||||
import de.dhbwstuttgart.syntaxtree.GenericTypeVar;
|
||||
import de.dhbwstuttgart.syntaxtree.Method;
|
||||
import de.dhbwstuttgart.syntaxtree.statement.Block;
|
||||
import de.dhbwstuttgart.syntaxtree.statement.Expression;
|
||||
@ -12,7 +16,7 @@ import de.dhbwstuttgart.syntaxtree.statement.Statement;
|
||||
|
||||
public class ToStringGenerator {
|
||||
|
||||
public String klasseToString(ClassOrInterface cl, AssTuple assAll) {
|
||||
public static String klasseToString(ClassOrInterface cl, AssTuple assAll) {
|
||||
|
||||
// Als nächstes muss die Expression getypt werden
|
||||
|
||||
@ -59,5 +63,40 @@ public class ToStringGenerator {
|
||||
}
|
||||
|
||||
|
||||
public static String interface2String(ClassOrInterface face) {
|
||||
|
||||
|
||||
|
||||
// Ausgabe name
|
||||
String n = face.getClassName().toString();
|
||||
|
||||
// Ausgabe Generics
|
||||
String generics = "";
|
||||
|
||||
//for ( GenericTypeVar f : face.getGenericDeclarationList()) {
|
||||
//generics = generics + " " + f.toString();
|
||||
//}
|
||||
|
||||
// Ausgabe der Felder
|
||||
String felder = "";
|
||||
for (Field f : face.getFieldDecl()) {
|
||||
felder = f.toString();
|
||||
}
|
||||
|
||||
// Ausgabe der Methoden
|
||||
String methods = "";
|
||||
for (Method m : face.getMethods()) {
|
||||
String mName = m.getName() + " ( ";
|
||||
//m.getParameterList().getFormalparalist().forEach((x) -> { mName.concat(x.getName().toString()); });
|
||||
for (FormalParameter fp : m.getParameterList().getFormalparalist()) {
|
||||
mName = mName + " "+ fp.getName();
|
||||
}
|
||||
methods = methods + mName + ") " ;
|
||||
}
|
||||
|
||||
return String.format(" interface: %s %s %s %s \n" , n, generics , felder, methods);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -54,6 +54,10 @@ public class ClassOrInterface extends GTVDeclarationContext implements IItemWith
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public GenericDeclarationList getGenericDeclarationList() {
|
||||
return this.genericClassParameters;
|
||||
}
|
||||
|
||||
// Get modifiers
|
||||
public int getModifiers(){
|
||||
return this.modifiers;
|
||||
|
@ -46,7 +46,21 @@ public class Construct {
|
||||
List<Field> fielddecl = new ArrayList<>();
|
||||
fielddecl.add(field);
|
||||
JavaClassName name = new JavaClassName(fieldConstriant.getReveiver().toString());
|
||||
ClassOrInterface face = new ClassOrInterface(0, name, fielddecl, null, null, null, null, null , null);
|
||||
|
||||
|
||||
//Erstellen der Generics
|
||||
List<GenericTypeVar> genericTypeVarList = new ArrayList<>();
|
||||
String type_of_field = fieldConstriant.getAttribut().toString();
|
||||
genericTypeVarList.add(new GenericTypeVar(type_of_field, null, new NullToken(), new NullToken()));
|
||||
GenericDeclarationList genericDeclaraitonList = new GenericDeclarationList(genericTypeVarList, new NullToken());
|
||||
|
||||
|
||||
// methods
|
||||
List<Method> methods = new ArrayList<Method>();
|
||||
|
||||
|
||||
ClassOrInterface face = new ClassOrInterface(0, name, fielddecl, methods, genericDeclaraitonList, null, true, null , null);
|
||||
|
||||
return face;
|
||||
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ import de.dhbwstuttgart.strucTypes3.AssTuple;
|
||||
import de.dhbwstuttgart.strucTypes3.AssumptionGenerator;
|
||||
import de.dhbwstuttgart.strucTypes3.ConstraintAbstract;
|
||||
import de.dhbwstuttgart.strucTypes3.HelpMethoden;
|
||||
import de.dhbwstuttgart.strucTypes3.ToStringGenerator;
|
||||
import de.dhbwstuttgart.syntaxtree.ClassOrInterface;
|
||||
import de.dhbwstuttgart.syntaxtree.Field;
|
||||
import de.dhbwstuttgart.syntaxtree.FormalParameter;
|
||||
@ -57,6 +58,7 @@ public class GeneralParserTestConstruct {
|
||||
// filenames.add("FieldVarTest.jav");
|
||||
|
||||
filenames.add("StructuralTypesSimpleSkript.jav");
|
||||
//filenames.add("StructuralTypesMiddle.jav");
|
||||
// filenames.add("StructuralTypesField.jav");
|
||||
// filenames.add("Main.jav");
|
||||
|
||||
@ -90,7 +92,13 @@ public class GeneralParserTestConstruct {
|
||||
List<ClassOrInterface> sf2 = new ArrayList<>();
|
||||
constraints.forEach( (constraint) -> {sf2.add( Construct.constructInterfaces(constraint)); } );
|
||||
|
||||
//sf2.forEach((x) -> {if (x != null ) { String y = ToStringGenerator.interface2String(x); System.out.println(y); }} );
|
||||
for (int i = 0; i < sf2.size() ; i++) {
|
||||
if (sf2.get(i) != null ) {
|
||||
System.out.println(ToStringGenerator.interface2String(sf2.get(i)));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
System.out.println(sf2.size());
|
||||
|
||||
|
27
test/strucTypes3/StructuralTypesMiddle.jav
Normal file
27
test/strucTypes3/StructuralTypesMiddle.jav
Normal file
@ -0,0 +1,27 @@
|
||||
|
||||
|
||||
|
||||
class A {
|
||||
|
||||
//Integer feld1;
|
||||
|
||||
//feld2;
|
||||
|
||||
|
||||
//mtNeu() { return new Integer(); }
|
||||
|
||||
//mtcast(a) { return (Integer) a; }
|
||||
|
||||
mfeld(r) { return r.feld; }
|
||||
|
||||
|
||||
mt1(x,y,z) { return x.sub(y).add(z); }
|
||||
|
||||
mt(g,h,i) { return g.div( h , i) ; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
class Integer {
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user