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


#@54 Keywords for `font-lock-defaults' in a generic mode.
(defvar generic-font-lock-keywords nil (#$ . 83))
(make-variable-buffer-local 'generic-font-lock-keywords)#@131 A list of mode names for `generic-mode'.
Do not add entries to this list directly; use `define-generic-mode'
instead (which see).
(defvar generic-mode-list nil (#$ . 249))#@1697 Create a new generic mode MODE.

A "generic" mode is a simple major mode with basic support for
comment syntax and Font Lock mode, but otherwise does not have
any special keystrokes or functionality available.

MODE is the name of the command for the generic mode; don't quote it.
The optional DOCSTRING is the documentation for the mode command.  If
you do not supply it, `define-generic-mode' uses a default
documentation string instead.

COMMENT-LIST is a list in which each element is either a character, a
string of one or two characters, or a cons cell.  A character or a
string is set up in the mode's syntax table as a "comment starter".
If the entry is a cons cell, the `car' is set up as a "comment
starter" and the `cdr' as a "comment ender".  (Use nil for the
latter if you want comments to end at the end of the line.)  Note that
the syntax table has limitations about what comment starters and
enders are actually possible.

KEYWORD-LIST is a list of keywords to highlight with
`font-lock-keyword-face'.  Each keyword should be a string.

FONT-LOCK-LIST is a list of additional expressions to highlight.  Each
element of this list should have the same form as an element of
`font-lock-keywords'.

AUTO-MODE-LIST is a list of regular expressions to add to
`auto-mode-alist'.  These regular expressions are added when Emacs
runs the macro expansion.

FUNCTION-LIST is a list of functions to call to do some additional
setup.  The mode command calls these functions just before it runs the
mode hook `MODE-hook'.

See the file generic-x.el for some examples of `define-generic-mode'.

(fn MODE COMMENT-LIST KEYWORD-LIST FONT-LOCK-LIST AUTO-MODE-LIST FUNCTION-LIST &optional DOCSTRING)
(defalias 'define-generic-mode '(macro . #[1798 "\242\300=\203 \301!\262\302!\303\304\305\306#!\307\310\311E\312\313D\310\314\315\313\300DEEE\316\f\317\206> \320	\321R\322\323\300D\257\257F\207" [quote eval symbol-name capitalize replace-regexp-in-string "-mode\\'" "" progn add-to-list 'generic-mode-list dolist re 'auto-mode-alist cons defun nil " mode.\nThis a generic mode defined with `define-generic-mode'.\nIt runs `" "-hook' as the last thing it does." (interactive) generic-mode-internal] 23 (#$ . 428)]))
(byte-code "\300\301\302\303#\210\304\301\305\306#\304\301\307\310#\300\207" [put define-generic-mode edebug-form-spec (sexp def-form def-form def-form form def-form [&optional stringp] &rest [keywordp form]) function-put lisp-indent-function 1 doc-string-elt 7] 5)#@98 Go into the generic mode MODE.

(fn MODE COMMENT-LIST KEYWORD-LIST FONT-LOCK-LIST FUNCTION-LIST)
(defalias 'generic-mode-internal #[1285 "\304!\305\306\307\310#!\311\312P!\313 \210\314!\210\203- \315\316\317\"\320Q\nB\321\322\323\"\210\324!\207" [major-mode mode-name generic-font-lock-keywords font-lock-defaults symbol-name capitalize replace-regexp-in-string "-mode\\'" "" intern "-hook" kill-all-local-variables generic-mode-set-comments "\\_<" regexp-opt t "\\_>" (generic-font-lock-keywords) mapc funcall run-mode-hooks] 12 (#$ . 2942)])#@349 Enter generic mode MODE.

Generic modes provide basic comment and font-lock functionality
for "generic" files.  (Files which are too small to warrant their
own mode, but have comment characters, keywords, and the like.)

To define a generic-mode, use the function `define-generic-mode'.
Some generic modes are defined in `generic-x.el'.

(fn MODE)
(defalias 'generic-mode #[257 "\300! \207" [intern] 3 (#$ . 3511) (byte-code "\301\302\303\304$C\207" [generic-mode-list completing-read "Generic mode: " nil t] 5)])#@21 

(fn COMMENT-LIST)
(defalias 'generic--normalize-comments #[257 "\300\211\203H \211@\300:\203 A\262@\262\301!\203! \302!\262\301!\203/ \302!\262\2029 \211G\303U\2039 \304\262BB\262\210A\266\202\202 \210\211\237\207" [nil characterp char-to-string 0 "\n"] 7 (#$ . 4032)])#@70 Set up comment functionality for generic mode.

(fn ST COMMENT-LIST)
(defalias 'generic-set-comment-syntax #[514 "\301\211\211\211\203\314 \211@\211\242\243\302\"A\206: \302\"A\206: \303\304\"\204- \304\202: \303\305\"\2049 \305\202: \306BB\262BB\262G\307U\203_ \310\311H\312P#\210\202\207 \311H\307H\302\"A\313PB	B\262	\211\302\"A\314PPB	B\262	\266G\307U\203\235 \310\311H\315P#\266\202\305 \311H\307H\302\"A\316PPB	B\262	\211\302\"A\317PB	B\262	\266A\266\202\202 \210\320 p\321\322#\216\323!\210\237\211\205\372 \211@\310@\324@z!\325AQ\n#\210A\266\202\202\335 )\262\266\202)\207" [comment-start nil assoc rassoc "" "b" "c" 1 modify-syntax-entry 0 "< " "1" "2" ">" "3" "4" syntax-table make-closure #[0 "r\300q\210\302\301!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table char-to-string " "] 15 (#$ . 4329)])#@21 

(fn COMMENT-LIST)
(defalias 'generic-set-comment-vars #[257 "\211\205< \304\300!\210\211@@\304\301!\210\211@A\211\305\230\203 \306\202 \211\262\304\302!\210\307\310\311\"!\312P\304\303!\210\313\307\310\314\"!P\211\207" [comment-start comment-end comment-start-skip comment-end-skip make-local-variable "\n" "" regexp-opt mapcar car "+[ 	]*" "[ 	]*" cdr] 6 (#$ . 5220)])#@67 Set up comment functionality for generic mode.

(fn COMMENT-LIST)
(defalias 'generic-mode-set-comments #[257 "\300 \301!\302\"\210\303!\210\304!\207" [make-syntax-table generic--normalize-comments generic-set-comment-syntax generic-set-comment-vars set-syntax-table] 6 (#$ . 5606)])#@75 Imenu support for [KEYWORD] constructs found in INF, INI and Samba files.
(defalias 'generic-bracket-support #[0 "\302\300!\210\303\302\301!\210\304\211\207" [imenu-generic-expression imenu-case-fold-search make-local-variable ((nil "^\\[\\(.*\\)\\]" 1)) t] 2 (#$ . 5899)])#@441 Return a `font-lock-keywords' construct that highlights KEYWORD-LIST.
KEYWORD-LIST is a list of keyword strings that should be
highlighted with face FACE.  This function calculates a regular
expression that matches these keywords and concatenates it with
PREFIX and SUFFIX.  Then it returns a construct based on this
regular expression that can be used as an element of
`font-lock-keywords'.

(fn KEYWORD-LIST FACE &optional PREFIX SUFFIX)
(defalias 'generic-make-keywords-list #[1026 "<\204	 \300\301!\210\302\303\304\"\305\260\306E\207" [error "Keywords argument must be a list of strings" "\\_<" regexp-opt t "\\_>" 1] 9 (#$ . 6181)])
(byte-code "\300\301\302\303#\210\304\305!\207" [make-obsolete generic-make-keywords-list regexp-opt "24.4" provide generic] 4)
