@tabnas/jsonc
v0.2.1
Published
This plugin allows the Tabnas JSON parser to support JSONC syntax.
Downloads
81
Maintainers
Readme
@tabnas/jsonc
A JSONC (JSON-with-comments) grammar plugin for the
tabnas parser. It teaches the
jsonic relaxed-JSON grammar to parse
JSONC: standard JSON
plus single-line (//) and block (/* */) comments, with optional
trailing commas.
|
| This open source module is sponsored and supported by Voxgig. |
| ---------------------------------------------------- | --------------------------------------------------------------------------------------- |
Install
@tabnas/jsonc is a plugin; install it alongside the engine and the base
grammar:
npm install @tabnas/parser @tabnas/jsonic @tabnas/jsoncExample
import { Tabnas } from '@tabnas/parser'
import { jsonic } from '@tabnas/jsonic'
import { Jsonc } from '@tabnas/jsonc'
const j = new Tabnas().use(jsonic).use(Jsonc)
j.parse('{ "name": "app", /* version */ "version": "1.0" }')
// => { name: 'app', version: '1.0' }Enable trailing commas with an option at install time:
import { Tabnas } from '@tabnas/parser'
import { jsonic } from '@tabnas/jsonic'
import { Jsonc } from '@tabnas/jsonc'
const j = new Tabnas().use(jsonic).use(Jsonc, { allowTrailingComma: true })
j.parse('{ "debug": true, "verbose": false, }')
// => { debug: true, verbose: false }Documentation
The docs follow the four Diátaxis quadrants:
- Tutorial — a guided first parse (learning).
- How-to guide — task recipes (install as a plugin, set options, handle errors, extend).
- Reference — the public API, every option, and the accepted syntax.
- Concepts — how the plugin works on the engine, and why.
Grammar diagram
The installed grammar as a railroad/syntax diagram, generated from the
live grammar with
@tabnas/railroad:
ASCII version: doc/grammar.txt. The grammar is
defined in the repository-root jsonc-grammar.jsonic and embedded into
src/jsonc.ts (and the Go port) via embed-grammar.js.
Acknowledgments
Conformance testing uses third-party corpora under MIT License:
- nst/JSONTestSuite by Nicolas
Seriot — vendored at
test/JSONTestSuite/. - microsoft/node-jsonc-parser —
parse-level test cases ported into
test/jsonc.test.ts.
See THIRD_PARTY_NOTICES.md for details.
License
MIT. Copyright (c) 2021-2025 Richard Rodger and contributors.
