Format items are a means of inserting data into a literal string. They have a wide variety of uses:
stream
.
Format items can be divided into two classes based on their syntax:
The syntax of a static format item is as follows:
escape
character; by default, %
, followed by
Static format items are
%%
—insert an explicit percent sign,
%_
—insert an explicit space character,
%n
—insert an explicit newline character,
%t
—insert an explicit tab character,
%0#
through to %255#
—insert an explicit byte with the given value,
%{...}
—a sequence of characters, using their numeric character codes; a numeric base may
be specified in front of the first brace, for example %16r{0d, 0a}
,
%#
—insert an explicit octothorpe character (#
),
%)
—insert an explicit closing parenthesis,
%"
—insert an explicit double quote character,
%'
—insert an explicit single quote character,
%/
—indicates a point where line breaking can occur,
%[
and %]
—protect the delimited text from line
breaking, and
%@%
—insert an explicit percent sign inside a macro
expansion.
The format items that represent white space (%t
, %n
, and %_
) can take an s
format modifier, which indicates that white-space stripping can be applied to
the character.
process output "First line%sn" output "%snSecond line%sn"
Dynamic format items are generally used with the format operator, as in:
For example, to pad a literal string with spaces to a width of eight characters,
process output "8fg" % "foo" || "END"This outputs
foo END
Two kinds of format strings are supported: format instructions and templates. A format instruction consists of a format command preceded by one or more format modifiers. A template consists of <, a set of template characters, and >.
For example,
import "ombcd.xmd" unprefixed process local bcd foo initial { 233.33 } local string bar initial { "'Twas brillig and the slithy toves" } output "Foo padded to right to 8 digits: [" || "8fd" % foo || "]%n" output "Bar uppercased: " || "ug" % bar || "%n"
This examples presents two format instructions:
"8fd" % foo
, in which 8f is the format modifier, d is the format command, and %
is the format operator, and
"ug" % bar
, in which u is the format modifier,
g is the format command, and %
is the format operator.
At the end of the line containing each of the two format instructions, there is also a static format item,
%n
, to insert a newline character.
The format string varies according to the type of the variable. To format the values of specific data types using dynamic format items, see:
The format commands used in dynamic format items, and the types they are used with, are:
a
—integer data type
formatting
b
—integer data type
formatting
d
—integer data type
formatting, BCD data type
formatting
g
—string data
formatting
i
—integer data type
formatting
q
—parsed data formatting
p
—parsed data formatting
v
—parsed data formatting
x
—deprecated format command used instead of g
for pattern variables in
earlier versions of OmniMark
y
—symbol declaration
@
—macro
arguments