]> git.donarmstrong.com Git - lilypond.git/blobdiff - scripts/auxiliar/yyout2grammar.py
Imported Upstream version 2.14.2
[lilypond.git] / scripts / auxiliar / yyout2grammar.py
diff --git a/scripts/auxiliar/yyout2grammar.py b/scripts/auxiliar/yyout2grammar.py
deleted file mode 100755 (executable)
index 25b6f25..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-#! /usr/bin/env python
-
-#  Convert from bison output file parser.output to
-#  Grammar and index.
-#  Drops all of the state information.
-#  Converts \\ to \
-#  Eliminates the @ variables created when {} is placed in the middle of a rule##  all of the c-code stuff
-#
-#
-#  Copyright 2005 by Carl D. Sorensen
-#
-
-# to create input file, run
-#   bison -v parser.yy
-# this will create a file parser.output
-# then run
-#   yyout2grammar.py parser.output your_output_file
-#
-
-import sys
-import re
-
-atre = re.compile('(@\d+):')
-
-write_me = True
-
-if len(sys.argv)!=3:
-    print "Usage: yyout2grammar.py parser_output_file grammar_file."
-else:
-    in_name = sys.argv[1] 
-    out_name = sys.argv[2]
-
-    print "input file name",in_name
-    print "output file name",out_name
-    in_file = open(in_name,'r')
-    out_file= open(out_name, 'w')
-
-    at_items=[]
-    inline = in_file.readline()
-    while inline != '' and not(inline.startswith("Grammar")):
-        inline = in_file.readline()
-    if inline != '':
-        out_file.write(inline)
-        inline = in_file.readline()
-        while inline != '' and not(inline.startswith("Terminals")):
-            i = inline.find("$accept:")
-            if i>-1:
-                write_me = False
-                inline = in_file.readline()
-            atfound = re.findall(atre,inline)
-            if len(atfound) > 0:
-                at_items.extend(atfound)
-                print at_items
-                write_me = False
-                inline=in_file.readline()
-            else:
-                for at_item in at_items:
-                    i=inline.find(at_item)
-                    if i >= 0:
-                        inline=inline[:i] + inline[i+len(at_item):]
-                    i=inline.find('"\\\\')
-                    while i > -1 :
-                        inline = inline[:i+1]+inline[i+2:]
-                        i = inline.find('"\\\\')
-            if write_me:
-                out_file.write(inline)
-            inline = in_file.readline()
-            write_me = True
-    index_items = []
-    #  Write the Terminals header line and the following blank line
-    out_file.write(inline)
-    inline = in_file.readline()
-    out_file.write(inline)
-    inline = in_file.readline()
-    while inline != '' and not(inline.startswith("Nonterminals")):
-        i=inline.find('"\\\\')
-        while i > -1 :
-            inline = inline[:i+1]+inline[i+2:]
-            i = inline.find('"\\\\')
-        index_items.append(inline)
-        inline = in_file.readline()
-    index_items.sort(lambda x,y:cmp(x.lower(),y.lower()))
-    for index_item in index_items:
-        out_file.write(index_item)
-    out_file.write('\n')
-    # Write the Nonterminals header and the blank line
-    out_file.write(inline)
-    inline = in_file.readline()
-    out_file.write(inline)
-    index_items = []
-    index_item=in_file.readline()
-    inline=in_file.readline()
-    while inline != '' and not(inline.startswith("state")):
-        while inline.startswith("    "):
-            index_item = index_item + inline
-            inline = in_file.readline()
-        if not(index_item.startswith("@")) and \
-               not(index_item.startswith("$accept")):
-            index_items.append(index_item)
-        index_item = inline
-        inline=in_file.readline()
-    index_items.sort(lambda x,y:cmp(x.lower(),y.lower()))
-    for index_item in index_items:
-        out_file.write(index_item)