Skip to content
Snippets Groups Projects
Commit b7e7e306 authored by Simon Will's avatar Simon Will
Browse files

Add function for making elisions; #21

parent 74a7cf22
No related branches found
No related tags found
No related merge requests found
......@@ -266,6 +266,22 @@ def positional_lengthening(verse):
syllable.phenomena['positional lengthening'] = Phenomenon(chars=match.group(1))
def make_elisions(verse):
for reading in verse.readings:
for i, token in enumerate(reading.tokens):
if i < len(reading.tokens) - 1:
this_syllable = token.syllables[-1]
next_syllable = reading.tokens[i+1].syllables[0]
m = re.search(r'[aeiouy][mh]*$', this_syllable.text)
if m:
if re.search(r'h?[aeiouy]', next_syllable.text):
# Elision!
this_syllable.phenomena['elision'] = Phenomenon(omitted=m.group())
this_syllable.syllable_length = 0
return verse
def parse_verse(verse):
"""Annotates syllable lengths based on positional_lengthening and muta cum liquida
......@@ -348,4 +364,5 @@ class Scanner:
for reading in verse.readings:
get_syllables(reading)
parse_verse(verse)
make_elisions(verse)
return verses
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment