|
|
| |
SNOBOL4BLOCKS(1) |
CSNOBOL4 Manual |
SNOBOL4BLOCKS(1) |
snobol4blocks - SNOBOL4 BLOCKS extension
The BLOCKS extension was developed by Jim Gimpel while at Bell Labs. A BLOCK is
a data type that extends string concatenation to three dimensions.
Enabling the BLOCKS extension with the -BLOCKS control line
(see snobol4ctrl(1)) or the -B command line option (see
snobol4cmd(1)) alters the definition and precedence of percent and
pound operators (see snobol4op(1)):
White space concatenates two BLOCKs in the horizontal dimension,
the percent sign (%) concatenates two BLOCKs in the vertical
dimension, and the pound sign (#) concatenates two BLOCKs in the
dimension ``normal'' to the paper (over-strike).
The functions defined below are always present when CSNOBOL4 has
been built with blocks enabled.
For dir arguments: 0=``vertical'', 1=``horizontal'',
2=``normal''
- BCHAR(b)
- Returns character representation of BLOCK b as an ARRAY of strings,
dimensioned d x h, where d is the depth of the block
and h is the height of the block (renamed from CHAR).
- BOX(h,w,d)
- Returns a BLOCK of fill characters of height h, width w and
depth d.
- BLOCKSIZE(b,dir)
- Return INTEGER size of block b in direction dir.
- CC(unit)
- Accessor function to change carriage control on I/O unit unit. If
value is positive ASA (FORTRAN style) carriage control is output in column
one (the asa2pdf program converts ASA format to PDF). If value is
zero, no carriage control is output. If value is negative, ASCII carriage
control characters are output (CSNOBOL4 extension).
- DEF(b)
- Returns a BLOCK whose organization is deferred.
- DEPTH(b)
- Returns INTEGER depth of BLOCK b.
- DUP(b,dir,n)
- Duplicate BLOCK b n times in direction dir.
- EJECT([i,...])
- Eject a page and return the null string. Optional unit numbers may be
given to ``broadcast'' the form feed.
- FIX(b)
- Returns a block whose organization is physical -- all positioning
is done at this time, and no information on how the block was formed is
retained.
- FRONT(h,w)
- A special case of BOX(). Returns a BLOCK of fill characters of
height h and width w and of depth zero.
- HEIGHT(b)
- Returns INTEGER height of BLOCK b.
- HOR(n)
- A special case of BOX(). Returns a block of fill characters whose
width in n and height and depth zero.
- HOR_REG(b)
- Accessor which returns or sets the horizontal registration of BLOCK
b. Values: 'RIGHT', 'RIGHT', ´´
(centered).
- IT(b)
- Returns a block whose organization is iterated orthogonally to
parent.
- LOC(n,b,dir)
- Returns the location of NODE n in BLOCK b in direction
dir.
- LRECL(unit)
- Undocumented!! Accessor for I/O unit record length???
- MERGE(b1,b2,....)
- Returns a BLOCK whose organization is merged.
- NODE(b)
- Returns a BLOCK whose organization is deferred.
- NORM_REG(b)
- Accessor which returns or sets the normal plane registration of BLOCK
b. Values: 'FRONT', 'REAR', ´´
(centered).
- OVY(b1,b2)
- ``Overlay'' -- concatenation in the ``normal'' plane.
- PRINT(b,[i1,....])
- Prints block to I/O unit 5. Additional unit numbers may be given to
``broadcast'' BLOCK b.
- REP(b)
- Returns a BLOCK whose organization is replicated.
- SER(b1,b2)
- ``Serial?'' -- concatenation in the vertical plane.
- SLAB(b,dir,offset,length)
- Returns a physical block which is a cross-sectional cut of b, in
direction dir
- VER(n)
- A special case of BOX(). Returns a BLOCK of fill characters whose
height is n.
- VER_REG(b)
- Accessor which returns or sets the vertical registration of BLOCK
b. Values: 'TOP', 'BOTTOM', ´´
(centered).
- WIDTH(b)
- Returns INTEGER width of BLOCK b.
- &FILL
- The fill character (defaults to space).
snobol4(1)
Blocks a new datatype for SNOBOL4, James F. Gimpel,
Communications of the ACM, Volume 15 Issue 6, June 1972, Pages
438-447
- http://deepblue.lib.umich.edu/bitstream/handle/2027.42/79574/MTSVol09-SNOBOLInMTS-May1984.pdf
- Contains a manual for the BLOCKS extension.
- http://urbanjost.altervista.org/LIBRARY/libCLI/EXE/ASA/asa_carriage_control.html
- A utility to convert ``ASA carriage control'' into PDF, complete
with green stripes!
http://www.regressive.org/snobol4/blocks/
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |