|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 4577 (0x11e1)
Types: TextFile
Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
└─⟦d65440be7⟧ »DATA«
└─⟦this⟧
with Misc_Defs, Text_Io, Misc, Tstring;
use Misc_Defs, Text_Io;
package body Ccl is
-- ccladd - add a single character to a ccl
procedure Ccladd (Cclp : in Integer; Ch : in Character) is
Ind, Len, Newpos : Integer;
begin
Len := Ccllen (Cclp);
Ind := Cclmap (Cclp);
-- check to see if the character is already in the ccl
for I in 0 .. Len - 1 loop
if (Ccltbl (Ind + I) = Ch) then
return;
end if;
end loop;
Newpos := Ind + Len;
if (Newpos >= Current_Max_Ccl_Tbl_Size) then
Current_Max_Ccl_Tbl_Size :=
Current_Max_Ccl_Tbl_Size + Max_Ccl_Tbl_Size_Increment;
Num_Reallocs := Num_Reallocs + 1;
Reallocate_Character_Array (Ccltbl, Current_Max_Ccl_Tbl_Size);
end if;
Ccllen (Cclp) := Len + 1;
Ccltbl (Newpos) := Ch;
end Ccladd;
-- cclinit - make an empty ccl
function Cclinit return Integer is
begin
Lastccl := Lastccl + 1;
if (Lastccl >= Current_Maxccls) then
Current_Maxccls := Current_Maxccls + Max_Ccls_Increment;
Num_Reallocs := Num_Reallocs + 1;
Reallocate_Integer_Array (Cclmap, Current_Maxccls);
Reallocate_Integer_Array (Ccllen, Current_Maxccls);
Reallocate_Integer_Array (Cclng, Current_Maxccls);
end if;
if (Lastccl = 1) then
-- we're making the first ccl
Cclmap (Lastccl) := 0;
else
-- the new pointer is just past the end of the last ccl. Since
-- the cclmap points to the \first/ character of a ccl, adding the
-- length of the ccl to the cclmap pointer will produce a cursor
-- to the first free space
Cclmap (Lastccl) := Cclmap (Lastccl - 1) + Ccllen (Lastccl - 1);
end if;
Ccllen (Lastccl) := 0;
Cclng (Lastccl) := 0;
-- ccl's start out life un-negated
return Lastccl;
end Cclinit;
-- cclnegate - negate a ccl
procedure Cclnegate (Cclp : in Integer) is
begin
Cclng (Cclp) := 1;
end Cclnegate;
-- list_character_set - list the members of a set of characters in CCL form
--
-- writes to the given file a character-class representation of those
-- characters present in the given set. A character is present if it
-- has a non-zero value in the set array.
procedure List_Character_Set (F : in File_Type;
Cset : in C_Size_Bool_Array) is
I, Start_Char : Integer;
begin
Text_Io.Put (F, '[');
I := 1;
while (I <= Csize) loop
if (Cset (I)) then
Start_Char := I;
Text_Io.Put (F, ' ');
Tstring.Put (F, Misc.Readable_Form (Character'Val (I)));
I := I + 1;
while ((I <= Csize) and then (Cset (I))) loop
I := I + 1;
end loop;
if (I - 1 > Start_Char) then
-- this was a run
Text_Io.Put (F, "-");
Tstring.Put (Misc.Readable_Form (Character'Val (I - 1)));
end if;
Text_Io.Put (F, ' ');
end if;
I := I + 1;
end loop;
Text_Io.Put (F, ']');
end List_Character_Set;
end Ccl;
-- Copyright (c) 1990 Regents of the University of California.
-- All rights reserved.
--
-- This software was developed by John Self of the Arcadia project
-- at the University of California, Irvine.
--
-- Redistribution and use in source and binary forms are permitted
-- provided that the above copyright notice and this paragraph are
-- duplicated in all such forms and that any documentation,
-- advertising materials, and other materials related to such
-- distribution and use acknowledge that the software was developed
-- by the University of California, Irvine. The name of the
-- University may not be used to endorse or promote products derived
-- from this software without specific prior written permission.
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-- TITLE character classes routines
-- AUTHOR: John Self (UCI)
-- DESCRIPTION routines for character classes like [abc]
-- $Header: /co/ua/self/arcadia/aflex/ada/src/RCS/cclS.a,v 1.3 90/01/12 15:19:43 self Exp Locker: self $