예제 #1
0
파일: patterns.py 프로젝트: Darkoe/Mathics
 def init(self, expr):
     super(Except, self).init(expr)
     self.c = Pattern.create(expr.leaves[0])
     if len(expr.leaves) == 2:
         self.p = Pattern.create(expr.leaves[1])
     else:
         self.p = Pattern.create(Expression('Blank'))
예제 #2
0
파일: patterns.py 프로젝트: Darkoe/Mathics
 def init(self, expr):
     super(Optional, self).init(expr)
     self.pattern = Pattern.create(expr.leaves[0])
     if len(expr.leaves) == 2:
         self.default = expr.leaves[1]
     else:
         self.default = None
예제 #3
0
파일: patterns.py 프로젝트: 0xffea/Mathics
def match(expr, form, evaluation):        
    class StopGenerator_MatchQ(StopGenerator):
        pass
    
    form = Pattern.create(form)
    def yield_func(vars, rest):
        raise StopGenerator_MatchQ(Symbol("True"))
    try:
        form.match(yield_func, expr, {}, evaluation)
    except StopGenerator_MatchQ, exc:
        return True
예제 #4
0
파일: patterns.py 프로젝트: Darkoe/Mathics
    def init(self, expr, min=1):
        self.pattern = Pattern.create(expr.leaves[0])

        self.max = None
        self.min = min
        if len(expr.leaves) == 2:
            leaf_1 = expr.leaves[1]
            if (leaf_1.has_form('List', 1, 2) and all(leaf.get_int_value() for leaf in leaf_1.leaves)):
                self.max = leaf_1.leaves[-1].get_int_value()
                self.min = leaf_1.leaves[0].get_int_value()
            elif leaf_1.get_int_value():
                self.max = leaf_1.get_int_value()
            else:
                self.error('range', 2, expr)
예제 #5
0
파일: patterns.py 프로젝트: cjiang/Mathics
 def apply(self, expr, form, evaluation):
     'MatchQ[expr_, form_]'
     
     class StopGenerator_MatchQ(StopGenerator):
         pass
     
     form = Pattern.create(form)
     #for vars, rest in form.match(expr, {}, evaluation):
     def yield_func(vars, rest):
         #return Symbol("True")
         raise StopGenerator_MatchQ(Symbol("True"))
     try:
         form.match(yield_func, expr, {}, evaluation)
     except StopGenerator_MatchQ, exc:
         return exc.value
예제 #6
0
파일: rules.py 프로젝트: q423462798/Mathics
 def __init__(self, pattern, system=False):
     super(BaseRule, self).__init__()
     self.pattern = Pattern.create(pattern)
     self.system = system
예제 #7
0
파일: patterns.py 프로젝트: Darkoe/Mathics
 def init(self, expr):
     super(HoldPattern, self).init(expr)
     self.pattern = Pattern.create(expr.leaves[0])
예제 #8
0
파일: patterns.py 프로젝트: Darkoe/Mathics
 def init(self, expr):
     super(Pattern_, self).init(expr)
     self.varname = expr.leaves[0].get_name()
     if self.varname is None:
         self.error('patvar', expr)
     self.pattern = Pattern.create(expr.leaves[1])
예제 #9
0
파일: patterns.py 프로젝트: Darkoe/Mathics
 def init(self, expr):
     super(Alternatives, self).init(expr)
     self.alternatives = [Pattern.create(leaf) for leaf in expr.leaves]
예제 #10
0
 def init(self, expr):
     super(Condition, self).init(expr)
     self.pattern = Pattern.create(expr.leaves[0])
     self.test = expr.leaves[1]
예제 #11
0
파일: patterns.py 프로젝트: Darkoe/Mathics
 def init(self, expr):
     super(Condition, self).init(expr)
     self.pattern = Pattern.create(expr.leaves[0])
     self.test = expr.leaves[1]
예제 #12
0
파일: patterns.py 프로젝트: Darkoe/Mathics
 def init(self, expr):
     super(PatternTest, self).init(expr)
     self.pattern = Pattern.create(expr.leaves[0])
     self.test = expr.leaves[1]
     self.test_name = self.test.get_name()
예제 #13
0
 def __init__(self, form):
     self.form = Pattern.create(form)
예제 #14
0
 def init(self, expr):
     super(HoldPattern, self).init(expr)
     self.pattern = Pattern.create(expr.leaves[0])
예제 #15
0
 def __init__(self, pattern, system=False) -> None:
     self.pattern = Pattern.create(pattern)
     self.system = system
예제 #16
0
파일: rules.py 프로젝트: GitAnt/Mathics
 def __init__(self, pattern, system=False):
     super(BaseRule, self).__init__()
     self.pattern = Pattern.create(pattern)
     self.system = system
예제 #17
0
 def init(self, expr):
     super(Pattern_, self).init(expr)
     self.varname = expr.leaves[0].get_name()
     if self.varname is None:
         self.error('patvar', expr)
     self.pattern = Pattern.create(expr.leaves[1])
예제 #18
0
파일: rules.py 프로젝트: Piruzzolo/Mathics
 def __init__(self, pattern, system=False):
     self.pattern = Pattern.create(pattern)
     self.system = system
예제 #19
0
 def __init__(self, form):
     self.form = Pattern.create(form)
예제 #20
0
 def init(self, expr):
     super(Alternatives, self).init(expr)
     self.alternatives = [Pattern.create(leaf) for leaf in expr.leaves]
예제 #21
0
 def init(self, expr):
     super(PatternTest, self).init(expr)
     self.pattern = Pattern.create(expr.leaves[0])
     self.test = expr.leaves[1]
     self.test_name = self.test.get_name()