g2o
driver.h
Go to the documentation of this file.
1 // g2o - General Graph Optimization
2 // Copyright (C) 2011 R. Kuemmerle, G. Grisetti, W. Burgard
3 // All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // * Redistributions of source code must retain the above copyright notice,
10 // this list of conditions and the following disclaimer.
11 // * Redistributions in binary form must reproduce the above copyright
12 // notice, this list of conditions and the following disclaimer in the
13 // documentation and/or other materials provided with the distribution.
14 //
15 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
16 // IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17 // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
18 // PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19 // HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
21 // TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 
27 #ifndef SLAM_DRIVER_H
28 #define SLAM_DRIVER_H
29 
30 #include <string>
31 #include <vector>
32 
33 namespace SlamParser {
34 
35 class SlamContext;
36 
37 class Driver
38 {
39 public:
41  Driver(class SlamContext& slamContext_);
42 
45 
48 
50  std::string streamname;
51 
57  bool parse_stream(std::istream& in,
58  const std::string& sname = "stream input");
59 
65  bool parse_string(const std::string& input,
66  const std::string& sname = "string stream");
67 
73  bool parse_file(const std::string& filename);
74 
75  // To demonstrate pure handling of parse errors, instead of
76  // simply dumping them on the standard error output, we will pass
77  // them to the driver using the following two member functions.
78 
81  void error(const class location& l, const std::string& m);
82 
85  void error(const std::string& m);
86 
89  class Scanner* lexer;
90 
94 };
95 
96 }
97 
98 #endif
bool parse_file(const std::string &filename)
Definition: driver.cpp:59
bool parse_string(const std::string &input, const std::string &sname="string stream")
Definition: driver.cpp:66
void error(const class location &l, const std::string &m)
Definition: driver.cpp:72
bool trace_scanning
enable debug output in the flex scanner
Definition: driver.h:44
class SlamContext & slamContext
Definition: driver.h:93
bool trace_parsing
enable debug output in the bison parser
Definition: driver.h:47
Abstract a location.
Definition: location.hh:56
class Scanner * lexer
Definition: driver.h:89
bool parse_stream(std::istream &in, const std::string &sname="stream input")
Definition: driver.cpp:44
Driver(class SlamContext &slamContext_)
construct a new parser driver context
Definition: driver.cpp:37
std::string streamname
stream name (file or input stream) used for error messages.
Definition: driver.h:50