/home/doxygen/libascend/compiler/anontype.h

Go to the documentation of this file.
00001 /*  ASCEND modelling environment
00002     Copyright (C) 2006 Carnegie Mellon University
00003     Copyright 1997, Carnegie Mellon University.
00004 
00005     This program is free software; you can redistribute it and/or modify
00006     it under the terms of the GNU General Public License as published by
00007     the Free Software Foundation; either version 2, or (at your option)
00008     any later version.
00009 
00010     This program is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013     GNU General Public License for more details.
00014 
00015     You should have received a copy of the GNU General Public License
00016     along with this program; if not, write to the Free Software
00017     Foundation, Inc., 59 Temple Place - Suite 330,
00018     Boston, MA 02111-1307, USA.
00019 *//*
00093     By Benjamin Andrew Allan
00094     Created August 30, 1997.
00095     Last in CVS: $Revision: 1.5 $ $Date: 1998/02/05 22:23:20 $ $Author: ballan $
00096 */
00097 
00098 #ifndef ASC_ANONTYPE_H
00099 #define ASC_ANONTYPE_H
00100 
00106 #define ATDEBUG 0
00107 
00109 struct AnonType {
00110    unsigned long index;           
00112    struct gl_list_t *instances;   
00113    struct AnonType *prev, *next;  
00115    int exactfamily;               
00117    int visited;                   
00118 };
00119 
00128 #define INSTANCES_PER_AT 2
00129 
00135 #define ANONEXPECTED 200
00136 
00147 #define ANONTABLESIZE 1024
00148 
00153 #define Asc_GetAnonType(atl,n) \
00154   ((struct AnonType *)gl_fetch((atl),(n)))
00155 
00161 #define Asc_GetAnonCount(atl,n) \
00162   gl_length(Asc_GetAnonType((atl),(n))->instances)
00163 
00170 #define Asc_GetAnonTypeInstance(at,c) \
00171   (struct Instance *)gl_fetch((at)->instances,(c))
00172 
00177 extern struct Instance *Asc_GetAnonPrototype(struct AnonType *at);
00178 
00183 ASC_DLLSPEC void Asc_DestroyAnonList(struct gl_list_t *atl);
00184 
00191 ASC_DLLSPEC struct gl_list_t *Asc_DeriveAnonList(struct Instance *root);
00192 
00201 ASC_DLLSPEC void Asc_WriteAnonList(FILE *fp,
00202                               struct gl_list_t *atl,
00203                               struct Instance *root,
00204                               int mlists);
00205 
00206 /* @} */
00207 
00208 #endif  /* ASC_ANONTYPE_H */
00209 

Generated on Thu Jul 17 04:00:09 2008 for libascend by  doxygen 1.5.1