X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fada%2Fs-valllu.ads;h=88a6e4cd915f2d22fe12daf2da4493045cedf877;hb=0c1fe26b5f780a30fd26e3e3075764f99322dbbf;hp=6fee777c8ef49f484c15e24fbc582981372625c0;hpb=1a1b0b9b6fe17b5c74e507284ee07f066dd02ad1;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ada/s-valllu.ads b/gcc/ada/s-valllu.ads index 6fee777c8ef..88a6e4cd915 100644 --- a/gcc/ada/s-valllu.ads +++ b/gcc/ada/s-valllu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -31,7 +31,7 @@ -- -- ------------------------------------------------------------------------------ --- This package contains routines for scanning unsigned Long_Long_Unsigned +-- This package contains routines for scanning modular Long_Long_Unsigned -- values for use in Text_IO.Modular_IO, and the Value attribute. with System.Unsigned_Types; @@ -39,18 +39,19 @@ with System.Unsigned_Types; package System.Val_LLU is pragma Pure; - function Scan_Long_Long_Unsigned - (Str : String; - Ptr : access Integer; - Max : Integer) return System.Unsigned_Types.Long_Long_Unsigned; + function Scan_Raw_Long_Long_Unsigned + (Str : String; + Ptr : not null access Integer; + Max : Integer) return System.Unsigned_Types.Long_Long_Unsigned; -- This function scans the string starting at Str (Ptr.all) for a valid -- integer according to the syntax described in (RM 3.5(43)). The substring - -- scanned extends no further than Str (Max). There are three cases for the - -- return: + -- scanned extends no further than Str (Max). Note: this does not scan + -- leading or trailing blanks, nor leading sign. + -- + -- There are three cases for the return: -- - -- If a valid integer is found after scanning past any initial spaces, then - -- Ptr.all is updated past the last character of the integer (but trailing - -- spaces are not scanned out). + -- If a valid integer is found, then Ptr.all is updated past the last + -- character of the integer. -- -- If no valid integer is found, then Ptr.all points either to an initial -- non-digit character, or to Max + 1 if the field is all spaces and the @@ -59,16 +60,24 @@ package System.Val_LLU is -- If a syntactically valid integer is scanned, but the value is out of -- range, or, in the based case, the base value is out of range or there -- is an out of range digit, then Ptr.all points past the integer, and - -- Constraint_Error is raised. Note that if a minus sign is present, and - -- the integer value is non-zero, then constraint error will be raised. + -- Constraint_Error is raised. -- -- Note: these rules correspond to the requirements for leaving the pointer - -- positioned in Text_Io.Get + -- positioned in Text_IO.Get -- - -- Note: if Str is null, i.e. if Max is less than Ptr, then this is a + -- Note: if Str is empty, i.e. if Max is less than Ptr, then this is a -- special case of an all-blank string, and Ptr is unchanged, and hence -- is greater than Max as required in this case. + function Scan_Long_Long_Unsigned + (Str : String; + Ptr : not null access Integer; + Max : Integer) return System.Unsigned_Types.Long_Long_Unsigned; + -- Same as Scan_Raw_Long_Long_Unsigned, except scans optional leading + -- blanks, and an optional leading plus sign. + -- Note: if a minus sign is present, Constraint_Error will be raised. + -- Note: trailing blanks are not scanned. + function Value_Long_Long_Unsigned (Str : String) return System.Unsigned_Types.Long_Long_Unsigned; -- Used in computing X'Value (Str) where X is a modular integer type whose