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.

PackageWhat it doesVersionLinks
@tabnas/parser The engine: a pluggable, rule-based parsing machine and a uniform syntax tree. 0.12.9

Grammar tooling

Write, inspect, draw, and test grammars.

PackageWhat it doesVersionLinks
@tabnas/abnf Compile RFC 5234 ABNF straight into a working grammar. 0.4.17
@tabnas/bnf The shared BNF-family compiler behind abnf, ebnf, and gbnf. 0.1.25
@tabnas/ebnf Compile W3C EBNF, the notation the XML and XPath specifications use, into a working grammar. 0.1.11
@tabnas/debug Inspect a live grammar: describe it, render it back as ABNF. 0.3.10
@tabnas/railroad Render railroad (syntax) diagrams from a grammar. 0.3.9
@tabnas/support Shared .tsv fixture loaders and the error-code census helpers: the machinery behind every repo's two-runtime specs. 0.3.6

Agent tooling

Serve the fleet to an agent: the MCP server and the tabnas CLI, one implementation behind both.

PackageWhat it doesVersionLinks
@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

Languages and formats

Ready-made languages and data formats. Each is a plugin, so you can extend one rather than start over.

PackageWhat it doesVersionLinks
@tabnas/json Standard JSON. 0.5.13
@tabnas/jsonc JSON with comments. 0.5.10
@tabnas/json5 The JSON5 dialect. 0.5.11
@tabnas/jsonl JSON Lines (NDJSON): one standard-JSON value per line. 0.1.12
@tabnas/jsonic A dynamic JSON parser that isn't strict and can be customised. 0.7.4
@tabnas/yaml YAML. 0.5.19
@tabnas/toml TOML. 0.5.12
@tabnas/ini INI files. 0.5.14
@tabnas/csv Delimited records (CSV, TSV, RFC 4180 quoting) into objects or arrays. 0.6.2
@tabnas/xml XML. 0.7.12
@tabnas/markdown Markdown: the full CommonMark spec, 652/652 on the reference suite. 0.7.8
@tabnas/css CSS, into an AST that preserves declaration order and duplicate properties. 0.5.10
@tabnas/c C source, into a concrete syntax tree: every token, comment, and macro kept as-is. 0.5.10
@tabnas/proto Protocol Buffers .proto IDL (proto2, proto3, editions 2023/2024). 0.6.3
@tabnas/zon Zig Object Notation, as used by build.zig.zon manifests. 0.5.12
@tabnas/feed RSS (0.90–2.0) and Atom (0.3, 1.0), normalised to one Atom-shaped result. 0.6.11
@tabnas/chess PGN and SAN: chess games and moves, tag pairs, variations, and annotations. 0.1.10
@tabnas/semver Semantic Versioning 2.0.0, compiled from the specification's own grammar, with precedence. 0.0.6
@tabnas/gbnf llama.cpp GBNF: check text against a constrained-decoding grammar, with no model. 0.1.14

Web components

Custom elements for a web page that bundle a grammar and the engine.

PackageWhat it doesVersionLinks
@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

Syntax plugins

Syntax that layers onto a host grammar instead of standing alone.

PackageWhat it doesVersionLinks
@tabnas/expr Pratt-parser expressions: infix, prefix, suffix, ternary, with configurable precedence. 0.5.12
@tabnas/directive Directive syntax: token sequences like @name or add<1,2> that trigger custom parsing. 0.5.10
@tabnas/hoover String hoovering: block-delimited strings with unquoted internal spaces. 0.3.11
@tabnas/path Track the property path to each value as it is parsed. 0.3.10
@tabnas/multisource Merge multiple sources into one parse: a marked path is resolved and spliced in place. 0.5.10

Command line

Command-line entry points.

PackageWhat it doesVersionLinks
@tabnas/jsonic-cli Command-line interface for @tabnas/jsonic. 0.5.10
@tabnas/lsp One language server for every tabnas grammar, and a generator for single-language servers and their editor plugins. 0.1.4

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.

Describes @tabnas/parser 0.12.9 · all pinned versions