OpenTREP Logo  0.07.11
C++ Open Travel Request Parsing Library
PORParserHelper.hpp
Go to the documentation of this file.
1 #ifndef __OPENTREP_CMD_PORPARSERHELPER_HPP
2 #define __OPENTREP_CMD_PORPARSERHELPER_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <string>
9 // Boost
10 #include <boost/spirit/include/qi.hpp>
11 // Opentrep
13 #include <opentrep/Location.hpp>
14 #include <opentrep/CityDetails.hpp>
15 
16 namespace OPENTREP {
17 
18  namespace PorParserHelper {
19 
21  typedef char uchar_t;
22  //typedef boost::uint8_t uchar_t;
23  //typedef boost::uint32_t uchar_t;
24 
25 
26  // ///////////////////////////////////////////////////////////////////
27  // Semantic actions
28  // ////////////////////////////////////////////////////
30 
36  };
37 
43  void operator() (std::vector<uchar_t>,
44  boost::spirit::qi::unused_type,
45  boost::spirit::qi::unused_type) const;
46  };
47 
53  void operator() (std::vector<uchar_t>,
54  boost::spirit::qi::unused_type,
55  boost::spirit::qi::unused_type) const;
56  };
57 
63  void operator() (std::vector<uchar_t>,
64  boost::spirit::qi::unused_type,
65  boost::spirit::qi::unused_type) const;
66  };
67 
73  void operator() (std::vector<uchar_t>,
74  boost::spirit::qi::unused_type,
75  boost::spirit::qi::unused_type) const;
76  };
77 
83  void operator() (unsigned int iUICCode,
84  boost::spirit::qi::unused_type,
85  boost::spirit::qi::unused_type) const;
86  };
87 
93  void operator() (unsigned int,
94  boost::spirit::qi::unused_type,
95  boost::spirit::qi::unused_type) const;
96  };
97 
103  void operator() (unsigned int,
104  boost::spirit::qi::unused_type,
105  boost::spirit::qi::unused_type) const;
106  };
107 
113  void operator() (std::vector<uchar_t>,
114  boost::spirit::qi::unused_type,
115  boost::spirit::qi::unused_type) const;
116  };
117 
123  void operator() (std::vector<uchar_t>,
124  boost::spirit::qi::unused_type,
125  boost::spirit::qi::unused_type) const;
126  };
127 
133  void operator() (boost::spirit::qi::unused_type,
134  boost::spirit::qi::unused_type,
135  boost::spirit::qi::unused_type) const;
136  };
137 
143  void operator() (std::vector<uchar_t>,
144  boost::spirit::qi::unused_type,
145  boost::spirit::qi::unused_type) const;
146  };
147 
153  void operator() (boost::spirit::qi::unused_type,
154  boost::spirit::qi::unused_type,
155  boost::spirit::qi::unused_type) const;
156  };
157 
163  void operator() (std::vector<uchar_t>,
164  boost::spirit::qi::unused_type,
165  boost::spirit::qi::unused_type) const;
166  };
167 
173  void operator() (boost::spirit::qi::unused_type,
174  boost::spirit::qi::unused_type,
175  boost::spirit::qi::unused_type) const;
176  };
177 
183  void operator() (double,
184  boost::spirit::qi::unused_type,
185  boost::spirit::qi::unused_type) const;
186  };
187 
193  void operator() (double,
194  boost::spirit::qi::unused_type,
195  boost::spirit::qi::unused_type) const;
196  };
197 
203  void operator() (std::vector<uchar_t>,
204  boost::spirit::qi::unused_type,
205  boost::spirit::qi::unused_type) const;
206  };
207 
213  void operator() (std::vector<uchar_t>,
214  boost::spirit::qi::unused_type,
215  boost::spirit::qi::unused_type) const;
216  };
217 
223  void operator() (double,
224  boost::spirit::qi::unused_type,
225  boost::spirit::qi::unused_type) const;
226  };
227 
233  void operator() (boost::spirit::qi::unused_type,
234  boost::spirit::qi::unused_type,
235  boost::spirit::qi::unused_type) const;
236  };
237 
243  void operator() (boost::spirit::qi::unused_type,
244  boost::spirit::qi::unused_type,
245  boost::spirit::qi::unused_type) const;
246  };
247 
253  void operator() (std::vector<uchar_t>,
254  boost::spirit::qi::unused_type,
255  boost::spirit::qi::unused_type) const;
256  };
257 
263  void operator() (std::vector<uchar_t>,
264  boost::spirit::qi::unused_type,
265  boost::spirit::qi::unused_type) const;
266  };
267 
273  void operator() (std::vector<uchar_t>,
274  boost::spirit::qi::unused_type,
275  boost::spirit::qi::unused_type) const;
276  };
277 
283  void operator() (std::vector<uchar_t>,
284  boost::spirit::qi::unused_type,
285  boost::spirit::qi::unused_type) const;
286  };
287 
293  void operator() (std::vector<uchar_t>,
294  boost::spirit::qi::unused_type,
295  boost::spirit::qi::unused_type) const;
296  };
297 
303  void operator() (std::vector<uchar_t>,
304  boost::spirit::qi::unused_type,
305  boost::spirit::qi::unused_type) const;
306  };
307 
313  void operator() (std::vector<uchar_t>,
314  boost::spirit::qi::unused_type,
315  boost::spirit::qi::unused_type) const;
316  };
317 
323  void operator() (std::vector<uchar_t>,
324  boost::spirit::qi::unused_type,
325  boost::spirit::qi::unused_type) const;
326  };
327 
333  void operator() (std::vector<uchar_t>,
334  boost::spirit::qi::unused_type,
335  boost::spirit::qi::unused_type) const;
336  };
337 
343  void operator() (std::vector<uchar_t>,
344  boost::spirit::qi::unused_type,
345  boost::spirit::qi::unused_type) const;
346  };
347 
353  void operator() (std::vector<uchar_t>,
354  boost::spirit::qi::unused_type,
355  boost::spirit::qi::unused_type) const;
356  };
357 
363  void operator() (std::vector<uchar_t>,
364  boost::spirit::qi::unused_type,
365  boost::spirit::qi::unused_type) const;
366  };
367 
373  void operator() (std::vector<uchar_t>,
374  boost::spirit::qi::unused_type,
375  boost::spirit::qi::unused_type) const;
376  };
377 
383  void operator() (unsigned int,
384  boost::spirit::qi::unused_type,
385  boost::spirit::qi::unused_type) const;
386  };
387 
393  void operator() (int,
394  boost::spirit::qi::unused_type,
395  boost::spirit::qi::unused_type) const;
396  };
397 
403  void operator() (int,
404  boost::spirit::qi::unused_type,
405  boost::spirit::qi::unused_type) const;
406  };
407 
413  void operator() (std::vector<uchar_t>,
414  boost::spirit::qi::unused_type,
415  boost::spirit::qi::unused_type) const;
416  };
417 
423  void operator() (float,
424  boost::spirit::qi::unused_type,
425  boost::spirit::qi::unused_type) const;
426  };
427 
433  void operator() (float,
434  boost::spirit::qi::unused_type,
435  boost::spirit::qi::unused_type) const;
436  };
437 
443  void operator() (float,
444  boost::spirit::qi::unused_type,
445  boost::spirit::qi::unused_type) const;
446  };
447 
453  void operator() (boost::spirit::qi::unused_type,
454  boost::spirit::qi::unused_type,
455  boost::spirit::qi::unused_type) const;
456  };
457 
463  void operator() (std::vector<uchar_t>,
464  boost::spirit::qi::unused_type,
465  boost::spirit::qi::unused_type) const;
466  };
467 
473  void operator() (unsigned int,
474  boost::spirit::qi::unused_type,
475  boost::spirit::qi::unused_type) const;
476  };
477 
483  void operator() (std::vector<uchar_t>,
484  boost::spirit::qi::unused_type,
485  boost::spirit::qi::unused_type) const;
486  };
487 
493  void operator() (std::vector<uchar_t>,
494  boost::spirit::qi::unused_type,
495  boost::spirit::qi::unused_type) const;
496  };
497 
503  void operator() (std::vector<uchar_t>,
504  boost::spirit::qi::unused_type,
505  boost::spirit::qi::unused_type) const;
506  };
507 
513  void operator() (std::vector<uchar_t>,
514  boost::spirit::qi::unused_type,
515  boost::spirit::qi::unused_type) const;
516  };
517 
523  void operator() (std::vector<uchar_t>,
524  boost::spirit::qi::unused_type,
525  boost::spirit::qi::unused_type) const;
526  };
527 
529  struct storeWAC : public ParserSemanticAction {
531  storeWAC (Location&);
533  void operator() (unsigned int,
534  boost::spirit::qi::unused_type,
535  boost::spirit::qi::unused_type) const;
536  };
537 
543  void operator() (std::vector<uchar_t>,
544  boost::spirit::qi::unused_type,
545  boost::spirit::qi::unused_type) const;
546  };
547 
553  void operator() (std::vector<uchar_t>,
554  boost::spirit::qi::unused_type,
555  boost::spirit::qi::unused_type) const;
556  };
557 
563  void operator() (std::vector<uchar_t>,
564  boost::spirit::qi::unused_type,
565  boost::spirit::qi::unused_type) const;
566  };
567 
568 
574  void operator() (std::vector<uchar_t>,
575  boost::spirit::qi::unused_type,
576  boost::spirit::qi::unused_type) const;
577  };
578 
584  void operator() (double,
585  boost::spirit::qi::unused_type,
586  boost::spirit::qi::unused_type) const;
587  };
588 
594  void operator() (double,
595  boost::spirit::qi::unused_type,
596  boost::spirit::qi::unused_type) const;
597  };
598 
604  void operator() (std::vector<uchar_t>,
605  boost::spirit::qi::unused_type,
606  boost::spirit::qi::unused_type) const;
607  };
608 
616  void operator() (std::vector<uchar_t>,
617  boost::spirit::qi::unused_type,
618  boost::spirit::qi::unused_type) const;
619  };
620 
628  void operator() (std::vector<uchar_t>,
629  boost::spirit::qi::unused_type,
630  boost::spirit::qi::unused_type) const;
631  };
632 
638  void operator() (std::vector<uchar_t>,
639  boost::spirit::qi::unused_type,
640  boost::spirit::qi::unused_type) const;
641  };
642 
648  void operator() (std::vector<uchar_t>,
649  boost::spirit::qi::unused_type,
650  boost::spirit::qi::unused_type) const;
651  };
652 
654  struct doEndPor : public ParserSemanticAction {
656  doEndPor (Location&);
658  void operator() (boost::spirit::qi::unused_type,
659  boost::spirit::qi::unused_type,
660  boost::spirit::qi::unused_type) const;
661  };
662 
663  }
664 
665 
667  //
668  // Entry class for the string parser
669  //
671 
679  public:
683  PORStringParser (const std::string& iString);
684 
689 
693  const Location& generateLocation();
694 
695  private:
699  void init();
700 
701  private:
702  // Attributes
706  std::string _string;
707 
711  Location _location;
712  };
713 
714 
716  //
717  // Entry class for the file parser
718  //
720 
728  public:
732  PORFileParser (const PORFilePath_T& iFilename);
733 
737  void generateLocations();
738 
739  private:
743  void init();
744 
745  private:
746  // Attributes
750  PORFilePath_T _filename;
751 
755  Location _location;
756  };
757 
758 }
759 #endif // __OPENTREP_CMD_PORPARSERHELPER_HPP
PORFileParser(const PORFilePath_T &iFilename)
PORStringParser(const std::string &iString)
const Location & generateLocation()
Structure modelling a (geographical) location.
Definition: Location.hpp:25
void operator()(boost::spirit::qi::unused_type, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(boost::spirit::qi::unused_type, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(boost::spirit::qi::unused_type, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(unsigned int, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(float, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(boost::spirit::qi::unused_type, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(boost::spirit::qi::unused_type, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(int, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(unsigned int, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(float, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(int, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(double, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(double, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(unsigned int, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(double, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(double, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(boost::spirit::qi::unused_type, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(double, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(unsigned int, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(float, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(boost::spirit::qi::unused_type, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(unsigned int iUICCode, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(std::vector< uchar_t >, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const
void operator()(unsigned int, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type) const