X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=python%2Fconvertrules.py;h=3c9caad397a8e72d65b80279172b71fcc8b691ee;hb=0ab926218d76fa487f6935fd846796c902261e94;hp=77d83ff52a5420b944858b86e1ada582b0227d0e;hpb=906b0e079785805e6cdf564c447460d958f6f6f9;p=lilypond.git diff --git a/python/convertrules.py b/python/convertrules.py index 77d83ff52a..3c9caad397 100644 --- a/python/convertrules.py +++ b/python/convertrules.py @@ -2818,7 +2818,7 @@ def conv(str): if re.search(r'\\oldaddlyrics', str): stderr_write (NOT_SMART % "oldaddlyrics") stderr_write (_ ("oldaddlyrics is no longer supported. \n \ - Use addlyrics or lyrsicsto instead.\n")) + Use addlyrics or lyricsto instead.\n")) stderr_write (UPDATE_MANUALLY) raise FatalConversionError () return str @@ -3746,9 +3746,17 @@ def conv(str): + after_id, r'\1-\2', str) return str -@rule ((2, 19, 22), """(define-xxx-function (parser location ...) -> (define-xxx-function (...) +@rule ((2, 19, 22), """whiteout -> whiteout-box +(define-xxx-function (parser location ...) -> (define-xxx-function (...) (xxx ... parser ...) -> (xxx ... ...)""") def conv(str): + # whiteout -> whiteout-box + str = re.sub (r"\\whiteout(?![a-z_-])", r"\\whiteout-box", str) + str = re.sub (r"\b\.whiteout(?![a-z_-])\b", r".whiteout-box", str) + str = re.sub (r"#'whiteout(?![a-z_-])\b", r"#'whiteout-box", str) + str = re.sub (r"\bstencil-whiteout\b", r"stencil-whiteout-box", str) + + # (define-xxx-function (parser location ...) -> (define-xxx-function (...) def subst(m): def subsub(m): str = (m.group (1) @@ -3762,6 +3770,7 @@ def conv(str): str = re.sub (r'\(define-(?:music|event|scheme|void)-function(?=\s|["(])' + paren_matcher (20) + r'\)', subst, str) + # (xxx ... parser ...) -> (xxx ... ...) def repl (m): return m.group (1) + inner (m.group (2)) def inner (str): @@ -3815,7 +3824,52 @@ 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""") +def conv (str): + str = re.sub (r'(?<=\s|["\\()])' + "music-has-type" + r'(?=\s|["\\()])', + "music-is-of-type?", str) + str = re.sub (r"(\\applyOutput\s+)#'([a-zA-Z])", r"\1\2", str) + return str + +@rule ((2, 19, 28), r"c:5.x, c:5^x, c:sus -> c:3.5.x, c:3.5^x, c:5") +def conv (str): + str = re.sub (r":5([.^][1-9])", r":3.5\1", str) + # row back for self-defeating forms + str = re.sub (r":3\.5((?:\.[0-9]+)*\^(?:[0-9]+\.)*)3\.", r":5\1", str) + str = re.sub (r":3\.5((?:\.[0-9]+)*\^?:[0-9]+(?:\.[0-9]+)*)\.3(?![.0-9])", r":5\1", str) + str = re.sub (r":3\.5((?:\.[0-9]+)*)\^3(?=\s|\})", r":5\1", str) + str = re.sub (r":sus(?=\s|\})", ":5", str) + str = re.sub (r":1\.5(?=\s|[.^}])", r":5", str) + return str + +@rule ((2, 19, 29), r"partcombine*Once -> \once \partcombine*") +def conv(str): + str = re.sub (r"(\\partcombine(?:Apart|Chords|Unisono|SoloII?|Automatic))Once\b", + r"\\once \1", str) + str = re.sub (r"(\\partcombineForce" + matcharg + r")\s*##f(\s)", + r"\1\2", str) + str = re.sub (r"(\\partcombineForce" + matcharg + r")\s*##t(\s)", + 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 # Guidelines to write rules (please keep this at the end of this file) #