← Retour
42sh
Shell POSIX en C écrit de zéro façon Bash : lexer, parser, AST et exécution complète, avec implémentation maison des expansions (variables, globbing, arithmétique).
STACK
POINTS CLÉS
- Front-end complet : lexer et parser récursif descendant écrits à la main, AST avec pretty-printer reparsable pour le débogage, build via GNU Autotools.
- Constructions de contrôle : if/else, while, until, for, case, fonctions, blocs et sous-shells, listes et pipelines.
- Expansions et quoting : variables, substitution de commandes, arithmétique, tilde, globbing, field splitting — toutes implémentées à la main (les helpers libc dédiés étaient interdits par le sujet).
- Redirections complètes (toutes les variantes, here-documents inclus) et opérateurs logiques && / ||.
- Builtins essentiels (cd, export, unset, alias, exit, echo, sourcing, break/continue) et testsuite fonctionnelle différentielle contre bash --posix ; descripteurs de fichiers gérés strictement, zéro fuite mémoire.