Files
ziffers-python/ziffers/ziffers.lark
2023-01-31 23:00:31 +02:00

23 lines
659 B
Plaintext

?value: root
root: (pc | dur_change | oct_change | WS | chord | cycle | randompitch | range | list | subdivision)*
list: "(" root ")"
randompitch: /[\(][-?0-9][,][-?0-9][\)]/
range: /[-?0-9]\.\.[-?0-9]/
cycle: "<" root ">"
pc: prefix* pitch
pitch: /[-?0-9TE]/
prefix: octave | duration
oct_change: octave WS
octave: /[_^]+/
chord: pc pc+
dur_change: duration WS
duration: dur+
dur: dchar dot*
dchar: /[mklpdcwyhnqaefsxtgujzo]/
dot: "."
subitems: (pc | WS | chord | cycle | subdivision)*
subdivision: "[" subitems "]"
%import common.SIGNED_NUMBER
%import common.WS