globus_rsl
11.4
Toggle main menu visibility
Loading...
Searching...
No Matches
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 */
globus_i_rsl_parser.h
Generated by
1.17.0