2012-05-02 24 views
1

我想解析一個很大的句子,它可以包含在fsharp名。 我斷定,名稱的格式爲頭名+姓。 在缺乏榜頭名的(找不到,以後會做),我說,第一個名字是一個長度爲4以上的字符串,同爲姓。字符串和CharStream <'a>在FParsec

當我嘗試我很聰明解析器

let firstorlastname x = (parray 4 letter) x 
firstorlastname "JEAN" 
firstorlastname "CHRISTOPHE" 

所以,它適用於這兩種,但問題是,它僅消耗4個字符,這是不是克里斯托夫所需的行爲。我希望整個詞被消耗。

我怎麼能指示FParsec消耗整個單詞,但如果這個詞是小於4個字符失敗?

回答

2

沒有測試過,但我認爲這應該這樣做:

let firstOrLastName = manyMinMaxSatisfy 4 Int32.MaxValue isLetter 
相關問題