diff options
| author | 2020-06-28 15:00:19 +0200 | |
|---|---|---|
| committer | 2020-06-28 15:00:19 +0200 | |
| commit | c5ea6210eedf433ec247e0f6b439a58316f1d11a (patch) | |
| tree | c54d47a58a5aa428e64283f65ad13fcee3554e35 /cli | |
| parent | 6ca0d07b82c79eeb6b48463e1576ec4aec41ac31 (diff) | |
| download | OneRoll-c5ea6210eedf433ec247e0f6b439a58316f1d11a.tar.gz OneRoll-c5ea6210eedf433ec247e0f6b439a58316f1d11a.zip | |
Management of string result inside string result.
Diffstat (limited to 'cli')
| -rw-r--r-- | cli/main.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/cli/main.cpp b/cli/main.cpp index 0b4b2bc..3de1d26 100644 --- a/cli/main.cpp +++ b/cli/main.cpp @@ -26,6 +26,7 @@ #include <QJsonArray> #include <QJsonDocument> #include <QJsonObject> +#include <QRegularExpression> #include <QStringList> #include <QTextStream> @@ -365,19 +366,28 @@ int startDiceParsing(QStringList& cmds, QString& treeFile, bool withColor, EXPOR if(parser.hasStringResult()) { bool ok; - QStringList allStringlist= parser.getAllStringResult(ok); - QString stringResult= allStringlist.join(" ; "); + QStringList allStringlist= parser.allFirstResultAsString(ok); + + QStringList resultWithPlaceHolder; + std::for_each(allStringlist.begin(), allStringlist.end(), [&resultWithPlaceHolder](const QString& sub) { + QRegularExpression ex("%[1-3]?|\\$[1-9]+|@[1-9]+"); + if(sub.contains(ex)) + resultWithPlaceHolder.append(sub); + }); + auto stringResult + = resultWithPlaceHolder.isEmpty() ? allStringlist.join(" ; ") : resultWithPlaceHolder.join(" ; "); stringResult.replace("%1", scalarText); stringResult.replace("%2", listOfDiceResult.join(",").trimmed()); stringResult.replace("%3", lastScalarText); stringResult.replace("\\n", "\n"); - // qDebug() << "before replace variable: " << lastScalarText << scalarText << listOfDiceResult - // << listFull.size(); - stringResult= ParsingToolBox::replaceVariableToValue(stringResult, strLst); + QMap<Dice::ERROR_CODE, QString> errorMap; + stringResult= ParsingToolBox::replaceVariableToValue(stringResult, allStringlist, errorMap); stringResult= ParsingToolBox::replacePlaceHolderToValue(stringResult, listFull); + error= errorMap.values().join(", "); + int i= strLst.size(); for(auto it= strLst.rbegin(); it != strLst.rend(); ++it) { |