home | help
SNOBOL4BLOCKS(1)		 CSNOBOL4 Manual		SNOBOL4BLOCKS(1)

NAME
     snobol4blocks - SNOBOL4 BLOCKS extension

DESCRIPTION
     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 per-
     cent sign (%) concatenates two BLOCKs in the vertical  dimension,	and  the
     pound sign (#) concatenates two BLOCKs in the dimension "normal" to the pa-
     per (over-strike).

     The functions defined below are always present when CSNOBOL4 has been built
     with blocks enabled.

   Functions
     For dir arguments: 0="vertical", 1="horizontal", 2="normal"

     BCHAR(b)
	 Returns character representation of BLOCK b as an ARRAY of strings, di-
	 mensioned  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 direc-
	 tion 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.

   Keywords
     &FILL
	 The fill character (defaults to space).

SEE ALSO
     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/han-
     dle/2027.42/79574/MTSVol09-SNOBOLInMTS-May1984.pdf
	 Contains a manual for the BLOCKS extension.

     http://urbanjost.altervista.org/LIBRARY/libCLI/EXE/ASA/asa_carriage_con-
     trol.html
	 A  utility  to  convert  "ASA carriage control" into PDF, complete with
	 green stripes!

     http://www.regressive.org/snobol4/blocks/

CSNOBOL4B 2.3.1 		 March 31, 2022 		SNOBOL4BLOCKS(1)

home | help