diff --git a/src/js/parser/javascript/grammar.peg b/src/js/parser/javascript/grammar.peg index b77ece4..a4c739a 100644 --- a/src/js/parser/javascript/grammar.peg +++ b/src/js/parser/javascript/grammar.peg @@ -22,20 +22,20 @@ grammar JavascriptRegexp / charset_literal charset_escape <- "\\" esc:( code:[bdDfnrsStvwW] arg:""? - / code:"c" arg:. + / code:"c" arg:[a-zA-Z] / code:"0" arg:[0-7]+ / code:"x" arg:( [0-9a-fA-F] [0-9a-fA-F] ) / code:"u" arg:( [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] ) / code:"0" arg:""? ) - charset_literal <- ( ""? literal:[^\\\]] ) / ( "\\" literal:. ) + charset_literal <- ( ""? literal:[^\\\]] ) / ( literal:"\\" &"c" ) / ( "\\" literal:. ) terminal <- "." / escape / literal escape <- "\\" esc:( code:[bBdDfnrsStvwW1-9] arg:""? - / code:"c" arg:. + / code:"c" arg:[a-zA-Z] / code:"0" arg:[0-7]+ / code:"x" arg:( [0-9a-fA-F] [0-9a-fA-F] ) / code:"u" arg:( [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] ) / code:"0" arg:""? ) - literal <- ( ""? literal:[^|\\/.\[\(\)?+*$^] ) / ( "\\" literal:. ) + literal <- ( ""? literal:[^|\\/.\[\(\)?+*$^] ) / ( literal:"\\" &"c" ) / ( "\\" literal:. )