My Project
programmer's documentation
Data Structures | Functions
mei_node.h File Reference

Nodal structure of the interpreter. More...

#include "mei_hash_table.h"
Include dependency graph for mei_node.h:

Go to the source code of this file.

Data Structures

struct  const_node_t
 Constants node. More...
 
struct  id_node_t
 Identifiers node. More...
 
struct  func_node_t
 Function with single argument node. More...
 
struct  func2_node_t
 Function with two arguments node. More...
 
struct  opr_node_t
 Operators node. More...
 
union  node_type_t
 Type of a node. More...
 
struct  mei_node_t
 General node definition. More...
 

Functions

mei_node_t * mei_const_node (const double value)
 Build a node for a constant. More...
 
mei_node_t * mei_id_node (const char *variable)
 Build a node for a variable. More...
 
mei_node_t * mei_func_node (const char *const, mei_node_t *const expr)
 Build a node for a function of a single variable. More...
 
mei_node_t * mei_funcx_node (const char *function, const int nops,...)
 Build a node for a function of a several variables. More...
 
mei_node_t * mei_opr_node (const int oper, const int nops,...)
 Build a node for an operators and its operands. More...
 
char * mei_label_node (mei_node_t *p)
 Return label of a node. More...
 
void mei_free_node (mei_node_t *p)
 Free memory. More...
 

Detailed Description

Nodal structure of the interpreter.

Function Documentation

◆ mei_const_node()

mei_node_t* mei_const_node ( const double  value)

Build a node for a constant.

Parameters
[in]valuereal value of the constant
Returns
built node

◆ mei_free_node()

void mei_free_node ( mei_node_t *  n)

Free memory.

Parameters
[in]nnode

◆ mei_func_node()

mei_node_t* mei_func_node ( const char *  function,
mei_node_t *const  expr 
)

Build a node for a function of a single variable.

Parameters
[in]functionlabel of the function
[in]exprnode that represents the variable of the function
Returns
built node

◆ mei_funcx_node()

mei_node_t* mei_funcx_node ( const char *  function,
const int  nops,
  ... 
)

Build a node for a function of a several variables.

Parameters
[in]functionlabel of the function
[in]nopsnumber of variables
[in]...list of nodes which represent variables of the function
Returns
built node

◆ mei_id_node()

mei_node_t* mei_id_node ( const char *  variable)

Build a node for a variable.

Parameters
[in]variablelabel of the variable
Returns
built node

◆ mei_label_node()

char* mei_label_node ( mei_node_t *  n)

Return label of a node.

Parameters
[in]nnode
Returns
label of a node

◆ mei_opr_node()

mei_node_t* mei_opr_node ( const int  oper,
const int  nops,
  ... 
)

Build a node for an operators and its operands.

Parameters
[in]operoperator
[in]nopsnumber of operand
[in]...list of nodes which represent operands
Returns
built node