OpenVAS Scanner  22.7.9
nasl_tree.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  TC
 

Macros

#define FAKE_CELL   ((void *) 1)
 
#define EXIT_CELL   ((void *) 2)
 

Typedefs

typedef struct TC tree_cell
 

Enumerations

enum  node_type {
  NODE_EMPTY = 0, NODE_IF_ELSE, NODE_INSTR_L, NODE_FOR,
  NODE_WHILE, NODE_FOREACH, NODE_REPEAT_UNTIL, NODE_REPEATED,
  NODE_FUN_DEF, NODE_FUN_CALL, NODE_DECL, NODE_ARG,
  NODE_RETURN, NODE_BREAK, NODE_CONTINUE, NODE_ARRAY_EL,
  NODE_AFF, NODE_VAR, NODE_LOCAL, NODE_GLOBAL,
  NODE_PLUS_EQ, NODE_MINUS_EQ, NODE_MULT_EQ, NODE_DIV_EQ,
  NODE_MODULO_EQ, NODE_L_SHIFT_EQ, NODE_R_SHIFT_EQ, NODE_R_USHIFT_EQ,
  EXPR_AND, EXPR_OR, EXPR_NOT, EXPR_PLUS,
  EXPR_MINUS, EXPR_U_MINUS, EXPR_MULT, EXPR_DIV,
  EXPR_MODULO, EXPR_EXPO, EXPR_BIT_AND, EXPR_BIT_OR,
  EXPR_BIT_XOR, EXPR_BIT_NOT, EXPR_INCR, EXPR_DECR,
  EXPR_L_SHIFT, EXPR_R_SHIFT, EXPR_R_USHIFT, COMP_MATCH,
  COMP_NOMATCH, COMP_RE_MATCH, COMP_RE_NOMATCH, COMP_LT,
  COMP_LE, COMP_EQ, COMP_NE, COMP_GT,
  COMP_GE, CONST_INT, CONST_STR, CONST_DATA,
  CONST_REGEX, ARRAY_ELEM, REF_VAR, REF_ARRAY,
  DYN_ARRAY
}
 

Functions

tree_cellalloc_expr_cell (int, int, tree_cell *, tree_cell *)
 
tree_cellalloc_RE_cell (int, int, tree_cell *, char *, int *)
 
tree_cellalloc_typed_cell (int)
 
int nasl_is_leaf (const tree_cell *)
 
char * get_line_nb (const tree_cell *)
 
tree_celldup_cell (const tree_cell *)
 
void nasl_dump_tree (const tree_cell *)
 
void ref_cell (tree_cell *)
 
void deref_cell (tree_cell *)
 
const char * nasl_type_name (int)
 
int cell_type (const tree_cell *)
 
char * dump_cell_val (const tree_cell *)
 

Macro Definition Documentation

◆ EXIT_CELL

#define EXIT_CELL   ((void *) 2)

Definition at line 111 of file nasl_tree.h.

◆ FAKE_CELL

#define FAKE_CELL   ((void *) 1)

Definition at line 110 of file nasl_tree.h.

Typedef Documentation

◆ tree_cell

typedef struct TC tree_cell

Enumeration Type Documentation

◆ node_type

enum node_type
Enumerator
NODE_EMPTY 
NODE_IF_ELSE 
NODE_INSTR_L 
NODE_FOR 
NODE_WHILE 
NODE_FOREACH 
NODE_REPEAT_UNTIL 
NODE_REPEATED 
NODE_FUN_DEF 
NODE_FUN_CALL 
NODE_DECL 
NODE_ARG 
NODE_RETURN 
NODE_BREAK 
NODE_CONTINUE 
NODE_ARRAY_EL 
NODE_AFF 
NODE_VAR 
NODE_LOCAL 
NODE_GLOBAL 
NODE_PLUS_EQ 
NODE_MINUS_EQ 
NODE_MULT_EQ 
NODE_DIV_EQ 
NODE_MODULO_EQ 
NODE_L_SHIFT_EQ 
NODE_R_SHIFT_EQ 
NODE_R_USHIFT_EQ 
EXPR_AND 
EXPR_OR 
EXPR_NOT 
EXPR_PLUS 
EXPR_MINUS 
EXPR_U_MINUS 
EXPR_MULT 
EXPR_DIV 
EXPR_MODULO 
EXPR_EXPO 
EXPR_BIT_AND 
EXPR_BIT_OR 
EXPR_BIT_XOR 
EXPR_BIT_NOT 
EXPR_INCR 
EXPR_DECR 
EXPR_L_SHIFT 
EXPR_R_SHIFT 
EXPR_R_USHIFT 
COMP_MATCH 
COMP_NOMATCH 
COMP_RE_MATCH 
COMP_RE_NOMATCH 
COMP_LT 
COMP_LE 
COMP_EQ 
COMP_NE 
COMP_GT 
COMP_GE 
CONST_INT 
CONST_STR 
CONST_DATA 
CONST_REGEX 
ARRAY_ELEM 
REF_VAR 
REF_ARRAY 
DYN_ARRAY 

Definition at line 11 of file nasl_tree.h.

12 {
13  NODE_EMPTY = 0,
14  NODE_IF_ELSE, /* [0] = cond, [1] = if_block, [2] = else_block */
15  NODE_INSTR_L, /* Block. [0] = first instr, [1] = tail */
16  NODE_FOR, /* [0] = start expr, [1] = cond, [2] = end_expr, [3] = block */
17  NODE_WHILE, /* [0] = cond, [1] = block */
20  NODE_REPEATED, /* [0] = func call, [1] = repeat nb */
21  NODE_FUN_DEF, /* [0] = argdecl, [1] = block */
22  NODE_FUN_CALL, /* [0] = script_infos */
23  NODE_DECL, /* [0] = next arg in list */
24  NODE_ARG, /* val = name can be NULL, [0] = val, [1] = next arg */
25  NODE_RETURN, /* ret val */
26  NODE_BREAK,
28 
29  NODE_ARRAY_EL, /* val = array name, [0] = index */
30  NODE_AFF, /* [0] = lvalue, [1] = rvalue */
31  NODE_VAR, /* val = variable name */
32  NODE_LOCAL, /* [0] = argdecl */
34 
40 
44 
45  EXPR_AND,
46  EXPR_OR,
47  EXPR_NOT,
48 
49  EXPR_PLUS,
50  EXPR_MINUS,
52  EXPR_MULT,
53  EXPR_DIV,
55  EXPR_EXPO,
56 
61  EXPR_INCR,
62  EXPR_DECR,
66 
67  COMP_MATCH,
71 
72  COMP_LT,
73  COMP_LE,
74  COMP_EQ,
75  COMP_NE,
76  COMP_GT,
77  COMP_GE,
78 
79  CONST_INT,
80  CONST_STR, /* "impure" string */
81 
82  CONST_DATA, /* binary data / "pure" string */
83  CONST_REGEX, /* Compiled regex */
84 
85  ARRAY_ELEM, /* val = char index or NULL if integer,
86  * [0] = value, [1] = next element */
87  /* For exec only */
88  REF_VAR,
89  REF_ARRAY,
90  DYN_ARRAY
91 };

Function Documentation

◆ alloc_expr_cell()

tree_cell* alloc_expr_cell ( int  ,
int  ,
tree_cell ,
tree_cell  
)

Definition at line 63 of file nasl_tree.c.

64 {
65  tree_cell *c = alloc_tree_cell ();
66  c->line_nb = lnb;
67  c->type = t;
68  c->link[0] = l;
69  c->link[1] = r;
70 
71  return c;
72 }

References alloc_tree_cell(), TC::line_nb, TC::link, and TC::type.

Referenced by get_array_elem(), int2cell(), nasl_exec(), and yyparse().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ alloc_RE_cell()

tree_cell* alloc_RE_cell ( int  ,
int  ,
tree_cell ,
char *  ,
int *   
)

Definition at line 36 of file nasl_tree.c.

37 {
38  regex_t *re = g_malloc0 (sizeof (regex_t));
39  int e;
40 
41  tree_cell *c = alloc_tree_cell ();
42  c->line_nb = lnb;
43  c->type = t; /* We could check the type... */
44  c->link[0] = l;
45  c->link[1] = FAKE_CELL;
46  e = regcomp (re, re_str, REG_EXTENDED | REG_NOSUB | REG_ICASE);
47  if (!e)
48  c->x.ref_val = re;
49  else
50  {
51  char errbuf[100];
52  regerror (e, re, errbuf, sizeof (errbuf));
53  nasl_perror (NULL, "Line %d: Cannot compile regex: %s (error %d: %s)\n",
54  lnb, re_str, e, errbuf);
55  g_free (re);
56  *err_c = *err_c + 1;
57  }
58  g_free (re_str);
59  return c;
60 }

References alloc_tree_cell(), FAKE_CELL, TC::line_nb, TC::link, nasl_perror(), TC::ref_val, TC::type, and TC::x.

Referenced by yyparse().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ alloc_typed_cell()

tree_cell* alloc_typed_cell ( int  )

Definition at line 28 of file nasl_tree.c.

29 {
30  tree_cell *c = alloc_tree_cell ();
31  c->type = typ;
32  return c;
33 }

References alloc_tree_cell(), and TC::type.

Referenced by _http_req(), array_from_snmp_error(), array_from_snmp_result(), cgibin(), copy_ref_array(), crypt_data(), encrypt_stream_data(), forge_icmp_packet(), forge_icmp_v6_packet(), forge_igmp_packet(), forge_igmp_v6_packet(), forge_ip_packet(), forge_ip_v6_packet(), forge_tcp_packet(), forge_tcp_v6_packet(), forge_udp_packet(), forge_udp_v6_packet(), get_host_ip(), get_host_kb_index(), get_host_open_port(), get_hostname(), get_hostname_source(), get_hostnames(), get_icmp_element(), get_icmp_v6_element(), get_ip_element(), get_ip_v6_element(), get_kb_item(), get_kb_list(), get_port_state(), get_port_transport(), get_script_oid(), get_tcp_element(), get_tcp_option(), get_tcp_v6_element(), get_tcp_v6_option(), get_udp_element(), get_udp_port_state(), get_udp_v6_element(), get_variable_by_name(), insert_ip_options(), insert_ip_v6_options(), insert_tcp_options(), insert_tcp_v6_options(), make_array_from_elems(), nasl_bf_cbc(), nasl_bn_random(), nasl_chomp(), nasl_cipher(), nasl_close_stream_cipher(), nasl_crap(), nasl_dec2str(), nasl_defined_func(), nasl_dh_compute_key(), nasl_dh_generate_key(), nasl_display(), nasl_do_exit(), nasl_egrep(), nasl_end_denial(), nasl_ereg(), nasl_ereg_replace(), nasl_eregmatch(), nasl_exec(), nasl_file_close(), nasl_file_open(), nasl_file_read(), nasl_file_seek(), nasl_file_stat(), nasl_file_write(), nasl_find_in_path(), nasl_forge_frame(), nasl_fread(), nasl_ftp_get_pasv_address(), nasl_ftp_log_in(), nasl_fwrite(), nasl_gcrypt_hash(), nasl_get_byte_order(), nasl_get_local_mac_address_from_ip(), nasl_get_mtu(), nasl_get_preference(), nasl_get_sign(), nasl_get_sock_info(), nasl_get_source_port(), nasl_get_tmp_dir(), nasl_gettimeofday(), nasl_gunzip(), nasl_gzip(), nasl_hex(), nasl_hexstr(), nasl_hmac_sha256(), nasl_incr_variable(), nasl_insert_hexzeros(), nasl_insstr(), nasl_int(), nasl_islocalhost(), nasl_islocalnet(), nasl_isnull(), nasl_isotime_add(), nasl_isotime_is_valid(), nasl_isotime_now(), nasl_isotime_print(), nasl_isotime_scan(), nasl_join_multicast_group(), nasl_keyexchg(), nasl_keys(), nasl_lint(), nasl_lm_owf_gen(), nasl_localtime(), nasl_mac(), nasl_make_array(), nasl_make_list(), nasl_match(), nasl_max_index(), nasl_mktime(), nasl_ntlm2_response(), nasl_ntlm_response(), nasl_ntlmv1_hash(), nasl_ntlmv2_hash(), nasl_ntlmv2_response(), nasl_ntv2_owf_gen(), nasl_open_privileged_socket(), nasl_open_sock_kdc(), nasl_open_sock_tcp_bufsz(), nasl_open_sock_udp(), nasl_open_stream_cipher(), nasl_ord(), nasl_pcap_next(), nasl_pem_to(), nasl_pread(), nasl_prf(), nasl_rand(), nasl_rawstring(), nasl_read_var_ref(), nasl_recv(), nasl_recv_line(), nasl_rsa_private_decrypt(), nasl_rsa_public_decrypt(), nasl_rsa_public_encrypt(), nasl_rsa_sign(), nasl_same_host(), nasl_scanner_get_port(), nasl_send(), nasl_send_arp_request(), nasl_send_capture(), nasl_send_frame(), nasl_send_packet(), nasl_send_v6packet(), nasl_sftp_enabled_check(), nasl_smb3kdf(), nasl_smb_close(), nasl_smb_connect(), nasl_smb_file_group_sid(), nasl_smb_file_owner_sid(), nasl_smb_file_SDDL(), nasl_smb_file_trustee_rights(), nasl_smb_sign(), nasl_smb_versioninfo(), nasl_socket_cert_verify(), nasl_socket_check_ssl_safe_renegotiation(), nasl_socket_get_cert(), nasl_socket_get_error(), nasl_socket_get_ssl_ciphersuite(), nasl_socket_get_ssl_session_id(), nasl_socket_get_ssl_version(), nasl_socket_negotiate_ssl(), nasl_socket_ssl_do_handshake(), nasl_split(), nasl_ssh_connect(), nasl_ssh_get_auth_methods(), nasl_ssh_get_host_key(), nasl_ssh_get_issue_banner(), nasl_ssh_get_server_banner(), nasl_ssh_get_sock(), nasl_ssh_login_interactive(), nasl_ssh_login_interactive_pass(), nasl_ssh_request_exec(), nasl_ssh_session_id_from_sock(), nasl_ssh_shell_open(), nasl_ssh_shell_read(), nasl_ssh_shell_write(), nasl_ssh_userauth(), nasl_str_replace(), nasl_strcat(), nasl_stridx(), nasl_string(), nasl_strlen(), nasl_strstr(), nasl_substr(), nasl_target_is_ipv6(), nasl_tcp_ping(), nasl_tcp_v6_ping(), nasl_telnet_init(), nasl_this_host(), nasl_this_host_name(), nasl_tolower(), nasl_toupper(), nasl_typeof(), nasl_unixtime(), nasl_vendor_version(), nasl_win_cmd_exec(), nasl_wmi_close(), nasl_wmi_connect(), nasl_wmi_connect_reg(), nasl_wmi_connect_rsop(), nasl_wmi_query(), nasl_wmi_query_rsop(), nasl_wmi_reg_create_key(), nasl_wmi_reg_delete_key(), nasl_wmi_reg_enum_key(), nasl_wmi_reg_enum_value(), nasl_wmi_reg_get_bin_val(), nasl_wmi_reg_get_dword_val(), nasl_wmi_reg_get_ex_string_val(), nasl_wmi_reg_get_mul_string_val(), nasl_wmi_reg_get_qword_val(), nasl_wmi_reg_get_sz(), nasl_wmi_reg_set_dword_val(), nasl_wmi_reg_set_ex_string_val(), nasl_wmi_reg_set_qword_val(), nasl_wmi_reg_set_string_val(), nasl_wmi_versioninfo(), resolve_hostname(), resolve_hostname_to_multiple_ips(), safe_checks(), script_get_preference(), script_get_preference_file_content(), script_get_preference_file_location(), set_ip_elements(), set_ip_v6_elements(), set_tcp_elements(), set_tcp_v6_elements(), set_udp_elements(), set_udp_v6_elements(), var2cell(), and yyparse().

Here is the call graph for this function:

◆ cell_type()

int cell_type ( const tree_cell )

Definition at line 407 of file nasl_tree.c.

408  {
409  if (c == NULL || c == FAKE_CELL)
410  return 0;
411  else
412  return c->type;
413  }

References FAKE_CELL, and TC::type.

Referenced by cell_cmp().

Here is the caller graph for this function:

◆ deref_cell()

void deref_cell ( tree_cell )

Definition at line 181 of file nasl_tree.c.

182 {
183  if (c == NULL || c == FAKE_CELL)
184  return;
185  if (--c->ref_count < 0)
186  free_tree (c);
187 }

References FAKE_CELL, free_tree(), and TC::ref_count.

Referenced by cell2atom(), cell2bool(), cell2int3(), cell2str(), cell_cmp(), create_anon_var(), create_named_var(), exec_nasl_script(), free_lex_ctxt(), free_tree(), get_kb_list(), get_tcp_v6_element(), make_array_from_elems(), nasl_clean_ctx(), nasl_display(), nasl_exec(), nasl_func_call(), nasl_pread(), nasl_read_var_ref(), nasl_return(), nasl_start_denial(), var_cmp(), and yyparse().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dump_cell_val()

char* dump_cell_val ( const tree_cell )

Definition at line 234 of file nasl_tree.c.

235 {
236  static char txt[80];
237 
238  if (c == NULL)
239  return "NULL";
240  else if (c == FAKE_CELL)
241  return "FAKE";
242  else
243  switch (c->type)
244  {
245  case CONST_INT:
246  snprintf (txt, sizeof (txt), "%ld", c->x.i_val);
247  break;
248  case CONST_STR:
249  case CONST_DATA: /* Beurk (English: Yuck) */
250  if ((unsigned int) c->size >= sizeof (txt) + 2)
251  {
252  snprintf (txt, sizeof (txt), "\"%s", c->x.str_val);
253  strcpy (txt + (sizeof (txt) - 5), "...\"");
254  }
255  else
256  snprintf (txt, sizeof (txt), "\"%s\"", c->x.str_val);
257  break;
258  default:
259  snprintf (txt, sizeof (txt), "???? (%s)", nasl_type_name (c->type));
260  break;
261  }
262  return txt;
263 }

References CONST_DATA, CONST_INT, CONST_STR, FAKE_CELL, TC::i_val, nasl_type_name(), TC::size, TC::str_val, TC::type, and TC::x.

Referenced by nasl_func_call().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dup_cell()

tree_cell* dup_cell ( const tree_cell )

Definition at line 75 of file nasl_tree.c.

76 {
77  tree_cell *r;
78  int i;
79 
80  if (tc == NULL)
81  return NULL;
82  else if (tc == FAKE_CELL)
83  return FAKE_CELL;
84 
85  r = alloc_tree_cell ();
86  r->line_nb = tc->line_nb;
87  r->type = tc->type;
88  r->size = tc->size;
89 
90  switch (tc->type)
91  {
92  case CONST_STR:
93  case CONST_DATA:
94  r->x.str_val = g_malloc0 (tc->size + 1);
95  memcpy (r->x.str_val, tc->x.str_val, tc->size);
96  break;
97  default:
98  r->x = tc->x;
99  break;
100  }
101 
102  for (i = 0; i < 4; i++)
103  r->link[i] = dup_cell (tc->link[i]);
104  return r;
105 }

References alloc_tree_cell(), CONST_DATA, CONST_STR, dup_cell(), FAKE_CELL, TC::line_nb, TC::link, TC::size, TC::str_val, TC::type, and TC::x.

Referenced by dup_cell().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_line_nb()

char* get_line_nb ( const tree_cell )

Definition at line 379 of file nasl_tree.c.

380 {
381  static char txt[32];
382  if (c == NULL || c == FAKE_CELL || c->line_nb <= 0)
383  return "";
384  snprintf (txt, sizeof (txt), " at or near line %d ", c->line_nb);
385  return txt;
386 }

References FAKE_CELL, and TC::line_nb.

Referenced by get_array_elem(), nasl_incr_variable(), and nasl_read_var_ref().

Here is the caller graph for this function:

◆ nasl_dump_tree()

void nasl_dump_tree ( const tree_cell )

Definition at line 366 of file nasl_tree.c.

367 {
368  printf ("^^^^ %p ^^^^^\n", (void *) c);
369  if (c == NULL)
370  puts ("NULL CELL");
371  else if (c == FAKE_CELL)
372  puts ("FAKE CELL");
373  else
374  dump_tree (c, 0, 0);
375  printf ("vvvvvvvvvvvvvvvvvv\n");
376 }

References dump_tree(), and FAKE_CELL.

Referenced by dump_ctxt(), nasl_func_call(), and ref_cell().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nasl_is_leaf()

int nasl_is_leaf ( const tree_cell )

Definition at line 389 of file nasl_tree.c.

390 {
391  if (pc == NULL || pc == FAKE_CELL)
392  return 1;
393  switch (pc->type)
394  {
395  case CONST_INT:
396  case CONST_STR:
397  case CONST_DATA:
398  case REF_ARRAY:
399  case DYN_ARRAY:
400  return 1;
401  default:
402  return 0;
403  }
404  /*NOTREACHED*/}

References CONST_DATA, CONST_INT, CONST_STR, DYN_ARRAY, FAKE_CELL, REF_ARRAY, and TC::type.

Referenced by nasl_func_call().

Here is the caller graph for this function:

◆ nasl_type_name()

const char* nasl_type_name ( int  )

Definition at line 346 of file nasl_tree.c.

347 {
348  static char txt4[4][32]; /* This function may be called 4 times in the same
349  expression */
350  static int i = 0;
351  char *txt;
352 
353  if (i >= 4)
354  i = 0;
355  txt = txt4[i];
356 
357  if (t >= 0 && (unsigned int) t < sizeof (node_names) / sizeof (node_names[0]))
358  snprintf (txt, 32, "%s (%d)", node_names[t], t);
359  else
360  snprintf (txt, 32, "*UNKNOWN* (%d)", t);
361  i++;
362  return txt;
363 }

References node_names.

Referenced by cell_cmp(), dump_cell_val(), make_array_from_elems(), and nasl_affect().

Here is the caller graph for this function:

◆ ref_cell()

void ref_cell ( tree_cell )

Definition at line 167 of file nasl_tree.c.

168 {
169  if (c == NULL || c == FAKE_CELL)
170  return;
171  c->ref_count++;
172  if (c->ref_count < 0)
173  {
174  nasl_perror (NULL, "ref_cell: ref count is negative!\n");
175  nasl_dump_tree (c);
176  abort ();
177  }
178 }

References FAKE_CELL, nasl_dump_tree(), nasl_perror(), and TC::ref_count.

Referenced by cell2atom(), insert_nasl_func(), nasl_do_exit(), nasl_exec(), nasl_func_call(), nasl_return(), and yyparse().

Here is the call graph for this function:
Here is the caller graph for this function:
NODE_LOCAL
@ NODE_LOCAL
Definition: nasl_tree.h:32
EXPR_AND
@ EXPR_AND
Definition: nasl_tree.h:45
nasl_type_name
const char * nasl_type_name(int t)
Definition: nasl_tree.c:346
EXPR_BIT_XOR
@ EXPR_BIT_XOR
Definition: nasl_tree.h:59
CONST_DATA
@ CONST_DATA
Definition: nasl_tree.h:82
NODE_MINUS_EQ
@ NODE_MINUS_EQ
Definition: nasl_tree.h:36
NODE_WHILE
@ NODE_WHILE
Definition: nasl_tree.h:17
NODE_DECL
@ NODE_DECL
Definition: nasl_tree.h:23
NODE_RETURN
@ NODE_RETURN
Definition: nasl_tree.h:25
TC::str_val
char * str_val
Definition: nasl_tree.h:103
NODE_GLOBAL
@ NODE_GLOBAL
Definition: nasl_tree.h:33
NODE_AFF
@ NODE_AFF
Definition: nasl_tree.h:30
NODE_DIV_EQ
@ NODE_DIV_EQ
Definition: nasl_tree.h:38
NODE_L_SHIFT_EQ
@ NODE_L_SHIFT_EQ
Definition: nasl_tree.h:41
EXPR_R_USHIFT
@ EXPR_R_USHIFT
Definition: nasl_tree.h:65
CONST_STR
@ CONST_STR
Definition: nasl_tree.h:80
free_tree
static void free_tree(tree_cell *c)
Definition: nasl_tree.c:108
nasl_dump_tree
void nasl_dump_tree(const tree_cell *c)
Definition: nasl_tree.c:366
NODE_REPEAT_UNTIL
@ NODE_REPEAT_UNTIL
Definition: nasl_tree.h:19
NODE_ARRAY_EL
@ NODE_ARRAY_EL
Definition: nasl_tree.h:29
TC::x
union TC::@5 x
alloc_tree_cell
static tree_cell * alloc_tree_cell()
Definition: nasl_tree.c:22
DYN_ARRAY
@ DYN_ARRAY
Definition: nasl_tree.h:90
FAKE_CELL
#define FAKE_CELL
Definition: nasl_tree.h:110
EXPR_BIT_NOT
@ EXPR_BIT_NOT
Definition: nasl_tree.h:60
NODE_FUN_DEF
@ NODE_FUN_DEF
Definition: nasl_tree.h:21
EXPR_U_MINUS
@ EXPR_U_MINUS
Definition: nasl_tree.h:51
NODE_R_SHIFT_EQ
@ NODE_R_SHIFT_EQ
Definition: nasl_tree.h:42
EXPR_MODULO
@ EXPR_MODULO
Definition: nasl_tree.h:54
NODE_FUN_CALL
@ NODE_FUN_CALL
Definition: nasl_tree.h:22
COMP_LE
@ COMP_LE
Definition: nasl_tree.h:73
ARRAY_ELEM
@ ARRAY_ELEM
Definition: nasl_tree.h:85
NODE_FOREACH
@ NODE_FOREACH
Definition: nasl_tree.h:18
nasl_perror
void nasl_perror(lex_ctxt *lexic, char *msg,...)
Definition: nasl_debug.c:111
EXPR_DECR
@ EXPR_DECR
Definition: nasl_tree.h:62
dup_cell
tree_cell * dup_cell(const tree_cell *tc)
Definition: nasl_tree.c:75
NODE_VAR
@ NODE_VAR
Definition: nasl_tree.h:31
TC::size
int size
Definition: nasl_tree.h:99
EXPR_PLUS
@ EXPR_PLUS
Definition: nasl_tree.h:49
NODE_INSTR_L
@ NODE_INSTR_L
Definition: nasl_tree.h:15
TC::line_nb
short line_nb
Definition: nasl_tree.h:96
NODE_REPEATED
@ NODE_REPEATED
Definition: nasl_tree.h:20
EXPR_R_SHIFT
@ EXPR_R_SHIFT
Definition: nasl_tree.h:64
EXPR_NOT
@ EXPR_NOT
Definition: nasl_tree.h:47
EXPR_DIV
@ EXPR_DIV
Definition: nasl_tree.h:53
TC::ref_val
void * ref_val
Definition: nasl_tree.h:105
dump_tree
static void dump_tree(const tree_cell *c, int n, int idx)
Definition: nasl_tree.c:266
COMP_RE_NOMATCH
@ COMP_RE_NOMATCH
Definition: nasl_tree.h:70
CONST_REGEX
@ CONST_REGEX
Definition: nasl_tree.h:83
EXPR_L_SHIFT
@ EXPR_L_SHIFT
Definition: nasl_tree.h:63
EXPR_BIT_AND
@ EXPR_BIT_AND
Definition: nasl_tree.h:57
TC
Definition: nasl_tree.h:94
COMP_MATCH
@ COMP_MATCH
Definition: nasl_tree.h:67
TC::type
short type
Definition: nasl_tree.h:95
TC::link
struct TC * link[4]
Definition: nasl_tree.h:107
NODE_R_USHIFT_EQ
@ NODE_R_USHIFT_EQ
Definition: nasl_tree.h:43
COMP_GE
@ COMP_GE
Definition: nasl_tree.h:77
NODE_MULT_EQ
@ NODE_MULT_EQ
Definition: nasl_tree.h:37
EXPR_MINUS
@ EXPR_MINUS
Definition: nasl_tree.h:50
REF_VAR
@ REF_VAR
Definition: nasl_tree.h:88
EXPR_INCR
@ EXPR_INCR
Definition: nasl_tree.h:61
CONST_INT
@ CONST_INT
Definition: nasl_tree.h:79
COMP_LT
@ COMP_LT
Definition: nasl_tree.h:72
NODE_IF_ELSE
@ NODE_IF_ELSE
Definition: nasl_tree.h:14
COMP_NE
@ COMP_NE
Definition: nasl_tree.h:75
EXPR_OR
@ EXPR_OR
Definition: nasl_tree.h:46
NODE_CONTINUE
@ NODE_CONTINUE
Definition: nasl_tree.h:27
node_names
static char * node_names[]
Definition: nasl_tree.c:191
NODE_FOR
@ NODE_FOR
Definition: nasl_tree.h:16
COMP_RE_MATCH
@ COMP_RE_MATCH
Definition: nasl_tree.h:69
NODE_MODULO_EQ
@ NODE_MODULO_EQ
Definition: nasl_tree.h:39
REF_ARRAY
@ REF_ARRAY
Definition: nasl_tree.h:89
NODE_BREAK
@ NODE_BREAK
Definition: nasl_tree.h:26
NODE_PLUS_EQ
@ NODE_PLUS_EQ
Definition: nasl_tree.h:35
COMP_NOMATCH
@ COMP_NOMATCH
Definition: nasl_tree.h:68
NODE_EMPTY
@ NODE_EMPTY
Definition: nasl_tree.h:13
NODE_ARG
@ NODE_ARG
Definition: nasl_tree.h:24
EXPR_EXPO
@ EXPR_EXPO
Definition: nasl_tree.h:55
EXPR_BIT_OR
@ EXPR_BIT_OR
Definition: nasl_tree.h:58
EXPR_MULT
@ EXPR_MULT
Definition: nasl_tree.h:52
COMP_EQ
@ COMP_EQ
Definition: nasl_tree.h:74
COMP_GT
@ COMP_GT
Definition: nasl_tree.h:76