Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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
       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.

   Functions
       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.

   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/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/

CSNOBOL4B 2.3.1			March 31, 2022		      SNOBOL4BLOCKS(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=snobol4blocks&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help