Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/robinweser/tokenize-sync

Simple synchronous string tokenizer using Regex
https://github.com/robinweser/tokenize-sync

compiler synchronous tokenization tokenizer tokenizing-parser

Last synced: 23 days ago
JSON representation

Simple synchronous string tokenizer using Regex

Awesome Lists containing this project

README

        

# Synchronous Tokenizer

A simple synchronous string tokenizer using Regex.

TravisCI Test Coverage npm downloads gzipped size npm version

## Installation
```sh
yarn add tokenize-sync
```

## Usage

The package ships a single `tokenize` function that takes an (*string*) input and a (*Object*) ruleMap that maps (*string*) token names to Regexes.

```javascript
import tokenize from 'tokenize-sync'

const ruleMap = {
identifier: /^[a-z-]+$/i,
number: /^\d+$/,
whitespace: /^\s+$/
}

const input = 'test 12 foobar3'

const tokens = tokenize(input, ruleMap)

tokens === [{
type: 'identifier',
value: 'test',
start: 0,
end: 4
}, {
type: 'whitespace',
value: ' ',
start: 4,
end: 5
}, {
type: 'number',
value: '12',
start: 5,
end: 7
}, {
type: 'whitespace',
value: ' ',
start: 7,
end: 9
}, {
type: 'identifier',
value: 'foobar',
start: 9,
end: 15
}, {
type: 'number',
value: '3',
start: 15,
end: 16
}]
```

## License
tokenize-sync is licensed under the [MIT License](http://opensource.org/licenses/MIT).

Documentation is licensed under [Creative Common License](http://creativecommons.org/licenses/by/4.0/).

Created with ♥ by [@rofrischmann](http://rofrischmann.de).