diff options
-rw-r--r-- | src/qml/parser/qqmljs.g | 4 | ||||
-rw-r--r-- | src/qml/parser/qqmljskeywords_p.h | 4 | ||||
-rw-r--r-- | src/qml/parser/qqmljslexer.cpp | 4 |
3 files changed, 7 insertions, 5 deletions
diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g index c5aabeaa01..4c5748f818 100644 --- a/src/qml/parser/qqmljs.g +++ b/src/qml/parser/qqmljs.g @@ -119,7 +119,7 @@ %token T_FOR_LOOKAHEAD_OK "(for lookahead ok)" --%left T_PLUS T_MINUS -%nonassoc T_IDENTIFIER T_COLON T_SIGNAL T_PROPERTY T_READONLY T_ON T_SET T_GET T_OF T_STATIC T_FROM +%nonassoc T_IDENTIFIER T_COLON T_SIGNAL T_PROPERTY T_READONLY T_ON T_SET T_GET T_OF T_STATIC T_FROM T_AS %nonassoc REDUCE_HERE %start TopLevel @@ -1366,6 +1366,7 @@ JsIdentifier: T_SET; JsIdentifier: T_FROM; JsIdentifier: T_STATIC; JsIdentifier: T_OF; +JsIdentifier: T_AS; IdentifierReference: JsIdentifier; BindingIdentifier: IdentifierReference; @@ -1848,6 +1849,7 @@ ReservedIdentifier: T_WITH; ReservedIdentifier: T_CLASS; ReservedIdentifier: T_EXTENDS; ReservedIdentifier: T_EXPORT; +ReservedIdentifier: T_IMPORT; ComputedPropertyName: T_LBRACKET AssignmentExpression_In T_RBRACKET; /. diff --git a/src/qml/parser/qqmljskeywords_p.h b/src/qml/parser/qqmljskeywords_p.h index 40094ecdf8..b0a4951ece 100644 --- a/src/qml/parser/qqmljskeywords_p.h +++ b/src/qml/parser/qqmljskeywords_p.h @@ -60,7 +60,7 @@ namespace QQmlJS { static inline int classify2(const QChar *s, int parseModeFlags) { if (s[0].unicode() == 'a') { if (s[1].unicode() == 's') { - return (parseModeFlags & Lexer::QmlMode) ? Lexer::T_AS : Lexer::T_IDENTIFIER; + return Lexer::T_AS; } } else if (s[0].unicode() == 'd') { @@ -432,7 +432,7 @@ static inline int classify6(const QChar *s, int parseModeFlags) { if (s[3].unicode() == 'o') { if (s[4].unicode() == 'r') { if (s[5].unicode() == 't') { - return (parseModeFlags & Lexer::QmlMode) ? int(Lexer::T_IMPORT) : int(Lexer::T_RESERVED_WORD); + return Lexer::T_IMPORT; } } } diff --git a/src/qml/parser/qqmljslexer.cpp b/src/qml/parser/qqmljslexer.cpp index ae016076b8..86c8ac714c 100644 --- a/src/qml/parser/qqmljslexer.cpp +++ b/src/qml/parser/qqmljslexer.cpp @@ -1390,7 +1390,7 @@ bool Lexer::scanDirectives(Directives *directives, DiagnosticMessage *error) lex(); // skip T_DOT - if (! (_tokenKind == T_IDENTIFIER || _tokenKind == T_RESERVED_WORD)) + if (! (_tokenKind == T_IDENTIFIER || _tokenKind == T_IMPORT)) return true; // expected a valid QML/JS directive const QString directiveName = tokenText(); @@ -1484,7 +1484,7 @@ bool Lexer::scanDirectives(Directives *directives, DiagnosticMessage *error) // // recognize the mandatory `as' followed by the module name // - if (! (lex() == T_IDENTIFIER && tokenText() == QLatin1String("as") && tokenStartLine() == lineNumber)) { + if (! (lex() == T_AS && tokenStartLine() == lineNumber)) { if (fileImport) error->message = QCoreApplication::translate("QQmlParser", "File import requires a qualifier"); else |