sinput-p.adb (Source_File_Is_Subunit): Allow special character used for preprocessing
authorVincent Celier <celier@adacore.com>
Wed, 28 May 2008 15:55:52 +0000 (17:55 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 28 May 2008 15:55:52 +0000 (17:55 +0200)
2008-05-28  Vincent Celier  <celier@adacore.com>

* sinput-p.adb (Source_File_Is_Subunit): Allow special character used
for preprocessing

* sinput-p.ads: Minor comment update and reformatting

From-SVN: r136112

gcc/ada/sinput-p.adb
gcc/ada/sinput-p.ads

index 9719d1b646ccad091210d0ecaad9e4b34c4b5aab..b57c73bf957908ca0ab9f077d2b56d3fd5a2bb19 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 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- --
@@ -95,6 +95,11 @@ package body Sinput.P is
    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
@@ -108,6 +113,8 @@ package body Sinput.P is
          Prj.Err.Scanner.Scan;
       end loop;
 
+      Prj.Err.Scanner.Reset_Special_Characters;
+
       return Token = Tok_Separate;
    end Source_File_Is_Subunit;
 
index 54171fb3298bc4b6412659b53128eb91bcec48d8..85ac35d331a878dcd48d4fb274a2c32621b813e8 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 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- --
@@ -32,8 +32,8 @@ with Scans; use Scans;
 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
@@ -41,13 +41,13 @@ package Sinput.P is
    --  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
@@ -55,14 +55,14 @@ package Sinput.P is
    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