1SNOBOL4BLOCKS(1)                CSNOBOL4 Manual               SNOBOL4BLOCKS(1)
2
3
4

NAME

6       snobol4blocks - SNOBOL4 BLOCKS extension
7

DESCRIPTION

9       The BLOCKS extension was developed by Jim Gimpel while at Bell Labs.  A
10       BLOCK is a data type that extends string concatenation to three
11       dimensions.
12
13       Enabling the BLOCKS extension with the -BLOCKS control line (see
14       snobol4ctrl(1)) or the -B command line option (see snobol4cmd(1))
15       alters the definition and precedence of percent and pound operators
16       (see snobol4op(1)):
17
18       White space concatenates two BLOCKs in the horizontal dimension, the
19       percent sign (%) concatenates two BLOCKs in the vertical dimension, and
20       the pound sign (#) concatenates two BLOCKs in the dimension “normal” to
21       the paper (over-strike).
22
23       The functions defined below are always present when CSNOBOL4 has been
24       built with blocks enabled.
25
26   Functions
27       For dir arguments: 0=“vertical”, 1=“horizontal”, 2=“normal”
28
29       BCHAR(b)
30           Returns character representation of BLOCK b as an ARRAY of strings,
31           dimensioned d x h, where d is the depth of the block and h is the
32           height of the block (renamed from CHAR).
33
34       BOX(h,w,d)
35           Returns a BLOCK of fill characters of height h, width w and depth
36           d.
37
38       BLOCKSIZE(b,dir)
39           Return INTEGER size of block b in direction dir.
40
41       CC(unit)
42           Accessor function to change carriage control on I/O unit unit.  If
43           value is positive ASA (FORTRAN style) carriage control is output in
44           column one (the asa2pdf program converts ASA format to PDF).  If
45           value is zero, no carriage control is output.  If value is
46           negative, ASCII carriage control characters are output (CSNOBOL4
47           extension).
48
49       DEF(b)
50           Returns a BLOCK whose organization is deferred.
51
52       DEPTH(b)
53           Returns INTEGER depth of BLOCK b.
54
55       DUP(b,dir,n)
56           Duplicate BLOCK b n times in direction dir.
57
58       EJECT([i,...])
59           Eject a page and return the null string.  Optional unit numbers may
60           be given to “broadcast” the form feed.
61
62       FIX(b)
63           Returns a block whose organization is physical -- all positioning
64           is done at this time, and no information on how the block was
65           formed is retained.
66
67       FRONT(h,w)
68           A special case of BOX().  Returns a BLOCK of fill characters of
69           height h and width w and of depth zero.
70
71       HEIGHT(b)
72           Returns INTEGER height of BLOCK b.
73
74       HOR(n)
75           A special case of BOX().  Returns a block of fill characters whose
76           width in n and height and depth zero.
77
78       HOR_REG(b)
79           Accessor which returns or sets the horizontal registration of BLOCK
80           b.  Values: 'RIGHT', 'RIGHT', ´´ (centered).
81
82       IT(b)
83           Returns a block whose organization is iterated orthogonally to
84           parent.
85
86       LOC(n,b,dir)
87           Returns the location of NODE n in BLOCK b in direction dir.
88
89       LRECL(unit)
90           Undocumented!! Accessor for I/O unit record length???
91
92       MERGE(b1,b2,....)
93           Returns a BLOCK whose organization is merged.
94
95       NODE(b)
96           Returns a BLOCK whose organization is deferred.
97
98       NORM_REG(b)
99           Accessor which returns or sets the normal plane registration of
100           BLOCK b.  Values: 'FRONT', 'REAR', ´´ (centered).
101
102       OVY(b1,b2)
103           “Overlay” -- concatenation in the “normal” plane.
104
105       PRINT(b,[i1,....])
106           Prints block to I/O unit 5.  Additional unit numbers may be given
107           to “broadcast” BLOCK b.
108
109       REP(b)
110           Returns a BLOCK whose organization is replicated.
111
112       SER(b1,b2)
113           “Serial?” -- concatenation in the vertical plane.
114
115       SLAB(b,dir,offset,length)
116           Returns a physical block which is a cross-sectional cut of b, in
117           direction dir
118
119       VER(n)
120           A special case of BOX().  Returns a BLOCK of fill characters whose
121           height is n.
122
123       VER_REG(b)
124           Accessor which returns or sets the vertical registration of BLOCK
125           b.  Values: 'TOP', 'BOTTOM', ´´ (centered).
126
127       WIDTH(b)
128           Returns INTEGER width of BLOCK b.
129
130   Keywords
131       &FILL
132           The fill character (defaults to space).
133

SEE ALSO

135       snobol4(1)
136
137       Blocks a new datatype for SNOBOL4, James F. Gimpel, Communications of
138       the ACM, Volume 15 Issue 6, June 1972, Pages 438-447
139
140       http://deepblue.lib.umich.edu/bitstream/handle/2027.42/79574/MTSVol09-SNOBOLInMTS-
141       May1984.pdf
142           Contains a manual for the BLOCKS extension.
143
144       http://urbanjost.altervista.org/LIBRARY/libCLI/EXE/ASA/asa_carriage_control.html
145           A utility to convert “ASA carriage control” into PDF, complete with
146           green stripes!
147
148       http://www.regressive.org/snobol4/blocks/
149
150
151
152CSNOBOL4B 2.3.1                 March 31, 2022                SNOBOL4BLOCKS(1)
Impressum