declare data-letters


declare data-letters string string?


The declare data-letters declaration specifies additional characters that should be considered as letters when encountered in input data. The declaration must appear before any rules in the program.

The first string specifies a new set of lowercase letters. The characters in the second string are the corresponding uppercase letters. If both strings are given, they must be of the same length. If the second string is omitted, then all characters in the first string are considered to be both uppercase and lowercase letters.

The new letters declared in a declare data-letters declaration do not affect the letters that can be used in unquoted names in OmniMark. Unquoted names are names that only contain characters permitted in OmniMark names.

OmniMark uses the definition of letters found in the declare data-letters declaration in the following situations:

  • pattern matching with the letter, uc, or lc patterns,
  • when determining the uppercase and lowercase equivalents of letters specified in patterns that are preceded by the ul prefix, and
  • using the format modifiers u or l to convert data into uppercase or lowercase.

A character, including unaccented characters from a to Z, can appear more than once in either of the strings in the declare data-letters declaration: the first mapping specified in the declare data-letters declaration will be selected, if there is one; if not, the defaults are used.

The definition of OmniMark letters does not affect recognition of name characters by the SGML parser. (The way the SGML parser treats letters is governed by the SGML Declaration.)

The declare data-letters declaration must follow the translation type (if there is one) and precede all other declarations and rules in the program.

Related Syntax