class SampleLex: alpha = 'abcdefghijklmnopqrstuvwxyz' digit = '0123456789' table = [ [1,3,0], [1,1,2], [2,2,2], [3,3,3], ] relations = { "alpha":0, "digit":1, } def __init__(self, file_name='ziew'): self.f = open(self.file_name, 'r') self.chars = '' self.state = 0 def scan(self): for line in self.f.readlines(): for c in line: if self.state == 3: print "Error" self.state = 0 self.chars = '' elif self.state == 2: print self.chars self.state = 0 self.chars = '' print self.state self.state = self.table[self.state][self.lex(c)] def lex(self, c): self.stack.append(currChar) if c in self.alpha: return 1 elif c in self.digit: return 2 else: return 0 file_name = raw_input("Please enter file name: ") lexer = SampleLex(file_name) lexer.scan()