Ejemplo n.º 1
0
class DTE(object):
    def __init__(self, grammar=None):
        self.G = grammar
        if not self.G:
            self.G = SubGrammar()
            # self.G.load(hny_config.GRAMMAR_DIR+'/grammar.cfg')

    def encode(self, lhs, rhs):
        assert lhs in self.G
        a = self.G.encode_rule(lhs, rhs)
        if not a:
            print "NonERROR", lhs, rhs, a
            exit(0)
        return a

    def decode(self, lhs, pt):
        return self.decode_rule(lhs, pt)

    def encode_pw(self, pw):
        return self.G.encode_pw(pw)
    
    def decode_pw(self, P):
        return self.G.decode_pw(P)

    def __eq__(self, o_dte):
        return self.G == o_dte.G
        
    def __nonzero__(self):
        return self.G.is_grammar()