Using Python's built-in defaultdict we can easily define a tree data structure:
def tree(): return defaultdict(tree)
That's it!
import operator | |
import collections | |
class Rule(object): | |
def __init__(self, logic, left=None, right=None, op=None, inv=False): | |
self.logic = logic | |
self.left = left | |
self.right = right | |
self.op = op | |
self.inv = inv |
Using Python's built-in defaultdict we can easily define a tree data structure:
def tree(): return defaultdict(tree)
That's it!
import bisect | |
class NFA(object): | |
EPSILON = object() | |
ANY = object() | |
def __init__(self, start_state): | |
self.transitions = {} | |
self.final_states = set() | |
self._start_state = start_state |