The oracle accepts any valid SEL logic expression with the exception of comments and edge triggers.
Examples of valid expressions include:
A
A AND B
A AND (B OR NOT C)
(IN202 AND NOT 52AA1) OR (NOT IN202 AND 52AA1)
NOT (FBF1 OR IN203 OR IN204) AND PB6_PUL AND NOT PLT06
(NOT SV08 OR 50P5) AND (NOT ZLOAD OR (ZLOAD AND (32QF OR 32QR))) AND NOT (32PR OR 32GR OR 32QR)
As well as the older style:
A*B
A*(B+C)
!(50L+51G+52A)
You may use the logical operators AND
, OR
, NOT
, *
, +
, and
!
Literals, referred to as WORD BITS
in SEL logic, can be any continuous string of letters or numbers, including _
underscore. The newer version of SEL logic requires the literals to
be separated by a blank space, whereas the older version of SEL logic does not.
Examples of valid literals include:
A
, B
, C
1
, 2
, 3
IN101
, 52AA1
, PB6_PUL
, 51P1T
Any combination of parentheses (
)
may be used as long as they are evenly matched.
Expressions in parentheses (
)
have the highest precedence, followed by NOT
, then AND
, with OR
being last.
A AND B OR C # Evaluates A and B first.
A AND (B AND C) # Evaluates B and C first.
A OR B AND C # Evaluates B and C first.
A OR B AND NOT C # NOT will be applied to C before AND.
NOT
is right-associative in SEL logic, meaning that it applies only to the literal directly to its right.
NOT A # Accepted.
A NOT # Rejected.
A AND NOT(B AND C) # NOT applies to the outcome of B AND C.
The oracle will not allow you to enter incorrect syntax. Any errors will flag one of the following errors below the input box in red:
Unmatched Parentheses
Illegal Character
NOT is Right Associative
Unexpected Input
Unexpected input likely means that the operators and literals are not properly matched. Too many operators or literals, for example, will flag this error.
Examples of Unexpected Input
include:
A OR B OR
A OR B B
OR A AND B
Rhett Dewey 2024