Grid Community Toolkit
6.2.1653033972 (tag: v6.2.20220524)
|
Globus RSL Parsing. More...
#include "globus_module.h"
#include "globus_list.h"
#include "globus_symboltable.h"
#include "globus_hashtable.h"
Go to the source code of this file.
Functions | |
int | globus_rsl_is_relation (globus_rsl_t *ast) |
RSL relation test. More... | |
int | globus_rsl_is_boolean (globus_rsl_t *ast) |
RSL boolean test. More... | |
int | globus_rsl_is_relation_eq (globus_rsl_t *ast) |
RSL equality operation test. More... | |
int | globus_rsl_is_relation_lessthan (globus_rsl_t *ast) |
RSL less than operation test. More... | |
int | globus_rsl_is_relation_attribute_equal (globus_rsl_t *ast, char *attribute) |
RSL attribute name test. More... | |
int | globus_rsl_is_boolean_and (globus_rsl_t *ast) |
RSL boolean and test. More... | |
int | globus_rsl_is_boolean_or (globus_rsl_t *ast) |
RSL boolean or test. More... | |
int | globus_rsl_is_boolean_multi (globus_rsl_t *ast) |
RSL boolean multi test. More... | |
int | globus_rsl_value_is_literal (globus_rsl_value_t *ast) |
RSL literal string test. More... | |
int | globus_rsl_value_is_sequence (globus_rsl_value_t *ast) |
RSL value sequence test. More... | |
int | globus_rsl_value_is_variable (globus_rsl_value_t *ast) |
RSL value variable test. More... | |
int | globus_rsl_value_is_concatenation (globus_rsl_value_t *ast) |
RSL value concatenation test. More... | |
globus_rsl_t * | globus_rsl_make_boolean (int my_operator, globus_list_t *children) |
RSL boolean constructor. More... | |
globus_rsl_t * | globus_rsl_make_relation (int my_operator, char *attributename, globus_rsl_value_t *value_sequence) |
RSL relation constructor. More... | |
globus_rsl_value_t * | globus_rsl_value_make_literal (char *string) |
RSL literal constructor. More... | |
globus_rsl_value_t * | globus_rsl_value_make_sequence (globus_list_t *value_list) |
RSL value sequence constructor. More... | |
globus_rsl_value_t * | globus_rsl_value_make_variable (globus_rsl_value_t *sequence) |
RSL variable reference constructor. More... | |
globus_rsl_value_t * | globus_rsl_value_make_concatenation (globus_rsl_value_t *left_value, globus_rsl_value_t *right_value) |
RSL concatenation constructor. More... | |
globus_rsl_t * | globus_rsl_copy_recursive (globus_rsl_t *globus_rsl_ptr) |
Create a deep copy of an RSL syntax tree. More... | |
globus_rsl_value_t * | globus_rsl_value_copy_recursive (globus_rsl_value_t *globus_rsl_value_ptr) |
Create a deep copy of an RSL value. More... | |
int | globus_rsl_boolean_get_operator (globus_rsl_t *ast_node) |
Get the RSL operator used in a boolean RSL composition. More... | |
globus_list_t * | globus_rsl_boolean_get_operand_list (globus_rsl_t *ast_node) |
Get the RSL operand list from a boolean RSL composition. More... | |
globus_list_t ** | globus_rsl_boolean_get_operand_list_ref (globus_rsl_t *boolean_node) |
Get a reference to the RSL operand list from a boolean RSL composition. More... | |
char * | globus_rsl_relation_get_attribute (globus_rsl_t *ast_node) |
Get an RSL relation attribute name. More... | |
int | globus_rsl_relation_get_operator (globus_rsl_t *ast_node) |
Get an RSL relation operator. More... | |
globus_rsl_value_t * | globus_rsl_relation_get_value_sequence (globus_rsl_t *ast_node) |
Get the value of an RSL relation. More... | |
globus_rsl_value_t * | globus_rsl_relation_get_single_value (globus_rsl_t *ast_node) |
Get the single value of an RSL relation. More... | |
char * | globus_rsl_value_literal_get_string (globus_rsl_value_t *literal_node) |
Get the string value of an RSL literal. More... | |
globus_list_t * | globus_rsl_value_sequence_get_value_list (globus_rsl_value_t *sequence_node) |
Get the value list from an RSL value sequence. More... | |
globus_rsl_value_t * | globus_rsl_value_variable_get_sequence (globus_rsl_value_t *variable_node) |
Get the value sequence from an RSL variable reference. More... | |
char * | globus_rsl_value_variable_get_name (globus_rsl_value_t *variable_node) |
Get the name of an RSL variable reference. More... | |
char * | globus_rsl_value_variable_get_default (globus_rsl_value_t *variable_node) |
Get the default value of an RSL variable reference. More... | |
globus_rsl_value_t * | globus_rsl_value_concatenation_get_left (globus_rsl_value_t *concatenation_node) |
Get the left side of a concatenation value. More... | |
globus_rsl_value_t * | globus_rsl_value_concatenation_get_right (globus_rsl_value_t *concatenation_node) |
Get the right side of a concatenation value. More... | |
globus_list_t ** | globus_rsl_value_sequence_get_list_ref (globus_rsl_value_t *sequence_node) |
Get a reference to the list of values in a sequence. More... | |
int | globus_rsl_value_concatenation_set_left (globus_rsl_value_t *concatenate_node, globus_rsl_value_t *new_left_node) |
Set the left-hand value of a concatenation. More... | |
int | globus_rsl_value_concatenation_set_right (globus_rsl_value_t *concatenate_node, globus_rsl_value_t *new_right_node) |
Set the right-hand value of a concatenation. More... | |
int | globus_rsl_value_eval (globus_rsl_value_t *ast_node, globus_symboltable_t *symbol_table, char **string_value, int rsl_substitute_flag) |
Evaluate RSL substitions in an RSL value node. More... | |
int | globus_rsl_eval (globus_rsl_t *ast_node, globus_symboltable_t *symbol_table) |
Evaluate an RSL syntax tree. More... | |
int | globus_rsl_value_free (globus_rsl_value_t *val) |
Free an RSL value node. More... | |
int | globus_rsl_free (globus_rsl_t *ast_node) |
Free an RSL syntax tree node. More... | |
int | globus_rsl_value_free_recursive (globus_rsl_value_t *globus_rsl_value_ptr) |
Free an RSL value and all its child nodes. More... | |
int | globus_rsl_free_recursive (globus_rsl_t *ast_node) |
Free an RSL syntax tree and all its child nodes. More... | |
int | globus_rsl_value_print_recursive (globus_rsl_value_t *globus_rsl_value_ptr) |
Print the value of a globus_rsl_value_t to standard output. More... | |
int | globus_rsl_print_recursive (globus_rsl_t *ast_node) |
Print the value of an RSL syntax tree to standard output. More... | |
int | globus_rsl_value_variable_get_size (globus_rsl_value_t *variable_node) |
Get the size of the value list within an RSL variable reference node. More... | |
globus_list_t * | globus_list_copy_reverse (globus_list_t *orig) |
Create a reverse-order copy of a list. More... | |
int | globus_rsl_value_list_literal_replace (globus_list_t *value_list, char *string_value) |
Replace the first value in a value list with a literal. More... | |
int | globus_rsl_value_list_param_get (globus_list_t *ast_node_list, int required_type, char ***value, int *value_ctr) |
Get the values of an RSL value list. More... | |
int | globus_rsl_param_get (globus_rsl_t *ast_node, int required_type, char *param, char ***values) |
Get the value strings for an RSL attribute. More... | |
globus_list_t * | globus_rsl_param_get_values (globus_rsl_t *ast_node, char *param) |
Get the list of values for an RSL attribute. More... | |
globus_rsl_t * | globus_rsl_parse (char *rsl_spec) |
Parse an RSL string. More... | |
char * | globus_rsl_unparse (globus_rsl_t *rsl_spec) |
Convert an RSL parse tree to a string. More... | |
char * | globus_rsl_value_unparse (globus_rsl_value_t *rsl_value) |
Convert an RSL value pointer to a string. More... | |
Globus RSL Parsing.
globus_rsl_t* globus_rsl_parse | ( | char * | buf | ) |
Parse an RSL string.
The globus_rsl_parse() function parses the string pointed to by the buf parameter into an RSL syntax tree. The caller is responsible for freeing that tree by calling globus_rsl_free_recursive().
buf | A NULL-terminated string that contains an RSL relation or boolean composition. |