@bakes/dastardly-tree-sitter-csv
v1.0.0
Published
CSV, PSV, & TSV grammar for tree-sitter (dASTardly fork with prebuilt binaries)
Downloads
18
Maintainers
Readme
@bakes/dastardly-tree-sitter-csv
CSV, PSV, and TSV grammars for tree-sitter.
dASTardly fork with enhancements:
- RFC 4180 compliant with external scanner for empty field support
- Migrated from deprecated
nantonode-addon-apifor modern Node.js compatibility - Tree-sitter 0.21+ compatibility
- Used by @bakes/dastardly-csv parser
Original grammar by Amaan Qureshi.
Installation
npm install @bakes/dastardly-tree-sitter-csvpnpm add @bakes/dastardly-tree-sitter-csvNote: This package requires build tools (node-gyp, C compiler) for installation. The native bindings will be compiled during npm install.
Usage
This module exports three tree-sitter grammars for different delimiter types:
const { csv, psv, tsv } = require('@bakes/dastardly-tree-sitter-csv');
// CSV grammar (comma-delimited)
const Parser = require('tree-sitter');
const parser = new Parser();
parser.setLanguage(csv);
// PSV grammar (pipe-delimited)
parser.setLanguage(psv);
// TSV grammar (tab-delimited)
parser.setLanguage(tsv);Features
- RFC 4180 Compliant - Full support for CSV specification including empty fields
- External Scanner - C-based scanner for accurate empty field detection
- Three Dialects - CSV (
,), TSV (\t), and PSV (|) support - Modern Node.js - Uses
node-addon-apiinstead of deprecatednan - Tree-sitter 0.21+ - Compatible with latest tree-sitter versions
Building from Source
If you need to regenerate the parsers:
# Install tree-sitter CLI
npm install -g tree-sitter-cli
# Regenerate all three grammars
pnpm generate
# Or regenerate individually
cd csv && tree-sitter generate
cd psv && tree-sitter generate
cd tsv && tree-sitter generateLicense
MIT
