예제 #1
0
 def test_no_for(self):
     a = "hello"
     l = [1, 2, 3, 4, 5, 6, 7, [1, 2, 3, 4, 5, 6, 7, [1, 2, 3, 4, 5, 6, 7, 8]]]
     q = None
     d = locals()
     try:
         d.update(__builtins__.__dict__)
     except AttributeError:
         d.update(__builtins__)
     flwr = symbols.flwrSequence([symbols.attributeValue("hello", scalar=True)])
     self.assertEquals(flwr(d), ("hello",))
     self.assertEquals(
         exe(
             """
         return l
       """,
             d,
         ),
         (l,),
     )
     self.assertEquals(
         exe(
             """
         let f = function(l) {
           if (isinstance(l, list))
           then {for j in l return f(j)}
           else l
         }
         return flatten f(l)
       """,
             d,
         ),
         (1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, 8),
     )
예제 #2
0
 def test_no_for(self):
     a = 'hello'
     l = [1,2,3,4,5,6,7,[1,2,3,4,5,6,7,[1,2,3,4,5,6,7,8]]]
     q = None
     d = locals()
     try: d.update(__builtins__.__dict__)
     except AttributeError: d.update(__builtins__)
     flwr = symbols.flwrSequence([symbols.attributeValue('hello', scalar=True)])
     self.assertEquals(flwr(d), ('hello',))
     self.assertEquals(exe('''
         return l
       ''', d), (l,))
     self.assertEquals(exe('''
         let f = function(l) {
           if (isinstance(l, list))
           then {for j in l return f(j)}
           else l
         }
         return flatten f(l)
       ''', d), (1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, 8))
예제 #3
0
파일: parser.py 프로젝트: timtadh/pyflwor
 def p_SetExpr__2(self, t):
     'SetExpr : ArithExpr NOT IN AttributeValue'
     t[0] = symbols.setexprValue1(t[1], symbols.setexprOperator1('not in'), symbols.attributeValue(t[4]))
예제 #4
0
파일: parser.py 프로젝트: timtadh/pyflwor
 def p_SetExpr__1(self, t):
     'SetExpr : ArithExpr IN AttributeValue'
     t[0] = symbols.setexprValue1(t[1], symbols.setexprOperator1('in'), symbols.attributeValue(t[3]))
예제 #5
0
파일: parser.py 프로젝트: timtadh/pyflwor
 def p_Value4(self, t):
     'Value : AttributeValue'
     t[0] = symbols.attributeValue(t[1])
예제 #6
0
파일: parser.py 프로젝트: timtadh/pyflwor
 def p_Value2(self, t):
     'Value : STRING'
     t[0] = symbols.attributeValue(t[1], scalar=True)
예제 #7
0
파일: parser.py 프로젝트: timtadh/pyflwor
 def p_Value1(self, t):
     'Value : NUMBER'
     t[0] = symbols.attributeValue(t[1], scalar=True)
예제 #8
0
파일: parser.py 프로젝트: timtadh/pyflwor
 def p_ArithUnary2(self, t):
     'ArithUnary : DASH Atomic'
     t[0] = symbols.arithValue(symbols.attributeValue(-1.0, scalar=True), symbols.arith_operator('*'), t[2])
예제 #9
0
파일: parser.py 프로젝트: timtadh/pyflwor
 def p_CollectFunction1(self, t):
     'CollectFunction : AttributeValue'
     t[0] = symbols.attributeValue(t[1])
예제 #10
0
 def p_SetExpr__2(self, t):
     'SetExpr : ArithExpr NOT IN AttributeValue'
     t[0] = symbols.setexprValue1(t[1], symbols.setexprOperator1('not in'),
                                  symbols.attributeValue(t[4]))
예제 #11
0
 def p_SetExpr__1(self, t):
     'SetExpr : ArithExpr IN AttributeValue'
     t[0] = symbols.setexprValue1(t[1], symbols.setexprOperator1('in'),
                                  symbols.attributeValue(t[3]))
예제 #12
0
 def p_Value4(self, t):
     'Value : AttributeValue'
     t[0] = symbols.attributeValue(t[1])
예제 #13
0
 def p_Value2(self, t):
     'Value : STRING'
     t[0] = symbols.attributeValue(t[1], scalar=True)
예제 #14
0
 def p_Value1(self, t):
     'Value : NUMBER'
     t[0] = symbols.attributeValue(t[1], scalar=True)
예제 #15
0
 def p_ArithUnary2(self, t):
     'ArithUnary : DASH Atomic'
     t[0] = symbols.arithValue(symbols.attributeValue(-1.0, scalar=True),
                               symbols.arith_operator('*'), t[2])
예제 #16
0
 def p_CollectFunction1(self, t):
     'CollectFunction : AttributeValue'
     t[0] = symbols.attributeValue(t[1])