]> git.donarmstrong.com Git - lilypond.git/blobdiff - buildscripts/lilypond-words.py
Misc updates.
[lilypond.git] / buildscripts / lilypond-words.py
index 2f6945e9876a0091932e97285efc8c183ecf3e50..46b616bf66701895216a9472762db546c4aed241 100755 (executable)
@@ -1,5 +1,10 @@
 #!@PYTHON@
 
+
+###
+# FIXME: coding standards!
+###
+
 # Created 01 September 2003 by Heikki Junes.
 # Generates lilypond-words.el for (X)Emacs and lilypond-words[.vim] for Vim.
 
@@ -13,204 +18,181 @@ notes = []
 
 # keywords not otherwise found
 for line in ['include','maininput','version']:
-    kw = kw + [line]
+  kw = kw + [line]
 
 # the main keywords
 F = open('lily/lily-lexer.cc', 'r')
 for line in F.readlines():
-    m = re.search(r"(\s*{\")(.*)(\",\s*.*},\s*\n)",line)
-    if m:
-       kw = kw + [m.group(2)]
-F.close()
+  m = re.search(r"(\s*{\")(.*)(\",\s*.*},\s*\n)",line)
+  if m:
+    kw = kw + [m.group(2)]
 
 # keywords in markup
-F = open('scm/new-markup.scm', 'r')
+F = open('scm/markup.scm', 'r')
 for line in F.readlines():
-    m = re.search(r"^(\s*\(cons\s*)([a-z-]*)(-markup)",line)
-    if m:
-       kw = kw + [m.group(2)]
-F.close()
+  m = re.search(r"^(\s*\(cons\s*)([a-z-]*)(-markup)",line)
+  if m:
+    kw = kw + [m.group(2)]
 
 # identifiers and keywords
-for name in [
-'ly/a4-init.ly',
-'ly/chord-modifiers-init.ly',
-'ly/dynamic-scripts-init.ly',
-'ly/engraver-init.ly',
-'ly/grace-init.ly',
-'ly/gregorian-init.ly',
-'ly/music-functions-init.ly',
-'ly/performer-init.ly',
-'ly/property-init.ly',
-'ly/scale-definitions-init.ly',
-'ly/script-init.ly',
-'ly/spanners-init.ly',
-]:
-    F = open(name, 'r')
-    for line in F.readlines():
-        m = re.search(r"^([a-zA-Z]+)(\s*=)",line)
-        if m:
-           kw = kw + [m.group(1)]
-    F.close()
+for name in ['ly/chord-modifiers-init.ly',
+             'ly/dynamic-scripts-init.ly',
+             'ly/engraver-init.ly',
+             'ly/grace-init.ly',
+             'ly/gregorian-init.ly',
+             'ly/music-functions-init.ly',
+             'ly/performer-init.ly',
+             'ly/property-init.ly',
+             'ly/scale-definitions-init.ly',
+             'ly/script-init.ly',
+             'ly/spanners-init.ly']:
+  F = open(name, 'r')
+  for line in F.readlines():
+    m = re.search(r"^([a-zA-Z]+)(\s*=)",line)
+    if m:
+      kw = kw + [m.group(1)]
 
 # more identifiers
-for name in [
-'ly/declarations-init.ly',
-'ly/declarations-init.ly',
-'ly/params-init.ly',
-]:
-    F = open(name, 'r')
-    for line in F.readlines():
-        m = re.search(r"^(\s*)([a-zA-Z]+)(\s*=)",line)
-        if m:
-           kw = kw + [m.group(2)]
-    F.close()
+for name in ['ly/declarations-init.ly',
+             'ly/declarations-init.ly',
+             'ly/params-init.ly',
+             ]:
+  F = open(name, 'r')
+  for line in F.readlines():
+    m = re.search(r"^(\s*)([a-zA-Z]+)(\s*=)",line)
+    if m:
+      kw = kw + [m.group(2)]
+  F.close()
 
 # note names
-for name in [
-'ly/catalan.ly',
-'ly/deutsch.ly',
-'ly/drumpitch-init.ly',
-'ly/english.ly',
-'ly/espanol.ly',
-'ly/italiano.ly',
-'ly/nederlands.ly',
-'ly/norsk.ly',
-'ly/portugues.ly',
-'ly/suomi.ly',
-'ly/svenska.ly',
-'ly/vlaams.ly',
-]:
-    F = open(name, 'r')
-    for line in F.readlines():
-       m = re.search(r"^(\s*\()([a-z]+)([^l]+ly:make-pitch)",line)
-       if m:
-           notes = notes + ['' + m.group(2)]
-    F.close()
-
-
-    
+for name in ['ly/catalan.ly',
+             'ly/deutsch.ly',
+             'ly/drumpitch-init.ly',
+             'ly/english.ly',
+             'ly/espanol.ly',
+             'ly/italiano.ly',
+             'ly/nederlands.ly',
+             'ly/norsk.ly',
+             'ly/portugues.ly',
+             'ly/suomi.ly',
+             'ly/svenska.ly',
+             'ly/vlaams.ly',
+             ]:
+  F = open(name, 'r')
+  for line in F.readlines():
+    m = re.search(r"^(\s*\()([a-z]+)([^l]+ly:make-pitch)",line)
+    if m:
+      notes = notes + ['' + m.group(2)]
+
+
 # reserved words
-for name in [
-'ly/engraver-init.ly',
-'ly/performer-init.ly',
-]:
-    F = open(name, 'r')
-    for line in F.readlines():
-       for pattern in [
-       r"^(\s*.consists\s+\")([a-zA-Z_]+)(\")",
-       r"([\\]name\s+[\"]?)([a-zA-Z_]+)([\"]?)",
-       r"(\s+)([a-zA-Z_]+)(\s*[\\]((set)|(override)))",
-       ]:
-           m = re.search(pattern,line)
-           if m:
-               rw = rw + ['' + m.group(2)]
-    F.close()
+for name in ['ly/engraver-init.ly',
+             'ly/performer-init.ly']:
+  f = open(name, 'r')
+  for line in f.readlines():
+      for pattern in [r"^(\s*.consists\s+\")([a-zA-Z_]+)(\")",
+                      r"([\\]name\s+[\"]?)([a-zA-Z_]+)([\"]?)",
+                      r"(\s+)([a-zA-Z_]+)(\s*[\\]((set)|(override)))"]:
+          m = re.search(pattern,line)
+          if m:
+              rw = rw + ['' + m.group(2)]
 
 # the output file
 outdir = '.';
 suffix = ['skip','skip','skip'];
 outs  = ['','',''];
 for s in sys.argv[1:]:
-    if s == '--words':
-        suffix[0] = '';
-    if s == '--el':
-        suffix[1] = '.el';
-    if s == '--vim':
-        suffix[2] = '.vim';
-    m = re.search(r"(--dir=)(\S*)",s)
-    if m:
-        outdir = m.group(2)
+  if s == '--words':
+    suffix[0] = '';
+  if s == '--el':
+    suffix[1] = '.el';
+  if s == '--vim':
+    suffix[2] = '.vim';
+  m = re.search(r"(--dir=)(\S*)",s)
+  if m:
+    outdir = m.group(2)
 
 if '' in suffix:
-    outs[0] = open(outdir+'/lilypond-words'+suffix[0], 'w')
+  outs[0] = open(outdir+'/lilypond-words'+suffix[0], 'w')
 if '.el' in suffix:
-    outs[1] = open(outdir+'/lilypond-words'+suffix[1], 'w')
+  outs[1] = open(outdir+'/lilypond-words'+suffix[1], 'w')
 if '.vim' in suffix:
-    outs[2] = open(outdir+'/lilypond-words'+suffix[2], 'w')
+  outs[2] = open(outdir+'/lilypond-words'+suffix[2], 'w')
 
 # alphabetically ordered words
 kw.sort()
 kw.reverse()
 prevline = ''
 if '.vim' in suffix:
 outs[2].write('syn match lilyKeyword \"[-_^]\\?\\\\\\(');
+ outs[2].write('syn match lilyKeyword \"[-_^]\\?\\\\\\(');
 for line in kw:
-    if line != prevline:
-       if '' in suffix:
-           outs[0].write('\\\\' + line + '\n')
-        if '.el' in suffix:
-           outs[1].write('\\\\' + line + '\n')
-        if '.vim' in suffix:
-           outs[2].write(line + '\\|')
-    prevline = line
+  if line != prevline:
+    if '' in suffix:
+        outs[0].write('\\\\' + line + '\n')
+    if '.el' in suffix:
+        outs[1].write('\\\\' + line + '\n')
+    if '.vim' in suffix:
+        outs[2].write(line + '\\|')
+  prevline = line
 if '.vim' in suffix:
-    outs[2].write('n\\)\\(\\A\\|\\n\\)\"me=e-1\n')
+  outs[2].write('n\\)\\(\\A\\|\\n\\)\"me=e-1\n')
 
 rw.sort()
 rw.reverse()
 prevline = ''
 if '.vim' in suffix:
-    outs[2].write('syn match lilyReservedWord \"\\(\\A\\|\\n\\)\\(')
+  outs[2].write('syn match lilyReservedWord \"\\(\\A\\|\\n\\)\\(')
 for line in rw:
-    if line != prevline:
-        if '' in suffix:
-            outs[0].write(line + '\n')
-        if '.el' in suffix:
-            outs[1].write(line + '\n')
-        if '.vim' in suffix:
-           outs[2].write(line + '\\|')
-    prevline = line
+  if line != prevline:
+    if '' in suffix:
+      outs[0].write(line + '\n')
+    if '.el' in suffix:
+      outs[1].write(line + '\n')
+    if '.vim' in suffix:
+        outs[2].write(line + '\\|')
+  prevline = line
 if '.vim' in suffix:
-    outs[2].write('Score\\)\\(\\A\\|\\n\\)\"ms=s+1,me=e-1\n')
+  outs[2].write('Score\\)\\(\\A\\|\\n\\)\"ms=s+1,me=e-1\n')
 
 notes.sort()
 notes.reverse()
 prevline = ''
 if '.vim' in suffix:
-    outs[2].write('syn match lilyNote \"\\<\\(\\(\\(');
+  outs[2].write('syn match lilyNote \"\\<\\(\\(\\(');
 for line in notes:
-    if line != prevline:
-        if '' in suffix:
-            outs[0].write(line + '\n')
-        if '.el' in suffix:
-            outs[1].write(line + '\n')
-        if '.vim' in suffix:
-           outs[2].write(line + '\\|')
-    prevline = line
+  if line != prevline:
+    if '' in suffix:
+      outs[0].write(line + '\n')
+    if '.el' in suffix:
+      outs[1].write(line + '\n')
+    if '.vim' in suffix:
+        outs[2].write(line + '\\|')
+  prevline = line
 if '.vim' in suffix:
-    outs[2].write('a\\)\\([,\']\\)\\{,4}\\([?!]\\)\\?\\)\\|s\\|r\\)\\(\\(128\\|64\\|32\\|16\\|8\\|4\\|2\\|1\\|\\\\breve\\|\\\\longa\\|\\\\maxima\\)[.]\\{,8}\\)\\?\\(\\A\\|\\n\\)\"me=e-1\n')
+  outs[2].write('a\\)\\([,\']\\)\\{,4}\\([?!]\\)\\?\\)\\|s\\|r\\)\\(\\(128\\|64\\|32\\|16\\|8\\|4\\|2\\|1\\|\\\\breve\\|\\\\longa\\|\\\\maxima\\)[.]\\{,8}\\)\\?\\(\\A\\|\\n\\)\"me=e-1\n')
 
 # the menu in lilypond-mode.el
-for line in [
-'/( - _ /) -',
-'/[ - _ /] -',
-'< - _ > -',
-'<< - _ >> -',
-'///( - _ ///) -',
-'///[ - _ ///] -',
-'///< - _ ///! -',
-'///> - _ ///! -',
-'//center - / << _ >> -',
-'//column - / << _ >> -',
-'//context/ Staff/ = - % { _ } -',
-'//context/ Voice/ = - % { _ } -',
-'//markup - { _ } -',
-'//notes - { _ } -',
-'//relative - % { _ } -',
-'//score - { //n /? //simultaneous { //n _ //n } /! //n //paper {  } //n /? //midi {  } //n /! } //n -',
-'//simultaneous - { _ } -',
-'//sustainDown - _ //sustainUp -',
-'//times - % { _ } -',
-'//transpose - % { _ } -',
-]:
-    # urg. escape char '/' is replaced with '\\' which python writes as a '\'.
-    if '.el' in suffix:
-        outs[1].write(string.join(string.split(line,'/'),'\\') + '\n')
-if '' in suffix:
-    outs[0].close()
-if '.el' in suffix:
-    outs[1].close()
-if '.vim' in suffix:
-    outs[2].close()
+for line in ['/( - _ /) -',
+             '/[ - _ /] -',
+             '< - _ > -',
+             '<< - _ >> -',
+             '///( - _ ///) -',
+             '///[ - _ ///] -',
+             '///< - _ ///! -',
+             '///> - _ ///! -',
+             '//center - / << _ >> -',
+             '//column - / << _ >> -',
+             '//context/ Staff/ = - % { _ } -',
+             '//context/ Voice/ = - % { _ } -',
+             '//markup - { _ } -',
+             '//notes - { _ } -',
+             '//relative - % { _ } -',
+             '//score - { //n /? //simultaneous { //n _ //n } /! //n //paper {  } //n /? //midi {  } //n /! } //n -',
+             '//simultaneous - { _ } -',
+             '//sustainDown - _ //sustainUp -',
+             '//times - % { _ } -',
+             '//transpose - % { _ } -',
+             ]:
+  # urg. escape char '/' is replaced with '\\' which python writes as a '\'.
+  if '.el' in suffix:
+    outs[1].write(string.join(string.split(line,'/'),'\\') + '\n')