C89cc.sh – standalone C89/ELF64 compiler in pure portable shell
Ce script POSIX implémente un analyseur et compilateur C89 entièrement en shell, lisant le code source sur stdin et produisant un exécutable ELF64 x86-64 sur stdout. Il construit un arbre syntaxique abstrait (AST) via un parseur détaillé, gère les tokens, les commentaires, la consommation et la progression pour éviter les boucles infinies. Un émetteur permet de reconstituer le source depuis l'AST et un backend codegen convertit l'AST en octets machine dans un tampon avec gestion des étiquettes, des relocations, des symboles et des sections de données. Le dépôt intègre une mini-libc incluse par défaut fournissant des wrappers syscall, des fonctions de chaîne, un allocateur simple et des helpers d'E/S pour produire des binaires autonomes. Des utilitaires internes prennent en charge l'émission d'octets hex, l'alignement de la pile, les conventions d'appel System V et la génération complète de l'en-tête ELF et du programme loader.