Grid Community Toolkit  6.2.1705709074 (tag: v6.2.20240202)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
globus_i_rsl_parser.h
1 /*
2  * Copyright 1999-2006 University of Chicago
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef GLOBUS_I_RSL_PARSER_H
18 #define GLOBUS_I_RSL_PARSER_H
19 
20 #include "globus_common.h"
21 
22 /* the scanner matches left and right-parens by
23  * introducing a new counter at the beginning of each
24  * variable reference expression. this allows it to
25  * detect the terminating right-paren of the variable reference
26  * and check whether the enjambed implicit-concatenation
27  * syntax is being used. it then restores the previous
28  * paren counter and keeps going (to recognize the end
29  * of any enclosing variable reference expression).
30  */
31 typedef struct paren_count_stack_elem_s
32 {
33  int count;
34 }
35 paren_count_stack_elem_t;
36 
37 typedef struct
38 globus_parse_state_s
39 {
40  char *myinput;
41  char *myinputptr;
42  char *myinputlim;
43  globus_rsl_t *rsl_spec;
44  globus_rsl_parse_error_t *error_structure;
45  int globus_parse_error_flag;
46  int calling_state;
47  char quote_delimiter;
48  globus_fifo_t *quote_text_fifo;
49 /* manipulate this list as stack...
50  * introduced as a list rather than an abstract-data-type
51  * so we can simply init it here as the constant NULL. */
52  globus_list_t *paren_count_stack;
53 } globus_parse_state_t;
54 
55 extern
56 int
57 globus_i_rsl_yyinput(globus_parse_state_t *parse_state, char *buf, yy_size_t *num_read, int max_size);
58 
59 #endif /* GLOBUS_I_RSL_PARSER_H */
struct globus_fifo_s * globus_fifo_t
Definition: globus_fifo.h:48
List data type.
Definition: globus_list.h:44
Headers common to all of Globus.