Files
lifen-autotest/node_modules/cucumber-expressions/dist/src/regular_expression.js

35 lines
982 B
JavaScript

"use strict";
const Argument = require('./argument');
const TreeRegexp = require('./tree_regexp');
const ParameterType = require('./parameter_type');
class RegularExpression {
constructor(expressionRegexp, parameterTypeRegistry) {
this._expressionRegexp = expressionRegexp;
this._parameterTypeRegistry = parameterTypeRegistry;
this._treeRegexp = new TreeRegexp(expressionRegexp);
}
match(text) {
const parameterTypes = this._treeRegexp.groupBuilder.children.map(groupBuilder => {
const parameterTypeRegexp = groupBuilder.source;
return this._parameterTypeRegistry.lookupByRegexp(parameterTypeRegexp, this._treeRegexp, text) || new ParameterType(null, parameterTypeRegexp, String, s => s, false, false);
});
return Argument.build(this._treeRegexp, text, parameterTypes);
}
get regexp() {
return this._expressionRegexp;
}
get source() {
return this._expressionRegexp.source;
}
}
module.exports = RegularExpression;