;ELC   
;;; Compiled by handa@melange.gnu.org on Mon Feb  2 21:19:34 1998
;;; from file /gd/gnu/emacs/lisp/progmodes/asm-mode.el
;;; in Emacs version 20.2.86.2
;;; with bytecomp version 2.35
;;; with all optimizations.
;;; This file uses opcodes which do not exist in Emacs 18.

(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 "`asm-mode.el' was compiled for Emacs 19.29 or later"))


(custom-declare-group 'asm nil "Mode for editing assembler code." :group 'languages)
#@51 *The comment-start character assumed by Asm mode.
(custom-declare-variable 'asm-comment-char '59 '(#$ . -627) :type 'character :group 'asm)
#@38 Syntax table used while in Asm mode.
(defvar asm-mode-syntax-table nil (#$ . 773))
#@38 Abbrev table used while in Asm mode.
(defvar asm-mode-abbrev-table nil (#$ . 862))
(define-abbrev-table 'asm-mode-abbrev-table nil)
#@22 Keymap for Asm mode.
(defvar asm-mode-map nil (#$ . 1000))
(byte-code "\204% \301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\312#\210\301\207" [asm-mode-map make-sparse-keymap define-key ":" asm-colon ";" comment-region "	" tab-to-tab-stop "\n" asm-newline ""] 4)
#@56 Additional expressions to highlight in Assembler mode.
(defconst asm-font-lock-keywords '(("^\\(\\(\\sw\\|\\s_\\)+\\)\\>:?[ 	]*\\(\\sw+\\)?" (1 font-lock-function-name-face) (3 font-lock-keyword-face nil t)) ("^\\s +\\(\\(\\sw\\|\\s_\\)+\\)" 1 font-lock-keyword-face)) (#$ . 1313))
(byte-code "\304\300!\204 \305\300	B\304\302!\204 \305\302	B\304\303!\204  \305\303	B\305\207" [asm-code-level-empty-comment-pattern current-load-list asm-flush-left-empty-comment-pattern asm-inline-empty-comment-pattern boundp nil] 2)
#@675 Major mode for editing typical assembler code.
Features a private abbrev table and the following bindings:

\[asm-colon]	outdent a preceding label, tab to next tab stop.
\[tab-to-tab-stop]	tab to next tab stop.
\[asm-newline]	newline, then tab to next tab stop.
\[asm-comment]	smart placement of assembler comments.

The character used for making comments is set by the variable
`asm-comment-char' (which defaults to `?;').

Alternatively, you may set this variable in `asm-mode-set-comment-hook',
which is called near the beginning of mode initialization.

Turning on Asm mode runs the hook `asm-mode-hook' at the end of initialization.

Special commands:
\{asm-mode-map}

(defalias 'asm-mode #[nil "\306 \210\307\310\n\311\304!\210\312\311\305!\210\313 \314!\210\315\316!\210\317\320 )\244!\210\321\322*!\323\"\210\324*\325#\210\324\326\327#\210\330\331*!!+\311\332!\210+\333P\311\334!\210+\335P\336+\337Q,\340+\211\341R-\342+\211\211\341\260.)\311\343!\210\344#\311\345!\210\346%\347/\315\350!\207" [mode-name major-mode asm-mode-abbrev-table local-abbrev-table font-lock-defaults asm-mode-syntax-table kill-all-local-variables "Assembler" asm-mode make-local-variable (asm-font-lock-keywords) make-syntax-table set-syntax-table run-hooks asm-mode-set-comment-hook use-local-map make-sparse-keymap local-set-key vector asm-comment modify-syntax-entry "<" 10 ">" regexp-quote char-to-string comment-start " " comment-start-skip "+[ 	]*" "^.+" "+ *$" "^[	 ]+" " *$" "^" comment-end "" comment-column 32 "	" asm-mode-hook asm-mode-map asm-comment-char cs asm-inline-empty-comment-pattern asm-code-level-empty-comment-pattern asm-flush-left-empty-comment-pattern fill-prefix] 5 (#$ . 1846) nil])
#@72 Insert a colon; if it follows a label, delete the label's indentation.
(defalias 'asm-colon #[nil "\212\300y\210\301\302!\203 \303 \210)\304c\210\305 \207" [0 looking-at "[ 	]+\\(\\sw\\|\\s_\\)+$" delete-horizontal-space ":" tab-to-tab-stop] 2 (#$ . 3576) nil])
#@66 Insert LFD + fill-prefix, to bring us back to code-indent level.
(defalias 'asm-newline #[nil "l\203 \300 \210\301c\210\302 \207" [delete-horizontal-space "\n" tab-to-tab-stop] 1 (#$ . 3845) nil])
(defalias 'asm-line-matches #[(pattern &optional withcomment) "\212\301y\210\302!)\207" [pattern 0 looking-at] 2])
(defalias 'asm-pop-comment-level #[nil "\301\210\302 \210hU\203 \303\304!\210\202 \302 \210n?\205! \305y\210\306\304!\207" [asm-comment-char nil delete-horizontal-space delete-backward-char 1 0 open-line] 2])
#@414 Convert an empty comment to a `larger' kind, or start a new one.
These are the known comment classes:

   1 -- comment to the right of the code (at the comment-column)
   2 -- comment on its own line, indented like code
   3 -- comment on its own line, beginning at the left-most column.

Suggested usage:  while writing your code, trigger asm-comment
repeatedly until you are satisfied with the kind of comment.
(defalias 'asm-comment #[nil "\305\306!\203 \307 \210\310 \210	\261\210\202X \305\311\312\"!\203# \313 \210\202X \305\n!\203/ c\210\202X \305!\203A \314 \210\211	\261\210\202X \305\f!\203U \314 \210\310 \210	\261\210\202X c\210\315\207" [asm-comment-char comment-start asm-flush-left-empty-comment-pattern asm-code-level-empty-comment-pattern asm-inline-empty-comment-pattern asm-line-matches "^[ 	]*$" delete-horizontal-space tab-to-tab-stop format "^[^%c\n]+$" indent-for-comment asm-pop-comment-level nil] 4 (#$ . 4379) nil])
(provide 'asm-mode)
