nsgenbind
Loading...
Searching...
No Matches
ir.h
Go to the documentation of this file.
1/* intermediate representation of WebIDL and binding data
2 *
3 * This file is part of nsgenbind.
4 * Licensed under the MIT License,
5 * http://www.opensource.org/licenses/mit-license.php
6 * Copyright 2012 Vincent Sanders <vince@netsurf-browser.org>
7 */
8
9#ifndef nsgenbind_ir_h
10#define nsgenbind_ir_h
11
12struct genbind_node;
13struct webidl_node;
14
19 const char *name;
20
25};
26
39
49
59
83
88 const char *name;
89 struct webidl_node *node;
90};
91
92
112
120
125
132
134struct ir_entry {
135 const char *name;
137 const char *inherit_name;
138 struct genbind_node *class;
141 union {
142 struct ir_dictionary_entry dictionary;
143 struct ir_interface_entry interface;
144 } u;
145
153 /* The variables are created and used by the output generation but
154 * rather than have another allocation and pointer the data they are
155 * just inline here.
156 */
157
158 char *filename;
169};
170
172struct ir {
173 int entryc;
178
181};
182
186int ir_new(struct genbind_node *genbind,
187 struct webidl_node *webidl,
188 struct ir **map_out);
189
190int ir_dump(struct ir *map);
191
192int ir_dumpdot(struct ir *map);
193
199struct ir_entry *ir_inherit_entry(struct ir *map, struct ir_entry *entry);
200
201#endif
int ir_dump(struct ir *map)
Definition ir.c:1131
int ir_dumpdot(struct ir *map)
Definition ir.c:1175
int ir_new(struct genbind_node *genbind, struct webidl_node *webidl, struct ir **map_out)
Definition ir.c:963
ir_init_argtype
Definition ir.h:126
@ IR_INIT_ARG_INT
Definition ir.h:129
@ IR_INIT_ARG_UNSIGNED
Definition ir.h:128
@ IR_INIT_ARG_POINTER
Definition ir.h:127
@ IR_INIT_ARG_BOOL
Definition ir.h:130
ir_entry_type
Definition ir.h:121
@ IR_ENTRY_TYPE_DICTIONARY
Definition ir.h:123
@ IR_ENTRY_TYPE_INTERFACE
Definition ir.h:122
struct ir_entry * ir_inherit_entry(struct ir *map, struct ir_entry *entry)
Definition ir.c:1227
Definition ir.h:63
enum webidl_type_modifier modifier
Definition ir.h:70
const char * treatnullas
Definition ir.h:72
struct ir_type_entry * typev
Definition ir.h:68
int typec
Definition ir.h:67
struct genbind_node * setter
Definition ir.h:75
struct webidl_node * node
Definition ir.h:65
const char * putforwards
Definition ir.h:71
char * property_name
Definition ir.h:77
const char * name
Definition ir.h:64
struct genbind_node * getter
Definition ir.h:74
Definition ir.h:87
const char * name
Definition ir.h:88
struct webidl_node * node
Definition ir.h:89
Definition ir.h:116
struct ir_operation_argument_entry * memberv
Definition ir.h:118
int memberc
Definition ir.h:117
Definition ir.h:134
struct webidl_node * node
Definition ir.h:136
char * filename
Definition ir.h:158
enum ir_init_argtype * class_init_argt
Definition ir.h:168
char * class_name
Definition ir.h:160
int class_init_argc
Definition ir.h:165
int refcount
Definition ir.h:149
enum ir_entry_type type
Definition ir.h:140
int inherit_idx
Definition ir.h:146
const char * name
Definition ir.h:135
union ir_entry::@2 u
const char * inherit_name
Definition ir.h:137
Definition ir.h:94
struct ir_attribute_entry * attributev
Definition ir.h:107
struct ir_operation_entry * operationv
Definition ir.h:104
int attributec
Definition ir.h:106
int constantc
Definition ir.h:109
bool noobject
Definition ir.h:95
struct ir_constant_entry * constantv
Definition ir.h:110
int operationc
Definition ir.h:103
bool primary_global
Definition ir.h:99
Definition ir.h:18
int optionalc
Definition ir.h:21
struct webidl_node * node
Definition ir.h:24
int elipsisc
Definition ir.h:22
const char * name
Definition ir.h:19
Definition ir.h:41
const char * name
Definition ir.h:42
struct ir_operation_overload_entry * overloadv
Definition ir.h:47
struct webidl_node * node
Definition ir.h:43
int overloadc
Definition ir.h:46
struct genbind_node * method
Definition ir.h:44
Definition ir.h:30
struct webidl_node * type
Definition ir.h:31
int elipsisc
Definition ir.h:34
int optionalc
Definition ir.h:33
struct ir_operation_argument_entry * argumentv
Definition ir.h:37
int argumentc
Definition ir.h:36
Definition ir.h:53
enum webidl_type_modifier modifier
Definition ir.h:55
const char * name
Definition ir.h:57
enum webidl_type base
Definition ir.h:54
bool nullable
Definition ir.h:56
Definition ir.h:172
struct genbind_node * binding_node
Definition ir.h:177
struct webidl_node * webidl
Definition ir.h:180
int entryc
Definition ir.h:173
struct ir_entry * entries
Definition ir.h:174
webidl_type
Definition webidl-ast.h:51
webidl_type_modifier
Definition webidl-ast.h:70