
Envoyé par
loufoque
Un langage "propre", ça se conçoit comme ceci
- un lexer, qui va prendre un flux de caractères et retourner un flux de tokens, tout en rejeter les tokens mal construits
- un parser, qui va prendre un flux de tokens et générer un arbre de syntaxe abstrait, tout en rejetant les syntaxes invalides
- un analyseur, qui va vérifier la sémantique du programme, en annotant éventuellement l'arbre
- un interpréteur ou un compilateur, qui va évaluer ou transformer l'arbre.
lex/flex permet de générer automatiquement un lexer à partir d'une grammaire EBNF ou similaire, et yacc/bison de même mais pour un parser.
Partager