4.4BSD/usr/src/contrib/emacs-18.57/lisp/simula.elc


(defvar simula-label "^[A-Za-z_{|}]+:")

(defvar simula-CE "else\\b\\|when\\b\\|otherwise\\b")

(defvar simula-CB "end\\b\\|!\\|comment\\b")

(defvar simula-BE "end\\b")

(defvar simula-BB "begin\\b")

(defvar simula-FB "if\\b\\|while\\b\\|inspect\\b\\|for\\b")

(defvar simula-eol "
")

(defvar simula-eof "@")

(defvar simula-extended-form nil "\
non-nil if want non-standard slowly (extended) form checking")

(defvar simula-mode-syntax-table nil "\
Syntax table in simula-mode buffers.")

(defvar simula-mode-abbrev-table nil "\
abbrev table in simula-mode buffers")

(defvar simula-indent-mode (quote simula-Nice-indent-mode))

(defvar Read-Simula-Keywords nil "\
non-nil if read keywords already")

(define-abbrev-table (quote simula-mode-abbrev-table) nil)

(defvar Simula-Keyword-Abbrev-File "simula.defns" "\
nil if not to load the Capitalize Keywords feature")

(defvar simula-mode-ignore-directives t "\
Set to non nil if doesn't use % comment type lines.")

(if simula-mode-syntax-table nil (let ((table (make-syntax-table))) (modify-syntax-entry 10 "." table) (modify-syntax-entry 12 "." table) (modify-syntax-entry 34 "\"" table) (modify-syntax-entry 39 "\"" table) (modify-syntax-entry 40 "()" table) (modify-syntax-entry 41 ")(" table) (modify-syntax-entry 42 "." table) (modify-syntax-entry 43 "." table) (modify-syntax-entry 44 "." table) (modify-syntax-entry 45 "." table) (modify-syntax-entry 46 "_" table) (modify-syntax-entry 95 "w" table) (modify-syntax-entry 47 "." table) (modify-syntax-entry 58 "." table) (modify-syntax-entry 59 ">" table) (modify-syntax-entry 60 "." table) (modify-syntax-entry 61 "." table) (modify-syntax-entry 62 "." table) (modify-syntax-entry 91 "(]" table) (modify-syntax-entry 92 "." table) (modify-syntax-entry 93 ")[" table) (modify-syntax-entry 94 "." table) (modify-syntax-entry 124 "w" table) (modify-syntax-entry 123 "w" table) (modify-syntax-entry 125 "w" table) (modify-syntax-entry 33 "<" table) (setq simula-mode-syntax-table table)))

(defvar simula-mode-map nil "\
Keymap used in simula mode.")

(if simula-mode-map nil (setq simula-mode-map (make-sparse-keymap)) (define-key simula-mode-map "	" (quote simula-indent)) (define-key simula-mode-map "
" (quote simula-abbrev-expand-and-lf)) (define-key simula-mode-map "" (quote backward-delete-char-untabify)))

(defun simula-mode nil "\
This is a mode intended to support program development in Simula.." (interactive) (byte-code "ψ !ىډ!܉!݉
!!߉!!!ʉ	!!!
!
!ω!ʉʉς珈ʉ!!" [simula-mode-map major-mode mode-name comment-column end-comment-column simula-mode-syntax-table paragraph-start paragraph-separate indent-line-function require-final-newline t comment-start comment-end comment-start-skip parse-sexp-ignore-comments nil comment-multi-line local-abbrev-table simula-mode-abbrev-table Simula-Keyword-Abbrev-File abbrev-mode Read-Simula-Keywords simula-indent-mode kill-all-local-variables use-local-map simula-mode "Simula" make-local-variable 40 75 set-syntax-table "^[ 	]*$\\|\\f" simula-null-indent "! " " ;" "!+ *" "! *" err (byte-code "!" [Simula-Keyword-Abbrev-File read-abbrev-file] 2) ((file-error (byte-code "!!!!!!!" ["*Help*" princ "Simula Mode can't load the Capitalize Simula " "Keyword abbrev file

" "Please do one of the following:
" "1. Include this line in your .emacs file:
" "   (setq Simula-Keyword-Abbrev-File nil)
" "2. Make a decent abbrev file by your self
" "3. Mail obh@ifi.uio.no requesting the abbrev file
"] 9))) funcall run-hooks simula-mode-hook] 18))

(defun simula-null-indent nil (interactive) (byte-code "" [nil] 1))

(setq simula-seen-FE nil)

(setq simula-form-starter nil)

(setq simula-form nil)

(setq simula-FB-hpos nil)

(setq simula-BB-hpos nil)

(setq simula-hpos nil)

(setq simula-lf-count nil)

(setq simula-stack nil)

(setq simula-assemble nil)

(setq simula-debug nil)

(defun simula-push (v) (byte-code "	
	B" [simula-assemble simula-stack v] 2))

(defun simula-pop nil (byte-code "@A" [simula-stack] 3))

(defun simula-inside-simple-string nil (byte-code "!n
,n?$!!	T	\"U))" [nil count skip-chars-backward "^\"
'" 1 forward-char -1 % 2 0] 6))

(defun ignore-simula-directives (pedohejform &optional pedohejway) (interactive) (byte-code "Ĉ	![	!` gU? Ă-o%m,Ă-ąN: =!	!` gU?Xb
*" [simula-mode-ignore-directives pedohejform pedohejval pedohejhere nil t pedohejway funcall beginning-of-line 37 forward-line forward-char -1] 9))

(defun maybe-skip-simula-comment nil (byte-code "`!#hU
UD
U.#:!`V:b#`UOĂhU]!!!k`#hU
U
U#!#whU	ł!Ă!Ć!	?Ă!ł!`ĉ!ŅĈo!		bb," [here last-end tmp tmp1 nil t ignore-simula-directives (lambda nil (byte-code "e# !e#" [search-backward ";" 0 simula-inside-simple-string "\""] 8)) re-search-forward "^%\\|\"\\|!\\|\\bcomment\\b\\|\\bend\\b" 0 37 34 search-forward "\"" forward-line 1 33 forward-char -1 forward-word looking-at "comment" "^%\\|\"\\|!\\|\\bcomment\\b\\|\\bend\\b\\|\\bwhen\\b\\|\\belse\\b\\|\\botherwise\\b" "end" "!\\|\\bcomment"] 20))

(defun save-simula-BB-BE nil (byte-code "`! ?i` `V'‚-T
!`V<‚BT
R!	!	b*" [end beg nil simula-BB-hpos simula-lf-count simula-eol simula-push simula-back-level end-of-line "BEGIN" " o " forward-line 2] 10))

(defun simula-back-level nil (interactive) (byte-code "o?K!K!, (!#!‚)K G!=‚Db ‚K …S)!?_!" [end-comment nil t ignore-simula-directives (lambda nil (byte-code "e# !e#" [t re-search-backward "\\bend\\b\\|\\bbegin\\b" 0 simula-inside-simple-string search-backward "\""] 8)) looking-at "begin" maybe-skip-simula-comment "end" forward-word 1 "comment\\|!" simula-back-level error "No matching BEGIN !!!"] 12))

(defun simula-find-indent (&optional predict-next) (interactive) (byte-code "Ɉ ! !!!!

`D
T!oYɉh!Ui!l!l!ɉ!
S\"T`T!!!`!U U!e#!!U!UH !T!EV
SUɉ E?ɂ%!!ɆE
U5EVE`T!ɉ!ɉVb ?t`PD?i! !!! 
?!`!\"i
 ?
ɉ
ɂɉ B 

 A\" 
-" [not-stop t simexp tmp ch indent simula-lf-count simula-assemble simula-BB-hpos nil simula-FB-hpos simula-hpos simula-seen-FE simula-form simula-form-starter simula-stack simula-eof simula-eol simula-BB simula-CE simula-BE simula-FB predict-next 0 end-of-line ignore-simula-directives (lambda nil (byte-code "!" [skip-chars-backward " 	"] 2)) maybe-skip-simula-comment looking-at "end" forward-word 1 skip-chars-backward " 	" char-syntax 119 -1 forward-char numberp /= simula-push (lambda nil (byte-code "!" [skip-chars-backward " 	
"] 2)) 34 save-simula-string 39 search-backward "'" error "Unbalanced Character Quote" 58 59 "!\\|comment" simula-parsed-over simula-stack-trick "/n o " save-simula-BB-BE buffer-substring match-end Simula-Form-Handler beginning-of-line current-simula-indentation setcdr Simula-Default-Handler] 48))

(defun simula-parsed-over (from) (byte-code "!! `W	!
T)`!" [from simula-eol simula-lf-count skip-chars-backward "	" simula-push end-of-line] 6))

(defun simula-stack-trick nil (byte-code "!\"
	-	@!`	@V%	É)	A)Ç" [t pointer simula-stack nil forward-line 1 ignore-simula-directives (lambda nil (byte-code "!gUd#!" [skip-chars-forward " 	
" 33 search-forward ";" 0] 6)) numberp] 6))

(defun save-simula-string nil (byte-code "`!e\"hU!`!!" [nil simula-push skip-chars-backward "^\"
" 34 error "UnBalanced String Quote \". " forward-char -1] 6))

(defun Simula-Form-Handler nil (byte-code "	!Q!!)" [handler simula-form-starter nil intern-soft "Simula-" capitalize "-Handler" funcall] 5))

(defun Simula-Default-Handler nil (byte-code "	?
?D
!Ɖ" [simula-seen-FE simula-extended-form simula-BB-hpos simula-form simula-hpos Simula-Default-Form nil (0 0) Simula-Default-Form-Handler] 4))

(defun Simula-Default-Form-Handler (form) (byte-code " 	!?‚-n?  )! @!AB)" [indentation form nil simula-hpos simula-collapse-stack get-indent-amount beginning-of-line current-simula-indentation simula-indent-calc] 8))

(defun simula-collapse-stack nil (byte-code "	`
 
J
@;
AF4

@\"\"
AF
@

A@\"

AA\"
\"`
D*" [last-beg simula-assemble pointer simula-stack nil simula-form simula-pop setcar buffer-substring setcdr apply concat] 8))

(defun get-indent-amount (indent-form-list) (byte-code "*@@	\"#
Ő@@	Q!@A'A!+Ç" [indent-form-list simula-form simula-debug nil string-match "* forms *" print "<---->" get-indent-amount] 6))

(defun current-simula-indentation nil (byte-code "!	!!i" [simula-label looking-at re-search-forward skip-chars-forward " 	"] 4))

(defun simula-indent-calc (amount) (byte-code "6@A@	U
1	U\"1)	U01
\\)7
" [amount from simula-hpos simula-FB-hpos simula-BB-hpos 0 1 2] 3))

(defun simula-indent-line (to) (byte-code " gU
d
\"
\"
!O
!i
V/͉O\"i
V=!
iZ
\"
\"\"	\"`d\"`\"*" [nil space to tab-width tabs simula-label beginning-of-line 37 % / looking-at re-search-forward 0 1 insert-char 9 backward-delete-char 32 delete-region skip-chars-forward " 	"] 16))

(defun simula-abbrev-expand-and-lf (arg) (interactive "p") (byte-code "ˆ \"!!) !g\"&@!!A@!!)" [indent t nil expand-abbrev insert-char 10 1 forward-char -1 simula-find-indent beginning-of-line skip-chars-forward " 	" /= 33 simula-indent-line forward-line simula-indent-calc] 12))

(defun simula-indent nil (interactive) (byte-code " )@!" [nil simula-indent-line simula-find-indent] 3))

(defun Simula-While-Handler nil (byte-code "!" [Simula-While-Form Simula-Default-Form-Handler] 2))

(defun Simula-If-Handler nil (byte-code "!" [Simula-If-Form Simula-Default-Form-Handler] 2))

(defun Simula-Inspect-Handler nil (byte-code "!" [Simula-Inspect-Form Simula-Default-Form-Handler] 2))

(defun Simula-For-Handler nil (byte-code "!" [Simula-For-Form Simula-Default-Form-Handler] 2))

(defun simula-Nice-indent-mode nil (interactive) (byte-code "ňƉljȉɉʉ" [Simula-While-Form Simula-Default-Form Simula-If-Form Simula-For-Form Simula-Inspect-Form nil (("while.*begin.*end;@" (0 0) (1 0)) ("while .*do.*begin
.*
.*end;@" (1 0) (0 0)) ("while .*do.*begin
.*@" (1 3) (1 3)) ("while .*do.*begin.*@" (0 0) (1 3)) ("while .*do
.*begin
.*
.*end;@" (2 0) (0 0)) ("while .*do
.*begin
.*@" (2 3) (2 3)) ("while .*do
.*begin@" (1 3) (2 3)) ("while .*do
.*;@" (1 3) (0 0)) ("while .*do
.*@" (1 3) (1 3)) ("while .*do@" (0 0) (1 3))) (("begin.*end;@" (0 0) (0 0)) ("while .*do.*begin
.*
.*end;@" (0 0) (0 0)) ("begin.*@" (0 0) (2 3)) ("begin
.*
.*end.*@" (0 0) (0 0)) ("begin
.*end;@" (2 3) (0 0)) ("begin
.*
.*end;@" (2 0) (0 0)) ("begin
.*@" (2 3) (2 3)) ("begin
.*
@" (2 3) (2 3)) ("begin
*.*
*.*@" (2 3) (2 3)) (".*;@" (0 0) (0 0)) ("
.*;@" (0 0) (0 0)) ("
.*@" (0 0) (0 0)) ("." (0 0) (0 3))) (("if.*begin.*end;@" (0 0) (1 0)) ("if .*begin.*@" (0 0) (2 3)) ("if .*else@" (0 0) (0 0)) ("if .*;@" (0 0) (0 0)) ("if .*@" (0 0) (0 3)) ("if .*begin.*
.*@" (2 3) (2 3)) ("if .*
.*;@" (0 3) (0 0)) ("if .*
.*begin.*end.*@" (0 3) (0 0)) ("if .*
.*begin.*@" (0 3) (2 3)) ("if .*else
.*@" (0 3) (0 0)) ("if .*
.*begin.*
.*@" (2 3) (2 3)) ("if .*
.*begin.*
.*
.*end.*@" (2 0) (0 0)) ("if .*begin.*
.*
.*end;.*@" (0 0) (0 0)) ("if .*begin.*
.*
.*end@" (2 0) (0 0)) ("else if.*@" (0 0) (0 3)) ("else@" (0 0) (0 3)) ("else.*begin.*@" (0 0) (2 3)) ("else.*begin.*
.*@" (2 3) (2 3)) ("else.*begin.*
.*
.*end;@" (2 0) (0 0)) ("else .*;@" (0 0) (0 0)) ("else
.*begin@" (0 3) (2 3)) ("else
.*begin
.*@" (2 3) (2 3)) ("else
.*begin
.*
.*end.*@" (2 0) (0 0))) (("for .*begin.*end;@" (0 0) (1 0)) ("for .*do.*;@" (0 0) (0 0)) ("for .*do@" (0 0) (1 3)) ("for .*do
.*begin@" (1 3) (2 3)) ("for .*do
.*begin
.*@" (2 3) (2 3)) ("for .*do
.*begin
.*
.*end.*@" (1 3) (0 0)) ("for .*do
.*;@" (1 3) (0 0)) ("for .*do
.*begin.*
.*end.*@" (1 3) (0 0)) ("for .*do.*begin@" (0 0) (1 3)) ("for .*do.*begin
.*end.*@" (1 3) (0 0)) ("for .*do.*begin
.*@" (1 3) (1 3)) ("for .*do.*begin
.*
.*end.*@" (1 0) (0 0))) (("inspect .*do.*;@" (0 0) (0 0)) ("inspect .*do@" (0 0) (1 3)) ("inspect .*do
.*begin.*end.*@" (1 3) (0 0)) ("inspect .*do
.*begin.*@" (1 3) (2 3)) ("inspect .*do
.*begin
.*end.*@" (2 3) (0 0)) ("inspect .*do
.*begin
.*
.*end.*@" (2 0) (0 0)) ("inspect .*do.*begin@" (0 0) (2 3)) ("inspect .*do.*begin
.*end.*@" (2 3) (0 0)) ("inspect .*do.*begin
.*@" (2 3) (2 3)) ("inspect .*do.*begin
.*
.*end.*;@" (2 0) (0 0)) ("inspect .*;@" (0 0) (0 0)) ("inspect .*@" (0 0) (0 3)) ("otherwise@" (0 0) (0 3)) ("otherwise
.*begin@" (0 3) (2 3)) ("otherwise
.*begin
.*end.*@" (2 3) (0 0)) ("otherwise
.*begin
.*@" (2 3) (2 3)) ("otherwise
.*begin
.*
.*end.*@" (2 0) (0 0)) ("otherwise .*begin .*end.*@" (0 0) (0 0)) ("otherwise .*begin.*@" (0 0) (2 3)) ("otherwise .*begin
.*end.*@" (2 3) (0 0)) ("otherwise .*begin
.*@" (2 3) (2 3)) ("otherwise .*begin
.*
.*end.*@" (2 0) (0 0)) ("when .*do@" (0 3) (0 6)) ("when .*do.*;@" (0 3) (0 0)) ("when .*do.*@" (0 3) (0 3)) ("when .*do
.*begin@" (0 6) (2 3)) ("when .*do
.*begin
.*end;@" (2 3) (0 0)) ("when .*do
.*begin
.*@" (2 3) (2 3)) ("when .*do
.*begin
.*
.*end;@" (2 0) (0 0)) ("when .*do
.*begin
.*
.*end@" (2 0) (0 3)) ("when .*do
.*begin .*end;@" (0 6) (0 0)) ("when .*do
.*begin .*end@" (0 6) (0 3)))] 2))

(defun simula-Simed-indent-mode nil (interactive) (byte-code "ňƉljȉɉʉ" [Simula-While-Form Simula-Default-Form Simula-If-Form Simula-For-Form Simula-Inspect-Form nil (("while .*do.*begin
.*
end;@" (1 0) (0 0)) ("while .*do.*begin
.*@" (1 3) (1 3)) ("while .*do.*begin.*@" (0 0) (1 3)) ("while .*do
.*begin
.*
.*end;@" (1 0) (0 0)) ("while .*do
.*begin
.*@" (2 3) (2 3)) ("while .*do
.*begin@" (1 0) (1 3)) ("while .*do
.*;@" (1 3) (0 0)) ("while .*do
.*@" (1 3) (1 3)) ("while .*do@" (0 0) (1 0))) (("begin.*end;@" (0 0) (0 0)) ("begin.*@" (0 0) (2 3)) ("begin
.*
end" (0 0) (0 0)) ("begin
.*end;@" (2 3) (0 0)) ("begin
.*@" (2 3) (2 3)) ("begin
*.*
*.*@" (2 3) (2 3)) (".*;@" (0 0) (0 0)) ("
.*;@" (0 0) (0 0)) ("
.*@" (0 0) (0 0)) ("." (0 0) (0 3))) (("if .*begin.*@" (0 0) (0 3)) ("if .*else@" (0 0) (0 0)) ("if .*;@" (0 0) (0 0)) ("if .*@" (0 0) (0 0)) ("if .*begin.*
.*@" (0 3) (0 3)) ("if .*
.*;@" (0 3) (0 0)) ("if .*
.*begin.*end.*@" (0 0) (0 0)) ("if .*
.*begin.*@" (0 0) (0 3)) ("if .*else
.*@" (0 0) (0 0)) ("if .*
.*begin.*
.*@" (0 3) (0 3)) ("if .*
.*begin.*
.*
.*end.*@" (0 0) (0 0)) ("if .*begin.*
.*
.*end;.*@" (0 0) (0 0)) ("if .*begin.*
.*
.*end@" (0 0) (0 0)) ("else if.*@" (0 0) (0 0)) ("else@" (0 0) (0 0)) ("else.*begin.*@" (0 0) (0 3)) ("else.*begin.*
.*@" (0 3) (0 3)) ("else.*begin.*
.*
.*end;@" (0 0) (0 0)) ("else .*;@" (0 0) (0 0)) ("else
.*begin@" (0 0) (0 3)) ("else
.*begin
.*@" (0 3) (0 3)) ("else
.*begin
.*
.*end.*@" (0 0) (0 0))) (("for .*do.*;@" (0 0) (0 0)) ("for .*do@" (0 0) (0 0)) ("for .*do
.*begin@" (0 0) (0 3)) ("for .*do
.*begin
.*@" (0 3) (0 3)) ("for .*do
.*begin
.*
.*end.*@" (0 0) (0 0)) ("for .*do
.*;@" (0 3) (0 0)) ("for .*do
.*begin.*
.*end.*@" (0 0) (0 0)) ("for .*do.*begin@" (0 0) (0 3)) ("for .*do.*begin
.*end.*@" (0 3) (0 0)) ("for .*do.*begin
.*@" (0 3) (0 3)) ("for .*do.*begin
.*
.*end.*@" (0 0) (0 0))) (("inspect .*do.*;@" (0 0) (0 0)) ("inspect .*do@" (0 0) (0 0)) ("inspect .*do
.*begin.*end.*@" (0 3) (0 0)) ("inspect .*do
.*begin.*@" (0 0) (0 3)) ("inspect .*do
.*begin
.*end.*@" (0 0) (0 0)) ("inspect .*do
.*begin
.*
.*end.*@" (0 0) (0 0)) ("inspect .*do.*begin@" (0 0) (0 3)) ("inspect .*do.*begin
.*end.*@" (0 3) (0 0)) ("inspect .*do.*begin
.*@" (0 3) (0 3)) ("inspect .*do.*begin
.*
.*end.*;@" (0 0) (0 0)) ("inspect .*;@" (0 0) (0 0)) ("inspect .*@" (0 0) (0 0)) ("otherwise@" (0 0) (0 0)) ("otherwise
.*begin@" (0 0) (0 3)) ("otherwise
.*begin
.*end.*@" (0 3) (0 0)) ("otherwise
.*begin
.*@" (0 3) (0 3)) ("otherwise
.*begin
.*
.*end.*@" (0 0) (0 0)) ("otherwise .*begin .*end.*@" (0 0) (0 0)) ("otherwise .*begin.*@" (0 0) (0 3)) ("otherwise .*begin
.*end.*@" (0 3) (0 0)) ("otherwise .*begin
.*@" (0 3) (0 3)) ("otherwise .*begin
.*
.*end.*@" (0 0) (0 0)) ("when .*do@" (0 0) (0 0)) ("when .*do.*;@" (0 0) (0 0)) ("when .*do.*@" (0 0) (0 0)) ("when .*do
.*begin@" (0 0) (0 3)) ("when .*do
.*begin
.*end;@" (0 3) (0 0)) ("when .*do
.*begin
.*@" (0 3) (0 3)) ("when .*do
.*begin
.*
.*end;@" (0 0) (0 0)) ("when .*do
.*begin
.*
.*end@" (0 0) (0 0)) ("when .*do
.*begin .*end;@" (0 3) (0 0)) ("when .*do
.*begin .*end@" (0 3) (0 0)))] 2))