ooRexx
4.2.0-source
About: ooRexx (Open Object Rexx) is a free implementation of Object Rexx. Object Rexx is an enhancement of the classic Rexx interpreter; a full-featured programming language with a human-oriented syntax. Fossies Dox: ooRexx-4.2.0-source.tar.gz ("inofficial" and yet experimental doxygen-generated source code documentation) 
|
Go to the documentation of this file. 44 #ifndef Included_RexxNumberString 45 #define Included_RexxNumberString 61 #define NumFormScientific 0x00000001 63 #define NumberRounded 0x00000010 66 #define OVERFLOWSPACE 2 68 #define SetNumberStringZero() \ 69 this->number[0] = '\0'; \ 75 #define NumberStringRound(s,d) s->roundUp(s,d) 95 void *
operator new(size_t, size_t);
96 inline void *
operator new(
size_t size,
void *ptr) {
return ptr;}
97 inline void operator delete(
void *) { ; }
98 inline void operator delete(
void *, size_t) { }
99 inline void operator delete(
void *,
void *) { }
168 if (this->
length > digits)
233 int format(
const char *,
size_t);
261 static char *
subtractDivisor(
char *data1,
size_t length1,
char *data2,
size_t length2,
char *result,
int Mult);
RexxMethod * instanceMethod(RexxString *)
RexxInteger * strictGreaterThan(RexxObject *)
RexxSupplier * instanceMethods(RexxClass *)
RexxObject * ceilingInternal()
static PCPPM operatorMethods[]
RexxInteger * equal(RexxObject *)
RexxNumberString * divide(RexxObject *)
RexxString * concatBlank(RexxObject *)
RexxInteger * isLessOrEqual(RexxObject *)
static char * addToBaseSixteen(int, char *, char *)
RexxNumberString * power(RexxObject *)
RexxNumberString * Division(RexxNumberString *, unsigned int)
RexxString * d2x(RexxObject *)
RexxNumberString * new_numberstringFromWholenumber(wholenumber_t n)
bool unsignedInt64Value(uint64_t *result, stringsize_t numDigits)
bool createUnsignedValue(const char *thisnum, stringsize_t intlength, int carry, wholenumber_t exponent, size_t maxValue, size_t &result)
static void subtractNumbers(RexxNumberString *larger, const char *largerPtr, wholenumber_t aLargerExp, RexxNumberString *smaller, const char *smallerPtr, wholenumber_t aSmallerExp, RexxNumberString *result, char **resultPtr)
RexxNumberString * prepareOperatorNumber(size_t, size_t, bool)
RexxNumberString * maxMin(RexxObject **, size_t, unsigned int)
RexxInteger * isLessThan(RexxObject *)
void formatUnsignedNumber(size_t)
RexxNumberString * new_numberstringFromStringsize(stringsize_t n)
static size_t highBits(size_t)
bool int64Value(int64_t *result, stringsize_t numDigits)
virtual HashCode getHashValue()
static char * addMultiplier(char *, size_t, char *, int)
static RexxNumberString * newInstanceFromStringsize(stringsize_t)
RexxString * formatRexx(RexxObject *, RexxObject *, RexxObject *, RexxObject *)
void liveGeneral(int reason)
RexxObject * operatorNot(RexxObject *)
RexxNumberString * new_numberstring(const char *s, stringsize_t l)
RexxInteger * integerValue(size_t)
RexxNumberString * plus(RexxObject *)
wholenumber_t comp(RexxObject *)
RexxNumberString * numberString()
static RexxNumberString * newInstanceFromUint64(uint64_t)
RexxObject * getRealValue(RexxActivation *)
RexxObject * roundInternal()
static const bool FORM_SCIENTIFIC
RexxNumberString * remainder(RexxObject *)
void setNumericSettings(size_t digits, bool form)
RexxString * stringValue()
RexxNumberString * new_numberstringFromInt64(int64_t n)
bool isInstanceOf(RexxClass *)
bool unsignedNumberValue(stringsize_t &result, size_t precision)
RexxObject * orOp(RexxObject *)
RexxObject * getValue(RexxActivation *context)
void formatInt64(int64_t integer)
char * adjustNumber(char *, char *, size_t, size_t)
RexxString * d2c(RexxObject *)
RexxClass * classObject()
RexxInteger * hasMethod(RexxString *)
RexxInteger * strictLessThan(RexxObject *)
virtual bool logicalValue(logical_t &)
static RexxNumberString * newInstanceFromInt64(int64_t)
RexxNumberString(RESTORETYPE restoreType)
char * stripLeadingZeros(char *)
bool numberValue(wholenumber_t &result, size_t precision)
RexxString * makeString()
RexxObject * unknown(RexxString *, RexxArray *)
RexxNumberString * addSub(RexxNumberString *, unsigned int, size_t)
static RexxNumberString * newInstanceFromWholenumber(wholenumber_t)
void setString(RexxString *)
RexxInteger * isGreaterThan(RexxObject *)
void formatUnsignedInt64(uint64_t integer)
void formatNumber(wholenumber_t)
static RexxNumberString * newInstance(const char *, stringsize_t)
RexxObject * evaluate(RexxActivation *, RexxExpressionStack *)
RexxString * stringObject
RexxObject *(RexxObject::* PCPPM)()
static char * addToBaseTen(int, char *, char *)
RexxNumberString * Max(RexxObject **, size_t)
bool createUnsignedInt64Value(const char *thisnum, stringsize_t intlength, int carry, wholenumber_t exponent, uint64_t maxValue, uint64_t &result)
RexxInteger * strictEqual(RexxObject *)
void flatten(RexxEnvelope *)
RexxNumberString * multiply(RexxObject *)
bool isEqual(RexxObject *)
RexxInteger * strictGreaterOrEqual(RexxObject *)
RexxInteger * notEqual(RexxObject *)
static char * multiplyBaseSixteen(char *, char *)
RexxNumberString * new_numberstringFromDouble(double n)
RexxObject * floorInternal()
RexxString * d2xD2c(RexxObject *, bool)
RexxNumberString * checkNumber(size_t digits)
void AdjustPrecision(RexxNumberString *, char *, int)
static char * multiplyBaseTen(char *, char *)
RexxString * primitiveMakeString()
RexxObject * xorOp(RexxObject *)
RexxObject * andOp(RexxObject *)
RexxInteger * strictLessOrEqual(RexxObject *)
RexxNumberString * integerDivide(RexxObject *)
static void createInstance()
RexxObject * truncInternal(size_t)
RexxNumberString * Multiply(RexxNumberString *)
RexxNumberString * new_numberstringFromUint64(uint64_t n)
wholenumber_t strictComp(RexxObject *)
static char * dividePower(char *AccumPtr, RexxNumberStringBase *Accum, char *Output, size_t NumberDigits)
RexxNumberString * new_numberstringFromFloat(float n)
#define NumFormScientific
static RexxNumberString * newInstanceFromDouble(double)
RexxNumberString * minus(RexxObject *)
RexxNumberString * Min(RexxObject **, size_t)
RexxString * concat(RexxObject *)
RexxObject * trunc(RexxObject *)
RexxNumberString * clone()
RexxNumberString * prepareNumber(size_t, bool)
static char * subtractDivisor(char *data1, size_t length1, char *data2, size_t length2, char *result, int Mult)
RexxString * formatInternal(size_t, size_t, size_t, size_t, RexxNumberString *, size_t, bool)
RexxInteger * strictNotEqual(RexxObject *)
RexxInteger * isGreaterOrEqual(RexxObject *)
static RexxClass * classInstance
static char * multiplyPower(char *leftPtr, RexxNumberStringBase *left, char *rightPtr, RexxNumberStringBase *right, char *OutPtr, size_t OutLen, size_t NumberDigits)
static RexxNumberString * newInstanceFromFloat(float)
int format(const char *, size_t)
bool doubleValue(double &result)
bool checkIntegerDigits(stringsize_t numDigits, stringsize_t &numberLength, wholenumber_t &numberExponent, bool &carry)