------------------------------- EbnfAnalyzer.cpp -------------------------------
index 5bbb7a5..fde2d13 100644
@@ -556,7 +556,7 @@ void EbnfAnalyzer::findAmbiguousAlternatives(Ast::Node* node, FirstFollowSet* se
// TODO: each alternative might have a different predicate type LL or LA
// currently just assume everything is ok if an LA predicate is present
- if( predA && !predA->getLa().isEmpty() || predB && !predB->getLa().isEmpty() )
+ if( (predA && !predA->getLa().isEmpty()) || (predB && !predB->getLa().isEmpty()) )
continue;
if( ll > 0 )
-------------------------------- EbnfErrors.cpp --------------------------------
index 02c27c6..23e15ea 100644
@@ -20,7 +20,7 @@
#include "EbnfErrors.h"
#include <QtDebug>
-EbnfErrors::EbnfErrors(QObject *parent) : QObject(parent),d_reportToConsole(false),d_errCounter(0)
+EbnfErrors::EbnfErrors(QObject *parent) : QObject(parent),d_errCounter(0),d_reportToConsole(false)
{
d_eventLatency.setSingleShot(true);
connect(&d_eventLatency, SIGNAL(timeout()), this, SIGNAL(sigChanged()));
-------------------------------- EbnfLexer.cpp --------------------------------
index ccad2e1..67541a4 100644
@@ -24,7 +24,7 @@
#include <QtDebug>
EbnfLexer::EbnfLexer(QObject *parent) : QObject(parent),
- d_lastToken(EbnfToken::Invalid),d_lineNr(0),d_colNr(0),d_in(0)
+ d_in(0), d_lineNr(0),d_colNr(0),d_lastToken(EbnfToken::Invalid)
{
}
-------------------------------- EbnfSyntax.cpp --------------------------------
index 121b9e3..3a408f0 100644
@@ -89,7 +89,7 @@ Ast::NodeSet EbnfSyntax::collectNodes(const Ast::NodeRefSet& pattern, const Ast:
return res;
}
-EbnfSyntax::EbnfSyntax(EbnfErrors* errs):d_finished(false),d_errs(errs)
+EbnfSyntax::EbnfSyntax(EbnfErrors* errs):d_errs(errs), d_finished(false)
{
}
--------------------------------- EbnfSyntax.h ---------------------------------
index 3d88de3..93f5e07 100644
@@ -84,9 +84,9 @@ namespace Ast
Definition* d_def; // resolved nonterminal
Node* d_parent; // TODO: ev. unnötig; man kann damit bottom up über Sequence hinweg schauen
Node(Type t, Definition* d, const EbnfToken& tok = EbnfToken()):Symbol(tok),d_type(t),
- d_quant(One),d_owner(d),d_def(0),d_parent(0),d_leftRecursive(false){}
+ d_quant(One),d_leftRecursive(false),d_owner(d),d_def(0),d_parent(0){}
Node(Type t, Node* parent, const EbnfToken& tok = EbnfToken()):Symbol(tok),d_type(t),
- d_quant(One),d_owner(parent->d_owner),d_def(0),d_parent(parent),d_leftRecursive(false){ parent->d_subs.append(this); }
+ d_quant(One),d_leftRecursive(false),d_owner(parent->d_owner),d_def(0),d_parent(parent){ parent->d_subs.append(this); }
~Node();
bool doIgnore() const;
bool isNullable() const;
--------------------------------- EbnfToken.h ---------------------------------
index 3ed23f9..de61938 100644
@@ -31,6 +31,7 @@ struct EbnfToken
Sym(const Sym& rhs ):d_str(rhs.d_str){}
Sym():d_str(0){}
+ Sym& operator=(const Sym &rhs) = default;
operator QByteArray() const { return toBa(); }
QByteArray toBa() const;
QString toStr() const;
@@ -67,7 +68,7 @@ struct EbnfToken
quint32 d_lineNr;
Sym d_val; // utf-8
EbnfToken(TokenType t = Invalid, quint32 line = 0,quint16 col = 0, quint16 len = 0, const QByteArray& val = QByteArray() ):
- d_type(t),d_lineNr(line),d_colNr(col),d_len(len),d_op(Normal){ d_val = getSym(val);}
+ d_type(t),d_op(Normal),d_len(len),d_colNr(col),d_lineNr(line){ d_val = getSym(val);}
QString toString(bool labeled = true) const;
bool isValid() const { return d_type != Eof && d_type != Invalid; }
bool isErr() const { return d_type == Invalid; }
--------------------------------- GenUtils.cpp ---------------------------------
index 12af2e4..b92eb99 100644
@@ -160,7 +160,7 @@ static bool lessThan( const QString& lhs, const QString& rhs )
{
const bool lhsAlnum = GenUtils::containsAlnum(lhs);
const bool rhsAlnum = GenUtils::containsAlnum(rhs);
- if( lhsAlnum && rhsAlnum || !lhsAlnum && !rhsAlnum )
+ if( (lhsAlnum && rhsAlnum) || (!lhsAlnum && !rhsAlnum) )
return lhs < rhs;
else
return !lhsAlnum && rhsAlnum;
--------------------------------- LaParser.cpp ---------------------------------
index cf349c6..48757a0 100644
@@ -282,7 +282,7 @@ LaLexer::Tok LaLexer::nextTokenImp()
return Tok(Tok::Eof);
}
-int LaLexer::skipWhiteSpace()
+void LaLexer::skipWhiteSpace()
{
while( d_pos < d_str.size() && ::isspace(d_str[d_pos]) )
d_pos++;
---------------------------------- LaParser.h ----------------------------------
index 3f1df44..c4b97bd 100644
@@ -40,7 +40,7 @@ public:
Tok peekToken(quint8 lookAhead = 1);
protected:
Tok nextTokenImp();
- int skipWhiteSpace();
+ void skipWhiteSpace();
Tok ident();
Tok literal();
Tok index();
------------------------------- SyntaxTreeMdl.h -------------------------------
index aa84594..9ddce10 100644
@@ -49,7 +49,7 @@ private:
const Ast::Symbol* d_sym;
QList<Slot*> d_children;
Slot* d_parent;
- Slot(Slot* p = 0):d_parent(p){ if( p ) p->d_children.append(this); }
+ Slot(Slot* p = 0):d_sym(NULL), d_parent(p){ if( p ) p->d_children.append(this); }
~Slot() { foreach( Slot* s, d_children ) delete s; }
};
void fill(Slot* super, const Ast::Node* sym);
When compiling on Ubuntu 18.04 I fix a few compiler warnings see bellow: