示例#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 p_FLWRexpr3(self, t):
     'FLWRexpr : ForExpr WhereExpr ReturnExpr'
     t[0] = symbols.flwrSequence(t[3][0],
                                 for_expr=t[1],
                                 flatten=t[3][1],
                                 collecting=t[3][2],
                                 where_expr=t[2])
示例#3
0
 def p_FLWRexpr5(self, t):
     'FLWRexpr : ForExpr OrderByExpr ReturnExpr'
     t[0] = symbols.flwrSequence(t[3][0],
                                 for_expr=t[1],
                                 flatten=t[3][1],
                                 collecting=t[3][2],
                                 order_expr=t[2])
示例#4
0
 def p_FLWRexpr2(self, t):
     'FLWRexpr : ForExpr LetExpr ReturnExpr'
     t[0] = symbols.flwrSequence(t[3][0],
                                 for_expr=t[1],
                                 flatten=t[3][1],
                                 collecting=t[3][2],
                                 let_expr=t[2])
示例#5
0
 def p_FLWRexpr8(self, t):
     'FLWRexpr : ForExpr LetExpr WhereExpr OrderByExpr ReturnExpr'
     t[0] = symbols.flwrSequence(t[5][0],
                                 for_expr=t[1],
                                 flatten=t[5][1],
                                 collecting=t[5][2],
                                 let_expr=t[2],
                                 where_expr=t[3],
                                 order_expr=t[4])
示例#6
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))
示例#7
0
文件: parser.py 项目: timtadh/pyflwor
 def p_FLWRexpr10(self, t):
     'FLWRexpr : LetExpr ReturnExpr'
     t[0] = symbols.flwrSequence(t[2][0], flatten=t[2][1], collecting=t[2][2], let_expr=t[1])
示例#8
0
文件: parser.py 项目: timtadh/pyflwor
 def p_FLWRexpr9(self, t):
     'FLWRexpr : ReturnExpr'
     t[0] = symbols.flwrSequence(t[1][0], flatten=t[1][1], collecting=t[1][2])
示例#9
0
文件: parser.py 项目: timtadh/pyflwor
 def p_FLWRexpr8(self, t):
     'FLWRexpr : ForExpr LetExpr WhereExpr OrderByExpr ReturnExpr'
     t[0] = symbols.flwrSequence(t[5][0], for_expr=t[1], flatten=t[5][1], collecting=t[5][2], let_expr=t[2], where_expr=t[3], order_expr=t[4])
示例#10
0
文件: parser.py 项目: timtadh/pyflwor
 def p_FLWRexpr5(self, t):
     'FLWRexpr : ForExpr OrderByExpr ReturnExpr'
     t[0] = symbols.flwrSequence(t[3][0], for_expr=t[1], flatten=t[3][1], collecting=t[3][2], order_expr=t[2])
示例#11
0
文件: parser.py 项目: timtadh/pyflwor
 def p_FLWRexpr3(self, t):
     'FLWRexpr : ForExpr WhereExpr ReturnExpr'
     t[0] = symbols.flwrSequence(t[3][0], for_expr=t[1], flatten=t[3][1], collecting=t[3][2], where_expr=t[2])
示例#12
0
文件: parser.py 项目: timtadh/pyflwor
 def p_FLWRexpr2(self, t):
     'FLWRexpr : ForExpr LetExpr ReturnExpr'
     t[0] = symbols.flwrSequence(t[3][0], for_expr=t[1], flatten=t[3][1], collecting=t[3][2], let_expr=t[2])
示例#13
0
 def p_FLWRexpr10(self, t):
     'FLWRexpr : LetExpr ReturnExpr'
     t[0] = symbols.flwrSequence(t[2][0],
                                 flatten=t[2][1],
                                 collecting=t[2][2],
                                 let_expr=t[1])
示例#14
0
 def p_FLWRexpr9(self, t):
     'FLWRexpr : ReturnExpr'
     t[0] = symbols.flwrSequence(t[1][0],
                                 flatten=t[1][1],
                                 collecting=t[1][2])