Правила BNF для перечислимых типов ограничивает возможность объявления констант типа до идентификаторов.
<перечислимый тип>::= (<список идентификаторов>)
<список идентификаторов>::= <список идентификаторов>, <идентификатор>
| <идентификатор>
Контекстное правило:
<идентификаторы> <перечислимого типа> не могут дублировать другие идентификаторы в данной области видимости.
Данный идентификатор может быть частью только одного перечислимого типа в пределах области видимости. Это позволяют определение типа идентификатора и исключает конфликты значений такие как в случае с выше приведенным примером DayOfWeek и WeekEndDay, где порядок Saturday и Sunday был разный в разных типах.
Переменные и константы перечислимого типа могут быть использованы в операторах присваивания и с операторами сравнения, но все операнды в таком выражении должны быть одного перечислимого типа. Значение логического выражения использующего операторы сравнения со значениями перечислимых типов определяется в соответствии с порядком, в котором эти значения появляются при объявлении типа.
Например, для любого состояния s,
A < B(s) = TRUE, если и только если A(s) появляется до B(s) в объявлении типа, которому принадлежат A и B.
Ситуация аналогична для других операторов сравнения.