Exemplo n.º 1
0
    def __init__(self,rep = None,S = None):
        
        if isinstance(rep,core.replacement_map):
            self._replacement_map = rep
        elif rep != None:
            self._replacement_map = core.replacement_map()
            for key, value in dict(rep).iteritems():
                self._replacement_map[S(key)] = S(value)
        else:
            self._replacement_map = core.replacement_map()

        self.S = S
Exemplo n.º 2
0
    def replace(self,*args):
        if len(args) == 1:
            if isinstance(args[0],ReplacementMap):
                rep = args[0]._replacement_map
            else:
                rep = ReplacementMap(args[0],self.S)._replacement_map
        elif isinstance(args[0],(list,tuple)):
            if len(args) == 1 and isinstance(args[0][0],(list,tuple)):
                rep = ReplacementMap(args[0],self.S)._replacement_map
            else:
                rep = ReplacementMap(args,self.S)._replacement_map
        elif len(args) == 2:
            rep = core.replacement_map()
            rep[self.S(args[0])] = self.S(args[1])
        else:
            raise ValueError('invalid substitution arguments')

        #from evaluator import ReplaceEvaluator
        #return ReplaceEvaluator(rep,S=self.S)(self)

        return self.S(core.replace(self,rep))