From 2b672e358d4022363e398446ff6efbf9b55e066e Mon Sep 17 00:00:00 2001 From: Vincent Celier Date: Wed, 28 May 2008 17:55:52 +0200 Subject: [PATCH] sinput-p.adb (Source_File_Is_Subunit): Allow special character used for preprocessing 2008-05-28 Vincent Celier * 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 | 9 ++++++++- gcc/ada/sinput-p.ads | 28 ++++++++++++++-------------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/gcc/ada/sinput-p.adb b/gcc/ada/sinput-p.adb index 9719d1b646c..b57c73bf957 100644 --- a/gcc/ada/sinput-p.adb +++ b/gcc/ada/sinput-p.adb @@ -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; diff --git a/gcc/ada/sinput-p.ads b/gcc/ada/sinput-p.ads index 54171fb3298..85ac35d331a 100644 --- a/gcc/ada/sinput-p.ads +++ b/gcc/ada/sinput-p.ads @@ -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 -- 2.30.2