Abbreviated Combined Relation Conditions

When simple or negated simple conditions are combined in a consecutive sequence, the relation conditions may be abbreviated. You can do this by either:

  1. omitting the subject of the relation condition (the left-hand component condition).
  2. omitting both the subject and the relational operator.

The format for an abbreviated combined relation condition is:

condition { {AND} [NOT] [relation] object } ...
            {OR }

Within a sequence of relation conditions, both of the above forms of abbreviation may be used. When you use such abbreviations, it is as if the last preceding stated subject were inserted in place of the omitted subject, and the last stated relational operator were inserted in place of the omitted relational operator. The insertion of an omitted subject or relational operator terminates once a complete simple condition is encountered within a complex condition. Except for the source of the initial relation condition, no parentheses may appear in the sequence of abbreviated conditions.

If the word NOT is used in an abbreviated combined relation condition, it has the following meaning:

  1. If the word immediately following NOT is GREATER, ">", LESS, "<", EQUAL, "<=", ">=", or "=", then the NOT participates as part of the relational operator.
  2. Otherwise, the NOT is interpreted as a logical operator and the implied insertion of the subject or relational operator results in a negated relation condition.

The following are examples of abbreviated combined relation conditions and their expanded equivalents:

A > B AND NOT < C      (A > B) AND (A NOT < C)
(A > B AND NOT < C)    (A > B) AND (A NOT < C)
A NOT = B OR C         (A NOT = B) OR (A NOT = C)
NOT A = B OR C         (NOT (A = B)) OR (A = C)
NOT (A > B OR < C)      NOT ((A > B) OR (A < C))

--newARC compiler option

With --newARC compiler option,the syntax rules for Abbreviated Combined Relation conditions become relaxed to allow for parenthesis to appear immediately after the relation.

For example:

IF A = (B OR C OR D)

would now be accepted by the compiler.