nsgenbind
Loading...
Searching...
No Matches
webidl-ast.h
Go to the documentation of this file.
1/* Web IDL AST interface
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_webidl_ast_h
10#define nsgenbind_webidl_ast_h
11
50
68
78
79/* the type of special node */
87
88struct webidl_node;
89
91typedef int (webidl_callback_t)(struct webidl_node *node, void *ctx);
92
93int webidl_cmp_node_type(struct webidl_node *node, void *ctx);
94
98struct webidl_node *webidl_node_new(enum webidl_node_type, struct webidl_node *l, void *r);
99
104
105
106struct webidl_node *webidl_node_prepend(struct webidl_node *list, struct webidl_node *node);
107struct webidl_node *webidl_node_append(struct webidl_node *list, struct webidl_node *node);
108
109struct webidl_node *webidl_node_add(struct webidl_node *node, struct webidl_node *list);
110
111/* node contents acessors */
116
118
119/* node searches */
120
130 void *ctx);
131
134
135struct webidl_node *
137 struct webidl_node *prev,
139 void *ctx);
140
141struct webidl_node *
143 struct webidl_node *prev,
145
146struct webidl_node *
149 const char *ident);
150
151
152
156int webidl_parsefile(char *filename, struct webidl_node **webidl_ast);
157
161int webidl_dump_ast(struct webidl_node *node);
162
167
171int webidl_fprintf(FILE *stream, const char *format, ...);
172
176const char *webidl_type_to_str(enum webidl_type_modifier m, enum webidl_type t);
177
178#endif
DOMString filename
Definition html.idl:1561
struct webidl_node * node
Definition webidl-ast.c:35
union webidl_node::@4 r
struct webidl_node * l
Definition webidl-ast.c:32
enum webidl_node_type type
Definition webidl-ast.c:31
int() webidl_callback_t(struct webidl_node *node, void *ctx)
Definition webidl-ast.h:91
webidl_type
Definition webidl-ast.h:51
@ WEBIDL_TYPE_DOUBLE
Definition webidl-ast.h:58
@ WEBIDL_TYPE_SHORT
Definition webidl-ast.h:59
@ WEBIDL_TYPE_STRING
Definition webidl-ast.h:62
@ WEBIDL_TYPE_ANY
Definition webidl-ast.h:52
@ WEBIDL_TYPE_BOOL
Definition webidl-ast.h:54
@ WEBIDL_TYPE_OBJECT
Definition webidl-ast.h:64
@ WEBIDL_TYPE_DATE
Definition webidl-ast.h:65
@ WEBIDL_TYPE_OCTET
Definition webidl-ast.h:56
@ WEBIDL_TYPE_SEQUENCE
Definition webidl-ast.h:63
@ WEBIDL_TYPE_LONGLONG
Definition webidl-ast.h:61
@ WEBIDL_TYPE_USER
Definition webidl-ast.h:53
@ WEBIDL_TYPE_VOID
Definition webidl-ast.h:66
@ WEBIDL_TYPE_BYTE
Definition webidl-ast.h:55
@ WEBIDL_TYPE_LONG
Definition webidl-ast.h:60
@ WEBIDL_TYPE_FLOAT
Definition webidl-ast.h:57
struct webidl_node * webidl_node_getnode(struct webidl_node *node)
Definition webidl-ast.c:335
webidl_type_special
Definition webidl-ast.h:80
@ WEBIDL_TYPE_SPECIAL_CREATOR
Definition webidl-ast.h:83
@ WEBIDL_TYPE_SPECIAL_SETTER
Definition webidl-ast.h:82
@ WEBIDL_TYPE_SPECIAL_DELETER
Definition webidl-ast.h:84
@ WEBIDL_TYPE_SPECIAL_GETTER
Definition webidl-ast.h:81
@ WEBIDL_TYPE_SPECIAL_LEGACYCALLER
Definition webidl-ast.h:85
int webidl_node_enumerate_type(struct webidl_node *node, enum webidl_node_type type)
Definition webidl-ast.c:192
struct webidl_node * webidl_node_find_type_ident(struct webidl_node *root_node, enum webidl_node_type type, const char *ident)
Definition webidl-ast.c:246
int webidl_cmp_node_type(struct webidl_node *node, void *ctx)
Definition webidl-ast.c:176
struct webidl_node * webidl_node_append(struct webidl_node *list, struct webidl_node *node)
Definition webidl-ast.c:64
struct webidl_node * webidl_node_add(struct webidl_node *node, struct webidl_node *list)
Definition webidl-ast.c:87
struct webidl_node * webidl_new_number_node(enum webidl_node_type type, struct webidl_node *l, int number)
Definition webidl-ast.c:138
char * webidl_node_gettext(struct webidl_node *node)
Definition webidl-ast.c:273
webidl_node_type
Definition webidl-ast.h:12
@ WEBIDL_NODE_TYPE_TYPE_ARRAY
Definition webidl-ast.h:39
@ WEBIDL_NODE_TYPE_LITERAL_STRING
Definition webidl-ast.h:45
@ WEBIDL_NODE_TYPE_IDENT
Definition webidl-ast.h:15
@ WEBIDL_NODE_TYPE_ROOT
Definition webidl-ast.h:14
@ WEBIDL_NODE_TYPE_CONST
Definition webidl-ast.h:27
@ WEBIDL_NODE_TYPE_DICTIONARY
Definition webidl-ast.h:29
@ WEBIDL_NODE_TYPE_LIST
Definition webidl-ast.h:19
@ WEBIDL_NODE_TYPE_TYPE_BASE
Definition webidl-ast.h:37
@ WEBIDL_NODE_TYPE_LITERAL_NULL
Definition webidl-ast.h:41
@ WEBIDL_NODE_TYPE_OPERATION
Definition webidl-ast.h:26
@ WEBIDL_NODE_TYPE_INTERFACE
Definition webidl-ast.h:22
@ WEBIDL_NODE_TYPE_EXTENDED_ATTRIBUTE
Definition webidl-ast.h:47
@ WEBIDL_NODE_TYPE_TYPE
Definition webidl-ast.h:36
@ WEBIDL_NODE_TYPE_SPECIAL
Definition webidl-ast.h:32
@ WEBIDL_NODE_TYPE_TYPE_NULLABLE
Definition webidl-ast.h:38
@ WEBIDL_NODE_TYPE_INHERITANCE
Definition webidl-ast.h:31
@ WEBIDL_NODE_TYPE_ATTRIBUTE
Definition webidl-ast.h:25
@ WEBIDL_NODE_TYPE_MODIFIER
Definition webidl-ast.h:17
@ WEBIDL_NODE_TYPE_OPTIONAL
Definition webidl-ast.h:34
@ WEBIDL_NODE_TYPE_LITERAL_BOOL
Definition webidl-ast.h:43
@ WEBIDL_NODE_TYPE_ARGUMENT
Definition webidl-ast.h:33
@ WEBIDL_NODE_TYPE_ELLIPSIS
Definition webidl-ast.h:35
@ WEBIDL_NODE_TYPE_LITERAL_INT
Definition webidl-ast.h:42
@ WEBIDL_NODE_TYPE_INTERFACE_IMPLEMENTS
Definition webidl-ast.h:23
@ WEBIDL_NODE_TYPE_LITERAL_FLOAT
Definition webidl-ast.h:44
struct webidl_node * webidl_node_find(struct webidl_node *node, struct webidl_node *prev, webidl_callback_t *cb, void *ctx)
Definition webidl-ast.c:205
webidl_type_modifier
Definition webidl-ast.h:70
@ WEBIDL_TYPE_MODIFIER_INHERIT
Definition webidl-ast.h:76
@ WEBIDL_TYPE_MODIFIER_UNSIGNED
Definition webidl-ast.h:72
@ WEBIDL_TYPE_MODIFIER_NONE
Definition webidl-ast.h:71
@ WEBIDL_TYPE_MODIFIER_STATIC
Definition webidl-ast.h:75
@ WEBIDL_TYPE_MODIFIER_UNRESTRICTED
Definition webidl-ast.h:73
@ WEBIDL_TYPE_MODIFIER_READONLY
Definition webidl-ast.h:74
int webidl_dump_ast(struct webidl_node *node)
Definition webidl-ast.c:571
int webidl_node_for_each_type(struct webidl_node *node, enum webidl_node_type type, webidl_callback_t *cb, void *ctx)
Definition webidl-ast.c:152
const char * webidl_type_to_str(enum webidl_type_modifier m, enum webidl_type t)
Definition webidl-ast.c:788
struct webidl_node * webidl_node_prepend(struct webidl_node *list, struct webidl_node *node)
Definition webidl-ast.c:44
int * webidl_node_getint(struct webidl_node *node)
Definition webidl-ast.c:293
int webidl_parsefile(char *filename, struct webidl_node **webidl_ast)
Definition webidl-ast.c:619
float * webidl_node_getfloat(struct webidl_node *node)
Definition webidl-ast.c:313
enum webidl_node_type webidl_node_gettype(struct webidl_node *node)
Definition webidl-ast.c:328
int webidl_intercalate_implements(struct webidl_node *node)
Definition webidl-ast.c:769
struct webidl_node * webidl_node_new(enum webidl_node_type, struct webidl_node *l, void *r)
Definition webidl-ast.c:124
int webidl_fprintf(FILE *stream, const char *format,...)
Definition webidl-ast.c:662
struct webidl_node * webidl_node_find_type(struct webidl_node *node, struct webidl_node *prev, enum webidl_node_type type)
Definition webidl-ast.c:233