Returns the compiled form of the given pattern. The syntax of
the compiled pattern is:
CompiledPattern:
EntryList
EntryList:
Entry
EntryList Entry
Entry:
TagField
TagField data
TagField:
Tag Length
TaggedData
Tag:
pattern_char_index
TAG_QUOTE_CHARS
Length:
short_length
long_length
TaggedData:
TAG_QUOTE_ASCII_CHAR ascii_char
where `short_length' is an 8-bit unsigned integer between 0 and
254. `long_length' is a sequence of an 8-bit integer 255 and a
32-bit signed integer value which is split into upper and lower
16-bit fields in two char's. `pattern_char_index' is an 8-bit
integer between 0 and 18. `ascii_char' is an 7-bit ASCII
character value. `data' depends on its Tag value.
If Length is short_length, Tag and short_length are packed in a
single char, as illustrated below.
char[0] = (Tag << 8) | short_length;
If Length is long_length, Tag and 255 are packed in the first
char and a 32-bit integer, as illustrated below.
char[0] = (Tag << 8) | 255;
char[1] = (char) (long_length >>> 16);
char[2] = (char) (long_length & 0xffff);
If Tag is a pattern_char_index, its Length is the number of
pattern characters. For example, if the given pattern is
"yyyy", Tag is 1 and Length is 4, followed by no data.
If Tag is TAG_QUOTE_CHARS, its Length is the number of char's
following the TagField. For example, if the given pattern is
"'o''clock'", Length is 7 followed by a char sequence of
o&nbs;'&nbs;c&nbs;l&nbs;o&nbs;c&nbs;k
.
TAG_QUOTE_ASCII_CHAR is a special tag and has an ASCII
character in place of Length. For example, if the given pattern
is "'o'", the TaggedData entry is
((TAG_QUOTE_ASCII_CHAR&nbs;<.