diff options
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/interp/Makefile.in | 3 | ||||
-rw-r--r-- | src/interp/i-output.boot | 68 | ||||
-rw-r--r-- | src/interp/parsing.lisp | 2 | ||||
-rw-r--r-- | src/interp/property.lisp | 128 |
5 files changed, 76 insertions, 130 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 0762948a..b1c04f2e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2011-10-19 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * interp/property.lisp: Move output-related content to i-output.boo. + Remove. + 2011-10-18 Gabriel Dos Reis <gdr@cs.tamu.edu> * interp/postpar.boot (displayPreCompilationErrors): Dot not check diff --git a/src/interp/Makefile.in b/src/interp/Makefile.in index 964d7914..2157553b 100644 --- a/src/interp/Makefile.in +++ b/src/interp/Makefile.in @@ -95,7 +95,7 @@ OBJS= boot-pkg.$(FASLEXT) types.$(FASLEXT) \ nrunfast.$(FASLEXT) osyscmd.$(FASLEXT) \ packtran.$(FASLEXT) pf2sex.$(FASLEXT) \ scan.$(FASLEXT) pile.$(FASLEXT) \ - property.$(FASLEXT) postpar.$(FASLEXT) \ + postpar.$(FASLEXT) \ parse.$(FASLEXT) spad-parser.$(FASLEXT) \ record.$(FASLEXT) rulesets.$(FASLEXT) \ server.$(FASLEXT) setvars.$(FASLEXT) \ @@ -363,7 +363,6 @@ spaderror.$(FASLEXT): macros.$(FASLEXT) debug.$(FASLEXT): macros.$(FASLEXT) parsing.$(FASLEXT) spad.$(FASLEXT): bootlex.$(FASLEXT) postpar.$(FASLEXT) debug.$(FASLEXT) monitor.$(FASLEXT): macros.$(FASLEXT) -property.$(FASLEXT): sys-macros.$(FASLEXT) sfsfun-l.$(FASLEXT): sys-macros.$(FASLEXT) trace.$(FASLEXT): debug.$(FASLEXT) termrw.$(FASLEXT): macros.$(FASLEXT) diff --git a/src/interp/i-output.boot b/src/interp/i-output.boot index ccb6fcf7..01af6206 100644 --- a/src/interp/i-output.boot +++ b/src/interp/i-output.boot @@ -381,6 +381,74 @@ for x in '((+ APP plusApp) repeat property(first x, second x) := third x +for x in ["*","+","AND","OR","PROGN"] repeat + property(x,'NARY) := true + +for x in '((_= "=") + (_: ":") + (_not "not ") + (_| " | ") + (_SEGMENT "..")) + repeat + property(first x,'PREFIXOP) := second x + +for x in '((_:_= " := ") + (_/ "/") + (_+ "+") + (_* "*") + (_*_* "**") + (_^ "^") + (_: ":") + (_:_: "::") + (_@ "@") + (SEL ".") + (_exquo " exquo ") + (_div " div ") + (_quo " quo ") + (_rem " rem ") + (_case " case ") + (_and " and ") + (_/_\ " /\ ") + (_or " or ") + (_\_/ " \/ ") + (TAG ": ") + (_+_-_> " +-> ") + (RARROW " -> ") + (SEGMENT "..") + (_in " in ") + (EL* ":") + (JOIN " JOIN ") + (EQUATNUM " ") + (IQUOTIENT "//") + (_= "= ") + (_>_= " >= ") + (_> " > ") + (_<_= " <= ") + (_< " < ") + (_| " | ") + (_+ " + ") + (_- " - ") + (MEMBER " in ") + (NMEMBER " nin ") + (WHERE " WHERE ") + (AT " AT ") + (MAX " MAX ") + (MIN " MIN ")) + repeat + property(first x,'INFIXOP) := second x + +property('TAG,'Led) := '(TAG TAG 122 121) +property('EQUATNUM,'Nud) := '(dummy dummy 0 0) +property('EQUATNUM,'Led) := '(dummy dummy 10000 0) +property('%LET,'Led) := '(_:_= %LET 125 124) +property('RARROW,'Led) := '(_=_= DEF 122 121) +property('SEGMENT,'Led) := '(_._. SEGMENT 401 699 (P_:Seg)) +property('SEGMENT,'isSuffix) := true +property('EQUAL1,'CHRYBNAM) := 'EQ +property('COND,'Nud) := '(_if _if 130 0) +property('CONS,'Led) := '(CONS CONS 1000 1000) +property('APPEND,'Led) := '(APPEND APPEND 1000 1000) + --% $collectOutput := false diff --git a/src/interp/parsing.lisp b/src/interp/parsing.lisp index 565fce93..509c6a14 100644 --- a/src/interp/parsing.lisp +++ b/src/interp/parsing.lisp @@ -71,6 +71,8 @@ ; 0. Current I/O Stream definition +(MAKEPROP 'END_UNIT 'KEY 'T) + (defparameter out-stream t "Current output stream.") (defparameter File-Closed nil "Way to stop EOF tests for console input.") diff --git a/src/interp/property.lisp b/src/interp/property.lisp deleted file mode 100644 index 94163971..00000000 --- a/src/interp/property.lisp +++ /dev/null @@ -1,128 +0,0 @@ -;; Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -;; All rights reserved. -;; Copyright (C) 2007-2011, 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. - - -;; This file contains most of the code that puts properties on -;; identifiers in the Scratchpad II system. If it was not possible -;; to actually put the code here, we have pointers to where such -;; property list manipulation is being done. - -;; Pointers: -;; o see NEWAUX LISP for some code that puts GENERIC and RENAMETOK -;; properties on identifiers for the parser -;; o coerceIntCommute puts the "commute" property on constructors. -;; o coerceRetract puts the "retract" property on constructors. -;; o there is some code at the end of SPECEVAL BOOT that puts "up" -;; properties on some special handlers. - - -(import-module "sys-macros") -(in-package "BOOT") - -;; following was in NEWSPAD LISP - -(MAKEPROP 'END_UNIT 'KEY 'T) - -;; following was in OUTINIT LISP - -(MAKEPROP 'TAG 'Led '(TAG TAG 122 121)) -(MAKEPROP 'EQUATNUM '|Nud| '(|dummy| |dummy| 0 0)) -(MAKEPROP 'EQUATNUM '|Led| '(|dummy| |dummy| 10000 0)) -(MAKEPROP '%LET '|Led| '(|:=| %LET 125 124)) -(MAKEPROP 'RARROW '|Led| '(== DEF 122 121)) -(MAKEPROP 'SEGMENT '|Led| '(|..| SEGMENT 401 699 (|P:Seg|))) -(MAKEPROP 'SEGMENT '|isSuffix| 'T) -(MAKEPROP 'EQUAL1 'CHRYBNAM 'EQ) -(MAKEPROP 'COND '|Nud| '(|if| |if| 130 0)) -(MAKEPROP 'CONS '|Led| '(CONS CONS 1000 1000)) -(MAKEPROP 'APPEND '|Led| '(APPEND APPEND 1000 1000)) - -(REPEAT (IN X '( - (|:=| " := ") - (= "=") - (|/| "/") - (+ "+") - (* "*") - (** "**") - (^ "^") - (|:| ":") - (|::| "::") - (|@| "@") - (SEL ".") - (|exquo| " exquo ") - (|div| " div ") - (|quo| " quo ") - (|rem| " rem ") - (|case| " case ") - (|and| " and ") - (|/\\| " /\\ ") - (|or| " or ") - (|\\/| " \\/ ") - (TAG ": ") - (|+->| " +-> ") - (RARROW " -> ") - (SEGMENT "..") - (in " in ") - (|^=| "^=") - (EL* ":") - (JOIN " JOIN ") - (EQUATNUM " ") - (IQUOTIENT "//") - (= "= ") - (|>=| " >= ") - (|>| " > ") - (|<=| " <= ") - (|<| " < ") - (\| " \| ") - (+ " + ") - (- " - ") - (MEMBER " in ") - (NMEMBER " nin ") - (WHERE " WHERE ") - (AT " AT ") - (MAX " MAX ") - (MIN " MIN ") - )) (MAKEPROP (CAR X) 'INFIXOP (CADR X))) - -(REPEAT (IN X '( - (= "=") - (|:| ":") - (|not| "not ") - (\| " \| ") - (SEGMENT "..") ;" 0.. is represented by (SEGMENT 0)" - )) (MAKEPROP (CAR X) 'PREFIXOP (CADR X))) - - -;; following was in INIT LISP - -(FLAG '(* + AND OR PROGN) 'NARY) |