OSDN Git Service

* common.opt (Wmudflap): New option.
[pf3gnuchains/gcc-fork.git] / gcc / ada / s-wchcon.adb
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT COMPILER COMPONENTS                         --
4 --                                                                          --
5 --                       S Y S T E M . W C H _ C O N                        --
6 --                                                                          --
7 --                                 B o d y                                  --
8 --                                                                          --
9 --          Copyright (C) 2005-2007, Free Software Foundation, Inc.         --
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 2,  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.  See the GNU General Public License --
17 -- for  more details.  You should have  received  a copy of the GNU General --
18 -- Public License  distributed with GNAT;  see file COPYING.  If not, write --
19 -- to  the  Free Software Foundation,  51  Franklin  Street,  Fifth  Floor, --
20 -- Boston, MA 02110-1301, USA.                                              --
21 --                                                                          --
22 -- As a special exception,  if other files  instantiate  generics from this --
23 -- unit, or you link  this unit with other files  to produce an executable, --
24 -- this  unit  does not  by itself cause  the resulting  executable  to  be --
25 -- covered  by the  GNU  General  Public  License.  This exception does not --
26 -- however invalidate  any other reasons why  the executable file  might be --
27 -- covered by the  GNU Public License.                                      --
28 --                                                                          --
29 -- GNAT was originally developed  by the GNAT team at  New York University. --
30 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
31 --                                                                          --
32 ------------------------------------------------------------------------------
33
34 pragma Warnings (Off);
35 pragma Compiler_Unit;
36 pragma Warnings (On);
37
38 package body System.WCh_Con is
39
40    ----------------------------
41    -- Get_WC_Encoding_Method --
42    ----------------------------
43
44    function Get_WC_Encoding_Method (C : Character) return WC_Encoding_Method is
45    begin
46       for Method in WC_Encoding_Method loop
47          if C = WC_Encoding_Letters (Method) then
48             return Method;
49          end if;
50       end loop;
51
52       raise Constraint_Error;
53    end Get_WC_Encoding_Method;
54
55    function Get_WC_Encoding_Method (S : String) return WC_Encoding_Method is
56    begin
57       if    S = "hex"       then
58          return WCEM_Hex;
59       elsif S = "upper"     then
60          return WCEM_Upper;
61       elsif S = "shift_jis" then
62          return WCEM_Shift_JIS;
63       elsif S = "euc"       then
64          return WCEM_EUC;
65       elsif S = "utf8"      then
66          return WCEM_UTF8;
67       elsif S = "brackets"  then
68          return WCEM_Brackets;
69       else
70          raise Constraint_Error;
71       end if;
72    end Get_WC_Encoding_Method;
73
74    --------------------------
75    -- Is_Start_Of_Encoding --
76    --------------------------
77
78    function Is_Start_Of_Encoding
79      (C  : Character;
80       EM : WC_Encoding_Method) return Boolean
81    is
82    begin
83       return (EM in WC_Upper_Half_Encoding_Method
84                and then Character'Pos (C) >= 16#80#)
85         or else (EM in WC_ESC_Encoding_Method and then C = ASCII.ESC);
86    end Is_Start_Of_Encoding;
87
88 end System.WCh_Con;