diff options
author | Tristan Gingold <tgingold@free.fr> | 2014-11-04 20:14:19 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2014-11-04 20:14:19 +0100 |
commit | 9c195bf5d86d67ea5eb419ccf6e48dc153e57c68 (patch) | |
tree | 575346e529b99e26382b4a06f6ff2caa0b391ab2 /str_table.adb | |
parent | 184a123f91e07c927292d67462561dc84f3a920d (diff) | |
download | ghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.tar.gz ghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.tar.bz2 ghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.zip |
Move sources to src/ subdirectory.
Diffstat (limited to 'str_table.adb')
-rw-r--r-- | str_table.adb | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/str_table.adb b/str_table.adb deleted file mode 100644 index 947c98792..000000000 --- a/str_table.adb +++ /dev/null @@ -1,92 +0,0 @@ --- String table. --- Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold --- --- GHDL is free software; you can redistribute it and/or modify it under --- the terms of the GNU General Public License as published by the Free --- Software Foundation; either version 2, or (at your option) any later --- version. --- --- GHDL is distributed in the hope that it will be useful, but WITHOUT 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 --- along with GHDL; see the file COPYING. If not, write to the Free --- Software Foundation, 59 Temple Place - Suite 330, Boston, MA --- 02111-1307, USA. -with System; -with Ada.Unchecked_Conversion; -with GNAT.Table; - -package body Str_Table is - package String_Table is new GNAT.Table - (Table_Index_Type => String_Id, - Table_Component_Type => Character, - Table_Low_Bound => Null_String + 1, - Table_Initial => 4096, - Table_Increment => 100); - - Nul : constant Character := Character'Val (0); - - In_String : Boolean := False; - function Start return String_Id - is - begin - pragma Assert (In_String = False); - In_String := True; - return String_Table.Last + 1; - end Start; - - procedure Append (C : Character) is - begin - pragma Assert (In_String); - String_Table.Append (C); - end Append; - - procedure Finish is - begin - pragma Assert (In_String); - String_Table.Append (Nul); - In_String := False; - end Finish; - - function Get_String_Fat_Acc (Id : String_Id) return String_Fat_Acc - is - function To_String_Fat_Acc is new Ada.Unchecked_Conversion - (Source => System.Address, Target => String_Fat_Acc); - begin - return To_String_Fat_Acc (String_Table.Table (Id)'Address); - end Get_String_Fat_Acc; - - function Get_Length (Id : String_Id) return Natural - is - Ptr : String_Fat_Acc; - Len : Nat32; - begin - Ptr := Get_String_Fat_Acc (Id); - Len := 1; - loop - if Ptr (Len) = Nul then - return Natural (Len - 1); - end if; - Len := Len + 1; - end loop; - end Get_Length; - - function Image (Id : String_Id) return String - is - Ptr : String_Fat_Acc; - Len : Nat32; - begin - Len := Nat32 (Get_Length (Id)); - Ptr := Get_String_Fat_Acc (Id); - return String (Ptr (1 .. Len)); - end Image; - - procedure Initialize is - begin - String_Table.Free; - String_Table.Init; - end Initialize; -end Str_Table; |