BNF記法でCSVを定義してみた。

以前、バッカス・ナウア記法を使ってたんだけど、ちょっと忘れかけたからたまには書いてみようかなって思った。
ちょうどいいところで、CSVファイルの定義をソースコードにコメントとして書く必要あったし。
で、作成したのが下記の通り。

CSV定義(BNF記法)
<csv> ::= {<csv-line-data>}
<csv-line-data> ::= <h2-value> <¥t> <null> <¥t> <null> <¥t> <null> <¥t> <null> <¥n>
                  | <null> <¥t> <href-attribute-data> <¥t> <src-attribute-data> <¥t> <h3-value-data> <¥t> <p-value-data> <¥n>

これだと、悩みがあって、
<csv> ::= {<csv-line-data>}
の波括弧({})は0回以上の繰り返しを表そうと思っているのだけど、正規表現の*(0回以上繰り返し)を導入して、
 <csv> ::= <csv-line-data>*
にした方がいいのかな...?
もうひとつの悩みは、細分化した意味の説明を付け加えた方が良いのだろうか...

というかそもそもコード内にこんなコメントあるより、視覚的にわかりやすく書いた方がいいかなw

追記:バッカス・ナウアって誰だよ...

トラックバック(0)

このブログ記事を参照しているブログ一覧: BNF記法でCSVを定義してみた。

このブログ記事に対するトラックバックURL: http://www.rokujyouhitoma.com/mt/mt-tb.cgi/41

コメントする