|
|
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: T V
Length: 4938 (0x134a)
Types: TextFile
Names: »V«
└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
└─⟦5cb1d1d7f⟧ »DATA«
└─⟦3b1ee7bd8⟧
└─⟦this⟧
-------------------------PROLOGUE---------------------------------------
-- -*
-- Unit name : HELP_INFO_SUPPORT
-- Date created : 9-10-84
-- Last update : 02-07-85 Tom Duke - deleted HELP_INFO_COMMAND_ENUM,
----------------: STACK_FRAME, STATE_INFO_RECORD, and STATE_INFO_POINTER
----------------: types. Deleted procedure CLEAR_TEXT_ARRAY.
----------------: 12-18-84 Tom Duke - added IDENTIFY_KEYWORD,
----------------: GET_NEXT_TOKEN, and PARSE procedures. Added types,
----------------: subtypes, and variables used in these procdures.
-- -*
------------------------------------------------------------------------
-- -*
-- Abstract : The HELP_INFO_SUPPORT package provides the constants
----------------: and types to support the implementation of the AIM
----------------: Help and Info utilities.
-- -*
------------------------------------------------------------------------
--
-- Mnemonic :
-- Name :
-- Release date :
------------------ Revision history ------------------------------------
--
-- DATE AUTHOR HISTORY
--
--
--
--------------------END-PROLOGUE----------------------------------------
package Help_Info_Support is
Max_Line_Length : constant Integer := 80;
Max_Level : constant Integer := 10;
Token_Separater : constant Character := ' ';
-- types and pointers for APPEND_TO_DISPLAY ------------
subtype File_Text_Line is String (1 .. Max_Line_Length);
type Text_Line;
type Text_Link is access Text_Line;
type Text_Line is
record
Text_Line : File_Text_Line;
Line_Length : Natural := 0;
Next_Line : Text_Link := null;
end record;
Top_Line : Text_Link := new Text_Line;
Current_Line : Text_Link := Top_Line;
Previous_Line : Text_Link := Top_Line;
Is_First_Time : Boolean := True;
-----------------------------------------------------------
subtype Level_Range is Natural range 0 .. Max_Level;
subtype Help_Info_Text_Line is String (1 .. Max_Line_Length);
----------
-- type declarations for the parsed input buffer
----------
subtype Line_Length is Natural range 0 .. Max_Line_Length;
subtype Line_Index is Positive range 1 .. Max_Line_Length;
type Token_Record is
record
Token : Help_Info_Text_Line;
Length : Line_Length;
Buffer_Pos : Positive; -- 1..aim_support.max_data_length
end record;
subtype Number_Of_Tokens_Range is Natural range 0 .. Max_Level;
subtype Token_Array_Range is Positive range 1 .. Max_Level;
type Token_Array is array (Token_Array_Range) of Token_Record;
----------
-- Subtype and type which define the structure of the table used
-- for implicit conversion of characters from lowercase to uppercase.
----------
subtype Lower_Case_Range is Character range Ascii.Lc_A .. Ascii.Lc_Z;
type Case_Conversion_Table is array (Lower_Case_Range) of Character;
----------
-- Variables used when working with the INPUT_TOKEN_TABLE.
----------
Token_Length : Line_Length;
Token_String : Help_Info_Text_Line;
Token_Pos : Positive;
----------
-- Pointer to the next character position of the user input string
-- to be accessed during the procedures PARSE and GET_NEXT_INFO_TOKEN.
----------
Input_String_Pos : Positive;
----------
-- Table used to store individual tokens, their length, and their
-- position in the user's input string.
----------
Input_Token_Table : Token_Array;
----------
-- Counter for saving the number of tokens extracted from the user's
-- input string.
----------
Number_Of_Tokens : Number_Of_Tokens_Range;
----------
-- As the variable type indicates, the case conversion table used
-- for implicit conversion from lowercase to uppercase.
----------
Upper_Case : Case_Conversion_Table := "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Keyword_Not_Found : exception;
-----------------------------------------------------------
procedure Append_To_Display (Line : in String; Char_Count : in Natural);
procedure Identify_Keyword (Token_String : in Help_Info_Text_Line;
Token_Length : in Line_Length;
Keyword : in Help_Info_Text_Line);
procedure Get_Next_Token (Input_String : in String;
Next_String : out Help_Info_Text_Line;
Next_Length : out Line_Length;
Next_Pos : out Positive);
procedure Parse (Input_String : in String);
end Help_Info_Support;