Branch data Line data Source code
1 : : /* init.cc initializes the modules of the GNU Modula-2 front end.
2 : :
3 : : Copyright (C) 2012-2024 Free Software Foundation, Inc.
4 : : Contributed by Gaius Mulley <gaius@glam.ac.uk>.
5 : :
6 : : This file is part of GNU Modula-2.
7 : :
8 : : GNU Modula-2 is free software; you can redistribute it and/or modify
9 : : it under the terms of the GNU General Public License as published by
10 : : the Free Software Foundation; either version 3, or (at your option)
11 : : any later version.
12 : :
13 : : GNU Modula-2 is distributed in the hope that it will be useful, but
14 : : WITHOUT ANY WARRANTY; without even the implied warranty of
15 : : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 : : General Public License for more details.
17 : :
18 : : You should have received a copy of the GNU General Public License
19 : : along with GNU Modula-2; see the file COPYING3. If not see
20 : : <http://www.gnu.org/licenses/>. */
21 : :
22 : : #include "init.h"
23 : : #include "config.h"
24 : : #include "system.h"
25 : :
26 : : #if defined(__GNUG__)
27 : : #define EXTERN extern "C"
28 : : #else /* !__GNUG__ */
29 : : #define EXTERN extern
30 : : #endif /* !__GNUG__ */
31 : :
32 : : EXTERN void _M2_M2Bitset_init (int argc, char *argv[], char *envp[]);
33 : : EXTERN void _M2_Debug_init (int argc, char *argv[], char *envp[]);
34 : : EXTERN void _M2_M2Defaults_init (int argc, char *argv[], char *envp[]);
35 : : EXTERN void _M2_Environment_init (int argc, char *argv[], char *envp[]);
36 : : EXTERN void _M2_RTExceptions_init (int argc, char *argv[], char *envp[]);
37 : : EXTERN void _M2_M2EXCEPTION_init (int argc, char *argv[], char *envp[]);
38 : : EXTERN void _M2_M2RTS_init (int argc, char *argv[], char *envp[]);
39 : : EXTERN void _M2_M2Dependent_init (int argc, char *argv[], char *envp[]);
40 : : EXTERN void _M2_SysExceptions_init (int argc, char *argv[], char *envp[]);
41 : : EXTERN void _M2_DynamicStrings_init (int argc, char *argv[], char *envp[]);
42 : : EXTERN void _M2_Assertion_init (int argc, char *argv[], char *envp[]);
43 : : EXTERN void _M2_FormatStrings_init (int argc, char *argv[], char *envp[]);
44 : : EXTERN void _M2_FIO_init (int argc, char *argv[], char *envp[]);
45 : : EXTERN void _M2_SFIO_init (int argc, char *argv[], char *envp[]);
46 : : EXTERN void _M2_SArgs_init (int argc, char *argv[], char *envp[]);
47 : : EXTERN void _M2_Lists_init (int argc, char *argv[], char *envp[]);
48 : : EXTERN void _M2_UnixArgs_init (int argc, char *argv[], char *envp[]);
49 : : EXTERN void _M2_Args_init (int argc, char *argv[], char *envp[]);
50 : : EXTERN void _M2_wrapc_init (int argc, char *argv[], char *envp[]);
51 : : EXTERN void _M2_TimeString_init (int argc, char *argv[], char *envp[]);
52 : : EXTERN void _M2_IO_init (int argc, char *argv[], char *envp[]);
53 : : EXTERN void _M2_StdIO_init (int argc, char *argv[], char *envp[]);
54 : : EXTERN void _M2_CmdArgs_init (int argc, char *argv[], char *envp[]);
55 : : EXTERN void _M2_M2Preprocess_init (int argc, char *argv[], char *envp[]);
56 : : EXTERN void _M2_M2Error_init (int argc, char *argv[], char *envp[]);
57 : : EXTERN void _M2_M2Search_init (int argc, char *argv[], char *envp[]);
58 : : EXTERN void _M2_DynamicPath_init (int argc, char *argv[], char *envp[]);
59 : : EXTERN void _M2_PathName_init (int argc, char *argv[], char *envp[]);
60 : : EXTERN void _M2_Indexing_init (int argc, char *argv[], char *envp[]);
61 : : EXTERN void _M2_NameKey_init (int argc, char *argv[], char *envp[]);
62 : : EXTERN void _M2_NumberIO_init (int argc, char *argv[], char *envp[]);
63 : : EXTERN void _M2_FpuIO_init (int argc, char *argv[], char *envp[]);
64 : : EXTERN void _M2_SysStorage_init (int argc, char *argv[], char *envp[]);
65 : : EXTERN void _M2_Storage_init (int argc, char *argv[], char *envp[]);
66 : : EXTERN void _M2_StrIO_init (int argc, char *argv[], char *envp[]);
67 : : EXTERN void _M2_M2Debug_init (int argc, char *argv[], char *envp[]);
68 : : EXTERN void _M2_M2Batch_init (int argc, char *argv[], char *envp[]);
69 : : EXTERN void _M2_StrLib_init (int argc, char *argv[], char *envp[]);
70 : : EXTERN void _M2_M2ALU_init (int argc, char *argv[], char *envp[]);
71 : : EXTERN void _M2_M2Options_init (int argc, char *argv[], char *envp[]);
72 : : EXTERN void _M2_M2Comp_init (int argc, char *argv[], char *envp[]);
73 : : EXTERN void _M2_M2LexBuf_init (int argc, char *argv[], char *envp[]);
74 : : EXTERN void _M2_SymbolTable_init (int argc, char *argv[], char *envp[]);
75 : : EXTERN void _M2_M2Base_init (int argc, char *argv[], char *envp[]);
76 : : EXTERN void _M2_M2Quads_init (int argc, char *argv[], char *envp[]);
77 : : EXTERN void _M2_SymbolKey_init (int argc, char *argv[], char *envp[]);
78 : : EXTERN void _M2_FifoQueue_init (int argc, char *argv[], char *envp[]);
79 : : EXTERN void _M2_M2Reserved_init (int argc, char *argv[], char *envp[]);
80 : : EXTERN void _M2_M2Const_init (int argc, char *argv[], char *envp[]);
81 : : EXTERN void _M2_M2LangDump_init (int argc, char *argv[], char *envp[]);
82 : : EXTERN void _M2_P1SymBuild_init (int argc, char *argv[], char *envp[]);
83 : : EXTERN void _M2_P2SymBuild_init (int argc, char *argv[], char *envp[]);
84 : : EXTERN void _M2_P3SymBuild_init (int argc, char *argv[], char *envp[]);
85 : : EXTERN void _M2_M2System_init (int argc, char *argv[], char *envp[]);
86 : : EXTERN void _M2_M2BasicBlock_init (int argc, char *argv[], char *envp[]);
87 : : EXTERN void _M2_M2Pass_init (int argc, char *argv[], char *envp[]);
88 : : EXTERN void _M2_M2Code_init (int argc, char *argv[], char *envp[]);
89 : : EXTERN void _M2_M2AsmUtil_init (int argc, char *argv[], char *envp[]);
90 : : EXTERN void _M2_M2FileName_init (int argc, char *argv[], char *envp[]);
91 : : EXTERN void _M2_M2Students_init (int argc, char *argv[], char *envp[]);
92 : : EXTERN void _M2_StrCase_init (int argc, char *argv[], char *envp[]);
93 : : EXTERN void _M2_SymbolConversion_init (int argc, char *argv[], char *envp[]);
94 : : EXTERN void _M2_M2GCCDeclare_init (int argc, char *argv[], char *envp[]);
95 : : EXTERN void _M2_M2GenGCC_init (int argc, char *argv[], char *envp[]);
96 : : EXTERN void _M2_M2Range_init (int argc, char *argv[], char *envp[]);
97 : : EXTERN void _M2_M2Swig_init (int argc, char *argv[], char *envp[]);
98 : : EXTERN void _M2_M2MetaError_init (int argc, char *argv[], char *envp[]);
99 : : EXTERN void _M2_M2CaseList_init (int argc, char *argv[], char *envp[]);
100 : : EXTERN void _M2_PCSymBuild_init (int argc, char *argv[], char *envp[]);
101 : : EXTERN void _M2_PCBuild_init (int argc, char *argv[], char *envp[]);
102 : : EXTERN void _M2_Sets_init (int argc, char *argv[], char *envp[]);
103 : : EXTERN void _M2_dtoa_init (int argc, char *argv[], char *envp[]);
104 : : EXTERN void _M2_ldtoa_init (int argc, char *argv[], char *envp[]);
105 : : EXTERN void _M2_M2Check_init (int argc, char *argv[], char *envp[]);
106 : : EXTERN void _M2_M2SSA_init (int argc, char *argv[], char *envp[]);
107 : : EXTERN void _M2_M2SymInit_init (int argc, char *argv[], char *envp[]);
108 : : EXTERN void _M2_M2StateCheck_init (int argc, char *argv[], char *envp[]);
109 : : EXTERN void _M2_P3Build_init (int argc, char *argv[], char *envp[]);
110 : : EXTERN void exit (int);
111 : : EXTERN void M2Comp_compile (const char *filename);
112 : : EXTERN void RTExceptions_DefaultErrorCatch (void);
113 : :
114 : :
115 : : /* FrontEndInit initialize the modules. This is a global
116 : : initialization and it is called once. */
117 : :
118 : : void
119 : 16934 : init_FrontEndInit (void)
120 : : {
121 : 16934 : _M2_Debug_init (0, NULL, NULL);
122 : 16934 : _M2_RTExceptions_init (0, NULL, NULL);
123 : 16934 : _M2_M2Defaults_init (0, NULL, NULL);
124 : 16934 : _M2_Environment_init (0, NULL, NULL);
125 : 16934 : _M2_M2EXCEPTION_init (0, NULL, NULL);
126 : 16934 : _M2_M2Dependent_init (0, NULL, NULL);
127 : 16934 : _M2_M2RTS_init (0, NULL, NULL);
128 : 16934 : _M2_SysExceptions_init (0, NULL, NULL);
129 : 16934 : _M2_DynamicStrings_init (0, NULL, NULL);
130 : 16934 : _M2_Assertion_init (0, NULL, NULL);
131 : 16934 : _M2_FormatStrings_init (0, NULL, NULL);
132 : 16934 : _M2_FIO_init (0, NULL, NULL);
133 : 16934 : _M2_SFIO_init (0, NULL, NULL);
134 : 16934 : _M2_SArgs_init (0, NULL, NULL);
135 : 16934 : _M2_Lists_init (0, NULL, NULL);
136 : 16934 : _M2_UnixArgs_init (0, NULL, NULL);
137 : 16934 : _M2_Args_init (0, NULL, NULL);
138 : 16934 : _M2_wrapc_init (0, NULL, NULL);
139 : 16934 : _M2_TimeString_init (0, NULL, NULL);
140 : 16934 : _M2_IO_init (0, NULL, NULL);
141 : 16934 : _M2_StdIO_init (0, NULL, NULL);
142 : 16934 : _M2_CmdArgs_init (0, NULL, NULL);
143 : 16934 : _M2_FpuIO_init (0, NULL, NULL);
144 : 16934 : _M2_SysStorage_init (0, NULL, NULL);
145 : 16934 : _M2_Storage_init (0, NULL, NULL);
146 : 16934 : _M2_StrIO_init (0, NULL, NULL);
147 : 16934 : _M2_StrLib_init (0, NULL, NULL);
148 : 16934 : _M2_dtoa_init (0, NULL, NULL);
149 : 16934 : _M2_ldtoa_init (0, NULL, NULL);
150 : 16934 : _M2_DynamicPath_init (0, NULL, NULL);
151 : 16934 : _M2_PathName_init (0, NULL, NULL);
152 : 16934 : _M2_M2Search_init (0, NULL, NULL);
153 : 16934 : _M2_M2Options_init (0, NULL, NULL);
154 : 16934 : }
155 : :
156 : : /* PerCompilationInit initialize the modules before compiling,
157 : : filename. This is called every time we compile a new file. */
158 : :
159 : : void
160 : 16934 : init_PerCompilationInit (const char *filename)
161 : : {
162 : 16934 : _M2_M2Bitset_init (0, NULL, NULL);
163 : 16934 : _M2_M2Preprocess_init (0, NULL, NULL);
164 : 16934 : _M2_M2Error_init (0, NULL, NULL);
165 : 16934 : _M2_Indexing_init (0, NULL, NULL);
166 : 16934 : _M2_NameKey_init (0, NULL, NULL);
167 : 16934 : _M2_NumberIO_init (0, NULL, NULL);
168 : 16934 : _M2_M2Debug_init (0, NULL, NULL);
169 : 16934 : _M2_M2Batch_init (0, NULL, NULL);
170 : 16934 : _M2_M2ALU_init (0, NULL, NULL);
171 : 16934 : _M2_M2Comp_init (0, NULL, NULL);
172 : 16934 : _M2_M2LexBuf_init (0, NULL, NULL);
173 : 16934 : _M2_SymbolTable_init (0, NULL, NULL);
174 : 16934 : _M2_M2Base_init (0, NULL, NULL);
175 : 16934 : _M2_M2Quads_init (0, NULL, NULL);
176 : 16934 : _M2_SymbolKey_init (0, NULL, NULL);
177 : 16934 : _M2_FifoQueue_init (0, NULL, NULL);
178 : 16934 : _M2_M2Reserved_init (0, NULL, NULL);
179 : 16934 : _M2_M2Const_init (0, NULL, NULL);
180 : 16934 : _M2_P1SymBuild_init (0, NULL, NULL);
181 : 16934 : _M2_P2SymBuild_init (0, NULL, NULL);
182 : 16934 : _M2_P3SymBuild_init (0, NULL, NULL);
183 : 16934 : _M2_M2System_init (0, NULL, NULL);
184 : 16934 : _M2_M2BasicBlock_init (0, NULL, NULL);
185 : 16934 : _M2_M2Pass_init (0, NULL, NULL);
186 : 16934 : _M2_M2Code_init (0, NULL, NULL);
187 : 16934 : _M2_M2AsmUtil_init (0, NULL, NULL);
188 : 16934 : _M2_M2FileName_init (0, NULL, NULL);
189 : 16934 : _M2_M2Students_init (0, NULL, NULL);
190 : 16934 : _M2_StrCase_init (0, NULL, NULL);
191 : 16934 : _M2_SymbolConversion_init (0, NULL, NULL);
192 : 16934 : _M2_M2GCCDeclare_init (0, NULL, NULL);
193 : 16934 : _M2_M2GenGCC_init (0, NULL, NULL);
194 : 16934 : _M2_M2Range_init (0, NULL, NULL);
195 : 16934 : _M2_M2Swig_init (0, NULL, NULL);
196 : 16934 : _M2_M2MetaError_init (0, NULL, NULL);
197 : 16934 : _M2_M2CaseList_init (0, NULL, NULL);
198 : 16934 : _M2_PCSymBuild_init (0, NULL, NULL);
199 : 16934 : _M2_PCBuild_init (0, NULL, NULL);
200 : 16934 : _M2_Sets_init (0, NULL, NULL);
201 : 16934 : _M2_M2SSA_init (0, NULL, NULL);
202 : 16934 : _M2_M2SymInit_init (0, NULL, NULL);
203 : 16934 : _M2_M2Check_init (0, NULL, NULL);
204 : 16934 : _M2_M2LangDump_init (0, NULL, NULL);
205 : 16934 : _M2_M2StateCheck_init (0, NULL, NULL);
206 : 16934 : _M2_P3Build_init (0, NULL, NULL);
207 : 16934 : M2Comp_compile (filename);
208 : 15737 : }
|