Internals

This tree documents the LogEx implementation — useful if you are studying compiler architecture or contributing to the tool.

LogEx is a four-crate Cargo workspace: a pure hexagon (logex-core) and three adapters for the terminal, the language server, and the composition root. Inside the hexagon the pipeline is hand-written and runs in four stages: lexer → parser (AST) → semantic analysis → output. Round-trip fidelity is the lexer's guarantee, not a syntax tree's, which is what lets every later stage discard what it does not need.

Version scope. These pages describe the logex implementation as of main (2026-09-04) — after the CST deletion, the four-crate workspace split, the migration to lsp-server, and the DeclBody::Expr serialization fix that gave every body one JSON tag. The pinned release the /language/ tree and the examples are validated against is still v0.1.0, which predates all three. Bump logex_version in config.toml when logex cuts the next tag.

Quadrants

  • Tutorials(no pages yet)
  • How-to(no pages yet)
  • Reference — AST catalogue, crate and module map, error codes.
  • Explanation — pipeline overview, lexer and trivia, scope analysis, variable binding, faults and diagnostics, commands and outcomes, implementation invariants, LSP architecture.
  • Tutorials

    No pages yet.

  • How-to

    No pages yet.

  • Reference

    AST catalogue, crate and module map, and the error-codes reference.

  • Explanation

    Why the LogEx implementation looks the way it does.