-
Notifications
You must be signed in to change notification settings - Fork 0
/
glc.py
45 lines (38 loc) · 1.47 KB
/
glc.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from readInput import mainInputReady
class GLC:
def __init__(self):
self.dados = mainInputReady()
self.variaveis = self.getVariaveis()
self.terminais = self.getTerminais()
self.variavelInicial = self.getVariavelInicial()
self.terminaisProducao = self.getTerminaisProducao()
self.variaveisProducao = self.getVariaveisProducao()
def unico(self, string):
return list(set(string))
def getVariaveisProducao(self):
variaveisProducao = []
for variavel in self.variaveis:
for producao in self.dados[variavel]:
if producao.isupper():
variaveisProducao.append(producao)
return variaveisProducao
def getTerminaisProducao(self):
variaveisProducao = []
for variavel in self.variaveis:
for producao in self.dados[variavel]:
if producao.islower():
variaveisProducao.append(producao)
return variaveisProducao
def getVariaveis(self):
variaveis = list(self.dados.keys())
return variaveis
def getVariavelInicial(self):
return self.variaveis[0]
def getTerminais(self):
stringTerminais = ''
for itens in self.dados.keys():
for item in self.dados[itens]:
for letra in item:
if letra.islower():
stringTerminais+=letra
return self.unico(stringTerminais)