e6b69d05fc112716478fa3b4289a60c95336e31a
[tt2015.git] / a4 / tcp / results / van_learnlib_naar_dot.py
1 #!/usr/bin/env python2
2
3 import sys
4 import re
5
6 sys.stderr.write("""Usage: {} [INPUT [OUTPUT]
7 als input/output niet specificeerd pakt hij stdin/stdout
8 voorbeeld:
9 \t$ < file.dot ./van_learnlib_naar_dot.py | dot -Tpdf > file.pdf
10 """.format(sys.argv[0]))
11
12 if len(sys.argv) == 1:
13 inputfile = sys.stdin
14 outputfile = sys.stdout
15 elif len(sys.argv) == 2:
16 inputfile = open(sys.argv[1], 'r')
17 outputfile = sys.stdout
18 else:
19 inputfile = open(sys.argv[1], 'r')
20 outputfile = open(sys.argv[2], 'w')
21
22 data = []
23 pat = r's(?P<f>\d+) -> s(?P<t>\d+) \[label="(?P<i>\S+) / (?P<o>\S+)"\];'
24
25 for line in inputfile:
26 match = re.search(pat, line)
27 if match:
28 outputfile.write('\ts{0} -> s{0}_{1} [label="{2}?"]\n'.format(
29 match.group('f'), match.group('t'), match.group('i')))
30 outputfile.write('\ts{0}_{1} -> s{1} [label="{2}!"]\n'.format(
31 match.group('f'), match.group('t'), match.group('o')))
32 else:
33 outputfile.write(line)
34
35 if inputfile != sys.stdin:
36 inputfile.close()
37 if outputfile != sys.stdout:
38 outputfile.close()