Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
bynk-syntax
The syntax foundation of the Bynk compiler — the lowest leaf of the compiler's layered crate set.
It holds the modules every other layer depends on and none depend up from:
lexer— thelogos-driven token stream.parser/ast— hand-written recursive descent and the syntax tree it builds.print— renders an expression, pattern or statement back to Bynk source text (shared by the formatter and the checker's diagnostics).span— source byte ranges, plus theline_colposition utility.keywords— the reserved-word table.error—CompileError(the structured, spanned diagnostic every phase produces) andSeverity.diagnostics— the registry ofbynk.*diagnostic codes (the single source of truth for the codes, summaries, and grammar links).
Because diagnostics, positions, and codes all live here, they cross every crate in the compiler without an upward dependency.
Where it sits
bynk-syntax is the leaf of the layered compiler:
bynk-syntax lexer, parser, AST, CompileError, diagnostic codes
├── bynk-project project model: discovery, unit graph, paths
├── bynk-ts the TypeScript tree and its printer
├── bynk-render diagnostic rendering
├── bynk-fmt the formatter
└── bynk-check name resolution and type checking + project, std, ts
├── bynk-ir declaration-level IR
│ └── bynk-lower AST → IR helpers
├── bynk-emit TS emission from a checked program + ts, ir, lower, project
│ └── bynk-driver shared CLI command bodies, build sequencing + fmt, project, render, ts, ir, lower, strip
└── bynk-ide non-bailing editor analysis + project, fmt, ir, lower
bynk-std first-party sources and bindings, as data
bynk-strip TS → JS type-stripping (text level), on oxc alone
Each crate depends on its parent in the tree, plus any crates listed after
its +. The front-ends sit on top: the bynkc and bynk CLIs over
bynk-driver, the bynk-lsp language server (bynk-lsp) over bynk-ide, and
the unpublished bynk-wasm playground module over bynk-driver
and bynk-ide.
Most users compile Bynk through the bynkc or
bynk CLIs rather than depending on this crate
directly; it is published so tooling that needs only to lex or parse Bynk can do
so without linking the whole compiler.
Use
[]
= "0.510"
use ;
let tokens = tokenize?;
let unit = parse?;
See the API docs for the full surface.
License
Licensed under either of Apache-2.0 or MIT at your option.