From f4f819291a802bd979b8c30a08f87bfdcabc368b Mon Sep 17 00:00:00 2001 From: Miika Alonen Date: Fri, 24 Feb 2023 16:32:41 +0200 Subject: [PATCH] Added support for cycles in new repeat syntax --- ziffers/classes.py | 4 +++- ziffers/mapper.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ziffers/classes.py b/ziffers/classes.py index 6f8da6f..b034c43 100644 --- a/ziffers/classes.py +++ b/ziffers/classes.py @@ -345,6 +345,8 @@ class Sequence(Meta): yield from _normal_repeat(item.evaluated_values, repeats, options) elif isinstance(item, RepeatedListSequence): repeats = item.repeats.get_value(options) + if isinstance(repeats, Pitch): + repeats = repeats.get_value(options) yield from _generative_repeat(item, repeats, options) elif isinstance(item, Subdivision): item.evaluate_values(options) @@ -737,7 +739,7 @@ class Cyclic(Item): text = text + self.wrap_end return text - def get_value(self): + def get_value(self, options=None): """Get the value for the current cycle""" value = self.values[self.cycle % len(self.values)] self.cycle += 1 diff --git a/ziffers/mapper.py b/ziffers/mapper.py index ae84251..1541103 100644 --- a/ziffers/mapper.py +++ b/ziffers/mapper.py @@ -382,4 +382,4 @@ class ZiffersTransformer(Transformer): return RepeatedSequence(values=items[0], repeats=Integer(value=2, text="2")) def repeat_item(self, items): - return RepeatedListSequence(values=[items[0]],repeats=items[1]) \ No newline at end of file + return RepeatedListSequence(values=[items[0]],repeats=items[1], wrap_start="", wrap_end=":"+items[1].text) \ No newline at end of file