// Phase 29ab P8: Pattern7 split scan OK minimal // Expect: split("a,b,c", ",") -> length 3 static box StringUtils { split_ok(s, separator) { local result = new ArrayBox() if separator.length() == 0 { result.push(s) return result } local start = 0 local i = 0 loop(i <= s.length() - separator.length()) { if s.substring(i, i + separator.length()) == separator { result.push(s.substring(start, i)) start = i + separator.length() i = start } else { i = i + 1 } } if start <= s.length() { result.push(s.substring(start, s.length())) } return result } } static box Main { main() { local result = StringUtils.split_ok("a,b,c", ",") return result.length() } }