Ctrl K
ComunidadGuías…

translations/CONTRIBUTING_PT_BR.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Contribuindo para Zen C

Primeiramente, obrigado por considerar contribuir para o Zen C! São pessoas como você que tornam este projeto ótimo.

Nós damos boas-vindas a todas as contribuições, seja consertando bugs, adicionando documentação, propondo novas funcionalidades ou apenas reportando problemas.

## Como Contribuir

O fluxo de trabalho geral para contribuir é:

1.  **Fork do Repositório**: Use o fluxo de trabalho padrão do GitHub para fazer um fork do repositório para sua própria conta.
2.  **Crie um Feature Branch**: Crie um novo branch para sua funcionalidade ou correção de bug. Isso mantém suas mudanças organizadas e separadas do branch principal.
    ```bash
    git checkout -b feature/NewThing
    ```
3.  **Faça Mudanças**: Escreva seu código ou mudanças de documentação.
4.  **Verifique**: Garanta que suas mudanças funcionem como esperado e não quebrem funcionalidades existentes (veja [Executando Testes](#executando-testes)).
5.  **Submeta um Pull Request**: Dê push do seu branch para seu fork e submeta um Pull Request (PR) para o repositório principal do Zen C.

## Problemas (Issues) e Pull Requests

Usamos GitHub Issues e Pull Requests para rastrear bugs e recursos. Para nos ajudar a manter a qualidade:

-   **Use Templates**: Ao abrir uma Issue ou PR, use os templates fornecidos.
    -   **Relatório de Bug**: Para reportar erros.
    -   **Solicitação de Recurso**: Para sugerir novos recursos.
    -   **Pull Request**: Para enviar alterações de código.
-   **Seja Descritivo**: Forneça o máximo de detalhes possível.
    -   **Verificações Automatizadas**: Temos um fluxo de trabalho automatizado que verifica o comprimento da descrição de novas Issues e PRs. Se a descrição for muito curta (< 50 caracteres), ela será fechada automaticamente. Isso é para garantir que tenhamos informações suficientes para ajudá-lo.

## Diretrizes de Desenvolvimento

### Estilo de Código
- Siga o estilo C existente encontrado na base de código. Consistência é chave.
- Você pode usar o arquivo `.clang-format` fornecido para formatar seu código.
- Mantenha o código limpo e legível.

### Estrutura do Projeto
Se você está procurando estender o compilador, aqui está um mapa rápido da base de código:
*   **Parser**: `src/parser/` - Contém a implementação do parser de descida recursiva.
*   **Codegen**: `src/codegen/` - Contém a lógica do transpilador que converte Zen C para GNU C/C11.
*   **Biblioteca Padrão**: `std/` - Os módulos da biblioteca padrão, escritos no próprio Zen C.

## Executando Testes

A suíte de testes é sua melhor amiga ao desenvolver. Por favor, garanta que todos os testes passem antes de submeter um PR.

### Executar Todos os Testes
Para executar a suíte de testes completa usando o compilador padrão (geralmente GCC):
```bash
make test
```

### Executar Teste Específico
Para executar um único arquivo de teste para economizar tempo durante o desenvolvimento:
```bash
./zc run tests/test_match.zc
```

### Testar com Backends Diferentes
Zen C suporta múltiplos compiladores C como backends. Você pode executar testes contra eles especificamente:

**Clang**:
```bash
./tests/run_tests.sh --cc clang
```

**Zig (cc)**:
```bash
./tests/run_tests.sh --cc zig
```

**TCC (Tiny C Compiler)**:
```bash
./tests/run_tests.sh --cc tcc
```

## Processo de Pull Request

1.  Garanta que você adicionou testes para qualquer nova funcionalidade.
2.  Garanta que todos os testes existentes passem.
3.  Atualize a documentação (arquivos Markdown em `docs/`, `translations/` ou `README.md`) se apropriado.
4.  Descreva suas mudanças claramente na descrição do PR. Link para qualquer issue relacionada.

Obrigado pela sua contribuição!