Skip to content

Commit be86643

Browse files
liuxingbaoyunicolo-ribaudo
authored andcommitted
feat: support modifiers proposal (#1)
1 parent 96bb99d commit be86643

8 files changed

+619
-9
lines changed

package-lock.json

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
"devDependencies": {
3535
"codecov": "^3.8.3",
3636
"nyc": "^15.1.0",
37-
"regjsparser": "^0.8.2",
37+
"regjsparser": "^0.9.1",
3838
"request": "^2.88.2"
3939
}
4040
}

regjsgen.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,14 @@
236236
}
237237
break;
238238
case 'ignore':
239-
result += '?:';
239+
if (node.modifierFlags) {
240+
result += '?';
241+
if(node.modifierFlags.enabling) result += node.modifierFlags.enabling;
242+
if(node.modifierFlags.disabling) result += "-" + node.modifierFlags.disabling;
243+
result += ':';
244+
} else {
245+
result += '?:';
246+
}
240247
break;
241248
case 'lookahead':
242249
result += '?=';

tests/equiv.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ function astNodesAreEquivalent(a, b) {
5454
var bNames = Object.keys(b).filter(function(name) { return name != "range" && name != "raw"; });
5555
var aNameCount = aNames.length;
5656

57+
if(a.type == "quantifier" && b.type == "quantifier" && a.symbol == null && b.symbol == "+"){
58+
b.symbol = undefined;
59+
}
60+
5761
if (aNameCount == bNames.length) {
5862
for (var i = 0; i < aNameCount; ++i) {
5963
var name = aNames[i];

0 commit comments

Comments
 (0)