import string class SentenceVariable(object): symbols = string.ascii_lowercase class SupportSign(object): symbols_open = ['[', '{', '('] symbols_close = [']', '}', ')'] symbols = symbols_open + symbols_close @classmethod def get_closed_symbol(cls, open_symbol): return cls.symbols_close[cls.symbols_open.index(open_symbol)] class SentenceConjunction(object): symbols_conjunction = ['.', '*', '&', '∧', 'AND'] symbols_alternative = ['+', '∧', 'A', 'OR'] symbols_implication = ['⇒', '→', '⊃'] symbols_equivalence = ['⇔', '≡', '↔'] symbols = symbols_conjunction + symbols_alternative + symbols_implication + symbols_implication class Negation(object): symbols = ['!', '¬', '˜']