00001 00002 #ifndef IIR_ARRAY_TYPE_DEFINITION_HH 00003 #define IIR_ARRAY_TYPE_DEFINITION_HH 00004 00005 // Copyright (c) 1996-1999 The University of Cincinnati. 00006 // All rights reserved. 00007 00008 // UC MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF 00009 // THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 00010 // TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 00011 // PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UC SHALL NOT BE LIABLE 00012 // FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, 00013 // RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS 00014 // DERIVATIVES. 00015 00016 // By using or copying this Software, Licensee agrees to abide by the 00017 // intellectual property laws, and all other applicable laws of the 00018 // U.S., and the terms of this license. 00019 00020 00021 // You may modify, distribute, and use the software contained in this package 00022 // under the terms of the "GNU LIBRARY GENERAL PUBLIC LICENSE" version 2, 00023 // June 1991. A copy of this license agreement can be found in the file 00024 // "LGPL", distributed with this archive. 00025 00026 // Authors: Philip A. Wilsey phil.wilsey@uc.edu 00027 // Dale E. Martin dmartin@cliftonlabs.com 00028 00029 //--------------------------------------------------------------------------- 00030 00031 #include "IIR_TypeDefinition.hh" 00032 00033 class IIR_ScalarTypeDefinition; 00034 00035 class IIR_ArrayTypeDefinition : public virtual IIR_TypeDefinition{ 00036 00037 public: 00038 virtual ~IIR_ArrayTypeDefinition() {} 00039 00040 virtual void set_index_subtype( IIR_ScalarTypeDefinition *index_subtype ) = 0; 00041 virtual IIR_ScalarTypeDefinition *get_index_subtype() = 0; 00042 00043 virtual void set_element_subtype( IIR_TypeDefinition *element_subtype ) = 0; 00044 virtual IIR_TypeDefinition *get_element_subtype() = 0; 00045 00051 virtual IIR_TypeDefinition *get_final_subtype() = 0; 00052 00053 // This method returns TRUE if the element_subtype is REALLY that of the 00054 // element, or FALSE if it's simply a placeholder for a mutlidimensional array. 00055 virtual IIR_Boolean is_element() = 0; 00056 virtual void set_is_element( IIR_Boolean ) = 0; 00057 00058 virtual void set_declaration( IIR_Declaration *corresponding_decl ) = 0; 00059 }; 00060 #endif
1.4.6