我想解析一个大句子,它可以包含 fsharp 中的名称。我假设名字的形式是名字+姓氏。在没有名字列表的情况下(找不到,稍后再做),我说名字是长度为 4 或更长的字符串,与姓氏相同。
当我尝试我非常聪明的解析器时
let firstorlastname x = (parray 4 letter) x
firstorlastname "JEAN"
firstorlastname "CHRISTOPHE"
所以,它对两者都有效,但问题是它只消耗 4 个字符,这不是 Christophe 想要的行为。我希望整个词都被消耗掉。
如何指示 FParsec 使用整个单词,但如果单词少于 4 个字符则失败?