-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2007, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2008, 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- --
begin
Prj.Err.Scanner.Initialize_Scanner (X);
+ -- No error for special characters that are used for preprocessing
+
+ Prj.Err.Scanner.Set_Special_Character ('#');
+ Prj.Err.Scanner.Set_Special_Character ('$');
+
-- We scan past junk to the first interesting compilation unit
-- token, to see if it is SEPARATE. We ignore WITH keywords during
-- this and also PRIVATE. The reason for ignoring PRIVATE is that
Prj.Err.Scanner.Scan;
end loop;
+ Prj.Err.Scanner.Reset_Special_Characters;
+
return Token = Tok_Separate;
end Source_File_Is_Subunit;
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2007, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2008, 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- --
package Sinput.P is
function Load_Project_File (Path : String) return Source_File_Index;
- -- Load into memory the source of a project source file.
- -- Initialize the Scans state.
+ -- Load into memory the source of a project source file. Initialize the
+ -- Scans state.
procedure Reset_First;
-- Indicate that the next project loaded should be considered as the first
-- is to get the correct number of lines when error finalization is called.
function Source_File_Is_Subunit (X : Source_File_Index) return Boolean;
- -- This function determines if a source file represents a subunit. It
- -- works by scanning for the first compilation unit token, and returning
- -- True if it is the token SEPARATE. It will return False otherwise,
- -- meaning that the file cannot possibly be a legal subunit. This
- -- function does NOT do a complete parse of the file, or build a
- -- tree. It is used in gnatmake to decide if a body without a spec
- -- in a project file needs to be compiled or not.
+ -- This function determines if a source file represents a subunit. It works
+ -- by scanning for the first compilation unit token, and returning True if
+ -- it is the token SEPARATE. It will return False otherwise, meaning that
+ -- the file cannot possibly be a legal subunit. This function does NOT do a
+ -- complete parse of the file, or build a tree. It is used in gnatmake and
+ -- gprbuild to decide if a body without a spec in a project file needs to
+ -- be compiled or not.
type Saved_Project_Scan_State is limited private;
-- Used to save project scan state in following two routines
procedure Save_Project_Scan_State
(Saved_State : out Saved_Project_Scan_State);
pragma Inline (Save_Project_Scan_State);
- -- Save the Scans state, as well as the values of
- -- Source and Current_Source_File.
+ -- Save the Scans state, as well as the values of Source and
+ -- Current_Source_File.
procedure Restore_Project_Scan_State
(Saved_State : Saved_Project_Scan_State);
pragma Inline (Restore_Project_Scan_State);
- -- Restore the Scans state and the values of
- -- Source and Current_Source_File.
+ -- Restore the Scans state and the values of Source and
+ -- Current_Source_File.
private