LoginSignup
0
0

More than 3 years have passed since last update.

[備忘録] バッカス・ナウア記法について小メモ(Python言語リファレンス内書式)

Posted at

はじめに

Pythonのリファレンスマニュアルを読もうとしたとき、初めてBNF文法記法という概念に遭遇したので、今後のために小メモを残します。

記号の説明を表にまとめただけのものです。

本編

マニュアルの解説では、随所に下記のような書式のコードが登場します。

for文の構文
for_stmt ::=  "for" target_list "in" expression_list ":" suite
              ["else" ":" suite]

(8.3. for 文 - 8. 複合文 (compound statement) — Python 3.8.4 ドキュメント)

Pythonの言語リファレンスには上記のような記法のコードが掲載されています。
これは、リファレンス内で説明されているように、BNF文法記法バッカス・ナウア記法などと呼ばれるものです。

定義、記法の背景は下記のリンクなどで参照できます。
 バッカス・ナウア記法 - Wikipedia
 SYNTAX SUMMARY - Algol-60 BNF
 About BNF notation

"[]" を用いた書式などは、オリジナルの記法を拡張したものです。
Pythonの言語リファレンスでも同様に"[]"が書式に含まれています。

Pythonのリファレンスマニュアルで説明されている記号の用法を表にまとめます。

記号 読み 説明 備考
::= - <左式>は<右式>で定義 -
垂直線 選択項目の列挙
(左側セル:エスケープの都合で全角文字)
演算子の優先度は最低
* アスタリスク 直前にくる要素のゼロ個以上の繰り返し 演算子の結合範囲は可能な限り狭い
+ プラス 直前にくる要素の一個以上の繰り返し 演算子の結合範囲は可能な限り狭い
[] 角括弧 字句がゼロ個か一個出現
(要素がオプションである)
-
() 丸括弧 字句のグループ化 -
"" クオート リテラル文字列の表記 -
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0