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

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

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

FreeELKS/trunk/library/kernel/integer_ref.e revision 91475 by ericb, Thu Feb 9 11:21:18 2006 UTC FreeELKS/trunk/library/kernel/integer_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          INTEGER_REF          INTEGER_32_REF
11    
12  inherit  inherit
13          NUMERIC          NUMERIC
# Line 29  inherit Line 29  inherit
29    
30  feature -- Access  feature -- Access
31    
32          item: INTEGER is          item: INTEGER_32 is
33                          -- Integer value                          -- Integer value
34                  external                  external
35                          "built_in"                          "built_in"
# Line 71  feature -- Access Line 71  feature -- Access
71          ascii_char: CHARACTER is          ascii_char: CHARACTER is
72                          -- Returns corresponding ASCII character to `item' value.                          -- Returns corresponding ASCII character to `item' value.
73                  obsolete                  obsolete
74                          "Use to_character instead"                          "Use to_character_8 instead"
75                  require                  require
76                          valid_character_code: is_valid_character_code                          valid_character_code: is_valid_character_8_code
77                  do                  do
78                          Result := item.to_character                          Result := item.to_character_8
79                  end                  end
80    
81          Min_value: INTEGER is -2147483648          Min_value: INTEGER_32 is -2147483648
82          Max_value: INTEGER is 2147483647          Max_value: INTEGER_32 is 2147483647
83                          -- Minimum and Maximum value hold in `item'.                          -- Minimum and Maximum value hold in `item'.
84    
85  feature -- Comparison  feature -- Comparison
# Line 99  feature -- Comparison Line 99  feature -- Comparison
99    
100  feature -- Element change  feature -- Element change
101    
102          set_item (i: INTEGER) is          set_item (i: INTEGER_32) is
103                          -- Make `i' the `item' value.                          -- Make `i' the `item' value.
104                  external                  external
105                          "built_in"                          "built_in"
# Line 109  feature -- Element change Line 109  feature -- Element change
109    
110  feature -- Status report  feature -- Status report
111    
112          divisible (other: INTEGER_REF): BOOLEAN is          divisible (other: like Current): BOOLEAN is
113                          -- May current object be divided by `other'?                          -- May current object be divided by `other'?
114                  do                  do
115                          Result := other.item /= 0                          Result := other.item /= 0
# Line 147  feature -- Status report Line 147  feature -- Status report
147                  end                  end
148    
149          is_valid_character_code: BOOLEAN is          is_valid_character_code: BOOLEAN is
150                            -- Does current object represent a CHARACTER_8?
151                    obsolete
152                            "Use `is_valid_character_8_code' instead."
153                    do
154                            Result := is_valid_character_8_code
155                    end
156    
157            is_valid_character_8_code: BOOLEAN is
158                            -- Does current object represent a CHARACTER_8?
159                    do
160                            Result := item >= {CHARACTER_8}.Min_value and
161                                    item <= {CHARACTER_8}.Max_value
162                    end
163    
164            is_valid_character_32_code: BOOLEAN is
165                          -- Does current object represent a character?                          -- Does current object represent a character?
166                  do                  do
167                          Result := item >= {CHARACTER}.Min_value and item <= {CHARACTER}.Max_value                          Result := item >= 0 and then
168                                    item.to_natural_32 >= {CHARACTER_32}.Min_value and
169                                    item.to_natural_32 <= {CHARACTER_32}.Max_value
170                  end                  end
171    
172  feature -- Basic operations  feature -- Basic operations
173    
174          abs: INTEGER is          abs: INTEGER_32 is
175                          -- Absolute value                          -- Absolute value
176                  do                  do
177                          Result := abs_ref.item                          Result := abs_ref.item
# Line 241  feature -- Basic operations Line 258  feature -- Basic operations
258    
259  feature {NONE} -- Initialization  feature {NONE} -- Initialization
260    
261          make_from_reference (v: INTEGER_REF) is          make_from_reference (v: INTEGER_32_REF) is
262                          -- Initialize `Current' with `v.item'.                          -- Initialize `Current' with `v.item'.
263                  require                  require
264                          v_not_void: v /= Void                          v_not_void: v /= Void
# Line 253  feature {NONE} -- Initialization Line 270  feature {NONE} -- Initialization
270    
271  feature -- Conversion  feature -- Conversion
272    
273          to_reference: INTEGER_REF is          to_reference: INTEGER_32_REF is
274                          -- Associated reference of Current                          -- Associated reference of Current
275                  do                  do
276                          create Result                          create Result
# Line 285  feature -- Conversion Line 302  feature -- Conversion
302                  do                  do
303                          Result := item.as_natural_32                          Result := item.as_natural_32
304                  end                  end
305            
306          as_natural_64: NATURAL_64 is          as_natural_64: NATURAL_64 is
307                          -- Convert `item' into an NATURAL_64 value.                          -- Convert `item' into an NATURAL_64 value.
308                  do                  do
# Line 297  feature -- Conversion Line 314  feature -- Conversion
314                  do                  do
315                          Result := item.as_integer_8                          Result := item.as_integer_8
316                  end                  end
317                    
318          as_integer_16: INTEGER_16 is          as_integer_16: INTEGER_16 is
319                          -- Convert `item' into an INTEGER_16 value.                          -- Convert `item' into an INTEGER_16 value.
320                  do                  do
# Line 408  feature -- Conversion Line 425  feature -- Conversion
425                          loop                          loop
426                                  a_digit := (val & 0xF)                                  a_digit := (val & 0xF)
427                                  Result.put (a_digit.to_hex_character, i)                                  Result.put (a_digit.to_hex_character, i)
428                                  val := val |>> 4                                  val := val |>> 4
429                                  i := i - 1                                  i := i - 1
430                          end                          end
431                  ensure                  ensure
# Line 425  feature -- Conversion Line 442  feature -- Conversion
442                  do                  do
443                          tmp := item                          tmp := item
444                          if tmp <= 9 then                          if tmp <= 9 then
445                                  Result := (tmp + ('0').code).to_character                                  Result := (tmp + ('0').code).to_character_8
446                          else                          else
447                                  Result := (('A').code + (tmp - 10)).to_character                                  Result := (('A').code + (tmp - 10)).to_character_8
448                          end                          end
449                  ensure                  ensure
450                          valid_character: ("0123456789ABCDEF").has (Result)                          valid_character: ("0123456789ABCDEF").has (Result)
# Line 435  feature -- Conversion Line 452  feature -- Conversion
452    
453          to_character: CHARACTER is          to_character: CHARACTER is
454                          -- Returns corresponding ASCII character to `item' value.                          -- Returns corresponding ASCII character to `item' value.
455                    obsolete
456                            "Use `to_character_8' instead."
457                    require
458                            valid_character: is_valid_character_8_code
459                    do
460                            Result := item.to_character_8
461                    end
462    
463            to_character_8: CHARACTER_8 is
464                            -- Associated character in 8 bit version.
465                    require
466                            valid_character: is_valid_character_8_code
467                    do
468                            Result := item.to_character_8
469                    end
470    
471            to_character_32: CHARACTER_32 is
472                            -- Associated character in 32 bit version.
473                  require                  require
474                          valid_character: is_valid_character_code                          valid_character: is_valid_character_32_code
475                  do                  do
476                          Result := item.to_character                          Result := item.to_character_32
477                  end                  end
478    
479  feature -- Bit operations  feature -- Bit operations
# Line 505  feature -- Bit operations Line 540  feature -- Bit operations
540                          bit_not_not_void: Result /= Void                          bit_not_not_void: Result /= Void
541                  end                  end
542    
543          frozen bit_shift (n: INTEGER): INTEGER is          frozen bit_shift (n: INTEGER_32): INTEGER is
544                          -- Shift Current from `n' position to right if `n' positive,                          -- Shift Current from `n' position to right if `n' positive,
545                          -- to left otherwise.                          -- to left otherwise.
546                  require                  require
# Line 574  feature -- Bit operations Line 609  feature -- Bit operations
609                          Result := item & (1 |<< n) /= 0                          Result := item & (1 |<< n) /= 0
610                  end                  end
611    
612          frozen set_bit (b: BOOLEAN; n: INTEGER): INTEGER is          frozen set_bit (b: BOOLEAN; n: INTEGER): INTEGER_32 is
613                          -- Copy of current with `n'-th position                          -- Copy of current with `n'-th position
614                          -- set to 1 if `b', 0 otherwise.                          -- set to 1 if `b', 0 otherwise.
615                  require                  require
# Line 588  feature -- Bit operations Line 623  feature -- Bit operations
623                          end                          end
624                  end                  end
625    
626          frozen set_bit_with_mask (b: BOOLEAN; m: INTEGER): INTEGER is          frozen set_bit_with_mask (b: BOOLEAN; m: INTEGER_32): INTEGER_32 is
627                          -- Copy of current with all 1 bits of m set to 1                          -- Copy of current with all 1 bits of m set to 1
628                          -- if `b', 0 otherwise.                          -- if `b', 0 otherwise.
629                  do                  do

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

  ViewVC Help
Powered by ViewVC 1.1.23