我正在尝试学习如何使用attrparsec模块,所以通过解析我的一个日志文件来练习。
我在行解析器的开头有以下代码:
lineParser :: Parser LogEntry
lineParser = do
theMonth <- monthParser
skipSpace
theDate <- decimal
skipSpace
theHour <- decimal
skipColon
theMinute <- decimal
skipColon
theSecond <- decimal
return LogEntry { monthOfYear = theMonth, dayOfMonth = theDate,
hourOfDay = theHour, minuteOfHour = theMinute, secondOfMinute = theSecond}
但是我遇到了skipColon函数的问题。我尝试了各种版本,例如
skipColon = isColon
where isColon c = c == ':'
但我只是得到了类型错误
我本来希望简单地写一些像
这样的东西skipChar ':'
但也无法解决这个问题。
围绕Char vs Word8的各种类型错误,但大多数搜索结果都是关于将Word8转换为Char,而不是相反。
会感激一些指导。非常感谢。
答案 0 :(得分:0)
AJFarmer发布了最佳答案。 只需使用
char ':'
但是,您将收到有关丢弃值的警告,以避免该警告写入
_ <- char ':'
感谢您的回答。