Diff for /gforth/gforth.el between versions 1.35 and 1.45

version 1.35, 1999/10/15 23:18:20 version 1.45, 2000/11/16 09:39:51
Line 1 Line 1
 ;; Forth mode for Emacs  ;; Forth mode for Emacs
   
 ;; Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc.  ;; Copyright (C) 1995,1996,1997,1998,2000 Free Software Foundation, Inc.
   
 ;; This file is part of Gforth.  ;; This file is part of Gforth.
   
Line 40 Line 40
   
   
 (defvar forth-positives  (defvar forth-positives
   " : :noname m: :m code interpretation: ;code does> begin do ?do +do -do u+do u-do while if ?dup-if ?dup-0=-if else case of struct [if] [ifdef] [ifundef] [else] with public: private: class "    " : :noname m: :m code interpretation: ;code does> begin do ?do +do -do u+do u-do while if ?dup-if ?dup-0=-if else case of struct [if] [ifdef] [ifundef] [else] with public: private: class try recover "
   "*Contains all words which will cause the indent-level to be incremented    "*Contains all words which will cause the indent-level to be incremented
 on the next line.  on the next line.
 OBS! All words in forth-positives must be surrounded by spaces.")  OBS! All words in forth-positives must be surrounded by spaces.")
   
 (defvar forth-negatives  (defvar forth-negatives
   " ; ;m end-code ;code does> until repeat while +loop loop -loop s+loop else then endif again endcase endof end-struct [then] [else] [endif] endwith end-class class; how: "    " ; ;m end-code ;code does> until repeat while +loop loop -loop s+loop else then endif again endcase endof end-struct [then] [else] [endif] endwith end-class class; how: recover endtry "
   "*Contains all words which will cause the indent-level to be decremented    "*Contains all words which will cause the indent-level to be decremented
 on the current line.  on the current line.
 OBS! All words in forth-negatives must be surrounded by spaces.")  OBS! All words in forth-negatives must be surrounded by spaces.")
Line 160  OBS! All words in forth-negatives must b Line 160  OBS! All words in forth-negatives must b
   (setq comment-column 40)    (setq comment-column 40)
   (make-local-variable 'comment-start-skip)    (make-local-variable 'comment-start-skip)
   (setq comment-start-skip "\\ ")    (setq comment-start-skip "\\ ")
   (make-local-variable 'comment-indent-hook)    (make-local-hook 'comment-indent-hook)
   (setq comment-indent-hook 'forth-comment-indent)    (add-hook comment-indent-hook 'forth-comment-indent)
   (make-local-variable 'parse-sexp-ignore-comments)    (make-local-variable 'parse-sexp-ignore-comments)
   (setq parse-sexp-ignore-comments t))    (setq parse-sexp-ignore-comments t))
       
Line 241  Variables controling documentation searc Line 241  Variables controling documentation searc
 ;      (run-forth forth-program-name))  ;      (run-forth forth-program-name))
   (run-hooks 'forth-mode-hook))    (run-hooks 'forth-mode-hook))
   
 (setq forth-mode-hook  (add-hook 'forth-mode-hook
       '(lambda ()         '(lambda () 
          (make-local-variable 'compile-command)           (make-local-variable 'compile-command)
          (setq compile-command "gforth ")))           (setq compile-command "gforth ")))
Line 990  The region is sent terminated by a newli Line 990  The region is sent terminated by a newli
 ;       (define-key global-map '(shift button3) 'mouse-function-menu)  ;       (define-key global-map '(shift button3) 'mouse-function-menu)
 ))  ))
   
   ;;; Highlighting
   
   (cond ((featurep 'hilit19)
    (if (not (file-exists-p "/usr/share/emacs/site-lisp/hl319.el"))
        (require 'hilit19)
      (require 'hl319))
   
    (hilit-set-mode-patterns
     '(forth-mode)
     (append
      '(("\\\\ \\(.*\\)$" nil comment))    ; comments
      '(("\\\\[gG] \\(.*\\)$" nil comment)) ; comments
      '(("(\\( [^)\n]* \\| \\)--\\( [^)\n]* \\| \\))" nil decl))
      '(("( " ")" comment))
      '(("\" [^\"\n]*\"" nil string))
      '(("\\(\\[IF]\\|\\[IFDEF]\\|\\[IFUNDEF]\\|\\[ELSE]\\|\\[THEN]\\|IF\\|ELSE\\|THEN\\|CASE\\|ENDCASE\\|OF\\|ENDOF\\|BEGIN\\|WHILE\\|REPEAT\\|UNTIL\\|AGAIN\\|DOES>\\|?DO\\|DO\\|\+LOOP\\|UNLOOP\\|LOOP\\|EXIT\\)" nil keyword))
      '(("\\(\\[if]\\|\\[ifdef]\\|\\[ifundef]\\|\\[else]\\|\\[then]\\|if\\|else\\|then\\|case\\|endcase\\|of\\|endof\\|begin\\|while\\|repeat\\|until\\|again\\|does>\\|?do\\|do\\|\+loop\\|unloop\\|loop\\|exit\\)" nil keyword))
      '((": *[^ \n]*" nil defun))
      '(("Defer *[^ \n]*" nil defun))
      '(("\\(Variable\\|Constant\\|Value\\|Create\\) *[^ \n]*" nil define))
      '(("\\(include\\|require\\) *[^ \n]*" nil include))
      '(("[\n      ]\\(\\$[0-9A-Fa-f]+[\n  ]\\|&[0-9]+[\n  ]\\|[0-9]+[\n   ]\\|%[01]+[\n   ]\\|'[^ \n]+\\)+" nil formula))
      '((":noname" nil defun))))))
   
 ;; end  ;; end
   

Removed from v.1.35  
changed lines
  Added in v.1.45


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>