CPlusPlus tools: Fix build

Catch up to recent refactorings.

Change-Id: I14e8fa03a50ea4169ccdd41ed0d147d6ecb8af8b
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2022-11-24 16:35:51 +01:00
parent 2ff5f18bff
commit ea3e227944
3 changed files with 39 additions and 38 deletions

View File

@@ -280,9 +280,9 @@ protected:
virtual bool visit(Declaration *symbol) { virtual bool visit(Declaration *symbol) {
out << _id[symbol].constData() << " [label=\""; out << _id[symbol].constData() << " [label=\"";
out << "Declaration\\n"; out << "Declaration\\n";
out << qPrintable(o(symbol->name())); out << qPrintable(o.prettyName(symbol->name()));
out << ": "; out << ": ";
out << qPrintable(o(symbol->type())); out << qPrintable(o.prettyType(symbol->type()));
if (symbol->isDeprecated()) if (symbol->isDeprecated())
out << "\\n(deprecated)"; out << "\\n(deprecated)";
if (Function *funTy = symbol->type()->asFunctionType()) { if (Function *funTy = symbol->type()->asFunctionType()) {
@@ -308,7 +308,7 @@ protected:
virtual bool visit(BaseClass *symbol) { virtual bool visit(BaseClass *symbol) {
out << _id[symbol].constData() << " [label=\"BaseClass\\n"; out << _id[symbol].constData() << " [label=\"BaseClass\\n";
out << qPrintable(o(symbol->name())); out << qPrintable(o.prettyName(symbol->name()));
if (symbol->isDeprecated()) if (symbol->isDeprecated())
out << "\\n(deprecated)"; out << "\\n(deprecated)";
out << "\"];" << std::endl; out << "\"];" << std::endl;

View File

@@ -44,7 +44,7 @@ class MkVisitor: protected SymbolVisitor
bool isMiscNode(ClassOrNamespace *b) const bool isMiscNode(ClassOrNamespace *b) const
{ {
for (const ClassOrNamespace *u : b->usings()) { for (const ClassOrNamespace *u : b->usings()) {
if (oo(u->symbols().first()->name()) == QLatin1String("AST")) if (oo.prettyName(u->symbols().first()->name()) == QLatin1String("AST"))
return true; return true;
} }
@@ -58,7 +58,7 @@ class MkVisitor: protected SymbolVisitor
retType->clear(); retType->clear();
if (interfaces.contains(b) || isMiscNode(b)) { if (interfaces.contains(b) || isMiscNode(b)) {
QString className = oo(b->symbols().first()->name()); QString className = oo.prettyName(b->symbols().first()->name());
if (className.endsWith(QLatin1String("AST"))) { if (className.endsWith(QLatin1String("AST"))) {
className.chop(3); className.chop(3);
@@ -114,7 +114,7 @@ public:
Q_ASSERT(klass != 0); Q_ASSERT(klass != 0);
QString className = oo(klass->name()); QString className = oo.prettyName(klass->name());
if (className == QLatin1String("AST")) if (className == QLatin1String("AST"))
continue; continue;
@@ -162,7 +162,7 @@ public:
Q_ASSERT(klass != 0); Q_ASSERT(klass != 0);
QString retTy ; QString retTy ;
QString className = oo(klass->name()); QString className = oo.prettyName(klass->name());
std::cout << " void " << qPrintable(getAcceptFunctionName(b, &retTy)) << "(" << qPrintable(className) << " *ast);" << std::endl; std::cout << " void " << qPrintable(getAcceptFunctionName(b, &retTy)) << "(" << qPrintable(className) << " *ast);" << std::endl;
} }
} }
@@ -170,7 +170,8 @@ public:
std::cout << std::endl; std::cout << std::endl;
for (ClassOrNamespace *iface : std::as_const(interfaces)) { for (ClassOrNamespace *iface : std::as_const(interfaces)) {
std::cout << " // " << qPrintable(oo(iface->symbols().first()->name())) << std::endl; std::cout << " // " << qPrintable(oo.prettyName(iface->symbols().first()->name()))
<< std::endl;
const QList<ClassOrNamespace *> values = implements.value(iface); const QList<ClassOrNamespace *> values = implements.value(iface);
for (ClassOrNamespace *b : values) { for (ClassOrNamespace *b : values) {
Class *klass = 0; Class *klass = 0;
@@ -180,7 +181,7 @@ public:
Q_ASSERT(klass != 0); Q_ASSERT(klass != 0);
QString className = oo(klass->name()); QString className = oo.prettyName(klass->name());
std::cout << " virtual bool visit(" << qPrintable(className) << " *ast);" << std::endl; std::cout << " virtual bool visit(" << qPrintable(className) << " *ast);" << std::endl;
} }
std::cout << std::endl; std::cout << std::endl;
@@ -197,7 +198,7 @@ public:
Q_ASSERT(klass != 0); Q_ASSERT(klass != 0);
QString className = oo(klass->name()); QString className = oo.prettyName(klass->name());
if (className == QLatin1String("AST")) if (className == QLatin1String("AST"))
continue; continue;
@@ -230,7 +231,7 @@ public:
Q_ASSERT(klass != 0); Q_ASSERT(klass != 0);
QString className = oo(klass->name()); QString className = oo.prettyName(klass->name());
if (className == QLatin1String("AST")) if (className == QLatin1String("AST"))
continue; continue;
@@ -256,7 +257,7 @@ public:
} }
for (ClassOrNamespace *iface : std::as_const(interfaces)) { for (ClassOrNamespace *iface : std::as_const(interfaces)) {
std::cout << "// " << qPrintable(oo(iface->symbols().first()->name())) << std::endl; std::cout << "// " << qPrintable(oo.prettyName(iface->symbols().first()->name())) << std::endl;
const QList<ClassOrNamespace *> values = implements.value(iface); const QList<ClassOrNamespace *> values = implements.value(iface);
for (ClassOrNamespace *b : values) { for (ClassOrNamespace *b : values) {
Class *klass = 0; Class *klass = 0;
@@ -266,7 +267,7 @@ public:
Q_ASSERT(klass != 0); Q_ASSERT(klass != 0);
QString className = oo(klass->name()); QString className = oo.prettyName(klass->name());
std::cout << "bool Semantic::visit(" << qPrintable(className) << " *ast)" << std::endl std::cout << "bool Semantic::visit(" << qPrintable(className) << " *ast)" << std::endl
<< "{" << std::endl; << "{" << std::endl;
@@ -293,12 +294,12 @@ public:
Declaration *decl = klass->memberAt(i)->asDeclaration(); Declaration *decl = klass->memberAt(i)->asDeclaration();
if (! decl) if (! decl)
continue; continue;
if (decl->type()->isFunctionType()) if (decl->type()->asFunctionType())
continue; continue;
const QString declName = oo(decl->name()); const QString declName = oo.prettyName(decl->name());
if (PointerType *ptrTy = decl->type()->asPointerType()) { if (PointerType *ptrTy = decl->type()->asPointerType()) {
if (NamedType *namedTy = ptrTy->elementType()->asNamedType()) { if (NamedType *namedTy = ptrTy->elementType()->asNamedType()) {
const QString eltTyName = oo(namedTy->name()); const QString eltTyName = oo.prettyName(namedTy->name());
if (eltTyName.endsWith(QLatin1String("ListAST"))) { if (eltTyName.endsWith(QLatin1String("ListAST"))) {
QString name = eltTyName; QString name = eltTyName;
name.chop(7); name.chop(7);
@@ -327,7 +328,7 @@ public:
} }
if (ClassOrNamespace *ty = context.lookupType(namedTy->name(), klass)) { if (ClassOrNamespace *ty = context.lookupType(namedTy->name(), klass)) {
QString className = oo(ty->symbols().first()->name()); QString className = oo.prettyName(ty->symbols().first()->name());
QString baseClassName = className; QString baseClassName = className;
if (baseClassName.endsWith(QLatin1String("AST"))) { if (baseClassName.endsWith(QLatin1String("AST"))) {
baseClassName.chop(3); baseClassName.chop(3);
@@ -370,7 +371,7 @@ protected:
} }
virtual bool visit(Class *klass) { virtual bool visit(Class *klass) {
const QString className = oo(klass->name()); const QString className = oo.prettyName(klass->name());
if (! className.endsWith(QLatin1String("AST"))) if (! className.endsWith(QLatin1String("AST")))
return false; return false;

View File

@@ -171,7 +171,7 @@ protected:
Class *klass = ast->symbol; Class *klass = ast->symbol;
Q_ASSERT(klass != nullptr); Q_ASSERT(klass != nullptr);
const QString className = oo(klass->name()); const QString className = oo.prettyName(klass->name());
if (className.endsWith(QLatin1String("AST"))) { if (className.endsWith(QLatin1String("AST"))) {
if (className == QLatin1String("AST")) if (className == QLatin1String("AST"))
@@ -271,7 +271,7 @@ protected:
continue; continue;
const QByteArray memberName = QByteArray::fromRawData(id->chars(), id->size()); const QByteArray memberName = QByteArray::fromRawData(id->chars(), id->size());
if (member->type()->isIntegerType() && memberName.endsWith("_token")) { if (member->type()->asIntegerType() && memberName.endsWith("_token")) {
// nothing to do. The member is a token. // nothing to do. The member is a token.
} else if (PointerType *ptrTy = member->type()->asPointerType()) { } else if (PointerType *ptrTy = member->type()->asPointerType()) {
@@ -394,7 +394,7 @@ protected:
void visitMembers(Class *klass) void visitMembers(Class *klass)
{ {
Overview oo; Overview oo;
const QString className = oo(klass->name()); const QString className = oo.prettyName(klass->name());
*out << " if (" << className << " *_other = pattern->as" *out << " if (" << className << " *_other = pattern->as"
<< className.left(className.length() - 3) << "())" << Qt::endl; << className.left(className.length() - 3) << "())" << Qt::endl;
@@ -518,7 +518,7 @@ protected:
continue; continue;
const QByteArray memberName = QByteArray::fromRawData(id->chars(), id->size()); const QByteArray memberName = QByteArray::fromRawData(id->chars(), id->size());
if (member->type()->isIntegerType() && memberName.endsWith("_token")) { if (member->type()->asIntegerType() && memberName.endsWith("_token")) {
*out << " pattern->" << memberName << " = node->" << memberName << ";" << Qt::endl *out << " pattern->" << memberName << " = node->" << memberName << ";" << Qt::endl
<< Qt::endl; << Qt::endl;
@@ -657,7 +657,7 @@ protected:
continue; continue;
const QByteArray memberName = QByteArray::fromRawData(id->chars(), id->size()); const QByteArray memberName = QByteArray::fromRawData(id->chars(), id->size());
if (member->type()->isIntegerType() && memberName.endsWith("_token")) { if (member->type()->asIntegerType() && memberName.endsWith("_token")) {
*out << " ast->" << memberName << " = " << memberName << ";" << Qt::endl; *out << " ast->" << memberName << " = " << memberName << ";" << Qt::endl;
} else if (PointerType *ptrTy = member->type()->asPointerType()) { } else if (PointerType *ptrTy = member->type()->asPointerType()) {
if (NamedType *namedTy = ptrTy->elementType()->asNamedType()) { if (NamedType *namedTy = ptrTy->elementType()->asNamedType()) {
@@ -789,7 +789,7 @@ protected:
continue; continue;
const QByteArray memberName = QByteArray::fromRawData(id->chars(), id->size()); const QByteArray memberName = QByteArray::fromRawData(id->chars(), id->size());
if (member->type()->isIntegerType() && memberName.endsWith("_token")) { if (member->type()->asIntegerType() && memberName.endsWith("_token")) {
out << " if (ast->" << memberName << ")" << Qt::endl; out << " if (ast->" << memberName << ")" << Qt::endl;
out << " terminal(ast->" << memberName << ", ast);" << Qt::endl; out << " terminal(ast->" << memberName << ", ast);" << Qt::endl;
} else if (PointerType *ptrTy = member->type()->asPointerType()) { } else if (PointerType *ptrTy = member->type()->asPointerType()) {
@@ -881,7 +881,7 @@ protected:
virtual bool visit(FunctionDefinitionAST *ast) virtual bool visit(FunctionDefinitionAST *ast)
{ {
Function *fun = ast->symbol; Function *fun = ast->symbol;
const QString functionName = oo(fun->name()); const QString functionName = oo.prettyName(fun->name());
if (functionName.length() > 3 && functionName.startsWith(QLatin1String("as")) if (functionName.length() > 3 && functionName.startsWith(QLatin1String("as"))
&& functionName.at(2).isUpper()) { && functionName.at(2).isUpper()) {
@@ -909,18 +909,18 @@ static QStringList collectFieldNames(ClassSpecifierAST *classAST, bool onlyToken
for (int i = 0; i < clazz->memberCount(); ++i) { for (int i = 0; i < clazz->memberCount(); ++i) {
Symbol *s = clazz->memberAt(i); Symbol *s = clazz->memberAt(i);
if (Declaration *decl = s->asDeclaration()) { if (Declaration *decl = s->asDeclaration()) {
const QString declName = oo(decl->name()); const QString declName = oo.prettyName(decl->name());
const FullySpecifiedType ty = decl->type(); const FullySpecifiedType ty = decl->type();
if (const PointerType *ptrTy = ty->asPointerType()) { if (const PointerType *ptrTy = ty->asPointerType()) {
if (onlyTokensAndASTNodes) { if (onlyTokensAndASTNodes) {
if (const NamedType *namedTy = ptrTy->elementType()->asNamedType()) { if (const NamedType *namedTy = ptrTy->elementType()->asNamedType()) {
if (oo(namedTy->name()).endsWith(QLatin1String("AST"))) if (oo.prettyName(namedTy->name()).endsWith(QLatin1String("AST")))
fields.append(declName); fields.append(declName);
} }
} else { } else {
fields.append(declName); fields.append(declName);
} }
} else if (ty->isIntegerType()) { } else if (ty->asIntegerType()) {
fields.append(declName); fields.append(declName);
} }
} }
@@ -1021,7 +1021,7 @@ void generateAST_cpp(const Snapshot &snapshot, const QDir &cplusplusDir)
// find all classes with method declarations for firstToken/lastToken // find all classes with method declarations for firstToken/lastToken
for (ClassSpecifierAST *classAST : std::as_const(astNodes.deriveds)) { for (ClassSpecifierAST *classAST : std::as_const(astNodes.deriveds)) {
const QString className = oo(classAST->symbol->name()); const QString className = oo.prettyName(classAST->symbol->name());
if (className.isEmpty()) if (className.isEmpty())
continue; continue;
@@ -1032,7 +1032,7 @@ void generateAST_cpp(const Snapshot &snapshot, const QDir &cplusplusDir)
std::cerr << "Found simple declaration with multiple symbols in " << className.toLatin1().data() << std::endl; std::cerr << "Found simple declaration with multiple symbols in " << className.toLatin1().data() << std::endl;
Symbol *s = decl->symbols->value; Symbol *s = decl->symbols->value;
const QString funName = oo(s->name()); const QString funName = oo.prettyName(s->name());
if (funName == QLatin1String("firstToken")) { if (funName == QLatin1String("firstToken")) {
// found it: // found it:
classesNeedingFirstToken.insert(className, classAST); classesNeedingFirstToken.insert(className, classAST);
@@ -1052,8 +1052,8 @@ void generateAST_cpp(const Snapshot &snapshot, const QDir &cplusplusDir)
if (FunctionDefinitionAST *funDef = iter->value->asFunctionDefinition()) { if (FunctionDefinitionAST *funDef = iter->value->asFunctionDefinition()) {
if (const Name *name = funDef->symbol->name()) { if (const Name *name = funDef->symbol->name()) {
if (const QualifiedNameId *qName = name->asQualifiedNameId()) { if (const QualifiedNameId *qName = name->asQualifiedNameId()) {
const QString className = oo(qName->base()); const QString className = oo.prettyName(qName->base());
const QString methodName = oo(qName->name()); const QString methodName = oo.prettyName(qName->name());
QTextCursor cursor(&cpp_document); QTextCursor cursor(&cpp_document);
@@ -1121,7 +1121,7 @@ void generateAST_cpp(const Snapshot &snapshot, const QDir &cplusplusDir)
Overview oo; Overview oo;
const QString className = oo(info.classAST->symbol->name()); const QString className = oo.prettyName(info.classAST->symbol->name());
QString method; QString method;
QTextStream os(&method); QTextStream os(&method);
@@ -1320,7 +1320,7 @@ QStringList generateAST_H(const Snapshot &snapshot, const QDir &cplusplusDir, co
QStringList castMethods; QStringList castMethods;
for (ClassSpecifierAST *classAST : std::as_const(astNodes.deriveds)) { for (ClassSpecifierAST *classAST : std::as_const(astNodes.deriveds)) {
cursors[classAST] = removeCastMethods(classAST); cursors[classAST] = removeCastMethods(classAST);
const QString className = oo(classAST->symbol->name()); const QString className = oo.prettyName(classAST->symbol->name());
const QString methodName = QLatin1String("as") + className.mid(0, className.length() - 3); const QString methodName = QLatin1String("as") + className.mid(0, className.length() - 3);
replacementCastMethods[classAST] replacementCastMethods[classAST]
= QString::fromLatin1(" virtual %1 *%2() { return this; }\n") = QString::fromLatin1(" virtual %1 *%2() { return this; }\n")
@@ -1401,7 +1401,7 @@ protected:
if (ElaboratedTypeSpecifierAST *e = ast->decl_specifier_list->value->asElaboratedTypeSpecifier()) { if (ElaboratedTypeSpecifierAST *e = ast->decl_specifier_list->value->asElaboratedTypeSpecifier()) {
if (tokenKind(e->classkey_token) == T_CLASS && !ast->declarator_list) { if (tokenKind(e->classkey_token) == T_CLASS && !ast->declarator_list) {
QString className = oo(e->name->name); QString className = oo.prettyName(e->name->name);
if (className.length() > 3 && className.endsWith(QLatin1String("AST"))) { if (className.length() > 3 && className.endsWith(QLatin1String("AST"))) {
QTextCursor tc = createCursor(translationUnit(), ast, document); QTextCursor tc = createCursor(translationUnit(), ast, document);
@@ -1499,7 +1499,7 @@ void generateASTPatternBuilder_h(const QDir &cplusplusDir)
if (! match0Method) if (! match0Method)
continue; continue;
const QString className = oo(klass->name()); const QString className = oo.prettyName(klass->name());
if (! className.endsWith(QLatin1String("AST"))) if (! className.endsWith(QLatin1String("AST")))
continue; continue;
@@ -1521,14 +1521,14 @@ void generateASTPatternBuilder_h(const QDir &cplusplusDir)
if (! ptrTy) if (! ptrTy)
continue; continue;
const QString tyName = oo(ptrTy->elementType()); const QString tyName = oo.prettyType(ptrTy->elementType());
if (tyName.endsWith(QLatin1String("ListAST"))) if (tyName.endsWith(QLatin1String("ListAST")))
classesSet.insert(tyName); classesSet.insert(tyName);
if (tyName.endsWith(QLatin1String("AST"))) { if (tyName.endsWith(QLatin1String("AST"))) {
if (! first) if (! first)
out << ", "; out << ", ";
const QString memberName = oo(member->name()); const QString memberName = oo.prettyName(member->name());
out << tyName << " *" << memberName << " = nullptr"; out << tyName << " *" << memberName << " = nullptr";
args.append(qMakePair(tyName, memberName)); args.append(qMakePair(tyName, memberName));