CxGo é uma ferramenta para traduzir código-fonte C para Go (também conhecido como transpiler, compilador de origem para origem).
Ele usa cc v3 para pré-processamento e análise de C (sem dependências clang/gcc!) E um verificador de tipo personalizado e uma camada de tradução AST para obter o melhor resultado possível.
O único requisito é: o código C deve ser compilado com cxgo
, incluindo cabeçalhos.
Dito isto, cxgo
usa alguns truques para facilitar esse processo.
TL;DR para os objetivos do projeto:
Verifique o FAQ para perguntas mais comuns sobre o projeto.
O projeto é experimental ! Não confie nele na produção e em outros ambientes sensíveis!
Embora tenha sido testado com sucesso em vários projetos, pode alterar o comportamento do código devido a bugs ainda desconhecidos.
Resultados do teste do compilador:
Projetos transpilados:
go install github.com/gotranspile/cxgo/cmd/cxgo@latest
ou baixe a versão mais recente do Github.
A maneira mais rápida de experimentar é:
cxgo file main.c
Para mais detalhes, verifique nossa seção de exemplos.
Ele irá guiá-lo através de padrões de uso básicos e também mais avançados (em projetos do mundo real).
Você também pode verificar as Perguntas frequentes se tiver algum problema.
Os seguintes recursos C são atualmente aceitos por cxgo
, mas podem ser implementados parcialmente ou nem mesmo implementados:
static
(#4)auto
(#5)union
com layout de dados C-idêntico (#7)packed
(#8)asm
case
em lugares estranhos (#9)goto
proibido por Go (no entanto, há uma solução alternativa, consulte o item 10)setjmp
(compilará, mas entrará em pânico em tempo de execução)#ifdef
para diferentes sistemas operacionais/ambientes Junte-se à nossa comunidade! Gostaríamos de receber uma resposta sua!
Consulte CONTRIBUINDO.
MIT