コード例 #1
0
ファイル: dexpr.py プロジェクト: charyorde/dao
 def ___parse___(self, parser):
   # x << y << z << value
   y = parser.parse(self.y)
   if isinstance(self.x, _VarSymbol):
     return special.set(varcache(self.x.name), y)
   if isinstance(self.x, _lshift): 
     vars = _get_assign_vars_chain(self.x)
     i = len(vars)-1
     set_stmts = [special.set(vars[i], y)]
     while i>0:
       i -= 1
       set_stmts.append(special.set(vars[i], vars[i+1]))
     return special.begin(*set_stmts)
   elif isinstance(self.x, tuple) or isinstance(self.x, list):
     vars = self.x
   elif isinstance(self.x, _div):
     vars = _get_assign_vars_list(self.x)
   else: raise DinpySyntaxError()
   return special.set_list(vars, y)
コード例 #2
0
ファイル: dexpr.py プロジェクト: hermetique/dao
 def ___parse___(self, parser):
   # x << y << z << value
   y = parser.parse(self.y)
   if isinstance(self.x, _VarSymbol):
     return special.set(varcache(self.x.name), y)
   if isinstance(self.x, _lshift): 
     vars = _get_assign_vars_chain(self.x)
     i = len(vars)-1
     set_stmts = [special.set(vars[i], y)]
     while i>0:
       i -= 1
       set_stmts.append(special.set(vars[i], vars[i+1]))
     return special.begin(*set_stmts)
   elif isinstance(self.x, tuple) or isinstance(self.x, list):
     vars = self.x
   elif isinstance(self.x, _div):
     vars = _get_assign_vars_list(self.x)
   else: raise DinpySyntaxError()
   return special.set_list(vars, y)
コード例 #3
0
 def test_assign3(self):
     eq_(preparse_to_sexpression(put.i.j << (1, 2)),
         preparse_to_sexpression(special.set_list([i, j], (1, 2))))
コード例 #4
0
 def test_assign2(self):
     eq_(preparse_to_sexpression(put.i.j << v.i + 1),
         preparse_to_sexpression(special.set_list([i, j], arith.add(i, 1))))
コード例 #5
0
ファイル: testdinpy.py プロジェクト: chaosim/dao
 def test_assign3(self):
   eq_(preparse_to_sexpression(put.i.j<<(1,2)), preparse_to_sexpression(special.set_list([i,j], (1,2))))
コード例 #6
0
ファイル: testdinpy.py プロジェクト: chaosim/dao
 def test_assign2(self):
   eq_(preparse_to_sexpression(put.i.j<<v.i+1), preparse_to_sexpression(special.set_list([i,j], arith.add(i, 1))))