Introduce Q_NAMESPACE_EXPORT
A recurring problem with the Q_NAMESPACE macro is that it declares an object (staticMetaObject) in the surrounding namespace. That object lacks any export/import qualification to make it usable with shared libraries. Introduce therefore another macro to work around this issue, allowing the user to prefix the object with an exporting macro, f.i. like this: Q_NAMESPACE_EXPORT(Q_CORE_EXPORT) The old macro can simply then be rewritten in terms of this new one, supplying an empty export macro. Note that NOT passing an argument to a macro expecting one is well defined behavior in C99 -- the macro will expand an empty token. Of course, MSVC doesn't like this and emits warnings. As a workaround, use a variadic macro. [ChangeLog][QtCore] Added the new Q_NAMESPACE_EXPORT macro. It can be used just like Q_NAMESPACE to add meta-object information to a namespace; however it also supports exporting of such information from shared libraries. [ChangeLog][Potentially Source-Incompatible Changes] Prefixing Q_NAMESPACE with an export macro may no longer work. Use the new Q_NAMESPACE_EXPORT macro for that use case. Fixes: QTBUG-68014 Change-Id: Ib044a555ace1f77ae8e0244d824ec473550f3d8e Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: BogDan Vatra <bogdan@kdab.com>
This commit is contained in:
parent
8f0e3ad518
commit
f66c1db16c
@ -118,6 +118,7 @@ Cpp.ignoretokens += \
|
|||||||
Q_POSITIONING_EXPORT \
|
Q_POSITIONING_EXPORT \
|
||||||
Q_MULTIMEDIA_EXPORT \
|
Q_MULTIMEDIA_EXPORT \
|
||||||
Q_NAMESPACE \
|
Q_NAMESPACE \
|
||||||
|
Q_NAMESPACE_EXPORT \
|
||||||
Q_NETWORK_EXPORT \
|
Q_NETWORK_EXPORT \
|
||||||
Q_NEVER_INLINE \
|
Q_NEVER_INLINE \
|
||||||
Q_NORETURN \
|
Q_NORETURN \
|
||||||
|
@ -946,10 +946,12 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file)
|
|||||||
|
|
||||||
debug_msg(2, "findMocs: %s", file->file.local().toLatin1().constData());
|
debug_msg(2, "findMocs: %s", file->file.local().toLatin1().constData());
|
||||||
int line_count = 1;
|
int line_count = 1;
|
||||||
bool ignore[3] = { false, false, false }; // [0] for Q_OBJECT, [1] for Q_GADGET, [2] for Q_NAMESPACE
|
// [0] for Q_OBJECT, [1] for Q_GADGET, [2] for Q_NAMESPACE, [3] for Q_NAMESPACE_EXPORT
|
||||||
|
bool ignore[4] = { false, false, false, false };
|
||||||
/* qmake ignore Q_GADGET */
|
/* qmake ignore Q_GADGET */
|
||||||
/* qmake ignore Q_OBJECT */
|
/* qmake ignore Q_OBJECT */
|
||||||
/* qmake ignore Q_NAMESPACE */
|
/* qmake ignore Q_NAMESPACE */
|
||||||
|
/* qmake ignore Q_NAMESPACE_EXPORT */
|
||||||
for(int x = 0; x < buffer_len; x++) {
|
for(int x = 0; x < buffer_len; x++) {
|
||||||
#define SKIP_BSNL(pos) skipEscapedLineEnds(buffer, buffer_len, (pos), &line_count)
|
#define SKIP_BSNL(pos) skipEscapedLineEnds(buffer, buffer_len, (pos), &line_count)
|
||||||
x = SKIP_BSNL(x);
|
x = SKIP_BSNL(x);
|
||||||
@ -988,6 +990,12 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file)
|
|||||||
file->file.real().toLatin1().constData(), line_count);
|
file->file.real().toLatin1().constData(), line_count);
|
||||||
x += 23;
|
x += 23;
|
||||||
ignore[2] = true;
|
ignore[2] = true;
|
||||||
|
} else if (buffer_len >= (x + 30) &&
|
||||||
|
!strncmp(buffer + x + 1, "make ignore Q_NAMESPACE_EXPORT", 30)) {
|
||||||
|
debug_msg(2, "Mocgen: %s:%d Found \"qmake ignore Q_NAMESPACE_EXPORT\"",
|
||||||
|
file->file.real().toLatin1().constData(), line_count);
|
||||||
|
x += 30;
|
||||||
|
ignore[3] = true;
|
||||||
}
|
}
|
||||||
} else if (buffer[x] == '*') {
|
} else if (buffer[x] == '*') {
|
||||||
extralines = 0;
|
extralines = 0;
|
||||||
@ -1015,8 +1023,8 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file)
|
|||||||
int morelines = 0;
|
int morelines = 0;
|
||||||
int y = skipEscapedLineEnds(buffer, buffer_len, x + 1, &morelines);
|
int y = skipEscapedLineEnds(buffer, buffer_len, x + 1, &morelines);
|
||||||
if (buffer[y] == 'Q') {
|
if (buffer[y] == 'Q') {
|
||||||
static const char interesting[][12] = { "Q_OBJECT", "Q_GADGET", "Q_NAMESPACE"};
|
static const char interesting[][19] = { "Q_OBJECT", "Q_GADGET", "Q_NAMESPACE", "Q_NAMESPACE_EXPORT" };
|
||||||
for (int interest = 0; interest < 3; ++interest) {
|
for (int interest = 0; interest < 4; ++interest) {
|
||||||
if (ignore[interest])
|
if (ignore[interest])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -4526,6 +4526,24 @@ QDebug operator<<(QDebug dbg, const QObject *o)
|
|||||||
Q_NAMESPACE makes an external variable, \c{staticMetaObject}, available.
|
Q_NAMESPACE makes an external variable, \c{staticMetaObject}, available.
|
||||||
\c{staticMetaObject} is of type QMetaObject and provides access to the
|
\c{staticMetaObject} is of type QMetaObject and provides access to the
|
||||||
enums declared with Q_ENUM_NS/Q_FLAG_NS.
|
enums declared with Q_ENUM_NS/Q_FLAG_NS.
|
||||||
|
|
||||||
|
\sa Q_NAMESPACE_EXPORT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\macro Q_NAMESPACE_EXPORT(EXPORT_MACRO)
|
||||||
|
\relates QObject
|
||||||
|
\since 5.14
|
||||||
|
|
||||||
|
The Q_NAMESPACE_EXPORT macro can be used to add QMetaObject capabilities
|
||||||
|
to a namespace.
|
||||||
|
|
||||||
|
It works exactly like the Q_NAMESPACE macro. However, the external
|
||||||
|
\c{staticMetaObject} variable that gets defined in the namespace
|
||||||
|
is declared with the supplied \c{EXPORT_MACRO} qualifier. This is
|
||||||
|
useful f.i. if the object needs to be exported from a dynamic library.
|
||||||
|
|
||||||
|
\sa Q_NAMESPACE, {Creating Shared Libraries}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -201,12 +201,16 @@ private: \
|
|||||||
QT_ANNOTATE_CLASS(qt_qgadget, "") \
|
QT_ANNOTATE_CLASS(qt_qgadget, "") \
|
||||||
/*end*/
|
/*end*/
|
||||||
|
|
||||||
/* qmake ignore Q_NAMESPACE */
|
/* qmake ignore Q_NAMESPACE_EXPORT */
|
||||||
#define Q_NAMESPACE \
|
#define Q_NAMESPACE_EXPORT(...) \
|
||||||
extern const QMetaObject staticMetaObject; \
|
extern __VA_ARGS__ const QMetaObject staticMetaObject; \
|
||||||
QT_ANNOTATE_CLASS(qt_qnamespace, "") \
|
QT_ANNOTATE_CLASS(qt_qnamespace, "") \
|
||||||
/*end*/
|
/*end*/
|
||||||
|
|
||||||
|
/* qmake ignore Q_NAMESPACE */
|
||||||
|
#define Q_NAMESPACE Q_NAMESPACE_EXPORT() \
|
||||||
|
/*end*/
|
||||||
|
|
||||||
#endif // QT_NO_META_MACROS
|
#endif // QT_NO_META_MACROS
|
||||||
|
|
||||||
#else // Q_MOC_RUN
|
#else // Q_MOC_RUN
|
||||||
|
@ -59,7 +59,7 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
namespace QShaderLanguage
|
namespace QShaderLanguage
|
||||||
{
|
{
|
||||||
Q_GUI_EXPORT Q_NAMESPACE
|
Q_NAMESPACE_EXPORT(Q_GUI_EXPORT)
|
||||||
|
|
||||||
enum StorageQualifier : char {
|
enum StorageQualifier : char {
|
||||||
Const = 1,
|
Const = 1,
|
||||||
|
@ -30,12 +30,12 @@
|
|||||||
// DO NOT EDIT.
|
// DO NOT EDIT.
|
||||||
|
|
||||||
static const short keyword_trans[][128] = {
|
static const short keyword_trans[][128] = {
|
||||||
{0,0,0,0,0,0,0,0,0,561,558,0,0,0,0,0,
|
{0,0,0,0,0,0,0,0,0,568,565,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
561,252,559,562,8,38,239,560,25,26,236,234,30,235,27,237,
|
568,252,566,569,8,38,239,567,25,26,236,234,30,235,27,237,
|
||||||
22,22,22,22,22,22,22,22,22,22,34,41,23,39,24,43,
|
22,22,22,22,22,22,22,22,22,22,34,41,23,39,24,43,
|
||||||
0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
|
0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
|
||||||
8,21,8,8,8,8,8,8,8,8,8,31,564,32,238,8,
|
8,21,8,8,8,8,8,8,8,8,8,31,571,32,238,8,
|
||||||
0,1,2,3,4,5,6,7,8,9,8,8,10,11,12,13,
|
0,1,2,3,4,5,6,7,8,9,8,8,10,11,12,13,
|
||||||
14,8,15,16,17,18,19,20,8,8,8,36,245,37,248,0},
|
14,8,15,16,17,18,19,20,8,8,8,36,245,37,248,0},
|
||||||
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
@ -116,7 +116,7 @@ static const short keyword_trans[][128] = {
|
|||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,290,222,0,0,490,0,0,0,
|
0,0,0,0,0,0,0,0,290,222,0,0,497,0,0,0,
|
||||||
0,0,0,0,55,0,0,330,0,0,0,0,0,0,0,0},
|
0,0,0,0,55,0,0,330,0,0,0,0,0,0,0,0},
|
||||||
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
@ -155,7 +155,7 @@ static const short keyword_trans[][128] = {
|
|||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,514,0,0,0,0,0,0,0,0,0,0,357,
|
0,0,0,0,521,0,0,0,0,0,0,0,0,0,0,357,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
||||||
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
@ -177,7 +177,7 @@ static const short keyword_trans[][128] = {
|
|||||||
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,42,0,0,0,28,0,
|
0,0,0,0,0,0,0,0,0,0,42,0,0,0,28,0,
|
||||||
567,567,567,567,567,567,567,567,567,567,0,0,0,0,0,0,
|
574,574,574,574,574,574,574,574,574,574,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
@ -336,7 +336,7 @@ static const short keyword_trans[][128] = {
|
|||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
||||||
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,566,0,0,0,0,565,
|
0,0,0,0,0,0,0,0,0,0,573,0,0,0,0,572,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,258,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,258,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
@ -372,29 +372,29 @@ static const short keyword_trans[][128] = {
|
|||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,487,0,0,0,300,0,0,0,0,0,0,0,0,0,0,
|
0,494,0,0,0,300,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
||||||
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,468,417,401,409,373,0,477,0,0,0,0,364,358,
|
0,0,0,475,424,408,416,380,0,484,0,0,0,0,364,358,
|
||||||
379,0,550,465,0,0,0,0,0,0,0,0,0,0,0,0,
|
386,0,557,472,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
||||||
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,387,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,394,0,0,0,
|
||||||
0,0,380,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,387,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
||||||
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,504,0,0,0,0,0,381,
|
0,0,0,0,0,0,0,0,0,511,0,0,0,0,0,388,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
||||||
@ -403,7 +403,7 @@ static const short keyword_trans[][128] = {
|
|||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,405,0,0,0,0,0,0,0,0,0,0,0,406,
|
0,0,0,412,0,0,0,0,0,0,0,0,0,0,0,413,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
||||||
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
@ -411,14 +411,14 @@ static const short keyword_trans[][128] = {
|
|||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,413,0,0,0,0,0,0,0,0,0,0,0,414,
|
0,0,0,420,0,0,0,0,0,0,0,0,0,0,0,421,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
||||||
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,447,425,0,0,430,0,0,0,439,0,0,
|
0,0,0,0,0,454,432,0,0,437,0,0,0,446,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
||||||
@ -426,7 +426,7 @@ static const short keyword_trans[][128] = {
|
|||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,533,0,466,0,0,0,494,0,0,500,0,0,0,
|
0,0,0,540,0,473,0,0,0,501,0,0,507,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
||||||
@ -435,7 +435,7 @@ static const short keyword_trans[][128] = {
|
|||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,479,0,526,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,486,0,533,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
|
||||||
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
@ -443,7 +443,7 @@ static const short keyword_trans[][128] = {
|
|||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
542,0,0,510,0,0,0,0,0,0,0,0,0,0,0,0,
|
549,0,0,517,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
|
||||||
};
|
};
|
||||||
@ -828,197 +828,204 @@ static const struct
|
|||||||
{CHARACTER, 0, 65, 370, CHARACTER},
|
{CHARACTER, 0, 65, 370, CHARACTER},
|
||||||
{CHARACTER, 0, 67, 371, CHARACTER},
|
{CHARACTER, 0, 67, 371, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 372, CHARACTER},
|
{CHARACTER, 0, 69, 372, CHARACTER},
|
||||||
{Q_NAMESPACE_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_NAMESPACE_TOKEN, 0, 95, 373, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 374, CHARACTER},
|
{CHARACTER, 0, 69, 374, CHARACTER},
|
||||||
{CHARACTER, 0, 68, 375, CHARACTER},
|
{CHARACTER, 0, 88, 375, CHARACTER},
|
||||||
{CHARACTER, 0, 71, 376, CHARACTER},
|
{CHARACTER, 0, 80, 376, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 377, CHARACTER},
|
{CHARACTER, 0, 79, 377, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 378, CHARACTER},
|
{CHARACTER, 0, 82, 378, CHARACTER},
|
||||||
|
{CHARACTER, 0, 84, 379, CHARACTER},
|
||||||
|
{Q_NAMESPACE_EXPORT_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
|
{CHARACTER, 0, 65, 381, CHARACTER},
|
||||||
|
{CHARACTER, 0, 68, 382, CHARACTER},
|
||||||
|
{CHARACTER, 0, 71, 383, CHARACTER},
|
||||||
|
{CHARACTER, 0, 69, 384, CHARACTER},
|
||||||
|
{CHARACTER, 0, 84, 385, CHARACTER},
|
||||||
{Q_GADGET_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_GADGET_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 44, 0, 0, CHARACTER},
|
{CHARACTER, 44, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 45, 0, 0, CHARACTER},
|
{CHARACTER, 45, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 80, 382, CHARACTER},
|
{CHARACTER, 0, 80, 389, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 383, CHARACTER},
|
{CHARACTER, 0, 69, 390, CHARACTER},
|
||||||
{CHARACTER, 0, 82, 384, CHARACTER},
|
{CHARACTER, 0, 82, 391, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 385, CHARACTER},
|
{CHARACTER, 0, 84, 392, CHARACTER},
|
||||||
{CHARACTER, 0, 89, 386, CHARACTER},
|
{CHARACTER, 0, 89, 393, CHARACTER},
|
||||||
{Q_PROPERTY_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_PROPERTY_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 85, 388, CHARACTER},
|
{CHARACTER, 0, 85, 395, CHARACTER},
|
||||||
{CHARACTER, 0, 71, 389, CHARACTER},
|
{CHARACTER, 0, 71, 396, CHARACTER},
|
||||||
{CHARACTER, 0, 73, 390, CHARACTER},
|
{CHARACTER, 0, 73, 397, CHARACTER},
|
||||||
{CHARACTER, 0, 78, 391, CHARACTER},
|
{CHARACTER, 0, 78, 398, CHARACTER},
|
||||||
{CHARACTER, 0, 95, 392, CHARACTER},
|
{CHARACTER, 0, 95, 399, CHARACTER},
|
||||||
{CHARACTER, 0, 77, 393, CHARACTER},
|
{CHARACTER, 0, 77, 400, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 394, CHARACTER},
|
{CHARACTER, 0, 69, 401, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 395, CHARACTER},
|
{CHARACTER, 0, 84, 402, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 396, CHARACTER},
|
{CHARACTER, 0, 65, 403, CHARACTER},
|
||||||
{CHARACTER, 0, 68, 397, CHARACTER},
|
{CHARACTER, 0, 68, 404, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 398, CHARACTER},
|
{CHARACTER, 0, 65, 405, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 399, CHARACTER},
|
{CHARACTER, 0, 84, 406, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 400, CHARACTER},
|
{CHARACTER, 0, 65, 407, CHARACTER},
|
||||||
{Q_PLUGIN_METADATA_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_PLUGIN_METADATA_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 78, 402, CHARACTER},
|
{CHARACTER, 0, 78, 409, CHARACTER},
|
||||||
{CHARACTER, 0, 85, 403, CHARACTER},
|
{CHARACTER, 0, 85, 410, CHARACTER},
|
||||||
{CHARACTER, 0, 77, 404, CHARACTER},
|
{CHARACTER, 0, 77, 411, CHARACTER},
|
||||||
{Q_ENUM_TOKEN, 46, 0, 0, CHARACTER},
|
{Q_ENUM_TOKEN, 46, 0, 0, CHARACTER},
|
||||||
{Q_ENUMS_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_ENUMS_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 78, 407, CHARACTER},
|
{CHARACTER, 0, 78, 414, CHARACTER},
|
||||||
{CHARACTER, 0, 83, 408, CHARACTER},
|
{CHARACTER, 0, 83, 415, CHARACTER},
|
||||||
{Q_ENUM_NS_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_ENUM_NS_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 76, 410, CHARACTER},
|
{CHARACTER, 0, 76, 417, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 411, CHARACTER},
|
{CHARACTER, 0, 65, 418, CHARACTER},
|
||||||
{CHARACTER, 0, 71, 412, CHARACTER},
|
{CHARACTER, 0, 71, 419, CHARACTER},
|
||||||
{Q_FLAG_TOKEN, 47, 0, 0, CHARACTER},
|
{Q_FLAG_TOKEN, 47, 0, 0, CHARACTER},
|
||||||
{Q_FLAGS_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_FLAGS_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 78, 415, CHARACTER},
|
{CHARACTER, 0, 78, 422, CHARACTER},
|
||||||
{CHARACTER, 0, 83, 416, CHARACTER},
|
{CHARACTER, 0, 83, 423, CHARACTER},
|
||||||
{Q_FLAG_NS_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_FLAG_NS_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 418, CHARACTER},
|
{CHARACTER, 0, 69, 425, CHARACTER},
|
||||||
{CHARACTER, 0, 67, 419, CHARACTER},
|
{CHARACTER, 0, 67, 426, CHARACTER},
|
||||||
{CHARACTER, 0, 76, 420, CHARACTER},
|
{CHARACTER, 0, 76, 427, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 421, CHARACTER},
|
{CHARACTER, 0, 65, 428, CHARACTER},
|
||||||
{CHARACTER, 0, 82, 422, CHARACTER},
|
{CHARACTER, 0, 82, 429, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 423, CHARACTER},
|
{CHARACTER, 0, 69, 430, CHARACTER},
|
||||||
{CHARACTER, 0, 95, 424, CHARACTER},
|
{CHARACTER, 0, 95, 431, CHARACTER},
|
||||||
{CHARACTER, 48, 0, 0, CHARACTER},
|
{CHARACTER, 48, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 76, 426, CHARACTER},
|
{CHARACTER, 0, 76, 433, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 427, CHARACTER},
|
{CHARACTER, 0, 65, 434, CHARACTER},
|
||||||
{CHARACTER, 0, 71, 428, CHARACTER},
|
{CHARACTER, 0, 71, 435, CHARACTER},
|
||||||
{CHARACTER, 0, 83, 429, CHARACTER},
|
{CHARACTER, 0, 83, 436, CHARACTER},
|
||||||
{Q_DECLARE_FLAGS_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_DECLARE_FLAGS_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 78, 431, CHARACTER},
|
{CHARACTER, 0, 78, 438, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 432, CHARACTER},
|
{CHARACTER, 0, 84, 439, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 433, CHARACTER},
|
|
||||||
{CHARACTER, 0, 82, 434, CHARACTER},
|
|
||||||
{CHARACTER, 0, 70, 435, CHARACTER},
|
|
||||||
{CHARACTER, 0, 65, 436, CHARACTER},
|
|
||||||
{CHARACTER, 0, 67, 437, CHARACTER},
|
|
||||||
{CHARACTER, 0, 69, 438, CHARACTER},
|
|
||||||
{Q_DECLARE_INTERFACE_TOKEN, 0, 0, 0, CHARACTER},
|
|
||||||
{CHARACTER, 0, 69, 440, CHARACTER},
|
{CHARACTER, 0, 69, 440, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 441, CHARACTER},
|
{CHARACTER, 0, 82, 441, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 442, CHARACTER},
|
{CHARACTER, 0, 70, 442, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 443, CHARACTER},
|
{CHARACTER, 0, 65, 443, CHARACTER},
|
||||||
{CHARACTER, 0, 89, 444, CHARACTER},
|
{CHARACTER, 0, 67, 444, CHARACTER},
|
||||||
{CHARACTER, 0, 80, 445, CHARACTER},
|
{CHARACTER, 0, 69, 445, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 446, CHARACTER},
|
{Q_DECLARE_INTERFACE_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
|
{CHARACTER, 0, 69, 447, CHARACTER},
|
||||||
|
{CHARACTER, 0, 84, 448, CHARACTER},
|
||||||
|
{CHARACTER, 0, 65, 449, CHARACTER},
|
||||||
|
{CHARACTER, 0, 84, 450, CHARACTER},
|
||||||
|
{CHARACTER, 0, 89, 451, CHARACTER},
|
||||||
|
{CHARACTER, 0, 80, 452, CHARACTER},
|
||||||
|
{CHARACTER, 0, 69, 453, CHARACTER},
|
||||||
{Q_DECLARE_METATYPE_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_DECLARE_METATYPE_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 88, 448, CHARACTER},
|
{CHARACTER, 0, 88, 455, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 449, CHARACTER},
|
{CHARACTER, 0, 84, 456, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 450, CHARACTER},
|
{CHARACTER, 0, 69, 457, CHARACTER},
|
||||||
{CHARACTER, 0, 78, 451, CHARACTER},
|
|
||||||
{CHARACTER, 0, 83, 452, CHARACTER},
|
|
||||||
{CHARACTER, 0, 73, 453, CHARACTER},
|
|
||||||
{CHARACTER, 0, 79, 454, CHARACTER},
|
|
||||||
{CHARACTER, 0, 78, 455, CHARACTER},
|
|
||||||
{CHARACTER, 0, 95, 456, CHARACTER},
|
|
||||||
{CHARACTER, 0, 73, 457, CHARACTER},
|
|
||||||
{CHARACTER, 0, 78, 458, CHARACTER},
|
{CHARACTER, 0, 78, 458, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 459, CHARACTER},
|
{CHARACTER, 0, 83, 459, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 460, CHARACTER},
|
{CHARACTER, 0, 73, 460, CHARACTER},
|
||||||
{CHARACTER, 0, 82, 461, CHARACTER},
|
{CHARACTER, 0, 79, 461, CHARACTER},
|
||||||
{CHARACTER, 0, 70, 462, CHARACTER},
|
{CHARACTER, 0, 78, 462, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 463, CHARACTER},
|
{CHARACTER, 0, 95, 463, CHARACTER},
|
||||||
{CHARACTER, 0, 67, 464, CHARACTER},
|
{CHARACTER, 0, 73, 464, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 438, CHARACTER},
|
{CHARACTER, 0, 78, 465, CHARACTER},
|
||||||
{CHARACTER, 49, 0, 0, CHARACTER},
|
{CHARACTER, 0, 84, 466, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 467, CHARACTER},
|
{CHARACTER, 0, 69, 467, CHARACTER},
|
||||||
{CHARACTER, 0, 83, 413, CHARACTER},
|
{CHARACTER, 0, 82, 468, CHARACTER},
|
||||||
{CHARACTER, 0, 76, 469, CHARACTER},
|
{CHARACTER, 0, 70, 469, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 470, CHARACTER},
|
{CHARACTER, 0, 65, 470, CHARACTER},
|
||||||
{CHARACTER, 0, 83, 471, CHARACTER},
|
{CHARACTER, 0, 67, 471, CHARACTER},
|
||||||
{CHARACTER, 0, 83, 472, CHARACTER},
|
{CHARACTER, 0, 69, 445, CHARACTER},
|
||||||
{CHARACTER, 0, 73, 473, CHARACTER},
|
{CHARACTER, 49, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 78, 474, CHARACTER},
|
{CHARACTER, 0, 84, 474, CHARACTER},
|
||||||
{CHARACTER, 0, 70, 475, CHARACTER},
|
{CHARACTER, 0, 83, 420, CHARACTER},
|
||||||
{CHARACTER, 0, 79, 476, CHARACTER},
|
{CHARACTER, 0, 76, 476, CHARACTER},
|
||||||
{Q_CLASSINFO_TOKEN, 0, 0, 0, CHARACTER},
|
{CHARACTER, 0, 65, 477, CHARACTER},
|
||||||
{CHARACTER, 0, 78, 478, CHARACTER},
|
{CHARACTER, 0, 83, 478, CHARACTER},
|
||||||
{CHARACTER, 50, 0, 0, CHARACTER},
|
{CHARACTER, 0, 83, 479, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 480, CHARACTER},
|
{CHARACTER, 0, 73, 480, CHARACTER},
|
||||||
{CHARACTER, 0, 82, 481, CHARACTER},
|
{CHARACTER, 0, 78, 481, CHARACTER},
|
||||||
{CHARACTER, 0, 70, 482, CHARACTER},
|
{CHARACTER, 0, 70, 482, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 483, CHARACTER},
|
{CHARACTER, 0, 79, 483, CHARACTER},
|
||||||
{CHARACTER, 0, 67, 484, CHARACTER},
|
{Q_CLASSINFO_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 485, CHARACTER},
|
{CHARACTER, 0, 78, 485, CHARACTER},
|
||||||
{CHARACTER, 0, 83, 486, CHARACTER},
|
{CHARACTER, 50, 0, 0, CHARACTER},
|
||||||
|
{CHARACTER, 0, 69, 487, CHARACTER},
|
||||||
|
{CHARACTER, 0, 82, 488, CHARACTER},
|
||||||
|
{CHARACTER, 0, 70, 489, CHARACTER},
|
||||||
|
{CHARACTER, 0, 65, 490, CHARACTER},
|
||||||
|
{CHARACTER, 0, 67, 491, CHARACTER},
|
||||||
|
{CHARACTER, 0, 69, 492, CHARACTER},
|
||||||
|
{CHARACTER, 0, 83, 493, CHARACTER},
|
||||||
{Q_INTERFACES_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_INTERFACES_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 108, 488, CHARACTER},
|
{CHARACTER, 0, 108, 495, CHARACTER},
|
||||||
{CHARACTER, 0, 115, 489, CHARACTER},
|
{CHARACTER, 0, 115, 496, CHARACTER},
|
||||||
{SIGNALS, 0, 0, 0, CHARACTER},
|
{SIGNALS, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 111, 491, CHARACTER},
|
{CHARACTER, 0, 111, 498, CHARACTER},
|
||||||
{CHARACTER, 0, 116, 492, CHARACTER},
|
{CHARACTER, 0, 116, 499, CHARACTER},
|
||||||
{CHARACTER, 0, 115, 493, CHARACTER},
|
{CHARACTER, 0, 115, 500, CHARACTER},
|
||||||
{SLOTS, 0, 0, 0, CHARACTER},
|
{SLOTS, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 71, 495, CHARACTER},
|
{CHARACTER, 0, 71, 502, CHARACTER},
|
||||||
{CHARACTER, 0, 78, 496, CHARACTER},
|
{CHARACTER, 0, 78, 503, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 497, CHARACTER},
|
{CHARACTER, 0, 65, 504, CHARACTER},
|
||||||
{CHARACTER, 0, 76, 498, CHARACTER},
|
{CHARACTER, 0, 76, 505, CHARACTER},
|
||||||
{Q_SIGNAL_TOKEN, 0, 83, 499, CHARACTER},
|
{Q_SIGNAL_TOKEN, 0, 83, 506, CHARACTER},
|
||||||
{Q_SIGNALS_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_SIGNALS_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 79, 501, CHARACTER},
|
{CHARACTER, 0, 79, 508, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 502, CHARACTER},
|
{CHARACTER, 0, 84, 509, CHARACTER},
|
||||||
{Q_SLOT_TOKEN, 0, 83, 503, CHARACTER},
|
{Q_SLOT_TOKEN, 0, 83, 510, CHARACTER},
|
||||||
{Q_SLOTS_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_SLOTS_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 86, 505, CHARACTER},
|
{CHARACTER, 0, 86, 512, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 506, CHARACTER},
|
{CHARACTER, 0, 65, 513, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 507, CHARACTER},
|
{CHARACTER, 0, 84, 514, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 508, CHARACTER},
|
{CHARACTER, 0, 69, 515, CHARACTER},
|
||||||
{CHARACTER, 0, 95, 509, CHARACTER},
|
{CHARACTER, 0, 95, 516, CHARACTER},
|
||||||
{CHARACTER, 51, 0, 0, CHARACTER},
|
{CHARACTER, 51, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 76, 511, CHARACTER},
|
{CHARACTER, 0, 76, 518, CHARACTER},
|
||||||
{CHARACTER, 0, 79, 512, CHARACTER},
|
{CHARACTER, 0, 79, 519, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 513, CHARACTER},
|
{CHARACTER, 0, 84, 520, CHARACTER},
|
||||||
{Q_PRIVATE_SLOT_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_PRIVATE_SLOT_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 95, 515, CHARACTER},
|
{CHARACTER, 0, 95, 522, CHARACTER},
|
||||||
{CHARACTER, 0, 77, 516, CHARACTER},
|
{CHARACTER, 0, 77, 523, CHARACTER},
|
||||||
{CHARACTER, 0, 79, 517, CHARACTER},
|
{CHARACTER, 0, 79, 524, CHARACTER},
|
||||||
{CHARACTER, 0, 67, 518, CHARACTER},
|
{CHARACTER, 0, 67, 525, CHARACTER},
|
||||||
{CHARACTER, 0, 95, 519, CHARACTER},
|
{CHARACTER, 0, 95, 526, CHARACTER},
|
||||||
{CHARACTER, 0, 67, 520, CHARACTER},
|
{CHARACTER, 0, 67, 527, CHARACTER},
|
||||||
{CHARACTER, 0, 79, 521, CHARACTER},
|
{CHARACTER, 0, 79, 528, CHARACTER},
|
||||||
{CHARACTER, 0, 77, 522, CHARACTER},
|
{CHARACTER, 0, 77, 529, CHARACTER},
|
||||||
{CHARACTER, 0, 80, 523, CHARACTER},
|
{CHARACTER, 0, 80, 530, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 524, CHARACTER},
|
{CHARACTER, 0, 65, 531, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 525, CHARACTER},
|
{CHARACTER, 0, 84, 532, CHARACTER},
|
||||||
{Q_MOC_COMPAT_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_MOC_COMPAT_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 79, 527, CHARACTER},
|
{CHARACTER, 0, 79, 534, CHARACTER},
|
||||||
{CHARACTER, 0, 75, 528, CHARACTER},
|
{CHARACTER, 0, 75, 535, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 529, CHARACTER},
|
{CHARACTER, 0, 65, 536, CHARACTER},
|
||||||
{CHARACTER, 0, 66, 530, CHARACTER},
|
{CHARACTER, 0, 66, 537, CHARACTER},
|
||||||
{CHARACTER, 0, 76, 531, CHARACTER},
|
{CHARACTER, 0, 76, 538, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 532, CHARACTER},
|
{CHARACTER, 0, 69, 539, CHARACTER},
|
||||||
{Q_INVOKABLE_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_INVOKABLE_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 82, 534, CHARACTER},
|
{CHARACTER, 0, 82, 541, CHARACTER},
|
||||||
{CHARACTER, 0, 73, 535, CHARACTER},
|
{CHARACTER, 0, 73, 542, CHARACTER},
|
||||||
{CHARACTER, 0, 80, 536, CHARACTER},
|
{CHARACTER, 0, 80, 543, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 537, CHARACTER},
|
{CHARACTER, 0, 84, 544, CHARACTER},
|
||||||
{CHARACTER, 0, 65, 538, CHARACTER},
|
{CHARACTER, 0, 65, 545, CHARACTER},
|
||||||
{CHARACTER, 0, 66, 539, CHARACTER},
|
{CHARACTER, 0, 66, 546, CHARACTER},
|
||||||
{CHARACTER, 0, 76, 540, CHARACTER},
|
{CHARACTER, 0, 76, 547, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 541, CHARACTER},
|
{CHARACTER, 0, 69, 548, CHARACTER},
|
||||||
{Q_SCRIPTABLE_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_SCRIPTABLE_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 82, 543, CHARACTER},
|
{CHARACTER, 0, 82, 550, CHARACTER},
|
||||||
{CHARACTER, 0, 79, 544, CHARACTER},
|
{CHARACTER, 0, 79, 551, CHARACTER},
|
||||||
{CHARACTER, 0, 80, 545, CHARACTER},
|
{CHARACTER, 0, 80, 552, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 546, CHARACTER},
|
{CHARACTER, 0, 69, 553, CHARACTER},
|
||||||
{CHARACTER, 0, 82, 547, CHARACTER},
|
{CHARACTER, 0, 82, 554, CHARACTER},
|
||||||
{CHARACTER, 0, 84, 548, CHARACTER},
|
{CHARACTER, 0, 84, 555, CHARACTER},
|
||||||
{CHARACTER, 0, 89, 549, CHARACTER},
|
{CHARACTER, 0, 89, 556, CHARACTER},
|
||||||
{Q_PRIVATE_PROPERTY_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_PRIVATE_PROPERTY_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{CHARACTER, 0, 69, 551, CHARACTER},
|
{CHARACTER, 0, 69, 558, CHARACTER},
|
||||||
{CHARACTER, 0, 86, 552, CHARACTER},
|
{CHARACTER, 0, 86, 559, CHARACTER},
|
||||||
{CHARACTER, 0, 73, 553, CHARACTER},
|
{CHARACTER, 0, 73, 560, CHARACTER},
|
||||||
{CHARACTER, 0, 83, 554, CHARACTER},
|
{CHARACTER, 0, 83, 561, CHARACTER},
|
||||||
{CHARACTER, 0, 73, 555, CHARACTER},
|
{CHARACTER, 0, 73, 562, CHARACTER},
|
||||||
{CHARACTER, 0, 79, 556, CHARACTER},
|
{CHARACTER, 0, 79, 563, CHARACTER},
|
||||||
{CHARACTER, 0, 78, 557, CHARACTER},
|
{CHARACTER, 0, 78, 564, CHARACTER},
|
||||||
{Q_REVISION_TOKEN, 0, 0, 0, CHARACTER},
|
{Q_REVISION_TOKEN, 0, 0, 0, CHARACTER},
|
||||||
{NEWLINE, 0, 0, 0, NOTOKEN},
|
{NEWLINE, 0, 0, 0, NOTOKEN},
|
||||||
{QUOTE, 0, 0, 0, NOTOKEN},
|
{QUOTE, 0, 0, 0, NOTOKEN},
|
||||||
{SINGLEQUOTE, 0, 0, 0, NOTOKEN},
|
{SINGLEQUOTE, 0, 0, 0, NOTOKEN},
|
||||||
{WHITESPACE, 0, 0, 0, NOTOKEN},
|
{WHITESPACE, 0, 0, 0, NOTOKEN},
|
||||||
{HASH, 0, 35, 563, HASH},
|
{HASH, 0, 35, 570, HASH},
|
||||||
{PP_HASHHASH, 0, 0, 0, NOTOKEN},
|
{PP_HASHHASH, 0, 0, 0, NOTOKEN},
|
||||||
{BACKSLASH, 0, 0, 0, NOTOKEN},
|
{BACKSLASH, 0, 0, 0, NOTOKEN},
|
||||||
{CPP_COMMENT, 0, 0, 0, NOTOKEN},
|
{CPP_COMMENT, 0, 0, 0, NOTOKEN},
|
||||||
|
@ -620,6 +620,13 @@ void Moc::parse()
|
|||||||
case Q_NAMESPACE_TOKEN:
|
case Q_NAMESPACE_TOKEN:
|
||||||
def.hasQNamespace = true;
|
def.hasQNamespace = true;
|
||||||
break;
|
break;
|
||||||
|
case Q_NAMESPACE_EXPORT_TOKEN:
|
||||||
|
next(LPAREN);
|
||||||
|
while (test(IDENTIFIER))
|
||||||
|
{}
|
||||||
|
next(RPAREN);
|
||||||
|
def.hasQNamespace = true;
|
||||||
|
break;
|
||||||
case Q_ENUMS_TOKEN:
|
case Q_ENUMS_TOKEN:
|
||||||
case Q_ENUM_NS_TOKEN:
|
case Q_ENUM_NS_TOKEN:
|
||||||
parseEnumOrFlag(&def, false);
|
parseEnumOrFlag(&def, false);
|
||||||
|
@ -155,6 +155,7 @@ QT_BEGIN_NAMESPACE
|
|||||||
F(Q_OBJECT_TOKEN) \
|
F(Q_OBJECT_TOKEN) \
|
||||||
F(Q_GADGET_TOKEN) \
|
F(Q_GADGET_TOKEN) \
|
||||||
F(Q_NAMESPACE_TOKEN) \
|
F(Q_NAMESPACE_TOKEN) \
|
||||||
|
F(Q_NAMESPACE_EXPORT_TOKEN) \
|
||||||
F(Q_PROPERTY_TOKEN) \
|
F(Q_PROPERTY_TOKEN) \
|
||||||
F(Q_PLUGIN_METADATA_TOKEN) \
|
F(Q_PLUGIN_METADATA_TOKEN) \
|
||||||
F(Q_ENUMS_TOKEN) \
|
F(Q_ENUMS_TOKEN) \
|
||||||
|
@ -214,6 +214,7 @@ static const Keyword keywords[] = {
|
|||||||
{ "return", "RETURN" },
|
{ "return", "RETURN" },
|
||||||
{ "Q_OBJECT", "Q_OBJECT_TOKEN" },
|
{ "Q_OBJECT", "Q_OBJECT_TOKEN" },
|
||||||
{ "Q_NAMESPACE", "Q_NAMESPACE_TOKEN" },
|
{ "Q_NAMESPACE", "Q_NAMESPACE_TOKEN" },
|
||||||
|
{ "Q_NAMESPACE_EXPORT", "Q_NAMESPACE_EXPORT_TOKEN" },
|
||||||
{ "Q_GADGET", "Q_GADGET_TOKEN" },
|
{ "Q_GADGET", "Q_GADGET_TOKEN" },
|
||||||
{ "Q_PROPERTY", "Q_PROPERTY_TOKEN" },
|
{ "Q_PROPERTY", "Q_PROPERTY_TOKEN" },
|
||||||
{ "Q_PLUGIN_METADATA", "Q_PLUGIN_METADATA_TOKEN" },
|
{ "Q_PLUGIN_METADATA", "Q_PLUGIN_METADATA_TOKEN" },
|
||||||
|
@ -149,6 +149,17 @@ namespace TestQNamespace {
|
|||||||
Q_FLAG_NS(TestFlag2)
|
Q_FLAG_NS(TestFlag2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define TESTEXPORTMACRO Q_DECL_EXPORT
|
||||||
|
|
||||||
|
namespace TestExportNamespace {
|
||||||
|
Q_NAMESPACE_EXPORT(TESTEXPORTMACRO)
|
||||||
|
enum class MyEnum {
|
||||||
|
Key1, Key2
|
||||||
|
};
|
||||||
|
Q_ENUM_NS(MyEnum)
|
||||||
|
}
|
||||||
|
|
||||||
QT_USE_NAMESPACE
|
QT_USE_NAMESPACE
|
||||||
|
|
||||||
template <bool b> struct QTBUG_31218 {};
|
template <bool b> struct QTBUG_31218 {};
|
||||||
@ -3893,6 +3904,10 @@ void tst_Moc::testQNamespace()
|
|||||||
QCOMPARE(meta.enclosingMetaObject(), &TestQNamespace::staticMetaObject);
|
QCOMPARE(meta.enclosingMetaObject(), &TestQNamespace::staticMetaObject);
|
||||||
QCOMPARE(meta.keyCount(), 2);
|
QCOMPARE(meta.keyCount(), 2);
|
||||||
|
|
||||||
|
QCOMPARE(TestExportNamespace::staticMetaObject.enumeratorCount(), 1);
|
||||||
|
checkEnum(TestExportNamespace::staticMetaObject.enumerator(0), "MyEnum",
|
||||||
|
{{"Key1", 0}, {"Key2", 1}});
|
||||||
|
|
||||||
QCOMPARE(FooNamespace::staticMetaObject.enumeratorCount(), 1);
|
QCOMPARE(FooNamespace::staticMetaObject.enumeratorCount(), 1);
|
||||||
QCOMPARE(FooNamespace::FooNestedNamespace::staticMetaObject.enumeratorCount(), 2);
|
QCOMPARE(FooNamespace::FooNestedNamespace::staticMetaObject.enumeratorCount(), 2);
|
||||||
QCOMPARE(FooNamespace::FooNestedNamespace::FooMoreNestedNamespace::staticMetaObject.enumeratorCount(), 1);
|
QCOMPARE(FooNamespace::FooNestedNamespace::FooMoreNestedNamespace::staticMetaObject.enumeratorCount(), 1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user