NOTE 形式構文 BNF

2004-04-02 Kenzi NOIKE

これは,NOTE 形式の構文の BNF である.
単なる字句解析用の構文規則であり,意味的な整合性は,規則に含めていない.

凡例 []{}]...}..., は,超記号 (Meta symbol).
[]{}, は,記号(literal).(終端記号 (Terminal symbol)).

[ ]... は,0 回以上の繰返し.
{ }... は,1 回以上の繰返し.

NOTE形式
[ 空行 | コメント行 ]...
ヘッダ
[ 空行 | コメント行 ]...
[ ボディ ]
[ 空行 | コメント行 ]...
{ END ポストアンブル | End_Of_File }
ヘッダ
Header [空白系文字]... { [空白系文字]... [コメント] 改行文字
ヘッダ情報
} [空白系文字]... [コメント] 改行文字
ヘッダ情報{
[空白系文字]... BEAT情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... BPM情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... BEATTIME情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... TACTUS情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... TIMSCALE情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... TITLE情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... COMPOSER情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... PERFORMER情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... ACCOMPANIST情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... ARRANGER情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... GENERATOR情報 [空白系文字]... [コメント] 改行文字 |
空行 |
コメント行
}...

BEAT情報
BEAT {空白系文字}... 拍子分子 [空白系文字]... / [空白系文字]... 拍子分母
拍子分子
整数
拍子分母
整数

BPM情報
BPM {空白系文字}... BPM値 {空白系文字}... BPM基準拍
BPM値
小数
BPM基準拍
音価文字列

BEATTIME情報
BEATTIME {空白系文字}... 拍あたり時間 {空白系文字}... BEATTIME基準拍
拍あたり時間
小数
BEATTIME基準拍
音価文字列

TACTUS情報
TACTUS {空白系文字}... 拍打回数 {空白系文字}... TACTUS基準拍
拍打回数
整数
TACTUS基準拍
音価文字列

TIMSCALE情報
TIMESCALE {空白系文字}... 時間表現形式
時間表現形式
Beat |
Real |
Meas |
Delta 時間分解能値
時間分解能値
整数

TITLE情報
TITLE {空白系文字}... " 文字列 "

COMPOSER情報
COMPOSER {空白系文字}... " 文字列 "

PERFORMER情報
PERFORMER {空白系文字}... " 文字列 "

ACCOMPANIST情報
ACCOMPANIST {空白系文字}... " 文字列 "

ARRANGER情報
ARRANGER {空白系文字}... " 文字列 "

GENERATOR情報
GENERATOR {空白系文字}... " 文字列 "

ボディ{
[空白系文字]... 小節線情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... メモ情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 { {空白系文字}... {音符休符情報}... }... [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... ペダル情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... PAUSE情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... TIMESHIFT情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... MIDI情報 [空白系文字]... [コメント] 改行文字 |

[空白系文字]... スタート時刻 {空白系文字}... BEAT情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... BPM情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... BEATTIME情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... TACTUS情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... TITLE情報 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... COMPOSER情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... PERFORMER情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... ACCOMPANIST情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... ARRANGER情報 [空白系文字]... [コメント] 改行文字 |
[空白系文字]... スタート時刻 {空白系文字}... GENERATOR情報 [空白系文字]... [コメント] 改行文字 |
空行 |
コメント行
}...

小節線情報
= [空白系文字]... 小節番号 [ {空白系文字}... 反復記号 ]...
小節番号
整数
反復記号
|: |
:| |
||

メモ情報
! {空白系文字}... " 文字列 "

音符休符情報
( [空白系文字]... [On_diff {空白系文字}... ] [Ident {空白系文字}... ] {Pitch {空白系文字}... } [On_vel {空白系文字}... ] {Len {空白系文字}... } [Len_diff {空白系文字}... ] [Off_vel {空白系文字}... ] [finger {空白系文字}... ] )
On_diff
小数
Ident
文字列
Pitch
音高文字列
音高文字列
音高文字 [臨時記号] オクターブ文字 |
休符文字
音高文字
C | D | E | F | G | A | B |
臨時記号
# | b | x | bb
休符文字
Rest
On_vel
整数
Len
小数
Len_diff
小数
Off_vel
整数
finger
f 右左 整数
右左
R| L| _

ペダル情報
ペダル種類 {空白系文字}... ペダル踏度
ペダル種類
Damper | Sostenuto | Soft |
ペダル踏度
整数

PAUSE情報
PAUSE {空白系文字}... PAUSE時間
PAUSE時間
小数

TIMESHIFT情報
TIMESHIFT {空白系文字}... TIMESHIFT時間
TIMESHIFT時間
小数

MIDI情報
MIDI { {空白系文字}... 16進数2桁文字 }...
16進数2桁文字
16進数文字 16進数文字
16進数文字
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f

整数
[ + | - ] { 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 }...
小数
[ [ + | - ] { 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 }... ] . { 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 }...
コメント
% [ 改行文字以外のあらゆる文字 ]...
ポストアンブル
[ あらゆる文字 ]...
音価文字列
整数 [ . [ . ] ]
文字列
[ " と改行文字以外の文字 ]...
空行
[ 空白系文字 ]... 改行文字
コメント行
[ 空白系文字 ]... コメント 改行文字
空白系文字
空白(' ', 0x20) | タブ('\t',0x09) | 全角空白
改行文字
CR+LF (0x0d, 0x0a) | LF+CR (0x0a, 0x0d) | CR (0x0d) | LF (0x0a)
End_Of_File
ファイル終端 | Ctrl-D (0x04) | Ctrl-Z (0x1a)

ご意見・ご感想・リンク希望などは noike@ksc.kwansei.ac.jp までメールで、または、 掲示板 まで、お気軽にどうぞ。

リンクを張ってくださる方は,このバナー NOIKE's banner http://noike.info/~kenzi/noike_bn.png に 直接リンクをお張りください.