@gregofi1/regex-tooling
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

Regex tooling

A Javascript library for creating and working regular expressions. It offers API to transform regexes all the way into deterministic finite automata (DFA) and back. Is not supposed to be used to match strings, but rather to display how regexes work.

The library is written in TypeScript and can be used in both Node.js and browser environments. Following API is available:

new Parser(regex: string).parse() // -> Returns an Abstract Syntax Tree (AST) of the regex
glushkov(ast: AST): { ..., NFA } // -> Returns a Nondeterministic finite automaton (NFA) from the AST using the Glushkov neighborhood algorithm
determinize(nfa: NFA): DFA // -> Returns a Deterministic finite automaton (DFA) from the NFA using the subset construction algorithm

faToDot(fa: NFA | DFA): string // -> Returns a string in DOT format representing the NFA or DFA

simulate(dfa: DFA, input: string): boolean // -> Simulates the DFA on the input string and returns true if the input is accepted by the DFA, false otherwise

The regexes support only very small subset of the full regex syntax, namely:

  • a, b, c - literal characters
  • abc - implicit concatenation
  • a|b - alternation
  • a*, a+, a? - Kleene star, plus and optional quantifiers
  • (...) - grouping

The literal characters can be only from the a-z, A-Z, 0-9 range.

See the library in action at Coderunner website.

Installation

npm install @gregofi1/regex-tooling

this includes TypeScript types.

Readme

Keywords

none

Package Sidebar

Install

npm i @gregofi1/regex-tooling

Weekly Downloads

7

Version

1.0.2

License

none

Unpacked Size

19.1 kB

Total Files

5

Last publish

Collaborators

  • gregofi1