-------------------------------------------------------------------------------
-- (C) Altran Praxis Limited
-------------------------------------------------------------------------------
--
-- The SPARK toolset is free software; you can redistribute it and/or modify it
-- under terms of the GNU General Public License as published by the Free
-- Software Foundation; either version 3, or (at your option) any later
-- version. The SPARK toolset 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 distributed with the SPARK toolset; see file
-- COPYING3. If not, go to http://www.gnu.org/licenses for a complete copy of
-- the license.
--
--=============================================================================

--# inherit Casing,
--#         CommandLineData,
--#         ConfigFile,
--#         ContextManager,
--#         ContextManager.Ops,
--#         Declarations,
--#         Dictionary,
--#         ErrorHandler,
--#         Error_Types,
--#         E_Strings,
--#         FileSystem,
--#         File_Utils,
--#         Graph,
--#         IndexManager,
--#         LexTokenLists,
--#         LexTokenManager,
--#         MetaFile,
--#         RequiredUnits,
--#         ScreenEcho,
--#         Sem,
--#         SLI,
--#         SparkHTML,
--#         SparkLex,
--#         SPARK_IO,
--#         SPParser,
--#         Statistics,
--#         StmtStack,
--#         STree,
--#         VCG,
--#         XMLReport;

package MainLoop is

   procedure Process_Files;
   --# global in out CommandLineData.Content;
   --#        in out ConfigFile.State;
   --#        in out ContextManager.Ops.File_Heap;
   --#        in out ContextManager.Ops.Unit_Heap;
   --#        in out ContextManager.Ops.Unit_Stack;
   --#        in out Declarations.State;
   --#        in out ErrorHandler.Error_Context;
   --#        in out Graph.Table;
   --#        in out IndexManager.State;
   --#        in out LexTokenManager.State;
   --#        in out SLI.State;
   --#        in out SparkHTML.Generate_HTML;
   --#        in out SPARK_IO.File_Sys;
   --#        in out Statistics.TableUsage;
   --#        in out StmtStack.S;
   --#        in out STree.Table;
   --#        in out VCG.Invoked;
   --#           out Dictionary.Dict;
   --#           out Sem.State;
   --#           out SparkHTML.HTML_Work_Dir;
   --#           out SparkHTML.SPARK_Work_Dir;
   --#           out SparkLex.Curr_Line;
   --#           out XMLReport.State;
   --# derives CommandLineData.Content,
   --#         ContextManager.Ops.File_Heap,
   --#         ContextManager.Ops.Unit_Heap,
   --#         ContextManager.Ops.Unit_Stack,
   --#         Declarations.State,
   --#         ErrorHandler.Error_Context,
   --#         Graph.Table,
   --#         IndexManager.State,
   --#         LexTokenManager.State,
   --#         SLI.State,
   --#         Statistics.TableUsage,
   --#         StmtStack.S,
   --#         STree.Table,
   --#         VCG.Invoked                   from *,
   --#                                            CommandLineData.Content,
   --#                                            ContextManager.Ops.File_Heap,
   --#                                            ContextManager.Ops.Unit_Heap,
   --#                                            ContextManager.Ops.Unit_Stack,
   --#                                            ErrorHandler.Error_Context,
   --#                                            IndexManager.State,
   --#                                            LexTokenManager.State,
   --#                                            SLI.State,
   --#                                            SparkHTML.Generate_HTML,
   --#                                            SPARK_IO.File_Sys,
   --#                                            STree.Table &
   --#         ConfigFile.State              from *,
   --#                                            CommandLineData.Content,
   --#                                            ErrorHandler.Error_Context,
   --#                                            LexTokenManager.State,
   --#                                            SPARK_IO.File_Sys &
   --#         Dictionary.Dict,
   --#         SparkHTML.Generate_HTML       from CommandLineData.Content,
   --#                                            ContextManager.Ops.File_Heap,
   --#                                            ContextManager.Ops.Unit_Heap,
   --#                                            ContextManager.Ops.Unit_Stack,
   --#                                            ErrorHandler.Error_Context,
   --#                                            IndexManager.State,
   --#                                            LexTokenManager.State,
   --#                                            SLI.State,
   --#                                            SparkHTML.Generate_HTML,
   --#                                            SPARK_IO.File_Sys,
   --#                                            Statistics.TableUsage,
   --#                                            STree.Table &
   --#         Sem.State,
   --#         SparkLex.Curr_Line,
   --#         XMLReport.State               from CommandLineData.Content,
   --#                                            ContextManager.Ops.File_Heap,
   --#                                            ContextManager.Ops.Unit_Heap,
   --#                                            ContextManager.Ops.Unit_Stack,
   --#                                            ErrorHandler.Error_Context,
   --#                                            IndexManager.State,
   --#                                            LexTokenManager.State,
   --#                                            SLI.State,
   --#                                            SparkHTML.Generate_HTML,
   --#                                            SPARK_IO.File_Sys,
   --#                                            STree.Table &
   --#         SparkHTML.HTML_Work_Dir,
   --#         SparkHTML.SPARK_Work_Dir      from CommandLineData.Content,
   --#                                            LexTokenManager.State,
   --#                                            SPARK_IO.File_Sys &
   --#         SPARK_IO.File_Sys             from *,
   --#                                            CommandLineData.Content,
   --#                                            ContextManager.Ops.File_Heap,
   --#                                            ContextManager.Ops.Unit_Heap,
   --#                                            ContextManager.Ops.Unit_Stack,
   --#                                            ErrorHandler.Error_Context,
   --#                                            IndexManager.State,
   --#                                            LexTokenManager.State,
   --#                                            SLI.State,
   --#                                            SparkHTML.Generate_HTML,
   --#                                            Statistics.TableUsage,
   --#                                            STree.Table,
   --#                                            VCG.Invoked;

end MainLoop;
