Up Top       Prev NUMBER_FRACTION      Next NUMERIC



expanded class interface NUMBER_TOOLS
   --
   -- This class provides abstract creation functions for NUMBERs as well as 
   -- some other useful tools for NUMBERs.
   --
   -- Because this class is expanded, one may simply declare some entity of 
   -- type NUMBER_TOOLS to use those NUMBER tools. One may also inherit this 
   -- class in order to use those tools as well.
   --

feature(s) from NUMBER_TOOLS   from_integer (n: INTEGER): NUMBER
      -- Uses value n to create a new NUMBER.

      ensure
         Result.to_integer = n

   from_string (formula: STRING): NUMBER
      -- Parse the contents of formula to create a new NUMBER. If some 
      -- error occurs (like for example a division by zero), the Result 
      -- is Void and the error report is left in the parser_buffer. 

      require
         is_number(formula)
      ensure
         Result /= Void xor parser_buffer.last_error /= Void

   from_input_stream (input: INPUT_STREAM): NUMBER
      -- Create a number from a file or standard input

      require
         input.is_connected
      ensure
         Result /= Void xor parser_buffer.last_error /= Void

   is_number (formula: STRING): BOOLEAN
      -- Is the formula a correct notation to create a NUMBER ?
      -- Actually, any correct formula using a combination of litteral 
      -- integer constants with + - * / () and ! is a correct notation to 
      -- create a NUMBER. Traditional priority rules are used for 
      -- operators and the ! character denote the factorial computation.
      -- Here is the BNF grammar used:
      --
      --  E0 = E1 R1
      --  E1 = E2 R2
      --  E2 = E3 R3
      --  E3 = "+" E3 | "-" E3 | "(" E0 ")" | "constant"
      --  R1 = "+" E1 R1 | "-" E1 R1 | ^
      --  R2 = "*" E2 R2 | "/" E2 R2 | ^
      --  R3 = "!" | ^

      require
         not formula.is_empty
      ensure
         Result xor parser_buffer.last_error /= Void

   parser_buffer: MINI_PARSER_BUFFER
      -- This once function gives access to the unique parser_buffer to 
      -- allow the memorization of the Current position and the 
      -- memorization of the last error message.




end of expanded NUMBER_TOOLS




All classes inherit from ANY, ANY inherits from PLATFORM and PLATFORM inherits from GENERAL.



Generated by short -html_deb on 31 March 2005.