diff --git a/src/language/utils/AffectationRegisterForString.cpp b/src/language/utils/AffectationRegisterForString.cpp index 37446e243d6fcb14fcd6c3e97a845d17b831c2e6..7946aeb45fc72e7569e5d8299e184c220baa7106 100644 --- a/src/language/utils/AffectationRegisterForString.cpp +++ b/src/language/utils/AffectationRegisterForString.cpp @@ -39,6 +39,18 @@ AffectationRegisterForString::_register_eq_op() language::eq_op>(string_t, ASTNodeDataType::build<ASTNodeDataType::vector_t>(3), std::make_shared<AffectationProcessorBuilder<language::eq_op, std::string, TinyVector<3>>>()); + repository.addAffectation< + language::eq_op>(string_t, ASTNodeDataType::build<ASTNodeDataType::matrix_t>(1, 1), + std::make_shared<AffectationProcessorBuilder<language::eq_op, std::string, TinyMatrix<1>>>()); + + repository.addAffectation< + language::eq_op>(string_t, ASTNodeDataType::build<ASTNodeDataType::matrix_t>(2, 2), + std::make_shared<AffectationProcessorBuilder<language::eq_op, std::string, TinyMatrix<2>>>()); + + repository.addAffectation< + language::eq_op>(string_t, ASTNodeDataType::build<ASTNodeDataType::matrix_t>(3, 3), + std::make_shared<AffectationProcessorBuilder<language::eq_op, std::string, TinyMatrix<3>>>()); + repository.addAffectation<language::eq_op>(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(string_t), ASTNodeDataType::build<ASTNodeDataType::bool_t>(), std::make_shared<AffectationToTupleProcessorBuilder<std::string>>()); @@ -66,6 +78,18 @@ AffectationRegisterForString::_register_eq_op() repository.addAffectation<language::eq_op>(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(string_t), ASTNodeDataType::build<ASTNodeDataType::vector_t>(3), std::make_shared<AffectationToTupleProcessorBuilder<std::string>>()); + + repository.addAffectation<language::eq_op>(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(string_t), + ASTNodeDataType::build<ASTNodeDataType::matrix_t>(1, 1), + std::make_shared<AffectationToTupleProcessorBuilder<std::string>>()); + + repository.addAffectation<language::eq_op>(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(string_t), + ASTNodeDataType::build<ASTNodeDataType::matrix_t>(2, 2), + std::make_shared<AffectationToTupleProcessorBuilder<std::string>>()); + + repository.addAffectation<language::eq_op>(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(string_t), + ASTNodeDataType::build<ASTNodeDataType::matrix_t>(3, 3), + std::make_shared<AffectationToTupleProcessorBuilder<std::string>>()); } void @@ -107,29 +131,17 @@ AffectationRegisterForString::_register_pluseq_op() std::make_shared<AffectationProcessorBuilder< language::pluseq_op, std::string, TinyVector<3>>>()); - // this->_addAffectation("string += string", - // std::make_shared<AffectationProcessorBuilder<language::pluseq_op, std::string, - // std::string>>()); - // this->_addAffectation("string += B", - // std::make_shared<AffectationProcessorBuilder<language::pluseq_op, std::string, bool>>()); - // this->_addAffectation("string += N", - // std::make_shared<AffectationProcessorBuilder<language::pluseq_op, std::string, uint64_t>>()); - // this->_addAffectation("string += Z", - // std::make_shared<AffectationProcessorBuilder<language::pluseq_op, std::string, int64_t>>()); - // this->_addAffectation("string += R", - // std::make_shared<AffectationProcessorBuilder<language::pluseq_op, std::string, double>>()); - // this - // ->_addAffectation("string += R^1", - // std::make_shared<AffectationProcessorBuilder<language::pluseq_op, std::string, - // TinyVector<1>>>()); - // this - // ->_addAffectation("string += R^2", - // std::make_shared<AffectationProcessorBuilder<language::pluseq_op, std::string, - // TinyVector<2>>>()); - // this - // ->_addAffectation("string += R^3", - // std::make_shared<AffectationProcessorBuilder<language::pluseq_op, std::string, - // TinyVector<3>>>()); + repository.addAffectation<language::pluseq_op>(string_t, ASTNodeDataType::build<ASTNodeDataType::matrix_t>(1, 1), + std::make_shared<AffectationProcessorBuilder< + language::pluseq_op, std::string, TinyMatrix<1>>>()); + + repository.addAffectation<language::pluseq_op>(string_t, ASTNodeDataType::build<ASTNodeDataType::matrix_t>(2, 2), + std::make_shared<AffectationProcessorBuilder< + language::pluseq_op, std::string, TinyMatrix<2>>>()); + + repository.addAffectation<language::pluseq_op>(string_t, ASTNodeDataType::build<ASTNodeDataType::matrix_t>(3, 3), + std::make_shared<AffectationProcessorBuilder< + language::pluseq_op, std::string, TinyMatrix<3>>>()); } AffectationRegisterForString::AffectationRegisterForString() diff --git a/src/language/utils/BinaryOperatorRegisterForString.cpp b/src/language/utils/BinaryOperatorRegisterForString.cpp index 1323e21ea0cd17cca712a286c6cf4192447e88e4..0e89cbe00502938d817405c3f3f3d6d991f0433e 100644 --- a/src/language/utils/BinaryOperatorRegisterForString.cpp +++ b/src/language/utils/BinaryOperatorRegisterForString.cpp @@ -36,5 +36,8 @@ BinaryOperatorRegisterForString::BinaryOperatorRegisterForString() this->_register_concat<TinyVector<1>>(); this->_register_concat<TinyVector<2>>(); this->_register_concat<TinyVector<3>>(); + this->_register_concat<TinyMatrix<1>>(); + this->_register_concat<TinyMatrix<2>>(); + this->_register_concat<TinyMatrix<3>>(); this->_register_concat<std::string>(); }