summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/parser/javascript.g
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-05-01 00:56:54 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-05-01 00:56:54 (GMT)
commit7ea7efcd67a739a58b1fcd5fe9cf07765ec92860 (patch)
tree70e6ec920170d150666395c37d9ad5d6edbcd4c4 /src/declarative/qml/parser/javascript.g
parent5b548025ca353fa2f512356d0969b096b5b705e1 (diff)
downloadQt-7ea7efcd67a739a58b1fcd5fe9cf07765ec92860.zip
Qt-7ea7efcd67a739a58b1fcd5fe9cf07765ec92860.tar.gz
Qt-7ea7efcd67a739a58b1fcd5fe9cf07765ec92860.tar.bz2
Support multiline string literals when assigned directly to a QML property
For example, this is now allowed: Text { text: "Hello World" } but this isn't as bindings are "real" javascript: Text { text: "Big " + "Hello World" }
Diffstat (limited to 'src/declarative/qml/parser/javascript.g')
-rw-r--r--src/declarative/qml/parser/javascript.g22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/declarative/qml/parser/javascript.g b/src/declarative/qml/parser/javascript.g
index cc72737..59ab529 100644
--- a/src/declarative/qml/parser/javascript.g
+++ b/src/declarative/qml/parser/javascript.g
@@ -78,6 +78,7 @@
%token T_CONST "const"
%token T_DEBUGGER "debugger"
%token T_RESERVED_WORD "reserved word"
+%token T_MULTILINE_STRING_LITERAL "multiline string literal"
--- context keywords.
%token T_PUBLIC "public"
@@ -611,6 +612,27 @@ case $rule_number: {
} break;
./
+UiMultilineStringLiteral: T_MULTILINE_STRING_LITERAL ;
+/.
+case $rule_number: {
+ AST::StringLiteral *node = makeAstNode<AST::StringLiteral> (driver->nodePool(), sym(1).sval);
+ node->literalToken = loc(1);
+ sym(1).Node = node;
+} break;
+./
+
+UiMultilineStringStatement: UiMultilineStringLiteral T_AUTOMATIC_SEMICOLON ; -- automatic semicolon
+UiMultilineStringStatement: UiMultilineStringLiteral T_SEMICOLON ;
+/.
+case $rule_number: {
+ AST::ExpressionStatement *node = makeAstNode<AST::ExpressionStatement> (driver->nodePool(), sym(1).Expression);
+ node->semicolonToken = loc(2);
+ sym(1).Node = node;
+} break;
+./
+
+UiObjectMember: UiQualifiedId T_COLON UiMultilineStringStatement ;
+/. case $rule_number: ./
UiArrayObjectMember: UiQualifiedId T_COLON Statement ;
/. case $rule_number: ./
UiObjectMember: UiQualifiedId T_COLON Statement ;