4.1.1 • Published 4 months ago

bnf-parser v4.1.1

Weekly downloads
3
License
MIT
Repository
github
Last release
4 months ago

BNF-Parser

Test

Compile your bnfs down to WebAssembly for maximum parsing speed; with generated type definitions to make using the syntax tree outputs a breeze. The compiled output from this library is platform agnostic, so it can run anywhere new WebAssembly.Instance() is a valid function. It bundles the WebAssembly module inside of a single js file so it can be easily incorporated into any bundler. The type definitions for a given bnf are just that, a definitions file - so if you don't want to use typescript or type hints you can go wild by ignoring it.

program ::= %w* statement+ ;
block ::= %("block" w+) ...name %(w* "{" w*) seq_stmt* %("}" w*) ;
npx bnf-compile ./syntax.bnf
import * as syntax from "syntax.js";

const tree = syntax.Parse_Program(input).root;
const block = program.value[0];
const name: string = block.value[0]; // typescript knows this **will** be a string

Built to be a devDependency - if you use the included cli tool to generate your syntax parser you don't need to include this library as your dependency, you can just import those artifacts.

Documentation

See https://bnf-parser.ajanibilby.com/

API

See https://bnf-parser.ajanibilby.com/api

BNF Syntax

See https://bnf-parser.ajanibilby.com/api

Try it Online

Try it in your browser https://bnf-parser.ajanibilby.com/test

4.1.1

4 months ago

4.0.5

9 months ago

4.0.4

9 months ago

4.0.7

7 months ago

4.0.6

9 months ago

4.1.0

7 months ago

4.0.1

10 months ago

4.0.0

10 months ago

4.0.3

9 months ago

4.0.2

9 months ago

3.1.6

10 months ago

3.1.5

10 months ago

3.1.3

1 year ago

3.1.2

1 year ago

3.1.1

1 year ago

3.1.0

1 year ago

3.1.4

1 year ago

3.0.3

1 year ago

3.0.2

1 year ago

3.0.1

1 year ago

3.0.0

1 year ago

2.2.5

3 years ago

2.2.4

4 years ago

2.2.3

4 years ago

2.2.2

4 years ago

2.2.1

4 years ago

2.2.0

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.1.0

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago