-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathduktape.cfg
139 lines (116 loc) · 4.18 KB
/
duktape.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
[n.global]
output = duktape
[n.prepare]
copy = "src/js.nim=duktape/js.nim"
[n.include]
duktape/src
[duk_config.h]
preprocess = true
search.export = """
#define DUK_EXTERNAL_DECL __attribute__ ((visibility("default"))) extern
"""
replace.export = """
#define DUK_EXTERNAL_DECL
"""
[duktape.h]
preprocess = true
defines = true
compile = duktape/src/duktape.c
rename = "duktape_sys.nim"
[duktape_sys.nim]
prepend = """
type
DTContext* = pointer
type
duk_int_t* = cint
duk_uint_t* = cuint
duk_uint8_t* = uint8
duk_int8_t* = int8
duk_uint16_t* = uint16
duk_int16_t* = int16
duk_uint32_t* = uint32
duk_int32_t* = int32
duk_uint64_t* = uint64
duk_int64_t* = int64
duk_small_int_t* = cint
duk_small_uint_t* = cuint
duk_bool_t* = cint
duk_idx_t* = duk_int_t
duk_uidx_t* = duk_uint_t
duk_uarridx_t* = duk_uint_t
duk_errcode_t* = duk_int_t
duk_codepoint_t* = duk_int_t
duk_ucodepoint_t* = duk_uint_t
duk_float_t* = cfloat
duk_double_t* = cdouble
duk_size_t* = cint
duk_ret_t* = cint
"""
search.redef = """
duk_thread_state* {.importc: "duk_thread_state", header: headerduktape, bycopy.} = object
data* {.importc: "data".}: array[128, char]
duk_memory_functions* {.importc: "duk_memory_functions", header: headerduktape,
bycopy.} = object
alloc_func* {.importc: "alloc_func".}: duk_alloc_function
realloc_func* {.importc: "realloc_func".}: duk_realloc_function
free_func* {.importc: "free_func".}: duk_free_function
udata* {.importc: "udata".}: pointer
duk_function_list_entry* {.importc: "duk_function_list_entry",
header: headerduktape, bycopy.} = object
key* {.importc: "key".}: cstring
value* {.importc: "value".}: duk_c_function
nargs* {.importc: "nargs".}: duk_idx_t
duk_number_list_entry* {.importc: "duk_number_list_entry", header: headerduktape,
bycopy.} = object
key* {.importc: "key".}: cstring
value* {.importc: "value".}: duk_double_t
duk_time_components* {.importc: "duk_time_components", header: headerduktape,
bycopy.} = object
year* {.importc: "year".}: duk_double_t
month* {.importc: "month".}: duk_double_t
day* {.importc: "day".}: duk_double_t
hours* {.importc: "hours".}: duk_double_t
minutes* {.importc: "minutes".}: duk_double_t
seconds* {.importc: "seconds".}: duk_double_t
milliseconds* {.importc: "milliseconds".}: duk_double_t
weekday* {.importc: "weekday".}: duk_double_t
"""
replace.redef = ""
search.ctx = "ptr duk_context"
replace.ctx = "DTContext"
search.va = """
proc duk_error_va_raw*(ctx: DTContext; err_code: duk_errcode_t;
filename: cstring; line: duk_int_t; fmt: cstring; ap: va_list) {.
stdcall, importc: "duk_error_va_raw", header: headerduktape.}
"""
replace.va = ""
search.va2 = """
proc duk_push_vsprintf*(ctx: DTContext; fmt: cstring; ap: va_list): cstring {.
stdcall, importc: "duk_push_vsprintf", header: headerduktape.}
"""
replace.va2 = ""
search.va3 = """
proc duk_push_error_object_va_raw*(ctx: DTContext; err_code: duk_errcode_t;
filename: cstring; line: duk_int_t; fmt: cstring;
ap: va_list): duk_idx_t {.stdcall,
importc: "duk_push_error_object_va_raw", header: headerduktape.}
"""
replace.va3 = ""
search.va4 = """
proc duk_push_error_object_va_raw*(ctx: DTContext; err_code: duk_errcode_t;
filename: cstring; line: duk_int_t; fmt: cstring;
ap: va_list): duk_idx_t {.stdcall,
importc: "duk_push_error_object_va_raw", header: headerduktape.}
"""
replace.va4 = ""
search.incc = "/src/.h"
replace.incc = "/src/duktape.h"
append = """
proc duk_create_heap_default*(): DTContext {.header: headerduktape.}
proc duk_eval_string*(ctx: DTContext, s: cstring) {.header: headerduktape.}
proc duk_pcompile_string*(ctx: DTContext, flags: duk_uint_t, s: cstring): duk_int_t {.header: headerduktape.}
proc duk_safe_to_string*(ctx: DTContext, idx: duk_idx_t): cstring {.header: headerduktape.}
# proc duk_to_string*(ctx: DTContext, index: cint): cstring {.header: headerduktape.}
type
DTCFunction* = duk_c_function
"""