aboutsummaryrefslogtreecommitdiff
path: root/src/interp/record.boot.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-11-04 16:19:40 +0000
committerdos-reis <gdr@axiomatics.org>2007-11-04 16:19:40 +0000
commit0ad09054cee5b6f2bd578e464f1e53d2389a798d (patch)
treec10765f6a0ec2e6cdd8c317b9d0b6d884e036341 /src/interp/record.boot.pamphlet
parent3df098b4ccc05dabb203253a01e3f7e85321d499 (diff)
downloadopen-axiom-0ad09054cee5b6f2bd578e464f1e53d2389a798d.tar.gz
* Makefile.pamphlet (record.$(FASLEXT)): New rule.
(newfort.$(FASLEXT)): Likewise. (<<record.clisp>>): Remove. (<<newfort.clisp>>): Likewise. * newfort.boot.pamphlet: Push into package "BOOT".
Diffstat (limited to 'src/interp/record.boot.pamphlet')
-rw-r--r--src/interp/record.boot.pamphlet300
1 files changed, 0 insertions, 300 deletions
diff --git a/src/interp/record.boot.pamphlet b/src/interp/record.boot.pamphlet
deleted file mode 100644
index f716f545..00000000
--- a/src/interp/record.boot.pamphlet
+++ /dev/null
@@ -1,300 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-
-\title{\File{src/interp/record.boot} Pamphlet}
-\author{The Axiom Team}
-
-\begin{document}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\begin{verbatim}
- Usage
-
-)bo inputFile2RecordFile('"<idir>fn.input",'"<odir>a.b")
- converts input file "fn" to a record file stored at "<odir>fn.record".
- If you give one argument, <idir> is used for <odir>
-
-)bo htFile2RecordFile('"<idir>fn.ht",'"<odir>a.b")
- converts HT file "fn" to a record file stored at "<odir>fn.record".
- If you give one argument, record file goes to "<idir>fn.record".
- A file "<odir>fn.input" is produced as a side-effect.
-
-)bo htFile2InputFile('"<idir>fn.input",'"<odir>a.b")
- converts input file "fn" to an input file stored at "<odir>fn.input"
-
-)bo printRecordFile('"<idir>fn.record") to display results recorded
-
-)bo verifyRecordFile('"<idir>fn.record") to verfiy that same output
- results from running original fn.input file
-\end{verbatim}
-
-\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>>
-
---=======================================================================
--- Global Variables
---=======================================================================
-$backslash := char '_\
-$testOutputLineFlag := nil -- referenced by charyTop, prnd to stash lines
-$testOutputLineStack := nil -- saves lines to be printed (needed to convert
- -- lines for use in hypertex)
-$runTestFlag := nil -- referenced by maPrin to stash output
- -- by recordAndPrint to not print type/time
-$mkTestFlag := nil -- referenced by READLN to stash input
- -- by maPrin to stash output
- -- by recordAndPrint to write i/o onto $testStream
-$mkTestInputStack := nil -- saves input for $testStream (see READLN)
-$mkTestOutputStack := nil -- saves output for $testStream (see maPrin)
-$mkTestOutputType := nil -- saves the type for $testStream
-
---=======================================================================
--- Function for Creating a `record' file
---=======================================================================
-inputFile2RecordFile(pathname,:option) ==
- ifn := PATHNAME_-NAME pathname
- not isExistingFile pathname => throwKeyedMsg("S2IL0003",[namestring ifn])
- opath := KAR option or pathname
- odirect := pathnameDirectory opath
- opathname := htMkPath(odirect,ifn,'"rec")
- _*PRINT_-ARRAY_*: local := true
- $mkTestFlag: local := true
- $runTestFlag: local := false
- $mkTestInputStack: local := nil
- $mkTestOutputStack: local := nil
- $mkTestOutputType: local := nil
- $currentLine: local := nil
- if isExistingFile opathname then DELETE_-FILE opathname
- $testStream := MAKE_-OUTSTREAM opathname
- CATCH('SPAD__READER,_/READ(pathname,nil))
- --for trailing system commands
- if not null $currentLine then recordAndPrintTest '(ForSystemCommands)
- SHUT $testStream
- opathname
---=======================================================================
--- Function for Displaying a `record' file
---=======================================================================
-printRecordFile(pathname,:option) ==
- $LINELENGTH : local := KAR option or 76
- $printTimeIfTrue: local := nil
- $printTypeIfTrue: local := true
- stream := DEFIOSTREAM([['FILE,:pathname], '(MODE . INPUT)],80,0)
- repeat
- NULL (PEEK_-CHAR ( true, stream , nil, nil )) => return nil
- [i,t,:o] := dewritify READ stream
- sayNewLine()
- for x in i repeat sayBrightly x
- sayNewLine()
- for x in o repeat maPrin x
- if t^= '(Void) then printTypeAndTime(nil,t)
-
-testPrin(u,w) == --same as maPrin but lines are stored in $testOutputLineList
- --these lines are needed for pasting into HT files
- $LINELENGTH: local := w
- $mkTestFlag: local := nil
- $testOutputLineFlag: local := true
- $testOutputLineList: local := nil
- maPrin COPY u
- res := REVERSE $testOutputLineList
- for x in res repeat sayBrightly x
- res
-
---=======================================================================
--- Function for converting a maPrin expression to HyperTeX format
---=======================================================================
-hyperize(u,w) ==
- $LINELENGTH: local := w
- $mkTestFlag: local := nil
- $testOutputLineFlag: local := true
- $testOutputLineList: local := nil
- maPrin COPY u
- res := REVERSE $testOutputLineList
- null res => '""
- null rest res => first res
- "STRCONC"/[first res,:[STRCONC("\newline ",x) for x in rest res]]
-
-verbatimize u ==
- u = '"" => u
- STRCONC('"\begin{verbatim}",u,'"\end{verbatim}")
---=======================================================================
--- Function for Verifying a `record' file
---=======================================================================
-verifyRecordFile(pathname) ==
- ifn := PATHNAME_-NAME pathname
- sayBrightly ['"Verifying",:bright ifn]
- not isExistingFile pathname => throwKeyedMsg("S2IL0003",[namestring ifn])
- stream := MAKE_-INSTREAM pathname
- clearCmdAll()
- result := 'ok
- for j in 1.. repeat
- NULL (PEEK_-CHAR ( true, stream ,nil,nil ))=>return nil
- [i,t,:o] := dewritify READ stream
- null i => return nil
- t = 'ForSystemCommands =>
- return testInput2Output(i,nil)
- --read trailing system commands
- [typ,:output] := testInput2Output(i,j)
- typ = t =>
- output = o => 'ok
- result := 'error
- wasIs(o,output)
- result := 'error
- wasIs(o,output,t,typ)
- suffix := (result = 'ok => '"is ok"; '"has errors")
- sayBrightly [:bright ifn,suffix]
-
-testInput2Output(lines,n) ==
- $mkTestOutputStack: local := nil
- $mkTestOutputType: local := nil
- $mkTestFlag: local := nil
- $runTestFlag: local := true
- $testOutput: local
- evaluateLines lines
- null n => nil --return from reading trailing system commands
- typ := $mkTestOutputType
- output := NREVERSE $mkTestOutputStack
- [prefix2String typ,:output]
-
-evaluateLines lines ==
- file := MAKE_-OUTSTREAM '"/tmp/temp.input"
- for line in lines repeat
--- stringPrefix?('")read ",line) => 'skip
- stringPrefix?('")r",line) => 'skip
- stringPrefix?('")undo )redo",line) => 'skip
- PRINTEXP(line, file)
- TERPRI file
- SHUT file
- _/EDITFILE: fluid := '"/tmp/temp.input"
- _/RF()
- -- can't use _/EDITFILE since it might be reset
- DELETE_-FILE '"/tmp/temp.input"
-
-
-wasIs(old,new,:typePart) ==
- sayBrightly '"*************************************************************"
- if old ^= new then
- sayBrightly '"Was ----------> "
- for x in old repeat maPrin x
- sayBrightly '"Is -----------> "
- for x in new repeat maPrin x
- typePart is [oldtype,newtype] and oldtype ^= newtype =>
- sayBrightlyNT ['" Type was ---> ",oldtype]
- pp old
- sayBrightlyNT ['" Type is ---> ",newtype]
- pp new
-
---=======================================================================
--- Creating Input Files from HT Files
---=======================================================================
-htFile2InputFile(pathname,:option) ==
- ifn := pathnameName pathname
- not isExistingFile pathname => throwKeyedMsg("S2IL0003",[namestring ifn])
- opath := KAR option or pathname
- odirect := pathnameDirectory opath
- opathname := htMkPath(odirect,ifn,'"input")
- if isExistingFile opathname then DELETE_-FILE opathname
- $htStream : local := MAKE_-INSTREAM pathname
- alist := [[htGetPageName u,:htGetSpadCommands()]
- while (u := htExampleFind '"\begin{page}")]
- SHUT $htStream
- outStream := MAKE_-OUTSTREAM opathname
- for [pageName,:commands] in alist repeat
- PRINTEXP('"-- ",outStream)
- PRINTEXP(pageName,outStream)
- TERPRI outStream
- PRINTEXP('")cl all",outStream)
- TERPRI outStream
- for x in commands repeat
- PRINTEXP(htCommandToInputLine x,outStream)
- TERPRI outStream
- TERPRI outStream
- SHUT outStream
- opathname
-
-htCommandToInputLine s == fn(s,0) where fn(s,init) ==
---similar to htTrimAtBackSlash except removes all \
- k := or/[i for i in init..MAXINDEX s | s.i = char '_\] =>
- member(s.(k + 1),[char 'f,char 'b]) => SUBSTRING(s,init,k - init)
- STRCONC(SUBSTRING(s,init,k - init),fn(s,k + 1))
- SUBSTRING(s,init,nil)
-
-htTrimAtBackSlash s ==
- backslash := char '_\
- k := or/[i for i in 0..MAXINDEX s | s.i = backslash
- and member(s.(i + 1),[char 'f,char 'b])] => SUBSTRING(s,0,k - 1)
- s
-
-htMkPath(directory,name,typ) ==
- nameType := STRCONC(name,'".",typ)
- null directory => nameType
- STRCONC(directory,nameType)
-
---=======================================================================
--- Creating Record File from HT Files
---=======================================================================
-htFile2RecordFile(pathname,:option) ==
- inputFile2RecordFile htFile2InputFile(pathname,KAR option)
-
---=======================================================================
--- Function to record and print values into $testStream
---=======================================================================
-recordAndPrintTest md == --called by recordAndPrint
- input :=
- STRINGP $currentLine => [$currentLine]
- fn $currentLine where fn x ==
- x is [y,:r] =>
- y.(k := MAXINDEX y) = char '__ =>
- u := fn r
- [STRCONC(SUBSTRING(y,0,k),'" ",first u),:rest u]
- [y,:fn r]
- x
- output := NREVERSE $mkTestOutputStack -- set by maPrin
- PRINT(writify [input,prefix2String md,:output],$testStream)
- $mkTestInputStack := nil
- $mkTestOutputStack := nil
-
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}