Mirror: The magical sticky regex-based parser generator 🧙

Replace string matcher function in core.js

+9 -7
+9 -7
src/core.js
··· 8 8 return (state) => pattern()(state); 9 9 }; 10 10 11 - const execString = (pattern) => (state) => { 12 - const input = state.quasis[state.x]; 13 - if (input && state.y < input.length) { 14 - const sub = input.slice(state.y, state.y + pattern.length); 15 - if (sub === pattern) { 11 + const execString = (pattern) => { 12 + return (state) => { 13 + const input = state.quasis[state.x]; 14 + if (input && state.y < input.length) { 15 + for (let i = 0, l = pattern.length; i < l; i++) 16 + if (input.charCodeAt(state.y + i) !== pattern.charCodeAt(i)) 17 + return null; 16 18 state.y += pattern.length; 17 - return sub; 19 + return pattern; 18 20 } 19 - } 21 + }; 20 22 }; 21 23 22 24 const execRegex = (pattern) => {