![]() |
Up | ![]() |
TOC | Index | |||
| << 7 Included Tools | < 8.8 Pipe Input/Output | Up: 8 API Reference | 8.10 Multi-tasking > | 9 Release Notes >> | |||
8.9 Pretty Printing
8.9.0.1 PRETTY_DEFAULT
include std/pretty.e namespace pretty public constant PRETTY_DEFAULT
8.9.0.2 DISPLAY_ASCII
include std/pretty.e namespace pretty public enum DISPLAY_ASCII
8.9.0.3 INDENT
include std/pretty.e namespace pretty public enum INDENT
8.9.0.4 START_COLUMN
include std/pretty.e namespace pretty public enum START_COLUMN
8.9.0.5 WRAP
include std/pretty.e namespace pretty public enum WRAP
8.9.0.6 INT_FORMAT
include std/pretty.e namespace pretty public enum INT_FORMAT
8.9.0.7 FP_FORMAT
include std/pretty.e namespace pretty public enum FP_FORMAT
8.9.0.8 MIN_ASCII
include std/pretty.e namespace pretty public enum MIN_ASCII
8.9.0.9 MAX_ASCII
include std/pretty.e namespace pretty public enum MAX_ASCII
8.9.0.10 MAX_LINES
include std/pretty.e namespace pretty public enum MAX_LINES
8.9.0.11 LINE_BREAKS
include std/pretty.e namespace pretty public enum LINE_BREAKS
8.9.1 Routines
8.9.1.1 pretty_print
include std/pretty.e namespace pretty public procedure pretty_print(integer fn, object x, sequence options = PRETTY_DEFAULT)
Print an object to a file or device, using braces { , , , }, indentation, and multiple lines to show the structure.
Parameters:
- fn : an integer, the file/device number to write to
- x : the object to display/convert to printable form
- options : is an (up to) 10-element options sequence.
Comments:
Pass {} in options to select the defaults, or set options as below:
- display ASCII characters:
- 0 -- never
- 1 -- alongside any integers in printable ASCII range (default)
- 2 -- display as "string" when all integers of a sequence are in ASCII range
- 3 -- show strings, and quoted characters (only) for any integers in ASCII range as well as the characters: \t \r \n
- amount to indent for each level of sequence nesting -- default: 2
- column we are starting at -- default: 1
- approximate column to wrap at -- default: 78
- format to use for integers -- default: "%d"
- format to use for floating-point numbers -- default: "%.10g"
- minimum value for printable ASCII -- default 32
- maximum value for printable ASCII -- default 127
- maximum number of lines to output
- line breaks between elements -- default 1 (0 = no line breaks, -1 = line breaks to wrap only)
If the length is less than 10, unspecified options at the end of the sequence will keep the default values. e.g. {0, 5} will choose "never display ASCII", plus 5-character indentation, with defaults for everything else.
The default options can be applied using the public constant PRETTY_DEFAULT, and the elements may be accessed using the following public enum:
- DISPLAY_ASCII
- INDENT
- START_COLUMN
- WRAP
- INT_FORMAT
- FP_FORMAT
- MIN_ASCII
- MAX_ASCII
- MAX_LINES
- LINE_BREAKS
The display will start at the current cursor position. Normally you will want to call pretty_print() when the cursor is in column 1 (after printing a <code>\n</code> character). If you want to start in a different column, you should call position() and specify a value for option [3]. This will ensure that the first and last braces in a sequence line up vertically.
When specifying the format to use for integers and floating-point numbers, you can add some decoration, e.g. "(%d)" or "$ %.2f"
Example 1:
pretty_print(1, "ABC", {})
{65'A',66'B',67'C'}
Example 2:
pretty_print(1, {{1,2,3}, {4,5,6}}, {})
{
{1,2,3},
{4,5,6}
}
Example 3:
pretty_print(1, {"Euphoria", "Programming", "Language"}, {2})
{
"Euphoria",
"Programming",
"Language"
}
Example 4:
puts(1, "word_list = ") -- moves cursor to column 13
pretty_print(1,
{{"Euphoria", 8, 5.3},
{"Programming", 11, -2.9},
{"Language", 8, 9.8}},
{2, 4, 13, 78, "%03d", "%.3f"}) -- first 6 of 8 options
word_list = {
{
"Euphoria",
008,
5.300
},
{
"Programming",
011,
-2.900
},
{
"Language",
008,
9.800
}
}
See Also:
print, sprint, printf, sprintf, pretty_sprint
8.9.1.2 pretty_sprint
include std/pretty.e namespace pretty public function pretty_sprint(object x, sequence options = PRETTY_DEFAULT)
Format an object using braces { , , , }, indentation, and multiple lines to show the structure.
Parameters:
- x : the object to display
- options : is an (up to) 10-element options sequence: Pass {} to select the defaults, or set options
Returns:
A sequence, of printable characters, representing x in an human-readable form.
Comments:
This function formats objects the same as pretty_print(), but returns the sequence obtained instead of sending it to some file..
See Also:



