;ELC ;;; Compiled by goubault@dell14.lsv.ens-cachan.fr on Fri Mar 17 16:43:19 2006 ;;; from file /local/home/goubault/HimML/Alpha18/Emacs/himml-mode.el ;;; in Emacs version 21.4.1 ;;; 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 "`himml-mode.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\302\303!\210\301B\304\302\207" [current-load-list himml-mode-version-string provide himml-mode "HimML-MODE V1.1 (September 1996) (Jean.Goubault@inria.fr),\nderived from SML-MODE, Version 3.0 (May 1990) (lbn@iesd.auc.dk)"] 2) #@31 *Indentation of blocks in ml. (defvar himml-indent-level 4 (#$ . -882)) #@59 *Extra (negative) indentation for lines beginning with |. (defvar himml-pipe-indent -2 (#$ . -960)) #@286 *How to indent case-of expressions. If t: case expr If nil: case expr of of exp1 => ... exp1 => ... | exp2 => ... | exp2 => ... The first seems to be the standard in NJ-SML, but the second is the default. (defvar himml-case-indent nil (#$ . -1067)) #@228 *If set to t, nested if-then-else expression will have the same indentation as: if exp1 then exp2 else if exp3 then exp4 else if exp5 then exp6 else exp7 (defvar himml-nested-if-indent t (#$ . -1403)) #@399 *How to indent `let' `struct' etc. If t: fun foo bar = let If nil: fun foo bar = let val p = 4 val p = 4 in in bar + p bar + p end end Will not have any effect if the starting keyword is first on the line. (defvar himml-type-of-indent t (#$ . -1684)) #@135 *If t, a `;' will insert itself, reindent the line, and perform a newline. If nil, just insert a `;'. (To insert while t, do: C-q ;). (defvar himml-electric-semi-mode nil (#$ . -2134)) #@265 *Determines how far back (in chars) the indentation algorithm should look for open parenthesis. High value means slow indentation algorithm. A value of 2000 (being the equivalent of 40-60 lines) should suffice most uses. (A value of nil, means do not look at all) (defvar himml-paren-lookback 2000 (#$ . -2326)) #@32 *Name of program to run as ml. (defvar himml-prog-name "himml" (#$ . -2644)) #@82 *If t, you will be asked which program to run when the inferior shell starts up. (defvar himml-prog-name-ask-p nil (#$ . -2727)) #@169 *The left delimiter for the filename when using "use". To be set to `"[\""' for Edinburgh SML, and `"\""' for New Jersey SML. Corresponds to `himml-use-right-delim'. (defvar himml-use-left-delim "\"" (#$ . -2863)) #@169 *The right delimiter for the filename when using "use". To be set to `"\"]"' for Edinburgh SML, and `"\""' for New Jersey SML. Corresponds to `himml-use-left-delim'. (defvar himml-use-right-delim "\"" (#$ . -3086)) #@56 *The prompt pattern for the inferior shell running ml. (defvar himml-shell-prompt-pattern "^\\(>\\|\\((debug)\\)[ \\t]*\\)+" (#$ . -3309)) #@134 *Template for the temporary files, created when a region is send to the inferior process running ml (by himml-simulate-send-region). (defvar himml-tmp-template "/tmp/himml.tmp." (#$ . -3455)) #@347 *If t, then when sending a `use file' to the inferior ml process, the leading path of the filename is stripped of, iff the file is in the same directory as the directory ml was started in. If you change the working directory of the inferior himml, after it has started up you are in trouble. To get out of this trouble, set this variable to nil. (defvar himml-strip-path t (#$ . -3654)) #@63 *Name of the buffer where all HimML messages will be printed. (defvar himml-message-buffer-name "*HimML message*" (#$ . -4047)) #@43 *Normal height of HimML's message buffer. (defvar himml-message-buffer-height 7 (#$ . -4181)) #@51 *Regexp to match HimML commands equivalent to cd. (defvar himml-shell-cd-regexp "cd" (#$ . -4281)) #@64 Non-nil in a HimML buffer means directory tracking is enabled. (defvar himml-shell-dirtrackp t (#$ . 4386)) #@34 The mode map used in himml-mode. (defvar himml-mode-map nil (#$ . 4500)) #@38 The table of abbrevs for himml-mode. (defvar himml-mode-abbrev-table nil (#$ . 4579)) (byte-code "\302B\305\302!\204\306 \307\310O!\311Y\303B\305\303!\204&\306 \307\310O!\312Y\n\2031\313\314M\210\2025\313\315M\210\f\204\267\n\203C\316\317!\202E\316 \320\f\321\322#\210\320\f\323\324#\210\320\f\325\326#\210\320\f\327\330#\210\320\f\331\332#\210\320\f\333\334#\210\320\f\335\336#\210\320\f\337\340#\210\320\f\341\342#\210\320\f\343\344#\210\320\f\345\346#\210\320\f\347\350#\210\320\f\351\352#\210\320\f\353\354#\210\320\f\355\356#\210\320\f\357\360#\210\320\f\361\362#\210\320\f\363\364#\210\313\f\365\"\210\365\207" [current-load-list emacs-version himml-emacs19-p himml-emacs20-p himml-mode-map boundp string-to-number 0 2 19 20 himml-create-mode-menu #[(mode-map shellp) "\303\304!\305 \306\303 #\210\305 \307\304B#\210\n\203)\305\310\311#\210\305\312\313#\210\305\314\315#\210\305\316\317#\210\305\320\321#\210\305\322\323#\210\305\324\325#\210\305\326\327#\210\n?\205i\305\330\331#\210\305\332\333#\210\305\334\335#\210\305\336\337#\210\340\341\342\343#)\207" [map mode-map shellp make-sparse-keymap "HimML" define-key [menu-bar] [menu-bar himml] [next-error] ("Next Error" . himml-next-error) [prev-error] ("Previous Error" . himml-prev-error) [separator-format] ("--") [send-buffer] ("Send Buffer" . himml-send-buffer) [send-region] ("Send Region" . himml-send-region) [send-function] ("Send Function" . himml-send-function) [eval] ("Eval..." . himml-eval) [run-on-file] ("Run on File..." . himml-run-on-file) [separator-format] ("--") [electric-pipe] ("Electric Pipe" . himml-electric-pipe) [indent-region] ("Indent Region" . himml-indent-region) [indent-line] ("Indent Line" . himml-indent-line) put indent-region menu-enable mark-active] 5] #[(mode-map shellp) "\300\207" [nil] 1] make-sparse-keymap "HimML" define-key "" himml-next-error "" himml-prev-error "" himml-mode-version "" himml-save-buffer-use-file "" himml-pop-to-shell "" himml-send-region "" himml-eval " " himml-region "" himml-run-on-file "" himml-send-function "" himml-send-buffer "|" himml-electric-pipe " " himml-back-to-outer-indent "\n" reindent-then-newline-and-indent "" backward-delete-char-untabify ";" himml-electric-semi " " himml-indent-region " " himml-indent-line nil] 4) #@38 The syntax table used in himml-mode. (defvar himml-mode-syntax-table nil (#$ . 6905)) (byte-code "\204\274\303 \304\304\305W\203\306 \307#\210 T\211\202\n\310\310\311W\2031\306 \307#\210 T\211\202\312\312\313W\203F\306 \307#\210 T\211\2024\314\314\315W\203[\306 \307#\210 T\211\202I)\306\316\317#\210\306\320\321#\210\306\312\322#\210\306\323\324#\210\306\314\325#\210\306\326\327#\210\306\330\331#\210\306\332\333#\210\306\334\335#\210\306\336\335#\210\306\337\335#\210\306\340\335#\210\306\341\342#\210\306\343\342#\210\306\344\342#\210\306\345\346#\210\n\203\307\347\350M\210\202\313\347\351M\210\303\207" [himml-mode-syntax-table i himml-emacs19-p make-syntax-table 0 48 modify-syntax-entry "." 58 65 91 97 123 128 40 "()1" 41 ")(4" "(]" 93 ")[" "(}" 125 "){" 42 ". 23" 34 "\"" 32 " " 9 10 12 39 "w" 95 124 92 "\\" set-comment-hook #[nil "\301\300!\210\302\211\207" [comment-indent-function make-local-variable himml-comment-indent] 2] #[nil "\301\300!\210\302\211\207" [comment-indent-hook make-local-variable himml-comment-indent] 2]] 5) #@2722 Major mode for editing HimML code. Tab indents for HimML code. Comments are delimited with (* ... *). Paragraphs are separated by blank lines only. Delete converts tabs to spaces as it moves back. Default key bindings: ===================== TAB - Indent current line. C-c TAB - Indent region. LFD - Reindent line, newline and indent. ESC TAB - Back line out one indentation. ESC | - Insert a "|". Insert function name, "=>" etc. C-c RET - Insert a common used structure. C-c C-n - Find the next error. C-c C-p - Find previous error. C-c C-s - Pop to the himml window. C-c C-u - Save the buffer, and send a "use file". C-c C-r - Send region (point and mark) to himml. C-c C-f - Send a "use file" to himml. C-c C-c - Send function/region to himml. C-c C-b - Send whole buffer to himml. C-c C-v - Get the version of himml-mode. Variables controlling the indentation ===================================== himml-indent-level (default 4) The indentation of a block of code. himml-pipe-indent (default -2) Extra indentation of a line starting with "|". himml-case-indent (default nil) Determine the way to indent case-of expression. If t: case expr If nil: case expr of of exp1 => ... exp1 => ... | exp2 => ... | exp2 => ... The first seems to be the standard in NJ-SML. The second is the default. himml-nested-if-indent (default t) If set to t, nested if-then-else expression will have the same indentation as: if exp1 then exp2 else if exp3 then exp4 else if exp5 then exp6 else exp7 himml-type-of-indent (default t) How to indent `let' `struct' etc. If t: fun foo bar = let If nil: fun foo bar = let val p = 4 val p = 4 in in bar + p bar + p end end Will not have any effect if the starting keyword is first on the line. himml-electric-semi-mode (default nil) If t, a `;' will reindent line, and perform a newline. himml-paren-lookback (default 2000) Determines how far back (in chars) the indentation algorithm should look for open parenthesis. High value means slow indentation algorithm. A value of 2000 (being the equivalent of 40-60 lines) should suffice most uses. (A value of nil, means do not look at all) Mode map ======== \{himml-mode-map} See himml-shell for further information. Runs himml-mode-hook if non nil. (defalias 'himml-mode #[nil "\306 \210\307!\210\310\311\312\303\313\"\210 \314 !\210\315\316!\210\317 P\315\320!\210\315\321!\210\322\315\323!\210\324\315\325!\210\326\315\327!\210\330\315\331!\210\332\315\333!\210\334\335 \210\336\337!\207" [himml-mode-map major-mode mode-name himml-mode-abbrev-table local-abbrev-table himml-mode-syntax-table kill-all-local-variables use-local-map himml-mode "HimML" define-abbrev-table nil set-syntax-table make-local-variable paragraph-start "^[ ]*$\\|" paragraph-separate indent-line-function himml-indent-line require-final-newline t comment-start "(* " comment-end " *)" comment-column 40 comment-start-skip "(\\*+[ ]?" set-comment-hook run-hooks himml-mode-hook page-delimiter] 3 (#$ . 8002) nil]) #@32 The keywords a `|' can follow. (defconst himml-pipe-matchers-reg "\\bcase\\b\\|\\bfn\\b\\|\\bfun\\b\\|\\bmemofun\\b\\|\\bmemofn\\b\\|\\bhandle\\b\\|\\bdatatype\\b\\|\\babstype\\b\\|\\band\\b\\|{\\|\\[\\|\\ball\\b\\|\\bexists\\b\\|\\bsome\\b\\|\\biterate\\b\\|\\bwith\\b" (#$ . 11495)) #@43 The vector of opening regular expressions (defconst himml-openings (vector "\\blet\\b\\|\\blocal\\b\\|\\bsig\\b\\|\\bstruct\\b\\|\\ball\\b\\|\\bexists\\b\\|\\bsome\\b\\|\\biterate\\b" "{" "\\[" "\\bif\\b" "(") (#$ . 11786)) #@43 The vector of closing regular expressions (defconst himml-closings (vector "\\bend\\b" "}" "]" "\\belse\\b" ")") (#$ . 12016)) #@66 The vector of texts corresponding to closing regular expressions (defconst himml-closing-quotes (vector "end" "}" "]" "else" "*)" ")") (#$ . 12149)) #@73 The regular expression matching 'in' but neither 'in set' nor 'in list' (defconst himml-in-regexp "in\\b[ \\t\\n]*\\($\\|\\B\\|\\<\\([^sl]\\|s$\\|s[^e]\\|se$\\|se[^t]\\|set\\B\\|l$\\|l[^i]\\|li$\\|li[^s]\\|lis$\\|lis[^t]\\|list\\B\\)\\)" (#$ . 12304)) #@81 Insert a "|". Depending on the context insert the name of function, a "=>" etc. (defalias 'himml-electric-pipe #[nil "\306\212\307!\210`)\310\311\212\312 \210`)\212\313\306x\210`)U\204\"\314c\210\315c\210\212 b\210\316\317!\203E\320\321u\210\322\323!\210`\324v\210`{\320Q\306\202\270\316\325!\203a\320\326u\210\322\323!\210`\324v\210`{\320Q\306\202\270\316\327!\203}\320\330u\210\322\323!\210`\324v\210`{\320Q\306\202\270\316\331!\203\212\320\306\202\270\316\332!\203\270\306\212\306\333\334\217\210) \203\263\320\321u\210\322\323!\210`\324v\210`{\320Q\306\202\267\320\306))\nc\210\335 \210\336 \210\nGTu\210 \205\315\337u,\207" [himml-pipe-matchers-reg case-or-handle-exp tmp match case-fold-search isfun nil himml-find-matching-starter " => " t beginning-of-line " " "\n" "|" looking-at "fun\\b" " " 3 himml-skip-chars-forward " \n " 1 "with\\b" 4 "memofun\\b" 7 "datatype\\b\\|abstype\\b\\|{\\|\\[\\|all\\b\\|exists\\b\\|some\\b\\|iterate\\b" "and\\b" (byte-code "\301\302!\210\303\304!\301\207" [isfun re-search-backward "datatype\\b\\|abstype\\b\\|fun\\b" looking-at "fun\\b"] 2) ((error (byte-code "\301\301\207" [isfun nil] 1))) himml-indent-line back-to-indentation -4] 4 (#$ . 12562) nil]) #@86 Inserts a ;. If himml-electric-semi-mode is t, indent the current line, and newline. (defalias 'himml-electric-semi #[nil "\301c\210\205 \302 \207" [himml-electric-semi-mode ";" reindent-then-newline-and-indent] 1 (#$ . 13802) nil]) #@36 Message the version of himml-mode. (defalias 'himml-mode-version #[nil "\301!\207" [himml-mode-version-string message] 2 (#$ . 14043) nil]) #@37 The list of regions to auto-insert. (defconst himml-region-alist '(("let") ("local") ("signature") ("structure") ("datatype") ("case") ("functor") ("abstype") ("abstraction")) (#$ . 14190)) #@65 Interactive short-cut. Insert a common used structure in himml. (defalias 'himml-region #[nil "\303\304\305\303\306\303% \307\230\203\310\311 \210\212\312 \210l)\204#\306\313c\210\303\314\315\217*\207" [himml-region-alist name newline nil completing-read "Region to insert: (default let) " t "" "let" himml-indent-line back-to-indentation "\n" (byte-code "\301\230\203 \302 \207\303\230\203\304 \207\305\230\203\306 \207\307\230\203$\310 \207\311\230\203-\312 \207\313\230\2036\314 \207\315\230\203?\316 \207\317\230\203H\320 \207\321\230\205P\322 \207" [name "let" himml-let "local" himml-local "structure" himml-structure "signature" himml-signature "abstraction" himml-abstraction "functor" himml-functor "case" himml-case "abstype" himml-abstype "datatype" himml-datatype] 2) ((quit (byte-code "\205\n\301\302!\210\303 \207" [newline delete-char -1 beep] 2)))] 7 (#$ . 14386) nil]) #@24 Insert a `let in end'. (defalias 'himml-let #[nil "\300\301!\207" [himml-let-local "let"] 2 (#$ . 15308) nil]) #@26 Insert a `local in end'. (defalias 'himml-local #[nil "\300\301!\207" [himml-let-local "local"] 2 (#$ . 15425) nil]) #@57 Insert a `signature ??? = sig end', prompting for name. (defalias 'himml-signature #[nil "\300\301!\207" [himml-structure-signature "signature"] 2 (#$ . 15548) nil]) #@60 Insert a `structure ??? = struct end', prompting for name. (defalias 'himml-structure #[nil "\300\301!\207" [himml-structure-signature "structure"] 2 (#$ . 15720) nil]) #@46 Insert a case, prompting for case-expresion. (defalias 'himml-case #[nil "\304\305\306!\307Pc\210\310 \210\311 \304\210\n\203&\312c\210 \313\\j\210\314c\210\202.\315c\210 \\j\210\212\316c+\207" [expr indent himml-case-indent himml-indent-level nil read-string "Case expr: " "case " himml-indent-line current-indentation "\n" 2 "of " " of\n" " => "] 3 (#$ . 15895) nil]) (defalias 'himml-let-local #[(starter) "\303 c\210\304 \210\305 \303\210\306c\210\n\\j\210\306c\210j\210\307c\210\n\\j\210\306c\210j\210\310c\210\311\312!\210\303)\207" [indent starter himml-indent-level nil himml-indent-line current-indentation "\n" "in\n" "end" previous-line 3] 2]) (defalias 'himml-structure-signature #[(which) "\304\305\306\307Q!\310 \311Rc\210\312 \210\313 \304\210\314c\210 \n\\j\210\315\230\203+\316\202,\317c\210 \211\\\320\\\n\\j\210\314c\210 \n\\j\210\321c\210\322\323!\210\304*\207" [which name indent himml-indent-level nil read-string "Name of " ": " " " " =" himml-indent-line current-indentation "\n" "signature" "sig\n" "struct\n" 0 "end" previous-line 1] 5]) #@76 Insert a `functor ??? () : ??? = struct end', prompting for name and type. (defalias 'himml-functor #[nil "\304\305\306!\305\307!\310 \311\312\260c\210\313 \210\314 \304\210\315c\210 \n\\j\210\316c\210 \211\\\317\\\n\\j\210\315c\210 \n\\j\210\320c\210\321\322!\210\304+\207" [signame name indent himml-indent-level nil read-string "Name of functor: " "Signature type of functor: " "functor " " () : " " =" himml-indent-line current-indentation "\n" "struct\n" 0 "end" previous-line 1] 5 (#$ . 16991)]) #@77 Insert a `abstraction ??? : ??? = struct end', prompting for name and type. (defalias 'himml-abstraction #[nil "\304\305\306!\305\307!\310 \311\312\260c\210\313 \210\314 \304\210\315c\210 \n\\j\210\316c\210 \211\\\317\\\n\\j\210\315c\210 \n\\j\210\320c\210\321\322!\210\304+\207" [signame name indent himml-indent-level nil read-string "Name of abstraction: " "Signature type of abstraction: " "abstraction " " : " " =" himml-indent-line current-indentation "\n" "struct\n" 0 "end" previous-line 1] 5 (#$ . 17507)]) #@48 Insert a `datatype ??? =', prompting for name. (defalias 'himml-datatype #[nil "\304\305\306!\305\307!\310 \311\230\203\311\202 \312P\313Rc\210\314 \210\315 \304\210\316c\210 \n\\j+\207" [name type indent himml-indent-level nil read-string "Type of datatype (default none): " "Name of datatype: " "datatype " "" " " " =" himml-indent-line current-indentation "\n"] 4 (#$ . 18037)]) #@43 Insert an `abstype 'a ??? = with ... end' (defalias 'himml-abstype #[nil "\304\305\306!\305\307! \310\230\203\311\312 \313\314\260c\210\315 \210\316 \317c\210 \n\\j\210\317c\210\nj\210\320c\210 \n\\j\210\317c\210\nj\210\321c\210\322\323!\210\304+\207" [type typevar indent himml-indent-level nil read-string "Name of typevariable (default 'a): " "Name of abstype: " "" "'a" "abstype " " " " =" himml-indent-line current-indentation "\n" "with\n" "end" previous-line 3] 5 (#$ . 18435)]) #@201 Regular expression for matching error. If you change this beware of the second to fourth parenthesized expressions. himml-next-error uses these to get the filename, and the line and character offset. (defvar himml-error-regexp "\\(Error:\\|Warning:\\|[^\n;]*;in\\)[ ]*\\([^,\n]+\\),[ ]*lines?[ ]*\\([0-9()-]+\\)" (#$ . 18938)) #@92 Face used to highlight regions of text when displaying errors through himml-display-error. (defvar himml-hilit-face (byte-code "\300\301!\205N\300\302!\205N\300\303!\205N\300\304!\203\304 \204(\300\305!\2034\305 \2034\301\306!\210\302\306\307\"\210\202M\300\310!\203H\310\311!\203H\303\311\306\"\210\202M\303\312\306\"\210\306\207" [fboundp make-face set-face-background copy-face x-color-display-p x-display-color-p himml-hilit-face "lightblue" facep highlight bold] 3) (#$ . 19272)) #@84 The current highlighted extent when displaying errors through himml-display-error. (defvar himml-hilit-extent nil (#$ . 19775)) (byte-code "\301\302!\204\n\302\303M\210\203`\301\304!\203`\301\305!\203`\301\306!\203`\301\307!\203`\301\310!\2042\302\310\304K\"\210\301\311!\204>\302\311\305K\"\210\301\312!\204H\312\313M\210\301\314!\204T\302\314\306K\"\210\301\315!\204`\302\315\307K\"\210\301\207" [himml-emacs19-p fboundp defalias #[(sym func) " M\207" [sym func] 2] make-overlay delete-overlay overlay-buffer overlayp make-extent delete-extent set-extent-face #[(extent face) "\302\301 #\207" [extent face overlay-put] 4] extent-buffer extentp] 3) (defalias 'himml-hilit-p #[nil "\205 \301\302!\205 \301\303!\207" [himml-hilit-face fboundp set-extent-face delete-extent] 2]) (defalias 'himml-parse-error #[nil "\306\224\306\225{\307\224\307\225{\310\211\311\211\312\313\f\"\210\314\f\315\224\315\225O!\211\f\311\225\310O\312\316\f\"\203B\314\f\315\224\315\225O!\f\311\225\310O \312\317\f\"\203Z\314\f\315\224\315\225O!\f\311\225\310O\311\312\316\f\"\203j\314\f\315\224\315\225O! B\n.BBB\207" [pos2 pos1 line2 line1 positions filename 2 3 nil 0 string-match "^\\([0-9]+\\)" string-to-int 1 "^(\\([0-9]+\\))" "^-\\([0-9]+\\)"] 7]) (defalias 'himml-delete-extent #[nil "\302 \203\303!\205\304\305!!\205\306!\210\307\211\207\307\211\207" [himml-hilit-extent overlay-arrow-string himml-hilit-p extentp buffer-name extent-buffer delete-extent nil] 3]) (defalias 'himml-display-error-1 #[(file line1 pos1 line2 pos2 msg) "\306!\307 \310\"\311\311\212 q\210\214~\210\312 !\210\313 \210\314 \2042\315\204,\316 `p\223\210u\210`\212\312!\210u\210`)\314 \203Z\317 \210\320 \f\" \321 !\"\210) eW\204g\fdV\203l~\210 b\210\"\203\241\322#!$\323$!\211%\204\213\324\n\325 &Z\"%\326%$\"\210$q\210\327 \210\"c\210*\202\274\330#!\211$\203\273\323$!\211%\203\272\331%!\210)))\332\n \",\207" [file buffer window start end line1 find-file-noselect display-buffer t nil goto-line beginning-of-line himml-hilit-p "=>" make-marker himml-delete-extent make-extent set-extent-face get-buffer-create get-buffer-window split-window window-height set-window-buffer erase-buffer get-buffer delete-window set-window-point overlay-arrow-string overlay-arrow-position pos1 line2 pos2 himml-hilit-extent himml-hilit-face msg himml-message-buffer-name buf win himml-message-buffer-height] 5]) (defalias 'himml-display-error #[(position) "@A @ A\211@@ @A A\211@ A\306 \f \n&. \207" [position pos msg file line1 pos1 himml-display-error-1 line2 pos2] 8]) (defalias 'himml-get-msg #[nil "\301\302!\203\303\304w\210`\305\306\307Qd\310\311$\210\312 \210`{\207\304y\210\304\207" [himml-shell-prompt-pattern looking-at " :" "[ : \n]+" nil re-search-forward "\\(" "\\)\\|^Error:\\|^Warning:" himml-next-error 1 beginning-of-line] 6]) (defalias 'himml-find-next-error #[nil "\300\301\302\217\207" [nil (byte-code "\301 \210\302!\210\212\303 \304 )B\207" [himml-error-regexp beginning-of-line re-search-forward himml-parse-error himml-get-msg] 2) ((error))] 3]) (defalias 'himml-find-prev-error #[nil "\300\301\302\217\207" [nil (byte-code "\301!\210\302 \212\303!\210\304 )B\207" [himml-error-regexp re-search-backward himml-parse-error re-search-forward himml-get-msg] 3) ((error))] 3]) #@232 Find the next error under a HimML toplevel by parsing the current buffer. A non-nil argument (prefix arg, if interactive) means reparse the error messages from the last erroneous toplevel command down and start at the first error. (defalias 'himml-next-error #[(arg) "\306\211\n\203&\307 e\310\311$\2035`\312 \211?\205\fb\210\313)\204\2025\314 \210\315 !\2032\306y\210\312 \203?\316!\202H\317 \210\320\321!\210\322 *\207" [position case-fold-search arg himml-shell-prompt-pattern p himml-error-regexp nil re-search-backward himml-next-error 1 himml-find-next-error t beginning-of-line looking-at himml-display-error himml-delete-extent message "No more errors" beep] 6 (#$ . 23150) "P"]) #@222 Find the previous error under a HimML toplevel by parsing the current buffer. A non-nil argument (prefix arg, if interactive) means reparse the error messages from the bottom of the buffer up and start at the last error. (defalias 'himml-prev-error #[(arg) "\303\211\n\203 db\210\304 \211\203\305!\202\306\307!\210\310 *\207" [position case-fold-search arg nil himml-find-prev-error himml-display-error message "No more errors" beep] 3 (#$ . 23862) "P"]) (byte-code "\204 \203\305\306!\210\307\310\311\312\313\314\f \n\315$\"\210+\305\207" [himml-emacs20-p himml-emacs19-p preprocessor strings comments require hilit19 (("(\\*" "\\*)" comment)) ((hilit-string-find 39 string)) (("^#[ ]*\\(undef\\|define\\).*$" "[^\\]$" define) ("^#.*$" nil include)) hilit-set-mode-patterns himml-mode append (("\\b\\(fun\\|memofun\\|with\\)\\b[^\n=]*[\n=]" nil defun) ("\\b\\(extern\\|val\\|and\\|exception\\|type\\|datatype\\|abstype\\|withtype\\)\\b[^\n=]*[\n=]" nil decl) ("[^_]\\(\\<\\(\\|if\\|then\\|else\\|fn\\|memofn\\|case\\|of\\|while\\|do\\|all\\|exists\\|some\\|iterate\\|let\\|end\\|handle\\)\\>\\|=>\\|{}\\|{\\|}\\||\\[\\]|\\||\\[\\|\\]|\\|\\[\\]\\|\\[\\|\\]\\||\\)[^_]" 1 keyword))] 7) #@30 Indent region of himml code. (defalias 'himml-indent-region #[(begin end) "\302\303!\210\212b\210\304  b\210`W\203!\305\306w\210\307 \210\306\210\202\306\211\223\210)\302\310!\207" [end begin message "Indenting region..." point-marker " \n " nil himml-indent-line "Indenting region... done"] 3 (#$ . 25071) "r"]) (defalias 'himml-indent-line1 #[nil "\302 \303 U\204\212\304 \210`\305 \210 `|\210j\210*i\303 W\205$\305 )\207" [indent beg himml-calculate-indentation current-indentation beginning-of-line back-to-indentation] 2]) #@36 Indent current line of himml code. (defalias 'himml-indent-line #[nil "\302=\203\212\303 \304Pe\305#)\203\214\306\225d}\210\307 )\207\307 \207\307 \207" [major-mode himml-shell-prompt-pattern himml-shell re-search-backward " ?" t 0 himml-indent-line1] 4 (#$ . 25620) nil]) #@51 Unindents to the next outer level of indentation. (defalias 'himml-back-to-outer-indent #[nil "\212\302 \210ii\211\303V\2050\212 Y\203*\304\305\306\307#\203$\310 \211\202\303\211\202)\311 Z!+\207" [indent start-column back-to-indentation 0 re-search-backward "^[^\n]" nil t current-indentation backward-delete-char-untabify] 5 (#$ . 25904) nil]) #@98 The indentation starters. The next line, after one starting with one of these, will be indented. (defconst himml-indent-starters-reg "abstraction\\b\\|abstype\\b\\|and\\b\\|case\\b\\|datatype\\b\\|else\\b\\|fun\\b\\|memofun\\b\\|fn\\b\\|memofn\\b\\|functor\\b\\|if\\b\\|sharing\\b\\|in\\b\\|sub[ ]map\\b\\|infix\\b\\|infixr\\b\\|let\\b\\|local\\b\\|nonfix\\b\\|open\\b\\|raise\\b\\|sig\\b\\|signature\\b\\|struct\\b\\|structure\\b\\|then\\b\\|\\btype\\b\\|val\\b\\|while\\b\\|with\\b\\|withtype\\b\\|extern\\b\\|such[ ]that\\b\\|[{[(]\\|\\ball\\b\\|\\bsome\\b\\|\\bexists\\b\\|\\biterate\\b" (#$ . 26269)) #@34 The starters of new expressions. (defconst himml-starters-reg "\\babstraction\\b\\|\\babstype\\b\\|\\bdatatype\\b\\|\\bexception\\b\\|\\bfun\\b\\|\\bmemofun\\b\\|\\bfunctor\\b\\|\\blocal\\b\\|\\binfix\\b\\|\\binfixr\\b\\|\\bsharing\\b\\|\\bnonfix\\b\\|\\bopen\\b\\|\\bsignature\\b\\|\\bstructure\\b\\|\\btype\\b\\|\\bval\\b\\|\\bwithtype\\b\\|\\bwith\\b\\|\\bextern\\b\\|[{[(]\\|\\ball\\b\\|\\bsome\\b\\|\\bexists\\b\\|\\biterate\\b" (#$ . 26883)) #@35 The starters of new declarations. (defconst himml-decl-starters-reg "\\babstraction\\b\\|\\babstype\\b\\|\\bdatatype\\b\\|\\bexception\\b\\|\\bfun\\b\\|\\bmemofun\\b\\|\\bfunctor\\b\\|\\blocal\\b\\|\\binfix\\b\\|\\binfixr\\b\\|\\bsharing\\b\\|\\bnonfix\\b\\|\\bopen\\b\\|\\bsignature\\b\\|\\bstructure\\b\\|\\btype\\b\\|\\bval\\b\\|\\bwithtype\\b\\|\\bwith\\b\\|\\bextern\\b" (#$ . 27337)) #@48 Matching reg-expression for the "end" keyword. (defconst himml-end-starters-reg "\\blet\\b\\|\\blocal\\b\\|\\bsig\\b\\|\\bstruct\\b\\|\\bwith\\b\\|\\ball\\b\\|\\bexists\\b\\|\\bsome\\b\\|\\biterate\\b" (#$ . 27733)) #@21 Indent after these. (defconst himml-starters-indent-after "let\\b\\|local\\b\\|struct\\b\\|in\\b\\|sig\\b\\|[{[(]" (#$ . 27955)) #@46 Matching reg-expression for the | separator. (defconst himml-starters-for-pipe "\\bfun\\b\\|\\bfn\\b\\|\\bmemofun\\b\\|\\bmemofn\\b\\|\\band\\b\\|\\bhandle\\b\\|\\bcase\\b\\|\\bdatatype\\b\\|\\bwith\\b\\|{\\|\\[\\|\\ball\\b\\|\\bexists\\b\\|\\bsome\\b\\|\\biterate\\b" (#$ . 28090)) #@67 Regexp matching the pipe |, but not the open record delimiter |[. (defconst himml-pipe-regexp "|\\($\\|[^[]\\)" (#$ . 28379)) (defalias 'himml-looking-at-match #[(prefix) "\304!\205@\212\305\225b\210`\306 \203+\304\307!\204+\304\310!\206%\311 \206%m?\211\204 \205?\nb\210\312 !\205?\304\313!\205?`+\207" [prefix matchp start himml-starters-for-pipe looking-at 0 t "[ ]*=>" "[ ]*=" himml-forward-sexp himml-find-matching-starter "fn\\b\\|memofn\\|handle\\b\\|case\\b\\|datatype\\b"] 3]) (defalias 'himml-indentation-at-starter #[(offset) "\301\302!\203\ni\303\\\207\301\304!\203i\305\\\207\301\306!\203i\307\\\207\301\310!\203(i\311\\\207\301\312!\2032i\303\\\207\301\313!\203<i\311\\\207\301\314!\203Fi\315\\\207\301\316!\203Pi\317\\\207\301\320!\203Zi\321\\\207i\\\207" [offset looking-at "fun\\b" 4 "memofun\\b" 8 "fn\\b" 3 "memofn\\b" 7 "and\\b" "handle\\b" "with" 5 "datatype" 9 "[[{]\\|some\\b\\|exists\\b\\|all\\|iterate\\b" 2] 2]) (defalias 'himml-calculate-indentation #[nil "\212\306\211\307 \210o\203\310\202/\311 \210\312 \203\313 \202/\314\315!\203C\316\317\306\320#\204/\321\322!\210\306\210\323\306w\210m\203>\310\202/\324 \202/\314\325!\203u\212\212\326\327!\210\307 \210\314\330!)\203b\326\327!\210\331 \202q\332\333\306\320#\203p\331 T\202q\310)\202/\334\n!\211\203\255\212b\210\314\335!\203\214iT\202\251\314\336!\203\230i\337\\\202\251\314\340!\203\246i \\\341\\\202\251i \\)\202/\212\342 \210\314\343!)\203\313\334\344!\211\203\313\212b\210i\341\\)\202/\314\345!\203\337\346\f!\203\333i\202/\310\202/\314 !\203\356\347\350\310\306\351$\202/\314\352!\203\374\347\353\310\306#\202/;\203-\314\354!\203-\212\355\356!\205\311 \205\314\357!\205\331 )\211\203-\206/\347\360\361\320#\202/\314\354!\203;\347\360\361\320#\202/\314\362!\203i;\203^\212\355\356!\205Z\311 \205Z\314\357!\205Z\331 )\206c\347\363\361\320#<\\\202/=\203~\314\343!\203~\355\364!\210i\365\\\202/\314\366!\203\245o\204\224\346\n!\203\224\334\n!\204\204>\203\235i\202\237\331 <\\\202/\314?!\203\377`@\346\f!\203\372\314A!\203\344@`U\204\344>\203\314i\202\336\311 \210\314\367!\203\334\331 Z\202\336\331 <\\\202\373iB\311 \210\314\370!\203\364i\202\366B)\202\373\310)\202/\371 C\314\n!\203\346D!\203\372\310! \\\202.C \\\202.E\203,C\313 ]\202.C)+\207" [match case-fold-search himml-pipe-regexp himml-pipe-indent himml-starters-reg himml-in-regexp nil beginning-of-line 0 back-to-indentation himml-inside-comment-or-string-p himml-get-paren-indent looking-at "(\\*" search-forward "*)" t error "Comment not ended." "\n " himml-calculate-indentation "\\\\" previous-line 1 "[ ]*\\\\" current-indentation re-search-backward "[^\\\\]\"" himml-looking-at-match "fn\\b" "memofn\\b\\|handle\\b" 5 "case\\b" 4 himml-backward-sexp "of\\b" "" "and\\b" himml-find-matching-starter himml-find-match-indent "in" "\\blocal\\b\\|\\blet\\b" "end\\b" "end" "else\\b" himml-re-search-backward "\\bif\\b\\|\\belse\\b" "\\bif\\b\\|\\belse[ ]*if\\b" "else" 3 "then\\b" "then" "\\bcase\\b" 2 "such[ ]that\\b" "|\\($\\|[^[]\\)" "extern\\b" himml-get-indent himml-indentation-at-starter himml-nested-if-indent himml-indent-level himml-case-indent himml-type-of-indent himml-decl-starters-reg start himml-starters-indent-after c indent himml-starters-for-pipe himml-paren-lookback] 5]) (defalias 'himml-get-indent #[nil "\212\305\306 \210\307\310!\210\311\312!\203\313 \210\212\313 \210\311\314!)\203#\315 \202ti\315 U\204=\313 \2036\311 !?\202:\311\n!?\204#\315 \316\317!\210\311\320!\203P \321\\\202s\311\322!\203\\ \323\\\202s\311\324!\203f \202s\311 !\203r\325\f!\202s )*\207" [case-fold-search himml-indent-starters-reg himml-decl-starters-reg indent himml-indent-level nil beginning-of-line himml-skip-chars-backward " \n; " looking-at ";" himml-backward-sexp "end\\b" current-indentation himml-skip-chars-forward " " "||" 3 "|" 2 "[([{]" himml-indentation-at-starter] 2]) (defalias 'himml-get-paren-indent #[nil "\212\305\211\211`Ze]\306\307\215-\207" [himml-paren-lookback backpoint levelsqr levelcurl levelpar 0 loop (byte-code "\306U\204q \306U\204q\n\306U\204q\307\310 \311#\203i\312 \204\313\314!\203,T\211\202\313\315!\2039S\211\202\313\316!\203E T\202\313\317!\203Q S\202\313\320!\203]\nT\202\313\321!\203\nS\202\322\323\324\"\210\202\212\306u\210\313\f!\203\201\325 !\202\202i)\207" [levelpar levelsqr levelcurl backpoint himml-indent-starters-reg himml-indent-level 1 re-search-backward "[][{}()]" t himml-inside-comment-or-string-p looking-at "(" ")" "\\[" "\\]" "{" "}" throw loop 0 himml-indentation-at-starter] 5)] 5]) (defalias 'himml-inside-comment-or-string-p #[nil "`\212\302\303\304\217)\203\305\202\306\212\214\307 \210`}\210\302\310\311\217+)\207" [start numb nil (byte-code "\301\302!\210\303\304!\210\305u\210`V\207" [start search-backward "(*" search-forward "*)" -1] 2) ((error)) t 0 beginning-of-line (byte-code "\301\302!\210T\202" [numb search-forward "\""] 2) ((error (byte-code "\301!?\205\301\302\246!?\205\303\207" [numb zerop 2 t] 3)))] 3]) (defalias 'himml-skip-block #[nil "\301\302 \210\303\304!\205\305\306\307\"b\210\310\311!)\207" [case-fold-search nil himml-backward-sexp looking-at "end\\b" himml-find-match-backward "end" 0 himml-skip-chars-backward "\n "] 3]) (defalias 'himml-find-match-backward #[(unquoted-this this-index &optional start) "\212\306\307G\310\"\307G\310\"\311!\312\311 !Q\f\313I\210\203'b\210\f \232\204g\314\n!\203]\315!\211\203I\f\fHSI\210\202Y\315 !\f\fHTI\210))\202'\316\317P!\210\202'`-\207" [himml-openings himml-closings pattern goal-levels levels case-fold-search nil make-vector 0 himml-make-pattern "\\|" 1 himml-re-search-backward himml-indexed-looking-at error "Unbalanced: " this-index start i unquoted-this] 8]) (defalias 'himml-make-pattern #[(l) "\301G!\203 \302\207\303H\304\305G#P\207" [l zerop "" 0 himml-make-pattern-1 1] 5]) (defalias 'himml-make-pattern-1 #[(l i n) " W\203\303\nH\304\nT #Q\207\305\207" [i n l "\\|" himml-make-pattern-1 ""] 6]) (defalias 'himml-indexed-looking-at #[(l) "\301\302G#\207" [l himml-indexed-looking-at-1 0] 4]) (defalias 'himml-indexed-looking-at-1 #[(l i n) " W\205\303\nH!\203\207\304\nT #\207" [i n l looking-at himml-indexed-looking-at-1] 4]) (defalias 'himml-find-match-indent #[(unquoted-this this-index indented &optional check) "\212\306 \"b\210\n\203\307\n!\204\310\311\"\210 \204\f\203\"i\2024\312 \210\307\313!\2032\314 Z\2024\314 )\207" [unquoted-this this-index check himml-type-of-indent indented himml-pipe-indent himml-find-match-backward looking-at error "Unbalanced: " back-to-indentation "|\\($\\|[^[]\\)" current-indentation] 3]) (defalias 'himml-find-matching-starter #[(regexp) "\304\305\306 !Q\307\n!*\207" [regexp himml-closings new-regexp case-fold-search nil "\\|" himml-make-pattern himml-re-search-backward-1] 5]) (defalias 'himml-re-search-backward-1 #[(regexp) "\306\211 \203.\307\n!\203'\310 !\211\203!\311 \fH\f\"b\210\202#\312)\202\312\312\202*\207" [found cont regexp himml-closings i himml-closing-quotes t himml-re-search-backward himml-indexed-looking-at himml-find-match-backward nil] 4]) (defalias 'himml-point-inside-let-etc #[nil "\305\211\306\211`\212\n\203\305\307\310\217\210\202 \203 \202 \311.\207" [start found loop last case-fold-search nil t (byte-code "\303\304!\210\305 \203\303\304!\210\202\306u\210\307\310\311#\211 W\203$\312\202'\313u\210\312\207" [last start loop re-search-forward "\\bend\\b" himml-inside-comment-or-string-p -3 himml-find-match-backward "end" 0 nil 3] 5) ((error (byte-code "\302\302\302\207" [found loop nil] 1))) 0] 5]) (defalias 'himml-re-search-backward #[(regexpr) "\303\304\305\n\303\304#\205\303\306\307\217\210*\207" [found case-fold-search regexpr nil t re-search-backward (byte-code "\301 \203\f\302!\210\202\301\207" [regexpr himml-inside-comment-or-string-p re-search-backward] 2) ((error (byte-code "\301\301\207" [found nil] 1)))] 4]) (defalias 'himml-up-list #[nil "\212\300\301\302\217)\207" [nil (byte-code "\300\301!\210`\207" [up-list 1] 2) ((error 0))] 3]) (defalias 'himml-backward-sexp #[nil "\300\301\302\217\207" [nil (byte-code "`\301\302!\210`U?\205\303\304!\205`\301\302!\210\202)\207" [start backward-sexp 1 looking-at "(\\*"] 2) ((error (forward-char -1) t))] 3]) (defalias 'himml-forward-sexp #[nil "\300\301\302\217\207" [nil (byte-code "`\301\302!\210`\303ZY\205\"\212\304u\210\305\306!)\205\"`\301\302!\210\202)\207" [start forward-sexp 1 2 -2 looking-at "\\*)"] 3) ((error t))] 3]) (defalias 'himml-comment-indent #[nil "\301\302!\203\303\207\212\304\305x\210iT])\207" [comment-column looking-at "^(\\*" 0 " " nil] 2]) (defalias 'himml-skip-chars-forward #[(chars) "\301w\210\302\303!\205\304\305!\210\306!\207" [chars nil looking-at "(\\*" forward-sexp 1 himml-skip-chars-forward] 2]) (defalias 'himml-skip-chars-backward #[(chars) "\301x\210\212\302u\210\303\304!)\205\305\306!\210\307!\207" [chars nil -2 looking-at "\\*)" backward-sexp 1 himml-skip-chars-backward] 2]) #@38 The working directory of himml-shell (defvar himml-shell-working-dir "" (#$ . 37624)) #@31 The name of the HimML process (defvar himml-process-name nil (#$ . 37716)) #@31 The mode map for himml-shell. (defvar himml-shell-map nil (#$ . 37797)) (defalias 'himml-startup-ready #[nil "\212eb\210\301\302\303#)\207" [himml-shell-prompt-pattern re-search-forward nil t] 4]) (byte-code "\301\302!\210\303\304!\204\305\304\306K\"\210\303\307!\204\305\307\310K\"\210\203'\311\312M\210\202+\311\313M\210\301\207" [himml-emacs19-p require shell fboundp make-comint defalias make-shell copy-keymap copy-sequence himml-cd-command #[(dir) "\301\302\303!\"\207" [dir format "cd %S" expand-file-name] 4] #[(dir) "\301\302\303!!P\207" [dir "cd " prin1-to-string expand-file-name] 4]] 3) #@1404 Inferior shell invoking HimML. Like the shell mode with the additional command: \[himml-run-on-file] Runs himml on the file. \{himml-shell-map} Variables controlling the mode: himml-prog-name (default \[himml-prog-name\]) The string used to invoke the himml program. himml-prog-name-ask-p (default \[himml-prog-name-ask-p\]) If t, you will be asked which program to run when the inferior shell starts up. himml-use-right-delim (default \[himml-use-right-delim\]) himml-use-left-delim (default \[himml-use-left-delim\]) The left and right delimiter used by your version of himml, for "use file-name". himml-shell-prompt-pattern (default \[himml-shell-prompt-pattern\]) The prompt pattern. himml-tmp-template (default \[himml-tmp-template\]) Template for the temporary files, created when a region is send to the inferior process running himml (by himml-simulate-send-region). `cd' commands given to the HimML process are watched by Emacs to keep this buffer's default directory the same as the shell's default directory. While directory tracking is enabled, the shell's working directory is displayed by \[list-buffers] or \[mouse-buffer-menu] in the `File' field. \[himml-dirs] queries the shell and resyncs Emacs' idea of what the current directory stack is. \[himml-dirtrack-toggle] turns directory tracking on and off. Runs himml-shell-hook if not nil. (defalias 'himml-shell #[(&optional dir) "\203\306!\307=\203 ?\206 \n\230?\205 \310\311 !!\207\312\313!\210\212 \2033\314\315\f\316Q\317\320 !\f#\n\204F\321\f\322\323\f\"\322\324\f\"OP\325\326\327\f!\330U\203W\331\f!\202X\f\332\333\334 \205d\335\311 !D&q\210\336 \210@\204\320\337A!@\340@\341\342#\210\340@\343\310#\210\340@\344\345#\210\340@\346\347#\210\340@\350\351#\210\340@\352\353#\210\340@\354\355#\210\340@\356\357#\210\340@\360\361#\210\340@\362\363#\210\340@\364\365#\210\340@\366\367#\210\370@\371\"\210\372@!\210\373\374!\210B<\373\375!\210B=\373\376!\210\331\n!>\377C\201ED\201F\201G!\201H\"\210\201I\201J!)\207" [himml-process-name dir default-directory himml-prog-name-ask-p himml-prog-name himml-shell-working-dir process-status run himml-eval himml-cd-command message "Starting HimML..." read-file-name "HimML (default " "): " file-name-directory buffer-file-name "" string-match "[^/]*$" "$" apply make-comint string-to-char 126 expand-file-name nil "-pwd-prompt" "|%s|%s" "-init" erase-buffer copy-keymap define-key "" himml-run-on-file "" "" himml-send-region "" himml-prev-error "" himml-next-error " " himml-region "|" himml-electric-pipe " " himml-back-to-outer-indent "\n" reindent-then-newline-and-indent "" backward-delete-char-untabify ";" himml-electric-semi " " himml-indent-line himml-create-mode-menu t use-local-map make-local-variable shell-prompt-pattern comint-prompt-regexp list-buffers-directory himml-shell himml-shell-map shell-mode-map himml-shell-prompt-pattern major-mode mode-name "HimML-shell" set-process-filter get-process himml-startup-filter run-hooks himml-shell-hook] 10 (#$ . 38414) "DHimML in directory: "]) (defalias 'himml-spy-cd #[(str) "\306\307\"\203C\310\224\310\225\311\224\311\225O\310 O\n\312OP \230\204@ \212\313\314!!q\210\315 !\210\316\317 !!\320\321 \"\210)\f,\207\207" [str start end wd newstr himml-shell-working-dir string-match "|\\([^|]*\\)|" 0 1 nil process-buffer get-process cd file-name-as-directory expand-file-name message "HimML directory: %s" himml-process-name list-buffers-directory] 4]) (defalias 'himml-startup-filter #[(proc str) "\306 \307\310\310Q\311 !\210db\210\312\f!c\210\313 \203&\314\315!\210\316\317!\320\"\210\321 !d\322\223\210\323 !+\207" [himml-process-name process pop-up-windows cur str proc selected-window t "*" pop-to-buffer himml-spy-cd himml-startup-ready message "Starting HimML... done." set-process-filter get-process himml-process-filter process-mark nil select-window] 5]) (defalias 'himml-process-filter #[(proc str) "\306 \307\310\310Q\311 !\210db\210\312\f!c\210\313 !d\314\223\210\315 !+\207" [himml-process-name process pop-up-windows cur str proc selected-window t "*" pop-to-buffer himml-spy-cd process-mark nil select-window] 5]) #@34 Pop to the buffer running himml. (defalias 'himml-pop-to-shell #[nil "\301 \210\302\303\303Q!\207" [himml-process-name himml-shell pop-to-buffer "*"] 4 (#$ . 42664) nil]) #@54 Send a use FILE to the inferior shell running himml. (defalias 'himml-run-on-file #[(file) "\306 \210\307! \203\"\310\311\312\"O\n\230\203\"\311\312\"\311\313\"O\314 \210\315 \316\f \317\260\"\207" [file himml-strip-path himml-shell-working-dir himml-process-name himml-use-left-delim himml-use-right-delim himml-shell expand-file-name 0 string-match "[^/]*$" "$" save-some-buffers send-string "use " ";\n"] 7 (#$ . 42842) "FUse file: "]) #@77 Save the buffer, and send a `use file' to the inferior shell running himml. (defalias 'himml-save-buffer-use-file #[nil "\306\307 \211\203?\310 \210\311 \210 \203*\312\313\314\"O\n\230\203*\313\314\"\313\315\"O\316\317 \fR!\210\320 \317 \f\321\260\"\202B\322\323!)\207" [file himml-strip-path himml-shell-working-dir himml-use-left-delim himml-use-right-delim himml-process-name nil buffer-file-name save-buffer himml-shell 0 string-match "[^/]*$" "$" message "use " send-string ";\n" error "Buffer not associated with file."] 7 (#$ . 43299) nil]) #@160 List of all temporary files created by himml-simulate-send-region. Each element in the list is a list with the format: (tmp-filename file-name start-line) (defvar himml-tmp-files-list nil (#$ . 43869)) #@56 Has himml-simulate-send-region been called previously. (defvar himml-simulate-send-region-called-p nil (#$ . 44081)) #@30 Old value of kill-emacs-hook (defvar himml-old-kill-emacs-hook nil (#$ . 44204)) (byte-code "\301B\302\301\207" [current-load-list himml-tmp-bug ""] 2) #@190 Simulate send region. As send-region only can handle what ever the system sets as the default, we have to make a temporary file. Updates the list of temporary files (himml-tmp-files-list). (defalias 'himml-simulate-send-region #[(point1 point2) "\306\307 P!! \204\f\310\311\312GT\313\246!\203! \314P\212b\210\n\315 \212\316 \210\317\320`\"T)EB)\321\n\322\323%\210\324 \210\325\326\n\"\210\327\330\n\331\260\")\207" [himml-tmp-template himml-tmp-bug file himml-simulate-send-region-called-p kill-emacs-hook himml-old-kill-emacs-hook expand-file-name make-temp-name himml-remove-tmp-files t zerop 25 "A" buffer-file-name beginning-of-line count-lines 1 write-region nil dummy himml-shell message "Using temporary file: %s" send-string "use " ";\n" himml-tmp-files-list point1 point2 himml-process-name himml-use-left-delim himml-use-right-delim] 7 (#$ . 44366)]) #@221 Remove the temporary files, created by himml-simulate-send-region, if they still exist. Only files recorded in himml-tmp-files-list are removed. This function is put into kill-emacs-hook if any temporary files are used. (defalias 'himml-remove-tmp-files #[nil "\301\302!\210\203\303\304\305\217\210A\211\204\301\306!\210\307\310!\207" [himml-tmp-files-list message "Removing temporary files created by himml-mode..." nil (byte-code "\301@@!\207" [himml-tmp-files-list delete-file] 2) ((error)) "Removing temporary files created by himml-mode... done." run-hooks himml-old-kill-emacs-hook] 4 (#$ . 45262)]) #@46 Send region to inferior shell running himml. (defalias 'himml-send-region #[nil "\302 \210\303\211\212`\304 \210`)\305 \"*\207" [end start himml-shell nil exchange-point-and-mark himml-simulate-send-region] 3 (#$ . 45882) nil]) (defalias 'himml-eval #[(cmd) "\305 \210\306P\307\n!\310 !\212\fq\210db\210 c\210)\311\n \"+\207" [cmd s himml-process-name proc buf himml-shell ";\n" get-process process-buffer send-string] 3 nil "sHimML: "]) #@91 Does *not* send the function, but the paragraph, to inferior shell running himml (sorry). (defalias 'himml-send-function #[nil "\302 \210\303\211\212\303\304\305\217\210\303\306\307\217\210)\310 \"*\207" [end start himml-shell nil (byte-code "\301 \210`\301\207" [start backward-paragraph] 1) ((error (byte-code "e\301\207" [start nil] 1))) (byte-code "\301 \210`\301\207" [end forward-paragraph] 1) ((error (byte-code "d\301\207" [end nil] 1))) himml-simulate-send-region] 3 (#$ . 46335) nil]) #@51 Send the buffer, to inferior shell running himml. (defalias 'himml-send-buffer #[nil "\300 \210\301ed\"\207" [himml-shell himml-simulate-send-region] 3 (#$ . 46843) nil])