/usr/share/ada/adainclude/gnatprj/osint-c.ads is in libgnatprj6-dev 6.4.0-17ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 | ------------------------------------------------------------------------------
-- --
-- GNAT COMPILER COMPONENTS --
-- --
-- O S I N T - C --
-- --
-- S p e c --
-- --
-- Copyright (C) 2001-2015, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- ware Foundation; either version 3, or (at your option) any later ver- --
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT 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 GNAT; see file COPYING3. If not, go to --
-- http://www.gnu.org/licenses for a complete copy of the license. --
-- --
-- GNAT was originally developed by the GNAT team at New York University. --
-- Extensive contributions were provided by Ada Core Technologies Inc. --
-- --
------------------------------------------------------------------------------
-- This package contains the low level, operating system routines used only
-- in the GNAT compiler for command line processing and file input output.
package Osint.C is
procedure Set_Output_Object_File_Name (Name : String);
-- Called by the subprogram processing the command line when an
-- output object file name is found.
function Get_Output_Object_File_Name return String;
-- Returns the name of the output object file as saved by a call to
-- Set_Output_Object_File_Name. Only valid to call if name has been set.
function More_Source_Files return Boolean;
-- Indicates whether more source file remain to be processed. Returns
-- False right away if no source files, or if all source files have
-- been processed.
function Next_Main_Source return File_Name_Type;
-- This function returns the name of the next main source file specified
-- on the command line. It is an error to call Next_Main_Source if no more
-- source files exist (i.e. Next_Main_Source may be called only if a
-- previous call to More_Source_Files returned True). This name is the
-- simple file name (without any directory information).
------------------------------
-- Debug Source File Output --
------------------------------
-- These routines are used by the compiler to generate the debug source
-- file for the Debug_Generated_Code (-gnatD switch) option. Note that
-- debug source file writing occurs at a completely different point in
-- the processing from library information output, or representation
-- output, so the code in the body can assume that no two of these
-- functions are ever used at the same time.
function Create_Debug_File (Src : File_Name_Type) return File_Name_Type;
-- Given the simple name of a source file, this routine creates the
-- corresponding debug file, and returns its full name.
procedure Write_Debug_Info (Info : String);
-- Writes contents of given string as next line of the current debug
-- source file created by the most recent call to Create_Debug_File.
-- Info does not contain end of line or other formatting characters.
procedure Close_Debug_File;
-- Close current debug file created by the most recent call to
-- Create_Debug_File.
function Debug_File_Eol_Length return Nat;
-- Returns the number of characters (1 for NL, 2 for CR/LF) written
-- at the end of each line by Write_Debug_Info.
--------------------------------
-- Representation File Output --
--------------------------------
-- These routines are used by the compiler to generate the representation
-- information to a file if this option is specified (-gnatR?s switch).
-- Note that the writing of this file occurs at a completely different
-- point in the processing from library information output, or from
-- debug file output, so the code in the body can assume that no two
-- of these functions are ever used at the same time.
-- Note: these routines are called from Repinfo, but are not called
-- directly, since we do not want Repinfo to depend on Osint. That
-- would cause a lot of unwanted junk to be dragged into ASIS. So
-- what we do is we have Initialize set the addresses of these three
-- procedures in appropriate variables in Repinfo, so that they can
-- be called indirectly without creating a dependence.
procedure Create_Repinfo_File (Src : String);
-- Given the simple name of a source file, this routine creates the
-- corresponding file to hold representation information. Note that the
-- call destroys the contents of Name_Buffer and Name_Len.
procedure Write_Repinfo_Line (Info : String);
-- Writes contents of given string as next line of the current debug
-- source file created by the most recent call to Create_Repinfo_File.
-- Info does not contain end of line or other formatting characters.
procedure Close_Repinfo_File;
-- Close current debug file created by the most recent call to
-- Create_Repinfo_File.
procedure Set_File_Name (Ext : String);
-- Sets a default file name from the main compiler source name. Ext is the
-- extension, e.g. "ali" for a library information file. The name is in
-- Name_Buffer (with length in Name_Len) on return.
--------------------------------
-- Library Information Output --
--------------------------------
-- These routines are used by the compiler to generate the library
-- information file for the main source file being compiled. See section
-- above for a discussion of how library information files are stored.
procedure Create_Output_Library_Info;
-- Creates the output library information file for the source file which
-- is currently being compiled (i.e. the file which was most recently
-- returned by Next_Main_Source).
procedure Open_Output_Library_Info;
-- Opens the output library information file for the source file which
-- is currently being compiled (i.e. the file which was most recently
-- returned by Next_Main_Source) for appending. This is used to append
-- the globals computed in flow analysis in gnatprove mode.
procedure Write_Library_Info (Info : String);
-- Writes the contents of the referenced string to the library information
-- file for the main source file currently being compiled (i.e. the file
-- which was most recently opened with a call to Read_Next_File). Info
-- represents a single line in the file, but does not contain any line
-- termination characters. The implementation of Write_Library_Info is
-- responsible for adding necessary end of line and end of file control
-- characters to the generated file.
procedure Close_Output_Library_Info;
-- Closes the file created by Create_Output_Library_Info, flushing any
-- buffers etc. from writes by Write_Library_Info.
procedure Read_Library_Info
(Name : out File_Name_Type;
Text : out Text_Buffer_Ptr);
-- The procedure version of Read_Library_Info is used from the compiler
-- to read an existing ali file associated with the main unit. If the
-- ALI file exists, then its file name is returned in Name, and its
-- text is returned in Text. If the file does not exist, then Text is
-- set to null.
--------------------------
-- C Translation Output --
--------------------------
-- These routines are used by the compiler when the C translation option
-- is activated to write *.c and *.h files to the current object directory.
-- Each routine exists in a C and an H form for the two kinds of files.
-- Only one of these files can be written at a time. Note that the files
-- are written via the Output package routines, using Output_FD.
procedure Create_C_File;
procedure Create_H_File;
-- Creates the *.c or *.h file for the source file which is currently
-- being compiled (i.e. the file which was most recently returned by
-- Next_Main_Source).
procedure Close_C_File;
procedure Close_H_File;
-- Closes the file created by Create_C_File or Create_H file, flushing any
-- buffers etc. from writes by Write_C_File and Write_H_File;
----------------------
-- List File Output --
----------------------
procedure Create_List_File (S : String);
-- Creates the file whose name is given by S. If the name starts with a
-- period, then the name is xxx & S, where xxx is the name of the main
-- source file without the extension stripped. Information is written to
-- this file using Write_List_File.
procedure Write_List_Info (S : String);
-- Writes given string to the list file created by Create_List_File
procedure Close_List_File;
-- Close file previously opened by Create_List_File
--------------------------------
-- Semantic Tree Input-Output --
--------------------------------
procedure Tree_Create;
-- Creates the tree output file for the source file which is currently
-- being compiled (i.e. the file which was most recently returned by
-- Next_Main_Source), and initializes Tree_IO.Tree_Write for output.
procedure Tree_Close;
-- Closes the file previously opened by Tree_Create
end Osint.C;
|