diff --git a/qt/org.eclipse.cdt.qt.qml.core.tests/.classpath b/qt/org.eclipse.cdt.qt.qml.core.tests/.classpath new file mode 100644 index 00000000000..eca7bdba8f0 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core.tests/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/qt/org.eclipse.cdt.qt.qml.core.tests/.project b/qt/org.eclipse.cdt.qt.qml.core.tests/.project new file mode 100644 index 00000000000..c774ebdf8f1 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core.tests/.project @@ -0,0 +1,28 @@ + + + org.eclipse.cdt.qt.qml.core.tests + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/qt/org.eclipse.cdt.qt.qml.core.tests/.settings/org.eclipse.jdt.core.prefs b/qt/org.eclipse.cdt.qt.qml.core.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000000..0c68a61dca8 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/qt/org.eclipse.cdt.qt.qml.core.tests/META-INF/MANIFEST.MF b/qt/org.eclipse.cdt.qt.qml.core.tests/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..399cb25d39d --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core.tests/META-INF/MANIFEST.MF @@ -0,0 +1,8 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: QML Tests +Bundle-SymbolicName: org.eclipse.cdt.qt.qml.core.tests +Bundle-Version: 1.0.0.qualifier +Fragment-Host: org.eclipse.cdt.qt.qml.core;bundle-version="1.0.0" +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Require-Bundle: org.junit diff --git a/qt/org.eclipse.cdt.qt.qml.core.tests/build.properties b/qt/org.eclipse.cdt.qt.qml.core.tests/build.properties new file mode 100644 index 00000000000..34d2e4d2dad --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core.tests/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/qt/org.eclipse.cdt.qt.qml.core.tests/src/org/eclipse/cdt/qt/qml/core/tests/QMLParserTest.java b/qt/org.eclipse.cdt.qt.qml.core.tests/src/org/eclipse/cdt/qt/qml/core/tests/QMLParserTest.java new file mode 100644 index 00000000000..3bb8c3e1571 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core.tests/src/org/eclipse/cdt/qt/qml/core/tests/QMLParserTest.java @@ -0,0 +1,25 @@ +package org.eclipse.cdt.qt.qml.core.tests; + +import org.antlr.v4.runtime.ANTLRFileStream; +import org.antlr.v4.runtime.CommonTokenStream; +import org.eclipse.cdt.qt.qml.core.parser.QMLLexer; +import org.eclipse.cdt.qt.qml.core.parser.QMLParser; +import org.junit.Test; + +@SuppressWarnings("nls") +public class QMLParserTest { + + @Test + public void test() throws Exception { + String path = "/Users/dschaefer/Qt/5.5/clang_64/qml/QtTest/TestCase.qml"; + ANTLRFileStream input = new ANTLRFileStream(path); + QMLLexer lexer = new QMLLexer(input); + CommonTokenStream tokens = new CommonTokenStream(lexer); + QMLParser parser = new QMLParser(tokens); + + long start = System.currentTimeMillis(); + parser.qmlProgram(); + System.out.println("time: " + (System.currentTimeMillis() - start) + "ms."); + } + +} diff --git a/qt/org.eclipse.cdt.qt.qml.core/.classpath b/qt/org.eclipse.cdt.qt.qml.core/.classpath new file mode 100644 index 00000000000..221602b110a --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/qt/org.eclipse.cdt.qt.qml.core/.externalToolBuilders/Antlr QML.launch b/qt/org.eclipse.cdt.qt.qml.core/.externalToolBuilders/Antlr QML.launch new file mode 100644 index 00000000000..04a6ee300b1 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core/.externalToolBuilders/Antlr QML.launch @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/qt/org.eclipse.cdt.qt.qml.core/.gitignore b/qt/org.eclipse.cdt.qt.qml.core/.gitignore new file mode 100644 index 00000000000..0b34b328717 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core/.gitignore @@ -0,0 +1,4 @@ +/src-gen/ +/antlr-4.5-complete.jar +/antlr-runtime-4.5.jar +/bbQML.g diff --git a/qt/org.eclipse.cdt.qt.qml.core/.project b/qt/org.eclipse.cdt.qt.qml.core/.project new file mode 100644 index 00000000000..06473865e28 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core/.project @@ -0,0 +1,38 @@ + + + org.eclipse.cdt.qt.qml.core + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + auto,full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/Antlr QML.launch + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/qt/org.eclipse.cdt.qt.qml.core/.settings/org.eclipse.jdt.core.prefs b/qt/org.eclipse.cdt.qt.qml.core/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000000..0c68a61dca8 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/qt/org.eclipse.cdt.qt.qml.core/ECMAScript.g4 b/qt/org.eclipse.cdt.qt.qml.core/ECMAScript.g4 new file mode 100644 index 00000000000..8b8ff87cf53 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core/ECMAScript.g4 @@ -0,0 +1,484 @@ +// ECMA-262 5.1 + +grammar ECMAScript; + +singleExpression + : Identifier + ; + +functionDeclaration + : Identifier '(' + ; + +WhiteSpaceSequence + : WhiteSpace+ -> channel(HIDDEN) + ; + +fragment WhiteSpace + : [\t\u000B\u000C] + // Unicode cat: Zs + | '\u0020' + | '\u00A0' + | '\u1680' + | [\u2000-\u200A] + | '\u202F' + | '\u205F' + | '\u3000' + ; + +MultiLineComment + : '/*' .*? '*/' -> channel(HIDDEN) + ; + +SingleLineCOmment + : '//' ~[\r\n\u2028\u2029]* -> channel(HIDDEN) + ; + +Identifier + : IdentifierStart IdentifierPart* + ; + +fragment IdentifierStart + : UnicodeLetter + | [$_] + | '\\' UnicodeEscapeSequence + ; + +fragment IdentifierPart + : IdentifierStart + | UnicodeCombiningMark + | UnicodeDigit + | UnicodeConnectorPunctuation + | [\u200C\u200D] + ; + +fragment HexDigit + : [0-9a-fA-f] + ; + +fragment UnicodeEscapeSequence + : '\\' HexDigit HexDigit HexDigit HexDigit + ; + +// Unicode cats: Lu, Ll, Lt, Lm, Lo, Nl +fragment UnicodeLetter + : [\u0041-\u005A] + | [\u0061-\u007A] + | '\u00AA' + | '\u00B5' + | '\u00BA' + | [\u00C0-\u00D6] + | [\u00D8-\u00F6] + | [\u00F8-\u02C1] + | [\u02C6-\u02D1] + | [\u02E0-\u02E4] + | '\u02EC' + | '\u02EE' + | [\u0370-\u0374] + | [\u0376-\u037D] + | '\u037F' + | '\u0386' + | [\u0388-\u03F5] + | [\u03F7-\u0481] + | [\u048A-\u0559] + | [\u0561-\u0587] + | [\u05D0-\u05F2] + | [\u0620-\u064A] + | [\u066E-\u066F] + | [\u0671-\u06D3] + | '\u06D5' + | [\u06E5-\u06E6] + | [\u06EE-\u06EF] + | [\u06FA-\u06FC] + | '\u06FF' + | '\u0710' + | [\u0712-\u072F] + | [\u074D-\u07A5] + | '\u07B1' + | [\u07CA-\u07EA] + | [\u07F4-\u07F5] + | [\u07FA-\u0815] + | '\u081A' + | '\u0824' + | '\u0828' + | [\u0840-\u0858] + | [\u08A0-\u08B4] + | [\u0904-\u0939] + | '\u093D' + | '\u0950' + | [\u0958-\u0961] + | [\u0971-\u0980] + | [\u0985-\u09B9] + | '\u09BD' + | '\u09CE' + | [\u09DC-\u09E1] + | [\u09F0-\u09F1] + | [\u0A05-\u0A39] + | [\u0A59-\u0A5E] + | [\u0A72-\u0A74] + | [\u0A85-\u0AB9] + | '\u0ABD' + | [\u0AD0-\u0AE1] + | '\u0AF9' + | [\u0B05-\u0B39] + | '\u0B3D' + | [\u0B5C-\u0B61] + | '\u0B71' + | [\u0B83-\u0BB9] + | '\u0BD0' + | [\u0C05-\u0C3D] + | [\u0C58-\u0C61] + | [\u0C85-\u0CB9] + | '\u0CBD' + | [\u0CDE-\u0CE1] + | [\u0CF1-\u0CF2] + | [\u0D05-\u0D3D] + | '\u0D4E' + | [\u0D5F-\u0D61] + | [\u0D7A-\u0D7F] + | [\u0D85-\u0DC6] + | [\u0E01-\u0E30] + | [\u0E32-\u0E33] + | [\u0E40-\u0E46] + | [\u0E81-\u0EB0] + | [\u0EB2-\u0EB3] + | [\u0EBD-\u0EC6] + | [\u0EDC-\u0F00] + | [\u0F40-\u0F6C] + | [\u0F88-\u0F8C] + | [\u1000-\u102A] + | '\u103F' + | [\u1050-\u1055] + | [\u105A-\u105D] + | '\u1061' + | [\u1065-\u1066] + | [\u106E-\u1070] + | [\u1075-\u1081] + | '\u108E' + | [\u10A0-\u10FA] + | [\u10FC-\u135A] + | [\u1380-\u138F] + | [\u13A0-\u13FD] + | [\u1401-\u166C] + | [\u166F-\u167F] + | [\u1681-\u169A] + | [\u16A0-\u16EA] + | [\u16EE-\u1711] + | [\u1720-\u1731] + | [\u1740-\u1751] + | [\u1760-\u1770] + | [\u1780-\u17B3] + | '\u17D7' + | '\u17DC' + | [\u1820-\u18A8] + | [\u18AA-\u191E] + | [\u1950-\u19C9] + | [\u1A00-\u1A16] + | [\u1A20-\u1A54] + | '\u1AA7' + | [\u1B05-\u1B33] + | [\u1B45-\u1B4B] + | [\u1B83-\u1BA0] + | [\u1BAE-\u1BAF] + | [\u1BBA-\u1BE5] + | [\u1C00-\u1C23] + | [\u1C4D-\u1C4F] + | [\u1C5A-\u1C7D] + | [\u1CE9-\u1CEC] + | [\u1CEE-\u1CF1] + | [\u1CF5-\u1CF6] + | [\u1D00-\u1DBF] + | [\u1E00-\u1FBC] + | '\u1FBE' + | [\u1FC2-\u1FCC] + | [\u1FD0-\u1FDB] + | [\u1FE0-\u1FEC] + | [\u1FF2-\u1FFC] + | '\u2071' + | '\u207F' + | [\u2090-\u209C] + | '\u2102' + | '\u2107' + | [\u210A-\u2113] + | '\u2115' + | [\u2119-\u211D] + | '\u2124' + | '\u2126' + | '\u2128' + | [\u212A-\u212D] + | [\u212F-\u2139] + | [\u213C-\u213F] + | [\u2145-\u2149] + | '\u214E' + | [\u2160-\u2188] + | [\u2C00-\u2CE4] + | [\u2CEB-\u2CEE] + | [\u2CF2-\u2CF3] + | [\u2D00-\u2D6F] + | [\u2D80-\u2DDE] + | '\u2E2F' + | [\u3005-\u3007] + | [\u3021-\u3029] + | [\u3031-\u3035] + | [\u3038-\u303C] + | [\u3041-\u3096] + | [\u309D-\u309F] + | [\u30A1-\u30FA] + | [\u30FC-\u318E] + | [\u31A0-\u31BA] + | [\u31F0-\u31FF] + | [\u3400-\u4DB5] + | [\u4E00-\uA48C] + | [\uA4D0-\uA4FD] + | [\uA500-\uA60C] + | [\uA610-\uA61F] + | [\uA62A-\uA66E] + | [\uA67F-\uA69D] + | [\uA6A0-\uA6EF] + | [\uA717-\uA71F] + | [\uA722-\uA788] + | [\uA78B-\uA801] + | [\uA803-\uA805] + | [\uA807-\uA80A] + | [\uA80C-\uA822] + | [\uA840-\uA873] + | [\uA882-\uA8B3] + | [\uA8F2-\uA8F7] + | '\uA8FB' + | '\uA8FD' + | [\uA90A-\uA925] + | [\uA930-\uA946] + | [\uA960-\uA97C] + | [\uA984-\uA9B2] + | '\uA9CF' + | [\uA9E0-\uA9E4] + | [\uA9E6-\uA9EF] + | [\uA9FA-\uAA28] + | [\uAA40-\uAA42] + | [\uAA44-\uAA4B] + | [\uAA60-\uAA76] + | '\uAA7A' + | [\uAA7E-\uAAAF] + | '\uAAB1' + | [\uAAB5-\uAAB6] + | [\uAAB9-\uAABD] + | '\uAAC0' + | [\uAAC2-\uAADD] + | [\uAAE0-\uAAEA] + | [\uAAF2-\uAAF4] + | [\uAB01-\uAB5A] + | [\uAB5C-\uABE2] + | [\uAC00-\uD7FB] + | [\uF900-\uFB1D] + | [\uFB1F-\uFB28] + | [\uFB2A-\uFBB1] + | [\uFBD3-\uFD3D] + | [\uFD50-\uFDFB] + | [\uFE70-\uFEFC] + | [\uFF21-\uFF3A] + | [\uFF41-\uFF5A] + | [\uFF66-\uFFDC] + ; + +// Unicode cats: Mn, Mc +UnicodeCombiningMark + : [\u0300-\u036F] + | [\u0483-\u0487] + | [\u0591-\u05BD] + | '\u05BF' + | [\u05C1-\u05C2] + | [\u05C4-\u05C5] + | '\u05C7' + | [\u0610-\u061A] + | [\u064B-\u065F] + | '\u0670' + | [\u06D6-\u06DC] + | [\u06DF-\u06E4] + | [\u06E7-\u06E8] + | [\u06EA-\u06ED] + | '\u0711' + | [\u0730-\u074A] + | [\u07A6-\u07B0] + | [\u07EB-\u07F3] + | [\u0816-\u0819] + | [\u081B-\u0823] + | [\u0825-\u0827] + | [\u0829-\u082D] + | [\u0859-\u085B] + | [\u08E3-\u0903] + | [\u093A-\u093C] + | [\u093E-\u094F] + | [\u0951-\u0957] + | [\u0962-\u0963] + | [\u0981-\u0983] + | '\u09BC' + | [\u09BE-\u09CD] + | '\u09D7' + | [\u09E2-\u09E3] + | [\u0A01-\u0A03] + | [\u0A3C-\u0A51] + | [\u0A70-\u0A71] + | [\u0A75-\u0A83] + | '\u0ABC' + | [\u0ABE-\u0ACD] + | [\u0AE2-\u0AE3] + | [\u0B01-\u0B03] + | '\u0B3C' + | [\u0B3E-\u0B57] + | [\u0B62-\u0B63] + | '\u0B82' + | [\u0BBE-\u0BCD] + | '\u0BD7' + | [\u0C00-\u0C03] + | [\u0C3E-\u0C56] + | [\u0C62-\u0C63] + | [\u0C81-\u0C83] + | '\u0CBC' + | [\u0CBE-\u0CD6] + | [\u0CE2-\u0CE3] + | [\u0D01-\u0D03] + | [\u0D3E-\u0D4D] + | '\u0D57' + | [\u0D62-\u0D63] + | [\u0D82-\u0D83] + | [\u0DCA-\u0DDF] + | [\u0DF2-\u0DF3] + | '\u0E31' + | [\u0E34-\u0E3A] + | [\u0E47-\u0E4E] + | '\u0EB1' + | [\u0EB4-\u0EBC] + | [\u0EC8-\u0ECD] + | [\u0F18-\u0F19] + | '\u0F35' + | '\u0F37' + | '\u0F39' + | [\u0F3E-\u0F3F] + | [\u0F71-\u0F84] + | [\u0F86-\u0F87] + | [\u0F8D-\u0FBC] + | '\u0FC6' + | [\u102B-\u103E] + | [\u1056-\u1059] + | [\u105E-\u1060] + | [\u1062-\u1064] + | [\u1067-\u106D] + | [\u1071-\u1074] + | [\u1082-\u108D] + | '\u108F' + | [\u109A-\u109D] + | [\u135D-\u135F] + | [\u1712-\u1714] + | [\u1732-\u1734] + | [\u1752-\u1753] + | [\u1772-\u1773] + | [\u17B4-\u17D3] + | '\u17DD' + | [\u180B-\u180D] + | '\u18A9' + | [\u1920-\u193B] + | [\u1A17-\u1A1B] + | [\u1A55-\u1A7F] + | [\u1AB0-\u1ABD] + | [\u1B00-\u1B04] + | [\u1B34-\u1B44] + | [\u1B6B-\u1B73] + | [\u1B80-\u1B82] + | [\u1BA1-\u1BAD] + | [\u1BE6-\u1BF3] + | [\u1C24-\u1C37] + | [\u1CD0-\u1CD2] + | [\u1CD4-\u1CE8] + | '\u1CED' + | [\u1CF2-\u1CF4] + | [\u1CF8-\u1CF9] + | [\u1DC0-\u1DFF] + | [\u20D0-\u20DC] + | '\u20E1' + | [\u20E5-\u20F0] + | [\u2CEF-\u2CF1] + | '\u2D7F' + | [\u2DE0-\u2DFF] + | [\u302A-\u302F] + | [\u3099-\u309A] + | '\uA66F' + | [\uA674-\uA67D] + | [\uA69E-\uA69F] + | [\uA6F0-\uA6F1] + | '\uA802' + | '\uA806' + | '\uA80B' + | [\uA823-\uA827] + | [\uA880-\uA881] + | [\uA8B4-\uA8C4] + | [\uA8E0-\uA8F1] + | [\uA926-\uA92D] + | [\uA947-\uA953] + | [\uA980-\uA983] + | [\uA9B3-\uA9C0] + | '\uA9E5' + | [\uAA29-\uAA36] + | '\uAA43' + | [\uAA4C-\uAA4D] + | [\uAA7B-\uAA7D] + | '\uAAB0' + | [\uAAB2-\uAAB4] + | [\uAAB7-\uAAB8] + | [\uAABE-\uAABF] + | '\uAAC1' + | [\uAAEB-\uAAEF] + | [\uAAF5-\uAAF6] + | [\uABE3-\uABEA] + | [\uABEC-\uABED] + | '\uFB1E' + | [\uFE00-\uFE0F] + | [\uFE20-\uFE2F] + ; + +UnicodeDigit + : [\u0030-\u0039] + | [\u0660-\u0669] + | [\u06F0-\u06F9] + | [\u07C0-\u07C9] + | [\u0966-\u096F] + | [\u09E6-\u09EF] + | [\u0A66-\u0A6F] + | [\u0AE6-\u0AEF] + | [\u0B66-\u0B6F] + | [\u0BE6-\u0BEF] + | [\u0C66-\u0C6F] + | [\u0CE6-\u0CEF] + | [\u0D66-\u0D6F] + | [\u0DE6-\u0DEF] + | [\u0E50-\u0E59] + | [\u0ED0-\u0ED9] + | [\u0F20-\u0F29] + | [\u1040-\u1049] + | [\u1090-\u1099] + | [\u17E0-\u17E9] + | [\u1810-\u1819] + | [\u1946-\u194F] + | [\u19D0-\u19D9] + | [\u1A80-\u1A99] + | [\u1B50-\u1B59] + | [\u1BB0-\u1BB9] + | [\u1C40-\u1C49] + | [\u1C50-\u1C59] + | [\uA620-\uA629] + | [\uA8D0-\uA8D9] + | [\uA900-\uA909] + | [\uA9D0-\uA9D9] + | [\uA9F0-\uA9F9] + | [\uAA50-\uAA59] + | [\uABF0-\uABF9] + | [\uFF10-\uFF19] + ; + +UnicodeConnectorPunctuation + : '\u005F' + | [\u203F-\u2040] + | '\u2054' + | [\uFE33-\uFE34] + | [\uFE4D-\uFE4F] + | '\uFF3F' + ; diff --git a/qt/org.eclipse.cdt.qt.qml.core/META-INF/MANIFEST.MF b/qt/org.eclipse.cdt.qt.qml.core/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..6af95393eb0 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core/META-INF/MANIFEST.MF @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Core +Bundle-SymbolicName: org.eclipse.cdt.qt.qml.core +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: org.eclipse.cdt.qt.qml.core.internal.Activator +Require-Bundle: org.eclipse.core.runtime +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-ActivationPolicy: lazy +Bundle-ClassPath: antlr-runtime-4.5.jar, + . diff --git a/qt/org.eclipse.cdt.qt.qml.core/QML.g4 b/qt/org.eclipse.cdt.qt.qml.core/QML.g4 new file mode 100644 index 00000000000..9f23277c9f5 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core/QML.g4 @@ -0,0 +1,50 @@ +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' + ; \ No newline at end of file diff --git a/qt/org.eclipse.cdt.qt.qml.core/build.properties b/qt/org.eclipse.cdt.qt.qml.core/build.properties new file mode 100644 index 00000000000..e66c1dc2051 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + antlr-runtime-4.5.jar diff --git a/qt/org.eclipse.cdt.qt.qml.core/build.xml b/qt/org.eclipse.cdt.qt.qml.core/build.xml new file mode 100644 index 00000000000..a4239c44a0e --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core/build.xml @@ -0,0 +1,32 @@ + + + + Build file to generate the ANTLR 4 parsers and lexers + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/qt/org.eclipse.cdt.qt.qml.core/src/org/eclipse/cdt/qt/qml/core/internal/Activator.java b/qt/org.eclipse.cdt.qt.qml.core/src/org/eclipse/cdt/qt/qml/core/internal/Activator.java new file mode 100644 index 00000000000..a98ee85aedd --- /dev/null +++ b/qt/org.eclipse.cdt.qt.qml.core/src/org/eclipse/cdt/qt/qml/core/internal/Activator.java @@ -0,0 +1,30 @@ +package org.eclipse.cdt.qt.qml.core.internal; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class Activator implements BundleActivator { + + private static BundleContext context; + + static BundleContext getContext() { + return context; + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext bundleContext) throws Exception { + Activator.context = bundleContext; + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext bundleContext) throws Exception { + Activator.context = null; + } + +}