Packages
Every package is published to npm under the @tabnas/* scope and, where
applicable, as a Go module at github.com/tabnas/<name>/go. Most ship
four-quadrant Diátaxis docs in both languages.
Grammars are plugins over other grammars, so the list below is closer to a dependency order than a catalogue: JSON is a handful of rules, JSONC adds comments to them, JSON5 and jsonic relax the quoting, and so on. Extending one of these is usually cheaper than starting a new grammar.
35 packages. Versions here are recorded in the site source and can lag a release: releases reads the live version from npm.
Engine
The machine everything else plugs into.
| Package | What it does | Version | Links |
|---|---|---|---|
@tabnas/parser | The engine: a pluggable, rule-based parsing machine and a uniform syntax tree. | 0.12.9 | npm go |
Grammar tooling
Write, inspect, draw, and test grammars.
| Package | What it does | Version | Links |
|---|---|---|---|
@tabnas/abnf | Compile RFC 5234 ABNF straight into a working grammar. | 0.4.17 | npm go |
@tabnas/bnf | The shared BNF-family compiler behind abnf, ebnf, and gbnf. | 0.1.25 | npm go |
@tabnas/ebnf | Compile W3C EBNF, the notation the XML and XPath specifications use, into a working grammar. | 0.1.11 | npm go |
@tabnas/debug | Inspect a live grammar: describe it, render it back as ABNF. | 0.3.10 | npm go |
@tabnas/railroad | Render railroad (syntax) diagrams from a grammar. | 0.3.9 | npm go |
@tabnas/support | Shared .tsv fixture loaders and the error-code census helpers: the machinery behind every repo's two-runtime specs. | 0.3.6 | npm go |
Agent tooling
Serve the fleet to an agent: the MCP server and the tabnas CLI, one implementation behind both.
| Package | What it does | Version | Links |
|---|---|---|---|
@tabnas/mcp | The MCP server and the unified tabnas CLI: the same seven operations from one core, listed in the MCP registry as dev.tabnas/mcp. | 0.1.17 | npm |
Languages and formats
Ready-made languages and data formats. Each is a plugin, so you can extend one rather than start over.
| Package | What it does | Version | Links |
|---|---|---|---|
@tabnas/json | Standard JSON. | 0.5.13 | npm go |
@tabnas/jsonc | JSON with comments. | 0.5.10 | npm go |
@tabnas/json5 | The JSON5 dialect. | 0.5.11 | npm go |
@tabnas/jsonl | JSON Lines (NDJSON): one standard-JSON value per line. | 0.1.12 | npm go |
@tabnas/jsonic | A dynamic JSON parser that isn't strict and can be customised. | 0.7.4 | npm go |
@tabnas/yaml | YAML. | 0.5.19 | npm go |
@tabnas/toml | TOML. | 0.5.12 | npm go |
@tabnas/ini | INI files. | 0.5.14 | npm go |
@tabnas/csv | Delimited records (CSV, TSV, RFC 4180 quoting) into objects or arrays. | 0.6.2 | npm go |
@tabnas/xml | XML. | 0.7.12 | npm go |
@tabnas/markdown | Markdown: the full CommonMark spec, 652/652 on the reference suite. | 0.7.8 | npm go |
@tabnas/css | CSS, into an AST that preserves declaration order and duplicate properties. | 0.5.10 | npm go |
@tabnas/c | C source, into a concrete syntax tree: every token, comment, and macro kept as-is. | 0.5.10 | npm go |
@tabnas/proto | Protocol Buffers .proto IDL (proto2, proto3, editions 2023/2024). | 0.6.3 | npm go |
@tabnas/zon | Zig Object Notation, as used by build.zig.zon manifests. | 0.5.12 | npm go |
@tabnas/feed | RSS (0.90–2.0) and Atom (0.3, 1.0), normalised to one Atom-shaped result. | 0.6.11 | npm go |
@tabnas/chess | PGN and SAN: chess games and moves, tag pairs, variations, and annotations. | 0.1.10 | npm go |
@tabnas/semver | Semantic Versioning 2.0.0, compiled from the specification's own grammar, with precedence. | 0.0.6 | npm go |
@tabnas/gbnf | llama.cpp GBNF: check text against a constrained-decoding grammar, with no model. | 0.1.14 | npm go |
Web components
Custom elements for a web page that bundle a grammar and the engine.
| Package | What it does | Version | Links |
|---|---|---|---|
@tabnas/chess-view | A <chess-view> web component: a 2D chessboard view of a PGN game, with move navigation and highlighted notation. | 0.1.5 | npm |
Syntax plugins
Syntax that layers onto a host grammar instead of standing alone.
| Package | What it does | Version | Links |
|---|---|---|---|
@tabnas/expr | Pratt-parser expressions: infix, prefix, suffix, ternary, with configurable precedence. | 0.5.12 | npm go |
@tabnas/directive | Directive syntax: token sequences like @name or add<1,2> that trigger custom parsing. | 0.5.10 | npm go |
@tabnas/hoover | String hoovering: block-delimited strings with unquoted internal spaces. | 0.3.11 | npm go |
@tabnas/path | Track the property path to each value as it is parsed. | 0.3.10 | npm go |
@tabnas/multisource | Merge multiple sources into one parse: a marked path is resolved and spliced in place. | 0.5.10 | npm go |
Command line
Command-line entry points.
| Package | What it does | Version | Links |
|---|---|---|---|
@tabnas/jsonic-cli | Command-line interface for @tabnas/jsonic. | 0.5.10 | npm go |
@tabnas/lsp | One language server for every tabnas grammar, and a generator for single-language servers and their editor plugins. | 0.1.4 | npm go |
Health and CI status for every repository is on the org status dashboard. Reproducible cross-port capability and performance evidence is in the measurement catalog.