StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics
https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.0 KiB
35 lines
1.0 KiB
'use strict';
|
|
|
|
var util = require('util');
|
|
var isObject = require('isobject');
|
|
var extend = require('extend-shallow');
|
|
|
|
module.exports = function delimiterRegex(open, close, options) {
|
|
if (open instanceof RegExp) return open;
|
|
if (typeof open === 'undefined') {
|
|
return /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
|
|
}
|
|
if (typeof open === 'string' && typeof close === 'string') {
|
|
return createRegex(open, close, options);
|
|
}
|
|
if (Array.isArray(open)) {
|
|
return createRegex(open[0], open[1], close);
|
|
}
|
|
if (isObject(open)) {
|
|
return createRegex(null, null, open);
|
|
}
|
|
var args = [].slice.call(arguments);
|
|
throw new Error('cannot created delimiters from: ' + util.inspect(args));
|
|
};
|
|
|
|
function createRegex(open, close, options) {
|
|
var opts = extend({flags: ''}, options);
|
|
var tagname = opts.tagname ? createTag(opts.tagname) : '([\\s\\S]+?)';
|
|
open = open || opts.open || '\\$\\{';
|
|
close = close || opts.close || '\\}';
|
|
return new RegExp(open + tagname + close, opts.flags);
|
|
}
|
|
|
|
function createTag(str) {
|
|
return ` (${str.trim()}) `;
|
|
}
|
|
|