その他のシンボル misc
<qualified-identifier>
::= (package ::)? (<identifier> ::)* <identifier>
修飾された識別子。モジュールやパッケージを越えてシンボルにアクセスする際などに用いられる。
<identifier>
::= [a-zA-Z][0-9a-zA-Z_]*|_[0-9a-zA-Z_]+
(_*[a-zA-Z][0-9a-zA-Z_]* が正しい気がしてきた。アンダースコアで始まるにしても必ず1文字はアルファベットが入る)
識別子(型名や関数名や変数名などユーザが命名するものすべて)はアルファベットかアンダースコアのいずれかから始まる必要があり、それ以降の文字には数字も使用できる。ただし、アンダースコア1文字のみは識別子として使用できない。
なお、推奨される命名規則は
- 値名前空間:
[a-z][0-9a-z_]*つまり lower_snake_case - 型名前空間:
([A-Z][0-9a-z]*)+つまり、UpperCamelCase