Benchmark Description Language permits the use of escape sequences (for example, \, \n, \t, \n) in formatting string constants. The valid escape sequences match those in the programming language C and extend this set with the hexadecimal sequence \h. The meaning of the escape sequences are as follows:
| Escape sequence | Description |
|---|---|
| \ | line continuation |
| \n | new line, line feed |
| \r | carriage return |
| \t | tabulator |
| \v | vertical tab |
| \b | backspace |
| \a | bell alert |
| \f | new page, form feed |
| \\ | backslash |
| \" | double quote |
| \h | hexadecimal representation |
| \x | next character in hexadecimal representation
Example: \x2A indicates an asterisk |
dcltrans
transaction TString
var
sString1, sString2: string;
begin
sString1 := "This is a constant string"
"split into two lines"
sString2 := "This is the first line, \
this is still the first line\nThis is the second line";
write(sString1); writeln; write(sString2); writeln;
end TString;const
cbuf1 := "\h4142434A" // "ABCJ" length = 4
"\h204142434A20" // " ABCJ " length = 6
"\x20b\x20c\x20d"; // " b c d" length = 6
// "ABCJ ABCJ b c d" length = 16
dcltrans
transaction TMain
const
c1 := "abc";
var
s1 : string;
n1 : number;
begin
s1 := "abc"
"def";
s1 := cbuf1;
n1 := sizeof(cbuf1);
write("length=" + string(n1)); writeln;
write("\h4142434A" // "ABCJ" length = 4
"\h204142434A20" // " ABCJ " length = 6
"a\x20\x20b\x20c\x20d" // "a b c d" length = 8
// "ABCJ ABCJ a b c d" length = 18);
writeln;
write("length=" + string(sizeof(
"\h4142434A" // "ABCJ" length = 4
"\h204142434A20" // " ABCJ " length = 6
"a\x20\x20b\x20c\x20d") // "a b c d" length = 8
// "ABCJ ABCJ a b c d" length = 18
));
writeln;
end TMain;
length=16 ABCJ ABCJ a b c d length=18