1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-06 17:26:01 +02:00
cdt/qt/org.eclipse.cdt.qt.qml.core/QML.g4

57 lines
1.2 KiB
Text
Raw Normal View History

/*******************************************************************************
* Copyright (c) 2015 QNX Software Systems
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
grammar QML;
import ECMAScript;
qmlProgram
: qmlHeaderItem* qmlObjectRoot EOF
;
qmlHeaderItem
: qmlImportDeclaration
| qmlPragmaDeclaration
;
qmlImportDeclaration
: 'import' qmlQualifiedId DecimalLiteral ('as' Identifier)? ';'?
| 'import' StringLiteral DecimalLiteral? ('as' Identifier)? ';'?
;
qmlQualifiedId
: Identifier ('.' Identifier)*
;
qmlPragmaDeclaration
: 'pragma' Identifier ';'?
;
qmlObjectRoot
: qmlObjectLiteral?
;
qmlObjectLiteral
: qmlQualifiedId qmlMembers
;
qmlMembers
: '{' qmlMember* '}'
;
qmlMember
: qmlQualifiedId ':' singleExpression
| qmlObjectLiteral
| 'readonly'? 'property' qmlPropertyType Identifier (':' singleExpression)?
| functionDeclaration
;
qmlPropertyType
: Identifier // TODO
| 'var'
;