Programming Language

Nocter

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

/development/compiler/crates/nocter-cli/README.md

nocter-cli

Responsibility

Own the nocter process boundary: host arguments and environment, command dispatch, LSP process entry, human/JSON reporting, exit status, and native test reporting.

Contract

The crate converts process inputs into nocter-command or language-server requests and projects their typed outcomes to stdout, stderr, and process status. It does not implement command planning, compiler semantics, package resolution, or LSP feature logic.

Internal Responsibilities

  • exhaustive classification into direct commands and installation-dependent commands
  • direct source tooling and package initialization execution
  • installed toolchain validation and typed command dispatch
  • process result and diagnostic presentation

Invariants

  • Process I/O and environment access remain at this outer boundary.
  • Rendering cannot change command success or diagnostic identity.
  • A parsed command crosses exactly one exhaustive route boundary. Installed dispatch cannot represent help, initialization, formatting, or source inspection, so no unreachable branch is required to defend an earlier classification.
  • LSP transport and ordinary command execution use distinct explicit entry paths.