y = 0 while y in range(0,len(self.buffer[x])): print "x: %d \t y: %d" % (x, y) if self.state is 0: if self.buffer[x][y] in self.letter: temp.append(self.buffer[x][y]) y = y + 1 self.state = 1 elif self.buffer[x][y] in self.digit: temp.append(self.buffer[x][y]) y = y + 1 self.state = 3 elif self.buffer[x][y] in self.space: self.state = 0 else: self.state = 3 elif self.state is 1: if self.buffer[x][y] in self.letter or self.buffer[x][y] in self.digit: temp.append(self.buffer[x][y]) y = y + 1 self.state = 1 elif self.buffer[x][y] in self.space: self.state = 2 else: self.state = 3 elif self.state is 2: print ''.join(temp) self.state = 0 del temp[:] elif self.state is 3: print "lexical analyzer failed, invalid input" self.state = 0 del temp[:]