diff --git a/docs/maintainers/manifest-files.md b/docs/maintainers/manifest-files.md index 590edb24558ab7..a10f5464e72373 100644 --- a/docs/maintainers/manifest-files.md +++ b/docs/maintainers/manifest-files.md @@ -354,6 +354,7 @@ whitespace-character = | ? U+000D "CARRIAGE RETURN" ? | ? U+0020 "SPACE" ? ; optional-whitespace = { whitespace-character } ; +required-whitespace = whitespace-character, { optional-whitespace } ; lowercase-alpha = | "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" @@ -365,6 +366,9 @@ identifier-character = | lowercase-alpha | digit ; +platform-expression-list = +| platform-expression { ",", optional-whitespace, platform-expression } ; + platform-expression = | platform-expression-not | platform-expression-and @@ -373,21 +377,39 @@ platform-expression = platform-expression-identifier = | identifier-character, { identifier-character }, optional-whitespace ; +platform-expression-grouped = +| "(", optional-whitespace, platform-expression, ")", optional-whitespace ; + platform-expression-simple = | platform-expression-identifier -| "(", optional-whitespace, platform-expression, ")", optional-whitespace ; +| platform-expression-grouped ; + +platform-expression-unary-keyword-operand = +| required-whitespace, platform-expression-simple +| optional-whitespace, platform-expression-grouped ; platform-expression-not = | platform-expression-simple -| "!", optional-whitespace, platform-expression-simple ; +| "!", optional-whitespace, platform-expression-simple +| "not", platform-expression-unary-keyword-operand ; + +platform-expression-binary-keyword-first-operand = +| platform-expression-not, required-whitespace +| platform-expression-grouped ; + +platform-expression-binary-keyword-second-operand = +| required-whitespace, platform-expression-not +| platform-expression-grouped ; platform-expression-and = -| platform-expression-not, { "&", optional-whitespace, platform-expression-not } ; +| platform-expression-not, { "&", optional-whitespace, platform-expression-not } +| platform-expression-binary-keyword-first-operand, { "and", platform-expression-binary-keyword-second-operand } ; platform-expression-or = -| platform-expression-not, { "|", optional-whitespace, platform-expression-not } ; +| platform-expression-not, { "|", optional-whitespace, platform-expression-not } +| platform-expression-binary-keyword-first-operand, { "or", platform-expression-binary-keyword-second-operand } (* to allow for future extension *) ; -top-level-platform-expression = optional-whitespace, platform-expression ; +top-level-platform-expression = optional-whitespace, platform-expression-list ; ``` Basically, there are four kinds of expressions -- identifiers, negations, ands, and ors.