perm filename BB.DOC[206,LSP] blob sn#251561
filedate 1976-12-06 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00002 00002 BRIEF DOCUMENTATION FOR BLACKBOARD-LISP PRETTY PRINTING PROGRAM
BRIEF DOCUMENTATION FOR BLACKBOARD-LISP PRETTY PRINTING PROGRAM
This program takes regular S-expression Lisp functions as
source, converts them to McCarthy's blackboard Lisp (approximately),
and pretty prints them. If output is to be on the XGP, it will use
multiple fonts. --Nick Littlestone
The program runs in IL (ILISP).
To read in the program and perform initialization, execute:
(DSKIN (206 LSP) BBPP)
This file contains commands to read the Lap file and to perform
Loading the program works with 50 pages and 5000 words of binary
program space. More space may be required, but try R IL 55.
to produce pretty printed output execute one of:
where the value of u is a list of atoms which are names of the EXPRs
and FEXPRs to be printed. (Other properties of the atoms besides
EXPR and FEXPR can also be printed--see below for how.)
BBTTY and BBLPT produce output formatted for fixed width
characters with line lengths appropriate for the TTY and the line
printer, respectively. No font shift characters are included in the
BBXGP produces output formatted for the XGP, with XGP escape
characters for font shifts and indentation. If the output is written
on a file, the file can be spooled with XSPOOL (You have to give the
spooler a list of the font names. This information is available to
the program. The program should be changed to write this information
as the first line of the file, in a format acceptable to the
BBPUB produces output which can be used as PUB source text.
It contains PUB control characters for font shifts and indentation.
The output produced by any of these functions can be written
on a file by using DSKOUT, e.g.
(DSKOUT FILNAM (BBXGP FUNS))
If the value of FUNS is a list of function names, then each function
will be pretty printed on the file FILNAM. (See the description of
DSKOUT in the Lisp manual for more details.)
SPECIFYING THE PROPERTIES TO BE PRINTED
BBPROPS is a list of the properties to be pretty printed,
currently (EXPR FEXPR). It can be changed to include other
properties. Any property other than VALUE will be printed as if it
is a function body. VALUE properties will be printed as Lisp
SPECIFYING FONTS AND UPPER/LOWER CASE
You only need to do this if you want to use something other
than the standard.
The program refers symbolically to 4 fonts, called VAR,
CONST, SYM, and BOLD. For each of these the program must be told the
name of the font file to be used, and also it must be given a PUB
font select character to use for that font. If one wants to use the
same actual font for more than one of these symbolic fonts, then
specify the same PUB font select character, for both of them, and
don't give a font file name for the second one.
To specify this information, call the fexpr FONT once for
each symbolic font. The first argument is the symbolic name, the
second is the PUB font select character, and the rest of the argument
list is either a file name or a PPN follewed by a file name, both in
the same form that the INPUT function expects, e.g.
(FONT SYM A (1 NXL) (FONT30 . XXX))
(FONT BOLD B BASB30)
The default PPN is (XGP SYS) and the default extension is .FNT.
VAR is used to print variables.
CONST is used to print S-expression constants.
SYM is used to print symbols (e.g. +,*).
BOLD is used to print reserved words.
See the file BBPP[206,NXL] for the current fonts used.
Normally the information is read from that file during
initialization, so you need not specify it.
Only one call to FONT can be made for each symbolic font
unless CLEARFONTS is executed to clear the specifications for all of
When the FONT function is called, the specified font file
will be read to find out the character widths.