# -*- coding: UTF-8 -*- from read import Read a = Read() rpn = a.RPN() class ToNFA(object): def __init__(self): super(ToNFA, self).__init__() item = set() def show(self): operatorSet = {'|', '.', '*'} nfaStack = [] nodeNum = 0 for i in xrange(len(rpn)): item = rpn[i] if item in operatorSet: if item == '.': b = nfaStack.pop() a = nfaStack.pop() del a[a['N']][None] a[a['N']].update(b[b['S']]) for key, value in b.items(): if key in ['S', 'N']: continue if b['S'] in value.keys(): value[a['N']] = value[b['S']] del value[b['S']]