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)
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)