EVALUATE statement.

The EVALUATE statement describes a multi-branch, multi-join structure. It may cause multiple conditions to be evaluated. The subsequent action of the runtime element depends on the results of these evaluations.

Format.

          EVALUATE selection-subject [ ALSO selection-subject ] ...

                { { WHEN selection-object [ ALSO selection-object ] ... } ...
                        imperative-statement-1 } ...

                [ WHEN OTHER imperative-statement-2 ]

                [ END-EVALUATE ]

  selection-subject.

        { identifier-1            }
        { literal-1               }
        { arithmetic-expression-1 }
        { condition-1             }
        { TRUE                    }
        { FALSE                   }

  selection-object.

        { [ NOT ] identifier-2            }
        { [ NOT ] literal-2               }
        { [ NOT ] arithmetic-expression-2 }
        { [ NOT ] range-expression        }
        { condition-2                     }
        { partial-expression-1            }
        { TRUE                            }
        { FALSE                           }
        { ANY                             }

  range-expression.

        { identifier-3            } { THROUGH } { identifier-4            }
        { literal-3               } { THRU    } { literal-4               }
        { arithmetic-expression-3 }             { arithmetic-expression-4 }