OpenVAS Scanner 23.23.1
nasl_lex_ctxt.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Greenbone AG
2 * SPDX-FileCopyrightText: 2002-2003 Michel Arboi
3 * SPDX-FileCopyrightText: 2002-2003 Renaud Deraison
4 *
5 * SPDX-License-Identifier: GPL-2.0-only
6 */
7
8#ifndef NASL_NASL_LEX_CTXT_H
9#define NASL_NASL_LEX_CTXT_H
10
11#include <glib.h>
12
13/* for script_infos */
14#include "../misc/scanneraux.h"
15
16/* for tree_cell */
17#include "nasl_tree.h"
18
19/* for nasl_array */
20#include "nasl_var.h"
21
22/* for nasl_func */
23#include "nasl_func.h"
24
25typedef struct struct_lex_ctxt
26{
28 tree_cell *ret_val; /* return value or exit flag */
29 unsigned fct_ctxt : 1; /* This is a function context */
30 unsigned break_flag : 1; /* Break from loop */
31 unsigned cont_flag : 1; /* Next iteration in loop */
32 unsigned always_signed : 1;
34 const char *oid;
37 /* Named variables hash set + anonymous variables array */
39 /* Functions hash table */
40 GHashTable *functions;
42
43#define NASL_COMPAT_LEX_CTXT "NASL compat lex context"
44
47
48void
50
51void
53
55get_func_ref_by_name (lex_ctxt *, const char *);
56
59
61insert_nasl_func (lex_ctxt *, const char *, tree_cell *, int);
62
65
67get_variable_by_name (lex_ctxt *, const char *);
68
70get_array_elem (lex_ctxt *, const char * /*array name */, tree_cell *);
71
74
76add_named_var_to_ctxt (lex_ctxt *, const char *, tree_cell *);
77
80
83
86
89
92
95
96long int
97get_int_var_by_num (lex_ctxt *, int, int);
98
99char *
101
102long int
103get_int_var_by_name (lex_ctxt *, const char *, int);
104
105char *
106get_str_var_by_name (lex_ctxt *, const char *);
107
108int
109get_var_size_by_name (lex_ctxt *, const char *);
110
111int
112get_var_type_by_name (lex_ctxt *, const char *);
113
114int
116
117int
119
120#endif
struct st_nasl_func nasl_func
nasl_func * insert_nasl_func(lex_ctxt *, const char *, tree_cell *, int)
Definition nasl_func.c:41
named_nasl_var * add_named_var_to_ctxt(lex_ctxt *, const char *, tree_cell *)
Definition nasl_var.c:810
tree_cell * nasl_incr_variable(lex_ctxt *, tree_cell *, int, int)
Definition nasl_var.c:919
int get_var_type_by_num(lex_ctxt *, int)
Returns NASL variable/cell type, VAR2_UNDEF if value is NULL.
Definition nasl_var.c:1155
struct struct_lex_ctxt lex_ctxt
nasl_func * get_func_ref_by_name(lex_ctxt *, const char *)
Definition nasl_func.c:82
int get_var_size_by_name(lex_ctxt *, const char *)
Definition nasl_var.c:1138
tree_cell * get_array_elem(lex_ctxt *, const char *, tree_cell *)
Definition nasl_var.c:208
void free_lex_ctxt(lex_ctxt *)
Definition nasl_lex_ctxt.c:43
int get_var_size_by_num(lex_ctxt *, int)
Definition nasl_var.c:1145
tree_cell * nasl_read_var_ref(lex_ctxt *, tree_cell *)
Definition nasl_var.c:832
anon_nasl_var * add_numbered_var_to_ctxt(lex_ctxt *, int, tree_cell *)
Definition nasl_var.c:781
tree_cell * nasl_return(lex_ctxt *, tree_cell *)
Definition nasl_func.c:236
void dump_ctxt(lex_ctxt *)
Definition nasl_lex_ctxt.c:52
tree_cell * decl_global_variables(lex_ctxt *, tree_cell *)
Definition nasl_var.c:771
tree_cell * nasl_func_call(lex_ctxt *, const nasl_func *, tree_cell *)
Definition nasl_func.c:95
tree_cell * cell2atom(lex_ctxt *, tree_cell *)
Definition exec.c:194
tree_cell * decl_local_variables(lex_ctxt *, tree_cell *)
Definition nasl_var.c:758
char * get_str_var_by_name(lex_ctxt *, const char *)
Definition nasl_var.c:1118
tree_cell * decl_nasl_func(lex_ctxt *, tree_cell *, int)
Definition nasl_func.c:66
lex_ctxt * init_empty_lex_ctxt(void)
Definition nasl_lex_ctxt.c:20
char * get_str_var_by_num(lex_ctxt *, int)
Definition nasl_var.c:1108
long int get_int_var_by_num(lex_ctxt *, int, int)
Definition nasl_var.c:1094
long int get_int_var_by_name(lex_ctxt *, const char *, int)
Definition nasl_var.c:1101
int get_var_type_by_name(lex_ctxt *, const char *)
Definition nasl_var.c:1162
tree_cell * get_variable_by_name(lex_ctxt *, const char *)
Definition nasl_var.c:176
struct TC tree_cell
struct st_a_nasl_var anon_nasl_var
struct st_nasl_array nasl_array
struct st_n_nasl_var named_nasl_var
Auxiliary structures for scanner.
Definition nasl_lex_ctxt.h:26
GHashTable * functions
Definition nasl_lex_ctxt.h:40
nasl_array ctx_vars
Definition nasl_lex_ctxt.h:38
struct script_infos * script_infos
Definition nasl_lex_ctxt.h:33
unsigned always_signed
Definition nasl_lex_ctxt.h:32
unsigned cont_flag
Definition nasl_lex_ctxt.h:31
int line_nb
Definition nasl_lex_ctxt.h:36
tree_cell * ret_val
Definition nasl_lex_ctxt.h:28
const char * oid
Definition nasl_lex_ctxt.h:34
int recv_timeout
Definition nasl_lex_ctxt.h:35
unsigned break_flag
Definition nasl_lex_ctxt.h:30
struct struct_lex_ctxt * up_ctxt
Definition nasl_lex_ctxt.h:27
unsigned fct_ctxt
Definition nasl_lex_ctxt.h:29