1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /**
- * The MIT License (MIT)
- * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>
- */
- 'use strict';
- var NFA = require('./nfa/nfa');
- var DFA = require('./dfa/dfa');
- var nfaFromRegExp = require('./nfa/nfa-from-regexp');
- var builders = require('./nfa/builders');
- module.exports = {
- /**
- * Export NFA and DFA classes.
- */
- NFA: NFA,
- DFA: DFA,
- /**
- * Expose builders.
- */
- builders: builders,
- /**
- * Builds an NFA for the passed regexp.
- *
- * @param string | AST | RegExp:
- *
- * a regular expression in different representations: a string,
- * a RegExp object, or an AST.
- */
- toNFA: function toNFA(regexp) {
- return nfaFromRegExp.build(regexp);
- },
- /**
- * Builds DFA for the passed regexp.
- *
- * @param string | AST | RegExp:
- *
- * a regular expression in different representations: a string,
- * a RegExp object, or an AST.
- */
- toDFA: function toDFA(regexp) {
- return new DFA(this.toNFA(regexp));
- },
- /**
- * Returns true if regexp accepts the string.
- */
- test: function test(regexp, string) {
- return this.toDFA(regexp).matches(string);
- }
- };
|