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

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

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

revision 91476 by ericb, Sat Feb 4 16:56:42 2006 UTC revision 91477 by ericb, Sun Jan 14 09:47:13 2007 UTC
# Line 8  indexing Line 8  indexing
8    
9  deferred class  deferred class
10          STRING_TO_NUMERIC_CONVERTOR          STRING_TO_NUMERIC_CONVERTOR
11            
12  inherit  inherit
13          NUMERIC_INFORMATION          NUMERIC_INFORMATION
14    
# Line 16  feature -- Status reporting Line 16  feature -- Status reporting
16    
17          trailing_separators_acceptable: BOOLEAN          trailing_separators_acceptable: BOOLEAN
18                  -- Are trailing separators acceptable?                  -- Are trailing separators acceptable?
19                    
20          leading_separators_acceptable: BOOLEAN          leading_separators_acceptable: BOOLEAN
21                  -- Are leading separators acceptable?                  -- Are leading separators acceptable?
22                    
23          leading_separators: STRING          leading_separators: STRING
24                          -- Leading separators                          -- Leading separators
25            
26          trailing_separators: STRING          trailing_separators: STRING
27                          -- Trailing separators                          -- Trailing separators
28    
# Line 31  feature -- Status reporting Line 31  feature -- Status reporting
31                  require                  require
32                          separators_not_void: separators /= Void                          separators_not_void: separators /= Void
33                  deferred                  deferred
34                  end                      end
35                    
36          conversion_type_valid (type: INTEGER): BOOLEAN is          conversion_type_valid (type: INTEGER): BOOLEAN is
37                          -- Is `type' to which string will be converted valid?                          -- Is `type' to which string will be converted valid?
38                          -- See `NUMBER_INFORMATION' for more information.                          -- See `NUMBER_INFORMATION' for more information.
39                  deferred                  deferred
40                  end                  end
41                                    
42          overflowed: BOOLEAN is          overflowed: BOOLEAN is
43                          -- Is number overflowed (too large)?                          -- Is number overflowed (too large)?
44                  deferred                  deferred
45                  end                  end
46            
47          underflowed: BOOLEAN is          underflowed: BOOLEAN is
48                          -- Is number underflowed (too small)?                          -- Is number underflowed (too small)?
49                  deferred                  deferred
50                  end                  end
51                                    
52          parse_successful: BOOLEAN is          parse_successful: BOOLEAN is
53                          -- Is parse so far successful?                          -- Is parse so far successful?
54                  deferred                  deferred
55                  end                  end
56                                    
57          conversion_type: INTEGER          conversion_type: INTEGER
58                  -- Type to which a string will be converted                  -- Type to which a string will be converted
59                  -- See `NUMBER_INFORMATION' for more information.                  -- See `NUMBER_INFORMATION' for more information.
60                                            
61  feature -- Reset  feature -- Reset
62    
63          reset (type: INTEGER) is          reset (type: INTEGER) is
64                          -- Reset this convertor to start a new parse session                          -- Reset this convertor to start a new parse session
# Line 74  feature -- Reset Line 74  feature -- Reset
74                          conversion_type_set: conversion_type = type                          conversion_type_set: conversion_type = type
75                          not_overflowed: not overflowed                          not_overflowed: not overflowed
76                          not_underflowed: not underflowed                          not_underflowed: not underflowed
77                          parse_successful: parse_successful                                                parse_successful: parse_successful
78                  end                  end
79                                            
80  feature -- Status setting  feature -- Status setting
81    
82          set_trailing_separators_acceptable (b: BOOLEAN) is          set_trailing_separators_acceptable (b: BOOLEAN) is
# Line 84  feature -- Status setting Line 84  feature -- Status setting
84                  do                  do
85                          trailing_separators_acceptable := b                          trailing_separators_acceptable := b
86                  ensure                  ensure
87                          trailing_separators_acceptable_set:                          trailing_separators_acceptable_set:
88                                  trailing_separators_acceptable = b                                  trailing_separators_acceptable = b
89                  end                  end
90                    
91          set_leading_separators_acceptable (b: BOOLEAN) is          set_leading_separators_acceptable (b: BOOLEAN) is
92                          -- Set `leading_separators_acceptable' to `b'.                          -- Set `leading_separators_acceptable' to `b'.
93                  do                  do
94                          leading_separators_acceptable := b                          leading_separators_acceptable := b
95                  ensure                  ensure
96                          leading_separators_acceptable_set:                          leading_separators_acceptable_set:
97                                  leading_separators_acceptable = b                                  leading_separators_acceptable = b
98                  end                      end
99                    
100          set_leading_separators (separators: STRING) is          set_leading_separators (separators: STRING) is
101                          -- Set `leading_separators' with `separators'.                          -- Set `leading_separators' with `separators'.
102                  require                  require
# Line 107  feature -- Status setting Line 107  feature -- Status setting
107                  ensure                  ensure
108                          leading_separators_set: leading_separators.is_equal (separators)                          leading_separators_set: leading_separators.is_equal (separators)
109                  end                  end
110                    
111          set_trailing_separators (separators: STRING) is          set_trailing_separators (separators: STRING) is
112                          -- Set `trailing_separators' with `separators'.                          -- Set `trailing_separators' with `separators'.
113                  require                  require
# Line 121  feature -- Status setting Line 121  feature -- Status setting
121    
122  feature -- Parse  feature -- Parse
123    
124          parse_string_with_type (s: STRING; type: INTEGER) is          parse_string_with_type (s: STRING_GENERAL; type: INTEGER) is
125                          -- `Reset' convertor to start a new parse session and                          -- `Reset' convertor to start a new parse session and
126                          -- parse `s' to see if it is a number of `type'.                          -- parse `s' to see if it is a number of `type'.
127                          -- Make result available in `overflowed', `underflowed' and `parse_successful'.                          -- Make result available in `overflowed', `underflowed' and `parse_successful'.
128                          -- See `NUMBER_INFORMATION' for more information about `type'.                          -- See `NUMBER_INFORMATION' for more information about `type'.
129                  require                  require
130                          s_not_void: s /= Void                          s_not_void: s /= Void
131                          type_valid: conversion_type_valid (type)                                                  s_is_valid_as_string_8: s.is_valid_as_string_8
132                            type_valid: conversion_type_valid (type)
133                  deferred                  deferred
134                  end                  end
135    
# Line 137  feature -- Parse Line 138  feature -- Parse
138                          -- Make result available in `overflowed', `underflowed' and `parse_successful'.                                          -- Make result available in `overflowed', `underflowed' and `parse_successful'.                
139                  deferred                  deferred
140                  end                  end
141                    
142  feature{NONE} -- Implementation  feature{NONE} -- Implementation
143    
144          last_state: INTEGER          last_state: INTEGER
145                  -- Last state of this state machine                  -- Last state of this state machine
146                            
147          sign: INTEGER          sign: INTEGER
148                  -- Sign of this integer, 0: positive; 1: negative.                  -- Sign of this integer, 0: positive; 1: negative.
149    
150  invariant  invariant
151          leading_separators_not_void: leading_separators /= Void          leading_separators_not_void: leading_separators /= Void
152          trailing_separators_not_void: trailing_separators /= Void                                trailing_separators_not_void: trailing_separators /= Void
153  end  end

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

  ViewVC Help
Powered by ViewVC 1.1.23