Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
72c3ba79
Commit
72c3ba79
authored
Feb 22, 2010
by
Erik Verbruggen
Browse files
Fixed pre-processor handling for Q_PROPERTY, Q_ENUMS and Q_FLAGS.
parent
41e2b885
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/libs/cplusplus/pp-engine.cpp
View file @
72c3ba79
...
...
@@ -766,34 +766,27 @@ void Preprocessor::preprocess(const QString &fileName, const QByteArray &source,
expandBuiltinMacro
(
identifierToken
,
spell
);
else
{
if
(
spell
!=
"Q_PROPERTY"
&&
spell
!=
"Q_INVOKABLE"
&&
spell
!=
"Q_ENUMS"
&&
spell
!=
"Q_FLAGS"
)
{
// ### FIXME: shouldn't this be T_Q_PROPERTY & friends?
if
(
Macro
*
m
=
env
->
resolve
(
spell
))
{
if
(
!
m
->
isFunctionLike
())
{
if
(
0
==
(
m
=
processObjectLikeMacro
(
identifierToken
,
spell
,
m
)))
continue
;
if
(
Macro
*
m
=
env
->
resolve
(
spell
))
{
if
(
!
m
->
isFunctionLike
())
{
if
(
0
==
(
m
=
processObjectLikeMacro
(
identifierToken
,
spell
,
m
)))
continue
;
// the macro expansion generated something that looks like
// a function-like macro.
}
// the macro expansion generated something that looks like
// a function-like macro.
}
// `m' is function-like macro.
if
(
_dot
->
is
(
T_LPAREN
))
{
QVector
<
MacroArgumentReference
>
actuals
;
collectActualArguments
(
&
actuals
);
// `m' is function-like macro.
if
(
_dot
->
is
(
T_LPAREN
))
{
QVector
<
MacroArgumentReference
>
actuals
;
collectActualArguments
(
&
actuals
);
if
(
_dot
->
is
(
T_RPAREN
))
{
expandFunctionLikeMacro
(
identifierToken
,
m
,
actuals
);
continue
;
}
if
(
_dot
->
is
(
T_RPAREN
))
{
expandFunctionLikeMacro
(
identifierToken
,
m
,
actuals
);
continue
;
}
}
}
// it's not a function or object-like macro.
out
(
spell
);
}
...
...
@@ -1390,6 +1383,12 @@ bool Preprocessor::isQtReservedWord(const QByteArray ¯oId) const
return
true
;
else
if
(
size
==
3
&&
macroId
.
at
(
0
)
==
'Q'
&&
macroId
==
"Q_Q"
)
return
true
;
else
if
(
size
==
10
&&
macroId
.
at
(
0
)
==
'Q'
&&
macroId
==
"Q_PROPERTY"
)
return
true
;
else
if
(
size
==
7
&&
macroId
.
at
(
0
)
==
'Q'
&&
macroId
==
"Q_ENUMS"
)
return
true
;
else
if
(
size
==
7
&&
macroId
.
at
(
0
)
==
'Q'
&&
macroId
==
"Q_FLAGS"
)
return
true
;
else
if
(
size
==
6
&&
macroId
.
at
(
0
)
==
'S'
&&
macroId
==
"SIGNAL"
)
return
true
;
else
if
(
size
==
4
&&
macroId
.
at
(
0
)
==
'S'
&&
macroId
==
"SLOT"
)
...
...
src/shared/cplusplus/Keywords.cpp
View file @
72c3ba79
...
...
@@ -745,7 +745,7 @@ static inline int classify7(const char *s, bool q) {
return
T_IDENTIFIER
;
}
static
inline
int
classify8
(
const
char
*
s
,
bool
)
{
static
inline
int
classify8
(
const
char
*
s
,
bool
q
)
{
if
(
s
[
0
]
==
'_'
)
{
if
(
s
[
1
]
==
'_'
)
{
if
(
s
[
2
]
==
'i'
)
{
...
...
@@ -910,7 +910,7 @@ static inline int classify8(const char *s, bool) {
}
}
}
else
if
(
s
[
0
]
==
'Q'
)
{
else
if
(
q
&&
s
[
0
]
==
'Q'
)
{
if
(
s
[
1
]
==
'_'
)
{
if
(
s
[
2
]
==
'S'
)
{
if
(
s
[
3
]
==
'I'
)
{
...
...
@@ -1024,7 +1024,7 @@ static inline int classify9(const char *s, bool q) {
return
T_IDENTIFIER
;
}
static
inline
int
classify10
(
const
char
*
s
,
bool
)
{
static
inline
int
classify10
(
const
char
*
s
,
bool
q
)
{
if
(
s
[
0
]
==
'_'
)
{
if
(
s
[
1
]
==
'_'
)
{
if
(
s
[
2
]
==
'i'
)
{
...
...
@@ -1101,7 +1101,7 @@ static inline int classify10(const char *s, bool) {
}
}
}
else
if
(
s
[
0
]
==
'Q'
)
{
else
if
(
q
&&
s
[
0
]
==
'Q'
)
{
if
(
s
[
1
]
==
'_'
)
{
if
(
s
[
2
]
==
'P'
)
{
if
(
s
[
3
]
==
'R'
)
{
...
...
@@ -1125,7 +1125,7 @@ static inline int classify10(const char *s, bool) {
return
T_IDENTIFIER
;
}
static
inline
int
classify11
(
const
char
*
s
,
bool
)
{
static
inline
int
classify11
(
const
char
*
s
,
bool
q
)
{
if
(
s
[
0
]
==
'_'
)
{
if
(
s
[
1
]
==
'_'
)
{
if
(
s
[
2
]
==
'a'
)
{
...
...
@@ -1172,7 +1172,7 @@ static inline int classify11(const char *s, bool) {
}
}
}
else
if
(
s
[
0
]
==
'Q'
)
{
else
if
(
q
&&
s
[
0
]
==
'Q'
)
{
if
(
s
[
1
]
==
'_'
)
{
if
(
s
[
2
]
==
'I'
)
{
if
(
s
[
3
]
==
'N'
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment