aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--node/parenthesesnode.cpp5
-rw-r--r--parsingtoolbox.cpp28
-rw-r--r--parsingtoolbox.h1
-rw-r--r--range.h4
-rw-r--r--result/result.cpp2
5 files changed, 29 insertions, 11 deletions
diff --git a/node/parenthesesnode.cpp b/node/parenthesesnode.cpp
index 3a683db..5e2d0e0 100644
--- a/node/parenthesesnode.cpp
+++ b/node/parenthesesnode.cpp
@@ -32,7 +32,7 @@ void ParenthesesNode::setInternelNode(ExecutionNode* node)
}
void ParenthesesNode::run(ExecutionNode* /*previous*/)
{
- m_previousNode = nullptr;
+ //m_previousNode = previous;
if(nullptr!=m_internalNode)
{
m_internalNode->run(this);
@@ -44,7 +44,6 @@ void ParenthesesNode::run(ExecutionNode* /*previous*/)
m_result = temp->getResult();
}
-
if(nullptr!=m_nextNode)
{
m_nextNode->run(this);
@@ -101,7 +100,7 @@ void ParenthesesNode::generateDotTree(QString & s)
s.append(toString(false));
s.append(" -> ");
s.append(m_nextNode->toString(false));
- s.append("[label=\"next\"];\n");
+ s.append(" [label=\"next\"];\n");
// s.append(" [label=\"nextNode\"];\n");
m_nextNode->generateDotTree(s);
}
diff --git a/parsingtoolbox.cpp b/parsingtoolbox.cpp
index 7a3dcad..0fc7b50 100644
--- a/parsingtoolbox.cpp
+++ b/parsingtoolbox.cpp
@@ -544,12 +544,32 @@ bool ParsingToolBox::readCloseParentheses(QString& str)
else
return false;
}
+
+int ParsingToolBox::findClosingCharacterIndexOf(QChar open, QChar closing,const QString &str, int offset)
+{
+ int counter = offset;
+ int i = 0;
+ for(auto const& letter : str)
+ {
+ if(letter == open)
+ ++counter;
+ else if(letter == closing)
+ --counter;
+
+ if(counter == 0)
+ return i;
+
+ ++i;
+ }
+ return -1;
+}
+
bool ParsingToolBox::readList(QString& str,QStringList& list,QList<Range>& ranges)
{
if(str.startsWith("["))
{
str=str.remove(0,1);
- int pos = str.indexOf("]");
+ int pos = findClosingCharacterIndexOf('[',']',str,1);//str.indexOf("]");
if(-1!=pos)
{
QString liststr = str.left(pos);
@@ -685,8 +705,6 @@ void ParsingToolBox::readProbability(QStringList& str,QList<Range>& ranges)
int i=0;
int j=0;
bool hasPercentage=false;
- //QList<Range> rangesTemp;
- //range
for(QString line:str)
{
int pos = line.indexOf('[');
@@ -731,7 +749,7 @@ void ParsingToolBox::readProbability(QStringList& str,QList<Range>& ranges)
if((hasPercentage)&&(undefDistance!=0))
{
- qreal ratio = (qreal)100.0 / (qreal)undefDistance;
+ qreal ratio = 100.0 / static_cast<qreal>(undefDistance);
qint64 realStart=0;
for(int i = 0; i< ranges.size(); ++i)
{
@@ -765,7 +783,7 @@ void ParsingToolBox::readProbability(QStringList& str,QList<Range>& ranges)
{
qint64 sizeRange = range.getEnd()-range.getStart();
range.setStart(limitUp);
- limitUp+=sizeRange+1;
+ limitUp+=sizeRange;
range.setEnd(limitUp);
}
++limitUp;
diff --git a/parsingtoolbox.h b/parsingtoolbox.h
index be0b0eb..5846c57 100644
--- a/parsingtoolbox.h
+++ b/parsingtoolbox.h
@@ -194,6 +194,7 @@ public:
static void setStartNodes(std::vector<ExecutionNode *> *startNodes);
static bool readOperand(QString &str, ExecutionNode *&node);
+ static int findClosingCharacterIndexOf(QChar open, QChar closing, const QString &str, int offset);
private:
QMap<QString,BooleanCondition::LogicOperator>* m_logicOp;
diff --git a/range.h b/range.h
index ba59872..84f0e8e 100644
--- a/range.h
+++ b/range.h
@@ -49,8 +49,8 @@ public:
virtual Validator* getCopy() const;
private:
- qint64 m_start;
- qint64 m_end;
+ qint64 m_start = 0;
+ qint64 m_end = 0;
bool m_hasEnd;
bool m_hasStart;
bool m_emptyRange;
diff --git a/result/result.cpp b/result/result.cpp
index 8b4667b..4378350 100644
--- a/result/result.cpp
+++ b/result/result.cpp
@@ -71,7 +71,7 @@ void Result::generateDotTree(QString& s)
s.append(toString(false));
s.append(" -> ");
s.append("nullptr");
- s.append(" [label=\"previousResult\"];\n");
+ s.append(" [label=\"previousResult\", shape=\"box\"];\n");
}
}