@startuml "Package arbre"

namespace zoot.arbre {
    ' Includes
    !include expressions.puml
    !include instructions.puml
    ' Classes
    abstract class ArbreAbstrait {
      # int noLigne
      # ArbreAbstrait(int n)
      + int getNoLigne()
      + abstract void verifier()
      + abstract String toMIPS()
    }

    class BlocDInstructions {
      + BlocDInstructions(int n)
      + void ajouter(Instruction i)
      + void verifier()
      + String toMIPS()
      + String toString()
    }
    ' Relations entre les classes
    BlocDInstructions -up-|> ArbreAbstrait
    BlocDInstructions "1"--"*" zoot.arbre.instructions.Instruction
    ArbreAbstrait --"1" zoot.code_generation.MipsGenerator
}

@enduml