;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; 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!\210\300\302!\207" [require comint smalltalk-mode] 2) #@46 Regexp to match prompts in smalltalk buffer. (defvar smalltalk-prompt-pattern "^st> *" (#$ . 483)) #@34 Holds the GNU Smalltalk process. (defvar smalltalk--process nil (#$ . 588)) #@69 GNU Smalltalk command to run. Do not use the -a, -f or -- options. (defvar gst-program-name "gst -V" (#$ . 670)) #@62 Non-nil means that we're accumulating output from Smalltalk. (defvar smalltalk-command-string nil (#$ . 790)) #@3 ? (defvar smalltalk-eval-data nil (#$ . 905)) #@61 Keymap of subcommands of C-c C-t, tracing related commands. (defvar smalltalk-ctl-t-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\211\207" [make-sparse-keymap define-key "" smalltalk-toggle-decl-tracing "" smalltalk-toggle-exec-tracing "" smalltalk-toggle-verbose-exec-tracing] 5) (#$ . 957)) #@43 Keymap used in Smalltalk interactor mode. (defvar gst-mode-map (byte-code "\301 \302\303#\210\302\304\305#\210\302\306\307#\210\302\310\311#\210\302\312\313#\210\302\314\315#\210\302\316\317#\210\302\320\321#\210\211\207" [smalltalk-ctl-t-map make-sparse-keymap define-key "" "\206" smalltalk-forward-sexp "\202" smalltalk-backward-sexp "d" smalltalk-doit "f" smalltalk-filein "p" smalltalk-print "q" smalltalk-quit "s" smalltalk-snapshot] 5) (#$ . 1289)) #@42 Invoke GNU Smalltalk. (fn COMMAND-LINE) (defalias 'gst #[257 "\211\302\303!\204\f\304\202 \305\306\307\310\311!#!\210\312p!\211\207" [gst-program-name smalltalk--process derived-mode-p gst-mode switch-to-buffer-other-window identity apply smalltalk--make-gst "gst" smalltalk--parse-command get-buffer-process] 7 (#$ . 1767) (byte-code "\204 \202\n\302 C\207" [current-prefix-arg gst-program-name smalltalk--read-command] 1)]) (defvar smalltalk--mode-status nil) #@194 Reads the program name and arguments to pass to Smalltalk, providing COMMAND-LINE as a default (which itself defaults to `gst-program-name'), answering the string. (fn &optional COMMAND-LINE) (defalias 'smalltalk--read-command #[256 "\301\302\206\"\207" [gst-program-name read-string "Invoke Smalltalk: "] 4 (#$ . 2246)]) #@12 (fn STR) (defalias 'smalltalk-file-name #[257 "\300!\203\n\301!\207\207" [file-name-directory expand-file-name] 3 (#$ . 2579)]) #@143 Parse a list of command-line arguments from STR (default `gst-program-name'), adding --emacs-mode and answering the list. (fn &optional STR) (defalias 'smalltalk--parse-command #[256 "\211\204\262\301\211\211\302\303\"\211\262\203=\302\304#\206G\262\305O!B\262\211A\2044\306B\262\301O\262\202\n\211\237\207" [gst-program-name nil string-match "[^ ]" " " smalltalk-file-name "--emacs-mode"] 8 (#$ . 2719)]) #@28 (fn NAME &rest SWITCHES) (defalias 'smalltalk--make-gst #[385 "\300\301\301Q!\302\211\303!\262\203\304!\262rq\210\211\305>\204@\203(\306!\210\307\310\311\312\313\314 \"\315\316 &\262\317!\262db\210\320!`\302\223\210\321\322\"\210\323 \210)\207" [get-buffer-create "*" nil get-buffer-process process-status (run stop) delete-process apply start-process "env" format "TERMCAP=emacs:co#%d:tc=unknown:" frame-width "TERM=emacs" "EMACS=t" process-name process-mark set-process-filter smalltalk--gst-filter gst-mode] 14 (#$ . 3158)]) #@97 Make sure that the window continues to show the most recently output text. (fn PROCESS STRING) (defalias 'smalltalk--gst-filter #[514 "\302\203K\211\203K\203\303!\262\203\304\305\"\211\262\203H\211\306U\2038\302OT\307OP\262\202G\211\310U\203G\311T\307O\262\210\202r\312!q\210db\210\203a\313\211\203ac\210\314!\203n\314!d\307\223\210)\210r\312!q\210db\210\315\302!\210\316\317p!d\")\207" [smalltalk-command-string smalltalk--mode-status 0 smalltalk-accum-command string-match "\\|" 1 nil 2 "" process-buffer "idle" process-mark sit-for set-window-point get-buffer-window] 8 (#$ . 3718)]) #@15 (fn STRING) (defalias 'smalltalk-accum-command #[257 "\301\302\"\303OP\211\205\304\216\305!\210)\306O\207" [smalltalk-command-string string-match "" 0 #[0 "\301\211\207" [smalltalk-command-string nil] 2] smalltalk-handle-command nil] 6 (#$ . 4355)]) #@12 (fn STR) (defalias 'smalltalk-handle-command #[257 "\300\301!!\207" [eval read] 4 (#$ . 4625)]) (defvar gst-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [gst-mode-hook variable-documentation put "Hook run after entering GST mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp gst-mode-map definition-name gst-mode] 4) (defvar gst-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" [gst-mode-abbrev-table gst-mode-map variable-documentation put purecopy "Keymap for `gst-mode'." boundp gst-mode-syntax-table definition-name gst-mode (lambda (#1=#:def-tmp-var) (defvar gst-mode-syntax-table #1#)) make-syntax-table "Syntax table for `gst-mode'." (lambda (#1#) (defvar gst-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `gst-mode'." derived-mode-parent comint-mode] 5) #@260 Major mode for interacting Smalltalk subprocesses. Entry to this mode calls the value of gst-mode-hook with no arguments, if that value is non-nil; likewise with the value of comint-mode-hook. gst-mode-hook is called after comint-mode-hook. \{gst-mode-map} (defalias 'gst-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 \"=\204R\326 \325\"C#\210\327 !\210\330\f!\210 \"\331#\306\332!\210$\306\333!\210\307\306\334!\210\335\306\336!\210\337)\340\341!\207" [delay-mode-hooks major-mode mode-name gst-mode-map gst-mode-syntax-table gst-mode-abbrev-table make-local-variable t comint-mode gst-mode "GST" 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 ("" mode-line-modified mode-line-buffer-identification " " global-mode-string " %[(" mode-name ": " smalltalk--mode-status "%n" mode-line-process ")%]----" (-3 . "%p") "-%-") comint-prompt-regexp comint-use-prompt-regexp smalltalk-command-string nil smalltalk--mode-status "starting-up" run-mode-hooks gst-mode-hook local-abbrev-table mode-line-format smalltalk-prompt-pattern] 5 (#$ . 5826) nil]) #@34 (fn START END &optional LABEL) (defalias 'smalltalk-print-region #[770 "\300\211\211\211\212\214]b\210\301 \210`\262\301 \210h\302U\204\"h\303U\203(\304u\210\202^`{\262`{\262^b\210`S\262~\210\305e`\"T\262*\306\307\310#\206X\311\312\"#\207" [nil smalltalk-backward-whitespace 33 46 -1 count-lines send-to-smalltalk format "(%s) printNl%s\n" "eval" smalltalk-pos] 13 (#$ . 7204)]) #@194 Evaluate START to END as a Smalltalk expression in Smalltalk window. If the expression does not end with an exclamation point, one will be added (at no charge). (fn START END &optional LABEL) (defalias 'smalltalk-eval-region #[770 "{\300\211\212\214^b\210`\262~\210\301e`\"T\262*\302\303P\206\"\304\305\"#\207" [nil count-lines send-to-smalltalk "\n" "eval" smalltalk-pos] 12 (#$ . 7624)]) #@17 (fn USE-LINE) (defalias 'smalltalk-doit #[257 "\300 \206``\204U\203\301 \202B\302@A\303#\207" [mark smalltalk-bound-expr smalltalk-eval-region "doIt"] 8 (#$ . 8032) "P"]) #@17 (fn USE-LINE) (defalias 'smalltalk-print #[257 "\300 \206``\204U\203\301 \202B\302@A\303#\207" [mark smalltalk-bound-expr smalltalk-print-region "printIt"] 8 (#$ . 8226) "P"]) #@82 Returns a cons of the region of the buffer that contains a smalltalk expression. (defalias 'smalltalk-bound-expr #[0 "\212\300 \210`\301y\210\302 \210`)B\207" [beginning-of-line 1 smalltalk-backward-whitespace] 2 (#$ . 8425)]) #@17 (fn LINE POS) (defalias 'smalltalk-pos #[514 "\300 \211\205\nE\207" [buffer-file-name] 6 (#$ . 8658)]) #@18 (fn START END) (defalias 'smalltalk-compile #[514 "{\212\214~\210\300!T*\301\302\303\"#\207" [line-number-at-pos send-to-smalltalk "compile" smalltalk-pos] 11 (#$ . 8773) "r"]) #@12 (fn STR) (defalias 'smalltalk-quote-strings #[257 "r\300\301!q\210\302 \210\211c\210\303b\210m\204!\304\305\306\307#\203!\305c\210\202\310 )\207" [get-buffer-create " st-dummy " erase-buffer 1 search-forward "'" nil to-end buffer-string] 5 (#$ . 8966)]) #@32 (fn &optional SNAPSHOT-NAME) (defalias 'smalltalk-snapshot #[256 "\300\203\f\301\302\"\202 \303\304\"\207" [send-to-smalltalk format "ObjectMemory snapshot: '%s'\n" "ObjectMemory snapshot\n" "Snapshot"] 5 (#$ . 9232) (byte-code "\205\n\301\302\303!!C\207" [current-prefix-arg expand-file-name read-file-name "Snapshot to: "] 3)]) #@81 Terminate the Smalltalk session and associated process. Emacs remains running. (defalias 'smalltalk-quit #[0 "\300\301\302\"\207" [send-to-smalltalk "! ! ObjectMemory quit!" "Quitting"] 3 (#$ . 9576) nil]) #@54 Do a FileStream>>fileIn: on FILENAME. (fn FILENAME) (defalias 'smalltalk-filein #[257 "\300\301\302\303!\"\304\"\207" [send-to-smalltalk format "FileStream fileIn: '%s'\n" expand-file-name "fileIn"] 6 (#$ . 9789) "fSmalltalk file to load: "]) (defalias 'smalltalk-filein-buffer #[0 "\300\301 \302\303\304\211\"#\207" [send-to-smalltalk buffer-string "fileIn" smalltalk-pos 1] 6 nil nil]) (defalias 'smalltalk-toggle-decl-tracing #[0 "\300\301!\207" [send-to-smalltalk "Smalltalk declarationTrace: Smalltalk declarationTrace not\n"] 2 nil nil]) (defalias 'smalltalk-toggle-exec-tracing #[0 "\300\301!\207" [send-to-smalltalk "Smalltalk executionTrace: Smalltalk executionTrace not\n"] 2 nil nil]) (defalias 'smalltalk-toggle-verbose-exec-tracing #[0 "\300\301!\207" [send-to-smalltalk "Smalltalk verboseTrace: Smalltalk verboseTrace not\n"] 2 nil nil]) #@36 (fn STR &optional MODE FILEINFO) (defalias 'send-to-smalltalk #[769 "\304 \305\306\307\310\311!\312\"\313$\216\314!\210\212db\210\315 \210\316 !\203%\317\210\320c\210)\203,\203o\317\211\321\322\323!P\262r\324\325!\211\262q\210\326 \210\327\"\210\330ed\317\331%\210)\332!\210\333 \334\335@ A@\313 8%\"\266\202t\336 \"\210\337\340 !!)\207" [gst-program-name smalltalk-prompt-pattern smalltalk--mode-status smalltalk--process current-window-configuration make-byte-code 0 "\301\300!\207" vconcat vector [set-window-configuration] 2 gst beginning-of-line looking-at nil "\n" "/tmp/" make-temp-name "gst" get-buffer-create " zap-buffer " erase-buffer princ write-region no-message kill-buffer process-send-string format "FileStream fileIn: '%s' line: %d from: '%s' at: %d\n" comint-send-string switch-to-buffer-other-window process-buffer] 15 (#$ . 10649)]) (provide 'gst-mode)