--- /dev/null
+from tokenize import *
+from keyword import *
+from string import *
+
+class Tokenizer:
+ """
+ Simple class to create a list of token-tuples like:
+
+ (type, string, first, last)
+
+ Example:
+ t = Tokenizer('def hallo(du): # juchee')
+ print t.tokens()
+ """
+
+ def __init__(self, text):
+ self.text = text
+ self.toks = []
+ try:
+ tokenize(self.readline, self.get)
+ except TokenError:
+ pass
+
+ def tokens(self):
+ return self.toks
+
+ def get(self, type, string, begin, end, l):
+ #print begin,end
+ h1, b = begin
+ h2, e = end
+ tname = tok_name[type]
+ if iskeyword(string):
+ tname = "KEY"
+ self.toks.append(tname, string, b, e)
+
+ def readline(self):
+ t = self.text
+ self.text = ""
+ return t
+
+ def line(self):
+ pre = ""
+ out = ""
+ for type, string, begin, end in self.toks:
+ if (pre in ["NAME","KEY"]) and (not string in [".",",","("]):
+ out = out + " "
+
+ if type in ["NAME","KEY"]:
+ out = out + string
+ elif type=="OP":
+ if string in [",",":"]:
+ out = out + string + " "
+ else:
+ out = out + string
+ else:
+ out = out + string
+ pre = type
+ return out
+
+