From 7a2f0b5a0a03fb3595b19753714d6be2eae427da Mon Sep 17 00:00:00 2001 From: Miika Alonen Date: Sat, 25 Feb 2023 02:20:48 +0200 Subject: [PATCH] Added repeat item to subdivisions --- .gitignore | 1 + ziffers/mapper.py | 2 +- ziffers/spec/ziffers.lark | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 7e7e060..a33310c 100644 --- a/.gitignore +++ b/.gitignore @@ -166,6 +166,7 @@ cython_debug/ .vscode # Debugging files +debug/ debug*.py test.py diff --git a/ziffers/mapper.py b/ziffers/mapper.py index 1541103..6099850 100644 --- a/ziffers/mapper.py +++ b/ziffers/mapper.py @@ -230,7 +230,7 @@ class ZiffersTransformer(Transformer): """Parse subdivision""" values = flatten(items[0]) return Subdivision( - values=values, text="[" + "".join([val.text for val in values]) + "]" + values=values, wrap_start="[", wrap_end="]" ) def subitems(self, items): diff --git a/ziffers/spec/ziffers.lark b/ziffers/spec/ziffers.lark index d629bac..3c83df9 100644 --- a/ziffers/spec/ziffers.lark +++ b/ziffers/spec/ziffers.lark @@ -12,7 +12,7 @@ modifier: /[#b]/ // Variable assignment - assignment: variable ass_op (list | pitch_class | random_integer | random_pitch | cycle | list_op) + assignment: variable ass_op (list | pitch_class | random_integer | random_pitch | cycle | list_op | repeat_item) ass_op: /[=~]/ variable: /[A-Z]/ @@ -64,7 +64,7 @@ // Subdivision subdivision: "[" subitems "]" - subitems: (pitch_class | random_integer | random_pitch | rest | oct_mod | oct_change | WS | chord | named_roman | cycle | subdivision | list | list_op | range)* + subitems: (pitch_class | random_integer | random_pitch | rest | oct_mod | oct_change | WS | chord | named_roman | cycle | subdivision | list | list_op | range | repeat_item)* // Control characters modifying future events oct_mod: octave WS