16 #include <vlutil/vlExceptions.h>
18 #include <boost/ptr_container/ptr_map.hpp>
19 #include <tbb/recursive_mutex.h>
21 namespace MAKVRinTerra
23 class DtAttributeConfigParser;
34 static AttributeType stringToType(
const std::string& str);
38 boost::optional<DtFeature::Attribute> evaluate()
const;
41 boost::optional<DtFeature::Attribute> evaluate(
const DtFeature& feature)
const;
43 void print(std::ostream&)
const;
68 virtual bool readAttributeConfig(
const std::string& filename,
const DtQuery& schema=
DtQuery());
74 virtual DtQuery findQuery(std::string)
const;
79 virtual void print(std::ostream&)
const;
81 virtual std::string pprintQueries()
const;
82 virtual std::string pprintTransforms()
const;
93 virtual void resolveNamedQueries();
110 bool existsUnresolved,
const DtException* previousException = 0) throw()
112 , queryName(missingQueryName)
113 , queryExistsUnresolved(existsUnresolved)
120 std::string queryName;
129 virtual DtQuery buildQuery(
const std::vector<std::string>& queryToks);
133 virtual DtQuery buildQueryNoThrow(std::string line);
147 virtual std::vector<std::string> extractQuery(std::vector<std::string>::iterator& itr,
148 const std::vector<std::string>& tokList);
154 virtual DtQuery buildQueryAndBlock(
const std::vector<std::string>& queryToks,
155 std::vector<std::string>::const_iterator& itr);
160 virtual DtQuery buildFirstQuery(
const std::vector<std::string>& queryToks,
161 std::vector<std::string>::const_iterator& itr);
167 virtual DtQuery queryInsideParen(
const std::vector<std::string>& parenToks,
168 std::vector<std::string>::const_iterator& itr);