Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
utils.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#ifndef UTILS_H
5#define UTILS_H
6
7#include <QtCore/qglobal.h>
8#include <private/qtools_p.h>
9
10#include <algorithm>
11
13
14inline bool is_whitespace(char s)
15{
16 return (s == ' ' || s == '\t' || s == '\n');
17}
18
19inline bool is_space(char s)
20{
21 return (s == ' ' || s == '\t');
22}
23
24inline bool is_ident_start(char s)
25{
26 using namespace QtMiscUtils;
27 return isAsciiLower(s) || isAsciiUpper(s) || s == '_' || s == '$';
28}
29
30inline bool is_ident_char(char s)
31{
32 return QtMiscUtils::isAsciiLetterOrNumber(s) || s == '_' || s == '$';
33}
34
35inline bool is_identifier(const char *s, qsizetype len)
36{
37 if (len < 1)
38 return false;
39 return std::all_of(s, s + len, is_ident_char);
40}
41
42inline const char *skipQuote(const char *data)
43{
44 while (*data && (*data != '\"')) {
45 if (*data == '\\') {
46 ++data;
47 if (!*data) break;
48 }
49 ++data;
50 }
51
52 if (*data) //Skip last quote
53 ++data;
54 return data;
55}
56
57QT_END_NAMESPACE
58
59#endif // UTILS_H
static CborError callback(void *self, const void *ptr, size_t len, CborEncoderAppendType t)
Definition cbordevice.h:29
void nextItem(const char *comment=nullptr)
Definition cbordevice.h:22
CborDevice(FILE *out)
Definition cbordevice.h:20
qsizetype registeredStringsCount()
Definition generator.h:24
Generator(Moc *moc, ClassDef *classDef, const QList< QByteArray > &metaTypes, const QHash< QByteArray, QByteArray > &knownQObjectClasses, const QHash< QByteArray, QByteArray > &knownGadgets, FILE *outfile=nullptr, bool requireCompleteTypes=false)
Definition generator.cpp:81
void generateCode()
Definition moc.h:223
Definition qlist.h:80
bool is_identifier(const char *s, qsizetype len)
Definition utils.h:35
bool is_ident_char(char s)
Definition utils.h:30
const char * skipQuote(const char *data)
Definition utils.h:42
bool is_space(char s)
Definition utils.h:19
QT_BEGIN_NAMESPACE bool is_whitespace(char s)
Definition utils.h:14
bool is_ident_start(char s)
Definition utils.h:24
TypeTag
Definition moc.h:23
@ HasEnum
Definition moc.h:27
@ HasClass
Definition moc.h:26
@ HasStruct
Definition moc.h:25
static QByteArray generateQualifiedClassNameIdentifier(const QByteArray &identifier)
static bool qualifiedNameEquals(const QByteArray &qualifiedName, const QByteArray &name)
static const char * metaTypeEnumValueString(int type)
Definition generator.cpp:69
static void printStringWithIndentation(FILE *out, const QByteArray &s)
static qsizetype lengthOfEscapeSequence(const QByteArray &s, qsizetype i)
Definition generator.cpp:97
constexpr const char * cxxTypeTag(TypeTags t)
Definition generator.cpp:55
static bool isBuiltinType(const QByteArray &type)
Definition generator.cpp:49
static int nameToBuiltinType(const QByteArray &name)
Definition generator.cpp:29
bool hasQObject
Definition moc.h:206
bool hasQGadget
Definition moc.h:207
bool requireCompleteMethodTypes
Definition moc.h:209
bool hasQNamespace
Definition moc.h:208
Definition moc.h:53
bool wasCloned
Definition moc.h:94
bool isRawSlot
Definition moc.h:107
bool isConst
Definition moc.h:90
bool isAbstract
Definition moc.h:106
bool isPrivateSignal
Definition moc.h:103
@ Private
Definition moc.h:85
bool isStatic
Definition moc.h:92
int notifyId
Definition moc.h:126
bool constant
Definition moc.h:131
Specification gspec
Definition moc.h:128
@ ReferenceSpec
Definition moc.h:127
@ PointerSpec
Definition moc.h:127