Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sang-it/t_rex

NFA / DFA based Regex Engine in TS.
https://github.com/sang-it/t_rex

dfa finite-state-machine nfa regex

Last synced: 10 days ago
JSON representation

NFA / DFA based Regex Engine in TS.

Awesome Lists containing this project

README

        




T_REX


NFA/DFA based Regex Machine



Table of Contents



  1. About The Project




  2. Getting Started


  3. Usage

  4. Roadmap

  5. Contact

  6. Acknowledgements

## About The Project

I always wanted to know how Regular Expressions worked. That took me down this deep rabbit hole of Formal Grammar, Chomsky Hierarchy, Kleene Star and etc.

I also had been learning Haskell at the time and the concept of Finite State Machine came up time and again. It turns out I can utilize FSA to implement Regex Engines. So I did.

## Getting Started

Install through your favorite package manager to get started.

### Installation

```sh
npm install @rux12/t_rex
```
```sh
yarn add @rux12/t_rex
```

## Usage
Basic Usage:
```ts
import {build} from "@rux12/t_rex";

const re = build("/(ab|cd)/");

re.matches("ab") // true
re.matches("cd") // true
re.matches("ef") // false
```
You could also use the builders provided.
```ts
import {char, or} from "@rux12/t_rex";

const re = or(
char("a"),
char("b")
);

re.matches("a") // true
re.matches("b") // true
re.matches("e") // false
```

## Roadmap

- [ ] Add Wildcard Support (for now)

## Contact

Email: [email protected]

Project Link: [https://github.com/Sangi-it/t_rex](https://github.com/Sang-it/t_rex)

## Acknowledgments

* [regex-tree](https://github.com/DmitrySoshnikov/regexp-tree)