{Tag BREAKCOMFONT} {note this may have to formatted seperately (if we want to show exactly how it will look} {note all the function names should be in boldface of various sizes} {lispcode (BREAKCOM{note big boldface} [LAMBDA (BRKCOM BRKFLG) {it (* Interprets a single command.)} (PROG (BRKZ) TOP (SELECTQ BRKCOM [^ (RETEVAL (QUOTE BREAK1) (QUOTE (ERROR]] (GO {it (* Evaluate BRKEXP unless already evaluated, print value, and exit.)} (BREAKCOM1 BRKEXP BRKCOM NIL BRKVALUE) (BREAKEXIT{note little boldface})) (OK {it (* Evaluate BRKEXP, unless already evaluated, do NOT print value, and exit.)} (BREAKCOM1 BRKEXP BRKCOM BRKVALUE BRKVALUE) (BREAKEXIT T)) (^WGO {it (* Same as GO except never saves evaluation on history.)} (BREAKCOM1 BRKEXP BRKCOM T BRKVALUE) (BREAKEXIT)) (RETURN {it (* User will type in expression to be evaluated and returned as value of BREAK. Otherwise same as GO.)} (BREAKCOM1 [SETQ BRKZ (COND (BRKCOMS (CAR BRKCOMS)) (T (LISPXREAD T] (QUOTE RETURN) NIL NIL (LIST (QUOTE RETURN) BRKZ)) (BREAKEXIT)) (EVAL {it (* Evaluate BRKEXP but do not exit from BREAK.)} (BREAKCOM1 BRKEXP BRKCOM) (COND (BRKFLG (BREAK2) (PRIN1 BRKFN T) (PRIN1 (QUOTE " EVALUATED ") T))) (SETQ !VALUE (CAR BRKVALUE)) {it (* For user's benefit.)} )} {index *END* font package} }{End SubSec Font Package} {note this listing is a loser --- first, it is not the real BREAKCOM, but that doesn't matter. However, the original prettyprinting was WRONG. For instance, (QUOTE (ERROR]] should be (QUOTE (ERROR!]. Also, (EVAL ...) should be indented to the same level as (GO ...) and (RETURN ...). Also, this is an incorrect SELECTQ, because it doesn't have a final case. (I guess what happened is that someone yanked out a section of code, and ran the pretty printer on it, without looking to see if it made sense. I believe that a new, different example should be created. ----mjs} {Tag BREAKCOM} {lispcode (BREAKCOM [LAMBDA (BRKCOM BRKFLG) (* Interprets a single command.) (PROG (BRKZ) TOP (SELECTQ BRKCOM [^ (RETEVAL (QUOTE BREAK1) (QUOTE (ERROR]] (GO (* Evaluate BRKEXP unless already evaluated, print value, and exit.) (BREAKCOM1 BRKEXP BRKCOM NIL BRKVALUE) (BREAKEXIT)) (OK (* Evaluate BRKEXP, unless already evaluated, do NOT print value, and exit.) (BREAKCOM1 BRKEXP BRKCOM BRKVALUE BRKVALUE) (BREAKEXIT T)) (^WGO (* Same as GO except never saves evaluation on history.) (BREAKCOM1 BRKEXP BRKCOM T BRKVALUE) (BREAKEXIT)) (RETURN (* User will type in expression to be evaluated and returned as value of BREAK. Otherwise same as GO.) (BREAKCOM1 [SETQ BRKZ (COND (BRKCOMS (CAR BRKCOMS)) (T (LISPXREAD T] (QUOTE RETURN) NIL NIL (LIST (QUOTE RETURN) BRKZ)) (BREAKEXIT)) (EVAL (* Evaluate BRKEXP but do not exit from BREAK.) (BREAKCOM1 BRKEXP BRKCOM) (COND (BRKFLG (BREAK2) (PRIN1 BRKFN T) (PRIN1 (QUOTE " EVALUATED ") T))) (SETQ !VALUE (CAR BRKVALUE)) (* For user's benefit.) )}