blob: 2cff585493d05ce36d85df0dba88a6ec7007f9e1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
#ifndef SCRIPTING_INTERNAL_CPPFUNCTION_H
#define SCRIPTING_INTERNAL_CPPFUNCTION_H
#include <QObject>
#include <QMetaType>
#include <QList>
#include "utils/position.h"
namespace CPlusPlus {
class Function;
}
namespace Scripting {
namespace Internal {
class CppArgument;
class CppFunction : public QObject
{
Q_OBJECT
Q_PROPERTY( QString name READ name )
Q_PROPERTY( QString returnType READ returnType )
Q_PROPERTY( QList<CppArgument*> arguments READ arguments )
Q_PROPERTY( bool isVirtual READ isVirtual )
Q_PROPERTY( bool isOverride READ isOverride )
Q_PROPERTY( bool isFinal READ isFinal )
Q_PROPERTY( bool isVariadic READ isVariadic )
Q_PROPERTY( bool isConst READ isConst )
Q_PROPERTY( bool isVolatile READ isVolatile )
Q_PROPERTY( bool isPureVirtual READ isPureVirtual )
Q_PROPERTY( Position start READ start)
public:
static CppFunction* create(int line, int column, const QString& fileName);
QString name() const;
QString returnType() const;
QList<CppArgument*> arguments() const;
bool isVirtual() const;
bool isOverride() const;
bool isFinal() const;
bool isVariadic() const;
bool isConst() const;
bool isVolatile() const;
bool isPureVirtual() const;
Position start() const;
private:
CppFunction();
static CPlusPlus::Function* function(int line,int column, const QString& fileName);
static QString extractName(const CPlusPlus::Function* function);
static QString extractReturnType(const CPlusPlus::Function* function);
static QList<CppArgument *> extractArguments(const CPlusPlus::Function* function);
QString m_name;
QString m_returnType;
QList<CppArgument*> m_arguments;
bool m_isVirtual;
bool m_isOverride;
bool m_isFinal;
bool m_isVariadic;
bool m_isConst;
bool m_isVolatile;
bool m_isPureVirtual;
Position m_start;
};
} // namespace Internal
} // namespace Scripting
Q_DECLARE_METATYPE(Scripting::Internal::CppFunction*)
#endif // SCRIPTING_INTERNAL_CPPFUNCTION_H
|