func parseMany()

in Sources/SIL/Parser.swift [143:159]


    func parseMany<T>(
        _ pre: String, _ sep: String, _ suf: String, _ parseOne: () throws -> T
    ) throws -> [T] {
        try take(pre)
        var result = [T]()
        if !peek(suf) {
            while true {
                let element = try parseOne()
                result.append(element)
                guard !peek(suf) else { break }
                guard !sep.isEmpty else { continue }
                try take(sep)
            }
        }
        try take(suf)
        return result
    }