• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/emacs-lisp/

Lines Matching defs:env

150 ;;; ADT: env
153 (defsubst elint-make-env ()
157 (defsubst elint-env-add-env (env newenv)
159 None of them is modified, and the new env is returned."
160 (list (append (car env) (car newenv))
161 (append (car (cdr env)) (car (cdr newenv)))
162 (append (car (cdr (cdr env))) (car (cdr (cdr newenv))))))
164 (defsubst elint-env-add-var (env var)
167 (cons (cons (list var) (car env)) (cdr env)))
169 (defsubst elint-env-add-global-var (env var)
173 (nconc (car env) (list (list var)))
174 env)
176 (defsubst elint-env-find-var (env var)
179 (assq var (car env)))
181 (defsubst elint-env-add-func (env func args)
184 (list (car env)
185 (cons (list func args) (car (cdr env)))
186 (car (cdr (cdr env)))))
188 (defsubst elint-env-find-func (env func)
191 (assq func (car (cdr env))))
193 (defsubst elint-env-add-macro (env macro def)
197 (list (car env)
198 (car (cdr env))
199 (cons (cons macro def) (car (cdr (cdr env))))))
201 (defsubst elint-env-macro-env (env)
204 (car (cdr (cdr env))))
206 (defsubst elint-env-macrop (env macro)
208 (assq macro (elint-env-macro-env env)))
221 (mapcar 'elint-top-form (elint-update-env))
240 (elint-update-env)
247 (defvar elint-buffer-env nil
255 (defvar elint-last-env-time nil
256 "The last time the buffers env was updated.
259 (defun elint-update-env ()
264 (if (and (local-variable-p 'elint-buffer-env (current-buffer))
266 (local-variable-p 'elint-last-env-time (current-buffer))
267 (= (buffer-modified-tick) elint-last-env-time))
270 ;; Remake env
272 (set (make-local-variable 'elint-buffer-env)
273 (elint-init-env elint-buffer-forms))
274 (set (make-local-variable 'elint-last-env-time) (buffer-modified-tick))
301 (defun elint-init-env (forms)
303 (let ((env (elint-make-env))
311 (setq env (elint-env-add-var env (car (cdr form)))))
314 (setq env (elint-env-add-func env (car (cdr form))
318 (setq env (elint-env-add-macro env (car (cdr form))
321 env (elint-env-add-func env (car (cdr form))
328 (setq env (elint-add-required-env env name file))))
330 env))
332 (defun elint-add-required-env (env name file)
347 (elint-update-env)
348 (setq env (elint-env-add-env env elint-buffer-env)))
353 env)
375 (elint-form (elint-top-form-form form) elint-buffer-env)))
400 (defun elint-form (form env)
408 (funcall func form env)
411 (args (elint-get-args func env))
423 (if (elint-env-macrop env func)
426 (elint-form (macroexpand form (elint-env-macro-env env)) env)
427 env)
437 (elint-form (macroexpand form) env)
438 env)
440 (elint-forms (cdr form) env))))
446 (elint-unbound-variable form env))
448 env)
450 (t env)
453 (defun elint-forms (forms env)
457 (setq env (elint-form (car forms) env)
459 env)
461 (defun elint-unbound-variable (var env)
465 (elint-env-find-var env var)
500 (defun elint-get-args (func env)
503 (let ((f (elint-env-find-func env func)))
532 (defun elint-check-cond-form (form env)
537 (elint-forms (car form) env)
540 env)
542 (defun elint-check-defun-form (form env)
547 (setq env (elint-env-add-var env p)))
550 (elint-forms (cdr form) env))
552 (defun elint-check-let-form (form env)
558 env)
568 (let ((newenv env))
572 (setq newenv (elint-env-add-var newenv s)))
576 env
579 (elint-env-add-var newenv (car s))))
589 (defun elint-check-setq-form (form env)
594 (let ((newenv env)
607 (setq newenv (elint-env-add-var newenv sym))))
610 (defun elint-check-defvar-form (form env)
615 (elint-env-add-global-var (elint-form (nth 2 form) env)
618 env))
620 (defun elint-check-defcustom-form (form env)
625 (elint-env-add-global-var (elint-form (nth 2 form) env)
628 env))
630 (defun elint-check-function-form (form env)
635 (or (elint-env-find-func env func)
638 env)
640 (elint-form func env))
641 ((stringp func) env)
643 env)
646 (defun elint-check-quote-form (form env)
648 env)
650 (defun elint-check-macro-form (form env)
652 (elint-check-function-form (list (car form) (cdr form)) env))
654 (defun elint-check-condition-case-form (form env)
656 (let ((resenv env))
661 (setq resenv (elint-form (nth 2 form) env))
663 (let ((newenv (elint-env-add-var env (car (cdr form))))