diff options
author | dos-reis <gdr@axiomatics.org> | 2007-10-13 13:02:58 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-10-13 13:02:58 +0000 |
commit | c4d8dec2eec9c0eb7ae6639ecc0dd607a97b37b7 (patch) | |
tree | f8e046150d52c9133457315ad75948d303885160 /src/interp/newaux.lisp.pamphlet | |
parent | 154daf2e85eaa209486de6d41e8a1b067590bb8e (diff) | |
download | open-axiom-c4d8dec2eec9c0eb7ae6639ecc0dd607a97b37b7.tar.gz |
Remove more pamphlets
Diffstat (limited to 'src/interp/newaux.lisp.pamphlet')
-rw-r--r-- | src/interp/newaux.lisp.pamphlet | 252 |
1 files changed, 0 insertions, 252 deletions
diff --git a/src/interp/newaux.lisp.pamphlet b/src/interp/newaux.lisp.pamphlet deleted file mode 100644 index 687b2fbf..00000000 --- a/src/interp/newaux.lisp.pamphlet +++ /dev/null @@ -1,252 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp newaux.lisp} -\author{Timothy Daly} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{Operator Precedence Table Initialization} -\begin{verbatim} -; PURPOSE: This file sets up properties which are used by the Boot lexical -; analyzer for bottom-up recognition of operators. Also certain -; other character-class definitions are included, as well as -; table accessing functions. -; -; ORGANIZATION: Each section is organized in terms of Creation and Access code. -; -; 1. Led and Nud Tables -; 2. GLIPH Table -; 3. RENAMETOK Table -; 4. GENERIC Table -; 5. Character syntax class predicates -\end{verbatim} -\subsection{LED and NUD Tables} -\begin{verbatim} -; **** 1. LED and NUD Tables - -; ** TABLE PURPOSE - -; Led and Nud have to do with operators. An operator with a Led property takes -; an operand on its left (infix/suffix operator). - -; An operator with a Nud takes no operand on its left (prefix/nilfix). -; Some have both (e.g. - ). This terminology is from the Pratt parser. -; The translator for Scratchpad II is a modification of the Pratt parser which -; branches to special handlers when it is most convenient and practical to -; do so (Pratt's scheme cannot handle local contexts very easily). - -; Both LEDs and NUDs have right and left binding powers. This is meaningful -; for prefix and infix operators. These powers are stored as the values of -; the LED and NUD properties of an atom, if the atom has such a property. -; The format is: - -; <Operator Left-Binding-Power Right-Binding-Power <Special-Handler>> - -; where the Special-Handler is the name of a function to be evaluated when that -; keyword is encountered. - -; The default values of Left and Right Binding-Power are NIL. NIL is a -; legitimate value signifying no precedence. If the Special-Handler is NIL, -; this is just an ordinary operator (as opposed to a surfix operator like -; if-then-else). - -\end{verbatim} -<<LEDNUDTables>>= -; ** TABLE CREATION - -(defparameter OpAssoc nil - "Information used by OUT BOOT operator pretty printing routines") - -(defun MAKENEWOP (X Y) (MAKEOP X Y '|PARSE-NewKEY|)) - -(defun MAKEOP (X Y KEYNAME) - (if (OR (NOT (CDR X)) (NUMBERP (SECOND X))) - (SETQ X (CONS (FIRST X) X))) - (if (AND (alpha-char-p (ELT (STRINGIMAGE (FIRST X)) 0)) - (NOT (MEMBER (FIRST X) (EVAL KEYNAME)))) - (SET KEYNAME (CONS (FIRST X) (EVAL KEYNAME)))) - (MAKEPROP (FIRST X) Y X) - (SETQ OPASSOC (ADDASSOC Y (CONS (CONS X X) (LASSOC Y OPASSOC)) OPASSOC)) - (SECOND X)) - -(defvar |PARSE-NewKEY| nil) ;;list of keywords - -(mapcar #'(LAMBDA(J) (MAKENEWOP J '|Led|)) - '((* 800 801) (|rem| 800 801) (|mod| 800 801) - (|quo| 800 801) (|div| 800 801) - (/ 800 801) (** 900 901) (^ 900 901) - (|exquo| 800 801) (+ 700 701) - (\- 700 701) (\-\> 1001 1002) (\<\- 1001 1002) - (\: 996 997) (\:\: 996 997) - (\@ 996 997) (|pretend| 995 996) - (\.) (\! \! 1002 1001) - (\, 110 111) - (\; 81 82 (|PARSE-SemiColon|)) - (\< 400 400) (\> 400 400) - (\<\< 400 400) (\>\> 400 400) - (\<= 400 400) (\>= 400 400) - (= 400 400) (^= 400 400) - (\~= 400 400) - (|in| 400 400) (|case| 400 400) - (|add| 400 120) (|with| 2000 400 (|PARSE-InfixWith|)) - (|has| 400 400) - (|where| 121 104) ; must be 121 for SPAD, 126 for boot--> nboot - (|when| 112 190) - (|otherwise| 119 190 (|PARSE-Suffix|)) - (|is| 400 400) (|isnt| 400 400) - (|and| 250 251) (|or| 200 201) - (/\\ 250 251) (\\/ 200 201) - (\.\. SEGMENT 401 699 (|PARSE-Seg|)) - (=\> 123 103) - (+-\> 998 102) - (== DEF 122 121) - (==\> MDEF 122 121) - (\| 108 111) ;was 190 190 - (\:- LETD 125 124) (\:= LET 125 124))) - -(mapcar #'(LAMBDA (J) (MAKENEWOP J `|Nud|)) - '((|for| 130 350 (|PARSE-Loop|)) - (|while| 130 190 (|PARSE-Loop|)) - (|until| 130 190 (|PARSE-Loop|)) - (|repeat| 130 190 (|PARSE-Loop|)) - (|import| 120 0 (|PARSE-Import|) ) - (|unless|) - (|add| 900 120) - (|with| 1000 300 (|PARSE-With|)) - (|has| 400 400) - (\- 701 700) ; right-prec. wants to be -1 + left-prec -;; (\+ 701 700) - (\# 999 998) - (\! 1002 1001) - (\' 999 999 (|PARSE-Data|)) - (\<\< 122 120 (|PARSE-LabelExpr|)) - (\>\>) - (^ 260 259 NIL) - (\-\> 1001 1002) - (\: 194 195) - (|not| 260 259 NIL) - (\~ 260 259 nil) - (\= 400 700) - (|return| 202 201 (|PARSE-Return|)) - (|leave| 202 201 (|PARSE-Leave|)) - (|exit| 202 201 (|PARSE-Exit|)) - (|from|) - (|iterate|) - (|yield|) - (|if| 130 0 (|PARSE-Conditional|)) ; was 130 - (\| 0 190) - (|suchthat|) - (|then| 0 114) - (|else| 0 114))) - -@ -\section{Gliph Table} -Gliphs are symbol clumps. The gliph property of a symbol gives -the tree describing the tokens which begin with that symbol. -The token reader uses the gliph property to determine the longest token. -Thus [[:=]] is read as one token not as [[:]] followed by [[=]]. - -<<GLIPHTable>>= -(mapcar #'(lambda (x) (makeprop (car x) 'gliph (cdr x))) - `( - ( \| (\)) ) - ( * (*) ) - ( \( (<) (\|) ) - ( + (- (>)) ) - ( - (>) ) - ( < (=) (<) ) - ;; ( / (\\) ) breaks */xxx - ( \\ (/) ) - ( > (=) (>) (\))) - ( = (= (>)) (>) ) - ( \. (\.) ) - ( ^ (=) ) - ( \~ (=) ) - ( \: (=) (-) (\:)))) - -@ -\subsection{Rename Token Table} -RENAMETOK defines alternate token strings which can be used for different -keyboards which define equivalent tokens. -<<RENAMETOKTable>>= -(mapcar - #'(lambda (x) (MAKEPROP (CAR X) 'RENAMETOK (CADR X)) (MAKENEWOP X NIL)) - '((\(\| \[) ; (| |) means [] - (\|\) \]) - (\(< \{) ; (< >) means {} - (>\) \}))) - -@ -\subsection{Generic function table} -GENERIC operators be suffixed by [[$]] qualifications in SPAD code. -[[$]] is then followed by a domain label, such as I for Integer, which -signifies which domain the operator refers to. For example [[+$Integer]] -is [[+]] for Integers. -<<GENERICTable>>= -(mapcar #'(lambda (x) (MAKEPROP X 'GENERIC 'TRUE)) - '(- = * |rem| |mod| |quo| |div| / ** |exquo| + - < > <= >= ^= )) - -@ -\subsection{Character Syntax Table} -<<CharacterSyntaxTable>>= -(defun SPECIALCASESYNTAX () (OR (AND (char= TOK '#\#) (DIGITP CHR)))) - -(defun TERMINATOR (CHR) - (member CHR '(#\ #\( #\) #\. #\; #\, #\Return)) :test #'char=) - -@ -\section{License} -<<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. - -@ -<<*>>= -<<license>> - -(IMPORT-MODULE "macros") -(in-package "BOOT") - -<<LEDNUDTables>> -<<GLIPHTable>> -<<RENAMETOKTable>> -<<GENERICTable>> -<<CharacterSyntaxTable>> -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} |