Variable: c-font-lock-keywords-3

c-font-lock-keywords-3 is a variable defined in cc-fonts.el.gz.

Value

Large value
(c-maybe-font-lock-wrong-style-comments c-font-lock-cpp-messages
					("\\(\\=\\|\\(\\=\\|[^\\]\\)[\n
]\\)\\(^\\s *\\(#\\)\\s *\\_<\\(embed\\|include\\)\\_>[  ]*\\)\\(\\s \\|[\n
]\\)*\\(\\(//[^\n
]*[\n
]\\|/\\*[^*\n
]*\\(\\*+[^*\n
/][^*\n
]*\\)*\\*+/\\|\\\\[\n
]\\|\\s!\\S!*\\s!\\)\\(\\s \\|[\n
]\\)*\\)*\\(<\\([^>\n
]*\\)>?\\)"
					 11 font-lock-string-face t)
					(#[257
					   "\302\300!\303!\210`W\203z�\304\305\306#\203z�\307\224b\210\303!\204�\307\225b\210\310 \311\312\"\216\313\224\203l�\214\314\315\224\315\225\316\317$\210\313\225b\210e}\210\320 \210\321	!\203h�\314\307\224\307\225\316\322$\210\307\225b\210\320 \210\323f\324=\203h�\323u\210\202B�)\202u�\314\315\224\315\225\316\322$\210)\210\202�)\323\207"
					   [parse-sexp-lookup-properties
					    c-symbol-key boundp
					    c-skip-comments-and-strings
					    re-search-forward
					    "\\(\\=\\|\\(\\=\\|[^\\]\\)[\n
]\\)\\s *#\\s *define\\(\\(\\s \\|[\n
]\\)\\|//[^\n
]*[\n
]\\|/\\*[^*\n
]*\\(\\*+[^*\n
/][^*\n
]*\\)*\\*+/\\|\\\\[\n
]\\|\\s!\\S!*\\s!\\)+\\([[:alpha:]_$][[:alnum:]_$]\\{,1000\\}\\)\\(\\((\\)\\|\\([^(]\\|$\\)\\)"
					    t 0 match-data
					    make-closure
					    #[0 "\301\300\302\"\207"
						[V0 set-match-data t]
						3]
					    8 put-text-property 6 face
					    font-lock-function-name-face
					    c-forward-sws looking-at
					    font-lock-variable-name-face
					    nil 44]
					   7 "\n\n(fn LIMIT)"])
					(#[257
					   "\303\300!	\304=\203@�\212\305 \210`)\306!\210\307\310\311#\203?�\312\224b\210\306!\204�\312\225b\210\313 \314\315\"\216\316\317\224\317\225\320\n$)\266\202�\210\306!\210`W\203\207�\307\321\311#\203\207�\312\224b\210\306!\204D�\312\225b\210\322\225b\210\313 \314\315\"\216\312\225\307\310\323#\203\201�\316\317\224\317\225\320\n$\210\202m�)\266\202D�)\324\207"
					   [parse-sexp-lookup-properties
					    c-font-lock-context
					    c-preprocessor-face-name
					    boundp in-cpp-expr
					    c-end-of-macro
					    c-skip-comments-and-strings
					    re-search-forward
					    "\\_<\\(defined\\)\\_>" t
					    0 match-data make-closure
					    #[0 "\301\300\302\"\207"
						[V0 set-match-data t]
						3]
					    put-text-property 1 face
					    "\\(\\=\\|\\(\\=\\|[^\\]\\)[\n
]\\)\\s *#\\s *\\_<\\(\\(?:eli\\(?:f\\(?:n?de\\)\\)?\\|i\\)f\\)\\_>\\(\\\\\\(.\\|[\n
]\\)\\|[^\n
]\\)*"
					    3 move nil]
					   8 "\n\n(fn LIMIT)"])
					(#[257
					   "\302\300!\303!\210`W\2039�\304\305\306#\2039�\307\224b\210\303!\204�\307\225b\210\310 \311\312\"\216\313\314\224\314\225\315	$)\266\202�)\316\207"
					   [parse-sexp-lookup-properties
					    c-preprocessor-face-name
					    boundp
					    c-skip-comments-and-strings
					    re-search-forward
					    "\\(\\=\\|\\(\\=\\|[^\\]\\)[\n
]\\)\\(\\s *#\\s *[[:alnum:]_$]+\\)"
					    t 0 match-data
					    make-closure
					    #[0 "\301\300\302\"\207"
						[V0 set-match-data t]
						3]
					    put-text-property 3 face
					    nil]
					   7 "\n\n(fn LIMIT)"])
					(eval list
					      #[257
						"\300\301!\210\302\303\304#\211\262\203�\305\224b\210\301!\204�\305\225b\210\207"
						[nil
						 c-skip-comments-and-strings
						 re-search-forward
						 "\\(\\=\\|\\(\\=\\|[^\\]\\)[\n
]\\)\\s *#\\s *if\\(n\\)def\\_>"
						 t 0]
						6 "\n\n(fn LIMIT)"]
					      3
					      c-negation-char-face-name
					      'append)
					(eval list "\240" 0
					      (progn
						(unless
						    (c-face-name-p
						     'c-nonbreakable-space-face)
						  (c-make-inverse-face
						   'font-lock-warning-face
						   'c-nonbreakable-space-face))
						''c-nonbreakable-space-face))
					("\\s|" 0
					 font-lock-warning-face t nil)
					c-font-lock-invalid-single-quotes
					(eval list
					      "\\_<\\(\\_<\\(NULL\\|false\\|nullptr\\|true\\)\\_>\\)\\_>"
					      1 c-constant-face-name)
					("\\_<\\_<\\(_\\(?:Align\\(?:as\\|of\\)\\|Generic\\|Static_assert\\|Thread_local\\|_\\(?:a\\(?:\\(?:sm\\|ttribute\\)__\\)\\|declspec\\)\\)\\|a\\(?:lign\\(?:as\\|of\\)\\|sm\\|uto\\)\\|break\\|c\\(?:ase\\|on\\(?:st\\(?:expr\\)?\\|tinue\\)\\)\\|d\\(?:efault\\|o\\)\\|e\\(?:lse\\|num\\|xtern\\)\\|for\\|goto\\|i\\(?:f\\|nline\\)\\|re\\(?:gister\\|strict\\|turn\\)\\|s\\(?:izeof\\|t\\(?:atic\\(?:_assert\\)?\\|ruct\\)\\|witch\\)\\|t\\(?:hread_local\\|ype\\(?:def\\|of\\(?:_unqual\\)?\\)\\)\\|union\\|\\(?:volat\\|wh\\)ile\\)\\_>"
					 1 font-lock-keyword-face)
					(eval list "\\(!\\)[^=]" 1
					      c-negation-char-face-name)
					c-font-lock-complex-decl-prepare
					c-font-lock-cut-off-declarators
					c-font-lock-declarations
					c-font-lock-enclosing-decls
					c-font-lock-c++-using
					("\\_<\\(\\_<\\(_\\(?:B\\(?:itInt\\|ool\\)\\|Complex\\|Decimal\\(?:128\\|32\\|64\\)\\|Imaginary\\)\\|bool\\|char\\(?:\\(?:16\\|32\\|8\\)_t\\)?\\|double\\|float\\|int\\|long\\|nullptr_t\\|s\\(?:hort\\|igned\\)\\|\\(?:unsigne\\|voi\\)d\\)\\_>\\)\\_>"
					 1 'font-lock-type-face)
					c-font-lock-ids-with-dollar
					c-font-lock-enum-tail
					c-font-lock-enum-body
					(eval list
					      "\\_<\\(\\_<\\(goto\\)\\_>\\)\\_>\\s *\\([[:alpha:]_$][[:alnum:]_$]\\{,1000\\}\\)"
					      (list 3
						    c-label-face-name
						    nil t)))

Documentation

Accurate normal font locking for C mode.

Like the variable c-font-lock-keywords-2(var)/c-font-lock-keywords-2(fun) but detects declarations in a more accurate way that works in most cases for arbitrary types without the need for c-font-lock-extra-types.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/cc-fonts.el.gz
(defconst c-font-lock-keywords-3 (c-lang-const c-matchers-3 c)
  "Accurate normal font locking for C mode.
Like the variable `c-font-lock-keywords-2' but detects declarations in a more
accurate way that works in most cases for arbitrary types without the
need for `c-font-lock-extra-types'.")