我有以下子表达式来解析具有以下格式的“引号”
"5.75 @ 5.95"
因此我有这个解析表达式来解析它
let pquote x = (sepBy (pfloat) ((spaces .>> (pchar '/' <|> pchar '@' )>>. spaces))) x
它工作得很好..除非我的输入中有一个尾随空格,因为分隔符表达式开始消耗内容。所以我将它包裹在一个尝试中,根据我的理解,它工作并且似乎或多或少是什么意思成为。
let pquote x = (sepBy (pfloat) (attempt (spaces .>> (pchar '/' <|> pchar '@' )>>. spaces))) x
因为我不太了解 fparsec,所以我想知道是否有更好的方法来写这个。它似乎有点重(当然仍然非常易于管理)