예제 #1
0
 def p_vector(t):
     """vector_part : LBRACKET operand
     | LBRACKET
     | vector_part COMMA operand
     vector : vector_part RBRACKET"""
     if isinstance(t[1],str):
         if len(t)==2:
             t[0]=Builtin('vector',tuple())
             t[0].isarray=True
         else:
             t[0]=Builtin('vector',(t[2],))
             t[0].isarray = isinstance(t[2],Scalar) or isinstance(t[2],Array)
     elif t[2] == ',':
         args=list(t[1].args)
         if len(args) > 250:
             args=[Builtin('vector',tuple(args)),t[3]]
         else:
             args.append(t[3])
         t[1].args=tuple(args)
         t[0]=t[1]
         t[0].isarray = t[1].isarray and (isinstance(t[3],Scalar) or isinstance(t[3],Array))
     else:
         if t[1].isarray:
             t[0]=Data.evaluate(t[1])
         else:
             t[0]=Builtin('vector',t[1].args)
예제 #2
0
 def p_vector(t):
     """vector_part : LBRACKET operand
     | LBRACKET
     | vector_part COMMA operand
     vector : vector_part RBRACKET"""
     if isinstance(t[1], str):
         if len(t) == 2:
             t[0] = Builtin('vector', tuple())
             t[0].isarray = True
         else:
             t[0] = Builtin('vector', (t[2], ))
             t[0].isarray = isinstance(t[2], Scalar) or isinstance(
                 t[2], Array)
     elif t[2] == ',':
         args = list(t[1].args)
         if len(args) > 250:
             args = [Builtin('vector', tuple(args)), t[3]]
         else:
             args.append(t[3])
         t[1].args = tuple(args)
         t[0] = t[1]
         t[0].isarray = t[1].isarray and (isinstance(t[3], Scalar)
                                          or isinstance(t[3], Array))
     else:
         if t[1].isarray:
             t[0] = Data.evaluate(t[1])
         else:
             t[0] = Builtin('vector', t[1].args)