From c092b5fa3a6431b8e609e1f05867f364d1756fff Mon Sep 17 00:00:00 2001 From: LiHS Date: Thu, 15 Aug 2019 14:02:53 +0800 Subject: [PATCH] Adding lookbehind assertion --- spec/parser/javascript/subexp_spec.js | 14 ++++++++++++++ src/js/parser/javascript/grammar.peg | 2 +- src/js/parser/javascript/subexp.js | 4 +++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/spec/parser/javascript/subexp_spec.js b/spec/parser/javascript/subexp_spec.js index 1dcaa4f..cabaabe 100644 --- a/spec/parser/javascript/subexp_spec.js +++ b/spec/parser/javascript/subexp_spec.js @@ -22,6 +22,12 @@ describe('parser/javascript/subexp.js', function() { '(?!test)': { regexp: jasmine.objectContaining({ textValue: 'test' }) }, + '(?<=test)': { + regexp: jasmine.objectContaining({ textValue: 'test' }) + }, + '(? - subexp <- "(" capture:( "?<" groupname:name ">" / "?:" / "?=" / "?!" )? regexp ")" + subexp <- "(" capture:( "?<" groupname:name ">" / "?:" / "?=" / "?!" / "?<=" / "? name <- alpha (alpha / numeric)* alpha <- [a-zA-Z] numeric <- [0-9] diff --git a/src/js/parser/javascript/subexp.js b/src/js/parser/javascript/subexp.js index ad819a5..ccb410e 100644 --- a/src/js/parser/javascript/subexp.js +++ b/src/js/parser/javascript/subexp.js @@ -26,7 +26,9 @@ export default { labelMap: { '?:': '', '?=': 'positive lookahead', - '?!': 'negative lookahead' + '?!': 'negative lookahead', + '?<=': 'positive lookbehind', + '?