X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=python%2Fconvertrules.py;h=3e43a281330f089304ed199745d0abf7a8b5598b;hb=87aa27529fbd185872f66125c5948b19ddeee260;hp=f86b90ba4eb8fded7bcd00c5c9972d232cda100b;hpb=87e00c1058062d3878ab14abce8cb1dd1ee6a9b4;p=lilypond.git diff --git a/python/convertrules.py b/python/convertrules.py index f86b90ba4e..3e43a28133 100644 --- a/python/convertrules.py +++ b/python/convertrules.py @@ -3468,9 +3468,9 @@ def conv (str): r"\1\2.\3", str) str = re.sub (r'''(\\(?:alterBroken|overrideProperty)\s+)#?"([A-Za-z]+)\s*\.\s*([A-Za-z]+)"''', r"\1\2.\3", str) - str = re.sub (r'''(\\tweak\s+)#?"?([A-Za-z]+)"?\s+?#'([-A-Za-z]+)''', + str = re.sub (r'''(\\tweak\s+)#?"?([A-W][A-Za-z]*)"?\s+?#'([a-zX-Z][-A-Za-z]*)''', r"\1\2.\3", str) - str = re.sub (r'''(\\tweak\s+)#'([-A-Za-z]+)''', + str = re.sub (r'''(\\tweak\s+)#'([a-zX-Z][-A-Za-z]*)''', r"\1\2", str) str = re.sub ("(" + matchmarkup + ")|" + r"(\\footnote(?:\s*" @@ -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""") @@ -3855,6 +3864,30 @@ def conv(str): r"\\once \1\2", str) return str +@rule ((2, 19, 32), r"whiteout-box -> whiteout") +def conv(str): + str = re.sub (r"\\whiteout-box(?![a-z_-])", r"\\whiteout", str) + str = re.sub (r"\b\.whiteout-box(?![a-z_-])\b", r".whiteout", str) + str = re.sub (r"#'whiteout-box(?![a-z_-])\b", r"#'whiteout", str) + return str + +@rule ((2, 19, 40), r"\time #'(2 3) ... -> \time 2,3 ...") +def conv (str): + def repl (m): + return m.group(1) + re.sub (r"\s+", ",", m.group (2)) + + str = re.sub (r"(beatStructure\s*=\s*)#'\(([0-9]+(?:\s+[0-9]+)+)\)", + repl, str) + + str = re.sub (r"(\\time\s*)#'\(([0-9]+(?:\s+[0-9]+)+)\)", repl, str) + def repl (m): + subst = re.sub (r"\s+", ",", m.group (1)) + return subst + (4 + len (m.group (1)) - len (subst)) * " " + m.group (2) + + str = re.sub (r"#'\(([0-9]+(?:\s+[0-9]+)+)\)(\s+%\s*beatStructure)", + repl, str) + return str + # Guidelines to write rules (please keep this at the end of this file) # # - keep at most one rule per version; if several conversions should be done,