Ejemplo n.º 1
0
	def inicia(self):
		case = 0
		lex = Lex()

		# # 1 ER PALAVRAS RESERVADAS
		a1 = lex.lexer('reservado', case)
		dict = a1.getDictAutomato()
		case += len(dict)

		# # 2 ER IDENTIFICADORES
		a2 = lex.lexer('identificadores', case)

		# # 3 GRAMATICA DE SESPECIAL
		terminais = ['+', '-', '=', '/', '*', '>', '<', '!']
		nTerminais = ['S']
		producoes = {'S': ['+', '-', '=', '/', '*', '>', '<', '!']}
		inicial = 'S'
		g = Grammar(producoes,terminais, nTerminais, inicial)
		s, i, f = g.convertGtoAF()
		a3 = Automato(s, i, f)
		a3.determina()
		a3.printAtomato()
		print("\n")

		dict = a2.getDictAutomato()
		case += len(dict)
		a3 = lex.renameState(a3, case)

		# # 4 GRAMATICA SEPARADORES
		terminais2 = [':',';', ' ', '(', ')', '[', ']', ',', '\n']
		nTerminais2 = ['S']
		producoes2 = {'S': [':',';', ' ', '(', ')', '[', ']', ',', '\n']}
		inicial2 = 'S'
		g = Grammar(producoes2,terminais2, nTerminais2, inicial2)
		s2, i2, f2 = g.convertGtoAF()
		a4 = Automato(s2, i2, f2)
		a4.determina()
		a4.printAtomato()
		print("\n")

		dict = a3.getDictAutomato()
		case += len(dict)
		a4 = lex.renameState(a4, case)

		# ER CONSTANTES
		dict = a4.getDictAutomato()
		case += len(dict)
		a5 = lex.lexer('constantes', case)
		r = a5

		r = a1.oU([a2, a3, a4, a5])
		print ("\n")
		r.determina()
		r.printAtomato()

		with open('automato.pkl', 'wb') as output:
		    pickle.dump(r, output, pickle.HIGHEST_PROTOCOL)
Ejemplo n.º 2
0
	def _ini_(self):
		lex = Lex()
		self.a1 = lex.lexer('reservados')
		self.a2 = lex.lexer('identicadores')
Ejemplo n.º 3
0
# T.E.X.T.O
# A.R.R.A.N.J.O
# I.N.I.C.I.O.:
# E.N.Q.U.A.N.T.O
# C.O.N.C.L.U.I.D.O
# S.E.:
# S.E.N.A.O.:
# L.E.I.A
# M.O.S.T.R.A
# E
# O.U
# N.A.O
# F.I.N.A.L

lex = Lex()
reservadas = lex.lexer()
print(reservadas.aceita('MOLEIA '))
# reservadas.printAtomato()
# reservadas.organizaAutomato()
# reservadas.determina()
# reservadas.montaAutomato()
# reservadas.min()
# reservadas.printAtomato()
# print(reservadas.getFinais())
# print(reservadas.aceita('LEIA'))
# reservadas.printAtomato()

# er = Er('((((((a|b)|c)|d)|e)|g)*)')
# automato = er.erToAutomato()
# automato.determina()
# # automato.printAtomato()