2024-07-04 15:43:20 +00:00
|
|
|
```plantuml
|
|
|
|
@startuml
|
2024-07-04 15:52:20 +00:00
|
|
|
|
2024-07-04 15:43:20 +00:00
|
|
|
!theme plain
|
|
|
|
top to bottom direction
|
|
|
|
skinparam linetype ortho
|
|
|
|
|
|
|
|
class ASTGenerator {
|
|
|
|
+ ASTGenerator():
|
|
|
|
+ generateMethod(MethContext): Method
|
|
|
|
+ getType(TypeContext): Type?
|
|
|
|
+ getType(ReturntypeContext): Type?
|
|
|
|
+ generateFieldVariable(FieldContext): Declaration
|
|
|
|
+ generateParameter(ParamContext): Parameter
|
|
|
|
+ generateConstructor(ConstructorContext): Constructor
|
|
|
|
+ generateAST(ClassContext, CollectingErrorListener): Class
|
|
|
|
}
|
|
|
|
class BlockGenerator {
|
|
|
|
+ BlockGenerator(CollectingErrorListener):
|
|
|
|
+ visitBlock(BlockContext): Block
|
|
|
|
}
|
|
|
|
class ExpressionGenerator {
|
|
|
|
+ ExpressionGenerator(CollectingErrorListener):
|
|
|
|
+ visitMethodCall(MethodCallContext): Expression
|
|
|
|
+ generateOperator(BinaryOpContext, CollectingErrorListener): Operator?
|
|
|
|
+ generateRecursiveOwnerChain(List<RecipientContext>, Expression, Boolean, CollectingErrorListener): Expression?
|
|
|
|
+ visitExpression(ExpressionContext): Expression
|
|
|
|
+ visitConstant(ConstantContext): Expression
|
|
|
|
+ generateConstant(LiteralContext, CollectingErrorListener): Expression?
|
|
|
|
+ visitIdentifier(IdentifierContext): Expression
|
|
|
|
+ visitStatementExpressionexpr(StatementExpressionexprContext): Expression
|
|
|
|
+ generateBinary(BinaryOperationContext, CollectingErrorListener): Binary
|
|
|
|
- pointBeforeLineLogic(BinaryOperationContext, Binary): Binary
|
|
|
|
+ visitUnaryOperation(UnaryOperationContext): Expression
|
|
|
|
+ visitBinaryOperation(BinaryOperationContext): Expression
|
|
|
|
+ visitNew(NewContext): Expression
|
|
|
|
}
|
|
|
|
class StatementGenerator {
|
|
|
|
+ StatementGenerator(CollectingErrorListener):
|
|
|
|
+ visitPrint(PrintContext): List<Statement>
|
|
|
|
+ visitAssignment(AssignmentContext): List<Statement>
|
|
|
|
+ visitDoWhile(DoWhileContext): List<Statement>
|
|
|
|
+ visitWhile(WhileContext): List<Statement>
|
|
|
|
+ resolveFancyAssign(AssignSignContext, FieldVarAccess, Expression, CollectingErrorListener): Expression?
|
|
|
|
+ visitLocalVarDec(LocalVarDecContext): List<Statement>
|
|
|
|
+ visitStatementExpressionstmt(StatementExpressionstmtContext): List<Statement>
|
|
|
|
+ visitIf(IfContext): List<Statement>
|
|
|
|
+ visitLocalVarDecWithInitialization(LocalVarDecWithInitializationContext): List<Statement>
|
|
|
|
+ visitBreak(BreakContext): List<Statement>
|
|
|
|
- generateField(FieldVarAccessContext): FieldVarAccess
|
|
|
|
+ visitMethodCall(MethodCallContext): List<Statement>
|
|
|
|
+ visitNew(NewContext): List<Statement>
|
|
|
|
+ generateNew(NewCallContext, CollectingErrorListener): New
|
|
|
|
+ visitFor(ForContext): List<Statement>
|
|
|
|
- generateAssign(AssignContext): Assignment
|
|
|
|
+ visitContinue(ContinueContext): List<Statement>
|
|
|
|
}
|
|
|
|
|
|
|
|
@enduml
|
|
|
|
```
|