OpenVAS Scanner 22.7.9
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 tree_cell */
14#include "nasl_tree.h"
15
16/* for nasl_array */
17#include "nasl_var.h"
18
19/* for nasl_func */
20#include "nasl_func.h"
21
22typedef struct struct_lex_ctxt
23{
25 tree_cell *ret_val; /* return value or exit flag */
26 unsigned fct_ctxt : 1; /* This is a function context */
27 unsigned break_flag : 1; /* Break from loop */
28 unsigned cont_flag : 1; /* Next iteration in loop */
29 unsigned always_signed : 1;
31 const char *oid;
34 /* Named variables hash set + anonymous variables array */
36 /* Functions hash table */
37 GHashTable *functions;
39
40#define NASL_COMPAT_LEX_CTXT "NASL compat lex context"
41
44
45void
47
48void
50
52get_func_ref_by_name (lex_ctxt *, const char *);
53
56
58insert_nasl_func (lex_ctxt *, const char *, tree_cell *, int);
59
62
64get_variable_by_name (lex_ctxt *, const char *);
65
67get_array_elem (lex_ctxt *, const char * /*array name */, tree_cell *);
68
71
73add_named_var_to_ctxt (lex_ctxt *, const char *, tree_cell *);
74
77
80
83
86
89
92
93long int
94get_int_var_by_num (lex_ctxt *, int, int);
95
96char *
98
99long int
100get_int_var_by_name (lex_ctxt *, const char *, int);
101
102char *
103get_str_var_by_name (lex_ctxt *, const char *);
104
105int
106get_var_size_by_name (lex_ctxt *, const char *);
107
108int
109get_var_type_by_name (lex_ctxt *, const char *);
110
111int
113
114int
116
117#endif
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:813
tree_cell * nasl_incr_variable(lex_ctxt *, tree_cell *, int, int)
Definition: nasl_var.c:922
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:211
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:835
anon_nasl_var * add_numbered_var_to_ctxt(lex_ctxt *, int, tree_cell *)
Definition: nasl_var.c:784
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:774
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:761
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:1111
long int get_int_var_by_num(lex_ctxt *, int, int)
Definition: nasl_var.c:1097
long int get_int_var_by_name(lex_ctxt *, const char *, int)
Definition: nasl_var.c:1104
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:179
Definition: nasl_tree.h:94
GHashTable * functions
Definition: nasl_lex_ctxt.h:37
nasl_array ctx_vars
Definition: nasl_lex_ctxt.h:35
struct script_infos * script_infos
Definition: nasl_lex_ctxt.h:30
unsigned always_signed
Definition: nasl_lex_ctxt.h:29
unsigned cont_flag
Definition: nasl_lex_ctxt.h:28
tree_cell * ret_val
Definition: nasl_lex_ctxt.h:25
const char * oid
Definition: nasl_lex_ctxt.h:31
unsigned break_flag
Definition: nasl_lex_ctxt.h:27
struct struct_lex_ctxt * up_ctxt
Definition: nasl_lex_ctxt.h:24
unsigned fct_ctxt
Definition: nasl_lex_ctxt.h:26