aboutsummaryrefslogtreecommitdiff
path: root/src/interp/ptrop.boot.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/ptrop.boot.pamphlet')
-rw-r--r--src/interp/ptrop.boot.pamphlet98
1 files changed, 0 insertions, 98 deletions
diff --git a/src/interp/ptrop.boot.pamphlet b/src/interp/ptrop.boot.pamphlet
deleted file mode 100644
index 70a65623..00000000
--- a/src/interp/ptrop.boot.pamphlet
+++ /dev/null
@@ -1,98 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/interp ptrop.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"
-
---% Utility operations on Abstract Syntax Trees
-
--- An S-expression which people can read.
-pfSexpr pform ==
- strip pform where
- strip pform ==
- pfId? pform => pfIdSymbol pform
- pfLiteral? pform => pfLiteralString pform
- pfLeaf? pform => tokPart pform
-
- pfApplication? pform =>
- args :=
- a := pfApplicationArg pform
- if pfTuple? a then pf0TupleParts a else [a]
- [strip p for p in cons(pfApplicationOp pform, args)]
-
- cons(pfAbSynOp pform, [strip p for p in pfParts pform])
-
-pfCopyWithPos( pform , pos ) ==
- pfLeaf? pform => pfLeaf( pfAbSynOp pform , tokPart pform , pos )
- pfTree( pfAbSynOp pform , [ pfCopyWithPos( p , pos ) for p in pfParts pform ] )
-
-pfMapParts(f, pform) ==
- pfLeaf? pform => pform
- parts0 := pfParts pform
- parts1 := [FUNCALL(f, p) for p in parts0]
- -- Return the original if no changes.
- same := true
- for p0 in parts0 for p1 in parts1 while same repeat same := EQ(p0,p1)
- same => pform
- pfTree(pfAbSynOp pform, parts1)
-
-
-pf0ApplicationArgs pform ==
- arg := pfApplicationArg pform
- pf0FlattenSyntacticTuple arg
-
-pf0FlattenSyntacticTuple pform ==
- not pfTuple? pform => [pform]
- [:pf0FlattenSyntacticTuple p for p in pf0TupleParts pform]
-
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}