;ELC   
;;; Compiled
;;; in Emacs version 26.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!\210\302\303\304\305#\210\306\307\310\311B\312B\313#\210\306\314\315\316B\312B\317#\210\306\320\321\322B\312B\323#\210\306\324\325\326B\312B\327#\210\306\330\331\332B\312B\333#\210\306\334\335\336B\312B\337#\210\306\340\341\342B\312B\343#\210\306\344\345\346B\312B\347#\210\306\350\351\352B\312B\353#\210\306\354\355\356B\312B\357#\210\306\360\361\362B\312B\363#\210\306\364\365\366B\312B\367#\210\306\370\371\372B\312B\373#\210\306\374\375\376B\312B\377#\210\306\201@ \201A \201B B\312B\201C #\210\306\201D \201E \201F B\312B\201G #\210\306\201H \201I \201J B\312B\201K #\210\306\201L \201M \201N B\312B\201O #\207" [require cc-mode put protobuf-mode c-mode-prefix "protobuf-" c-define-lang-constant c-primitive-type-kwds (protobuf-mode) #[nil "\300\207" [("double" "float" "int32" "int64" "uint32" "uint64" "sint32" "sint64" "fixed32" "fixed64" "sfixed32" "sfixed64" "bool" "string" "bytes" "group")] 1] nil (cc-langs) c-modifier-kwds (protobuf-mode) #[nil "\300\207" [("required" "optional" "repeated")] 1] (cc-langs) c-class-decl-kwds (protobuf-mode) #[nil "\300\207" [("message" "enum" "service")] 1] (cc-langs) c-constant-kwds (protobuf-mode) #[nil "\300\207" [("true" "false")] 1] (cc-langs) c-other-decl-kwds (protobuf-mode) #[nil "\300\207" [("package" "import")] 1] (cc-langs) c-other-kwds (protobuf-mode) #[nil "\300\207" [("default" "max")] 1] (cc-langs) c-identifier-ops (protobuf-mode) #[nil "\300\207" [((left-assoc "."))] 1] (cc-langs) c-type-list-kwds (protobuf-mode) #[nil "\300\207" [("extensions" "to" "reserved")] 1] (cc-langs) c-typeless-decl-kwds (protobuf-mode) #[nil "\300\207" [("extend" "rpc" "option" "returns")] 1] (cc-langs) c-brace-list-decl-kwds (protobuf-mode) #[nil "\300\207" [nil] 1] (cc-langs) c-block-stmt-1-kwds (protobuf-mode) #[nil "\300\207" [nil] 1] (cc-langs) c-block-stmt-2-kwds (protobuf-mode) #[nil "\300\207" [nil] 1] (cc-langs) c-simple-stmt-kwds (protobuf-mode) #[nil "\300\207" [nil] 1] (cc-langs) c-paren-stmt-kwds (protobuf-mode) #[nil "\300\207" [nil] 1] (cc-langs) c-label-kwds (protobuf-mode) #[nil "\300\207" [nil] 1] (cc-langs) c-before-label-kwds (protobuf-mode) #[nil "\300\207" [nil] 1] (cc-langs) c-cpp-matchers (protobuf-mode) #[nil "\300\207" [nil] 1] (cc-fonts) c-decl-prefix-re (protobuf-mode) #[nil "\300\207" [#1="\\([{};,]+\\)"] 1 #1#] (cc-langs)] 4)
#@41 Minimal highlighting for protobuf-mode.
(defconst protobuf-font-lock-keywords-1 (byte-code "\301=?\205\f \302\303\304\305#\207" [c-version-sym 5\.33\.1 c-get-lang-constant c-matchers-1 (cc-fonts) protobuf-mode] 4) (#$ . 2749))
#@45 Fast normal highlighting for protobuf-mode.
(defconst protobuf-font-lock-keywords-2 (byte-code "\301=\203 \302\207\303\304\305\306#\207" [c-version-sym 5\.33\.1 (#[#1=(limit) "\303\300!\304\305	\306#\203& \307\224b\210\310	!\204 \307\225b\210\311 \312\216\313 \210*\202 )\314\207" [parse-sexp-lookup-properties limit save-match-data-internal boundp re-search-forward ".\\(\\s\"\\|\\s|\\)" t 0 c-skip-comments-and-strings match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] c-font-lock-invalid-string nil] 4] c-font-lock-invalid-single-quotes (eval list "\\<\\(\\(?:\\(?:fals\\|tru\\)e\\)\\)\\>" 1 c-constant-face-name) ("\\<\\(\\(?:case\\|default\\|e\\(?:num\\|xten\\(?:d\\|sions\\)\\)\\|import\\|m\\(?:ax\\|essage\\)\\|option\\(?:al\\)?\\|package\\|r\\(?:e\\(?:peated\\|quired\\|served\\|turns?\\)\\|pc\\)\\|service\\|t\\(?:o\\|ypedef\\)\\)\\)\\([^[:alnum:]_$]\\|$\\)" 1 font-lock-keyword-face) (#[(limit) "\302\303\304#\205* \305\224b\210\306!\204  \307\310\224\311\"\204# \312\310\224\310\225\311	$\210\313\225b\210\202  \207" [limit c-reference-face-name re-search-forward "\\(\\<\\([[:alpha:]_][[:alnum:]_$]*\\)\\(\\s \\|[\n]\\)*\\(\\.\\)\\(\\s \\|[\n]\\)*\\)\\([[:alpha:]_]\\)" t 0 c-skip-comments-and-strings get-text-property 2 face put-text-property 1] 5]) (eval list "\\(!\\)[^=]" 1 c-negation-char-face-name) (eval list #[#1# "\304\300!\305	\n\306#\203J \307\224b\210\310\n!\204 \307\225b\210\311 \312\216\313\314\224\314\225\315\316$\210*\311 \317\216\314\225b\210\320 \210*\311 \321\216\322\n\306\323\211$\210*\314\225b\210\202 )\323\207" [parse-sexp-lookup-properties c-known-type-key limit save-match-data-internal boundp re-search-forward t 0 c-skip-comments-and-strings match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] put-text-property 1 face font-lock-type-face #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] c-forward-sws #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] c-font-lock-declarators nil] 5]) (#[#1# "\303\300!\304\305	\306#\203; \307\224b\210\310	!\204 \307\225b\210\311 \312\216\313\225b\210\314 \210*\311 \315\216\316	\306\317\211$\210*\313\225b\210\202 )\317\207" [parse-sexp-lookup-properties limit save-match-data-internal boundp re-search-forward "\\<\\(\\(?:extend\\|option\\|r\\(?:eturns\\|pc\\)\\)\\)\\>" t 0 c-skip-comments-and-strings match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] 1 c-forward-sws #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] c-font-lock-declarators nil] 5]) (#[(limit) "\306\301!\307\310!`\311!@\312=\203 `\202 \n)b\210\313\314\315#\203R \316\224b\210\317!\204 \316\225b\210\320 \321\216\315\322\315\323\324!\210`V\203K b\210\325 \210-\202 *\322\207" [BOD-limit parse-sexp-lookup-properties here limit save-match-data-internal c-promote-possible-types boundp c-determine-limit 1000 c-beginning-of-decl-1 same re-search-forward "\\<\\(\\(?:extensions\\|reserved\\|to\\)\\)\\>" t 0 c-skip-comments-and-strings match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] nil c-forward-keyword-clause 1 c-fontify-recorded-types-and-refs c-record-ref-identifiers c-record-type-identifiers] 4])) c-get-lang-constant c-matchers-2 (cc-fonts) protobuf-mode] 4) (#$ . 2983))
#@49 Accurate normal highlighting for protobuf-mode.
(defconst protobuf-font-lock-keywords-3 (byte-code "\301=\203 \302\207\303\304\305\306#\207" [c-version-sym 5\.33\.1 (#[(limit) "\303\300!\304\305	\306#\203& \307\224b\210\310	!\204 \307\225b\210\311 \312\216\313 \210*\202 )\314\207" [parse-sexp-lookup-properties limit save-match-data-internal boundp re-search-forward ".\\(\\s\"\\|\\s|\\)" t 0 c-skip-comments-and-strings match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] c-font-lock-invalid-string nil] 4] c-font-lock-invalid-single-quotes (eval list "\\<\\(\\(?:\\(?:fals\\|tru\\)e\\)\\)\\>" 1 c-constant-face-name) ("\\<\\(\\(?:case\\|default\\|e\\(?:num\\|xten\\(?:d\\|sions\\)\\)\\|import\\|m\\(?:ax\\|essage\\)\\|option\\(?:al\\)?\\|package\\|r\\(?:e\\(?:peated\\|quired\\|served\\|turns?\\)\\|pc\\)\\|service\\|t\\(?:o\\|ypedef\\)\\)\\)\\([^[:alnum:]_$]\\|$\\)" 1 font-lock-keyword-face) (#[(limit) "\302\303\304#\205* \305\224b\210\306!\204  \307\310\224\311\"\204# \312\310\224\310\225\311	$\210\313\225b\210\202  \207" [limit c-reference-face-name re-search-forward "\\(\\<\\([[:alpha:]_][[:alnum:]_$]*\\)\\(\\s \\|[\n]\\)*\\(\\.\\)\\(\\s \\|[\n]\\)*\\)\\([[:alpha:]_]\\)" t 0 c-skip-comments-and-strings get-text-property 2 face put-text-property 1] 5]) (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 ("\\<\\(\\(?:b\\(?:ool\\|ytes\\)\\|double\\|f\\(?:ixed\\(?:32\\|64\\)\\|loat\\)\\|group\\|int\\(?:32\\|64\\)\\|s\\(?:fixed\\(?:32\\|64\\)\\|int\\(?:32\\|64\\)\\|tring\\)\\|uint\\(?:32\\|64\\)\\)\\)\\>" 1 'font-lock-type-face) (#[(limit) "\306\301!\307\310!`\311!@\312=\203 `\202 \n)b\210\313\314\315#\203R \316\224b\210\317!\204 \316\225b\210\320 \321\216\315\322\315\323\324!\210`V\203K b\210\325 \210-\202 *\322\207" [BOD-limit parse-sexp-lookup-properties here limit save-match-data-internal c-promote-possible-types boundp c-determine-limit 1000 c-beginning-of-decl-1 same re-search-forward "\\<\\(\\(?:extensions\\|reserved\\|to\\)\\)\\>" t 0 c-skip-comments-and-strings match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] nil c-forward-keyword-clause 1 c-fontify-recorded-types-and-refs c-record-ref-identifiers c-record-type-identifiers] 4])) c-get-lang-constant c-matchers-3 (cc-fonts) protobuf-mode] 4) (#$ . 6402))
#@52 Default expressions to highlight in protobuf-mode.
(defvar protobuf-font-lock-keywords protobuf-font-lock-keywords-3 (#$ . 8876))
#@45 Syntax table used in protobuf-mode buffers.
(defvar protobuf-mode-syntax-table nil (#$ . 9012))
(byte-code "\204 	\302=\203 \303\202 \304\305\306\307# \302\207" [protobuf-mode-syntax-table c-version-sym 5\.33\.1 (lambda nil (let ((table (make-syntax-table))) (c-populate-syntax-table table) nil table)) c-get-lang-constant c-make-mode-syntax-table (cc-langs) protobuf-mode] 4)
#@51 Abbreviation table used in protobuf-mode buffers.
(defvar protobuf-mode-abbrev-table nil (#$ . 9400))
#@39 Keymap used in protobuf-mode buffers.
(defvar protobuf-mode-map nil (#$ . 9508))
(byte-code "\204 \301 \301\207" [protobuf-mode-map c-make-inherited-keymap] 1)
#@32 Protocol Buffers Mode Commands
(defvar protobuf-menu nil (#$ . 9677))
(byte-code "\302\303\304\305	\306=\203 \307\202 \310\311\312\313#B$\207" [protobuf-mode-map c-version-sym easy-menu-do-define protobuf-menu "Protocol Buffers Mode Commands" "Protocol Buffers" 5\.33\.1 (["Comment Out Region" comment-region (c-fn-region-is-active-p)] ["Uncomment Region" (comment-region (region-beginning) (region-end) '(4)) (c-fn-region-is-active-p)] ["Indent Expression" c-indent-exp (memq (char-after) '(40 91 123))] ["Indent Line or Region" c-indent-line-or-region t] ["Fill Comment Paragraph" c-fill-paragraph t] "----" ["Backward Statement" c-beginning-of-statement t] ["Forward Statement" c-end-of-statement t] ["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" c-subword-mode :style toggle :selected (and (boundp 'c-subword-mode) c-subword-mode)])) c-get-lang-constant c-mode-menu (cc-langs) protobuf-mode] 9)
#@205 Major mode for editing Protocol Buffers description language.

The hook `c-mode-common-hook' is run with no argument at mode
initialization, then `protobuf-mode-hook'.

Key bindings:
\{protobuf-mode-map}
(defalias 'protobuf-mode #[nil "\306 \210\307!\210\310\311\312\313@!\210\314\312!\210\315\316!\2036 \317\320!\210\317\321!\210\317\322!\210\317\323!\210\317\324!\210\317\325!\210\310\326\211ABC\317\320!\210\317\321!\210\317\322!\210\317\323!\210\317\324!\210\317\325!\210\3271\215D\330=\203V\320B\331\321B\332\322B\333\323B\326\324B\334\325B\335\336B\326\337B\326\340B\341 \342B\343\344\211EEC\204\253 \345\346!\210C\347N\211F\204\273 \345\350C\"\210\351FEP!*J)! \326GHIH\203\354 H@GHAH\352G@GAI#\210\202\317 I+\"\353B\326\211J<\203J\202JC)+\354B\355\211J<\203J\202JC),\356B\357\211J<\203-J\2020JC).\360B\3260\361B\3261\362B\3262\363B\3263\364B\3264\365B\3665\367B\3707\371B\3729\373B\374;\375B\376=\377B\201\335 ?\201K B\366K\201L B\201\336 L\201M B\326M\201N B\326N\201O B\201\337 O\201P B\201\340 P\201Q B\201\341 Q\201R B\201\342 R\201S B\201\343 S\201T B\201\344 T\201U B\201\345 U\201V B\201\346 V\201W B\201\347 W\201X B\326X\201Y B\326Y\201Z B\201\350 Z\201[ B\201\351 [\201\\ B\201\352 \\\201] B\201\353 ]\201^ B\201\354 ^\201_ B\201\355 _\201` B\201\356 `\201a B\201\357 a\201b B\201\360 b\201c B\201\361 c\201d B\201\354 d\201e B\201\362 e\201f B\201\363 f\201g B\201\350 g\201h B\201\354 h\201i B\201\354 i\201j B\201\364 j\201k B\201\365 k\201l B\201\366 l\201m B\201\367 m\201n B\201\370 n\201o B\201\371 o\201p B\201\372 p\201q B\201\373 q\201r B\201\366 r\201s B\201\374 s\201t B\201\354 t\201u B\326u\201v B\201\375 v\201w B\201\376 w\201x B\201\377 x\201y B\201 y\201z B\201 z\201{ B\201{\201| B\201|\201} B\201}\201~ B\201\350 ~\201 B\201\350 \201\200 B\201\350 \200\201\201 B\326\201\201\202 B\326\202\201\203 B\326\203\201\204 B\201\350 \204\201\205 B\201\205\201\206 B\201\350 \206\201\207 B\201\350 \207\201\210 B\326\210\201\211 B\201\350 \211\201\212 B\201\201\326\"\212\201\213 B\201\213\201\214 B\201\350 \214\201\215 B\201\215\201\216 B\201\216\201\217 B\201\217\201\220 B\201	\220\201\221 B\201\350 \221\201\222 B\326\222\201\223 B\326\223\201\224 B\201\350 \224\201\225 B\201\350 \225\201\226 B\326\226\201\227 B\201\350 \227\201\230 B\201\350 \230\201\231 B\201\350 \231\201\232 B\201\350 \232\201\233 B\201\350 \233\201\234 B\201\350 \234\201\235 B\326\235\201\236 B\201\350 \236\201\237 B\201\350 \237\201\240 B\326\240\201\241 B\201\n\241\201\242 B\201\350 \242\201\243 B\326\243\201\244 B\201\244\201\245 B\201\f\245\201\246 B\201\246\201\247 B\326\247\201\250 B\201\250\201\255 B\201\251\326\211\252\253\201\251G\201_\201\"\254\251\203Z\251@@\252\251@A\253\251A\251\201\351\252\254\"\201\201\201\201\253\"\"\"\210\202&\254,\255\201\256 B\201\256\201\257 B\201\257\201\260 B\201\354 \260\201\261 B\201\261\201\262 B\366\262\201\263 B\201\263\201\264 B\201\264\201\265 B\201\265\201\266 B\201\354 \266\201\267 B\201\354 \267\201\270 B\201\270\201\271 B\201\271\201\272 B\201\272\201\273 B\326\273\201\274 B\326\274\201\300 B\201\201EC\204\345\346!\210C\347N\211F\204\345\350C\"\210\351FEP!*!\205L\201\211EEC\2042\345\346!\210C\347N\211F\204B\345\350C\"\210\351FEP!*J)\275\201 \326\201\201!\275\"\"\276\201 \326\201\201\"\275\"\"\277\201#\201$\201%\201&\326\201%\201'\277\"\"C\276\"\201(\"\201)Q+\300\201\301 B\326\301\201\302 B\326\302\201\303 B\201\354 \303\201\304 B\326\304\201\305 B\326\305\201\306 B\201*\306\201\307 B\201\354 \307\201\310 B\326\310\201\311 B\326\311\201\312 B\326\312\201\313 B\326\313\201\314 B\326\314\201\315 B\326\315\201\316 B\326\316\201\317 B\201+\317\201\320 B\201\320\201\321 B\201\354 \321\201\322 B\326\322\201\323 B\326\323\201\324 B\326\324\201\325 B\326\325\201\326 B\201,\211\326\202\211\312A\201-\211\327\326\330\211\331\205\210\331@\211\330@B\330@\201.\330A@!L\210\331A\211\331\204h\326+0\202\303\332B\203\270\201/\2010BA\203\261\2011\2012\310\2013\333$\202\262\332\332$\202\302\2014\332@\332A\")\210+\2015\310!\210\2016\334!\210\2017\2018\2019\"\210\201: \207" [protobuf-mode-syntax-table major-mode mode-name protobuf-mode-abbrev-table local-abbrev-table abbrev-mode kill-all-local-variables set-syntax-table protobuf-mode "Protocol-Buffers" t use-local-map c-initialize-cc-mode fboundp c-make-emacs-variables-local make-local-variable comment-start comment-end comment-start-skip comment-end-can-be-escaped beginning-of-defun-function end-of-defun-function nil (error) 5\.33\.1 "// " "" "\\(//+\\|/\\*+\\)\\s *" c-beginning-of-defun c-end-of-defun c++-template-syntax-table c-no-parens-syntax-table c-identifier-syntax-modifications ((95 . "w") (36 . "w")) c-identifier-syntax-table copy-syntax-table #17="mode-syntax-table" error "Not inside a CC Mode based mode" c-mode-prefix "%S has no mode prefix known to `c-mode-symbol'" intern modify-syntax-entry c-get-state-before-change-functions c-before-font-lock-functions (c-depropertize-new-text c-change-expand-fl-region) c-before-context-fontification-functions c-context-expand-fl-region c-at-vsemi-p-fn c-vsemi-status-unknown-p-fn c-has-bitfields c-has-quoted-numbers c-modified-constant c-symbol-start "[[:alpha:]_]" c-symbol-chars "[:alnum:]_$" c-symbol-char-key "[[:alnum:]_$]+" c-symbol-key "[[:alpha:]_][[:alnum:]_$]*" c-nonsymbol-chars "^[:alnum:]_$" c-opt-identifier-concat-key protobuf-mode-map source-eval current-var c-buffer-is-cc-mode c-version-sym suffix mode-prefix mod mods table fs c-identifier-start c-identifier-key c-string-escaped-newlines c-multiline-string-start-char c-opt-cpp-symbol c-opt-cpp-prefix c-anchored-cpp-prefix c-opt-cpp-start c-opt-cpp-macro-define c-opt-cpp-macro-define-start c-opt-cpp-macro-define-id c-cpp-expr-intro-re c-cpp-expr-functions-key c-overloadable-operators-regexp c-opt-op-identifier-prefix c-ambiguous-overloadable-or-identifier-prefix-re c-nonsymbol-token-regexp c-assignment-op-regexp c-arithmetic-op-regexp c-:$-multichar-token-regexp c-<>-multichar-token-regexp c-<-op-cont-regexp c->-op-cont-regexp c->-op-without->-cont-regexp c-multichar->-op-not->>-regexp c-:-op-cont-regexp c-stmt-delim-chars c-stmt-delim-chars-with-comma c-pack-key c-auto-ops-re c-haskell-op-re c-pre-start-tokens c-pre-lambda-tokens-re c-line-comment-starter c-block-comment-starter c-block-comment-ender c-block-comment-ender-regexp c-comment-start-regexp c-block-comment-start-regexp c-line-comment-start-regexp c-literal-start-regexp c-doc-comment-start-regexp c-block-comment-is-default c-syntactic-ws-start c-syntactic-ws-end c-syntactic-eol c-paragraph-start c-paragraph-separate c-return-key c-primitive-type-key c-typedef-key c-typeof-key c-template-typename-key c-type-prefix-key c-opt-type-modifier-prefix-key c-opt-type-modifier-key c-opt-type-component-key c-type-decl-suffix-ws-ids-key c-class-key c-brace-list-key c-after-brace-list-key c-recognize-post-brace-list-type-p c-other-decl-block-key c-other-decl-block-key-in-symbols-alist c-typedef-decl-key c-decl-hangon-key c-prefix-spec-kwds-re c-specifier-key c-not-decl-init-keywords c-not-primitive-type-keywords-regexp c-protection-key c-post-protection-token c-opt-block-decls-with-vars-key c-postfix-decl-spec-key c-make-top-level-key c-colon-type-list-re c-paren-nontype-key c-opt-<>-sexp-key c-inside-<>-type-key c-block-stmt-1-key c-block-stmt-1-2-key c-block-stmt-2-key c-opt-block-stmt-key c-simple-stmt-key c-paren-stmt-key c-opt-asm-stmt-key c-case-kwds-regexp c-label-kwds-regexp c-opt-inexpr-brace-list-key c-brace-stack-thing-key c-brace-stack-no-semi-key c-decl-block-key c-opt-bitfield-key c-keywords-regexp alist kwd lang-const-list obarray c-keywords-obarray c-regular-keywords-regexp c-primary-expr-regexp c-decl-start-colon-kwd-re c-decl-prefix-re c-decl-start-re c-decl-prefix-or-start-re c-cast-parens c-block-prefix-charset c-type-decl-prefix-key c-type-decl-operator-prefix-key c-type-decl-suffix-key c-after-suffixed-type-decl-key c-after-suffixed-type-maybe-decl-key c-opt-type-concat-key c-opt-type-suffix-key extra-types regexp-strings plain-strings c-known-type-key c-special-brace-lists c-recognize-knr-p c-pre-id-bracelist-key c-recognize-typeless-decls c-recognize-<>-arglists c-<>-notable-chars-re c-enum-clause-introduction-re c-enums-contain-decls c-recognize-paren-inits c-recognize-paren-inexpr-blocks c-opt-<>-arglist-start c-opt-<>-arglist-start-in-paren c-opt-postfix-decl-spec-key c-recognize-colon-labels c-label-prefix-re c-nonlabel-token-key c-nonlabel-token-2-key c-opt-extra-label-key c-opt-friend-key c-opt-method-key c-type-decl-end-used c-maybe-decl-faces init var-init --dolist-tail-- err c-version protobuf-menu "\\(\\.\\)" "\\([[:alpha:]_][[:alnum:]_$]*\\)\\(\\(\\s \\|[\n]\\)*\\(\\.\\)\\(\\s \\|[\n]\\)*\\([[:alpha:]_][[:alnum:]_$]*\\)\\)*" "#" "\\s *#\\s *" "^\\s *\\(#\\)\\s *" "\\s *#\\s *\\([[:alnum:]]+\\)" "define" "\\s *#\\s *define[ 	]+\\(\\(\\sw\\|_\\)+\\)\\(([^)]*)\\)?\\([ 	]\\|\\\\\n\\)*" "\\s *#\\s *define[ 	]+\\(\\sw\\|_\\)+" "\\s *#\\s *\\(\\(?:\\(?:el\\)?if\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:defined\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\<\\>\\)" "\\(?:!=\\|##\\|%=\\|&[&=]\\|\\*[/=]\\|\\+[+=]\\|-[=>-]\\|/[*/=]\\|<\\(?:<=\\|[<=]\\)\\|==\\|>\\(?:>=\\|[=>]\\)\\|\\^=\\||[=|]\\|[!#%&*+,./:-?|~^-]\\)" "=\\([^=]\\|$\\)\\|\\(?:\\(?:<<\\|>>\\|[%&*+/|^-]\\)=\\)" "\\(?:!=\\|%=\\|&[&=]\\|\\*=\\|\\+=\\|-=\\|/=\\|<\\(?:<=\\|[<=]\\)\\|==\\|>\\(?:>=\\|[=>]\\)\\|\\^=\\||[=|]\\|[%&*+/<=>|^-]\\)" "\\<\\>" "\\(?:->\\|<\\(?:<=\\|[<=]\\)\\|>\\(?:>=\\|[=>]\\)\\)" "\\(?:<=\\|[<=]\\)" "\\(?:>=\\|[=>]\\)" "=" "\\(?:->\\|>\\(?:>?=\\)\\)" "^;{}?:" "^;,{}?:" (";" "{" "}") "\\(?:!=\\|%=\\|&[&=]\\|\\*[/=]\\|\\+[+=]\\|-[=-]\\|/[*/=]\\|<\\(?:<=\\|[<=]\\)\\|==\\|>\\(?:>=\\|[=>]\\)\\|\\^=\\||[=|]\\|[!%&(*+,/:-?[{-~^-]\\)" "//" "/*" "*/" "\\*/" "\\(?:/[*/]\\)\\|\\s!" "/\\*" "\\(?:/[*/]\\)\\|\\s!\\|\"|" "\\s \\|\\(?:/[*/]\\|[\n#]\\)\\|\\\\[\n]\\|\\s!" "\\s \\|[\n/]\\|\\s!" "\\s *\\(/\\*[^*\n]*\\(\\*+[^*\n/][^*\n]*\\)*\\*+/\\s *\\)*\\(//\\|/\\*[^*\n]*\\(\\*+[^*\n/][^*\n]*\\)*$\\|\\\\$\\|$\\)" "$" "\\(\\(?:return\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:b\\(?:ool\\|ytes\\)\\|double\\|f\\(?:ixed\\(?:32\\|64\\)\\|loat\\)\\|group\\|int\\(?:32\\|64\\)\\|s\\(?:fixed\\(?:32\\|64\\)\\|int\\(?:32\\|64\\)\\|tring\\)\\|uint\\(?:32\\|64\\)\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:typedef\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:enum\\|\\(?:messag\\|servic\\)e\\)\\)\\([^[:alnum:]_$]\\|$\\)" mapcar #[#18=(elt) "\211\301\230\203 \302\202 \303\304P!B\207" [elt #19="extern" inextern-lang intern #20="in"] 4] "\\(\\(?:e\\(?:num\\|xtend\\)\\|import\\|message\\|option\\(?:al\\)?\\|package\\|r\\(?:e\\(?:peated\\|quired\\|turns\\)\\|pc\\)\\|service\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:case\\|default\\|extensions\\|false\\|max\\|re\\(?:served\\|turn\\)\\|t\\(?:o\\|rue\\|ypedef\\)\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:case\\|default\\|e\\(?:num\\|xten\\(?:d\\|sions\\)\\)\\|false\\|import\\|m\\(?:ax\\|essage\\)\\|option\\(?:al\\)?\\|package\\|r\\(?:e\\(?:peated\\|quired\\|served\\|turns?\\)\\|pc\\)\\|service\\|t\\(?:o\\|rue\\|ypedef\\)\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:case\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:\\(?:enum\\|\\(?:messag\\|servic\\)e\\)\\>\\|[),:;{}]\\)\\)" "\\(\\(?:enum\\>\\|message\\>\\|service\\>\\|[{}]\\)\\)" "\\(\\(?:b\\(?:ool\\|ytes\\)\\|case\\|d\\(?:efault\\|ouble\\)\\|e\\(?:num\\|xten\\(?:d\\|sions\\)\\)\\|f\\(?:alse\\|ixed\\(?:32\\|64\\)\\|loat\\)\\|group\\|i\\(?:mport\\|nt\\(?:32\\|64\\)\\)\\|m\\(?:ax\\|essage\\)\\|option\\(?:al\\)?\\|package\\|r\\(?:e\\(?:peated\\|quired\\|served\\|turns?\\)\\|pc\\)\\|s\\(?:ervice\\|fixed\\(?:32\\|64\\)\\|int\\(?:32\\|64\\)\\|tring\\)\\|t\\(?:o\\|rue\\|ypedef\\)\\|uint\\(?:32\\|64\\)\\)\\)\\([^[:alnum:]_$]\\|$\\)" (("case" c-case-kwds) ("false" c-constant-kwds) ("true" c-constant-kwds) (#16="group" c-type-start-kwds c-primitive-type-kwds) (#15="bytes" c-type-start-kwds c-primitive-type-kwds) (#14="string" c-type-start-kwds c-primitive-type-kwds) (#13="bool" c-type-start-kwds c-primitive-type-kwds) (#12="sfixed64" c-type-start-kwds c-primitive-type-kwds) (#11="sfixed32" c-type-start-kwds c-primitive-type-kwds) (#10="fixed64" c-type-start-kwds c-primitive-type-kwds) (#9="fixed32" c-type-start-kwds c-primitive-type-kwds) (#8="sint64" c-type-start-kwds c-primitive-type-kwds) (#7="sint32" c-type-start-kwds c-primitive-type-kwds) (#6="uint64" c-type-start-kwds c-primitive-type-kwds) (#5="uint32" c-type-start-kwds c-primitive-type-kwds) (#4="int64" c-type-start-kwds c-primitive-type-kwds) (#3="int32" c-type-start-kwds c-primitive-type-kwds) (#2="float" c-type-start-kwds c-primitive-type-kwds) (#1="double" c-type-start-kwds c-primitive-type-kwds) ("typedef" c-typedef-kwds) ("import" c-other-decl-kwds c-prefix-spec-kwds) ("package" c-other-decl-kwds c-prefix-spec-kwds) ("reserved" c-type-list-kwds) ("to" c-type-list-kwds) ("extensions" c-type-list-kwds) ("return" c-return-kwds) ("returns" c-prefix-spec-kwds c-typeless-decl-kwds) ("option" c-prefix-spec-kwds c-typeless-decl-kwds) ("rpc" c-prefix-spec-kwds c-typeless-decl-kwds) ("extend" c-prefix-spec-kwds c-typeless-decl-kwds) ("service" c-typedef-decl-kwds c-class-decl-kwds c-prefix-spec-kwds c-flat-decl-block-kwds) ("enum" c-typedef-decl-kwds c-class-decl-kwds c-prefix-spec-kwds c-flat-decl-block-kwds) ("message" c-typedef-decl-kwds c-class-decl-kwds c-prefix-spec-kwds c-flat-decl-block-kwds) ("repeated" c-prefix-spec-kwds c-modifier-kwds) ("optional" c-prefix-spec-kwds c-modifier-kwds) ("required" c-prefix-spec-kwds c-modifier-kwds) ("max" c-other-kwds) ("default" c-other-kwds)) make-vector 2 0 setplist apply nconc #[#21=(lang-const) "\301D\207" [lang-const t] 2] "\\(\\(?:case\\|default\\|e\\(?:num\\|xten\\(?:d\\|sions\\)\\)\\|import\\|m\\(?:ax\\|essage\\)\\|option\\(?:al\\)?\\|package\\|r\\(?:e\\(?:peated\\|quired\\|served\\|turns?\\)\\|pc\\)\\|service\\|t\\(?:o\\|ypedef\\)\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(\\<\\>\\)\\|\\(?:\\+\\+\\|--\\|[(+-]\\)\\)\\|[[:alpha:]_]\\|\\.?[0-9]\\|[!#~]\\|\\s\"\\|\\s|" "\\([{};,]+\\)" (40) "^!\"%--/:-@[-^`{-~" "\\((\\)" "{" "\\({\\)\\|[;,]" boundp #22="font-lock-extra-types" delq #[#23=(re) "\301\302\"\205 \207" [re string-match #24="[][.*+?^$\\]"] 3] #[#25=(re) "\301\302\"?\205	 \207" [re string-match #26="[][.*+?^$\\]"] 3] #27="\\<\\(" c-concat-separated append c-make-keywords-re (#1# #2# #3# #4# #5# #6# #7# #8# #9# #10# #11# #12# #13# #14# #15# #16#) #28="\\|" #29="\\)\\>" "[<;{},|+&->)]" "\\([{};]+\\)" (list nil font-lock-type-face c-reference-face-name font-lock-keyword-face) ((comment-start (c-lang-const comment-start)) (comment-end (c-lang-const comment-end)) (comment-start-skip (c-lang-const comment-start-skip)) (comment-end-can-be-escaped (c-lang-const comment-end-can-be-escaped)) (beginning-of-defun-function (c-lang-const beginning-of-defun-function)) (end-of-defun-function (c-lang-const end-of-defun-function)) (c++-template-syntax-table (and (c-lang-const c++-make-template-syntax-table) (funcall (eval (c-lang-const c++-make-template-syntax-table)))) nil) (c-no-parens-syntax-table (and (c-lang-const c-make-no-parens-syntax-table) (funcall (eval (c-lang-const c-make-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 #17#))) (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-has-quoted-numbers (c-lang-const c-has-quoted-numbers) "Whether the language has numbers quoted like 4'294'967'295.") (c-modified-constant (c-lang-const c-modified-constant) "Regexp that matches a “modified” constant literal such as \"L\\='a\\='\",\na “long character”.  In particular, this recognizes forms of constant\nwhich `c-backward-sexp' needs to be called twice to move backwards over.") (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-char-key (c-lang-const c-symbol-char-key) "Regexp matching a sequence of at least one identifier character.") (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-cpp-expr-functions-key (c-lang-const c-cpp-expr-functions-key) nil) (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-ambiguous-overloadable-or-identifier-prefix-re (c-lang-const c-ambiguous-overloadable-or-identifier-prefix-re) nil) (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-arithmetic-op-regexp (c-lang-const c-arithmetic-op-regexp) nil) (c-:$-multichar-token-regexp (c-lang-const c-:$-multichar-token-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->-op-without->-cont-regexp (c-lang-const c->-op-without->-cont-regexp) nil) (c-multichar->-op-not->>-regexp (c-lang-const c-multichar->-op-not->>-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-pack-key (c-lang-const c-pack-key) nil) (c-auto-ops-re (c-lang-const c-auto-ops-re) nil) (c-haskell-op-re (c-lang-const c-haskell-op-re) nil) (c-pre-start-tokens (c-lang-const c-pre-start-tokens) "List of operators following which an apparent declaration (e.g.\n\"t1 *fn (t2 *b);\") is most likely to be an actual declaration\n(as opposed to an arithmetic expression).") (c-pre-lambda-tokens-re (c-lang-const c-pre-lambda-tokens-re) 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-block-comment-starter (c-lang-const c-block-comment-starter) "String that starts block comments, or nil if such don't exist.\nBlock comments are ended by `c-block-comment-ender', which is assumed\nto be set if this is.  At least one of `c-line-comment-starter' and\nthis 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-block-comment-ender (c-lang-const c-block-comment-ender) "String that ends block comments, or nil if such don't exist.\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-block-comment-ender-regexp (c-lang-const c-block-comment-ender-regexp) nil) (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-block-comment-is-default (c-lang-const c-block-comment-is-default) "Non-nil when the default comment style is block comment.") (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-return-key (c-lang-const c-return-key) nil) (c-primitive-type-key (c-lang-const c-primitive-type-key) nil) (c-typedef-key (c-lang-const c-typedef-key) nil) (c-typeof-key (c-lang-const c-typeof-key) nil) (c-template-typename-key (c-lang-const c-template-typename-key) nil) (c-type-prefix-key (c-lang-const c-type-prefix-key) nil) (c-opt-type-modifier-prefix-key (c-lang-const c-opt-type-modifier-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-type-decl-suffix-ws-ids-key (c-lang-const c-type-decl-suffix-ws-ids-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-after-brace-list-key (c-lang-const c-after-brace-list-key) nil) (c-recognize-post-brace-list-type-p (c-lang-const c-recognize-post-brace-list-type-p) "Set to t when we recognize a colon and then a type after an enum,\ne.g., enum foo : int { A, B, C };") (c-other-decl-block-key (c-lang-const c-other-decl-block-key) nil) (c-other-decl-block-key-in-symbols-alist (mapcar (lambda #18# (cons elt (if (string= elt #19#) 'inextern-lang (intern (concat #20# 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-protection-key (c-lang-const c-protection-key) nil) (c-post-protection-token (c-lang-const c-post-protection-token) "The token which (may) follow a protection keyword,\ne.g. the \":\" in C++ Mode's \"public:\".  nil if there is no such token.") (c-opt-block-decls-with-vars-key (c-lang-const c-opt-block-decls-with-vars-key) nil) (c-postfix-decl-spec-key (c-lang-const c-postfix-decl-spec-key) nil) (c-make-top-level-key (c-lang-const c-make-top-level-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-paren-nontype-key (c-lang-const c-paren-nontype-key) nil) (c-opt-<>-sexp-key (c-lang-const c-opt-<>-sexp-key) nil) (c-inside-<>-type-key (c-lang-const c-inside-<>-type-key) nil) (c-block-stmt-1-key (c-lang-const c-block-stmt-1-key) nil) (c-block-stmt-1-2-key (c-lang-const c-block-stmt-1-2-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-brace-stack-thing-key (c-lang-const c-brace-stack-thing-key) nil) (c-brace-stack-no-semi-key (c-lang-const c-brace-stack-no-semi-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 #21# (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-start-colon-kwd-re (c-lang-const c-decl-start-colon-kwd-re) "Regexp matching a keyword that is followed by a colon, where\n  the whole construct can precede a declaration.\n  E.g. \"public:\" in C++.") (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-operator-prefix-key (c-lang-const c-type-decl-operator-prefix-key) "Regexp matching any declarator operator which isn't a keyword\nthat might precede the identifier in a declaration, e.g. the\n\"*\" in \"char *argv\".  The end of the first submatch is taken\nas the end of the operator.  Identifier syntax is in effect when\nthis is matched (see `c-identifier-syntax-table').") (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 #22#)) (c-mode-var "font-lock-extra-types"))) (regexp-strings (delq nil (mapcar (lambda #23# (when (string-match #24# re) re)) extra-types))) (plain-strings (delq nil (mapcar (lambda #25# (unless (string-match #26# re) re)) extra-types)))) (concat #27# (c-concat-separated (append (list (c-make-keywords-re nil (append (c-lang-const c-primitive-type-kwds) plain-strings))) regexp-strings) #28#) #29#)) 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-pre-id-bracelist-key (c-lang-const c-pre-id-bracelist-key) "A regexp matching tokens which, preceding an identifier, signify a bracelist.\n") (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-<>-notable-chars-re (c-lang-const c-<>-notable-chars-re) "A regexp matching any single character notable inside a <...> construct.\nThis must include \"<\" and \">\", and should include \",\", and\nany character which cannot be valid inside such a construct.\nThis is used in `c-forward-<>-arglist-recur' to try to detect\nsequences of tokens which cannot be a template/generic construct.\nWhen \"(\" is present, that defun will attempt to parse a\nparenthesized expression inside the template.  When \")\" is\npresent it will treat an unbalanced closing paren as a sign of\nthe invalidity of the putative template construct.") (c-enum-clause-introduction-re (c-lang-const c-enum-clause-introduction-re) nil) (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) (c-maybe-decl-faces (c-lang-const c-maybe-decl-faces) "List of faces that might be put at the start of a type when\n`c-font-lock-declarations' runs.  This must be evaluated (with `eval') at\nruntime to get the actual list of faces.  This ensures that face name\naliases in Emacs are resolved.")) eval message "Eval error in the `c-lang-defvar' or `c-lang-setvar' for `%s'%s: %S" format " (fallback source eval - %s compiled with CC Mode %s but loaded with %s)" "5.33.1" signal c-common-init easy-menu-add run-mode-hooks c-mode-common-hook protobuf-mode-hook c-update-modeline] 9 (#$ . 11612) nil])
(provide 'protobuf-mode)
