aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/parser/qqmljs.g
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/parser/qqmljs.g')
-rw-r--r--src/qml/parser/qqmljs.g18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g
index 7defdb8a08..6ee4fe2b18 100644
--- a/src/qml/parser/qqmljs.g
+++ b/src/qml/parser/qqmljs.g
@@ -63,7 +63,8 @@
%token T_RBRACE "}" T_RBRACKET "]" T_REMAINDER "%"
%token T_REMAINDER_EQ "%=" T_RETURN "return" T_RPAREN ")"
%token T_SEMICOLON ";" T_AUTOMATIC_SEMICOLON T_STAR "*"
-%token T_STAR_STAR "**" T_STAR_EQ "*=" T_STRING_LITERAL "string literal"
+%token T_STAR_STAR "**" T_STAR_STAR_EQ "**=" T_STAR_EQ "*="
+%token T_STRING_LITERAL "string literal"
%token T_PROPERTY "property" T_SIGNAL "signal" T_READONLY "readonly"
%token T_SWITCH "switch" T_THIS "this" T_THROW "throw"
%token T_TILDE "~" T_TRY "try" T_TYPEOF "typeof"
@@ -2186,7 +2187,13 @@ UnaryExpression: T_NOT UnaryExpression;
ExponentiationExpression: UnaryExpression;
ExponentiationExpression: UpdateExpression T_STAR_STAR ExponentiationExpression;
-/. case $rule_number: { UNIMPLEMENTED; } ./
+/.
+ case $rule_number: {
+ AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Exp, sym(3).Expression);
+ node->operatorToken = loc(2);
+ sym(1).Node = node;
+ } break;
+./
MultiplicativeExpression: ExponentiationExpression;
@@ -2489,6 +2496,13 @@ AssignmentOperator: T_STAR_EQ;
} break;
./
+AssignmentOperator: T_STAR_STAR_EQ;
+/.
+ case $rule_number: {
+ sym(1).ival = QSOperator::InplaceExp;
+ } break;
+./
+
AssignmentOperator: T_DIVIDE_EQ;
/.
case $rule_number: {