---
name: "globus_rsl.h"
section: "3"
platform: "linux"
package: "libglobus-rsl-doc"
version: "11.4-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/globus_rsl.h"
---

# globus\_rsl.h(3)

Globus RSL Parsing.

## NAME

globus\_rsl.h - Globus RSL Parsing.

## SYNOPSIS

`#include 'globus_module.h'`\
 `#include 'globus_list.h'`\
 `#include 'globus_symboltable.h'`\
 `#include 'globus_hashtable.h'`\

### Functions

int **globus\_rsl\_is\_relation** (globus\_rsl\_t \*ast)\
 RSL relation test.  int **globus\_rsl\_is\_boolean** (globus\_rsl\_t \*ast)\
 RSL boolean test.  int **globus\_rsl\_is\_relation\_eq** (globus\_rsl\_t \*ast)\
 RSL equality operation test.  int **globus\_rsl\_is\_relation\_lessthan** (globus\_rsl\_t \*ast)\
 RSL less than operation test.  int **globus\_rsl\_is\_relation\_attribute\_equal** (globus\_rsl\_t \*ast, char \*attribute)\
 RSL attribute name test.  int **globus\_rsl\_is\_boolean\_and** (globus\_rsl\_t \*ast)\
 RSL boolean and test.  int **globus\_rsl\_is\_boolean\_or** (globus\_rsl\_t \*ast)\
 RSL boolean or test.  int **globus\_rsl\_is\_boolean\_multi** (globus\_rsl\_t \*ast)\
 RSL boolean multi test.  int **globus\_rsl\_value\_is\_literal** (globus\_rsl\_value\_t \*ast)\
 RSL literal string test.  int **globus\_rsl\_value\_is\_sequence** (globus\_rsl\_value\_t \*ast)\
 RSL value sequence test.  int **globus\_rsl\_value\_is\_variable** (globus\_rsl\_value\_t \*ast)\
 RSL value variable test.  int **globus\_rsl\_value\_is\_concatenation** (globus\_rsl\_value\_t \*ast)\
 RSL value concatenation test.  globus\_rsl\_t \* **globus\_rsl\_make\_boolean** (int my\_operator, globus\_list\_t \*children)\
 RSL boolean constructor.  globus\_rsl\_t \* **globus\_rsl\_make\_relation** (int my\_operator, char \*attributename, globus\_rsl\_value\_t \*value\_sequence)\
 RSL relation constructor.  globus\_rsl\_value\_t \* **globus\_rsl\_value\_make\_literal** (char \*string)\
 RSL literal constructor.  globus\_rsl\_value\_t \* **globus\_rsl\_value\_make\_sequence** (globus\_list\_t \*value\_list)\
 RSL value sequence constructor.  globus\_rsl\_value\_t \* **globus\_rsl\_value\_make\_variable** (globus\_rsl\_value\_t \*sequence)\
 RSL variable reference constructor.  globus\_rsl\_value\_t \* **globus\_rsl\_value\_make\_concatenation** (globus\_rsl\_value\_t \*left\_value, globus\_rsl\_value\_t \*right\_value)\
 RSL concatenation constructor.  globus\_rsl\_t \* **globus\_rsl\_copy\_recursive** (globus\_rsl\_t \*globus\_rsl\_ptr)\
 Create a deep copy of an RSL syntax tree.  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.  int **globus\_rsl\_boolean\_get\_operator** (globus\_rsl\_t \*ast\_node)\
 Get the RSL operator used in a boolean RSL composition.  globus\_list\_t \* **globus\_rsl\_boolean\_get\_operand\_list** (globus\_rsl\_t \*ast\_node)\
 Get the RSL operand list from a boolean RSL composition.  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.  char \* **globus\_rsl\_relation\_get\_attribute** (globus\_rsl\_t \*ast\_node)\
 Get an RSL relation attribute name.  int **globus\_rsl\_relation\_get\_operator** (globus\_rsl\_t \*ast\_node)\
 Get an RSL relation operator.  globus\_rsl\_value\_t \* **globus\_rsl\_relation\_get\_value\_sequence** (globus\_rsl\_t \*ast\_node)\
 Get the value of an RSL relation.  globus\_rsl\_value\_t \* **globus\_rsl\_relation\_get\_single\_value** (globus\_rsl\_t \*ast\_node)\
 Get the single value of an RSL relation.  char \* **globus\_rsl\_value\_literal\_get\_string** (globus\_rsl\_value\_t \*literal\_node)\
 Get the string value of an RSL literal.  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.  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.  char \* **globus\_rsl\_value\_variable\_get\_name** (globus\_rsl\_value\_t \*variable\_node)\
 Get the name of an RSL variable reference.  char \* **globus\_rsl\_value\_variable\_get\_default** (globus\_rsl\_value\_t \*variable\_node)\
 Get the default value of an RSL variable reference.  globus\_rsl\_value\_t \* **globus\_rsl\_value\_concatenation\_get\_left** (globus\_rsl\_value\_t \*concatenation\_node)\
 Get the left side of a concatenation value.  globus\_rsl\_value\_t \* **globus\_rsl\_value\_concatenation\_get\_right** (globus\_rsl\_value\_t \*concatenation\_node)\
 Get the right side of a concatenation value.  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.  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.  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.  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.  int **globus\_rsl\_eval** (globus\_rsl\_t \*ast\_node, globus\_symboltable\_t \*symbol\_table)\
 Evaluate an RSL syntax tree.  int **globus\_rsl\_value\_free** (globus\_rsl\_value\_t \*val)\
 Free an RSL value node.  int **globus\_rsl\_free** (globus\_rsl\_t \*ast\_node)\
 Free an RSL syntax tree node.  int **globus\_rsl\_value\_free\_recursive** (globus\_rsl\_value\_t \*globus\_rsl\_value\_ptr)\
 Free an RSL value and all its child nodes.  int **globus\_rsl\_free\_recursive** (globus\_rsl\_t \*ast\_node)\
 Free an RSL syntax tree and all its child nodes.  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.  int **globus\_rsl\_print\_recursive** (globus\_rsl\_t \*ast\_node)\
 Print the value of an RSL syntax tree to standard output.  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.  globus\_list\_t \* **globus\_list\_copy\_reverse** (globus\_list\_t \*orig)\
 Create a reverse-order copy of a list.  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.  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.  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.  globus\_list\_t \* **globus\_rsl\_param\_get\_values** (globus\_rsl\_t \*ast\_node, char \*param)\
 Get the list of values for an RSL attribute.  globus\_rsl\_t \* **globus\_rsl\_parse** (char \*rsl\_spec)\
 Parse an RSL string.  char \* **globus\_rsl\_unparse** (globus\_rsl\_t \*rsl\_spec)\
 Convert an RSL parse tree to a string.  char \* **globus\_rsl\_value\_unparse** (globus\_rsl\_value\_t \*rsl\_value)\
 Convert an RSL value pointer to a string.

## Detailed Description

Globus RSL Parsing.

## Function Documentation

### 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()**.

**Parameters**

*buf* A NULL-terminated string that contains an RSL relation or boolean composition.

**Returns**

Upon success, the globus\_rsl\_parse() function returns the parse tree generated by processing its input. If an error occurs, globus\_rsl\_parse() returns NULL.

## Author

Generated automatically by Doxygen for globus\_rsl from the source code.
