@startuml /' INTERPRETER '/ class Client class Context { - token - private_map + set(in token, in bool) + get(in token) : bool } interface AbstractExpression { # interpret() } class TerminalExpression { - private_token + interpret() : Context } class NonterminalExpression { - private_AbstractExp1 - private_AbstractExp2 + interpret() : Context } hide empty members Context <- Client Client --> AbstractExpression AbstractExpression <|-- TerminalExpression AbstractExpression <|-- NonterminalExpression AbstractExpression --* NonterminalExpression note as N1 Interpreter Type: Behavioral Permet de décrire une grammaire pour un langage et d'instancier son interpreteur. end note @enduml