]> git.donarmstrong.com Git - lilypond.git/blobdiff - python/convertrules.py
Dist documentation text file too.
[lilypond.git] / python / convertrules.py
index 40a8300e730d252f19c75d14533443346581145e..88ae549d0bc8bcce3158c77573d291fb8f529ba9 100644 (file)
@@ -93,7 +93,7 @@ conversions.append ((
 def conv(str):
     if re.search ('\\\\header', str):
        error_file.write ('\n')
-       error_file.write (NOT_SMART % "new \\header format")
+       error_file.write (NOT_SMART % _ ("new \\header format"))
        error_file.write ('\n')
     return str
 
@@ -127,7 +127,7 @@ conversions.append (((1,0,5), conv, 'ChoireStaff -> ChoirStaff'))
 def conv(str):
     if re.search ('[a-zA-Z]+ = *\\translator',str):
        error_file.write ('\n')
-       error_file.write (NOT_SMART % "\\translator syntax")
+       error_file.write (NOT_SMART % _ ("\\translator syntax"))
        error_file.write ('\n')
     #  raise FatalConversionError ()
     return str
@@ -378,7 +378,7 @@ def conv (str):
                  "\\\\musicalpitch #'(\\1)", str)
     if re.search ('\\\\notenames',str):
        error_file.write ('\n')
-       error_file.write (NOT_SMART % "new \\notenames format")
+       error_file.write (NOT_SMART % _ ("new \\notenames format"))
        error_file.write ('\n')
     return str
 
@@ -398,7 +398,7 @@ conversions.append (((1,3,39), conv, '\\key A ;  ->\\key a;'))
 def conv (str):
     if re.search ('\\[:',str):
        error_file.write ('\n')
-       error_file.write (NOT_SMART % "new tremolo format")
+       error_file.write (NOT_SMART % _ ("new tremolo format"))
        error_file.write ('\n')
     return str
 
@@ -425,7 +425,7 @@ conversions.append (((1,3,49), conv,
 def conv (str):
     if re.search ('\\\\keysignature', str):
        error_file.write ('\n')
-       error_file.write (NOT_SMART % "new tremolo format")
+       error_file.write (NOT_SMART % _ ("new tremolo format"))
        error_file.write ('\n')
     return str
 
@@ -538,7 +538,7 @@ def conv (str):
     str = re.sub ('ChordNames*', 'ChordNames', str)
     if re.search ('\\\\textscript "[^"]* *"[^"]*"', str):
        error_file.write ('\n')
-       error_file.write (NOT_SMART % "new \\textscript markup text")
+       error_file.write (NOT_SMART % _ ("new \\textscript markup text"))
        error_file.write ('\n')
 
     str = re.sub ('\\textscript +("[^"]*")', '\\textscript #\\1', str)
@@ -604,24 +604,25 @@ def conv (str):
     return str
 
 conversions.append (((1,3,113), conv, 'LyricVoice -> LyricsVoice'))
+def regularize_id (str):
+    s = ''
+    lastx = ''
+    for x in str:
+        if x == '_':
+            lastx = x
+            continue
+        elif x in string.digits:
+            x = chr(ord (x) - ord ('0')  +ord ('A'))
+        elif x not in string.letters:
+            x = 'x'
+        elif x in string.lowercase and lastx == '_':
+            x = string.upper (x)
+        s = s + x
+        lastx = x
+    return s
 
 def conv (str):
-    def regularize_id (str):
-       s = ''
-       lastx = ''
-       for x in str:
-           if x == '_':
-               lastx = x
-               continue
-           elif x in string.digits:
-               x = chr(ord (x) - ord ('0')  +ord ('A'))
-           elif x not in string.letters:
-               x = 'x'
-           elif x in string.lowercase and lastx == '_':
-               x = string.upper (x)
-           s = s + x
-           lastx = x
-       return s
+
 
     def regularize_dollar_reference (match):
        return regularize_id (match.group (1))
@@ -1157,7 +1158,7 @@ conversions.append (((1,7,23), conv,"barNonAuto -> automaticBars"))
 def conv(str):
     if re.search( r'-(start|stop)Cluster', str):
        error_file.write ('\n')
-       error_file.write (NOT_SMART % "Cluster syntax")
+       error_file.write (NOT_SMART % _ ("cluster syntax"))
        error_file.write ('\n')
        error_file.write (UPDATE_MANUALLY)
        error_file.write ('\n')
@@ -2314,6 +2315,15 @@ conversions.append (((2, 3, 24),
                     conv,
                     '''regularize other identifiers.'''))
 
+def conv (str):
+    str = re.sub ('petrucci_c1', 'petrucci-c1', str)
+    str = re.sub ('1style', 'single-digit', str)
+    return str
+
+conversions.append (((2, 3, 25),
+                    conv,
+                    '''petrucci_c1 -> petrucci-c1, 1style -> single-digit'''))
+
 
 def conv (str):
     return str
@@ -2469,7 +2479,7 @@ def conv (str):
     if re.search ("(override-|revert-)auto-beam-setting", str)\
        or re.search ("autoBeamSettings", str):
        error_file.write ('\n')
-       error_file.write (NOT_SMART % "auto beam settings")
+       error_file.write (NOT_SMART % _ ("auto beam settings"))
        error_file.write ('\n')
        error_file.write ('''
 Auto beam settings must now specify each interesting moment in a measure
@@ -2632,7 +2642,10 @@ def conv (str):
     str = re.sub (r"minimumVerticalExtent",
                  r"\\override VerticalAxisGroup #'minimum-Y-extent",
                  str)
-
+    str = re.sub (r"\\set ([a-zA-Z]*\.?)extraVerticalExtent",
+                 r"\\override \1VerticalAxisGroup #'extra-Y-extent", str)
+    str = re.sub (r"\\set ([a-zA-Z]*\.?)verticalExtent",
+                 r"\\override \1VerticalAxisGroup #'Y-extent", str)
     return str
 
 conversions.append (((2, 7, 14), conv,
@@ -2869,3 +2882,155 @@ def conv (str):
 
 conversions.append (((2, 9, 19), conv, """printfirst-page-number -> print-first-page-number"""))
 
+
+def conv (str):
+    return str
+
+conversions.append (((2, 10, 0), conv, """bump version for release"""))
+
+
+def conv (str):
+    return re.sub ('ly:clone-parser',
+                   'ly:parser-clone', str)
+
+conversions.append (((2, 11, 2), conv, """ly:clone-parser -> ly:parser-clone"""))
+
+
+
+def conv (str):
+    str = re.sub ("Accidental\s*#'cautionary-style\s*=\s*#'smaller",
+                   "AccidentalCautionary #'font-size = #-2", str)
+    str = re.sub ("Accidental\s*#'cautionary-style\s*=\s*#'parentheses",
+                   "AccidentalCautionary #'parenthesized = ##t", str)
+    str = re.sub ("([A-Za-z]+)\s*#'cautionary-style\s*=\s*#'parentheses",
+                   r"\1 #'parenthesized = ##t", str)
+    str = re.sub ("([A-Za-z]+)\s*#'cautionary-style\s*=\s*#'smaller",
+                   r"\1 #'font-size = #-2", str)
+    
+    return str
+
+conversions.append (((2, 11, 5), conv, """deprecate cautionary-style. Use AccidentalCautionary properties"""))
+
+                    
+
+
+def conv (str):
+    
+    def sub_acc_name (m):
+        idx = int (m.group (1).replace ('M','-'))
+        
+        return ["accidentals.doublesharp",
+                "accidentals.sharp.slashslash.stemstemstem",
+                "accidentals.sharp",
+                "accidentals.sharp.slashslash.stem",
+                "accidentals.natural",
+                "accidentals.mirroredflat",
+                "accidentals.flat",
+                "accidentals.mirroredflat.flat",
+                "accidentals.flatflat"][4-idx]
+
+    str = re.sub (r"accidentals[.](M?[-0-9]+)",
+                  sub_acc_name, str) 
+    str = re.sub (r"(KeySignature|Accidental[A-Za-z]*)\s*#'style\s*=\s*#'([a-z]+)",
+                  r"\1 #'glyph-name-alist = #alteration-\2-glyph-name-alist", str)
+    ## FIXME: standard vs default, alteration-FOO vs FOO-alteration
+    str = str.replace ('alteration-default-glyph-name-alist',
+                       'standard-alteration-glyph-name-alist')
+    return str
+
+conversions.append (((2, 11, 6), conv, """Rename accidental glyphs, use glyph-name-alist."""))
+
+
+def conv (str):
+    str = re.sub (r'(\\set\s+)?([A-Z][a-zA-Z]+\s*\.\s*)allowBeamBreak',
+                  r"\override \2Beam #'breakable", str)
+    str = re.sub (r'(\\set\s+)?allowBeamBreak',
+                  r"\override Beam #'breakable", str)
+    str = re.sub (r'addquote' , 'addQuote', str)
+    if re.search ("Span_dynamic_performer", str):
+        error_file.write ("Span_dynamic_performer has been merged into Dynamic_performer")
+
+    return str
+
+conversions.append (((2, 11, 10), conv, """allowBeamBreak -> Beam #'breakable = ##t
+addquote -> addQuote
+
+"""))
+
+def conv (str):
+    str = re.sub (r'\(layout-set-staff-size \(\*\s*([0-9.]+)\s*(pt|mm|cm)\)\)',
+                  r'(layout-set-absolute-staff-size (* \1 \2))', str)
+    return str
+
+conversions.append (((2, 11, 11), conv, """layout-set-staff-size -> layout-set-absolute-staff-size"""))
+
+
+def conv (str):
+    str = re.sub (r"\\override\s*([a-zA-Z.]+)\s*#'arrow\s*=\s*##t",
+                  r"\\override \1 #'bound-details #'right #'arrow = ##t",
+                  str)
+
+    if re.search ('edge-text', str):
+       error_file.write (NOT_SMART % _ ("edge-text settings for TextSpanner."))
+       error_file.write (_ ("Use\n\n%s") %
+                          "\t\\override TextSpanner #'bound-details #'right #'text = <right-text>\n"
+                          "\t\\override TextSpanner #'bound-details #'left #'text = <left-text>\n")
+
+        
+    return str
+
+conversions.append (((2, 11, 13), conv, """#'arrow = ##t -> #'bound-details #'right #'arrow = ##t"""))
+
+def conv (str):
+    def sub_edge_height (m):
+        s = ''
+        for (var, h) in [('left', m.group (3)),
+                         ('right', m.group (4))]:
+
+            if h and float (h):
+                once = m.group(1)
+                if not once:
+                    once = ''
+                    
+                s += (r"%s \override %s #'bound-details #'%s #'text = \markup { \draw-line #'(0 . %s) }"
+                      % (once, m.group (2), var, h))
+
+                s += '\n'
+            
+        return s
+    
+                  
+    str = re.sub (r"(\\once)?\s*\\override\s*([a-zA-Z.]+)\s*#'edge-height\s*=\s*#'\(([0-9.-]+)\s+[.]\s+([0-9.-]+)\)",
+                  sub_edge_height, str)
+    return str
+
+conversions.append (((2, 11, 15), conv, """#'edge-height -> #'bound-details #'right/left #'text = ..."""))
+
+def conv (str):
+    str = re.sub (r"\\override\s*([a-zA-Z.]+)\s*#'break-align-symbol\s*=\s*#'([a-z-]+)",
+                  r"\\override \1 #'break-align-symbols = #'(\2)", str)
+    return str
+
+conversions.append (((2, 11, 23), conv, """#'break-align-symbol -> #'break-align-symbols"""))
+
+def conv (str):
+    str = re.sub (r"scripts\.caesura",
+                  r"scripts.caesura.curved", str)
+
+    if re.search ('dash-fraction', str):
+       error_file.write (NOT_SMART % _ ("all settings related to dashed lines.\n"))
+       error_file.write (_ ("Use \\override ... #'style = #'line for solid lines and\n"))
+       error_file.write (_ ("\t\\override ... #'style = #'dashed-line for dashed lines."))
+
+    return str
+
+conversions.append (((2, 11, 35), conv, """scripts.caesura -> scripts.caesura.curved. Use #'style not #'dash-fraction to select solid/dashed lines."""))
+
+def conv (str):
+    str = re.sub (r"setEasyHeads", r"easyHeadsOn", str)
+    str = re.sub (r"fatText", r"textLengthOn", str)
+    str = re.sub (r"emptyText", r"textLengthOff", str)
+    return str
+
+conversions.append (((2, 11, 38), conv, """\\setEasyHeads -> \\easyHeadsOn, \\fatText -> \\textLengthOn,
+\\emptyText -> \\textLengthOff"""))