From: Mike Speed
Subject: SHRDLU SMSPEC EOF error
Date: 
Message-ID: <1120883458.387472.118790@f14g2000cwb.googlegroups.com>
I am getting the followin error on SMSPEC:

;(READ-EOF #FILE-IN-|DSK:SHRDLU;SMSPEC LSP|-70760) END OF FILE WITHIN
READ

;BKPT FAIL-ACT

-------------------------------

SMSPEC:

(declare (genprefix smspec))



(DEFUN SMTIME NIL (ERT SMTIME NOT WRITTEN YET))

(DEFUN SMTIME2 NIL (ERT SMTIME2 NOT WRITTEN YET))

(DEFUN SMNEWNOUN NIL
       (OBJECT (MARKERS: (/#NEWNOUN) PROCEDURE: ((/#NEWWORD)))))

(DEFUN SMNEWPROPN NIL (SMSET (LIST (NEWCOPY 'NAME-OSS))))

(DEFUN SMCONJ NIL
       ;;FOR ALL CONJOINED THINGS -- IT CURRENTLY ONLY HANDLES THINGS
       ;;WHICH HAVE AN OSS OR RSS STRUCTURE AS THEIR SEMANTICS.  THIS
       ;;DOES NOT INCLUDE SINGLE WORDS OF MOST TYPES.  IT USES
       ;;RECURSION
       (PROG (%SM) (SMCONJ2 NIL H) (RETURN (SMSET %SM))))

(DEFUN SMCONJ2 (INTERPLIST RESTLIST)
       ;;INTERPLIST IS THE LIST OF INTERPRETATIONS FOR THE CONJUNCTS
       ;;HANDLED SO FAR -- THIS FUNCTION WILL BE CALLED ONCE FOR EACH
       ;;POSSIBLE COMBINATION.  THE MARKERS FOR THE CONJOINED
       ;;STRUCTURE ARE THOSE OF THE FIRST CONJUNCT -- NEEDS MORE
       ;;SOPHISTICATION.  RESTLIST IS THE REST OF NODES YET TO BE
       ;;HANDLED.
       (PROG (%X)
	     (OR RESTLIST
		 (RETURN (SETQ %SM
			       (CONS (BUILD RSSNODE=
					    (AND (RSS? INTERP)
						 (MAKESYM 'RSS))
					    OSSNODE=
					    (AND (OSS? INTERP)
						 (MAKESYM 'OSS))
					    MARKERS=
					    (MARKERS? INTERP)
					    SYSTEMS=
					    (SYSTEMS? INTERP)
					    REL=
					    (REL? INTERP)
					    AND=
					    (AND (OR (CQ BUT)
						     (CQ AND))
						 INTERPLIST)
					    OR=
					    (AND (OR (CQ OR) (CQ NOR))
						 INTERPLIST))
				     %SM))))
								       ;WHEN THERE IS NO RESTLIST,
	     (MAPCAR '(LAMBDA (INTERP) (SMCONJ2 (CONS INTERP
						      INTERPLIST)
								       ;WE HAVE LOOPED TO THE END OF
						(CDR RESTLIST)))
								       ;THE LIST OF CONJUNCTS, AND
		     (SM RESTLIST))))
								       ;THE RESULTING INTERPRETATION IS OK. THE MAPPING
		       ;IS DOWN THE LIST OF INTERPRETATIONS FOR A
		       ;SINGLE CONJUNCT WHILE THE RECURSION GETS US
		       ;DOWN THE LIST OF CONJUNCTS.  THUS WE GET EVERY
		       ;POSSIBLE COMBINATION OF THE INTERPRETATIONS. --
		       ;ISN'T LISP SUPER-DUPER-WONDERFUL! NOTICE THAT
		       ;INTERP IS GETTING PICKED UP AS A FREE VARIABLE
		       ;BY SMCONJ2, EVEN THOUGH IT IS BOUND ONLY INSIDE
		       ;A MAPCAR INSIDE SMCONJ2. THIS WORKS BECAUSE THE
		       ;CLAUSE CONTAINING IT CAN NEVER GET CALLED
		       ;EXCEPT BY RECURSION,


--cont--
From: Christopher C. Stacy
Subject: Re: SHRDLU SMSPEC EOF error
Date: 
Message-ID: <u3bqopnz6.fsf@news.dtpq.com>
"Mike Speed" <·······@yahoo.com> writes:

> I am getting the followin error on SMSPEC:
> 
> ;(READ-EOF #FILE-IN-|DSK:SHRDLU;SMSPEC LSP|-70760) END OF FILE WITHIN READ
> --cont--

It looks like your cut-and-past of the problematic file was truncated
in your posting.  But I wonder if you should look at the definition of
the function SMONE3 and see if your file looks intact there, 
or whether maybe it was trashed at some point.

Just a hunch.

It should look like this:

(DEFUN SMONE3 (ONENG) 
       ;; SMONE3 TAKES AN NG WHICH IS A POSSIBLE REFERENT FOR "ONE". 
       ;;IT FIRST CUTS THE NG TO BE ONLY (NOUN ADJ ...  ADJ ETC) I.E. 
       ;;IT STRIPS OF QUALIFYING PHRASES.  IF THERE IS NO CONTRAST
       ;;THEN THIS MUNGED NG IS RETURNED AS THE REFERENT.  IF THERE
       ;;IS A CONTRAST, THEN IT CHECKS TO SEE IF THE NG SATISFIES
       ;;THAT CONTRAST.
       (PROG (NGWORDS X) 
	     (OR (ISQ ONENG NG)
		 (BUG SMONE3: ONE REFERENT IS NOT A NG))
	     (SETQ NGWORDS (H ONENG))
	LOOP (COND ((NULL NGWORDS) (RETURN NIL))
								       ; FAIL IF NG HAS NO NOUN HEAD
		   ((ISQ NGWORDS NOUN))
								       ; IF FIND NOUN HEAD OF NG,
		   (ELSE (SETQ NGWORDS (CDR NGWORDS)) (GO LOOP)))
							       ;WIN
	     (OR CONTRAST (RETURN NGWORDS))
								       ; IF THERE IS NO CONTRAST,
	     (SETQ X (REVERSE NGWORDS))
								       ;REFERENT WINS BY DEFAULT
	LOOK (COND ((AND (EQ (CAR CONTRAST)
			     (GET (ROOT (NB X)) 'CONTRAST))
			 (NOT (EQ (CADR CONTRAST) (ROOT (NB X)))))
		    (RETURN (REVERSE (CDR X))))
		   ((SETQ X (CDR X)) (GO LOOK))
		   (ELSE (RETURN NIL)))))