|
let s = ` |
|
graph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
raph raph raph raph raph raph raph raph raph raph |
|
` |
|
|
|
// Search our way to degenerate cases |
|
let lines = s.trim().split("\n"), m |
|
for (let start = 0; start < lines.length; start++) { |
|
for (let end = start+1; end < lines.length; end++) { |
|
let s2 = lines.slice(start, end).join("\n") |
|
console.log(`———————————————————————————————————————\n${start}-${end}\n${s2}`) |
|
console.time(`${start}-${end}`) |
|
m = s2.match(/\b(?:di)?graph(?:\s+[^\{]+|)*[\r\n\s]*\{/m) |
|
console.timeEnd(`${start}-${end}`) |
|
} |
|
} |