1 /*
2  *  Forward declarations for all Duktape structures.
3  */
4 
5 #if !defined(DUK_FORWDECL_H_INCLUDED)
6 #define DUK_FORWDECL_H_INCLUDED
7 
8 /*
9  *  Forward declarations
10  */
11 
12 #if defined(DUK_USE_CPP_EXCEPTIONS)
13 class duk_internal_exception;
14 #else
15 struct duk_jmpbuf;
16 #endif
17 
18 /* duk_tval intentionally skipped */
19 struct duk_heaphdr;
20 struct duk_heaphdr_string;
21 struct duk_harray;
22 struct duk_hstring;
23 struct duk_hstring_external;
24 struct duk_hobject;
25 struct duk_hcompfunc;
26 struct duk_hnatfunc;
27 struct duk_hboundfunc;
28 struct duk_hthread;
29 struct duk_hbufobj;
30 struct duk_hdecenv;
31 struct duk_hobjenv;
32 struct duk_hproxy;
33 struct duk_hbuffer;
34 struct duk_hbuffer_fixed;
35 struct duk_hbuffer_dynamic;
36 struct duk_hbuffer_external;
37 
38 struct duk_propaccessor;
39 union duk_propvalue;
40 struct duk_propdesc;
41 
42 struct duk_heap;
43 struct duk_breakpoint;
44 
45 struct duk_activation;
46 struct duk_catcher;
47 struct duk_ljstate;
48 struct duk_strcache_entry;
49 struct duk_litcache_entry;
50 struct duk_strtab_entry;
51 
52 #if defined(DUK_USE_DEBUG)
53 struct duk_fixedbuffer;
54 #endif
55 
56 struct duk_bitdecoder_ctx;
57 struct duk_bitencoder_ctx;
58 struct duk_bufwriter_ctx;
59 
60 struct duk_token;
61 struct duk_re_token;
62 struct duk_lexer_point;
63 struct duk_lexer_ctx;
64 struct duk_lexer_codepoint;
65 
66 struct duk_compiler_instr;
67 struct duk_compiler_func;
68 struct duk_compiler_ctx;
69 
70 struct duk_re_matcher_ctx;
71 struct duk_re_compiler_ctx;
72 
73 #if defined(DUK_USE_CPP_EXCEPTIONS)
74 /* no typedef */
75 #else
76 typedef struct duk_jmpbuf duk_jmpbuf;
77 #endif
78 
79 /* duk_tval intentionally skipped */
80 typedef struct duk_heaphdr duk_heaphdr;
81 typedef struct duk_heaphdr_string duk_heaphdr_string;
82 typedef struct duk_harray duk_harray;
83 typedef struct duk_hstring duk_hstring;
84 typedef struct duk_hstring_external duk_hstring_external;
85 typedef struct duk_hobject duk_hobject;
86 typedef struct duk_hcompfunc duk_hcompfunc;
87 typedef struct duk_hnatfunc duk_hnatfunc;
88 typedef struct duk_hboundfunc duk_hboundfunc;
89 typedef struct duk_hthread duk_hthread;
90 typedef struct duk_hbufobj duk_hbufobj;
91 typedef struct duk_hdecenv duk_hdecenv;
92 typedef struct duk_hobjenv duk_hobjenv;
93 typedef struct duk_hproxy duk_hproxy;
94 typedef struct duk_hbuffer duk_hbuffer;
95 typedef struct duk_hbuffer_fixed duk_hbuffer_fixed;
96 typedef struct duk_hbuffer_dynamic duk_hbuffer_dynamic;
97 typedef struct duk_hbuffer_external duk_hbuffer_external;
98 
99 typedef struct duk_propaccessor duk_propaccessor;
100 typedef union duk_propvalue duk_propvalue;
101 typedef struct duk_propdesc duk_propdesc;
102 
103 typedef struct duk_heap duk_heap;
104 typedef struct duk_breakpoint duk_breakpoint;
105 
106 typedef struct duk_activation duk_activation;
107 typedef struct duk_catcher duk_catcher;
108 typedef struct duk_ljstate duk_ljstate;
109 typedef struct duk_strcache_entry duk_strcache_entry;
110 typedef struct duk_litcache_entry duk_litcache_entry;
111 typedef struct duk_strtab_entry duk_strtab_entry;
112 
113 #if defined(DUK_USE_DEBUG)
114 typedef struct duk_fixedbuffer duk_fixedbuffer;
115 #endif
116 
117 typedef struct duk_bitdecoder_ctx duk_bitdecoder_ctx;
118 typedef struct duk_bitencoder_ctx duk_bitencoder_ctx;
119 typedef struct duk_bufwriter_ctx duk_bufwriter_ctx;
120 
121 typedef struct duk_token duk_token;
122 typedef struct duk_re_token duk_re_token;
123 typedef struct duk_lexer_point duk_lexer_point;
124 typedef struct duk_lexer_ctx duk_lexer_ctx;
125 typedef struct duk_lexer_codepoint duk_lexer_codepoint;
126 
127 typedef struct duk_compiler_instr duk_compiler_instr;
128 typedef struct duk_compiler_func duk_compiler_func;
129 typedef struct duk_compiler_ctx duk_compiler_ctx;
130 
131 typedef struct duk_re_matcher_ctx duk_re_matcher_ctx;
132 typedef struct duk_re_compiler_ctx duk_re_compiler_ctx;
133 
134 #endif  /* DUK_FORWDECL_H_INCLUDED */
135