blob: bcd6f2ceeaa5fe496da454008afebb1a4648a89e [file] [log] [blame]
Holger Hans Peter Freytheradb8bce2009-08-19 06:31:59 +02001#!/usr/bin/env python
2
3#
4# Convert ETSI documents to an enum
5#
6
7import re, sys
8
9def convert(string):
10 string = string.strip().replace(" ", "").rjust(8, "0")
11 var = 0
12 offset = 7
13 for char in string:
14 assert offset >= 0
15 var = var | (int(char) << offset)
16 offset = offset - 1
17
18 return var
19
20def string(name):
21 name = name.replace(" ", "_")
22 name = name.replace('"', "")
23 name = name.replace('/', '_')
24 name = name.replace('(', '_')
25 name = name.replace(')', '_')
26 return "%s_%s" % (sys.argv[2], name.upper())
27
28file = open(sys.argv[1])
29
30
31for line in file:
32 m = re.match(r"[ \t]*(?P<value>[01 ]+)[ ]+(?P<name>[a-zA-Z /0-9()]+)", line[:-1])
33
34 if m:
35 print "\t%s\t\t= %d," % (string(m.groupdict()["name"]), convert(m.groupdict()["value"]))
36 else:
37 print line[:-1]