Socket
Book a DemoInstallSign in
Socket

bablr

Package Overview
Dependencies
Maintainers
2
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bablr

The primary BABLR APIs

latest
Source
npmnpm
Version
0.10.2
Version published
Weekly downloads
41
105%
Maintainers
2
Weekly downloads
 
Created
Source

bablr

come chat on Discord

This is the priary API package for BABLR. Use it in combination with a BABLR language definition to perform parsing.

Usage

import { i, spam } from '@bablr/boot';
import { buildTag } from 'bablr';
import { buildCovers } from '@bablr/helpers/decorators';

const language = {
  canonicalURL:
    'https://bablr.org/languages/example/digits',
  grammar: class {
    constructor() {
      // If you can use decorators, `@Node` on a production will do this for you
      this.covers = buildCovers({
        [Symbol.for('@bablr/node')]: ['Number', 'Digit'],
      });
    }

    *Number() {
      while (yield i`eatMatch(<*Digit /> 'digits[]')`);
    }

    *Digit() {
      yield i`eat(/\d/)`;
    }
  },
};

const matcher = spam`<'https://bablr.org/languages/example/digits':Number />`;
const digits = buildTag(language, matcher);

digits`42`;

// <!0:cstml bablr-language="https://bablr.org/languages/example/digits">
// <$>
//   .:
//   <$Number>
//     digits[]: []
//     digits[]: <*Digit '4' />
//     digits[]: <*Digit '2' />
//   </>
// </>

Prior Art

BABLR is actually portmanteau of Babel and ANTLR. It would be reasonable to describe this project as being a mixture of the ideas from those two, with a bit of help from SrcML, Tree-sitter, and the fabulous Redux.

It is also designed with the needs of Prettier and ESLint in mind.

FAQs

Package last updated on 09 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts