git-svn-id: svn://db.shs.com.ru/pip@893 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2020-03-02 13:02:06 +00:00
parent a9ef4fbec8
commit 9d1135f2fa
2 changed files with 8 additions and 7 deletions

View File

@@ -163,7 +163,7 @@ bool PICodeParser::parseFileInternal(const PIString & file, bool follow_includes
} }
//piCout << "add" << file; //piCout << "add" << file;
proc_files << f.path(); proc_files << f.path();
PIString fc = f.readAll(); PIString fc = PIString::fromUTF8(f.readAll());
piCout << "parsing" << f.path() << "..."; piCout << "parsing" << f.path() << "...";
bool is_main = isMainFile(fc); bool is_main = isMainFile(fc);
if (is_main) main_file = f.path(); if (is_main) main_file = f.path();
@@ -201,6 +201,7 @@ bool PICodeParser::parseFileContent(PIString & fc, bool main) {
fc.replaceAll("\r\n", "\n"); fc.replaceAll("\r\n", "\n");
fc.replaceAll("\r", "\n"); fc.replaceAll("\r", "\n");
for (int i = 0; i < fc.size_s() - 1; ++i) { for (int i = 0; i < fc.size_s() - 1; ++i) {
if (fc[i].unicode16Code() >= 255) continue;
if (i > 0) pc = c; if (i > 0) pc = c;
c = fc[i].toAscii(); c = fc[i].toAscii();
if (c == '"' && !mlc && pc != '\'') { if (c == '"' && !mlc && pc != '\'') {
@@ -226,7 +227,7 @@ bool PICodeParser::parseFileContent(PIString & fc, bool main) {
if (fc.mid(i, 2) == "*/" && mlc) {mlc = false; fc.cutMid(mls, i - mls + 2); i = mls - 1; continue;} if (fc.mid(i, 2) == "*/" && mlc) {mlc = false; fc.cutMid(mls, i - mls + 2); i = mls - 1; continue;}
if (fc.mid(i, 2) == "//" && !mlc) {ole = fc.find('\n', i); fc.cutMid(i, ole < 0 ? -1 : ole - i); --i; continue;} if (fc.mid(i, 2) == "//" && !mlc) {ole = fc.find('\n', i); fc.cutMid(i, ole < 0 ? -1 : ole - i); --i; continue;}
} }
//piCout << fc; //PICout(PICoutManipulators::DefaultControls) << fc;
pfc = procMacros(fc); pfc = procMacros(fc);
replaceMeta(pfc); replaceMeta(pfc);

View File

@@ -88,7 +88,7 @@ void makeClassInfo(PIFile & f, const PICodeParser::Entity * e) {
f << "\tci->has_name = " << (e->has_name ? "true" : "false") << ";\n"; f << "\tci->has_name = " << (e->has_name ? "true" : "false") << ";\n";
if (!e->meta.isEmpty()) { if (!e->meta.isEmpty()) {
for (PICodeParser::MetaMap::const_iterator i = e->meta.begin(); i != e->meta.end(); ++i) for (PICodeParser::MetaMap::const_iterator i = e->meta.begin(); i != e->meta.end(); ++i)
f << "\tci->meta[\"" << i.key() << "\"] = \"" << i.value() << "\";\n"; f << "\tci->meta[\"" << i.key() << "\"] = PIString::fromUTF8(\"" << i.value() << "\");\n";
} }
f << "\t(*classesInfo)[ci->name] = ci;\n"; f << "\t(*classesInfo)[ci->name] = ci;\n";
if (e->parent_scope) { if (e->parent_scope) {
@@ -117,7 +117,7 @@ void makeClassInfo(PIFile & f, const PICodeParser::Entity * e) {
f << ");\n"; f << ");\n";
if (!m.meta.isEmpty()) { if (!m.meta.isEmpty()) {
for (PICodeParser::MetaMap::const_iterator i = m.meta.begin(); i != m.meta.end(); ++i) for (PICodeParser::MetaMap::const_iterator i = m.meta.begin(); i != m.meta.end(); ++i)
f << "\tti.meta[\"" << i.key() << "\"] = \"" << i.value() << "\";\n"; f << "\tti.meta[\"" << i.key() << "\"] = PIString::fromUTF8(\"" << i.value() << "\");\n";
} }
f << "\tci->variables << ti;\n"; f << "\tci->variables << ti;\n";
} }
@@ -156,7 +156,7 @@ void makeClassInfo(PIFile & f, const PICodeParser::Entity * e) {
} }
if (!m.meta.isEmpty()) { if (!m.meta.isEmpty()) {
for (PICodeParser::MetaMap::const_iterator i = m.meta.begin(); i != m.meta.end(); ++i) for (PICodeParser::MetaMap::const_iterator i = m.meta.begin(); i != m.meta.end(); ++i)
f << "\tfi->meta[\"" << i.key() << "\"] = \"" << i.value() << "\";\n"; f << "\tfi->meta[\"" << i.key() << "\"] = PIString::fromUTF8(\"" << i.value() << "\");\n";
} }
} }
} }
@@ -171,14 +171,14 @@ void makeEnumInfo(PIFile & f, const PICodeParser::Enum * e) {
f << "\tei->name = \"" << e->name << "\";\n"; f << "\tei->name = \"" << e->name << "\";\n";
if (!e->meta.isEmpty()) { if (!e->meta.isEmpty()) {
for (PICodeParser::MetaMap::const_iterator i = e->meta.begin(); i != e->meta.end(); ++i) for (PICodeParser::MetaMap::const_iterator i = e->meta.begin(); i != e->meta.end(); ++i)
f << "\tei->meta[\"" << i.key() << "\"] = \"" << i.value() << "\";\n"; f << "\tei->meta[\"" << i.key() << "\"] = PIString::fromUTF8(\"" << i.value() << "\");\n";
} }
} }
piForeachC (PICodeParser::EnumeratorInfo & m, e->members) { piForeachC (PICodeParser::EnumeratorInfo & m, e->members) {
f << "\tei->members << PICodeInfo::EnumeratorInfo(\"" << m.name << "\", " << m.value << ");\n"; f << "\tei->members << PICodeInfo::EnumeratorInfo(\"" << m.name << "\", " << m.value << ");\n";
if (!m.meta.isEmpty()) { if (!m.meta.isEmpty()) {
for (PICodeParser::MetaMap::const_iterator i = m.meta.begin(); i != m.meta.end(); ++i) for (PICodeParser::MetaMap::const_iterator i = m.meta.begin(); i != m.meta.end(); ++i)
f << "\tei->members.back().meta[\"" << i.key() << "\"] = \"" << i.value() << "\";\n"; f << "\tei->members.back().meta[\"" << i.key() << "\"] = PIString::fromUTF8(\"" << i.value() << "\");\n";
} }
} }
} }