;ELC ;;; compiled by jwz@thalidomide on Thu Dec 2 20:24:10 1993 ;;; from file /th/jwz/emacs19/lisp/edebug/cl-read.el ;;; emacs version 19.9.24 Lucid. ;;; bytecomp version 2.20; 20-oct-93. ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "This file was compiled for Emacs 19.")) (byte-code "!!\"" [require cl provide cl-read autoload compiled-function-p "bytecomp"] 3) (defvar cl-read-active nil "\ Buffer local variable that enables Common Lisp style syntax reading.") (byte-code "!\" BÇ" [make-variable-buffer-local cl-read-active set-default nil minor-mode-alist (cl-read-active " CL")] 3) (defvar reader:readtable-size 256 "\ The size of a readtable.") (fset 'copy-readtable #[(&rest --rest--37000) "A@ A@ T\"G\\D\"\n   X\n H !!I \\ X-" [--rest--37000 *readtable* from-readtable make-vector reader:readtable-size illegal to-readtable signal wrong-number-of-arguments copy-readtable 2 reader:internal-standard-readtable 0 i G37001 nil from-syntax vectorp copy-sequence 1] 5 "\ Return a copy of FROM-READTABLE (default: *readtable*). If the FROM-READTABLE argument is provided as `nil', make a copy of a standard (CL-like) readtable. If TO-READTABLE is provided, modify and return it, otherwise create a new readtable object."]) (fset 'reader:get-readtable-entry '(macro . #[(char readtable) " \nE" [aref readtable char] 3])) (fset 'set-macro-character #[(char function &optional readtable) "  ! \" ILJ" [readtable *readtable* reader:functionp function error "Not valid character macro function: %s" char t] 3 "\ Makes CHAR to be a macro character with FUNCTION as handler. When CHAR is seen by reader:read-from-buffer, it calls FUNCTION. Returns always t. Optional argument READTABLE is the readtable to set the macro character in (default: *readtable*)."]) (byte-code "##" [put set-macro-character edebug-form-spec (&define sexp function-form &optional sexp) lisp-indent-function 1] 4) (fset 'get-macro-character #[(char &optional readtable) " \nH ! )" [readtable *readtable* char entry reader:functionp] 2 "\ Return the function associated with the character CHAR in READTABLE (default: *readtable*.). If char isn't a macro charater in READTABLE, return nil."]) (fset 'set-syntax-from-character #[(to-char from-char &optional to-readtable from-readtable) " \n \n H ! ! I)ɇ" [to-readtable *readtable* from-readtable reader:internal-standard-readtable from-char from-syntax vectorp copy-sequence to-char t] 3 "\ Make the syntax of TO-CHAR be the same as the syntax of FROM-CHAR. Optional TO-READTABLE and FROM-READTABLE are the corresponding tables to use. TO-READTABLE defaults to the current readtable (*readtable*), and FROM-READTABLE to nil, meaning to use the syntaxes from the standard Lisp Readtable."]) (fset 'make-dispatch-macro-character #[(char &optional readtable) " \n \"I" [readtable *readtable* char make-vector reader:readtable-size nil] 5 "\ Let CHAR be a dispatch macro character in READTABLE (default: *readtable*)."]) (fset 'set-dispatch-macro-character #[(disp-char sub-char function &optional readtable) " \nH !\n\"!\" \nI)" [readtable *readtable* disp-char disp-table vectorp error "`%c' not a dispatch macro character." reader:functionp function "Not valid dispatch character macro function: %s" sub-char] 3 "\ Make reading CHAR1 followed by CHAR2 be handled by FUNCTION. Optional argument READTABLE (default: *readtable*). CHAR1 must first be made a dispatch char with `make-dispatch-macro-character'."]) (byte-code "##" [put set-dispatch-macro-character edebug-form-spec (&define sexp sexp function-form &optional def-form) lisp-indent-function 2] 4) (fset 'get-dispatch-macro-character #[(disp-char sub-char &optional readtable) " \nH ! H! H)" [readtable *readtable* disp-char disp-table vectorp reader:functionp sub-char] 3 "\ Return the macro character function for SUB-CHAR unser DISP-CHAR in READTABLE (default: *readtable*), or nil if there is no such function."]) (fset 'reader:functionp #[(function) "9!!:@=" [function fboundp compiled-function-p lambda] 2 "\ Check whether FUNCTION is a valid function object to be used as (dispatch) macro character function."]) (byte-code "!!‡" [boundp reader:shared-structure-references nil reader:shared-structure-labels before-read-hook after-read-hook] 2) (fset 'reader:encapsulate-recursive-call '(macro . #[(reader-call) "EDEF" [prog2 (run-hooks 'before-read-hook) catch 'reader-ignore return prog1 reader-call (run-hooks 'after-read-hook) (run-hooks 'after-read-hook)] 8 "\ Encapsulate READER-CALL, a form that contains a recursive call to the reader, for usage inside the main reader loop. The macro wraps two hooks around READER-CALL: `before-read-hook' and `after-read-hook'. If READER-CALL returns normally, the macro exits immediately from the surrounding loop with the value of READER-CALL as result. If it exits non-locally (with tag `reader-ignore'), it just returns the value of READER-CALL, in which case the surrounding reader loop continues its execution. In both cases, `before-read-hook' and `after-read-hook' are called before and after executing READER-CALL."])) (byte-code "!!!KM" [boundp reader:tmp-buffer get-buffer-create " *CL Read*" fboundp reader:original-read-from-string read-from-string] 2) (fset 'reader:read-from-string #[(string &optional start end) "\n G q! \nOcTb \"`S)B" [start 0 end string reader:tmp-buffer auto-save-mode -1 erase-buffer reader:read-from-buffer nil] 3 "\ Read one Lisp expression which is represented as text by STRING. Returns a cons: (OBJECT-READ . FINAL-STRING-INDEX). START and END optionally delimit a substring of STRING from which to read; they default to 0 and (length STRING) respectively. This is the cl-read replacement of the standard elisp function `read-from-string'."]) (byte-code "!KM" [fboundp reader:original-read read] 2) (fset 'reader:read #[(&optional stream recursive-p) "\n!\n \n=!\n!\n \"\n!\n!q\n!bp \")\n; q! \nceb  \")\n\"" [cl-read-active reader:original-read stream standard-input t read-from-minibuffer "Common Lisp Expression: " bufferp reader:read-from-buffer recursive-p markerp marker-buffer marker-position reader:tmp-buffer auto-save-mode -1 erase-buffer error "CL reader error: Not a valid stream: %s"] 3 "\ Read one Lisp expression as text from STREAM, return as Lisp object. If STREAM is nil, use the value of `standard-input' (which see). STREAM or the value of `standard-input' may be: a buffer (read from point and advance it) a marker (read from where it points and advance it) a string (takes text from string, starting at the beginning) t (read text line using minibuffer and use it). This is the cl-read replacement of the standard elisp function `read'. The only incompatibility is that functions as stream arguments are not supported."]) (byte-code "M##M" [reader:read-from-buffer #[(&optional stream recursive-p) " !! ʼn \"!*̍" [bufferp stream error "Sorry, can only read on buffers" recursive-p nil reader:shared-structure-labels reader:shared-structure-references reader:restore-shared-structure reader:read-from-buffer t --cl-block-nil-- (byte-code "g Hm!\n= \"g\n=u gH=Xut\n=!΍!@\n!!э!-!ҍ!" [nil char entry *readtable* error "CL read error: End of file during reading" illegal "CL read error: `%c' has illegal character syntax" whitespace 1 constituent run-hooks before-read-hook reader-ignore (byte-code " !!\"" [throw --cl-block-nil-- reader:read-constituent stream run-hooks after-read-hook] 5) after-read-hook vectorp (byte-code "ugu> Co H \"\n \"\"!#*!\"" [throw --cl-block-nil-- nil sub-char digit-args 1 (48 49 50 51 52 53 54 55 56 57) entry error "Cl reader error: undefined subsequent dispatch character `%c'" stream string-to-int apply concat mapcar char-to-string run-hooks after-read-hook] 12) (byte-code "u \"!\"" [throw --cl-block-nil-- 1 entry stream char run-hooks after-read-hook] 5)] 3)] 4] put reader:encapsulate-recursive-call edebug-form-spec (form) lisp-indent-function 0 reader:read-constituent #[(stream) " !\nhH=u" [reader:original-read stream *readtable* constituent -1] 3]] 4) (defconst reader:internal-standard-readtable (byte-code " T\" I : @A \n : @\n \n@I A h* AQ +" [make-vector reader:readtable-size illegal raw-readtable ((constituent 33 64 36 37 38 42 95 45 43 61 47 92 48 49 50 51 52 53 54 55 56 57 58 126 62 60 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90) (whitespace 32 9 10 13 12)) G37017 nil entry readtable G37021 char] 5) "\ The original (CL-like) standard readtable. If you ever modify this readtable, you won't be able to recover a standard readtable using (copy-readtable nil)") (byte-code " # # # # # # # # # # # \" $ $ $ $ # $ $ $ $ى $M" [set-macro-character 63 #[(stream char) "u\n!" [-1 reader:original-read stream] 2] reader:internal-standard-readtable 34 #[(stream char) "u\n!hUu" [-1 reader:original-read stream 34] 3] 40 #[(stream char) "" [read-list (byte-code "ō\"\nB\"!*" [list nil reader:stack reader:context dotted-pair (byte-code " \" Bw" [reader:read-from-buffer stream t reader:stack] 3) reader:read-from-buffer stream t error "illegal dotted pair read syntax"] 3)] 2] 41 #[(stream char) "= \"= A @\"!" [reader:context list throw read-list reader:stack dotted-pair error "CL read error: `)' doesn't end a list"] 4] 46 #[(stream char) "=!\"" [reader:context dotted-pair error "CL read error: no more than one `.' allowed in list" throw nil] 3] 91 #[(stream char) "Í)" [vector reader:context read-vector (byte-code " \"\nBw" [vector nil reader:stack reader:context reader:read-from-buffer stream t] 3)] 2] 93 #[(stream char) "= \"\"!" [reader:context vector throw read-vector apply reader:stack error "CL read error: `]' doesn't end a vector"] 5] 39 #[(stream char) "\n\"D" [quote reader:read-from-buffer stream t] 4] 96 #[(stream char) "gU \"D" [32 \` reader:read-from-buffer stream t] 4] 44 #[(stream char) "g=g=ug=ć\"D\"D" [32 \, 64 1 \,@ reader:read-from-buffer stream t] 4] 59 #[(stream char) "w\"" ["^\n " nil throw reader-ignore] 3] make-dispatch-macro-character 35 set-dispatch-macro-character #[(stream char n) "U\"!ƪ \"D" [n 0 error "Cl reader error: numeric infix argument not allowed %d" featurep cl function* function reader:read-from-buffer stream t] 4] 92 #[(stream char n) "U\"gXXu \"9!! GU !=Ѫ=Ӫ=ժ=ת=٪=۪=Ӫ\"*" [n 0 error "Cl reader error: numeric infix argument not allowed %d" nil name next 97 122 1 reader:read-from-buffer stream t symbol-name int-to-string string-to-char linefeed 10 newline 13 space 32 rubout 8 page 12 tab 9 return "CL read error: unknown character specification `%s'"] 4] #[(stream char n) "U\"\"!" [n 0 error "Cl reader error: numeric infix argument not allowed %d" eval reader:read-from-buffer stream t] 4] 80 #[(stream char n) "U\" \";\"!)" [n 0 error "Cl reader error: numeric infix argument not allowed %d" reader:read-from-buffer stream t string "Cl reader error: Pathname must be a string: %s" expand-file-name] 4] 112 get-dispatch-macro-character 43 #[(stream char n) "U\" \" \"!\"*" [n 0 error "Cl reader error: numeric infix argument not allowed %d" reader:read-from-buffer stream t object feature featurep throw reader-ignore nil] 4] 45 #[(stream char n) "U\" \" \"!\"*" [n 0 error "Cl reader error: numeric infix argument not allowed %d" reader:read-from-buffer stream t object feature featurep throw reader-ignore nil] 4] 61 #[(stream char n) " >! B! $ !B@  \"L*" [n reader:shared-structure-labels error "Cl reader error: label defined twice" int-to-string string find reader:shared-structure-references :test string= make-symbol ref reader:read-from-buffer stream t] 6] #[(stream char n) "! ! $ !B@)" [recursive-p error "Cl reader error: references at top level not allowed" int-to-string n string find reader:shared-structure-references :test string= make-symbol] 6] reader:restore-shared-structure #[(obj) ":@ >@J@!A >AJA!!G W H >  HJI H! \\]*" [obj reader:shared-structure-references reader:restore-shared-structure vectorp 0 i G37031 1] 5]] 7) (defvar *readtable* (copy-readtable nil) "\ The current readtable.") (byte-code "!KM" [fboundp reader:original-eval-current-buffer eval-current-buffer] 2) (fset 'reader:eval-current-buffer #[(&optional printflag) "\n!p!" [cl-read-active reader:original-eval-current-buffer printflag reader:eval-buffer] 2 "\ Evaluate the current buffer as Lisp code. Programs can pass argument PRINTFLAG which controls printing of output: nil means discard it; anything else is stream for print. This is the cl-read replacement of the standard elisp function `eval-current-buffer'." nil]) (byte-code "!!KM" [fboundp reader:original-eval-buffer eval-buffer] 3) (fset 'reader:eval-buffer #[(bufname &optional printflag) "\n \"\n!\n\"qed #)" [cl-read-active reader:original-eval-buffer bufname printflag get-buffer error "No such buffer: %s" reader:eval-region] 4 "\ Execute BUFFER as Lisp code. Programs can pass argument PRINTFLAG which controls printing of output: nil means discard it; anything else is stream for print. This is the cl-read replacement of the standard elisp function `eval-buffer'." "bBuffer: "]) (byte-code "!KM" [fboundp reader:original-eval-region eval-region] 2) (fset 'reader:eval-region #[(start end &optional output) "\n #`pp ƓƉ \n  \nb ` W\n!p\nq!p\nq) B=!!!!) `] `^b'  q b.Ƈ" [cl-read-active reader:original-eval-region start end output make-marker nil val form end-marker inside-buf buf pnt reader:skip-whitespace reader:read-from-buffer current-buffer eval t standard-output values prin1 princ "\n"] 6 "\ Execute the region as Lisp code. When called from programs, expects two arguments, giving starting and ending indices in the current buffer of the text to be executed. Programs can pass third argument PRINTFLAG which controls output: nil means discard it; anything else is stream for printing it. If there is no error, point does not move. If there is an error, point remains at the end of the last character read from the buffer. arguments: (b e &optional printflag) This is the cl-read replacement of the standard elisp function `eval-region'." "r"]) (byte-code "MMM " [reader:skip-whitespace #[nil "wgUwwq" [" \n " nil 59 "^\n "] 2] cl-reader-install #[nil "MMMMM" [read reader:read read-from-string reader:read-from-string eval-current-buffer reader:eval-current-buffer eval-buffer reader:eval-buffer eval-region reader:eval-region] 2 nil nil] cl-reader-uninstall #[nil "KMKMKMKMKM" [read reader:original-read read-from-string reader:original-read-from-string eval-current-buffer reader:original-eval-current-buffer eval-buffer reader:original-eval-buffer eval-region reader:original-eval-region] 2 nil nil]] 2)