2012-05-02 19 views
1

大きな文章を解析したいと思います。大きな文章は、fsharpに名前を入れることができます。 私はその名前が名字+姓の形式であると仮定します。 ファースト・ネーム・リストが見つからない(見つからない、後で行います)場合、ファースト・ネームは、ラストネームと同じ長さ4以上のストリングです。文字列とCharStream <'a> in FParsec

私は非常にスマートなパーサので

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

をしようとすると、それは両方のために動作しますが、問題は、それはクリストフのために所望の動作ではありませんこれは、唯一の4文字を消費することです。私は言葉全体を消費したい。

FParsecに単語全体を消費するように指示する方法はありますが、単語が4文字未満の場合は失敗しますか?

答えて

2

はそれをテストしていませんが、私は、これはそれを行うべきだと思う:

let firstOrLastName = manyMinMaxSatisfy 4 Int32.MaxValue isLetter 
関連する問題