+void lslinit_process (void)
+ /*@globals undef g_symtab; @*/
+ /*@modifies g_symtab, internalState, fileSystem; @*/
+{
+ /*
+ ** Open init file provided by user, or use the default LCL init file
+ */
+
+ cstring larchpath = context_getLarchPath ();
+ inputStream initstream = inputStream_undefined;
+
+ setCodePoint ();
+
+ if (inputStream_isUndefined (s_initFile))
+ {
+ s_initFile = inputStream_create (cstring_makeLiteral (INITFILENAME),
+ cstring_makeLiteralTemp (LCLINIT_SUFFIX),
+ FALSE);
+
+ if (!inputStream_getPath (larchpath, s_initFile))
+ {
+ lldiagmsg (message ("Continuing without LCL init file: %s",
+ inputStream_fileName (s_initFile)));
+ }
+ else
+ {
+ if (!inputStream_open (s_initFile))
+ {
+ lldiagmsg (message ("Continuing without LCL init file: %s",
+ inputStream_fileName (s_initFile)));
+ }
+ }
+ }
+ else
+ {
+ if (!inputStream_open (s_initFile))
+ {
+ lldiagmsg (message ("Continuing without LCL init file: %s",
+ inputStream_fileName (s_initFile)));
+ }
+ }
+
+ /* Initialize checker */
+
+ lsymbol_initMod ();
+ LCLSynTableInit ();
+
+ setCodePoint ();
+
+ LCLSynTableReset ();
+ LCLTokenTableInit ();
+
+ setCodePoint ();
+
+ LCLScanLineInit ();
+ setCodePoint ();
+ LCLScanLineReset ();
+ setCodePoint ();
+ LCLScanInit ();