yaparc 0.2.2 → 0.2.3

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.
File without changes
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yaparc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akimichi Tatsukawa
8
- autorequire: yaparc
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-05-08 00:00:00 +09:00
12
+ date: 2009-01-19 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -22,14 +22,18 @@ extensions: []
22
22
  extra_rdoc_files:
23
23
  - README
24
24
  files:
25
- - tests/test_parser.rb
26
- - tests/test_abc.rb
27
- - tests/test_calc.rb
28
- - tests/test_owl.rb
29
- - tests/test_sql.rb
30
- - tests/test_uri.rb
25
+ - test/test_sql.rb
26
+ - test/test_lambda.rb
27
+ - test/test_calc.rb
28
+ - test/test_uri.rb
29
+ - test/test_parser.rb
30
+ - test/test_owl.rb
31
+ - test/test_metric.rb
32
+ - test/test_prolog.rb
31
33
  - lib/yaparc.rb
32
- - tests/abc20bnf.txt
34
+ - test/n3.bnf
35
+ - test/test_abc.rb.bak
36
+ - test/n3-report.html
33
37
  - README
34
38
  has_rdoc: true
35
39
  homepage: http://rubyforge.org/projects/yaparc/
@@ -52,15 +56,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
52
56
  version:
53
57
  requirements: []
54
58
 
55
- rubyforge_project:
56
- rubygems_version: 1.0.1
59
+ rubyforge_project: yaparc
60
+ rubygems_version: 1.3.1
57
61
  signing_key:
58
62
  specification_version: 2
59
63
  summary: Yet Another Combinator Parser Library
60
64
  test_files:
61
- - tests/test_parser.rb
62
- - tests/test_abc.rb
63
- - tests/test_calc.rb
64
- - tests/test_owl.rb
65
- - tests/test_sql.rb
66
- - tests/test_uri.rb
65
+ - test/test_sql.rb
66
+ - test/test_lambda.rb
67
+ - test/test_calc.rb
68
+ - test/test_uri.rb
69
+ - test/test_parser.rb
70
+ - test/test_owl.rb
71
+ - test/test_metric.rb
72
+ - test/test_prolog.rb
@@ -1,264 +0,0 @@
1
- ; ABC notation 2.0 - BNF specification.
2
- ; This is a specification of the draft ABC 2.0 standard in BNF.
3
- ; This BNF specification is not finished yet - it needs to be elaborated in some places.
4
- ; It uses ABNF as defined in http://www.ietf.org/rfc/rfc2234.txt.
5
- ; This file written by Henrik Norbeck.
6
- ; --------------------------------------------------------------------------------
7
- abc-file ::= *(abc-tune / comment / xcommand / file-field / text-line / tex)
8
- file-field ::= field-area / field-book / field-composer / field-discography / field-file / field-group / field-history / field-length / field-meter / field-notes / field-origin / field-parts / field-tempo / field-rhythm / field-source / field-userdef-print / field-userdef-play / field-words / field-transcription / field-key / unused-field ; Default values for the whole file - all fields except number, title and voice
9
- text-line ::= [non-comment-char tex-text] eol ; Free text between tunes. This is a catch-all rule - check for fields first!
10
-
11
- ; --------------------------------------------------------------------------------
12
- abc-tune ::= abc-header abc-music eol
13
- abc-header ::= [field-number] title-fields *other-field field-key ; note that field-number is optional.
14
- field-number ::= %x58.3A *WSP 1*DIGIT header-eol ; X:
15
- title-fields ::= *(comment / xcommand / tex) 1*(field-title *(comment / xcommand / tex))
16
- field-title ::= %x54.3A *WSP tex-text header-eol ; T:
17
- other-field ::= field-area / field-book / field-composer / field-discography / field-file / field-group / field-history / field-length / field-meter / field-notes / field-origin / field-parts / field-tempo / field-rhythm / field-source / field-userdef-print / field-userdef-play / field-voice / field-words / field-transcription / field-macro / unused-field / comment / xcommand / tex
18
- field-area ::= %x41.3A *WSP tex-text header-eol ; A:
19
- field-book ::= %x42.3A *WSP tex-text header-eol ; B:
20
- field-composer ::= %x43.3A *WSP tex-text header-eol ; C:
21
- field-discography ::= %x44.3A *WSP tex-text header-eol ; D:
22
- field-file ::= %x46.3A *WSP tex-text header-eol ; F:
23
- field-group ::= %x47.3A *WSP tex-text header-eol ; G:
24
- field-history ::= %x48.3A *WSP 1*(tex-text header-eol) ; H: field contents may extend over many lines, which is deprecated (maybe not allowed any longer?)
25
- field-length ::= %x4C.3A *WSP note-length-strict header-eol ; L: default note length
26
- field-meter ::= %x4D.3A *WSP time-signature header-eol ; M:
27
- field-notes ::= %x4E.3A *WSP tex-text header-eol ; N:
28
- field-origin ::= %x4F.3A *WSP tex-text header-eol ; O:
29
- field-parts ::= %x50.3A *WSP parts-play-order header-eol ; P: in header defines in which order parts should be played
30
- field-tempo ::= %x51.3A *WSP tempo header-eol ; Q:
31
- field-rhythm ::= %x52.3A *WSP tex-text header-eol ; R:
32
- field-source ::= %x53.3A *WSP tex-text header-eol ; S:
33
- field-userdef-print ::= %x55.3A *WSP userdef header-eol ; U:
34
- field-userdef-play ::= %x75.3A *WSP userdef header-eol ; u:
35
- field-voice ::= %x56.3A *WSP voice header-eol ; V: options should be better defined
36
- field-words ::= %x57.3A *WSP tex-text header-eol ; W: unformatted words, printed after the tune
37
- field-transcription ::= %x5A.3A *WSP tex-text header-eol ; Z:
38
- field-macro ::= %x6D.3A *WSP 1*(WSP / VCHAR) header-eol ; m: BarFly-style macros - do be defined better
39
- field-key ::= %x4B.3A *WSP key header-eol ; K:
40
- unused-field ::= (%x45 / %x49 / %4A / %59 / %61-6c / %6e-%74 / %76 / %78-7A) %3A *(WSP / VCHAR) eol ; E: I: J: Y: a:-l: n:-t: v: x: y: z: ignore - but for backward and forward compatibility
41
-
42
- ; --------------------------------------------------------------------------------
43
- time-signature ::= %x43 / %x43.7C / "none" / meter-num / 1*DIGIT ; C, C|, none or numeric
44
- meter-num ::= (1*DIGIT *("+" 1*DIGIT) "/" 1*DIGIT) [1*SP meter-num]
45
- ; e.g. 2/4 , 6/8 , 2+2+3/16 , 11/8 , 2/4 3/4 , 2+2+3/8 2+2+3+2+2+2/8
46
- tempo ::= (note-length-strict "=" 1*DIGIT) / (%x43 [note-length] "=" 1*DIGIT) / 1*DIGIT ; 1*DIGIT is deprecated, kept for compatibility
47
- note-length-strict ::= 1*DIGIT "/" 1*DIGIT
48
- key ::= (key-def [1*WSP clef]) / clef / "HP" / "Hp"
49
- key-def ::= basenote ["#" / "b"] [mode] *(1*WSP global-accidental)
50
- mode ::= minor / major / lydian / ionian / mixolydian / dorian / aeolian / phrygian / locrian
51
- minor ::= "m" ["in" ["o" ["r"]]] ; m, min, mino, minor - all modes are case insensitive
52
- major ::= "maj" ["o" ["r"]]
53
- lydian ::= "lyd" ["i" ["a" ["n"]]] ; major with sharp 4th
54
- ionian ::= "ion" ["i" ["a" ["n"]]] ; =major
55
- mixolydian ::= "mix" ["o" ["l" ["y" ["d" ["i" ["a" ["n"]]]]]]] ; major with flat 7th
56
- dorian ::= "dor" ["i" ["a" ["n"]]] ; minor with sharp 6th
57
- aeolian ::= "aeo" ["l" ["i" ["a" ["n"]]]] ; =minor
58
- phrygian ::= "phr" ["y" ["g" ["i" ["a" ["n"]]]]] ; minor with flat 2nd
59
- locrian ::= "loc" ["r" ["i" ["a" ["n"]]]] ; minor with flat 2nd and 5th
60
- global-accidental ::= accidental basenote ; e.g. ^f =c _b
61
- parts-play-order ::= 1*( ALPHA / ( "(" parts-play-order ")" ) *DIGIT) / "." ; dots are ignored - for legibility only
62
-
63
- ; --------------------------------------------------------------------------------
64
- voice ::= 1*(ALPHA / DIGIT) *(1*WSP (clef / voice-name / voice-subname / voice-transpose / "merge" / "up" / "down")) ; maybe "stems=up" / "stems=down" / "stems=normal" instead?
65
- voice-name ::= ("name=" / "nm=") %x22 *non-quote %x22 ; \n in name = linefeed
66
- voice-subname ::= ("subname=" / "snm=") %x22 *non-quote %x22 ; \n in name = linefeed
67
- voice-transpose ::= "transpose=" ["-"] 1*DIGIT
68
-
69
- ; --------------------------------------------------------------------------------
70
- clef ::= ( ("clef=" (clef-note / clef-name)) / clef-name) clef-line ["+8" / "-8"] [1*WSP clef-middle]
71
- clef-note ::= "G" / "C" / "F" / "P"
72
- clef-name ::= "treble" / "alto" / "tenor" / "baritone" / "bass" / "mezzo" / "soprano" / "perc" / "none" ; Maybe also Doh1-4, Fa1-4
73
- clef-line ::= "1" / "2" / "3" / "4" / "5"
74
- cleff-middle ::= "middle=" basenote [octave]
75
-
76
- ; --------------------------------------------------------------------------------
77
- userdef ::= userdef-symbol *WSP "=" *WSP (long-gracing / chord-or-text)
78
- header-eol ::= *WSP (comment / eol) ; there may be comments at the end of header lines
79
-
80
- ; --------------------------------------------------------------------------------
81
- abc-music ::= *(abc-line / comment / xcommand / tune-field / tex)
82
- abc-line ::= barline / ([barline] 1*element *(barline 1*element) [barline]) abc-eol
83
- barline ::= ( *":" *"[" 1*"|" *"]" ( *":" / nth-repeat-num ) ) / invisible-barline / dashed-barline ; e.g. :| | |:: |2 :||:
84
- invisible-barline ::= "[|]" | "[]"
85
- dashed-barline ::= ":"
86
- element ::= stem / WSP / chord-or-text / gracing / grace-notes / broken-rhythm / tuplet / slur-begin / slur-end / rollback / multi-measure-rest / measure-repeat / nth-repeat / end-nth-repeat / inline-field / unused-char
87
-
88
- ; --------------------------------------------------------------------------------
89
- stem ::= note / ( "[" 2*note "]" ) ; stem
90
- note ::= pitch [note-length] [tie] ; note
91
- pitch ::= [accidental] basenote [octave]
92
- rest ::= (normal-rest / invisible-rest / inaudible-rest) [note-length]
93
- normal-rest ::= %x7A ; z = normal rest
94
- invisible-rest ::= %x78 ; x = invisible rest
95
- inaudible-rest ::= %x79 ; y = inaudible and invisible rest, for spacing
96
- accidental ::= "^" / "^^" / "_" / "__" / "="
97
- basenote ::= %x43 / %x44 / %x45 / %x46 / %x47 / %x41 / %x42 / %x63 / %x64 / %x65 / %x66 / %x67 / %x61 / %x62 ; CDEFGABcdefgab
98
- octave ::= 1*"'" / 1*","
99
- note-length ::= (*DIGIT ["/" *DIGIT]) / 1*"/"
100
- tie ::= "-" ; tie
101
-
102
- ; --------------------------------------------------------------------------------
103
- broken-rhythm ::= stem *b-elem (1*"<" / 1*">") *b-elem stem
104
- b-elem ::= WSP / chord-or-text / gracing / grace-notes / slur-begin / slur-end
105
- tuplet ::= "("1*DIGIT [":" [1*DIGIT] ":" [1*DIGIT]] 2*(*t-elem stem)
106
- t-elem ::= WSP / chord-or-text / gracing / grace-notes / broken-rhythm / slur-begin / slur-end
107
-
108
- ; --------------------------------------------------------------------------------
109
- gracing ::= "." / userdef-symbol / long-gracing ; gracings
110
- userdef-symbol ::= "~" / %x48-59 / %x68-77 ; user definable symbols ~ H-Y, h-w
111
- grace-notes ::= "{" acciaccatura 1*( grace-note-stem ) "}" ; grace notes can have length
112
- grace-note-stem ::= grace-note / ( "[" 2*grace-note "]" )
113
- grace-note ::= pitch [note-length] ; as note, but without tie
114
- acciaccatura ::= "/"
115
-
116
- ; --------------------------------------------------------------------------------
117
- chord-or-text ::= %x22 (chord / text-expression) *(chord-newline (chord / text-expression)) %x22 ; ".."
118
- chord ::= basenote [chord-accidental] [chord-type] ["/" basenote [chord-accidental]] *non-quote
119
- chord-accidental ::= "#" / "b" / "="
120
- chord-type ::= 1*( ALPHA / DIGIT / "+" / "-" ) ; e.g. m, 7, m7, +, mb5, sus, sus4, maj7, mmaj7, 7sus4, dim
121
- text-expression ::= [ "^" / "<" / ">" / "_" / "@" ] 1*non-quote ; above, left, right, below, anywhere
122
- non-quote ::= SP / %x21 / %x23-7E ; all characters except quote
123
- chord-newline ::= "\n" / ";"
124
-
125
- ; --------------------------------------------------------------------------------
126
- slur-begin ::= "("
127
- slur-end ::= ")"
128
- rollback ::= "&"
129
- measure-repeat ::= "/" ["/"] ; repeat whole measure
130
- multi-measure-rest ::= %5A *DIGIT ; e.g. Z4
131
- nth-repeat ::= "[" ( nth-repeat-num / nth-repeat-text )
132
- nth-repeat-num ::= 1*DIGIT *(("," / "-") 1*DIGIT)
133
- nth-repeat-text ::= %x22 *non-quote %x22
134
- end-nth-repeat ::= "]"
135
- unused-char ::= "#" / "$" / "*" / "+" / ";" / "?" / "@" / "`" ; ignore for backward and forward compatibility, but maybe warn about them
136
-
137
- ; --------------------------------------------------------------------------------
138
- inline-field ::= ifield-area / ifield-book / ifield-composer / ifield-discography / ifield-group / ifield-history / ifield-length / ifield-meter / ifield-notes / ifield-origin / ifield-part / ifield-tempo / ifield-rhythm / ifield-source / ifield-title / ifield-voice / ifield-words / ifield-lyrics / ifield-transcription / ifield-key
139
- ifield-area ::= %5B.%41.%3A tex-text-ifield %5D ; [A:..]
140
- ifield-book ::= %5B.%42.%3A *WSP tex-text-ifield %5D ; [B:..]
141
- ifield-composer ::= %5B.%43.%3A *WSP tex-text-ifield %5D ; [C:..]
142
- ifield-discography ::= %5B.%44.%3A *WSP tex-text-ifield %5D ; [D:..]
143
- ifield-group ::= %5B.%47.%3A *WSP tex-text-ifield %5D ; [G:..]
144
- ifield-history ::= %5B.%48.%3A *WSP tex-text-ifield %5D ; [H:..]
145
- ifield-length ::= %5B.4C.3A *WSP note-length-strict %5D ; e.g. [L:1/8]
146
- ifield-meter ::= %5B.4D.3A *WSP meter %5D ; e.g. [M:C|] [M: 2+3/8]
147
- ifield-notes ::= %5B.%4E.%3A *WSP tex-text-ifield %5D ; [N:..]
148
- ifield-origin ::= %5B.%4F.%3A *WSP tex-text-ifield %5D ; [O:..]
149
- ifield-part ::= %5B.%50.%3A *WSP (ALPHA / tex-text-ifield) %5D ; e.g. [P:A]
150
- ifield-tempo ::= %5B.%51.%3A *WSP tempo %5D ; e.g. [Q:1/4=120]
151
- ifield-rhythm ::= %5B.%52.%3A *WSP tex-text-ifield %5D ; e.g. [R:reel]
152
- ifield-source ::= %5B.%53.%3A *WSP tex-text-ifield %5D ; [S:..]
153
- ifield-title ::= %5B.%54.%3A *WSP tex-text-ifield %5D ; e.g. [T:second version]
154
- ifield-voice ::= %5B.%56.%3A *WSP voice %5D ; [V:..] options should be better defined
155
- ifield-words ::= %5B.%57.%3A *WSP tex-text-ifield %5D ; [W:..]
156
- ifield-lyrics ::= %5B.%77.%3A *WSP tex-text-ifield %5D ; [w:..]
157
- ifield-transcription ::= %5B.%5A.%3A *WSP tex-text-ifield %5D ; [Z:..]
158
- ifield-key ::= %5B.4B.3A *WSP key %5D ; e.g. [K:Ador] [K: Bphr ^d]
159
- unused-ifield ::= %5B (%x45 / %x49 / %4A / %59 / %61-6c / %6e-%74 / %76 / %78-7A) %3A *(WSP / VCHAR) %5D ; E: I: J: Y: a:-l: n:-t: v: x: y: z: ignore - but for backward and forward compatibility
160
- non-bracket-char ::= *(WSP / %21-%5C / %5E-7E) ; all except ]
161
-
162
- ; --------------------------------------------------------------------------------
163
- abc-eol ::= comment / ([line-continuation / hard-line-break] *WSP eol)
164
- line-continuation ::= "\"
165
- hard-line-break ::= "!" ; kept for compatibility with abc2win
166
-
167
- ; --------------------------------------------------------------------------------
168
- tune-field ::= field-area / field-book / field-composer / field-discography / field-group / field-history / field-length / field-meter / field-notes / field-origin / field-part / field-tempo / field-rhythm / field-source / field-title / field-voice / field-words / field-lyrics / field-transcription / field-key / unused-field
169
- field-part ::= %x50.3A *WSP (ALPHA / tex-text) header-eol ; P:
170
- field-lyrics ::= %x56.3A *WSP lyrics header-eol ; w: formatted lyrics printed under staff
171
-
172
- ; --------------------------------------------------------------------------------
173
- long-gracing ::= gracing-grace / gracing-vol / gracing-style / gracing-finger / gracing-phrase / gracing-exec / gracing-other
174
- gracing-grace ::= "!trill!" / "!mordent!" / "!lowermordent!" / "!pralltriller!" / "!uppermordent!" / "!turn!" / "!roll!" / "!turnx!" / "!invertedturn!" / "!invertedturnx!" / "!trill(!" / "!trill)!"
175
- gracing-vol ::= "!accent!" / "!emphasis!" / "!crescendo(!" / "!crescendo)!" / "!diminuendo(!" / "!diminuendo)!" / "!p!" / "!pp!" / "!ppp!" / "!pppp!" / "!mp!" / "!mf!" / "!fp!" / "!f!" / "!ff!" / "!fff!" / "!ffff!" / "!sfz!" / "!cresc!" / "!decresc!" / "!dimin!"
176
- gracing-style ::= "!+!" / "!open!" / "!snap!" / "!upbow!" / "!downbow!" / "!slide!" / "!arpeggio!"
177
- gracing-len ::= "!fermata!" / "!invertedfermata!" / "!tenuto!"
178
- gracing-finger ::= "!0!" / "!1!" / "!2!" / "!3!" / "!4!" / "!5!"
179
- gracing-phrase ::= "!shortphrase!" / "!mediumphrase!" / "!longphrase!"
180
- gracing-exec ::= "!segno!" / "!coda!" / "!D.S.!" / "!D.C.!" / "!fine!" / ("!repeatbar" *DIGIT "!")
181
- gracing-other ::= "!wedge!" / "!thumb!" / "!breath!" / ("!" 1*(SP / %x22-x7E) "!") ; any text between !! is allowed
182
-
183
- ; --------------------------------------------------------------------------------
184
- comment ::= "%" ([non-comment-char *(VCHAR / WSP)]) eol
185
- non-comment-char ::= %x20-24 / %x26-%x7E / HTAB ; all characters except %
186
- xcommand ::= "%%" xcom eol
187
- xcom ::= xcom-staff / xcom-measurenb / xcom-text / xcom-layout / xcom-margins / xcom-midi / xcom-other ; more need to be defined
188
- xcom-staff ::= xcom-staffbreak / xcom-multicol / xcom-staves / xcom-indent
189
- xcom-staffbreak ::= "staffbreak" 1*WSP xcom-number xcom-unit
190
- xcom-multicol ::= "multicol" 1*WSP ("start" / "new" / "end")
191
- xcom-staves ::= "staves" 1*WSP stave-voice *( bar-staves stave-voice)
192
- stave-voice ::= single-voice / bracketed-voice / braced-voice / paren-voice
193
- bracketed-voice ::= "[" *WSP (single-voice / braced-voice / paren-voice) 1*(bar-staves (single-voice / braced-voice / paren-voice)) *WSP "]" ; staves joined by bracket
194
- braced-voice ::= "{" *WSP (single-voice / paren-voice) 1*(bar-staves (single-voice / paren-voice)) *WSP "}" ; staves joined by brace
195
- paren-voice ::= "(" single-voice 1*( 1*WSP single-voice) ")" ; on same staff
196
- single-voice ::= 1*(ALPHA / DIGIT)
197
- bar-staves ::= (*WSP "|" *WSP) / 1*WSP ; | to not bar
198
- xcom-indent ::= "indent" 1*WSP xcom-number xcom-unit
199
- xcom-measurenb ::= "measurenb" / "measurebox" / "measurefirst" / ("setbarnb" 1*WSP 1*DIGIT)
200
- xcom-text ::= xcom-textline / xcom-textcenter / xcom-textblock
201
- xcom-textline ::= "text" 1*WSP tex-text
202
- xcom-textcenter ::= "center" 1*WSP tex-text
203
- xcom-textblock ::= "begintext" [textblock-param] eol *(["%%"] tex-text) "%%endtext"
204
- textblock-param ::= "obeylines" / ("fill" / "ragged") / ("align" / "justify") / "skip"
205
- xcom-layout ::= xcom-sep / xcom-vskip / xcom-newpage
206
- xcom-sep ::= "sep" [3(1*WSP xcom-number xcom-unit)] ; space-above, space-below, width
207
- xcom-vskip ::= "vskip" 1*WSP xcom-number xcom-unit
208
- xcom-newpage ::= "newpage" [1*WSP 1*DIGIT] ; optionally restart page numbering at n
209
- xcom-margins ::= ("botmargin" / "topmargin" / "leftmargin" / "rightmargin") 1*WSP xcom-number xcom-unit
210
- xcom-midi ::= "midi" 1*WSP (midi-channel / midi-program / midi-transpose)
211
- midi-channel ::= "channel" 1*WSP midi-channel-number
212
- midi-program ::= "program" 1*WSP [midi-channel-number 1*WSP] midi-program-number
213
- midi-channel-number ::= %x31-39 / (%x31 %x30-36) ; channels 1-16
214
- midi-program-number ::= %x31-39 / (%x31-39 %x30-39) / (%x31 %x30-31 %x30-39) / (%x31.32 %x30-38) ; programs 1-128
215
- midi-transpose ::= "transpose" 1*WSP ["-"] 1*DIGIT
216
- xcom-other ::= *(VCHAR / WSP)
217
- xcom-number ::= 1*DIGIT ["." 1*DIGIT]
218
- xcom-unit ::= ["cm" / "pt" / "in"]
219
-
220
- ; --------------------------------------------------------------------------------
221
- lyrics ::= *(lyrics-char / lyrics-syllable-break / lyrics-next-bar / lyrics-hold / lyrics-skip-note / lyrics-nbsp / lyrics-dash / tex-escape)
222
- lyrics-ifield ::= *(lyrics-char-ifield / lyrics-syllable-break / lyrics-next-bar / lyrics-hold / lyrics-skip-note / lyrics-nbsp / lyrics-dash / tex-escape)
223
- lyrics-syllable-break ::= "-" ; break between syllables in a word
224
- lyrics-next-bar ::= "|" ; advance to next bar
225
- lyrics-hold ::= "_" ; hold syllable for one more note
226
- lyrics-skip-note ::= "*" ; =blank syllable
227
- lyrics-nbsp ::= "~" ; non-breaking space = words on same note
228
- lyrics-dash ::= "\-" ; printed as a -
229
- lyrics-char ::= WSP / DIGIT / ALPHA / %x21-29 / %x2B-2C / %x2E-2F / %x3A-40 / %x5B / %x5D / %x5E / %x60 / %x7B-7D ; all characters without special meaning
230
- lyrics-char-ifield ::= WSP / DIGIT / ALPHA / %x21-29 / %x2B-2C / %x2E-2F / %x3A-40 / %x5B / %x5E / %x60 / %x7B-7D ; all characters without special meaning and except ]
231
-
232
- ; --------------------------------------------------------------------------------
233
- tex-text ::= *(WSP / %21-%5B / %5D-7E / tex-escape) ; text that may contain TeX escapes
234
- tex-text-ifield ::= *(WSP / %21-%5B / %5E-7E / tex-escape) ; as above, but except ]
235
- tex-escape ::= "\" 1*(VCHAR) ; to be defined better
236
-
237
- ; --------------------------------------------------------------------------------
238
- tex ::= "\" *(VCHAR / WSP) eol ; deprecated - kept only for backward compatibility with abc2mtex
239
- eol ::= CRLF / LF / CR ; only one version should occur in the whole file - win / *nix / mac line breaks
240
-
241
- ; --------------------------------------------------------------------------------
242
- ; Core rules in ABNF:
243
- ; ALPHA ::= %x41-5A / %x61-7A ; A-Z / a-z
244
- ; CR ::= %x0D ; carriage return
245
- ; CRLF ::= %x0D.0A ; CR+LF
246
- ; DIGIT ::= %x30-39 ; 0-9
247
- ; DQUOTE ::= %x22 ; "
248
- ; HTAB ::= %x09 ; tab
249
- ; LF ::= %x0A ; linefeed
250
- ; SP ::= %x20 ; space
251
- ; VCHAR ::= %x21-7e ; printing chars
252
- ; WSP ::= SP / HTAB ; whitespace
253
- ; %xDD means a hexadecimal code for a character
254
- ; %xCC-DD means any character in that range
255
- ; %xCC.DD means two characters
256
- ; / means or
257
- ; * means 0 or more occurences of
258
- ; 1* means 1 or more occurences of
259
- ; 2* means 2 or more occurences of
260
- ; [ ] means optional
261
- ; ( ) used for grouping
262
- ; " " is a literal string (note that it is case insensitive)
263
- ; ; starts a comment to end of line
264
- ; read more about ABNF at http://www.ietf.org/rfc/rfc2234.txt.