1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | var Argument_1 = __importDefault(require("./Argument"));
|
7 | var TreeRegexp_1 = __importDefault(require("./TreeRegexp"));
|
8 | var ParameterType_1 = __importDefault(require("./ParameterType"));
|
9 | var RegularExpression = (function () {
|
10 | function RegularExpression(regexp, parameterTypeRegistry) {
|
11 | this.regexp = regexp;
|
12 | this.parameterTypeRegistry = parameterTypeRegistry;
|
13 | this.treeRegexp = new TreeRegexp_1.default(regexp);
|
14 | }
|
15 | RegularExpression.prototype.match = function (text) {
|
16 | var _this = this;
|
17 | var parameterTypes = this.treeRegexp.groupBuilder.children.map(function (groupBuilder) {
|
18 | var parameterTypeRegexp = groupBuilder.source;
|
19 | return (_this.parameterTypeRegistry.lookupByRegexp(parameterTypeRegexp, _this.regexp, text) ||
|
20 | new ParameterType_1.default(null, parameterTypeRegexp, String, function (s) { return (s === undefined ? null : s); }, false, false));
|
21 | });
|
22 | return Argument_1.default.build(this.treeRegexp, text, parameterTypes);
|
23 | };
|
24 | Object.defineProperty(RegularExpression.prototype, "source", {
|
25 | get: function () {
|
26 | return this.regexp.source;
|
27 | },
|
28 | enumerable: true,
|
29 | configurable: true
|
30 | });
|
31 | return RegularExpression;
|
32 | }());
|
33 | exports.default = RegularExpression;
|
34 |
|
\ | No newline at end of file |