X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=gcc%2Fada%2Fprj-attr.adb;fp=gcc%2Fada%2Fprj-attr.adb;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=d3620e01680a1fe802c8e8a3ae81031c7f4c0217;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/ada/prj-attr.adb b/gcc/ada/prj-attr.adb deleted file mode 100644 index d3620e01..00000000 --- a/gcc/ada/prj-attr.adb +++ /dev/null @@ -1,264 +0,0 @@ ------------------------------------------------------------------------------- --- -- --- GNAT COMPILER COMPONENTS -- --- -- --- P R J . A T T R -- --- -- --- B o d y -- --- -- --- $Revision: 1.5.10.1 $ --- -- --- Copyright (C) 2001 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 2, 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 COPYING. If not, write -- --- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -- --- MA 02111-1307, USA. -- --- -- --- GNAT was originally developed by the GNAT team at New York University. -- --- Extensive contributions were provided by Ada Core Technologies Inc. -- --- -- ------------------------------------------------------------------------------- - -with Ada.Characters.Handling; use Ada.Characters.Handling; -with Namet; use Namet; -with Output; use Output; - -package body Prj.Attr is - - -- Names end with '#' - - -- Package names are preceded by 'P' - - -- Attribute names are preceded by two letters - - -- The first letter is one of - -- 'S' for Single - -- 'L' for list - - -- The second letter is one of - -- 'V' for single variable - -- 'A' for associative array - -- 'a' for case insensitive associative array - - -- End is indicated by two consecutive '#'. - - Initialization_Data : constant String := - - -- project attributes - - "SVobject_dir#" & - "SVexec_dir#" & - "LVsource_dirs#" & - "LVsource_files#" & - "SVsource_list_file#" & - "SVlibrary_dir#" & - "SVlibrary_name#" & - "SVlibrary_kind#" & - "SVlibrary_elaboration#" & - "SVlibrary_version#" & - "LVmain#" & - "LVlanguages#" & - - -- package Naming - - "Pnaming#" & - "Saspecification_suffix#" & - "Saimplementation_suffix#" & - "SVseparate_suffix#" & - "SVcasing#" & - "SVdot_replacement#" & - "SAspecification#" & - "SAimplementation#" & - "LAspecification_exceptions#" & - "LAimplementation_exceptions#" & - - -- package Compiler - - "Pcompiler#" & - "Ladefault_switches#" & - "LAswitches#" & - "SVlocal_configuration_pragmas#" & - - -- package Builder - - "Pbuilder#" & - "Ladefault_switches#" & - "LAswitches#" & - "SVglobal_configuration_pragmas#" & - - -- package gnatls - - "Pgnatls#" & - "LVswitches#" & - - -- package Binder - - "Pbinder#" & - "Ladefault_switches#" & - "LAswitches#" & - - -- package Linker - - "Plinker#" & - "Ladefault_switches#" & - "LAswitches#" & - - -- package Cross_Reference - - "Pcross_reference#" & - "Ladefault_switches#" & - "LAswitches#" & - - -- package Finder - - "Pfinder#" & - "Ladefault_switches#" & - "LAswitches#" & - - -- package Gnatstub - - "Pgnatstub#" & - "LVswitches#" & - - "#"; - - ---------------- - -- Initialize -- - ---------------- - - procedure Initialize is - Start : Positive := Initialization_Data'First; - Finish : Positive := Start; - Current_Package : Package_Node_Id := Empty_Package; - Current_Attribute : Attribute_Node_Id := Empty_Attribute; - Is_An_Attribute : Boolean := False; - Kind_1 : Variable_Kind := Undefined; - Kind_2 : Attribute_Kind := Single; - Package_Name : Name_Id := No_Name; - Attribute_Name : Name_Id := No_Name; - First_Attribute : Attribute_Node_Id := Attribute_First; - - begin - -- Make sure the two tables are empty - - Attributes.Set_Last (Attributes.First); - Package_Attributes.Set_Last (Package_Attributes.First); - - while Initialization_Data (Start) /= '#' loop - Is_An_Attribute := True; - case Initialization_Data (Start) is - when 'P' => - - -- New allowed package - - Start := Start + 1; - - Finish := Start; - while Initialization_Data (Finish) /= '#' loop - Finish := Finish + 1; - end loop; - - Name_Len := Finish - Start; - Name_Buffer (1 .. Name_Len) := - To_Lower (Initialization_Data (Start .. Finish - 1)); - Package_Name := Name_Find; - - for Index in Package_First .. Package_Attributes.Last loop - if Package_Name = Package_Attributes.Table (Index).Name then - Write_Line ("Duplicate package name """ & - Initialization_Data (Start .. Finish - 1) & - """ in Prj.Attr body."); - raise Program_Error; - end if; - end loop; - - Is_An_Attribute := False; - Current_Attribute := Empty_Attribute; - Package_Attributes.Increment_Last; - Current_Package := Package_Attributes.Last; - Package_Attributes.Table (Current_Package).Name := - Package_Name; - Start := Finish + 1; - - when 'S' => - Kind_1 := Single; - - when 'L' => - Kind_1 := List; - - when others => - raise Program_Error; - end case; - - if Is_An_Attribute then - - -- New attribute - - Start := Start + 1; - case Initialization_Data (Start) is - when 'V' => - Kind_2 := Single; - when 'A' => - Kind_2 := Associative_Array; - when 'a' => - Kind_2 := Case_Insensitive_Associative_Array; - when others => - raise Program_Error; - end case; - - Start := Start + 1; - Finish := Start; - - while Initialization_Data (Finish) /= '#' loop - Finish := Finish + 1; - end loop; - - Name_Len := Finish - Start; - Name_Buffer (1 .. Name_Len) := - To_Lower (Initialization_Data (Start .. Finish - 1)); - Attribute_Name := Name_Find; - Attributes.Increment_Last; - if Current_Attribute = Empty_Attribute then - First_Attribute := Attributes.Last; - - if Current_Package /= Empty_Package then - Package_Attributes.Table (Current_Package).First_Attribute - := Attributes.Last; - end if; - - else - -- Check that there are no duplicate attributes - - for Index in First_Attribute .. Attributes.Last - 1 loop - if Attribute_Name = - Attributes.Table (Index).Name then - Write_Line ("Duplicate attribute name """ & - Initialization_Data (Start .. Finish - 1) & - """ in Prj.Attr body."); - raise Program_Error; - end if; - end loop; - - Attributes.Table (Current_Attribute).Next := - Attributes.Last; - end if; - - Current_Attribute := Attributes.Last; - Attributes.Table (Current_Attribute) := - (Name => Attribute_Name, - Kind_1 => Kind_1, - Kind_2 => Kind_2, - Next => Empty_Attribute); - Start := Finish + 1; - end if; - end loop; - end Initialize; - -end Prj.Attr;