;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:50:03 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/progmodes/asm-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 "`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 '(#$ . -713) :type 'character :group 'asm)
#@38 Syntax table used while in Asm mode.
(defvar asm-mode-syntax-table nil (#$ . 859))
#@38 Abbrev table used while in Asm mode.
(defvar asm-mode-abbrev-table nil (#$ . 948))
(define-abbrev-table 'asm-mode-abbrev-table nil)
#@22 Keymap for Asm mode.
(defvar asm-mode-map nil (#$ . 1086))
(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+\\(\\.[lLwWbBsS]\\)?\\)?" (1 font-lock-function-name-face) (3 font-lock-keyword-face nil t)) ("^\\s +\\(\\(\\sw\\|\\s_\\)+\\(\\.[lLwWbBsS]\\)?\\)" 1 font-lock-keyword-face)) (#$ . 1399))
(byte-code "\301B\304\301!\204\f \305\302B\304\302!\204 \305\303B\304\303!\204$ \305\305\207" [current-load-list asm-code-level-empty-comment-pattern asm-flush-left-empty-comment-pattern asm-inline-empty-comment-pattern boundp nil] 2)
#@676 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\324\330\331#\210\324\332\333#\210\334\335,!!-\311\336!\210\335,!\337P\311\340!\210-\341P \342-\343Q.\344-\211\345R/\346-\211\211\345\2600)\311\347!\210\350'\3511\315\352!\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 "< b" 10 "> b" 47 ". 14" 42 ". 23" regexp-quote char-to-string comment-start " " comment-start-skip "+[ 	]*" "^.+" "+ *$" "^[	 ]+" " *$" "^" comment-end "" "	" 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 (#$ . 1973) nil])
#@72 Insert a colon; if it follows a label, delete the label's indentation.
(defalias 'asm-colon #[nil "\212\300 \210\301\302!\203 \303 \210)\304c\210\305 \207" [beginning-of-line looking-at "[ 	]+\\(\\sw\\|\\s_\\)+$" delete-horizontal-space ":" tab-to-tab-stop] 2 (#$ . 3732) 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 (#$ . 4017) nil])
(defalias 'asm-line-matches #[(pattern &optional withcomment) "\212\301 \210\302!)\207" [pattern beginning-of-line looking-at] 2])
(defalias 'asm-pop-comment-level #[nil "\301\210\302 \210hU\203 \303\304!\210\202 \302 \210n?\205! \305 \210\306\304!\207" [asm-comment-char nil delete-horizontal-space delete-backward-char 1 beginning-of-line 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 (#$ . 4583) nil])
(provide 'asm-mode)
