! Logical negation (NOT) () Parenthesis expr := regularExpr ['{' attrExpr '}'] attrExpr := attrTerm | attrExpr '||' attrTerm attrTerm := attrFactor | attrTerm '&&' attrFactor attrFactor := '(' attrExpr ')' | '!' attrFactor | relationExpr relationExpr := attributeId compareOp numValue | attributeId equalityOp stringValue compareOp := '==' | '!=' | '>' | '<' | '>=' | '<=' equalityOp := '==' | '!=' attributeId := character (character|digit|underscore)* numValue := digit+ | '-' digit+ | '0x' hex_digit+ | '0X' hex_digit+ stringValue := '"' character* '"' is defined in Section 4.4.1, Resource Regular Expressions. regularExpr RULE 4.4.4 The grouping operator in a logical expression SHALL have the highest precedence. () RULE 4.4.5 The not operator in a logical expression SHALL have the next highest precedence after the grouping ! operator. RULE 4.4.6 The or operator in a logical expression SHALL have the lowest precedence. || Table 4.4.8 Examples
! Logical negation (NOT) () Parenthesis expr := regularExpr ['{' attrExpr '}'] attrExpr := attrTerm | attrExpr '||' attrTerm attrTerm := attrFactor | attrTerm '&&' attrFactor attrFactor := '(' attrExpr ')' | '!' attrFactor | relationExpr relationExpr := attributeId compareOp numValue | attributeId equalityOp stringValue compareOp := '==' | '!=' | '>' | '<' | '>=' | '<=' equalityOp := '==' | '!=' attributeId := character (character|digit|underscore)* numValue := digit+ | '-' digit+ | '0x' hex_digit+ | '0X' hex_digit+ stringValue := '"' character* '"' regularExpr is defined in Section 4.4.1, Resource Regular Expressions. RULE 4.4.4 The grouping operator () in a logical expression SHALL have the highest precedence. RULE 4.4.5 The not operator ! in a logical expression SHALL have the next highest precedence after the grouping operator. RULE 4.4.6 The or operator || in a logical expression SHALL have the lowest precedence. Table 4.4.8 Examples
vpp43_2017-10-17.docx