diff --git a/changelog b/changelog index 4aaf408..df5f255 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,7 @@ +20090825 tpd src/axiom-website/patches.html 20090826.02.tpd.patch +20090825 tpd src/interp/Makefile move serror.boot to serror.lisp +20090825 tpd src/interp/serror.lisp added, rewritten from serror.boot +20090825 tpd src/interp/serror.boot removed, rewritten to serror.lisp 20090825 tpd src/axiom-website/patches.html 20090826.01.tpd.patch 20090825 tpd src/interp/Makefile move scan.boot to scan.lisp 20090825 tpd src/interp/scan.lisp added, rewritten from scan.boot diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index a7d12a1..e6d2760 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -1898,5 +1898,7 @@ record.lisp rewrite from boot to lisp
rulesets.lisp rewrite from boot to lisp
20090826.01.tpd.patch scan.lisp rewrite from boot to lisp
+20090826.02.tpd.patch +serror.lisp rewrite from boot to lisp
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet index f6e8b51..d47ab38 100644 --- a/src/interp/Makefile.pamphlet +++ b/src/interp/Makefile.pamphlet @@ -4753,44 +4753,26 @@ ${MID}/msg.lisp: ${IN}/msg.lisp.pamphlet @ -\subsection{serror.boot} +\subsection{serror.lisp} <>= -${OUT}/serror.${O}: ${MID}/serror.clisp - @ echo 537 making ${OUT}/serror.${O} from ${MID}/serror.clisp - @ if [ -z "${NOISE}" ] ; then \ - echo '(progn (compile-file "${MID}/serror.clisp"' \ +${OUT}/serror.${O}: ${MID}/serror.lisp + @ echo 136 making ${OUT}/serror.${O} from ${MID}/serror.lisp + @ ( cd ${MID} ; \ + if [ -z "${NOISE}" ] ; then \ + echo '(progn (compile-file "${MID}/serror.lisp"' \ ':output-file "${OUT}/serror.${O}") (${BYE}))' | ${DEPSYS} ; \ else \ - echo '(progn (compile-file "${MID}/serror.clisp"' \ + echo '(progn (compile-file "${MID}/serror.lisp"' \ ':output-file "${OUT}/serror.${O}") (${BYE}))' | ${DEPSYS} \ >${TMP}/trace ; \ - fi + fi ) @ -<>= -${MID}/serror.clisp: ${IN}/serror.boot.pamphlet - @ echo 538 making ${MID}/serror.clisp from ${IN}/serror.boot.pamphlet +<>= +${MID}/serror.lisp: ${IN}/serror.lisp.pamphlet + @ echo 137 making ${MID}/serror.lisp from ${IN}/serror.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/serror.boot.pamphlet >serror.boot ; \ - if [ -z "${NOISE}" ] ; then \ - echo '(progn (boottran::boottocl "${MID}/serror.boot") (${BYE}))' \ - | ${BOOTSYS} ; \ - else \ - echo '(progn (boottran::boottocl "${MID}/serror.boot") (${BYE}))' \ - | ${BOOTSYS} >${TMP}/trace ; \ - fi ; \ - rm serror.boot ) - -@ -<>= -${DOC}/serror.boot.dvi: ${IN}/serror.boot.pamphlet - @echo 539 making ${DOC}/serror.boot.dvi from ${IN}/serror.boot.pamphlet - @(cd ${DOC} ; \ - cp ${IN}/serror.boot.pamphlet ${DOC} ; \ - ${DOCUMENT} ${NOISE} serror.boot ; \ - rm -f ${DOC}/serror.boot.pamphlet ; \ - rm -f ${DOC}/serror.boot.tex ; \ - rm -f ${DOC}/serror.boot ) + ${TANGLE} ${IN}/serror.lisp.pamphlet >serror.lisp ) @ @@ -6100,8 +6082,7 @@ clean: <> <> -<> -<> +<> <> <> diff --git a/src/interp/serror.boot.pamphlet b/src/interp/serror.boot.pamphlet deleted file mode 100644 index 753655e..0000000 --- a/src/interp/serror.boot.pamphlet +++ /dev/null @@ -1,164 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp serror.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<>= --- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. --- All rights reserved. --- --- Redistribution and use in source and binary forms, with or without --- modification, are permitted provided that the following conditions are --- met: --- --- - Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- --- - Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in --- the documentation and/or other materials provided with the --- distribution. --- --- - Neither the name of The Numerical ALgorithms Group Ltd. nor the --- names of its contributors may be used to endorse or promote products --- derived from this software without specific prior written permission. --- --- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS --- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED --- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER --- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, --- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, --- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR --- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF --- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING --- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS --- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -@ -<<*>>= -<> - ---% Functions to handle specific errors (mostly syntax) - -)package "BOOT" - -syGeneralErrorHere() == - sySpecificErrorHere('S2CY0002, []) - -sySpecificErrorHere(key, args) == - sySpecificErrorAtToken($stok, key, args) - -sySpecificErrorAtToken(tok, key, args) == - pos := tokPosn tok - ncSoftError(pos, key, args) - -syIgnoredFromTo(pos1, pos2) == - if pfGlobalLinePosn pos1 = pfGlobalLinePosn pos2 then - ncSoftError(FromTo(pos1,pos2), 'S2CY0005, []) - else - ncSoftError(From pos1, 'S2CY0003, []) - ncSoftError(To pos2, 'S2CY0004, []) - -npMissingMate(close,open)== - ncSoftError(tokPosn open, 'S2CY0008, []) - npMissing close - -npMissing s== - ncSoftError(tokPosn $stok,'S2CY0007, [PNAME s]) - THROW("TRAPPOINT","TRAPPED") - -npCompMissing s == npEqKey s or npMissing s - -pfSourceStok x== - if pfLeaf? x - then x - else if null pfParts x - then 'NoToken - else pfSourceStok pfFirst x - -npTrapForm(x)== - a:=pfSourceStok x - EQ(a,'NoToken)=> - syGeneralErrorHere() - THROW("TRAPPOINT","TRAPPED") - ncSoftError(tokPosn a, 'S2CY0002, []) - THROW("TRAPPOINT","TRAPPED") - -npTrap()== - ncSoftError(tokPosn $stok,'S2CY0002,[]) - THROW("TRAPPOINT","TRAPPED") - -npRecoverTrap()== - npFirstTok() - pos1 := tokPosn $stok - npMoveTo 0 - pos2 := tokPosn $stok - syIgnoredFromTo(pos1, pos2) - npPush [pfWrong(pfDocument ['"pile syntax error"],pfListOf [])] - - -npListAndRecover(f)== - a:=$stack - b:=nil - $stack:=nil - done:=false - c:=$inputStream - while not done repeat - found:=CATCH("TRAPPOINT",APPLY(f,nil)) - if found="TRAPPED" - then - $inputStream:=c - npRecoverTrap() - else if not found - then - $inputStream:=c - syGeneralErrorHere() - npRecoverTrap() - if npEqKey "BACKSET" - then - c:=$inputStream - else if npEqPeek "BACKTAB" - then - done:=true - else - $inputStream:=c - syGeneralErrorHere() - npRecoverTrap() - if npEqPeek "BACKTAB" - then done:=true - else - npNext() - c:=$inputStream - b:=cons(npPop1(),b) - $stack:=a - npPush NREVERSE b - -npMoveTo n== - if null $inputStream - then true - else - if npEqPeek "BACKTAB" - then if n=0 - then true - else (npNext();npMoveTo(n-1)) - else if npEqPeek "BACKSET" - then if n=0 - then true - else (npNext();npMoveTo n) - else if npEqKey "SETTAB" - then npMoveTo(n+1) - else (npNext();npMoveTo n) -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/serror.lisp.pamphlet b/src/interp/serror.lisp.pamphlet new file mode 100644 index 0000000..8fc6ea2 --- /dev/null +++ b/src/interp/serror.lisp.pamphlet @@ -0,0 +1,263 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/interp serror.lisp} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +(IN-PACKAGE "BOOT") + +;--% Functions to handle specific errors (mostly syntax) + +;syGeneralErrorHere() == +; sySpecificErrorHere('S2CY0002, []) + +(DEFUN |syGeneralErrorHere| () + (PROG () (RETURN (|sySpecificErrorHere| 'S2CY0002 NIL)))) + +;sySpecificErrorHere(key, args) == +; sySpecificErrorAtToken($stok, key, args) + +(DEFUN |sySpecificErrorHere| (|key| |args|) + (PROG () + (DECLARE (SPECIAL |$stok|)) + (RETURN (|sySpecificErrorAtToken| |$stok| |key| |args|)))) + +;sySpecificErrorAtToken(tok, key, args) == +; pos := tokPosn tok +; ncSoftError(pos, key, args) + +(DEFUN |sySpecificErrorAtToken| (|tok| |key| |args|) + (PROG (|pos|) + (RETURN + (PROGN + (SETQ |pos| (|tokPosn| |tok|)) + (|ncSoftError| |pos| |key| |args|))))) + +;syIgnoredFromTo(pos1, pos2) == +; if pfGlobalLinePosn pos1 = pfGlobalLinePosn pos2 then +; ncSoftError(FromTo(pos1,pos2), 'S2CY0005, []) +; else +; ncSoftError(From pos1, 'S2CY0003, []) +; ncSoftError(To pos2, 'S2CY0004, []) + +(DEFUN |syIgnoredFromTo| (|pos1| |pos2|) + (PROG () + (RETURN + (COND + ((EQUAL (|pfGlobalLinePosn| |pos1|) + (|pfGlobalLinePosn| |pos2|)) + (|ncSoftError| (|FromTo| |pos1| |pos2|) 'S2CY0005 NIL)) + ('T (|ncSoftError| (|From| |pos1|) 'S2CY0003 NIL) + (|ncSoftError| (|To| |pos2|) 'S2CY0004 NIL)))))) + +;npMissingMate(close,open)== +; ncSoftError(tokPosn open, 'S2CY0008, []) +; npMissing close + +(DEFUN |npMissingMate| (|close| |open|) + (PROG () + (RETURN + (PROGN + (|ncSoftError| (|tokPosn| |open|) 'S2CY0008 NIL) + (|npMissing| |close|))))) + +;npMissing s== +; ncSoftError(tokPosn $stok,'S2CY0007, [PNAME s]) +; THROW("TRAPPOINT","TRAPPED") + +(DEFUN |npMissing| (|s|) + (PROG () + (DECLARE (SPECIAL |$stok|)) + (RETURN + (PROGN + (|ncSoftError| (|tokPosn| |$stok|) 'S2CY0007 + (LIST (PNAME |s|))) + (THROW 'TRAPPOINT 'TRAPPED))))) + +;npCompMissing s == npEqKey s or npMissing s + +(DEFUN |npCompMissing| (|s|) + (PROG () (RETURN (OR (|npEqKey| |s|) (|npMissing| |s|))))) + +;pfSourceStok x== +; if pfLeaf? x +; then x +; else if null pfParts x +; then 'NoToken +; else pfSourceStok pfFirst x + +(DEFUN |pfSourceStok| (|x|) + (PROG () + (RETURN + (COND + ((|pfLeaf?| |x|) |x|) + ((NULL (|pfParts| |x|)) '|NoToken|) + ('T (|pfSourceStok| (|pfFirst| |x|))))))) + +;npTrapForm(x)== +; a:=pfSourceStok x +; EQ(a,'NoToken)=> +; syGeneralErrorHere() +; THROW("TRAPPOINT","TRAPPED") +; ncSoftError(tokPosn a, 'S2CY0002, []) +; THROW("TRAPPOINT","TRAPPED") + +(DEFUN |npTrapForm| (|x|) + (PROG (|a|) + (RETURN + (PROGN + (SETQ |a| (|pfSourceStok| |x|)) + (COND + ((EQ |a| '|NoToken|) + (PROGN (|syGeneralErrorHere|) (THROW 'TRAPPOINT 'TRAPPED))) + ('T + (PROGN + (|ncSoftError| (|tokPosn| |a|) 'S2CY0002 NIL) + (THROW 'TRAPPOINT 'TRAPPED)))))))) + +;npTrap()== +; ncSoftError(tokPosn $stok,'S2CY0002,[]) +; THROW("TRAPPOINT","TRAPPED") + +(DEFUN |npTrap| () + (PROG () + (DECLARE (SPECIAL |$stok|)) + (RETURN + (PROGN + (|ncSoftError| (|tokPosn| |$stok|) 'S2CY0002 NIL) + (THROW 'TRAPPOINT 'TRAPPED))))) + +;npRecoverTrap()== +; npFirstTok() +; pos1 := tokPosn $stok +; npMoveTo 0 +; pos2 := tokPosn $stok +; syIgnoredFromTo(pos1, pos2) +; npPush [pfWrong(pfDocument ['"pile syntax error"],pfListOf [])] + +(DEFUN |npRecoverTrap| () + (PROG (|pos2| |pos1|) + (DECLARE (SPECIAL |$stok|)) + (RETURN + (PROGN + (|npFirstTok|) + (SETQ |pos1| (|tokPosn| |$stok|)) + (|npMoveTo| 0) + (SETQ |pos2| (|tokPosn| |$stok|)) + (|syIgnoredFromTo| |pos1| |pos2|) + (|npPush| + (LIST (|pfWrong| (|pfDocument| (LIST "pile syntax error")) + (|pfListOf| NIL)))))))) + +;npListAndRecover(f)== +; a:=$stack +; b:=nil +; $stack:=nil +; done:=false +; c:=$inputStream +; while not done repeat +; found:=CATCH("TRAPPOINT",APPLY(f,nil)) +; if found="TRAPPED" +; then +; $inputStream:=c +; npRecoverTrap() +; else if not found +; then +; $inputStream:=c +; syGeneralErrorHere() +; npRecoverTrap() +; if npEqKey "BACKSET" +; then +; c:=$inputStream +; else if npEqPeek "BACKTAB" +; then +; done:=true +; else +; $inputStream:=c +; syGeneralErrorHere() +; npRecoverTrap() +; if npEqPeek "BACKTAB" +; then done:=true +; else +; npNext() +; c:=$inputStream +; b:=cons(npPop1(),b) +; $stack:=a +; npPush NREVERSE b + +(DEFUN |npListAndRecover| (|f|) + (PROG (|found| |c| |done| |b| |a|) + (DECLARE (SPECIAL |$inputStream| |$stack|)) + (RETURN + (PROGN + (SETQ |a| |$stack|) + (SETQ |b| NIL) + (SETQ |$stack| NIL) + (SETQ |done| NIL) + (SETQ |c| |$inputStream|) + ((LAMBDA () + (LOOP + (COND + (|done| (RETURN NIL)) + ('T + (PROGN + (SETQ |found| (CATCH 'TRAPPOINT (APPLY |f| NIL))) + (COND + ((EQ |found| 'TRAPPED) (SETQ |$inputStream| |c|) + (|npRecoverTrap|)) + ((NULL |found|) (SETQ |$inputStream| |c|) + (|syGeneralErrorHere|) (|npRecoverTrap|))) + (COND + ((|npEqKey| 'BACKSET) (SETQ |c| |$inputStream|)) + ((|npEqPeek| 'BACKTAB) (SETQ |done| T)) + ('T (SETQ |$inputStream| |c|) + (|syGeneralErrorHere|) (|npRecoverTrap|) + (COND + ((|npEqPeek| 'BACKTAB) (SETQ |done| T)) + ('T (|npNext|) (SETQ |c| |$inputStream|))))) + (SETQ |b| (CONS (|npPop1|) |b|)))))))) + (SETQ |$stack| |a|) + (|npPush| (NREVERSE |b|)))))) + +;npMoveTo n== +; if null $inputStream +; then true +; else +; if npEqPeek "BACKTAB" +; then if n=0 +; then true +; else (npNext();npMoveTo(n-1)) +; else if npEqPeek "BACKSET" +; then if n=0 +; then true +; else (npNext();npMoveTo n) +; else if npEqKey "SETTAB" +; then npMoveTo(n+1) +; else (npNext();npMoveTo n) + +(DEFUN |npMoveTo| (|n|) + (PROG () + (DECLARE (SPECIAL |$inputStream|)) + (RETURN + (COND + ((NULL |$inputStream|) T) + ((|npEqPeek| 'BACKTAB) + (COND ((EQL |n| 0) T) ('T (|npNext|) (|npMoveTo| (- |n| 1))))) + ((|npEqPeek| 'BACKSET) + (COND ((EQL |n| 0) T) ('T (|npNext|) (|npMoveTo| |n|)))) + ((|npEqKey| 'SETTAB) (|npMoveTo| (+ |n| 1))) + ('T (|npNext|) (|npMoveTo| |n|)))))) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document}