diff options
Diffstat (limited to 'compilador/automatas/automata_caracteres.py')
-rw-r--r-- | compilador/automatas/automata_caracteres.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/compilador/automatas/automata_caracteres.py b/compilador/automatas/automata_caracteres.py new file mode 100644 index 0000000..139f86b --- /dev/null +++ b/compilador/automatas/automata_caracteres.py @@ -0,0 +1,51 @@ +class automata_car: + stateN = 0 + + + def isAccepted(self, _str): + i = len(_str) + _len = len(_str) + + for i in range(len): + if self.stateN == 0: + self.start(_str[i]) + if self.stateN == 1: + self.state1(_str[i]) + if self.stateN == 2: + self.state2(_str[i]) + if self.stateN == 3: + self.state3(_str[i]) + else: + return 0 + if self.stateN == 3: + return 1 + else: + return 0 + + def start(self,c): + if (c == '\''): + self.stateN = 1 + else: + self.stateN = -1 + + def state1(self,c): + if (c != '\''): + self.stateN = 2 + else: + self.stateN = 3 + + def state2(self,c): + if (c == '\''): + self.stateN = 3 + else: + self.stateN = -1 + + def state3(self,c): + self.stateN = -1 + + def verified(self,token){ + if isAccepted(token): + return true + else: + return false + } |