123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- 'use strict';
- var compatTranspiler = require('./compat-transpiler');
- var generator = require('./generator');
- var optimizer = require('./optimizer');
- var parser = require('./parser');
- var _transform = require('./transform');
- var _traverse = require('./traverse');
- var fa = require('./interpreter/finite-automaton');
- var _require = require('./compat-transpiler/runtime'),
- RegExpTree = _require.RegExpTree;
- var regexpTree = {
-
- parser: parser,
-
- fa: fa,
-
- TransformResult: _transform.TransformResult,
-
- parse: function parse(regexp, options) {
- return parser.parse('' + regexp, options);
- },
-
- traverse: function traverse(ast, handlers, options) {
- return _traverse.traverse(ast, handlers, options);
- },
-
- transform: function transform(regexp, handlers) {
- return _transform.transform(regexp, handlers);
- },
-
- generate: function generate(ast) {
- return generator.generate(ast);
- },
-
- toRegExp: function toRegExp(regexp) {
- var compat = this.compatTranspile(regexp);
- return new RegExp(compat.getSource(), compat.getFlags());
- },
-
- optimize: function optimize(regexp, whitelist) {
- var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
- blacklist = _ref.blacklist;
- return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });
- },
-
- compatTranspile: function compatTranspile(regexp, whitelist) {
- return compatTranspiler.transform(regexp, whitelist);
- },
-
- exec: function exec(re, string) {
- if (typeof re === 'string') {
- var compat = this.compatTranspile(re);
- var extra = compat.getExtra();
- if (extra.namedCapturingGroups) {
- re = new RegExpTree(compat.toRegExp(), {
- flags: compat.getFlags(),
- source: compat.getSource(),
- groups: extra.namedCapturingGroups
- });
- } else {
- re = compat.toRegExp();
- }
- }
- return re.exec(string);
- }
- };
- module.exports = regexpTree;
|