| 162 | |
| 163 | |
| 164 | _fullScanLookup(index, solving, results, resolved, solvingIx, ix, maxDepth) { |
| 165 | if(index === undefined) return; |
| 166 | if(ix === maxDepth) { |
| 167 | return results.push(solving.slice()); |
| 168 | } |
| 169 | let value = resolved[ix]; |
| 170 | if(value === undefined) { |
| 171 | let curIndex = index.index; |
| 172 | for(let key of Object.keys(curIndex)) { |
| 173 | let v = curIndex[key]; |
| 174 | solving[solvingIx] = v.value !== undefined ? v.value : v; |
| 175 | this._fullScanLookup(v, solving, results, resolved, solvingIx + 1, ix + 1, maxDepth); |
| 176 | } |
| 177 | } else { |
| 178 | this._fullScanLookup(index.index[value], solving, results, resolved, solvingIx, ix + 1, maxDepth); |
| 179 | } |
| 180 | } |
| 181 | |
| 182 | fullScan(index, resolved, results) { |
| 183 | let [e,a,v,node] = resolved; |