diff options
| author | 2020-08-03 15:06:44 +0000 | |
|---|---|---|
| committer | 2020-08-03 15:06:44 +0000 | |
| commit | b64793999546ed8adebaeebd9d8345d18db8927d (patch) | |
| tree | 4357c27b561d73b0e089727c6ed659f2ceff5f47 /gnu/llvm/utils/DSAextract.py | |
| parent | Add support for UTF-8 DISPLAY-HINTs with octet length. For now only (diff) | |
| download | wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.tar.xz wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.zip | |
Remove LLVM 8.0.1 files.
Diffstat (limited to 'gnu/llvm/utils/DSAextract.py')
| -rw-r--r-- | gnu/llvm/utils/DSAextract.py | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/gnu/llvm/utils/DSAextract.py b/gnu/llvm/utils/DSAextract.py deleted file mode 100644 index 258aac47e82..00000000000 --- a/gnu/llvm/utils/DSAextract.py +++ /dev/null @@ -1,113 +0,0 @@ -#! /usr/bin/python - -#this is a script to extract given named nodes from a dot file, with -#the associated edges. An edge is kept iff for edge x -> y -# x and y are both nodes specified to be kept. - -#known issues: if a line contains '->' and is not an edge line -#problems will occur. If node labels do not begin with -#Node this also will not work. Since this is designed to work -#on DSA dot output and not general dot files this is ok. -#If you want to use this on other files rename the node labels -#to Node[.*] with a script or something. This also relies on -#the length of a node name being 13 characters (as it is in all -#DSA dot output files) - -#Note that the name of the node can be any substring of the actual -#name in the dot file. Thus if you say specify COLLAPSED -#as a parameter this script will pull out all COLLAPSED -#nodes in the file - -#Specifying escape characters in the name like \n also will not work, -#as Python -#will make it \\n, I'm not really sure how to fix this - -#currently the script prints the names it is searching for -#to STDOUT, so you can check to see if they are what you intend - -from __future__ import print_function - -import re -import string -import sys - - -if len(sys.argv) < 3: - print('usage is ./DSAextract <dot_file_to_modify> \ - <output_file> [list of nodes to extract]') - -#open the input file -input = open(sys.argv[1], 'r') - -#construct a set of node names -node_name_set = set() -for name in sys.argv[3:]: - node_name_set |= set([name]) - -#construct a list of compiled regular expressions from the -#node_name_set -regexp_list = [] -for name in node_name_set: - regexp_list.append(re.compile(name)) - -#used to see what kind of line we are on -nodeexp = re.compile('Node') -#used to check to see if the current line is an edge line -arrowexp = re.compile('->') - -node_set = set() - -#read the file one line at a time -buffer = input.readline() -while buffer != '': - #filter out the unnecessary checks on all the edge lines - if not arrowexp.search(buffer): - #check to see if this is a node we are looking for - for regexp in regexp_list: - #if this name is for the current node, add the dot variable name - #for the node (it will be Node(hex number)) to our set of nodes - if regexp.search(buffer): - node_set |= set([re.split('\s+',buffer,2)[1]]) - break - buffer = input.readline() - - -#test code -#print '\n' - -print(node_name_set) - -#print node_set - - -#open the output file -output = open(sys.argv[2], 'w') -#start the second pass over the file -input = open(sys.argv[1], 'r') - -buffer = input.readline() -while buffer != '': - #there are three types of lines we are looking for - #1) node lines, 2) edge lines 3) support lines (like page size, etc) - - #is this an edge line? - #note that this is no completely robust, if a none edge line - #for some reason contains -> it will be missidentified - #hand edit the file if this happens - if arrowexp.search(buffer): - #check to make sure that both nodes are in the node list - #if they are print this to output - nodes = arrowexp.split(buffer) - nodes[0] = string.strip(nodes[0]) - nodes[1] = string.strip(nodes[1]) - if nodes[0][:13] in node_set and \ - nodes[1][:13] in node_set: - output.write(buffer) - elif nodeexp.search(buffer): #this is a node line - node = re.split('\s+', buffer,2)[1] - if node in node_set: - output.write(buffer) - else: #this is a support line - output.write(buffer) - buffer = input.readline() - |
