diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2021-03-06 22:33:19 -0500 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2021-03-06 22:33:19 -0500 |
commit | 5f74397490ef3d629f717116d39c588d3c2de298 (patch) | |
tree | 33943c38fab4f67078d42b2554fbec8efd65d1d3 /lisp/cedet/semantic/lex.el | |
parent | b8b05fff1b3d6a515bdaa9dc069c0e29f4d0ef8b (diff) | |
download | emacs-5f74397490ef3d629f717116d39c588d3c2de298.tar.gz emacs-5f74397490ef3d629f717116d39c588d3c2de298.tar.bz2 emacs-5f74397490ef3d629f717116d39c588d3c2de298.zip |
* 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.
Diffstat (limited to 'lisp/cedet/semantic/lex.el')
-rw-r--r-- | lisp/cedet/semantic/lex.el | 27 |
1 files changed, 11 insertions, 16 deletions
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. |