;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314DD\315\316\317%\207" [custom-declare-group asm nil "Mode for editing assembler code." :link (custom-group-link :tag "Font Lock Faces group" font-lock-faces) :group languages custom-declare-variable asm-comment-char funcall function #[0 "\300\207" [59] 1] "The `comment-start' character assumed by Asm mode." :type character] 8) #@38 Syntax table used while in Asm mode. (defvar asm-mode-syntax-table (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\211\207" [make-syntax-table modify-syntax-entry 10 "> b" 47 ". 124b" 42 ". 23"] 5) (#$ . 806)) #@38 Abbrev table used while in Asm mode. (defvar asm-mode-abbrev-table nil (#$ . 1046)) (define-abbrev-table 'asm-mode-abbrev-table nil) #@22 Keymap for Asm mode. (defvar asm-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307\300 B#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\211\207" [make-sparse-keymap define-key ":" asm-colon ";" comment-region [menu-bar asm-mode] "Asm" [menu-bar asm-mode comment-region] (menu-item "Comment Region" comment-region :help "Comment or uncomment each line in the region") [menu-bar asm-mode newline-and-indent] (menu-item "Insert Newline and Indent" newline-and-indent :help "Insert a newline, then indent according to major mode") [menu-bar asm-mode asm-colon] (menu-item "Insert Colon" asm-colon :help "Insert a colon; if it follows a label, delete the label's indentation")] 6) (#$ . 1185)) #@56 Additional expressions to highlight in Assembler mode. (defconst asm-font-lock-keywords (append '(("^\\(\\(\\sw\\|\\s_\\)+\\)\\>:?[ ]*\\(\\sw+\\(\\.\\sw+\\)*\\)?" (1 font-lock-function-name-face) (3 font-lock-keyword-face nil t)) ("^\\(\\.\\(\\sw\\|\\s_\\)+\\)\\>:" 1 font-lock-function-name-face) ("^\\((\\sw+)\\)?\\s +\\(\\(\\.?\\sw\\|\\s_\\)+\\(\\.\\sw+\\)*\\)" 2 font-lock-keyword-face) ("^\\(\\.\\(\\sw\\|\\s_\\)+\\)\\>[^:]?" 1 font-lock-keyword-face) ("%\\sw+" . font-lock-variable-name-face)) cpp-font-lock-keywords) (#$ . 1919)) (defvar asm-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [asm-mode-hook variable-documentation put "Hook run after entering Assembler mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp asm-mode-map definition-name asm-mode] 4) (defvar asm-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\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [asm-mode-abbrev-table asm-mode-map variable-documentation put purecopy "Keymap for `asm-mode'." boundp asm-mode-syntax-table definition-name asm-mode (lambda (#1=#:def-tmp-var) (defvar asm-mode-syntax-table #1#)) make-syntax-table "Syntax table for `asm-mode'." (lambda (#1#) (defvar asm-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `asm-mode'." derived-mode-parent prog-mode] 5) #@682 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. \[newline-and-indent] 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 #[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 5=\204R\326 \3255C#\210\327 !\210\330\f!\210 5 5\306\331!\210\332\306\333!\210\334\306\335!\210\336\337\340!\210\327\341 \244!\210\342\3436!\344\"\210\330\345\f!!\210\3466\347\"\210\306\350!\210\3516!(\306\352!\210\353*\306\354!\210\355,\306\356!\210\357.\306\360!\210\3610\3627)\363\364!\207" [delay-mode-hooks major-mode mode-name asm-mode-map asm-mode-syntax-table asm-mode-abbrev-table make-local-variable t prog-mode asm-mode "Assembler" 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 font-lock-defaults (asm-font-lock-keywords) indent-line-function asm-indent-line tab-always-indent nil run-hooks asm-mode-set-comment-hook make-sparse-keymap local-set-key vector asm-comment make-syntax-table modify-syntax-entry "< b" comment-start string comment-add 1 comment-start-skip "\\(?:\\s<+\\|/[/*]+\\)[ ]*" comment-end-skip "[ ]*\\(\\s>\\|\\*+/\\)" comment-end "" " " run-mode-hooks asm-mode-hook local-abbrev-table asm-comment-char fill-prefix] 5 (#$ . 3563) nil]) #@31 Auto-indent the current line. (defalias 'asm-indent-line #[0 "`\3001\212\301y\210\302\303w\210`Y\203\303\262\304 \301])0\202!\210\301\203-\212\305!)\2020\305!\207" [(error) 0 " " nil asm-calculate-indentation indent-line-to] 4 (#$ . 5610) nil]) (defalias 'asm-calculate-indentation #[0 "\301\302!\203\303\207\301\304!\203\303\207\301\305!\203\206\306\303!\207" [comment-column looking-at "\\(\\sw\\|\\s_\\)+:" 0 "\\s<\\s<\\s<" "\\s<\\(\\S<\\|\\'\\)" indent-next-tab-stop] 2]) #@72 Insert a colon; if it follows a label, delete the label's indentation. (defalias 'asm-colon #[0 "\300\212\301\302!\210\301\303!\210n\211\262\203\304 \210)\305\306!\210\211\205\"\304 \210\307 \207" [nil skip-syntax-backward "w_" " " delete-horizontal-space call-interactively self-insert-command tab-to-tab-stop] 3 (#$ . 6114) nil]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias asm-newline newline-and-indent nil make-obsolete "27.1"] 4) #@416 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 #[0 "\301 \210\302\211\212\303 \210\304\305 \306\"\262\307\310!\262)\212\303 \210\307\311!)\203,\312 \210\211\313\261\202|\211\2036`W\203;\314 \202|\203H\212\211b\210n)\203Mc\202|\212\211b\210\315\302x\210n)\203e\211b\210c\210\314 \202|\211b\210\315\302x\210`\305 |\210\303 \210\316c\210\317u\210\320 \207" [asm-comment-char comment-normalize-vars nil beginning-of-line comment-search-forward line-end-position t looking-at "[ ]*$" "^[ ]*$" indent-according-to-mode 32 indent-for-comment " " "\n" -1 asm-comment] 5 (#$ . 6583) nil]) (provide 'asm-mode)