Download A Specification Language for Program Auralization

Transcript
4. An id is a sequence of letters or digits with the first character being a letter. The
underscore ( ) can be used in an identifier. Upper and lower case letters are treated as
being different in an id.
)∗ letter ( letter | digit |
id
→
(
letter
→
[a-zA-Z]
digit
→
[ 0-9 ]
)∗
5. A keyword may not be used as an id. Upper and lower case are treated differently.
6. A constant can be an integer or a string. An integer is a sequence of digits. A string is a
sequence of characters enclosed within double quotes. As a constant can be interpreted
in a variety of ways in LSL, we provide below a complete grammar for constants.
1.
constant
→
integer
| string
|time-sig
4.
integer
→
digit+
5.
string
→
“char-sequence”
6.
char-sequence
→
note-sequence
| key-sig
| file-name
| function-name
10. note-sequence
→
(note | .id)+
| (note-sequence: attribute-sequence)
| (note-sequence)
14. note
→
note-generic note-modifier
15. note-generic
31. note-modifier
→
→
c|d|e|f|g|a|b|r|C|D|E|F|G|A|B|R
flat-sharp∗ octave
32. flat-sharp
→
b|#
34. octave
→
[ 0-8 ]
35. attribute-sequence →
36. attribute
→
37. duration
→
attribute+
duration tagged-value-list∗
simple-duration
| ( duration-expression )
39. simple-duration
→
f|h|q|e|s
| ptime = integer
51