• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:拡張BNF文法 メールヘッダー)

拡張BNF文法 メールヘッダーの解析方法についてのアドバイスをお願いします

このQ&Aのポイント
  • メールヘッダーの解析に使用する道具の作成に取り組んでいます。拡張BNF文法を使用して、メールヘッダーを解析するためのルールを作成しています。
  • 具体的には、Specific Repetitionというルールを使用して、<n>elementという形式のルールを表現する方法について調査しています。
  • また、bodyというルールの99回の繰り返しを表現する方法についても検討しています。具体的には、textを998回繰り返す方法や、{text}という形式で長さのチェックを後で行う方法などを比較しています。アドバイスをいただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

ちょっと調べてみましたが, rfc2234 は rfc4234 で obsolete になっているので rfc4234 を調べる方がよいと思います. で, * については rfc4234 の 3.6 variable repetition にあるのですが, <a>*<b>element の形で element が少なくとも <a> 個かつ高々 <b> 個現れることを意味します. で, <a> や <b> は省略することもできて <a> を省略すると 0, <b> を省略すると無限大となります. 今の場合 *998text ですから, <a> が省略され <b> は 998 と解釈されます. つまり, 「text が高々 998個現れる」という意味になるはずです. 「998text がいくつか」なら *(998text) になると思います.

uyama33
質問者

お礼

わかりました。 有難うございました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

*998text だから, 頑張って text | text text | text text text | ... (以下略) と書けばいいんだろうけど普通は長さのチェックを別にするんでしょうね.

uyama33
質問者

お礼

ありがとうございます。 少し疑問があります。 *998text は、 ε |998text |998text 998text |998text 998text 998text ....... のことではないのでしょうか? 少なくとも1ブロックは998文字

関連するQ&A