Kylian Nézan
← Retour
2025 TERMINÉ

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).

CPOSIXSHELLASTPARSING

STACK

CGNU AutotoolsPOSIXMake

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.