[fpc-devel] Extended($FFFFFFFFFFFFFFFF) = -1?

Hans-Peter Diettrich DrDiettrich1 at aol.com
Mon Mar 3 21:44:03 CET 2014


Ewald schrieb:
> On 03 Mar 2014, at 12:49, Hans-Peter Diettrich wrote:

>> How (which data type) does *your* parser store untyped numerical
>> constants?
> 
> Roughly like this (syntax may be a bit awry, but you get the point):
> 
> TIntegerNumber = Record Case SignedNess: TSignedNess of snPositive:
> UValue: QWord; snNegative:  SValue: Int64; End;
> 
> The parser detects wether there is a `-` in front of the constant and
> stores the right sign in the SignedNess field.

A parser doesn't work like that - too many possible cases with unary 
minus. If you need an datatype for integers with more bits than provided 
by the compiler, you must roll your own datatype.


> Alright, let me rephrase my demands: - I want to store the value
> 18446744073709551615 in any kind of variable without loss of
> precision.

See above.

DoDi




More information about the fpc-devel mailing list