次の形式を持つ「引用符」を解析するための次の部分式があります
"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 をよく知らないので、これを書くためのより良い方法があるかどうか疑問に思います。それは少し重いようです(もちろん、それでも非常に扱いやすいですが)