summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorDavid Kastrup <dak@gnu.org>2015-11-25 13:19:26 +0100
committerDavid Kastrup <dak@gnu.org>2015-12-07 11:39:01 +0100
commite4eaa3e10a64c6676ae8abb525ac140df43a6798 (patch)
tree9fdaa393140f92a5e837101c6d576753937e081f /python
parent551dc15dd6e600a40c308afa2405b36631d96811 (diff)
Issue 4671: convert-ly rule for ly:music-function-extract
The extracted music function no longer takes parser/location arguments since version 2.19.22. This convert-ly rule caters with the simplest use of ly:music-function-extract, calling one music function from inside another.
Diffstat (limited to 'python')
-rw-r--r--python/convertrules.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/python/convertrules.py b/python/convertrules.py
index 444d04d461..3c9caad397 100644
--- a/python/convertrules.py
+++ b/python/convertrules.py
@@ -3824,7 +3824,16 @@ def conv(str):
r'(?=\s|[()]))(' + paren_matcher (20) + ")"
r"(?:\s+parser(?=\s|[()])|\s*\(\*parser\*\))", repl, str)
return str
- return inner (str)
+ str = inner (str)
+ # This is the simplest case, resulting from one music function
+ # trying to call another one via Scheme. The caller is supposed
+ # to have its uses of parser/location converted to
+ # (*parser*)/(*location*) already. Other uses of
+ # ly:music-function-extract are harder to convert but unlikely.
+ str = re.sub (r'(\(\s*\(ly:music-function-extract\s+' + wordsyntax +
+ r'\s*\)\s+)\(\*parser\*\)\s*\(\*location\*\)', r'\1',
+ str)
+ return str
@rule ((2, 19, 24), r"""music-has-type -> music-is-of-type?
\applyOutput #'Context -> \applyOutput Context""")