forked from JavaTX/JavaCompilerCore
Referenzen auf Parser-Klassen von Java8 zu Java17 umbenannt
This commit is contained in:
parent
d89e414ca7
commit
1145f010c6
@ -14,7 +14,7 @@ import de.dhbwstuttgart.parser.JavaTXParser;
|
|||||||
import de.dhbwstuttgart.parser.NullToken;
|
import de.dhbwstuttgart.parser.NullToken;
|
||||||
import de.dhbwstuttgart.parser.scope.GenericsRegistry;
|
import de.dhbwstuttgart.parser.scope.GenericsRegistry;
|
||||||
import de.dhbwstuttgart.parser.SyntaxTreeGenerator.SyntaxTreeGenerator;
|
import de.dhbwstuttgart.parser.SyntaxTreeGenerator.SyntaxTreeGenerator;
|
||||||
import de.dhbwstuttgart.parser.antlr.Java8Parser.CompilationUnitContext;
|
import de.dhbwstuttgart.parser.antlr.Java17Parser.CompilationUnitContext;
|
||||||
import de.dhbwstuttgart.parser.scope.JavaClassName;
|
import de.dhbwstuttgart.parser.scope.JavaClassName;
|
||||||
import de.dhbwstuttgart.syntaxtree.ClassOrInterface;
|
import de.dhbwstuttgart.syntaxtree.ClassOrInterface;
|
||||||
import de.dhbwstuttgart.syntaxtree.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.GenericTypeVar;
|
||||||
|
@ -13,7 +13,7 @@ import org.antlr.v4.runtime.tree.TerminalNode;
|
|||||||
|
|
||||||
import de.dhbwstuttgart.exceptions.DebugException;
|
import de.dhbwstuttgart.exceptions.DebugException;
|
||||||
import de.dhbwstuttgart.parser.JavaTXParser;
|
import de.dhbwstuttgart.parser.JavaTXParser;
|
||||||
import de.dhbwstuttgart.parser.antlr.Java8Parser.CompilationUnitContext;
|
import de.dhbwstuttgart.parser.antlr.Java17Parser.CompilationUnitContext;
|
||||||
import de.dhbwstuttgart.parser.scope.GatherNames;
|
import de.dhbwstuttgart.parser.scope.GatherNames;
|
||||||
import de.dhbwstuttgart.parser.scope.JavaClassRegistry;
|
import de.dhbwstuttgart.parser.scope.JavaClassRegistry;
|
||||||
|
|
||||||
|
@ -2,8 +2,8 @@ package de.dhbwstuttgart.parser;
|
|||||||
|
|
||||||
import de.dhbwstuttgart.environment.CompilationEnvironment;
|
import de.dhbwstuttgart.environment.CompilationEnvironment;
|
||||||
import de.dhbwstuttgart.parser.SyntaxTreeGenerator.SyntaxTreeGenerator;
|
import de.dhbwstuttgart.parser.SyntaxTreeGenerator.SyntaxTreeGenerator;
|
||||||
import de.dhbwstuttgart.parser.antlr.Java8Lexer;
|
import de.dhbwstuttgart.parser.antlr.Java17Lexer;
|
||||||
import de.dhbwstuttgart.parser.antlr.Java8Parser;
|
import de.dhbwstuttgart.parser.antlr.Java17Parser;
|
||||||
import de.dhbwstuttgart.parser.scope.JavaClassRegistry;
|
import de.dhbwstuttgart.parser.scope.JavaClassRegistry;
|
||||||
import de.dhbwstuttgart.syntaxtree.SourceFile;
|
import de.dhbwstuttgart.syntaxtree.SourceFile;
|
||||||
|
|
||||||
@ -17,13 +17,13 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class JavaTXParser {
|
public class JavaTXParser {
|
||||||
public static Java8Parser.CompilationUnitContext parse(File source) throws IOException, java.lang.ClassNotFoundException {
|
public static Java17Parser.CompilationUnitContext parse(File source) throws IOException, java.lang.ClassNotFoundException {
|
||||||
InputStream stream = new FileInputStream(source);
|
InputStream stream = new FileInputStream(source);
|
||||||
//DEPRECATED: ANTLRInputStream input = new ANTLRInputStream(stream);
|
//DEPRECATED: ANTLRInputStream input = new ANTLRInputStream(stream);
|
||||||
CharStream input = CharStreams.fromStream(stream);
|
CharStream input = CharStreams.fromStream(stream);
|
||||||
Java8Lexer lexer = new Java8Lexer(input);
|
Java17Lexer lexer = new Java17Lexer(input);
|
||||||
CommonTokenStream tokens = new CommonTokenStream(lexer);
|
CommonTokenStream tokens = new CommonTokenStream(lexer);
|
||||||
Java8Parser parser = new Java8Parser(tokens);
|
Java17Parser parser = new Java17Parser(tokens);
|
||||||
return parser.compilationUnit();
|
return parser.compilationUnit();
|
||||||
/*
|
/*
|
||||||
SyntaxTreeGenerator generator = new SyntaxTreeGenerator(environment.getRegistry(source));
|
SyntaxTreeGenerator generator = new SyntaxTreeGenerator(environment.getRegistry(source));
|
||||||
|
@ -2,7 +2,7 @@ package de.dhbwstuttgart.parser.SyntaxTreeGenerator;
|
|||||||
|
|
||||||
import de.dhbwstuttgart.exceptions.NotImplementedException;
|
import de.dhbwstuttgart.exceptions.NotImplementedException;
|
||||||
import de.dhbwstuttgart.parser.NullToken;
|
import de.dhbwstuttgart.parser.NullToken;
|
||||||
import de.dhbwstuttgart.parser.antlr.Java8Parser;
|
import de.dhbwstuttgart.parser.antlr.Java17Parser;
|
||||||
import de.dhbwstuttgart.parser.scope.GenericsRegistry;
|
import de.dhbwstuttgart.parser.scope.GenericsRegistry;
|
||||||
import de.dhbwstuttgart.parser.scope.JavaClassRegistry;
|
import de.dhbwstuttgart.parser.scope.JavaClassRegistry;
|
||||||
import de.dhbwstuttgart.syntaxtree.*;
|
import de.dhbwstuttgart.syntaxtree.*;
|
||||||
@ -33,9 +33,9 @@ public class StatementGenerator {
|
|||||||
this.localVars = localVars;
|
this.localVars = localVars;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ParameterList convert(Java8Parser.FormalParameterListContext formalParameterListContext) {
|
public ParameterList convert(Java17Parser.FormalParameterListContext formalParameterListContext) {
|
||||||
List<FormalParameter> ret = new ArrayList<>();
|
List<FormalParameter> ret = new ArrayList<>();
|
||||||
List<Java8Parser.FormalParameterContext> fps = new ArrayList<>();
|
List<Java17Parser.FormalParameterContext> fps = new ArrayList<>();
|
||||||
if(formalParameterListContext == null || formalParameterListContext.lastFormalParameter() == null)
|
if(formalParameterListContext == null || formalParameterListContext.lastFormalParameter() == null)
|
||||||
return new ParameterList(ret, new NullToken()); //Dann ist die Parameterliste leer
|
return new ParameterList(ret, new NullToken()); //Dann ist die Parameterliste leer
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
fps.add(formalParameterListContext.lastFormalParameter().formalParameter());
|
fps.add(formalParameterListContext.lastFormalParameter().formalParameter());
|
||||||
|
|
||||||
for(Java8Parser.FormalParameterContext fp : fps){
|
for(Java17Parser.FormalParameterContext fp : fps){
|
||||||
String paramName = SyntaxTreeGenerator.convert(fp.variableDeclaratorId());
|
String paramName = SyntaxTreeGenerator.convert(fp.variableDeclaratorId());
|
||||||
RefTypeOrTPHOrWildcardOrGeneric type;
|
RefTypeOrTPHOrWildcardOrGeneric type;
|
||||||
if(fp.unannType() != null){
|
if(fp.unannType() != null){
|
||||||
@ -65,7 +65,7 @@ public class StatementGenerator {
|
|||||||
* StatementGeneration:
|
* StatementGeneration:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private Statement convert(Java8Parser.StatementContext stmt) {
|
private Statement convert(Java17Parser.StatementContext stmt) {
|
||||||
if (stmt.statementWithoutTrailingSubstatement() != null) {
|
if (stmt.statementWithoutTrailingSubstatement() != null) {
|
||||||
return convert(stmt.statementWithoutTrailingSubstatement());
|
return convert(stmt.statementWithoutTrailingSubstatement());
|
||||||
} else if (stmt.whileStatement() != null) {
|
} else if (stmt.whileStatement() != null) {
|
||||||
@ -81,7 +81,7 @@ public class StatementGenerator {
|
|||||||
}else throw new NotImplementedException();
|
}else throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.StatementNoShortIfContext stmt){
|
private Statement convert(Java17Parser.StatementNoShortIfContext stmt){
|
||||||
if(stmt.statementWithoutTrailingSubstatement() != null){
|
if(stmt.statementWithoutTrailingSubstatement() != null){
|
||||||
return convert(stmt.statementWithoutTrailingSubstatement());
|
return convert(stmt.statementWithoutTrailingSubstatement());
|
||||||
}else if(stmt.labeledStatementNoShortIf() != null){
|
}else if(stmt.labeledStatementNoShortIf() != null){
|
||||||
@ -95,7 +95,7 @@ public class StatementGenerator {
|
|||||||
}else throw new NotImplementedException();
|
}else throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.StatementWithoutTrailingSubstatementContext stmt) {
|
private Statement convert(Java17Parser.StatementWithoutTrailingSubstatementContext stmt) {
|
||||||
if(stmt.block() != null){
|
if(stmt.block() != null){
|
||||||
return convert(stmt.block(), false);
|
return convert(stmt.block(), false);
|
||||||
}else if(stmt.emptyStatement() != null){
|
}else if(stmt.emptyStatement() != null){
|
||||||
@ -123,10 +123,10 @@ public class StatementGenerator {
|
|||||||
}else throw new NotImplementedException();
|
}else throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Block convert(Java8Parser.BlockContext block, boolean addTrailingReturn) {
|
public Block convert(Java17Parser.BlockContext block, boolean addTrailingReturn) {
|
||||||
List<Statement> statements = new ArrayList<>();
|
List<Statement> statements = new ArrayList<>();
|
||||||
if(block.blockStatements() != null)
|
if(block.blockStatements() != null)
|
||||||
for(Java8Parser.BlockStatementContext statementContext : block.blockStatements().blockStatement()){
|
for(Java17Parser.BlockStatementContext statementContext : block.blockStatements().blockStatement()){
|
||||||
List<Statement> stmt = convert(statementContext);
|
List<Statement> stmt = convert(statementContext);
|
||||||
statements.addAll(stmt);
|
statements.addAll(stmt);
|
||||||
}
|
}
|
||||||
@ -134,7 +134,7 @@ public class StatementGenerator {
|
|||||||
return new Block(statements, block.getStart());
|
return new Block(statements, block.getStart());
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Statement> convert(Java8Parser.BlockStatementContext statementContext) {
|
private List<Statement> convert(Java17Parser.BlockStatementContext statementContext) {
|
||||||
if(statementContext.localVariableDeclarationStatement() != null){
|
if(statementContext.localVariableDeclarationStatement() != null){
|
||||||
return convert(statementContext.localVariableDeclarationStatement());
|
return convert(statementContext.localVariableDeclarationStatement());
|
||||||
}else if(statementContext.classDeclaration() != null){
|
}else if(statementContext.classDeclaration() != null){
|
||||||
@ -144,26 +144,26 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Statement> convert(Java8Parser.LocalVariableDeclarationStatementContext stmt) {
|
private List<Statement> convert(Java17Parser.LocalVariableDeclarationStatementContext stmt) {
|
||||||
Java8Parser.LocalVariableDeclarationContext declaration = stmt.localVariableDeclaration();
|
Java17Parser.LocalVariableDeclarationContext declaration = stmt.localVariableDeclaration();
|
||||||
return convert(declaration);
|
return convert(declaration);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.LabeledStatementContext labeledStatementContext) {
|
private Statement convert(Java17Parser.LabeledStatementContext labeledStatementContext) {
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
//return convert(labeledStatementContext.statement());
|
//return convert(labeledStatementContext.statement());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.LabeledStatementNoShortIfContext stmt){
|
private Statement convert(Java17Parser.LabeledStatementNoShortIfContext stmt){
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
//return convert(stmt.statementNoShortIf());
|
//return convert(stmt.statementNoShortIf());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.ExpressionStatementContext stmt){
|
private Statement convert(Java17Parser.ExpressionStatementContext stmt){
|
||||||
return convert(stmt.statementExpression());
|
return convert(stmt.statementExpression());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.StatementExpressionContext stmt) {
|
private Statement convert(Java17Parser.StatementExpressionContext stmt) {
|
||||||
if(stmt.assignment() != null){
|
if(stmt.assignment() != null){
|
||||||
return convert(stmt.assignment());
|
return convert(stmt.assignment());
|
||||||
}else if(stmt.preIncrementExpression() != null){
|
}else if(stmt.preIncrementExpression() != null){
|
||||||
@ -189,7 +189,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.MethodInvocationContext methodInvocationContext) {
|
private Statement convert(Java17Parser.MethodInvocationContext methodInvocationContext) {
|
||||||
String name;
|
String name;
|
||||||
if(methodInvocationContext.methodName()!=null){
|
if(methodInvocationContext.methodName()!=null){
|
||||||
name = methodInvocationContext.methodName().Identifier().getText();
|
name = methodInvocationContext.methodName().Identifier().getText();
|
||||||
@ -220,12 +220,12 @@ public class StatementGenerator {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ArgumentList convert(Java8Parser.ArgumentListContext argumentListContext) {
|
private ArgumentList convert(Java17Parser.ArgumentListContext argumentListContext) {
|
||||||
if(argumentListContext == null)return new ArgumentList(new ArrayList<>(), new NullToken());
|
if(argumentListContext == null)return new ArgumentList(new ArrayList<>(), new NullToken());
|
||||||
List<Expression> args = new ArrayList<>();
|
List<Expression> args = new ArrayList<>();
|
||||||
|
|
||||||
Token offset = new NullToken();
|
Token offset = new NullToken();
|
||||||
for(Java8Parser.ExpressionContext expr : argumentListContext.expression()){
|
for(Java17Parser.ExpressionContext expr : argumentListContext.expression()){
|
||||||
args.add(convert(expr));
|
args.add(convert(expr));
|
||||||
}
|
}
|
||||||
if(args.size()>0)offset = args.get(0).getOffset();
|
if(args.size()>0)offset = args.get(0).getOffset();
|
||||||
@ -283,13 +283,13 @@ public class StatementGenerator {
|
|||||||
return new FieldVar(receiver, parts[parts.length-1], TypePlaceholder.fresh(offset) ,offset);
|
return new FieldVar(receiver, parts[parts.length-1], TypePlaceholder.fresh(offset) ,offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.ExpressionNameContext expressionNameContext) {
|
private Expression convert(Java17Parser.ExpressionNameContext expressionNameContext) {
|
||||||
return generateLocalOrFieldVarOrClassName(expressionNameContext.getText(), expressionNameContext.getStart());
|
return generateLocalOrFieldVarOrClassName(expressionNameContext.getText(), expressionNameContext.getStart());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private Statement convert(Java8Parser.ClassInstanceCreationExpressionContext newExpression) {
|
private Statement convert(Java17Parser.ClassInstanceCreationExpressionContext newExpression) {
|
||||||
Java8Parser.TypeArgumentsContext genericArgs = null;
|
Java17Parser.TypeArgumentsContext genericArgs = null;
|
||||||
if(newExpression.expressionName()!= null)throw new NotImplementedException();
|
if(newExpression.expressionName()!= null)throw new NotImplementedException();
|
||||||
if(newExpression.typeArgumentsOrDiamond()!= null){
|
if(newExpression.typeArgumentsOrDiamond()!= null){
|
||||||
if(newExpression.typeArgumentsOrDiamond().typeArguments()!=null){
|
if(newExpression.typeArgumentsOrDiamond().typeArguments()!=null){
|
||||||
@ -310,7 +310,7 @@ public class StatementGenerator {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.PreIncrementExpressionContext stmt) {
|
private Statement convert(Java17Parser.PreIncrementExpressionContext stmt) {
|
||||||
Expression argument = convert(stmt.unaryExpression());
|
Expression argument = convert(stmt.unaryExpression());
|
||||||
Token offset = stmt.getStart();
|
Token offset = stmt.getStart();
|
||||||
Statement ret = new UnaryExpr(UnaryExpr.Operation.PREINCREMENT, argument, TypePlaceholder.fresh(offset), offset);
|
Statement ret = new UnaryExpr(UnaryExpr.Operation.PREINCREMENT, argument, TypePlaceholder.fresh(offset), offset);
|
||||||
@ -318,96 +318,96 @@ public class StatementGenerator {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.PreDecrementExpressionContext stmt) {
|
private Statement convert(Java17Parser.PreDecrementExpressionContext stmt) {
|
||||||
Statement ret = new UnaryExpr(UnaryExpr.Operation.PREDECREMENT, convert(stmt.unaryExpression()),
|
Statement ret = new UnaryExpr(UnaryExpr.Operation.PREDECREMENT, convert(stmt.unaryExpression()),
|
||||||
TypePlaceholder.fresh(stmt.getStart()), stmt.getStart());
|
TypePlaceholder.fresh(stmt.getStart()), stmt.getStart());
|
||||||
ret.setStatement();
|
ret.setStatement();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.PostIncrementExpressionContext stmt) {
|
private Statement convert(Java17Parser.PostIncrementExpressionContext stmt) {
|
||||||
Statement ret = new UnaryExpr(UnaryExpr.Operation.POSTINCREMENT, convert(stmt.postfixExpression()),
|
Statement ret = new UnaryExpr(UnaryExpr.Operation.POSTINCREMENT, convert(stmt.postfixExpression()),
|
||||||
TypePlaceholder.fresh(stmt.getStart()), stmt.getStart());
|
TypePlaceholder.fresh(stmt.getStart()), stmt.getStart());
|
||||||
ret.setStatement();
|
ret.setStatement();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.PostDecrementExpressionContext stmt) {
|
private Statement convert(Java17Parser.PostDecrementExpressionContext stmt) {
|
||||||
Statement ret = new UnaryExpr(UnaryExpr.Operation.POSTDECREMENT, convert(stmt.postfixExpression()),
|
Statement ret = new UnaryExpr(UnaryExpr.Operation.POSTDECREMENT, convert(stmt.postfixExpression()),
|
||||||
TypePlaceholder.fresh(stmt.getStart()), stmt.getStart());
|
TypePlaceholder.fresh(stmt.getStart()), stmt.getStart());
|
||||||
ret.setStatement();
|
ret.setStatement();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.AssignmentContext stmt) {
|
private Statement convert(Java17Parser.AssignmentContext stmt) {
|
||||||
AssignLeftSide leftHandSide = convert(stmt.leftHandSide());
|
AssignLeftSide leftHandSide = convert(stmt.leftHandSide());
|
||||||
Statement ret = new Assign(leftHandSide, convert(stmt.expression()), stmt.getStart());
|
Statement ret = new Assign(leftHandSide, convert(stmt.expression()), stmt.getStart());
|
||||||
ret.setStatement();
|
ret.setStatement();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private AssignLeftSide convert(Java8Parser.LeftHandSideContext leftHandSide) {
|
private AssignLeftSide convert(Java17Parser.LeftHandSideContext leftHandSide) {
|
||||||
Expression leftSide = generateLocalOrFieldVarOrClassName(leftHandSide.getText(), leftHandSide.getStart());
|
Expression leftSide = generateLocalOrFieldVarOrClassName(leftHandSide.getText(), leftHandSide.getStart());
|
||||||
if(leftSide instanceof FieldVar)return new AssignToField((FieldVar) leftSide);
|
if(leftSide instanceof FieldVar)return new AssignToField((FieldVar) leftSide);
|
||||||
else if (leftSide instanceof LocalVar)return new AssignToLocal((LocalVar) leftSide);
|
else if (leftSide instanceof LocalVar)return new AssignToLocal((LocalVar) leftSide);
|
||||||
else throw new NotImplementedException();
|
else throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.IfThenStatementContext stmt){
|
private Statement convert(Java17Parser.IfThenStatementContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.IfThenElseStatementContext stmt){
|
private Statement convert(Java17Parser.IfThenElseStatementContext stmt){
|
||||||
Expression expr = convert(stmt.parExpression().expression());
|
Expression expr = convert(stmt.parExpression().expression());
|
||||||
Statement thenBlock = convert(stmt.statementNoShortIf());
|
Statement thenBlock = convert(stmt.statementNoShortIf());
|
||||||
Statement elseBlock = convert(stmt.statement());
|
Statement elseBlock = convert(stmt.statement());
|
||||||
return new IfStmt(TypePlaceholder.fresh(stmt.getStart()), expr, thenBlock, elseBlock, stmt.getStart());
|
return new IfStmt(TypePlaceholder.fresh(stmt.getStart()), expr, thenBlock, elseBlock, stmt.getStart());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.IfThenElseStatementNoShortIfContext stmt){
|
private Statement convert(Java17Parser.IfThenElseStatementNoShortIfContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.AssertStatementContext stmt){
|
private Statement convert(Java17Parser.AssertStatementContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.SwitchStatementContext stmt){
|
private Statement convert(Java17Parser.SwitchStatementContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.SwitchBlockContext stmt){
|
private Statement convert(Java17Parser.SwitchBlockContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.SwitchBlockStatementGroupContext stmt){
|
private Statement convert(Java17Parser.SwitchBlockStatementGroupContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.WhileStatementContext stmt){
|
private Statement convert(Java17Parser.WhileStatementContext stmt){
|
||||||
Expression expr = convert(stmt.parExpression().expression());
|
Expression expr = convert(stmt.parExpression().expression());
|
||||||
Statement block = convert(stmt.statement());
|
Statement block = convert(stmt.statement());
|
||||||
return new WhileStmt(expr, block,stmt.getStart());
|
return new WhileStmt(expr, block,stmt.getStart());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.WhileStatementNoShortIfContext stmt){
|
private Statement convert(Java17Parser.WhileStatementNoShortIfContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.DoStatementContext stmt){
|
private Statement convert(Java17Parser.DoStatementContext stmt){
|
||||||
Statement block = convert(stmt.statement());
|
Statement block = convert(stmt.statement());
|
||||||
Expression expr = convert(stmt.parExpression().expression());
|
Expression expr = convert(stmt.parExpression().expression());
|
||||||
return new DoStmt(expr,block,stmt.getStart());
|
return new DoStmt(expr,block,stmt.getStart());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.ForStatementContext stmt){
|
private Statement convert(Java17Parser.ForStatementContext stmt){
|
||||||
if(stmt.basicForStatement() != null){
|
if(stmt.basicForStatement() != null){
|
||||||
return convert(stmt.basicForStatement());
|
return convert(stmt.basicForStatement());
|
||||||
}else if(stmt.enhancedForStatement() != null){
|
}else if(stmt.enhancedForStatement() != null){
|
||||||
@ -415,7 +415,7 @@ public class StatementGenerator {
|
|||||||
}else throw new NotImplementedException();
|
}else throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.ForStatementNoShortIfContext stmt){
|
private Statement convert(Java17Parser.ForStatementNoShortIfContext stmt){
|
||||||
if(stmt.basicForStatementNoShortIf() != null){
|
if(stmt.basicForStatementNoShortIf() != null){
|
||||||
return convert(stmt.basicForStatementNoShortIf());
|
return convert(stmt.basicForStatementNoShortIf());
|
||||||
}else if(stmt.enhancedForStatementNoShortIf() != null){
|
}else if(stmt.enhancedForStatementNoShortIf() != null){
|
||||||
@ -423,17 +423,17 @@ public class StatementGenerator {
|
|||||||
}else throw new NotImplementedException();
|
}else throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.BasicForStatementContext stmt){
|
private Statement convert(Java17Parser.BasicForStatementContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.BasicForStatementNoShortIfContext stmt){
|
private Statement convert(Java17Parser.BasicForStatementNoShortIfContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Statement> convert(Java8Parser.ForInitContext stmt){
|
private List<Statement> convert(Java17Parser.ForInitContext stmt){
|
||||||
if(stmt.statementExpressionList() != null){
|
if(stmt.statementExpressionList() != null){
|
||||||
return Arrays.asList(convert(stmt.statementExpressionList()));
|
return Arrays.asList(convert(stmt.statementExpressionList()));
|
||||||
}else if(stmt.localVariableDeclaration() != null){
|
}else if(stmt.localVariableDeclaration() != null){
|
||||||
@ -441,7 +441,7 @@ public class StatementGenerator {
|
|||||||
}else throw new NotImplementedException();
|
}else throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Statement> convert(Java8Parser.LocalVariableDeclarationContext declaration) {
|
private List<Statement> convert(Java17Parser.LocalVariableDeclarationContext declaration) {
|
||||||
List<Statement> ret = new ArrayList<>();
|
List<Statement> ret = new ArrayList<>();
|
||||||
if(declaration.variableModifier() != null && declaration.variableModifier().size() > 0){
|
if(declaration.variableModifier() != null && declaration.variableModifier().size() > 0){
|
||||||
//TODO
|
//TODO
|
||||||
@ -457,9 +457,9 @@ public class StatementGenerator {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Statement> generateLocalVariableAssignments(List<Java8Parser.VariableDeclaratorContext> varDeclarators, RefTypeOrTPHOrWildcardOrGeneric type){
|
private List<Statement> generateLocalVariableAssignments(List<Java17Parser.VariableDeclaratorContext> varDeclarators, RefTypeOrTPHOrWildcardOrGeneric type){
|
||||||
List<Statement> ret = new ArrayList<>();
|
List<Statement> ret = new ArrayList<>();
|
||||||
for(Java8Parser.VariableDeclaratorContext varDecl : varDeclarators){
|
for(Java17Parser.VariableDeclaratorContext varDecl : varDeclarators){
|
||||||
TerminalNode name = varDecl.variableDeclaratorId().Identifier();
|
TerminalNode name = varDecl.variableDeclaratorId().Identifier();
|
||||||
|
|
||||||
ret.add(new LocalVarDecl(name.getText(), type, name.getSymbol()));
|
ret.add(new LocalVarDecl(name.getText(), type, name.getSymbol()));
|
||||||
@ -478,7 +478,7 @@ public class StatementGenerator {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Statement generateFieldAssignment(Java8Parser.VariableDeclaratorContext varDecl, RefTypeOrTPHOrWildcardOrGeneric type){
|
public Statement generateFieldAssignment(Java17Parser.VariableDeclaratorContext varDecl, RefTypeOrTPHOrWildcardOrGeneric type){
|
||||||
TerminalNode name = varDecl.variableDeclaratorId().Identifier();
|
TerminalNode name = varDecl.variableDeclaratorId().Identifier();
|
||||||
Expression initValue;
|
Expression initValue;
|
||||||
if(varDecl.variableInitializer().arrayInitializer() != null){
|
if(varDecl.variableInitializer().arrayInitializer() != null){
|
||||||
@ -492,36 +492,36 @@ public class StatementGenerator {
|
|||||||
initValue, name.getSymbol()));
|
initValue, name.getSymbol()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.ForUpdateContext stmt){
|
private Statement convert(Java17Parser.ForUpdateContext stmt){
|
||||||
return convert(stmt.statementExpressionList());
|
return convert(stmt.statementExpressionList());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.StatementExpressionListContext stmt){
|
private Statement convert(Java17Parser.StatementExpressionListContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.EnhancedForStatementContext stmt){
|
private Statement convert(Java17Parser.EnhancedForStatementContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.EnhancedForStatementNoShortIfContext stmt){
|
private Statement convert(Java17Parser.EnhancedForStatementNoShortIfContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.BreakStatementContext stmt){
|
private Statement convert(Java17Parser.BreakStatementContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.ContinueStatementContext stmt){
|
private Statement convert(Java17Parser.ContinueStatementContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.ReturnStatementContext stmt){
|
private Statement convert(Java17Parser.ReturnStatementContext stmt){
|
||||||
if(stmt.expression() != null){
|
if(stmt.expression() != null){
|
||||||
return new Return( convert(stmt.expression()),stmt.getStart() );
|
return new Return( convert(stmt.expression()),stmt.getStart() );
|
||||||
}else{
|
}else{
|
||||||
@ -529,27 +529,27 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.ThrowStatementContext stmt){
|
private Statement convert(Java17Parser.ThrowStatementContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.SynchronizedStatementContext stmt){
|
private Statement convert(Java17Parser.SynchronizedStatementContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.TryStatementContext stmt){
|
private Statement convert(Java17Parser.TryStatementContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.CatchesContext stmt){
|
private Statement convert(Java17Parser.CatchesContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.CatchClauseContext stmt){
|
private Statement convert(Java17Parser.CatchClauseContext stmt){
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
@ -558,7 +558,7 @@ public class StatementGenerator {
|
|||||||
***************+ Expression Conversions:
|
***************+ Expression Conversions:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private Expression convert(Java8Parser.ExpressionContext expression) {
|
private Expression convert(Java17Parser.ExpressionContext expression) {
|
||||||
if(expression.lambdaExpression()!=null){
|
if(expression.lambdaExpression()!=null){
|
||||||
return convert(expression.lambdaExpression());
|
return convert(expression.lambdaExpression());
|
||||||
}else{
|
}else{
|
||||||
@ -566,7 +566,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.AssignmentExpressionContext expression) {
|
private Expression convert(Java17Parser.AssignmentExpressionContext expression) {
|
||||||
if(expression.conditionalExpression() != null){
|
if(expression.conditionalExpression() != null){
|
||||||
return convert(expression.conditionalExpression());
|
return convert(expression.conditionalExpression());
|
||||||
}else{
|
}else{
|
||||||
@ -574,7 +574,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.ConditionalExpressionContext expression) {
|
private Expression convert(Java17Parser.ConditionalExpressionContext expression) {
|
||||||
if(expression.conditionalOrExpression() != null){
|
if(expression.conditionalOrExpression() != null){
|
||||||
return convert(expression.conditionalOrExpression());
|
return convert(expression.conditionalOrExpression());
|
||||||
}else{
|
}else{
|
||||||
@ -582,7 +582,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.ConditionalOrExpressionContext expression) {
|
private Expression convert(Java17Parser.ConditionalOrExpressionContext expression) {
|
||||||
if(expression.conditionalOrExpression() == null){
|
if(expression.conditionalOrExpression() == null){
|
||||||
return convert(expression.conditionalAndExpression());
|
return convert(expression.conditionalAndExpression());
|
||||||
}else{
|
}else{
|
||||||
@ -590,7 +590,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.ConditionalAndExpressionContext expression) {
|
private Expression convert(Java17Parser.ConditionalAndExpressionContext expression) {
|
||||||
if(expression.conditionalAndExpression() == null){
|
if(expression.conditionalAndExpression() == null){
|
||||||
return convert(expression.inclusiveOrExpression());
|
return convert(expression.inclusiveOrExpression());
|
||||||
}else{
|
}else{
|
||||||
@ -598,7 +598,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.InclusiveOrExpressionContext expression) {
|
private Expression convert(Java17Parser.InclusiveOrExpressionContext expression) {
|
||||||
if(expression.inclusiveOrExpression() == null){
|
if(expression.inclusiveOrExpression() == null){
|
||||||
return convert(expression.exclusiveOrExpression());
|
return convert(expression.exclusiveOrExpression());
|
||||||
}else{
|
}else{
|
||||||
@ -606,7 +606,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.ExclusiveOrExpressionContext expression) {
|
private Expression convert(Java17Parser.ExclusiveOrExpressionContext expression) {
|
||||||
if(expression.exclusiveOrExpression() == null){
|
if(expression.exclusiveOrExpression() == null){
|
||||||
return convert(expression.andExpression());
|
return convert(expression.andExpression());
|
||||||
}else{
|
}else{
|
||||||
@ -614,7 +614,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.AndExpressionContext expression) {
|
private Expression convert(Java17Parser.AndExpressionContext expression) {
|
||||||
if(expression.andExpression() == null){
|
if(expression.andExpression() == null){
|
||||||
return convert(expression.equalityExpression());
|
return convert(expression.equalityExpression());
|
||||||
}else{
|
}else{
|
||||||
@ -622,7 +622,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.EqualityExpressionContext expression) {
|
private Expression convert(Java17Parser.EqualityExpressionContext expression) {
|
||||||
if(expression.equalityExpression() == null){
|
if(expression.equalityExpression() == null){
|
||||||
return convert(expression.relationalExpression());
|
return convert(expression.relationalExpression());
|
||||||
}else{
|
}else{
|
||||||
@ -633,7 +633,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.RelationalExpressionContext expression) {
|
private Expression convert(Java17Parser.RelationalExpressionContext expression) {
|
||||||
if(expression.relationalExpression() == null) {
|
if(expression.relationalExpression() == null) {
|
||||||
return convert(expression.shiftExpression());
|
return convert(expression.shiftExpression());
|
||||||
}else {
|
}else {
|
||||||
@ -677,7 +677,7 @@ public class StatementGenerator {
|
|||||||
// throw new NotImplementedException();
|
// throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.ShiftExpressionContext expression) {
|
private Expression convert(Java17Parser.ShiftExpressionContext expression) {
|
||||||
if(expression.shiftExpression() == null){
|
if(expression.shiftExpression() == null){
|
||||||
return convert(expression.additiveExpression());
|
return convert(expression.additiveExpression());
|
||||||
}else{
|
}else{
|
||||||
@ -685,7 +685,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.AdditiveExpressionContext expression) {
|
private Expression convert(Java17Parser.AdditiveExpressionContext expression) {
|
||||||
|
|
||||||
if(expression.additiveExpression() == null){
|
if(expression.additiveExpression() == null){
|
||||||
return convert(expression.multiplicativeExpression());
|
return convert(expression.multiplicativeExpression());
|
||||||
@ -698,7 +698,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.MultiplicativeExpressionContext expression) {
|
private Expression convert(Java17Parser.MultiplicativeExpressionContext expression) {
|
||||||
if(expression.multiplicativeExpression() == null){
|
if(expression.multiplicativeExpression() == null){
|
||||||
return convert(expression.unaryExpression());
|
return convert(expression.unaryExpression());
|
||||||
}else{
|
}else{
|
||||||
@ -710,7 +710,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.UnaryExpressionContext expression) {
|
private Expression convert(Java17Parser.UnaryExpressionContext expression) {
|
||||||
if(expression.preIncrementExpression() != null){
|
if(expression.preIncrementExpression() != null){
|
||||||
return convert(expression.preIncrementExpression());
|
return convert(expression.preIncrementExpression());
|
||||||
}else if(expression.preDecrementExpression() != null){
|
}else if(expression.preDecrementExpression() != null){
|
||||||
@ -730,7 +730,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.UnaryExpressionNotPlusMinusContext expression) {
|
private Expression convert(Java17Parser.UnaryExpressionNotPlusMinusContext expression) {
|
||||||
if(expression.postfixExpression() != null){
|
if(expression.postfixExpression() != null){
|
||||||
return convert(expression.postfixExpression());
|
return convert(expression.postfixExpression());
|
||||||
}else if(expression.castExpression() != null){
|
}else if(expression.castExpression() != null){
|
||||||
@ -740,7 +740,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.CastExpressionContext expressionContext) {
|
private Expression convert(Java17Parser.CastExpressionContext expressionContext) {
|
||||||
Expression expr = null;
|
Expression expr = null;
|
||||||
if(expressionContext.unaryExpression() != null){
|
if(expressionContext.unaryExpression() != null){
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
@ -752,7 +752,7 @@ public class StatementGenerator {
|
|||||||
return new CastExpr(TypeGenerator.convert(expressionContext.referenceType(), reg, generics),expr, expressionContext.getStart());
|
return new CastExpr(TypeGenerator.convert(expressionContext.referenceType(), reg, generics),expr, expressionContext.getStart());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.PostfixExpressionContext expression) {
|
private Expression convert(Java17Parser.PostfixExpressionContext expression) {
|
||||||
Expression expr;
|
Expression expr;
|
||||||
if(expression.primary() != null){
|
if(expression.primary() != null){
|
||||||
expr = convert(expression.primary());
|
expr = convert(expression.primary());
|
||||||
@ -764,17 +764,17 @@ public class StatementGenerator {
|
|||||||
return expr;
|
return expr;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(Java8Parser.PostIncrementExpression_lf_postfixExpressionContext inc : expression.postIncrementExpression_lf_postfixExpression()){
|
for(Java17Parser.PostIncrementExpression_lf_postfixExpressionContext inc : expression.postIncrementExpression_lf_postfixExpression()){
|
||||||
expr = new UnaryExpr(UnaryExpr.Operation.POSTINCREMENT, expr, TypePlaceholder.fresh(inc.getStart()), inc.getStart());
|
expr = new UnaryExpr(UnaryExpr.Operation.POSTINCREMENT, expr, TypePlaceholder.fresh(inc.getStart()), inc.getStart());
|
||||||
}
|
}
|
||||||
for(Java8Parser.PostDecrementExpression_lf_postfixExpressionContext dec : expression.postDecrementExpression_lf_postfixExpression()){
|
for(Java17Parser.PostDecrementExpression_lf_postfixExpressionContext dec : expression.postDecrementExpression_lf_postfixExpression()){
|
||||||
expr = new UnaryExpr(UnaryExpr.Operation.POSTDECREMENT, expr, TypePlaceholder.fresh(dec.getStart()), dec.getStart());
|
expr = new UnaryExpr(UnaryExpr.Operation.POSTDECREMENT, expr, TypePlaceholder.fresh(dec.getStart()), dec.getStart());
|
||||||
}
|
}
|
||||||
|
|
||||||
return expr;
|
return expr;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.PrimaryContext primary) {
|
private Expression convert(Java17Parser.PrimaryContext primary) {
|
||||||
Expression expr;
|
Expression expr;
|
||||||
if(primary.primaryNoNewArray_lfno_primary()!=null){
|
if(primary.primaryNoNewArray_lfno_primary()!=null){
|
||||||
expr = convert(primary.primaryNoNewArray_lfno_primary());
|
expr = convert(primary.primaryNoNewArray_lfno_primary());
|
||||||
@ -783,14 +783,14 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(primary.primaryNoNewArray_lf_primary() != null && primary.primaryNoNewArray_lf_primary().size()>0){
|
if(primary.primaryNoNewArray_lf_primary() != null && primary.primaryNoNewArray_lf_primary().size()>0){
|
||||||
for(Java8Parser.PrimaryNoNewArray_lf_primaryContext e : primary.primaryNoNewArray_lf_primary()){
|
for(Java17Parser.PrimaryNoNewArray_lf_primaryContext e : primary.primaryNoNewArray_lf_primary()){
|
||||||
expr = convert(expr, e);
|
expr = convert(expr, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return expr;
|
return expr;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Expression expr, Java8Parser.PrimaryNoNewArray_lf_primaryContext e) {
|
private Expression convert(Expression expr, Java17Parser.PrimaryNoNewArray_lf_primaryContext e) {
|
||||||
if(e.classInstanceCreationExpression_lf_primary() != null){
|
if(e.classInstanceCreationExpression_lf_primary() != null){
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}else if(e.fieldAccess_lf_primary() != null){
|
}else if(e.fieldAccess_lf_primary() != null){
|
||||||
@ -801,7 +801,7 @@ public class StatementGenerator {
|
|||||||
}else if(e.methodReference_lf_primary() != null){
|
}else if(e.methodReference_lf_primary() != null){
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}else {
|
}else {
|
||||||
Java8Parser.MethodInvocation_lf_primaryContext ctxt = e.methodInvocation_lf_primary();
|
Java17Parser.MethodInvocation_lf_primaryContext ctxt = e.methodInvocation_lf_primary();
|
||||||
String methodName = ctxt.Identifier().toString();
|
String methodName = ctxt.Identifier().toString();
|
||||||
ArrayList<RefTypeOrTPHOrWildcardOrGeneric> argTypes = ctxt.argumentList().expression().stream()
|
ArrayList<RefTypeOrTPHOrWildcardOrGeneric> argTypes = ctxt.argumentList().expression().stream()
|
||||||
.map(x -> TypePlaceholder.fresh(e.getStart()))
|
.map(x -> TypePlaceholder.fresh(e.getStart()))
|
||||||
@ -811,11 +811,11 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.ArrayCreationExpressionContext expression) {
|
private Expression convert(Java17Parser.ArrayCreationExpressionContext expression) {
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.PrimaryNoNewArray_lfno_primaryContext expression) {
|
private Expression convert(Java17Parser.PrimaryNoNewArray_lfno_primaryContext expression) {
|
||||||
if(expression.literal() != null){
|
if(expression.literal() != null){
|
||||||
return convert(expression.literal());
|
return convert(expression.literal());
|
||||||
}else if(expression.parExpression()!=null){
|
}else if(expression.parExpression()!=null){
|
||||||
@ -843,12 +843,12 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.FieldAccess_lfno_primaryContext fieldAccess_lfno_primaryContext) {
|
private Expression convert(Java17Parser.FieldAccess_lfno_primaryContext fieldAccess_lfno_primaryContext) {
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.ClassInstanceCreationExpression_lfno_primaryContext newExpression) {
|
private Expression convert(Java17Parser.ClassInstanceCreationExpression_lfno_primaryContext newExpression) {
|
||||||
Java8Parser.TypeArgumentsContext genericArgs = null;
|
Java17Parser.TypeArgumentsContext genericArgs = null;
|
||||||
if(newExpression.expressionName()!= null)throw new NotImplementedException();
|
if(newExpression.expressionName()!= null)throw new NotImplementedException();
|
||||||
if(newExpression.typeArgumentsOrDiamond()!= null){
|
if(newExpression.typeArgumentsOrDiamond()!= null){
|
||||||
if(newExpression.typeArgumentsOrDiamond().typeArguments()!=null){
|
if(newExpression.typeArgumentsOrDiamond().typeArguments()!=null){
|
||||||
@ -867,7 +867,7 @@ public class StatementGenerator {
|
|||||||
return new NewClass(newClass, args, null, argTypes, newExpression.getStart());
|
return new NewClass(newClass, args, null, argTypes, newExpression.getStart());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.LiteralContext literal) {
|
private Expression convert(Java17Parser.LiteralContext literal) {
|
||||||
if(literal.IntegerLiteral() != null){
|
if(literal.IntegerLiteral() != null){
|
||||||
Number value = Integer.parseInt(literal.IntegerLiteral().getText());
|
Number value = Integer.parseInt(literal.IntegerLiteral().getText());
|
||||||
return new Literal(TypePlaceholder.fresh(literal.getStart()),
|
return new Literal(TypePlaceholder.fresh(literal.getStart()),
|
||||||
@ -901,7 +901,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.MethodInvocation_lfno_primaryContext methodInvocationContext) {
|
private Expression convert(Java17Parser.MethodInvocation_lfno_primaryContext methodInvocationContext) {
|
||||||
String name;
|
String name;
|
||||||
if(methodInvocationContext.methodName()!=null){
|
if(methodInvocationContext.methodName()!=null){
|
||||||
name = methodInvocationContext.methodName().Identifier().getText();
|
name = methodInvocationContext.methodName().Identifier().getText();
|
||||||
@ -931,8 +931,8 @@ public class StatementGenerator {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Expression convert(Java8Parser.LambdaExpressionContext expression) {
|
private Expression convert(Java17Parser.LambdaExpressionContext expression) {
|
||||||
Java8Parser.LambdaParametersContext lambdaParams = expression.lambdaParameters();
|
Java17Parser.LambdaParametersContext lambdaParams = expression.lambdaParameters();
|
||||||
ParameterList params;
|
ParameterList params;
|
||||||
if(lambdaParams.Identifier() != null){
|
if(lambdaParams.Identifier() != null){
|
||||||
List<FormalParameter> parameterList = new ArrayList<>();
|
List<FormalParameter> parameterList = new ArrayList<>();
|
||||||
|
@ -6,7 +6,7 @@ import java.lang.ClassNotFoundException;
|
|||||||
|
|
||||||
import de.dhbwstuttgart.exceptions.TypeinferenceException;
|
import de.dhbwstuttgart.exceptions.TypeinferenceException;
|
||||||
import de.dhbwstuttgart.parser.NullToken;
|
import de.dhbwstuttgart.parser.NullToken;
|
||||||
import de.dhbwstuttgart.parser.antlr.Java8Parser;
|
import de.dhbwstuttgart.parser.antlr.Java17Parser;
|
||||||
import de.dhbwstuttgart.parser.scope.GatherNames;
|
import de.dhbwstuttgart.parser.scope.GatherNames;
|
||||||
import de.dhbwstuttgart.parser.scope.GenericsRegistry;
|
import de.dhbwstuttgart.parser.scope.GenericsRegistry;
|
||||||
import de.dhbwstuttgart.parser.scope.JavaClassName;
|
import de.dhbwstuttgart.parser.scope.JavaClassName;
|
||||||
@ -52,7 +52,7 @@ public class SyntaxTreeGenerator{
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Converts type name to String.
|
// Converts type name to String.
|
||||||
public String convertTypeName(Java8Parser.TypeNameContext ctx){
|
public String convertTypeName(Java17Parser.TypeNameContext ctx){
|
||||||
String ret;
|
String ret;
|
||||||
if(ctx.packageOrTypeName() == null){
|
if(ctx.packageOrTypeName() == null){
|
||||||
ret = ctx.Identifier().toString();
|
ret = ctx.Identifier().toString();
|
||||||
@ -64,7 +64,7 @@ public class SyntaxTreeGenerator{
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Converts PackageOrTypeName to String.
|
// Converts PackageOrTypeName to String.
|
||||||
public String convertPackageOrTypeName(Java8Parser.PackageOrTypeNameContext ctx){
|
public String convertPackageOrTypeName(Java17Parser.PackageOrTypeNameContext ctx){
|
||||||
String ret;
|
String ret;
|
||||||
if(ctx.packageOrTypeName() == null){
|
if(ctx.packageOrTypeName() == null){
|
||||||
ret = ctx.Identifier().toString();
|
ret = ctx.Identifier().toString();
|
||||||
@ -75,12 +75,12 @@ public class SyntaxTreeGenerator{
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SourceFile convert(Java8Parser.CompilationUnitContext ctx, PackageCrawler packageCrawler, ClassLoader classLoader) throws ClassNotFoundException{
|
public SourceFile convert(Java17Parser.CompilationUnitContext ctx, PackageCrawler packageCrawler, ClassLoader classLoader) throws ClassNotFoundException{
|
||||||
if(ctx.packageDeclaration()!=null)this.pkgName = convert(ctx.packageDeclaration());
|
if(ctx.packageDeclaration()!=null)this.pkgName = convert(ctx.packageDeclaration());
|
||||||
List<ClassOrInterface> classes = new ArrayList<>();
|
List<ClassOrInterface> classes = new ArrayList<>();
|
||||||
Map<String, Integer> imports = GatherNames.getImports(ctx, packageCrawler, classLoader);
|
Map<String, Integer> imports = GatherNames.getImports(ctx, packageCrawler, classLoader);
|
||||||
this.imports = imports.keySet().stream().map(name -> reg.getName(name)).collect(Collectors.toSet());
|
this.imports = imports.keySet().stream().map(name -> reg.getName(name)).collect(Collectors.toSet());
|
||||||
for(Java8Parser.TypeDeclarationContext typeDecl : ctx.typeDeclaration()){
|
for(Java17Parser.TypeDeclarationContext typeDecl : ctx.typeDeclaration()){
|
||||||
ClassOrInterface newClass;
|
ClassOrInterface newClass;
|
||||||
if(typeDecl.classDeclaration() != null){
|
if(typeDecl.classDeclaration() != null){
|
||||||
newClass = convertClass(typeDecl.classDeclaration());
|
newClass = convertClass(typeDecl.classDeclaration());
|
||||||
@ -93,7 +93,7 @@ public class SyntaxTreeGenerator{
|
|||||||
return new SourceFile(this.pkgName, classes, this.imports);
|
return new SourceFile(this.pkgName, classes, this.imports);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String convert(Java8Parser.PackageDeclarationContext packageDeclarationContext) {
|
private String convert(Java17Parser.PackageDeclarationContext packageDeclarationContext) {
|
||||||
String ret = "";
|
String ret = "";
|
||||||
for(TerminalNode identifier : packageDeclarationContext.Identifier()){
|
for(TerminalNode identifier : packageDeclarationContext.Identifier()){
|
||||||
ret += identifier.getText()+".";
|
ret += identifier.getText()+".";
|
||||||
@ -102,8 +102,8 @@ public class SyntaxTreeGenerator{
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Method convert(Java8Parser.MethodDeclarationContext methodDeclarationContext, JavaClassName parentClass, RefType superClass, GenericsRegistry generics) {
|
public Method convert(Java17Parser.MethodDeclarationContext methodDeclarationContext, JavaClassName parentClass, RefType superClass, GenericsRegistry generics) {
|
||||||
Java8Parser.MethodHeaderContext header = methodDeclarationContext.methodHeader();
|
Java17Parser.MethodHeaderContext header = methodDeclarationContext.methodHeader();
|
||||||
int modifiers = SyntaxTreeGenerator.convert(methodDeclarationContext.methodModifier());
|
int modifiers = SyntaxTreeGenerator.convert(methodDeclarationContext.methodModifier());
|
||||||
GenericsRegistry localGenerics = createGenerics(methodDeclarationContext.methodHeader().typeParameters(),
|
GenericsRegistry localGenerics = createGenerics(methodDeclarationContext.methodHeader().typeParameters(),
|
||||||
parentClass, header.methodDeclarator().Identifier().getText(), reg, generics);
|
parentClass, header.methodDeclarator().Identifier().getText(), reg, generics);
|
||||||
@ -111,8 +111,8 @@ public class SyntaxTreeGenerator{
|
|||||||
return convert(modifiers, header, methodDeclarationContext.methodBody(),parentClass, superClass, localGenerics);
|
return convert(modifiers, header, methodDeclarationContext.methodBody(),parentClass, superClass, localGenerics);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Method convert(Java8Parser.InterfaceMethodDeclarationContext ctx, JavaClassName parentClass, RefType superClass, GenericsRegistry generics) {
|
public Method convert(Java17Parser.InterfaceMethodDeclarationContext ctx, JavaClassName parentClass, RefType superClass, GenericsRegistry generics) {
|
||||||
Java8Parser.MethodHeaderContext header = ctx.methodHeader();
|
Java17Parser.MethodHeaderContext header = ctx.methodHeader();
|
||||||
int modifiers = SyntaxTreeGenerator.convertInterfaceModifier(ctx.interfaceMethodModifier());
|
int modifiers = SyntaxTreeGenerator.convertInterfaceModifier(ctx.interfaceMethodModifier());
|
||||||
|
|
||||||
GenericsRegistry localGenerics = createGenerics(header.typeParameters(), parentClass, header.methodDeclarator().Identifier().getText(), reg, generics);
|
GenericsRegistry localGenerics = createGenerics(header.typeParameters(), parentClass, header.methodDeclarator().Identifier().getText(), reg, generics);
|
||||||
@ -121,7 +121,7 @@ public class SyntaxTreeGenerator{
|
|||||||
return convert(modifiers, header, ctx.methodBody(),parentClass, superClass, localGenerics);
|
return convert(modifiers, header, ctx.methodBody(),parentClass, superClass, localGenerics);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Method convert(int modifiers, Java8Parser.MethodHeaderContext header, Java8Parser.MethodBodyContext body,
|
private Method convert(int modifiers, Java17Parser.MethodHeaderContext header, Java17Parser.MethodBodyContext body,
|
||||||
JavaClassName parentClass, RefType superClass, GenericsRegistry localGenerics) {
|
JavaClassName parentClass, RefType superClass, GenericsRegistry localGenerics) {
|
||||||
|
|
||||||
StatementGenerator stmtGen = new StatementGenerator(reg, localGenerics, fields, new HashMap<>());
|
StatementGenerator stmtGen = new StatementGenerator(reg, localGenerics, fields, new HashMap<>());
|
||||||
@ -158,7 +158,7 @@ public class SyntaxTreeGenerator{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClassOrInterface convertClass(Java8Parser.ClassDeclarationContext ctx) {
|
private ClassOrInterface convertClass(Java17Parser.ClassDeclarationContext ctx) {
|
||||||
ClassOrInterface newClass;
|
ClassOrInterface newClass;
|
||||||
fieldInitializations = new ArrayList<>(); //PL 2019-10-22: muss für jede Klasse neu initilisiert werden
|
fieldInitializations = new ArrayList<>(); //PL 2019-10-22: muss für jede Klasse neu initilisiert werden
|
||||||
if(ctx.normalClassDeclaration() != null){
|
if(ctx.normalClassDeclaration() != null){
|
||||||
@ -170,10 +170,10 @@ public class SyntaxTreeGenerator{
|
|||||||
return newClass;
|
return newClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClassOrInterface convertNormal(Java8Parser.NormalClassDeclarationContext ctx) {
|
private ClassOrInterface convertNormal(Java17Parser.NormalClassDeclarationContext ctx) {
|
||||||
int modifiers = 0;
|
int modifiers = 0;
|
||||||
if(ctx.classModifier() != null){
|
if(ctx.classModifier() != null){
|
||||||
for(Java8Parser.ClassModifierContext mod : ctx.classModifier()){
|
for(Java17Parser.ClassModifierContext mod : ctx.classModifier()){
|
||||||
int newModifier = convert(mod);
|
int newModifier = convert(mod);
|
||||||
modifiers += newModifier;
|
modifiers += newModifier;
|
||||||
}
|
}
|
||||||
@ -230,14 +230,14 @@ public class SyntaxTreeGenerator{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
private List<Statement> generateFieldInitializations(Java8Parser.ClassBodyContext classBodyContext, GenericsRegistry generics) {
|
private List<Statement> generateFieldInitializations(Java17Parser.ClassBodyContext classBodyContext, GenericsRegistry generics) {
|
||||||
List<Statement> ret = new ArrayList<>();
|
List<Statement> ret = new ArrayList<>();
|
||||||
for(Java8Parser.ClassBodyDeclarationContext classMember : classBodyContext.classBodyDeclaration()){
|
for(Java17Parser.ClassBodyDeclarationContext classMember : classBodyContext.classBodyDeclaration()){
|
||||||
if(classMember.classMemberDeclaration() != null){
|
if(classMember.classMemberDeclaration() != null){
|
||||||
Java8Parser.ClassMemberDeclarationContext classMemberDeclarationContext = classMember.classMemberDeclaration();
|
Java17Parser.ClassMemberDeclarationContext classMemberDeclarationContext = classMember.classMemberDeclaration();
|
||||||
if(classMemberDeclarationContext.fieldDeclaration() != null
|
if(classMemberDeclarationContext.fieldDeclaration() != null
|
||||||
&& classMemberDeclarationContext.fieldDeclaration().variableDeclaratorList() != null){
|
&& classMemberDeclarationContext.fieldDeclaration().variableDeclaratorList() != null){
|
||||||
for(Java8Parser.VariableDeclaratorContext ctx : classMemberDeclarationContext.fieldDeclaration().variableDeclaratorList().variableDeclarator()) {
|
for(Java17Parser.VariableDeclaratorContext ctx : classMemberDeclarationContext.fieldDeclaration().variableDeclaratorList().variableDeclarator()) {
|
||||||
String fieldName = ctx.variableDeclaratorId().Identifier().getText();
|
String fieldName = ctx.variableDeclaratorId().Identifier().getText();
|
||||||
if(ctx.variableDeclaratorId().dims() != null)throw new NotImplementedException();
|
if(ctx.variableDeclaratorId().dims() != null)throw new NotImplementedException();
|
||||||
Token offset = ctx.getStart();
|
Token offset = ctx.getStart();
|
||||||
@ -255,14 +255,14 @@ public class SyntaxTreeGenerator{
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private List<RefType> convert(Java8Parser.SuperinterfacesContext ctx, GenericsRegistry generics) {
|
private List<RefType> convert(Java17Parser.SuperinterfacesContext ctx, GenericsRegistry generics) {
|
||||||
if(ctx == null)return new ArrayList<>();
|
if(ctx == null)return new ArrayList<>();
|
||||||
return convert(ctx.interfaceTypeList(), generics);
|
return convert(ctx.interfaceTypeList(), generics);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<RefType> convert(Java8Parser.InterfaceTypeListContext ctx, GenericsRegistry generics) {
|
private List<RefType> convert(Java17Parser.InterfaceTypeListContext ctx, GenericsRegistry generics) {
|
||||||
List<RefType> ret = new ArrayList<>();
|
List<RefType> ret = new ArrayList<>();
|
||||||
for(Java8Parser.InterfaceTypeContext interfaceType : ctx.interfaceType()){
|
for(Java17Parser.InterfaceTypeContext interfaceType : ctx.interfaceType()){
|
||||||
ret.add((RefType) TypeGenerator.convert(interfaceType.classType(), reg, generics));
|
ret.add((RefType) TypeGenerator.convert(interfaceType.classType(), reg, generics));
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
@ -286,7 +286,7 @@ public class SyntaxTreeGenerator{
|
|||||||
return new Constructor(Modifier.PUBLIC, className, classType, params, block, classGenerics, offset /*, fieldInitializations geloescht PL 2018-11-24 */);
|
return new Constructor(Modifier.PUBLIC, className, classType, params, block, classGenerics, offset /*, fieldInitializations geloescht PL 2018-11-24 */);
|
||||||
}
|
}
|
||||||
|
|
||||||
private RefType convert(Java8Parser.SuperclassContext superclass) {
|
private RefType convert(Java17Parser.SuperclassContext superclass) {
|
||||||
if(superclass.classType().classOrInterfaceType() != null){
|
if(superclass.classType().classOrInterfaceType() != null){
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}else{
|
}else{
|
||||||
@ -300,12 +300,12 @@ public class SyntaxTreeGenerator{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Method> convertMethods(Java8Parser.ClassBodyContext classBodyContext,
|
private List<Method> convertMethods(Java17Parser.ClassBodyContext classBodyContext,
|
||||||
JavaClassName parentClass, RefType superClass, GenericsRegistry generics) {
|
JavaClassName parentClass, RefType superClass, GenericsRegistry generics) {
|
||||||
List<Method> ret = new ArrayList<>();
|
List<Method> ret = new ArrayList<>();
|
||||||
for(Java8Parser.ClassBodyDeclarationContext classMember : classBodyContext.classBodyDeclaration()){
|
for(Java17Parser.ClassBodyDeclarationContext classMember : classBodyContext.classBodyDeclaration()){
|
||||||
if(classMember.classMemberDeclaration() != null){
|
if(classMember.classMemberDeclaration() != null){
|
||||||
Java8Parser.ClassMemberDeclarationContext classMemberDeclarationContext = classMember.classMemberDeclaration();
|
Java17Parser.ClassMemberDeclarationContext classMemberDeclarationContext = classMember.classMemberDeclaration();
|
||||||
if(classMemberDeclarationContext.fieldDeclaration() != null){
|
if(classMemberDeclarationContext.fieldDeclaration() != null){
|
||||||
//Do nothing!
|
//Do nothing!
|
||||||
}else if(classMemberDeclarationContext.methodDeclaration()!= null){
|
}else if(classMemberDeclarationContext.methodDeclaration()!= null){
|
||||||
@ -317,11 +317,11 @@ public class SyntaxTreeGenerator{
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Field> convertFields(Java8Parser.ClassBodyContext classBodyContext, GenericsRegistry generics) {
|
private List<Field> convertFields(Java17Parser.ClassBodyContext classBodyContext, GenericsRegistry generics) {
|
||||||
List<Field> ret = new ArrayList<>();
|
List<Field> ret = new ArrayList<>();
|
||||||
for(Java8Parser.ClassBodyDeclarationContext classMember : classBodyContext.classBodyDeclaration()){
|
for(Java17Parser.ClassBodyDeclarationContext classMember : classBodyContext.classBodyDeclaration()){
|
||||||
if(classMember.classMemberDeclaration() != null){
|
if(classMember.classMemberDeclaration() != null){
|
||||||
Java8Parser.ClassMemberDeclarationContext classMemberDeclarationContext = classMember.classMemberDeclaration();
|
Java17Parser.ClassMemberDeclarationContext classMemberDeclarationContext = classMember.classMemberDeclaration();
|
||||||
if(classMemberDeclarationContext.fieldDeclaration() != null){
|
if(classMemberDeclarationContext.fieldDeclaration() != null){
|
||||||
ret.addAll(convert(classMember.classMemberDeclaration().fieldDeclaration(), generics));
|
ret.addAll(convert(classMember.classMemberDeclaration().fieldDeclaration(), generics));
|
||||||
}else if(classMemberDeclarationContext.methodDeclaration()!= null){
|
}else if(classMemberDeclarationContext.methodDeclaration()!= null){
|
||||||
@ -332,26 +332,26 @@ public class SyntaxTreeGenerator{
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int convert(List<Java8Parser.MethodModifierContext> methodModifierContexts) {
|
public static int convert(List<Java17Parser.MethodModifierContext> methodModifierContexts) {
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
for(Java8Parser.MethodModifierContext mod : methodModifierContexts){
|
for(Java17Parser.MethodModifierContext mod : methodModifierContexts){
|
||||||
if(mod.annotation() == null)convertModifier(mod.getText());
|
if(mod.annotation() == null)convertModifier(mod.getText());
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int convertInterfaceModifier(List<Java8Parser.InterfaceMethodModifierContext> methodModifierContexts) {
|
public static int convertInterfaceModifier(List<Java17Parser.InterfaceMethodModifierContext> methodModifierContexts) {
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
for(Java8Parser.InterfaceMethodModifierContext mod : methodModifierContexts){
|
for(Java17Parser.InterfaceMethodModifierContext mod : methodModifierContexts){
|
||||||
if(mod.annotation() == null)convertModifier(mod.getText());
|
if(mod.annotation() == null)convertModifier(mod.getText());
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<? extends Field> convert(Java8Parser.FieldDeclarationContext fieldDeclarationContext, GenericsRegistry generics) {
|
private List<? extends Field> convert(Java17Parser.FieldDeclarationContext fieldDeclarationContext, GenericsRegistry generics) {
|
||||||
List<Field> ret = new ArrayList<>();
|
List<Field> ret = new ArrayList<>();
|
||||||
int modifiers = 0;
|
int modifiers = 0;
|
||||||
for(Java8Parser.FieldModifierContext fieldModifierContext : fieldDeclarationContext.fieldModifier()){
|
for(Java17Parser.FieldModifierContext fieldModifierContext : fieldDeclarationContext.fieldModifier()){
|
||||||
modifiers+=(convert(fieldModifierContext));
|
modifiers+=(convert(fieldModifierContext));
|
||||||
}
|
}
|
||||||
RefTypeOrTPHOrWildcardOrGeneric fieldType;
|
RefTypeOrTPHOrWildcardOrGeneric fieldType;
|
||||||
@ -361,7 +361,7 @@ public class SyntaxTreeGenerator{
|
|||||||
}else{
|
}else{
|
||||||
fieldType = TypePlaceholder.fresh(fieldDeclarationContext.variableDeclaratorList().getStart()); //PL 2019-12-06: variableDeclaratorList() eingefuegt, um als Token nicht die Modifier zu bekommen
|
fieldType = TypePlaceholder.fresh(fieldDeclarationContext.variableDeclaratorList().getStart()); //PL 2019-12-06: variableDeclaratorList() eingefuegt, um als Token nicht die Modifier zu bekommen
|
||||||
}
|
}
|
||||||
for(Java8Parser.VariableDeclaratorContext varCtx : fieldDeclarationContext.variableDeclaratorList().variableDeclarator()){
|
for(Java17Parser.VariableDeclaratorContext varCtx : fieldDeclarationContext.variableDeclaratorList().variableDeclarator()){
|
||||||
String fieldName = convert(varCtx.variableDeclaratorId());
|
String fieldName = convert(varCtx.variableDeclaratorId());
|
||||||
fields.put(fieldName, fieldType);
|
fields.put(fieldName, fieldType);
|
||||||
if(varCtx.variableInitializer() != null){
|
if(varCtx.variableInitializer() != null){
|
||||||
@ -372,12 +372,12 @@ public class SyntaxTreeGenerator{
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String convert(Java8Parser.VariableDeclaratorIdContext variableDeclaratorIdContext) {
|
public static String convert(Java17Parser.VariableDeclaratorIdContext variableDeclaratorIdContext) {
|
||||||
return variableDeclaratorIdContext.getText();
|
return variableDeclaratorIdContext.getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize a field by creating implicit constructor.
|
// Initialize a field by creating implicit constructor.
|
||||||
private void initializeField(Java8Parser.VariableDeclaratorContext ctx, RefTypeOrTPHOrWildcardOrGeneric typeOfField, GenericsRegistry generics){
|
private void initializeField(Java17Parser.VariableDeclaratorContext ctx, RefTypeOrTPHOrWildcardOrGeneric typeOfField, GenericsRegistry generics){
|
||||||
StatementGenerator statementGenerator = new StatementGenerator(reg, generics, fields, new HashMap<>());
|
StatementGenerator statementGenerator = new StatementGenerator(reg, generics, fields, new HashMap<>());
|
||||||
fieldInitializations.add(statementGenerator.generateFieldAssignment(ctx, typeOfField));
|
fieldInitializations.add(statementGenerator.generateFieldAssignment(ctx, typeOfField));
|
||||||
}
|
}
|
||||||
@ -403,26 +403,26 @@ public class SyntaxTreeGenerator{
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int convert(Java8Parser.ClassModifierContext ctx){
|
private int convert(Java17Parser.ClassModifierContext ctx){
|
||||||
if(ctx.annotation() != null)return 0;
|
if(ctx.annotation() != null)return 0;
|
||||||
return convertModifier(ctx.getText());
|
return convertModifier(ctx.getText());
|
||||||
}
|
}
|
||||||
|
|
||||||
private int convert(Java8Parser.FieldModifierContext ctx){
|
private int convert(Java17Parser.FieldModifierContext ctx){
|
||||||
if(ctx.annotation() != null)return 0;
|
if(ctx.annotation() != null)return 0;
|
||||||
return convertModifier(ctx.getText());
|
return convertModifier(ctx.getText());
|
||||||
}
|
}
|
||||||
|
|
||||||
private int convert(Java8Parser.InterfaceModifierContext ctx) {
|
private int convert(Java17Parser.InterfaceModifierContext ctx) {
|
||||||
if(ctx.annotation() != null)return 0;
|
if(ctx.annotation() != null)return 0;
|
||||||
return convertModifier(ctx.getText());
|
return convertModifier(ctx.getText());
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClassOrInterface convertEnum(Java8Parser.EnumDeclarationContext ctx){
|
private ClassOrInterface convertEnum(Java17Parser.EnumDeclarationContext ctx){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClassOrInterface convertInterface(Java8Parser.InterfaceDeclarationContext ctx){
|
private ClassOrInterface convertInterface(Java17Parser.InterfaceDeclarationContext ctx){
|
||||||
if(ctx.normalInterfaceDeclaration() != null){
|
if(ctx.normalInterfaceDeclaration() != null){
|
||||||
return convertNormal(ctx.normalInterfaceDeclaration());
|
return convertNormal(ctx.normalInterfaceDeclaration());
|
||||||
}else{
|
}else{
|
||||||
@ -430,10 +430,10 @@ public class SyntaxTreeGenerator{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClassOrInterface convertNormal(Java8Parser.NormalInterfaceDeclarationContext ctx) {
|
private ClassOrInterface convertNormal(Java17Parser.NormalInterfaceDeclarationContext ctx) {
|
||||||
int modifiers = 0;
|
int modifiers = 0;
|
||||||
if(ctx.interfaceModifier() != null){
|
if(ctx.interfaceModifier() != null){
|
||||||
for( Java8Parser.InterfaceModifierContext mod : ctx.interfaceModifier()){
|
for( Java17Parser.InterfaceModifierContext mod : ctx.interfaceModifier()){
|
||||||
int newModifier = convert(mod);
|
int newModifier = convert(mod);
|
||||||
modifiers += newModifier;
|
modifiers += newModifier;
|
||||||
}
|
}
|
||||||
@ -468,28 +468,28 @@ public class SyntaxTreeGenerator{
|
|||||||
return new GenericDeclarationList(new ArrayList<>(), gtvOffset);
|
return new GenericDeclarationList(new ArrayList<>(), gtvOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
private GenericsRegistry createGenerics(Java8Parser.TypeParametersContext ctx, JavaClassName parentClass, String parentMethod, JavaClassRegistry reg, GenericsRegistry generics) {
|
private GenericsRegistry createGenerics(Java17Parser.TypeParametersContext ctx, JavaClassName parentClass, String parentMethod, JavaClassRegistry reg, GenericsRegistry generics) {
|
||||||
GenericsRegistry ret = new GenericsRegistry(this.globalGenerics);
|
GenericsRegistry ret = new GenericsRegistry(this.globalGenerics);
|
||||||
ret.putAll(generics);
|
ret.putAll(generics);
|
||||||
if(ctx == null || ctx.typeParameterList() == null)return ret;
|
if(ctx == null || ctx.typeParameterList() == null)return ret;
|
||||||
for(Java8Parser.TypeParameterContext tp : ctx.typeParameterList().typeParameter()){
|
for(Java17Parser.TypeParameterContext tp : ctx.typeParameterList().typeParameter()){
|
||||||
ret.put(tp.Identifier().getText(), new GenericContext(parentClass, parentMethod));
|
ret.put(tp.Identifier().getText(), new GenericContext(parentClass, parentMethod));
|
||||||
}
|
}
|
||||||
for(Java8Parser.TypeParameterContext tp : ctx.typeParameterList().typeParameter()){
|
for(Java17Parser.TypeParameterContext tp : ctx.typeParameterList().typeParameter()){
|
||||||
TypeGenerator.convert(tp, parentClass, parentMethod, reg, ret);
|
TypeGenerator.convert(tp, parentClass, parentMethod, reg, ret);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<RefType> convert(Java8Parser.ExtendsInterfacesContext extendsInterfacesContext, GenericsRegistry generics) {
|
private List<RefType> convert(Java17Parser.ExtendsInterfacesContext extendsInterfacesContext, GenericsRegistry generics) {
|
||||||
if(extendsInterfacesContext == null)return new ArrayList<>();
|
if(extendsInterfacesContext == null)return new ArrayList<>();
|
||||||
return convert(extendsInterfacesContext.interfaceTypeList(), generics);
|
return convert(extendsInterfacesContext.interfaceTypeList(), generics);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Method> convertMethods(Java8Parser.InterfaceBodyContext interfaceBodyContext,
|
private List<Method> convertMethods(Java17Parser.InterfaceBodyContext interfaceBodyContext,
|
||||||
JavaClassName parentClass, RefType superClass, GenericsRegistry generics) {
|
JavaClassName parentClass, RefType superClass, GenericsRegistry generics) {
|
||||||
List<Method> ret = new ArrayList<>();
|
List<Method> ret = new ArrayList<>();
|
||||||
for(Java8Parser.InterfaceMemberDeclarationContext member : interfaceBodyContext.interfaceMemberDeclaration()){
|
for(Java17Parser.InterfaceMemberDeclarationContext member : interfaceBodyContext.interfaceMemberDeclaration()){
|
||||||
if(member.interfaceMethodDeclaration() != null){
|
if(member.interfaceMethodDeclaration() != null){
|
||||||
ret.add(this.convert(member.interfaceMethodDeclaration(), parentClass, superClass, generics));
|
ret.add(this.convert(member.interfaceMethodDeclaration(), parentClass, superClass, generics));
|
||||||
//new Method(name, type, modifier, params, null, genericDecls, member.interfaceMethodDeclaration().getStart());
|
//new Method(name, type, modifier, params, null, genericDecls, member.interfaceMethodDeclaration().getStart());
|
||||||
@ -500,9 +500,9 @@ public class SyntaxTreeGenerator{
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Field> convertFields(Java8Parser.InterfaceBodyContext interfaceBodyContext) {
|
private List<Field> convertFields(Java17Parser.InterfaceBodyContext interfaceBodyContext) {
|
||||||
List<Field> ret = new ArrayList<>();
|
List<Field> ret = new ArrayList<>();
|
||||||
for(Java8Parser.InterfaceMemberDeclarationContext member : interfaceBodyContext.interfaceMemberDeclaration()){
|
for(Java17Parser.InterfaceMemberDeclarationContext member : interfaceBodyContext.interfaceMemberDeclaration()){
|
||||||
if(member.constantDeclaration() != null){
|
if(member.constantDeclaration() != null){
|
||||||
//TODO: Erstelle hier ein Feld!
|
//TODO: Erstelle hier ein Feld!
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
|
@ -2,8 +2,8 @@ package de.dhbwstuttgart.parser.SyntaxTreeGenerator;
|
|||||||
|
|
||||||
import de.dhbwstuttgart.exceptions.NotImplementedException;
|
import de.dhbwstuttgart.exceptions.NotImplementedException;
|
||||||
import de.dhbwstuttgart.exceptions.TypeinferenceException;
|
import de.dhbwstuttgart.exceptions.TypeinferenceException;
|
||||||
import de.dhbwstuttgart.parser.antlr.Java8Parser;
|
import de.dhbwstuttgart.parser.antlr.Java17Parser;
|
||||||
import de.dhbwstuttgart.parser.antlr.Java8Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext;
|
import de.dhbwstuttgart.parser.antlr.Java17Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext;
|
||||||
import de.dhbwstuttgart.parser.scope.GenericsRegistry;
|
import de.dhbwstuttgart.parser.scope.GenericsRegistry;
|
||||||
import de.dhbwstuttgart.parser.scope.JavaClassName;
|
import de.dhbwstuttgart.parser.scope.JavaClassName;
|
||||||
import de.dhbwstuttgart.parser.scope.JavaClassRegistry;
|
import de.dhbwstuttgart.parser.scope.JavaClassRegistry;
|
||||||
@ -25,8 +25,8 @@ import java.util.regex.Pattern;
|
|||||||
|
|
||||||
public class TypeGenerator {
|
public class TypeGenerator {
|
||||||
|
|
||||||
public static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.UnannClassOrInterfaceTypeContext unannClassOrInterfaceTypeContext, JavaClassRegistry reg, GenericsRegistry generics) {
|
public static RefTypeOrTPHOrWildcardOrGeneric convert(Java17Parser.UnannClassOrInterfaceTypeContext unannClassOrInterfaceTypeContext, JavaClassRegistry reg, GenericsRegistry generics) {
|
||||||
Java8Parser.TypeArgumentsContext arguments=null;
|
Java17Parser.TypeArgumentsContext arguments=null;
|
||||||
/* PL 2019-03-19 auskommentiert ANFANG
|
/* PL 2019-03-19 auskommentiert ANFANG
|
||||||
if(unannClassOrInterfaceTypeContext.unannClassType_lfno_unannClassOrInterfaceType() != null){
|
if(unannClassOrInterfaceTypeContext.unannClassType_lfno_unannClassOrInterfaceType() != null){
|
||||||
arguments = unannClassOrInterfaceTypeContext.unannClassType_lfno_unannClassOrInterfaceType().typeArguments();
|
arguments = unannClassOrInterfaceTypeContext.unannClassType_lfno_unannClassOrInterfaceType().typeArguments();
|
||||||
@ -67,12 +67,12 @@ public class TypeGenerator {
|
|||||||
return convertTypeName(name, arguments, unannClassOrInterfaceTypeContext.getStart(), reg, generics);
|
return convertTypeName(name, arguments, unannClassOrInterfaceTypeContext.getStart(), reg, generics);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.UnannTypeContext unannTypeContext, JavaClassRegistry reg, GenericsRegistry genericsRegistry) {
|
public static RefTypeOrTPHOrWildcardOrGeneric convert(Java17Parser.UnannTypeContext unannTypeContext, JavaClassRegistry reg, GenericsRegistry genericsRegistry) {
|
||||||
if(unannTypeContext.unannPrimitiveType()!=null){
|
if(unannTypeContext.unannPrimitiveType()!=null){
|
||||||
if(unannTypeContext.unannPrimitiveType().getText().equals("boolean")){
|
if(unannTypeContext.unannPrimitiveType().getText().equals("boolean")){
|
||||||
return new RefType(ASTFactory.createClass(Boolean.class).getClassName(), unannTypeContext.getStart());
|
return new RefType(ASTFactory.createClass(Boolean.class).getClassName(), unannTypeContext.getStart());
|
||||||
}else{
|
}else{
|
||||||
Java8Parser.NumericTypeContext numericType = unannTypeContext.unannPrimitiveType().numericType();
|
Java17Parser.NumericTypeContext numericType = unannTypeContext.unannPrimitiveType().numericType();
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}else
|
}else
|
||||||
@ -87,18 +87,18 @@ public class TypeGenerator {
|
|||||||
return TypeGenerator.convert(unannTypeContext.unannReferenceType().unannClassOrInterfaceType(), reg, genericsRegistry);
|
return TypeGenerator.convert(unannTypeContext.unannReferenceType().unannClassOrInterfaceType(), reg, genericsRegistry);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static GenericDeclarationList convert(Java8Parser.TypeParametersContext typeParametersContext,
|
public static GenericDeclarationList convert(Java17Parser.TypeParametersContext typeParametersContext,
|
||||||
JavaClassName parentClass, String parentMethod, JavaClassRegistry reg, GenericsRegistry generics) {
|
JavaClassName parentClass, String parentMethod, JavaClassRegistry reg, GenericsRegistry generics) {
|
||||||
Token endOffset = typeParametersContext.getStop();
|
Token endOffset = typeParametersContext.getStop();
|
||||||
List<GenericTypeVar> typeVars = new ArrayList<>();
|
List<GenericTypeVar> typeVars = new ArrayList<>();
|
||||||
for(Java8Parser.TypeParameterContext typeParameter : typeParametersContext.typeParameterList().typeParameter()){
|
for(Java17Parser.TypeParameterContext typeParameter : typeParametersContext.typeParameterList().typeParameter()){
|
||||||
typeVars.add(convert(typeParameter, parentClass, parentMethod, reg, generics));
|
typeVars.add(convert(typeParameter, parentClass, parentMethod, reg, generics));
|
||||||
endOffset = typeParameter.getStop();
|
endOffset = typeParameter.getStop();
|
||||||
}
|
}
|
||||||
return new GenericDeclarationList(typeVars, endOffset);
|
return new GenericDeclarationList(typeVars, endOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static GenericTypeVar convert(Java8Parser.TypeParameterContext typeParameter, JavaClassName parentClass, String parentMethod, JavaClassRegistry reg, GenericsRegistry generics) {
|
public static GenericTypeVar convert(Java17Parser.TypeParameterContext typeParameter, JavaClassName parentClass, String parentMethod, JavaClassRegistry reg, GenericsRegistry generics) {
|
||||||
String name = typeParameter.Identifier().getText();
|
String name = typeParameter.Identifier().getText();
|
||||||
//TODO: Es müssen erst alle GenericTypeVars generiert werden, dann können die bounds dieser Generics ermittelt werden
|
//TODO: Es müssen erst alle GenericTypeVars generiert werden, dann können die bounds dieser Generics ermittelt werden
|
||||||
//Problem <A extends B, B> ist erlaubt, würde aber bei den Bounds von A den Generic B nicht als solchen erkennen
|
//Problem <A extends B, B> ist erlaubt, würde aber bei den Bounds von A den Generic B nicht als solchen erkennen
|
||||||
@ -108,7 +108,7 @@ public class TypeGenerator {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<RefTypeOrTPHOrWildcardOrGeneric> convert(Java8Parser.TypeBoundContext typeBoundContext, JavaClassRegistry reg, GenericsRegistry generics) {
|
public static List<RefTypeOrTPHOrWildcardOrGeneric> convert(Java17Parser.TypeBoundContext typeBoundContext, JavaClassRegistry reg, GenericsRegistry generics) {
|
||||||
List<RefTypeOrTPHOrWildcardOrGeneric> ret = new ArrayList<>();
|
List<RefTypeOrTPHOrWildcardOrGeneric> ret = new ArrayList<>();
|
||||||
if(typeBoundContext == null){
|
if(typeBoundContext == null){
|
||||||
ret.add(ASTFactory.createObjectType());
|
ret.add(ASTFactory.createObjectType());
|
||||||
@ -121,7 +121,7 @@ public class TypeGenerator {
|
|||||||
if(typeBoundContext.classOrInterfaceType() != null){
|
if(typeBoundContext.classOrInterfaceType() != null){
|
||||||
ret.add(convert(typeBoundContext.classOrInterfaceType(), reg, generics));
|
ret.add(convert(typeBoundContext.classOrInterfaceType(), reg, generics));
|
||||||
if(typeBoundContext.additionalBound() != null)
|
if(typeBoundContext.additionalBound() != null)
|
||||||
for(Java8Parser.AdditionalBoundContext addCtx : typeBoundContext.additionalBound()){
|
for(Java17Parser.AdditionalBoundContext addCtx : typeBoundContext.additionalBound()){
|
||||||
ret.add(convert(addCtx.interfaceType()));
|
ret.add(convert(addCtx.interfaceType()));
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
@ -130,26 +130,26 @@ public class TypeGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.ClassOrInterfaceTypeContext classOrInterfaceTypeContext, JavaClassRegistry reg, GenericsRegistry generics) {
|
private static RefTypeOrTPHOrWildcardOrGeneric convert(Java17Parser.ClassOrInterfaceTypeContext classOrInterfaceTypeContext, JavaClassRegistry reg, GenericsRegistry generics) {
|
||||||
Java8Parser.ClassType_lfno_classOrInterfaceTypeContext ctx = classOrInterfaceTypeContext.classType_lfno_classOrInterfaceType();
|
Java17Parser.ClassType_lfno_classOrInterfaceTypeContext ctx = classOrInterfaceTypeContext.classType_lfno_classOrInterfaceType();
|
||||||
if(ctx.typeArguments() != null &&
|
if(ctx.typeArguments() != null &&
|
||||||
classOrInterfaceTypeContext.classType_lf_classOrInterfaceType().size() > 0)
|
classOrInterfaceTypeContext.classType_lf_classOrInterfaceType().size() > 0)
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
String typeName = ctx.Identifier().toString();
|
String typeName = ctx.Identifier().toString();
|
||||||
Java8Parser.ClassType_lf_classOrInterfaceTypeContext nextCtx = null;
|
Java17Parser.ClassType_lf_classOrInterfaceTypeContext nextCtx = null;
|
||||||
for(Java8Parser.ClassType_lf_classOrInterfaceTypeContext forEachCtx : classOrInterfaceTypeContext.classType_lf_classOrInterfaceType()){
|
for(Java17Parser.ClassType_lf_classOrInterfaceTypeContext forEachCtx : classOrInterfaceTypeContext.classType_lf_classOrInterfaceType()){
|
||||||
nextCtx = forEachCtx;
|
nextCtx = forEachCtx;
|
||||||
typeName += "." + forEachCtx.Identifier().toString();
|
typeName += "." + forEachCtx.Identifier().toString();
|
||||||
}
|
}
|
||||||
Java8Parser.TypeArgumentsContext arguments = nextCtx!=null?nextCtx.typeArguments():ctx.typeArguments();
|
Java17Parser.TypeArgumentsContext arguments = nextCtx!=null?nextCtx.typeArguments():ctx.typeArguments();
|
||||||
return convertTypeName(typeName, arguments, classOrInterfaceTypeContext.getStart(), reg, generics);
|
return convertTypeName(typeName, arguments, classOrInterfaceTypeContext.getStart(), reg, generics);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.InterfaceTypeContext interfaceTypeContext) {
|
private static RefTypeOrTPHOrWildcardOrGeneric convert(Java17Parser.InterfaceTypeContext interfaceTypeContext) {
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.ReferenceTypeContext referenceTypeContext, JavaClassRegistry reg, GenericsRegistry generics) {
|
public static RefTypeOrTPHOrWildcardOrGeneric convert(Java17Parser.ReferenceTypeContext referenceTypeContext, JavaClassRegistry reg, GenericsRegistry generics) {
|
||||||
if(referenceTypeContext.classOrInterfaceType() != null){
|
if(referenceTypeContext.classOrInterfaceType() != null){
|
||||||
if(referenceTypeContext.classOrInterfaceType().classType_lfno_classOrInterfaceType()!= null){
|
if(referenceTypeContext.classOrInterfaceType().classType_lfno_classOrInterfaceType()!= null){
|
||||||
return convert(referenceTypeContext.classOrInterfaceType(), reg, generics);//return convertTypeName(referenceTypeContext.getText(), ctx.typeArguments(),referenceTypeContext.getStart(), reg, generics);
|
return convert(referenceTypeContext.classOrInterfaceType(), reg, generics);//return convertTypeName(referenceTypeContext.getText(), ctx.typeArguments(),referenceTypeContext.getStart(), reg, generics);
|
||||||
@ -161,7 +161,7 @@ public class TypeGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.WildcardContext wildcardContext, JavaClassRegistry reg, GenericsRegistry generics) {
|
public static RefTypeOrTPHOrWildcardOrGeneric convert(Java17Parser.WildcardContext wildcardContext, JavaClassRegistry reg, GenericsRegistry generics) {
|
||||||
if(wildcardContext.wildcardBounds() != null){
|
if(wildcardContext.wildcardBounds() != null){
|
||||||
if(wildcardContext.wildcardBounds().getText().substring(0, 7).equals("extends")){
|
if(wildcardContext.wildcardBounds().getText().substring(0, 7).equals("extends")){
|
||||||
return new ExtendsWildcardType(convert(wildcardContext.wildcardBounds().referenceType(), reg, generics), wildcardContext.getStart());
|
return new ExtendsWildcardType(convert(wildcardContext.wildcardBounds().referenceType(), reg, generics), wildcardContext.getStart());
|
||||||
@ -178,7 +178,7 @@ public class TypeGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static RefTypeOrTPHOrWildcardOrGeneric convertTypeName(
|
public static RefTypeOrTPHOrWildcardOrGeneric convertTypeName(
|
||||||
String name, Java8Parser.TypeArgumentsContext typeArguments, Token offset, JavaClassRegistry reg, GenericsRegistry generics){
|
String name, Java17Parser.TypeArgumentsContext typeArguments, Token offset, JavaClassRegistry reg, GenericsRegistry generics){
|
||||||
if(!reg.contains(name)){ //Dann könnte es ein generischer Type oder ein FunN$$-Type sein
|
if(!reg.contains(name)){ //Dann könnte es ein generischer Type oder ein FunN$$-Type sein
|
||||||
if(generics.contains(name)){
|
if(generics.contains(name)){
|
||||||
return new GenericRefType(name, offset);
|
return new GenericRefType(name, offset);
|
||||||
@ -202,10 +202,10 @@ public class TypeGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<RefTypeOrTPHOrWildcardOrGeneric> convert(Java8Parser.TypeArgumentsContext typeArguments,
|
public static List<RefTypeOrTPHOrWildcardOrGeneric> convert(Java17Parser.TypeArgumentsContext typeArguments,
|
||||||
JavaClassRegistry reg, GenericsRegistry generics){
|
JavaClassRegistry reg, GenericsRegistry generics){
|
||||||
List<RefTypeOrTPHOrWildcardOrGeneric> ret = new ArrayList<>();
|
List<RefTypeOrTPHOrWildcardOrGeneric> ret = new ArrayList<>();
|
||||||
for(Java8Parser.TypeArgumentContext arg : typeArguments.typeArgumentList().typeArgument()){
|
for(Java17Parser.TypeArgumentContext arg : typeArguments.typeArgumentList().typeArgument()){
|
||||||
if(arg.wildcard() != null){
|
if(arg.wildcard() != null){
|
||||||
ret.add(convert(arg.wildcard(), reg, generics));
|
ret.add(convert(arg.wildcard(), reg, generics));
|
||||||
}else{
|
}else{
|
||||||
@ -215,7 +215,7 @@ public class TypeGenerator {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RefTypeOrTPHOrWildcardOrGeneric convert(Java8Parser.ClassTypeContext ctx, JavaClassRegistry reg, GenericsRegistry generics) {
|
public static RefTypeOrTPHOrWildcardOrGeneric convert(Java17Parser.ClassTypeContext ctx, JavaClassRegistry reg, GenericsRegistry generics) {
|
||||||
if(ctx.classOrInterfaceType() != null)throw new NotImplementedException();
|
if(ctx.classOrInterfaceType() != null)throw new NotImplementedException();
|
||||||
return convertTypeName(ctx.Identifier().getText(), ctx.typeArguments(), ctx.getStart(), reg, generics);
|
return convertTypeName(ctx.Identifier().getText(), ctx.typeArguments(), ctx.getStart(), reg, generics);
|
||||||
}
|
}
|
||||||
|
@ -4,22 +4,22 @@ import java.net.URL;
|
|||||||
import java.net.URLClassLoader;
|
import java.net.URLClassLoader;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import de.dhbwstuttgart.parser.antlr.Java8BaseListener;
|
import de.dhbwstuttgart.parser.antlr.Java17BaseListener;
|
||||||
import de.dhbwstuttgart.syntaxtree.AbstractASTWalker;
|
import de.dhbwstuttgart.syntaxtree.AbstractASTWalker;
|
||||||
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
|
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
|
||||||
import org.antlr.v4.runtime.tree.ParseTreeWalker;
|
import org.antlr.v4.runtime.tree.ParseTreeWalker;
|
||||||
import org.antlr.v4.runtime.tree.TerminalNode;
|
import org.antlr.v4.runtime.tree.TerminalNode;
|
||||||
|
|
||||||
import de.dhbwstuttgart.environment.PackageCrawler;
|
import de.dhbwstuttgart.environment.PackageCrawler;
|
||||||
import de.dhbwstuttgart.parser.antlr.Java8Parser;
|
import de.dhbwstuttgart.parser.antlr.Java17Parser;
|
||||||
|
|
||||||
public class GatherNames {
|
public class GatherNames {
|
||||||
|
|
||||||
public static Map<String, Integer> getNames(Java8Parser.CompilationUnitContext ctx, PackageCrawler packages, ClassLoader classLoader) throws ClassNotFoundException{
|
public static Map<String, Integer> getNames(Java17Parser.CompilationUnitContext ctx, PackageCrawler packages, ClassLoader classLoader) throws ClassNotFoundException{
|
||||||
Map<String, Integer> ret = new HashMap<>();
|
Map<String, Integer> ret = new HashMap<>();
|
||||||
String pkgName = getPackageName(ctx);
|
String pkgName = getPackageName(ctx);
|
||||||
String nameString = "";
|
String nameString = "";
|
||||||
for (Java8Parser.TypeDeclarationContext typeDecl : ctx.typeDeclaration()){
|
for (Java17Parser.TypeDeclarationContext typeDecl : ctx.typeDeclaration()){
|
||||||
if(typeDecl.interfaceDeclaration() != null){
|
if(typeDecl.interfaceDeclaration() != null){
|
||||||
if(typeDecl.interfaceDeclaration().normalInterfaceDeclaration() != null){
|
if(typeDecl.interfaceDeclaration().normalInterfaceDeclaration() != null){
|
||||||
if(pkgName != ""){
|
if(pkgName != ""){
|
||||||
@ -33,7 +33,7 @@ public class GatherNames {
|
|||||||
//Die Generic TypeParameter Definitionen Nicht! an die JavaClassName-Registry anfügen:
|
//Die Generic TypeParameter Definitionen Nicht! an die JavaClassName-Registry anfügen:
|
||||||
/* //Diese gelängen dadurch in den globalen Scope, was sie schließlich nicht sind
|
/* //Diese gelängen dadurch in den globalen Scope, was sie schließlich nicht sind
|
||||||
if(typeDecl.classDeclaration().normalClassDeclaration().typeParameters() != null){
|
if(typeDecl.classDeclaration().normalClassDeclaration().typeParameters() != null){
|
||||||
for(Java8Parser.TypeParameterContext tp : typeDecl.classDeclaration().normalClassDeclaration().typeParameters().typeParameterList().typeParameter()){
|
for(Java17Parser.TypeParameterContext tp : typeDecl.classDeclaration().normalClassDeclaration().typeParameters().typeParameterList().typeParameter()){
|
||||||
//this.reg.add(tp.Identifier().toString());
|
//this.reg.add(tp.Identifier().toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -52,7 +52,7 @@ public class GatherNames {
|
|||||||
//Die Generic TypeParameter Definitionen Nicht! an die JavaClassName-Registry anfügen:
|
//Die Generic TypeParameter Definitionen Nicht! an die JavaClassName-Registry anfügen:
|
||||||
/* //Diese gelängen dadurch in den globalen Scope, was sie schließlich nicht sind
|
/* //Diese gelängen dadurch in den globalen Scope, was sie schließlich nicht sind
|
||||||
if(typeDecl.classDeclaration().normalClassDeclaration().typeParameters() != null){
|
if(typeDecl.classDeclaration().normalClassDeclaration().typeParameters() != null){
|
||||||
for(Java8Parser.TypeParameterContext tp : typeDecl.classDeclaration().normalClassDeclaration().typeParameters().typeParameterList().typeParameter()){
|
for(Java17Parser.TypeParameterContext tp : typeDecl.classDeclaration().normalClassDeclaration().typeParameters().typeParameterList().typeParameter()){
|
||||||
this.reg.add(tp.Identifier().toString());
|
this.reg.add(tp.Identifier().toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -68,10 +68,10 @@ public class GatherNames {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Map<String, Integer> getImports(Java8Parser.CompilationUnitContext ctx, PackageCrawler packages, ClassLoader classLoader) throws ClassNotFoundException {
|
public static Map<String, Integer> getImports(Java17Parser.CompilationUnitContext ctx, PackageCrawler packages, ClassLoader classLoader) throws ClassNotFoundException {
|
||||||
Map<String, Integer> ret = new HashMap<>();
|
Map<String, Integer> ret = new HashMap<>();
|
||||||
//ret.putAll(packages.getClassNames("java.lang"));
|
//ret.putAll(packages.getClassNames("java.lang"));
|
||||||
for(Java8Parser.ImportDeclarationContext importDeclCtx : ctx.importDeclaration()){
|
for(Java17Parser.ImportDeclarationContext importDeclCtx : ctx.importDeclaration()){
|
||||||
if(importDeclCtx.singleTypeImportDeclaration() != null){
|
if(importDeclCtx.singleTypeImportDeclaration() != null){
|
||||||
Class cl = classLoader.loadClass(importDeclCtx.singleTypeImportDeclaration().typeName().getText());
|
Class cl = classLoader.loadClass(importDeclCtx.singleTypeImportDeclaration().typeName().getText());
|
||||||
ret.put(cl.getName(), cl.getTypeParameters().length);
|
ret.put(cl.getName(), cl.getTypeParameters().length);
|
||||||
@ -90,7 +90,7 @@ public class GatherNames {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getPackageName(Java8Parser.CompilationUnitContext ctx){
|
private static String getPackageName(Java17Parser.CompilationUnitContext ctx){
|
||||||
String pkgName = "";
|
String pkgName = "";
|
||||||
if(ctx.packageDeclaration() != null){
|
if(ctx.packageDeclaration() != null){
|
||||||
for(TerminalNode t : ctx.packageDeclaration().Identifier()){
|
for(TerminalNode t : ctx.packageDeclaration().Identifier()){
|
||||||
|
Loading…
Reference in New Issue
Block a user