Variable: c++-font-lock-keywords-2

c++-font-lock-keywords-2 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 *\\_<\\(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
					c-font-lock-ml-strings
					(eval list
					      "\\_<\\(\\_<\\(NULL\\|false\\|nullptr\\|true\\)\\_>\\)\\_>"
					      1 c-constant-face-name)
					("\\_<\\_<\\(__\\(?:a\\(?:\\(?:sm\\|ttribute\\)__\\)\\|declspec\\)\\|a\\(?:lign\\(?:as\\|of\\)\\|nd\\(?:_eq\\)?\\|sm\\|uto\\)\\|b\\(?:it\\(?:and\\|or\\)\\|reak\\)\\|c\\(?:a\\(?:se\\|tch\\)\\|lass\\|o\\(?:_\\(?:await\\|return\\|yield\\)\\|mpl\\|n\\(?:cept\\|st\\(?:_cast\\|e\\(?:val\\|xpr\\)\\|init\\)?\\|tinue\\)\\)\\)\\|d\\(?:e\\(?:cltype\\|fault\\|lete\\)\\|o\\|ynamic_cast\\)\\|e\\(?:lse\\|num\\|x\\(?:p\\(?:\\(?:lici\\|or\\)t\\)\\|tern\\)\\)\\|f\\(?:inal\\|or\\|riend\\)\\|goto\\|i\\(?:f\\|mport\\|nline\\)\\|m\\(?:\\(?:odu\\|utab\\)le\\)\\|n\\(?:amespace\\|ew\\|o\\(?:except\\|t\\(?:_eq\\)?\\)\\)\\|o\\(?:perator\\|r\\(?:_eq\\)?\\|verride\\)\\|p\\(?:r\\(?:ivate\\|otected\\)\\|ublic\\)\\|re\\(?:gister\\|interpret_cast\\|quires\\|turn\\)\\|s\\(?:izeof\\|t\\(?:atic\\(?:_\\(?:\\(?:asser\\|cas\\)t\\)\\)?\\|ruct\\)\\|witch\\)\\|t\\(?:emplate\\|h\\(?:is\\|r\\(?:ead_local\\|ow\\)\\)\\|ry\\|ype\\(?:def\\|id\\|name\\|of\\)\\)\\|u\\(?:nion\\|sing\\)\\|v\\(?:irtual\\|olatile\\)\\|while\\|xor\\(?:_eq\\)?\\)\\_>"
					 1 font-lock-keyword-face)
					(#[257
					   "\301\302\303#\205*�\304\224b\210\305!\204��\306\307\224\310\"\204#�\311\307\224\307\225\310$\210\312\225b\210\202��\207"
					   [c-reference-face-name
					    re-search-forward
					    "\\(\\_<\\([[:alpha:]_$][[:alnum:]_$]\\{,1000\\}\\)\\(\\s \\|[\n
]\\)*\\(::\\)\\(\\s \\|[\n
]\\)*\\)\\([[:alpha:]_$]\\|\\([*~]\\)\\)"
					    t 0
					    c-skip-comments-and-strings
					    get-text-property 2 face
					    put-text-property 1]
					   6 "\n\n(fn LIMIT)"])
					c-font-lock-c++-modules
					("\\_<\\(concept\\)\\_>\\(\\s \\|[\n
]\\)+\\([[:alpha:]_$][[:alnum:]_$]\\{,1000\\}\\)"
					 (3 font-lock-type-face t))
					(eval list "\\(!\\)[^=]" 1
					      c-negation-char-face-name)
					(eval list
					      #[257
						"\302\300!\303!\210`W\203]�\304	\305#\203]�\306\224b\210\303!\204�\306\225b\210\307 \310\311\"\216\312\313\224\313\225\314\315$)\266\307 \310\311\"\216\313\225b\210\316 )\266\307 \310\311\"\216\317\305\320\211$)\266\313\225b\210\202�)\320\207"
						[parse-sexp-lookup-properties
						 c-known-type-key
						 boundp
						 c-skip-comments-and-strings
						 re-search-forward t 0
						 match-data
						 make-closure
						 #[0
						   "\301\300\302\"\207"
						   [V0 set-match-data
						       t]
						   3]
						 put-text-property 1
						 face
						 font-lock-type-face
						 c-forward-sws
						 c-font-lock-declarators
						 nil]
						7 "\n\n(fn LIMIT)"])
					(#[257
					   "\301\300!\302!\210`W\203]�\303\304\305#\203]�\306\224b\210\302!\204�\306\225b\210\307 \310\311\"\216\312\313\224\313\225\314\315$)\266\307 \310\311\"\216\313\225b\210\316 )\266\307 \310\311\"\216\317\305\320\211$)\266\313\225b\210\202�)\320\207"
					   [parse-sexp-lookup-properties
					    boundp
					    c-skip-comments-and-strings
					    re-search-forward
					    "\\_<\\(\\_<\\(class\\|enum\\|struct\\|typename\\|union\\)\\_>\\)\\(\\s \\|[\n
]\\)+\\([[:alpha:]_$][[:alnum:]_$]\\{,1000\\}\\)"
					    t 0 match-data
					    make-closure
					    #[0 "\301\300\302\"\207"
						[V0 set-match-data t]
						3]
					    put-text-property 4 face
					    font-lock-type-face
					    c-forward-sws
					    c-font-lock-declarators
					    nil]
					   7 "\n\n(fn LIMIT)"])
					(#[257
					   "\301\300!\302!\210`W\203K�\303\304\305#\203K�\306\224b\210\302!\204�\306\225b\210\307 \310\311\"\216\312\225b\210\313 )\266\307 \310\311\"\216\314\305\315\211$)\266\312\225b\210\202�)\315\207"
					   [parse-sexp-lookup-properties
					    boundp
					    c-skip-comments-and-strings
					    re-search-forward
					    "\\_<\\(class\\|enum\\|struct\\|union\\)\\_>"
					    t 0 match-data
					    make-closure
					    #[0 "\301\300\302\"\207"
						[V0 set-match-data t]
						3]
					    1 c-forward-sws
					    c-font-lock-declarators
					    nil]
					   7 "\n\n(fn LIMIT)"])
					c-font-lock-labels
					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))
					(#[257
					   "\304 \211\203	�\211b\210\210\305\300!\306\307!`\310!@\311=\203�\210`b\210\312!\210\313\314\315#\203\\�\316\224b\210\312!\204$�\316\225b\210\317 \320\321\"\216\315\322\315\323\324!\210`V\203T�b\210\325 ,\266\202$�)\322\207"
					   [parse-sexp-lookup-properties
					    c-record-type-identifiers
					    c-record-ref-identifiers
					    c-promote-possible-types
					    c-literal-start boundp
					    c-determine-limit 1000
					    c-beginning-of-decl-1 same
					    c-skip-comments-and-strings
					    re-search-forward
					    "\\_<\\(\\_<\\(class\\|namespace\\|operator\\|struct\\)\\_>\\)\\_>"
					    t 0 match-data
					    make-closure
					    #[0 "\301\300\302\"\207"
						[V0 set-match-data t]
						3]
					    nil
					    c-forward-keyword-clause 1
					    c-fontify-recorded-types-and-refs]
					   8 "\n\n(fn LIMIT)"])
					(#[257
					   "\304\300!\305!\210`W\203F�\306\307\310#\203F�\311\224b\210\305!\204�\311\225b\210\312 \313\314\"\216\310\315\310\316\317!\210`V\203>�b\210\320 ,\266\202�)\315\207"
					   [parse-sexp-lookup-properties
					    c-record-type-identifiers
					    c-record-ref-identifiers
					    c-promote-possible-types
					    boundp
					    c-skip-comments-and-strings
					    re-search-forward
					    "\\_<\\(\\_<\\(throw\\)\\_>\\)\\_>"
					    t 0 match-data
					    make-closure
					    #[0 "\301\300\302\"\207"
						[V0 set-match-data t]
						3]
					    nil
					    c-forward-keyword-clause 1
					    c-fontify-recorded-types-and-refs]
					   5 "\n\n(fn LIMIT)"]))

Documentation

Fast normal font locking for C++ mode.

In addition to c++-font-lock-keywords-1, this adds fontification of keywords, simple types, declarations that are easy to recognize, the user defined types on c++-font-lock-extra-types, and the doc comment styles specified by c-doc-comment-style.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/cc-fonts.el.gz
(defconst c++-font-lock-keywords-2 (c-lang-const c-matchers-2 c++)
  "Fast normal font locking for C++ mode.
In addition to `c++-font-lock-keywords-1', this adds fontification of
keywords, simple types, declarations that are easy to recognize, the
user defined types on `c++-font-lock-extra-types', and the doc comment
styles specified by `c-doc-comment-style'.")