All pastes #407172 Raw Edit

Miscellany

public python v1 · immutable
#407172 ·published 2007-03-22 22:50 UTC
rendered paste body
class SampleLex:	alpha = 'abcdefghijklmnopqrstuvwxyz'	digit = '0123456789'	wSpace = ' \n \t'	table = [			[1,3,0],			[1,1,2],			[2,2,2],			[3,3,3],			]	relations = {		"alpha":0, 		"digit":1,		"wSpace":2	}	def __init__(self, file_name):		self.f = open(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 ''.join(self.chars)					self.state = 0					self.chars = []				print self.state				 				self.state = self.table[self.state][self.lex(c)]					def lex(self, c):		self.chars.append(c)		if c in self.alpha:			return self.relations["alpha"]		elif c in self.digit:			return self.relations["digit"]		elif c in self.wSpace:			return self.relations["wSpace"]		else:			return 0file_name = raw_input("Please enter file name: ")lexer = SampleLex(file_name)lexer.scan()