Function: define-lex-spp-macro-undeclaration-analyzer

define-lex-spp-macro-undeclaration-analyzer is a macro defined in lex-spp.el.gz.

Signature

(define-lex-spp-macro-undeclaration-analyzer NAME DOC REGEXP TOKIDX)

Documentation

Undefine a lexical analyzer for defining new MACROS.

NAME is the name of the analyzer. DOC is the documentation for the analyzer. REGEXP is a regular expression for the analyzer to match. See define-lex-regex-analyzer for more on regexp. TOKIDX is an index into REGEXP for which a new lexical token of type spp-macro-undef is to be created.

Source Code

;; Defined in /usr/src/emacs/lisp/cedet/semantic/lex-spp.el.gz
(defmacro define-lex-spp-macro-undeclaration-analyzer (name doc regexp tokidx)
  "Undefine a lexical analyzer for defining new MACROS.
NAME is the name of the analyzer.
DOC is the documentation for the analyzer.
REGEXP is a regular expression for the analyzer to match.
See `define-lex-regex-analyzer' for more on regexp.
TOKIDX is an index into REGEXP for which a new lexical token
of type `spp-macro-undef' is to be created."
  (declare (debug (&define name stringp stringp form)))
  (let ((start (make-symbol "start"))
	(end (make-symbol "end")))
    `(define-lex-regex-analyzer ,name
       ,doc
       ,regexp
       (let ((,start (match-beginning ,tokidx))
	     (,end (match-end ,tokidx))
	     )
	 (semantic-lex-spp-symbol-remove
	  (buffer-substring-no-properties ,start ,end))
	 (semantic-lex-push-token
	  (semantic-lex-token 'spp-macro-undef
			      ,start ,end))
	 ))))