aboutsummaryrefslogtreecommitdiff
path: root/src/boot/pile.boot.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-01-28 04:16:25 +0000
committerdos-reis <gdr@axiomatics.org>2008-01-28 04:16:25 +0000
commita27cc2ac7bf6a0ad60cc6c9f949a988d0444bb4e (patch)
treecb71095e082c97f38f06f11828ca1f898ba3f72e /src/boot/pile.boot.pamphlet
parent58cae19381750526539e986ca1de122803ac2293 (diff)
downloadopen-axiom-a27cc2ac7bf6a0ad60cc6c9f949a988d0444bb4e.tar.gz
* boot/Makefile.pamphlet: Remove.
* boot/translator.boot: New. * boot/translator.boot: Remove. * boot/tokens.boot: New. * boot/tokens.boot.pamphlet: Remove. * boot/scanner.boot: New. * boot/scanner.boot.pamphlet: Remove. * boot/pile.boot: New. * boot/pile.boot.pamphlet: Remove. * boot/parser.boot: New. * boot/parser.boot.pamphlet: New. * boot/initial-env.lisp: New. * boot/initial-env.lisp.pamphlet: Remove. * boot/includer.boot: New. * boot/includer.boot.pamphlet: Remove. * boot/ast.boot: New. * boot/ast.boot.pamphlet: Remove.
Diffstat (limited to 'src/boot/pile.boot.pamphlet')
-rw-r--r--src/boot/pile.boot.pamphlet325
1 files changed, 0 insertions, 325 deletions
diff --git a/src/boot/pile.boot.pamphlet b/src/boot/pile.boot.pamphlet
deleted file mode 100644
index eaad129f..00000000
--- a/src/boot/pile.boot.pamphlet
+++ /dev/null
@@ -1,325 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-
-\title{\File{src/boot/pile.boot} Pamphlet}
-\author{The Axiom Team}
-
-\begin{document}
-\maketitle
-
-\begin{abstract}
-\end{abstract}
-
-\eject
-\tableofcontents
-\eject
-
-\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>>
-
-module '"boot-pile"
-import '"includer"
-import '"scanner"
-
-)package "BOOTTRAN"
-shoeFirstTokPosn t== shoeTokPosn CAAR t
-shoeLastTokPosn t== shoeTokPosn CADR t
-shoePileColumn t==CDR shoeTokPosn CAAR t
-
--- s is a token-dq-stream
-
-shoePileInsert (s)==
- if bStreamNull s
- then cons([],s)
- else
- toktype:=shoeTokType CAAAR s
- if toktype ="LISP" or toktype = "LINE"
- then cons([car s],cdr s)
- else
- a:=shoePileTree(-1,s)
- cons([a.2],a.3)
-
-shoePileTree(n,s)==
- if bStreamNull s
- then [false,n,[],s]
- else
- [h,t]:=[car s,cdr s]
- hh:=shoePileColumn h
- if hh > n
- then shoePileForests(h,hh,t)
- else [false,n,[],s]
-
-eqshoePileTree(n,s)==
- if bStreamNull s
- then [false,n,[],s]
- else
- [h,t]:=[car s,cdr s]
- hh:=shoePileColumn h
- if hh = n
- then shoePileForests(h,hh,t)
- else [false,n,[],s]
-
-shoePileForest(n,s)==
- [b,hh,h,t]:= shoePileTree(n,s)
- if b
- then
- [h1,t1]:=shoePileForest1(hh,t)
- [cons(h,h1),t1]
- else [[],s]
-
-shoePileForest1(n,s)==
- [b,n1,h,t]:= eqshoePileTree(n,s)
- if b
- then
- [h1,t1]:=shoePileForest1(n,t)
- [cons(h,h1),t1]
- else [[],s]
-
-shoePileForests(h,n,s)==
- [h1,t1]:=shoePileForest(n,s)
- if bStreamNull h1
- then [true,n,h,s]
- else shoePileForests(shoePileCtree(h,h1),n,t1)
-
-shoePileCtree(x,y)==dqAppend(x,shoePileCforest y)
-
--- only enshoePiles forests with >=2 trees
-
-shoePileCforest x==
- if null x
- then []
- else if null cdr x
- then car x
- else
- a:=car x
- b:=shoePileCoagulate(a,rest x)
- if null cdr b
- then car b
- else shoeEnPile shoeSeparatePiles b
-
-shoePileCoagulate(a,b)==
- if null b
- then [a]
- else
- c:=car b
- if EQ(shoeTokPart CAAR c,"THEN") or EQ(shoeTokPart CAAR c,"ELSE")
- then shoePileCoagulate (dqAppend(a,c),cdr b)
- else
- d:=CADR a
- e:=shoeTokPart d
- if EQCAR(d,"KEY") and
- (GET(e,"SHOEINF") or EQ(e,"COMMA") or EQ(e,"SEMICOLON"))
- then shoePileCoagulate(dqAppend(a,c),cdr b)
- else cons(a,shoePileCoagulate(c,rest b))
-
-shoeSeparatePiles x==
- if null x
- then []
- else if null cdr x
- then car x
- else
- a:=car x
- semicolon:=dqUnit
- shoeTokConstruct("KEY", "BACKSET",shoeLastTokPosn a)
- dqConcat [a,semicolon,shoeSeparatePiles cdr x]
-
-shoeEnPile x==
- dqConcat [dqUnit shoeTokConstruct("KEY","SETTAB",shoeFirstTokPosn x),
- x, _
- dqUnit shoeTokConstruct("KEY","BACKTAB",shoeLastTokPosn x)]
-
-@
-
-<<pile.clisp>>=
-(EVAL-WHEN (:COMPILE-TOPLEVEL) (PROVIDE "boot-pile"))
-
-(IMPORT-MODULE "includer")
-
-(IMPORT-MODULE "scanner")
-
-(IN-PACKAGE "BOOTTRAN")
-
-(DEFUN |shoeFirstTokPosn| (|t|)
- (PROG () (RETURN (|shoeTokPosn| (CAAR |t|)))))
-
-(DEFUN |shoeLastTokPosn| (|t|)
- (PROG () (RETURN (|shoeTokPosn| (CADR |t|)))))
-
-(DEFUN |shoePileColumn| (|t|)
- (PROG () (RETURN (CDR (|shoeTokPosn| (CAAR |t|))))))
-
-(DEFUN |shoePileInsert| (|s|)
- (PROG (|a| |toktype|)
- (RETURN
- (COND
- ((|bStreamNull| |s|) (CONS NIL |s|))
- (#0='T (SETQ |toktype| (|shoeTokType| (CAAAR |s|)))
- (COND
- ((OR (EQ |toktype| 'LISP) (EQ |toktype| 'LINE))
- (CONS (LIST (CAR |s|)) (CDR |s|)))
- (#0# (SETQ |a| (|shoePileTree| (- 1) |s|))
- (CONS (LIST (ELT |a| 2)) (ELT |a| 3)))))))))
-
-(DEFUN |shoePileTree| (|n| |s|)
- (PROG (|hh| |t| |h| |LETTMP#1|)
- (RETURN
- (COND
- ((|bStreamNull| |s|) (LIST NIL |n| NIL |s|))
- (#0='T (SETQ |LETTMP#1| (LIST (CAR |s|) (CDR |s|)))
- (SETQ |h| (CAR |LETTMP#1|)) (SETQ |t| (CADR |LETTMP#1|))
- (SETQ |hh| (|shoePileColumn| |h|))
- (COND
- ((< |n| |hh|) (|shoePileForests| |h| |hh| |t|))
- (#0# (LIST NIL |n| NIL |s|))))))))
-
-(DEFUN |eqshoePileTree| (|n| |s|)
- (PROG (|hh| |t| |h| |LETTMP#1|)
- (RETURN
- (COND
- ((|bStreamNull| |s|) (LIST NIL |n| NIL |s|))
- (#0='T (SETQ |LETTMP#1| (LIST (CAR |s|) (CDR |s|)))
- (SETQ |h| (CAR |LETTMP#1|)) (SETQ |t| (CADR |LETTMP#1|))
- (SETQ |hh| (|shoePileColumn| |h|))
- (COND
- ((EQUAL |hh| |n|) (|shoePileForests| |h| |hh| |t|))
- (#0# (LIST NIL |n| NIL |s|))))))))
-
-(DEFUN |shoePileForest| (|n| |s|)
- (PROG (|t1| |h1| |t| |h| |hh| |b| |LETTMP#1|)
- (RETURN
- (PROGN
- (SETQ |LETTMP#1| (|shoePileTree| |n| |s|))
- (SETQ |b| (CAR |LETTMP#1|))
- (SETQ |hh| (CADR . #0=(|LETTMP#1|)))
- (SETQ |h| (CADDR . #0#))
- (SETQ |t| (CADDDR . #0#))
- (COND
- (|b| (SETQ |LETTMP#1| (|shoePileForest1| |hh| |t|))
- (SETQ |h1| (CAR |LETTMP#1|))
- (SETQ |t1| (CADR |LETTMP#1|))
- (LIST (CONS |h| |h1|) |t1|))
- ('T (LIST NIL |s|)))))))
-
-(DEFUN |shoePileForest1| (|n| |s|)
- (PROG (|t1| |h1| |t| |h| |n1| |b| |LETTMP#1|)
- (RETURN
- (PROGN
- (SETQ |LETTMP#1| (|eqshoePileTree| |n| |s|))
- (SETQ |b| (CAR |LETTMP#1|))
- (SETQ |n1| (CADR . #0=(|LETTMP#1|)))
- (SETQ |h| (CADDR . #0#))
- (SETQ |t| (CADDDR . #0#))
- (COND
- (|b| (SETQ |LETTMP#1| (|shoePileForest1| |n| |t|))
- (SETQ |h1| (CAR |LETTMP#1|))
- (SETQ |t1| (CADR |LETTMP#1|))
- (LIST (CONS |h| |h1|) |t1|))
- ('T (LIST NIL |s|)))))))
-
-(DEFUN |shoePileForests| (|h| |n| |s|)
- (PROG (|t1| |h1| |LETTMP#1|)
- (RETURN
- (PROGN
- (SETQ |LETTMP#1| (|shoePileForest| |n| |s|))
- (SETQ |h1| (CAR |LETTMP#1|))
- (SETQ |t1| (CADR |LETTMP#1|))
- (COND
- ((|bStreamNull| |h1|) (LIST T |n| |h| |s|))
- ('T (|shoePileForests| (|shoePileCtree| |h| |h1|) |n| |t1|)))))))
-
-(DEFUN |shoePileCtree| (|x| |y|)
- (PROG () (RETURN (|dqAppend| |x| (|shoePileCforest| |y|)))))
-
-(DEFUN |shoePileCforest| (|x|)
- (PROG (|b| |a|)
- (RETURN
- (COND
- ((NULL |x|) NIL)
- ((NULL (CDR |x|)) (CAR |x|))
- (#0='T (SETQ |a| (CAR |x|))
- (SETQ |b| (|shoePileCoagulate| |a| (CDR |x|)))
- (COND
- ((NULL (CDR |b|)) (CAR |b|))
- (#0# (|shoeEnPile| (|shoeSeparatePiles| |b|)))))))))
-
-(DEFUN |shoePileCoagulate| (|a| |b|)
- (PROG (|e| |d| |c|)
- (RETURN
- (COND
- ((NULL |b|) (LIST |a|))
- (#0='T (SETQ |c| (CAR |b|))
- (COND
- ((OR (EQ (|shoeTokPart| (CAAR |c|)) 'THEN)
- (EQ (|shoeTokPart| (CAAR |c|)) 'ELSE))
- (|shoePileCoagulate| (|dqAppend| |a| |c|) (CDR |b|)))
- (#0# (SETQ |d| (CADR |a|)) (SETQ |e| (|shoeTokPart| |d|))
- (COND
- ((AND (EQCAR |d| 'KEY)
- (OR (GET |e| 'SHOEINF) (EQ |e| 'COMMA)
- (EQ |e| 'SEMICOLON)))
- (|shoePileCoagulate| (|dqAppend| |a| |c|) (CDR |b|)))
- (#0# (CONS |a| (|shoePileCoagulate| |c| (CDR |b|))))))))))))
-
-(DEFUN |shoeSeparatePiles| (|x|)
- (PROG (|semicolon| |a|)
- (RETURN
- (COND
- ((NULL |x|) NIL)
- ((NULL (CDR |x|)) (CAR |x|))
- ('T (SETQ |a| (CAR |x|))
- (SETQ |semicolon|
- (|dqUnit|
- (|shoeTokConstruct| 'KEY 'BACKSET
- (|shoeLastTokPosn| |a|))))
- (|dqConcat|
- (LIST |a| |semicolon| (|shoeSeparatePiles| (CDR |x|)))))))))
-
-(DEFUN |shoeEnPile| (|x|)
- (PROG ()
- (RETURN
- (|dqConcat| (LIST (|dqUnit|
- (|shoeTokConstruct| 'KEY 'SETTAB
- (|shoeFirstTokPosn| |x|)))
- |x|
- (|dqUnit|
- (|shoeTokConstruct| 'KEY 'BACKTAB
- (|shoeLastTokPosn| |x|))))))))
-
-@
-
-\end{document}