use better regex for string literals

This commit is contained in:
Dave Holoway
2020-06-07 15:17:54 +01:00
parent 7d6af70ae1
commit ebc5f73bcc

View File

@@ -210,7 +210,7 @@ function parse2(source) {
*/
function tokenize(source) {
const blocks = [];
const re = /(\/\*[\d\D]*?\*\/)|(\/\/.*)|(\s+)|([a-zA-Z_]\w*)|(".*?")|('\\?.')|(\d\w*)|(::|\.{3}|[(){}\[\];,.@])|([=!~*/%^]=?|[?:]|>>?>?=?|<<?<?=?|[&][&=]?|[|][|=]?|\+[+=]?|-[-=>]?)|(.)|$/g;
const re = /(\/\*[\d\D]*?\*\/)|(\/\/.*)|(\s+)|([a-zA-Z_]\w*)|("[^\r\n\\"]*(?:\\.[^\r\n\\"]*)*")|('\\?.')|(\d\w*)|(::|\.{3}|[(){}\[\];,.@])|([=!~*/%^]=?|[?:]|>>?>?=?|<<?<?=?|[&][&=]?|[|][|=]?|\+[+=]?|-[-=>]?)|(.)|$/g;
let lastIndex = 0;
for (let m; m = re.exec(source);) {
if (m.index > lastIndex) {