smf 0.15.12 → 0.15.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +26 -0
- data/MANUAL +39 -44
- data/MANUAL.en +1 -0
- data/MANUAL.en.html +23 -22
- data/MANUAL.en.rd +1 -0
- data/MANUAL.html +59 -58
- data/MANUAL.rd +1 -0
- data/README +11 -11
- data/README.en +10 -10
- data/lib/smf.rb +8 -4
- data/lib/smf/toy/beatmap.rb +3 -3
- data/lib/smf/toy/gm.rb +6 -6
- data/lib/smf/toy/groove.rb +6 -6
- data/lib/smf/toy/macro.rb +5 -5
- data/lib/smf/toy/macro/mml/parser.rb +247 -252
- data/lib/smf/toy/macro/mml/parser.ry +4 -4
- data/lib/smf/toy/macro/stt.rb +21 -12
- data/lib/smf/toy/shuffle.rb +9 -17
- data/lib/smf/toy/tempomap.rb +3 -3
- data/lib/smf/toy/velcomp.rb +9 -9
- data/lib/smf/toy/virtual.rb +5 -4
- data/sample/stt-samp.rb +5 -4
- metadata +38 -40
data/MANUAL.rd
CHANGED
data/README
CHANGED
@@ -1,33 +1,33 @@
|
|
1
|
-
SMF
|
1
|
+
SMF モジュール
|
2
2
|
==============
|
3
3
|
|
4
|
-
SMF
|
5
|
-
|
4
|
+
SMF はオブジェクト指向スクリプト言語 Ruby のための、「スタンダードMIDI
|
5
|
+
ファイル」モジュールです。
|
6
6
|
|
7
7
|
|
8
|
-
|
8
|
+
インストール
|
9
9
|
------------
|
10
10
|
|
11
|
-
|
11
|
+
スクリプト "install.rb" をつかいます。
|
12
12
|
|
13
13
|
$ ruby install.rb config
|
14
14
|
$ ruby install.rb setup
|
15
15
|
($ su)
|
16
16
|
# ruby install.rb install
|
17
17
|
|
18
|
-
|
18
|
+
くわしくは、"ruby install.rb --help" としてください。
|
19
19
|
|
20
20
|
|
21
|
-
|
21
|
+
参考文献
|
22
22
|
--------
|
23
23
|
|
24
|
-
MIDI
|
24
|
+
MIDI 規格協議会「MIDI 1.0 規格」リットーミュージック 1989
|
25
25
|
|
26
|
-
|
26
|
+
音楽電子事業協会「MIDI 1.0 規格書」リットーミュージック 1998
|
27
27
|
|
28
|
-
JIS X 6054-1,2:1999
|
28
|
+
JIS X 6054-1,2:1999 電子楽器ディジタルインターフェイス (MIDI)
|
29
29
|
|
30
30
|
|
31
|
-
|
31
|
+
ふなばただよし
|
32
32
|
mailto:tadf@funaba.org
|
33
33
|
http://www.funaba.org/
|
data/README.en
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
An "SMF" module
|
2
|
-
|
2
|
+
===============
|
3
3
|
|
4
|
-
SMF is a "Standard MIDI File" module for an object
|
5
|
-
|
4
|
+
SMF is a "Standard MIDI File" module for an object-oriented scripting
|
5
|
+
language Ruby.
|
6
6
|
|
7
7
|
|
8
8
|
Install
|
9
|
-
|
9
|
+
-------
|
10
10
|
|
11
11
|
Use the script "install.rb".
|
12
12
|
|
@@ -15,19 +15,19 @@ Use the script "install.rb".
|
|
15
15
|
($ su)
|
16
16
|
# ruby install.rb install
|
17
17
|
|
18
|
-
For more information, type "ruby install.rb
|
18
|
+
For more information, type "ruby install.rb --help".
|
19
19
|
|
20
20
|
|
21
21
|
References
|
22
|
-
|
22
|
+
----------
|
23
23
|
|
24
|
-
MIDI
|
24
|
+
MIDI Kikaku Kyōgi-kai, MIDI 1.0 Kikaku, rittor music 1989
|
25
25
|
|
26
|
-
|
26
|
+
Ongaku Denshi Jigyō Kyōkai, MIDI 1.0 Kikaku-sho, Rittor Music 1998
|
27
27
|
|
28
|
-
JIS X 6054
|
28
|
+
JIS X 6054-1,2:1999 Musical Instrument Digital Interface (MIDI)
|
29
29
|
|
30
30
|
|
31
31
|
Tadayoshi Funaba
|
32
32
|
mailto:tadf@funaba.org
|
33
|
-
http://www.funaba.org/
|
33
|
+
http://www.funaba.org/
|
data/lib/smf.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# smf.rb: Written by Tadayoshi Funaba 1998-2006,2008
|
2
|
-
# $Id: smf.rb,v 1.
|
1
|
+
# smf.rb: Written by Tadayoshi Funaba 1998-2006,2008,2012,2014
|
2
|
+
# $Id: smf.rb,v 1.41 2014-04-27 08:44:26+09 tadf Exp $
|
3
3
|
|
4
4
|
require 'smf/io'
|
5
5
|
require 'forwardable'
|
@@ -31,6 +31,8 @@ module SMF
|
|
31
31
|
|
32
32
|
def ntrks() @arr.count{|x| x} end
|
33
33
|
|
34
|
+
alias_method :nitems, :ntrks
|
35
|
+
|
34
36
|
else
|
35
37
|
|
36
38
|
def ntrks() @arr.nitems end
|
@@ -131,6 +133,8 @@ module SMF
|
|
131
133
|
|
132
134
|
def nevts() @arr.count{|x| x} end
|
133
135
|
|
136
|
+
alias_method :nitems, :nevts
|
137
|
+
|
134
138
|
else
|
135
139
|
|
136
140
|
def nevts() @arr.nitems end
|
@@ -467,7 +471,7 @@ module SMF
|
|
467
471
|
|
468
472
|
end
|
469
473
|
end;
|
470
|
-
end
|
474
|
+
end # <<"x"
|
471
475
|
|
472
476
|
[ 'LocalControl', # val:0/127
|
473
477
|
'MonoMode', # val:0/16
|
@@ -584,7 +588,7 @@ module SMF
|
|
584
588
|
|
585
589
|
end
|
586
590
|
end;
|
587
|
-
end
|
591
|
+
end # <<"x"
|
588
592
|
|
589
593
|
Text01 = GeneralPurposeText
|
590
594
|
Text02 = CopyrightNotice
|
data/lib/smf/toy/beatmap.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
# beatmap.rb: Written by Tadayoshi Funaba 2005,2006
|
2
|
-
# $Id: beatmap.rb,v 1.
|
1
|
+
# beatmap.rb: Written by Tadayoshi Funaba 2005,2006,2014
|
2
|
+
# $Id: beatmap.rb,v 1.4 2014-04-27 08:46:58+09 tadf Exp $
|
3
3
|
|
4
4
|
require 'smf/toy/searchsegment'
|
5
|
-
require 'rational'
|
5
|
+
require 'rational' unless defined?(Rational)
|
6
6
|
|
7
7
|
module SMF
|
8
8
|
|
data/lib/smf/toy/gm.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# gm.rb: Written by Tadayoshi Funaba 2005
|
2
|
-
# $Id: gm.rb,v 1.
|
1
|
+
# gm.rb: Written by Tadayoshi Funaba 2005,2012
|
2
|
+
# $Id: gm.rb,v 1.3 2014-03-22 07:48:58+09 tadf Exp $
|
3
3
|
|
4
4
|
module SMF
|
5
5
|
|
@@ -9,14 +9,14 @@ module SMF
|
|
9
9
|
['DataEntryMSB', 6],
|
10
10
|
['ChannelVolumeMSB', 7],
|
11
11
|
['PanMSB', 10],
|
12
|
-
['
|
12
|
+
['ExpressionMSB', 11],
|
13
13
|
['BankSelectLSB', 32 + 0],
|
14
14
|
['ModulationDepthLSB', 32 + 1],
|
15
15
|
['PortamentoTimeLSB', 32 + 5],
|
16
16
|
['DataEntryLSB', 32 + 6],
|
17
17
|
['ChannelVolumeLSB', 32 + 7],
|
18
18
|
['PanLSB', 32 + 10],
|
19
|
-
['
|
19
|
+
['ExpressionLSB', 32 + 11],
|
20
20
|
['Hold1', 64],
|
21
21
|
['PortamentoOnOff', 65],
|
22
22
|
['Sostenuto', 66],
|
@@ -44,7 +44,7 @@ module SMF
|
|
44
44
|
|
45
45
|
end
|
46
46
|
end;
|
47
|
-
end
|
47
|
+
end # <<"x"
|
48
48
|
|
49
49
|
[ ['PitchBendSensitivity', 0, 0],
|
50
50
|
['ChannelFineTune', 1, 0],
|
@@ -69,7 +69,7 @@ module SMF
|
|
69
69
|
|
70
70
|
end
|
71
71
|
end;
|
72
|
-
end
|
72
|
+
end # <<"x"
|
73
73
|
|
74
74
|
class MasterVolume < ExclusiveF0
|
75
75
|
|
data/lib/smf/toy/groove.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# groove.rb: Written by Tadayoshi Funaba 2005,2006,2008
|
2
|
-
# $Id: groove.rb,v 1.
|
1
|
+
# groove.rb: Written by Tadayoshi Funaba 2005,2006,2008,2014
|
2
|
+
# $Id: groove.rb,v 1.4 2014-03-22 07:48:58+09 tadf Exp $
|
3
3
|
|
4
4
|
require 'gsl'
|
5
5
|
|
@@ -14,9 +14,9 @@ module SMF
|
|
14
14
|
x << @unit / (pat.size - 1) * i
|
15
15
|
y << p * div * 4
|
16
16
|
end
|
17
|
-
|
18
|
-
|
19
|
-
@
|
17
|
+
x2 = GSL::Vector.alloc(x)
|
18
|
+
y2 = GSL::Vector.alloc(y)
|
19
|
+
@spline = GSL::Spline.alloc('linear', x2, y2)
|
20
20
|
self.amount = 0.5
|
21
21
|
end
|
22
22
|
|
@@ -24,7 +24,7 @@ module SMF
|
|
24
24
|
|
25
25
|
def groove(ev)
|
26
26
|
q, r = ev.offset.divmod(@unit)
|
27
|
-
r2 = @
|
27
|
+
r2 = @spline.eval(r)
|
28
28
|
r3 = r + (r2 - r) * @amount
|
29
29
|
ev.offset = (q * @unit + r3).round
|
30
30
|
end
|
data/lib/smf/toy/macro.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
# macro.rb: Written by Tadayoshi Funaba 1999-2006
|
2
|
-
# $Id: macro.rb,v 1.
|
1
|
+
# macro.rb: Written by Tadayoshi Funaba 1999-2006,2012,2014
|
2
|
+
# $Id: macro.rb,v 1.7 2014-04-27 08:46:58+09 tadf Exp $
|
3
3
|
|
4
4
|
require 'smf'
|
5
5
|
require 'smf/toy/gm'
|
6
|
-
require 'rational'
|
6
|
+
require 'rational' unless defined?(Rational)
|
7
7
|
|
8
8
|
module SMF
|
9
9
|
|
@@ -95,8 +95,8 @@ module SMF
|
|
95
95
|
ke[sf] = [0] * 12
|
96
96
|
d = if sf < 0 then -1 else +1 end
|
97
97
|
b = if d == 1 then 5 else 11 end
|
98
|
-
sf.to_i.abs.times do |
|
99
|
-
n = (b + 7 *
|
98
|
+
sf.to_i.abs.times do |j|
|
99
|
+
n = (b + 7 * j * d) % 12
|
100
100
|
ke[sf][n] += d
|
101
101
|
end
|
102
102
|
end
|
@@ -1,25 +1,22 @@
|
|
1
1
|
#
|
2
2
|
# DO NOT MODIFY!!!!
|
3
|
-
# This file is automatically generated by
|
4
|
-
# from
|
3
|
+
# This file is automatically generated by Racc 1.4.11
|
4
|
+
# from Racc grammer file "".
|
5
5
|
#
|
6
6
|
|
7
|
-
require 'racc/parser'
|
8
|
-
|
7
|
+
require 'racc/parser.rb'
|
9
8
|
|
10
9
|
|
11
10
|
require 'smf'
|
12
11
|
require 'smf/toy/macro'
|
13
|
-
require 'rational'
|
12
|
+
require 'rational' unless defined?(Rational)
|
14
13
|
|
15
14
|
class SemanticError < StandardError; end
|
16
15
|
|
17
|
-
|
18
16
|
module SMF
|
19
|
-
|
20
17
|
class MMLParser < Racc::Parser
|
21
18
|
|
22
|
-
module_eval
|
19
|
+
module_eval(<<'...end parser.ry/module_eval...', 'parser.ry', 66)
|
23
20
|
|
24
21
|
STEPTAB = { 'w'=>1.to_r/1, 'h'=>1.to_r/2,
|
25
22
|
'q'=>1.to_r/4, 'i'=>1.to_r/8,
|
@@ -38,7 +35,7 @@ module_eval <<'..end parser.ry modeval..id74aaf71953', 'parser.ry', 66
|
|
38
35
|
|
39
36
|
def next_token
|
40
37
|
loop do
|
41
|
-
@str = @str.sub(/\A(
|
38
|
+
@str = @str.sub(/\A(\s+)/, '')
|
42
39
|
if $1
|
43
40
|
@co += $1.count("\n")
|
44
41
|
end
|
@@ -116,355 +113,353 @@ module_eval <<'..end parser.ry modeval..id74aaf71953', 'parser.ry', 66
|
|
116
113
|
end
|
117
114
|
end
|
118
115
|
|
119
|
-
|
120
|
-
|
121
|
-
##### racc 1.4.5 generates ###
|
122
|
-
|
123
|
-
racc_reduce_table = [
|
124
|
-
0, 0, :racc_error,
|
125
|
-
1, 20, :_reduce_1,
|
126
|
-
0, 21, :_reduce_2,
|
127
|
-
2, 21, :_reduce_3,
|
128
|
-
1, 22, :_reduce_4,
|
129
|
-
2, 22, :_reduce_5,
|
130
|
-
1, 23, :_reduce_6,
|
131
|
-
1, 23, :_reduce_none,
|
132
|
-
1, 23, :_reduce_none,
|
133
|
-
1, 23, :_reduce_none,
|
134
|
-
3, 23, :_reduce_10,
|
135
|
-
1, 25, :_reduce_11,
|
136
|
-
1, 26, :_reduce_12,
|
137
|
-
3, 27, :_reduce_13,
|
138
|
-
5, 27, :_reduce_14,
|
139
|
-
3, 24, :_reduce_15,
|
140
|
-
3, 24, :_reduce_16,
|
141
|
-
3, 24, :_reduce_17,
|
142
|
-
3, 24, :_reduce_18,
|
143
|
-
3, 24, :_reduce_19,
|
144
|
-
1, 24, :_reduce_20,
|
145
|
-
3, 28, :_reduce_21,
|
146
|
-
3, 28, :_reduce_22,
|
147
|
-
3, 28, :_reduce_23,
|
148
|
-
3, 28, :_reduce_24,
|
149
|
-
2, 28, :_reduce_25,
|
150
|
-
3, 28, :_reduce_26,
|
151
|
-
1, 28, :_reduce_27 ]
|
152
|
-
|
153
|
-
racc_reduce_n = 28
|
154
|
-
|
155
|
-
racc_shift_n = 48
|
116
|
+
...end parser.ry/module_eval...
|
117
|
+
##### State transition tables begin ###
|
156
118
|
|
157
119
|
racc_action_table = [
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
120
|
+
20, 21, 18, 19, 37, 38, 35, 36, 23, 28,
|
121
|
+
28, 28, 14, 34, 15, 28, 28, 46, 29, 29,
|
122
|
+
29, 30, 30, 30, 29, 29, 28, 30, 30, 17,
|
123
|
+
28, 28, 28, 37, 38, 29, 28, 16, 30, 29,
|
124
|
+
29, 29, 30, 30, 30, 29, 37, 38, 30, 37,
|
125
|
+
38, 35, 36, 14, 10, 15, 11, 12, 13, 3,
|
126
|
+
41, 14, nil, 15, 10, 32, 11, 12, 13, nil,
|
127
|
+
14, 14, 15, 15, 37, 38, 35, 36, 20, 21,
|
128
|
+
18, 19, 20, 21, 20, 21 ]
|
167
129
|
|
168
130
|
racc_action_check = [
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
20,
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
131
|
+
24, 24, 24, 24, 40, 40, 40, 40, 13, 29,
|
132
|
+
36, 35, 18, 24, 18, 41, 38, 40, 29, 36,
|
133
|
+
35, 29, 36, 35, 41, 38, 37, 41, 38, 5,
|
134
|
+
23, 20, 21, 42, 42, 37, 28, 3, 37, 23,
|
135
|
+
20, 21, 23, 20, 21, 28, 43, 43, 28, 33,
|
136
|
+
33, 33, 33, 14, 2, 14, 2, 2, 2, 1,
|
137
|
+
33, 2, nil, 2, 22, 22, 22, 22, 22, nil,
|
138
|
+
19, 22, 19, 22, 47, 47, 47, 47, 6, 6,
|
139
|
+
6, 6, 26, 26, 25, 25 ]
|
178
140
|
|
179
141
|
racc_action_pointer = [
|
180
|
-
nil,
|
181
|
-
|
182
|
-
25,
|
183
|
-
nil,
|
184
|
-
|
142
|
+
nil, 59, 46, 37, nil, 22, 75, nil, nil, nil,
|
143
|
+
nil, nil, nil, -5, 38, nil, nil, nil, -3, 55,
|
144
|
+
25, 26, 56, 24, -3, 81, 79, nil, 30, 3,
|
145
|
+
nil, nil, nil, 46, nil, 5, 4, 20, 10, nil,
|
146
|
+
1, 9, 30, 43, nil, nil, nil, 71 ]
|
185
147
|
|
186
148
|
racc_action_default = [
|
187
|
-
-2, -28, -1, -28,
|
188
|
-
|
189
|
-
-28, -28, -28, -28, -28, -
|
190
|
-
-
|
191
|
-
-28, -28, -
|
149
|
+
-2, -28, -1, -28, -3, -4, -6, -7, -8, -9,
|
150
|
+
-2, -11, -12, -28, -28, -20, 48, -5, -28, -28,
|
151
|
+
-28, -28, -28, -28, -28, -15, -16, -17, -28, -28,
|
152
|
+
-27, -18, -10, -13, -19, -28, -28, -28, -28, -25,
|
153
|
+
-28, -28, -21, -22, -23, -24, -26, -14 ]
|
192
154
|
|
193
155
|
racc_goto_table = [
|
194
|
-
27, 2,
|
195
|
-
|
196
|
-
|
156
|
+
27, 31, 2, 33, 1, nil, 24, nil, 39, 40,
|
157
|
+
25, 26, 22, nil, nil, 42, 43, 44, 45, nil,
|
158
|
+
nil, 47 ]
|
197
159
|
|
198
160
|
racc_goto_check = [
|
199
|
-
9,
|
200
|
-
|
201
|
-
|
161
|
+
9, 9, 2, 9, 1, nil, 5, nil, 9, 9,
|
162
|
+
5, 5, 2, nil, nil, 9, 9, 9, 9, nil,
|
163
|
+
nil, 9 ]
|
202
164
|
|
203
165
|
racc_goto_pointer = [
|
204
|
-
nil, 4,
|
166
|
+
nil, 4, 2, nil, nil, -8, nil, nil, nil, -20 ]
|
205
167
|
|
206
168
|
racc_goto_default = [
|
207
|
-
nil, nil, nil, 5, 7, 8, 9,
|
169
|
+
nil, nil, nil, 4, 5, 6, 7, 8, 9, nil ]
|
208
170
|
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
:
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
:
|
221
|
-
:
|
222
|
-
:
|
223
|
-
:
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
:
|
228
|
-
:
|
171
|
+
racc_reduce_table = [
|
172
|
+
0, 0, :racc_error,
|
173
|
+
1, 20, :_reduce_1,
|
174
|
+
0, 21, :_reduce_2,
|
175
|
+
2, 21, :_reduce_3,
|
176
|
+
1, 22, :_reduce_4,
|
177
|
+
2, 22, :_reduce_5,
|
178
|
+
1, 23, :_reduce_6,
|
179
|
+
1, 23, :_reduce_none,
|
180
|
+
1, 23, :_reduce_none,
|
181
|
+
1, 23, :_reduce_none,
|
182
|
+
3, 23, :_reduce_10,
|
183
|
+
1, 25, :_reduce_11,
|
184
|
+
1, 26, :_reduce_12,
|
185
|
+
3, 27, :_reduce_13,
|
186
|
+
5, 27, :_reduce_14,
|
187
|
+
3, 24, :_reduce_15,
|
188
|
+
3, 24, :_reduce_16,
|
189
|
+
3, 24, :_reduce_17,
|
190
|
+
3, 24, :_reduce_18,
|
191
|
+
3, 24, :_reduce_19,
|
192
|
+
1, 24, :_reduce_20,
|
193
|
+
3, 28, :_reduce_21,
|
194
|
+
3, 28, :_reduce_22,
|
195
|
+
3, 28, :_reduce_23,
|
196
|
+
3, 28, :_reduce_24,
|
197
|
+
2, 28, :_reduce_25,
|
198
|
+
3, 28, :_reduce_26,
|
199
|
+
1, 28, :_reduce_27 ]
|
229
200
|
|
230
|
-
|
201
|
+
racc_reduce_n = 28
|
202
|
+
|
203
|
+
racc_shift_n = 48
|
204
|
+
|
205
|
+
racc_token_table = {
|
206
|
+
false => 0,
|
207
|
+
:error => 1,
|
208
|
+
:UMINUS => 2,
|
209
|
+
"*" => 3,
|
210
|
+
"/" => 4,
|
211
|
+
"+" => 5,
|
212
|
+
"-" => 6,
|
213
|
+
"&" => 7,
|
214
|
+
"{" => 8,
|
215
|
+
"}" => 9,
|
216
|
+
:NOTE => 10,
|
217
|
+
:TEXT => 11,
|
218
|
+
:VAR => 12,
|
219
|
+
:AOP => 13,
|
220
|
+
"," => 14,
|
221
|
+
"(" => 15,
|
222
|
+
")" => 16,
|
223
|
+
:STEP => 17,
|
224
|
+
:NUM => 18 }
|
231
225
|
|
232
226
|
racc_nt_base = 19
|
233
227
|
|
228
|
+
racc_use_result_var = true
|
229
|
+
|
234
230
|
Racc_arg = [
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
231
|
+
racc_action_table,
|
232
|
+
racc_action_check,
|
233
|
+
racc_action_default,
|
234
|
+
racc_action_pointer,
|
235
|
+
racc_goto_table,
|
236
|
+
racc_goto_check,
|
237
|
+
racc_goto_default,
|
238
|
+
racc_goto_pointer,
|
239
|
+
racc_nt_base,
|
240
|
+
racc_reduce_table,
|
241
|
+
racc_token_table,
|
242
|
+
racc_shift_n,
|
243
|
+
racc_reduce_n,
|
244
|
+
racc_use_result_var ]
|
249
245
|
|
250
246
|
Racc_token_to_s_table = [
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
247
|
+
"$end",
|
248
|
+
"error",
|
249
|
+
"UMINUS",
|
250
|
+
"\"*\"",
|
251
|
+
"\"/\"",
|
252
|
+
"\"+\"",
|
253
|
+
"\"-\"",
|
254
|
+
"\"&\"",
|
255
|
+
"\"{\"",
|
256
|
+
"\"}\"",
|
257
|
+
"NOTE",
|
258
|
+
"TEXT",
|
259
|
+
"VAR",
|
260
|
+
"AOP",
|
261
|
+
"\",\"",
|
262
|
+
"\"(\"",
|
263
|
+
"\")\"",
|
264
|
+
"STEP",
|
265
|
+
"NUM",
|
266
|
+
"$start",
|
267
|
+
"prog",
|
268
|
+
"list",
|
269
|
+
"stmt",
|
270
|
+
"expr",
|
271
|
+
"step",
|
272
|
+
"note",
|
273
|
+
"text",
|
274
|
+
"asgn",
|
275
|
+
"num" ]
|
280
276
|
|
281
277
|
Racc_debug_parser = false
|
282
278
|
|
283
|
-
#####
|
279
|
+
##### State transition tables end #####
|
284
280
|
|
285
|
-
|
281
|
+
# reduce 0 omitted
|
286
282
|
|
287
|
-
module_eval
|
288
|
-
def _reduce_1(
|
289
|
-
|
290
|
-
|
283
|
+
module_eval(<<'.,.,', 'parser.ry', 13)
|
284
|
+
def _reduce_1(val, _values, result)
|
285
|
+
result = val[0]
|
286
|
+
result
|
291
287
|
end
|
292
288
|
.,.,
|
293
289
|
|
294
|
-
module_eval
|
295
|
-
def _reduce_2(
|
296
|
-
|
297
|
-
|
290
|
+
module_eval(<<'.,.,', 'parser.ry', 15)
|
291
|
+
def _reduce_2(val, _values, result)
|
292
|
+
result = [:list, []]
|
293
|
+
result
|
298
294
|
end
|
299
295
|
.,.,
|
300
296
|
|
301
|
-
module_eval
|
302
|
-
def _reduce_3(
|
303
|
-
|
304
|
-
|
297
|
+
module_eval(<<'.,.,', 'parser.ry', 16)
|
298
|
+
def _reduce_3(val, _values, result)
|
299
|
+
val[0][1] << val[1]; result = val[0]
|
300
|
+
result
|
305
301
|
end
|
306
302
|
.,.,
|
307
303
|
|
308
|
-
module_eval
|
309
|
-
def _reduce_4(
|
310
|
-
|
311
|
-
|
304
|
+
module_eval(<<'.,.,', 'parser.ry', 19)
|
305
|
+
def _reduce_4(val, _values, result)
|
306
|
+
result = [:stmt, val[0]]
|
307
|
+
result
|
312
308
|
end
|
313
309
|
.,.,
|
314
310
|
|
315
|
-
module_eval
|
316
|
-
def _reduce_5(
|
317
|
-
|
318
|
-
|
311
|
+
module_eval(<<'.,.,', 'parser.ry', 20)
|
312
|
+
def _reduce_5(val, _values, result)
|
313
|
+
result = [:stmt, val[0], val[1]]
|
314
|
+
result
|
319
315
|
end
|
320
316
|
.,.,
|
321
317
|
|
322
|
-
module_eval
|
323
|
-
def _reduce_6(
|
324
|
-
|
325
|
-
|
318
|
+
module_eval(<<'.,.,', 'parser.ry', 23)
|
319
|
+
def _reduce_6(val, _values, result)
|
320
|
+
result = [:step, val[0]]
|
321
|
+
result
|
326
322
|
end
|
327
323
|
.,.,
|
328
324
|
|
329
|
-
|
325
|
+
# reduce 7 omitted
|
330
326
|
|
331
|
-
|
327
|
+
# reduce 8 omitted
|
332
328
|
|
333
|
-
|
329
|
+
# reduce 9 omitted
|
334
330
|
|
335
|
-
module_eval
|
336
|
-
def _reduce_10(
|
337
|
-
|
338
|
-
|
331
|
+
module_eval(<<'.,.,', 'parser.ry', 25)
|
332
|
+
def _reduce_10(val, _values, result)
|
333
|
+
result = val[1]
|
334
|
+
result
|
339
335
|
end
|
340
336
|
.,.,
|
341
337
|
|
342
|
-
module_eval
|
343
|
-
def _reduce_11(
|
344
|
-
|
345
|
-
|
338
|
+
module_eval(<<'.,.,', 'parser.ry', 28)
|
339
|
+
def _reduce_11(val, _values, result)
|
340
|
+
result = [:note, val[0]]
|
341
|
+
result
|
346
342
|
end
|
347
343
|
.,.,
|
348
344
|
|
349
|
-
module_eval
|
350
|
-
def _reduce_12(
|
351
|
-
|
352
|
-
|
345
|
+
module_eval(<<'.,.,', 'parser.ry', 29)
|
346
|
+
def _reduce_12(val, _values, result)
|
347
|
+
result = [:text, val[0]]
|
348
|
+
result
|
353
349
|
end
|
354
350
|
.,.,
|
355
351
|
|
356
|
-
module_eval
|
357
|
-
def _reduce_13(
|
358
|
-
|
359
|
-
|
352
|
+
module_eval(<<'.,.,', 'parser.ry', 32)
|
353
|
+
def _reduce_13(val, _values, result)
|
354
|
+
result = [:asgn, val[0], val[1], val[2]]
|
355
|
+
result
|
360
356
|
end
|
361
357
|
.,.,
|
362
358
|
|
363
|
-
module_eval
|
364
|
-
def _reduce_14(
|
365
|
-
|
366
|
-
|
359
|
+
module_eval(<<'.,.,', 'parser.ry', 34)
|
360
|
+
def _reduce_14(val, _values, result)
|
361
|
+
result = [:asgn, val[0], val[1], val[2], val[4]]
|
362
|
+
result
|
367
363
|
end
|
368
364
|
.,.,
|
369
365
|
|
370
|
-
module_eval
|
371
|
-
def _reduce_15(
|
372
|
-
|
373
|
-
|
366
|
+
module_eval(<<'.,.,', 'parser.ry', 37)
|
367
|
+
def _reduce_15(val, _values, result)
|
368
|
+
result = [:add, val[0], val[2]]
|
369
|
+
result
|
374
370
|
end
|
375
371
|
.,.,
|
376
372
|
|
377
|
-
module_eval
|
378
|
-
def _reduce_16(
|
379
|
-
|
380
|
-
|
373
|
+
module_eval(<<'.,.,', 'parser.ry', 38)
|
374
|
+
def _reduce_16(val, _values, result)
|
375
|
+
result = [:sub, val[0], val[2]]
|
376
|
+
result
|
381
377
|
end
|
382
378
|
.,.,
|
383
379
|
|
384
|
-
module_eval
|
385
|
-
def _reduce_17(
|
386
|
-
|
387
|
-
|
380
|
+
module_eval(<<'.,.,', 'parser.ry', 39)
|
381
|
+
def _reduce_17(val, _values, result)
|
382
|
+
result = [:mul, val[0], val[2]]
|
383
|
+
result
|
388
384
|
end
|
389
385
|
.,.,
|
390
386
|
|
391
|
-
module_eval
|
392
|
-
def _reduce_18(
|
393
|
-
|
394
|
-
|
387
|
+
module_eval(<<'.,.,', 'parser.ry', 40)
|
388
|
+
def _reduce_18(val, _values, result)
|
389
|
+
result = [:div, val[0], val[2]]
|
390
|
+
result
|
395
391
|
end
|
396
392
|
.,.,
|
397
393
|
|
398
|
-
module_eval
|
399
|
-
def _reduce_19(
|
400
|
-
|
401
|
-
|
394
|
+
module_eval(<<'.,.,', 'parser.ry', 41)
|
395
|
+
def _reduce_19(val, _values, result)
|
396
|
+
result = val[1]
|
397
|
+
result
|
402
398
|
end
|
403
399
|
.,.,
|
404
400
|
|
405
|
-
module_eval
|
406
|
-
def _reduce_20(
|
407
|
-
|
408
|
-
|
401
|
+
module_eval(<<'.,.,', 'parser.ry', 42)
|
402
|
+
def _reduce_20(val, _values, result)
|
403
|
+
result = [:imm, val[0]]
|
404
|
+
result
|
409
405
|
end
|
410
406
|
.,.,
|
411
407
|
|
412
|
-
module_eval
|
413
|
-
def _reduce_21(
|
414
|
-
|
415
|
-
|
408
|
+
module_eval(<<'.,.,', 'parser.ry', 45)
|
409
|
+
def _reduce_21(val, _values, result)
|
410
|
+
result = [:add, val[0], val[2]]
|
411
|
+
result
|
416
412
|
end
|
417
413
|
.,.,
|
418
414
|
|
419
|
-
module_eval
|
420
|
-
def _reduce_22(
|
421
|
-
|
422
|
-
|
415
|
+
module_eval(<<'.,.,', 'parser.ry', 46)
|
416
|
+
def _reduce_22(val, _values, result)
|
417
|
+
result = [:sub, val[0], val[2]]
|
418
|
+
result
|
423
419
|
end
|
424
420
|
.,.,
|
425
421
|
|
426
|
-
module_eval
|
427
|
-
def _reduce_23(
|
428
|
-
|
429
|
-
|
422
|
+
module_eval(<<'.,.,', 'parser.ry', 47)
|
423
|
+
def _reduce_23(val, _values, result)
|
424
|
+
result = [:mul, val[0], val[2]]
|
425
|
+
result
|
430
426
|
end
|
431
427
|
.,.,
|
432
428
|
|
433
|
-
module_eval
|
434
|
-
def _reduce_24(
|
435
|
-
|
436
|
-
|
429
|
+
module_eval(<<'.,.,', 'parser.ry', 48)
|
430
|
+
def _reduce_24(val, _values, result)
|
431
|
+
result = [:div, val[0], val[2]]
|
432
|
+
result
|
437
433
|
end
|
438
434
|
.,.,
|
439
435
|
|
440
|
-
module_eval
|
441
|
-
def _reduce_25(
|
442
|
-
|
443
|
-
|
436
|
+
module_eval(<<'.,.,', 'parser.ry', 49)
|
437
|
+
def _reduce_25(val, _values, result)
|
438
|
+
result = [:negate, val[1]]
|
439
|
+
result
|
444
440
|
end
|
445
441
|
.,.,
|
446
442
|
|
447
|
-
module_eval
|
448
|
-
def _reduce_26(
|
449
|
-
|
450
|
-
|
443
|
+
module_eval(<<'.,.,', 'parser.ry', 50)
|
444
|
+
def _reduce_26(val, _values, result)
|
445
|
+
result = val[1]
|
446
|
+
result
|
451
447
|
end
|
452
448
|
.,.,
|
453
449
|
|
454
|
-
module_eval
|
455
|
-
def _reduce_27(
|
456
|
-
|
457
|
-
|
450
|
+
module_eval(<<'.,.,', 'parser.ry', 51)
|
451
|
+
def _reduce_27(val, _values, result)
|
452
|
+
result = [:imm, val[0]]
|
453
|
+
result
|
458
454
|
end
|
459
455
|
.,.,
|
460
456
|
|
461
|
-
|
462
|
-
|
463
|
-
|
457
|
+
def _reduce_none(val, _values, result)
|
458
|
+
val[0]
|
459
|
+
end
|
464
460
|
|
465
461
|
end # class MMLParser
|
466
|
-
|
467
|
-
end # module SMF
|
462
|
+
end # module SMF
|
468
463
|
|
469
464
|
|
470
465
|
module SMF
|