def AddTransition(self, estado_siguiente, simbolo_min, simbolo_max=''): #Si solo se ingresa un simbolo if (len(simbolo_max) == 0): (self.Transiciones).add(Transicion(estado_siguiente, simbolo_min)) #Si se ingresa un rango else: (self.Transiciones).add( Transicion(estado_siguiente, simbolo_min, simbolo_max))
def agregar_transicion(self, estado_destino, simbolo): if self.transion_esta_vacia: global transicion transicion = Transicion.Transicion(estado_destino, simbolo) self.lista_transiciones.append(transicion) else: if self.verificar_transicion_repetida(simbolo): transicion = Transicion.Transicion(estado_destino, simbolo) self.lista_transiciones.append(transicion)
def eliminar_transicion(self, inicio, fin, simbolo): tr = Transicion.Transicion(inicio, fin, simbolo) indice = 0 for transicion in self.Transiciones: if transicion.igual(tr): self.Transiciones.pop(indice) return indice += 1
def cargar_transiciones(self): for linea in self.definicion.splitlines(): inicio = 0 fin = 0 simbolo = "" if re.match(r"(\d+)->(\d+),([a-zE])", linea): res = re.match(r"(\d+)->(\d+),([a-zE])", linea) inicio = int(res.group(1)) fin = int(res.group(2)) simbolo = res.group(3) tr = Transicion.Transicion(inicio, fin, simbolo) self.Transiciones.append(tr)
def cargar_transiciones(self): for linea in self.definicion.splitlines(): inicio = 0 fin = 0 simbolo = "" if re.match(r"([A-Z]?)->([A-Z]?),([a-z])", linea): res = re.match(r"([A-Z]?)->([A-Z]?),([a-z])", linea) inicio = res.group(1) fin = res.group(2) simbolo = res.group(3) tr = Transicion.Transicion(inicio, fin, simbolo) self.transiciones.append(tr)
def agregar_transicion(self, inicio, fin, simbolo): tr = Transicion.Transicion(inicio, fin, simbolo) self.Transiciones.append(tr)