;ELC   
;;; compiled by jwz@thalidomide on Thu Mar 24 13:24:21 1994
;;; from file /th/jwz/emacs19/lisp/modes/simula.el
;;; emacs version 19.10 Lucid (beta9).
;;; bytecomp version 2.22; 22-dec-93.
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19")))
    (error "This file was compiled for Emacs 19."))

(provide 'simula-mode)
(defconst simula-tab-always-indent nil "\
*Non-nil means TAB in SIMULA mode should always reindent the current line.
Otherwise TAB indents only when point is within
the run of whitespace at the beginning of the line.")
(defconst simula-indent-level 3 "\
*Indentation of SIMULA statements with respect to containing block.")
(defconst simula-substatement-offset 3 "\
*Extra indentation after DO, THEN, ELSE, WHEN and OTHERWISE.")
(defconst simula-continued-statement-offset 3 "\
*Extra indentation for lines not starting a statement or substatement.
If value is a list, each line in a multipleline continued statement
will have the car of the list extra indentation with respect to
the previous line of the statement.")
(defconst simula-label-offset -4711 "\
*Offset of SIMULA label lines relative to usual indentation.")
(defconst simula-if-indent '(0 . 0) "\
*Extra indentation of THEN and ELSE with respect to the starting IF.
Value is a cons cell, the car is extra THEN indentation and the cdr
extra ELSE indentation. IF after ELSE is indented as the starting IF.")
(defconst simula-inspect-indent '(0 . 0) "\
*Extra indentation of WHEN and OTHERWISE with respect to the INSPECT.
Value is a cons cell, the car is extra WHEN indentation
and the cdr extra OTHERWISE indentation.")
(defconst simula-electric-indent nil "\
*Non-nil means `simula-indent-line' function may reindent previous line.")
(defconst simula-abbrev-keyword 'upcase "\
*Specify how to convert case for SIMULA keywords.
Value is one of the symbols `upcase', `downcase', `capitalize',
(as in) `abbrev-table' or nil if they should not be changed.")
(defconst simula-abbrev-stdproc 'abbrev-table "\
*Specify how to convert case for standard SIMULA procedure and class names.
Value is one of the symbols `upcase', `downcase', `capitalize',
(as in) `abbrev-table', or nil if they should not be changed.")
(defvar simula-abbrev-file nil "\
*File with extra abbrev definitions for use in SIMULA mode.
These are used together with the standard abbrev definitions for SIMULA.
Please note that the standard definitions are required
for SIMULA mode to function correctly.")
(defvar simula-mode-syntax-table nil "\
Syntax table in SIMULA mode buffers.")
(byte-code "¬ØÁÂ!ÃÄÅ#ˆÃÆÇ#ˆÃÈÇ#ˆÃÉÊ#ˆÃËÌ#ˆÃÍÎ#ˆÃÏÐ#ˆÃÑÇ#ˆÃÒÇ#ˆÃÓÇ#ˆÃÔÕ#ˆÃÖÇ#ˆÃ×Ç#ˆÃØÇ#ˆÂ‡" [simula-mode-syntax-table copy-syntax-table nil modify-syntax-entry 33 "<" 36 "." 37 39 "\"" 40 "()" 41 ")(" 59 ">" 91 92 93 95 "w" 124 123 125] 4)
(defvar simula-mode-map nil "\
Keymap used in SIMULA mode.")
(byte-code "¬­Á ÂÃÄ#ˆÂÅÆ#ˆÂÇÈ#ˆÂÉÊ#ˆÂËÌ#ˆÂÍÎ#ˆÂÏÐ#ˆÁ‡" [simula-mode-map make-sparse-keymap define-key "" simula-backward-up-level "" simula-previous-statement "" simula-forward-down-level "" simula-next-statement "" backward-delete-char-untabify ":" simula-electric-label "	" simula-indent-command] 4)
(defvar simula-mode-abbrev-table nil "\
Abbrev table in SIMULA mode buffers")
(fset 'simula-mode #[nil "À ˆÁ\n!ˆÃÅÇÈ!ˆÉÇÊ!ˆË\nÌ!ˆÇÎ!ˆÏÇÐ!ˆÇÑ!ˆÒÇÓ!ˆÔÇÕ!ˆÖÇ×!ˆØÇÙ!ˆÚÇÛ!ˆÜÇÝ!ˆÔ¬—«‡à!ˆª…áÞÜ\"ˆÜ\"ã ˆ)$åæ!ˆçè!‡" [kill-all-local-variables use-local-map simula-mode-map simula-mode major-mode "SIMULA" mode-name make-local-variable comment-column 40 end-comment-column 75 set-syntax-table simula-mode-syntax-table paragraph-start "^[ 	]*$\\|\\f" paragraph-separate indent-line-function simula-indent-line require-final-newline t comment-start "! " comment-end " ;" comment-start-skip "!+ *" parse-sexp-ignore-comments nil comment-multi-line simula-mode-abbrev-table simula-abbrev-file read-abbrev-file define-abbrev-table abbrevs-changed simula-install-standard-abbrevs local-abbrev-table abbrev-mode 1 run-hooks simula-mode-hook] 3 "\
Major mode for editing SIMULA code.
\\{simula-mode-map}
Variables controlling indentation style:
 simula-tab-always-indent
    Non-nil means TAB in SIMULA mode should always reindent the current line,
    regardless of where in the line point is when the TAB command is used.
 simula-indent-level
    Indentation of SIMULA statements with respect to containing block.
 simula-substatement-offset
    Extra indentation after DO, THEN, ELSE, WHEN and OTHERWISE.
 simula-continued-statement-offset 3
    Extra indentation for lines not starting a statement or substatement,
    e.g. a nested FOR-loop. If value is a list, each line in a multiple-
    line continued statement will have the car of the list extra indentation
    with respect to the previous line of the statement.
 simula-label-offset -4711
    Offset of SIMULA label lines relative to usual indentation.
 simula-if-indent '(0 . 0)
    Extra indentation of THEN and ELSE with respect to the starting IF.
    Value is a cons cell, the car is extra THEN indentation and the cdr
    extra ELSE indentation. IF after ELSE is indented as the starting IF.
 simula-inspect-indent '(0 . 0)
    Extra indentation of WHEN and OTHERWISE with respect to the
    corresponding INSPECT. Value is a cons cell, the car is
    extra WHEN indentation and the cdr extra OTHERWISE indentation.
 simula-electric-indent nil
    If this variable is non-nil, `simula-indent-line'
    will check the previous line to see if it has to be reindented.
 simula-abbrev-keyword 'upcase
    Determine how SIMULA keywords will be expanded. Value is one of
    the symbols `upcase', `downcase', `capitalize', (as in) `abbrev-table',
    or nil if they should not be changed.
 simula-abbrev-stdproc 'abbrev-table
    Determine how standard SIMULA procedure and class names will be
    expanded. Value is one of the symbols `upcase', `downcase', `capitalize',
    (as in) `abbrev-table', or nil if they should not be changed.

Turning on SIMULA mode calls the value of the variable simula-mode-hook
with no arguments, if that value is non-nil

Warning: simula-mode-hook should not read in an abbrev file without calling
the function simula-install-standard-abbrevs afterwards, preferably not
at all." nil])
(fset 'simula-indent-line #[nil "d`ZÀ ÁÅŽÆˆÇ ˆ­¤ÆyˆÉÊwˆËÌ!­˜Í ?­“À Ï =?­†Ð ˆj),‡" [simula-calculate-indent t case-fold-search indent origin ((byte-code "dZbˆÁ \n=«…Ã ˆª†Ä ˆ\njˆÁ‡" [origin current-indentation indent back-to-indentation delete-horizontal-space] 2)) 0 expand-abbrev simula-electric-indent " 	" nil looking-at "\\(end\\|if\\|then\\|else\\|when\\|otherwise\\)\\>" simula-context post-indent current-indentation delete-horizontal-space] 3 "\
Indent this line as SIMULA code.
If `simula-electric-indent' is non-nil, indent previous line if necessary."])
(fset 'simula-indent-command #[(&optional whole-exp) "À\n¬Œ¬‰ŠÄÅxˆn)«úŠÆyˆÇ )È d`ZŠÄÅxˆn)Å‰	\nÏŽ=«ŽŠÄÅxˆn)«�Ð ˆªŠÆyˆÑ ˆjˆ)`\n­­ŠÒyˆ`\nbˆÓÒ!ˆ`‰	\nV­”=?­ŒÔ\n	ZÕ$).ª‚Ö )‡" [t case-fold-search whole-exp simula-tab-always-indent " 	" nil 0 simula-calculate-indent current-indentation end beg bol origin current indent ((byte-code "¬…d	ZbˆÂ‡" [bol origin nil] 2)) back-to-indentation delete-horizontal-space 1 simula-next-statement indent-code-rigidly "%" insert-tab] 7 "\
Indent current line as SIMULA code, or insert TAB character.
If `simula-tab-always-indent' is non-nil, always indent current line.
Otherwise, indent only if point is before any non-whitespace
character on the line.

A numeric argument, regardless of its value, means indent rigidly
all the lines of the SIMULA statement after point so that this line
becomes properly indented.
The relative indentation among the lines of the statement are preserved." "P"])
(fset 'simula-context #[nil "ŠÀyˆg)Á=«‚Â‡ŠÃ`ÆexˆÃo¬ìÀyˆgÁ=¬Ô`W«ÊÉÃwˆÂuˆhÊ=«…`ªihË=«–ÌÃwˆgÊ=«ˆ`ÍªSÂuˆªNgÎ=«ƒÂuˆÏÃwˆgÊ=«ˆ`Íª5Âuˆª0«�ÐÂ!ˆÆÃxˆ`Ãª*`Wƒ(ÑÒÓ#ƒ(hÔ>«¤ÕhÖ>«”¬‘Ñ×Ó#«qhÁ=«lÂyˆªoØÙ!«MÃªIhÚ>«©ÀÛwˆ«;`W«6gÊ=«…Ã‰ªon«…ÂyˆªƒÂuˆÛwˆª]hË=«‹ÜÝÓ#¬ÞªhÎ=«�`=¬ƒm«…ß‚‹ ÂuˆÜàÓ#„‹ ß‚‹ Âyˆ‚‹ +‡" [0 37 1 nil origin return-value "^;" saved-point loopvalue "^;\"'" 59 34 "^\";" t 39 "^';" backward-char re-search-forward "\\<end\\>\\|!\\|\"\\|'\\|^%\\|\\<comment\\>" move (100 68) 2 (100 68) ";\\|\\<end\\>\\|\\<else\\>\\|\\<otherwise\\>\\|\\<when\\>\\|^%" looking-at "[ 	\n]*\\(;\\|\\<end\\>\\|\\<else\\>\\|\\<otherwise\\>\\|\\<when\\>\\)" (33 116 84) "^%;" search-forward "\"" 3 4 "'"] 5 "\
Returns value according to syntactic SIMULA context of point.
    0    point inside COMMENT comment
    1    point on SIMULA-compiler directive line
    2    point inside END comment
    3    point inside string
    4    point inside character constant
  nil    otherwise."])
(fset 'simula-electric-label #[nil "À ˆÁcˆd`ZÂÃÄ!«‰ÅÄ ‰!ª†Ç C‰	\nÌŽ	Í>?­¿	Î>¬�	Ï=«„¬†gÑ>?­©Ò ?­¤ÓÔ!ˆÕÖxˆ×ÖxˆØÙ!?­’ÕÖxˆn­‹Ú Ü ˆj),‡" [expand-abbrev 58 t fboundp next-command-event event-to-character unread-command-event read-event unread-command-events next-char case-fold-search origin ((byte-code "dZb‡" [origin] 2)) (61 45) (10 13) 9 simula-tab-always-indent (61 45) simula-context backward-char 1 " 	" nil "a-zA-Z0-9_" looking-at "virtual\\>" simula-calculate-indent amount delete-horizontal-space] 5 "\
If this is a label that starts the line, reindent the line." nil])
(fset 'simula-backward-up-level #[(count) "`ÀÃÄÅ�*‡" [t case-fold-search origin nil (byte-code "ÁV«œÁV­ºÂÃ!ˆÄ ¬sgÅ>«„Sª‚T‰ªeÁW­žÆÃ!ˆÇÈ!ˆÄ ¬ŒgÉ>«„Tª‚SÇÊ!ˆª]‡" [count 0 re-search-backward "\\<begin\\>\\|\\<end\\>" simula-context (98 66) re-search-forward backward-word 1 (101 69) -1] 3) ((error (byte-code "bˆÁÂ!‡" [origin error "No higher block level"] 2)) (quit (byte-code "bˆÁÂÃ\"‡" [origin signal quit nil] 3)))] 3 "\
Move backward up COUNT block levels.
If COUNT is negative, move forward up block level instead." "p"])
(fset 'simula-forward-down-level #[(count) "`ÁÅÆÇ�+‡" [count t case-fold-search origin start-count nil (byte-code "ÁW«¦ÁW­ÏÂÃ!ˆÄ ¬ŒgÅ>«„Tª‚SW«aÇÈÉ\"ˆªZÁV­©ÊÃ!ˆËÌ!ˆÄ ¬ŒgÍ>«„Sª‚TËÎ!ˆV«YÇÈÉ\"ˆªR‡" [count 0 re-search-backward "\\<begin\\>\\|\\<end\\>" simula-context (101 69) start-count signal error nil re-search-forward backward-word 1 (98 66) -1] 3) ((error (byte-code "bˆÁÂ!‡" [origin error "No containing block level"] 2)) (quit (byte-code "bˆÁÂÃ\"‡" [origin signal quit nil] 3)))] 3 "\
Move forward down COUNT block levels.
If COUNT is negative, move backward down block level instead." "p"])
(fset 'simula-previous-statement #[(count) "ÁW«…Â[!‡ÃÄ`ÃÈÉ�+‡" [count 0 simula-next-statement nil t origin case-fold-search status (byte-code "À ˆhÁ>«�ÂÃ!ˆÄÅ!¬�ÂÆ!ˆª‰hÇ=«„ÈÃ!ˆÉ\nS‰\n!«ŠËÌÍÎ#‰¬l«ŽgÇ=«…Ãuˆª„ÂÆ!ˆÐ ‡" [simula-skip-comment-backward (110 78) backward-word 1 looking-at "\\<begin\\>" -1 59 backward-char natnump count simula-search-backward ";\\|\\<begin\\>" nil move status simula-skip-comment-forward] 4) ((error (byte-code "bˆÁÂ!‡" [origin error "Incomplete statement (too many ENDs)"] 2)) (quit (byte-code "bˆÁÂÃ\"‡" [origin signal quit nil] 3)))] 3 "\
Move backward COUNT statements.
If COUNT is negative, move forward instead." "p"])
(fset 'simula-next-statement #[(count) "ÁW«…Â[!‡ÃÄ`ÃÈÉ�+‡" [count 0 simula-previous-statement nil t origin case-fold-search status (byte-code "À ˆÁÂ!«ƒÃvˆÄS‰!«ŠÆÇdÈ#‰	¬n	­ŒhÊU?­†ËÃ!ˆÌ ‡" [simula-skip-comment-forward looking-at "\\<end\\>" 1 natnump count simula-search-forward ";\\|\\<end\\>" move status 59 backward-word simula-skip-comment-backward] 4) ((error (byte-code "bˆÁÂ!‡" [origin error "Incomplete statement (too few ENDs)"] 2)) (quit (byte-code "bˆÁÂÃ\"‡" [origin signal quit nil] 3)))] 3 "\
Move forward COUNT statements.
If COUNT is negative, move backward instead." "p"])
(fset 'simula-skip-comment-backward #[nil "ÀÁ�‡" [simula-out (byte-code "ÀÂÀxˆhÃ=«‹ŠÄÅ!ˆÆ )ªƒÆ 	Ç>«¢hÈ=«–gÉ>¬‘ŠÊÀxˆËÌ!)¬†ÊÀxˆªIÍÎÀ\"ˆªB	Ï=«�ÐÑ!«8Æ Ò>¬uª0	Å=«�Ïˆo«%ÍÎÀ\"ˆª	Ó=«ÐÔ!ˆÅvˆÍÎÀ\"ˆª" [nil context " 	\n" 59 backward-char 1 simula-context (nil 3 4) 58 (45 61) ": 	a-zA-Z0-9_" looking-at "virtual\\>" throw simula-out 0 re-search-backward "!\\|\\<comment\\>" (0 1) 2 "\\<end\\>"] 3)] 2 "\
Search towards bob to find first char that is outside a comment." nil])
(fset 'simula-skip-comment-forward #[nil "ÀÁ�‡" [simula-out (byte-code "ÀÁwˆÂÃ!«ˆÄÅÁÆ#ˆªon«ŠgÇ=«…ÈyˆªbÂÉ!«‹ÂÊ!¬†ËÁwˆªRÌÍÎ\"ˆªK" [" 	\n" nil looking-at "!\\|\\<comment\\>" search-forward ";" move 37 1 "[a-z0-9_]*[ 	]*:[^-=]" "virtual\\>" "a-zA-Z0-9_ 	:" throw simula-out t] 4)] 2 "\
Search towards eob to find first char that is outside a comment." nil])
(byte-code "ÀÁMˆÂÃM‡" [simula-forward-up-level #[nil "À`ÀÁ‰‰«¤ÇÈeÉ#«—Ê hË>­ƒ\nÌ>‰?­‚Í ‰ª`Á‰¬\\«ƒÀª„bˆÁ-‡" [t nil temp return-value case-fold-search origin continue-loop re-search-backward "\\<begin\\>\\|\\<end\\>" move simula-context (100 68) (nil 2) simula-forward-up-level] 6] simula-calculate-indent #[nil "ŠÀ `ÁÂ‰‰‰‰	‰\nÁ=«ŸËÂxˆn¬ŒÀ Á=«†ÌÍ!ˆªqËÂwˆi	bˆ‚6\nÎ=«†ÏÐ!‚6\nÑ=«†ÏÒ!‚6Ó ‰«„‚6ÔÂwˆÕÖ!«‰[ØªÑÕÙ!«£gÚ>«‡@ª’gÜ>«‡Aª†ÝvˆÁÞ ˆª©Õß!«–gà>«‡!@ª…!Aâ ˆªŽÕã!¬‰Õä!«„%æ ˆ« hç=¬›hè>«ŒŠéÝ!ˆÕê!)?ª�Ø«‡ëÝ!ˆæ ˆŠÁyˆ`)Šo?­”hzì=«ŠéÝ!ˆÕí!?ª„hî>?)n„4Ìïð#ƒ¾À ¬og‰ç=«†ëÝ!ˆªóÕê!«‰\\ªåÕÖ!«‰ÝvˆëÝ!ˆª×Õñ!«Œ2\\ó ˆªÆÕô!«¤õ>«…Ývˆª•2ö>«…@ªƒA\\\\Þ ˆª�Õ÷!«˜2ø>«…@ªƒA\\\\â ˆ«‘9<«…9@ª‚9\\ŠÁyˆ`)Â‚\nÀ ?­�ŠÔÂwˆÕú!®„Õû!?)«‡ü \\æ ˆo?­–hzì=«ŒŠéÝ!ˆÕí!)?ª„hý>?«„«‰«–9<«‘9<«…9@ª‚9\\¬‹ŠÁyˆ`)‚\nÁyˆ‚\n.	‡" [simula-context 0 nil prev-cont found-end temp start-line continued indent origin where " 	\n" re-search-backward "^\\|!\\|\\<comment\\>" 3 error "Inside string" 4 "Inside character constant" simula-inside-parens " 	" looking-at "end\\>" simula-indent-level t "if\\>\\|then\\>\\|else\\>" (84 116) simula-if-indent (69 101) 1 simula-find-if "when\\>\\|otherwise\\>" (87 119) simula-inspect-indent simula-find-inspect "virtual\\>" "[a-z0-9_]*[ 	]*:[^-=]" simula-label-offset simula-skip-comment-backward 59 (78 110) backward-word "begin\\>" simula-previous-statement 119 "begin\\|then\\|else\\|when\\|otherwise\\|do" (58 59) ";\\|\\<\\(begin\\|end\\|if\\|else\\|then\\|when\\|otherwise\\|do\\)\\>" move "do\\>" simula-substatement-offset simula-find-do-match "\\(if\\|then\\|else\\)\\>" (73 105) (84 116) "\\<when\\>\\|\\<otherwise\\>" (87 119) simula-continued-statement-offset "virtual" "!\\|comment\\>\\|[a-z0-9_]*[ 	]*:[^-=]" current-indentation (58 59)] 9]] 2)
(fset 'simula-find-if #[nil "ÀÁ�‡" [simula-out (byte-code "ÀÁÂÃ#« gÄ>«›ŠÅ ˆhzÆ=«‰ÇÈ!ˆÉÊ!¬…ËÌÃ\"ˆ)ªYÉÍ!¬†ÎÏ!ˆªNËÌÃ\"ˆªG" [simula-search-backward "\\<if\\>\\|;\\|\\<begin\\>" nil t (73 105) simula-skip-comment-backward 119 backward-word 1 looking-at "else\\>" throw simula-out "\\<if\\>" error "Missing IF or misplaced BEGIN or ';' (can't find IF)"] 4)] 2 "\
Find starting IF of a IF-THEN[-ELSE[-IF-THEN...]] statement."])
(fset 'simula-find-inspect #[nil "ÀÁ�‡" [simula-out (byte-code "ÀÂÃÄÅ#« gÆU¬›gÇ>«…	Tªj	ÀU«‡ÈÉÅ\"ˆª^	SªYÊË!ˆªS" [0 level simula-search-backward "\\<inspect\\>\\|\\<otherwise\\>\\|;" nil t 59 (79 111) throw simula-out error "Missing INSPECT or misplaced ';' (can't find INSPECT)"] 4)] 2 "\
Find INSPECT matching WHEN or OTHERWISE."])
(fset 'simula-find-do-match #[nil "ÀÁÂÃ#«„Ä ¬uÅÆ!­ƒÄ ??­ƒÇÈ!‡" [re-search-backward "\\<\\(do\\|for\\|while\\|inspect\\|when\\|end\\|begin\\)\\>\\|;" nil move simula-context looking-at "\\<\\(for\\|while\\|inspect\\|when\\)\\>" error "No matching FOR, WHILE or INSPECT for DO, or misplaced ';'"] 4 "\
Find keyword matching DO: FOR, WHILE, INSPECT or WHEN"])
(fset 'simula-inside-parens #[nil "ŠÀÂÃ�*‡" [0 parlevel simula-out (byte-code "ÀÁÂÃ#«¿Ä Â=«sgÅ=«“ÇU«‡ÈÉÂ\"ˆªaÊË!ˆª[gÌ=«•ÇU«ˆÈÉiT\"ˆªHSªATª:ÈÉÂ\"ˆª3" [re-search-backward "(\\|)\\|;" nil t simula-context 59 parlevel 0 throw simula-out error "Parenthesis mismatch or misplaced ';'" 40] 4)] 2 "\
Return position after `(' on line if inside parentheses, nil otherwise."])
(defun simula-goto-definition nil "\
Goto point of definition of variable, procedure or class." (interactive))
(byte-code "ÀÁMˆÂÃM‡" [simula-expand-stdproc #[nil "«„Á «ƒÂ ‡Ã=«„ÄÅ!‡Æ=«„ÇÅ!‡È=­ƒÉÅ!‡" [simula-abbrev-stdproc simula-context unexpand-abbrev upcase upcase-word -1 downcase downcase-word capitalize capitalize-word] 2] simula-expand-keyword #[nil "«„Á «ƒÂ ‡Ã=«„ÄÅ!‡Æ=«„ÇÅ!‡È=­ƒÉÅ!‡" [simula-abbrev-keyword simula-context unexpand-abbrev upcase upcase-word -1 downcase downcase-word capitalize capitalize-word] 2]] 2)
(fset 'simula-electric-keyword #[nil "Á=‰«�ÃÅ\"ˆÆÇ!ˆÈÅ!ˆÉ Ê‰­–Í=­�hzÎ=­ŠŠÏÅ!ˆÐÑ!)?*«„Ò ª¸¬…Ò ˆª¢Ô=«†ÕÖ!ˆª–×=«†ØÖ!ˆªŠÙ=«„ÚÖ!ˆd`ZÊÜÝÞ�*)‡" [this-command self-insert-command show-char insert-char last-command-char 1 sit-for 0 backward-char simula-context t case-fold-search where 2 119 backward-word looking-at "end\\>" unexpand-abbrev simula-abbrev-keyword upcase upcase-word -1 downcase downcase-word capitalize capitalize-word pos nil (byte-code "hzÀ=«¿ÁÂ!ˆÃÄ!«›ŠÅÂ!ˆÆ «†ÇÂ!ˆª‹ÈÉ``Ê \\{P!ˆ)ËÌxˆn«”Í ‰Ï =¬‡Ð ˆjˆ)ª„ËÌwˆdZbˆ­ƒÓÂ!‡" [119 backward-word 1 looking-at "end\\>" simula-backward-up-level pos-visible-in-window-p sit-for message "Matches " window-width " 	" nil simula-calculate-indent indent current-indentation delete-horizontal-space pos show-char delete-char] 6) ((quit (byte-code "dZb‡" [pos] 2)))] 4 "\
Expand SIMULA keyword. If it starts the line, reindent."])
(byte-code "ÀÁMˆÂÃM‡" [simula-search-backward #[(string &optional limit move) "ÁPÂÄÅ�)‡" [string "\\|\\<end\\>" nil level simula-out (byte-code "À	\n#­²Ä ¬uÅÆ!«¢ÇÉ!«gÀÊ!ˆÄ ¬rgË>«…SªƒTªaÌÍÎ\"ˆªG‡" [re-search-backward string limit move simula-context looking-at "\\<end\\>" 0 level natnump "\\<begin\\>\\|\\<end\\>" (98 66) throw simula-out t] 4)] 2] simula-search-forward #[(string &optional limit move) "ÁPÂÄÅ�)‡" [string "\\|\\<begin\\>" nil level exit (byte-code "À	\n#­ÏÄ”bˆÅ «‡Ä•SbˆªjÆÇ!«¯Ä•SbˆÄÉ!«WÀÊ!ˆËÌ!ˆÅ ¬�gÍ>«…SªƒTËÎ!ˆªYÄ•SbˆÏÐÑ\"ˆª*‡" [re-search-forward string limit move 0 simula-context looking-at "\\<begin\\>" level natnump "\\<begin\\>\\|\\<end\\>" backward-word 1 (101 69) -1 throw exit t] 4)] 2]] 2)
(fset 'simula-install-standard-abbrevs #[nil "ÀÁÂ\"‡" [mapcar #[(args) "ÀÁ\n#‡" [apply define-abbrev simula-mode-abbrev-table args] 4] (("abs" "Abs" simula-expand-stdproc) ("accum" "Accum" simula-expand-stdproc) ("activate" "ACTIVATE" simula-expand-keyword) ("addepsilon" "AddEpsilon" simula-expand-stdproc) ("after" "AFTER" simula-expand-keyword) ("and" "AND" simula-expand-keyword) ("arccos" "ArcCos" simula-expand-stdproc) ("arcsin" "ArcSin" simula-expand-stdproc) ("arctan" "ArcTan" simula-expand-stdproc) ("arctan2" "ArcTan2" simula-expand-stdproc) ("array" "ARRAY" simula-expand-keyword) ("at" "AT" simula-expand-keyword) ("before" "BEFORE" simula-expand-keyword) ("begin" "BEGIN" simula-expand-keyword) ("blanks" "Blanks" simula-expand-stdproc) ("boolean" "BOOLEAN" simula-expand-keyword) ("breakoutimage" "BreakOutImage" simula-expand-stdproc) ("bytefile" "ByteFile" simula-expand-stdproc) ("call" "Call" simula-expand-stdproc) ("cancel" "Cancel" simula-expand-stdproc) ("cardinal" "Cardinal" simula-expand-stdproc) ("char" "Char" simula-expand-stdproc) ("character" "CHARACTER" simula-expand-keyword) ("checkpoint" "CheckPoint" simula-expand-stdproc) ("class" "CLASS" simula-expand-keyword) ("clear" "Clear" simula-expand-stdproc) ("clocktime" "ClockTime" simula-expand-stdproc) ("close" "Close" simula-expand-stdproc) ("comment" "COMMENT" simula-expand-keyword) ("constant" "Constant" simula-expand-stdproc) ("copy" "Copy" simula-expand-stdproc) ("cos" "Cos" simula-expand-stdproc) ("cosh" "CosH" simula-expand-stdproc) ("cotan" "CoTan" simula-expand-stdproc) ("cputime" "CpuTime" simula-expand-stdproc) ("current" "Current" simula-expand-stdproc) ("datetime" "DateTime" simula-expand-stdproc) ("decimalmark" "DecimalMark" simula-expand-stdproc) ("delay" "DELAY" simula-expand-keyword) ("deleteimage" "DeleteImage" simula-expand-stdproc) ("detach" "Detach" simula-expand-stdproc) ("digit" "Digit" simula-expand-stdproc) ("directbytefile" "DirectByteFile" simula-expand-stdproc) ("directfile" "DirectFile" simula-expand-stdproc) ("discrete" "Discrete" simula-expand-stdproc) ("do" "DO" simula-expand-keyword) ("downcase" "Downcase" simula-expand-stdproc) ("draw" "Draw" simula-expand-stdproc) ("eject" "Eject" simula-expand-stdproc) ("else" "ELSE" simula-electric-keyword) ("empty" "Empty" simula-expand-stdproc) ("end" "END" simula-electric-keyword) ("endfile" "Endfile" simula-expand-stdproc) ("entier" "Entier" simula-expand-stdproc) ("eq" "EQ" simula-expand-keyword) ("eqv" "EQV" simula-expand-keyword) ("erlang" "Erlang" simula-expand-stdproc) ("error" "Error" simula-expand-stdproc) ("evtime" "EvTime" simula-expand-stdproc) ("exp" "Exp" simula-expand-stdproc) ("external" "EXTERNAL" simula-expand-keyword) ("false" "FALSE" simula-expand-keyword) ("field" "Field" simula-expand-stdproc) ("file" "File" simula-expand-stdproc) ("first" "First" simula-expand-stdproc) ("follow" "Follow" simula-expand-stdproc) ("for" "FOR" simula-expand-keyword) ("ge" "GE" simula-expand-keyword) ("getchar" "GetChar" simula-expand-stdproc) ("getfrac" "GetFrac" simula-expand-stdproc) ("getint" "GetInt" simula-expand-stdproc) ("getreal" "GetReal" simula-expand-stdproc) ("go" "GO" simula-expand-keyword) ("goto" "GOTO" simula-expand-keyword) ("gt" "GT" simula-expand-keyword) ("head" "Head" simula-expand-stdproc) ("hidden" "HIDDEN" simula-expand-keyword) ("histd" "HistD" simula-expand-stdproc) ("histo" "Histo" simula-expand-stdproc) ("hold" "Hold" simula-expand-stdproc) ("idle" "Idle" simula-expand-stdproc) ("if" "IF" simula-expand-keyword) ("image" "Image" simula-expand-stdproc) ("imagefile" "ImageFile" simula-expand-stdproc) ("imp" "IMP" simula-expand-keyword) ("in" "IN" simula-expand-keyword) ("inbyte" "InByte" simula-expand-stdproc) ("inbytefile" "InByteFile" simula-expand-stdproc) ("inchar" "InChar" simula-expand-stdproc) ("infile" "InFile" simula-expand-stdproc) ("infrac" "InFrac" simula-expand-stdproc) ("inimage" "InImage" simula-expand-stdproc) ("inint" "InInt" simula-expand-stdproc) ("inner" "INNER" simula-expand-keyword) ("inreal" "InReal" simula-expand-stdproc) ("inrecord" "InRecord" simula-expand-stdproc) ("inspect" "INSPECT" simula-expand-keyword) ("integer" "INTEGER" simula-expand-keyword) ("intext" "InText" simula-expand-stdproc) ("into" "Into" simula-expand-stdproc) ("is" "IS" simula-expand-keyword) ("isochar" "ISOChar" simula-expand-stdproc) ("isopen" "IsOpen" simula-expand-stdproc) ("isorank" "ISORank" simula-expand-stdproc) ("label" "LABEL" simula-expand-keyword) ("last" "Last" simula-expand-stdproc) ("lastitem" "LastItem" simula-expand-stdproc) ("lastloc" "LastLoc" simula-expand-stdproc) ("le" "LE" simula-expand-keyword) ("length" "Length" simula-expand-stdproc) ("letter" "Letter" simula-expand-stdproc) ("line" "Line" simula-expand-stdproc) ("linear" "Linear" simula-expand-stdproc) ("linesperpage" "LinesPerPage" simula-expand-stdproc) ("link" "Link" simula-expand-stdproc) ("linkage" "Linkage" simula-expand-stdproc) ("ln" "Ln" simula-expand-stdproc) ("locate" "Locate" simula-expand-stdproc) ("location" "Location" simula-expand-stdproc) ("lock" "Lock" simula-expand-stdproc) ("locked" "Locked" simula-expand-stdproc) ("log10" "Log10" simula-expand-stdproc) ("long" "LONG" simula-expand-keyword) ("lowcase" "LowCase" simula-expand-stdproc) ("lowerbound" "LowerBound" simula-expand-stdproc) ("lowten" "LowTen" simula-expand-stdproc) ("lt" "LT" simula-expand-keyword) ("main" "Main" simula-expand-stdproc) ("max" "Max" simula-expand-stdproc) ("maxint" "MaxInt" simula-expand-stdproc) ("maxlongreal" "MaxLongReal" simula-expand-stdproc) ("maxloc" "MaxLoc" simula-expand-stdproc) ("maxrank" "MaxRank" simula-expand-stdproc) ("maxreal" "MaxReal" simula-expand-stdproc) ("min" "Min" simula-expand-stdproc) ("minint" "MinInt" simula-expand-stdproc) ("minlongreal" "MinLongReal" simula-expand-stdproc) ("minrank" "MinRank" simula-expand-stdproc) ("minreal" "MinReal" simula-expand-stdproc) ("mod" "Mod" simula-expand-stdproc) ("more" "More" simula-expand-stdproc) ("name" "NAME" simula-expand-keyword) ("ne" "NE" simula-expand-keyword) ("negexp" "NegExp" simula-expand-stdproc) ("new" "NEW" simula-expand-keyword) ("nextev" "NextEv" simula-expand-stdproc) ("none" "NONE" simula-expand-keyword) ("normal" "Normal" simula-expand-stdproc) ("not" "NOT" simula-expand-keyword) ("notext" "NOTEXT" simula-expand-keyword) ("open" "Open" simula-expand-stdproc) ("or" "OR" simula-expand-keyword) ("otherwise" "OTHERWISE" simula-electric-keyword) ("out" "Out" simula-expand-stdproc) ("outbyte" "OutByte" simula-expand-stdproc) ("outbytefile" "OutByteFile" simula-expand-stdproc) ("outchar" "OutChar" simula-expand-stdproc) ("outfile" "OutFile" simula-expand-stdproc) ("outfix" "OutFix" simula-expand-stdproc) ("outfrac" "OutFrac" simula-expand-stdproc) ("outimage" "OutImage" simula-expand-stdproc) ("outint" "OutInt" simula-expand-stdproc) ("outreal" "OutReal" simula-expand-stdproc) ("outrecord" "OutRecord" simula-expand-stdproc) ("outtext" "OutText" simula-expand-stdproc) ("page" "Page" simula-expand-stdproc) ("passivate" "Passivate" simula-expand-stdproc) ("poisson" "Poisson" simula-expand-stdproc) ("pos" "Pos" simula-expand-stdproc) ("precede" "Precede" simula-expand-stdproc) ("pred" "Pred" simula-expand-stdproc) ("prev" "Prev" simula-expand-stdproc) ("printfile" "PrintFile" simula-expand-stdproc) ("prior" "PRIOR" simula-expand-keyword) ("procedure" "PROCEDURE" simula-expand-keyword) ("process" "Process" simula-expand-stdproc) ("protected" "PROTECTED" simula-expand-keyword) ("putchar" "PutChar" simula-expand-stdproc) ("putfix" "PutFix" simula-expand-stdproc) ("putfrac" "PutFrac" simula-expand-stdproc) ("putint" "PutInt" simula-expand-stdproc) ("putreal" "PutReal" simula-expand-stdproc) ("qua" "QUA" simula-expand-keyword) ("randint" "RandInt" simula-expand-stdproc) ("rank" "Rank" simula-expand-stdproc) ("reactivate" "REACTIVATE" simula-expand-keyword) ("real" "REAL" simula-expand-keyword) ("ref" "REF" simula-expand-keyword) ("resume" "Resume" simula-expand-stdproc) ("setaccess" "SetAccess" simula-expand-stdproc) ("setpos" "SetPos" simula-expand-stdproc) ("short" "SHORT" simula-expand-keyword) ("sign" "Sign" simula-expand-stdproc) ("simset" "SimSet" simula-expand-stdproc) ("simulaid" "SimulaId" simula-expand-stdproc) ("simulation" "Simulation" simula-expand-stdproc) ("sin" "Sin" simula-expand-stdproc) ("sinh" "SinH" simula-expand-stdproc) ("sourceline" "SourceLine" simula-expand-stdproc) ("spacing" "Spacing" simula-expand-stdproc) ("sqrt" "Sqrt" simula-expand-stdproc) ("start" "Start" simula-expand-stdproc) ("step" "STEP" simula-expand-keyword) ("strip" "Strip" simula-expand-stdproc) ("sub" "Sub" simula-expand-stdproc) ("subepsilon" "SubEpsilon" simula-expand-stdproc) ("suc" "Suc" simula-expand-stdproc) ("switch" "SWITCH" simula-expand-keyword) ("sysin" "SysIn" simula-expand-stdproc) ("sysout" "SysOut" simula-expand-stdproc) ("tan" "Tan" simula-expand-stdproc) ("tanh" "TanH" simula-expand-stdproc) ("terminate_program" "Terminate_Program" simula-expand-stdproc) ("terminated" "Terminated" simula-expand-stdproc) ("text" "TEXT" simula-expand-keyword) ("then" "THEN" simula-electric-keyword) ("this" "THIS" simula-expand-keyword) ("time" "Time" simula-expand-stdproc) ("to" "TO" simula-expand-keyword) ("true" "TRUE" simula-expand-keyword) ("uniform" "Uniform" simula-expand-stdproc) ("unlock" "Unlock" simula-expand-stdproc) ("until" "UNTIL" simula-expand-keyword) ("upcase" "Upcase" simula-expand-stdproc) ("upperbound" "UpperBound" simula-expand-stdproc) ("value" "VALUE" simula-expand-keyword) ("virtual" "VIRTUAL" simula-expand-keyword) ("wait" "Wait" simula-expand-stdproc) ("when" "WHEN" simula-electric-keyword) ("while" "WHILE" simula-expand-keyword))] 3 "\
Define Simula keywords, procedures and classes in local abbrev table." nil])
