in Sources/sh-parser/main.swift [173:204]
func main() {
do {
let flags = Flags()
var data = FileHandle.standardInput.readDataToEndOfFile()
// We need to strip trailing newlines.
var index = data.endIndex
while index > data.startIndex {
data.formIndex(before: &index)
if data[index] != UInt8(ascii: "\n") {
break
}
}
data = data[...index]
var parser = StructuredFieldValueParser(data)
let result: Header
switch flags.headerType {
case .dictionary:
result = .dictionary(try parser.parseDictionaryFieldValue())
case .list:
result = .list(try parser.parseListFieldValue())
case .item:
result = .item(try parser.parseItemFieldValue())
}
result.prettyPrint()
} catch {
print("error: \(error)")
exit(1)
}
}