Function: semantic-lex-spp-macro-to-macro-stream
semantic-lex-spp-macro-to-macro-stream is a byte-compiled function
defined in lex-spp.el.gz.
Signature
(semantic-lex-spp-macro-to-macro-stream VAL BEG END ARGVALUES)
Documentation
Convert lexical macro contents VAL into a macro expansion stream.
Argument VAL is the value of some macro to be converted into a stream. BEG and END are the token bounds of the macro to be expanded that will somehow gain a much longer token stream. ARGVALUES are values for any arg list, or nil.
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/semantic/lex-spp.el.gz
;;; MACRO EXPANSION
;;
;; There are two types of expansion.
;;
;; 1. Expansion using a value made up of lexical tokens.
;; 2. User input replacement from a plain string.
(defun semantic-lex-spp-macro-to-macro-stream (val beg end argvalues)
"Convert lexical macro contents VAL into a macro expansion stream.
Argument VAL is the value of some macro to be converted into a stream.
BEG and END are the token bounds of the macro to be expanded
that will somehow gain a much longer token stream.
ARGVALUES are values for any arg list, or nil."
(cond
;; If val is nil, then just skip it.
((null val) t)
;; If it is a token, then return that token rebuilt.
((and (consp val) (car val) (symbolp (car val)))
(semantic-lex-push-token
(semantic-lex-token (car val) beg end (semantic-lex-token-text val))))
;; Test for a token list.
((and (consp val) (consp (car val)) (car (car val))
(symbolp (car (car val))))
(semantic-lex-spp-token-macro-to-macro-stream val beg end argvalues))
;; Test for miscellaneous strings.
((stringp val)
(semantic-lex-spp-simple-macro-to-macro-stream val beg end argvalues))
))