예제 #1
0
	def __init__(self, InputStr, TerminalList):
		self.__input = InputStr.strip()
		self.__tokens = ListandPointer()
		self.__terminallist = TerminalList.copy()
		self.__cut_tokens()
예제 #2
0
class InputTokens:
	def __init__(self, InputStr, TerminalList):
		self.__input = InputStr.strip()
		self.__tokens = ListandPointer()
		self.__terminallist = TerminalList.copy()
		self.__cut_tokens()

	def __cut_tokens(self):
		if not self.__have_space():
			for char in self.__input:
				self.__tokens.add_node(char)
		else:
			for token in self.__input.split(" "):
				self.__tokens.add_node(token)

	def tokens_check(self):
		error_flag = False
		for index in range(self.__tokens.length()):
			self.__tokens.set_pointer(index)
			if not self.__tokens.get_node() in self.__terminallist:
				print("Token %d: \"%s\" is not in TerminalList"% (index+1, self.__tokens.get_node()))
				error_flag = True
		return not error_flag

	def print_tokens(self):
		self.__tokens.print_list()

	def get_token_list(self):
		res = self.__tokens
		return res

	def __have_space(self):
		for char in self.__input:
			if char.isspace():
				return True
		return False