/[ascend]/trunk/base/generic/compiler/parpend.h
ViewVC logotype

Annotation of /trunk/base/generic/compiler/parpend.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (hide annotations) (download) (as text)
Fri Oct 29 20:54:12 2004 UTC (21 years, 1 month ago) by aw0a
Original Path: trunk/ascend4/compiler/parpend.h
File MIME type: text/x-chdr
File size: 2867 byte(s)
Setting up web subdirectory in repository
1 aw0a 1 /*
2     * parpend.h
3     * by Ben Allan
4     * Jan 5, 1998
5     * Part of ASCEND
6     * Version: $Revision: 1.2 $
7     * Version control file: $RCSfile: parpend.h,v $
8     * Date last modified: $Date: 1998/06/16 16:38:46 $
9     * Last modified by: $Author: mthomas $
10     *
11     * This file is part of the Ascend Language Interpreter.
12     *
13     * Copyright (C) 1998 Carnegie Mellon University
14     *
15     * The Ascend Language Interpreter is free software; you can
16     * redistribute it and/or modify it under the terms of the GNU
17     * General Public License as published by the Free Software
18     * Foundation; either version 2 of the License, or (at your option)
19     * any later version.
20     *
21     * The Ascend Language Interpreter is distributed in hope that it
22     * will be useful, but WITHOUT ANY WARRANTY; without even the implied
23     * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
24     * See the GNU General Public License for more details.
25     *
26     * You should have received a copy of the GNU General Public License
27     * along with the program; if not, write to the Free Software
28     * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139 USA. Check
29     * the file named COPYING.
30     */
31    
32     /* this file should be resorbed into the parameter list processing
33     * code that results when instantiate.c is split up.
34     * In the meanwhile...
35     */
36     #ifndef __PARPEND_H_SEEN__
37     #define __PARPEND_H_SEEN__
38    
39     enum ppstatus {
40     pp_ERR =0,
41     pp_ISA, /* IS_A of simple to be done, from absorbed. */
42     pp_ISAARR, /* IS_A of array to do, from absorbed and
43     * gets converted to asar during processing.
44     */
45     pp_ARR, /* array that's constructed but requires range checking */
46     pp_ASGN, /* assignment to do in absorbed objects */
47     pp_ASSC, /* scalar assignment to check in absorbed objects */
48     pp_ASAR, /* Array to be checked for being completely assigned,
49     * but its subscript range is presumed right.
50     */
51     pp_WV, /* WITH_VALUE to be checked */
52     pp_DONE /* finished statement */
53     };
54    
55     struct parpendingentry {
56     struct Set *arg; /* parameter given in user's IS_A statement */
57     struct Statement *s;
58     struct Instance *inst;
59     struct parpendingentry *next;
60     enum ppstatus status;
61     int argn; /* the psl position if >0, or -(the absorbed position) if <0 */
62     /* argn==0 is an error */
63     };
64    
65     /*
66     * allocate a parpending entry.
67     */
68     extern struct parpendingentry *CreatePPE(void);
69    
70     /*
71     * destroy a parpending entry.
72     */
73     extern void DestroyPPE(struct parpendingentry *);
74    
75     /*
76     * starts memory recycle. do not call twice before stopping recycle.
77     */
78     extern void ppe_init_pool(void);
79    
80     /*
81     * stops memory recycle. do not call while ANY parpending are outstanding.
82     */
83     extern void ppe_destroy_pool(void);
84    
85     /*
86     * write the pool report to ASCERR for the ppe pool.
87     */
88     extern void ppe_report_pool(void);
89    
90     #endif /* __PARPEND_H_SEEN__ */

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