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 - downloadIndex: ┃ T V ┃
Length: 5663 (0x161f) Types: TextFile Names: »V«
└─⟦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 Vstrings; package Tstring is new Vstrings (1024); -- This is MAXLINE in misc_defs -- UNIT: generic package body of VSTRINGS -- -- FILES: vstring_body.a in publiclib -- related file is vstring_spec.a in publiclib -- -- PURPOSE: An implementation of the abstract data type "variable-length -- string." -- -- DESCRIPTION: This package provides a private type VSTRING. VSTRING objects -- are "strings" that have a length between zero and LAST, where -- LAST is the generic parameter supplied in the package -- instantiation. -- -- In addition to the type VSTRING, a subtype and two constants -- are declared. The subtype STRINDEX is an index to a VSTRING, -- The STRINDEX constant FIRST is an index to the first character -- of the string, and the VSTRING constant NUL is a VSTRING of -- length zero. NUL is the default initial value of a VSTRING. -- -- The following sets of functions, procedures, and operators -- are provided as operations on the type VSTRING: -- -- ATTRIBUTE FUNCTIONS: LEN, MAX, STR, CHAR -- The attribute functions return the characteristics of -- a VSTRING. -- -- COMPARISON OPERATORS: "=", "/=", "<", ">", "<=", ">=" -- The comparison operators are the same as for the predefined -- type STRING. -- -- INPUT/OUTPUT PROCEDURES: GET, GET_LINE, PUT, PUT_LINE -- -- The input/output procedures are similar to those for the -- predefined type STRING, with the following exceptions: -- -- - GET has an optional parameter LENGTH, which indicates -- the number of characters to get (default is LAST). -- -- - GET_LINE does not have a parameter to return the length -- of the string (the LEN function should be used instead). -- -- EXTRACTION FUNCTIONS: SLICE, SUBSTR, DELETE -- The SLICE function returns the slice of a VSTRING between -- two indices (equivalent to STR(X)(A .. B)). -- -- SUBSTR returns a substring of a VSTRING taken from a given -- index and extending a given length. -- -- The DELETE function returns the VSTRING which results from -- removing the slice between two indices. -- -- EDITING FUNCTIONS: INSERT, APPEND, REPLACE -- The editing functions return the VSTRING which results from -- inserting, appending, or replacing at a given index with a -- VSTRING, STRING, or CHARACTER. The index must be in the -- current range of the VSTRING; i.e., zero cannot be used. -- -- CONCATENATION OPERATOR: "&" -- The concatenation operator is the same as for the type -- STRING. It should be used instead of APPEND when the -- APPEND would always be after the last character. -- -- POSITION FUNCTIONS: INDEX, RINDEX -- The position functions return an index to the Nth occurrence -- of a VSTRING, STRING, or CHARACTER from the front or back -- of a VSTRING. Zero is returned if the search is not -- successful. -- -- CONVERSION FUNCTIONS AND OPERATOR: VSTR, CONVERT, "+" -- VSTR converts a STRING or a CHARACTER to a VSTRING. -- -- CONVERT is a generic function which can be instantiated to -- convert from any given variable-length string to another, -- provided the FROM type has a function equivelent to STR -- defined for it, and that the TO type has a function equiv- -- elent to VSTR defined for it. This provides a means for -- converting between VSTRINGs declared in separate instant- -- iations of VSTRINGS. When instantiating CONVERT for -- VSTRINGs, the STR and VSTR functions are implicitly defined, -- provided that they have been made visible (by a use clause). -- -- Note: CONVERT is NOT implicitly associated with the type -- VSTRING declared in this package (since it would not be a -- derivable function (see RM 3.4(11))). -- -- Caution: CONVERT cannot be instantiated directly with the -- names VSTR and STR, since the name of the subprogram being -- declared would hide the generic parameters with the same -- names (see RM 8.3(16)). CONVERT can be instantiated with -- the operator "+", and any instantiation of CONVERT can -- subsequently be renamed VSTR or STR. -- -- Example: Given two VSTRINGS instantiations X and Y: -- function "+" is new X.CONVERT(X.VSTRING, Y.VSTRING); -- function "+" is new X.CONVERT(Y.VSTRING, X.VSTRING); -- -- (Y.CONVERT could have been used in place of X.CONVERT) -- -- function VSTR(A : X.VSTRING) return Y.VSTRING renames "+"; -- function VSTR(A : Y.VSTRING) return X.VSTRING renames "+"; -- -- "+" is equivelent to VSTR. It is supplied as a short-hand -- notation for the function. The "+" operator cannot immed- -- iately follow the "&" operator; use ... & (+ ...) instead. pragma Page;