Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
duktape-1.8.0/examples/eval/eval.c
Go to the documentation of this file.
1/*
2 * Very simple example program for evaluating expressions from
3 * command line
4 */
5
6#include "duktape.h"
7#include <stdio.h>
8
9static int eval_raw(duk_context *ctx) {
10 duk_eval(ctx);
11 return 1;
12}
13
14static int tostring_raw(duk_context *ctx) {
15 duk_to_string(ctx, -1);
16 return 1;
17}
18
19static void usage_exit(void) {
20 fprintf(stderr, "Usage: eval <expression> [<expression>] ...\n");
21 fflush(stderr);
22 exit(1);
23}
24
25int main(int argc, char *argv[]) {
26 duk_context *ctx;
27 int i;
28 const char *res;
29
30 if (argc < 2) {
31 usage_exit();
32 }
33
35 for (i = 1; i < argc; i++) {
36 printf("=== eval: '%s' ===\n", argv[i]);
37 duk_push_string(ctx, argv[i]);
38 duk_safe_call(ctx, eval_raw, 1 /*nargs*/, 1 /*nrets*/);
39 duk_safe_call(ctx, tostring_raw, 1 /*nargs*/, 1 /*nrets*/);
40 res = duk_get_string(ctx, -1);
41 printf("%s\n", res ? res : "null");
42 duk_pop(ctx);
43 }
44
46
47 return 0;
48}
DUK_EXTERNAL const char * duk_push_string(duk_context *ctx, const char *str)
DUK_EXTERNAL const char * duk_get_string(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_int_t duk_safe_call(duk_context *ctx, duk_safe_call_function func, duk_idx_t nargs, duk_idx_t nrets)
DUK_EXTERNAL void duk_destroy_heap(duk_context *ctx)
DUK_EXTERNAL const char * duk_to_string(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_pop(duk_context *ctx)
#define duk_eval(ctx)
#define duk_create_heap_default()
static void usage_exit(void)
static int tostring_raw(duk_context *ctx)
static int eval_raw(duk_context *ctx)
int main(void)
Definition sanitycheckc.c:1
#define printf