OpenVAS Scanner 23.23.1
nasl_lex_ctxt.h File Reference
#include <glib.h>
#include "../misc/scanneraux.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.

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 )