Structure générale¶
+---> file input
+----------+ +---------+ +------------+ |
| | | | | | |
+---------->+ parser +---->+ lexer +---->+ IO backend +------> readline input
| | | | | | | |
+---+---+ +----------+ +---------+ +------------+ |
| | +---> string input
| Read |
| Eval |
| Loop |
| |
+---+---+ +-----------+ +-----------+
| | | | |
+---------->+ execution +------>+ expansion |
| | | |
+-----------+ +-----------+
Le lexeur découpe votre suite de charactère en mots. Il donne du sens basique à ces mots:
points-virgule / retours à la ligne (
; \n)IO number (pour les redirections) (
1>)mot
toto if thenmot d’assignation
A=Bnom générique
0abcopérateurs
|
Le parseur prend ces mots, et analyse leur sens pour les organiser en arbre
Le composant d’exécution prend cet arbre et un état initial (variables), effectue les actions spécifiées par l’arbre et modifie l’état en conséquence.