;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\306\307\310\311\312\313%\207" [require compile cc-mode cc-langs treesit c-ts-common custom-declare-group csharp nil "Major mode for editing C# code." :group prog-mode] 6)#@39 Regex describing an identifier in C#.
(defconst csharp--regex-identifier "[A-Za-z][A-Za-z0-9_]*" (#$ . 332))#@37 Regex matching an identifier in C#.
(defconst csharp--regex-identifier-matcher (concat "\\(" csharp--regex-identifier "\\)") (#$ . 446))#@43 Regex describing a type identifier in C#.
(defconst csharp--regex-type-name "[A-Z][A-Za-z0-9_]*" (#$ . 588))#@41 Regex matching a type identifier in C#.
(defconst csharp--regex-type-name-matcher (concat "\\(" csharp--regex-type-name "\\)") (#$ . 702))#@72 Regex matching identifiers after a using or namespace
    declaration.
(defconst csharp--regex-using-or-namespace (concat "^using\\|namespace\\s *" csharp--regex-type-name-matcher) (#$ . 846))
(c-add-language 'csharp-mode 'java-mode)
(defalias 'csharp--make-mode-syntax-table #[0 "\300 \301!\210\302\303\304#\210\207" [make-syntax-table c-populate-syntax-table modify-syntax-entry 64 "_"] 5])#@33 Workaround for Emacs bug#57065.
(defvar csharp--make-mode-syntax-table 'csharp--make-mode-syntax-table (#$ . 1246))
(byte-code "\300\301\302\303BC\304#\210\300\305\306\307BC\310#\210\300\311\312\313BC\314#\210\300\315\316\317BC\320#\210\300\321\322\323BC\324#\210\300\325\326\327BC\330#\210\300\331\332\333BC\334#\210\300\335\336\337BC\340#\210\300\341\342\343BC\344#\210\300\345\346\347BC\350#\210\300\351\352\353BC\354#\210\300\355\356\357BC\360#\210\300\361\362\363BC\364#\210\300\365\366\367BC\370#\210\300\371\372\373BC\374#\210\300\375\376\377BC\201@ #\210\300\201A \201B \201C BC\201D #\210\300\201E \201F \201G BC\201H #\210\300\201I \201J \201K BC\201L #\210\300\201M \201N \201O BC\201P #\210\300\201Q \201R \201S BC\201T #\210\300\201U \201V \201W BC\201X #\210\300\201Y \201Z \201[ BC\201\\ #\210\300\201] \201^ \201_ BC\201` #\210\300\201a \201b \201c BC\201d #\210\300\201e \201f \201g BC\201h #\210\300\201i \201j \201k BC\201l #\210\300\201m \201n \201o BC\201p #\207" [c-define-lang-constant c-make-mode-syntax-table (csharp-mode) #[0 "\300\207" [csharp--make-mode-syntax-table] 1] (cc-langs) c-identifier-syntax-modifications (csharp-mode) #[0 "\300\301\302\303\"B\207" [(64 . "w") c-get-lang-constant c-identifier-syntax-modifications (cc-langs)] 4] (cc-langs) c-symbol-start (csharp-mode) #[0 "\301\302Q\207" [c-alpha "[" "_@]"] 3] (cc-langs) c-opt-type-suffix-key (csharp-mode) #[0 "\300\301\302\303\"\304Q\207" ["\\(\\[" c-get-lang-constant c-simple-ws (cc-langs) "*\\]\\|\\?\\)"] 4] (cc-langs) c-identifier-ops (csharp-mode) #[0 "\300\207" [((left-assoc "."))] 1] (cc-langs) c-overloadable-operators (csharp-mode) #[0 "\300\207" [("+" "-" "*" "/" "%" "&" "|" "^" "<<" ">>" "==" "!=" ">" "<" ">=" "<=")] 1] (cc-langs) c-multiline-string-start-char (csharp-mode) #[0 "\300\207" [64] 1] (cc-langs) c-ml-string-opener-re (csharp-mode) #[0 "\300\207" [#1="\\(\\(?:@\\$?\\)\\(\"\\)\\)"] 1 #1#] (cc-langs) c-ml-string-max-opener-len (csharp-mode) #[0 "\300\207" [3] 1] (cc-langs) c-ml-string-max-closer-len (csharp-mode) #[0 "\300\207" [2] 1] (cc-langs) c-ml-string-any-closer-re (csharp-mode) #[0 "\300\207" [#2="\\(?:\"\"\\)*\\(\\(\"\\)\\)\\(?:[^\"]\\|\\'\\)"] 1 #2#] (cc-langs) c-ml-string-back-closer-re (csharp-mode) #[0 "\300\207" [#3="\\(?:\\`\\|[^\"]\\)\"*"] 1 #3#] (cc-langs) c-type-prefix-kwds (csharp-mode) #[0 "\300\207" [("class" "interface" "struct")] 1] (cc-langs) c-class-decl-kwds (csharp-mode) #[0 "\300\207" [("class" "interface" "struct")] 1] (cc-langs) c-primitive-type-kwds (csharp-mode) #[0 "\300\207" [("bool" "byte" "sbyte" "char" "decimal" "double" "float" "int" "uint" "long" "ulong" "short" "ushort" "void" "object" "string" "var")] 1] (cc-langs) c-other-decl-kwds (csharp-mode) #[0 "\300\207" [nil] 1] (cc-langs) c-type-list-kwds (csharp-mode) #[0 "\300\207" [nil] 1] (cc-langs) c-other-block-decl-kwds (csharp-mode) #[0 "\300\207" [nil] 1] (cc-langs) c-return-kwds (csharp-mode) #[0 "\300\207" [("return")] 1] (cc-langs) c-typedef-kwds (csharp-mode) #[0 "\300\207" [nil] 1] (cc-langs) c-typeof-kwds (csharp-mode) #[0 "\300\207" [("typeof" "is" "as")] 1] (cc-langs) c-type-modifier-prefix-kwds (csharp-mode) #[0 "\300\207" [("volatile")] 1] (cc-langs) c-type-modifier-kwds (csharp-mode) #[0 "\300\207" [("readonly" "new")] 1] (cc-langs) c-brace-list-decl-kwds (csharp-mode) #[0 "\300\207" [("enum" "new")] 1] (cc-langs) c-recognize-post-brace-list-type-p (csharp-mode) #[0 "\300\207" [t] 1] (cc-langs) c-ref-list-kwds (csharp-mode) #[0 "\300\207" [nil] 1] (cc-langs) c-using-kwds (csharp-mode) #[0 "\300\207" [("using")] 1] (cc-langs) c-equals-type-clause-kwds (csharp-mode) #[0 "\300\207" [("using")] 1] (cc-langs)] 4)#@22 

(fn &optional POS)
(defalias 'csharp-at-vsemi-p #[256 "\211\203 \211b\210\212\300 \210\301 \210\302\303!)\207" [beginning-of-line c-forward-sws looking-at "using\\s *("] 3 (#$ . 4917)])
(byte-code "\300\301\302\303BC\304#\207" [c-define-lang-constant c-at-vsemi-p-fn (csharp-mode) #[0 "\300\207" [csharp-at-vsemi-p] 1] (cc-langs)] 4)
(defalias 'csharp-vsemi-status-unknown #[0 "\300\207" [t] 1])
(byte-code "\301\302\303\304BC\305#\210\301\306\307\310BC\311#\210\301\312\313\314BC\315#\210\301\316\317\320BC\321#\210\301\322\323\324BC\325#\210\301\326\327\330BC\331#\210\301\332\333\334BC\335#\210\301\336\337\340BC\341#\210\301\342\343\344BC\345#\210\301\346\347\350BC\351#\210\301\352\353\354BC\355#\210\301\356\357\360BC\361#\210\301\362\363\364BC\365#\210\301\366\367\370BC\371#\210\301\372\373\374BC\375#\210\301\376\377\201@ BC\201A #\210\301\201B \201C \201D BC\201E #\210\301\201F \201G \201H BC\201I #\210\301\201J \201K \201L BC\201M #\210\301\201N \201O \201P BC\201Q #\210\301\201R \201S \201T BC\201U #\210\301\201V \201W \201X BC\201Y #\210\301\201Z \201[ \201\\ BC\201] #\210\201^ \201_ \201` \"\210;\204)\201a \236\204)\201b B\301\207" [c-default-style c-define-lang-constant c-vsemi-status-unknown-p-fn (csharp-mode) #[0 "\300\207" [csharp-vsemi-status-unknown-p] 1] (cc-langs) c-modifier-kwds (csharp-mode) #[0 "\300\207" [("abstract" "default" "final" "native" "private" "protected" "public" "partial" "internal" "readonly" "static" "event" "transient" "volatile" "sealed" "ref" "out" "virtual" "implicit" "explicit" "fixed" "override" "params" "async" "await" "extern" "unsafe" "get" "set" "this" "const" "delegate")] 1] (cc-langs) c-other-kwds (csharp-mode) #[0 "\300\207" [("select" "from" "where" "join" "in" "on" "equals" "into" "orderby" "ascending" "descending" "group" "when" "let" "by" "namespace")] 1] (cc-langs) c-colon-type-list-kwds (csharp-mode) #[0 "\300\207" [("class" "struct" "interface")] 1] (cc-langs) c-block-stmt-1-kwds (csharp-mode) #[0 "\300\207" [("do" "else" "finally" "try")] 1] (cc-langs) c-block-stmt-1-2-kwds (csharp-mode) #[0 "\300\207" [("try")] 1] (cc-langs) c-block-stmt-2-kwds (csharp-mode) #[0 "\300\207" [("for" "if" "switch" "while" "catch" "foreach" "fixed" "checked" "unchecked" "using" "lock")] 1] (cc-langs) c-simple-stmt-kwds (csharp-mode) #[0 "\300\207" [("break" "continue" "goto" "throw" "return" "yield")] 1] (cc-langs) c-constant-kwds (csharp-mode) #[0 "\300\207" [("true" "false" "null" "value")] 1] (cc-langs) c-primary-expr-kwds (csharp-mode) #[0 "\300\207" [("this" "base" "operator")] 1] (cc-langs) c-inexpr-class-kwds (csharp-mode) #[0 "\300\207" [nil] 1] (cc-langs) c-class-decl-kwds (csharp-mode) #[0 "\300\207" [("class" "struct" "interface")] 1] (cc-langs) c-std-abbrev-keywords (csharp-mode) #[0 "\300\301\302\303\"\304\"\207" [append c-get-lang-constant c-std-abbrev-keywords (cc-langs) ("catch" "finally")] 4] (cc-langs) c-decl-prefix-re (csharp-mode) #[0 "\300\207" [#1="\\([{}(;,<]+\\)"] 1 #1#] (cc-langs) c-recognize-typeless-decls (csharp-mode) #[0 "\300\207" [t] 1] (cc-langs) c-recognize-<>-arglists (csharp-mode) #[0 "\300\207" [t] 1] (cc-langs) c-opt-cpp-prefix (csharp-mode) #[0 "\300\207" [#2="\\s *#\\s *"] 1 #2#] (cc-langs) c-opt-cpp-macro-define (csharp-mode) #[0 "\300\301\302\"\205 \303\207" [c-get-lang-constant c-opt-cpp-prefix (cc-langs) "define"] 3] (cc-langs) c-cpp-message-directives (csharp-mode) #[0 "\300\207" [("error" "warning" "region")] 1] (cc-langs) c-cpp-expr-directives (csharp-mode) #[0 "\300\207" [("if" "elif")] 1] (cc-langs) c-other-op-syntax-tokens (csharp-mode) #[0 "\300\301\302\303\"B\207" ["#" c-get-lang-constant c-other-op-syntax-tokens (cc-langs)] 4] (cc-langs) c-line-comment-starter (csharp-mode) #[0 "\300\207" [#3="//"] 1 #3#] (cc-langs) c-doc-comment-start-regexp (csharp-mode) #[0 "\300\207" [#4="///"] 1 #4#] (cc-langs) c-add-style "csharp" ("java" (c-basic-offset . 4) (c-comment-only-line-offset 0 . 0) (c-offsets-alist (inline-open . 0) (arglist-intro . +) (arglist-close . 0) (inexpr-class . 0) (case-label . +) (cpp-macro . c-lineup-dont-change) (substatement-open . 0))) csharp-mode (csharp-mode . "csharp")] 4)#@23 

(fn FONT-LOCK-FACE)
(defalias 'csharp--color-forwards #[257 "\300\301\224b\210\300v\210\300f\302=\206 \300f\303=?\205@ \300u\210\304 \210`\262\305\306\307\"\300w\301V\205@ \310`\311\"?\205@ \312`\311$\210\304 \210\202 \207" [nil 0 59 123 c-forward-sws c-get-lang-constant c-symbol-chars (cc-langs) get-text-property face put-text-property] 7 (#$ . 9080)])
(byte-code "\300\301\302\303BC\304#\210\300\305\306\307BC\310#\210\311\312\313\314\315DD\316\317\320%\210\311\321\313\314\322DD\323\324\325\326#\317\327\330\331&\207" [c-define-lang-constant c-basic-matchers-before (csharp-mode) #[0 "\301\302\303\304\305\306\"\205 \307\310\304\305\311\"\"\312\313\314\315Q\316BBBC\262\317\304\320\321\"P\322B\323\324\"C\325BB\"BB\207" [csharp--regex-using-or-namespace ("\\s|" 0 font-lock-warning-face t nil) c-font-lock-invalid-single-quotes append c-get-lang-constant c-constant-kwds (cc-langs) c-make-keywords-re nil (cc-langs) eval list "\\<\\(" "\\)\\>" (1 c-constant-face-name) "\\<" c-regular-keywords-regexp (cc-langs) (1 font-lock-keyword-face) c-make-font-lock-search-function ((csharp--color-forwards font-lock-variable-name-face) nil (goto-char (match-end 0))) ((eval list "\\(!\\)[^=]" 1 c-negation-char-face-name) (eval list (concat "\\<new\\> *" csharp--regex-type-name-matcher) 1 font-lock-type-face) (eval list (concat "\\[" csharp--regex-type-name-matcher "\\][^;]") 1 font-lock-variable-name-face t) (eval list "\\([A-Za-z0-9_]+\\)\\(<[a-zA-Z0-9, ]+>\\)?(" 1 font-lock-function-name-face) (eval list (concat "\\(\\<nameof\\>\\) *(") 1 font-lock-function-name-face) (eval list (concat "\\<nameof\\> *( *" csharp--regex-identifier-matcher " *) *") 1 font-lock-variable-name-face) (eval list (concat "\\<catch\\> *( *" csharp--regex-type-name-matcher " *) *") 1 font-lock-type-face))] 9] (cc-fonts) c-basic-matchers-after (csharp-mode) #[0 "\300\301\302\"\207" [c-get-lang-constant c-basic-matchers-after (cc-fonts)] 3] (cc-fonts) custom-declare-variable csharp-codedoc-tag-face funcall function #[0 "\300\207" [c-doc-markup-face-name] 1 #1=""] "Face to be used on the codedoc docstring tags.\n\nShould be one of the font lock faces, such as\n`font-lock-variable-name-face' and friends.\n\nNeeds to be set before `csharp-mode' is loaded, because of\ncompilation and evaluation time conflicts." :type symbol csharp-font-lock-extra-types #[0 "C\207" [csharp--regex-type-name] 1 #1#] c-make-font-lock-extra-types-blurb "C#" "csharp-mode" #1# c-extra-types-widget :group c] 8)#@35 Minimal font locking for C# mode.
(defconst csharp-font-lock-keywords-1 (byte-code "\301=\203 \302\207\303\304\305\306#\207" [c-version-sym 5.35.2 (c-maybe-font-lock-wrong-style-comments ("\\(\\=\\|\\(\\=\\|[^\\]\\)[\n]\\)\\s *#\\s *\\(\\(?:\\(?:error\\|region\\|warning\\)\\>\\)\\)\\s +\\(.*\\)$" 4 font-lock-string-face t) (#[257 "\302\300!\303!\210\304\305\306#\203d \307\224b\210\303!\204 \307\225b\210\310 \311\312\"\216\313\314\224\314\225\315	$)\266\310 \311\316\"\216\314\224\314\225S\211f\317=\203W \313\211T\320\321$\210\313\211T\320\322$\266\202_ \323\211T\324#\266)\210\202 )\325\207" [parse-sexp-lookup-properties font-lock-string-face boundp c-skip-comments-and-strings re-search-forward "\\(\\=\\|\\(\\=\\|[^\\]\\)[\n]\\)\\s *#\\s *\\(?:include\\)\\(\\s \\|[\n]\\)*\\(\\(//[^\n]*[\n]\\|/\\*[^*\n]*\\(\\*+[^*\n/][^*\n]*\\)*\\*+/\\|\\\\[\n]\\|\\s!\\S!*\\s!\\)\\(\\s \\|[\n]\\)*\\)*\\(<\\([^>\n]*\\)>?\\)" t 0 match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] put-text-property 8 face #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] 62 category c-<-as-paren-syntax c->-as-paren-syntax remove-text-properties (category nil) nil] 9 "\n\n(fn LIMIT)"]) (#[257 "\302\300!\303!\210\304\305\306#\203t \307\224b\210\303!\204 \307\225b\210\310 \311\312\"\216\313\224\203f \214\314\315\224\315\225\316\317$\210\313\225b\210e}\210\320 \210\321	!\203b \314\307\224\307\225\316\322$\210\307\225b\210\320 \210\323f\324=\203b \323u\210\202< )\202o \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\323\"\216\312\225\307\310\324#\203\201 \316\317\224\317\225\320\n$\210\202m )\266\202D )\325\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\\)\\)\\([^[:alnum:]_$]\\|$\\)" 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 *\\(\\(?:\\(?:el\\)?if\\)\\)\\([^[:alnum:]_$]\\|$\\)\\(\\\\\\(.\\|[\n]\\)\\|[^\n]\\)*" 3 #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] move nil] 8 "\n\n(fn LIMIT)"]) (#[257 "\302\300!\303!\210\304\305\306#\2033 \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))) c-get-lang-constant c-matchers-1 (cc-fonts) csharp-mode] 4) (#$ . 11577))#@39 Fast normal font locking for C# mode.
(defconst csharp-font-lock-keywords-2 (byte-code "\301=\203 \302\207\303\304\305\306#\207" [c-version-sym 5.35.2 (c-maybe-font-lock-wrong-style-comments ("\\(\\=\\|\\(\\=\\|[^\\]\\)[\n]\\)\\s *#\\s *\\(\\(?:\\(?:error\\|region\\|warning\\)\\>\\)\\)\\s +\\(.*\\)$" 4 font-lock-string-face t) (#[257 "\302\300!\303!\210\304\305\306#\203d \307\224b\210\303!\204 \307\225b\210\310 \311\312\"\216\313\314\224\314\225\315	$)\266\310 \311\316\"\216\314\224\314\225S\211f\317=\203W \313\211T\320\321$\210\313\211T\320\322$\266\202_ \323\211T\324#\266)\210\202 )\325\207" [parse-sexp-lookup-properties font-lock-string-face boundp c-skip-comments-and-strings re-search-forward "\\(\\=\\|\\(\\=\\|[^\\]\\)[\n]\\)\\s *#\\s *\\(?:include\\)\\(\\s \\|[\n]\\)*\\(\\(//[^\n]*[\n]\\|/\\*[^*\n]*\\(\\*+[^*\n/][^*\n]*\\)*\\*+/\\|\\\\[\n]\\|\\s!\\S!*\\s!\\)\\(\\s \\|[\n]\\)*\\)*\\(<\\([^>\n]*\\)>?\\)" t 0 match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] put-text-property 8 face #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] 62 category c-<-as-paren-syntax c->-as-paren-syntax remove-text-properties (category nil) nil] 9 "\n\n(fn LIMIT)"]) (#[257 "\302\300!\303!\210\304\305\306#\203t \307\224b\210\303!\204 \307\225b\210\310 \311\312\"\216\313\224\203f \214\314\315\224\315\225\316\317$\210\313\225b\210e}\210\320 \210\321	!\203b \314\307\224\307\225\316\322$\210\307\225b\210\320 \210\323f\324=\203b \323u\210\202< )\202o \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\323\"\216\312\225\307\310\324#\203\201 \316\317\224\317\225\320\n$\210\202m )\266\202D )\325\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\\)\\)\\([^[:alnum:]_$]\\|$\\)" 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 *\\(\\(?:\\(?:el\\)?if\\)\\)\\([^[:alnum:]_$]\\|$\\)\\(\\\\\\(.\\|[\n]\\)\\|[^\n]\\)*" 3 #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] move nil] 8 "\n\n(fn LIMIT)"]) (#[257 "\302\300!\303!\210\304\305\306#\2033 \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 "\\<\\(\\(?:false\\|null\\|\\(?:tr\\|val\\)ue\\)\\)\\>" 1 c-constant-face-name) ("\\<\\(\\(?:a\\(?:bstract\\|s\\(?:cending\\|ync\\)?\\|wait\\)\\|b\\(?:ase\\|reak\\|y\\)\\|c\\(?:a\\(?:se\\|tch\\)\\|hecked\\|lass\\|on\\(?:st\\|tinue\\)\\)\\|d\\(?:e\\(?:fault\\|legate\\|scending\\)\\|o\\)\\|e\\(?:lse\\|num\\|quals\\|vent\\|x\\(?:plicit\\|te\\(?:nds\\|rn\\)\\)\\)\\|f\\(?:i\\(?:nal\\(?:ly\\)?\\|xed\\)\\|or\\(?:each\\)?\\|rom\\)\\|g\\(?:et\\|oto\\|roup\\)\\|i\\(?:mpl\\(?:ements\\|icit\\)\\|n\\(?:stanceof\\|t\\(?:er\\(?:face\\|nal\\)\\|o\\)\\)\\|[fns]\\)\\|join\\|l\\(?:et\\|ock\\)\\|n\\(?:a\\(?:\\(?:mespac\\|tiv\\)e\\)\\|ew\\)\\|o\\(?:n\\|perator\\|rderby\\|ut\\|verride\\)\\|p\\(?:ar\\(?:ams\\|tial\\)\\|r\\(?:ivate\\|otected\\)\\|ublic\\)\\|re\\(?:adonly\\|f\\|turn\\)\\|s\\(?:e\\(?:aled\\|\\(?:lec\\)?t\\)\\|t\\(?:atic\\|ruct\\)\\|uper\\|witch\\)\\|t\\(?:h\\(?:is\\|rows?\\)\\|r\\(?:ansient\\|y\\)\\|ypeof\\)\\|u\\(?:n\\(?:checked\\|safe\\)\\|sing\\)\\|v\\(?:irtual\\|olatile\\)\\|wh\\(?:e\\(?:n\\|re\\)\\|ile\\)\\|yield\\)\\)\\([^[:alnum:]_$]\\|$\\)" 1 font-lock-keyword-face) (#[257 "\302\300!\303!\210\304\305\306#\2032 \307\224b\210\303!\204 \307\225b\210\310 \311\312\"\216\313	!)\266\307\225b\210\202 )\314\207" [parse-sexp-lookup-properties font-lock-variable-name-face boundp c-skip-comments-and-strings re-search-forward "^using\\|namespace\\s *\\([A-Z][A-Za-z0-9_]*\\)" t 0 match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] csharp--color-forwards nil] 5 "\n\n(fn LIMIT)"]) (eval list "\\(!\\)[^=]" 1 c-negation-char-face-name) (eval list (concat "\\<new\\> *" csharp--regex-type-name-matcher) 1 font-lock-type-face) (eval list (concat "\\[" csharp--regex-type-name-matcher "\\][^;]") 1 font-lock-variable-name-face t) (eval list "\\([A-Za-z0-9_]+\\)\\(<[a-zA-Z0-9, ]+>\\)?(" 1 font-lock-function-name-face) (eval list (concat "\\(\\<nameof\\>\\) *(") 1 font-lock-function-name-face) (eval list (concat "\\<nameof\\> *( *" csharp--regex-identifier-matcher " *) *") 1 font-lock-variable-name-face) (eval list (concat "\\<catch\\> *( *" csharp--regex-type-name-matcher " *) *") 1 font-lock-type-face) (eval list #[257 "\302\300!\303!\210\304	\305#\203W \306\224b\210\303!\204 \306\225b\210\307 \310\311\"\216\312\313\224\313\225\314\315$)\266\307 \310\316\"\216\313\225b\210\317 )\266\307 \310\320\"\216\321\305\322\211$)\266\313\225b\210\202 )\322\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 #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] c-forward-sws #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] c-font-lock-declarators nil] 7 "\n\n(fn LIMIT)"]) (#[257 "\301\300!\302!\210\303\304\305#\203W \306\224b\210\302!\204 \306\225b\210\307 \310\311\"\216\312\313\224\313\225\314\315$)\266\307 \310\316\"\216\313\225b\210\317 )\266\307 \310\320\"\216\321\305\322\211$)\266\313\225b\210\202 )\322\207" [parse-sexp-lookup-properties boundp c-skip-comments-and-strings re-search-forward "\\<\\(\\(?:class\\|interface\\|struct\\)\\)\\(\\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 3 face font-lock-type-face #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] c-forward-sws #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] c-font-lock-declarators nil] 7 "\n\n(fn LIMIT)"]) (#[257 "\301\300!\302!\210\303\304\305#\203E \306\224b\210\302!\204 \306\225b\210\307 \310\311\"\216\312\225b\210\313 )\266\307 \310\314\"\216\315\305\316\211$)\266\312\225b\210\202 )\316\207" [parse-sexp-lookup-properties boundp c-skip-comments-and-strings re-search-forward "\\<\\(\\(?:class\\|enum\\|interface\\|new\\|struct\\)\\)\\>" t 0 match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] 1 c-forward-sws #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] c-font-lock-declarators nil] 7 "\n\n(fn LIMIT)"]) c-font-lock-labels c-font-lock-enum-tail c-font-lock-enum-body (eval list "\\<\\(\\(?:break\\|continue\\|goto\\)\\)\\>\\s *\\([[:alpha:]_@][[:alnum:]_$]\\{,1000\\}\\)" (list 2 c-label-face-name nil t)) (#[257 "\304 \211\203	 \211b\210\210\305\300!\306\307!`\310!@\311=\203  `\202! \211\262b\210\312!\210\313\314\315#\203a \316\224b\210\312!\204) \316\225b\210\317 \320\321\"\216\315\322\315\323\324!\210`V\203Y b\210\325 ,\266\202) )\266\322\207" [parse-sexp-lookup-properties c-promote-possible-types c-record-ref-identifiers c-record-type-identifiers c-literal-start boundp c-determine-limit 1000 c-beginning-of-decl-1 same c-skip-comments-and-strings re-search-forward "\\<\\(\\(?:class\\|interface\\|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] 7 "\n\n(fn LIMIT)"]) (eval list "\\<\\(@[a-zA-Z0-9]+\\)\\>" 1 c-annotation-face)) c-get-lang-constant c-matchers-2 (cc-fonts) csharp-mode] 4) (#$ . 15603))#@43 Accurate normal font locking for C# mode.
(defconst csharp-font-lock-keywords-3 (byte-code "\301=\203 \302\207\303\304\305\306#\207" [c-version-sym 5.35.2 (c-maybe-font-lock-wrong-style-comments ("\\(\\=\\|\\(\\=\\|[^\\]\\)[\n]\\)\\s *#\\s *\\(\\(?:\\(?:error\\|region\\|warning\\)\\>\\)\\)\\s +\\(.*\\)$" 4 font-lock-string-face t) (#[257 "\302\300!\303!\210\304\305\306#\203d \307\224b\210\303!\204 \307\225b\210\310 \311\312\"\216\313\314\224\314\225\315	$)\266\310 \311\316\"\216\314\224\314\225S\211f\317=\203W \313\211T\320\321$\210\313\211T\320\322$\266\202_ \323\211T\324#\266)\210\202 )\325\207" [parse-sexp-lookup-properties font-lock-string-face boundp c-skip-comments-and-strings re-search-forward "\\(\\=\\|\\(\\=\\|[^\\]\\)[\n]\\)\\s *#\\s *\\(?:include\\)\\(\\s \\|[\n]\\)*\\(\\(//[^\n]*[\n]\\|/\\*[^*\n]*\\(\\*+[^*\n/][^*\n]*\\)*\\*+/\\|\\\\[\n]\\|\\s!\\S!*\\s!\\)\\(\\s \\|[\n]\\)*\\)*\\(<\\([^>\n]*\\)>?\\)" t 0 match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] put-text-property 8 face #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] 62 category c-<-as-paren-syntax c->-as-paren-syntax remove-text-properties (category nil) nil] 9 "\n\n(fn LIMIT)"]) (#[257 "\302\300!\303!\210\304\305\306#\203t \307\224b\210\303!\204 \307\225b\210\310 \311\312\"\216\313\224\203f \214\314\315\224\315\225\316\317$\210\313\225b\210e}\210\320 \210\321	!\203b \314\307\224\307\225\316\322$\210\307\225b\210\320 \210\323f\324=\203b \323u\210\202< )\202o \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\323\"\216\312\225\307\310\324#\203\201 \316\317\224\317\225\320\n$\210\202m )\266\202D )\325\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\\)\\)\\([^[:alnum:]_$]\\|$\\)" 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 *\\(\\(?:\\(?:el\\)?if\\)\\)\\([^[:alnum:]_$]\\|$\\)\\(\\\\\\(.\\|[\n]\\)\\|[^\n]\\)*" 3 #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] move nil] 8 "\n\n(fn LIMIT)"]) (#[257 "\302\300!\303!\210\304\305\306#\2033 \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 "\\<\\(\\(?:false\\|null\\|\\(?:tr\\|val\\)ue\\)\\)\\>" 1 c-constant-face-name) ("\\<\\(\\(?:a\\(?:bstract\\|s\\(?:cending\\|ync\\)?\\|wait\\)\\|b\\(?:ase\\|reak\\|y\\)\\|c\\(?:a\\(?:se\\|tch\\)\\|hecked\\|lass\\|on\\(?:st\\|tinue\\)\\)\\|d\\(?:e\\(?:fault\\|legate\\|scending\\)\\|o\\)\\|e\\(?:lse\\|num\\|quals\\|vent\\|x\\(?:plicit\\|te\\(?:nds\\|rn\\)\\)\\)\\|f\\(?:i\\(?:nal\\(?:ly\\)?\\|xed\\)\\|or\\(?:each\\)?\\|rom\\)\\|g\\(?:et\\|oto\\|roup\\)\\|i\\(?:mpl\\(?:ements\\|icit\\)\\|n\\(?:stanceof\\|t\\(?:er\\(?:face\\|nal\\)\\|o\\)\\)\\|[fns]\\)\\|join\\|l\\(?:et\\|ock\\)\\|n\\(?:a\\(?:\\(?:mespac\\|tiv\\)e\\)\\|ew\\)\\|o\\(?:n\\|perator\\|rderby\\|ut\\|verride\\)\\|p\\(?:ar\\(?:ams\\|tial\\)\\|r\\(?:ivate\\|otected\\)\\|ublic\\)\\|re\\(?:adonly\\|f\\|turn\\)\\|s\\(?:e\\(?:aled\\|\\(?:lec\\)?t\\)\\|t\\(?:atic\\|ruct\\)\\|uper\\|witch\\)\\|t\\(?:h\\(?:is\\|rows?\\)\\|r\\(?:ansient\\|y\\)\\|ypeof\\)\\|u\\(?:n\\(?:checked\\|safe\\)\\|sing\\)\\|v\\(?:irtual\\|olatile\\)\\|wh\\(?:e\\(?:n\\|re\\)\\|ile\\)\\|yield\\)\\)\\([^[:alnum:]_$]\\|$\\)" 1 font-lock-keyword-face) (#[257 "\302\300!\303!\210\304\305\306#\2032 \307\224b\210\303!\204 \307\225b\210\310 \311\312\"\216\313	!)\266\307\225b\210\202 )\314\207" [parse-sexp-lookup-properties font-lock-variable-name-face boundp c-skip-comments-and-strings re-search-forward "^using\\|namespace\\s *\\([A-Z][A-Za-z0-9_]*\\)" t 0 match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] csharp--color-forwards nil] 5 "\n\n(fn LIMIT)"]) (eval list "\\(!\\)[^=]" 1 c-negation-char-face-name) (eval list (concat "\\<new\\> *" csharp--regex-type-name-matcher) 1 font-lock-type-face) (eval list (concat "\\[" csharp--regex-type-name-matcher "\\][^;]") 1 font-lock-variable-name-face t) (eval list "\\([A-Za-z0-9_]+\\)\\(<[a-zA-Z0-9, ]+>\\)?(" 1 font-lock-function-name-face) (eval list (concat "\\(\\<nameof\\>\\) *(") 1 font-lock-function-name-face) (eval list (concat "\\<nameof\\> *( *" csharp--regex-identifier-matcher " *) *") 1 font-lock-variable-name-face) (eval list (concat "\\<catch\\> *( *" csharp--regex-type-name-matcher " *) *") 1 font-lock-type-face) c-font-lock-complex-decl-prepare c-font-lock-cut-off-declarators c-font-lock-declarations c-font-lock-enclosing-decls c-font-lock-<>-arglists c-font-lock-c++-using ("\\<\\(\\(?:b\\(?:ool\\|yte\\)\\|char\\|d\\(?:ecimal\\|ouble\\)\\|float\\|int\\|long\\|object\\|s\\(?:byte\\|hort\\|tring\\)\\|u\\(?:int\\|long\\|short\\)\\|v\\(?:ar\\|oid\\)\\)\\)\\>" 1 'font-lock-type-face) c-font-lock-enum-tail c-font-lock-enum-body (eval list "\\<\\(\\(?:break\\|continue\\|goto\\)\\)\\>\\s *\\([[:alpha:]_@][[:alnum:]_$]\\{,1000\\}\\)" (list 2 c-label-face-name nil t)) (#[257 "\304 \211\203	 \211b\210\210\305\300!\306\307!`\310!@\311=\203  `\202! \211\262b\210\312!\210\313\314\315#\203a \316\224b\210\312!\204) \316\225b\210\317 \320\321\"\216\315\322\315\323\324!\210`V\203Y b\210\325 ,\266\202) )\266\322\207" [parse-sexp-lookup-properties c-promote-possible-types c-record-ref-identifiers c-record-type-identifiers c-literal-start boundp c-determine-limit 1000 c-beginning-of-decl-1 same c-skip-comments-and-strings re-search-forward "\\<\\(\\(?:class\\|interface\\|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] 7 "\n\n(fn LIMIT)"]) (eval list "\\<\\(@[a-zA-Z0-9]+\\)\\>" 1 c-annotation-face)) c-get-lang-constant c-matchers-3 (cc-fonts) csharp-mode] 4) (#$ . 24756))#@46 Default expressions to highlight in C# mode.
(defvar csharp-font-lock-keywords csharp-font-lock-keywords-3 (#$ . 32335))
(defalias 'csharp-font-lock-keywords-2 #[0 "\301!\207" [csharp-font-lock-keywords-2 c-compose-keywords-list] 2])
(defalias 'csharp-font-lock-keywords-3 #[0 "\301!\207" [csharp-font-lock-keywords-3 c-compose-keywords-list] 2])
(defalias 'csharp-font-lock-keywords #[0 "\301!\207" [csharp-font-lock-keywords c-compose-keywords-list] 2])
(defconst codedoc-font-lock-doc-comments (byte-code "\301\302\303BBB\304\302\305BBBD\207" [csharp-codedoc-tag-face "</?\\sw\\(\\sw\\|\\s \\|[=\n*.:]\\|\"[^\"]*\"\\|'[^']*'\\)*/?>" 0 (prepend nil) "&\\(\\sw\\|[.:]\\)+;" (prepend nil)] 5))
(defconst codedoc-font-lock-keywords (byte-code "\300CC\207" [#[257 "\301\302#\207" [codedoc-font-lock-doc-comments c-font-lock-doc-comments "///"] 5 "\n\n(fn LIMIT)"]] 1))
(advice-add 'c-looking-at-inexpr-block :around 'csharp-looking-at-inexpr-block)#@28 

(fn ORIG-FUN &rest ARGS)
(defalias 'csharp-looking-at-inexpr-block #[385 "\300 \211\206\n \301\"\207" [csharp-at-lambda-header apply] 6 (#$ . 33295)])
(defalias 'csharp-at-lambda-header #[0 "\212\300 \210o?\205* \301u\210\3021 \303`\301\"b0\210\202 \210\304\305!\204' \304\306!\205* \307`B)\207" [c-backward-sws -1 (error) scan-sexps looking-at "([[:alnum:][:space:]_,]*)[ 	\n]*=>[ 	\n]*{" "[[:alnum:]_]+[ 	\n]*=>[ 	\n]*{" inexpr] 3])
(advice-add 'c-guess-basic-syntax :around 'csharp-guess-basic-syntax)#@28 

(fn ORIG-FUN &rest ARGS)
(defalias 'csharp-guess-basic-syntax #[385 "\212\212\300 \210`)b\210\301f\302=\205  \212\212\303y\210\300 \210`)b\210\304\305!))\2031 \306\212\303y\210\300 \210`)DC\207\212\212\303y\210\300 \210`)b\210\212\307\301w\210\301f)\310=\205p \212\3111X \312`\313\314#0\202Z \210\301\211\203a \211b\210\210`Sf\315=\205o \301f\316=?))\203\201 \317\212\303y\210\300 \210`)DC\207\212\212\300 \210`)b\210\301f\302=\204\240 \3201\237 \321\313\322\211#0\210\202\240 \210\212\212\303y\210\300 \210`)b\210\323\304\322\"\262\205\311 \324\325\326 \322\313$\203\310 \327\330`!8\202\311 \322*\2030\212\331\314!b\210`Sf\316=?\206\342 `Sf\302=?)\2030\212\331\314!b\210`Sf)\302=\203\332\212\303y\210\300 \210`)DC\207\212\212\300 \210`)b\210\301f\333=\205\334\212\321\313\322\211#\210`)DC)\2064\335\336\212\303y\210\300 \210`)DD\207\337\"\207" [back-to-indentation nil 123 -1 looking-at ".*enum.*" class-open " 	\n" 91 (error) scan-lists 1 0 93 59 annotation-top-cont (error) backward-up-list t ".*new.*" re-search-forward ";" pos-eol 4 syntax-ppss line-end-position brace-list-intro 125 brace-list-close (block-open) statement apply] 7 (#$ . 33811)])#@63 Resolve an msbuild error to a (filename . dirname) cons cell.
(defalias 'csharp--compilation-error-file-resolve #[0 "\300\301!\302\300\303!!B\207" [match-string 1 file-name-directory 4] 4 (#$ . 34982)])#@49 Regexp to match compilation error from msbuild.
(defconst csharp-compilation-re-msbuild-error "^[[:blank:]]*\\(?:[[:digit:]]+>\\)?\\([^(\n)]+\\)(\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?): error [[:alnum:]]+: [^\n]+\\[\\([^]\n]+\\)\\]$" (#$ . 35190))#@51 Regexp to match compilation warning from msbuild.
(defconst csharp-compilation-re-msbuild-warning "^[[:blank:]]*\\(?:[[:digit:]]+>\\)?\\([^(\n)]+\\)(\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?): warning [[:alnum:]]+: [^\n]+\\[\\([^]\n]+\\)\\]$" (#$ . 35442))#@48 Regexp to match compilation error from xbuild.
(defconst csharp-compilation-re-xbuild-error "^[[:blank:]]*\\(?:[[:digit:]]+>\\)?\\([^(\n)]+\\)(\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?\\(?:,\\([0-9]+\\)\\)*): error [[:alnum:]]+: .+$" (#$ . 35700))#@50 Regexp to match compilation warning from xbuild.
(defconst csharp-compilation-re-xbuild-warning "^[[:blank:]]*\\(?:[[:digit:]]+>\\)?\\([^(\n)]+\\)(\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?\\(?:,\\([0-9]+\\)\\)*): warning [[:alnum:]]+: .+$" (#$ . 35947))
(defconst csharp-compilation-re-dotnet-error "\\([^\n]+\\) : error [A-Z]+[0-9]+:")
(defconst csharp-compilation-re-dotnet-warning "\\([^\n]+\\) : warning [A-Z]+[0-9]+:")
(defconst csharp-compilation-re-dotnet-testfail "[[:blank:]]+Stack Trace:\n[[:blank:]]+at [^\n]+ in \\([^\n]+\\):line \\([0-9]+\\)")
(eval-after-load 'compile #[0 "\306\307BB\310	\311BB\312\n\313BB\314\315BB\316\f\317BB\320\321BB\322\323BB\257\211\205> \211@\324\325\"\210\324\326@\"\210A\266\202\202& \207" [csharp-compilation-re-dotnet-testfail csharp-compilation-re-xbuild-error csharp-compilation-re-xbuild-warning csharp-compilation-re-msbuild-error csharp-compilation-re-msbuild-warning csharp-compilation-re-dotnet-error dotnet-testfail (1 2) xbuild-error (1 2 3 2) xbuild-warning (1 2 3 1) msbuild-error (csharp--compilation-error-file-resolve 2 3 2 nil (1 compilation-error-face) (4 compilation-error-face)) msbuild-warning (csharp--compilation-error-file-resolve 2 3 1 nil (1 compilation-warning-face) (4 compilation-warning-face)) dotnet-error (1) dotnet-warning (1 nil nil 1) add-to-list compilation-error-regexp-alist-alist compilation-error-regexp-alist csharp-compilation-re-dotnet-warning] 9])#@45 Syntax table used in `csharp-mode' buffers.
(defvar csharp-mode-syntax-table (byte-code "\301=\203\n \302\202 \303\304\305\306# \207" [c-version-sym 5.35.2 csharp--make-mode-syntax-table c-get-lang-constant c-make-mode-syntax-table (cc-langs) csharp-mode] 4) (#$ . 37391))#@39 Keymap used in `csharp-mode' buffers.
(defvar csharp-mode-map (c-make-inherited-keymap) (#$ . 37671))#@19 C# Mode Commands.
(defvar csharp-mode-menu nil (#$ . 37778))
(byte-code "\302\303\304\305	\306=\203 \307\202 \310\311\312\313#B$\210\314\315\316\317\320DD\321\322\323\324\325\326\327&	\207" [csharp-mode-map c-version-sym easy-menu-do-define csharp-mode-menu "C# Mode Commands." "C#" 5.35.2 (["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) csharp-mode custom-declare-variable csharp-ts-mode-indent-offset funcall function #[0 "\300\207" [4] 1 ""] "Number of spaces for each indentation step in `csharp-ts-mode'." :type integer :safe integerp :group csharp] 10)
(defvar csharp-ts-mode--indent-rules '((c-sharp ((parent-is "compilation_unit") parent-bol 0) ((node-is "}") parent-bol 0) ((node-is ")") parent-bol 0) ((node-is "]") parent-bol 0) ((and (parent-is "comment") c-ts-common-looking-at-star) c-ts-common-comment-start-after-first-star -1) ((parent-is "comment") prev-adaptive-prefix 0) ((parent-is "namespace_declaration") parent-bol 0) ((parent-is "class_declaration") parent-bol 0) ((parent-is "constructor_declaration") parent-bol 0) ((parent-is "initializer_expression") parent-bol csharp-ts-mode-indent-offset) ((match "{" "anonymous_object_creation_expression") parent-bol 0) ((parent-is "anonymous_object_creation_expression") parent-bol csharp-ts-mode-indent-offset) ((match "{" "object_creation_expression") parent-bol 0) ((parent-is "object_creation_expression") parent-bol 0) ((parent-is "method_declaration") parent-bol 0) ((parent-is "enum_declaration") parent-bol 0) ((parent-is "operator_declaration") parent-bol 0) ((parent-is "field_declaration") parent-bol 0) ((parent-is "struct_declaration") parent-bol 0) ((parent-is "declaration_list") parent-bol csharp-ts-mode-indent-offset) ((parent-is "argument_list") parent-bol csharp-ts-mode-indent-offset) ((parent-is "interpolation") parent-bol csharp-ts-mode-indent-offset) ((parent-is "binary_expression") parent 0) ((parent-is "block") parent-bol csharp-ts-mode-indent-offset) ((parent-is "local_function_statement") parent-bol 0) ((match "block" "if_statement") parent-bol 0) ((match "else" "if_statement") parent-bol 0) ((parent-is "if_statement") parent-bol csharp-ts-mode-indent-offset) ((parent-is "for_statement") parent-bol 0) ((parent-is "for_each_statement") parent-bol 0) ((parent-is "while_statement") parent-bol 0) ((match "{" "switch_expression") parent-bol 0) ((parent-is "switch_statement") parent-bol 0) ((parent-is "switch_body") parent-bol csharp-ts-mode-indent-offset) ((parent-is "switch_section") parent-bol csharp-ts-mode-indent-offset) ((parent-is "switch_expression") parent-bol csharp-ts-mode-indent-offset) ((parent-is "case_statement") parent-bol 0) ((parent-is "do_statement") parent-bol 0) ((parent-is "equals_value_clause") parent-bol csharp-ts-mode-indent-offset) ((parent-is "ternary_expression") parent-bol csharp-ts-mode-indent-offset) ((parent-is "conditional_expression") parent-bol csharp-ts-mode-indent-offset) ((parent-is "statement_block") parent-bol csharp-ts-mode-indent-offset) ((parent-is "type_arguments") parent-bol csharp-ts-mode-indent-offset) ((parent-is "variable_declarator") parent-bol csharp-ts-mode-indent-offset) ((parent-is "arguments") parent-bol csharp-ts-mode-indent-offset) ((parent-is "array") parent-bol csharp-ts-mode-indent-offset) ((parent-is "formal_parameters") parent-bol csharp-ts-mode-indent-offset) ((parent-is "template_substitution") parent-bol csharp-ts-mode-indent-offset) ((parent-is "object_pattern") parent-bol csharp-ts-mode-indent-offset) ((parent-is "object") parent-bol csharp-ts-mode-indent-offset) ((parent-is "object_type") parent-bol csharp-ts-mode-indent-offset) ((parent-is "enum_body") parent-bol csharp-ts-mode-indent-offset) ((parent-is "arrow_function") parent-bol csharp-ts-mode-indent-offset) ((parent-is "parenthesized_expression") parent-bol csharp-ts-mode-indent-offset))))#@43 C# keywords for tree-sitter font-locking.
(defvar csharp-ts-mode--keywords '("using" "namespace" "class" "if" "else" "throw" "new" "for" "return" "await" "struct" "enum" "switch" "case" "default" "typeof" "try" "catch" "finally" "break" "foreach" "in" "yield" "get" "set" "when" "as" "out" "is" "while" "continue" "this" "ref" "goto" "interface" "from" "where" "select" "lock" "base" "record" "init" "with" "let" "static" "var" "do" "public" "private" "readonly" "unmanaged") (#$ . 43217))
(defvar csharp-ts-mode--font-lock-settings (byte-code "\301\302\303\304\305\306\302\303\304\307\310\302\303\304\311\312\302\303\304\313\314\302\303\315\316\304\317\320\302\303\315\316\304\321\322!\323B\302\303\315\316\304\324\325\302\303\315\316\304\326\327\302\303\315\316\304\330\331\302\303\315\316\304\332\333\302\303\315\316\304\334\335\302\303\304\336\315\316\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\3571n \360\361\362\"\210\3630\202p \210\364\365\"BBBBBBBBBBBBBBB\302\303\304\366\367\302\303\304\326\315\316\370\302\303\304\371\315\316\372&_\207" [csharp-ts-mode--keywords treesit-font-lock-rules :language c-sharp :feature expression ((conditional_expression (identifier) @font-lock-variable-use-face) (postfix_unary_expression (identifier) * @font-lock-variable-use-face) (initializer_expression (assignment_expression left: (identifier) @font-lock-variable-use-face))) bracket ((["(" ")" "[" "]" "{" "}"]) @font-lock-bracket-face) delimiter ((["," ":" ";"]) @font-lock-delimiter-face) error ((ERROR) @font-lock-warning-face) :override t comment ((comment) @font-lock-comment-face) keyword vconcat (@font-lock-keyword-face (modifier) @font-lock-keyword-face (this_expression) @font-lock-keyword-face) property ((attribute (identifier) @font-lock-property-use-face (attribute_argument_list)) (attribute (identifier) @font-lock-property-use-face)) escape-sequence ((escape_sequence) @font-lock-escape-face) literal ((integer_literal) @font-lock-number-face (real_literal) @font-lock-number-face (null_literal) @font-lock-constant-face (boolean_literal) @font-lock-constant-face) string ([(string_literal) (verbatim_string_literal) (interpolated_string_text) (interpolated_verbatim_string_text) (character_literal) "\"" "$\"" "@$\"" "$@\""] @font-lock-string-face) type ((predefined_type) @font-lock-type-face (implicit_type) @font-lock-type-face (nullable_type) @font-lock-type-face (type_parameter (identifier) @font-lock-type-face) (type_argument_list (identifier) @font-lock-type-face) (type_argument_list (generic_name (identifier) @font-lock-type-face)) (base_list (generic_name (identifier) @font-lock-type-face)) (array_type (identifier) @font-lock-type-face) (cast_expression (identifier) @font-lock-type-face) (cast_expression (generic_name (identifier) @font-lock-type-face)) ["operator"] @font-lock-type-face (type_parameter_constraints_clause target: (identifier) @font-lock-type-face) (type_constraint type: (identifier) @font-lock-type-face) (type_constraint type: (generic_name (identifier) @font-lock-type-face)) (type_of_expression (identifier) @font-lock-type-face) (object_creation_expression type: (identifier) @font-lock-type-face) (object_creation_expression type: (generic_name (identifier) @font-lock-type-face)) (as_expression right: (identifier) @font-lock-type-face) (as_expression right: (generic_name (identifier) @font-lock-type-face))) definition (qualified_name (identifier) @font-lock-type-face) (using_directive (identifier) @font-lock-type-face) (using_directive (name_equals (identifier) @font-lock-type-face)) (enum_declaration (identifier) @font-lock-type-face) (enum_member_declaration (identifier) @font-lock-variable-name-face) (interface_declaration (identifier) @font-lock-type-face) (struct_declaration (identifier) @font-lock-type-face) (record_declaration (identifier) @font-lock-type-face) (namespace_declaration (identifier) @font-lock-type-face) (base_list (identifier) @font-lock-type-face) (property_declaration type: (nullable_type) @font-lock-type-face name: (identifier) @font-lock-variable-name-face) (property_declaration type: (predefined_type) @font-lock-type-face name: (identifier) @font-lock-variable-name-face) (property_declaration type: (identifier) @font-lock-type-face name: (identifier) @font-lock-variable-name-face) (class_declaration (identifier) @font-lock-type-face) (constructor_declaration name: (_) @font-lock-type-face) append (error) treesit-query-capture csharp ((void_keyword) @capture) ((method_declaration type: [(identifier) (void_keyword)] @font-lock-type-face)) ((method_declaration type: [(identifier) (predefined_type)] @font-lock-type-face)) ((method_declaration type: (generic_name (identifier) @font-lock-type-face)) (method_declaration name: (_) @font-lock-function-name-face) (catch_declaration ((identifier) @font-lock-type-face)) (catch_declaration ((identifier) @font-lock-type-face (identifier) @font-lock-variable-name-face)) (variable_declaration (identifier) @font-lock-type-face) (variable_declaration (generic_name (identifier) @font-lock-type-face)) (variable_declarator (identifier) @font-lock-variable-name-face) (parameter type: (identifier) @font-lock-type-face) (parameter type: (generic_name (identifier) @font-lock-type-face)) (parameter name: (identifier) @font-lock-variable-name-face) (lambda_expression (identifier) @font-lock-variable-name-face) (declaration_expression type: (identifier) @font-lock-type-face) (declaration_expression name: (identifier) @font-lock-variable-name-face)) function ((invocation_expression function: (member_access_expression name: (identifier) @font-lock-function-call-face)) (invocation_expression function: (identifier) @font-lock-function-call-face) (invocation_expression function: (member_access_expression name: (generic_name (identifier) @font-lock-function-call-face))) (invocation_expression function: (generic_name (identifier) @font-lock-function-call-face))) ((escape_sequence) @font-lock-escape-face) directives ((if_directive "if" @font-lock-preprocessor-face (identifier) @font-lock-variable-use-face) (elif_directive "elif" @font-lock-preprocessor-face (identifier) @font-lock-variable-use-face) (else_directive) @font-lock-preprocessor-face (endif_directive) @font-lock-preprocessor-face (define_directive "define" @font-lock-preprocessor-face (identifier) @font-lock-variable-use-face) (nullable_directive) @font-lock-preprocessor-face (pragma_directive) @font-lock-preprocessor-face (region_directive) @font-lock-preprocessor-face (endregion_directive) @font-lock-preprocessor-face (region_directive (preproc_message) @font-lock-variable-use-face) (endregion_directive (preproc_message) @font-lock-variable-use-face))] 96))
(add-to-list 'auto-mode-alist '("\\.cs\\'" . csharp-mode))#@106 Return the defun name of NODE.
Return nil if there is no name or if NODE is not a defun node.

(fn NODE)
(defalias 'csharp-ts-mode--defun-name #[257 "\300!\211\301\235\205 \302\303\304\"\305\"\207" [treesit-node-type ("class_declaration" "interface_declaration" "enum_declaration" "struct_declaration" "record_declaration" "method_declaration") treesit-node-text treesit-node-child-by-field-name "name" t] 6 (#$ . 49990)])
(defvar csharp-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [csharp-mode-hook variable-documentation put "Hook run after entering C# mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp csharp-mode-map definition-name csharp-mode] 4)
(defvar csharp-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\307!\204* \303\307\310\311#\210\312\307\306\307!\203& \313\202( \314 \"\210\307\302N\2048 \303\307\302\304\315!#\210\306\300!\204X \303\300\310\311#\210\312\300\306\300!\203P \313\202V \316\300\313\"\210\"\210\300\302N\204f \303\300\302\304\317!#\210\303\311\320\321#\207" [csharp-mode-abbrev-table csharp-mode-map variable-documentation put purecopy "Keymap for `csharp-mode'." boundp csharp-mode-syntax-table definition-name csharp-mode defvar-1 nil make-syntax-table "Syntax table for `csharp-mode'." define-abbrev-table "Abbrev table for `csharp-mode'." derived-mode-parent prog-mode] 5)#@241 Major mode for editing Csharp code.

Key bindings:
\{csharp-mode-map}

In addition to any hooks its parent mode `prog-mode' might have run,
this mode runs the hook `csharp-mode-hook', as the final or
penultimate step during initialization.
(defalias 'csharp-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204' \316\317 \"\210\320\f!\211\2035 \211\321 =\203; \322\f\323 \"\210\210\324\325\"\204R @=\204R \326\325@C#\210\327!\210\330\f!\210@\331\307!\210\311\332\211A\306\333!\210\306\334!\210\306\335!\210\306\336!\210\306\337!\210\306\340!\210\306\341!\210\3421\234	B\343=\203r	\333\262\344\334\262\345\335\262\346\336\262\347\337\262\332\340\262\350 \341\262\351!\352\262\353\354! *\355\262\356-\357\262\360\361\211A\204\326 \362\363!\210A\364N\211\204\344 \362\365A\"\210\366P!\266\202J\262!-\332\203	@\262A\262\367@A#\210\202\362 \266\203/\370\262\371\211<\203\211\202\211C\2628\372\262\373\211<\203.\211\2020\211C\262:\374\262\375C<\376\262\377>\201C \262\201 C\201D \262\332D\201E \262\332E\201F \262\201F\201G \262\201G\201H \262\201H\201I \262\201I\201J \262\201J\201K \262\201K\201L \262\332L\201M \262\201M\201N \262\201N\201O \262\201	O\201P \262\201\nP\201Q \262\201Q\201R \262\332R\201S \262\332S\201T \262\332T\201U \262\201U\201V \262\201\fV\201W \262\201W\201X \262\201X\201Y \262\201Y\201Z \262\201Z\201[ \262\201[\201\\ \262\332\\\201] \262\201]\201^ \262\201^\201_ \262\332_\201` \262\332`\201a \262\201a\201b \262\201b\201c \262\332c\201d \262\201d\201e \262\332e\201f \262\201f\201g \262\201g\201h \262\201h\201i \262\201i\201j \262\201j\201k \262\201k\201l \262\201l\201m \262\201m\201n \262\201n\201o \262\332o\201p \262\332p\201q \262\201q\201r \262\201 r\201s \262\201!s\201t \262\201\"t\201u \262\201u\201v \262\201#v\201w \262\201$w\201x \262\201x\201y \262\201%y\201z \262\201&z\201{ \262\201'{\201| \262\201(|\201} \262\201}\201~ \262\201)~\201 \262\201)\201\200 \262\201*\200\201\201 \262\201+\201\201\202 \262\201+\202\201\203 \262\201,\203\201\204 \262\201\204\201\205 \262\201\205\201\206 \262\201\206\201\207 \262\201-\207\201\210 \262\201.\210\201\211 \262\201/\211\201\212 \262\2010\212\201\213 \262\2011\213\201\214 \262\2012\214\201\215 \262\2013\215\201\216 \262\2014\216\201\217 \262\2015\217\201\220 \262\201/\220\201\221 \262\2016\221\201\222 \262\2017\222\201\223 \262\2018\223\201\224 \262\332\224\201\225 \262\2019\225\201\226 \262\201:\226\201\227 \262\201;\227\201\230 \262\201<\230\201\231 \262\201=\231\201\232 \262\201>\232\201\233 \262\201?\233\201\234 \262\201\234\201\235 \262\201@\235\201\236 \262\201\236\201\237 \262\201\237\201\240 \262\201A\240\201\241 \262\201B\241\201\242 \262\201C\242\201\243 \262\201C\243\201\244 \262\201\244\201\245 \262\201\245\201\246 \262\201A\246\201\247 \262\201D\247\201\250 \262\201\250\201\251 \262\307\251\201\252 \262\201\252\201\253 \262\201E\201F\332\"\253\201\254 \262\201G\254\201\255 \262\201G\255\201\256 \262\201H\256\201\257 \262\201\257\201\260 \262\201H\260\201\261 \262\332\261\201\262 \262\201\262\201\263 \262\201\263\201\264 \262\201I\264\201\265 \262\201J\265\201\266 \262\201K\266\201\267 \262\201L\267\201\270 \262\201\270\201\271 \262\332\271\201\272 \262\332\272\201\273 \262\201M\273\201\274 \262\201\274\201\275 \262\201N\275\201\276 \262\201O\276\201\277 \262\201\277\201\300 \262\201\300\201\301 \262\201\301\201\302 \262\201P\302\201\303 \262\201Q\303\201\304 \262\201R\304\201\305 \262\201S\305\201\306 \262\201\306\201\307 \262\201T\307\201\310 \262\201U\310\201\311 \262\201V\311\201\312 \262\332\312\201\313 \262\201W\313\201\314 \262\201X\314\201\315 \262\332\315\201\316 \262\201Y\316\201\317 \262\201Z\317\201\320 \262\201[\320\201\321 \262\201\\\321\201\322 \262\201]\322\201\323 \262\332\323\201\324 \262\201^\324\201\325 \262\201_\325\201\326 \262\201`\326\201\330 \262\201a\332\211\201bG\201_\201%\"\327\203,@@\262@A\262A\262\201c\366\327\"\201d\201e\201E\201f\"\"\"\210\202\375\327)\266\203\330\201\331 \262\201g\331\201\332 \262\201h\332\201\333 \262\201i\333\201\334 \262\201j\334\201\335 \262\201k\335\201\336 \262\201\336\201\337 \262\201l\337\201\340 \262\201\340\201\341 \262\201m\341\201\342 \262\201\342\201\343 \262\201n\343\201\344 \262\201o\344\201\345 \262\201B\345\201\346 \262\201p\346\201\347 \262\201\347\201\350 \262\201q\350\201\351 \262\201r\351\201\352 \262\201s\352\201\353 \262\332\353\201\354 \262\201t\354\201\355 \262\201u\201vA\204\362\363!\210A\364N\211\204\362\365A\"\210\366P!\266\202!\205K\201v\211A\2043\362\363!\210A\364N\211\204A\362\365A\"\210\366P!\266\202J\262\201w\332\201E\201x\"\"\201w\332\201E\201y\"\"\201z\201{\201|\332\201}\201~\"\"B\201\"\201\200Q\266\203\355\201\356 \262\332\356\201\357 \262\332\357\201\360 \262\201\360\201\361 \262\201\361\201\362 \262\307\362\201\363 \262\307\363\201\364 \262\201\201\364\201\365 \262\201\202\365\201\366 \262\307\366\201\367 \262\332\367\201\370 \262\332\370\201\371 \262\332\371\201\372 \262\201\203\372\201\373 \262\201\204\373\201\374 \262\201M\374\201\375 \262\307\375\201\376 \262\201\205\376\201\377 \262\201\206\377\201\207\262\201\206\207\201\210\262\201\210\201\211\262\332\211\201\212\262\332\212\201\213\262\332\213\201\214\262\307\214\201\215\262\201\216\211\215\202\227	\307\262\201\217\211\211\205\223	\211@\211@\262\211@\353A@!L\210A\266\202\202y	\262\2620\210\202\316	\203\304	\201\220\201\221\203\274	\201\222\201\223\311\201\224\235$\202\275	\346$\266\202\316	\201\225@A\"\266)\266\201\226\311!\210\306\201\227!\210\201\230\227\201\231\201\232!)\210\201\233\236B\236\201\231\201\234!\207" [delay-mode-hooks major-mode mode-name csharp-mode-map csharp-mode-syntax-table csharp-mode-abbrev-table make-local-variable t prog-mode csharp-mode "C#" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table c-initialize-cc-mode nil font-lock-comment-end-skip comment-start comment-end comment-start-skip comment-end-can-be-escaped beginning-of-defun-function end-of-defun-function (error) 5.35.2 "[ 	]*\\*/" "// " "" "\\(?://+\\|/\\*+\\)\\s *" c-beginning-of-defun c-end-of-defun c-no-parens-syntax-table eval (lambda nil (let ((table (funcall 'csharp--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 ((64 . "w") (64 . "w") (95 . "w") (36 . "w")) c-identifier-syntax-table copy-syntax-table #18="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-parse-quotes-before-change c-before-change-check-unbalanced-strings c-before-change-check-<>-operators) c-before-font-lock-functions (c-depropertize-new-text c-after-change-escape-NL-in-string c-parse-quotes-after-change c-after-change-mark-abnormal-strings c-restore-<>-properties c-change-expand-fl-region) c-before-context-fontification-functions c-context-expand-fl-region c-at-vsemi-p-fn csharp-at-vsemi-p local-abbrev-table c-buffer-is-cc-mode c-version-sym c-vsemi-status-unknown-p-fn c-has-bitfields c-single-quotes-quote-strings c-string-delims c-ml-string-non-punc-skip-chars c-ml-string-opener-re c-ml-string-max-opener-len c-ml-string-any-closer-re c-ml-string-max-closer-len c-ml-string-max-closer-len-no-leader c-ml-string-back-closer-re c-make-ml-string-closer-re-function c-make-ml-string-opener-re-function c-ml-string-cpp-or-opener-re c-cpp-or-ml-match-offset c-has-quoted-numbers c-has-compound-literals c-modified-constant c-symbol-start c-symbol-chars c-symbol-char-key c-symbol-key c-nonsymbol-chars c-nonsymbol-key c-opt-identifier-concat-key c-opt-identifier-prefix-key c-identifier-start c-identifier-key c-module-name-re c-string-escaped-newlines c-multiline-string-start-char c-string-innards-re-alist c-opt-cpp-symbol c-opt-cpp-prefix c-anchored-cpp-prefix c-opt-cpp-start c-cpp-include-key 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-operator-re c-non-after-{}-ops-re 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-<-pseudo-digraph-cont-regexp c-<-pseudo-digraph-cont-len c->-op-cont-regexp c->-op-without->-cont-regexp c-multichar->-op-not->>->>>-regexp c-:-op-cont-regexp c-stmt-delim-chars c-stmt-boundary-skip-chars c-stmt-boundary-skip-list c-stmt-delim-chars-with-comma c-stmt-boundary-skip-chars-with-comma c-stmt-boundary-skip-list-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-block-comment-awkward-chars c-comment-start-regexp c-block-comment-start-regexp c-line-comment-start-regexp c-last-c-comment-end-on-line-re 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-self-contained-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-id-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-defun-type-name-decl-key c-typedef-decl-key c-using-key c-no-type-key c-equals-type-clause-key c-equals-nontype-decl-key c-fun-name-substitute-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-sub-colon-type-list-re c-paren-nontype-key c-pre-concept-<>-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-block-stmt-hangon-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-module-key c-constant-key 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-std-abbrev-keywords c-keywords-regexp c-stmt-block-only-keywords-regexp obarray c-keywords-obarray c-regular-keywords-regexp c-primary-expr-regexp c-per-++---match c-per-&*+--match c-per-\(-match c-decl-start-colon-kwd-re c-decl-prefix-re c-decl-start-re c-decl-prefix-or-start-re c-dposr-cpp-macro-depth c-cast-parens c-block-prefix-charset c-maybe-typeless-specifier-re 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 c-known-type-key c-special-brace-lists c-recognize-knr-p c-pre-id-bracelist-key c-pre-brace-non-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-bare-brace-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 csharp-vsemi-status-unknown-p (34) "^\"\\" "\\(\\(?:@\\$?\\)\\(\"\\)\\)" 3 "\\(?:\"\"\\)*\\(\\(\"\\)\\)\\(?:[^\"]\\|\\'\\)" 2 "\\(?:\\`\\|[^\"]\\)\"*" c-ml-string-make-closer-re c-ml-string-make-opener-re "\\(\\`a\\`\\)\\|\\(\\(\\(?:@\\$?\\)\\(\"\\)\\)\\)" "[[:alpha:]_@]" "[:alnum:]_$" "[[:alnum:]_$]+" "[[:alpha:]_@][[:alnum:]_$]\\{,1000\\}" "^[:alnum:]_$" "[^[:alnum:]_$]" "\\(\\.\\)" "\\([[:alpha:]_@][[:alnum:]_$]\\{,1000\\}\\)\\(\\(\\s \\|[\n]\\)*\\(\\.\\)\\(\\s \\|[\n]\\)*\\(\\(\\*\\)\\(\\(\\s \\|[\n]\\)*\\([[:alpha:]_@][[:alnum:]_$]\\{,1000\\}\\)\\)?\\|\\([[:alpha:]_@][[:alnum:]_$]\\{,1000\\}\\)\\)\\)*" 64 ((34 . "\\(\\\\\\(.\\|\n\\)\\|[^\\\n\"]\\)*")) "\\s *#\\s *" "\\s *#\\s *\\([[:alnum:]]+\\)" "\\`a\\`" "define" "\\s *#\\s *define[ 	]+\\(\\(\\sw\\|_\\)+\\)\\(([^)]*)\\)?\\([ 	]\\|\\\\\n\\)*" "\\s *#\\s *define[ 	]+\\(\\sw\\|_\\)+" "\\s *#\\s *\\(\\(?:\\(?:el\\)?if\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:defined\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(?:!=\\|##\\|%=\\|&[&=]\\|\\*=\\|\\+[+=]\\|-[=-]\\|/=\\|<\\(?:<=\\|[<=]\\)\\|==\\|>\\(?:>\\(?:>=\\|[=>]\\)\\|[=>]\\)\\|\\^=\\|instanceof\\|new\\||[=|]\\|[]!#%&(-,./:<-?[|~^-]\\)" "\\(?:!=\\|##\\|%=\\|&[&=]\\|\\*=\\|\\+=\\|-=\\|/=\\|<\\(?:<=\\|[<=]\\)\\|==\\|>\\(?:>\\(?:>=\\|[=>]\\)\\|[=>]\\)\\|\\^=\\|instanceof\\||[=|]\\|[%&*,./:=?|^]\\)" "\\(\\`a\\`\\)" "\\(?:!=\\|##\\|%=\\|&[&=]\\|\\*[/=]\\|\\+[+=]\\|-[=-]\\|/[*/=]\\|<\\(?:<=\\|[<=]\\)\\|==\\|>\\(?:>\\(?:>=\\|[=>]\\)\\|[=>]\\)\\|\\^=\\||[=|]\\|[!#%&*+,./:-?|~^-]\\)" "=\\([^=]\\|$\\)\\|\\(?:\\(?:<<\\|>>>?\\|[%&*+/|^-]\\)=\\)" "\\(?:!=\\|%=\\|&[&=]\\|\\*=\\|\\+=\\|-=\\|/=\\|<\\(?:<=\\|[<=]\\)\\|==\\|>\\(?:>\\(?:>?=\\)\\|[=>]\\)\\|\\^=\\||[=|]\\|[%&*+/<=>|^-]\\)" "\\(?:<\\(?:<=\\|[<=]\\)\\|>\\(?:>\\(?:>=\\|[=>]\\)\\|[=>]\\)\\)" "\\(?:<=\\|[<=]\\)" 0 "\\(?:>?=\\)" "=" "\\(?:>\\(?:\\(?:>>?\\)?=\\)\\)" "^;{}?:" (59 123 125 63 58) "^;,{}?:" (59 44 123 125 63 58) (";" "{" "}") "\\(\\(?:!=\\|%=\\|&[&=]\\|\\*[/=]\\|\\+[+=]\\|-[=-]\\|/[*/=]\\|<\\(?:<=\\|[<=]\\)\\|==\\|>\\(?:>\\(?:>=\\|[=>]\\)\\|[=>]\\)\\|\\^=\\|instanceof\\||[=|]\\|[!%&(*+,/:-?[{-~^-]\\)\\)\\([^[:alnum:]_$]\\|$\\)" "//" "/*" "*/" "\\*/" (42) "\\(?:/[*/]\\)\\|\\s!" "/\\*" "\\(\\*/\\)\\([^*]\\|\\*+\\([^*/]\\|$\\)\\)*$" "\\(?:/[*/]\\)\\|\\s!\\|\"\\|\\s|" "///" "\\s \\|\\(?:/[*/]\\|[\n#]\\)\\|\\\\[\n]\\|\\s!" "\\s \\|[\n/]\\|\\s!" "\\s *\\(/\\*[^*\n]*\\(\\*+[^*\n/][^*\n]*\\)*\\*+/\\s *\\)*\\(//\\|/\\*[^*\n]*\\(\\*+[^*\n/][^*\n]*\\)*$\\|\\\\$\\|$\\)" "\\(@[a-zA-Z]+\\>\\|$\\)" "$" "\\(\\(?:return\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:b\\(?:ool\\|yte\\)\\|char\\|d\\(?:ecimal\\|ouble\\)\\|float\\|int\\|long\\|object\\|s\\(?:byte\\|hort\\|tring\\)\\|u\\(?:int\\|long\\|short\\)\\|v\\(?:ar\\|oid\\)\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:as\\|is\\|typeof\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:class\\|interface\\|struct\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:volatile\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:new\\|readonly\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:enum\\|new\\)\\)\\([^[:alnum:]_$]\\|$\\)" mapcar #[257 "\211\300\230\203 \301\202 \302\303P!B\207" [#19="extern" inextern-lang intern #20="in"] 5 "\n\n(fn ELT)"] "\\(\\(?:class\\|enum\\|interface\\|new\\|struct\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:using\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:a\\(?:bstract\\|sync\\|wait\\)\\|c\\(?:lass\\|onst\\)\\|de\\(?:fault\\|legate\\)\\|e\\(?:num\\|vent\\|x\\(?:plicit\\|tern\\)\\)\\|fi\\(?:nal\\|xed\\)\\|get\\|i\\(?:mplicit\\|nter\\(?:face\\|nal\\)\\)\\|n\\(?:ative\\|ew\\)\\|o\\(?:ut\\|verride\\)\\|p\\(?:ar\\(?:ams\\|tial\\)\\|r\\(?:ivate\\|otected\\)\\|ublic\\)\\|re\\(?:adonly\\|f\\)\\|s\\(?:e\\(?:aled\\|t\\)\\|t\\(?:atic\\|ruct\\)\\)\\|t\\(?:his\\|ransient\\)\\|unsafe\\|v\\(?:irtual\\|olatile\\)\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:a\\(?:bstract\\|sync\\|wait\\)\\|const\\|de\\(?:fault\\|legate\\)\\|e\\(?:num\\|vent\\|x\\(?:plicit\\|tern\\)\\)\\|fi\\(?:nal\\|xed\\)\\|get\\|i\\(?:mplicit\\|nternal\\)\\|native\\|o\\(?:ut\\|verride\\)\\|p\\(?:ar\\(?:ams\\|tial\\)\\|r\\(?:ivate\\|otected\\)\\|ublic\\)\\|ref\\|s\\(?:e\\(?:aled\\|t\\)\\|tatic\\)\\|t\\(?:his\\|ransient\\)\\|unsafe\\|v\\(?:irtual\\|olatile\\)\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:ascending\\|b\\(?:ase\\|reak\\|y\\)\\|c\\(?:a\\(?:se\\|tch\\)\\|hecked\\|ontinue\\)\\|d\\(?:escending\\|o\\)\\|e\\(?:lse\\|\\(?:qual\\|xtend\\)s\\)\\|f\\(?:alse\\|inally\\|or\\(?:each\\)?\\|rom\\)\\|g\\(?:oto\\|roup\\)\\|i\\(?:mplements\\|n\\(?:stanceof\\|to\\)\\|[fn]\\)\\|join\\|l\\(?:et\\|ock\\)\\|n\\(?:amespace\\|ull\\)\\|o\\(?:n\\|perator\\|rderby\\)\\|return\\|s\\(?:elect\\|uper\\|witch\\)\\|t\\(?:hrows?\\|r\\(?:ue\\|y\\)\\)\\|u\\(?:nchecked\\|sing\\)\\|value\\|wh\\(?:e\\(?:n\\|re\\)\\|ile\\)\\|yield\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:a\\(?:bstract\\|s\\(?:cending\\|ync\\)?\\|wait\\)\\|b\\(?:ase\\|reak\\|y\\)\\|c\\(?:a\\(?:se\\|tch\\)\\|hecked\\|lass\\|on\\(?:st\\|tinue\\)\\)\\|d\\(?:e\\(?:fault\\|legate\\|scending\\)\\|o\\)\\|e\\(?:lse\\|num\\|quals\\|vent\\|x\\(?:plicit\\|te\\(?:nds\\|rn\\)\\)\\)\\|f\\(?:alse\\|i\\(?:nal\\(?:ly\\)?\\|xed\\)\\|or\\(?:each\\)?\\|rom\\)\\|g\\(?:et\\|oto\\|roup\\)\\|i\\(?:mpl\\(?:ements\\|icit\\)\\|n\\(?:stanceof\\|t\\(?:er\\(?:face\\|nal\\)\\|o\\)\\)\\|[fns]\\)\\|join\\|l\\(?:et\\|ock\\)\\|n\\(?:a\\(?:\\(?:mespac\\|tiv\\)e\\)\\|ew\\|ull\\)\\|o\\(?:n\\|perator\\|rderby\\|ut\\|verride\\)\\|p\\(?:ar\\(?:ams\\|tial\\)\\|r\\(?:ivate\\|otected\\)\\|ublic\\)\\|re\\(?:adonly\\|f\\|turn\\)\\|s\\(?:e\\(?:aled\\|\\(?:lec\\)?t\\)\\|t\\(?:atic\\|ruct\\)\\|uper\\|witch\\)\\|t\\(?:h\\(?:is\\|rows?\\)\\|r\\(?:ansient\\|ue\\|y\\)\\|ypeof\\)\\|u\\(?:n\\(?:checked\\|safe\\)\\|sing\\)\\|v\\(?:alue\\|irtual\\|olatile\\)\\|wh\\(?:e\\(?:n\\|re\\)\\|ile\\)\\|yield\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:\\(?:extend\\|implement\\|throw\\)s\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\([^][{}();,/#=:]\\|\\(\\.\\)\\)*:" "\\([^][{}();,/#=:]\\|\\(\\.\\)\\)*" "\\(\\(?:extends\\|super\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:do\\|else\\|\\(?:finall\\|tr\\)y\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:try\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:c\\(?:atch\\|hecked\\)\\|f\\(?:ixed\\|or\\(?:each\\)?\\)\\|if\\|lock\\|switch\\|u\\(?:nchecked\\|sing\\)\\|while\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:c\\(?:atch\\|hecked\\)\\|do\\|else\\|f\\(?:i\\(?:nally\\|xed\\)\\|or\\(?:each\\)?\\)\\|if\\|lock\\|switch\\|try\\|u\\(?:nchecked\\|sing\\)\\|while\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:break\\|continue\\|goto\\|return\\|throw\\|yield\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:for\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:case\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:case\\|default\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:false\\|null\\|\\(?:tr\\|val\\)ue\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:new\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(?:\\(?:class\\|interface\\|struct\\)\\>\\|[)*,:;<{}]\\)\\)" "\\(\\(?:\\(?:class\\|interface\\|struct\\)\\>\\|[<{}]\\)\\)" "\\(\\`a\\`\\)\\|\\(\\(?:class\\|interface\\|struct\\)\\)\\([^[:alnum:]_$]\\|$\\)" ("else" "while" "catch" "finally" "catch" "finally") "\\(\\(?:a\\(?:bstract\\|s\\(?:cending\\|ync\\)?\\|wait\\)\\|b\\(?:ase\\|ool\\|reak\\|y\\(?:te\\)?\\)\\|c\\(?:a\\(?:se\\|tch\\)\\|h\\(?:ar\\|ecked\\)\\|lass\\|on\\(?:st\\|tinue\\)\\)\\|d\\(?:e\\(?:cimal\\|fault\\|legate\\|scending\\)\\|o\\(?:uble\\)?\\)\\|e\\(?:lse\\|num\\|quals\\|vent\\|x\\(?:plicit\\|te\\(?:nds\\|rn\\)\\)\\)\\|f\\(?:alse\\|i\\(?:nal\\(?:ly\\)?\\|xed\\)\\|loat\\|or\\(?:each\\)?\\|rom\\)\\|g\\(?:et\\|oto\\|roup\\)\\|i\\(?:mpl\\(?:ements\\|icit\\)\\|n\\(?:stanceof\\|t\\(?:er\\(?:face\\|nal\\)\\|o\\)?\\)\\|[fns]\\)\\|join\\|l\\(?:et\\|o\\(?:ck\\|ng\\)\\)\\|n\\(?:a\\(?:\\(?:mespac\\|tiv\\)e\\)\\|ew\\|ull\\)\\|o\\(?:bject\\|n\\|perator\\|rderby\\|ut\\|verride\\)\\|p\\(?:ar\\(?:ams\\|tial\\)\\|r\\(?:ivate\\|otected\\)\\|ublic\\)\\|re\\(?:adonly\\|f\\|turn\\)\\|s\\(?:byte\\|e\\(?:aled\\|\\(?:lec\\)?t\\)\\|hort\\|t\\(?:atic\\|r\\(?:ing\\|uct\\)\\)\\|uper\\|witch\\)\\|t\\(?:h\\(?:is\\|rows?\\)\\|r\\(?:ansient\\|ue\\|y\\)\\|ypeof\\)\\|u\\(?:int\\|long\\|n\\(?:checked\\|safe\\)\\|s\\(?:hort\\|ing\\)\\)\\|v\\(?:a\\(?:lue\\|r\\)\\|irtual\\|o\\(?:id\\|latile\\)\\)\\|wh\\(?:e\\(?:n\\|re\\)\\|ile\\)\\|yield\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(^\\|\\=\\|[^[:alnum:]_$]\\)\\(\\(?:a\\(?:bstract\\|s\\(?:cending\\|ync\\)?\\|wait\\)\\|b\\(?:reak\\|y\\)\\|c\\(?:a\\(?:se\\|tch\\)\\|hecked\\|lass\\|on\\(?:st\\|tinue\\)\\)\\|d\\(?:e\\(?:fault\\|legate\\|scending\\)\\|o\\)\\|e\\(?:lse\\|num\\|quals\\|vent\\|x\\(?:plicit\\|te\\(?:nds\\|rn\\)\\)\\)\\|f\\(?:i\\(?:nal\\(?:ly\\)?\\|xed\\)\\|or\\(?:each\\)?\\|rom\\)\\|g\\(?:et\\|oto\\|roup\\)\\|i\\(?:mpl\\(?:ements\\|icit\\)\\|nt\\(?:er\\(?:face\\|nal\\)\\|o\\)\\|[fns]\\)\\|join\\|l\\(?:et\\|ock\\)\\|n\\(?:a\\(?:\\(?:mespac\\|tiv\\)e\\)\\|ew\\)\\|o\\(?:n\\|rderby\\|ut\\|verride\\)\\|p\\(?:ar\\(?:ams\\|tial\\)\\|r\\(?:ivate\\|otected\\)\\|ublic\\)\\|re\\(?:adonly\\|f\\|turn\\)\\|s\\(?:e\\(?:aled\\|\\(?:lec\\)?t\\)\\|t\\(?:atic\\|ruct\\)\\|uper\\|witch\\)\\|t\\(?:hrows?\\|r\\(?:ansient\\|y\\)\\|ypeof\\)\\|u\\(?:n\\(?:checked\\|safe\\)\\|sing\\)\\|virtual\\|wh\\(?:e\\(?:n\\|re\\)\\|ile\\)\\|yield\\)\\)\\([^[:alnum:]_$]\\|$\\)" (("super" c-inside-<>-type-kwds) ("throws" c-postfix-spec-kwds c-postfix-decl-spec-kwds) ("implements" c-postfix-spec-kwds c-postfix-decl-spec-kwds) ("extends" c-inside-<>-type-kwds c-postfix-spec-kwds c-postfix-decl-spec-kwds) ("instanceof" c-expr-kwds) ("operator" c-primary-expr-kwds c-expr-kwds) ("base" c-primary-expr-kwds c-expr-kwds) ("case" c-case-kwds c-label-kwds) ("as" c-typeof-kwds) ("is" c-typeof-kwds) ("typeof" c-typeof-kwds) ("lock" c-block-stmt-2-kwds c-block-stmt-kwds) ("using" c-block-stmt-2-kwds c-equals-type-clause-kwds c-using-kwds c-block-stmt-kwds) ("unchecked" c-block-stmt-2-kwds c-block-stmt-kwds) ("checked" c-block-stmt-2-kwds c-block-stmt-kwds) ("foreach" c-block-stmt-2-kwds c-block-stmt-kwds) ("catch" c-block-stmt-2-kwds c-block-stmt-kwds) ("while" c-block-stmt-2-kwds c-block-stmt-kwds) ("switch" c-block-stmt-2-kwds c-block-stmt-kwds) ("if" c-block-stmt-2-kwds c-block-stmt-kwds) ("for" c-block-stmt-2-kwds c-paren-stmt-kwds c-block-stmt-kwds) ("try" c-block-stmt-1-2-kwds c-block-stmt-1-kwds c-block-stmt-kwds) ("finally" c-block-stmt-1-kwds c-block-stmt-kwds) ("else" c-block-stmt-1-kwds c-block-stmt-kwds) ("do" c-block-stmt-1-kwds c-block-stmt-kwds) ("value" c-constant-kwds) ("null" c-constant-kwds) ("false" c-constant-kwds) ("true" c-constant-kwds) ("yield" c-simple-stmt-kwds) ("return" c-return-kwds c-simple-stmt-kwds) ("throw" c-simple-stmt-kwds) (#17="var" c-type-start-kwds c-primitive-type-kwds) (#16="string" c-type-start-kwds c-primitive-type-kwds) (#15="object" c-type-start-kwds c-primitive-type-kwds) (#14="void" c-type-start-kwds c-primitive-type-kwds) (#13="ushort" c-type-start-kwds c-primitive-type-kwds) (#12="short" c-type-start-kwds c-primitive-type-kwds) (#11="ulong" c-type-start-kwds c-primitive-type-kwds) (#10="long" c-type-start-kwds c-primitive-type-kwds) (#9="uint" c-type-start-kwds c-primitive-type-kwds) (#8="int" c-type-start-kwds c-primitive-type-kwds) (#7="float" c-type-start-kwds c-primitive-type-kwds) (#6="double" c-type-start-kwds c-primitive-type-kwds) (#5="decimal" c-type-start-kwds c-primitive-type-kwds) (#4="char" c-type-start-kwds c-primitive-type-kwds) (#3="sbyte" c-type-start-kwds c-primitive-type-kwds) (#2="byte" c-type-start-kwds c-primitive-type-kwds) (#1="bool" c-type-start-kwds c-primitive-type-kwds) ("namespace" c-other-kwds) ("by" c-other-kwds) ("let" c-other-kwds) ("when" c-other-kwds) ("group" c-other-kwds) ("descending" c-other-kwds) ("ascending" c-other-kwds) ("orderby" c-other-kwds) ("into" c-other-kwds) ("equals" c-other-kwds) ("on" c-other-kwds) ("in" c-other-kwds) ("join" c-other-kwds) ("where" c-other-kwds) ("from" c-other-kwds) ("select" c-other-kwds) ("goto" c-simple-stmt-kwds c-before-label-kwds) ("continue" c-simple-stmt-kwds c-before-label-kwds) ("break" c-simple-stmt-kwds c-before-label-kwds) ("delegate" c-modifier-kwds c-prefix-spec-kwds) ("const" c-modifier-kwds c-prefix-spec-kwds) ("this" c-primary-expr-kwds c-expr-kwds c-modifier-kwds c-prefix-spec-kwds) ("set" c-modifier-kwds c-prefix-spec-kwds) ("get" c-modifier-kwds c-prefix-spec-kwds) ("unsafe" c-modifier-kwds c-prefix-spec-kwds) ("extern" c-modifier-kwds c-prefix-spec-kwds) ("await" c-modifier-kwds c-prefix-spec-kwds) ("async" c-modifier-kwds c-prefix-spec-kwds) ("params" c-modifier-kwds c-prefix-spec-kwds) ("override" c-modifier-kwds c-prefix-spec-kwds) ("fixed" c-block-stmt-2-kwds c-modifier-kwds c-block-stmt-kwds c-prefix-spec-kwds) ("explicit" c-modifier-kwds c-prefix-spec-kwds) ("implicit" c-modifier-kwds c-prefix-spec-kwds) ("virtual" c-modifier-kwds c-prefix-spec-kwds) ("out" c-modifier-kwds c-prefix-spec-kwds) ("ref" c-modifier-kwds c-prefix-spec-kwds) ("sealed" c-modifier-kwds c-prefix-spec-kwds) ("volatile" c-modifier-kwds c-type-modifier-prefix-kwds c-prefix-spec-kwds) ("transient" c-modifier-kwds c-prefix-spec-kwds) ("event" c-modifier-kwds c-prefix-spec-kwds) ("static" c-modifier-kwds c-prefix-spec-kwds) ("readonly" c-type-modifier-kwds c-type-start-kwds c-modifier-kwds c-prefix-spec-kwds) ("internal" c-modifier-kwds c-prefix-spec-kwds) ("partial" c-modifier-kwds c-prefix-spec-kwds) ("public" c-modifier-kwds c-prefix-spec-kwds) ("protected" c-modifier-kwds c-prefix-spec-kwds) ("private" c-modifier-kwds c-prefix-spec-kwds) ("native" c-modifier-kwds c-prefix-spec-kwds) ("final" c-modifier-kwds c-prefix-spec-kwds) ("default" c-label-kwds c-modifier-kwds c-prefix-spec-kwds) ("abstract" c-modifier-kwds c-prefix-spec-kwds) ("new" c-type-modifier-kwds c-brace-id-list-kwds c-typeless-decl-kwds c-brace-list-decl-kwds c-type-start-kwds c-expr-kwds c-defun-type-name-decl-kwds c-typedef-decl-kwds c-inexpr-brace-list-kwds c-prefix-spec-kwds) ("enum" c-brace-id-list-kwds c-typeless-decl-kwds c-brace-list-decl-kwds c-defun-type-name-decl-kwds c-typedef-decl-kwds c-prefix-spec-kwds) ("interface" c-type-prefix-kwds c-class-decl-kwds c-colon-type-list-kwds c-typeless-decl-kwds c-type-start-kwds c-defun-type-name-decl-kwds c-typedef-decl-kwds c-flat-decl-block-kwds c-prefix-spec-kwds) ("struct" c-type-prefix-kwds c-class-decl-kwds c-colon-type-list-kwds c-typeless-decl-kwds c-type-start-kwds c-defun-type-name-decl-kwds c-typedef-decl-kwds c-flat-decl-block-kwds c-prefix-spec-kwds) ("class" c-type-prefix-kwds c-class-decl-kwds c-colon-type-list-kwds c-typeless-decl-kwds c-type-start-kwds c-defun-type-name-decl-kwds c-typedef-decl-kwds c-flat-decl-block-kwds c-prefix-spec-kwds)) make-vector setplist apply nconc #[257 "\211\300D\207" [t] 3 "\n\n(fn LANG-CONST)"] "\\(\\(?:a\\(?:bstract\\|s\\(?:cending\\|ync\\)?\\|wait\\)\\|b\\(?:ase\\|reak\\|y\\)\\|c\\(?:a\\(?:se\\|tch\\)\\|hecked\\|lass\\|on\\(?:st\\|tinue\\)\\)\\|d\\(?:e\\(?:fault\\|legate\\|scending\\)\\|o\\)\\|e\\(?:lse\\|num\\|quals\\|vent\\|x\\(?:plicit\\|te\\(?:nds\\|rn\\)\\)\\)\\|f\\(?:i\\(?:nal\\(?:ly\\)?\\|xed\\)\\|or\\(?:each\\)?\\|rom\\)\\|g\\(?:et\\|oto\\|roup\\)\\|i\\(?:mpl\\(?:ements\\|icit\\)\\|n\\(?:stanceof\\|t\\(?:er\\(?:face\\|nal\\)\\|o\\)\\)\\|[fns]\\)\\|join\\|l\\(?:et\\|ock\\)\\|n\\(?:a\\(?:\\(?:mespac\\|tiv\\)e\\)\\|ew\\)\\|o\\(?:n\\|perator\\|rderby\\|ut\\|verride\\)\\|p\\(?:ar\\(?:ams\\|tial\\)\\|r\\(?:ivate\\|otected\\)\\|ublic\\)\\|re\\(?:adonly\\|f\\|turn\\)\\|s\\(?:e\\(?:aled\\|\\(?:lec\\)?t\\)\\|t\\(?:atic\\|ruct\\)\\|uper\\|witch\\)\\|t\\(?:h\\(?:is\\|rows?\\)\\|r\\(?:ansient\\|y\\)\\|ypeof\\)\\|u\\(?:n\\(?:checked\\|safe\\)\\|sing\\)\\|v\\(?:irtual\\|olatile\\)\\|wh\\(?:e\\(?:n\\|re\\)\\|ile\\)\\|yield\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\(\\(\\(?:base\\|new\\|operator\\|this\\)\\)\\([^[:alnum:]_$]\\|$\\)\\|\\(\\(?:\\+\\+\\|--\\)\\)\\|\\([+-]\\)\\|\\((\\)\\)\\|[[:alpha:]_@]\\|\\.?[0-9]\\|[!#~]\\|\\s\"\\|\\s|" 4 5 6 "\\([{}(;,<]+\\)" "\\([{}(;,<]+\\)\\|define[ 	]+[a-zA-Z0-9_]+\\([^(a-zA-Z0-9_]\\|$\\)" (40) "^!\"%-'+\\-/:-?[-^`{-~" "\\(\\`a\\`\\)\\|\\(a\\(?:bstract\\|sync\\|wait\\)\\|const\\|de\\(?:fault\\|legate\\)\\|e\\(?:vent\\|x\\(?:plicit\\|tern\\)\\)\\|fi\\(?:nal\\|xed\\)\\|get\\|i\\(?:mplicit\\|nternal\\)\\|n\\(?:ative\\|ew\\)\\|o\\(?:ut\\|verride\\)\\|p\\(?:ar\\(?:ams\\|tial\\)\\|r\\(?:ivate\\|otected\\)\\|ublic\\)\\|re\\(?:adonly\\|f\\)\\|s\\(?:e\\(?:aled\\|t\\)\\|tatic\\)\\|t\\(?:his\\|ransient\\)\\|unsafe\\|v\\(?:irtual\\|olatile\\)\\)\\>\\([^_]\\|$\\)" "\\([[()]\\)" "{\\|\\(\\(?:\\(?:extend\\|implement\\|throw\\)s\\)\\)\\([^[:alnum:]_$]\\|$\\)" "\\({\\|\\(\\(?:\\(?:extend\\|implement\\|throw\\)s\\)\\)\\([^[:alnum:]_$]\\|$\\)\\)\\|[;,]" "\\(\\[\\(\\s \\|[\n]\\)*\\]\\|\\?\\)" boundp #21="font-lock-extra-types" delq #[257 "\300\301\"\205 \211\207" [string-match #22="[][.*+?^$\\]"] 4 "\n\n(fn RE)"] #[257 "\300\301\"?\205	 \211\207" [string-match #23="[][.*+?^$\\]"] 4 "\n\n(fn RE)"] #24="\\<\\(" c-concat-separated c-make-keywords-re append (#1# #2# #3# #4# #5# #6# #7# #8# #9# #10# #11# #12# #13# #14# #15# #16# #17#) #25="\\|" #26="\\)\\>" "[<;{},|+&>)-]" "\\<\\(\\(?:enum\\|new\\)\\)\\>[^][{};/#=]*{" "\\([[:alpha:]_@][[:alnum:]_$]\\{,1000\\}\\)\\(\\s \\|[\n]\\)*\\(\\(//[^\n]*[\n]\\|/\\*[^*\n]*\\(\\*+[^*\n/][^*\n]*\\)*\\*+/\\|\\\\[\n]\\|\\s!\\S!*\\s!\\)\\(\\s \\|[\n]\\)*\\)*<" "\\(\\([[:alpha:]_@][[:alnum:]_$]\\{,1000\\}\\)\\(\\s \\|[\n]\\)*\\(\\(//[^\n]*[\n]\\|/\\*[^*\n]*\\(\\*+[^*\n/][^*\n]*\\)*\\*+/\\|\\\\[\n]\\|\\s!\\S!*\\s!\\)\\(\\s \\|[\n]\\)*\\)*<\\)\\|\\s)" "\\([{};]+\\)" "\\(\\(?:a\\(?:bstract\\|s\\(?:cending\\|ync\\)?\\|wait\\)\\|b\\(?:ase\\|ool\\|reak\\|y\\(?:te\\)?\\)\\|c\\(?:atch\\|h\\(?:ar\\|ecked\\)\\|lass\\|on\\(?:st\\|tinue\\)\\)\\|d\\(?:e\\(?:cimal\\|legate\\|scending\\)\\|o\\(?:uble\\)?\\)\\|e\\(?:lse\\|num\\|quals\\|vent\\|x\\(?:plicit\\|te\\(?:nds\\|rn\\)\\)\\)\\|f\\(?:alse\\|i\\(?:nal\\(?:ly\\)?\\|xed\\)\\|loat\\|or\\(?:each\\)?\\|rom\\)\\|g\\(?:et\\|oto\\|roup\\)\\|i\\(?:mpl\\(?:ements\\|icit\\)\\|n\\(?:stanceof\\|t\\(?:er\\(?:face\\|nal\\)\\|o\\)?\\)\\|[fns]\\)\\|join\\|l\\(?:et\\|o\\(?:ck\\|ng\\)\\)\\|n\\(?:a\\(?:\\(?:mespac\\|tiv\\)e\\)\\|ew\\|ull\\)\\|o\\(?:bject\\|n\\|perator\\|rderby\\|ut\\|verride\\)\\|p\\(?:ar\\(?:ams\\|tial\\)\\|r\\(?:ivate\\|otected\\)\\|ublic\\)\\|re\\(?:adonly\\|f\\|turn\\)\\|s\\(?:byte\\|e\\(?:aled\\|\\(?:lec\\)?t\\)\\|hort\\|t\\(?:atic\\|r\\(?:ing\\|uct\\)\\)\\|uper\\|witch\\)\\|t\\(?:h\\(?:is\\|rows?\\)\\|r\\(?:ansient\\|ue\\|y\\)\\|ypeof\\)\\|u\\(?:int\\|long\\|n\\(?:checked\\|safe\\)\\|s\\(?:hort\\|ing\\)\\)\\|v\\(?:a\\(?:lue\\|r\\)\\|irtual\\|o\\(?:id\\|latile\\)\\)\\|wh\\(?:e\\(?:n\\|re\\)\\|ile\\)\\|yield\\)\\)\\([^[:alnum:]_$]\\|$\\)" c-nonlabel-nonparen-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 (list nil font-lock-type-face c-reference-face-name font-lock-keyword-face font-lock-preprocessor-face) ((font-lock-comment-end-skip (c-lang-const c-font-lock-comment-end-skip)) (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-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 #18#))) (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-functions' 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) "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-single-quotes-quote-strings (c-lang-const c-single-quotes-quote-strings) "Whether the language uses single quotes for multi-char strings.\n\nNote that to set up a language to use this, additionally:\n(i) the syntax of \"'\" must be \"string quote\" (7);\n(ii) the language's value of `c-has-quoted-numbers' must be nil;\n(iii) the language's value of `c-get-state-before-change-functions' may not\n  contain `c-parse-quotes-before-change';\n(iv) the language's value of `c-before-font-lock-functions' may not contain\n  `c-parse-quotes-after-change'.") (c-string-delims (c-lang-const c-string-delims) nil) (c-ml-string-non-punc-skip-chars (c-lang-const c-ml-string-non-punc-skip-chars) nil) (c-ml-string-opener-re (c-lang-const c-ml-string-opener-re) "If non-nil, a regexp that matches a multi-line string opener.\nIt may also match context.\n\nSuch an opener must be at least 2 characters long, and must\ncontain a \" character.  (match-string 1) matches the actual\ndelimiter and (match-string 2) matches the actual \".  If a\ndelimiter contains several \"s, it is recommended to configure\nthe first of them as \"the\" \".") (c-ml-string-max-opener-len (c-lang-const c-ml-string-max-opener-len) "If non-nil, the maximum length of a multi-line string opener.") (c-ml-string-any-closer-re (c-lang-const c-ml-string-any-closer-re) "If non-nil, a regexp that matches any multi-line string closer.\nIt may also match context.\n\nA search for this regexp starting at the end of the corresponding\nopener must find the first closer as the first match.\n\nSuch a closer must include a \" character.  (match-string 1)\nmatches the actual delimiter and (match-string 2) matches the\nactual \".  If a delimiter contains several \"s, it is\nrecommended to regard the last of them as \"the\" \".") (c-ml-string-max-closer-len (c-lang-const c-ml-string-max-closer-len) "If non-nil, the maximum length of a multi-line string closer.\nThis must include the length of any \"context trailer\" following\nthe actual closer and any \"context leader\" preceding it.  This\nvariable is ignored when `c-ml-string-back-closer-re' is non-nil.") (c-ml-string-max-closer-len-no-leader (c-lang-const c-ml-string-max-closer-len-no-leader) "If non-nil, the maximum length of a ml string closer without its leader.\nBy \"leader\" is meant the context bytes preceding the actual\nmulti-line string closer, that part of\n`c-ml-string-any-closer-re''s match preceding (match-beginning 1).") (c-ml-string-back-closer-re (c-lang-const c-ml-string-back-closer-re) "A regexp to move back out of a putative ml closer point is in.\n\nThis variable need only be non-nil for languages with multi-line\nstring closers that can contain an indefinite length \"leader\"\npreceding the actual closer.  It was designed for formats where\nan unbounded number of \\s or \"s might precede the closer\nproper, for example in Pike Mode or csharp-mode.\n\nIf point is in a putative multi-line string closer, a backward\nregexp search with `c-ml-string-back-closer-re' will leave point\nin a \"safe place\", from where a forward regexp search with\n`c-ml-string-any-closer-re' can test whether the original\nposition was inside an actual closer.\n\nWhen non-nil, this variable should end in \"\\\\\\==\".  Note that\nsuch a backward search will match a minimal string, so a\n\"context character\" is probably needed at the start of the\nregexp.  The value for csharp-mode would be something like\n\"\\\\(:?\\\\`\\\\|[^\\\"]\\\\)\\\"*\\\\\\==\".") (c-make-ml-string-closer-re-function (c-lang-const c-make-ml-string-closer-re-function) "If non-nil, a function which creates a closer regexp matching an opener.\n\nSuch a function is given one argument, a multi-line opener (a\nstring), and returns a regexp which will match the corresponding\ncloser.  When this regexp matches, (match-string 1) should be the\nactual closing delimiter, and (match-string 2) the \"active\" \"\nit contains.\n\nA forward regexp search for this regexp starting at the end of\nthe opener must find the closer as its first match.") (c-make-ml-string-opener-re-function (c-lang-const c-make-ml-string-opener-re-function) "If non-nil, a function which creates an opener regexp matching a closer.\n\nSuch a function is given one argument, a multi-line closer (a\nstring), and returns a regexp which will match the corresponding\nopener.  When this regexp matches, (match-string 1) should be the\nactual opening delimiter, and (match-string 2) the \"active\" \"\nit contains.\n\nA backward regexp search for this regexp starting at the start of\nthe closer might not find the opener as its first match, should\nthere be copies of the opener contained in the multi-line string.") (c-ml-string-cpp-or-opener-re (c-lang-const c-ml-string-cpp-or-opener-re) nil) (c-cpp-or-ml-match-offset (c-lang-const c-cpp-or-ml-match-offset) nil) (c-has-quoted-numbers (c-lang-const c-has-quoted-numbers) "Whether the language has numbers quoted like 4'294'967'295.") (c-has-compound-literals (c-lang-const c-has-compound-literals) "Whether literal initializers {...} are used other than in initializations.") (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-nonsymbol-key (c-lang-const c-nonsymbol-key) "Regexp that matches any character that can't be part of a symbol.\nIt's usually appended to other regexps to avoid matching a prefix.\nIt's assumed to not contain any submatchers.") (c-opt-identifier-concat-key (c-lang-const c-opt-identifier-concat-key) nil) (c-opt-identifier-prefix-key (c-lang-const c-opt-identifier-prefix-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-module-name-re (c-lang-const c-module-name-re) "This regexp matches (a component of) a module name.\nCurrently (2022-09) just C++ Mode uses this.") (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.\n\nNote that from CC Mode 5.36, this character use is obsolete,\nhaving been superseded by the \"multi-line string\" mechanism.\nIf both mechanisms are set for a language, the newer one prevails\nover the old `c-multiline-string-start-char'.  See the variables\nin the page containing `c-ml-string-opener-re' in cc-langs.el for\nfurther directions.") (c-string-innards-re-alist (c-lang-const c-string-innards-re-alist) nil) (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-cpp-include-key (c-lang-const c-cpp-include-key) nil) (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-operator-re (c-lang-const c-operator-re) nil) (c-non-after-{}-ops-re (c-lang-const c-non-after-{}-ops-re) 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-<-pseudo-digraph-cont-regexp (c-lang-const c-<-pseudo-digraph-cont-regexp) "Regexp matching the continuation of a pseudo digraph starting \"<\".\nThis is used only in C++ Mode, where \"<::\" is handled as a\ntemplate opener followed by the \"::\" operator - usually.") (c-<-pseudo-digraph-cont-len (c-lang-const c-<-pseudo-digraph-cont-len) "The maximum length of the main bit of a `c-<-pseudo-digraph-cont-regexp' match.\nThis doesn't count the merely contextual bits of the regexp match.") (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-boundary-skip-chars (c-lang-const c-stmt-boundary-skip-chars) nil) (c-stmt-boundary-skip-list (c-lang-const c-stmt-boundary-skip-list) nil) (c-stmt-delim-chars-with-comma (c-lang-const c-stmt-delim-chars-with-comma) nil) (c-stmt-boundary-skip-chars-with-comma (c-lang-const c-stmt-boundary-skip-chars-with-comma) nil) (c-stmt-boundary-skip-list-with-comma (c-lang-const c-stmt-boundary-skip-list-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-block-comment-awkward-chars (c-lang-const c-block-comment-awkward-chars) "List of characters which, inside a block comment, could be the first\ncharacter of a double character construct.  This doesn't include\nbackslash.") (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-last-c-comment-end-on-line-re (c-lang-const c-last-c-comment-end-on-line-re) "Regexp which matches the last block comment ender on the\ncurrent line, if any, or nil in those languages without block\ncomments.  When a match is found, submatch 1 contains the comment\nender.") (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-self-contained-typename-key (c-lang-const c-self-contained-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-id-suffix-ws-ids-key (c-lang-const c-class-id-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 (elt) (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-defun-type-name-decl-key (c-lang-const c-defun-type-name-decl-key) nil) (c-typedef-decl-key (c-lang-const c-typedef-decl-key) nil) (c-using-key (c-lang-const c-using-key) nil) (c-no-type-key (c-lang-const c-no-type-key) nil) (c-equals-type-clause-key (c-lang-const c-equals-type-clause-key) nil) (c-equals-nontype-decl-key (c-lang-const c-equals-nontype-decl-key) nil) (c-fun-name-substitute-key (c-lang-const c-fun-name-substitute-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-sub-colon-type-list-re (c-lang-const c-sub-colon-type-list-re) "Regexp matching buffer content that may come between a keyword in\n`c-colon-type-list-kwds' and a putative colon, or nil if there are no\nsuch keywords.  Exception: it does not match any C++ attributes.") (c-paren-nontype-key (c-lang-const c-paren-nontype-key) nil) (c-pre-concept-<>-key (c-lang-const c-pre-concept-<>-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-block-stmt-hangon-key (c-lang-const c-block-stmt-hangon-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-module-key (c-lang-const c-module-key) nil) (c-constant-key (c-lang-const c-constant-key) 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-std-abbrev-keywords (c-lang-const c-std-abbrev-keywords) "List of keywords which may need to cause electric indentation.") (c-keywords-regexp (c-lang-const c-keywords-regexp) nil) (c-stmt-block-only-keywords-regexp (c-lang-const c-stmt-block-only-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-per-++---match (c-lang-const c-per-++---match) nil) (c-per-&*+--match (c-lang-const c-per-&*+--match) nil) (c-per-\(-match (c-lang-const c-per-\(-match) 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-dposr-cpp-macro-depth (c-lang-const c-dposr-cpp-macro-depth) nil) (c-cast-parens (c-lang-const c-cast-parens) nil) (c-block-prefix-charset (c-lang-const c-block-prefix-charset) nil) (c-maybe-typeless-specifier-re (c-lang-const c-maybe-typeless-specifier-re) "Regexp matching keywords which might, but needn't, declare variables with\nno explicit type given, or nil in languages without such specifiers.") (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 #21#)) (c-mode-var "font-lock-extra-types"))) (regexp-strings (delq nil (mapcar (lambda (re) (when (string-match #22# re) re)) extra-types))) (plain-strings (delq nil (mapcar (lambda (re) (unless (string-match #23# re) re)) extra-types)))) (concat #24# (c-concat-separated (append (list (c-make-keywords-re nil (append (c-lang-const c-primitive-type-kwds) plain-strings))) regexp-strings) #25#) #26#)) 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) nil) (c-pre-brace-non-bracelist-key (c-lang-const c-pre-brace-non-bracelist-key) "A regexp matching tokens which, preceding a brace, make it a non-bracelist.") (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-bare-brace-inits (c-lang-const c-recognize-bare-brace-inits) "Non-nil means that brace initializers without \"=\" exist,\ni.e. constructs like\n\nint foo[] {1, 2, 3};\n\nin addition to the more classic\n\nint foo[] = {1, 2, 3};") (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-nonparen-token-key (c-lang-const c-nonlabel-nonparen-token-key) "Regexp matching things that can't occur in generic colon labels,\nneither in a statement nor in a declaration context, with the\nexception of an open parenthesis.  The regexp is tested at the\nbeginning of every sexp in a suspected label, i.e. before \":\".\nOnly 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.")) 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.35.2" signal c-common-init c-doc-comment-style ((csharp-mode . codedoc)) run-mode-hooks c-mode-common-hook #[0 "\300 \207" [c-update-modeline] 1] csharp-mode-hook c-version delayed-after-hook-functions] 13 (#$ . 51506) nil])
(defvar csharp-ts-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [csharp-ts-mode-hook variable-documentation put "Hook run after entering C# mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp csharp-ts-mode-map definition-name csharp-ts-mode] 4)
(defvar csharp-ts-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\300!\204. \303\300\307\310#\210\311\300\306\300!\203& \312\202, \313\300\312\"\210\"\210\300\302N\204< \303\300\302\304\314!#\210\303\310\315\316#\207" [csharp-ts-mode-abbrev-table csharp-ts-mode-map variable-documentation put purecopy "Keymap for `csharp-ts-mode'." boundp definition-name csharp-ts-mode defvar-1 nil define-abbrev-table "Abbrev table for `csharp-ts-mode'." derived-mode-parent prog-mode] 5)#@229 Major mode for editing C# code.

In addition to any hooks its parent mode `prog-mode' might have run,
this mode runs the hook `csharp-ts-mode-hook', as the final or
penultimate step during initialization.

\{csharp-ts-mode-map}
(defalias 'csharp-ts-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204' \316\317 \"\210\320\f\321\"\204; \f=\204; \322\f\321C#\210\323!\210\324\325 !\210\f\326\327!\204P \330\331!\210\332\327!\210\333 \210\306\334!\210/\306\335!\210\336\337\"\306\340!\210\341 \306\342!\210\343\"\306\344!\2100$\306\345!\210\346%\306\347!\210\350'\351 \210\352\353\354\")\210\355\356!\207" [delay-mode-hooks major-mode mode-name csharp-ts-mode-map csharp-ts-mode-abbrev-table local-abbrev-table make-local-variable t prog-mode csharp-ts-mode "C#" mode-class put keymap-parent set-keymap-parent current-local-map abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table csharp--make-mode-syntax-table treesit-ready-p c-sharp error "Tree-sitter for C# isn't available" treesit-parser-create c-ts-common-comment-setup treesit-simple-indent-rules electric-indent-chars append "{}():;," treesit-defun-type-regexp "declaration" treesit-defun-name-function csharp-ts-mode--defun-name treesit-font-lock-settings treesit-font-lock-feature-list ((comment definition) (keyword string type directives) (constant escape-sequence expression literal property) (function bracket delimiter error)) treesit-simple-imenu-settings (("Class" "\\`class_declaration\\'" nil nil) ("Interface" "\\`interface_declaration\\'" nil nil) ("Enum" "\\`enum_declaration\\'" nil nil) ("Record" "\\`record_declaration\\'" nil nil) ("Struct" "\\`struct_declaration\\'" nil nil) ("Method" "\\`method_declaration\\'" nil nil)) treesit-major-mode-setup add-to-list auto-mode-alist ("\\.cs\\'" . csharp-ts-mode) run-mode-hooks csharp-ts-mode-hook csharp-ts-mode--indent-rules csharp-ts-mode--font-lock-settings] 5 (#$ . 117738) nil])
(provide 'csharp-mode)
