'Given a C array type, return a CythonArrayNode'

@classmethod
def from_carray(cls, src_node, env):

    pos = src_node.pos
    base_type = src_node.type
    none_node = NoneNode(pos)
    axes = []
    while base_type.is_array:
        axes.append(SliceNode(pos, start=none_node, stop=none_node, step=none_node))
        base_type = base_type.base_type
    axes[(-1)].step = IntNode(pos, value='1', is_c_literal=True)
    memslicenode = Nodes.MemoryViewSliceTypeNode(pos, axes=axes, base_type_node=base_type)
    result = CythonArrayNode(pos, base_type_node=memslicenode, operand=src_node, array_dtype=base_type)
    result = result.analyse_types(env)
    return result
