Function: make-ppss--cmacro

make-ppss--cmacro is a function defined in syntax.el.gz.

Signature

(make-ppss--cmacro CL-WHOLE &cl-quote &key DEPTH INNERMOST-START LAST-COMPLETE-SEXP-START STRING-TERMINATOR COMMENT-DEPTH QUOTED-P MIN-DEPTH COMMENT-STYLE COMMENT-OR-STRING-START OPEN-PARENS TWO-CHARACTER-SYNTAX)

Documentation

compiler-macro for make-ppss.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/syntax.el.gz
;; Could not find source code, showing raw function object.
#[(cl-whole &rest --cl-rest--)
  ((let*
       ((depth (car (cdr (plist-member --cl-rest-- ':depth))))
	(innermost-start
	 (car (cdr (plist-member --cl-rest-- ':innermost-start))))
	(last-complete-sexp-start
	 (car
	  (cdr (plist-member --cl-rest-- ':last-complete-sexp-start))))
	(string-terminator
	 (car (cdr (plist-member --cl-rest-- ':string-terminator))))
	(comment-depth
	 (car (cdr (plist-member --cl-rest-- ':comment-depth))))
	(quoted-p (car (cdr (plist-member --cl-rest-- ':quoted-p))))
	(min-depth (car (cdr (plist-member --cl-rest-- ':min-depth)))))
     (funcall
      (lambda (comment-style)
	(let*
	    ((comment-or-string-start
	      (car
	       (cdr
		(plist-member --cl-rest-- ':comment-or-string-start))))
	     (open-parens
	      (car (cdr (plist-member --cl-rest-- ':open-parens))))
	     (two-character-syntax
	      (car
	       (cdr (plist-member --cl-rest-- ':two-character-syntax)))))
	  (progn
	    (let ((--cl-keys-- --cl-rest--))
	      (while --cl-keys--
		(cond
		 ((memq (car --cl-keys--)
			'(:depth :innermost-start
				 :last-complete-sexp-start
				 :string-terminator :comment-depth
				 :quoted-p :min-depth :comment-style
				 :comment-or-string-start :open-parens
				 :two-character-syntax
				 :allow-other-keys))
		  (unless (cdr --cl-keys--)
		    (error "Missing argument for %s" (car --cl-keys--)))
		  (setq --cl-keys-- (cdr (cdr --cl-keys--))))
		 ((car (cdr (memq ':allow-other-keys --cl-rest--)))
		  (setq --cl-keys-- nil))
		 (t
		  (error
		   "Keyword argument %S not one of (:depth :innermost-start :last-complete-sexp-start :string-terminator :comment-depth :quoted-p :min-depth :comment-style :comment-or-string-start :open-parens :two-character-syntax)"
		   (car --cl-keys--))))))
	    (cl-block make-ppss--cmacro
	      (cl--defsubst-expand
	       '(depth innermost-start last-complete-sexp-start
		       string-terminator comment-depth quoted-p
		       min-depth comment-style comment-or-string-start
		       open-parens two-character-syntax)
	       '(cl-block make-ppss
		  (list depth innermost-start last-complete-sexp-start
			string-terminator comment-depth quoted-p
			min-depth comment-style
			comment-or-string-start open-parens
			two-character-syntax))
	       nil cl-whole nil depth innermost-start
	       last-complete-sexp-start string-terminator
	       comment-depth quoted-p min-depth comment-style
	       comment-or-string-start open-parens
	       two-character-syntax)))))
      (car (cdr (plist-member --cl-rest-- ':comment-style))))))
  (cl-struct-ppss-tags) nil
  "compiler-macro for `make-ppss'.\n\n(fn CL-WHOLE &cl-quote &key DEPTH INNERMOST-START LAST-COMPLETE-SEXP-START STRING-TERMINATOR COMMENT-DEPTH QUOTED-P MIN-DEPTH COMMENT-STYLE COMMENT-OR-STRING-START OPEN-PARENS TWO-CHARACTER-SYNTAX)"]