Added support for cycles in new repeat syntax

This commit is contained in:
2023-02-24 16:32:41 +02:00
parent 595fc346ae
commit f4f819291a
2 changed files with 4 additions and 2 deletions

View File

@ -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

View File

@ -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])
return RepeatedListSequence(values=[items[0]],repeats=items[1], wrap_start="", wrap_end=":"+items[1].text)