SPECTRALANG_

// DOCS NAVIGATION

Estrutura de um Arquivo Fonte_

SOURCE: content/docs/reference/01-introducao.md01 Introdução / 6. Estrutura de um Arquivo Fonte / Source File Structure

PT-BR:
Todo arquivo SpectraLang deve seguir esta estrutura obrigatória:

EN-US:
Every SpectraLang source file must follow this mandatory structure:

// 1. Declaração de módulo (OBRIGATÓRIA / REQUIRED)
module nome.do.modulo

// 2. Importações (opcionais / optional)
import std.io
import std.math as math
from std.io import println, print

// 3. Declarações de nível superior (top-level items)
//    - Funções (fn)
//    - Structs (struct)
//    - Enums (enum)
//    - Implementações (impl)
//    - Traits (trait)

public func main() returns int {
    println("Hello, World!")
    return 0
}

PT-BR:
Regras obrigatórias:

  • A declaração module deve ser a primeira linha do arquivo (antes de qualquer código, após comentários opcionais).
  • O nome do módulo usa pontos como separador de caminhos: module fisica.vetor (por convenção espelha a hierarquia de pastas, mas não é obrigatório).
  • Importações participam da resolução semântica, e o CLI consegue compilar projetos multi-arquivo e conjuntos explícitos de arquivos.
  • import std.io expõe símbolos da stdlib como println diretamente, e chamadas qualificadas como std.io.println(...) também são aceitas.
  • Alias de importação, named imports e re-exportações públicas fazem parte da superfície atual da linguagem.

EN-US:
Mandatory rules:

  • The module declaration must be the first line of the file (before any code, after optional comments).
  • Module names use dots as path separators: module physics.vector (by convention it mirrors the folder hierarchy, but this is not enforced).
  • Imports participate in semantic resolution, and the CLI can compile multi-file projects and explicit file sets.
  • import std.io makes stdlib symbols such as println available directly, and qualified calls like std.io.println(...) are also accepted.
  • Alias imports, named imports, and public re-exports are part of the current language surface.

Módulos e Caminhos / Modules and Paths

// Nomes válidos de módulo / Valid module names
module app
module app.utils
module app.controllers.user
module std.collections

// Identificadores válidos / Valid identifiers
// [A-Za-z_][A-Za-z0-9_]*
// Exemplos: minhaFuncao, meu_struct, _privado, Tipo1