while(basic && basic->kind==BasicTypeDeclaration::ARRAY)
basic = dynamic_cast<const BasicTypeDeclaration *>(basic->base_type);
if(basic && basic->kind==BasicTypeDeclaration::MATRIX)
while(basic && basic->kind==BasicTypeDeclaration::ARRAY)
basic = dynamic_cast<const BasicTypeDeclaration *>(basic->base_type);
if(basic && basic->kind==BasicTypeDeclaration::MATRIX)