diff --git a/uppsrc/Core/Diag.h b/uppsrc/Core/Diag.h index c21d32f85..73861336e 100644 --- a/uppsrc/Core/Diag.h +++ b/uppsrc/Core/Diag.h @@ -225,7 +225,7 @@ template void DumpMap(Stream& s, const T& t) { s << LOG_BEGIN; for(int i = 0; i < t.GetCount(); i++) - s << '[' << i << "] = ("<< t.GetKey(i) << ") " << t[i] << EOL; + s << '[' << i << "] = (" << t.GetKey(i) << ") " << t[i] << EOL; s << LOG_END; } diff --git a/uppsrc/CppBase/Base.cpp b/uppsrc/CppBase/Base.cpp index 5a194d831..a8c01fdfd 100644 --- a/uppsrc/CppBase/Base.cpp +++ b/uppsrc/CppBase/Base.cpp @@ -57,6 +57,16 @@ bool CppBase::IsType(int i) const return GetKey(i).GetCount(); } +void CppBase::Dump(Stream& s) +{ + for(int i = 0; i < GetCount(); i++) { + s << Nvl(GetKey(i), "<>") << "\n"; + const Array& m = (*this)[i]; + for(int j = 0; j < m.GetCount(); j++) + s << '\t' << m[j] << "\n"; + } +} + void Remove(CppBase& base, const Vector& pf) { int ni = 0; diff --git a/uppsrc/CppBase/CppBase.h b/uppsrc/CppBase/CppBase.h index 98b74671c..b6017a154 100644 --- a/uppsrc/CppBase/CppBase.h +++ b/uppsrc/CppBase/CppBase.h @@ -260,10 +260,13 @@ struct CppItem { void Serialize(Stream& s); void Dump(Stream& s) const; + String ToString() const; CppItem() { at = decla = virt = false; qualify_type = qualify_param = true; serial = -1; isptr = false; } }; +String CppItemKindAsString(int kind); + int FindItem(const Array& x, const String& qitem); int GetCount(const Array& x, int i); int FindNext(const Array& x, int i); @@ -275,6 +278,8 @@ struct CppBase : ArrayMap > { bool IsType(int i) const; + void Dump(Stream& s); + CppBase() { serial = 0; } }; diff --git a/uppsrc/CppBase/CppBase.upp b/uppsrc/CppBase/CppBase.upp index d544adf16..730f3f35e 100644 --- a/uppsrc/CppBase/CppBase.upp +++ b/uppsrc/CppBase/CppBase.upp @@ -6,7 +6,7 @@ uses Core; file - CppBase.h options PCH, + CppBase.h options(BUILDER_OPTION) PCH, keyword.i, Pre.cpp, cpplex.cpp, diff --git a/uppsrc/CppBase/CppItem.cpp b/uppsrc/CppBase/CppItem.cpp index 4cd7fb8e8..bb00ff129 100644 --- a/uppsrc/CppBase/CppItem.cpp +++ b/uppsrc/CppBase/CppItem.cpp @@ -2,10 +2,16 @@ NAMESPACE_UPP -void CppItem::Dump(Stream& s) const +String CppItem::ToString() const { - s << Nvl(qitem, "?") << ' '; - s << decode(kind, + StringStream ss; + Dump(ss); + return ss; +} + +String CppItemKindAsString(int kind) +{ + return decode(kind, STRUCT, "STRUCT", STRUCTTEMPLATE, "STRUCTTEMPLATE", TYPEDEF, "TYPEDEF", @@ -24,7 +30,13 @@ void CppItem::Dump(Stream& s) const ENUM, "ENUM", MACRO, "MACRO", FRIENDCLASS, "FRIENDCLASS", - "?kind:" + AsString(kind)) << ' ' + "?kind:" + AsString(kind)); +} + +void CppItem::Dump(Stream& s) const +{ + s << Nvl(qitem, "?") << ' '; + s << CppItemKindAsString(kind) << ' ' << decode(access, PUBLIC, "PUBLIC", PROTECTED, "PROTECTED", diff --git a/uppsrc/CppBase/Parser.cpp b/uppsrc/CppBase/Parser.cpp index 537e53738..f6404b5cb 100644 --- a/uppsrc/CppBase/Parser.cpp +++ b/uppsrc/CppBase/Parser.cpp @@ -1564,6 +1564,7 @@ void Parser::Do(Stream& in, const Vector& ignore, CppBase& _base, const ++lex; lex.SkipToGrounding(); lex.ClearBracesLevel(); + LLOG("Grounding skipped to " << GetLine(lex.Pos())); } } } @@ -1578,6 +1579,7 @@ void Parse(Stream& s, const Vector& ignore, CppBase& base, const String& Callback2 _err) { LTIMING("Parse"); + DUMP(ignore); Parser p; p.Do(s, ignore, base, fn, _err); } diff --git a/uppsrc/CppBase/Pre.cpp b/uppsrc/CppBase/Pre.cpp index f782ccf46..2fa5855db 100644 --- a/uppsrc/CppBase/Pre.cpp +++ b/uppsrc/CppBase/Pre.cpp @@ -85,9 +85,12 @@ SrcFile PreProcess(Stream& in) if(IsAlNum(*rm)) { const char *s = ln.Last(); while(s > rm && *s == ' ') s--; - if(*s != ':') + if(*s != ':') // check for label, labeled lines are not grounded res.text << '\2'; } + else + if(*rm == '\x1a') // line started with macro + res.text << '\2'; while(*rm == ' ' || *rm == '\t') rm++; if(*rm == '\0') res.blankLinesRemoved++; diff --git a/uppsrc/Sql/Sql.cpp b/uppsrc/Sql/Sql.cpp index 49d420e42..e187ec796 100644 --- a/uppsrc/Sql/Sql.cpp +++ b/uppsrc/Sql/Sql.cpp @@ -704,6 +704,7 @@ SqlR::SqlR(const SqlStatement& s) #endif +#ifndef NOAPPSQL void operator*=(ValueMap& map, SqlSelect select) { map.Clear(); @@ -712,5 +713,6 @@ void operator*=(ValueMap& map, SqlSelect select) while(sql.Fetch()) map.Add(sql[0], sql[1]); } +#endif END_UPP_NAMESPACE diff --git a/uppsrc/Sql/Sql.upp b/uppsrc/Sql/Sql.upp index 389877104..6b7374cf8 100644 --- a/uppsrc/Sql/Sql.upp +++ b/uppsrc/Sql/Sql.upp @@ -9,7 +9,7 @@ uses Core; file - Sql.h options PCH, + Sql.h options(BUILDER_OPTION) PCH, Sqlexp.h, SqlCase.cpp optimize_speed, SqlVal.cpp optimize_speed, diff --git a/uppsrc/Sql/SqlCase.cpp b/uppsrc/Sql/SqlCase.cpp index 22b1e3e91..5cf8f78d0 100644 --- a/uppsrc/Sql/SqlCase.cpp +++ b/uppsrc/Sql/SqlCase.cpp @@ -330,10 +330,12 @@ String SqlCompile(byte dialect, const String& s) return b; } +#ifndef NOAPPSQL String SqlCompile(const String& s) { return SqlCompile(SQL.GetDialect(), s); } +#endif Vector SplitSqlSet(const SqlSet& set) { diff --git a/uppsrc/ide/Core/Core.upp b/uppsrc/ide/Core/Core.upp index 23e73279d..379c5adcb 100644 --- a/uppsrc/ide/Core/Core.upp +++ b/uppsrc/ide/Core/Core.upp @@ -5,7 +5,7 @@ uses plugin/bz2; file - Core.h options PCH, + Core.h options(BUILDER_OPTION) PCH, Core.cpp, Hdepend.cpp optimize_speed, Package.cpp,