Mam następujący podwyrażenie do analizowania „cytaty”, które mają następujący formatWskazówki dotyczące FParsec do obsługi spacje
"5.75 @ 5.95"
I dlatego mają tę parsec wyraz analizować je
let pquote x = (sepBy (pfloat) ((spaces .>> (pchar '/' <|> pchar '@')>>. spaces))) x
działa dobrze ... z wyjątkiem sytuacji, gdy w moim wejściu jest spacja, ponieważ wyrażenie separatora zaczyna pochłaniać zawartość. Więc owinąłem ją próbą, która działa i wydaje się, z tego, co rozumiem, mniej więcej tym, co to miało być.
let pquote x = (sepBy (pfloat) (attempt (spaces .>> (pchar '/' <|> pchar '@')>>. spaces))) x
Ponieważ nie znam tak dobrze fparsec, zastanawiam się, czy istnieje lepszy sposób na napisanie tego. wydaje się nieco ciężki (a jednocześnie jest bardzo zarządzaniu oczywiście)
to 2 był ból. dobra sztuczka. wszystkie przydatne komentarze .. – nicolas
twój projekt jest szalony. jesteś szalony. dobrze, że widzę tu jakiś parsek, świadectwo jakości, jak sądzę. – nicolas
['spacje'] (http://www.quanttec.com/fparsec/reference/charparsers.html#members.spaces) analizuje zero lub więcej białych znaków - nie ma potrzeby używania' opt'. – Daniel