aboutsummaryrefslogtreecommitdiff
path: root/src/interp/pile.boot.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/pile.boot.pamphlet')
-rw-r--r--src/interp/pile.boot.pamphlet176
1 files changed, 0 insertions, 176 deletions
diff --git a/src/interp/pile.boot.pamphlet b/src/interp/pile.boot.pamphlet
deleted file mode 100644
index 2b457fdb..00000000
--- a/src/interp/pile.boot.pamphlet
+++ /dev/null
@@ -1,176 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/interp pile.boot}
-\author{The Axiom Team}
-\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>>
-
-)package "BOOT"
-
--- insertpiles converts a line-list to a line-forest where
-
--- a line is a token-dequeue and has a column which is an integer.
--- an A-forest is an A-tree-list
--- an A-tree has a root which is an A, and subtrees which is an A-forest.
-
--- A forest with more than one tree corresponds to a Scratchpad pile
--- structure (t1;t2;t3;...;tn), and a tree corresponds to a pile item.
--- The ( ; and ) tokens are inserted into a >1-forest, otherwise
--- the root of the first tree is concatenated with its forest.
--- column t is the number of spaces before the first non-space in line t
-
-pileColumn t==CDR tokPosn CAAR t
-pileComment t== EQ(tokType CAAR t,"negcomment")
-pilePlusComment t== EQ(tokType CAAR t,"comment")
-
--- insertpile is used by next so s is non-null
--- bite off a line-tree, return it and the remaining line-list.
-
-insertpile (s)==
- if npNull s
- then [false,0,[],s]
- else
- [h,t]:=[car s,cdr s]
- if pilePlusComment h
- then
- [h1,t1]:=pilePlusComments s
- a:=pileTree(-1,t1)
- cons([pileCforest [:h1,a.2]],a.3)
- else
- stream:=CADAR s
- a:=pileTree(-1,s)
- cons([[a.2,stream]],a.3)
-
-pilePlusComments s==
- if npNull s
- then [[],s]
- else
- [h,t]:=[car s,cdr s]
- if pilePlusComment h
- then
- [h1,t1]:=pilePlusComments t
- [cons(h,h1),t1]
- else [[],s]
-
-pileTree(n,s)==
- if npNull s
- then [false,n,[],s]
- else
- [h,t]:=[car s,cdr s]
- hh:=pileColumn CAR h
- if hh > n
- then pileForests(CAR h,hh,t)
- else [false,n,[],s]
-
-eqpileTree(n,s)==
- if npNull s
- then [false,n,[],s]
- else
- [h,t]:=[car s,cdr s]
- hh:=pileColumn CAR h
- if hh = n
- then pileForests(CAR h,hh,t)
- else [false,n,[],s]
-
-pileForest(n,s)==
- [b,hh,h,t]:= pileTree(n,s)
- if b
- then
- [h1,t1]:=pileForest1(hh,t)
- [cons(h,h1),t1]
- else [[],s]
-
-pileForest1(n,s)==
- [b,n1,h,t]:= eqpileTree(n,s)
- if b
- then
- [h1,t1]:=pileForest1(n,t)
- [cons(h,h1),t1]
- else [[],s]
-
-pileForests(h,n,s)==
- [h1,t1]:=pileForest(n,s)
- if npNull h1
- then [true,n,h,s]
- else pileForests(pileCtree(h,h1),n,t1)
-
-pileCtree(x,y)==dqAppend(x,pileCforest y)
-
--- only enpiles forests with >=2 trees
-
-pileCforest x==
- if null x
- then []
- else if null cdr x
- then
- f:= car x
- if EQ(tokPart CAAR f,"IF")
- then enPile f
- else f
- else enPile separatePiles x
-
-firstTokPosn t== tokPosn CAAR t
-lastTokPosn t== tokPosn CADR t
-
-separatePiles x==
- if null x
- then []
- else if null cdr x
- then car x
- else
- a:=car x
- semicolon:=dqUnit tokConstruct("key", "BACKSET",lastTokPosn a)
- dqConcat [a,semicolon,separatePiles cdr x]
-
-enPile x==
- dqConcat [dqUnit tokConstruct("key","SETTAB",firstTokPosn x),
- x, _
- dqUnit tokConstruct("key","BACKTAB",lastTokPosn x)]
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}