55 if (strict && autoCreate && named && !extraAllowed)
226 variable->
assign(context, stack, argument);
238 defaultValue = defaultValue->
evaluate(context, stack);
241 variable->
assign(context, stack, defaultValue);
249 variable->
drop(context);
284 if (target + 1 > count)
289 return arglist[target];
339 expectedNamedArguments[i].minimumLength = -1;
341 if (RexxMinimumLength !=
OREF_NULL) RexxMinimumLength->
numberValue(expectedNamedArguments[i].minimumLength);
349 for (
size_t i= argcount; i < (argcount + (2 * named_argcount)); i+=2)
368 if (!retriever->
exists(context)) retriever->
assign(context, stack, argValue);
384 variable->
assign(context, stack, argValue);
396 defaultValue = defaultValue->
evaluate(context, stack);
399 variable->
assign(context, stack, defaultValue);
407 variable->
drop(context);
442 expectedNamedArguments[i].minimumLength = -1;
444 if (RexxMinimumLength !=
OREF_NULL) RexxMinimumLength->
numberValue(expectedNamedArguments[i].minimumLength);
451 bool match = expectedNamedArguments.
check(expectedNamedArguments[i].name,
OREF_NULL,
false, expectedNamedArguments[i].minimumLength, i+1);
452 if (match)
return false;
468 if (namedArgCount < minimumRequired)
473 if (!extraAllowed && namedArgCount > this->
count)
483 for (
size_t i= 0; i < (2 * namedArgCount); i+=2)
487 bool match = this->
check(argName, argValue, strict && !extraAllowed);
493 for (
size_t i=0; i < this->
count; i++)
522 if (name == NULL)
return false;
528 if (name == NULL)
return false;
538 for (
size_t i=from; i < this->
count; i++)
542 const char *nameIterator = name;
545 ssize_t nameMinimumLength = name_minimumLength;
550 if (expectedNameMinimumLength != 0)
554 if (nameMinimumLength == 0 && *expectedNameIterator ==
'\0')
576 if (*nameIterator != *expectedNameIterator)
break;
580 if (*nameIterator ==
'\0')
588 if (nameMinimumLength > 0) nameMinimumLength--;
589 if (expectedNameMinimumLength > 0) expectedNameMinimumLength--;
594 if (*nameIterator ==
'\0')
602 if (nameMinimumLength == 0)
620 if (*nameIterator != *expectedNameIterator)
break;
622 if (nameMinimumLength > 0) nameMinimumLength--;
625 expectedNameIterator++;
void reportException(wholenumber_t error)
#define Error_Incorrect_call_noarg
#define Error_Incorrect_call_minarg
#define Error_Incorrect_method_maxarg
#define Error_Invalid_argument_general
#define Error_Incorrect_method_minarg
#define Error_Incorrect_call_maxarg
#define Error_Incorrect_method_noarg
#define Error_Translation_user_defined
#define Error_Symbol_expected_user_defined
#define memory_mark(oref)
#define flatten_reference(oref, envel)
#define memory_mark_general(oref)
#define setUpFlatten(type)
RexxString * new_string(const char *s, stringsizeB_t bl, sizeC_t cl=-1)
void check(RexxObject **namedArglist, size_t namedArgCount, bool strict, bool extraAllowed, size_t minimumRequired=0)
NamedArgument * namedArguments
RexxString * getCallname()
size_t getMethodArgumentCount()
void traceResult(RexxObject *v)
void traceInstruction(RexxInstruction *v)
RexxObject ** getMethodArgumentList()
size_t getMethodNamedArgumentCount()
RexxInstruction * nextInstruction
void execute(RexxActivation *, RexxExpressionStack *)
bool checkNamedArguments()
void liveGeneral(int reason)
void executeNamedArguments(RexxActivation *, RexxExpressionStack *)
void flatten(RexxEnvelope *)
RexxObject * getArgument(RexxObject **arglist, size_t count, size_t target)
void executePositionalArguments(RexxActivation *, RexxExpressionStack *)
RexxInstructionUseStrict(size_t, bool, bool, bool, bool, RexxQueue *, RexxQueue *, RexxQueue *)
bool numberValue(wholenumber_t &result, size_t precision)
virtual RexxObject * evaluate(RexxActivation *, RexxExpressionStack *)
const char * getStringData()
RexxString * concatWithCstring(const char *)
RexxString * concatToCstring(const char *)
codepoint_t getCharC(sizeC_t p)
virtual bool exists(RexxActivation *)
virtual void assign(RexxActivation *, RexxExpressionStack *, RexxObject *)
virtual RexxString * getName()
virtual void drop(RexxActivation *)
static RexxVariableBase * getVariableRetriever(RexxString *variable)
RexxInteger * minimumLength
RexxVariableBase * variable
RexxObject * defaultValue