libdap
Updated for version 3.20.10
libdap4 is an implementation of OPeNDAP's DAP protocol.
parser.h
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
136
}
// namespace libdap
137
138
#include "parser-util.h"
139
140
#endif
// _parser_h
141
libdap::Error
A class for error processing.
Definition
Error.h:94
libdap
top level DAP object to house generic methods
Definition
AlarmHandler.h:36
libdap::parser_arg
Pass parameters by reference to a parser.
Definition
parser.h:69
parser.h
Generated by
1.10.0