-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrule.py
More file actions
34 lines (31 loc) · 972 Bytes
/
rule.py
File metadata and controls
34 lines (31 loc) · 972 Bytes
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
""" RULES """
class Rule:
"""
Class for rules to be used for states, signals and actions
"""
def __init__(self, state1, state2, signal, action):
self.state1 = state1
self.state2 = state2
self.signal = signal
self.action = action
def match(self, fsm_state, signal):
"""
if signal_is_digit(signal):
return self.state1 == fsm_state and self.signal == int(signal)
return self.state1 == fsm_state and self.signal == signal
"""
return self.state1 == fsm_state and self.__check_signal(signal)
def __check_signal(self, signal):
"""
checks signal type
"""
if self.signal == "all_signals":
return True
elif self.signal == "all_digits":
return signal_is_digit(signal)
return self.signal == signal
def signal_is_digit(signal):
"""
if signal is digit
"""
return 48 <= ord(signal) <= 57