• ベストアンサー
※ 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

  • [RFC821]<mailbox>の<domain>について

    RFC821 http://www.ietf.org/rfc/rfc0821.txt を見ると次のように記述されています。 <mailbox> ::= <local-part> "@" <domain> <domain> ::= <element> | <element> "." <domain> <element> ::= <name> | "#" <number> | "[" <dotnum> "]" <name> ::= <a> <ldh-str> <let-dig> <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> <let-dig> ::= <a> | <d> <let-dig-hyp> ::= <a> | <d> | "-" <a> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case <d> ::= any one of the ten digits 0 through 9 で、これを読むと, <domain>は1つのelementまたは,ピリオド区切りで任意の個数のelementのどちらかであり, <element>は"#"<num>や"["<dotnum>"]" の指定でなければ<name>であり, <name> ::= <a> <ldh-str> <let-dig> であるからnameは3文字以上でなければならない ・・・と思うのだけれど yahooのフリーのアドレスは example@yahoo.co.jp のようにcoやjpが既に2文字でこれに当てはまらないような気がするのですが,俺は何か間違っているんでしょうか? =============== もう一つオマケ。 <special> に含まれるのは ( "@" """ )であって, ( "@" | """ ) ではないんですよね?

  • rfc2822について

    RFC2822をみて、メールヘッダーの解析ルーチンを作っています。 コンパイラコンパイラにかけるために 以下のように書き直しました。 ふと気がついたのですが boundary= をターミナルとして扱わないばかりか 上の語句は現れないのです。 ヘッダー解析だから必要なくて body の解析では 別途必要となるのでしょうか? RULES EMail = message. message = (fields ) [CRLF body]. body = {({text} CRLF)} {text}. fields = {(trace {(resentdate | resentfrom | resentsender | resentto | resentcc | resentbcc | resentmsgid)})} {(origdate | from | sender | replyto | to | cc | bcc | messageid | inreplyto | references | subject | comments | keywords | optionalfield)}. 以下省略 よろしくお願いします。

  • 対応するって・・・?

    あの、この、テキストは、ワークブックに対応しているのよ。(例えば、テキストのレッスン1は、ワークブックのレッスン1と対応している) と、英語で言おうとしたのですが、適切な表現が見つかりませんでした。 辞書で調べてみると This text is corresponging to the workbook. This text is equivalent to the workbook. などに、なるのかな?と思ったのですが、自信がありません。どなたか、アドバイスをお願い致します。

  • 英語が読めるphpができる方

    You are given a two-digit integer n. Return the sum of its digits. Example For n = 29, the output should be addTwoDigits(n) = 11. Input/Output [time limit] 4000ms (php) [input] integer n A positive two-digit integer. Constraints: 10 ≤ n ≤ 99. [output] integer The sum of the first and second digits of the input number. どういう意味か教えて下さい。 お願いします。

    • ベストアンサー
    • PHP
  • Warningの意味を教えてください。

    こんにちわ。 http://www.dnsreport.com/というところで、自分のドメイン名を入力してDNS Reportをやってもらったところ、mailサーバーのチェックに関して以下のようなWarningがだされました。よく言ってる内容がわからないのですが、どなたかご解説いただけませんでしょうか? よろしくお願いいたします。 WARNING: One or more of your mailservers is claiming to be a host other than what it really is (the SMTP greeting should be a 3-digit code, followed by a space or a dash, then the host name). This probably won't cause any harm, but is a technical violation of RFC821 4.3 (and RFC2821 4.3.1). Note that the hostname given in the SMTP greeting should have an A record pointing back to the same server.

  • HTMLのinputタグ数が変わる場合のjavascript処理

    パターンA ~HTML~ <input type='text' name='a[]'> <input type='text' name='a[]'> ~JavaScript~ var n = document.form1.elements["a"][0].value ; var n = document.form1.elements["a"][1].value ; パターンB ~HTML~ <input type='text' name='a[]'> ~JavaScript~ var n = document.form1.elements["a"][0].value ; ---(1) パターンAではエラーが出ないのですが、パターンBでは(1)のところでエラーになってしまいます。 【elements["a"][0]】の部分を【elements["a"]】とすればエラーは出ません。 どうやら、inputタグが1つしかない場合は、Javascriptでは配列として認識しないようです。 できれば、inputタグが1つの場合でも複数の場合でも、同じJavascriptコードを使いたいのですが、何か良い方法はありますか?

  • Of で始まる英語の文章の文法

    オンライン英会話で英語を勉強中のものです。 テキストの中に「OF」で始まる文章があって、文章の意味はなんとなくわかるのですが、なぜ「OF」なのか文法的用途がわかりません。 どなたかご説明してくださる方はいますか? Of bigger concern is the number of deaths caused by alcoholic poisoning. 文の意味としては「もっと問題なのは、アルコール中毒による死者数である。」だと思うのですがあっていますか? ちなみに先生に聞いたら「きっとこれは OF じゃなくて A の間違いだよ。」と言っていたのですが、そうなのでしょうか?確かに「A」だとしっくりくるのですが。

  • Mail2.0.3 テキストエンコード

    Mail2.0.3から送信すると、いつも文字化けしてしまうのでテキストエンコードをJapanese (Shift JIS)に変更して送っていたのですが、今回初めてエラーメッセージがでました。 「Some characters in your message could not be converted to the '' Japanses(Shift JIS)''text encoding. Please choose a different entry from the'' Text Encoding '' menu」 日本語、英字、数字なども交えてメール作成したのが問題だったのでしょうか?

    • 締切済み
    • Mac
  • 楕円の塗りつぶし

    色々と試してはみたのですが、なかなかうまくいきません。 Private Sub Worksheet_Calculate() For i = 1 To 100 n = (i - 1) * 3 + 8 If Cells(n, "R").Value < -10 Then c = 10 Else Select Case Cells(n, "S").Value Case Is = 0 c = 10 Case Is > -89 c = 17 Case Is < -100 c = 10 Case Else c = 12 End Select End If With Sheets("ABC").Shapes("テキスト " & i) .Line.ForeColor.SchemeColor = c .TextFrame.Characters.Font.ColorIndex = c - 7 .TextFrame.Characters.Font.Size = 6 End With If Cells(n, "W").Value = 37 Then a = 39 Else a = 3 End If With Sheets("ABC").Shapes("楕円 1") .Fill.ForeColor.SchemeColor = a - 7 .TextFrame.Characters.Font.ColorIndex = a End With Next i End Sub といった感じで作成しています。 今回 If Cells(n, "W").Value = 37 Then a = 39 Else a = 3 End If With Sheets("ABC").Shapes("楕円 1") .Fill.ForeColor.SchemeColor = a - 7 .TextFrame.Characters.Font.ColorIndex = a End With 上記の部分を追加しました。 トラブルだらけです。 読みに行ったセルの値が37なら楕円を39の色にて塗りつぶす、 それ以外なら3です。 ただ、まだ塗りつぶしの色と文字の色の関係は調べていません。 長くわかりづらいと思いますが、宜しくお願いいたします。

  • binary equivalent

    The A file that is compiled into the B file must be the binary equivalent of compiling the C file.という文章なのですが、この手の分野にうといのでどういうことかよくわかりません。助けてください~。

このQ&Aのポイント
  • B5の用紙をA4に拡大印刷すると、A4いっぱいにきれいに印刷されず、余白ができたり印刷が切れてしまう。
  • お使いの環境についての詳細情報が不足しています。パソコンまたはスマートフォンのOSや接続方法、関連するソフト・アプリ、電話回線の種類などを教えてください。
  • 質問内容に関連するFAQのタイトルやURLは後ほど記入いただく必要はありません。
回答を見る