@hldprk/tokens

0.0.3 • Public • Published

tokens is a recursive descent parsing library where class structure defines a syntax tree.

Usage

const Number = Token.register('Number', /\d+/, 'a number');
const Whitespace = Token.register('Whitespace', /[ \t]+/, 'a whitespace');
const Operator = Token.register('Operator', /[\+\*\\\-]/, 'an operator');

class Expression extends Sequence {

	left = new Number();
	operator = new Operator();
	right = new Expression.Right();

	static Right = class extends Choice {

		static choices = [Expression, Number];

	}

}

let state = new State('1 + 2 * 3');

let expression = new Expression();

expression.parse(state);

In this example:

  • Token.register defines Number, Whitespace, and Number tokens, which makes them available while tokenizing.
  • Expression defines the syntax tree for a binary expression, which can be parsed from a State object initialised by some input string.

Readme

Keywords

Package Sidebar

Install

npm i @hldprk/tokens

Weekly Downloads

0

Version

0.0.3

License

MIT

Unpacked Size

16.8 kB

Total Files

11

Last publish

Collaborators

  • hldprk