aboutsummaryrefslogtreecommitdiff
path: root/src/algebra
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-11-15 17:44:22 +0000
committerdos-reis <gdr@axiomatics.org>2007-11-15 17:44:22 +0000
commite2aabd8c9625a3009115624618a290627c2c61fa (patch)
treefdd935224f471b32a175c4059bfc155f6ddc819b /src/algebra
parent404b0530acf25537720b73664ec84c331743f9d9 (diff)
downloadopen-axiom-e2aabd8c9625a3009115624618a290627c2c61fa.tar.gz
add spad parser library
Diffstat (limited to 'src/algebra')
-rw-r--r--src/algebra/ChangeLog6
-rw-r--r--src/algebra/Makefile.in6
-rw-r--r--src/algebra/Makefile.pamphlet6
-rw-r--r--src/algebra/exposed.lsp.pamphlet2
-rw-r--r--src/algebra/spad-parser.spad51
5 files changed, 69 insertions, 2 deletions
diff --git a/src/algebra/ChangeLog b/src/algebra/ChangeLog
index 84881e17..57a741ad 100644
--- a/src/algebra/ChangeLog
+++ b/src/algebra/ChangeLog
@@ -1,3 +1,9 @@
+2007-11-15 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * Makefile.pamphlet (axiom_algebra_layer_19): Include SPADPRSR.o
+ (SPADPRSR.NRLIB/code.$(FASLEXT)): New rule.
+ * spad-parser.spad: New file.
+
2007-11-13 Gabriel Dos Reis <gdr@cs.tamu.edu>
* Makefile.pamphlet (SYNTAX.NRLIB/code.$(FASLEXT)): New rule.
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in
index 5f81b593..4c82ec6e 100644
--- a/src/algebra/Makefile.in
+++ b/src/algebra/Makefile.in
@@ -731,7 +731,7 @@ axiom_algebra_layer_19 = \
RPOLCAT-.o RULECOLD.o SAOS.o SEGBIND.o \
SET.o SPECOUT.o SQMATRIX.o SWITCH.o \
SYMS.o SYMTAB.o SYSSOLP.o UTSCAT.o \
- UTSCAT-.o VARIABLE.o WFFINTBS.o
+ UTSCAT-.o VARIABLE.o WFFINTBS.o SPADPRSR.o
axiom_algebra_layer_19_nrlibs = \
$(axiom_algebra_layer_19:.$(OBJEXT)=.NRLIB/code.$(OBJEXT))
@@ -904,6 +904,10 @@ SYNTAX.NRLIB/code.$(FASLEXT): syntax.spad
@ rm -rf $*.NRLIB
echo ")co $(srcdir)/syntax.spad" | ${INTERPSYS}
+SPADPRSR.NRLIB/code.$(FASLEXT): spad-parser.spad
+ @ rm -rf $*.NRLIB
+ echo ")co $(srcdir)/spad-parser.spad" | ${INTERPSYS}
+
DOMAIN.NRLIB/code.$(FASLEXT): domain.spad
@ rm -rf $*.NRLIB
echo ")co $(srcdir)/domain.spad" | ${INTERPSYS}
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index 0dfaba40..374c6c37 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -996,7 +996,7 @@ axiom_algebra_layer_19 = \
RPOLCAT-.o RULECOLD.o SAOS.o SEGBIND.o \
SET.o SPECOUT.o SQMATRIX.o SWITCH.o \
SYMS.o SYMTAB.o SYSSOLP.o UTSCAT.o \
- UTSCAT-.o VARIABLE.o WFFINTBS.o
+ UTSCAT-.o VARIABLE.o WFFINTBS.o SPADPRSR.o
axiom_algebra_layer_19_nrlibs = \
$(axiom_algebra_layer_19:.$(OBJEXT)=.NRLIB/code.$(OBJEXT))
@@ -1857,6 +1857,10 @@ SYNTAX.NRLIB/code.$(FASLEXT): syntax.spad
@ rm -rf $*.NRLIB
echo ")co $(srcdir)/syntax.spad" | ${INTERPSYS}
+SPADPRSR.NRLIB/code.$(FASLEXT): spad-parser.spad
+ @ rm -rf $*.NRLIB
+ echo ")co $(srcdir)/spad-parser.spad" | ${INTERPSYS}
+
DOMAIN.NRLIB/code.$(FASLEXT): domain.spad
@ rm -rf $*.NRLIB
echo ")co $(srcdir)/domain.spad" | ${INTERPSYS}
diff --git a/src/algebra/exposed.lsp.pamphlet b/src/algebra/exposed.lsp.pamphlet
index 498b79ab..0439b369 100644
--- a/src/algebra/exposed.lsp.pamphlet
+++ b/src/algebra/exposed.lsp.pamphlet
@@ -335,6 +335,7 @@
(|SimplifyAlgebraicNumberConvertPackage| . SIMPAN)
(|SingleInteger| . SINT)
(|SmithNormalForm| . SMITH)
+ (|SpadParser| . SPADPRSR)
(|SparseUnivariatePolynomialFunctions2| . SUP2)
(|SpecialOutputPackage| . SPECOUT)
(|SquareFreeRegularSetDecompositionPackage| . SRDCMPK)
@@ -350,6 +351,7 @@
(|SturmHabichtPackage| . SHP)
(|Symbol| . SYMBOL)
(|SymmetricGroupCombinatoricFunctions| . SGCF)
+ (|Syntax| . SYNTAX)
(|SystemSolvePackage| . SYSSOLP)
(|SAERationalFunctionAlgFactor| . SAERFFC)
(|Tableau| . TABLEAU)
diff --git a/src/algebra/spad-parser.spad b/src/algebra/spad-parser.spad
new file mode 100644
index 00000000..4aab0e7a
--- /dev/null
+++ b/src/algebra/spad-parser.spad
@@ -0,0 +1,51 @@
+--Copyright (C) 2007, Gabriel Dos Reis.
+--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.
+
+
+)abbrev package SPADPRSR SpadParser
+++ Author: Gabriel Dos Reis
+++ Date Created: October 10, 2006
+++ Date Last Updated: November 12, 2007
+++ Description: This package provides a simple Spad algebra parser.
+++ Related Constructors: Syntax.
+++ See Also: Syntax.
+SpadParser(): Public == Private where
+ Public ==> with
+ parse: String -> List Syntax
+ ++ parse(f) parses the source file f (supposedly containing
+ ++ Spad algebras) and returns a List Syntax. The filename f
+ ++ is supposed to have the proper extension. Note that this
+ ++ function has the side effect of executing any system command
+ ++ contained in the file f, even if it might not be meaningful.
+
+ Private ==> add
+ parse f ==
+ parseSpadFile(f)$Lisp : List(Syntax)