This Not
syntactic predicate serves the same purpose as the And
predicate, only it inverts the value. If parsing of the RuleExpression
subrule fails, the rule in which the predicate is encountered will be parsed as if there were no predicate. If it’s successfully parsed, the entire rule that is being parsed will be rolled back.
In this example, the Block
rule will be parsed only if the ‘{‘ character is not found in a current parsing position.