int main(int argc, char* argv[]) { const int MAX = 30; int a[MAX]; CREATE_ARRAY(a, MAX, 100); PRINT_ARRAY(a, MAX); printf("%d prime numbers in the array:\n", primeArray(a, MAX)); for (int i = 0; i < MAX; ++i) if (a[i]) printf("%3d", a[i]); puts(""); if (argc > 1) printf("%d prime numbers in 2~%d.\n", prime2toN(atoi(argv[1])), atoi(argv[1])); return 0; }
//--------------------------------------------------------------------------- void ShowError(JSContext *cx, const char *message, JSErrorReport *report) { int where; char *cstr; void *CREPORT; INVOKE_CALL Invoke = InvokePtr; CALL_BACK_VARIABLE_SET SetVariable = _SetVariable; void *HANDLER = CONCEPT_HANDLER; if (!ERR_DELEGATE) { printError(cx, message, report); return; } CREATE_VARIABLE(CREPORT); if (!CREATE_OBJECT(CREPORT, "JSErrorReport")) return; // (void *)"Failed to INVOKE_CREATE_OBJECT"; void *member = 0; if (!IS_OK(GET_MEMBER_VAR(CREPORT, "filename", member))) return; SET_STRING_VARIABLE(member, report->filename); if (!IS_OK(GET_MEMBER_VAR(CREPORT, "lineno", member))) return; SET_NUMBER_VARIABLE(member, report->lineno); if (!IS_OK(GET_MEMBER_VAR(CREPORT, "linebuf", member))) return; SET_STRING_VARIABLE(member, (char *)report->linebuf); if (!IS_OK(GET_MEMBER_VAR(CREPORT, "tokenptr", member))) return; SET_STRING_VARIABLE(member, (char *)report->tokenptr); if (!IS_OK(GET_MEMBER_VAR(CREPORT, "uclinebuf", member))) return; SET_STRING_VARIABLE(member, (char *)report->linebuf); if (!IS_OK(GET_MEMBER_VAR(CREPORT, "uctokenptr", member))) return; SET_STRING_VARIABLE(member, (char *)report->tokenptr); if (!IS_OK(GET_MEMBER_VAR(CREPORT, "flags", member))) return; SET_NUMBER_VARIABLE(member, report->flags); if (!IS_OK(GET_MEMBER_VAR(CREPORT, "errorNumber", member))) return; SET_NUMBER_VARIABLE(member, report->errorNumber); if (!IS_OK(GET_MEMBER_VAR(CREPORT, "ucmessage", member))) return; SET_STRING_VARIABLE(member, message); if (!IS_OK(GET_MEMBER_VAR(CREPORT, "messageArgs", member))) return; CREATE_ARRAY(member); /*int i=0; char **messageArg=report->messageArgs ? report->messageArgs[i] : 0; while (messageArg) { Invoke(INVOKE_SET_ARRAY_ELEMENT,member,(INTEGER)i,(INTEGER)VARIABLE_STRING,(char *)messageArg,(NUMBER)0); messageArg=report->messageArgs[++i]; }*/ // call delegate CALL_DELEGATE(ERR_DELEGATE, (INTEGER)3, (INTEGER)VARIABLE_NUMBER, (char *)"", (NUMBER)(SYS_INT)cx, (INTEGER)VARIABLE_STRING, (char *)message, (NUMBER)0, (INTEGER)VARIABLE_UNDEFINED, CREPORT); FREE_VARIABLE(CREPORT); }