Compilerbau2024AbsolutNicht.../Klassendiagramme/Generators.md
2024-07-04 17:52:20 +02:00

2.5 KiB

@startuml

!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