FMT 1.2.0
Forest management tools for forest planning
Loading...
Searching...
No Matches
FMTActionParser.h
Go to the documentation of this file.
1/*
2Copyright (c) 2019 Gouvernement du Québec
3
4SPDX-License-Identifier: LiLiQ-R-1.1
5License-Filename: LICENSES/EN/LiLiQ-R11unicode.txt
6*/
7
8#ifndef FMTactionparser_Hm_included
9#define FMTactionparser_Hm_included
10#include "FMTParser.h"
11#include "FMTutility.h"
12#include <boost/regex.hpp>
13#include <vector>
14#include <map>
15
16namespace Core
17{
18 class FMTConstants;
19 class FMTTheme;
20 class FMTAction;
21 class FMTYields;
22 class FMTSerie;
23}
24
25
26namespace Parser
27{
28// DocString: FMTActionParser
33 {
34 public:
35 // DocString: FMTActionParser()
40 // DocString: ~FMTActionParser()
44 ~FMTActionParser() = default;
45 // DocString: FMTActionParser(const FMTActionParser&)
50 FMTActionParser(const FMTActionParser& rhs)=default;
51 // DocString: FMTActionParser::operator
57 FMTActionParser& operator = (const FMTActionParser& rhs)=default;
58 // DocString: FMTActionParser::read
67 std::vector<Core::FMTAction>read(const std::vector<Core::FMTTheme>& themes,
68 const Core::FMTYields& yields,const Core::FMTConstants& constants,
69 const std::string& location);
70 // DocString: FMTActionParser::write
77 void write(const std::vector<Core::FMTAction>& actions,
78 const std::string& location,bool withgcbmagg = false) const;
79 // DocString: FMTActionParser::getactionsidsofmodelyields
85 std::vector<Core::FMTAction>getGCBMactionsaggregate(const std::vector<Core::FMTAction>& actions) const;
86 private:
87 // DocString: FMTActionParser::m_rxsection
89 const static boost::regex m_rxsection;
90 // DocString: FMTActionParser::m_rxoperator
92 const static boost::regex m_rxoperator;
93 // DocString: FMTActionParser::m_SERIES_MATCH
95 const static boost::regex m_SERIES_MATCH;
96 // DocString: FMTActionParser::_getSerie
103 Core::FMTSerie _getSerie(const std::string& p_line,
104 const std::vector<Core::FMTAction>& p_actions) const;
105 // DocString: FMTActionParser::_sameActionAs
112 std::vector<Core::FMTAction*> _sameActionAs(const std::string& all_set, std::vector<Core::FMTAction>& actions) const;
113 // DocString: FMTActionParser::_getBounds
122 std::string _getBounds(std::string& line, Core::FMTSpec& spec, const Core::FMTConstants& constants, const Core::FMTYields& ylds);
123 // DocString: FMTActionParser::_valAgg
130 std::map<std::string, std::vector<std::string>>_valAgg(std::vector<Core::FMTAction>& actions, std::map<std::string, std::vector<std::string>>& aggregates);
131 };
132
133}
134
135#endif // FMTactionparser_Hm_included
#define FMTEXPORT
Definition: FMTutility.h:125
Class holding the constants defined in the constants section of a model, used by the parsers.
Definition: FMTConstants.h:28
Class keeping the information of a serie of actions in a given order.
Definition: FMTSerie.h:23
FMTList containing multiple yield handlers as seen in the yield section, holding the information rela...
Definition: FMTYields.h:44
Parser reading and writing actions from or into action files, also used by the model parser.
Definition: FMTActionParser.h:33
~FMTActionParser()=default
Default destructor for FMTActionParser.
std::vector< Core::FMTAction > read(const std::vector< Core::FMTTheme > &themes, const Core::FMTYields &yields, const Core::FMTConstants &constants, const std::string &location)
Read actions from an action file.
void write(const std::vector< Core::FMTAction > &actions, const std::string &location, bool withgcbmagg=false) const
Write actions to an action file.
FMTActionParser()
Default constructor for FMTActionParser.
FMTActionParser(const FMTActionParser &rhs)=default
Copy constructor for FMTActionParser.
std::vector< Core::FMTAction > getGCBMactionsaggregate(const std::vector< Core::FMTAction > &actions) const
Return the GCBM action aggregates corresponding to the actions.
Main parent class of all the parsers in FMT.
Definition: FMTParser.h:72
The Core namespace provides classes for simulating stands/strata growth/harvest through time.
Definition: FMTAction.h:34
Namespace handling all FMT's parsers. Everything related to I/O should be located in this namespace.
Definition: FMTActionParser.h:27