From e814ff1e86bcb2824c384e88bffc263aa381df9a Mon Sep 17 00:00:00 2001 From: Fabian Kosmale Date: Mon, 18 Jul 2022 14:38:50 +0200 Subject: QML: Support negative values in enums [ChangeLog][QML] It is now possible to use negative integers as values for QML enum declarations. Change-Id: I321ad45ab41d5ef23d37d202a384d40e2e1e239d Reviewed-by: Ulf Hermann --- src/qml/parser/qqmljs.g | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/qml') diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g index c87bfa09ad..ad0aeb2b74 100644 --- a/src/qml/parser/qqmljs.g +++ b/src/qml/parser/qqmljs.g @@ -1485,6 +1485,18 @@ EnumMemberList: T_IDENTIFIER T_EQ T_NUMERIC_LITERAL; } ./ + +EnumMemberList: T_IDENTIFIER T_EQ T_MINUS T_NUMERIC_LITERAL; +/. + case $rule_number: { + AST::UiEnumMemberList *node = new (pool) AST::UiEnumMemberList(stringRef(1), -sym(4).dval); + node->memberToken = loc(1); + node->valueToken = combine(loc(3), loc(4)); + sym(1).Node = node; + break; + } +./ + EnumMemberList: EnumMemberList T_COMMA T_IDENTIFIER; /. case $rule_number: { @@ -1506,6 +1518,18 @@ EnumMemberList: EnumMemberList T_COMMA T_IDENTIFIER T_EQ T_NUMERIC_LITERAL; } ./ + +EnumMemberList: EnumMemberList T_COMMA T_IDENTIFIER T_EQ T_MINUS T_NUMERIC_LITERAL; +/. + case $rule_number: { + AST::UiEnumMemberList *node = new (pool) AST::UiEnumMemberList(sym(1).UiEnumMemberList, stringRef(3), -sym(6).dval); + node->memberToken = loc(3); + node->valueToken = combine(loc(5), loc(6)); + sym(1).Node = node; + break; + } +./ + QmlIdentifier: T_IDENTIFIER | T_PROPERTY | T_SIGNAL -- cgit v1.2.3