/[ascend]/trunk/ascend/compiler/qlfdid.h
ViewVC logotype

Annotation of /trunk/ascend/compiler/qlfdid.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2397 - (hide annotations) (download) (as text)
Mon Feb 28 12:18:48 2011 UTC (13 years, 4 months ago) by jpye
File MIME type: text/x-chdr
File size: 5188 byte(s)
Add test of failing FIX statements for bug #488.
Commented out unmigrated makemps code (need to migrate to new slv_param_* functions).
1 johnpye 708 /* ASCEND modelling environment
2     Copyright (C) 1997, 2006 Carnegie Mellon University
3 johnpye 64
4 johnpye 708 This program is free software; you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation; either version 2, or (at your option)
7     any later version.
8 johnpye 64
9 johnpye 708 This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12     GNU General Public License for more details.
13    
14     You should have received a copy of the GNU General Public License
15     along with this program; if not, write to the Free Software
16     Foundation, Inc., 59 Temple Place - Suite 330,
17     Boston, MA 02111-1307, USA.
18     *//** @file
19     Interface Qualified Id Routines.
20     *//*
21     by Kirk Abbott and Ben Allan
22     Created: 1/94
23     Last in CVS: $Revision: 1.9 $ $Date: 2003/08/23 18:43:07 $ $Author: ballan $
24     */
25    
26 johnpye 64 #ifndef ASC_QLFDID_H
27     #define ASC_QLFDID_H
28    
29 jpye 2316 /** @addtogroup compiler_inst Compiler Instance Hierarchy
30 johnpye 1066 @{
31     */
32    
33 jpye 2018 #include <ascend/utilities/config.h>
34 jpye 2323 #include <ascend/general/platform.h>
35 jpye 2018 #include <ascend/general/list.h>
36 johnpye 64 #include "instance_enum.h"
37    
38 johnpye 67 #define MAXIMUM_ID_LENGTH 80
39    
40 johnpye 64 struct SearchEntry {
41     char *name; /**< name of the instance */
42     struct Instance *i; /**< pointer to the instance */
43     };
44    
45 johnpye 1063 ASC_DLLSPEC struct Instance *g_search_inst;
46 johnpye 64 /**< Result of the last qlfdid search of any kind in c or tcl. */
47    
48 johnpye 1063 ASC_DLLSPEC struct Instance *g_relative_inst;
49 johnpye 64 /**<
50     * Result of the last qlfdid search of any kind in tcl.
51     * (C calls to qlfdid routines do not change this.)
52     * 'qlfdid' and 'probe qlfdid' are known to set it.
53     */
54    
55 johnpye 1063 ASC_DLLSPEC char *Asc_MakeInitString(int len);
56 johnpye 64 /**<
57     * Will make a string of the specified length of a predefine default
58     * length if garbage is given. Will initialize the string to the mt string.
59     * Will return a pointer to the string;
60     */
61    
62 johnpye 1063 ASC_DLLSPEC void Asc_ReInitString(char *str);
63 johnpye 64 /**<
64     * We will reinitialize a string of non-zero length to the mt string.
65     * If an ivalid string will leave it untouched.
66     */
67    
68 mahesh 2130 ASC_DLLSPEC struct SearchEntry *Asc_SearchEntryCreate(char *name,
69 johnpye 64 struct Instance *i);
70     /**<
71     * Accepts a string and a pointer to an Instance and will create a
72     * and return a SearchEntry. Will save a copy of the string. Will always
73     * try to make space for the string.
74 mahesh 2130 *
75     * Was extern
76 johnpye 64 */
77    
78 johnpye 1063 ASC_DLLSPEC struct Instance *Asc_SearchEntryInstance(struct SearchEntry *se);
79 johnpye 64 /**<
80     * Returns a the instance pointer from a search entry;
81     */
82    
83 johnpye 1063 ASC_DLLSPEC char *Asc_SearchEntryName(struct SearchEntry *se);
84 johnpye 64 /**<
85     * Returns the name of a search entry;
86     */
87    
88 mahesh 2130 ASC_DLLSPEC void Asc_SearchEntryDestroy(struct SearchEntry *se);
89 johnpye 64 /**<
90     * Will delete the memory associated with its string, set its pointers
91     * to NULL, and free the memory associated with a SearchEntry.
92 mahesh 2130 *
93     * Was extern
94 johnpye 64 */
95    
96 johnpye 1063 ASC_DLLSPEC void Asc_SearchListDestroy(struct gl_list_t *search_list);
97 johnpye 64 /**<
98     * Frees up the memory that was allocated for the search_list which is
99     * a list of SearchEntry(s).
100     */
101    
102 johnpye 1063 ASC_DLLSPEC struct gl_list_t *Asc_BrowQlfdidSearch(char *str, char *temp);
103 johnpye 64 /**<
104     * Will accept two strings, both of which will be destroyed by the
105     * operation. Searches for an instance of the qualified name. Will
106     * return of a list (of SearchEntries), with each list element being
107     * a pointer to a level in the instance tree of the qualified id and
108     * 'g_search_inst' looking at the last part of the instance name.
109     * Will return NULL, whenever the qualified instance name cannot be found.
110     * If it returns NULL, the list does not exist; don't try to destroy it.
111     */
112    
113 johnpye 1063 ASC_DLLSPEC int Asc_QlfdidSearch2(char *str);
114 johnpye 64 /**<
115     * This function is perhaps the entry point suited for most users.
116     * It uses the function Asc_BrowQlfdidSearch(), and will leave the g_search_inst
117     * looking at the found instance, or NULL. It attempts to avoid the
118     * overhead of creating search entries, for cases where the user only
119     * wants to find the instance associated with the given qualfied id.
120     * However because it still uses Asc_BrowQlfdidSearch, it incurs the cost
121     * of creating the path to the instance. For cases where this path is
122     * of no interest, but just the final instance use Asc_QlfdidSearch3 below.
123     * Returns 0 if found, 1 otherwise.
124     */
125    
126 johnpye 1063 ASC_DLLSPEC int Asc_QlfdidSearch3(CONST char *str, int relative);
127 johnpye 64 /**<
128 jpye 2397 This function is still yet another entry point to the search routines.
129     It uses the function BrowQlfdidSearch3, and will leave the g_search_inst
130     looking at the found instance, or NULL. It attempts to avoid the
131     overhead of creating search entries, for cases where the user only
132     wants to find the instance associated with the given qualfied id.
133     @return 0 if found, 1 otherwise. This is perhaps the fastest
134     version of the search codes.
135    
136     @param relative If relative = 1 will start search at g_relative_inst whose value
137     should be set by a call to qlfdid (tcl) or Asc_BrowQlfdidSearchCmd (c).
138     Note that if the relative option is used str should be relative to
139     g_relative_inst NOT to the simulation root.
140     */
141 johnpye 64
142 johnpye 1066 /* @} */
143    
144 johnpye 67 #endif /* ASC_QLFDID_H */
145 johnpye 64

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22