0

RFC 5545 に従って iCal 入力ファイルを解析しようとしています。また、コンマで区切られた複数の値を持つ可能性があります (パラメータ値は二重引用符で囲まれる場合があり、その場合、コロン、セミコロン、およびコンマが含まれる可能性があります) -コロン ":" -プロパティ値

例の行:

> ORGANIZER;CN=Obi-WanKenobi;SENTBY="mailto:obiwan@padawan.com":mailto:laowaion@padawan.com

この場合、行はバッファに読み込まれ、(現在 strtok を使用して) 次のように解析されます。 Organizer はプロパティ名です。CN=Obi-WanKenobi と SENTBY="mailto:obiwan@padawan.com" はパラメーターです。mailto:lauwaion@padawan.com がプロパティ値です。

どこから始めればよいかわかりません。さまざまな入力ケースはほぼ無限にあり、すべてのケースをカバーする効果的なアルゴリズムを見つけることができませんでした。strtokは行く方法ですか?または、よりインテリジェントなパーサーを備えた別の C ライブラリがありますか? 私を正しい軌道に乗せてくれる人が必要です。

4

2 に答える 2

1

既存の C 実装を調べることから始めることをお勧めします。

上記の回答はあなたの差し迫った質問に対処していますが、RFC5545 標準を進めるにつれて他の問題に遭遇する可能性があり、他の人が行ったことを見ると役立つ場合があります

于 2016-02-17T06:31:06.713 に答える
0

flex (lex の GNU クローン) を使用して、タスクに合わせた字句アナライザーを作成できます。Ragelは、この問題に対するもう 1 つの優れたツールです。

于 2016-02-16T21:57:56.317 に答える