NOTE 形式構文 BNF
2004-04-02 Kenzi NOIKE
これは,NOTE 形式の構文の BNF である.
単なる字句解析用の構文規則であり,意味的な整合性は,規則に含めていない.
凡例
- 超記号 (Meta symbol)
- 終端記号 (Terminate symbol)
- 非終端記号 (Non-terminate symbol)
- 終端記号,非終端記号のうち,読み飛ばす記号
[,
],
{,
},
]...,
}...,
は,超記号 (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
までメールで、または、
掲示板
まで、お気軽にどうぞ。
リンクを張ってくださる方は,このバナー
http://noike.info/~kenzi/noike_bn.png
に
直接リンクをお張りください.