From d4b55b57874770ebaf0bd0f79b91ff40a6d94b94 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Sat, 28 May 2011 07:00:13 +0000 Subject: * lisp/core.lisp.in: Define and export readLine and readbyte. * interp/sys-utility.boot (readByteFromFile): Remove. * boot/tokens.boot: Don't rename readLine and readByte. * boot/includer.boot (shoeReadLine): Remove. (bRgen1): Adjust. Use resdLine. * algebra/net.spad.pamphlet (InputBinaryFile): Use readByte from the runtime system. --- src/ChangeLog | 10 ++++++++++ src/algebra/net.spad.pamphlet | 2 +- src/boot/includer.boot | 7 ++----- src/boot/strap/includer.clisp | 10 +++++----- src/boot/strap/tokens.clisp | 2 -- src/boot/strap/translator.clisp | 4 ++-- src/boot/tokens.boot | 2 -- src/boot/translator.boot | 4 ++-- src/interp/database.boot | 2 +- src/interp/sys-utility.boot | 9 --------- src/interp/word.boot | 2 +- src/lisp/core.lisp.in | 13 +++++++++++++ 12 files changed, 37 insertions(+), 30 deletions(-) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index 8435dbcb..54b8231d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2011-05-28 Gabriel Dos Reis + + * lisp/core.lisp.in: Define and export readLine and readbyte. + * interp/sys-utility.boot (readByteFromFile): Remove. + * boot/tokens.boot: Don't rename readLine and readByte. + * boot/includer.boot (shoeReadLine): Remove. + (bRgen1): Adjust. Use resdLine. + * algebra/net.spad.pamphlet (InputBinaryFile): Use readByte from + the runtime system. + 2011-05-25 Gabriel Dos Reis * boot/ast.boot (shoeCompTran1): Translate arguments to vector diff --git a/src/algebra/net.spad.pamphlet b/src/algebra/net.spad.pamphlet index 6e9b3139..29b5e704 100644 --- a/src/algebra/net.spad.pamphlet +++ b/src/algebra/net.spad.pamphlet @@ -209,7 +209,7 @@ InputBinaryFile(): Public == Private where not null? rep(ifile).stream readByte! ifile == isOpen? ifile => - b: Maybe Byte := readByteFromFile(rep(ifile).stream)$Lisp + b: Maybe Byte := readByte(rep(ifile).stream)$Lisp if b case nothing then rep(ifile).eof := true b diff --git a/src/boot/includer.boot b/src/boot/includer.boot index e286d843..a878844d 100644 --- a/src/boot/includer.boot +++ b/src/boot/includer.boot @@ -77,10 +77,6 @@ shoeReadLispString(s,n) == n >= l => nil readLispFromString strconc('"(", subString(s,n,l-n) ,'")") --- read a line from stream -shoeReadLine stream == - readLine(stream, nil, nil) - -- write LINE to standard terminal I/O. shoeConsole line == writeLine(line, _*TERMINAL_-IO_*) @@ -174,7 +170,8 @@ bRgen s == bDelay(function bRgen1,[s]) bRgen1 s == - a := shoeReadLine s => [a,:bRgen s] + a := readLine s + a ~= %nothing => [a,:bRgen s] ["nullstream"] bIgen n == diff --git a/src/boot/strap/includer.clisp b/src/boot/strap/includer.clisp index ad66a280..e74c7ea1 100644 --- a/src/boot/strap/includer.clisp +++ b/src/boot/strap/includer.clisp @@ -24,8 +24,6 @@ (T (READ-FROM-STRING (CONCAT "(" (|subString| |s| |n| (- |l| |n|)) ")")))))))) -(DEFUN |shoeReadLine| (|stream|) (READ-LINE |stream| NIL NIL)) - (DEFUN |shoeConsole| (|line|) (WRITE-LINE |line| *TERMINAL-IO*)) (DEFUN |shoeSpaces| (|n|) (|makeString| |n| (|char| '|.|))) @@ -135,9 +133,11 @@ (DEFUN |bRgen1| (|s|) (PROG (|a|) (RETURN - (COND - ((SETQ |a| (|shoeReadLine| |s|)) (CONS |a| (|bRgen| |s|))) - (T (LIST '|nullstream|)))))) + (PROGN + (SETQ |a| (|readLine| |s|)) + (COND + ((NOT (EQUAL |a| |%nothing|)) (CONS |a| (|bRgen| |s|))) + (T (LIST '|nullstream|))))))) (DEFUN |bIgen| (|n|) (|bDelay| #'|bIgen1| (LIST |n|))) diff --git a/src/boot/strap/tokens.clisp b/src/boot/strap/tokens.clisp index 7a5a473e..5465289e 100644 --- a/src/boot/strap/tokens.clisp +++ b/src/boot/strap/tokens.clisp @@ -235,9 +235,7 @@ (LIST '|not| 'NOT) (LIST '|null| 'NULL) (LIST '|odd?| 'ODDP) (LIST '|or| 'OR) (LIST '|otherwise| 'T) (LIST '|property| 'GET) - (LIST '|readByte| 'READ-BYTE) (LIST '|readInteger| 'PARSE-INTEGER) - (LIST '|readLine| 'READ-LINE) (LIST '|readLispFromString| 'READ-FROM-STRING) (LIST '|readOnly?| 'CONSTANTP) (LIST '|removeDuplicates| 'REMDUP) diff --git a/src/boot/strap/translator.clisp b/src/boot/strap/translator.clisp index 63cd603a..b7170014 100644 --- a/src/boot/strap/translator.clisp +++ b/src/boot/strap/translator.clisp @@ -1221,7 +1221,7 @@ (PROG (|stream| |b| |a|) (RETURN (PROGN - (SETQ |a| (READ-LINE)) + (SETQ |a| (|readLine| *STANDARD-INPUT*)) (COND ((EQL (LENGTH |a|) 0) (WRITE-LINE "Boot Loop; to exit type ] ") (BOOTLOOP)) @@ -1236,7 +1236,7 @@ (PROG (|stream| |b| |a|) (RETURN (PROGN - (SETQ |a| (READ-LINE)) + (SETQ |a| (|readLine| *STANDARD-INPUT*)) (COND ((EQL (LENGTH |a|) 0) (WRITE-LINE "Boot Loop; to exit type ] ") (BOOTPO)) diff --git a/src/boot/tokens.boot b/src/boot/tokens.boot index 6a73af4c..c0b8134e 100644 --- a/src/boot/tokens.boot +++ b/src/boot/tokens.boot @@ -292,9 +292,7 @@ for i in [ _ ["or", "OR"] , _ ["otherwise", "T"] , _ ["property", "GET"] , _ - ["readByte", "READ-BYTE"], _ ["readInteger", "PARSE-INTEGER"], _ - ["readLine", "READ-LINE"], _ ["readLispFromString", "READ-FROM-STRING"] , _ ["readOnly?","CONSTANTP"], _ ["removeDuplicates", "REMDUP"] , _ diff --git a/src/boot/translator.boot b/src/boot/translator.boot index dd740929..89a4059a 100644 --- a/src/boot/translator.boot +++ b/src/boot/translator.boot @@ -679,7 +679,7 @@ PSTTOMC string== shoePCompileTrees shoeTransformString string BOOTLOOP() == - a := readLine() + a := readLine _*STANDARD_-INPUT_* #a=0=> writeLine '"Boot Loop; to exit type ] " BOOTLOOP() @@ -693,7 +693,7 @@ BOOTLOOP() == BOOTLOOP() BOOTPO() == - a := readLine() + a := readLine _*STANDARD_-INPUT_* #a=0=> writeLine '"Boot Loop; to exit type ] " BOOTPO() diff --git a/src/interp/database.boot b/src/interp/database.boot index c7c068b0..8211fd04 100644 --- a/src/interp/database.boot +++ b/src/interp/database.boot @@ -706,7 +706,7 @@ dropPrefix(fn) == --++ $globalExposureGroupAlist := nil --++ egName := nil --++ egFiles := nil ---++ while (not PLACEP (x:= readLine stream)) repeat +--++ while (x:= readLine stream) ~= %nothing repeat --++ x := DROPTRAILINGBLANKS x --++ # x = 0 => 'iterate -- blank line --++ (x.0 = char "#") or (x.0 = char "*") => 'iterate -- comment diff --git a/src/interp/sys-utility.boot b/src/interp/sys-utility.boot index 84dff4b9..2fa38afa 100644 --- a/src/interp/sys-utility.boot +++ b/src/interp/sys-utility.boot @@ -45,10 +45,6 @@ module sys_-utility where --% $COMBLOCKLIST := nil -++ No value marker for the Maybe domain. -%nothing == KEYWORD::%OpenAxiomNoValue - - ++ Constants describing byte order %littleEndian == KEYWORD::%littleEndian %bigEndian == KEYWORD::%bigEndian @@ -310,11 +306,6 @@ openBinaryFile(file,mode) == KEYWORD::IF_-EXISTS,KEYWORD::SUPERSEDE, KEYWORD::ELEMENT_-TYPE,"%Byte") -++ Attemp to read a byte from input file `ifile'. If not end of -++ file, return the read byte; %nothing. -readByteFromFile ifile == - readByte(ifile,false,%nothing) - ++ Write byte `b' to output binary file `ofile'. writeByteToFile(ofile,b) == writeByte(b,ofile) diff --git a/src/interp/word.boot b/src/interp/word.boot index 40d01114..be576794 100644 --- a/src/interp/word.boot +++ b/src/interp/word.boot @@ -97,7 +97,7 @@ getListOfFunctionNames(fnames) == for fn in fnames repeat null IOSTATE(fn,'DIRECT,'_*) => 'iterate stream:= DEFIOSTREAM(['(MODE . INPUT),['FILE,fn,'DIRECT,'_*]],80,0) - while (not PLACEP (x:= readLine stream)) repeat + while (x:= readLine stream) ~= %nothing repeat (s := # x) < 26 => 'iterate res:= [subString(x,26),:res] SHUT stream diff --git a/src/lisp/core.lisp.in b/src/lisp/core.lisp.in index f533a4a8..a46e14b4 100644 --- a/src/lisp/core.lisp.in +++ b/src/lisp/core.lisp.in @@ -99,6 +99,7 @@ "outputTextFile" "closeFile" "prettyPrint" + "readLine" ;; compiler data structures "%Mode" @@ -141,6 +142,7 @@ "%systemArguments" "%basicSystemIsComplete" "%algebraSystemIsComplete" + "%nothing" "$hostPlatform" "$buildPlatform" @@ -419,6 +421,10 @@ (defconstant |$EditorProgram| "@oa_editor@") +;; Token expression to indicate absence of value or bottom value. +;; This is also the bottom value of the Maybe domain. +(defconstant |%nothing| :|OpenAxiomNoValue|) + ;; Base name of the native core runtime library (defconstant |$CoreLibName| "open-axiom-core") @@ -499,6 +505,13 @@ (defun |closeFile| (f) (close f)) +;; Read a line from the input text file. Quietly return +;; %nothing at end of file. +(defmacro |readLine| (f) + `(read-line ,f nil |%nothing|)) + +(defmacro |readByte| (f) + `(read-byte ,f nil |%nothing|)) ;; Pretty-print a lisp form on a given output stream. (defun |prettyPrint| (x &optional (s |$OutputStream|)) -- cgit v1.2.3