From: David Kastrup Date: Wed, 25 Nov 2015 12:19:26 +0000 (+0100) Subject: Issue 4671: convert-ly rule for ly:music-function-extract X-Git-Tag: release/2.19.34-1~5^2~16 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=e4eaa3e10a64c6676ae8abb525ac140df43a6798;p=lilypond.git 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. --- 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""")