diff options
| -rw-r--r-- | README.md | 4 | ||||
| -rw-r--r-- | parsingtoolbox.cpp | 10 | ||||
| -rw-r--r-- | tests/dice/tst_dice.cpp | 6 |
3 files changed, 8 insertions, 12 deletions
@@ -108,8 +108,8 @@ Option =: Keep | Split | Group Range =: OpenList Number RangeSeparator Number CloseList -RangeSeparator =: - -ScalarOperator =: [x,-,*,x,/] +RangeSeparator =: .. +ScalarOperator =: [x,-,*,x,/,**] number =: [-] [0-9]+ | constantValue OpenVaribale=: ${ CloseVariable=: } diff --git a/parsingtoolbox.cpp b/parsingtoolbox.cpp index c4cbf6f..6ad1c62 100644 --- a/parsingtoolbox.cpp +++ b/parsingtoolbox.cpp @@ -60,7 +60,7 @@ ParsingToolBox::ParsingToolBox() m_arithmeticOperation->insert(QStringLiteral("|"), Die::INTEGER_DIVIDE); m_arithmeticOperation->insert(QStringLiteral("/"), Die::DIVIDE); m_arithmeticOperation->insert(QStringLiteral("÷"), Die::DIVIDE); - m_arithmeticOperation->insert(QStringLiteral("^"), Die::POW); + m_arithmeticOperation->insert(QStringLiteral("**"), Die::POW); } ParsingToolBox::ParsingToolBox(const ParsingToolBox&) {} @@ -220,9 +220,9 @@ Validator* ParsingToolBox::readValidator(QString& str, bool hasSquare) else if(readOperand(str, operandNode)) { bool isRange= false; - if(str.startsWith("-") && hasSquare) + if(str.startsWith("..") && hasSquare) { - str= str.remove(0, 1); + str= str.remove(0, 2); qint64 end= 0; if(readNumber(str, end)) { @@ -233,10 +233,6 @@ Validator* ParsingToolBox::readValidator(QString& str, bool hasSquare) returnVal= range; isRange= true; } - else - { - str.prepend("-"); - } } if(!isRange) diff --git a/tests/dice/tst_dice.cpp b/tests/dice/tst_dice.cpp index ba47dcf..757969f 100644 --- a/tests/dice/tst_dice.cpp +++ b/tests/dice/tst_dice.cpp @@ -222,9 +222,9 @@ void TestDice::commandsTest_data() QTest::addRow("cmd15") << "10D10e[>=6]sc[>=6]"; QTest::addRow("cmd16") << "10D10e10s"; QTest::addRow("cmd17") << "10D10s"; - QTest::addRow("cmd18") << "15D10e10c[8-10]"; + QTest::addRow("cmd18") << "15D10e10c[8..10]"; QTest::addRow("cmd19") << "10d10e10"; - QTest::addRow("cmd30") << "(4+4)^4"; + QTest::addRow("cmd30") << "(4+4)**4"; QTest::addRow("cmd31") << "(1d20+20)*7/10"; QTest::addRow("cmd32") << "20*7/10"; QTest::addRow("cmd33") << "1D8+2D6+7"; @@ -245,7 +245,7 @@ void TestDice::commandsTest_data() QTest::addRow("cmd48") << "10D10c[<2|>7]"; QTest::addRow("cmd49") << "10D6c[=2|=4|=6]"; QTest::addRow("cmd50") << "10D10e[=1|=10]k4"; - QTest::addRow("cmd51") << "1L[tete,bras droit,bras gauche,jambe droite,jambe gauche,ventre[6-7],buste[8-10]]"; + QTest::addRow("cmd51") << "1L[tete,bras droit,bras gauche,jambe droite,jambe gauche,ventre[6..7],buste[8..10]]"; QTest::addRow("cmd52") << "10+10s"; QTest::addRow("cmd53") << "1d6e6;1d4e4mk1"; QTest::addRow("cmd54") << "1d6e6;1d4e4mk1"; |