|  | (* M2LangDump.def provides support routines for the -flang-dump. | 
|  |  | 
|  | Copyright (C) 2024-2025 Free Software Foundation, Inc. | 
|  | Contributed by Gaius Mulley <gaiusmod2@gmail.com>. | 
|  |  | 
|  | 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/>.  *) | 
|  |  | 
|  | DEFINITION MODULE M2LangDump ; | 
|  |  | 
|  | FROM gcctypes IMPORT tree ; | 
|  | FROM DynamicStrings IMPORT String ; | 
|  | FROM FIO IMPORT File ; | 
|  |  | 
|  |  | 
|  | (* | 
|  | IsDumpRequiredTree - return TRUE if the gcc tree should be dumped. | 
|  | If no filter is specified it will always return default. | 
|  | *) | 
|  |  | 
|  | PROCEDURE IsDumpRequiredTree (gcctree: tree; default: BOOLEAN) : BOOLEAN ; | 
|  |  | 
|  |  | 
|  | (* | 
|  | IsDumpRequired - return TRUE if symbol sym should be dumped | 
|  | according to the rules of the filter. | 
|  | If no filter is specified it will always return default. | 
|  | The filter is a comma separated list.  Each element | 
|  | of the list can specify a symbol three ways. | 
|  | Firstly by DECL name for example: m2pim_NumberIO_HexToStr | 
|  | Secondly by qualified scope: [pathname.]NumberIO.HexToStr | 
|  | Thirdly by filename and scope: NumberIO.mod:HexToStr | 
|  | *) | 
|  |  | 
|  | PROCEDURE IsDumpRequired (sym: CARDINAL; default: BOOLEAN) : BOOLEAN ; | 
|  |  | 
|  |  | 
|  | (* | 
|  | MakeQuadTemplate - return a template for the quad dump file. | 
|  | *) | 
|  |  | 
|  | PROCEDURE MakeQuadTemplate () : String ; | 
|  |  | 
|  |  | 
|  | (* | 
|  | MakeGimpleTemplate - return a template for the gimple dump file and assign | 
|  | len to the max number of characters required to complete | 
|  | a template. | 
|  | *) | 
|  |  | 
|  | PROCEDURE MakeGimpleTemplate (VAR len: CARDINAL) : String ; | 
|  |  | 
|  |  | 
|  | (* | 
|  | GetDumpFile - return the dump output file. | 
|  | *) | 
|  |  | 
|  | PROCEDURE GetDumpFile () : File ; | 
|  |  | 
|  |  | 
|  | (* | 
|  | CreateDumpQuad - create the dump file for a quad dump. | 
|  | *) | 
|  |  | 
|  | PROCEDURE CreateDumpQuad (title: ARRAY OF CHAR) ; | 
|  |  | 
|  |  | 
|  | (* | 
|  | CloseDumpQuad - close the dump output file. | 
|  | *) | 
|  |  | 
|  | PROCEDURE CloseDumpQuad ; | 
|  |  | 
|  |  | 
|  | (* | 
|  | CreateDumpDecl - create the dump file for a decl dump. | 
|  | *) | 
|  |  | 
|  | PROCEDURE CreateDumpDecl (title: ARRAY OF CHAR) ; | 
|  |  | 
|  |  | 
|  | (* | 
|  | CloseDumpDecl - close the dump output file. | 
|  | *) | 
|  |  | 
|  | PROCEDURE CloseDumpDecl ; | 
|  |  | 
|  |  | 
|  | END M2LangDump. |