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. 94 if (((Scan + 1) < Linend) &&
95 (*Scan ==
'-' || *Scan ==
'+') &&
96 (isdigit(this->
getChar(0)) || *Scan ==
'.') &&
97 (toupper(*(Scan - 1)) ==
'E'))
101 while (Scan < Linend)
120 if (Compound == 1 && this->
getLength() == 1)
124 else if (Compound > 1)
135 if (!isdigit(*Scan) &&
143 toupper(*Scan) ==
'E')
148 if (*Scan !=
'+' && *Scan !=
'-')
173 else if (Compound == 1 && *(Scan - 1) ==
'.')
204 if (ChkLen == 0 && Len2 == 0)
208 else if (Len1 == 0L ||
236 if (chkLen == 0 && len2 == 0)
244 if (len1 == 0 || (len2 < chkLen) || (len1 < len2))
276 if (Length1 > Length2)
282 Remainder = Length1 - Lead;
289 Remainder = Length2 - Lead;
295 if (String1[i] != String2[i])
302 if (!MisMatch && Remainder)
305 for (i = 0; i < Remainder; i++)
307 if (String1[i] != PadChar)
309 MisMatch = Lead + i + 1;
350 if (length1 > length2)
356 _remainder = length1 - lead;
363 _remainder = length2 - lead;
367 for (i = 0; i < lead; i++)
370 if (toupper(string1[i]) != toupper(string2[i]))
376 for (i = 0; i < _remainder; i++)
379 if (toupper(string1[i]) != padChar)
407 Retval = OREF_NULLSTRING;
585 for (i = 0; i < matches; i++)
587 matchPos =
pos(needle, _start);
592 copyLength = (matchPos - 1) - _start;
596 memcpy(copyPtr, source + _start, copyLength);
597 copyPtr += copyLength;
601 memcpy(copyPtr, newPtr, newLength);
602 copyPtr += newLength;
604 _start = matchPos + needleLength - 1;
609 memcpy(copyPtr, source + _start, this->
getLength() - _start);
652 for (i = 0; i < matches; i++)
659 copyLength = (matchPos - 1) - _start;
663 memcpy(copyPtr, source + _start, copyLength);
664 copyPtr += copyLength;
668 memcpy(copyPtr, newPtr, newLength);
669 copyPtr += newLength;
671 _start = matchPos + needleLength - 1;
676 memcpy(copyPtr, source + _start, this->
getLength() - _start);
752 const char *OutTable;
753 size_t OutTableLength;
757 size_t InTableLength;
782 if (startPos >
getLength() || range == 0)
799 if (tablei != OREF_NULLSTRING)
806 Position = ((size_t)ch) & 0xFF;
808 if (Position != (
size_t)(-1))
810 if (Position < OutTableLength)
813 *ScanPtr = *(OutTable + Position);
873 if ((offset + len - 1) > other->
getLength())
916 if ((offset + len - 1) > other->
getLength())
1000 char _matchChar =
getChar(position - 1);
1005 if (_matchChar == matchSet->
getChar(i))
1036 char _matchChar =
getChar(position - 1);
1037 _matchChar = toupper(_matchChar);
1043 if (_matchChar == toupper(matchSet->
getChar(i)))
1090 if (_start > myLength)
1095 if (_start > otherLength)
1112 if (myLength == otherLength)
1116 else if (myLength > otherLength)
1125 else if (result > 0)
1178 if (_start > myLength)
1183 if (_start > otherLength)
1200 if (myLength == otherLength)
1204 else if (myLength > otherLength)
1213 else if (result > 0)
RexxInteger * matchChar(RexxInteger *position_, RexxString *matchSet)
RexxInteger * caselessPosRexx(RexxString *, RexxInteger *, RexxInteger *)
RexxInteger * caselessMatchChar(RexxInteger *position_, RexxString *matchSet)
RexxInteger * caselessCompareToRexx(RexxString *other, RexxInteger *start_, RexxInteger *len_)
RexxString * upperRexx(RexxInteger *, RexxInteger *)
RexxInteger * primitiveCaselessCompareTo(RexxString *other, stringsize_t start, stringsize_t len)
size_t lastPos(RexxString *needle, size_t start)
static int caselessCompare(const char *, const char *, size_t)
RexxInteger * new_integer(wholenumber_t v)
size_t optionalLengthArgument(RexxObject *o, size_t d, size_t p)
static RexxInteger * posRexx(const char *stringData, size_t length, RexxString *needle, RexxInteger *pstart, RexxInteger *range)
RexxInteger * compareToRexx(RexxString *other, RexxInteger *start_, RexxInteger *len_)
RexxInteger * caselessCompare(RexxString *, RexxString *)
size_t pos(RexxString *, size_t)
#define STRING_COMPOUND_NAME
static wholenumber_t maxVal(wholenumber_t n1, wholenumber_t n2)
void requiredArgument(RexxObject *object, size_t position)
RexxInteger * countStrRexx(RexxString *)
void reportException(wholenumber_t error)
RexxString * copies(RexxInteger *)
RexxInteger * caselessAbbrev(RexxString *, RexxInteger *)
static const wholenumber_t MAX_WHOLENUMBER
const char * getStringData()
static size_t pos(const char *stringData, size_t haystack_length, RexxString *needle, size_t _start, size_t _range)
RexxInteger * abbrev(RexxString *, RexxInteger *)
RexxInteger * caselessMatch(RexxInteger *start_, RexxString *other, RexxInteger *offset_, RexxInteger *len_)
RexxInteger * caselessCountStrRexx(RexxString *)
RexxString * raw_string(stringsize_t l)
RexxString * changeStr(RexxString *, RexxString *, RexxInteger *)
size_t optionalPositionArgument(RexxObject *o, size_t d, size_t p)
RexxString * new_string(const char *s, stringsize_t l)
RexxObject * dataType(RexxString *)
RexxString * optionalStringArgument(RexxObject *o, RexxString *d, size_t p)
#define Error_Incorrect_method_position
#define STRING_BAD_VARIABLE
static bool isSymbolCharacter(char ch)
stringsize_t requiredNonNegative(size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
static RexxInteger * verify(const char *data, size_t stringLen, RexxString *ref, RexxString *option, RexxInteger *_start, RexxInteger *range)
char optionalPadArgument(RexxObject *o, char d, size_t p)
RexxInteger * lastPosRexx(RexxString *, RexxInteger *, RexxInteger *)
static RexxInteger * lastPosRexx(const char *stringData, size_t haystackLen, RexxString *needle, RexxInteger *_start, RexxInteger *_range)
RexxInteger * primitiveCompareTo(RexxString *other, stringsize_t start, stringsize_t len)
size_t optionalPositive(RexxObject *o, size_t d, size_t p)
#define STRING_LITERAL_DOT
RexxInteger * caselessLastPosRexx(RexxString *, RexxInteger *, RexxInteger *)
static wholenumber_t minVal(wholenumber_t n1, wholenumber_t n2)
bool primitiveCaselessMatch(stringsize_t start, RexxString *other, stringsize_t offset, stringsize_t len)
static size_t caselessLastPos(const char *stringData, size_t hastackLen, RexxString *needle, size_t _start, size_t range)
RexxInteger * posRexx(RexxString *, RexxInteger *, RexxInteger *)
size_t caselessLastPos(RexxString *needle, size_t start)
char optionalOptionArgument(RexxObject *o, char d, size_t p)
static size_t caselessCountStr(const char *hayStack, size_t hayStackLength, RexxString *needle)
static size_t lastPos(const char *stringData, size_t hastackLen, RexxString *needle, size_t _start, size_t _range)
RexxString * caselessChangeStr(RexxString *, RexxString *, RexxInteger *)
stringsize_t positionArgument(RexxObject *argument, size_t position)
#define Error_Incorrect_method_length
RexxString * stringArgument(RexxObject *object, size_t position)
static size_t caselessPos(const char *stringData, size_t haystack_length, RexxString *needle, size_t _start, size_t _range)
RexxString * translate(RexxString *, RexxString *, RexxString *, RexxInteger *, RexxInteger *)
static size_t countStr(const char *hayStack, size_t hayStackLength, RexxString *needle)
RexxInteger * compare(RexxString *, RexxString *)
RexxInteger * match(RexxInteger *start_, RexxString *other, RexxInteger *offset_, RexxInteger *len_)
const int MAX_SYMBOL_LENGTH
static size_t memPos(const char *string, size_t length, char target)
static RexxObject * dataType(RexxString *String, char Option)
size_t caselessPos(RexxString *, size_t)
bool primitiveMatch(stringsize_t start, RexxString *other, stringsize_t offset, stringsize_t len)
RexxInteger * verify(RexxString *, RexxString *, RexxInteger *, RexxInteger *)