주어진이 제대로 마지막을 제외한 다음의 모든 일치옵션 인 후행 쉼표는 어떻게 처리합니까?
let maxCount = System.Int32.MaxValue
let pmlcomment = pstring "/*" >>. skipCharsTillString "*/" true (maxCount)
let ws = pspaces >>. many (pspaces >>. pmlcomment .>> pspaces) |>> (function | [] ->() | _ ->())
let str_ws s = pstring s .>> ws
let exprBraceSeqOpt p =
let trailingComma = (str_ws "," |>> fun _ -> None)
between (str_ws "{") (str_ws "}") ((opt (attempt (sepBy p (str_ws ",")))) <|> (attempt trailingComma))
let sampleP = exprBraceSeqOpt (str_ws "x")
다음 주 또는 무언가를 바꾸고 내가 뭔가를 추측하고있어
["{}";"{x}";"{x,x}";"{x,x,}"]
합니다.
fparsec에 옵션 인 후행 쉼표는 어떻게 처리합니까?
아마도'opt (시도 trailingComma)'여야할까요? – Yawar
아니, 컴파일하지 않는다 – Maslow