Loading src/Ainur/AinurState.h +8 −22 Original line number Diff line number Diff line Loading @@ -32,17 +32,10 @@ class AinurState { {} template <typename A, typename ContextType> typename EnableIf<TypesEqual<A,T>::True, void>::Type operator()(A& attr, void operator()(A& attr, ContextType&, bool&) const; template <typename A, typename ContextType> typename EnableIf<!TypesEqual<A,T>::True, void>::Type operator()(A& attr, ContextType& context, bool& hit) const; private: String name_; Loading @@ -57,14 +50,7 @@ class AinurState { {} template <typename A, typename ContextType> typename EnableIf<!TypesEqual<std::vector<std::vector<T> >, A>::True,void>::Type operator()(A& attr, ContextType&, bool&) const; template <typename A, typename ContextType> typename EnableIf<TypesEqual<std::vector<std::vector<T> >, A>::True,void>::Type operator()(A& attr, void operator()(A& attr, ContextType&, bool&) const; Loading src/Ainur/AinurState1.cpp +7 −49 Original line number Diff line number Diff line Loading @@ -96,8 +96,7 @@ void AinurState::assign(String k, String v) template <typename T> template <typename A, typename ContextType> typename EnableIf<!TypesEqual<std::vector<std::vector<T> >, A>::True,void>::Type AinurState::ActionMatrix<T>::operator()(A& attr, void AinurState::ActionMatrix<T>::operator()(A& attr, ContextType&, bool&) const { Loading @@ -113,51 +112,11 @@ AinurState::ActionMatrix<T>::operator()(A& attr, } } template <typename T> template <typename A, typename ContextType> typename EnableIf<TypesEqual<std::vector<std::vector<T> >, A>::True,void>::Type AinurState::ActionMatrix<T>::operator()(A& attr, ContextType&, bool&) const { SizeType rows = attr.size(); if (rows == 0) return; SizeType cols = attr[0].size(); t_.resize(rows, cols); for (SizeType i = 0; i < rows; ++i) { if (attr[i].size() != cols) err("Ainur: Problem reading matrix\n"); for (SizeType j = 0; j < cols; ++j) t_(i, j) = attr[i][j]; } } //--------- template <typename T> template <typename A, typename ContextType> typename EnableIf<TypesEqual<A,T>::True,void>::Type AinurState::Action<T>::operator()(A& attr, ContextType&, bool&) const { if (name_ == "elipsis") { SizeType total = t_.size(); if (total == 0) err("Elipsis cannot be used for this vector, because size is unknown\n"); for (SizeType i = 0; i < total; ++i) t_[i] = attr; return; } t_.push_back(attr); } template <typename T> template <typename A, typename ContextType> typename EnableIf<!TypesEqual<A,T>::True, void>::Type AinurState::Action<T>::operator()(A& attr, void AinurState::Action<T>::operator()(A& attr, ContextType&, bool&) const { Loading Loading @@ -240,11 +199,10 @@ void AinurState::convertInternal(std::vector<T>& t, qi::rule<IteratorType, VectorStringType(), qi::space_type> ruRows = ruleRows(); Action<T> actionRows("rows", t); //Action<T> actionElipsis("elipsis", t); bool r = qi::phrase_parse(it, value.end(), ruRows [actionRows],// | ruElipsis[actionElipsis], ruRows [actionRows], qi::space); //check if we have a match Loading Loading
src/Ainur/AinurState.h +8 −22 Original line number Diff line number Diff line Loading @@ -32,17 +32,10 @@ class AinurState { {} template <typename A, typename ContextType> typename EnableIf<TypesEqual<A,T>::True, void>::Type operator()(A& attr, void operator()(A& attr, ContextType&, bool&) const; template <typename A, typename ContextType> typename EnableIf<!TypesEqual<A,T>::True, void>::Type operator()(A& attr, ContextType& context, bool& hit) const; private: String name_; Loading @@ -57,14 +50,7 @@ class AinurState { {} template <typename A, typename ContextType> typename EnableIf<!TypesEqual<std::vector<std::vector<T> >, A>::True,void>::Type operator()(A& attr, ContextType&, bool&) const; template <typename A, typename ContextType> typename EnableIf<TypesEqual<std::vector<std::vector<T> >, A>::True,void>::Type operator()(A& attr, void operator()(A& attr, ContextType&, bool&) const; Loading
src/Ainur/AinurState1.cpp +7 −49 Original line number Diff line number Diff line Loading @@ -96,8 +96,7 @@ void AinurState::assign(String k, String v) template <typename T> template <typename A, typename ContextType> typename EnableIf<!TypesEqual<std::vector<std::vector<T> >, A>::True,void>::Type AinurState::ActionMatrix<T>::operator()(A& attr, void AinurState::ActionMatrix<T>::operator()(A& attr, ContextType&, bool&) const { Loading @@ -113,51 +112,11 @@ AinurState::ActionMatrix<T>::operator()(A& attr, } } template <typename T> template <typename A, typename ContextType> typename EnableIf<TypesEqual<std::vector<std::vector<T> >, A>::True,void>::Type AinurState::ActionMatrix<T>::operator()(A& attr, ContextType&, bool&) const { SizeType rows = attr.size(); if (rows == 0) return; SizeType cols = attr[0].size(); t_.resize(rows, cols); for (SizeType i = 0; i < rows; ++i) { if (attr[i].size() != cols) err("Ainur: Problem reading matrix\n"); for (SizeType j = 0; j < cols; ++j) t_(i, j) = attr[i][j]; } } //--------- template <typename T> template <typename A, typename ContextType> typename EnableIf<TypesEqual<A,T>::True,void>::Type AinurState::Action<T>::operator()(A& attr, ContextType&, bool&) const { if (name_ == "elipsis") { SizeType total = t_.size(); if (total == 0) err("Elipsis cannot be used for this vector, because size is unknown\n"); for (SizeType i = 0; i < total; ++i) t_[i] = attr; return; } t_.push_back(attr); } template <typename T> template <typename A, typename ContextType> typename EnableIf<!TypesEqual<A,T>::True, void>::Type AinurState::Action<T>::operator()(A& attr, void AinurState::Action<T>::operator()(A& attr, ContextType&, bool&) const { Loading Loading @@ -240,11 +199,10 @@ void AinurState::convertInternal(std::vector<T>& t, qi::rule<IteratorType, VectorStringType(), qi::space_type> ruRows = ruleRows(); Action<T> actionRows("rows", t); //Action<T> actionElipsis("elipsis", t); bool r = qi::phrase_parse(it, value.end(), ruRows [actionRows],// | ruElipsis[actionElipsis], ruRows [actionRows], qi::space); //check if we have a match Loading