;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:51:24 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/progmodes/meta-mode.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`meta-mode.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\302\303\304\305\306\307%\207" [require easymenu custom-declare-group meta-font nil "Major mode for editing Metafont or MetaPost sources." :group languages] 6)
#@64 Default expressions to highlight in Metafont or MetaPost mode.
(defvar meta-font-lock-keywords (byte-code "\306\307\310\311\312\313\314\315\"#\316\317B\320\f\321\322R\323B\320\321\324\325\326\260\327B\320	\321\330R\331B\320\n\321\332R\333B\334\335B\320\321Q\336B\320\"\321Q\336B\320\321Q\336B\320#\321\324R\337B\340\341B\257.\207" [syntactic-keywords type-keywords args-keywords macro-keywords-2 macro-keywords-1 end-keywords "\\(input\\|generate\\)" "\\(begin\\(char\\|fig\\|graph\\|logochar\\)\\|\\cmchar\\|dcchar\\|ecchar\\)" "\\(end\\(char\\|fig\\|graph\\)\\)" "\\(def\\|let\\|mode_def\\|vardef\\)" "\\(primarydef\\|secondarydef\\|tertiarydef\\)" "\\(expr\\|primary\\|s\\(econdary\\|uffix\\)\\|te\\(rtiary\\|xt\\)\\)" "\\(boolean\\|color\\|n\\(ewinternal\\|umeric\\)\\|p\\(a\\(ir\\|th\\)\\|en\\|icture\\)\\|string\\|transform\\)" "\\(and\\|b\\(egingroup\\|ye\\)\\|d\\(ef\\|ownto\\)\\|e\\(lse\\(\\|if\\)\\|nd\\(\\|def\\|for\\|group\\|input\\)\\|rr\\(help\\|message\\)\\|x\\(it\\(if\\|unless\\)\\|pandafter\\)\\)\\|f\\(alse\\|i\\|or\\(\\|ever\\|suffixes\\)\\)\\|generate\\|i\\(ff?\\|n\\(ner\\|put\\|terim\\)\\)\\|known\\|let\\|m\\(essage\\|ode_def\\)\\|n\\(ot\\|umspecial\\)\\|o\\(r\\|uter\\)\\|re\\(ad\\(from\\|string\\)\\|lax\\)\\|s\\(ave\\|cantokens\\|pecial\\|tep\\)\\|t\\(hru\\|rue\\)\\|u\\(n\\(known\\|til\\)\\|pto\\)\\|vardef\\|w\\(ithin\\|rite\\)\\)" "\\(btex\\|verbatimtex\\)[ 	]+\\(.*\\)[ 	]+\\(etex\\)" ((1 font-lock-keyword-face) (2 font-lock-string-face) (3 font-lock-keyword-face)) "\\<" "\\>" "[ 	]+\\(\\sw+\\|\\s_+\\|\\s.+\\)" ((1 font-lock-keyword-face) (2 font-lock-function-name-face)) "[ 	]+\\(\\sw+\\)" "[ 	]*\\(\\sw+\\|\\s.+\\)" "[ 	]*\\(\\sw+\\)" ((1 font-lock-keyword-face) (2 font-lock-variable-name-face nil t) (3 font-lock-function-name-face nil t) (4 font-lock-variable-name-face nil t)) "\\([ 	]+\\(\\sw+\\)\\)*" ((1 font-lock-type-face) (font-lock-match-meta-declaration-item-and-skip-to-next (goto-char (match-end 1)) nil (1 font-lock-variable-name-face nil t))) "\\([ 	]+\\(\\sw+\\|\\s_+\\)\\)*" ((1 font-lock-type-face) (font-lock-match-meta-declaration-item-and-skip-to-next (goto-char (match-end 1)) nil (1 font-lock-variable-name-face nil t))) "\\(expr\\)[ 	]+\\(\\sw+\\)[ 	]+\\(of\\)[ 	]+\\(\\sw+\\)" ((1 font-lock-type-face) (2 font-lock-variable-name-face) (3 font-lock-keyword-face nil t) (4 font-lock-variable-name-face nil t)) font-lock-keyword-face ((1 font-lock-keyword-face) (2 font-lock-constant-face)) "|\\([^|]+\\)|" (1 font-lock-constant-face t) begin-keywords input-keywords] 13) (#$ . 815))
(defalias 'font-lock-match-meta-declaration-item-and-skip-to-next #[(limit) "\301\302!\205 \303 \304\216\305\306\307\217*\207" [save-match-data-internal looking-at "[ 	]*\\(\\sw+\\|\\s_+\\)" match-data ((set-match-data save-match-data-internal)) nil (byte-code "\214e}\210\301\225b\210\302\303!\204 \304`\301\"\206 db\210\202	 \305\225b)\207" [limit 1 looking-at "[ 	]*\\(\\(,\\)\\|;\\|=\\|$\\)" scan-sexps 2] 3) ((error t))] 3])
#@53 List of primitives common to Metafont and MetaPost.
(defconst meta-common-primitives-list '("ASCII" "addto" "also" "and" "angle" "atleast" "batchmode" "begingroup" "boolean" "boundarychar" "char" "charcode" "chardp" "charexists" "charext" "charht" "charic" "charlist" "charwd" "contour" "controls" "cosd" "curl" "cycle" "day" "decimal" "def" "delimiters" "designsize" "directiontime" "doublepath" "dump" "else" "elseif" "end" "enddef" "endfor" "endgroup" "endinput" "errhelp" "errmessage" "errorstopmode" "everyjob" "exitif" "expandafter" "expr" "extensible" "false" "fi" "floor" "fontdimen" "fontmaking" "for" "forever" "forsuffixes" "headerbyte" "hex" "if" "inner" "input" "interim" "intersectiontimes" "jobname" "kern" "known" "length" "let" "ligtable" "makepath" "makepen" "message" "mexp" "mlog" "month" "newinternal" "nonstopmode" "normaldeviate" "not" "nullpen" "nullpicture" "numeric" "oct" "odd" "of" "or" "outer" "pair" "path" "pausing" "pen" "pencircle" "penoffset" "picture" "point" "postcontrol" "precontrol" "primary" "primarydef" "quote" "randomseed" "readstring" "reverse" "rotated" "save" "scaled" "scantokens" "scrollmode" "secondary" "secondarydef" "shifted" "shipout" "show" "showdependencies" "showstats" "showstopping" "showtoken" "showvariable" "sind" "skipto" "slanted" "special" "sqrt" "step" "str" "string" "subpath" "substring" "suffix" "tension" "tertiary" "tertiarydef" "text" "time" "to" "tracingcapsules" "tracingchoices" "tracingcommands" "tracingequations" "tracingmacros" "tracingonline" "tracingoutput" "tracingrestores" "tracingspecs" "tracingstats" "tracingtitles" "transform" "transformed" "true" "turningnumber" "uniformdeviate" "unknown" "until" "vardef" "warningcheck" "withpen" "xpart" "xscaled" "xxpart" "xypart" "year" "ypart" "yscaled" "yxpart" "yypart" "zscaled") (#$ . 3816))
#@46 List of primitives only defined in Metafont.
(defconst metafont-primitives-list '("at" "autorounding" "chardx" "chardy" "cull" "display" "dropping" "fillin" "from" "granularity" "hppp" "inwindow" "keeping" "numspecial" "openwindow" "proofing" "smoothing" "totalweight" "tracingedges" "tracingpens" "turningcheck" "vppp" "withweight" "xoffset" "yoffset") (#$ . 5645))
#@46 List of primitives only defined in MetaPost.
(defconst metapost-primitives-list '("arclength" "arctime" "bluepart" "bounded" "btex" "clip" "clipped" "color" "dashed" "dashpart" "etex" "filled" "fontpart" "fontsize" "greenpart" "infont" "linecap" "linejoin" "llcorner" "lrcorner" "miterlimit" "mpxbreak" "pathpart" "penpart" "prologues" "readfrom" "redpart" "setbounds" "stroked" "textpart" "textual" "tracinglostchars" "truecorners" "ulcorner" "urcorner" "verbatimtex" "withcolor" "within" "write") (#$ . 6018))
#@55 List of macros common to plain Metafont and MetaPost.
(defconst meta-common-plain-macros-list '("abs" "bot" "bye" "byte" "ceiling" "clear_pen_memory" "clearit" "clearpen" "clearxy" "counterclockwise" "cutdraw" "decr" "dir" "direction" "directionpoint" "div" "dotprod" "downto" "draw" "drawdot" "erase" "exitunless" "fill" "filldraw" "flex" "gobble" "hide" "incr" "interact" "interpath" "intersectionpoint" "inverse" "label" "labels" "lft" "loggingall" "magstep" "makelabel" "max" "min" "mod" "numtok" "penlabels" "penpos" "penstroke" "pickup" "range" "reflectedabout" "relax" "rotatedabout" "rotatedaround" "round" "rt" "savepen" "shipit" "softjoin" "solve" "stop" "superellipse" "takepower" "tensepath" "thru" "top" "tracingall" "tracingnone" "undraw" "undrawdot" "unfill" "unfilldraw" "unitvector" "upto" "whatever") (#$ . 6536))
#@48 List of macros only defined in plain Metafont.
(defconst metafont-plain-macros-list '("beginchar" "change_width" "culldraw" "cullit" "cutoff" "define_blacker_pixels" "define_corrected_pixels" "define_good_x_pixels" "define_good_y_pixels" "define_horizontal_corrected_pixels" "define_pixels" "define_whole_blacker_pixels" "define_whole_pixels" "define_whole_vertical_blacker_pixels" "define_whole_vertical_pixels" "endchar" "fix_units" "font_coding_scheme" "font_extra_space" "font_identifier" "font_normal_shrink" "font_normal_space" "font_normal_stretch" "font_quad" "font_size" "font_slant" "font_x_height" "gfcorners" "good.bot" "good.lft" "good.rt" "good.top" "good.x" "good.y" "grayfont" "hround" "imagerules" "italcorr" "labelfont" "lowres_fix" "makebox" "makegrid" "maketicks" "mode_lowres" "mode_proof" "mode_setup" "mode_smoke" "nodisplays" "notransforms" "openit" "penrazor" "pensquare" "proofoffset" "proofrule" "proofrulethickness" "screenchars" "screenrule" "screenstrokes" "showit" "slantfont" "smode" "titlefont" "vround") (#$ . 7374))
#@48 List of macros only defined in plain MetaPost.
(defconst metapost-plain-macros-list '("arrowhead" "bbox" "beginfig" "buildcycle" "center" "cutafter" "cutbefore" "dashpattern" "dotlabel" "dotlabels" "drawarrow" "drawdblarrow" "drawoptions" "endfig" "image" "label" "off" "on" "thelabel") (#$ . 8431))
#@58 List of macros only defined in MetaPost "graph" package.
(defconst metapost-graph-macros-list '("augment" "auto.x" "auto.y" "autogrid" "begingraph" "endgraph" "format" "frame" "gdata" "gdotlabel" "gdraw" "gdrawarrow" "gdrawdblarrow" "gfill" "glabel" "grid" "itick" "otick" "plot" "setcoords" "setrange") (#$ . 8737))
#@58 List of macros only defined in MetaPost "boxes" package.
(defconst metapost-boxes-macros-list '("boxit" "boxjoin" "bpath" "circleit" "drawboxed" "drawboxes" "drawunboxed" "fixpos" "fixsize" "pic" "rboxit") (#$ . 9060))
#@53 List of known symbols to complete in Metafont mode.
(defvar metafont-symbol-list (append meta-common-primitives-list metafont-primitives-list meta-common-plain-macros-list metafont-plain-macros-list) (#$ . 9285))
#@53 List of known symbols to complete in MetaPost mode.
(defvar metapost-symbol-list (append meta-common-primitives-list metapost-primitives-list meta-common-plain-macros-list metapost-plain-macros-list metapost-graph-macros-list metapost-boxes-macros-list) (#$ . 9504))
#@65 List of known symbols to complete in Metafont or MetaPost mode.
(defvar meta-symbol-list nil (#$ . 9777))
#@66 Flag indicating whether `meta-symbol-list' has been initialized.
(defvar meta-symbol-changed nil (#$ . 9889))
#@441 List of ways to perform completion in Metafont or MetaPost mode.

Each entry is a list with the following elements:
1. Regexp matching the preceding text.
2. A number indicating the subgroup in the regexp containing the text.
3. A function returning an alist of possible completions.
4. Text to append after a succesful completion (if any).

Or alternatively:
1. Regexp matching the preceding text.
2. Function to do the actual completion.
(defvar meta-complete-list nil (#$ . 10006))
#@68 Add entries to list of known symbols in Metafont or MetaPost mode.
(defalias 'meta-add-symbols #[(&rest entries) "\203\n 	\nB\211\207\303	\nB\211\207" [meta-symbol-changed entries meta-symbol-list t] 2 (#$ . 10497)])
#@137 Return value of list of known symbols in Metafont or MetaPost mode.
If the list was changed, sort the list and remove duplicates first.
(defalias 'meta-symbol-list #[nil "\203Q \305\306\307!\210\310\311\312\313\314	\"\"\315\"\211\n\203L \nA\203L \n@\nA@\211@@\230\2045 \nA\202H G\fGV\203B \fA\241\210\n\211AA\241\210*\202 )\306\316!\210	\207" [meta-symbol-changed meta-symbol-list entry next this nil message "Preparing completion list..." sort mapcar meta-listify apply append meta-car-string-lessp "Preparing completion list... done"] 7 (#$ . 10725)])
(defalias 'meta-listify #[(a) "<\203 \207C\207" [a] 1])
(defalias 'meta-car-string-lessp #[(a b) "@	@\231\207" [a b] 2])
#@68 Perform completion on Metafont or MetaPost symbol preceding point.
(defalias 'meta-complete-symbol #[nil "\306\n\203 \n@\nA\307	@\310\"\203 \306\211\204 	A@\247\203\266 	A@\311	8\224\225\312\313!{\314	8 \315\n\"\211\316=\203a \f\205\261 \317\320\f!!?\205\261 \fc\202\261 \204n \321\322\"\202\261 \230\204\233 |\210c\210\f\205\261 \315\n\"\316=\205\261 \317\320\f!!?\205\261 \fc\202\261 \323\324!\210\325\n\306#\326\220\327\n!\221\210)\323\330!.\202\272 	A@ *\207" [meta-complete-list entry list sub close begin nil meta-looking-at-backward 200 3 meta-match-buffer 0 2 try-completion t looking-at regexp-quote error "Can't find completion for \"%s\"" message "Making completion list..." all-completions "*Completions*" display-completion-list "Making completion list... done" end pattern symbol completion] 5 (#$ . 11422) "*"])
(defalias 'meta-looking-at-backward #[(regexp &optional limit) "`\212\303	\n\205 e`\nZ]\304#\205 \305\225=*\207" [pos regexp limit re-search-backward t 0] 5])
(defalias 'meta-match-buffer #[(n) "\224\203 \224\225{\302\303	G\304	$\210\305	!)\207\306\207" [n str set-text-properties 0 nil copy-sequence ""] 5])
#@64 *Indentation of begin-end blocks in Metafont or MetaPost mode.
(custom-declare-variable 'meta-indent-level '2 '(#$ . -12620) :type 'integer :group 'meta-font)
#@69 *Regexp matching comments that should be placed on the left margin.
(custom-declare-variable 'meta-left-comment-regexp '"%%+" '(#$ . -12785) :type 'regexp :group 'meta-font)
#@70 *Regexp matching comments that should be placed to the right margin.
(custom-declare-variable 'meta-right-comment-regexp 'nil '(#$ . -12965) :type '(choice regexp (const :tag "None" nil)) :group 'meta-font)
#@73 *Regexp matching comments that whose indentation should not be touched.
(custom-declare-variable 'meta-ignore-comment-regexp '"%[^%]" '(#$ . -13178) :type 'regexp :group 'meta-font)
#@64 *Regexp matching the beginning of environments to be indented.
(custom-declare-variable 'meta-begin-environment-regexp '(concat "\\(begin\\(char\\|fig\\|gr\\(aph\\|oup\\)\\|logochar\\)\\|" "def\\|for\\(\\|ever\\|suffixes\\)\\|if\\|mode_def\\|" "primarydef\\|secondarydef\\|tertiarydef\\|vardef\\)") '(#$ . -13366) :type 'regexp :group 'meta-font)
#@58 *Regexp matching the end of environments to be indented.
(custom-declare-variable 'meta-end-environment-regexp '(concat "\\(end\\(char\\|def\\|f\\(ig\\|or\\)\\|gr\\(aph\\|oup\\)\\)" "\\|fi\\)") '(#$ . -13719) :type 'regexp :group 'meta-font)
#@67 *Regexp matching keywords within environments not to be indented.
(custom-declare-variable 'meta-within-environment-regexp '(concat "\\(else\\(\\|if\\)\\)") '(#$ . -13967) :type 'regexp :group 'meta-font)
#@68 Return the indentation for a comment in Metafont or MetaPost mode.
(defalias 'meta-comment-indent #[nil "\203\f \302!\203\f i\207\303\304x\210n\203 \305\202 iT	]\207" [meta-left-comment-regexp comment-column looking-at "	 " nil 0] 2 (#$ . 14178)])
#@66 Indent the line containing point as Metafont or MetaPost source.
(defalias 'meta-indent-line #[nil "\303 \212\304 U\204 \305 \210`\306 \210`\211	|\210j\210*)iW\205& \306 )\207" [indent end beg meta-indent-calculate current-indentation beginning-of-line back-to-indentation] 3 (#$ . 14436) nil])
#@72 Return the indentation of current line of Metafont or MetaPost source.
(defalias 'meta-indent-calculate #[nil "\212\306 \210\203 \307!\203 \310\202R 	\203  \307	!\203  \n\202R \203/ \307!\203/ \311 \202R \307\312\f\313Q!\203? \314 Z\202R \307\312\313Q!\203P \314 Z\202R \314 )\207" [meta-left-comment-regexp meta-right-comment-regexp comment-column meta-ignore-comment-regexp meta-end-environment-regexp meta-indent-level back-to-indentation looking-at 0 current-indentation "\\<" "\\>" meta-indent-calculate-last meta-within-environment-regexp] 4 (#$ . 14744)])
#@73 Return the indentation of previous line of Metafont or MetaPost source.
(defalias 'meta-indent-calculate-last #[nil "\214~\210\304\305x\210\306\307 !\210\310!\203& o\204& \304\305x\210o\204\f \306\307 !\210\202\f o\203. \311\202O \307 \312 \\\310\313	\314Q!\203@ \n\202N \310\313\314Q!\203M \n\202N \311\\)\207" [comment-start meta-end-environment-regexp meta-indent-level meta-within-environment-regexp "\n	 " nil move-to-column current-indentation looking-at 0 meta-indent-level-count "\\<" "\\>"] 5 (#$ . 15323)])
#@70 Count indentation change for begin-end commands in the current line.
(defalias 'meta-indent-level-count #[nil "\212\214\304`\212\305\306\307\310#\210\311u\210`)}\210\305\312\307\310#\203[ \212\304\224b\210\313\314	\315Q!\2030 \n\\\202W \313\314\315Q!\203@ \nZ\202W \313\316!\203M \n\\\202W \313\317!\203W \nZ)\202 +\207" [count meta-begin-environment-regexp meta-indent-level meta-end-environment-regexp 0 re-search-forward "[^\\\\\"]%\\|\n\\|\\'" nil t -1 "\\<\\sw+\\>\\|(\\|)" looking-at "\\<" "\\>" "(" ")"] 5 (#$ . 15848)])
#@232 Like \[fill-paragraph], but handle Metafont or MetaPost comments.
If any part of the current line is a comment, fill the comment or the
paragraph of it that point is in, preserving the comment's indentation
and initial semicolons.
(defalias 'meta-fill-paragraph #[(&optional justify) "\306\211\211\212\307 \210\310\311P!\203 \312\313\224\313\225{\202; \306\314\315\217\203; \312\312\316i\317\245\320\"\316i\317\246\321\"\313\224\313\225{Q)\n\204G \322\f!\210\202\326 \212\214\307 \210\212\323\324y!\203\\ \310\325P!\204M \310\326P!\204g \327y\210`)\212\327y\210\310\325P!\204j `)}\210\330P\211\330P\306 !	\205\224 \212\327y\210`)\"\331 \210n\204\241 \332\327!\210`#\333 \210`\"=\203\261 \324y\210`$\212$b\210\310!!?\205\306 \334!\210`)%\335$#\f\306%%\210.\n+\312\207" [comment-fill-prefix has-code-and-comment has-comment comment-start-skip justify comment-start nil beginning-of-line looking-at "[ 	]*" t 0 (byte-code "\214e\212\302\210`)}\210\303\304P!\2044 \305\306Q\302w\210`f\307=\203& \310u\210\202\n `f\311=\203\n \312\313!\210\202\n \303	!)\207" [comment-start comment-start-skip nil looking-at "\\|$" "^" "\n\"\\\\" 92 2 34 forward-sexp 1] 3) ((error)) make-string 8 9 32 fill-paragraph zerop -1 "^[ 	]*" ".*" 1 "\\|[ 	%]*$" forward-paragraph newline backward-paragraph re-search-forward fill-region-as-paragraph paragraph-start paragraph-separate paragraph-ignore-fill-prefix fill-prefix after-line end beg after-pos] 7 (#$ . 16395) "P"])
#@68 *Regexp matching beginning of defuns in Metafont or MetaPost mode.
(custom-declare-variable 'meta-begin-defun-regexp '(concat "\\(begin\\(char\\|fig\\|logochar\\)\\|def\\|mode_def\\|" "primarydef\\|secondarydef\\|tertiarydef\\|vardef\\)") '(#$ . -17886) :type 'regexp :group 'meta-font)
#@66 *Regexp matching the end of defuns in Metafont or MetaPost mode.
(custom-declare-variable 'meta-end-defun-regexp '(concat "\\(end\\(char\\|def\\|fig\\)\\)") '(#$ . -18179) :type 'regexp :group 'meta-font)
#@255 Move backward to beginnning of a defun in Metafont or MetaPost code.
With numeric argument, do it that many times.  
Negative arg -N means move forward to Nth following beginning of defun.
Returns t unless search stops due to beginning or end of buffer.
(defalias 'meta-beginning-of-defun #[(&optional arg) "\203\n \302U\203\f \303\203 \302W\203 m\204 \303u\210\304\305	\306Q\307\310$\2056 \302\224b\210\311\307x\210\312\307x\210\310\207" [arg meta-begin-defun-regexp 0 1 re-search-backward "\\<" "\\>" nil t "%" " 	"] 5 (#$ . 18391) "p"])
#@242 Move forward to end of a defun in Metafont or MetaPost code.
With numeric argument, do it that many times. 
Negative argument -N means move back to Nth preceding end of defun.
Returns t unless search stops due to beginning or end of buffer.
(defalias 'meta-end-of-defun #[(&optional arg) "\203\n \302U\203\f \303\302W\203 o\204 \304y\210\305\306	\307Q\310\311$\205; \302\225b\210\312\310w\210\313\310w\210\314\315!\203: \303y\210\311\207" [arg meta-end-defun-regexp 0 1 -1 re-search-forward "\\<" "\\>" nil t ";" " 	" looking-at "\n"] 5 (#$ . 18947) "p"])
#@59 Comment out active region as Metafont or MetaPost source.
(defalias 'meta-comment-region #[(beg end &optional arg) "\303	\n#\207" [beg end arg comment-region] 4 (#$ . 19516) "r"])
#@57 Uncomment active region as Metafont or MetaPost source.
(defalias 'meta-uncomment-region #[(beg end) "\302	\303#\207" [beg end comment-region -1] 4 (#$ . 19703) "r"])
#@184 Comment out current environment as Metafont or MetaPost source.
With prefix argument, uncomment the environment.
The environment used is the one that contains point or follows point.
(defalias 'meta-comment-defun #[(&optional arg) "\212\303 \203\n `\202 d\304 \203 `\202 e\305	\n#+\207" [end beg arg meta-end-of-defun meta-beginning-of-defun comment-region] 4 (#$ . 19878) "P"])
#@63 Uncomment current environment as Metafont or MetaPost source.
(defalias 'meta-uncomment-defun #[nil "\300\301!\207" [meta-comment-defun -1] 2 (#$ . 20269) nil])
#@58 Indent the active region as Metafont or MetaPost source.
(defalias 'meta-indent-region #[(beg end) "\302	\303#\207" [beg end indent-region nil] 4 (#$ . 20436) "r"])
#@66 Indent the whole buffer contents as Metafont or MetaPost source.
(defalias 'meta-indent-buffer #[nil "\212\300ed\301#)\207" [indent-region nil] 4 (#$ . 20608) nil])
#@138 Indent the current environment as Metafont or MetaPost source.
The environment indented is the one that contains point or follows point.
(defalias 'meta-indent-defun #[nil "\212\302 \203\n `\202 d\303 \203 `\202 e\304	\305#+\207" [end beg meta-end-of-defun meta-beginning-of-defun indent-region nil] 4 (#$ . 20780) nil])
#@133 Put mark at end of the environment, point at the beginning.
The environment marked is the one that contains point or follows point.
(defalias 'meta-mark-defun #[nil "\300`!\210\301 \210\300`\302\303#\210\304 \207" [push-mark meta-end-of-defun nil t meta-beginning-of-defun] 4 (#$ . 21114) nil])
#@49 Abbrev table used in Metafont or MetaPost mode.
(defvar meta-mode-abbrev-table nil (#$ . 21415))
(define-abbrev-table 'meta-mode-abbrev-table nil)
#@49 Syntax table used in Metafont or MetaPost mode.
(defvar meta-mode-syntax-table nil (#$ . 21568))
(byte-code "\204\243 \301 \302\303\304#\210\302\305\306#\210\302\307\306#\210\302\310\306#\210\302\311\306#\210\302\312\306#\210\302\313\314#\210\302\315\314#\210\302\316\314#\210\302\317\314#\210\302\320\314#\210\302\321\314#\210\302\322\314#\210\302\323\314#\210\302\324\314#\210\302\325\314#\210\302\326\314#\210\302\327\330#\210\302\331\332#\210\302\333\334#\210\302\335\336#\210\302\337\340#\210\302\341\342#\210\302\343\344#\210\302\345\346#\210\302\347\350#\210\301\207" [meta-mode-syntax-table make-syntax-table modify-syntax-entry 95 "w" 35 "_" 64 36 63 33 38 "." 43 45 47 42 46 58 61 60 62 124 40 "()" 41 ")(" 91 "(]" 93 ")[" 123 "(}" 125 "){" 37 "<" 10 ">" 92 "\\"] 4)
#@43 Keymap used in Metafont or MetaPost mode.
(defvar meta-mode-map nil (#$ . 22379))
(byte-code "\204U \301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\316#\210\302\320\321#\210\302\322\323#\210\302\324\325#\210\302\326\327#\210\302\330\331#\210\302\332\333#\210\301\207" [meta-mode-map make-sparse-keymap define-key "	" meta-indent-line "" reindent-then-newline-and-indent "\201" meta-beginning-of-defun "\205" meta-end-of-defun "\210" meta-mark-defun "\221" meta-indent-defun "e" "r" meta-indent-region "b" meta-indent-buffer "%" meta-comment-defun ";" meta-comment-region ":" meta-uncomment-region "\211" meta-complete-symbol] 4)
#@41 Menu used in Metafont or MetaPost mode.
(defvar meta-mode-menu nil (#$ . 23107))
(byte-code "\301\302\303\304\305\306\307\310\311\312\313\307\314\315\316\317\307\320\257$\207" [meta-mode-map easy-menu-do-define meta-mode-menu "Menu used in Metafont or MetaPost mode." "Meta" ["Forward Environment" meta-beginning-of-defun t] ["Backward Environment" meta-end-of-defun t] "--" ["Indent Line" meta-indent-line t] ["Indent Environment" meta-indent-defun t] ["Indent Region" meta-indent-region :active (meta-mark-active)] ["Indent Buffer" meta-indent-buffer t] ["Comment Out Environment" meta-comment-defun t] ["Uncomment Environment" meta-uncomment-defun t] ["Comment Out Region" meta-comment-region :active (meta-mark-active)] ["Uncomment Region" meta-uncomment-region :active (meta-mark-active)] ["Complete Symbol" meta-complete-symbol t]] 19)
#@73 Return whether the mark and region are currently active in this buffer.
(defalias 'meta-mark-active #[nil "\301\300!\203\n \206\f \302 \207" [mark-active boundp mark] 2 (#$ . 23957)])
#@63 *Hook evaluated when first loading Metafont or MetaPost mode.
(custom-declare-variable 'meta-mode-load-hook 'nil '(#$ . -24148) :type 'hook :group 'meta-font)
#@62 *Hook evaluated by both `metafont-mode' and `metapost-mode'.
(custom-declare-variable 'meta-common-mode-hook 'nil '(#$ . -24313) :type 'hook :group 'meta-font)
#@67 *Hook evaluated by `metafont-mode' after `meta-common-mode-hook'.
(custom-declare-variable 'metafont-mode-hook 'nil '(#$ . -24479) :type 'hook :group 'meta-font)
#@67 *Hook evaluated by `metapost-mode' after `meta-common-mode-hook'.
(custom-declare-variable 'metapost-mode-hook 'nil '(#$ . -24647) :type 'hook :group 'meta-font)
#@54 Common initialization for Metafont or MetaPost mode.
(defalias 'meta-common-initialization #[nil "\306 \210\307\301!\210\307\302!\210\310P\310P\307\303!\210\311\307\304!\210\307\305!\210\307\312!\210\307\313!\210\314\315\316\n\317\307\320!\210\311\307\321!\210\322\307\323!\210\324\307\325!\210\326\307\327!\210\330\331!\210\332!\210\333 !\207" [page-delimiter paragraph-start paragraph-separate paragraph-ignore-fill-prefix comment-start-skip comment-start kill-all-local-variables make-local-variable "\\|$" t comment-end comment-multi-line "%+[ 	]*" "%" "" nil parse-sexp-ignore-comments comment-indent-function meta-comment-indent fill-paragraph-function meta-fill-paragraph indent-line-function meta-indent-line font-lock-defaults (meta-font-lock-keywords nil nil ((95 . "w")) nil (font-lock-comment-start-regexp . "%")) set-syntax-table use-local-map easy-menu-add meta-mode-abbrev-table local-abbrev-table meta-mode-syntax-table meta-mode-map meta-mode-menu] 2 (#$ . 24815)])
#@186 Major mode for editing Metafont sources.
Special commands:
\{meta-mode-map}

Turning on Metafont mode calls the value of the variables
`meta-common-mode-hook' and `metafont-mode-hook'.
(defalias 'metafont-mode #[nil "\306 \210\307\310\311\302!\210\311\303!\210\311\305!\210\312\312\313\314\f\"\210\315\316\302E\317\320DD\321\322\323\"\207" [mode-name major-mode meta-symbol-list meta-symbol-changed metafont-symbol-list meta-complete-list meta-common-initialization "Metafont" metafont-mode make-local-variable nil apply meta-add-symbols "\\<\\(\\sw+\\)" 1 "" ispell-complete-word run-hooks meta-common-mode-hook metafont-mode-hook] 3 (#$ . 25834) nil])
#@185 Major mode for editing MetaPost sources.
Special commands:
\{meta-mode-map}

Turning on MetaPost mode calls the value of the variable
`meta-common-mode-hook' and `metafont-mode-hook'.
(defalias 'metapost-mode #[nil "\306 \210\307\310\311\302!\210\311\303!\210\311\305!\210\312\312\313\314\f\"\210\315\316\302E\317\320DD\321\322\323\"\207" [mode-name major-mode meta-symbol-list meta-symbol-changed metapost-symbol-list meta-complete-list meta-common-initialization "MetaPost" metapost-mode make-local-variable nil apply meta-add-symbols "\\<\\(\\sw+\\)" 1 "" ispell-complete-word run-hooks meta-common-mode-hook metapost-mode-hook] 3 (#$ . 26500) nil])
(byte-code "\300\301!\210\302\303!\207" [provide meta-mode run-hooks meta-mode-load-hook] 2)
