Server IP : 111.118.215.189 / Your IP : 18.117.158.174 Web Server : Apache System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : a1673wkz ( 2475) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /usr/share/emacs/24.3/lisp/progmodes/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
;ELC ;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:09:17 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/progmodes/cc-langs.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file contains utf-8 non-ASCII characters, ;;; and so cannot be loaded into Emacs 22 or earlier. (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (string-lessp emacs-version "23") (error "`%s' was compiled for Emacs 23 or later" #$)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\204 \302\301\303\304B\"\210\305\306!\210\305\307!\210\305\310!\207" [fboundp declare-function defalias macro #[(&rest r) "\300\207" [nil] 1] require cc-defs cc-vars cl] 4) (defvar c-lang-variable-inits nil) (defvar c-lang-variable-inits-tail nil) (byte-code "\302C\211\302\207" [c-lang-variable-inits c-lang-variable-inits-tail nil] 2) (defvar c-emacs-variable-inits nil) (defvar c-emacs-variable-inits-tail nil) (byte-code "\302C\211\302\207" [c-emacs-variable-inits c-emacs-variable-inits-tail nil] 2) #@423 Declares the buffer local variable VAR to get the value VAL. VAL is evaluated and assigned at mode initialization. More precisely, VAL is evaluated and bound to VAR when the result from the macro `c-init-language-vars' is evaluated. `c-lang-const' is typically used in VAL to get the right value for the language being initialized, and such calls will be macro expanded to the evaluated constant value at compile time. (defalias 'c-lang-defvar '(macro . #[(var val &optional doc) "\204$ \242\306=\203$ A@\n=\203$ \307 8\204$ \310\311 A@!\"\312N;\204+ \313\n\fA\236\211\203= D\241\210\202K \n EC\241\210 A )\314\nD\207" [doc val var c-lang-constants c-lang-variable-inits elem c-lang-const 2 intern symbol-name variable-documentation nil quote c-lang-variable-inits-tail] 5 (#$ . 1093)])) #@509 Causes the variable VAR to be made buffer local and to get set to the value VAL. VAL is evaluated and assigned at mode initialization. More precisely, VAL is evaluated and bound to VAR when the result from the macro `c-init-language-vars' is evaluated. VAR is typically a standard Emacs variable like `comment-start'. `c-lang-const' is typically used in VAL to get the right value for the language being initialized, and such calls will be macro expanded to the evaluated constant value at compile time. (defalias 'c-lang-setvar '(macro . #[(var val) " A\236\211\203 \nC\241\210\202 \fDC\241\210\fA)\305D\207" [var c-emacs-variable-inits elem val c-emacs-variable-inits-tail quote] 4 (#$ . 1907)])) (byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put c-lang-defvar lisp-indent-function defun edebug-form-spec (&define name def-form &optional stringp)] 4) (defalias 'c-filter-ops #[(ops opgroup-filter op-filter &optional xlate) "\242<\204 C \305=\203 \306\202$ \307 !\204$ \310\311\312\313\314 DEE\n\305=\203/ \315\202= \n;\203= \310\316\317\n\320BBE\204C \321\322 \323\216\324\325\326!!\210\327\330\331\"\332\333#*\207" [ops opgroup-filter op-filter xlate c-with-syntax-table-orig-table t #[(opgroup) "\300\207" [t] 1] functionp lambda (opgroup) memq opgroup quote #[(op) "\300\207" [t] 1] (op) string-match (op) identity syntax-table ((set-syntax-table c-with-syntax-table-orig-table)) set-syntax-table c-get-lang-constant c-mode-syntax-table delete-duplicates mapcan #[(opgroup) "@9\203 @!\205 A\302\303\"\207" [opgroup opgroup-filter mapcan #[(op) " !\205 \n !\211<\203 \202 C)\207" [op-filter op xlate res] 3]] 3] :test equal] 6]) (c-define-lang-constant 'c-mode-menu '((t cons ["Comment Out Region" comment-region (c-fn-region-is-active-p)] (cons ["Uncomment Region" (comment-region (region-beginning) (region-end) '(4)) (c-fn-region-is-active-p)] (cons ["Indent Expression" c-indent-exp (memq (char-after) '(40 91 123))] (cons ["Indent Line or Region" c-indent-line-or-region t] (cons ["Fill Comment Paragraph" c-fill-paragraph t] (cons "----" (cons ["Backward Statement" c-beginning-of-statement t] (cons ["Forward Statement" c-end-of-statement t] (append (if (c-get-lang-constant 'c-opt-cpp-prefix) (progn '(["Up Conditional" c-up-conditional t] ["Backward Conditional" c-backward-conditional t] ["Forward Conditional" c-forward-conditional t] "----" ["Macro Expand Region" c-macro-expand (c-fn-region-is-active-p)] ["Backslashify" c-backslash-region (c-fn-region-is-active-p)]))) '("----" ("Style..." ["Set Style..." c-set-style t] ["Show Current Style Name" (message "Style Name: %s" c-indentation-style) t] ["Guess Style from this Buffer" c-guess-buffer-no-install t] ["Install the Last Guessed Style..." c-guess-install (and c-guess-guessed-offsets-alist c-guess-guessed-basic-offset)] ["View the Last Guessed Style" c-guess-view (and c-guess-guessed-offsets-alist c-guess-guessed-basic-offset)]) "----" ("Toggle..." ["Syntactic indentation" c-toggle-syntactic-indentation :style toggle :selected c-syntactic-indentation] ["Electric mode" c-toggle-electric-state :style toggle :selected c-electric-flag] ["Auto newline" c-toggle-auto-newline :style toggle :selected c-auto-newline] ["Hungry delete" c-toggle-hungry-state :style toggle :selected c-hungry-delete-key] ["Subword mode" subword-mode :style toggle :selected (and (boundp 'subword-mode) subword-mode)]))))))))))))) #@222 Populate the given syntax table as necessary for a C-like language. This includes setting ' and " as string delimiters, and setting up the comment syntax to handle both line style "//" and block style "/*" "*/" comments. (defalias 'c-populate-syntax-table #[(table) "\302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\310#\210\302\312\310#\210\302\313\310#\210\302\314\310#\210\302\315\310#\210\302\316\310#\210\302\317\310#\210\302\320\321#\210\302\322\310#\210\323 >\203] \302\324\325#\210\302\326\327#\210\202v \330 >\203r \302\324\331#\210\302\326\327#\210\202v \332\333!\210\302\334\335#\210\302\336\335#\207" [table c-emacs-features modify-syntax-entry 95 "_" 92 "\\" 43 "." 45 61 37 60 62 38 124 39 "\"" 160 8-bit 47 ". 1456" 42 ". 23" 1-bit ". 124b" error "CC Mode is incompatible with this version of Emacs" 10 "> b" 13] 4 (#$ . 5352)]) (byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\312\"\210\300\313\314\"\210\300\315\316\"\210\300\317\320\"\210\300\321\322\"\210\300\323\324\"\210\300\325\326\"\210\300\327\330\"\210\300\331\332\"\210\300\333\334\"\210\300\335\336\"\210\300\337\340\"\210\300\341\342\"\210\300\343\344\"\210\300\345\346\"\210\300\347\350\"\210\300\351\352\"\210\300\353\354\"\210\300\355\356\"\210\300\357\360\"\210\300\361\362\"\210\300\363\364\"\210\300\365\366\"\210\300\367\370\"\210\300\371\372\"\210\300\373\374\"\210\300\375\376\"\210\300\377\201@ \"\210\300\201A \201B \"\210\300\201C \201D \"\210\300\201E \201F \"\210\300\201G \201H \"\210\300\201I \201J \"\210\300\201K \201L \"\210\300\201M \201N \"\210\300\201O \201P \"\210\300\201Q \201R \"\210\300\201S \201T \"\210\300\201U \201V \"\210\300\201W \201X \"\210\300\201Y \201Z \"\210\300\201[ \201\\ \"\210\201] \201^ \201[ \"\210\201_ \201^ \201[ \201` #\210\300\201a \201b \"\210\300\201c \201d \"\210\300\201e \201f \"\210\300\201g \201h \"\210\300\201i \201j \"\210\300\201k \201l \"\210\300\201m \201n \"\210\300\201o \201p \"\210\300\201q \201r \"\210\300\201s \201t \"\210\300\201u \201v \"\210\300\201w \201x \"\210\300\201y \201z \"\210\300\201{ \201| \"\210\300\201} \201~ \"\210\300\201 \201\200 \"\210\300\201\201 \201\202 \"\210\300\201\203 \201\204 \"\210\300\201\205 \201\206 \"\210\300\201\207 \201\210 \"\210\300\201\211 \201\212 \"\210\300\201\213 \201\214 \"\210\300\201\215 \201\216 \"\210\300\201\217 \201\220 \"\210\300\201\221 \201\222 \"\210\300\201\223 \201\224 \"\210\300\201\225 \201\226 \"\210\300\201\227 \201\230 \"\210\300\201\231 \201\232 \"\210\300\201\233 \201\234 \"\210\300\201\235 \201\236 \"\210\300\201\237 \201\240 \"\210\300\201\241 \201\242 \"\210\300\201\243 \201\244 \"\210\300\201\245 \201\246 \"\210\300\201\247 \201\250 \"\210\300\201\251 \201\252 \"\210\300\201\253 \201\254 \"\210\300\201\255 \201\256 \"\210\300\201\257 \201\260 \"\210\300\201\261 \201\262 \"\210\300\201\263 \201\264 \"\210\300\201\265 \201\266 \"\210\300\201\267 \201\270 \"\210\300\201\271 \201\272 \"\210\300\201\273 \201\274 \"\210\300\201\275 \201\276 \"\210\300\201\277 \201\300 \"\210\300\201\301 \201\302 \"\210\300\201\303 \201\304 \"\210\300\201\305 \201\306 \"\210\300\201\307 \201\310 \"\210\300\201\311 \201\312 \"\210\300\201\313 \201\314 \"\210\300\201\315 \201\316 \"\210\300\201\317 \201\320 \"\210\300\201\321 \201\322 \"\210\300\201\323 \201\324 \"\210\300\201\325 \201\326 \"\210\300\201\327 \201\330 \"\210\300\201\331 \201\332 \"\210\300\201\333 \201\334 \"\210\300\201\335 \201\336 \"\210\300\201\337 \201\340 \"\210\300\201\341 \201\342 \"\210\300\201\343 \201\344 \"\210\300\201\345 \201\346 \"\210\300\201\347 \201\350 \"\210\300\201\351 \201\352 \"\210\300\201\353 \201\354 \"\210\300\201\355 \201\356 \"\210\300\201\357 \201\360 \"\210\300\201\361 \201\362 \"\210\300\201\363 \201\364 \"\210\300\201\365 \201\366 \"\210\300\201\367 \201\370 \"\210\300\201\371 \201\372 \"\210\300\201\373 \201\374 \"\210\300\201\375 \201\376 \"\210\300\201\377 \201 \"\210\300\201\201\"\210\300\201\201\"\210\300\201\201\"\210\300\201\201\"\210\300\201 \201\n\"\210\300\201\201\f\"\210\300\201 \201\"\210\300\201\201\"\210\300\201\201\"\210\300\201\201\"\210\300\201\201\"\210\300\201\201\"\210\300\201\201\"\210\300\201\201\"\210\300\201\201\"\210\300\201\201 \"\210\300\201!\201\"\"\210\300\201#\201$\"\210\300\201%\201&\"\210\300\201'\201(\"\210\300\201)\201*\"\210\300\201+\201,\"\210\300\201-\201.\"\210\300\201/\2010\"\210\300\2011\2012\"\210\300\2013\2014\"\210\300\2015\2016\"\210\300\2017\2018\"\210\300\2019\201:\"\210\300\201;\201<\"\210\300\201=\201>\"\210\300\201?\201@\"\210\300\201A\201B\"\210\300\201C\201D\"\210\300\201E\201F\"\210\300\201G\201H\"\210\300\201I\201J\"\207" [c-define-lang-constant c-make-mode-syntax-table ((t list 'lambda nil (cons 'let (cons '((table (make-syntax-table))) (cons '(c-populate-syntax-table table) (cons (cond ((or (c-lang-major-mode-is 'objc-mode) (c-lang-major-mode-is 'java-mode)) '(modify-syntax-entry 64 "_" table)) ((c-lang-major-mode-is 'pike-mode) '(modify-syntax-entry 64 "." table))) '(table))))))) c-mode-syntax-table ((t funcall (c-get-lang-constant 'c-make-mode-syntax-table))) c++-make-template-syntax-table (((java-mode c++-mode) list 'lambda nil (cons 'let (cons (list (list 'table (list 'funcall (c-get-lang-constant 'c-make-mode-syntax-table)))) '((modify-syntax-entry 60 "(>" table) (modify-syntax-entry 62 ")<" table) table)))) (t)) c-no-parens-syntax-table ((t list 'lambda nil (list 'if '(c-lang-const c-recognize-<>-arglists) (cons 'let (cons (list (list 'table (list 'funcall (c-get-lang-constant 'c-make-mode-syntax-table)))) '((modify-syntax-entry 40 "." table) (modify-syntax-entry 41 "." table) (modify-syntax-entry 91 "." table) (modify-syntax-entry 93 "." table) (modify-syntax-entry 123 "." table) (modify-syntax-entry 125 "." table) table)))))) c-identifier-syntax-modifications (((awk-mode) quote ((95 . "w"))) ((objc-mode java-mode) append '((64 . "w")) (c-get-lang-constant 'c-identifier-syntax-modifications)) (t quote ((95 . "w") (36 . "w")))) c-get-state-before-change-functions (((awk-mode) quote c-awk-record-region-clear-NL) ((c-mode objc-mode) quote (c-extend-region-for-CPP c-invalidate-macro-cache)) ((c++-mode) quote (c-extend-region-for-CPP c-before-change-check-<>-operators c-invalidate-macro-cache)) (t)) c-before-font-lock-functions (((awk-mode) quote c-awk-extend-and-syntax-tablify-region) ((c-mode c++-mode objc-mode) quote (c-neutralize-syntax-in-and-mark-CPP c-change-set-fl-decl-start)) (t quote c-change-set-fl-decl-start)) c-before-context-fontification-functions ((t quote c-context-set-fl-decl-start) ((awk-mode))) c-at-vsemi-p-fn (((awk-mode) quote c-awk-at-vsemi-p) ((c-mode c++-mode objc-mode) quote c-at-macro-vsemi-p) (t)) c-vsemi-status-unknown-p-fn (((awk-mode) quote c-awk-vsemi-status-unknown-p) ((c-mode c++-mode objc-mode) quote c-macro-vsemi-status-unknown-p) (t)) c-has-bitfields (((c-mode c++-mode objc-mode) . t) (t)) c-symbol-start (((pike-mode) concat "[" c-alpha "_`]") ((objc-mode) concat "[" c-alpha "_@]") ((java-mode) concat "[" c-alpha "_@]") (t concat "[" c-alpha "_]")) c-symbol-chars (((objc-mode) concat c-alnum "_$@") (t concat c-alnum "_$")) c-symbol-key (((pike-mode) concat (c-get-lang-constant 'c-symbol-key nil 'c-mode) "\\|" (c-make-keywords-re nil (c-get-lang-constant 'c-overloadable-operators))) (t concat (c-get-lang-constant 'c-symbol-start) "[" (c-get-lang-constant 'c-symbol-chars) "]*")) c-symbol-key-depth ((t regexp-opt-depth (c-get-lang-constant 'c-symbol-key))) c-nonsymbol-chars ((t concat "^" (c-get-lang-constant 'c-symbol-chars))) c-nonsymbol-key ((t concat "[" (c-get-lang-constant 'c-nonsymbol-chars) "]")) c-identifier-ops (((pike-mode) quote ((left-assoc "::") (prefix "::") (left-assoc "."))) ((idl-mode) quote ((left-assoc "::") (prefix "::"))) ((java-mode) quote ((left-assoc "."))) ((c++-mode) quote ((prefix "~" "??-" "compl") (right-assoc "::") (prefix "::"))) (t)) c-opt-identifier-concat-key ((t let ((ops (c-filter-ops (c-get-lang-constant 'c-identifier-ops) '(left-assoc right-assoc) t))) (if ops (progn (c-make-keywords-re 'appendable ops))))) c-opt-identifier-concat-key-depth ((t regexp-opt-depth (c-get-lang-constant 'c-opt-identifier-concat-key))) c-opt-identifier-prefix-key ((t let ((ops (c-filter-ops (c-get-lang-constant 'c-identifier-ops) '(prefix) t))) (if ops (progn (c-make-keywords-re 'appendable ops))))) c-after-id-concat-ops (((java-mode) quote ("*")) ((c++-mode) quote ("~" "*")) (t)) c-opt-after-id-concat-key ((t concat (c-get-lang-constant 'c-symbol-start) (if (c-get-lang-constant 'c-after-id-concat-ops) (concat "\\|" (c-make-keywords-re 'appendable (c-get-lang-constant 'c-after-id-concat-ops))) #1=""))) c-identifier-start ((t concat (c-get-lang-constant 'c-symbol-start) (if (c-get-lang-constant 'c-opt-identifier-prefix-key) (concat "\\|" (c-get-lang-constant 'c-opt-identifier-prefix-key)) #1#))) c-identifier-key ((t concat (if (c-get-lang-constant 'c-opt-identifier-prefix-key) (concat "\\(" (c-get-lang-constant 'c-opt-identifier-prefix-key) (c-get-lang-constant 'c-simple-ws) "*" "\\)?") #1#) "\\(" (c-get-lang-constant 'c-symbol-key) "\\)" (if (c-get-lang-constant 'c-opt-identifier-concat-key) (concat "\\(" (c-get-lang-constant 'c-simple-ws) "*" (c-get-lang-constant 'c-opt-identifier-concat-key) (c-get-lang-constant 'c-simple-ws) "*" (if (c-get-lang-constant 'c-after-id-concat-ops) (concat "\\(" (c-make-keywords-re 'appendable (c-get-lang-constant 'c-after-id-concat-ops)) (concat "\\(" (c-get-lang-constant 'c-simple-ws) "*" "\\(" (c-get-lang-constant 'c-symbol-key) "\\)" "\\)?") "\\|" "\\(" (c-get-lang-constant 'c-symbol-key) "\\)" "\\)") (concat "\\(" (c-get-lang-constant 'c-symbol-key) "\\)")) "\\)*") #1#))) c-identifier-last-sym-match ((t)) c-string-escaped-newlines (((c-mode c++-mode objc-mode pike-mode) . t) (t)) c-multiline-string-start-char (((pike-mode) . 35) (t)) c-opt-cpp-symbol (((java-mode awk-mode)) (t . "#")) c-opt-cpp-prefix (((java-mode awk-mode)) (t . "\\s *#\\s *")) c-anchored-cpp-prefix ((t if (c-get-lang-constant 'c-opt-cpp-prefix) (concat "^" (c-get-lang-constant 'c-opt-cpp-prefix)))) c-opt-cpp-start (((pike-mode) concat (c-get-lang-constant 'c-opt-cpp-prefix) "\\([" c-alnum "]+\\|!\\)") (t if (c-get-lang-constant 'c-opt-cpp-prefix) (concat (c-get-lang-constant 'c-opt-cpp-prefix) "\\([" c-alnum "]+\\)"))) c-cpp-message-directives (((c-mode c++-mode objc-mode pike-mode) quote ("error" "warning")) (t if (c-get-lang-constant 'c-opt-cpp-prefix) '("error"))) c-cpp-include-directives (((objc-mode) quote ("include" "import")) (t if (c-get-lang-constant 'c-opt-cpp-prefix) '("include"))) c-opt-cpp-macro-define ((t if (c-get-lang-constant 'c-opt-cpp-prefix) "define")) c-opt-cpp-macro-define-start ((t if (c-get-lang-constant 'c-opt-cpp-macro-define) (concat (c-get-lang-constant 'c-opt-cpp-prefix) (c-get-lang-constant 'c-opt-cpp-macro-define) "[ ]+\\(\\(\\sw\\|_\\)+\\)\\(([^)]*)\\)?" "\\([ ]\\|\\\\\n\\)*"))) c-opt-cpp-macro-define-id ((t if (c-get-lang-constant 'c-opt-cpp-macro-define) (concat (c-get-lang-constant 'c-opt-cpp-prefix) (c-get-lang-constant 'c-opt-cpp-macro-define) "[ ]+\\(\\sw\\|_\\)+"))) c-cpp-expr-directives ((t if (c-get-lang-constant 'c-opt-cpp-prefix) '("if" "elif"))) c-cpp-expr-intro-re ((t if (c-get-lang-constant 'c-cpp-expr-directives) (concat (c-get-lang-constant 'c-opt-cpp-prefix) (c-make-keywords-re t (c-get-lang-constant 'c-cpp-expr-directives))))) c-cpp-expr-functions (((pike-mode) quote ("defined" "efun" "constant")) (t if (c-get-lang-constant 'c-opt-cpp-prefix) '("defined"))) c-assignment-operators (((idl-mode)) ((c++-mode) append (c-get-lang-constant 'c-assignment-operators) '("and_eq" "or_eq" "xor_eq" "??!=" "??'=")) ((java-mode) append (c-get-lang-constant 'c-assignment-operators) '(">>>=")) (t quote ("=" "*=" "/=" "%=" "+=" "-=" ">>=" "<<=" "&=" "^=" "|="))) c-operators (((idl-mode) cons '(prefix "#") (cons '(left-assoc "##") (append (c-get-lang-constant 'c-identifier-ops) '((prefix "+" "-" "~") (left-assoc "*" "/" "%") (left-assoc "+" "-") (left-assoc "<<" ">>") (left-assoc "&") (left-assoc "^") (left-assoc "|"))))) (t append (if (c-get-lang-constant 'c-opt-cpp-prefix) (progn (list (cons 'prefix (cons "#" (if (c-lang-major-mode-is '(c-mode c++-mode)) (progn '("%:" "??="))))) (cons 'left-assoc (cons "##" (if (c-lang-major-mode-is '(c-mode c++-mode)) (progn '("%:%:" "??=??=")))))))) (c-get-lang-constant 'c-identifier-ops) (cond ((or (c-lang-major-mode-is 'c++-mode) (c-lang-major-mode-is 'java-mode)) '((postfix-if-paren "<" ">"))) ((c-lang-major-mode-is 'pike-mode) '((prefix "global" "predef"))) ((c-lang-major-mode-is 'java-mode) '((prefix "super")))) (if (c-lang-major-mode-is 'c++-mode) (progn '((prefix "dynamic_cast" "static_cast" "reinterpret_cast" "const_cast" "typeid")))) (list (cons 'left-assoc (cons "." (if (c-lang-major-mode-is 'java-mode) nil '("->")))) (cons 'postfix (cons "++" (cons "--" (cons "[" (cons "]" (cons "(" (cons ")" (if (c-lang-major-mode-is '(c-mode c++-mode)) (progn '("<:" ":>" "??(" "??)")))))))))) (cons 'prefix (cons "++" (cons "--" (cons "+" (cons "-" (cons "!" (cons "~" (append (if (c-lang-major-mode-is 'c++-mode) (progn '("not" "compl"))) (if (c-lang-major-mode-is '(c-mode c++-mode)) (progn '("*" "&" "sizeof" "??-"))) (if (c-lang-major-mode-is 'objc-mode) (progn '("@selector" "@protocol" "@encode"))) (cond ((c-lang-major-mode-is 'c++-mode) '("new" "delete")) ((c-lang-major-mode-is 'java-mode) '("new")) ((c-lang-major-mode-is 'pike-mode) '("class" "lambda" "catch" "throw" "gauge"))) '("(" ")") (if (c-lang-major-mode-is 'pike-mode) (progn '("[" "]")))))))))))) (if (c-lang-major-mode-is 'c++-mode) (progn '((left-assoc ".*" "->*")))) (list '(left-assoc "*" "/" "%") '(left-assoc "+" "-") (cons 'left-assoc (cons "<<" (cons ">>" (if (c-lang-major-mode-is 'java-mode) (progn '(">>>")))))) (cons 'left-assoc (cons "<" (cons ">" (cons "<=" (cons ">=" (if (c-lang-major-mode-is 'java-mode) (progn '("instanceof")))))))) (cons 'left-assoc (cons "==" (cons "!=" (if (c-lang-major-mode-is 'c++-mode) (progn '("not_eq")))))) (cons 'left-assoc (cons "&" (if (c-lang-major-mode-is 'c++-mode) (progn '("bitand"))))) (cons 'left-assoc (cons "^" (append (if (c-lang-major-mode-is '(c-mode c++-mode)) (progn '("??'"))) (if (c-lang-major-mode-is 'c++-mode) (progn '("xor")))))) (cons 'left-assoc (cons "|" (append (if (c-lang-major-mode-is '(c-mode c++-mode)) (progn '("??!"))) (if (c-lang-major-mode-is 'c++-mode) (progn '("bitor")))))) (cons 'left-assoc (cons "&&" (if (c-lang-major-mode-is 'c++-mode) (progn '("and"))))) (cons 'left-assoc (cons "||" (append (if (c-lang-major-mode-is '(c-mode c++-mode)) (progn '("??!??!"))) (if (c-lang-major-mode-is 'c++-mode) (progn '("or")))))) '(right-assoc-sequence "?" ":") (cons 'right-assoc (c-get-lang-constant 'c-assignment-operators))) (if (c-lang-major-mode-is 'c++-mode) (progn '((prefix "throw")))) '((left-assoc ",")))) c-operator-list ((t c-filter-ops (c-get-lang-constant 'c-operators) t t)) c-overloadable-operators (((pike-mode) quote ("`+" "`-" "`&" "`|" "`^" "`<<" "`>>" "`*" "`/" "`%" "`~" "`==" "`<" "`>" "`!" "`[]" "`[]=" "`->" "`->=" "`()" "``+" "``-" "``&" "``|" "``^" "``<<" "``>>" "``*" "``/" "``%" "`+=")) ((c++-mode) quote ("new" "delete" "+" "-" "*" "/" "%" "^" "??'" "xor" "&" "bitand" "|" "??!" "bitor" "~" "??-" "compl" "!" "=" "<" ">" "+=" "-=" "*=" "/=" "%=" "^=" "??'=" "xor_eq" "&=" "and_eq" "|=" "??!=" "or_eq" "<<" ">>" ">>=" "<<=" "==" "!=" "not_eq" "<=" ">=" "&&" "and" "||" "??!??!" "or" "++" "--" "," "->*" "->" "()" "[]" "<::>" "??(??)")) (t)) c-overloadable-operators-regexp (((c++-mode) c-make-keywords-re nil (c-get-lang-constant 'c-overloadable-operators)) (t)) c-opt-op-identifier-prefix (((c++-mode) c-make-keywords-re t '("operator")) (t)) defvaralias c-opt-op-identitier-prefix make-obsolete-variable "CC Mode 5.31.4, 2006-04-14" c-other-op-syntax-tokens (((awk-mode) quote ("{" "}" "(" ")" "[" "]" ";" "," "=" "/")) ((pike-mode) append '("..") (c-get-lang-constant 'c-other-op-syntax-tokens) (c-get-lang-constant 'c-overloadable-operators)) ((idl-mode) append '("#" "##") (c-get-lang-constant 'c-other-op-syntax-tokens)) ((objc-mode) append '("#" "##" "+" "-") (c-get-lang-constant 'c-other-op-syntax-tokens)) ((c++-mode) append '("&" "<%" "%>" "<:" ":>" "%:" "%:%:") (c-get-lang-constant 'c-other-op-syntax-tokens)) ((c-mode c++-mode) append '("*") (c-get-lang-constant 'c-other-op-syntax-tokens)) ((c-mode c++-mode pike-mode) append '("#" "##" "::" "...") (c-get-lang-constant 'c-other-op-syntax-tokens)) (t quote ("{" "}" "(" ")" "[" "]" ";" ":" "," "=" "/*" "*/" "//"))) c-all-op-syntax-tokens ((t delete-duplicates (append (c-get-lang-constant 'c-other-op-syntax-tokens) (c-get-lang-constant 'c-operator-list)) :test 'string-equal)) c-nonsymbol-token-char-list ((t let ((c-with-syntax-table-orig-table (syntax-table))) (unwind-protect (progn (set-syntax-table (c-get-lang-constant 'c-mode-syntax-table)) (let (list (char 32)) (while (< char 127) (or (memq (char-syntax char) '(119 95 60 62 32)) (setq list (cons char list))) (setq char (1+ char))) list)) (set-syntax-table c-with-syntax-table-orig-table)))) c-nonsymbol-token-regexp ((t c-make-keywords-re nil (c-filter-ops (c-get-lang-constant 'c-all-op-syntax-tokens) t "\\`\\(\\s.\\|\\s(\\|\\s)\\)+\\'"))) c-assignment-op-regexp ((t if (c-get-lang-constant 'c-assignment-operators) (concat "=\\([^=]\\|$\\)" "\\|" (c-make-keywords-re nil (set-difference (c-get-lang-constant 'c-assignment-operators) '("=") :test 'string-equal))) "\\<\\>")) c-<>-multichar-token-regexp ((t c-make-keywords-re nil (c-filter-ops (c-get-lang-constant 'c-all-op-syntax-tokens) t ".[<>]\\|[<>]."))) c-<-op-cont-regexp ((t c-make-keywords-re nil (c-filter-ops (c-get-lang-constant 'c-all-op-syntax-tokens) t "\\`<." #'(lambda (op) (substring op 1))))) c->-op-cont-regexp (((java-mode) c-make-keywords-re nil (c-filter-ops (c-get-lang-constant 'c-all-op-syntax-tokens) t "\\`>[^>]\\|\\`>>[^>]" #'(lambda (op) (substring op 1)))) (t c-make-keywords-re nil (c-filter-ops (c-get-lang-constant 'c-all-op-syntax-tokens) t "\\`>." #'(lambda (op) (substring op 1))))) c-stmt-delim-chars ((t . "^;{}?:")) c-stmt-delim-chars-with-comma ((t . "^;,{}?:")) c-simple-ws ((t . "\\(\\s \\|[\n ]\\)")) c-simple-ws-depth ((t regexp-opt-depth (c-get-lang-constant 'c-simple-ws))) c-line-comment-starter (((awk-mode) . "#") (t . "//")) c-block-comment-starter (((awk-mode)) (t . "/*")) c-block-comment-ender (((awk-mode)) (t . "*/")) c-comment-start-regexp ((t let ((re (c-make-keywords-re nil (list (c-get-lang-constant 'c-line-comment-starter) (c-get-lang-constant 'c-block-comment-starter))))) (if (memq 'gen-comment-delim c-emacs-features) (concat re "\\|\\s!") re))) c-block-comment-start-regexp ((t if (c-get-lang-constant 'c-block-comment-starter) (regexp-quote (c-get-lang-constant 'c-block-comment-starter)) "\\<\\>")) c-line-comment-start-regexp ((t if (c-get-lang-constant 'c-line-comment-starter) (regexp-quote (c-get-lang-constant 'c-line-comment-starter)) "\\<\\>")) c-literal-start-regexp ((t concat (c-get-lang-constant 'c-comment-start-regexp) "\\|" (if (memq 'gen-string-delim c-emacs-features) "\"|" "\""))) c-doc-comment-start-regexp (((pike-mode) . "/[/*]!") ((java-mode) . "/\\*\\*") ((c-mode c++-mode objc-mode) . "/\\*[*!]") (t . "\\<\\>")) comment-start (((c-mode) . "/* ") (t concat (or (c-get-lang-constant 'c-line-comment-starter) (c-get-lang-constant 'c-block-comment-starter)) " ")) comment-end ((t if (string-match (concat "\\`\\(" (c-get-lang-constant 'c-block-comment-start-regexp) "\\)") (c-get-lang-constant 'comment-start)) (concat " " (c-get-lang-constant 'c-block-comment-ender)) #1#)) comment-start-skip ((t concat "\\(" (c-concat-separated (mapcar #'(lambda (cs) (if cs (progn (concat (regexp-quote cs) "+")))) (list (c-get-lang-constant 'c-line-comment-starter) (c-get-lang-constant 'c-block-comment-starter))) "\\|") "\\)\\s *")) c-syntactic-ws-start ((t concat "\\s \\|" (c-make-keywords-re nil (append (list (c-get-lang-constant 'c-line-comment-starter) (c-get-lang-constant 'c-block-comment-starter) (if (c-get-lang-constant 'c-opt-cpp-prefix) (progn "#"))) '("\n" " "))) "\\|\\\\[\n ]" (if (memq 'gen-comment-delim c-emacs-features) (progn "\\|\\s!")))) c-syntactic-ws-end ((t concat "\\s \\|" (c-make-keywords-re nil (append (if (c-get-lang-constant 'c-block-comment-ender) (progn (list (string (elt (c-get-lang-constant 'c-block-comment-ender) (1- (length (c-get-lang-constant 'c-block-comment-ender)))))))) '("\n" " "))) (if (memq 'gen-comment-delim c-emacs-features) (progn "\\|\\s!")))) c-unterminated-block-comment-regexp ((t if (c-get-lang-constant 'c-block-comment-starter) (progn (concat (regexp-quote (c-get-lang-constant 'c-block-comment-starter)) (let ((end (c-get-lang-constant 'c-block-comment-ender))) (cond ((= (length end) 1) (concat "[^" end "\n ]*")) ((= (length end) 2) (concat "[^" (substring end 0 1) "\n ]*" "\\(" (regexp-quote (substring end 0 1)) "+" "[^" (cond ((= (elt end 0) (elt end 1)) (concat (substring end 0 1) "\n ")) ((= (elt end 1) 93) (concat (substring end 1 2) "\n " (substring end 0 1))) (t (concat (substring end 0 1) "\n " (substring end 1 2)))) "]" "[^" (substring end 0 1) "\n ]*" "\\)*")) (t (error "Can't handle a block comment ender of length %s" (length end))))))))) c-block-comment-regexp ((t if (c-get-lang-constant 'c-unterminated-block-comment-regexp) (progn (concat (c-get-lang-constant 'c-unterminated-block-comment-regexp) (let ((end (c-get-lang-constant 'c-block-comment-ender))) (cond ((= (length end) 1) (regexp-quote end)) ((= (length end) 2) (concat (regexp-quote (substring end 0 1)) "+" (regexp-quote (substring end 1 2)))) (t (error "Can't handle a block comment ender of length %s" (length end))))))))) c-nonwhite-syntactic-ws ((t c-concat-separated (list (if (c-get-lang-constant 'c-line-comment-starter) (progn (concat (regexp-quote (c-get-lang-constant 'c-line-comment-starter)) "[^\n ]*[\n ]"))) (c-get-lang-constant 'c-block-comment-regexp) "\\\\[\n ]" (if (memq 'gen-comment-delim c-emacs-features) (progn "\\s!\\S!*\\s!"))) "\\|")) c-syntactic-ws ((t concat (c-get-lang-constant 'c-simple-ws) "*" "\\(" (concat "\\(" (c-get-lang-constant 'c-nonwhite-syntactic-ws) "\\)" (c-get-lang-constant 'c-simple-ws) "*") "\\)*")) c-syntactic-ws-depth ((t regexp-opt-depth (c-get-lang-constant 'c-syntactic-ws))) c-nonempty-syntactic-ws ((t concat "\\(" (c-get-lang-constant 'c-simple-ws) "\\|" (c-get-lang-constant 'c-nonwhite-syntactic-ws) "\\)+")) c-nonempty-syntactic-ws-depth ((t regexp-opt-depth (c-get-lang-constant 'c-nonempty-syntactic-ws))) c-single-line-syntactic-ws ((t if (c-get-lang-constant 'c-block-comment-regexp) (concat "\\s *\\(" (c-get-lang-constant 'c-block-comment-regexp) "\\s *\\)*") "\\s *")) c-single-line-syntactic-ws-depth ((t regexp-opt-depth (c-get-lang-constant 'c-single-line-syntactic-ws))) c-syntactic-eol ((t concat (c-get-lang-constant 'c-single-line-syntactic-ws) "\\(" (c-concat-separated (list (if (c-get-lang-constant 'c-line-comment-starter) (progn (regexp-quote (c-get-lang-constant 'c-line-comment-starter)))) (if (c-get-lang-constant 'c-unterminated-block-comment-regexp) (progn (concat (c-get-lang-constant 'c-unterminated-block-comment-regexp) "$"))) "\\\\$" "$") "\\|") "\\)")) beginning-of-defun-function (((awk-mode) quote c-awk-beginning-of-defun) (t quote c-beginning-of-defun)) end-of-defun-function (((awk-mode) quote c-awk-end-of-defun) (t quote c-end-of-defun)) c-paragraph-start (((pike-mode) . "\\(@[a-zA-Z_-]+\\>\\([^{]\\|$\\)\\|$\\)") ((java-mode) . "\\(@[a-zA-Z]+\\>\\|$\\)") (t . "$")) c-paragraph-separate (((pike-mode) c-get-lang-constant 'c-paragraph-start) (t . "$")) c-primitive-type-kwds (((pike-mode) quote ("array" "float" "function" "int" "mapping" "mixed" "multiset" "object" "program" "string" "this_program" "void")) ((idl-mode) quote ("Object" "ValueBase" "any" "boolean" "char" "double" "fixed" "float" "long" "octet" "sequence" "short" "string" "void" "wchar" "wstring" "ref" "unsigned" "strong")) ((java-mode) quote ("boolean" "byte" "char" "double" "float" "int" "long" "short" "void")) ((objc-mode) append '("id" "Class" "SEL" "IMP" "BOOL") (c-get-lang-constant 'c-primitive-type-kwds)) ((c++-mode) append '("bool" "wchar_t") (c-get-lang-constant 'c-primitive-type-kwds)) ((c-mode) append '("_Bool" "_Complex" "_Imaginary") (c-get-lang-constant 'c-primitive-type-kwds)) (t quote ("char" "double" "float" "int" "long" "short" "signed" "unsigned" "void"))) c-primitive-type-key ((t c-make-keywords-re t (c-get-lang-constant 'c-primitive-type-kwds))) c-primitive-type-prefix-kwds (((idl-mode) quote ("long" "unsigned" "strong")) ((c-mode c++-mode) quote ("long" "short" "signed" "unsigned")) (t)) c-typedef-kwds (((awk-mode idl-mode java-mode)) (t quote ("typedef"))) c-typedef-key ((t c-make-keywords-re t (c-get-lang-constant 'c-typedef-kwds))) c-type-prefix-kwds (((c++-mode) append '("class" "typename") (c-get-lang-constant 'c-type-prefix-kwds nil 'c-mode)) ((c-mode) quote ("struct" "union" "enum")) (t)) c-type-prefix-key ((t c-make-keywords-re t (c-get-lang-constant 'c-type-prefix-kwds))) c-type-modifier-kwds (((objc-mode) quote ("const" "volatile")) ((c++-mode) quote ("const" "volatile" "throw")) ((c-mode) quote ("const" "restrict" "volatile")) (t)) c-opt-type-modifier-key ((t and (c-get-lang-constant 'c-type-modifier-kwds) (c-make-keywords-re t (c-get-lang-constant 'c-type-modifier-kwds)))) c-opt-type-component-key ((t and (or (c-get-lang-constant 'c-primitive-type-prefix-kwds) (c-get-lang-constant 'c-type-modifier-kwds)) (c-make-keywords-re t (append (c-get-lang-constant 'c-primitive-type-prefix-kwds) (c-get-lang-constant 'c-type-modifier-kwds))))) c-type-start-kwds ((t delete-duplicates (append (c-get-lang-constant 'c-primitive-type-kwds) (c-get-lang-constant 'c-type-prefix-kwds) (c-get-lang-constant 'c-type-modifier-kwds)) :test 'string-equal)) c-class-decl-kwds (((pike-mode) quote ("class")) ((idl-mode) quote ("component" "eventtype" "exception" "home" "interface" "struct" "union" "valuetype" "storagehome" "storagetype" "catalog" "executor" "manages" "segment")) ((java-mode) quote ("class" "@interface" "interface")) ((objc-mode) quote ("struct" "union" "@interface" "@implementation" "@protocol")) ((c++-mode) quote ("class" "struct" "union")) ((c-mode) quote ("struct" "union")) (t)) c-class-key ((t c-make-keywords-re t (c-get-lang-constant 'c-class-decl-kwds))) c-brace-list-decl-kwds (((awk-mode)) (t quote ("enum"))) c-brace-list-key ((t c-make-keywords-re t (c-get-lang-constant 'c-brace-list-decl-kwds))) c-other-block-decl-kwds (((idl-mode) quote ("module" "composition")) ((c++-mode) quote ("namespace" "extern")) ((c-mode objc-mode) quote ("extern")) (t)) c-other-decl-block-key ((t c-make-keywords-re t (c-get-lang-constant 'c-other-block-decl-kwds))) c-typedef-decl-kwds (((idl-mode) delete "exception" (append (c-get-lang-constant 'c-typedef-decl-kwds) nil)) ((c-mode c++-mode objc-mode idl-mode pike-mode) append (c-get-lang-constant 'c-typedef-decl-kwds) '("typedef")) (t append (c-get-lang-constant 'c-class-decl-kwds) (c-get-lang-constant 'c-brace-list-decl-kwds))) c-typedef-decl-key ((t c-make-keywords-re t (c-get-lang-constant 'c-typedef-decl-kwds))) c-typeless-decl-kwds (((pike-mode) append (c-get-lang-constant 'c-class-decl-kwds) '("constant")) ((idl-mode) append (c-get-lang-constant 'c-typeless-decl-kwds) '("factory" "finder" "native" "key" "stores" "facet")) (t append (c-get-lang-constant 'c-class-decl-kwds) (c-get-lang-constant 'c-brace-list-decl-kwds))) c-modifier-kwds (((pike-mode) quote ("final" "inline" "local" "nomask" "optional" "private" "protected" "public" "static" "variant")) ((java-mode) quote ("abstract" "const" "final" "native" "private" "protected" "public" "static" "strictfp" "synchronized" "transient" "volatile")) ((idl-mode) quote ("abstract" "attribute" "const" "consumes" "custom" "emits" "import" "in" "inout" "local" "multiple" "oneway" "out" "private" "provides" "public" "publishes" "readonly" "typeid" "typeprefix" "uses" "primary" "state" "bindsTo" "delegatesTo" "implements" "proxy" "storedOn")) ((objc-mode) quote ("auto" "bycopy" "byref" "extern" "in" "inout" "oneway" "out" "static")) ((c++-mode) append '("explicit" "friend" "mutable" "template" "using" "virtual") (c-get-lang-constant 'c-modifier-kwds)) ((c-mode c++-mode) quote ("auto" "extern" "inline" "register" "static")) (t)) c-other-decl-kwds (((pike-mode) quote ("import" "inherit")) ((java-mode) quote ("import" "package")) ((objc-mode) quote ("@class" "@end" "@defs")) (t)) c-decl-start-kwds (((pike-mode) quote ("class")) (t)) c-decl-hangon-kwds (((c-mode c++-mode) quote ("__attribute__" "__declspec")) (t)) c-decl-hangon-key ((t c-make-keywords-re t (c-get-lang-constant 'c-decl-hangon-kwds))) c-prefix-spec-kwds ((t delete-duplicates (append (c-get-lang-constant 'c-class-decl-kwds) (c-get-lang-constant 'c-brace-list-decl-kwds) (c-get-lang-constant 'c-other-block-decl-kwds) (c-get-lang-constant 'c-typedef-decl-kwds) (c-get-lang-constant 'c-typeless-decl-kwds) (c-get-lang-constant 'c-modifier-kwds) (c-get-lang-constant 'c-other-decl-kwds) (c-get-lang-constant 'c-decl-start-kwds) (c-get-lang-constant 'c-decl-hangon-kwds)) :test 'string-equal)) c-prefix-spec-kwds-re ((t c-make-keywords-re t (c-get-lang-constant 'c-prefix-spec-kwds))) c-specifier-key ((t c-make-keywords-re t (set-difference (c-get-lang-constant 'c-prefix-spec-kwds) (append (c-get-lang-constant 'c-type-start-kwds) (c-get-lang-constant 'c-<>-arglist-kwds)) :test 'string-equal))) c-postfix-spec-kwds ((t append (c-get-lang-constant 'c-postfix-decl-spec-kwds) (c-get-lang-constant 'c-decl-hangon-kwds))) c-not-decl-init-keywords ((t c-make-keywords-re t (set-difference (c-get-lang-constant 'c-keywords) (append (c-get-lang-constant 'c-type-start-kwds) (c-get-lang-constant 'c-prefix-spec-kwds)) :test 'string-equal))) c-not-primitive-type-keywords (((c++-mode) append (c-get-lang-constant 'c-not-primitive-type-keywords) '("more")) (t set-difference (c-get-lang-constant 'c-keywords) (c-get-lang-constant 'c-primitive-type-kwds) :test 'string-equal)) c-not-primitive-type-keywords-regexp ((t c-make-keywords-re t (c-get-lang-constant 'c-not-primitive-type-keywords))) c-protection-kwds (((objc-mode) quote ("@private" "@protected" "@public")) ((c++-mode) quote ("private" "protected" "public")) (t)) c-block-decls-with-vars (((c++-mode) quote ("class" "struct" "union" "enum" "typedef")) ((c-mode objc-mode) quote ("struct" "union" "enum" "typedef")) (t)) c-opt-block-decls-with-vars-key ((t and (c-get-lang-constant 'c-block-decls-with-vars) (c-make-keywords-re t (c-get-lang-constant 'c-block-decls-with-vars)))) c-postfix-decl-spec-kwds (((idl-mode) quote ("context" "getraises" "manages" "primarykey" "raises" "setraises" "supports" "as" "const" "implements" "of" "ref")) ((java-mode) quote ("extends" "implements" "throws")) (t)) c-nonsymbol-sexp-kwds (((c-mode c++-mode objc-mode) quote ("extern")) (t)) c-type-list-kwds (((pike-mode) quote ("inherit")) ((idl-mode) quote ("manages" "native" "primarykey" "supports" "as" "implements" "of" "scope")) ((java-mode) quote ("import" "new" "extends" "super" "implements" "throws")) ((objc-mode) quote ("@class")) ((c++-mode) quote ("operator")) (t)) c-ref-list-kwds (((pike-mode) quote ("import")) ((idl-mode) quote ("import" "module" "composition")) ((java-mode) quote ("package")) ((c++-mode) quote ("namespace")) (t)) c-colon-type-list-kwds (((idl-mode) quote ("component" "eventtype" "home" "interface" "valuetype" "storagehome" "storagetype")) ((c++-mode) quote ("class" "struct")) (t)) c-colon-type-list-re ((t if (c-get-lang-constant 'c-colon-type-list-kwds) "[^][{}();,/#=:]*:")) c-paren-nontype-kwds (((c-mode c++-mode) quote ("__attribute__" "__declspec")) (t)) c-paren-type-kwds (((pike-mode) quote ("array" "function" "int" "mapping" "multiset" "object" "program")) ((idl-mode) quote ("switch")) ((objc-mode) quote ("@defs")) ((c++-mode) quote ("throw")) (t)) c-paren-any-kwds ((t delete-duplicates (append (c-get-lang-constant 'c-paren-nontype-kwds) (c-get-lang-constant 'c-paren-type-kwds)) :test 'string-equal)) c-<>-type-kwds (((idl-mode) quote ("sequence" "ref")) ((objc-mode) quote ("id")) (t)) c-<>-arglist-kwds (((idl-mode) quote ("fixed" "string" "wstring")) ((c++-mode) quote ("template")) (t)) c-<>-sexp-kwds ((t delete-duplicates (append (c-get-lang-constant 'c-<>-type-kwds) (c-get-lang-constant 'c-<>-arglist-kwds)) :test 'string-equal)) c-opt-<>-sexp-key ((t if (c-get-lang-constant 'c-recognize-<>-arglists) (c-make-keywords-re t (c-get-lang-constant 'c-<>-sexp-kwds)))) c-brace-id-list-kwds ((t c-get-lang-constant 'c-brace-list-decl-kwds)) c-block-stmt-1-kwds (((idl-mode)) ((java-mode) quote ("do" "else" "finally" "try")) ((objc-mode) quote ("do" "else" "@finally" "@try")) ((c++-mode) quote ("do" "else" "try")) (t quote ("do" "else"))) c-block-stmt-1-key ((t c-make-keywords-re t (c-get-lang-constant 'c-block-stmt-1-kwds))) c-block-stmt-2-kwds (((awk-mode) quote ("for" "if" "while")) ((pike-mode) quote ("for" "if" "switch" "while" "foreach")) ((idl-mode)) ((java-mode) quote ("for" "if" "switch" "while" "catch" "synchronized")) ((objc-mode) quote ("for" "if" "switch" "while" "@catch" "@synchronized")) ((c++-mode) quote ("for" "if" "switch" "while" "catch")) (t quote ("for" "if" "switch" "while"))) c-block-stmt-2-key ((t c-make-keywords-re t (c-get-lang-constant 'c-block-stmt-2-kwds))) c-block-stmt-kwds ((t delete-duplicates (append (c-get-lang-constant 'c-block-stmt-1-kwds) (c-get-lang-constant 'c-block-stmt-2-kwds)) :test 'string-equal)) c-opt-block-stmt-key ((t if (or (c-get-lang-constant 'c-block-stmt-1-kwds) (c-get-lang-constant 'c-block-stmt-2-kwds)) (c-make-keywords-re t (append (c-get-lang-constant 'c-block-stmt-1-kwds) (c-get-lang-constant 'c-block-stmt-2-kwds))))) c-simple-stmt-kwds (((awk-mode) quote ("break" "continue" "return" "delete" "exit" "getline" "next" "nextfile" "print" "printf")) ((pike-mode) quote ("break" "continue" "return")) ((idl-mode)) ((java-mode) quote ("break" "continue" "goto" "return" "throw")) ((objc-mode) quote ("break" "continue" "goto" "return" "@throw")) (t quote ("break" "continue" "goto" "return"))) c-simple-stmt-key ((t c-make-keywords-re t (c-get-lang-constant 'c-simple-stmt-kwds))) c-paren-stmt-kwds (((idl-mode)) (t quote ("for"))) c-paren-stmt-key ((t c-make-keywords-re t (c-get-lang-constant 'c-paren-stmt-kwds))) c-asm-stmt-kwds (((c-mode c++-mode) quote ("asm" "__asm__")) (t)) c-opt-asm-stmt-key ((t if (c-get-lang-constant 'c-asm-stmt-kwds) (c-make-keywords-re t (c-get-lang-constant 'c-asm-stmt-kwds)))) c-case-kwds (((awk-mode)) (t quote ("case"))) c-case-kwds-regexp ((t c-make-keywords-re t (c-get-lang-constant 'c-case-kwds))) c-label-kwds ((t quote ("case" "default"))) c-label-kwds-regexp ((t c-make-keywords-re t (c-get-lang-constant 'c-label-kwds))) c-before-label-kwds (((awk-mode)) ((idl-mode)) ((java-mode pike-mode) append '("break" "continue") (c-get-lang-constant 'c-before-label-kwds)) (t quote ("goto"))) c-constant-kwds (((pike-mode) quote ("UNDEFINED")) ((java-mode) quote ("true" "false" "null")) ((idl-mode) quote ("TRUE" "FALSE")) ((objc-mode) quote ("nil" "Nil" "YES" "NO" "NS_DURING" "NS_HANDLER" "NS_ENDHANDLER")) ((c-mode c++-mode) quote ("NULL" "false" "true")) (t)) c-primary-expr-kwds (((pike-mode) quote ("this")) ((java-mode) quote ("this")) ((objc-mode) quote ("super" "self")) ((c++-mode) quote ("operator" "this")) (t)) c-expr-kwds ((t delete-duplicates (append (c-get-lang-constant 'c-primary-expr-kwds) (c-filter-ops (c-get-lang-constant 'c-operator-list) t "\\`\\(\\w\\|\\s_\\)+\\'")) :test 'string-equal)) c-lambda-kwds (((pike-mode) quote ("lambda")) (t)) c-inexpr-block-kwds (((pike-mode) quote ("catch" "gauge")) (t)) c-inexpr-class-kwds (((pike-mode) quote ("class")) ((java-mode) quote ("new")) (t)) c-inexpr-brace-list-kwds (((java-mode) quote ("new")) (t)) c-opt-inexpr-brace-list-key ((t and (c-get-lang-constant 'c-inexpr-brace-list-kwds) (c-make-keywords-re t (c-get-lang-constant 'c-inexpr-brace-list-kwds)))) c-decl-block-key ((t let* ((decl-kwds (append (c-get-lang-constant 'c-class-decl-kwds) (c-get-lang-constant 'c-other-block-decl-kwds) (c-get-lang-constant 'c-inexpr-class-kwds))) (unambiguous (set-difference decl-kwds (c-get-lang-constant 'c-type-start-kwds) :test 'string-equal)) (ambiguous (intersection decl-kwds (c-get-lang-constant 'c-type-start-kwds) :test 'string-equal))) (if ambiguous (concat (c-make-keywords-re t unambiguous) "\\|" (c-make-keywords-re t ambiguous)) (c-make-keywords-re t unambiguous)))) c-bitfield-kwds (((c-mode c++-mode objc-mode) quote ("char" "int" "long" "signed" "unsigned")) (t)) c-opt-bitfield-key (((c-mode c++-mode) c-make-keywords-re t (c-get-lang-constant 'c-bitfield-kwds)) (t)) c-other-kwds (((idl-mode) quote ("truncatable" "entity" "process" "service" "session" "storage")) (t))] 4) (defconst c-kwds-lang-consts (byte-code "\302\303\304 \"\210)\207" [list c-lang-constants nil mapatoms #[(sym) "\302!\205 \303\304\305!\"\205 \306\305!! B\211\207" [sym list boundp string-match "-kwds\\'" symbol-name intern] 4]] 3)) (byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\312\"\210\300\313\314\"\210\300\315\316\"\210\300\317\320\"\210\300\321\322\"\210\300\323\324\"\210\300\325\326\"\210\300\327\330\"\210\300\331\332\"\210\300\333\334\"\210\300\335\336\"\210\300\337\340\"\210\300\341\342\"\210\300\343\344\"\210\300\345\346\"\210\300\347\350\"\210\300\351\352\"\210\300\353\354\"\210\300\355\356\"\210\300\357\360\"\210\300\361\362\"\210\300\363\364\"\210\300\365\366\"\210\300\367\370\"\210\300\371\372\"\210\300\373\374\"\210\300\375\376\"\210\300\377\201@ \"\210\300\201A \201B \"\210\300\201C \201D \"\210\300\201E \201F \"\207" [c-define-lang-constant c-keywords ((t delete-duplicates (append (c-get-lang-constant 'c-primary-expr-kwds) (c-get-lang-constant 'c-postfix-decl-spec-kwds) (c-get-lang-constant 'c-brace-list-decl-kwds) (c-get-lang-constant 'c-decl-hangon-kwds) (c-get-lang-constant 'c-other-kwds) (c-get-lang-constant 'c-modifier-kwds) (c-get-lang-constant 'c-type-modifier-kwds) (c-get-lang-constant 'c-inexpr-class-kwds) (c-get-lang-constant 'c-simple-stmt-kwds) (c-get-lang-constant 'c-block-stmt-1-kwds) (c-get-lang-constant 'c-inexpr-block-kwds) (c-get-lang-constant 'c-typeless-decl-kwds) (c-get-lang-constant 'c-<>-sexp-kwds) (c-get-lang-constant 'c-nonsymbol-sexp-kwds) (c-get-lang-constant 'c-block-stmt-kwds) (c-get-lang-constant 'c-paren-nontype-kwds) (c-get-lang-constant 'c-postfix-spec-kwds) (c-get-lang-constant 'c-expr-kwds) (c-get-lang-constant 'c-before-label-kwds) (c-get-lang-constant 'c-paren-stmt-kwds) (c-get-lang-constant 'c-block-stmt-2-kwds) (c-get-lang-constant 'c-type-list-kwds) (c-get-lang-constant 'c-primitive-type-prefix-kwds) (c-get-lang-constant 'c-ref-list-kwds) (c-get-lang-constant 'c-label-kwds) (c-get-lang-constant 'c-bitfield-kwds) (c-get-lang-constant 'c-prefix-spec-kwds) (c-get-lang-constant 'c-paren-type-kwds) (c-get-lang-constant 'c-class-decl-kwds) (c-get-lang-constant 'c-brace-id-list-kwds) (c-get-lang-constant 'c-inexpr-brace-list-kwds) (c-get-lang-constant 'c-type-prefix-kwds) (c-get-lang-constant 'c-asm-stmt-kwds) (c-get-lang-constant 'c-lambda-kwds) (c-get-lang-constant 'c-typedef-decl-kwds) (c-get-lang-constant 'c-other-decl-kwds) (c-get-lang-constant 'c-paren-any-kwds) (c-get-lang-constant 'c-typedef-kwds) (c-get-lang-constant 'c-protection-kwds) (c-get-lang-constant 'c-colon-type-list-kwds) (c-get-lang-constant 'c-decl-start-kwds) (c-get-lang-constant 'c-<>-type-kwds) (c-get-lang-constant 'c-primitive-type-kwds) (c-get-lang-constant 'c-<>-arglist-kwds) (c-get-lang-constant 'c-constant-kwds) (c-get-lang-constant 'c-type-start-kwds) (c-get-lang-constant 'c-other-block-decl-kwds) (c-get-lang-constant 'c-case-kwds) nil) :test 'string-equal)) c-keywords-regexp ((t c-make-keywords-re t (c-get-lang-constant 'c-keywords))) c-keyword-member-alist ((t let ((kwd-list-alist (list (cons 'c-primary-expr-kwds (c-get-lang-constant 'c-primary-expr-kwds)) (cons 'c-postfix-decl-spec-kwds (c-get-lang-constant 'c-postfix-decl-spec-kwds)) (cons 'c-brace-list-decl-kwds (c-get-lang-constant 'c-brace-list-decl-kwds)) (cons 'c-decl-hangon-kwds (c-get-lang-constant 'c-decl-hangon-kwds)) (cons 'c-other-kwds (c-get-lang-constant 'c-other-kwds)) (cons 'c-modifier-kwds (c-get-lang-constant 'c-modifier-kwds)) (cons 'c-type-modifier-kwds (c-get-lang-constant 'c-type-modifier-kwds)) (cons 'c-inexpr-class-kwds (c-get-lang-constant 'c-inexpr-class-kwds)) (cons 'c-simple-stmt-kwds (c-get-lang-constant 'c-simple-stmt-kwds)) (cons 'c-block-stmt-1-kwds (c-get-lang-constant 'c-block-stmt-1-kwds)) (cons 'c-inexpr-block-kwds (c-get-lang-constant 'c-inexpr-block-kwds)) (cons 'c-typeless-decl-kwds (c-get-lang-constant 'c-typeless-decl-kwds)) (cons 'c-<>-sexp-kwds (c-get-lang-constant 'c-<>-sexp-kwds)) (cons 'c-nonsymbol-sexp-kwds (c-get-lang-constant 'c-nonsymbol-sexp-kwds)) (cons 'c-block-stmt-kwds (c-get-lang-constant 'c-block-stmt-kwds)) (cons 'c-paren-nontype-kwds (c-get-lang-constant 'c-paren-nontype-kwds)) (cons 'c-postfix-spec-kwds (c-get-lang-constant 'c-postfix-spec-kwds)) (cons 'c-expr-kwds (c-get-lang-constant 'c-expr-kwds)) (cons 'c-before-label-kwds (c-get-lang-constant 'c-before-label-kwds)) (cons 'c-paren-stmt-kwds (c-get-lang-constant 'c-paren-stmt-kwds)) (cons 'c-block-stmt-2-kwds (c-get-lang-constant 'c-block-stmt-2-kwds)) (cons 'c-type-list-kwds (c-get-lang-constant 'c-type-list-kwds)) (cons 'c-primitive-type-prefix-kwds (c-get-lang-constant 'c-primitive-type-prefix-kwds)) (cons 'c-ref-list-kwds (c-get-lang-constant 'c-ref-list-kwds)) (cons 'c-label-kwds (c-get-lang-constant 'c-label-kwds)) (cons 'c-bitfield-kwds (c-get-lang-constant 'c-bitfield-kwds)) (cons 'c-prefix-spec-kwds (c-get-lang-constant 'c-prefix-spec-kwds)) (cons 'c-paren-type-kwds (c-get-lang-constant 'c-paren-type-kwds)) (cons 'c-class-decl-kwds (c-get-lang-constant 'c-class-decl-kwds)) (cons 'c-brace-id-list-kwds (c-get-lang-constant 'c-brace-id-list-kwds)) (cons 'c-inexpr-brace-list-kwds (c-get-lang-constant 'c-inexpr-brace-list-kwds)) (cons 'c-type-prefix-kwds (c-get-lang-constant 'c-type-prefix-kwds)) (cons 'c-asm-stmt-kwds (c-get-lang-constant 'c-asm-stmt-kwds)) (cons 'c-lambda-kwds (c-get-lang-constant 'c-lambda-kwds)) (cons 'c-typedef-decl-kwds (c-get-lang-constant 'c-typedef-decl-kwds)) (cons 'c-other-decl-kwds (c-get-lang-constant 'c-other-decl-kwds)) (cons 'c-paren-any-kwds (c-get-lang-constant 'c-paren-any-kwds)) (cons 'c-typedef-kwds (c-get-lang-constant 'c-typedef-kwds)) (cons 'c-protection-kwds (c-get-lang-constant 'c-protection-kwds)) (cons 'c-colon-type-list-kwds (c-get-lang-constant 'c-colon-type-list-kwds)) (cons 'c-decl-start-kwds (c-get-lang-constant 'c-decl-start-kwds)) (cons 'c-<>-type-kwds (c-get-lang-constant 'c-<>-type-kwds)) (cons 'c-primitive-type-kwds (c-get-lang-constant 'c-primitive-type-kwds)) (cons 'c-<>-arglist-kwds (c-get-lang-constant 'c-<>-arglist-kwds)) (cons 'c-constant-kwds (c-get-lang-constant 'c-constant-kwds)) (cons 'c-type-start-kwds (c-get-lang-constant 'c-type-start-kwds)) (cons 'c-other-block-decl-kwds (c-get-lang-constant 'c-other-block-decl-kwds)) (cons 'c-case-kwds (c-get-lang-constant 'c-case-kwds)))) lang-const kwd-list kwd result-alist elem) (while kwd-list-alist (setq lang-const (caar kwd-list-alist) kwd-list (cdar kwd-list-alist) kwd-list-alist (cdr kwd-list-alist)) (while kwd-list (setq kwd (car kwd-list) kwd-list (cdr kwd-list)) (if (setq elem (assoc kwd result-alist)) nil (setq result-alist (cons (setq elem (list kwd)) result-alist))) (if (memq lang-const (cdr elem)) nil (setcdr elem (cons lang-const (cdr elem)))))) result-alist)) c-regular-keywords-regexp ((t c-make-keywords-re t (set-difference (c-get-lang-constant 'c-keywords) (append (c-get-lang-constant 'c-primitive-type-kwds) (c-get-lang-constant 'c-constant-kwds)) :test 'string-equal))) c-primary-expr-regexp ((t let* ((prefix-ops (c-filter-ops (c-get-lang-constant 'c-operators) '(prefix) #'(lambda (op) (not (string-match "\\s)" op))))) (nonkeyword-prefix-ops (c-filter-ops prefix-ops t "\\`\\(\\s.\\|\\s(\\|\\s)\\)+\\'")) (in-or-postfix-ops (c-filter-ops (c-get-lang-constant 'c-operators) '(postfix postfix-if-paren left-assoc right-assoc right-assoc-sequence) t)) (unambiguous-prefix-ops (set-difference nonkeyword-prefix-ops in-or-postfix-ops :test 'string-equal)) (ambiguous-prefix-ops (intersection nonkeyword-prefix-ops in-or-postfix-ops :test 'string-equal))) (concat "\\(" (c-make-keywords-re t (append (c-get-lang-constant 'c-primary-expr-kwds) (set-difference prefix-ops nonkeyword-prefix-ops :test 'string-equal))) "\\|" (c-make-keywords-re nil (intersection nonkeyword-prefix-ops in-or-postfix-ops :test 'string-equal)) "\\)" "\\|" (c-get-lang-constant 'c-symbol-start) "\\|" "\\.?[0-9]" "\\|" (c-make-keywords-re nil (set-difference nonkeyword-prefix-ops in-or-postfix-ops :test 'string-equal)) "\\|" "\\s\"" (if (memq 'gen-string-delim c-emacs-features) "\\|\\s|" #1="")))) c-decl-prefix-re (((pike-mode) . "\\([{}()[;,]+\\)") ((objc-mode) concat "\\([{}();,]+\\|" (c-make-keywords-re nil (c-get-lang-constant 'c-protection-kwds)) "\\)") ((c++-mode) . "\\([{}();,<]+\\)") ((java-mode) . "\\([{}(;,<]+\\)") (t . "\\([{}();,]+\\)")) c-decl-start-re ((t c-get-lang-constant 'c-identifier-start)) c-decl-prefix-or-start-re ((t if (c-get-lang-constant 'c-decl-start-kwds) (concat (c-get-lang-constant 'c-decl-prefix-re) "\\|" (c-make-keywords-re t (c-get-lang-constant 'c-decl-start-kwds))) (c-get-lang-constant 'c-decl-prefix-re))) c-cast-parens ((t c-filter-ops (c-get-lang-constant 'c-operators) '(prefix) "\\`\\s(\\'" #'(lambda (op) (elt op 0)))) c-block-prefix-disallowed-chars (((c-mode c++-mode objc-mode) set-difference (c-get-lang-constant 'c-block-prefix-disallowed-chars) '(34 39)) ((java-mode pike-mode) set-difference (c-get-lang-constant 'c-block-prefix-disallowed-chars) '(40 41)) ((c++-mode java-mode) set-difference (c-get-lang-constant 'c-block-prefix-disallowed-chars) '(44)) ((c++-mode objc-mode idl-mode) set-difference (c-get-lang-constant 'c-block-prefix-disallowed-chars) '(58)) (t if (c-get-lang-constant 'c-opt-cpp-prefix) (set-difference (c-get-lang-constant 'c-block-prefix-disallowed-chars) '(35)) (c-get-lang-constant 'c-block-prefix-disallowed-chars)) (t set-difference (c-get-lang-constant 'c-nonsymbol-token-char-list) (c-filter-ops (append (c-get-lang-constant 'c-identifier-ops) (list (cons nil (c-get-lang-constant 'c-after-id-concat-ops)))) t t #'(lambda (op) (let ((pos 0) res) (while (string-match "\\(\\s.\\|\\s(\\|\\s)\\)" op pos) (setq res (cons (aref op (match-beginning 1)) res) pos (match-end 0))) res))))) c-block-prefix-charset ((t c-make-bare-char-alt (c-get-lang-constant 'c-block-prefix-disallowed-chars) t)) c-type-decl-prefix-key (((pike-mode) . "\\(\\*\\)\\([^=]\\|$\\)") ((c++-mode) concat "\\(" "[*(&]" "\\|" (c-get-lang-constant 'c-type-decl-prefix-key) "\\|" (concat "\\(" (c-get-lang-constant 'c-identifier-start) "\\)") "\\)" "\\([^=]\\|$\\)") ((c-mode objc-mode) concat "\\(" "[*(]" "\\|" (c-get-lang-constant 'c-type-decl-prefix-key) "\\)" "\\([^=]\\|$\\)") (t if (c-get-lang-constant 'c-type-modifier-kwds) (concat (regexp-opt (c-get-lang-constant 'c-type-modifier-kwds) t) "\\>") "\\<\\>")) c-type-decl-suffix-key (((java-mode idl-mode) . "\\([[(]\\)") ((c-mode c++-mode objc-mode) concat "\\(" "[)[(]" (if (c-get-lang-constant 'c-type-modifier-kwds) (concat "\\|" (regexp-opt (c-get-lang-constant 'c-type-modifier-kwds) t) "\\>") #1#) "\\)") (t if (c-get-lang-constant 'c-type-modifier-kwds) (concat "\\((\\|" (regexp-opt (c-get-lang-constant 'c-type-modifier-kwds) t) "\\>" "\\)") "\\((\\)")) c-after-suffixed-type-decl-key (((c++-mode) . "[{:]") (t if (c-get-lang-constant 'c-postfix-spec-kwds) (concat (c-get-lang-constant 'c-after-suffixed-type-decl-key) "\\|" (c-make-keywords-re t (c-get-lang-constant 'c-postfix-spec-kwds))) (c-get-lang-constant 'c-after-suffixed-type-decl-key)) (t . "{")) c-after-suffixed-type-maybe-decl-key ((t concat "\\(" (c-get-lang-constant 'c-after-suffixed-type-decl-key) "\\)" "\\|[;,]")) c-opt-type-concat-key (((pike-mode) . "\\([|.&]\\)\\($\\|[^|.&]\\)") (t)) c-opt-type-suffix-key (((java-mode) concat "\\(\\[" (c-get-lang-constant 'c-simple-ws) "*\\]\\|\\.\\.\\.\\)") ((c-mode c++-mode objc-mode pike-mode) . "\\(\\.\\.\\.\\)") (t)) c-special-brace-lists (((pike-mode) quote ((123 . 125) (91 . 93) (60 . 62))) (t)) c-recognize-knr-p (((c-mode) . t) (t)) c-recognize-typeless-decls (((c-mode c++-mode objc-mode) . t) (t)) c-recognize-<>-arglists ((t or (consp (c-get-lang-constant 'c-<>-type-kwds)) (consp (c-get-lang-constant 'c-<>-arglist-kwds)))) c-enums-contain-decls (((java-mode) . t) (t)) c-recognize-paren-inits (((c++-mode) . t) (t)) c-recognize-paren-inexpr-blocks (((c-mode c++-mode) . t) (t)) c-opt-<>-arglist-start ((t if (c-get-lang-constant 'c-recognize-<>-arglists) (concat "\\(" (c-get-lang-constant 'c-symbol-key) "\\)" (c-get-lang-constant 'c-syntactic-ws) "<"))) c-opt-<>-arglist-start-in-paren ((t if (c-get-lang-constant 'c-opt-<>-arglist-start) (concat "\\(" (c-get-lang-constant 'c-opt-<>-arglist-start) "\\)\\|\\s)"))) c-opt-postfix-decl-spec-key (((java-mode) c-make-keywords-re t (c-get-lang-constant 'c-postfix-spec-kwds)) ((c++-mode) concat ":?" (c-get-lang-constant 'c-simple-ws) "*" "\\(virtual" (c-get-lang-constant 'c-simple-ws) "+\\)?\\(" (c-make-keywords-re nil (c-get-lang-constant 'c-protection-kwds)) "\\)" (c-get-lang-constant 'c-simple-ws) "+" "\\(" (c-get-lang-constant 'c-symbol-key) "\\)") (t)) c-recognize-colon-labels (((c-mode c++-mode objc-mode java-mode pike-mode) . t) (t)) c-label-prefix-re ((t . "\\([{};]+\\)")) c-nonlabel-token-key (((c++-mode) concat "\\s(\\|\"\\|" (c-get-lang-constant 'c-nonlabel-token-key)) ((c-mode objc-mode java-mode pike-mode idl-mode) concat "\"\\|" (c-get-lang-constant 'c-nonlabel-token-key)) (t concat (c-make-keywords-re t (set-difference (c-get-lang-constant 'c-keywords) (append (c-get-lang-constant 'c-label-kwds) (c-get-lang-constant 'c-protection-kwds)) :test 'string-equal)))) c-nonlabel-token-2-key (((c++-mode) c-make-keywords-re t '("class")) (t . "\\<\\>")) c-opt-extra-label-key (((objc-mode) c-make-keywords-re t (c-get-lang-constant 'c-protection-kwds)) (t)) c-opt-friend-key (((c++-mode) concat "friend" (c-get-lang-constant 'c-simple-ws) "+" "\\|" (concat "template" (c-get-lang-constant 'c-simple-ws) "*" "<.+>" (c-get-lang-constant 'c-simple-ws) "*" "friend" (c-get-lang-constant 'c-simple-ws) "+")) (t)) c-opt-method-key (((objc-mode) concat "^\\s *" "\\([+-]\\)" (c-get-lang-constant 'c-simple-ws) "*" (concat "\\(" "([^)]*)" (c-get-lang-constant 'c-simple-ws) "*" "\\)?") "\\(" (c-get-lang-constant 'c-symbol-key) "\\)") (t)) c-type-decl-end-used (((objc-mode) . t) (t or (c-get-lang-constant 'c-recognize-colon-labels) (and (c-get-lang-constant 'c-label-kwds) t)))] 3) (defconst c-lang-variable-inits '(nil (c++-template-syntax-table (and (c-lang-const c++-make-template-syntax-table) (funcall (c-lang-const c++-make-template-syntax-table))) nil) (c-no-parens-syntax-table (funcall (c-lang-const c-no-parens-syntax-table)) nil) (c-identifier-syntax-modifications (c-lang-const c-identifier-syntax-modifications) "A list that describes the modifications that should be done to the\nmode syntax table to get a syntax table that matches all identifiers\nand keywords as words.\n\nThe list is just like the one used in `font-lock-defaults': Each\nelement is a cons where the car is the character to modify and the cdr\nthe new syntax, as accepted by `modify-syntax-entry'.") (c-identifier-syntax-table (let ((table (copy-syntax-table (c-mode-var "mode-syntax-table"))) (mods c-identifier-syntax-modifications) mod) (while mods (setq mod (car mods) mods (cdr mods)) (modify-syntax-entry (car mod) (cdr mod) table)) table) "Syntax table built on the mode syntax table but additionally\nclassifies symbol constituents like '_' and '$' as word constituents,\nso that all identifiers are recognized as words.") (c-get-state-before-change-functions (let ((fs (c-lang-const c-get-state-before-change-functions))) (if (listp fs) fs (list fs))) "If non-nil, a list of functions called from c-before-change-hook.\nTypically these will record enough state to allow\n`c-before-font-lock-function' to extend the region to fontify,\nand may do such things as removing text-properties which must be\nrecalculated.\n\nThese functions will be run in the order given. Each of them\ntakes 2 parameters, the BEG and END supplied to every\nbefore-change function; on entry, the buffer will have been\nwidened and match-data will have been saved; point is undefined\non both entry and exit; the return value is ignored.\n\nThe functions are called even when font locking isn't enabled.\n\nWhen the mode is initialized, the functions are called with\nparameters (point-min) and (point-max).") (c-before-font-lock-functions (let ((fs (c-lang-const c-before-font-lock-functions))) (if (listp fs) fs (list fs))) "If non-nil, a list of functions called just before font locking.\nTypically they will extend the region about to be fontified (see\nbelow) and will set `syntax-table' text properties on the region.\n\nThese functions will be run in the order given. Each of them\ntakes 3 parameters, the BEG, END, and OLD-LEN supplied to every\nafter-change function; point is undefined on both entry and exit;\non entry, the buffer will have been widened and match-data will\nhave been saved; the return value is ignored.\n\nThe functions may extend the region to be fontified by setting the\nbuffer local variables c-new-BEG and c-new-END.\n\nThe functions are called even when font locking is disabled.\n\nWhen the mode is initialized, these functions are called with\nparameters (point-min), (point-max) and <buffer size>.") (c-before-context-fontification-functions (let ((fs (c-lang-const c-before-context-fontification-functions))) (if (listp fs) fs (list fs))) "If non-nil, a list of functions called just before context (or\nother non-change) fontification is done. Typically they will\nextend the region.\n\nThese functions will be run in the order given. Each of them\ntakes 2 parameters, the BEG and END of the region to be\nfontified. Point is undefined on both entry and exit. On entry,\nthe buffer will have been widened and match-data will have been\nsaved; the return value is a cons of the adjusted\nregion, (NEW-BEG . NEW-END).") (c-at-vsemi-p-fn (c-lang-const c-at-vsemi-p-fn) "Contains a function \"Is there a virtual semicolon at POS or point?\".\nSuch a function takes one optional parameter, a buffer position (defaults to\npoint), and returns nil or t. This variable contains nil for languages which\ndon't have EOL terminated statements. ") (c-vsemi-status-unknown-p-fn (c-lang-const c-vsemi-status-unknown-p-fn) "Contains a function \"are we unsure whether there is a virtual semicolon on this line?\".\nThe (admittedly kludgy) purpose of such a function is to prevent an infinite\nrecursion in c-beginning-of-statement-1 when point starts at a `while' token.\nThe function MUST NOT UNDER ANY CIRCUMSTANCES call c-beginning-of-statement-1,\neven indirectly. This variable contains nil for languages which don't have\nEOL terminated statements.") (c-has-bitfields (c-lang-const c-has-bitfields) "Whether the language has bitfield declarations.") (c-symbol-start (c-lang-const c-symbol-start) "Regexp that matches the start of a symbol, i.e. any identifier or\nkeyword. It's unspecified how far it matches. Does not contain a \\|\noperator at the top level.") (c-symbol-chars (c-lang-const c-symbol-chars) "Set of characters that can be part of a symbol.\nThis is of the form that fits inside [ ] in a regexp.") (c-symbol-key (c-lang-const c-symbol-key) "Regexp matching identifiers and keywords (with submatch 0). Assumed\nto match if `c-symbol-start' matches on the same position.") (c-nonsymbol-chars (c-lang-const c-nonsymbol-chars) "This is the set of chars that can't be part of a symbol, i.e. the\nnegation of `c-symbol-chars'.") (c-opt-identifier-concat-key (c-lang-const c-opt-identifier-concat-key) nil) (c-identifier-start (c-lang-const c-identifier-start) "Regexp that matches the start of an (optionally qualified) identifier.\nIt should also match all keywords. It's unspecified how far it\nmatches.") (c-identifier-key (c-lang-const c-identifier-key) "Regexp matching a fully qualified identifier, like \"A::B::c\" in\nC++. It does not recognize the full range of syntactic whitespace\nbetween the tokens; `c-forward-name' has to be used for that. It\nshould also not match identifiers containing parenthesis groupings,\ne.g. identifiers with template arguments such as \"A<X,Y>\" in C++.") (c-string-escaped-newlines (c-lang-const c-string-escaped-newlines) "Set if the language support backslash escaped newlines inside string\nliterals.") (c-multiline-string-start-char (c-lang-const c-multiline-string-start-char) "Set if the language supports multiline string literals without escaped\nnewlines. If t, all string literals are multiline. If a character,\nonly literals where the open quote is immediately preceded by that\nliteral are multiline.") (c-opt-cpp-symbol (c-lang-const c-opt-cpp-symbol) "The symbol which starts preprocessor constructs when in the margin.") (c-opt-cpp-prefix (c-lang-const c-opt-cpp-prefix) "Regexp matching the prefix of a cpp directive in the languages that\nnormally use that macro preprocessor. Tested at bol or at boi.\nAssumed to not contain any submatches or \\| operators.") (c-anchored-cpp-prefix (c-lang-const c-anchored-cpp-prefix) "Regexp matching the prefix of a cpp directive anchored to BOL,\nin the languages that have a macro preprocessor.") (c-opt-cpp-start (c-lang-const c-opt-cpp-start) "Regexp matching the prefix of a cpp directive including the directive\nname, or nil in languages without preprocessor support. The first\nsubmatch surrounds the directive name.") (c-opt-cpp-macro-define (c-lang-const c-opt-cpp-macro-define) "Cpp directive (without the prefix) that is followed by a macro\ndefinition, or nil if the language doesn't have any.") (c-opt-cpp-macro-define-start (c-lang-const c-opt-cpp-macro-define-start) nil) (c-opt-cpp-macro-define-id (c-lang-const c-opt-cpp-macro-define-id) nil) (c-cpp-expr-intro-re (c-lang-const c-cpp-expr-intro-re) "Regexp which matches the start of a CPP directive which contains an\nexpression, or nil if there aren't any in the language.") (c-overloadable-operators-regexp (c-lang-const c-overloadable-operators-regexp) nil) (c-opt-op-identifier-prefix (c-lang-const c-opt-op-identifier-prefix) "Regexp matching the token before the ones in\n`c-overloadable-operators' when operators are specified in their\n\"identifier form\". This typically matches \"operator\" in C++ where\noperator functions are specified as e.g. \"operator +\". It's nil in\nlanguages without operator functions or where the complete operator\nidentifier is listed in `c-overloadable-operators'.\n\nThis regexp is assumed to not match any non-operator identifier.") (c-nonsymbol-token-regexp (c-lang-const c-nonsymbol-token-regexp) nil) (c-assignment-op-regexp (c-lang-const c-assignment-op-regexp) nil) (c-<>-multichar-token-regexp (c-lang-const c-<>-multichar-token-regexp) nil) (c-<-op-cont-regexp (c-lang-const c-<-op-cont-regexp) nil) (c->-op-cont-regexp (c-lang-const c->-op-cont-regexp) nil) (c-stmt-delim-chars (c-lang-const c-stmt-delim-chars) nil) (c-stmt-delim-chars-with-comma (c-lang-const c-stmt-delim-chars-with-comma) nil) (c-line-comment-starter (c-lang-const c-line-comment-starter) "String that starts line comments, or nil if such don't exist.\nLine comments are always terminated by newlines. At least one of\n`c-block-comment-starter' and this one is assumed to be set.\n\nNote that it's currently not enough to set this to support a new\ncomment style. Other stuff like the syntax table must also be set up\nproperly.") (c-comment-start-regexp (c-lang-const c-comment-start-regexp) nil) (c-block-comment-start-regexp (c-lang-const c-block-comment-start-regexp) nil) (c-line-comment-start-regexp (c-lang-const c-line-comment-start-regexp) nil) (c-literal-start-regexp (c-lang-const c-literal-start-regexp) nil) (c-doc-comment-start-regexp (c-lang-const c-doc-comment-start-regexp) "Regexp to match the start of documentation comments.") (c-syntactic-ws-start (c-lang-const c-syntactic-ws-start) nil) (c-syntactic-ws-end (c-lang-const c-syntactic-ws-end) nil) (c-syntactic-eol (c-lang-const c-syntactic-eol) nil) (c-paragraph-start (c-lang-const c-paragraph-start) "Regexp to append to `paragraph-start'.") (c-paragraph-separate (c-lang-const c-paragraph-separate) "Regexp to append to `paragraph-separate'.") (c-primitive-type-key (c-lang-const c-primitive-type-key) nil) (c-typedef-key (c-lang-const c-typedef-key) nil) (c-type-prefix-key (c-lang-const c-type-prefix-key) nil) (c-opt-type-modifier-key (c-lang-const c-opt-type-modifier-key) nil) (c-opt-type-component-key (c-lang-const c-opt-type-component-key) nil) (c-class-key (c-lang-const c-class-key) nil) (c-brace-list-key (c-lang-const c-brace-list-key) nil) (c-other-decl-block-key (c-lang-const c-other-decl-block-key) nil) (c-other-decl-block-key-in-symbols-alist (mapcar (lambda (elt) (cons elt (if (string= elt "extern") 'inextern-lang (intern (concat "in" elt))))) (c-lang-const c-other-block-decl-kwds)) "Alist associating keywords in c-other-decl-block-decl-kwds with\ntheir matching \"in\" syntactic symbols.") (c-typedef-decl-key (c-lang-const c-typedef-decl-key) nil) (c-decl-hangon-key (c-lang-const c-decl-hangon-key) nil) (c-prefix-spec-kwds-re (c-lang-const c-prefix-spec-kwds-re) nil) (c-specifier-key (c-lang-const c-specifier-key) nil) (c-not-decl-init-keywords (c-lang-const c-not-decl-init-keywords) nil) (c-not-primitive-type-keywords-regexp (c-lang-const c-not-primitive-type-keywords-regexp) nil) (c-opt-block-decls-with-vars-key (c-lang-const c-opt-block-decls-with-vars-key) nil) (c-colon-type-list-re (c-lang-const c-colon-type-list-re) "Regexp matched after the keywords in `c-colon-type-list-kwds' to skip\nforward to the colon. The end of the match is assumed to be directly\nafter the colon, so the regexp should end with \":\". Must be a\nregexp if `c-colon-type-list-kwds' isn't nil.") (c-opt-<>-sexp-key (c-lang-const c-opt-<>-sexp-key) nil) (c-block-stmt-1-key (c-lang-const c-block-stmt-1-key) nil) (c-block-stmt-2-key (c-lang-const c-block-stmt-2-key) nil) (c-opt-block-stmt-key (c-lang-const c-opt-block-stmt-key) nil) (c-simple-stmt-key (c-lang-const c-simple-stmt-key) nil) (c-paren-stmt-key (c-lang-const c-paren-stmt-key) nil) (c-opt-asm-stmt-key (c-lang-const c-opt-asm-stmt-key) nil) (c-case-kwds-regexp (c-lang-const c-case-kwds-regexp) nil) (c-label-kwds-regexp (c-lang-const c-label-kwds-regexp) nil) (c-opt-inexpr-brace-list-key (c-lang-const c-opt-inexpr-brace-list-key) nil) (c-decl-block-key (c-lang-const c-decl-block-key) nil) (c-opt-bitfield-key (c-lang-const c-opt-bitfield-key) nil) (c-keywords-regexp (c-lang-const c-keywords-regexp) nil) (c-keywords-obarray (let* ((alist (c-lang-const c-keyword-member-alist)) kwd lang-const-list (obarray (make-vector (* (length alist) 2) 0))) (while alist (setq kwd (caar alist) lang-const-list (cdar alist) alist (cdr alist)) (setplist (intern kwd obarray) (apply 'nconc (mapcar (lambda (lang-const) (list lang-const t)) lang-const-list)))) obarray) nil) (c-regular-keywords-regexp (c-lang-const c-regular-keywords-regexp) nil) (c-primary-expr-regexp (c-lang-const c-primary-expr-regexp) nil) (c-decl-prefix-re (c-lang-const c-decl-prefix-re) nil) (c-decl-start-re (c-lang-const c-decl-start-re) "Regexp matching the start of any declaration, cast or label.\nIt's used on the token after the one `c-decl-prefix-re' matched. This\nregexp should not try to match those constructs accurately as it's\nonly used as a sieve to avoid spending more time checking other\nconstructs.") (c-decl-prefix-or-start-re (c-lang-const c-decl-prefix-or-start-re) nil) (c-cast-parens (c-lang-const c-cast-parens) nil) (c-block-prefix-charset (c-lang-const c-block-prefix-charset) nil) (c-type-decl-prefix-key (c-lang-const c-type-decl-prefix-key) nil) (c-type-decl-suffix-key (c-lang-const c-type-decl-suffix-key) nil) (c-after-suffixed-type-decl-key (c-lang-const c-after-suffixed-type-decl-key) nil) (c-after-suffixed-type-maybe-decl-key (c-lang-const c-after-suffixed-type-maybe-decl-key) nil) (c-opt-type-concat-key (c-lang-const c-opt-type-concat-key) nil) (c-opt-type-suffix-key (c-lang-const c-opt-type-suffix-key) "Regexp matching operators that might follow after a type, or nil in\nlanguages that don't have such operators. The end of the first\nsubmatch is taken as the end of the operator. This should not match\nthings like C++ template arglists if `c-recognize-<>-arglists' is set.\nIt's undefined whether identifier syntax (see `c-identifier-syntax-table')\nis in effect or not.") (c-known-type-key (let* ((extra-types (when (boundp (c-mode-symbol "font-lock-extra-types")) (c-mode-var "font-lock-extra-types"))) (regexp-strings (apply 'nconc (mapcar (lambda (re) (when (string-match "[][.*+?^$\\]" re) (list re))) extra-types))) (plain-strings (apply 'nconc (mapcar (lambda (re) (unless (string-match "[][.*+?^$\\]" re) (list re))) extra-types)))) (concat "\\<\\(" (c-concat-separated (append (list (c-make-keywords-re nil (append (c-lang-const c-primitive-type-kwds) plain-strings))) regexp-strings) "\\|") "\\)\\>")) nil) (c-special-brace-lists (c-lang-const c-special-brace-lists) "List of open- and close-chars that makes up a pike-style brace list,\ni.e. for a ([ ]) list there should be a cons (?\\[ . ?\\]) in this\nlist.") (c-recognize-knr-p (c-lang-const c-recognize-knr-p) "Non-nil means K&R style argument declarations are valid.") (c-recognize-typeless-decls (c-lang-const c-recognize-typeless-decls) "Non-nil means function declarations without return type should be\nrecognized. That can introduce an ambiguity with parenthesized macro\ncalls before a brace block. This setting does not affect declarations\nthat are preceded by a declaration starting keyword, so\ne.g. `c-typeless-decl-kwds' may still be used when it's set to nil.") (c-recognize-<>-arglists (c-lang-const c-recognize-<>-arglists) "Non-nil means C++ style template arglists should be handled. More\nspecifically, this means a comma separated list of types or\nexpressions surrounded by \"<\" and \">\". It's always preceded by an\nidentifier or one of the keywords on `c-<>-type-kwds' or\n`c-<>-arglist-kwds'. If there's an identifier before then the whole\nexpression is considered to be a type.") (c-enums-contain-decls (c-lang-const c-enums-contain-decls) "Non-nil means that an enum structure can contain declarations.") (c-recognize-paren-inits (c-lang-const c-recognize-paren-inits) "Non-nil means that parenthesis style initializers exist,\ni.e. constructs like\n\nFoo bar (gnu);\n\nin addition to the more classic\n\nFoo bar = gnu;") (c-recognize-paren-inexpr-blocks (c-lang-const c-recognize-paren-inexpr-blocks) "Non-nil to recognize gcc style in-expression blocks,\ni.e. compound statements surrounded by parentheses inside expressions.") (c-opt-<>-arglist-start (c-lang-const c-opt-<>-arglist-start) nil) (c-opt-<>-arglist-start-in-paren (c-lang-const c-opt-<>-arglist-start-in-paren) nil) (c-opt-postfix-decl-spec-key (c-lang-const c-opt-postfix-decl-spec-key) nil) (c-recognize-colon-labels (c-lang-const c-recognize-colon-labels) "Non-nil if generic labels ending with \":\" should be recognized.\nThat includes labels in code and access keys in classes. This does\nnot apply to labels recognized by `c-label-kwds' and\n`c-opt-extra-label-key'.") (c-label-prefix-re (c-lang-const c-label-prefix-re) "Regexp like `c-decl-prefix-re' that matches any token that can precede\na generic colon label. Not used if `c-recognize-colon-labels' is\nnil.") (c-nonlabel-token-key (c-lang-const c-nonlabel-token-key) "Regexp matching things that can't occur in generic colon labels,\nneither in a statement nor in a declaration context. The regexp is\ntested at the beginning of every sexp in a suspected label,\ni.e. before \":\". Only used if `c-recognize-colon-labels' is set.") (c-nonlabel-token-2-key (c-lang-const c-nonlabel-token-2-key) "Regexp matching things that can't occur two symbols before a colon in\na label construct. This catches C++'s inheritance construct \"class foo\n: bar\". Only used if `c-recognize-colon-labels' is set.") (c-opt-extra-label-key (c-lang-const c-opt-extra-label-key) "Optional regexp matching labels.\nNormally, labels are detected according to `c-nonlabel-token-key',\n`c-decl-prefix-re' and `c-nonlabel-decl-prefix-re'. This regexp can\nbe used if there are additional labels that aren't recognized that\nway.") (c-opt-friend-key (c-lang-const c-opt-friend-key) nil) (c-opt-method-key (c-lang-const c-opt-method-key) nil) (c-type-decl-end-used (c-lang-const c-type-decl-end-used) nil))) (defconst c-emacs-variable-inits '(nil (comment-start (c-lang-const comment-start)) (comment-end (c-lang-const comment-end)) (comment-start-skip (c-lang-const comment-start-skip)) (beginning-of-defun-function (c-lang-const beginning-of-defun-function)) (end-of-defun-function (c-lang-const end-of-defun-function)))) (defalias 'c-make-emacs-variables-local '(macro . #[nil "\301\302\303A\"B\207" [c-emacs-variable-inits progn mapcar #[(init) "\301\302@DD\207" [init make-local-variable quote] 3]] 4])) #@325 Create a function that initializes all the language dependent variables for the given mode. This function should be evaluated at compile time, so that the function it returns is byte compiled with all the evaluated results from the language constants. Use the `c-init-language-vars' macro to accomplish that conveniently. (defalias 'c-make-init-lang-vars-fun #[(mode) "\204o \306\301!\203o ;\203o \307\310\311\305\312\nDD\313B\314\315\316\317\320\303\312DE\321\n\322\323\324\325'A(A\"\"*B\326\311\327\312\325'A(A\"DDC\330BB\257\331\317\332\333\334\332\317\335\336\337\312\nD)\340BBBB\341BBB\342BBBB\343BBBDFFE\207\307\310\344\311\305\312\nDD\345B\346BBF\207" [load-in-progress byte-compile-dest-file mode c-version-sym c-lang-const-expansion c-buffer-is-cc-mode boundp lambda nil let quote (current-var source-eval) (c-make-emacs-variables-local) condition-case err if eq setq immediate mapcan #[(init) "\301\302@D@\303\304\234!F\207" [init current-var quote cl-macroexpand-all 1] 6] append (setq source-eval t) init ((while init (setq current-var (caar init)) (set (caar init) (eval (cadar init))) (setq init (cdr init)))) error current-var message "Eval error in the `c-lang-defvar' or `c-lang-setvar' for `%s'%s: %S" source-eval format " (fallback source eval - %s compiled with CC Mode %s but loaded with %s)" (c-version) ("") (err) ((signal (car err) (cdr err))) (require 'cc-langs) ((init (append (cdr c-emacs-variable-inits) (cdr c-lang-variable-inits))) current-var) ((c-make-emacs-variables-local) (condition-case err (while init (setq current-var (caar init)) (set (caar init) (eval (cadar init))) (setq init (cdr init))) (error (if current-var (message "Eval error in the `c-lang-defvar' or `c-lang-setver' for `%s' (source eval): %S" current-var err) (signal (car err) (cdr err)))))) c-emacs-variable-inits c-lang-variable-inits c-version] 21 (#$ . 75088)]) #@240 Initialize all the language dependent variables for the given mode. This macro is expanded at compile time to a form tailored for the mode in question, so MODE must be a constant. Therefore MODE is not evaluated and should not be quoted. (defalias 'c-init-language-vars '(macro . #[(mode) "\301\302!D\207" [mode funcall c-make-init-lang-vars-fun] 3 (#$ . 76981)])) (provide 'cc-langs)