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: 3235 (0xca3) Types: TextFile Names: »V«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2 └─ ⟦77aa8350c⟧ »DATA« └─⟦f794ecd1d⟧ └─⟦4c85d69e2⟧ └─⟦this⟧
-- The use of this system is subject to the software license terms and -- conditions agreed upon between Rational and the Customer. -- -- Copyright 1988 by Rational. -- -- RESTRICTED RIGHTS LEGEND -- -- Use, duplication, or disclosure by the Government is subject to -- restrictions as set forth in subdivision (b)(3)(ii) of the Rights in -- Technical Data and Computer Software clause at 52.227-7013. -- -- -- Rational -- 3320 Scott Boulevard -- Santa Clara, California 95054-3197 -- -- PROPRIETARY AND CONFIDENTIAL INFORMATION OF RATIONAL; -- USE OR COPYING WITHOUT EXPRESS WRITTEN AUTHORIZATION -- IS STRICTLY PROHIBITED. THIS MATERIAL IS PROTECTED AS -- AN UNPUBLISHED WORK UNDER THE U.S. COPYRIGHT ACT OF -- 1976. CREATED 1988. ALL RIGHTS RESERVED. -- -- with System_Types; package Numeric_Literals is -- This structure is used to record the semantic content (with -- the most precision that is practical) of a numeric literal. -- Mathematically, the value of the constant is: -- -- sign * abs(Mantissa) * (Base ** Exponent) -- -- The actual conversion to the appropriate type is in the domain of -- numerical analysis. If Exact is True, all the significant digits of -- the lexical constant are represented; otherwise some were omitted to -- avoid overflowing the Mantissa. The Mantissa is negative because -- there is one more negative Long_Integer than positive Long_Integer. -- These types should be the largest that exist on the target subtype Long_Integer is System_Types.Long_Integer; type Sign_Type is (Plus, Minus); subtype Field is Integer range 0 .. Integer'Last; subtype Number_Base is Integer range 2 .. 16; -- The easiest thing to do would be to make a Numeric_Literal an -- access string, but then every time one was read a string would -- need to be allocated. (Sharing the string is difficult because -- then Text_Io could die instead of merely giving bad results when -- used from multiple tasks.) On the other hand, its not easy to set -- a maximum length because in the case of a floating point literal -- there may be a very large exponent range which would allow -- lots of significant zeros either before or after the decimal -- point. The maximum length is actually more of a function of -- the maximum length of a Text_Io line, and even that isn't certain -- because of the forms where a string can be parsed. And finally, -- it isn't easy to return an unconstrained string from a function -- because one important client, Literal_Parser.Parse_Numeric_Literal, -- wants to return several values. -- So we punt: A Numeric_Literal is essentially a string and the -- client must take care of the case where the user provides a really -- really long numeric literal. type Numeric_Literal (Max_Length : Natural) is record V : String (1 .. Max_Length); L : Natural; Is_Based : Boolean; -- has syntax of a based literal end record; end Numeric_Literals;