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