libdap++
Updated for version 3.12.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
parser.h
Go to the documentation of this file.
1
2
// -*- mode: c++; c-basic-offset:4 -*-
3
4
// This file is part of libdap, A C++ implementation of the OPeNDAP Data
5
// Access Protocol.
6
7
// Copyright (c) 2002,2003 OPeNDAP, Inc.
8
// Author: James Gallagher <jgallagher@opendap.org>
9
//
10
// This library is free software; you can redistribute it and/or
11
// modify it under the terms of the GNU Lesser General Public
12
// License as published by the Free Software Foundation; either
13
// version 2.1 of the License, or (at your option) any later version.
14
//
15
// This library is distributed in the hope that it will be useful,
16
// but WITHOUT ANY WARRANTY; without even the implied warranty of
17
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
// Lesser General Public License for more details.
19
//
20
// You should have received a copy of the GNU Lesser General Public
21
// License along with this library; if not, write to the Free Software
22
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23
//
24
// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
25
26
// (c) COPYRIGHT URI/MIT 1994-1999
27
// Please read the full copyright statement in the file COPYRIGHT_URI.
28
//
29
// Authors:
30
// jhrg,jimg James Gallagher <jgallagher@gso.uri.edu>
31
32
// Constants, types and function prototypes for use with the DAP parsers.
33
//
34
// jhrg 2/3/96
35
36
#ifndef _parser_h
37
#define _parser_h
38
39
#ifndef _error_h
40
#include "
Error.h
"
41
#endif
42
43
#define YYDEBUG 1
44
#undef YYERROR_VERBOSE
45
#define YY_NO_UNPUT 1
46
47
#define ID_MAX 256
48
49
#ifndef TRUE
50
#define TRUE 1
51
#define FALSE 0
52
#endif
53
54
namespace
libdap
55
{
56
68
struct
parser_arg
69
{
70
void
*
_object
;
// nominally a pointer to an object
71
Error
*
_error
;
// a pointer to an Error object
72
int
_status
;
// parser status
73
74
parser_arg
() :
_object
(0),
_error
(0),
_status
(1)
75
{}
76
parser_arg
(
void
*obj) :
_object
(obj),
_error
(0),
_status
(1)
77
{}
78
virtual
~parser_arg
()
79
{
80
if
(
_error
) {
81
delete
_error
;
_error
= 0;
82
}
83
}
84
85
void
*
object
()
86
{
87
return
_object
;
88
}
89
void
set_object
(
void
*obj)
90
{
91
_object
= obj;
92
}
93
Error
*
error
()
94
{
95
return
_error
;
96
}
97
void
set_error
(
Error
*obj)
98
{
99
_error
= obj;
100
}
101
int
status
()
102
{
103
return
_status
;
104
}
105
void
set_status
(
int
val = 0)
106
{
107
_status
= val;
108
}
109
};
110
130
void
parse_error
(parser_arg *arg,
const
char
*s,
const
int
line_num = 0,
131
const
char
*context = 0);
132
void
parse_error
(
const
string
&msg,
const
int
line_num,
133
const
char
*context = 0);
135
150
void
save_str
(
char
*dst,
const
char
*src,
const
int
line_num);
151
void
save_str
(
string
&dst,
const
char
*src,
const
int
);
152
153
bool
is_keyword
(
string
id
,
const
string
&keyword);
154
166
int
check_byte
(
const
char
*val);
167
175
int
check_int16
(
const
char
*val);
176
int
check_uint16
(
const
char
*val);
177
int
check_int32
(
const
char
*val);
178
int
check_uint32
(
const
char
*val);
179
184
int
check_float32
(
const
char
*val);
185
int
check_float64
(
const
char
*val);
186
191
int
check_url
(
const
char
*val);
192
193
}
// namespace libdap
194
195
#endif // _parser_h
196
parser.h
Generated on Tue Oct 22 2013 06:24:38 for libdap++ by
1.8.4