diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-10-01 09:04:50 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-08 10:04:38 +0100 |
commit | 4a2f09f14a4b79006e661b6d98c03909c4ba9db1 (patch) | |
tree | c5397277abe70e03849f17f54d834e7983697ff0 /src/qml/qml/qqmlcustomparser.cpp | |
parent | 4a662c21e669e964f9c3b835a91a38c9decf4ad4 (diff) |
[new compiler] Initial support for custom parsers
Enough to support the Connections {} element. What's missing are pre-compiled
bindings signal handlers.
Change-Id: I3ad1413fa636434d899ae8fb380249aaf40363dc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlcustomparser.cpp')
-rw-r--r-- | src/qml/qml/qqmlcustomparser.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/qml/qml/qqmlcustomparser.cpp b/src/qml/qml/qqmlcustomparser.cpp index 19e49009ce..0cc62fb988 100644 --- a/src/qml/qml/qqmlcustomparser.cpp +++ b/src/qml/qml/qqmlcustomparser.cpp @@ -230,6 +230,13 @@ void QQmlCustomParser::clearErrors() exceptions.clear(); } +QByteArray QQmlCustomParser::compile(const QV4::CompiledData::QmlUnit *qmlUnit, const QList<const QV4::CompiledData::Binding *> &bindings) +{ + Q_UNUSED(qmlUnit) + Q_UNUSED(bindings) + return QByteArray(); +} + /*! Reports an error with the given \a description. @@ -256,7 +263,6 @@ void QQmlCustomParser::error(const QString& description) void QQmlCustomParser::error(const QQmlCustomParserProperty& prop, const QString& description) { QQmlError error; - QString exceptionDescription; error.setLine(prop.location().line); error.setColumn(prop.location().column); error.setDescription(description); @@ -271,7 +277,6 @@ void QQmlCustomParser::error(const QQmlCustomParserProperty& prop, const QString void QQmlCustomParser::error(const QQmlCustomParserNode& node, const QString& description) { QQmlError error; - QString exceptionDescription; error.setLine(node.location().line); error.setColumn(node.location().column); error.setDescription(description); @@ -279,6 +284,20 @@ void QQmlCustomParser::error(const QQmlCustomParserNode& node, const QString& de } /*! + Reports an error in parsing \a binding, with the given \a description. + + An error is generated referring to the position of \a node in the source file. +*/ +void QQmlCustomParser::error(const QV4::CompiledData::Binding *binding, const QString &description) +{ + QQmlError error; + error.setLine(binding->location.line); + error.setColumn(binding->location.column); + error.setDescription(description); + exceptions << error; +} + +/*! If \a script is a simple enumeration expression (eg. Text.AlignLeft), returns the integer equivalent (eg. 1), and sets \a ok to true. |