SNOBOL4BLOCKS(1)
π SNOBOL4BLOCKS π
okay bestie, buckle up, this is the snobol4blocks page from the CSNOBOL4 Manual and it's literally about making strings exist in 3D π¦
β¨ NAME β¨
snobol4blocks β the SNOBOL4 BLOCKS extension π
πΈ DESCRIPTION πΈ
The BLOCKS extension was developed by Jim Gimpel while he was at Bell Labs. A BLOCK is a data type that extends string concatenation to three dimensions π
like bestie, strings but they're architecture now.
Enabling the BLOCKS extension with the -BLOCKS control line (peep snobol4ctrl(1)) or the -B command line option (peep snobol4cmd(1)) alters the definition and precedence of the percent and pound operators (peep snobol4op(1)). so yeah, those two little guys change meaning, no cap π
Here's the vibe:
- 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. periodt π
π§ Functions π§
For dir arguments:0=βverticalβ,1=βhorizontalβ,2=βnormalββ memorize this, it comes back like seventeen times π
BCHAR(b)β Returns character representation of BLOCKbas anARRAYof strings, dimensionedd x h, wheredis the depth of the block andhis the height of the block (renamed fromCHAR). it's giving glow-up β¨BOX(h,w,d)β Returns aBLOCKof fill characters of heighth, widthwand depthd. the classic box, iconic πBLOCKSIZE(b,dir)β ReturnINTEGERsize of blockbin directiondir. numbers bestie π’CC(unit)β Accessor function to change carriage control on I/O unitunit.- If value is positive, ASA (FORTRAN style) carriage control is output in column one (the
asa2pdfprogram 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).
- If value is positive, ASA (FORTRAN style) carriage control is output in column one (the
DEF(b)β Returns aBLOCKwhose organization is deferred. it's keeping its options open πDEPTH(b)β ReturnsINTEGERdepth of BLOCKb. πDUP(b,dir,n)β Duplicate BLOCKbntimes in directiondir. copy paste slay π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. it forgot its whole origin story πFRONT(h,w)β A special case ofBOX(). Returns aBLOCKof fill characters of heighthand widthwand of depth zero. flat bestie π«ΆHEIGHT(b)β ReturnsINTEGERheight of BLOCKb. πHOR(n)β A special case ofBOX(). Returns a block of fill characters whose width innand height and depth zero.HOR_REG(b)β Accessor which returns or sets the horizontal registration of BLOCKb. Values:'RIGHT','RIGHT',´´(centered). yes it says'RIGHT'twice, that's canon, don't @ me πIT(b)β Returns a block whose organization is iterated orthogonally to parent. πLOC(n,b,dir)β Returns the location ofNODEnin BLOCKbin directiondir. πLRECL(unit)β Undocumented!! Accessor for I/O unit record length??? π«£ like girl even the manpage is confusedMERGE(b1,b2,....)β Returns aBLOCKwhose organization is merged. π«NODE(b)β Returns aBLOCKwhose organization is deferred.NORM_REG(b)β Accessor which returns or sets the normal plane registration of BLOCKb. Values:'FRONT','REAR',´´(centered).OVY(b1,b2)β βOverlayβ β concatenation in the βnormalβ plane.PRINT(b,[i1,....])β Prints block to I/O unit5. Additional unit numbers may be given to βbroadcastβ BLOCKb. π’REP(b)β Returns aBLOCKwhose organization is replicated. β¨SER(b1,b2)β βSerial?β β concatenation in the vertical plane. the question mark is doing a lot of heavy lifting here bestie πSLAB(b,dir,offset,length)β Returns a physical block which is a cross-sectional cut ofb, in directiondir. cross section like a lil science diagram π§VER(n)β A special case ofBOX(). Returns aBLOCKof fill characters whose height isn.VER_REG(b)β Accessor which returns or sets the vertical registration of BLOCKb. Values:'TOP','BOTTOM',´´(centered).WIDTH(b)β ReturnsINTEGERwidth of BLOCKb. π
π Keywords π
&FILLβ The fill character (defaults to space). default is a space, cute, minimalist, we love her π
π₯ 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! π©π©π© iconic
http://www.regressive.org/snobol4/blocks/
and that's the whole page bestie π CSNOBOL4B 2.3.1, dated March 31, 2022 β go forth and build ur lil 3D string sculptures, u absolute main character πβ¨π¦
π¦ where this page comes from
- fedora 43: snobol4 2.3.1-7.fc43 Β· BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND ISC
- fedora 43: snobol4 2.3.1-7.fc43 Β· BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND ISC
- fedora 44: snobol4 2.3.1-8.fc44 Β· BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND ISC
- fedora 44: snobol4 2.3.1-8.fc44 Β· BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND ISC
- opensuse-leap 16.0: snobol4 2.3.1-160000.2.2 Β· BSD-2-Clause
- opensuse-leap 16.0: snobol4 2.3.1-160000.2.2 Β· BSD-2-Clause
- opensuse-leap 16.0: snobol4 2.3.1-160000.2.2 Β· BSD-2-Clause
- opensuse-leap 16.0: snobol4 2.3.1-160000.2.2 Β· BSD-2-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms