OpenVAS Scanner 23.40.3
nasl_lex_ctxt.c
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Greenbone AG
2 * SPDX-FileCopyrightText: 2002-2004 Tenable Network Security
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 */
6
7#include "nasl_lex_ctxt.h"
8
9#include "nasl_func.h"
10#include "nasl_global_ctxt.h"
11#include "nasl_tree.h"
12#include "nasl_var.h"
13
14#include <glib.h> /* for g_free() */
15
16void
18
21{
22 lex_ctxt *c = g_malloc0 (sizeof (lex_ctxt));
23
24 c->ctx_vars.hash_elt = g_malloc0 (sizeof (named_nasl_var *) * VAR_NAME_HASH);
25 c->ctx_vars.num_elt = NULL;
26 c->ctx_vars.max_idx = 0;
27 c->functions = g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
28 (GDestroyNotify) free_func);
29 c->oid = NULL;
30 c->ret_val = NULL;
31 c->fct_ctxt = 0;
32
38
39 return c;
40}
41
42void
44{
46 free_array (&c->ctx_vars);
47 g_hash_table_destroy (c->functions);
48 g_free (c);
49}
50
51void
53{
54 int i;
56
57 printf ("--------<CTXT>--------\n");
58 if (c->fct_ctxt)
59 printf ("Is a function context\n");
60 if (c->up_ctxt == NULL)
61 printf ("Is the top level context\n");
62 if (c->ret_val)
63 {
64 printf ("Return value\n");
66 }
67
68 printf ("Variables:\n");
69 for (i = 0; i < VAR_NAME_HASH; i++)
70 for (v = c->ctx_vars.hash_elt[i]; v != NULL; v = v->next_var)
71 printf ("%s\t", v->var_name);
72 putchar ('\n');
73
74 printf ("----------------------\n");
75}
void free_func(nasl_func *f)
Definition nasl_func.c:266
void init_nasl_library(lex_ctxt *)
Adds "built-in" variable and function definitions to a context.
Definition nasl_init.c:515
void dump_ctxt(lex_ctxt *c)
void free_lex_ctxt(lex_ctxt *c)
lex_ctxt * init_empty_lex_ctxt()
struct struct_lex_ctxt lex_ctxt
void nasl_dump_tree(const tree_cell *c)
Definition nasl_tree.c:363
void deref_cell(tree_cell *c)
Definition nasl_tree.c:178
void free_array(nasl_array *a)
Definition nasl_var.c:339
#define VAR_NAME_HASH
Definition nasl_var.h:22
struct st_n_nasl_var named_nasl_var
char * var_name
Definition nasl_var.h:58
struct st_n_nasl_var * next_var
Definition nasl_var.h:62
struct st_n_nasl_var ** hash_elt
Definition nasl_var.h:36
struct st_a_nasl_var ** num_elt
Definition nasl_var.h:35
GHashTable * functions
nasl_array ctx_vars
tree_cell * ret_val
const char * oid
struct struct_lex_ctxt * up_ctxt