0.2.3 • Published 2 years ago

@gerardpastor/lexer v0.2.3

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

lexer

A simple typescript lexer.

Installation

pnpm add @gerardpastor/lexer

yarn add @gerardpastor/lexer

npm i @gerardpastor/lexer

Usage

import { definition, lexer } from "../src/index";

const definitions = [
  definition({
    type: "word",
    regex: /([a-zA-Z0-9]+)/,
  }),
  definition({
    type: "number",
    regex: /([0-9]+)/,
  }),
  definition({
    type: "operator",
    literal: ["+", "-", "*", "/"],
    wordBoundary: false,
  }),
  definition({
    type: "parenthesis",
    literal: ["(", ")"],
    wordBoundary: false,
  }),
  definition({
    type: "whitespace",
    regex: /[ ]+/,
    skip: true,
    wordBoundary: false,
  }),
];

const tokenizer = lexer(definitions);
const tokens = tokenizer("1 + 2 * 3");

console.log(tokens);
// [
//   { type: 'number', value: '1', data: {} },
//   { type: 'operator', value: '+', data: {} },
//   { type: 'number', value: '2', data: {} },
//   { type: 'operator', value: '*', data: {} },
//   { type: 'number', value: '3', data: {} }
// ]
0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago