forked from JavaTX/JavaCompilerCore
191 lines
3.5 KiB
Java
191 lines
3.5 KiB
Java
package de.dhbwstuttgart.target.generate;
|
|
|
|
import de.dhbwstuttgart.parser.SyntaxTreeGenerator.AssignToLocal;
|
|
import de.dhbwstuttgart.syntaxtree.StatementVisitor;
|
|
import de.dhbwstuttgart.syntaxtree.statement.*;
|
|
|
|
// This visitor walks the entire tree, individual methods may be overridden
|
|
public abstract class TracingStatementVisitor implements StatementVisitor {
|
|
|
|
@Override
|
|
public void visit(MethodCall methodCall) {
|
|
methodCall.receiver.accept(this);
|
|
methodCall.getArgumentList().accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(ArgumentList argumentList) {
|
|
argumentList.getArguments().forEach(expr -> expr.accept(this));
|
|
}
|
|
|
|
@Override
|
|
public void visit(LambdaExpression lambdaExpression) {
|
|
lambdaExpression.methodBody.accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(Assign assign) {
|
|
assign.rightSide.accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(BinaryExpr binary) {
|
|
binary.lexpr.accept(this);
|
|
binary.rexpr.accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(BoolExpression bool) {
|
|
bool.lexpr.accept(this);
|
|
bool.rexpr.accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(Block block) {
|
|
for (var expr : block.statements)
|
|
expr.accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(CastExpr castExpr) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(EmptyStmt emptyStmt) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(FieldVar fieldVar) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(ForStmt forStmt) {
|
|
forStmt.block.accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(IfStmt ifStmt) {
|
|
ifStmt.then_block.accept(this);
|
|
if (ifStmt.else_block != null)
|
|
ifStmt.else_block.accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(InstanceOf instanceOf) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(LocalVar localVar) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(LocalVarDecl localVarDecl) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(NewClass newClass) {
|
|
this.visit((MethodCall) newClass);
|
|
}
|
|
|
|
@Override
|
|
public void visit(NewArray newArray) {
|
|
newArray.expr.forEach(expr -> expr.accept(this));
|
|
}
|
|
|
|
@Override
|
|
public void visit(Return aReturn) {
|
|
aReturn.retexpr.accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(ReturnVoid aReturn) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(Break aBreak) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(StaticClassName staticClassName) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(Super aSuper) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(This aThis) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(WhileStmt whileStmt) {
|
|
whileStmt.loopBlock.accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(DoStmt whileStmt) {
|
|
whileStmt.loopBlock.accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(AssignToField assignLeftSide) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(AssignToLocal assignLeftSide) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(SuperCall superCall) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(ExpressionReceiver expressionReceiver) {
|
|
expressionReceiver.expr.accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(UnaryExpr unaryExpr) {
|
|
unaryExpr.expr.accept(this);
|
|
}
|
|
|
|
@Override
|
|
public void visit(Literal literal) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(Switch switchStmt) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(SwitchBlock switchBlock) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(SwitchLabel switchLabel) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void visit(Yield aYield) {
|
|
|
|
}
|
|
}
|