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



(byte-code "\300\301\302\303\304\305\306\307\310\311&	\210\312\313\314\315\316DD\317\320\321\322\323&\210\312\324\314\315\325DD\326\322\327%\207" [custom-declare-group m4 nil "m4 code editing commands for Emacs." :link (custom-group-link :tag "Font Lock Faces group" font-lock-faces) :prefix "m4-" :group languages custom-declare-variable m4-program funcall function #[0 "\300\207" ["m4"] 1 #1=""] "File name of the m4 executable.\nIf m4 is not in your PATH, set this to an absolute file name." :version "24.4" :type file m4-program-options #[0 "\300\207" [nil] 1 #1#] "Options to pass to `m4-program'." (repeat string)] 10)#@38 List of valid m4 macros for M4 mode.
(defconst m4--macro-list '("__file__" "__gnu__" "__line__" "__os2__" "__program__" "__unix__" "__windows__" "argn" "array" "array_set" "builtin" "capitalize" "changecom" "changequote" "changeword" "cleardivert" "cond" "copy" "curry" "debugfile" "debugmode" "decr" "define" "define_blind" "defn" "divert" "divnum" "dnl" "downcase" "dquote" "dquote_elt" "dumpdef" "errprint" "esyscmd" "eval" "example" "exch" "fatal_error" "file" "foreach" "foreachq" "forloop" "format" "gnu" "ifdef" "ifelse" "include" "incr" "index" "indir" "join" "joinall" "len" "line" "m4exit" "m4wrap" "maketemp" "mkstemp" "nargs" "os2" "patsubst" "popdef" "pushdef" "quote" "regexp" "rename" "reverse" "shift" "sinclude" "stack_foreach" "stack_foreach_lifo" "stack_foreach_sep" "stack_foreach_sep_lifo" "substr" "syscmd" "sysval" "traceoff" "traceon" "translit" "undefine" "undivert" "unix" "upcase" "windows") (#$ . 709))#@43 Default `font-lock-keywords' for M4 mode.
(defvar m4-font-lock-keywords '(("\\(\\_<\\(m4_\\)?dnl\\_>\\).*$" (0 font-lock-comment-face t)) ("\\$[*#@0-9]" . font-lock-variable-name-face) ("\\$@" . font-lock-variable-name-face) ("\\$\\*" . font-lock-variable-name-face) ("\\_<\\(m4_\\)?\\(?:__\\(?:\\(?:file\\|gnu\\|line\\|os2\\|program\\|unix\\|windows\\)__\\)\\|ar\\(?:gn\\|ray\\(?:_set\\)?\\)\\|builtin\\|c\\(?:apitalize\\|hange\\(?:com\\|quote\\|word\\)\\|leardivert\\|o\\(?:nd\\|py\\)\\|urry\\)\\|d\\(?:e\\(?:bug\\(?:\\(?:fil\\|mod\\)e\\)\\|cr\\|f\\(?:ine\\(?:_blind\\)?\\|n\\)\\)\\|iv\\(?:ert\\|num\\)\\|nl\\|owncase\\|quote\\(?:_elt\\)?\\|umpdef\\)\\|e\\(?:rrprint\\|syscmd\\|val\\|x\\(?:ample\\|ch\\)\\)\\|f\\(?:atal_error\\|ile\\|or\\(?:eachq?\\|loop\\|mat\\)\\)\\|gnu\\|i\\(?:f\\(?:def\\|else\\)\\|n\\(?:c\\(?:lude\\|r\\)\\|d\\(?:ex\\|ir\\)\\)\\)\\|join\\(?:all\\)?\\|l\\(?:en\\|ine\\)\\|m\\(?:4\\(?:exit\\|wrap\\)\\|\\(?:ake\\|ks\\)temp\\)\\|nargs\\|os2\\|p\\(?:atsubst\\|\\(?:op\\|ush\\)def\\)\\|quote\\|re\\(?:gexp\\|\\(?:nam\\|vers\\)e\\)\\|s\\(?:hift\\|include\\|tack_foreach\\(?:_\\(?:lifo\\|sep\\(?:_lifo\\)?\\)\\)?\\|ubstr\\|ys\\(?:cmd\\|val\\)\\)\\|tra\\(?:ceo\\(?:ff\\|n\\)\\|nslit\\)\\|u\\(?:n\\(?:d\\(?:efine\\|ivert\\)\\|ix\\)\\|pcase\\)\\|windows\\)\\_>" . font-lock-keyword-face)) (#$ . 1645))
(byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable m4-mode-hook funcall function #[0 "\300\207" [nil] 1 ""] "Hook called by `m4-mode'." :type hook] 6)#@39 Syntax table used while in `m4-mode'.
(defvar m4-mode-syntax-table (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\313#\210\301\315\316#\210\301\317\313#\210\301\320\313#\210\207" [make-syntax-table modify-syntax-entry 96 "('" 39 ")`" 35 "<\n" 10 ">#" 123 "." 125 95 "_" 42 34] 5) (#$ . 3144))#@60 Return non-nil if POS is inside a quoted string.

(fn POS)
(defalias 'm4--quoted-p #[257 "\300\301\212\302!)8\211\203 \211@\211f\303=\203 \304\262A\266\202\202 \210\207" [nil 9 syntax-ppss 96 t] 6 (#$ . 3515)])
(defconst m4-syntax-propertize #[514 "b\210`W\205- \300\301\302#\205- \303\224\303\225\304\303\224!\205 \305\211\203( \306\307$\210\266\202 \207" [re-search-forward "#" t 0 m4--quoted-p (1) put-text-property syntax-table] 10 "\n\n(fn START END)"])#@21 Keymap for M4 Mode.
(defvar m4-mode-map (define-keymap "C-c C-b" 'm4-m4-buffer "C-c C-r" 'm4-m4-region "C-c C-c" 'comment-region) (#$ . 3994))#@19 Menu for M4 Mode.
(defvar m4-mode-menu nil (#$ . 4142))
(easy-menu-do-define 'm4-mode-menu m4-mode-map "Menu for M4 Mode." '("M4" ["M4 Region" m4-m4-region :help "Send contents of the current region to m4"] ["M4 Buffer" m4-m4-buffer :help "Send contents of the current buffer to m4"] ["Comment Region" comment-region :help "Comment Region"]))#@44 Send contents of the current buffer to m4.
(defalias 'm4-m4-buffer #[0 "\302ed\303\304	B\305#\306\307%\210\310\306!\207" [m4-program m4-program-options shell-command-on-region mapconcat identity " " "*m4-output*" nil switch-to-buffer-other-window] 7 (#$ . 4490) nil])#@44 Send contents of the current region to m4.
(defalias 'm4-m4-region #[0 "\302`\303 \304\305	B\306#\307\310%\210\311\307!\207" [m4-program m4-program-options shell-command-on-region mark mapconcat identity " " "*m4-output*" nil switch-to-buffer-other-window] 7 (#$ . 4764) nil])#@54 Return the name of the M4 function at point, or nil.
(defalias 'm4-current-defun-name #[0 "\212\300\301\302\303#\205\f \304\305!)\207" [re-search-backward "^\\(\\(m4_\\)?define\\|A._DEFUN\\)(\\[?\\([A-Za-z0-9_]+\\)" nil t match-string-no-properties 3] 4 (#$ . 5047)])
(defvar m4-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [m4-mode-hook variable-documentation put "Hook run after entering m4 mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp m4-mode-map definition-name m4-mode] 4)
(defvar m4-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" [m4-mode-abbrev-table m4-mode-map variable-documentation put purecopy "Keymap for `m4-mode'." boundp m4-mode-syntax-table definition-name m4-mode defvar-1 nil make-syntax-table "Syntax table for `m4-mode'." define-abbrev-table "Abbrev table for `m4-mode'." derived-mode-parent prog-mode] 5)#@220 A major mode to edit m4 macro files.

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

\{m4-mode-map}
(defalias 'm4-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#\306\331!\210\332\306\333!\210\307\306\334!\210\335\306\336!\210$\306\337!\210\340)\341\342!\207" [delay-mode-hooks major-mode mode-name m4-mode-map m4-mode-syntax-table m4-mode-abbrev-table make-local-variable t prog-mode m4-mode "m4" 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 comment-start "#" parse-sexp-ignore-comments add-log-current-defun-function m4-current-defun-name syntax-propertize-function font-lock-defaults (m4-font-lock-keywords nil) run-mode-hooks m4-mode-hook local-abbrev-table m4-syntax-propertize] 5 (#$ . 6357) nil])
(provide 'm4-mode)
