AirTSP Logo  1.01.0
C++ Simulated Airline Travel Solution Provider Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 
314  //
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