CxGo é uma ferramenta para traduzir código-fonte C para Go (também conhecido como transpiler, compilador de fonte para fonte).
Ele usa cc v3 para pré-processamento e análise de C (sem dependências de 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, bem como de padrões 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