cell.py 665 字节
Newer Older
H
HypoX64 已提交
1
# 根据RE转NFA的规律边的类型分为3种
H
HypoX64 已提交
2
EPSILON = -1   # edge = EPSILON 对应的节点有两个出去的ε边
H
HypoX64 已提交
3
CCL     = -2   # edge = CCL     边对应的是字符集(包括单个字符) ,需要结合属性char_set,自动机运行时只要当前读入的字符在char_set中就满足跳转条件
H
HypoX64 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
EMPTY   = -3   # edge = EMPTY   一条ε边

class Cell(object):

    def __init__(self):
        self.edge = EPSILON
        self.next_1 = None
        self.next_2 = None
        self.char_set = set()

class PairCell(object):
    """
    一对Cell的两个节点
    """
    def __init__(self):
        self.start_node = None
        self.end_node = None