/[eiffelstudio]/FreeELKS/trunk/library/kernel/character_32_ref.e
ViewVC logotype

Diff of /FreeELKS/trunk/library/kernel/character_32_ref.e

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

FreeELKS/trunk/library/kernel/wide_character_ref.e revision 91475 by ericb, Fri Feb 17 22:36:59 2006 UTC FreeELKS/trunk/library/kernel/character_32_ref.e revision 91477 by ericb, Sun Jan 14 09:47:13 2007 UTC
# Line 7  indexing Line 7  indexing
7          revision: "$Revision$"          revision: "$Revision$"
8    
9  class  class
10          WIDE_CHARACTER_REF          CHARACTER_32_REF
11    
12  inherit  inherit
13          COMPARABLE          COMPARABLE
# Line 20  inherit Line 20  inherit
20                          is_hashable, is_equal, out                          is_hashable, is_equal, out
21                  end                  end
22    
23            REFACTORING_HELPER
24                    redefine
25                            is_equal, out
26                    end
27    
28  feature -- Access  feature -- Access
29    
30          item: WIDE_CHARACTER is          item: CHARACTER_32 is
31                          -- Unicode character value                          -- Unicode character value
32                  external                  external
33                          "built_in"                          "built_in"
# Line 40  feature -- Access Line 45  feature -- Access
45                          Result := code                          Result := code
46                  end                  end
47    
48            natural_32_code: NATURAL_32 is
49                            -- Associated integer value
50                    do
51                            Result := item.natural_32_code
52                    end
53    
54            Min_value: NATURAL_32 is 0
55            Max_value: NATURAL_32 is 4294967295
56                            -- Bounds for integer representation of CHARACTER_32
57    
58  feature -- Status report  feature -- Status report
59    
60          is_hashable: BOOLEAN is True          is_hashable: BOOLEAN is True
61                          -- May current object be hashed?                          -- May current object be hashed?
62    
63            is_space: BOOLEAN is
64                            -- Is `item' a white space?
65                    require
66                            is_character_8_compatible: is_character_8
67                    do
68                            Result := to_character_8.is_space
69                    end
70    
71            is_character_8: BOOLEAN is
72                            -- Can current be represented on a CHARACTER_8?
73                    do
74                            Result := natural_32_code <= {CHARACTER_8}.max_value.to_natural_32
75                    end
76    
77  feature -- Comparison  feature -- Comparison
78    
79          infix "<" (other: like Current): BOOLEAN is          infix "<" (other: like Current): BOOLEAN is
# Line 64  feature -- Comparison Line 93  feature -- Comparison
93    
94  feature -- Element change  feature -- Element change
95    
96          set_item (c: WIDE_CHARACTER) is          set_item (c: CHARACTER_32) is
97                          -- Make `c' the `item' value.                          -- Make `c' the `item' value.
98                  external                  external
99                          "built_in"                          "built_in"
# Line 83  feature -- Output Line 112  feature -- Output
112    
113  feature {NONE} -- Initialization  feature {NONE} -- Initialization
114    
115          make_from_reference (v: WIDE_CHARACTER_REF) is          make_from_reference (v: CHARACTER_32_REF) is
116                          -- Initialize `Current' with `v.item'.                          -- Initialize `Current' with `v.item'.
117                  require                  require
118                          v_not_void: v /= Void                          v_not_void: v /= Void
119                  do                  do
120                          set_item (v)                          set_item (v)
121                  ensure                  ensure
122                          item_set: item = v.item                          item_set: item = v.item
123                  end                  end
124    
125  feature -- Conversion  feature -- Conversion
126    
127          to_reference: WIDE_CHARACTER_REF is          to_reference: CHARACTER_32_REF is
128                          -- Associated reference of Current                          -- Associated reference of Current
129                  do                  do
130                          create Result                          create Result
# Line 104  feature -- Conversion Line 133  feature -- Conversion
133                          to_reference_not_void: Result /= Void                          to_reference_not_void: Result /= Void
134                  end                  end
135    
136            to_character_8: CHARACTER_8 is
137                            -- Convert current to CHARACTER_8
138                    require
139                            is_character_8_compatible: is_character_8
140                    do
141                            Result := item.to_character_8
142                    end
143    
144            to_character_32: CHARACTER_32 is
145                            -- Convert current to CHARACTER_32
146                    do
147                            Result := item
148                    end
149    
150            as_upper, upper: CHARACTER_32 is
151                            -- Uppercase value of `item'
152                            -- Returns `item' if not `is_lower'
153                    require
154                            is_character_8_compatible: is_character_8
155                    do
156                            Result := to_character_8.upper
157                    end
158    
159            as_lower, lower: CHARACTER_32 is
160                            -- Lowercase value of `item'
161                            -- Returns `item' if not `is_upper'
162                    require
163                            is_character_8_compatible: is_character_8
164                    do
165                            Result := to_character_8.lower
166                    end
167    
168  end  end

Legend:
Removed from v.91475  
changed lines
  Added in v.91477

  ViewVC Help
Powered by ViewVC 1.1.23