/[ascend]/trunk/base/disused/compiler/main.c
ViewVC logotype

Contents of /trunk/base/disused/compiler/main.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1524 - (show annotations) (download) (as text)
Sat Jun 30 23:21:49 2007 UTC (15 years, 7 months ago) by jpye
File MIME type: text/x-csrc
File size: 5265 byte(s)
changed to ASC_ENV_SOLVERS and ASC_ENV_LIBRARY in C code.
Rerranged order of Tcl/Tk initialisation so that path env vars are set before solvers are loaded.
1 /*
2 * Main program
3 * by Tom Epperly
4 * Part of Ascend
5 * Version: $Revision: 1.28 $
6 * Version control file: $RCSfile: main.c,v $
7 * Date last modified: $Date: 1998/02/18 22:57:15 $
8 * Last modified by: $Author: ballan $
9 *
10 * This file is part of the Ascend Language Interpreter.
11 *
12 * Copyright (C) 1990, 1993, 1994 Thomas Guthrie Epperly
13 *
14 * The Ascend Language Interpreter is free software; you can redistribute
15 * it and/or modify it under the terms of the GNU General Public License as
16 * published by the Free Software Foundation; either version 2 of the
17 * License, or (at your option) any later version.
18 *
19 * The Ascend Language Interpreter is distributed in hope that it will be
20 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with the program; if not, write to the Free Software Foundation,
26 * Inc., 675 Mass Ave, Cambridge, MA 02139 USA. Check the file named
27 * COPYING.
28 */
29
30 #include <stdio.h>
31 #include <time.h>
32 #include <string.h>
33 #include <limits.h>
34 #include <ctype.h> /* was compiler/actype.h */
35 #include <utilities/ascConfig.h>
36 #include <utilities/ascMalloc.h>
37 #include <utilities/ascEnvVar.h>
38 #include <utilities/ascPanic.h>
39 #include <general/list.h>
40 #include <general/pool.h>
41 #include "compiler.h"
42 #include "ascCompiler.h"
43 #include "module.h"
44 #include "symtab.h"
45
46
47 #include "functype.h"
48 #include "types.h"
49 #include "instance_enum.h"
50 #include "setinstval.h"
51 #include "child.h"
52 #include "type_desc.h"
53 #include "stattypes.h"
54 #include "slist.h"
55 #include "scanner.h"
56 #include "evaluate.h"
57 #include "units.h"
58 #include "typedef.h"
59 #include "dump.h"
60 #include "prototype.h"
61 #include "slist.h"
62 #include "typedef.h"
63 #include "library.h"
64 #include "arrayinst.h"
65 #include "instance_name.h"
66 #include "relation_type.h"
67 #include "logical_relation.h"
68 #include "find.h"
69 #include "relation.h"
70 #include "logrelation.h"
71 #include "setinstval.h"
72 #include "interface.h"
73 #include "universal.h"
74 #include "extfunc.h"
75 #include "packages.h" /* user packages and functions */
76 #include "pending.h"
77 #include "value_type.h"
78 #include "temp.h"
79 #include "forvars.h"
80
81 #ifndef lint
82 static CONST char MainDriverID[] = "$Id: main.c,v 1.28 1998/02/18 22:57:15 ballan Exp $";
83 #endif
84
85 #ifdef YYDEBUG
86 extern int zz_debug;
87 #endif
88 extern int zz_parse();
89
90 /* cmu hacks so we don't move binaries out from under testers */
91 /* if ZEPHYR == 0, hacks turned off */
92 #define ZEPHYR 0
93 /* who to tell, and who not to tell when he himself runs it */
94 #define ZNOTIFY "ballan"
95
96 static
97 void MainOpenModule(char *name)
98 {
99 if (Asc_OpenModule(name,NULL)==NULL){
100 FPRINTF(ASCERR,"Unable to find module %s in search path. Goodbye.\n",
101 name);
102 exit(2);/*NOTREACHED*/
103 }
104 }
105
106
107 int main(int argc, char **argv)
108 {
109 int c,errflg=0;
110 char *filename;
111 #if ZEPHYR
112 char zbuf[1024];
113 #endif
114 extern int optind,opterr;
115 extern char *optarg;
116 #ifdef YYDEBUG
117 zz_debug=0;
118 #endif
119 while ((c = getopt(argc,argv,"d")) != EOF) {
120 switch(c){
121 case 'd':
122 #ifdef YYDEBUG
123 zz_debug=1;
124 #else
125 FPRINTF(ASCERR,"Sorry this wasn't compiled with YYDEBUG defined.\n");
126 #endif
127 break;
128 case '?':
129 errflg++;
130 }
131 }
132 if (optind == (argc-1)){
133 filename=argv[optind];
134 }
135 else errflg++;
136 if (errflg) {
137 FPRINTF(ASCERR,"usage: %s [-d] filename\n",argv[0]);
138 exit(2);/*NOTREACHED*/
139 }
140 PRINTF("ASCEND VERSION IV\n");
141 PRINTF("Compiler Implemention Version: 2.0\n");
142 PRINTF("Written by Tom Epperly\n");
143 PRINTF("Copyright(C) 1990, 1993, 1994 Thomas Guthrie Weidner Epperly\n");
144 PRINTF(" 1995, 1996 Kirk Andre Abbott, Benjamin Andrew Allan\n");
145 PRINTF(" 1997 Carnegie Mellon University\n");
146 PRINTF(
147 "ASCEND comes with ABSOLUTELY NO WARRANTY; for details type `warranty'.\n");
148 PRINTF(
149 "This is free software, and you are welcome to redistribute it under\n");
150 PRINTF("certain conditions; type `copying' for details.\n");
151
152 if( Asc_CompilerInit(1) != 0 ) {
153 ASC_PANIC("Asc_CompilerInit returned nonzero");
154 }
155
156 /*
157 * Import the value of ASCENDLIBRARY into the environment before
158 * trying to read any modules.
159 */
160 Asc_ImportPathList(ASC_ENV_LIBRARY);
161
162 MainOpenModule(filename);
163
164 #if ZEPHYR
165 /*
166 * USER and HOST are not universally used, but we'll assume an mthomas setup
167 */
168 if (getenv("USER")!=NULL) {
169 if ( strcmp(getenv("USER"),ZNOTIFY)!=0) {
170 if (getenv("HOST") !=NULL) {
171 sprintf(zbuf,"/usr/local/bin/zwrite -d -q %s -m %s@%s running %s",
172 ZNOTIFY,getenv("USER"),getenv("HOST"), argv[0]);
173 } else {
174 sprintf(zbuf,"/usr/local/bin/zwrite -d -q %s -m %s running %s",
175 ZNOTIFY,getenv("USER"), argv[0]);
176 }
177 }
178 } else {
179 sprintf(zbuf,"/usr/local/bin/zwrite -d -q %s -m %s %s",
180 ZNOTIFY,"Somebody somewhere ran ", argv[0]);
181 }
182 system(zbuf);
183 #endif
184
185 zz_parse();
186 ascstatus("Memory status after parsing input file");
187 Interface(); /* call an interface */
188 ascstatus("Memory status after interface exits");
189
190 Asc_CompilerDestroy();
191
192 ascshutdown("Memory status just before exiting");
193 return 0;
194 }

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