blob: a9dfcc70069d837ce6f1d26b586a37f129bee7b4 [file] [log] [blame]
/* init.cc initializes the modules of the GNU Modula-2 front end.
Copyright (C) 2012-2023 Free Software Foundation, Inc.
Contributed by Gaius Mulley <gaius@glam.ac.uk>.
This file is part of GNU Modula-2.
GNU Modula-2 is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Modula-2 is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Modula-2; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#include "init.h"
#include "config.h"
#include "system.h"
#if defined(__GNUG__)
#define EXTERN extern "C"
#else /* !__GNUG__ */
#define EXTERN extern
#endif /* !__GNUG__ */
EXTERN void _M2_M2Bitset_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_Debug_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Defaults_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_Environment_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_RTExceptions_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2EXCEPTION_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2RTS_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Dependent_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_SysExceptions_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_DynamicStrings_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_Assertion_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_FormatStrings_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_FIO_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_SFIO_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_SArgs_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_Lists_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_UnixArgs_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_Args_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_wrapc_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_TimeString_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_IO_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_StdIO_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_CmdArgs_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Preprocess_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Error_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Search_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_DynamicStringPath_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_Indexing_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_NameKey_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_NumberIO_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_FpuIO_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_SysStorage_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_Storage_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_StrIO_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Debug_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Batch_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_StrLib_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2ALU_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Options_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Comp_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2LexBuf_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_SymbolTable_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Base_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Quads_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_SymbolKey_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_FifoQueue_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Reserved_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Const_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_P1SymBuild_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_P2SymBuild_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_P3SymBuild_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2System_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2BasicBlock_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Pass_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Code_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2AsmUtil_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2FileName_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Students_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_StrCase_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_SymbolConversion_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2GCCDeclare_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2GenGCC_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Range_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Swig_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2MetaError_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2CaseList_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_PCSymBuild_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_PCBuild_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_Sets_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_dtoa_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_ldtoa_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2Check_init (int argc, char *argv[], char *envp[]);
EXTERN void _M2_M2SSA_init (int argc, char *argv[], char *envp[]);
EXTERN void exit (int);
EXTERN void M2Comp_compile (const char *filename);
EXTERN void RTExceptions_DefaultErrorCatch (void);
/* FrontEndInit initialize the modules. This is a global
initialization and it is called once. */
void
init_FrontEndInit (void)
{
_M2_Debug_init (0, NULL, NULL);
_M2_RTExceptions_init (0, NULL, NULL);
_M2_M2Defaults_init (0, NULL, NULL);
_M2_Environment_init (0, NULL, NULL);
_M2_M2EXCEPTION_init (0, NULL, NULL);
_M2_M2Dependent_init (0, NULL, NULL);
_M2_M2RTS_init (0, NULL, NULL);
_M2_SysExceptions_init (0, NULL, NULL);
_M2_DynamicStrings_init (0, NULL, NULL);
_M2_Assertion_init (0, NULL, NULL);
_M2_FormatStrings_init (0, NULL, NULL);
_M2_FIO_init (0, NULL, NULL);
_M2_SFIO_init (0, NULL, NULL);
_M2_SArgs_init (0, NULL, NULL);
_M2_Lists_init (0, NULL, NULL);
_M2_UnixArgs_init (0, NULL, NULL);
_M2_Args_init (0, NULL, NULL);
_M2_wrapc_init (0, NULL, NULL);
_M2_TimeString_init (0, NULL, NULL);
_M2_IO_init (0, NULL, NULL);
_M2_StdIO_init (0, NULL, NULL);
_M2_CmdArgs_init (0, NULL, NULL);
_M2_FpuIO_init (0, NULL, NULL);
_M2_SysStorage_init (0, NULL, NULL);
_M2_Storage_init (0, NULL, NULL);
_M2_StrIO_init (0, NULL, NULL);
_M2_StrLib_init (0, NULL, NULL);
_M2_dtoa_init (0, NULL, NULL);
_M2_ldtoa_init (0, NULL, NULL);
_M2_DynamicStringPath_init (0, NULL, NULL);
_M2_M2Search_init (0, NULL, NULL);
_M2_M2Options_init (0, NULL, NULL);
}
/* PerCompilationInit initialize the modules before compiling,
filename. This is called every time we compile a new file. */
void
init_PerCompilationInit (const char *filename)
{
_M2_M2Bitset_init (0, NULL, NULL);
_M2_M2Preprocess_init (0, NULL, NULL);
_M2_M2Error_init (0, NULL, NULL);
_M2_Indexing_init (0, NULL, NULL);
_M2_NameKey_init (0, NULL, NULL);
_M2_NumberIO_init (0, NULL, NULL);
_M2_M2Debug_init (0, NULL, NULL);
_M2_M2Batch_init (0, NULL, NULL);
_M2_M2ALU_init (0, NULL, NULL);
_M2_M2Comp_init (0, NULL, NULL);
_M2_M2LexBuf_init (0, NULL, NULL);
_M2_SymbolTable_init (0, NULL, NULL);
_M2_M2Base_init (0, NULL, NULL);
_M2_M2Quads_init (0, NULL, NULL);
_M2_SymbolKey_init (0, NULL, NULL);
_M2_FifoQueue_init (0, NULL, NULL);
_M2_M2Reserved_init (0, NULL, NULL);
_M2_M2Const_init (0, NULL, NULL);
_M2_P1SymBuild_init (0, NULL, NULL);
_M2_P2SymBuild_init (0, NULL, NULL);
_M2_P3SymBuild_init (0, NULL, NULL);
_M2_M2System_init (0, NULL, NULL);
_M2_M2BasicBlock_init (0, NULL, NULL);
_M2_M2Pass_init (0, NULL, NULL);
_M2_M2Code_init (0, NULL, NULL);
_M2_M2AsmUtil_init (0, NULL, NULL);
_M2_M2FileName_init (0, NULL, NULL);
_M2_M2Students_init (0, NULL, NULL);
_M2_StrCase_init (0, NULL, NULL);
_M2_SymbolConversion_init (0, NULL, NULL);
_M2_M2GCCDeclare_init (0, NULL, NULL);
_M2_M2GenGCC_init (0, NULL, NULL);
_M2_M2Range_init (0, NULL, NULL);
_M2_M2Swig_init (0, NULL, NULL);
_M2_M2MetaError_init (0, NULL, NULL);
_M2_M2CaseList_init (0, NULL, NULL);
_M2_PCSymBuild_init (0, NULL, NULL);
_M2_PCBuild_init (0, NULL, NULL);
_M2_Sets_init (0, NULL, NULL);
_M2_M2SSA_init (0, NULL, NULL);
_M2_M2Check_init (0, NULL, NULL);
M2Comp_compile (filename);
}