]>
Commit | Line | Data |
---|---|---|
4e4e5a6f A |
1 | /* |
2 | Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | |
3 | ||
4 | This library is free software; you can redistribute it and/or | |
5 | modify it under the terms of the GNU Library General Public | |
6 | License as published by the Free Software Foundation; either | |
7 | version 2 of the License, or (at your option) any later version. | |
8 | ||
9 | This library is distributed in the hope that it will be useful, | |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
12 | Library General Public License for more details. | |
13 | ||
14 | You should have received a copy of the GNU Library General Public License | |
15 | along with this library; see the file COPYING.LIB. If not, write to | |
16 | the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | |
17 | Boston, MA 02110-1301, USA. | |
18 | */ | |
19 | ||
20 | #ifndef qscriptsyntaxcheckresult_p_h | |
21 | #define qscriptsyntaxcheckresult_p_h | |
22 | ||
23 | #include "qscriptconverter_p.h" | |
24 | #include "qscriptengine_p.h" | |
25 | #include "qscriptsyntaxcheckresult.h" | |
26 | #include <JavaScriptCore/JavaScript.h> | |
27 | #include <QtCore/qshareddata.h> | |
28 | ||
29 | class QScriptSyntaxCheckResultPrivate : public QSharedData { | |
30 | public: | |
31 | static inline QScriptSyntaxCheckResult get(QScriptSyntaxCheckResultPrivate* p); | |
32 | inline QScriptSyntaxCheckResultPrivate(const QScriptEnginePrivate* engine); | |
33 | inline QScriptSyntaxCheckResultPrivate(const QScriptEnginePrivate* engine, JSObjectRef value); | |
34 | ~QScriptSyntaxCheckResultPrivate(); | |
35 | ||
36 | inline QScriptSyntaxCheckResult::State state() const; | |
37 | int errorLineNumber() const; | |
38 | inline int errorColumnNumber() const; | |
39 | QString errorMessage() const; | |
40 | private: | |
41 | JSObjectRef m_exception; | |
42 | QScriptEnginePtr m_engine; | |
43 | }; | |
44 | ||
45 | QScriptSyntaxCheckResult QScriptSyntaxCheckResultPrivate::get(QScriptSyntaxCheckResultPrivate* p) | |
46 | { | |
47 | return QScriptSyntaxCheckResult(p); | |
48 | } | |
49 | ||
50 | QScriptSyntaxCheckResultPrivate::QScriptSyntaxCheckResultPrivate(const QScriptEnginePrivate* engine) | |
51 | : m_exception(0) | |
52 | , m_engine(const_cast<QScriptEnginePrivate*>(engine)) | |
53 | {} | |
54 | ||
55 | QScriptSyntaxCheckResultPrivate::QScriptSyntaxCheckResultPrivate(const QScriptEnginePrivate* engine, JSObjectRef value) | |
56 | : m_exception(value) | |
57 | , m_engine(const_cast<QScriptEnginePrivate*>(engine)) | |
58 | {} | |
59 | ||
60 | QScriptSyntaxCheckResult::State QScriptSyntaxCheckResultPrivate::state() const | |
61 | { | |
62 | // FIXME This function doesn't return QScriptSyntaxCheckResult::Intermediate | |
63 | return m_exception ? QScriptSyntaxCheckResult::Error : QScriptSyntaxCheckResult::Valid; | |
64 | } | |
65 | ||
66 | int QScriptSyntaxCheckResultPrivate::errorColumnNumber() const | |
67 | { | |
68 | // FIXME JSC C API doesn't expose the error column number. | |
69 | return m_exception ? 1 : -1; | |
70 | } | |
71 | ||
72 | ||
73 | #endif // qscriptsyntaxcheckresult_p_h |