AirInv Logo  1.00.3
C++ Simulated Airline Inventory Management System library
ScheduleParserHelper.hpp
Go to the documentation of this file.
1 #ifndef __AIRINV_CMD_SCHEDULEPARSERHELPER_HPP
2 #define __AIRINV_CMD_SCHEDULEPARSERHELPER_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <string>
9 // StdAir
10 #include <stdair/command/CmdAbstract.hpp>
11 // Airinv
12 #include <airinv/AIRINV_Types.hpp>
15 
16 // Forward declarations
17 namespace stdair {
18  class BomRoot;
19 }
20 
21 namespace AIRINV {
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 
283  public boost::spirit::classic::grammar<FlightPeriodParser> {
284 
285  FlightPeriodParser (stdair::BomRoot&, FlightPeriodStruct&);
286 
287  template <typename ScannerT>
288  struct definition {
289  definition (FlightPeriodParser const& self);
290 
291  // Instantiation of rules
292  boost::spirit::classic::rule<ScannerT> flight_period_list,
300 
302  boost::spirit::classic::rule<ScannerT> const& start() const;
303  };
304 
305  // Parser Context
306  stdair::BomRoot& _bomRoot;
308  };
309 
310  }
315  //
317  // Entry class for the file parser
318  //
320 
325  class FlightPeriodFileParser : public stdair::CmdAbstract {
326  public:
328  FlightPeriodFileParser (stdair::BomRoot& ioBomRoot,
329  const stdair::Filename_T& iFilename);
330 
332  bool generateInventories ();
333 
334  private:
336  void init();
337 
338  private:
339  // Attributes
341  stdair::Filename_T _filename;
342 
344  iterator_t _startIterator;
345 
347  iterator_t _endIterator;
348 
350  stdair::BomRoot& _bomRoot;
351 
353  FlightPeriodStruct _flightPeriod;
354  };
355 
356 }
357 #endif // __AIRINV_CMD_SCHEDULEPARSERHELPER_HPP
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::flight_key
boost::spirit::classic::rule< ScannerT > flight_key
Definition: ScheduleParserHelper.hpp:294
AIRINV::ScheduleParserHelper::storeFamilyCode::operator()
void operator()(int iCode) const
Definition: ScheduleParserHelper.cpp:374
AIRINV::ScheduleParserHelper::storeFlightNumber::storeFlightNumber
storeFlightNumber(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:51
AIRINV::ScheduleParserHelper::storeLegCabinCode::operator()
void operator()(char iChar) const
Definition: ScheduleParserHelper.cpp:255
AIRINV::ScheduleParserHelper::storeAirlineCode::storeAirlineCode
storeAirlineCode(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:34
AIRINV::ScheduleParserHelper::storeDow::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:110
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::segment_key
boost::spirit::classic::rule< ScannerT > segment_key
Definition: ScheduleParserHelper.hpp:297
AIRINV::ScheduleParserHelper::storeClasses::storeClasses
storeClasses(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:344
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::airline_code
boost::spirit::classic::rule< ScannerT > airline_code
Definition: ScheduleParserHelper.hpp:294
AIRINV::ScheduleParserHelper::storeSegmentSpecificity::storeSegmentSpecificity
storeSegmentSpecificity(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:281
AIRINV::ScheduleParserHelper::storeLegCabinCode
Definition: ScheduleParserHelper.hpp:133
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::flight_period_list
boost::spirit::classic::rule< ScannerT > flight_period_list
Definition: ScheduleParserHelper.hpp:292
AIRINV::ScheduleParserHelper::storeCapacity::operator()
void operator()(double iReal) const
Definition: ScheduleParserHelper.cpp:267
AIRINV::ScheduleParserHelper::storeBoardingTime::storeBoardingTime
storeBoardingTime(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:190
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::specific_segment_list
boost::spirit::classic::rule< ScannerT > specific_segment_list
Definition: ScheduleParserHelper.hpp:299
AIRINV::ScheduleParserHelper::storeBoardingTime
Definition: ScheduleParserHelper.hpp:109
AIRINV::ScheduleParserHelper::doEndFlight::doEndFlight
doEndFlight(stdair::BomRoot &, FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:436
AIRINV::ScheduleParserHelper::storeSegmentBoardingPoint
Definition: ScheduleParserHelper.hpp:160
AIRINV::ScheduleParserHelper::ParserSemanticAction
Definition: ScheduleParserHelper.hpp:29
AIRINV::ScheduleParserHelper::storeSegmentSpecificity
Definition: ScheduleParserHelper.hpp:152
AIRINV::ScheduleParserHelper::FlightPeriodParser::_bomRoot
stdair::BomRoot & _bomRoot
Definition: ScheduleParserHelper.hpp:306
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::operating_leg_details
boost::spirit::classic::rule< ScannerT > operating_leg_details
Definition: ScheduleParserHelper.hpp:296
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::date_offset
boost::spirit::classic::rule< ScannerT > date_offset
Definition: ScheduleParserHelper.hpp:295
AIRINV::FlightPeriodFileParser
Definition: ScheduleParserHelper.hpp:325
AIRINV::ScheduleParserHelper::storeSegmentBoardingPoint::storeSegmentBoardingPoint
storeSegmentBoardingPoint(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:307
AIRINV::ScheduleParserHelper::storeLegCabinCode::storeLegCabinCode
storeLegCabinCode(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:250
AIRINV::ScheduleParserHelper::storeElapsedTime::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:234
AIRINV::ScheduleParserHelper::storeOperatingFlightNumber::operator()
void operator()(unsigned int iNumber) const
Definition: ScheduleParserHelper.cpp:183
AIRINV::ScheduleParserHelper::storeLegOffPoint::storeLegOffPoint
storeLegOffPoint(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:146
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::flight_number
boost::spirit::classic::rule< ScannerT > flight_number
Definition: ScheduleParserHelper.hpp:294
AIRINV::ScheduleParserHelper::storeElapsedTime::storeElapsedTime
storeElapsedTime(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:229
AIRINV::ScheduleParserHelper::storeFClasses
Definition: ScheduleParserHelper.hpp:216
AIRINV::iterator_t
boost::spirit::classic::file_iterator< char_t > iterator_t
Definition: BasParserTypes.hpp:35
AIRINV::ScheduleParserHelper::ParserSemanticAction::ParserSemanticAction
ParserSemanticAction(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:28
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::start
boost::spirit::classic::rule< ScannerT > const & start() const
Definition: ScheduleParserHelper.cpp:692
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::leg_cabin_details
boost::spirit::classic::rule< ScannerT > leg_cabin_details
Definition: ScheduleParserHelper.hpp:296
AIRINV::ScheduleParserHelper::storeOffTime
Definition: ScheduleParserHelper.hpp:117
AIRINV::ScheduleParserHelper::storeFClasses::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:414
AIRINV::ScheduleParserHelper::FlightPeriodParser
Definition: ScheduleParserHelper.hpp:282
AIRINV::ScheduleParserHelper::storeDateRangeStart::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:67
AIRINV::ScheduleParserHelper::storeElapsedTime
Definition: ScheduleParserHelper.hpp:125
stdair
Forward declarations.
Definition: AIRINV_Master_Service.hpp:25
AIRINV::ScheduleParserHelper::storeAirlineCode::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:39
AIRINV::ScheduleParserHelper::storeDateRangeEnd
Definition: ScheduleParserHelper.hpp:61
AIRINV::ScheduleParserHelper::FlightPeriodParser::_flightPeriod
FlightPeriodStruct & _flightPeriod
Definition: ScheduleParserHelper.hpp:307
AIRINV::ScheduleParserHelper::storeFFDisutilityCurveKey::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:401
AIRINV::FlightPeriodFileParser::generateInventories
bool generateInventories()
Definition: ScheduleParserHelper.cpp:730
AIRINV::ScheduleParserHelper::storeDow
Definition: ScheduleParserHelper.hpp:69
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::dow
boost::spirit::classic::rule< ScannerT > dow
Definition: ScheduleParserHelper.hpp:295
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::family_cabin_details
boost::spirit::classic::rule< ScannerT > family_cabin_details
Definition: ScheduleParserHelper.hpp:299
AIRINV::ScheduleParserHelper::storeDateRangeStart
Definition: ScheduleParserHelper.hpp:53
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::segment_cabin_details
boost::spirit::classic::rule< ScannerT > segment_cabin_details
Definition: ScheduleParserHelper.hpp:298
AIRINV::FlightPeriodStruct
Definition: FlightPeriodStruct.hpp:24
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::date
boost::spirit::classic::rule< ScannerT > date
Definition: ScheduleParserHelper.hpp:295
AIRINV::ScheduleParserHelper::storeFRAT5CurveKey::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:387
AIRINV::ScheduleParserHelper::storeSegmentSpecificity::operator()
void operator()(char iChar) const
Definition: ScheduleParserHelper.cpp:286
AIRINV::FlightPeriodFileParser::FlightPeriodFileParser
FlightPeriodFileParser(stdair::BomRoot &ioBomRoot, const stdair::Filename_T &iFilename)
Definition: ScheduleParserHelper.cpp:706
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::leg_details
boost::spirit::classic::rule< ScannerT > leg_details
Definition: ScheduleParserHelper.hpp:296
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::time
boost::spirit::classic::rule< ScannerT > time
Definition: ScheduleParserHelper.hpp:295
AIRINV::ScheduleParserHelper::doEndFlight
Definition: ScheduleParserHelper.hpp:224
AIRINV::ScheduleParserHelper::storeFlightNumber::operator()
void operator()(unsigned int iNumber) const
Definition: ScheduleParserHelper.cpp:56
AIRINV::ScheduleParserHelper::storeLegBoardingPoint::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:122
AIRINV::ScheduleParserHelper::storeFClasses::storeFClasses
storeFClasses(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:409
AIRINV::ScheduleParserHelper::doEndFlight::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:444
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::flight_period
boost::spirit::classic::rule< ScannerT > flight_period
Definition: ScheduleParserHelper.hpp:293
AIRINV::ScheduleParserHelper::storeCapacity
Definition: ScheduleParserHelper.hpp:141
AIRINV::ScheduleParserHelper::ParserSemanticAction::_flightPeriod
FlightPeriodStruct & _flightPeriod
Definition: ScheduleParserHelper.hpp:33
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::leg
boost::spirit::classic::rule< ScannerT > leg
Definition: ScheduleParserHelper.hpp:296
AIRINV::ScheduleParserHelper::storeDateRangeStart::storeDateRangeStart
storeDateRangeStart(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:62
AIRINV_Types.hpp
AIRINV::ScheduleParserHelper::storeSegmentBoardingPoint::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:312
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition
Definition: ScheduleParserHelper.hpp:288
AIRINV::ScheduleParserHelper::storeSegmentOffPoint::storeSegmentOffPoint
storeSegmentOffPoint(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:320
AIRINV::ScheduleParserHelper::storeOperatingAirlineCode::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:167
AIRINV::ScheduleParserHelper::storeClasses
Definition: ScheduleParserHelper.hpp:184
AIRINV::ScheduleParserHelper::storeDow::storeDow
storeDow(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:105
AIRINV::ScheduleParserHelper::FlightPeriodParser::FlightPeriodParser
FlightPeriodParser(stdair::BomRoot &, FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:529
AIRINV::ScheduleParserHelper::storeOperatingFlightNumber
Definition: ScheduleParserHelper.hpp:101
AIRINV::ScheduleParserHelper::storeSegmentCabinCode::storeSegmentCabinCode
storeSegmentCabinCode(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:333
AIRINV::ScheduleParserHelper::storeOperatingAirlineCode
Definition: ScheduleParserHelper.hpp:93
AIRINV::ScheduleParserHelper::storeFFDisutilityCurveKey::storeFFDisutilityCurveKey
storeFFDisutilityCurveKey(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:396
AIRINV::ScheduleParserHelper::storeSegmentOffPoint::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:325
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::generic_segment
boost::spirit::classic::rule< ScannerT > generic_segment
Definition: ScheduleParserHelper.hpp:299
AIRINV
Definition: AIRINV_Master_Service.hpp:38
AIRINV::ScheduleParserHelper::storeOperatingAirlineCode::storeOperatingAirlineCode
storeOperatingAirlineCode(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:162
AIRINV::ScheduleParserHelper::storeOffTime::storeOffTime
storeOffTime(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:208
BasParserTypes.hpp
AIRINV::ScheduleParserHelper::storeBoardingTime::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:195
AIRINV::ScheduleParserHelper::storeFRAT5CurveKey::storeFRAT5CurveKey
storeFRAT5CurveKey(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:382
FlightPeriodStruct.hpp
AIRINV::ScheduleParserHelper::storeLegBoardingPoint::storeLegBoardingPoint
storeLegBoardingPoint(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:117
AIRINV::ScheduleParserHelper::storeFlightNumber
Definition: ScheduleParserHelper.hpp:45
AIRINV::ScheduleParserHelper::storeOperatingFlightNumber::storeOperatingFlightNumber
storeOperatingFlightNumber(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:178
AIRINV::ScheduleParserHelper::storeFFDisutilityCurveKey
Definition: ScheduleParserHelper.hpp:208
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::segment_section
boost::spirit::classic::rule< ScannerT > segment_section
Definition: ScheduleParserHelper.hpp:297
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::leg_key
boost::spirit::classic::rule< ScannerT > leg_key
Definition: ScheduleParserHelper.hpp:296
AIRINV::ScheduleParserHelper::storeSegmentCabinCode::operator()
void operator()(char iChar) const
Definition: ScheduleParserHelper.cpp:338
AIRINV::ScheduleParserHelper::doEndFlight::_bomRoot
stdair::BomRoot & _bomRoot
Definition: ScheduleParserHelper.hpp:230
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::not_to_be_parsed
boost::spirit::classic::rule< ScannerT > not_to_be_parsed
Definition: ScheduleParserHelper.hpp:293
AIRINV::ScheduleParserHelper::storeAirlineCode
Definition: ScheduleParserHelper.hpp:37
AIRINV::ScheduleParserHelper::storeLegOffPoint::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:151
AIRINV::ScheduleParserHelper::storeDateRangeEnd::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:82
AIRINV::ScheduleParserHelper::storeFamilyCode
Definition: ScheduleParserHelper.hpp:192
AIRINV::ScheduleParserHelper::storeLegOffPoint
Definition: ScheduleParserHelper.hpp:85
AIRINV::ScheduleParserHelper::storeSegmentCabinCode
Definition: ScheduleParserHelper.hpp:176
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::definition
definition(FlightPeriodParser const &self)
Definition: ScheduleParserHelper.cpp:538
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::full_family_cabin_details
boost::spirit::classic::rule< ScannerT > full_family_cabin_details
Definition: ScheduleParserHelper.hpp:298
AIRINV::ScheduleParserHelper::storeOffTime::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:213
AIRINV::ScheduleParserHelper::storeFamilyCode::storeFamilyCode
storeFamilyCode(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:369
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::full_segment_cabin_details
boost::spirit::classic::rule< ScannerT > full_segment_cabin_details
Definition: ScheduleParserHelper.hpp:297
AIRINV::ScheduleParserHelper::storeSegmentOffPoint
Definition: ScheduleParserHelper.hpp:168
AIRINV::ScheduleParserHelper::storeDateRangeEnd::storeDateRangeEnd
storeDateRangeEnd(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:77
AIRINV::ScheduleParserHelper::FlightPeriodParser::definition::flight_period_end
boost::spirit::classic::rule< ScannerT > flight_period_end
Definition: ScheduleParserHelper.hpp:293
AIRINV::ScheduleParserHelper::storeLegBoardingPoint
Definition: ScheduleParserHelper.hpp:77
AIRINV::ScheduleParserHelper::storeCapacity::storeCapacity
storeCapacity(FlightPeriodStruct &)
Definition: ScheduleParserHelper.cpp:262
AIRINV::ScheduleParserHelper::storeFRAT5CurveKey
Definition: ScheduleParserHelper.hpp:200
AIRINV::ScheduleParserHelper::storeClasses::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: ScheduleParserHelper.cpp:349