Artifact f3b7b33f6276c7934b314de274a80371f52693c89b0010501ab3bfa904914e36:
- File
psl-1983/3-1/util/mini-support.fix
— part of check-in
[eb17ceb7f6]
at
2020-04-21 19:40:01
on branch master
— Add Reduce 3.0 to the historical section of the archive, and some more
files relating to version sof PSL from the early 1980s. Thanks are due to
Paul McJones and Nelson Beebe for these, as well as to all the original
authors.git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/historical@5328 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 1421) [annotate] [blame] [check-ins using] [more...]
- File
psl-1983/util/mini-support.fix
— part of check-in
[eb17ceb7f6]
at
2020-04-21 19:40:01
on branch master
— Add Reduce 3.0 to the historical section of the archive, and some more
files relating to version sof PSL from the early 1980s. Thanks are due to
Paul McJones and Nelson Beebe for these, as well as to all the original
authors.git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/historical@5328 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 1421) [annotate] [blame] [check-ins using]
FLUID '(PromptString!* !*Break); % Error-print is called when the major loop returns a NIL. SYMBOLIC PROCEDURE ERROR!-PRINT; <<PRIN2 "ERROR in grammar, current token is "; PRIN2 !#TOK!#; PRIN2 " and stack is "; PRIN2 !#STACK!#; TERPRI() >>; % The following errs out if its argument is NIL SYMBOLIC PROCEDURE FAIL!-NOT U; IF U then T else begin scalar Promptstring!*; PRIN2T "FAIL-NOT called in a concatenation"; ERROR!-PRINT(); PromptString!*:="Mini-Error>"; U:=ContinuableERROR(997,"Failure scanning a concatenation",'(QUOTE T)); IF U AND SCAN!-TERM() THEN RETURN T; return begin scalar !*Break; return Error(997, "Could not Recover from FAIL-NOT"); end; end; % Invoke starts execution of a previously defined grammar. SYMBOLIC PROCEDURE INVOKE U; BEGIN SCALAR X,PromptString!*; PromptString!*:=Concat(Id2String U,">"); !#IDTYPE!# := 0; !#NUMTYPE!# := 2; !#STRTYPE!# := 1; FLAG (GET (U, 'KEYS), 'KEY); DIPBLD (GET (U, 'DIPS)); !#RTNOW!# := GET (U, 'RTS); !#GTNOW!# := GET (U, 'GTS); !#DIP!# := !#KEY!# := !#RT!# := !#GT!# := !#GENLABLIST!# := NIL; L: !#STACK!# := NIL; NEXT!-TOK(); X := APPLY (U, NIL); IF NULL X THEN << ERROR!-PRINT(); IF SCAN!-TERM() THEN <<PRIN2 ("Resuming scan"); TERPRI(); GOTO L>> >>; REMFLAG (GET (U, 'KEYS), 'KEY) END;