Adding sticky and unicode flags

Closes #33
This commit is contained in:
Jeff Avallone 2018-02-10 11:23:56 -05:00
parent 440a2ac22a
commit 988f5ca7d5
3 changed files with 12 additions and 2 deletions

View File

@ -25,6 +25,14 @@ describe('parser/javascript/root.js', function() {
flags: ['Multiline'],
regexp: jasmine.objectContaining({ textValue: 'test' })
},
'/test/y': {
flags: ['Sticky'],
regexp: jasmine.objectContaining({ textValue: 'test' })
},
'/test/u': {
flags: ['Unicode'],
regexp: jasmine.objectContaining({ textValue: 'test' })
},
'/test/mgi': {
flags: ['Global', 'Ignore Case', 'Multiline'],
regexp: jasmine.objectContaining({ textValue: 'test' })

View File

@ -1,5 +1,5 @@
grammar JavascriptRegexp
root <- ( ( "/" regexp "/" flags:[igm]* ) / regexp flags:""? ) <Root>
root <- ( ( "/" regexp "/" flags:[yigmu]* ) / regexp flags:""? ) <Root>
regexp <- match:match alternates:( "|" match )* <Regexp>
match <- (!repeat) parts:match_fragment* <Match>
anchor <- ( "^" / "$" ) <Anchor>

View File

@ -9,7 +9,9 @@ export default {
flagLabels: {
i: 'Ignore Case',
g: 'Global',
m: 'Multiline'
m: 'Multiline',
y: 'Sticky',
u: 'Unicode'
},
// Renders the root into the currently set container.