← Retour
42sh
Shell POSIX en C, écrit de zéro façon Bash. À plusieurs sur le projet, avec lexer, parser, AST et exécution complète, et toutes les expansions implémentées à la main (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. Tout à la main, parce que les helpers libc dédiés étaient interdits par le sujet.
- Redirections complètes (toutes les variantes, here-documents inclus) et opérateurs logiques && et ||.
- 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.