;ELC ;;; compiled by bsl@cs.nott.ac.uk on Tue Aug 26 10:52:44 2003 ;;; from file /home/bsl/lib/emacs/lisp/major_modes/pop11-mode/pop-mode.el ;;; emacs version 21.4 (patch 12) "Portable Code" XEmacs Lucid. ;;; bytecomp version 2.27 XEmacs; 2000-09-12. ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 19. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "20"))) (error "`pop-mode.el' was compiled for Emacs 20")) (or (boundp 'current-load-list) (setq current-load-list nil)) (byte-code "!!!!" [require cl add-log easymenu font-lock] 2) #@33 Run an inferior Poplog process. (autoload 'run-pop "inferior-pop-mode" '(#$ . 664) t) #@50 Run an inferior Poplog process in another frame. (autoload 'run-pop-other-frame "inferior-pop-mode" '(#$ . 756) t) #@46 Complete the Pop-11 word at or before point. (autoload 'pop-complete-word "inferior-pop-mode" '(#$ . 877) t) #@59 Send the current procedure to the inferior Poplog process (autoload 'pop-send-define "inferior-pop-mode" '(#$ . 992) t) #@57 Send the current region to the inferior Poplog process. (autoload 'pop-send-region "inferior-pop-mode" '(#$ . 1118) t) #@55 Send the entire buffer to the inferior Poplog process (autoload 'pop-send-buffer "inferior-pop-mode" '(#$ . 1243) t) #@52 Returns the current Poplog process or nil if none. (autoload 'inferior-pop-process-p "inferior-pop-mode" '(#$ . 1366) t) #@23 Read Poplog help file (autoload 'pop-help "pop-help-mode" '(#$ . 1493) t) #@24 Read Poplog teach file (autoload 'pop-teach "pop-help-mode" '(#$ . 1573) t) #@22 Read Poplog doc file (autoload 'pop-doc "pop-help-mode" '(#$ . 1655) t) #@22 Read Poplog ref file (autoload 'pop-ref "pop-help-mode" '(#$ . 1733) t) #@22 Read Poplog lib file (autoload 'pop-showlib "pop-help-mode" '(#$ . 1811) t) #@41 Read the help file for the current word (autoload 'pop-get-help "pop-help-mode" '(#$ . 1893) t) (byte-code "\"ä" [auto-mode-alist assoc "\\.p$" (("\\.p$" . pop-mode))] 3) #@271 *GNU Emacs can parse either pl1 style /* */ comments or end of line comments but not both (XEmacs supports both comment styles and ignores this variable). Non nil means that buffers contain only /* */ style comments, otherwise they contain only end of line comments. (defvar pop-use-pl1-comments nil (#$ . -2081)) #@44 *regular expression matching Pop-11 labels (defvar pop-label-regexp "\\(\\sw\\|\\s_\\)+\\s-*:\\s-*" (#$ . -2404)) #@65 * Distance to indent lines following a declaration (eg "vars" ) (defvar pop-declaration-indent-step 5 (#$ . -2524)) #@71 * Distance that labels are outdented relative to the surrounding code (defvar pop-label-indent 4 (#$ . -2646)) #@442 * An association list which determines how Pop-11 structures are indented. Each entry starts with a string giving the name of a syntax word. This is followed by two numbers, the first gives the change in indentation of the current line while the second gives the change in indentation of succeeding lines. Thus the default entry for "else" is ("else" -4 4) This outdents the else, to line up with the if, and indents the following code. (defvar pop-indentation-info '(("define" 0 4) ("enddefine" -4 0) ("procedure" 0 4) ("endprocedure" -4 0) ("flavour" 0 4) ("endflavour" -4 0) ("defmethod" 0 4) ("enddefmethod" -4 0) ("instance" 0 4) ("endinstance" -4 0) ("if" 0 8) ("unless" 0 8) ("then" 0 -4) ("elseif" -4 8) ("elseunless" -4 8) ("else" -4 4) ("endif" -4 0) ("endunless" -4 0) ("while" 0 8) ("endwhile" -4 0) ("for" 0 8) ("fast_for" 0 8) ("do" 0 -4) ("endfor" -4 0) ("endfast_for" -4 0) ("foreach" 0 8) ("endforeach" -4 0) ("until" 0 8) ("enduntil" -4 0) ("repeat" 0 8) ("times" 0 -4) ("forever" 0 -4) ("endrepeat" -4 0) ("switchon" 0 8) ("case" -4 8) ("notcase" -4 8) ("andcase" -4 4) ("notandcase" -4 4) ("orcase" -4 4) ("notorcase" -4 4) ("endswitchon" -8 0)) (#$ . -2764)) #@125 * List of words which start declarations in Pop-11. All words which start constructs terminated by a semicolon (e.g. vars) (defvar pop-declaration-starters '("recordclass" "vectorclass" "vars" "lvars" "section" "constant" "lconstant") (#$ . -3955)) #@44 * List of words which modify declarations. (defvar pop-declaration-modifiers '("global" "procedure" "constant" "lconstant" "lvars" "syntax" "macro" "updaterof") (#$ . -4211)) #@120 * List of words which modify declarations which are interesting enough to be included in the comment which closes it. (defvar pop-interesting-declaration-modifiers '("updaterof" "macro" "syntax" ":class" ":mixin" ":singleton" ":method" ":wrapper" ":instance" ":rulesystem" ":rulefamily" ":ruleset" ":rule") (#$ . -4393)) #@93 * List of words which start definitions in Pop-11. Used to find the start of a definition  (defvar pop-definition-starters '("define" "flavour" "defmethod" "instance" "recordclass" "vectorclass" "section" "vars" "lvars" "constant" "lconstant") (#$ . -4721)) #@51 * List of words used to end definitions in Pop-11 (defvar pop-definition-enders '("enddefine" "endsection" "endflavour" "enddefmethod" "endinstance") (#$ . -4986)) #@72 * Association list of open-close pairs. Used to scan over structures. (defvar pop-open-close-assoc '(("define" . "enddefine") ("procedure" . "endprocedure") ("flavour" . "endflavour") ("defmethod" . "enddefmethod") ("instance" . "endinstance") ("if" . "endif") ("unless" . "endunless") ("while" . "endwhile") ("until" . "enduntil") ("fast_for" . "endfast_for") ("for" . "endfor") ("foreach" . "endforeach") ("repeat" . "endrepeat") ("switchon" . "endswitchon")) (#$ . -5156)) #@161 * If non nil, pop-closit adds a comment after closing a definition, naming the thing defined and any keywords listed in pop-interesting-declaration-modifiers. (defvar pop-closeit-define-comments t (#$ . -5640)) #@63 *The name to use in the author field in a Pop-11 file header. (defvar pop-file-author (user-full-name) (#$ . -5858)) #@85 *The name of the person or organisation which holds the copyright on a Pop-11 file. (defvar pop-file-copyright (user-full-name) (#$ . -5981)) (byte-code " B!Ç" [pop-syntax-regexp current-load-list boundp nil] 2) #@25 Syntax table for Pop-11 (defvar pop-syntax-table nil (#$ . 6208)) (define-abbrev-table 'pop-mode-abbrev-table nil) #@41 Abbrev tabe in use in pop-mode buffers. (defvar pop-mode-abbrev-table nil (#$ . 6329)) #@25 Key Map for Pop-11 mode (defvar pop-mode-map (make-sparse-keymap) (#$ . 6422)) #@61 Regular expression matching all declaration starting words. (defvar pop-declaration-starters-regexp nil (#$ . 6507)) #@39 Regexp matching declaration modifiers (defvar pop-declaration-modifiers-regexp nil (#$ . 6630)) #@63 Regular expression matching interesting declaration modifiers (defvar pop-interesting-declaration-modifiers-regexp nil (#$ . 6732)) #@68 Regular expression matching the start of a (top level) definition. (defvar pop-definition-start-regexp nil (#$ . 6870)) #@55 Regular expression matching the start of a definition (defvar pop-definition-starters-regexp nil (#$ . 6996)) #@53 Regular expression matching the end of a definition (defvar pop-definition-enders-regexp nil (#$ . 7112)) #@70 Regular expression matching only beginning of structure syntax words (defvar pop-opener-regexp nil (#$ . 7224)) #@64 Regular expression matching only end of structure syntax words (defvar pop-closer-regexp nil (#$ . 7342)) #@27 Nil unless using XEmacs). (defconst pop-using-xemacs (string-match "XEmacs" emacs-version) (#$ . 7454)) (defalias 'pop-syntax-table #[nil "\n \n!\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n# \n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n!" [pop-use-pl1-comments pop-using-xemacs pop-syntax-table make-syntax-table set-syntax-table modify-syntax-entry ?\\ "\\" ?\" "\"" ?\' ?\` ?: "_" ?_ ?! ?\# ?$ ?& ?= ?- ?~ ?^ 124 ?@ ?+ ?< ?> ?\? ?% "$%" ?\, ?\. ?\( "()" ?\) ")(" ?\[ "(]" ?\] ")[" ?{ "(}" ?} "){" ?/ "_ 14" ?* "_ 23" ?\; "_ 56" ?\n "> b" 59 " " "_ 12" ">"] 4]) (defalias 'pop-mode-variables #[nil "!!! !!!!ΉΉԉ" [comment-column indent-line-function parse-sexp-ignore-comments comment-start-skip comment-end comment-start make-local-variable pop-indent-line 40 comment-indent-function pop-comment-indent ";;;" "" ";;;\\s-*" t "/\\* *" "/* " " */" ";;; *" ";;; " nil pop-using-xemacs pop-use-pl1-comments] 2]) (defalias 'pop-mode-commands #[(map) " # # # # # # # # # # # # # # # #" [pop-using-xemacs map define-key "\n" pop-newline-indent ";" pop-semicolon-indent "]" pop-closeit "" pop-mark-define "" pop-mark-structure "" pop-indent-define "" pop-indent-sexp "" pop-indent-region "" pop-beginning-of-define "" pop-end-of-define "" pop-forward-sexp "" pop-backward-sexp "f" pop-forward-word "b" pop-backward-word [(control h) p] pop-get-help "p"] 4]) (pop-mode-commands pop-mode-map) #@23 Menu for Pop-11 mode. (defvar pop-mode-menu nil (#$ . 9208)) (easy-menu-do-define 'pop-mode-menu pop-mode-map "Menu for Pop-11 mode." '("Pop-11" ["Beginning of procedure" pop-beginning-of-define t] ["End of procedure" pop-end-of-define t] ["Indent procedure" pop-indent-define t] ["Indent region" pop-indent-region (mark)] ["Comment region" comment-region (mark)] ["Uncomment region" pop-uncomment-region (mark)] ["Mark procedure" pop-mark-define t] "----" ["Run Pop" run-pop-other-frame t] ["Compile procedure" pop-send-define (inferior-pop-process-p)] ["Compile region" pop-send-region (inferior-pop-process-p)] ["Compile buffer" pop-send-buffer (inferior-pop-process-p)] ["Load file" pop-load-file (inferior-pop-process-p)])) #@65 Major mode for editing Pop-11 code. Commands: \{pop-mode-map}  (defalias 'pop-mode #[nil " !# \" \"!!P !!P\" !Q# !$%#& '(!!" [pop-mode-abbrev-table mode-name major-mode pop-mode-map pop-definition-starters pop-open-close-assoc kill-all-local-variables use-local-map pop-mode "Pop-11" list-to-regexp car (lambda (x) (concat "\\<" x "\\>")) cdr "\\|[0-9]+" "^\\(" "\\)" nil (lambda (x) (concat "^[ ]*" x)) pop-syntax-table pop-mode-variables easy-menu-add run-hooks pop-mode-hook local-abbrev-table pop-indentation-info pop-syntax-regexp pop-opener-regexp pop-closer-regexp pop-declaration-starters pop-declaration-starters-regexp pop-declaration-modifiers pop-declaration-modifiers-regexp pop-interesting-declaration-modifiers pop-interesting-declaration-modifiers-regexp pop-definition-start-regexp pop-definition-starters-regexp pop-definition-enders pop-definition-enders-regexp pop-using-xemacs pop-mode-menu] 4 (#$ . 9943) nil]) #@54 Indent the definition containing or following point. (defalias 'pop-indent-define #[nil " ` `\"*" [end nil pop-end-of-define pop-beginning-of-define pop-indent-region] 3 (#$ . 10950) nil]) #@34 Indent the sexp following point. (defalias 'pop-indent-sexp #[nil " `)`\")" [end pop-forward-sexp pop-indent-region] 3 (#$ . 11156) nil]) #@29 Indent all lines in region. (defalias 'pop-indent-region #[(start end) "\n! \nƓ ! Ɠ\n \" W\nb` !W W \"a \" S yX Y!+" [pop-cache-valid end start lines markerp make-marker nil count-lines 20 -1 marker-position 0 mod 10 message "%d lines" pop-indent-line t 1 "Done"] 4 (#$ . 11307) "m\nd"]) #@103 Indent the current line as a pop-11 statement. Looks at the previous line and checks for indentation. (defalias 'pop-indent-line #[nil " W a a yw`i X j !u!)u`| j)i W !*" [where indent calculate-pop-indent nil 0 t calculate-pop-indent-within-comment " " move-to-column -1 looking-at " "] 3 (#$ . 11656) nil]) #@48 Inserts a semicolon and then indents the line. (defalias 'pop-semicolon-indent #[nil "\" " [insert-char ?\; 1 indent-for-tab-command] 3 (#$ . 12023) nil]) #@22 Indent for new line. (defalias 'pop-newline-indent #[nil " )" [pop-cache-valid nil newline indent-for-tab-command] 1 (#$ . 12190) nil]) (byte-code " B! B! B! B! B! B!  B!\nLJ" [pop-cache-where pop-cache-decls pop-cache-state pop-cache-parse-start pop-cache-line-info current-load-list boundp nil pop-cache-where-marker make-marker pop-cache-valid] 2) #@170 Return appropriate indentation for current line as Pop-11 code. Returns the column to indent to (an integer), nil if the line starts inside a string, t if in a comment. (defalias 'calculate-pop-indent #[nil "y`lj *+,!!k!!ay`)ky`)a\"b#$%-! ``EC͉` W` %yw`)  .! @ B @ @ @k @ @a! A @ @@X Ao @` E B` ` ^lj % #$\" % ! Ǔ 8 8 8 @ @@V A@bu!wuwi @ @@W As @A@bwiw\n G @8GZ/_\\ by`)` W&! '\"\n8\\ (!\n)\\!w`W&! '\"\nA@\\+ ((!\"\n)Z\n. " [pop-cache-where indent-point indent decls line-info state 0 nil t marker-position -1 looking-at pop-beginning-of-define (0 nil nil nil nil) parse-partial-sexp " \n" "[^\n;]*;\\s-*$" 3 4 1 "[ ]*%" " " " \n " 2 assoc next-word forward-sexp " \n " next-line info parse-start old-state old-decls pop-cache-where-marker pop-cache-parse-start pop-cache-line-info pop-cache-state pop-cache-decls pop-syntax-regexp pop-indentation-info pop-label-regexp pop-label-indent parse-sexp-ignore-comments case-fold-search pop-cache-valid pop-definition-starters-regexp pop-declaration-starters-regexp pop-declaration-indent-step] 13 (#$ . 12612)]) #@118 Return the indentation amount for line, assuming that the current line is to be regarded as part of a block comment. (defalias 'calculate-pop-indent-within-comment #[nil "‰ywgUx`yw# ÔTbi+" [end star-start nil 0 " " ?* " \n" re-search-forward "/\\*[ ]*" t] 4 (#$ . 13965)]) (defalias 'pop-comment-indent #[nil "‰y`d$`)` W iT]*" [comment-column next nil 0 parse-partial-sexp t calculate-pop-indent] 6]) #@29 Mark the current procedure. (defalias 'pop-mark-define #[nil " @!Ab!)" [proc pop-define-ends push-mark message "Mark set"] 2 (#$ . 14426) nil]) #@25 Set mark after N sexps. (defalias 'pop-mark-sexp #[(n) "\nW \nTs`) !!*" [n where i 0 nil pop-forward-sexp set-mark message "Mark set"] 3 (#$ . 14586) "p"]) #@32 Uncomment each line in region. (defalias 'pop-uncomment-region #[(start end) " #" [end start comment-region -1] 4 (#$ . 14767) "r"]) #@71 Move back to beginning of definition. With argument, do this N times. (defalias 'pop-beginning-of-define #[(&optional num) " !y V# Sp" [pop-definition-start-regexp num 1 looking-at 0 re-search-backward nil bob] 5 (#$ . 14910) "p"]) #@60 Move to end of definition. With argument, do this N times. (defalias 'pop-end-of-define #[(&optional num) "\nÉV`u \nV `Y#y \nSyy_)\nZ!!" [pop-definition-start-regexp pos num 1 -1 pop-beginning-of-define 0 re-search-forward nil bob pop-forward-sexp pop-end-of-define] 5 (#$ . 15170) "p"]) #@63 Move forward across one sexp. With argument, do this N times. (defalias 'pop-forward-sexp #[(&optional n) "  VǍ@ AW\n[b\"\nb+ SX" [what them end n 1 0 syntax (pop-end-of-sexp) error "Unmatched %s"] 4 (#$ . 15503) "p"]) #@65 Move backwards across one sexp. With argument, do this N times. (defalias 'pop-backward-sexp #[(n) "\n\nV!``eV `)V!!f)\nSU" [pop-closer-regexp start n 1 0 backward-sexp pop-forward-sexp looking-at] 3 (#$ . 15757) "p"]) #@75 Move forward over a Pop-11 word. With optional argument, do this N times. (defalias 'pop-forward-word #[(n) "Vvw!vwrSa" [n 0 1 "_" nil looking-at "\\sw"] 3 (#$ . 16013) "p"]) #@76 Move backward over a Pop-11 word. With optional argument, do this N times. (defalias 'pop-backward-word #[(n) "Vvx`Vu!)vxhSW" [n 0 -1 "_" nil looking-at "\\sw"] 3 (#$ . 16218) "p"]) #@204 Returns a pair ( what . end ) where what is a pop syntax opener and end is the point in the file at which it ends. If end is negative then there was an unclosed structure of type what *starting* at end (defalias 'pop-end-of-sexp #[(&optional finish) " dlj!`!`) { \" \"!!t A!P `\nU` Y!!! !AbX`T! [B\"! `.B" [closer-regexp start last closer finish opener t nil forward-sexp 1 backward-sexp assoc string-match looking-at regexp-quote "\\>" pop-next-sexp pop-end-of-sexp throw syntax end parse-sexp-ignore-comments pop-open-close-assoc pop-definition-starters-regexp pop-declaration-modifiers-regexp pop-closer-regexp pop-definition-enders-regexp pop-opener-regexp] 8 (#$ . 16437)]) #@89 Move to the start of the next sexp following point. With optional arg, do this N times. (defalias 'pop-next-sexp #[(&optional num) " ` `V a` ! !` T! !`*" [start num 1 forward-sexp backward-sexp] 2 (#$ . 17220)]) #@62 Return the start and end of the current procedure as a pair. (defalias 'pop-define-ends #[nil "‰ ` `) *B" [start end nil pop-beginning-of-define pop-forward-sexp] 2 (#$ . 17467)]) #@217 Close the last N sexps. If the structure being closed is a define and pop-closeit-define-comments is non nil, adds a comment naming the thing defined and any keywords listed in pop-interesting-declaration-modifiers. (defalias 'pop-closeit #[(n) "`Ɖ `)ɏ` W bˍA[W V! b\n@*y!! \"A!! k! !! +" [pop-closeit-define-comments pop-open-close-assoc them place what start nil pop-beginning-of-define (byte-code "`#b`#bw" [scan-lists -1 1 " %" nil] 4) (('error (goto-char start))) syntax (pop-end-of-sexp place) 0 error "Nothing unclosed" looking-at "[ ]*\n" newline 1 insert-string assoc ";" "define" " ;;; " pop-define-name pop-indent-line] 5 (#$ . 17666) "p"]) #@201 Returns the name of the current define, or the one starting at WHERE, if that is given. The name will include any `interesting' keywords in the declaration. See pop-interesting-declaration-modifiers (defalias 'pop-define-name #[(&optional where) " b ! !! `!`{Q! ``! \n`{Q+" [pop-interesting-declaration-modifiers-regexp pop-declaration-modifiers-regexp start where name "" pop-beginning-of-define forward-sexp 1 pop-skip-over-whitespace looking-at " "] 5 (#$ . 18407) "d"]) #@69 Moves forward over whitespace and comments. This is a little weird. (defalias 'pop-skip-over-whitespace #[nil "‰ `)Ŋ `)\" pw*" [nocom parse-sexp-ignore-comments nil t forward-sexp eql " \n "] 4 (#$ . 18931) nil]) #@60 Add a Poplog file header comment at the beginning of FILE. (defalias 'pop-insert-file-header #[(&optional file) "\n\n!\"#  O O$ # G\"Z] Gҥ!Z]\"P \"P! \"eb  !  &c. " [date user-name file year file-name copyright expand-file-name user-full-name current-time-string 4 10 -4 nil format "Copyright %s %s. All rights reserved." 0 34 floor 2 36 ceiling "/* " make-string ?- "\n" message "ERROR: no file for buffer %s" buffer-name undo-boundary "%s %s %s > File: %s\n > Purpose: \n > Author: %s, %s %s\n > Documentation: \n > Related Files: \n > RCS Info: $Id: pop-mode.el,v 1.26 2003/08/26 09:52:34 bsl Exp $\n */\n\n" left-padding right-padding left-heading right-heading buffer-file-name pop-file-author pop-file-copyright] 9 (#$ . 19174) nil]) #@134 Find revision log comment and add an entry for today. Optional arg (interactive prefix) non-nil means prompt for user name and site. (defalias 'pop-add-revision-log-entry #[(&optional whoami) "  ) \" \"\n\n  !! eb#ycy O! ! !!y ޱy!yvm!`y`)|mcy*jc * \" " [user-mail-address file-name buffer-file-name defun add-log-mailing-address add-log-full-name user-full-name read-string "Full name: " "Mailing address: " pop-define-name find-file-other-window auto-fill-mode 1 undo-boundary search-forward "/* --- Revision History" nil eob 2 "\n/* --- Revision History ---------------------------------------------------\n\n\n\n*/\n" -3 looking-at regexp-quote current-time-string 0 10 ".* " " <" " " ">\n\n\n" -2 "\\sW" "^\\s *$" "\n\n\n" "* " " : " message "ERROR: no file for buffer %s" buffer-name beep whoami left-margin] 7 (#$ . 20028) "P"]) #@243 Make a regular expression which matches the strings in LIST If FN is given it is used to process elements of LIST before they are used. MOD, if given is used to process the individual regular expressions before they are concatenated together (defalias 'list-to-regexp #[(list &optional fn mod) "ʼn  :  @!!!\n BB Ah A\"*" [fn mod re list l nil identity regexp-quote "\\|" apply concat] 5 (#$ . 20987)]) #@56 t if point is at the start of one of the words in LIST (defalias 'looking-at-oneof #[(list) "`v\n`{) @k Ao ," [list word start fl i nil 1 t] 3 (#$ . 21419)]) (defalias 'next-word #[nil "`v`fkvu`){" [1 ?_] 3]) #@53 Face for Pop-11 variable and constant declarations. (defvar pop-vars-declaration-face 'pop-vars-declaration-face (#$ . 21668)) #@48 Face for Pop-11 class and record declarations. (defvar pop-struct-declaration-face 'pop-struct-declaration-face (#$ . 21801)) (byte-code " !!!!!\"!\"‡" [window-system pop-using-xemacs make-face pop-vars-declaration-face make-face-bold pop-struct-declaration-face set-face-foreground "firebrick" "brown"] 3) #@98 For consideration as a value of `pop-font-lock-keywords'. This does fairly subdued highlighting. (defconst pop-font-lock-keywords-1 nil (#$ . 22148)) #@94 For consideration as a value of `pop-font-lock-keywords'. This does a lot more highlighting. (defconst pop-font-lock-keywords-2 nil (#$ . 22304)) (byte-code "BBB#аB#RB#QB!EE#аF#RE#QB#QB!‡" [pop-font-lock-keywords-2 pop-font-lock-keywords-1 purecopy "^define\\s +\\([^: \n(){};,]+\\)" (1 font-lock-function-name-face) "procedure\\s +\\([^ \n(){};,]+\\)" (1 font-lock-function-name-face) "^define\\s +\\([^ \n(){};,]+\\s +\\)*:method\\s +\\([^: \n(){};,]+\\)" (2 font-lock-function-name-face) "^define\\s +" "\\(" mapconcat identity (":class" ":mixin" ":singleton" ":method" ":wrapper" ":instance" ":ruleset" ":rule") "\\|" "\\)\\s +" "\\([^ \n(){};,]+\\)" (2 pop-struct-declaration-face) ("recordclass" "vectorclass" "defclass") (2 pop-struct-declaration-face) "^\\(" ("vars" "lvars" "constant" "lconstant") (1 font-lock-keyword-face) "^\\(define\\)\\s +\\([^: \n(){};,]+\\)" (1 font-lock-keyword-face) (2 font-lock-function-name-face) "\\(procedure\\)\\s +\\([^ \n(){};,]+\\)" (1 font-lock-keyword-face) (2 font-lock-function-name-face) "^\\(define\\)\\s +" (":class" ":mixin" ":singleton" ":method" ":wrapper" ":instance" ":rulesystem" ":rulefamily" ":ruleset" ":rule") (1 font-lock-keyword-face) (2 font-lock-reference-face) (3 pop-struct-declaration-face) ("recordclass" "vectorclass" "defclass") (1 font-lock-keyword-face) (2 pop-struct-declaration-face) "\\<\\(" ("global" "vars" "lvars" "dlocal" "dlvars" "constant" "lconstant") (1 font-lock-keyword-face) "\\(^\\|\\s-+\\)\\(" ("for" "in" "on" "from" "to" "by" "till" "do" "endfor" "fast_for" "endfast_for" "while" "endwhile" "until" "enduntil" "repeat" "times" "forever" "endrepeat" "switchon" "case" "andcase" "orcase" "notcase" "notandcase" "notorcase" "endswitchon" "if" "then" "elseif" "else" "endif" "unless" "elseunless" "endunless" "and" "or" "instance" "endinstance" "slot" "is" "endprocedure" "enddefine") "\\)[ \n(){};,-]" 2] 11) #@49 *Pop-11 keywords to highlight in font-lock-mode (defconst pop-font-lock-keywords (byte-code "\n " [pop-font-lock-keywords-1 pop-font-lock-keywords-2 font-lock-maximum-decoration] 1) (#$ . -24296)) (byte-code "\n# \"!" [pop-font-lock-keywords window-system pop-using-xemacs put pop-mode font-lock-keywords font-lock-add-keywords provide] 4)