#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "lcmaps_log.h"
#include "pdl_variable.h"
#include "pdl_rule.h"
Go to the source code of this file.
Functions | |
BOOL | _add_variable (const record_t *name, const record_t *value) |
var_t * | find_variable (const char *name) |
var_t * | detect_loop (const char *name, const char *value) |
void | add_variable (record_t *name, record_t *value) |
void | free_variables (void) |
void | reduce_to_var (const char **name, rule_type_t rule_type) |
var_t * | get_variables (void) |
void | show_variables (void) |
Not all functions defined in this file are accessible to everyone. A subset is used by the pdl variable functions themselves. For the list API functions look in pdl_variables.h.
Definition in file pdl_variable.c.
|
Actual implementation of the add_variable call. When the variable has been added the call returns TRUE, otherwise its FALSE. There can be several reasons for failure:
Definition at line 96 of file pdl_variable.c. References detect_loop(), find_variable(), record_s::lineno, var_s::lineno, var_s::name, var_s::next, var_s::okay, PDL_ERROR, PDL_SAME, record_t, record_s::string, TRUE, var_s::value, var_t, and warning(). Referenced by add_variable(). |
|
Wrapper function for the _add_variable() function call. The hard work is done in the _add_variable() call. When that call succeeds only the resources allocated for holding the name and value parameters are freed, i.e. the structures name and value. In case the _add_variable() calls fails, the string that is contained within the name and value strutures is freed as well.
Definition at line 71 of file pdl_variable.c. References _add_variable(), record_t, and record_s::string. |
|
Try to detect a loop in the variable references. When e.g. a=b, b=c and c=a, then the call should detect a loop.
Definition at line 200 of file pdl_variable.c. References find_variable(), var_s::next, var_s::value, and var_t. Referenced by _add_variable(). |
|
Find a variable based on the variable name. This way the value of a variable can be retrieved.
Definition at line 175 of file pdl_variable.c. References find_variable(), var_s::name, var_s::next, and var_t. Referenced by _add_variable(), detect_loop(), find_variable(), and reduce_to_var(). |
|
Free the resources allocated for the variables. Definition at line 149 of file pdl_variable.c. References var_s::name, var_s::next, var_s::value, and var_t. Referenced by free_resources(). |
|
Get a list of all variables in the configure file.
Definition at line 277 of file pdl_variable.c. References var_t. |
|
Reduce the variable to its real value. When a variable has another variable as its value, the variable will be reduced to the value of the referring variable.
Definition at line 247 of file pdl_variable.c. References find_variable(), left_side, lineno, var_s::lineno, var_s::name, var_s::okay, PDL_WARNING, right_side, rule_t, STATE, TRUE, var_s::value, var_t, and warning(). Referenced by reduce_rule(). |
|
Print all variables and their value as described in the configure file to stdout. Definition at line 288 of file pdl_variable.c. References lcmaps_log_debug(), var_s::name, var_s::next, var_s::value, and var_t. |