forked from daren.hsu/line_push
update
This commit is contained in:
+5
-5
@@ -1,4 +1,4 @@
|
||||
# regjsgen [![Build status][travis-ci-img]][travis-ci] [![Code coverage status][codecov-img]][codecov]
|
||||
# regjsgen [![Build status][ci-img]][ci] [![Code coverage status][codecov-img]][codecov]
|
||||
|
||||
Generate regular expressions from [regjsparser][regjsparser]’s AST.
|
||||
|
||||
@@ -30,12 +30,12 @@ let regex = regjsgen.generate(ast);
|
||||
|
||||
## Support
|
||||
|
||||
Tested in Node.js 0.10, 0.12, 4, 6, 8, 10, 12 and 14.<br>
|
||||
Compatible with regjsparser v0.6.4’s AST.
|
||||
Tested in Node.js 10, 12, 14, and 16.<br>
|
||||
Compatible with regjsparser v0.7.0’s AST.
|
||||
|
||||
|
||||
[travis-ci]: https://travis-ci.org/bnjmnt4n/regjsgen
|
||||
[travis-ci-img]: https://travis-ci.org/bnjmnt4n/regjsgen.svg?branch=master
|
||||
[ci]: https://github.com/bnjmnt4n/regjsgen/actions
|
||||
[ci-img]: https://github.com/bnjmnt4n/regjsgen/workflows/Node.js%20CI/badge.svg
|
||||
[codecov]: https://codecov.io/gh/bnjmnt4n/regjsgen
|
||||
[codecov-img]: https://codecov.io/gh/bnjmnt4n/regjsgen/branch/master/graph/badge.svg
|
||||
[regjsparser]: https://github.com/jviereck/regjsparser
|
||||
|
||||
+15
-15
@@ -1,32 +1,32 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"regjsgen@0.5.2",
|
||||
"/mnt/Foxconn/Digitalent/Deverloper/liff-push_2series"
|
||||
"regjsgen@0.6.0",
|
||||
"/home/node/nuxt"
|
||||
]
|
||||
],
|
||||
"_from": "regjsgen@0.5.2",
|
||||
"_id": "regjsgen@0.5.2",
|
||||
"_from": "regjsgen@0.6.0",
|
||||
"_id": "regjsgen@0.6.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==",
|
||||
"_integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==",
|
||||
"_location": "/regjsgen",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "regjsgen@0.5.2",
|
||||
"raw": "regjsgen@0.6.0",
|
||||
"name": "regjsgen",
|
||||
"escapedName": "regjsgen",
|
||||
"rawSpec": "0.5.2",
|
||||
"rawSpec": "0.6.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "0.5.2"
|
||||
"fetchSpec": "0.6.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/regexpu-core"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
|
||||
"_spec": "0.5.2",
|
||||
"_where": "/mnt/Foxconn/Digitalent/Deverloper/liff-push_2series",
|
||||
"_resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz",
|
||||
"_spec": "0.6.0",
|
||||
"_where": "/home/node/nuxt",
|
||||
"author": {
|
||||
"name": "Benjamin Tan",
|
||||
"url": "https://ofcr.se/"
|
||||
@@ -36,9 +36,9 @@
|
||||
},
|
||||
"description": "Generate regular expressions from regjsparser’s AST.",
|
||||
"devDependencies": {
|
||||
"codecov": "^3.7.0",
|
||||
"nyc": "^15.0.1",
|
||||
"regjsparser": "~0.6.4",
|
||||
"codecov": "^3.8.3",
|
||||
"nyc": "^15.1.0",
|
||||
"regjsparser": "^0.7.0",
|
||||
"request": "^2.88.2"
|
||||
},
|
||||
"files": [
|
||||
@@ -66,5 +66,5 @@
|
||||
"test": "node tests/tests.js",
|
||||
"update-fixtures": "node tests/update-fixtures.js"
|
||||
},
|
||||
"version": "0.5.2"
|
||||
"version": "0.6.0"
|
||||
}
|
||||
|
||||
+23
-16
@@ -97,7 +97,7 @@
|
||||
}
|
||||
|
||||
// Constructs a string by concatentating the output of each term.
|
||||
function generateSequence(generator, terms) {
|
||||
function generateSequence(generator, terms, /* optional */ separator) {
|
||||
var i = -1,
|
||||
length = terms.length,
|
||||
result = '',
|
||||
@@ -106,6 +106,8 @@
|
||||
while (++i < length) {
|
||||
term = terms[i];
|
||||
|
||||
if (separator && i > 0) result += separator;
|
||||
|
||||
// Ensure that `\0` null escapes followed by number symbols are not
|
||||
// treated as backreferences.
|
||||
if (
|
||||
@@ -161,9 +163,12 @@
|
||||
function generateCharacterClass(node) {
|
||||
assertType(node.type, 'characterClass');
|
||||
|
||||
var kind = node.kind;
|
||||
var separator = kind === 'intersection' ? '&&' : kind === 'subtraction' ? '--' : '';
|
||||
|
||||
return '[' +
|
||||
(node.negative ? '^' : '') +
|
||||
generateSequence(generateClassAtom, node.body) +
|
||||
generateSequence(generateClassAtom, node.body, separator) +
|
||||
']';
|
||||
}
|
||||
|
||||
@@ -187,29 +192,30 @@
|
||||
}
|
||||
|
||||
function generateClassAtom(node) {
|
||||
assertType(node.type, 'anchor|characterClassEscape|characterClassRange|dot|value');
|
||||
assertType(node.type, 'anchor|characterClass|characterClassEscape|characterClassRange|dot|value|unicodePropertyEscape|classStrings');
|
||||
|
||||
return generate(node);
|
||||
}
|
||||
|
||||
function generateClassStrings(node) {
|
||||
assertType(node.type, 'classStrings');
|
||||
|
||||
return '(' + generateSequence(generateClassString, node.strings, '|') + ')';
|
||||
}
|
||||
|
||||
function generateClassString(node) {
|
||||
assertType(node.type, 'classString');
|
||||
|
||||
return generateSequence(generate, node.characters);
|
||||
}
|
||||
|
||||
function generateDisjunction(node) {
|
||||
assertType(node.type, 'disjunction');
|
||||
|
||||
var body = node.body,
|
||||
i = -1,
|
||||
length = body.length,
|
||||
result = '';
|
||||
|
||||
while (++i < length) {
|
||||
if (i != 0) {
|
||||
result += '|';
|
||||
}
|
||||
result += generate(body[i]);
|
||||
}
|
||||
|
||||
return result;
|
||||
return generateSequence(generate, node.body, '|');
|
||||
}
|
||||
|
||||
|
||||
function generateDot(node) {
|
||||
assertType(node.type, 'dot');
|
||||
|
||||
@@ -372,6 +378,7 @@
|
||||
'characterClass': generateCharacterClass,
|
||||
'characterClassEscape': generateCharacterClassEscape,
|
||||
'characterClassRange': generateCharacterClassRange,
|
||||
'classStrings': generateClassStrings,
|
||||
'disjunction': generateDisjunction,
|
||||
'dot': generateDot,
|
||||
'group': generateGroup,
|
||||
|
||||
Reference in New Issue
Block a user