OpenVAS Scanner 21.4.1
Data Structures | Macros | Typedefs | Functions
nasl_lex_ctxt.h File Reference
#include <glib.h>
#include "nasl_tree.h"
#include "nasl_var.h"
#include "nasl_func.h"

Go to the source code of this file.

Data Structures

struct  struct_lex_ctxt
 

Macros

#define NASL_COMPAT_LEX_CTXT   "NASL compat lex context"
 

Typedefs

typedef struct struct_lex_ctxt lex_ctxt
 

Functions

lex_ctxtinit_empty_lex_ctxt (void)
 
void free_lex_ctxt (lex_ctxt *)
 
void dump_ctxt (lex_ctxt *)
 
nasl_funcget_func_ref_by_name (lex_ctxt *, const char *)
 
tree_celldecl_nasl_func (lex_ctxt *, tree_cell *, int)
 
nasl_funcinsert_nasl_func (lex_ctxt *, const char *, tree_cell *, int)
 
tree_cellnasl_func_call (lex_ctxt *, const nasl_func *, tree_cell *)
 
tree_cellget_variable_by_name (lex_ctxt *, const char *)
 
tree_cellget_array_elem (lex_ctxt *, const char *, tree_cell *)
 
anon_nasl_varadd_numbered_var_to_ctxt (lex_ctxt *, int, tree_cell *)
 
named_nasl_varadd_named_var_to_ctxt (lex_ctxt *, const char *, tree_cell *)
 
tree_cellnasl_read_var_ref (lex_ctxt *, tree_cell *)
 
tree_cellnasl_incr_variable (lex_ctxt *, tree_cell *, int, int)
 
tree_cellnasl_return (lex_ctxt *, tree_cell *)
 
tree_celldecl_local_variables (lex_ctxt *, tree_cell *)
 
tree_celldecl_global_variables (lex_ctxt *, tree_cell *)
 
tree_cellcell2atom (lex_ctxt *, tree_cell *)
 
long int get_int_var_by_num (lex_ctxt *, int, int)
 
char * get_str_var_by_num (lex_ctxt *, int)
 
long int get_int_var_by_name (lex_ctxt *, const char *, int)
 
char * get_str_var_by_name (lex_ctxt *, const char *)
 
int get_var_size_by_name (lex_ctxt *, const char *)
 
int get_var_type_by_name (lex_ctxt *, const char *)
 
int get_var_size_by_num (lex_ctxt *, int)
 
int get_var_type_by_num (lex_ctxt *, int)
 Returns NASL variable/cell type, VAR2_UNDEF if value is NULL. More...
 

Macro Definition Documentation

◆ NASL_COMPAT_LEX_CTXT

#define NASL_COMPAT_LEX_CTXT   "NASL compat lex context"

Typedef Documentation

◆ lex_ctxt

typedef struct struct_lex_ctxt lex_ctxt

Function Documentation

◆ add_named_var_to_ctxt()

named_nasl_var * add_named_var_to_ctxt ( lex_ctxt lexic,
const char *  name,
tree_cell val 
)

◆ add_numbered_var_to_ctxt()

anon_nasl_var * add_numbered_var_to_ctxt ( lex_ctxt lexic,
int  num,
tree_cell val 
)

◆ cell2atom()

tree_cell * cell2atom ( lex_ctxt lexic,
tree_cell c1 
)
Returns
A 'referenced' cell.

◆ decl_global_variables()

tree_cell * decl_global_variables ( lex_ctxt lexic,
tree_cell vars 
)

◆ decl_local_variables()

tree_cell * decl_local_variables ( lex_ctxt lexic,
tree_cell vars 
)

◆ decl_nasl_func()

tree_cell * decl_nasl_func ( lex_ctxt lexic,
tree_cell decl_node,
int  lint_mode 
)

◆ dump_ctxt()

void dump_ctxt ( lex_ctxt c)

◆ free_lex_ctxt()

void free_lex_ctxt ( lex_ctxt c)

◆ get_array_elem()

tree_cell * get_array_elem ( lex_ctxt ctxt,
const char *  name,
tree_cell idx 
)

◆ get_func_ref_by_name()

nasl_func * get_func_ref_by_name ( lex_ctxt ctxt,
const char *  name 
)

◆ get_int_var_by_name()

long int get_int_var_by_name ( lex_ctxt lexic,
const char *  name,
int  defval 
)

◆ get_int_var_by_num()

long int get_int_var_by_num ( lex_ctxt lexic,
int  num,
int  defval 
)

◆ get_str_var_by_name()

char * get_str_var_by_name ( lex_ctxt lexic,
const char *  name 
)

◆ get_str_var_by_num()

char * get_str_var_by_num ( lex_ctxt lexic,
int  num 
)

◆ get_var_size_by_name()

int get_var_size_by_name ( lex_ctxt lexic,
const char *  name 
)

◆ get_var_size_by_num()

int get_var_size_by_num ( lex_ctxt lexic,
int  num 
)

◆ get_var_type_by_name()

int get_var_type_by_name ( lex_ctxt lexic,
const char *  name 
)

◆ get_var_type_by_num()

int get_var_type_by_num ( lex_ctxt lexic,
int  num 
)

Returns NASL variable/cell type, VAR2_UNDEF if value is NULL.

◆ get_variable_by_name()

tree_cell * get_variable_by_name ( lex_ctxt ctxt,
const char *  name 
)

◆ init_empty_lex_ctxt()

lex_ctxt * init_empty_lex_ctxt ( void  )
Todo:
Initialization of the library seems intuitively be necessary only once (involves "linking" the nasl functions to c code). Consider a "prototype" context that has to be created only once and of which copies are made when needed.

◆ insert_nasl_func()

nasl_func * insert_nasl_func ( lex_ctxt lexic,
const char *  fname,
tree_cell decl_node,
int  lint_mode 
)

◆ nasl_func_call()

tree_cell * nasl_func_call ( lex_ctxt lexic,
const nasl_func f,
tree_cell arg_list 
)

◆ nasl_incr_variable()

tree_cell * nasl_incr_variable ( lex_ctxt lexic,
tree_cell tc,
int  pre,
int  val 
)

◆ nasl_read_var_ref()

tree_cell * nasl_read_var_ref ( lex_ctxt lexic,
tree_cell tc 
)

◆ nasl_return()

tree_cell * nasl_return ( lex_ctxt ctxt,
tree_cell retv 
)