From 5f74397490ef3d629f717116d39c588d3c2de298 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sat, 6 Mar 2021 22:33:19 -0500 Subject: * lisp/cedet/semantic/bovine/*.el: Use lexical-binding * lisp/cedet/semantic/bovine/c.el: Use lexical-binding. (semantic-lex-cpp-define): Remove unused var `name`. (semantic-c-do-lex-if): Remove unused var `pt`. (semantic-analyze-tag-references): Remove unused var `refs`. (semantic-c-dereference-namespace): Remove unused vars `tmp` and `usingname`. (semantic-c-dereference-namespace-alias): Remove unused var `newtype`. (semantic-c-check-type-namespace-using): Remove unused vars `tmp` and `shortname`. (semanticdb-find-table-for-include): Remove unused var `prefix`. (semantic-default-c-setup, semantic-c-describe-environment): Use `derived-mode-p`. * lisp/cedet/semantic/bovine/debug.el: Use lexical-binding. * lisp/cedet/semantic/bovine/make.el: Use lexical-binding. * lisp/cedet/semantic/bovine/scm.el: Use lexical-binding. * lisp/cedet/semantic/lex.el (define-lex-analyzer): Define the var (and the function) in a single step. --- lisp/cedet/semantic/lex.el | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) (limited to 'lisp/cedet/semantic/lex.el') diff --git a/lisp/cedet/semantic/lex.el b/lisp/cedet/semantic/lex.el index b3399aa2e62..29d8e29ae67 100644 --- a/lisp/cedet/semantic/lex.el +++ b/lisp/cedet/semantic/lex.el @@ -1098,26 +1098,21 @@ at the beginning of `semantic-lex-token-stream'. This can be done by using `semantic-lex-push-token'." (declare (debug (&define name stringp form def-body))) `(eval-and-compile - (defvar ,name nil ,doc) - (defun ,name nil) - ;; Do this part separately so that re-evaluation rebuilds this code. - (setq ,name '(,condition ,@forms)) + ;; This is the real info used by `define-lex' (via semantic-lex-one-token). + (defconst ,name '(,condition ,@forms) ,doc) ;; Build a single lexical analyzer function, so the doc for ;; function help is automatically provided, and perhaps the ;; function could be useful for testing and debugging one ;; analyzer. - (fset ',name (lambda () ,doc - (let ((semantic-lex-token-stream nil) - (semantic-lex-end-point (point)) - (semantic-lex-analysis-bounds - (cons (point) (point-max))) - (semantic-lex-current-depth 0) - (semantic-lex-maximum-depth - semantic-lex-depth) - ) - (when ,condition ,@forms) - semantic-lex-token-stream))) - )) + (defun ,name () + ,doc + (let ((semantic-lex-token-stream nil) + (semantic-lex-end-point (point)) + (semantic-lex-analysis-bounds (cons (point) (point-max))) + (semantic-lex-current-depth 0) + (semantic-lex-maximum-depth semantic-lex-depth)) + (when ,condition ,@forms) + semantic-lex-token-stream)))) (defmacro define-lex-regex-analyzer (name doc regexp &rest forms) "Create a lexical analyzer with NAME and DOC that will match REGEXP. -- cgit v1.2.3