AirTSP Logo  1.01.2
C++ Simulated Airline Travel Solution Provider (TSP) Library
ScheduleParserHelper.hpp
Go to the documentation of this file.
1 #ifndef __AIRTSP_CMD_SCHEDULEPARSERHELPER_HPP
2 #define __AIRTSP_CMD_SCHEDULEPARSERHELPER_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <string>
9 // StdAir
10 #include <stdair/command/CmdAbstract.hpp>
11 // AirTSP
12 #include <airtsp/AIRTSP_Types.hpp>
15 
16 // Forward declarations
17 namespace stdair {
18  class BomRoot;
19 }
20 
21 namespace AIRTSP {
22 
23  namespace ScheduleParserHelper {
24 
25  // ///////////////////////////////////////////////////////////////////
26  // Semantic actions
27  // ///////////////////////////////////////////////////////////////////
34  };
35 
41  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
42  };
43 
49  void operator() (unsigned int iNumber) const;
50  };
51 
57  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
58  };
59 
65  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
66  };
67 
69  struct storeDow : public ParserSemanticAction {
73  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
74  };
75 
81  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
82  };
83 
89  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
90  };
91 
97  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
98  };
99 
105  void operator() (unsigned int iNumber) const;
106  };
107 
113  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
114  };
115 
121  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
122  };
123 
129  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
130  };
131 
137  void operator() (char iChar) const;
138  };
139 
145  void operator() (double iReal) const;
146  };
147 
156  void operator() (char iChar) const;
157  };
158 
164  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
165  };
166 
172  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
173  };
174 
180  void operator() (char iChar) const;
181  };
182 
188  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
189  };
190 
196  void operator() (int iCode) const;
197  };
198 
204  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
205  };
206 
212  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
213  };
214 
220  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
221  };
222 
226  doEndFlight (stdair::BomRoot&, FlightPeriodStruct&);
228  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
230  stdair::BomRoot& _bomRoot;
231  };
232 
233 
235  //
236  // (Boost Spirit) Grammar Definition
237  //
239 
282  public boost::spirit::classic::grammar<FlightPeriodParser> {
283 
284  FlightPeriodParser (stdair::BomRoot&, FlightPeriodStruct&);
285 
286  template <typename ScannerT>
287  struct definition {
288  definition (FlightPeriodParser const& self);
289 
290  // Instantiation of rules
291  boost::spirit::classic::rule<ScannerT> flight_period_list, flight_period,
298 
300  boost::spirit::classic::rule<ScannerT> const& start() const;
301  };
302 
303  // Parser Context
304  stdair::BomRoot& _bomRoot;
306  };
307 
308  }
313  //
315  // Entry class for the file parser
316  //
318 
323  class FlightPeriodFileParser : public stdair::CmdAbstract {
324  public:
326  FlightPeriodFileParser (stdair::BomRoot& ioBomRoot,
327  const stdair::Filename_T& iFilename);
328 
330  bool generateInventories ();
331 
332  private:
334  void init();
335 
336  private:
337  // Attributes
339  stdair::Filename_T _filename;
340 
342  iterator_t _startIterator;
343 
345  iterator_t _endIterator;
346 
348  stdair::BomRoot& _bomRoot;
349 
351  FlightPeriodStruct _flightPeriod;
352  };
353 
354 }
355 #endif // __AIRTSP_CMD_SCHEDULEPARSERHELPER_HPP
FlightPeriodParser(stdair::BomRoot &, FlightPeriodStruct &)
void operator()(iterator_t iStr, iterator_t iStrEnd) const
boost::spirit::classic::rule< ScannerT > segment_cabin_details
void operator()(iterator_t iStr, iterator_t iStrEnd) const
void operator()(iterator_t iStr, iterator_t iStrEnd) const
void operator()(iterator_t iStr, iterator_t iStrEnd) const
FlightPeriodFileParser(stdair::BomRoot &ioBomRoot, const stdair::Filename_T &iFilename)
void operator()(iterator_t iStr, iterator_t iStrEnd) const
void operator()(iterator_t iStr, iterator_t iStrEnd) const
void operator()(iterator_t iStr, iterator_t iStrEnd) const
boost::spirit::classic::file_iterator< char_t > iterator_t
void operator()(iterator_t iStr, iterator_t iStrEnd) const
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Forward declarations.
doEndFlight(stdair::BomRoot &, FlightPeriodStruct &)
void operator()(iterator_t iStr, iterator_t iStrEnd) const
void operator()(iterator_t iStr, iterator_t iStrEnd) const
void operator()(iterator_t iStr, iterator_t iStrEnd) const
void operator()(iterator_t iStr, iterator_t iStrEnd) const
boost::spirit::classic::rule< ScannerT > specific_segment_list
boost::spirit::classic::rule< ScannerT > full_segment_cabin_details
boost::spirit::classic::rule< ScannerT > operating_leg_details
void operator()(iterator_t iStr, iterator_t iStrEnd) const
void operator()(iterator_t iStr, iterator_t iStrEnd) const
boost::spirit::classic::rule< ScannerT > const & start() const
void operator()(iterator_t iStr, iterator_t iStrEnd) const
boost::spirit::classic::rule< ScannerT > full_family_cabin_details
void operator()(iterator_t iStr, iterator_t iStrEnd) const