AirInv Logo  1.00.5
C++ Simulated Airline Inventory Management System Library
FFDisutilityParserHelper.hpp
Go to the documentation of this file.
1 #ifndef __AIRINV_CMD_FFDISUTILITYPARSERHELPER_HPP
2 #define __AIRINV_CMD_FFDISUTILITYPARSERHELPER_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 FFDisutilityParserHelper {
24 
25  // ///////////////////////////////////////////////////////////////////
26  // Semantic actions
27  // ///////////////////////////////////////////////////////////////////
34  };
35 
41  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
42  };
43 
45  struct storeDTD : public ParserSemanticAction {
49  void operator() (int iDTD) const;
50  };
51 
57  void operator() (double iReal) const;
58  };
59 
61  struct doEndCurve : public ParserSemanticAction {
63  doEndCurve (stdair::BomRoot&, FFDisutilityStruct&);
65  void operator() (iterator_t iStr, iterator_t iStrEnd) const;
67  stdair::BomRoot& _bomRoot;
68  };
69 
71  //
72  // (Boost Spirit) Grammar Definition
73  //
75 
90  public boost::spirit::classic::grammar<FFDisutilityParser> {
91 
92  FFDisutilityParser (stdair::BomRoot&, FFDisutilityStruct&);
93 
94  template <typename ScannerT>
95  struct definition {
96  definition (FFDisutilityParser const& self);
97 
98  // Instantiation of rules
99  boost::spirit::classic::rule<ScannerT> curve_list,
101 
103  boost::spirit::classic::rule<ScannerT> const& start() const;
104  };
105 
106  // Parser Context
107  stdair::BomRoot& _bomRoot;
109  };
110  }
111 
116  //
118  // Entry class for the file parser
119  //
121 
126  class FFDisutilityFileParser : public stdair::CmdAbstract {
127  public:
129  FFDisutilityFileParser (stdair::BomRoot& ioBomRoot,
130  const stdair::Filename_T& iFilename);
131 
134 
135  private:
137  void init();
138 
139  private:
140  // Attributes
142  stdair::Filename_T _filename;
143 
145  iterator_t _startIterator;
146 
148  iterator_t _endIterator;
149 
151  stdair::BomRoot& _bomRoot;
152 
154  FFDisutilityStruct _ffDisutility;
155  };
156 
157 }
158 #endif // __AIRINV_CMD_FFDISUTILITYPARSERHELPER_HPP
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::definition::key
boost::spirit::classic::rule< ScannerT > key
Definition: FFDisutilityParserHelper.hpp:100
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::definition::map
boost::spirit::classic::rule< ScannerT > map
Definition: FFDisutilityParserHelper.hpp:100
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::definition::value_pair
boost::spirit::classic::rule< ScannerT > value_pair
Definition: FFDisutilityParserHelper.hpp:100
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::_bomRoot
stdair::BomRoot & _bomRoot
Definition: FFDisutilityParserHelper.hpp:107
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::definition::definition
definition(FFDisutilityParser const &self)
Definition: FFDisutilityParserHelper.cpp:123
AIRINV::FFDisutilityStruct
Definition: FFDisutilityStruct.hpp:15
AIRINV::FFDisutilityParserHelper::ParserSemanticAction::_ffDisutility
FFDisutilityStruct & _ffDisutility
Definition: FFDisutilityParserHelper.hpp:33
AIRINV::FFDisutilityParserHelper::doEndCurve
Definition: FFDisutilityParserHelper.hpp:61
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::_ffDisutility
FFDisutilityStruct & _ffDisutility
Definition: FFDisutilityParserHelper.hpp:108
AIRINV::iterator_t
boost::spirit::classic::file_iterator< char_t > iterator_t
Definition: BasParserTypes.hpp:35
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::definition::curve
boost::spirit::classic::rule< ScannerT > curve
Definition: FFDisutilityParserHelper.hpp:100
AIRINV::FFDisutilityParserHelper::doEndCurve::_bomRoot
stdair::BomRoot & _bomRoot
Definition: FFDisutilityParserHelper.hpp:67
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::definition
Definition: FFDisutilityParserHelper.hpp:95
FFDisutilityStruct.hpp
stdair
Forward declarations.
Definition: AIRINV_Master_Service.hpp:25
AIRINV::FFDisutilityParserHelper::FFDisutilityParser
Definition: FFDisutilityParserHelper.hpp:90
AIRINV::FFDisutilityFileParser
Definition: FFDisutilityParserHelper.hpp:126
AIRINV_Types.hpp
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::definition::curve_list
boost::spirit::classic::rule< ScannerT > curve_list
Definition: FFDisutilityParserHelper.hpp:99
AIRINV::FFDisutilityParserHelper::storeDTD::storeDTD
storeDTD(FFDisutilityStruct &)
Definition: FFDisutilityParserHelper.cpp:45
AIRINV::FFDisutilityParserHelper::doEndCurve::doEndCurve
doEndCurve(stdair::BomRoot &, FFDisutilityStruct &)
Definition: FFDisutilityParserHelper.cpp:79
AIRINV::FFDisutilityParserHelper::storeCurveKey
Definition: FFDisutilityParserHelper.hpp:37
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::FFDisutilityParser
FFDisutilityParser(stdair::BomRoot &, FFDisutilityStruct &)
Definition: FFDisutilityParserHelper.cpp:114
AIRINV
Definition: AIRINV_Master_Service.hpp:38
AIRINV::FFDisutilityFileParser::generateFFDisutilityCurves
bool generateFFDisutilityCurves()
Definition: FFDisutilityParserHelper.cpp:201
BasParserTypes.hpp
AIRINV::FFDisutilityParserHelper::storeFFDisutilityValue
Definition: FFDisutilityParserHelper.hpp:53
AIRINV::FFDisutilityParserHelper::storeCurveKey::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: FFDisutilityParserHelper.cpp:38
AIRINV::FFDisutilityParserHelper::storeDTD::operator()
void operator()(int iDTD) const
Definition: FFDisutilityParserHelper.cpp:50
AIRINV::FFDisutilityFileParser::FFDisutilityFileParser
FFDisutilityFileParser(stdair::BomRoot &ioBomRoot, const stdair::Filename_T &iFilename)
Definition: FFDisutilityParserHelper.cpp:177
AIRINV::FFDisutilityParserHelper::storeFFDisutilityValue::operator()
void operator()(double iReal) const
Definition: FFDisutilityParserHelper.cpp:61
AIRINV::FFDisutilityParserHelper::ParserSemanticAction
Definition: FFDisutilityParserHelper.hpp:29
AIRINV::FFDisutilityParserHelper::storeCurveKey::storeCurveKey
storeCurveKey(FFDisutilityStruct &)
Definition: FFDisutilityParserHelper.cpp:33
AIRINV::FFDisutilityParserHelper::ParserSemanticAction::ParserSemanticAction
ParserSemanticAction(FFDisutilityStruct &)
Definition: FFDisutilityParserHelper.cpp:27
AIRINV::FFDisutilityParserHelper::storeFFDisutilityValue::storeFFDisutilityValue
storeFFDisutilityValue(FFDisutilityStruct &)
Definition: FFDisutilityParserHelper.cpp:56
AIRINV::FFDisutilityParserHelper::storeDTD
Definition: FFDisutilityParserHelper.hpp:45
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::definition::curve_end
boost::spirit::classic::rule< ScannerT > curve_end
Definition: FFDisutilityParserHelper.hpp:100
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::definition::start
boost::spirit::classic::rule< ScannerT > const & start() const
Definition: FFDisutilityParserHelper.cpp:163
AIRINV::FFDisutilityParserHelper::FFDisutilityParser::definition::not_to_be_parsed
boost::spirit::classic::rule< ScannerT > not_to_be_parsed
Definition: FFDisutilityParserHelper.hpp:100
AIRINV::FFDisutilityParserHelper::doEndCurve::operator()
void operator()(iterator_t iStr, iterator_t iStrEnd) const
Definition: FFDisutilityParserHelper.cpp:87