/home/doxygen/libascend/compiler/atomvalue.h

Go to the documentation of this file.
00001 /*  ASCEND modelling environment
00002     Copyright (C) 1990, 1993, 1994 Thomas Guthrie Epperly
00003     Copyright (C) 1996 Ben Allan
00004     Copyright (C) 2006 Carnegie Mellon University
00005 
00006     This program is free software; you can redistribute it and/or modify
00007     it under the terms of the GNU General Public License as published by
00008     the Free Software Foundation; either version 2, or (at your option)
00009     any later version.
00010 
00011     This program is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014     GNU General Public License for more details.
00015 
00016     You should have received a copy of the GNU General Public License
00017     along with this program; if not, write to the Free Software
00018     Foundation, Inc., 59 Temple Place - Suite 330,
00019     Boston, MA 02111-1307, USA.
00020 *//*
00031     based on instance.c
00032     by Tom Epperly & Ben Allan, 8/16/89
00033     Last in CVS: $Revision: 1.10 $ $Date: 1998/02/05 16:35:24 $ $Author: ballan $
00034 */
00035 
00036 #ifndef ASC_ATOMVALUE_H
00037 #define ASC_ATOMVALUE_H
00038 
00039 #include <utilities/ascConfig.h>
00040 #include "instance_enum.h"
00041 #include "dimen.h"
00042 #include "sets.h"
00043 
00048 #include <utilities/ascConfig.h>
00049 
00050 ASC_DLLSPEC unsigned AtomAssigned(CONST struct Instance *i);
00058 ASC_DLLSPEC unsigned AtomMutable(CONST struct Instance *i);
00067 extern unsigned DepthAssigned(CONST struct Instance *i);
00073 /*
00074  *  The following Get/Set*AtomValue functions apply to all the scalar
00075  *  kinds integer, symbol, boolean, and real. This includes
00076  *  fundamentals (atom children), atoms, and constants. We would take
00077  *  the word Atom out of the function names except that, e.g.,
00078  *  RealValue is a name used in value_type.h.
00079  */
00080 
00081 ASC_DLLSPEC double RealAtomValue(CONST struct Instance *i);
00087 ASC_DLLSPEC void SetRealAtomValue(struct Instance *i, double d, unsigned depth);
00098 ASC_DLLSPEC CONST dim_type*RealAtomDims(CONST struct Instance *i);
00105 ASC_DLLSPEC void SetRealAtomDims(struct Instance *i, CONST dim_type *dim);
00113 ASC_DLLSPEC long GetIntegerAtomValue(CONST struct Instance *i);
00119 ASC_DLLSPEC void SetIntegerAtomValue(struct Instance *i, long v, unsigned depth);
00128 ASC_DLLSPEC int GetBooleanAtomValue(CONST struct Instance *i);
00135 ASC_DLLSPEC void SetBooleanAtomValue(struct Instance *i, int truth, unsigned depth);
00146 ASC_DLLSPEC CONST struct set_t*SetAtomList(CONST struct Instance *i);
00153 extern int AssignSetAtomList(struct Instance *i, struct set_t *list);
00162 extern int GetSetAtomKind(CONST struct Instance *i);
00167 ASC_DLLSPEC symchar*GetSymbolAtomValue(CONST struct Instance *i);
00176 ASC_DLLSPEC void SetSymbolAtomValue(struct Instance *i, symchar *s);
00184 extern int CmpAtomValues(CONST struct Instance *i1, CONST struct Instance *i2);
00193 /* @} */
00194 
00195 #endif  /* ASC_ATOMVALUE_H */
00196 

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