YAZ
5.34.0
src
cqlstring.c
Go to the documentation of this file.
1
/* This file is part of the YAZ toolkit.
2
* Copyright (C) Index Data
3
* See the file LICENSE for details.
4
*/
9
#if HAVE_CONFIG_H
10
#include <
config.h
>
11
#endif
12
13
#include <
yaz/cql.h
>
14
15
struct
cql_buf_info
{
16
const
char
*
str
;
17
int
off
;
18
};
19
20
static
int
getbuf
(
void
*vp)
21
{
22
struct
cql_buf_info
*bi = (
struct
cql_buf_info
*) vp;
23
if
(bi->
str
[bi->
off
] == 0)
24
return
0;
25
return
bi->
str
[bi->
off
++];
26
}
27
28
static
void
ungetbuf
(
int
b,
void
*vp)
29
{
30
struct
cql_buf_info
*bi = (
struct
cql_buf_info
*) vp;
31
if
(b)
32
(bi->
off
--);
33
}
34
35
int
cql_parser_string
(
CQL_parser
cp,
const
char
*
str
)
36
{
37
struct
cql_buf_info
b;
38
39
b.
str
=
str
;
40
b.
off
= 0;
41
42
return
cql_parser_stream
(cp,
getbuf
,
ungetbuf
, &b);
43
}
44
45
/*
46
* Local variables:
47
* c-basic-offset: 4
48
* c-file-style: "Stroustrup"
49
* indent-tabs-mode: nil
50
* End:
51
* vim: shiftwidth=4 tabstop=8 expandtab
52
*/
53
config.h
cql_parser_stream
int cql_parser_stream(CQL_parser cp, int(*getbyte)(void *client_data), void(*ungetbyte)(int b, void *client_data), void *client_data)
parses CQL query (query stream)
Definition:
cql.c:1864
cql.h
Header with public definitions about CQL.
getbuf
static int getbuf(void *vp)
Definition:
cqlstring.c:20
ungetbuf
static void ungetbuf(int b, void *vp)
Definition:
cqlstring.c:28
cql_parser_string
int cql_parser_string(CQL_parser cp, const char *str)
parses a CQL query (string)
Definition:
cqlstring.c:35
cql_buf_info
Definition:
cqlstring.c:15
cql_buf_info::str
const char * str
Definition:
cqlstring.c:16
cql_buf_info::off
int off
Definition:
cqlstring.c:17
cql_parser
Definition:
cql.c:113
Generated by
1.9.1