nsgenbind
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Classes | Functions
jsapi-libdom.h File Reference

Go to the source code of this file.

Classes

struct  binding_interface
 
struct  binding
 

Functions

int jsapi_libdom_output (struct options *options, struct genbind_node *genbind_ast, struct genbind_node *binding_node)
 
int build_interface_map (struct genbind_node *binding_node, struct webidl_node *webidl_ast, int *interfacec_out, struct binding_interface **interfaces_out)
 
void output_code_block (struct binding *binding, struct genbind_node *codelist)
 
int output_jsclasses (struct binding *binding)
 
int output_function_spec (struct binding *binding)
 
int output_function_bodies (struct binding *binding)
 
int output_property_tinyid (struct binding *binding)
 
int output_property_spec (struct binding *binding)
 
int output_property_body (struct binding *binding)
 
int output_class_init (struct binding *binding)
 
int output_class_new (struct binding *binding)
 

Function Documentation

◆ build_interface_map()

int build_interface_map ( struct genbind_node binding_node,
struct webidl_node webidl_ast,
int *  interfacec_out,
struct binding_interface **  interfaces_out 
)

Build interface map.

Generate a map of all interfaces referenced from a binding and their relationships to each other.

The map will contain all the interfaces both directly referenced by the binding and all those inherited through the WebIDL.

The map is topoligicaly sorted to ensure no forward inheritance references.

The map contains an monotinicaly incrementing index for all interfaces referenced in the binding (i.e. those to be exported).

◆ jsapi_libdom_output()

int jsapi_libdom_output ( struct options options,
struct genbind_node genbind_ast,
struct genbind_node binding_node 
)

Generate binding between jsapi and netsurf libdom

◆ output_class_init()

int output_class_init ( struct binding binding)

generate binding initialisation

◆ output_class_new()

int output_class_new ( struct binding binding)

generate binding class constructors

◆ output_code_block()

void output_code_block ( struct binding binding,
struct genbind_node codelist 
)

output code block from a node

◆ output_function_bodies()

int output_function_bodies ( struct binding binding)

Generate jsapi native function bodies.

web IDL describes methods as operators http://www.w3.org/TR/WebIDL/#idl-operations

This walks the web IDL AST to find all operator interface members and construct appropriate jsapi native function body to implement them.

Function body contents can be overriden with an operator code block in the binding definition.

Parameters
bindingThe binding information

◆ output_function_spec()

int output_function_spec ( struct binding binding)

◆ output_jsclasses()

int output_jsclasses ( struct binding binding)

generate classes

◆ output_property_body()

int output_property_body ( struct binding binding)

generate property function bodies

◆ output_property_spec()

int output_property_spec ( struct binding binding)

generate property specifier structure

◆ output_property_tinyid()

int output_property_tinyid ( struct binding binding)

generate property tinyid enum