segIterable method
Implementation
Iterable<String> segIterable(String str) sync* {
StringBuffer buffer = StringBuffer();
int state = 0;
int deep = 0;
for (int code in str.codeUnits) {
if (state == 0) {
if (code == leftBrackets) {
state = 1;
}
} else {
if (code == leftBrackets) {
deep ++;
buffer.writeCharCode(code);
} else if (code == rightBrackets) {
if (deep == 0) {
yield buffer.toString();
buffer.clear();
state = 0;
} else {
deep--;
buffer.writeCharCode(code);
}
} else {
buffer.writeCharCode(code);
}
}
}
}