Я пытался запустить следующий FParsec
код, пока по какой-то причине он не перестал работать:
![enter image description here](https://i.stack.imgur.com/I3gKI.png)
Я получаю ошибку
"The value is not a function and cannot be applied."
Если я закомментирую последнюю строку кода (test ns ".."
), это не приведет к ошибке.Любые мысли о том, как решить эту проблему?
Исходный код в текстовом виде следующий:
open System
open FParsec
let test p str =
match run p str with
| Success(result, _, _) -> printfn "Success: %A" result
| Failure(errorMsg, _, _) -> printfn "Failure: %s" errorMsg
type Namespace = { Name : string; Classes : string list; }
let classes : Parser<string list, unit> =
many (spaces >>. many1Satisfy isLetter .>> spaces)
let ns =
pipe2
(spaces >>. skipString "namespace" >>. spaces >>. many1Satisfy isLetter)
(spaces >>. skipString "{" >>. classes .>> skipString "}")
(fun name classes -> { Name = name; Classes = classes } )
test ns "namespace abc { def ghi }"