diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2022-07-18 14:38:50 +0200 |
---|---|---|
committer | Fabian Kosmale <fabian.kosmale@qt.io> | 2022-07-19 10:02:03 +0200 |
commit | e814ff1e86bcb2824c384e88bffc263aa381df9a (patch) | |
tree | 627c816944697aa9376b3c810b78a7a53bf6bf96 /src/qml/parser | |
parent | 0923817ddadd35e43bc09449436e282f834d566f (diff) |
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 <ulf.hermann@qt.io>
Diffstat (limited to 'src/qml/parser')
-rw-r--r-- | src/qml/parser/qqmljs.g | 24 |
1 files changed, 24 insertions, 0 deletions
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 |