1 module.exports = balanced;
2 function balanced(a, b, str) {
7 for (var i = 0; i < str.length; i++) {
8 if (a == str.substr(i, a.length)) {
9 if (!('start' in m)) m.start = i;
12 else if (b == str.substr(i, b.length) && 'start' in m) {
17 m.pre = str.substr(0, m.start);
18 m.body = (m.end - m.start > 1)
19 ? str.substring(m.start + a.length, m.end)
21 m.post = str.slice(m.end + b.length);
27 // if we opened more than we closed, find the one we closed
29 var start = m.start + a.length;
30 m = balanced(a, b, str.substr(start));
34 m.pre = str.slice(0, start) + m.pre;