OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [s-casuti.adb] - Blame information for rev 706

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 706 jeremybenn
------------------------------------------------------------------------------
2
--                                                                          --
3
--                         GNAT RUN-TIME COMPONENTS                         --
4
--                                                                          --
5
--                     S Y S T E M . C A S E _ U T I L                      --
6
--                                                                          --
7
--                                 B o d y                                  --
8
--                                                                          --
9
--                     Copyright (C) 1995-2010, AdaCore                     --
10
--                                                                          --
11
-- GNAT is free software;  you can  redistribute it  and/or modify it under --
12
-- terms of the  GNU General Public License as published  by the Free Soft- --
13
-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
14
-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
15
-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
16
-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
17
--                                                                          --
18
-- As a special exception under Section 7 of GPL version 3, you are granted --
19
-- additional permissions described in the GCC Runtime Library Exception,   --
20
-- version 3.1, as published by the Free Software Foundation.               --
21
--                                                                          --
22
-- You should have received a copy of the GNU General Public License and    --
23
-- a copy of the GCC Runtime Library Exception along with this program;     --
24
-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
25
-- <http://www.gnu.org/licenses/>.                                          --
26
--                                                                          --
27
-- GNAT was originally developed  by the GNAT team at  New York University. --
28
-- Extensive contributions were provided by Ada Core Technologies Inc.      --
29
--                                                                          --
30
------------------------------------------------------------------------------
31
 
32
pragma Compiler_Unit;
33
 
34
package body System.Case_Util is
35
 
36
   --------------
37
   -- To_Lower --
38
   --------------
39
 
40
   function To_Lower (A : Character) return Character is
41
      A_Val : constant Natural := Character'Pos (A);
42
 
43
   begin
44
      if A in 'A' .. 'Z'
45
        or else A_Val in 16#C0# .. 16#D6#
46
        or else A_Val in 16#D8# .. 16#DE#
47
      then
48
         return Character'Val (A_Val + 16#20#);
49
      else
50
         return A;
51
      end if;
52
   end To_Lower;
53
 
54
   procedure To_Lower (A : in out String) is
55
   begin
56
      for J in A'Range loop
57
         A (J) := To_Lower (A (J));
58
      end loop;
59
   end To_Lower;
60
 
61
   --------------
62
   -- To_Mixed --
63
   --------------
64
 
65
   procedure To_Mixed (A : in out String) is
66
      Ucase : Boolean := True;
67
 
68
   begin
69
      for J in A'Range loop
70
         if Ucase then
71
            A (J) := To_Upper (A (J));
72
         else
73
            A (J) := To_Lower (A (J));
74
         end if;
75
 
76
         Ucase := A (J) = '_';
77
      end loop;
78
   end To_Mixed;
79
 
80
   --------------
81
   -- To_Upper --
82
   --------------
83
 
84
   function To_Upper (A : Character) return Character is
85
      A_Val : constant Natural := Character'Pos (A);
86
 
87
   begin
88
      if A in 'a' .. 'z'
89
        or else A_Val in 16#E0# .. 16#F6#
90
        or else A_Val in 16#F8# .. 16#FE#
91
      then
92
         return Character'Val (A_Val - 16#20#);
93
      else
94
         return A;
95
      end if;
96
   end To_Upper;
97
 
98
   procedure To_Upper (A : in out String) is
99
   begin
100
      for J in A'Range loop
101
         A (J) := To_Upper (A (J));
102
      end loop;
103
   end To_Upper;
104
 
105
end System.Case_Util;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.