mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 22:09:19 +02:00
added support for using multiple and/or nested include parameters in one token
This commit is contained in:
13
parser.cpp
13
parser.cpp
@@ -153,21 +153,18 @@ std::string cParser::readToken(bool ToLower, const char *Break)
|
|||||||
if (mIncludeParser)
|
if (mIncludeParser)
|
||||||
{
|
{
|
||||||
token = mIncludeParser->readToken(ToLower, Break);
|
token = mIncludeParser->readToken(ToLower, Break);
|
||||||
if (!token.empty())
|
if (!token.empty()) {
|
||||||
{
|
|
||||||
pos = token.find("(p");
|
while( ( pos = token.find( "(p" ) ) != std::string::npos ) {
|
||||||
// check if the token is a parameter which should be replaced with stored true value
|
// check if the token is a parameter which should be replaced with stored true value
|
||||||
if (pos != std::string::npos) //!=npos to znalezione
|
auto const parameter { token.substr( pos + 2, token.find( ")", pos ) - ( pos + 2 ) ) }; // numer parametru
|
||||||
{
|
|
||||||
std::string parameter =
|
|
||||||
token.substr(pos + 2, token.find(")", pos) - pos + 2); // numer parametru
|
|
||||||
token.erase(pos, token.find(")", pos) - pos + 1); // najpierw usunięcie "(pN)"
|
token.erase(pos, token.find(")", pos) - pos + 1); // najpierw usunięcie "(pN)"
|
||||||
size_t nr = atoi(parameter.c_str()) - 1;
|
size_t nr = atoi(parameter.c_str()) - 1;
|
||||||
if (nr < parameters.size())
|
if (nr < parameters.size())
|
||||||
{
|
{
|
||||||
token.insert(pos, parameters.at(nr)); // wklejenie wartości parametru
|
token.insert(pos, parameters.at(nr)); // wklejenie wartości parametru
|
||||||
if (ToLower)
|
if (ToLower)
|
||||||
for (; pos < token.length(); ++pos)
|
for (; pos < parameters.at( nr ).size(); ++pos)
|
||||||
token[pos] = tolower(token[pos]);
|
token[pos] = tolower(token[pos]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user