From 4987a5c6bcb971d851a71ec3b3d9783a4cbc7554 Mon Sep 17 00:00:00 2001 From: Christian Linhart Date: Wed, 20 Aug 2014 11:10:35 +0200 Subject: [PATCH] xml-xcb spec: describe switch-case V2: patch revised according to suggestion from Peter Harris: * add the restriction that inside can only refer to an enum's members, and inside can only refer to an enum's members. Reviewed-by: Peter Harris Reviewed-by: Ran Benita --- doc/xml-xcb.txt | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/doc/xml-xcb.txt b/doc/xml-xcb.txt index 6aa789b..235958d 100644 --- a/doc/xml-xcb.txt +++ b/doc/xml-xcb.txt @@ -244,18 +244,40 @@ enum; the value is restricted to one of the constants named in the enum. instead for new protocol definitions. switch expression - bitcase expression(s), fields + bitcase expression(s), fields + case expression(s), fields + This element represents conditional inclusion of fields. It can be viewed - as sequence of multiple ifs: if ( switch expression & bitcase expression ) - is non-zero, bitcase fields are included in structure. It can be used only - as the last field of a structure. + as sequence of multiple ifs: - When a bitcase includes multiple clauses, the contents of the - bitcase are only present once regardless of the number of bitcase expressions - that match. + : + if ( switch expression & bitcase expression ) is non-zero, + bitcase fields are included in structure. + + : + if ( switch expression == case expression ) is true, + then case fields are included in structure. + + It can be used only as the last field of a structure. + + When a bitcase or case includes multiple clauses, the contents + of the bitcase or case are only present once regardless of the number of + bitcase or case expressions that match. + + inside can only refer to an enum's members. + inside can only refer to an enum's members. + + A switch may contain multiple or elements. + Usually it will only contain elements + or only contain elements. + That is, mixing of and usually doesn't make any sense. + + The same value may appear in multiple or elements. + + New protocol definitions should prefer to use this instead of + and instead of . - New protocol definitions should prefer to use this instead of . Expressions ----------- -- 2.34.1