Programming Language

Nocter

A self-contained systems language built around simplicity, encapsulation, and foolproof design.

nocter-language

Responsibility

Own the closed, source-independent Nocter language vocabulary shared by lexing, parsing, semantic modeling, tooling, and diagnostics.

Contract

The crate publishes language constants and closed classifications, including the registered diagnostic-code vocabulary generated from diagnostic-codes.txt, package-directive and intrinsic argument-pack member names, the ordered callable-modifier vocabulary and grammar categories, and the canonical physical source layout. It does not parse source, own diagnostic meaning or semantic identities, or decide whether a complete source program is valid.

Invariants

  • Every consumer uses the same vocabulary instead of maintaining a local spelling table.
  • Parser recognition, semantic presentation, and editor completion read one callable-modifier order. The vocabulary also owns context-independent modifier conflicts; declaration checking owns rules that depend on callable kind or implementation authority.
  • The source extension, module-root file name, and recursive editor glob derive from one physical source-layout declaration.
  • Adding a public vocabulary entry requires the owning specification change first.
  • An unregistered string cannot be used as a compiler diagnostic code.
  • The crate has no dependency on compiler stages or source storage.

Exact exported values belong to Rust source and rustdoc; public language meaning belongs to spec/.