(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?X b *" [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 # !#w hU ł !Ă !Ć ! ? Ă !ł ! ` ĉ!Ņ Ĉ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'