- ::insertOr and ::insertAnd must use nodes, not _tree->_branches.
This commit is contained in:
Paul Beckingham 2014-08-17 15:53:49 -04:00
parent a1ba3df7fb
commit 37bf45b696

View file

@ -1707,7 +1707,7 @@ bool Parser::insertOr ()
{ {
if ((*i)->hasTag ("FILTER") && ! (*i)->hasTag ("PSEUDO")) if ((*i)->hasTag ("FILTER") && ! (*i)->hasTag ("PSEUDO"))
{ {
if (prev != _tree->_branches.begin () && if (prev != nodes.begin () &&
((*prev)->hasTag ("ID") || (*prev)->hasTag ("UUID")) && ((*prev)->hasTag ("ID") || (*prev)->hasTag ("UUID")) &&
((*i)->hasTag ("ID") || (*i)->hasTag ("UUID"))) ((*i)->hasTag ("ID") || (*i)->hasTag ("UUID")))
{ {
@ -1752,7 +1752,7 @@ bool Parser::insertAnd ()
for (sub = (*i)->_branches.begin (); sub != (*i)->_branches.end (); ++sub) for (sub = (*i)->_branches.begin (); sub != (*i)->_branches.end (); ++sub)
{ {
if (sub != prev && if (sub != prev &&
prev != _tree->_branches.begin () && prev != nodes.begin () &&
(! (*prev)->hasTag ("OP") || (*prev)->attribute ("raw") == ")") && (! (*prev)->hasTag ("OP") || (*prev)->attribute ("raw") == ")") &&
(! (*sub)->hasTag ("OP") || (*sub)->attribute ("raw") == "(")) (! (*sub)->hasTag ("OP") || (*sub)->attribute ("raw") == "("))
{ {
@ -1770,7 +1770,7 @@ bool Parser::insertAnd ()
else else
{ {
if (i != prev && if (i != prev &&
prev != _tree->_branches.begin () && prev != nodes.begin () &&
(! (*prev)->hasTag ("OP") || (*prev)->attribute ("raw") == ")") && (! (*prev)->hasTag ("OP") || (*prev)->attribute ("raw") == ")") &&
(! (*i)->hasTag ("OP") || (*i)->attribute ("raw") == "(")) (! (*i)->hasTag ("OP") || (*i)->attribute ("raw") == "("))
{ {