OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [ada/] [acats/] [support/] [fb20a00.a] - Diff between revs 294 and 338

Only display areas with differences | Details | Blame | View Log

Rev 294 Rev 338
-- FB20A00.A
-- FB20A00.A
--
--
--                             Grant of Unlimited Rights
--                             Grant of Unlimited Rights
--
--
--     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
--     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
--     F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
--     F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
--     unlimited rights in the software and documentation contained herein.
--     unlimited rights in the software and documentation contained herein.
--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making
--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making
--     this public release, the Government intends to confer upon all
--     this public release, the Government intends to confer upon all
--     recipients unlimited rights  equal to those held by the Government.
--     recipients unlimited rights  equal to those held by the Government.
--     These rights include rights to use, duplicate, release or disclose the
--     These rights include rights to use, duplicate, release or disclose the
--     released technical data and computer software in whole or in part, in
--     released technical data and computer software in whole or in part, in
--     any manner and for any purpose whatsoever, and to have or permit others
--     any manner and for any purpose whatsoever, and to have or permit others
--     to do so.
--     to do so.
--
--
--                                    DISCLAIMER
--                                    DISCLAIMER
--
--
--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
--     PARTICULAR PURPOSE OF SAID MATERIAL.
--     PARTICULAR PURPOSE OF SAID MATERIAL.
--*
--*
--
--
-- FOUNDATION DESCRIPTION:
-- FOUNDATION DESCRIPTION:
--      This test performs a search for the first instance of a specified
--      This test performs a search for the first instance of a specified
--      substring within a specified string, returning boolean result.
--      substring within a specified string, returning boolean result.
--      (Case insensitive analysis)  Both the string and the substring are
--      (Case insensitive analysis)  Both the string and the substring are
--      made upper case.  Successive slices are taken from the input string
--      made upper case.  Successive slices are taken from the input string
--      and compared with the substring. If a match is found, the search is
--      and compared with the substring. If a match is found, the search is
--      terminated immediately. The search continues until the last index
--      terminated immediately. The search continues until the last index
--      position from which a substring-length slice can be constructed is
--      position from which a substring-length slice can be constructed is
--      passed.
--      passed.
--
--
-- CHANGE HISTORY:
-- CHANGE HISTORY:
--      06 Dec 94   SAIC    ACVC 2.0
--      06 Dec 94   SAIC    ACVC 2.0
--
--
--!
--!
package FB20A00 is
package FB20A00 is
   function Find ( Str : in String ;
   function Find ( Str : in String ;
                   Sub : in String ) return Boolean;
                   Sub : in String ) return Boolean;
end FB20A00;
end FB20A00;
     --=================================================================--
     --=================================================================--
package body FB20A00 is
package body FB20A00 is
   function Find ( Str : in String ;
   function Find ( Str : in String ;
                   Sub : in String ) return Boolean is
                   Sub : in String ) return Boolean is
      New_Str : String (Str'First .. Str'Last);
      New_Str : String (Str'First .. Str'Last);
      New_Sub : String (Sub'First .. Sub'Last);
      New_Sub : String (Sub'First .. Sub'Last);
      Pos : Integer := Str'First ;             -- Character index.
      Pos : Integer := Str'First ;             -- Character index.
      function Upper_Case (Str : in String) return String is
      function Upper_Case (Str : in String) return String is
         subtype Upper is Character range 'A' .. 'Z' ;
         subtype Upper is Character range 'A' .. 'Z' ;
         subtype Lower is Character range 'a' .. 'z' ;
         subtype Lower is Character range 'a' .. 'z' ;
         Ret : String (Str'First .. Str'Last) ;
         Ret : String (Str'First .. Str'Last) ;
         Pos : Integer;
         Pos : Integer;
      begin
      begin
         for I in Str'Range loop
         for I in Str'Range loop
            if ( Str (I) in Lower ) then
            if ( Str (I) in Lower ) then
               Pos := Upper'Pos (Upper'First) +
               Pos := Upper'Pos (Upper'First) +
                      ( Lower'Pos (Str(I)) - Lower'Pos(Lower'First) ) ;
                      ( Lower'Pos (Str(I)) - Lower'Pos(Lower'First) ) ;
               Ret (I) := Upper'Val (Pos) ;
               Ret (I) := Upper'Val (Pos) ;
            else
            else
               Ret (I) := Str (I);
               Ret (I) := Str (I);
            end if ;
            end if ;
         end loop ;
         end loop ;
         return (Ret) ;
         return (Ret) ;
      end Upper_Case;
      end Upper_Case;
   begin
   begin
      New_Str := Upper_Case (Str);             -- Convert Str and Sub to upper
      New_Str := Upper_Case (Str);             -- Convert Str and Sub to upper
      New_Sub := Upper_Case (Sub);             -- case for comparison.
      New_Sub := Upper_Case (Sub);             -- case for comparison.
      while ( Pos <= New_Str'Last-New_Sub'Length+1 )  -- Search until no more
      while ( Pos <= New_Str'Last-New_Sub'Length+1 )  -- Search until no more
        and then                                      -- sub-string-length
        and then                                      -- sub-string-length
        ( New_Str ( Pos .. Pos+New_Sub'Length-1 ) /= New_Sub ) -- slices
        ( New_Str ( Pos .. Pos+New_Sub'Length-1 ) /= New_Sub ) -- slices
                                                               -- remain.
                                                               -- remain.
      loop
      loop
         Pos := Pos + 1 ;
         Pos := Pos + 1 ;
      end loop ;
      end loop ;
      if ( Pos > New_Str'Last-New_Sub'Length+1 ) then  -- Substring not found.
      if ( Pos > New_Str'Last-New_Sub'Length+1 ) then  -- Substring not found.
         return (False);
         return (False);
      else
      else
         return (True);
         return (True);
      end if ;
      end if ;
   end Find;
   end Find;
end FB20A00;
end FB20A00;
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.