From df8c98f96deb3f0b817e1ab3270fe74b2cca1450 Mon Sep 17 00:00:00 2001 From: Holden Rohrer Date: Thu, 16 Jul 2020 22:07:45 -0400 Subject: split out nullprint and set up space.regex multi-return --- space.js | 26 +++++++++++++++----------- tools/search.js | 5 +++-- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/space.js b/space.js index c5a0927..9125c54 100644 --- a/space.js +++ b/space.js @@ -138,12 +138,7 @@ function Space(){ return loc; } - this.regex = function(strlines){ - if (typeof strlines[0] !== 'string') throw ".regex needs arr of strings"; - let lines = []; - for (let i = 0; i < strlines.length; i++) { - lines.push(new RegExp(strlines[i], 'g')); - } + this.nullprint = function(){ let data = []; for (let ln of this.data){ let newln = ""; @@ -153,9 +148,19 @@ function Space(){ } data.push(newln); } - let loc; + return data; + } + + this.regex = function(strlines){ + if (typeof strlines[0] !== 'string') throw ".regex needs arr of strings"; + let lines = []; + for (let i = 0; i < strlines.length; i++) { + lines.push(new RegExp(strlines[i], 'g')); + } + let data = this.nullprint(); + let loc = []; data.forEach( (ln, ind) => { - if (loc || ((data.length - ind) < lines.length)) return; + if (((data.length - ind) < lines.length)) return; let match; while ( (match = lines[0].exec(ln)) !== null){ let xdisp = match.index; @@ -168,12 +173,11 @@ function Space(){ } } if (lnmatch){ - loc = [ind, xdisp]; - break; + loc.push([ind, xdisp]); } } }); - return (loc === undefined ? [] : loc); + return loc; } this.subsection = function(range){ // range is a coordinate pair diff --git a/tools/search.js b/tools/search.js index 56137b8..eafb2bf 100644 --- a/tools/search.js +++ b/tools/search.js @@ -32,8 +32,9 @@ function Search(){ // searchBlock should be a Space object. searchspace.comb( this.tiles[tile], comb.add ); }); for (let i=0; i