forked from JavaTX/JavaCompilerCore
Methode erbt nicht mehr von Feld
This commit is contained in:
parent
311d7ee63a
commit
8d12821c68
@ -42,7 +42,7 @@ public class NormalMethod {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public RefTypeOrTPHOrWildcardOrGeneric getReturnType() {
|
public RefTypeOrTPHOrWildcardOrGeneric getReturnType() {
|
||||||
return method.getType();
|
return method.getReturnType();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasGen() {
|
public boolean hasGen() {
|
||||||
|
@ -139,9 +139,9 @@ public class SyntaxTreeGenerator{
|
|||||||
block = stmtGen.convert(body.block());
|
block = stmtGen.convert(body.block());
|
||||||
}
|
}
|
||||||
if(parentClass.equals(new JavaClassName(name))){
|
if(parentClass.equals(new JavaClassName(name))){
|
||||||
return new Constructor(modifiers, name, retType, modifiers, parameterList, block, gtvDeclarations, header.getStart(), fieldInitializations);
|
return new Constructor(modifiers, name, retType, parameterList, block, gtvDeclarations, header.getStart(), fieldInitializations);
|
||||||
}else{
|
}else{
|
||||||
return new Method(modifiers, name, retType, modifiers, parameterList,block, gtvDeclarations, header.getStart());
|
return new Method(modifiers, name, retType, parameterList,block, gtvDeclarations, header.getStart());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,10 +221,9 @@ public class SyntaxTreeGenerator{
|
|||||||
*/
|
*/
|
||||||
private Constructor generateStandardConstructor(String className, JavaClassName parentClass, RefType superClass, GenericDeclarationList classGenerics, Token offset){
|
private Constructor generateStandardConstructor(String className, JavaClassName parentClass, RefType superClass, GenericDeclarationList classGenerics, Token offset){
|
||||||
RefType classType = ClassOrInterface.generateTypeOfClass(reg.getName(className), classGenerics, offset);
|
RefType classType = ClassOrInterface.generateTypeOfClass(reg.getName(className), classGenerics, offset);
|
||||||
int modifiers = 0;
|
|
||||||
ParameterList params = new ParameterList(new ArrayList<>(), offset);
|
ParameterList params = new ParameterList(new ArrayList<>(), offset);
|
||||||
Block block = new Block(new ArrayList<>(), offset);
|
Block block = new Block(new ArrayList<>(), offset);
|
||||||
return new Constructor(Modifier.PUBLIC, className, classType, modifiers, params, block, classGenerics, offset, fieldInitializations);
|
return new Constructor(Modifier.PUBLIC, className, classType, params, block, classGenerics, offset, fieldInitializations);
|
||||||
}
|
}
|
||||||
|
|
||||||
private RefType convert(Java8Parser.SuperclassContext superclass) {
|
private RefType convert(Java8Parser.SuperclassContext superclass) {
|
||||||
|
@ -61,7 +61,7 @@ public abstract class AbstractASTWalker implements ASTVisitor{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void visitMethod(Method method){
|
private void visitMethod(Method method){
|
||||||
method.getType().accept(this);
|
method.getReturnType().accept(this);
|
||||||
method.getParameterList().accept(this);
|
method.getParameterList().accept(this);
|
||||||
if(method.block != null)
|
if(method.block != null)
|
||||||
method.block.accept(this);
|
method.block.accept(this);
|
||||||
|
@ -14,9 +14,9 @@ public class Constructor extends Method {
|
|||||||
|
|
||||||
|
|
||||||
//TODO: Constructor braucht ein super-Statement
|
//TODO: Constructor braucht ein super-Statement
|
||||||
public Constructor(int modifier, String name, RefTypeOrTPHOrWildcardOrGeneric returnType, int modifiers, ParameterList parameterList, Block codeInsideConstructor,
|
public Constructor(int modifier, String name, RefTypeOrTPHOrWildcardOrGeneric returnType, ParameterList parameterList, Block codeInsideConstructor,
|
||||||
GenericDeclarationList gtvDeclarations, Token offset, List<Statement> fieldInitializations) {
|
GenericDeclarationList gtvDeclarations, Token offset, List<Statement> fieldInitializations) {
|
||||||
super(modifier, name, returnType, modifiers, parameterList, prepareBlock(codeInsideConstructor,fieldInitializations), gtvDeclarations, offset);
|
super(modifier, name, returnType, parameterList, prepareBlock(codeInsideConstructor,fieldInitializations), gtvDeclarations, offset);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,8 +5,9 @@ import org.antlr.v4.runtime.Token;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class Field extends SyntaxTreeNode {
|
public class Field extends SyntaxTreeNode implements TypeScope{
|
||||||
|
|
||||||
|
public final int modifier;
|
||||||
private String name;
|
private String name;
|
||||||
private RefTypeOrTPHOrWildcardOrGeneric type;
|
private RefTypeOrTPHOrWildcardOrGeneric type;
|
||||||
|
|
||||||
@ -14,6 +15,7 @@ public class Field extends SyntaxTreeNode {
|
|||||||
super(offset);
|
super(offset);
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
this.modifier = modifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName(){
|
public String getName(){
|
||||||
|
@ -22,16 +22,22 @@ import de.dhbwstuttgart.syntaxtree.statement.Block;
|
|||||||
* @author janulrich
|
* @author janulrich
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class Method implements IItemWithOffset, TypeScope
|
public class Method extends SyntaxTreeNode implements IItemWithOffset, TypeScope
|
||||||
{
|
{
|
||||||
public final Block block;
|
public final Block block;
|
||||||
|
public final int modifier;
|
||||||
|
public final String name;
|
||||||
private ParameterList parameterlist = new ParameterList(new ArrayList<>(), new NullToken());
|
private ParameterList parameterlist = new ParameterList(new ArrayList<>(), new NullToken());
|
||||||
private ExceptionList exceptionlist;
|
private ExceptionList exceptionlist;
|
||||||
private GenericDeclarationList generics;
|
private GenericDeclarationList generics;
|
||||||
|
private final RefTypeOrTPHOrWildcardOrGeneric returnType;
|
||||||
|
|
||||||
public Method(int modifier, String name, RefTypeOrTPHOrWildcardOrGeneric returnType, int modifiers, ParameterList parameterList, Block block,
|
public Method(int modifier, String name, RefTypeOrTPHOrWildcardOrGeneric returnType, ParameterList parameterList, Block block,
|
||||||
GenericDeclarationList gtvDeclarations, Token offset) {
|
GenericDeclarationList gtvDeclarations, Token offset) {
|
||||||
super(name, returnType, modifiers, offset);
|
super(offset);
|
||||||
|
this.name = name;
|
||||||
|
this.modifier = modifier;
|
||||||
|
this.returnType = returnType;
|
||||||
this.parameterlist = parameterList;
|
this.parameterlist = parameterList;
|
||||||
this.block = block;
|
this.block = block;
|
||||||
this.generics = gtvDeclarations;
|
this.generics = gtvDeclarations;
|
||||||
@ -47,7 +53,7 @@ public class Method implements IItemWithOffset, TypeScope
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RefTypeOrTPHOrWildcardOrGeneric getReturnType() {
|
public RefTypeOrTPHOrWildcardOrGeneric getReturnType() {
|
||||||
return this.getType();
|
return this.returnType;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -59,4 +65,8 @@ public class Method implements IItemWithOffset, TypeScope
|
|||||||
public Token getOffset() {
|
public Token getOffset() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@ public class ASTFactory {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new de.dhbwstuttgart.syntaxtree.Constructor(constructor.getModifiers(), name,returnType, modifier, parameterList, block, gtvDeclarations, offset, new ArrayList<>());
|
return new de.dhbwstuttgart.syntaxtree.Constructor(modifier, name,returnType, parameterList, block, gtvDeclarations, offset, new ArrayList<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
//private static RefType createType(Class classType) {
|
//private static RefType createType(Class classType) {
|
||||||
@ -109,9 +109,8 @@ public class ASTFactory {
|
|||||||
Block block = new Block(new ArrayList<Statement>(), new NullToken());
|
Block block = new Block(new ArrayList<Statement>(), new NullToken());
|
||||||
GenericDeclarationList gtvDeclarations = createGenerics(jreMethod.getTypeParameters(), inClass, jreMethod.getName());
|
GenericDeclarationList gtvDeclarations = createGenerics(jreMethod.getTypeParameters(), inClass, jreMethod.getName());
|
||||||
Token offset = new NullToken();
|
Token offset = new NullToken();
|
||||||
int modifier = jreMethod.getModifiers();
|
|
||||||
|
|
||||||
return new Method(jreMethod.getModifiers(), name,returnType, modifier, parameterList, block, gtvDeclarations, offset);
|
return new Method(jreMethod.getModifiers(), name,returnType, parameterList, block, gtvDeclarations, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static GenericDeclarationList createGenerics(TypeVariable[] typeParameters, Class context, String methodName){
|
public static GenericDeclarationList createGenerics(TypeVariable[] typeParameters, Class context, String methodName){
|
||||||
|
@ -81,7 +81,7 @@ public class OutputGenerator implements ASTVisitor{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visit(Method method) {
|
public void visit(Method method) {
|
||||||
method.getType().accept(this);
|
method.getReturnType().accept(this);
|
||||||
out.append(" " + method.getName());
|
out.append(" " + method.getName());
|
||||||
method.getParameterList().accept(this);
|
method.getParameterList().accept(this);
|
||||||
if(method.block != null)
|
if(method.block != null)
|
||||||
|
@ -345,7 +345,7 @@ public class TYPEStmt implements StatementVisitor{
|
|||||||
for(Method m : cl.getMethods()){
|
for(Method m : cl.getMethods()){
|
||||||
if(m.getName().equals(name) &&
|
if(m.getName().equals(name) &&
|
||||||
m.getParameterList().getFormalparalist().size() == numArgs){
|
m.getParameterList().getFormalparalist().size() == numArgs){
|
||||||
RefTypeOrTPHOrWildcardOrGeneric retType = info.checkGTV(m.getType());
|
RefTypeOrTPHOrWildcardOrGeneric retType = info.checkGTV(m.getReturnType());
|
||||||
|
|
||||||
ret.add(new MethodAssumption(cl, retType, convertParams(m.getParameterList(),info),
|
ret.add(new MethodAssumption(cl, retType, convertParams(m.getParameterList(),info),
|
||||||
createTypeScope(cl, m)));
|
createTypeScope(cl, m)));
|
||||||
|
Loading…
Reference in New Issue
Block a user