CxGo est un outil permettant de traduire le code source C en Go (alias transpileur, compilateur source à source).
Il utilise cc v3 pour le prétraitement et l'analyse du C (pas de dépendances clang/gcc !) ainsi qu'un vérificateur de type personnalisé et une couche de traduction AST pour obtenir le meilleur résultat possible.
La seule exigence est la suivante : le code C doit être compilé avec cxgo
, y compris les en-têtes.
Cela dit, cxgo
utilise quelques astuces pour faciliter ce processus.
TL;DR pour les objectifs du projet :
Consultez la FAQ pour des questions plus courantes sur le projet.
Le projet est expérimental ! Ne comptez pas sur lui en production et dans d’autres environnements sensibles !
Bien qu'il ait été testé avec succès sur plusieurs projets, il pourrait modifier le comportement du code en raison de bugs encore inconnus.
Résultats des tests du compilateur :
Projets transpilés :
go install github.com/gotranspile/cxgo/cmd/cxgo@latest
ou téléchargez la dernière version depuis Github.
Le moyen le plus rapide de l’essayer est :
cxgo file main.c
Pour plus de détails, consultez notre section exemples.
Il vous guidera à travers des modèles d'utilisation de base ainsi que des modèles plus avancés (sur des projets du monde réel).
Vous pouvez également consulter la FAQ si vous rencontrez des problèmes.
Les fonctionnalités C suivantes sont actuellement acceptées par cxgo
, mais peuvent être implémentées partiellement ou pas du tout :
static
(#4)auto
(#5)union
avec une disposition des données identique au C (#7)packed
(#8)asm
case
dans des endroits bizarres (#9)goto
interdit par Go (il existe cependant une solution de contournement, voir #10)setjmp
(compilera, mais paniquera au moment de l'exécution)#ifdef
pour différents systèmes d'exploitation/environnements Rejoignez notre communauté ! Nous aimerions avoir de vos nouvelles !
Voir CONTRIBUER.
MIT