Packages

Every package is published to npm under the @tabnas/* scope and, where applicable, as a Go module at github.com/tabnas/<name>/go. Each ships 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.

28 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.8.5

Grammar tooling

Write, inspect and draw grammars.

PackageWhat it doesVersionLinks
@tabnas/abnf Compile RFC 5234 ABNF straight into a working grammar. 0.4.2
@tabnas/bnf The shared BNF-family compiler behind abnf, ebnf and gbnf. 0.1.5
@tabnas/debug Inspect a live grammar — describe it, render it back as ABNF. 0.3.2
@tabnas/railroad Render railroad (syntax) diagrams from a grammar. 0.3.2

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.2
@tabnas/jsonc JSON with comments. 0.5.2
@tabnas/json5 The JSON5 dialect. 0.5.2
@tabnas/jsonic A dynamic JSON parser that isn't strict and can be customised. 0.6.2
@tabnas/yaml YAML. 0.5.2
@tabnas/toml TOML. 0.5.2
@tabnas/ini INI files. 0.5.2
@tabnas/csv Delimited records — CSV, TSV, RFC 4180 quoting — into objects or arrays. 0.5.2
@tabnas/xml XML. 0.7.2
@tabnas/markdown Markdown — the full CommonMark spec, 652/652 on the reference suite. 0.6.2
@tabnas/css CSS, into an AST that preserves declaration order and duplicate properties. 0.5.2
@tabnas/c C source, into a concrete syntax tree — every token, comment, and macro kept as-is. 0.5.2
@tabnas/proto Protocol Buffers .proto IDL (proto2, proto3, editions 2023/2024). 0.4.2
@tabnas/zon Zig Object Notation, as used by build.zig.zon manifests. 0.5.2
@tabnas/feed RSS (0.90–2.0) and Atom (0.3, 1.0), normalised to one Atom-shaped result. 0.6.2
@tabnas/chess PGN and SAN — chess games and moves, tag pairs, variations and annotations. 0.1.3
@tabnas/gbnf llama.cpp GBNF — check text against a constrained-decoding grammar, with no model. 0.1.4

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.2
@tabnas/directive Directive syntax — token sequences like @name or add<1,2> that trigger custom parsing. 0.5.2
@tabnas/hoover String hoovering — block-delimited strings with unquoted internal spaces. 0.3.2
@tabnas/path Track the property path to each value as it is parsed. 0.3.2
@tabnas/multisource Merge multiple sources into one parse — a marked path is resolved and spliced in place. 0.5.2

Command line

Command-line entry points.

PackageWhat it doesVersionLinks
@tabnas/jsonic-cli Command-line interface for @tabnas/jsonic. 0.5.2

Health and CI status for every repository is on the org status dashboard.

Describes @tabnas/parser 0.8.10 · all pinned versions