ag_gen/tools/hash_replace.py-old
2021-09-23 13:55:29 -05:00

52 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python2
from sys import argv, exit
if len(argv) != 3:
print("Usage: %s [input file] [output file]" % argv[0])
exit(1)
with open(argv[1], 'r') as inf:
lines = inf.readlines()
def find_first_arrow():
global lines
for i in xrange(len(lines)):
if '->' in lines[i]:
return i
return -1;
def get_hash_map(fai):
global lines
hash_map = {}
current_id = 0
for i in xrange(1, fai):
h = lines[i][:-3]
if h not in hash_map:
hash_map[h] = current_id
current_id += 1
lines[i] = lines[i].replace(h, str(hash_map[h]))
return hash_map
def perform_replacements(fai, hash_map):
global lines
for i in xrange(fai, len(lines) - 1):
hashes = lines[i][:-4].split(' -> ')
lines[i] = lines[i].replace(hashes[0], str(hash_map[hashes[0]]))
lines[i] = lines[i].replace(hashes[1], str(hash_map[hashes[1]]))
first_arrow_index = find_first_arrow();
if (first_arrow_index == -1):
print("Error: file is improper graph")
exit(2);
hash_map = get_hash_map(first_arrow_index)
perform_replacements(first_arrow_index, hash_map)
with open(argv[2], 'w') as outf:
for line in lines:
outf.write(line)