|
|
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: 2963 (0xb93)
Types: TextFile
Names: »B«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
└─⟦124ff5788⟧ »DATA«
└─⟦this⟧
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
└─⟦6f12a12be⟧ »DATA«
└─⟦this⟧
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
└─⟦d65440be7⟧ »DATA«
└─⟦this⟧
package body Parameter_Parser_Defs is
function Deslash (S : String) return String is
P : Integer := Su.Locate ('\', S);
begin
if P in 1 .. S'Last - 1 then
return S (S'First .. P - 1) & S (P + 1) &
Deslash (S (P + 2 .. S'Last));
else
return S;
end if;
end Deslash;
function Clean (S : String) return String is
begin
if S'Length = 0 then
return S;
elsif S (S'First) = '(' then
if S (S'Last) = ')' then
return Deslash (S (S'First + 1 .. S'Last - 1));
else
return Deslash (S (S'First + 1 .. S'Last));
end if;
else
return Deslash (S);
end if;
end Clean;
function Normal (S : String) return String is
Ns : String (1 .. S'Length) := Su.Upper_Case (S);
begin
return Ns;
end Normal;
-- Allow abbreviations within <..>
function May_Be (Arg, Val : String) return Boolean is
begin
return Arg'Length <= Val'Length and then
(Val (1 .. Arg'Length) = Arg or else
(Arg /= "" and then Arg (Arg'Last) = '>' and then
Arg (Arg'First .. Arg'Last - 1) =
Val (1 .. Arg'Length - 1)));
end May_Be;
procedure Unique_Prefix (S : String;
Result : out Enumeration;
Prefix : out Boolean;
Unique : out Boolean) is
Already_Matched : Boolean := False;
Exact : Boolean;
Match : Boolean;
Up_S : constant String := String_Utilities.Upper_Case (S);
-- determines if S is a prefix of Is_In, Case sensitive, notify if
-- match exactly
procedure Check_Prefix (S, Is_In : String;
Prefix : in out Boolean;
Exact : out Boolean) is
Bound : constant Integer := Is_In'First + S'Length - 1;
begin
Prefix := S'Length <= Is_In'Length and then
S = Is_In (Is_In'First .. Bound);
Exact := Prefix and then (S'Length = Is_In'Length);
end Check_Prefix;
begin
Prefix := False;
Unique := False;
Result := Enumeration'Last;
for Enum in Enumeration loop
Check_Prefix (Up_S, Enumeration'Image (Enum), Match, Exact);
if Exact then
Result := Enum;
Unique := True;
Prefix := False;
return;
elsif Match then
Unique := not Already_Matched;
Already_Matched := True;
Prefix := True;
Result := Enum;
end if;
end loop;
end Unique_Prefix;
end Parameter_Parser_Defs;