#include "MBDynVariables.h" #include "SymbolicParser.h" #include "BasicUserFunction.h" using namespace MbD; void MbD::MBDynVariables::initialize() { } void MbD::MBDynVariables::parseMBDyn(std::vector& lines) { variables = std::make_shared>(); std::string str, variable; double doubleValue; std::vector tokens{"set:", "real"}; while (true) { auto it = findLineWith(lines, tokens); if (it != lines.end()) { std::istringstream iss(*it); iss >> str; iss >> str; iss >> variable; iss >> str; iss >> str; auto parser = CREATE::With(); parser->variables = variables; auto userFunc = CREATE::With(str, 1.0); parser->parseUserFunction(userFunc); auto sym = parser->stack->top(); variables->insert(std::make_pair(variable, sym)); lines.erase(it); } else { break; } } }