aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/omerror.spad.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
committerdos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
commitab8cc85adde879fb963c94d15675783f2cf4b183 (patch)
treec202482327f474583b750b2c45dedfc4e4312b1d /src/algebra/omerror.spad.pamphlet
downloadopen-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz
Initial population.
Diffstat (limited to 'src/algebra/omerror.spad.pamphlet')
-rw-r--r--src/algebra/omerror.spad.pamphlet151
1 files changed, 151 insertions, 0 deletions
diff --git a/src/algebra/omerror.spad.pamphlet b/src/algebra/omerror.spad.pamphlet
new file mode 100644
index 00000000..410b31d6
--- /dev/null
+++ b/src/algebra/omerror.spad.pamphlet
@@ -0,0 +1,151 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/algebra omerror.spad}
+\author{Vilya Harvey}
+\maketitle
+\begin{abstract}
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+\section{domain OMERRK OpenMathErrorKind}
+<<domain OMERRK OpenMathErrorKind>>=
+)abbrev domain OMERRK OpenMathErrorKind
+++ Author: Vilya Harvey
+++ Date Created:
+++ Date Last Updated:
+++ Basic Functions:
+++ Related Constructors:
+++ Also See:
+++ AMS Classifications:
+++ Keywords:
+++ References:
+++ Description: \spadtype{OpenMathErrorKind} represents different kinds
+++ of OpenMath errors: specifically parse errors, unknown CD or symbol
+++ errors, and read errors.
+OpenMathErrorKind() : SetCategory with
+ coerce : Symbol -> %
+ ++ coerce(u) creates an OpenMath error object of an appropriate type if
+ ++ \axiom{u} is one of \axiom{OMParseError}, \axiom{OMReadError},
+ ++ \axiom{OMUnknownCD} or \axiom{OMUnknownSymbol}, otherwise it
+ ++ raises a runtime error.
+ OMParseError? : % -> Boolean
+ ++ OMParseError?(u) tests whether u is an OpenMath parsing error.
+ OMUnknownCD? : % -> Boolean
+ ++ OMUnknownCD?(u) tests whether u is an OpenMath unknown CD error.
+ OMUnknownSymbol? : % -> Boolean
+ ++ OMUnknownSymbol?(u) tests whether u is an OpenMath unknown symbol error.
+ OMReadError? : % -> Boolean
+ ++ OMReadError?(u) tests whether u is an OpenMath read error.
+ == add
+ Rep := Union(parseError:"OMParseError", unknownCD:"OMUnknownCD",
+ unknownSymbol:"OMUnknownSymbol",readError:"OMReadError")
+
+ OMParseError?(u) == (u case parseError)$Rep
+ OMUnknownCD?(u) == (u case unknownCD)$Rep
+ OMUnknownSymbol?(u) == (u case unknownSymbol)$Rep
+ OMReadError?(u) == (u case readError)$Rep
+
+ coerce(s:Symbol):% ==
+ s = OMParseError => ["OMParseError"]$Rep
+ s = OMUnknownCD => ["OMUnknownCD"]$Rep
+ s = OMUnknownSymbol => ["OMUnknownSymbol"]$Rep
+ s = OMReadError => ["OMReadError"]$Rep
+ error concat(string s, " is not a valid OpenMathErrorKind.")
+
+ a = b == (a=b)$Rep
+
+ coerce(e:%):OutputForm == coerce(e)$Rep
+
+@
+\section{domain OMERR OpenMathError}
+<<domain OMERR OpenMathError>>=
+)abbrev domain OMERR OpenMathError
+++ Author: Vilya Harvey
+++ Date Created:
+++ Date Last Updated:
+++ Basic Functions:
+++ Related Constructors:
+++ Also See:
+++ AMS Classifications:
+++ Keywords:
+++ References:
+++ Description: \spadtype{OpenMathError} is the domain of OpenMath errors.
+OpenMathError() : SetCategory with
+ errorKind : % -> OpenMathErrorKind
+ ++ errorKind(u) returns the type of error which u represents.
+ errorInfo : % -> List Symbol
+ ++ errorInfo(u) returns information about the error u.
+ omError : (OpenMathErrorKind, List Symbol) -> %
+ ++ omError(k,l) creates an instance of OpenMathError.
+ == add
+ Rep := Record(err:OpenMathErrorKind, info:List Symbol)
+
+ import List String
+
+ coerce(e:%):OutputForm ==
+ OMParseError? e.err => message "Error parsing OpenMath object"
+ infoSize := #(e.info)
+ OMUnknownCD? e.err =>
+-- not one? infoSize => error "Malformed info list in OMUnknownCD"
+ not (infoSize = 1) => error "Malformed info list in OMUnknownCD"
+ message concat("Cannot handle CD ",string first e.info)
+ OMUnknownSymbol? e.err =>
+ not 2=infoSize => error "Malformed info list in OMUnknownSymbol"
+ message concat ["Cannot handle Symbol ",
+ string e.info.2, " from CD ", string e.info.1]
+ OMReadError? e.err =>
+ message "OpenMath read error"
+ error "Malformed OpenMath Error"
+
+ omError(e:OpenMathErrorKind,i:List Symbol):% == [e,i]$Rep
+
+ errorKind(e:%):OpenMathErrorKind == e.err
+ errorInfo(e:%):List Symbol == e.info
+
+@
+\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>>
+
+<<domain OMERRK OpenMathErrorKind>>
+<<domain OMERR OpenMathError>>
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}