Reg2Automata.js
Reg2Automata.js is a regular expression converter written in JS for both Node.js and browser.
It aims to convert regular expression to finite state machine(FSM, like NFA). Besides, dot script transition is provided so that you can make diagrams with Graphiz.
API Description
Currently, Reg2Automata.js supports minimal regular expression with +
, *
, ?
, ()
.
FSM
FSM
is a object represent a finite state machine(NFA, DFA).
The json definition is below:
{
initialState: 'id',
acceptState: ['id', ... ] ,
numOfStates: Integer,
type: 'DFA' or 'NFA',
transitions: {
'id': { 'to_id': label, },
...,
}
}
FSM.toDotScript()
Convert the fsm to Graphiz dot script.
FSM.match(text)
text
: String
Determine whether text
matches to the FSM. This methods only supports DFA.
RegParser
RegParser is a regular expression parser.
RegParser.reset(string)
Set regular expression string
in parser.
RegParser.parseToNFA()
Parses the given regular expression.
Returns a FSM
object, the FSM
represents a Nondeterministic Finite Automata(NFA).
RegParser.parseToDFA()
Parses the given regular expression.
Returns a FSM
object, the FSM
represents a Deterministic Finite Automata(DFA).
Usage
Usage in Node.js
var regParser = require('regparser');
var parser = new regParser.RegParser('a*b');
var nfa = parser.parseToNFA();
nfa.toDotScript();
Usage in Browser
Reg2Automata uses node-browserify to generate a browser distribution.
You can use Viz.js to render graphiz dot script in your web page.
var regParser = require('regparser');
var parser = new regParser.RegParser('a*b');
var nfa = regParser.parseToNFA();
// render dot script to svg.
var result = Viz(nfa.toDotScript(), 'svg', 'dot');