|
|||||
Functions: side effects in rule headers | |||||
Prerequisite Concepts | Related Syntax |
When selecting a rule to be performed, OmniMark examines the rules in the program. OmniMark attempts to match the pattern in the rule's header for find
, translate
, markup-comment
, and processing-instruction
rules, and it also evaluates the condition (if any) in the rule's header.
If there is a function call within any such condition or pattern that has a side effect, then whether or not that side effect occurs depends entirely on whether the function call is actually performed during rule selection.
OmniMark never evaluates the header condition or header pattern of a rule in an inactive group.
OmniMark always evaluates the header condition and header pattern of a rule that is selected and performed.
Omnimark may or may not evaluate the pattern or condition in the header of a rule that precedes the selected rule, is the same type of rule as the selected rule, and is in an active group.
OmniMark may or may not evaluate the header condition or header pattern of a markup processorr rule that follows the selected rule, is the same type of the rule as the selected rule, is in an active group, and is not a translate
or processing-instruction
rule.
The header conditions and header patterns that are actually evaluated during the selection of a rule are evaluated in the order in which the rules that contain them appear in the OmniMark program.
For the situations where it is not defined whether OmniMark evaluates a part of a rule header, different releases of OmniMark may behave differently. Furthermore, the same release of OmniMark may handle these cases differently when the OmniMark program is modified, even though the change may not seem to affect that rule.
As a consequence, OmniMark programmers should be strongly discouraged from depending on any undocumented behavior that they discover when experimenting with OmniMark programs.
Prerequisite Concepts Functions Functions: side effects |
Related Syntax define function |
---- |