AirRAC Logo  1.00.0
C++ Simulated Revenue Accounting (RAC) System Library
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
YieldParserHelper.hpp
Go to the documentation of this file.
1 #ifndef __AIRRAC_CMD_YIELDPARSERHELPER_HPP
2 #define __AIRRAC_CMD_YIELDPARSERHELPER_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <string>
9 // Boost
10 #include <boost/spirit/include/qi.hpp>
11 // StdAir
12 #include <stdair/command/CmdAbstract.hpp>
13 // Airrac
14 #include <airrac/AIRRAC_Types.hpp>
16 
17 // Forward declarations
18 namespace stdair {
19  class BomRoot;
20 }
21 
22 namespace AIRRAC {
23 
24  namespace YieldParserHelper {
25 
26  // ///////////////////////////////////////////////////////////////////
27  // Semantic actions
28  // ///////////////////////////////////////////////////////////////////
35  };
36 
42  void operator() (unsigned int,
43  boost::spirit::qi::unused_type,
44  boost::spirit::qi::unused_type) const;
45  };
46 
52  void operator() (std::vector<char>,
53  boost::spirit::qi::unused_type,
54  boost::spirit::qi::unused_type) const;
55  };
56 
62  void operator() (std::vector<char>,
63  boost::spirit::qi::unused_type,
64  boost::spirit::qi::unused_type) const;
65  };
66 
72  void operator() (std::vector<char>,
73  boost::spirit::qi::unused_type,
74  boost::spirit::qi::unused_type) const;
75  };
76 
82  void operator() (boost::spirit::qi::unused_type,
83  boost::spirit::qi::unused_type,
84  boost::spirit::qi::unused_type) const;
85  };
86 
92  void operator() (boost::spirit::qi::unused_type,
93  boost::spirit::qi::unused_type,
94  boost::spirit::qi::unused_type) const;
95  };
96 
102  void operator() (boost::spirit::qi::unused_type,
103  boost::spirit::qi::unused_type,
104  boost::spirit::qi::unused_type) const;
105  };
106 
112  void operator() (boost::spirit::qi::unused_type,
113  boost::spirit::qi::unused_type,
114  boost::spirit::qi::unused_type) const;
115  };
116 
118  struct storePOS : public ParserSemanticAction {
122  void operator() (std::vector<char>,
123  boost::spirit::qi::unused_type,
124  boost::spirit::qi::unused_type) const;
125  };
126 
132  void operator() (char,
133  boost::spirit::qi::unused_type,
134  boost::spirit::qi::unused_type) const;
135  };
136 
142  void operator() (std::vector<char>,
143  boost::spirit::qi::unused_type,
144  boost::spirit::qi::unused_type) const;
145  };
146 
152  void operator() (double,
153  boost::spirit::qi::unused_type,
154  boost::spirit::qi::unused_type) const;
155  };
156 
162  void operator() (std::vector<char>,
163  boost::spirit::qi::unused_type,
164  boost::spirit::qi::unused_type) const;
165  };
166 
172  void operator() (std::vector<char>,
173  boost::spirit::qi::unused_type,
174  boost::spirit::qi::unused_type) const;
175  };
176 
180  doEndYield (stdair::BomRoot&, YieldRuleStruct&);
182  void operator() (boost::spirit::qi::unused_type,
183  boost::spirit::qi::unused_type,
184  boost::spirit::qi::unused_type) const;
186  stdair::BomRoot& _bomRoot;
187  };
188 
189  }
190 
192  //
193  // Entry class for the file parser
194  //
196 
202  class YieldFileParser : public stdair::CmdAbstract {
203  public:
205  YieldFileParser (stdair::BomRoot&,
206  const stdair::Filename_T& iYieldInputFilename);
207 
209  void generateYieldStore ();
210 
211  private:
213  void init();
214 
215  private:
216 
217  // Attributes
219  stdair::Filename_T _filename;
220 
222  stdair::BomRoot& _bomRoot;
223 
225  YieldRuleStruct _yieldRule;
226  };
227 
228 }
229 #endif // __AIRRAC_CMD_YIELDPARSERHELPER_HPP