nsgenbind
Loading...
Searching...
No Matches
Classes | Functions | Variables
webidl-ast.c File Reference
#include <stdbool.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdarg.h>
#include "utils.h"
#include "webidl-ast.h"
#include "options.h"

Go to the source code of this file.

Classes

struct  webidl_node
 

Functions

void webidl_restart (FILE *)
 
int webidl_parse (struct webidl_node **webidl_ast)
 
struct webidl_nodewebidl_node_prepend (struct webidl_node *list, struct webidl_node *inst)
 
struct webidl_nodewebidl_node_append (struct webidl_node *list, struct webidl_node *node)
 
struct webidl_nodewebidl_node_add (struct webidl_node *node, struct webidl_node *list)
 
struct webidl_nodewebidl_node_new (enum webidl_node_type type, struct webidl_node *l, void *r)
 
struct webidl_nodewebidl_new_number_node (enum webidl_node_type type, struct webidl_node *l, int number)
 
int webidl_node_for_each_type (struct webidl_node *node, enum webidl_node_type type, webidl_callback_t *cb, void *ctx)
 
int webidl_cmp_node_type (struct webidl_node *node, void *ctx)
 
int webidl_node_enumerate_type (struct webidl_node *node, enum webidl_node_type type)
 
struct webidl_nodewebidl_node_find (struct webidl_node *node, struct webidl_node *prev, webidl_callback_t *cb, void *ctx)
 
struct webidl_nodewebidl_node_find_type (struct webidl_node *node, struct webidl_node *prev, enum webidl_node_type type)
 
struct webidl_nodewebidl_node_find_type_ident (struct webidl_node *root_node, enum webidl_node_type type, const char *ident)
 
char * webidl_node_gettext (struct webidl_node *node)
 
int * webidl_node_getint (struct webidl_node *node)
 
float * webidl_node_getfloat (struct webidl_node *node)
 
enum webidl_node_type webidl_node_gettype (struct webidl_node *node)
 
struct webidl_nodewebidl_node_getnode (struct webidl_node *node)
 
int webidl_dump_ast (struct webidl_node *node)
 
int webidl_parsefile (char *filename, struct webidl_node **webidl_ast)
 
int webidl_fprintf (FILE *stream, const char *format,...)
 
int webidl_intercalate_implements (struct webidl_node *webidl_ast)
 
const char * webidl_type_to_str (enum webidl_type_modifier m, enum webidl_type t)
 

Variables

int webidl_debug
 
int webidl__flex_debug
 

Function Documentation

◆ webidl_cmp_node_type()

int webidl_cmp_node_type ( struct webidl_node node,
void *  ctx 
)

Definition at line 176 of file webidl-ast.c.

◆ webidl_dump_ast()

int webidl_dump_ast ( struct webidl_node node)

dump AST to file

Definition at line 571 of file webidl-ast.c.

◆ webidl_fprintf()

int webidl_fprintf ( FILE *  stream,
const char *  format,
  ... 
)

formatted printf to allow webidl trace data to be written to file.

Definition at line 662 of file webidl-ast.c.

◆ webidl_intercalate_implements()

int webidl_intercalate_implements ( struct webidl_node node)

perform replacement of implements elements with copies of ast data

Definition at line 769 of file webidl-ast.c.

◆ webidl_new_number_node()

struct webidl_node * webidl_new_number_node ( enum webidl_node_type  type,
struct webidl_node l,
int  number 
)

create a new node with an integer value

Definition at line 138 of file webidl-ast.c.

◆ webidl_node_add()

struct webidl_node * webidl_node_add ( struct webidl_node node,
struct webidl_node list 
)

Definition at line 87 of file webidl-ast.c.

◆ webidl_node_append()

struct webidl_node * webidl_node_append ( struct webidl_node list,
struct webidl_node node 
)

Definition at line 64 of file webidl-ast.c.

◆ webidl_node_enumerate_type()

int webidl_node_enumerate_type ( struct webidl_node node,
enum webidl_node_type  type 
)

Definition at line 192 of file webidl-ast.c.

◆ webidl_node_find()

struct webidl_node * webidl_node_find ( struct webidl_node node,
struct webidl_node prev,
webidl_callback_t cb,
void *  ctx 
)

Definition at line 205 of file webidl-ast.c.

◆ webidl_node_find_type()

struct webidl_node * webidl_node_find_type ( struct webidl_node node,
struct webidl_node prev,
enum webidl_node_type  type 
)

Definition at line 233 of file webidl-ast.c.

◆ webidl_node_find_type_ident()

struct webidl_node * webidl_node_find_type_ident ( struct webidl_node root_node,
enum webidl_node_type  type,
const char *  ident 
)

Definition at line 246 of file webidl-ast.c.

◆ webidl_node_for_each_type()

int webidl_node_for_each_type ( struct webidl_node node,
enum webidl_node_type  type,
webidl_callback_t cb,
void *  ctx 
)

Iterate nodes children matching their type.

For each child node where the type is matched the callback function is called with a context value.

Definition at line 152 of file webidl-ast.c.

◆ webidl_node_getfloat()

float * webidl_node_getfloat ( struct webidl_node node)

Definition at line 313 of file webidl-ast.c.

◆ webidl_node_getint()

int * webidl_node_getint ( struct webidl_node node)

Definition at line 293 of file webidl-ast.c.

◆ webidl_node_getnode()

struct webidl_node * webidl_node_getnode ( struct webidl_node node)

Definition at line 335 of file webidl-ast.c.

◆ webidl_node_gettext()

char * webidl_node_gettext ( struct webidl_node node)

Definition at line 273 of file webidl-ast.c.

◆ webidl_node_gettype()

enum webidl_node_type webidl_node_gettype ( struct webidl_node node)

Definition at line 328 of file webidl-ast.c.

◆ webidl_node_new()

struct webidl_node * webidl_node_new ( enum  webidl_node_type,
struct webidl_node l,
void *  r 
)

create a new node with a pointer value

Definition at line 124 of file webidl-ast.c.

◆ webidl_node_prepend()

struct webidl_node * webidl_node_prepend ( struct webidl_node list,
struct webidl_node inst 
)

Definition at line 44 of file webidl-ast.c.

◆ webidl_parse()

int webidl_parse ( struct webidl_node **  webidl_ast)
extern

◆ webidl_parsefile()

int webidl_parsefile ( char *  filename,
struct webidl_node **  webidl_ast 
)

parse web idl file into Abstract Syntax Tree

Definition at line 619 of file webidl-ast.c.

◆ webidl_restart()

void webidl_restart ( FILE *  )
extern

◆ webidl_type_to_str()

const char * webidl_type_to_str ( enum webidl_type_modifier  m,
enum webidl_type  t 
)

get string of argument type

< 0 - The type is unconstrained

< 1 - The type is a dictionary or interface

< 2 - The type is boolean

< 3 - The type is a byte

< 4 - The type is a octet

< 5 - The type is a float point number

< 6 - The type is a double

< 7 - The type is a signed 16bit

< 8 - The type is a signed 32bit

< 9 - The type is a signed 64bit

< 10 - The type is a string

< 11 - The type is a sequence

< 12 - The type is a object

< 13 - The type is a date

< 14 - The type is void

Definition at line 788 of file webidl-ast.c.

Variable Documentation

◆ webidl__flex_debug

int webidl__flex_debug
extern

◆ webidl_debug

int webidl_debug
extern