예제 #1
0
파일: lexer.py 프로젝트: mspencer08/nocrack
 def rule_set(self):
     rs = RuleSet()
     rs.add_rule('L', self.prod)
     if self.prod is 'l33t':
         for c, d in zip(self.l, self.r):
             rs.add_rule('L_%s' % c, d)
     return rs
예제 #2
0
파일: lexer.py 프로젝트: edithli/nocrack
 def rule_set(self):
     rs = RuleSet()
     rs.add_rule('L', self.prod)
     if self.prod is 'l33t':
         for c,d in zip(self.l, self.r):
             rs.add_rule('L_%s'%c,d)
     return rs
예제 #3
0
파일: lexer.py 프로젝트: mspencer08/nocrack
 def rule_set(self):
     rs = RuleSet()
     if isinstance(self, NonT):
         rs.add_rule('G', self.sym)
     if isinstance(self.prod, basestring):
         rs.add_rule(self.sym, self.prod)
     elif isinstance(self.prod, list):
         for p in self.prod:
             rs.update_set(p.rule_set())
     else:
         return self.prod.rule_set()
     return rs
예제 #4
0
 def rule_set(self):  # 添加规则
     rs = RuleSet()
     if isinstance(self, NonT):  # 基础规则  即没有任何规则
         rs.add_rule('G', self.sym)
     if isinstance(self.prod, str):
         rs.add_rule(self.sym, self.prod)
     elif isinstance(self.prod, list):
         for p in self.prod:
             rs.update_set(p.rule_set())
     else:
         return self.prod.rule_set()
     return rs
예제 #5
0
파일: lexer.py 프로젝트: edithli/nocrack
 def rule_set(self):
     rs = RuleSet()
     if isinstance(self, NonT):
         rs.add_rule('G', self.sym)
     if isinstance(self.prod, basestring):
         rs.add_rule(self.sym, self.prod)
     elif isinstance(self.prod, list):
         for p in self.prod:
             rs.update_set(p.rule_set())
     else:
         return self.prod.rule_set()
     return rs
예제 #6
0
파일: lexer.py 프로젝트: mspencer08/nocrack
 def rule_set(self):
     rs = RuleSet()
     rs.add_rule(self.sym, self.prod)
     rs.update_set(self.L.rule_set())
     return rs
예제 #7
0
 def rule_set(self, word):
     rs = RuleSet()
     pt = self.l_parse_tree(word)
     for p in pt.tree:
         rs.add_rule(*p)
     return rs
예제 #8
0
 def rule_set(self, word):
     rs = RuleSet()
     pt = self.l_parse_tree(word)
     for p in pt.tree:
         rs.add_rule(*p)
     return rs
예제 #9
0
파일: lexer.py 프로젝트: edithli/nocrack
 def rule_set(self):
     rs = RuleSet()
     rs.add_rule(self.sym, self.prod)
     rs.update_set(self.L.rule_set())
     return rs