aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2020-01-29 23:15:11 +0100
committerRenaud G <renaud@rolisteam.org>2020-03-28 02:00:12 +0100
commit932d863c2a2c9b08d8ce1f4e1041e5795daedc6d (patch)
treedf4d0c7ac293788c9030a02c6ee4947c32be0f33
parent6f3db8cf7f703de57d490e48a6da5f8291e7477d (diff)
downloadOneRoll-932d863c2a2c9b08d8ce1f4e1041e5795daedc6d.tar.gz
OneRoll-932d863c2a2c9b08d8ce1f4e1041e5795daedc6d.zip
Remove ambiguous syntax.
Range [X..Y] Pow: 2**2
-rw-r--r--README.md4
-rw-r--r--parsingtoolbox.cpp10
-rw-r--r--tests/dice/tst_dice.cpp6
3 files changed, 8 insertions, 12 deletions
diff --git a/README.md b/README.md
index 36af356..058ef9b 100644
--- a/README.md
+++ b/README.md
@@ -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";