var regenerate = require('regenerate');
var pkg = require('../package.json');
var dependencies = Object.keys(pkg.devDependencies);
var unicodeDep = dependencies.find((name) => /^unicode-\d/.test(name));
var version = unicodeDep.match(/[^\d]+(.+)$/)[1];
var get = function(what) {
return require(unicodeDep + '/' + what + '/code-points.js');
};
var generateRegex = function() { var identifierStart = regenerate(get('Binary_Property/ID_Start'))
.add('$', '_')
.removeRange(0x0, 0x7F); var identifierPart = regenerate(get('Binary_Property/ID_Continue'))
.add(get('Binary_Property/Other_ID_Start'))
.add('\u200C', '\u200D')
.add('$', '_')
.removeRange(0x0, 0x7F);
return {
'NonAsciiIdentifierStart': '/' + identifierStart + '/',
'NonAsciiIdentifierPart': '/' + identifierPart + '/'
};
};
var result = generateRegex();
console.log(
'// Unicode v%s NonAsciiIdentifierStart:\n%s\n',
version,
result.NonAsciiIdentifierStart
);
console.log(
'// Unicode v%s NonAsciiIdentifierPart:\n%s',
version,
result.NonAsciiIdentifierPart
);