|
|
BSD 4.3
IMAGE(2) Icon Program Library IMAGE(2)
NNNNAAAAMMMMEEEE
Image - generalized string image of Icon value
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
IIIImmmmaaaaggggeeee((((xxxx))))
IIIImmmmaaaaggggeeeexxxx((((xxxx))))
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
The procedure IIIImmmmaaaaggggeeee((((xxxx)))) produces a string image of the value
xxxx. The value produced is a generalization of the value pro-
duced by the Icon function iiiimmmmaaaaggggeeee((((xxxx)))), providing detailed
information about structures.
Tags are used to uniquely identify structures. A tag con-
sists of a letter identifying the type followed by an
integer. The tag letters are LLLL for lists, RRRR for records, and
TTTT for tables. The first time a structure is encountered, it
is imaged as the tag followed by a colon, followed by a
representation of the structure. If the same structure is
encountered again, only the tag is given.
An example is
a := ["x"]
push(a,a)
t := table()
push(a,t)
t[a] := t
t["x"] := []
t[t] := a
write(Image(t))
which produces
T1:["x"->L1:[],L2:[T1,L2,"x"]->T1,T1->L2]
Note that a table is represented as a list of entry and
assigned values separated by ---->>>>s.
The procedure IIIImmmmaaaaggggeeeexxxx((((xxxx)))) is similar to IIIImmmmaaaaggggeeee((((xxxx)))), except that
newlines and spaces are inserted to that the printed result
is displayed on multiple lines with indentation. There are
other formatting details that differ between the two pro-
cedures. For the example given above, the result of
write(Imagex(t))
is
T1:{
"x"
---
Version 5.9 The University of Arizona - 6/28/83 1
IMAGE(2) Icon Program Library IMAGE(2)
L1:[]
]
------
L2:[
T1
L2
"x"
]
---
T1
------
T1
---
L2
------
]
AAAAUUUUTTTTHHHHOOOORRRR
Ralph E. Griswold
Version 5.9 The University of Arizona - 6/28/83 2
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.