--- gforth/gforth.el 1999/10/15 23:18:20 1.35 +++ gforth/gforth.el 2000/04/09 20:57:25 1.39 @@ -40,13 +40,13 @@ (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 on the next line. OBS! All words in forth-positives must be surrounded by spaces.") (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 on the current line. OBS! All words in forth-negatives must be surrounded by spaces.") @@ -990,5 +990,31 @@ The region is sent terminated by a newli ; (define-key global-map '(shift button3) 'mouse-function-menu) )) +;;; Highlighting + +(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 + '(("( [^)\n]* -- [^)\n]* )" nil decl)) + '(("( -- [^)\n]* )" nil decl)) + '(("( [^)\n]* -- )" nil decl)) + '(("( -- )" nil decl)) + '(("( " ")" comment)) + '(("\" [^\"\n]*\"" nil string)) + '(("\\(\\[IF]\\|\\[IFDEF]\\|\\[IFUNDEF]\\|\\[ELSE]\\|\\[THEN]\\|IF\\|ELSE\\|THEN\\|BEGIN\\|WHILE\\|REPEAT\\|UNTIL\\|?DO\\|DO\\|\+LOOP\\|LOOP\\)" nil keyword)) + '((": *[^ \n]*" nil defun)) + '(("Defer *[^ \n]*" nil defun)) + '(("Variable *[^ \n]*" nil define)) + '(("Constant *[^ \n]*" nil define)) + '(("include *[^ \n]*" nil 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