%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/progmodes/ |
Current File : //usr/local/share/emacs/27.2/lisp/progmodes/cc-defs.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar c--cl-library (byte-code "\300\301!\203 \302\207\303\207" [locate-library "cl-lib" cl-lib cl] 2)) (byte-code "\301!\210\301\302!\207" [c--cl-library require regexp-opt] 2) #@25 CC Mode version number. (defconst c-version "5.34.1" (#$ . 590)) (defconst c-version-sym (intern c-version)) #@400 Non-nil for all buffers with a major mode derived from CC Mode. Otherwise, this variable is nil. I.e. this variable is non-nil for `c-mode', `c++-mode', `objc-mode', `java-mode', `idl-mode', `pike-mode', `awk-mode', and any other non-CC Mode mode that calls `c-initialize-cc-mode'. The value is the mode symbol itself (i.e. `c-mode' etc) of the original CC Mode mode, or just t if it's not known. (defvar c-buffer-is-cc-mode nil (#$ . 706)) (byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local c-buffer-is-cc-mode put permanent-local t] 4) (defvar c-syntax-table-hwm most-positive-fixnum) (defvar c-inside-eval-when-compile nil) #@238 Like `progn', but evaluates the body at compile time. The result of the body appears to the compiler as a quoted constant. This variant works around bugs in `eval-when-compile' in various (X)Emacs versions. See cc-defs.el for details. (defalias 'cc-eval-when-compile '(macro . #[(&rest body) "\203 \302 B\207\303\304\305\306\307 BBDDD\207" [c-inside-eval-when-compile body progn eval-when-compile eval quote let ((c-inside-eval-when-compile t))] 6 (#$ . 1367)])) (put 'cc-eval-when-compile 'lisp-indent-hook 0) (defalias 'c--mapcan '(macro . #[(fun liszt) "\303\304!\203 \305\304K!\203 \304 E\207\n\306=\203 \307 E\207\310\311\312 EE\207" [fun liszt c--cl-library fboundp mapcan subrp cl-lib cl-mapcan apply 'nconc mapcar] 5])) (defalias 'c--set-difference '(macro . #[(liszt1 liszt2 &rest other-args) "\304=\203 \305 \nBBB\207\306 \nBBB\207" [c--cl-library liszt1 liszt2 other-args cl-lib cl-set-difference set-difference] 4])) (defalias 'c--intersection '(macro . #[(liszt1 liszt2 &rest other-args) "\304=\203 \305 \nBBB\207\306 \nBBB\207" [c--cl-library liszt1 liszt2 other-args cl-lib cl-intersection intersection] 4])) (defalias 'c--macroexpand-all '(macro . #[(form &optional environment) "\302\303!\203 \303 E\207\304 E\207" [form environment fboundp macroexpand-all cl-macroexpand-all] 3])) (defalias 'c--delete-duplicates '(macro . #[(cl-seq &rest cl-keys) "\303=\203\f \304 \nBB\207\305 \nBB\207" [c--cl-library cl-seq cl-keys cl-lib cl-delete-duplicates delete-duplicates] 3])) #@133 Declare the region BEG...END's fontification as out-of-date. On XEmacs and older Emacsen, this refontifies that region immediately. (defalias 'c-font-lock-flush '(macro . #[(beg end) "\302\303!\203 \303 E\207\304 E\207" [beg end fboundp font-lock-flush font-lock-fontify-region] 3 (#$ . 2885)])) #@814 Return the value of certain commonly referenced POSITIONs relative to POINT. The current point is used if POINT isn't specified. POSITION can be one of the following symbols: `bol' -- beginning of line `eol' -- end of line `eoll' -- end of logical line (i.e. without escaped NL) `bod' -- beginning of defun `eod' -- end of defun `boi' -- beginning of indentation `ionl' -- indentation of next line `iopl' -- indentation of previous line `bonl' -- beginning of next line `eonl' -- end of next line `bopl' -- beginning of previous line `eopl' -- end of previous line `bosws' -- beginning of syntactic whitespace `eosws' -- end of syntactic whitespace If the referenced position doesn't exist, the closest accessible point to it is returned. This function does not modify the point or the mark. (defalias 'c-point '(macro . #[(position &optional point) "\242\302=\203K\303!\211\304\267\202E\305\306!\203 \204 \307\202I\310\311 \205) \312 DC\313\"B\202I\305\314!\203= \204= \315\202I\310\311 \205G \312 DC\316\"B\202I\310\311 \205W \312 DC\317\"B\202I\310\311 \205g \312 DC\320\"B\202I\310\311 \205w \312 DC\321\"B\202I\310\311 \205\207 \312 DC\322\"B\202I\305\306!\203\233 \204\233 \323\202I\310\311 \205\245 \312 DC\324\"B\202I\305\306!\203\271 \204\271 \325\202I\310\311 \205\303 \312 DC\326\"B\202I\305\314!\203\327 \204\327 \327\202I\310\311 \205\341 \312 DC\330\"B\202I\305\314!\203\365 \204\365 \331\202I\310\311 \205\377 \312 DC\332\"B\202I\310\311 \205\312 DC\333\"B\202I\310\311 \205\312 DC\334\"B\202I\310\311 \205/\312 DC\335\"B\202I\310\311 \205?\312 DC\336\"B\202I\337\340\")\207\341\342!\210\310\311 \205Y\312 DC\343\300DC\344BB\345B\"B\207" [position point quote eval #s(hash-table size 14 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (bol 17 eol 47 eoll 77 boi 93 bod 109 eod 125 bopl 141 bonl 171 eopl 201 eonl 231 iopl 261 ionl 277 bosws 293 eosws 309)) fboundp line-beginning-position (line-beginning-position) save-excursion append goto-char ((beginning-of-line) (point)) line-end-position (line-end-position) ((end-of-line) (point)) ((while (and (not (eobp)) (progn (end-of-line) (c-is-escaped (point)))) (forward-line)) (end-of-line) (point)) ((back-to-indentation) (point)) ((c-beginning-of-defun-1) (point)) ((c-end-of-defun-1) (point)) (line-beginning-position 0) ((forward-line -1) (point)) (line-beginning-position 2) ((forward-line 1) (point)) (line-end-position 0) ((beginning-of-line) (or (bobp) (backward-char)) (point)) (line-end-position 2) ((forward-line 1) (end-of-line) (point)) ((forward-line -1) (back-to-indentation) (point)) ((forward-line 1) (back-to-indentation) (point)) ((c-backward-syntactic-ws) (point)) ((c-forward-syntactic-ws) (point)) error "Unknown buffer position requested: %s" message "Warning: c-point long expansion" let ((cond ((eq position 'bol) (beginning-of-line)) ((eq position 'eol) (end-of-line)) ((eq position 'boi) (back-to-indentation)) ((eq position 'bod) (c-beginning-of-defun-1)) ((eq position 'eod) (c-end-of-defun-1)) ((eq position 'bopl) (forward-line -1)) ((eq position 'bonl) (forward-line 1)) ((eq position 'eopl) (progn (beginning-of-line) (or (bobp) (backward-char)))) ((eq position 'eonl) (progn (forward-line 1) (end-of-line))) ((eq position 'iopl) (progn (forward-line -1) (back-to-indentation))) ((eq position 'ionl) (progn (forward-line 1) (back-to-indentation))) ((eq position 'bosws) (c-backward-syntactic-ws)) ((eq position 'eosws) (c-forward-syntactic-ws)) (t (error "Unknown buffer position requested: %s" position)))) ((point))] 7 (#$ . 3191)])) (defconst c-use-category (byte-code "\303\304!rq\210\305\216\306\211\307\310 !\210\311c\210\312eeT\313\314$\210\312\315e\\\316e\\\313\317$\210eb\210\320 \210`\316e\\U-\207" [#1=#:temp-buffer lookup-syntax-properties parse-sexp-lookup-properties generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1# buffer-name kill-buffer] 2] t set-syntax-table make-syntax-table "<()>" put-text-property category c-<-as-paren-syntax 3 4 c->-as-paren-syntax forward-sexp] 5)) (defalias 'c-is-escaped '(macro . #[(pos) "\301\302D\303BB\207" [pos save-excursion goto-char ((not (zerop (logand (skip-chars-backward "\\\\") 1))))] 3])) (defalias 'c-will-be-escaped '(macro . #[(pos beg end) "\303\304\305D\306B\307 D\310\311\312\307\nD\313BBB\314BBBBBD\207" [end pos beg save-excursion let -end- (count) goto-char (setq count (skip-chars-backward "\\\\" -end-)) when (eq (point) -end-) ((setq count (+ count (skip-chars-backward "\\\\")))) ((not (zerop (logand count 1))))] 9])) (defalias 'c-next-single-property-change '(macro . #[(position prop &optional object limit) "\203 \305\306!\203 \306 \n\f\257\207\307 \n\f\257\207" [c-use-extents position prop object limit fboundp next-single-char-property-change next-single-property-change] 5])) (defalias 'c-region-is-active-p '(macro . #[nil "\300\301!\203 \302\207\303\207" [fboundp region-active-p (region-active-p) mark-active] 2])) (defalias 'c-set-region-active '(macro . #[(activate) "\301\302!\203\f \303\304BB\207\305\306E\207" [activate fboundp zmacs-activate-region if ((zmacs-activate-region) (zmacs-deactivate-region)) setq mark-active] 3])) (defalias 'c-set-keymap-parent '(macro . #[(map parent) "\302\303!\203 \303 E\207\302\304!\203 \304 E\207\305\306!\207" [map parent fboundp set-keymap-parents set-keymap-parent error "CC Mode is incompatible with this version of Emacs"] 3])) #@54 Delete the text between START and END and return it. (defalias 'c-delete-and-extract-region '(macro . #[(start end) "\302\303!\203 \303 E\207\304\305 E\306 EE\207" [start end fboundp delete-and-extract-region prog1 buffer-substring delete-region] 5 (#$ . 8668)])) (defalias 'c-safe '(macro . #[(&rest body) "\301\302\303B\304BBB\207" [body condition-case nil progn ((error nil))] 4])) (put 'c-safe 'lisp-indent-function 0) (defalias 'c-int-to-char '(macro . #[(integer) "\301\302!\203\n \302D\207\207" [integer fboundp int-to-char] 2])) (defalias 'c-characterp '(macro . #[(arg) "\301\250\203 \302D\207\303D\207" [arg 99 integerp characterp] 2])) (defalias 'c-last-command-char '(macro . #[nil "\300\207" [last-command-event] 1])) (defalias 'c-sentence-end '(macro . #[nil "\300\301!\203 \302\207\301\207" [fboundp sentence-end (sentence-end)] 2])) (defalias 'c-default-value-sentence-end '(macro . #[nil "\300\301!\203 \302\207\303\207" [fboundp sentence-end (let (sentence-end) (sentence-end)) (default-value 'sentence-end)] 2])) (defconst c-c++-raw-string-opener-re "R\"\\([^ ()\\\n ]\\{0,16\\}\\)(") (defconst c-c++-raw-string-opener-1-re "\"\\([^ ()\\\n ]\\{0,16\\}\\)(") (defalias 'c-sub-at-c++-raw-string-opener '(macro . #[nil "\300\207" [(save-excursion (and (if (eq (char-after) 82) (progn (forward-char) t) (eq (char-before) 82)) (looking-at c-c++-raw-string-opener-1-re)))] 1])) (defalias 'c-at-c++-raw-string-opener '(macro . #[(&optional pos) "\203\f \301\302D\303BB\207\304\207" [pos save-excursion goto-char ((c-sub-at-c++-raw-string-opener)) (c-sub-at-c++-raw-string-opener)] 3])) #@1186 Bind variables according to VARLIST (in `let*' style) and eval BODY, then restore the buffer state under the assumption that no significant modification has been made in BODY. A change is considered significant if it affects the buffer text in any way that isn't completely restored again. Changes in text properties like `face' or `syntax-table' are considered insignificant. This macro allows text properties to be changed, even in a read-only buffer. This macro should be placed around all calculations which set "insignificant" text properties in a buffer, even when the buffer is known to be writable. That way, these text properties remain set even if the user undoes the command which set them. This macro should ALWAYS be placed around "temporary" internal buffer changes (like adding a newline to calculate a text-property then deleting it again), so that the user never sees them on his `buffer-undo-list'. See also `c-tentative-buffer-changes'. However, any user-visible changes to the buffer (like auto-newlines) must not be within a `c-save-buffer-state', since the user then wouldn't be able to undo them. The return value is the value of the last form in BODY. (defalias 'c-save-buffer-state '(macro . #[(varlist &rest body) "\302\303!\203 \303\304 BBD\207\304\305\306\307\310\311\312\313\314\315BBBBBBBBB\316\317 B\320BBE\207" [varlist body fboundp with-silent-modifications let* (modified (buffer-modified-p)) (buffer-undo-list t) (inhibit-read-only t) (inhibit-point-motion-hooks t) before-change-functions after-change-functions deactivate-mark buffer-file-name buffer-file-truename unwind-protect progn ((and (not modified) (buffer-modified-p) (set-buffer-modified-p nil)))] 11 (#$ . 10290)])) (byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put c-save-buffer-state edebug-form-spec t function-put lisp-indent-function 1] 4) #@689 Eval BODY and optionally restore the buffer contents to the state it was in before BODY. Any changes are kept if the last form in BODY returns non-nil. Otherwise it's undone using the undo facility, and various other buffer state that might be affected by the changes is restored. That includes the current buffer, point, mark, mark activation (similar to `save-excursion'), and the modified state. The state is also restored if BODY exits nonlocally. If BODY makes a change that unconditionally is undone then wrap this macro inside `c-save-buffer-state'. That way the change can be done even when the buffer is read-only, and without interference from various buffer change hooks. (defalias 'c-tentative-buffer-changes '(macro . #[(&rest body) "\301\302\303\304\305\306\307\310\311\312B\257\313BBE\207" [body let (-tnt-chng-keep -tnt-chng-state) unwind-protect setq buffer-undo-list (cons nil buffer-undo-list) -tnt-chng-state (c-tnt-chng-record-state) -tnt-chng-keep progn ((c-tnt-chng-cleanup -tnt-chng-keep -tnt-chng-state))] 11 (#$ . 12167)])) (put 'c-tentative-buffer-changes 'lisp-indent-function 0) (defalias 'c-tnt-chng-record-state #[nil "\301p`\302\303!\304 \305 &\207" [buffer-undo-list vector mark t region-active-p buffer-modified-p] 7]) (defalias 'c-tnt-chng-cleanup #[(keep saved-state) "\306\234\n =\203 A\211\202j \203- \n\211A =\204% \fA\211\202 \f A\241)\202j A\307\310\311\n\"\211 =\2032 )\312\311\234!\205j \311\234q\210\313\234b\210\314\315\234!\210\316\234\317\234?\205j \320 \205j \321\322!)\207" [saved-state saved-undo-list buffer-undo-list keep p undo-in-progress 0 t primitive-undo 1 buffer-live-p 2 set-mark 3 4 5 buffer-modified-p set-buffer-modified-p nil mark-active] 4]) #@559 Forward skip over syntactic whitespace. Syntactic whitespace is defined as whitespace characters, comments, and preprocessor directives. However if point starts inside a comment or preprocessor directive, the content of it is not treated as whitespace. LIMIT sets an upper limit of the forward movement, if specified. If LIMIT or the end of the buffer is reached inside a comment or preprocessor directive, the point will be left there. Note that this function might do hidden buffer changes. See the comment at the start of cc-engine.el for more info. (defalias 'c-forward-syntactic-ws '(macro . #[(&optional limit) "\203 \301\302\303\304\305BBE\306BB\207\307\207" [limit save-restriction narrow-to-region (point-min) or ((point-max)) ((c-forward-sws)) (c-forward-sws)] 6 (#$ . 13910)])) #@573 Backward skip over syntactic whitespace. Syntactic whitespace is defined as whitespace characters, comments, and preprocessor directives. However if point starts inside a comment or preprocessor directive, the content of it is not treated as whitespace. LIMIT sets a lower limit of the backward movement, if specified. If LIMIT is reached inside a line comment or preprocessor directive then the point is moved into it past the whitespace at the end. Note that this function might do hidden buffer changes. See the comment at the start of cc-engine.el for more info. (defalias 'c-backward-syntactic-ws '(macro . #[(&optional limit) "\203 \301\302\303\304BB\305BB\306BB\207\307\207" [limit save-restriction narrow-to-region or ((point-min)) ((point-max)) ((c-backward-sws)) (c-backward-sws)] 5 (#$ . 14714)])) #@364 Move forward across COUNT balanced expressions. A negative COUNT means move backward. Signal an error if the move fails for any reason. This is like `forward-sexp' except that it isn't interactive and does not do any user friendly adjustments of the point and that it isn't susceptible to user configurations such as disabling of signals in certain situations. (defalias 'c-forward-sexp '(macro . #[(&optional count) "\204 \301\302\303\304ED\207" [count 1 goto-char scan-sexps (point)] 4 (#$ . 15538)])) #@46 See `c-forward-sexp' and reverse directions. (defalias 'c-backward-sexp '(macro . #[(&optional count) "\204 \301\302\247\203 [\202 \303DD\207" [count 1 c-forward-sexp -] 3 (#$ . 16054)])) #@172 Like `scan-lists' but returns nil instead of signaling errors for unbalanced parens. A limit for the search may be given. FROM is assumed to be on the right side of it. (defalias 'c-safe-scan-lists '(macro . #[(from count depth &optional limit) "\305\306 \nFD\f\203? \307\310\f \247\203) \311W\203\"