findOutsideOfBrackets function
Gets the starting positions of the pattern inside brackets
inp: aaa,aaaa<aa,a,>aa,a |
out: 3,17
Implementation
List<int> findOutsideOfBrackets(BracketType bracketType, String source, String pattern) {
var bracket = getBracket(bracketType);
var level = 0;
var x1 = StringBuffer();
source.runes.forEach((x) {
var char = String.fromCharCode(x);
if (char == bracket.start) level++;
if (char == bracket.end) level--;
x1.write(level == 0 ? char : "¬");
});
var x2 = x1.toString();
var rgx = RegExp(pattern);
var r = rgx.allMatches(x2).map((x) => x.start).toList();
return r;
}