Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
primecheck.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "duktape.h"

Go to the source code of this file.

Functions

static duk_ret_t native_prime_check (duk_context *ctx)
 
int main (int argc, const char *argv[])
 

Function Documentation

◆ main()

int main ( int argc,
const char * argv[] )

Definition at line 23 of file duktape-1.5.2/examples/guide/primecheck.c.

23 {
24 duk_context *ctx = NULL;
25
27 if (!ctx) {
28 printf("Failed to create a Duktape heap.\n");
29 exit(1);
30 }
31
33 duk_push_c_function(ctx, native_prime_check, 2 /*nargs*/);
34 duk_put_prop_string(ctx, -2, "primeCheckNative");
35
36 if (duk_peval_file(ctx, "prime.js") != 0) {
37 printf("Error: %s\n", duk_safe_to_string(ctx, -1));
38 goto finished;
39 }
40 duk_pop(ctx); /* ignore result */
41
42 duk_get_prop_string(ctx, -1, "primeTest");
43 if (duk_pcall(ctx, 0) != 0) {
44 printf("Error: %s\n", duk_safe_to_string(ctx, -1));
45 }
46 duk_pop(ctx); /* ignore result */
47
48 finished:
50
51 exit(0);
52}
static duk_ret_t native_prime_check(duk_context *ctx)
DUK_EXTERNAL duk_idx_t duk_push_c_function(duk_context *ctx, duk_c_function func, duk_int_t nargs)
DUK_EXTERNAL duk_bool_t duk_put_prop_string(duk_context *ctx, duk_idx_t obj_idx, const char *key)
DUK_EXTERNAL duk_bool_t duk_get_prop_string(duk_context *ctx, duk_idx_t obj_index, const char *key)
DUK_EXTERNAL void duk_destroy_heap(duk_context *ctx)
DUK_EXTERNAL void duk_push_global_object(duk_context *ctx)
DUK_EXTERNAL void duk_pop(duk_context *ctx)
DUK_EXTERNAL duk_int_t duk_pcall(duk_context *ctx, duk_idx_t nargs)
#define duk_safe_to_string(ctx, index)
#define duk_create_heap_default()
#define duk_peval_file(ctx, path)
#define NULL
Definition gmacros.h:924
#define printf

References duk_create_heap_default, duk_destroy_heap(), duk_get_prop_string(), duk_pcall(), duk_peval_file, duk_pop(), duk_push_c_function(), duk_push_global_object(), duk_put_prop_string(), duk_safe_to_string, native_prime_check(), NULL, and printf.

◆ native_prime_check()

static duk_ret_t native_prime_check ( duk_context * ctx)
static

Definition at line 7 of file duktape-1.5.2/examples/guide/primecheck.c.

7 {
8 int val = duk_require_int(ctx, 0);
9 int lim = duk_require_int(ctx, 1);
10 int i;
11
12 for (i = 2; i <= lim; i++) {
13 if (val % i == 0) {
14 duk_push_false(ctx);
15 return 1;
16 }
17 }
18
19 duk_push_true(ctx);
20 return 1;
21}
DUK_EXTERNAL void duk_push_true(duk_context *ctx)
DUK_EXTERNAL void duk_push_false(duk_context *ctx)
DUK_EXTERNAL duk_int_t duk_require_int(duk_context *ctx, duk_idx_t index)

References duk_push_false(), duk_push_true(), and duk_require_int().

Referenced by main().