version 1.75, 2008/04/17 08:04:17
|
version 1.80, 2010/09/04 10:15:57
|
Line 1
|
Line 1
|
;;; gforth.el --- major mode for editing (G)Forth sources |
;;; gforth.el --- major mode for editing (G)Forth sources |
|
|
;; Copyright (C) 1995,1996,1997,1998,2000,2001,2003,2004,2007 Free Software Foundation, Inc. |
;; Copyright (C) 1995,1996,1997,1998,2000,2001,2003,2004,2007,2008 Free Software Foundation, Inc. |
|
|
;; This file is part of Gforth. |
;; This file is part of Gforth. |
|
|
Line 241 PARSED-TYPE specifies what kind of text
|
Line 241 PARSED-TYPE specifies what kind of text
|
immediate (font-lock-keyword-face . 1)) |
immediate (font-lock-keyword-face . 1)) |
(("does>") compile-only (font-lock-keyword-face . 1)) |
(("does>") compile-only (font-lock-keyword-face . 1)) |
((":noname") definition-starter (font-lock-keyword-face . 1)) |
((":noname") definition-starter (font-lock-keyword-face . 1)) |
((";" ";code") definition-ender (font-lock-keyword-face . 1)) |
((";" ";code" ";abi-code") definition-ender (font-lock-keyword-face . 1)) |
(("include" "require" "needs" "use") |
(("include" "require" "needs" "use") |
non-immediate (font-lock-keyword-face . 1) |
non-immediate (font-lock-keyword-face . 1) |
"[\n\t ]" t string (font-lock-string-face . 1)) |
"[\n\t ]" t string (font-lock-string-face . 1)) |
(("included" "required" "thru" "load") |
(("included" "required" "thru" "load") |
non-immediate (font-lock-keyword-face . 1)) |
non-immediate (font-lock-keyword-face . 1)) |
|
(("code" "abi-code") |
|
non-immediate (font-lock-keyword-face . 1) |
|
"[ \t\n]" t name (font-lock-function-name-face . 3)) |
|
(("end-code") |
|
non-immediate (font-lock-keyword-face . 1)) |
(("[char]") compile-only (font-lock-keyword-face . 1) |
(("[char]") compile-only (font-lock-keyword-face . 1) |
"[ \t\n]" t string (font-lock-string-face . 1)) |
"[ \t\n]" t string (font-lock-string-face . 1)) |
(("char") non-immediate (font-lock-keyword-face . 1) |
(("char") non-immediate (font-lock-keyword-face . 1) |
Line 310 PARSED-TYPE specifies what kind of text
|
Line 315 PARSED-TYPE specifies what kind of text
|
"[ \t\n]" t name (font-lock-function-name-face . 3)) |
"[ \t\n]" t name (font-lock-function-name-face . 3)) |
(("end-struct") non-immediate (font-lock-keyword-face . 2) |
(("end-struct") non-immediate (font-lock-keyword-face . 2) |
"[ \t\n]" t name (font-lock-type-face . 3)) |
"[ \t\n]" t name (font-lock-type-face . 3)) |
(("struct") non-immediate (font-lock-keyword-face . 2)) |
(("struct" "end-c-library" "c-library-name") |
|
non-immediate (font-lock-keyword-face . 2)) |
|
(("c-library") non-immediate (font-lock-keyword-face . 2) |
|
"[ \t\n]" t name (font-lock-variable-name-face . 3)) |
|
(("c-variable") non-immediate (font-lock-type-face . 1) |
|
"[ \t\n]" t name (font-lock-function-name-face . 3) |
|
"[ \t\n]" t name (font-lock-function-name-face . 3)) |
|
(("c-function" "c-value") non-immediate (font-lock-type-face . 1) |
|
"[ \t\n]" t name (font-lock-function-name-face . 3) |
|
"[ \t\n]" t name (font-lock-function-name-face . 3) |
|
"[\n]" nil comment (font-lock-variable-name-face . 3)) |
|
(("\\c") non-immediate (font-lock-keyword-face . 1) |
|
"[\n]" nil string (font-lock-string-face . 1)) |
("-?[0-9]+\\(\\.[0-9]*e\\(-?[0-9]+\\)?\\|\\.?[0-9a-f]*\\)" |
("-?[0-9]+\\(\\.[0-9]*e\\(-?[0-9]+\\)?\\|\\.?[0-9a-f]*\\)" |
immediate (font-lock-constant-face . 3)) |
immediate (font-lock-constant-face . 3)) |
|
("-?\\([&#][0-9]+\\|\\(0x\\|\\$\\)[0-9a-f]+\\|%[01]+\\)" |
|
immediate (font-lock-constant-face . 3)) |
)) |
)) |
|
|
(defvar forth-use-objects nil |
(defvar forth-use-objects nil |
Line 420 INDENT1 and INDENT2 are indentation spec
|
Line 439 INDENT1 and INDENT2 are indentation spec
|
"u-do" "?dup-if" "?dup-0=-if" "case" "of" "try" "iferror" |
"u-do" "?dup-if" "?dup-0=-if" "case" "of" "try" "iferror" |
"[if]" "[ifdef]" "[ifundef]" "[begin]" "[for]" "[do]" "[?do]") |
"[if]" "[ifdef]" "[ifundef]" "[begin]" "[for]" "[do]" "[?do]") |
(0 . 2) (0 . 2)) |
(0 . 2) (0 . 2)) |
((":" ":noname" "code" "struct" "m:" ":m" "class" "interface") |
((":" ":noname" "code" "abi-code" "struct" "m:" ":m" "class" |
|
"interface" "c-library" "c-library-name") |
(0 . 2) (0 . 2) non-immediate) |
(0 . 2) (0 . 2) non-immediate) |
("\\S-+%$" (0 . 2) (0 . 0) non-immediate) |
("\\S-+%$" (0 . 2) (0 . 0) non-immediate) |
((";" ";m") (-2 . 0) (0 . -2)) |
((";" ";m") (-2 . 0) (0 . -2)) |
Line 429 INDENT1 and INDENT2 are indentation spec
|
Line 449 INDENT1 and INDENT2 are indentation spec
|
"[until]" "[again]" "loop") |
"[until]" "[again]" "loop") |
(-2 . 0) (0 . -2)) |
(-2 . 0) (0 . -2)) |
(("end-code" "end-class" "end-interface" "end-class-noname" |
(("end-code" "end-class" "end-interface" "end-class-noname" |
"end-interface-noname" "end-struct" "class;") |
"end-interface-noname" "end-struct" "class;" "end-c-library") |
(-2 . 0) (0 . -2) non-immediate) |
(-2 . 0) (0 . -2) non-immediate) |
(("protected" "public" "how:") (-1 . 1) (0 . 0) non-immediate) |
(("protected" "public" "how:") (-1 . 1) (0 . 0) non-immediate) |
(("+loop" "-loop" "until") (-2 . 0) (-2 . 0)) |
(("+loop" "-loop" "until") (-2 . 0) (-2 . 0)) |
(("else" "recover" "restore" "endtry-iferror" "[else]") |
(("else" "recover" "restore" "endtry-iferror" "[else]") |
(-2 . 2) (0 . 0)) |
(-2 . 2) (0 . 0)) |
(("does>") (-1 . 1) (0 . 0)) |
(("does>" ";code" ";abi-code") (-1 . 1) (0 . 0)) |
(("while" "[while]") (-2 . 4) (0 . 2)) |
(("while" "[while]") (-2 . 4) (0 . 2)) |
(("repeat" "[repeat]") (-4 . 0) (0 . -4)))) |
(("repeat" "[repeat]") (-4 . 0) (0 . -4)))) |
|
|
Line 529 End:\" construct).")
|
Line 549 End:\" construct).")
|
"Parse and bind local variables, set in the contents of the current |
"Parse and bind local variables, set in the contents of the current |
forth-mode buffer. Prepend `forth-local-words' to `forth-words' and |
forth-mode buffer. Prepend `forth-local-words' to `forth-words' and |
`forth-local-indent-words' to `forth-indent-words'." |
`forth-local-indent-words' to `forth-indent-words'." |
|
(put 'forth-local-indent-words 'safe-local-variable 'listp) |
|
(put 'forth-local-words 'safe-local-variable 'listp) |
(hack-local-variables) |
(hack-local-variables) |
(setq forth-words (append forth-local-words forth-words)) |
(setq forth-words (append forth-local-words forth-words)) |
(setq forth-indent-words (append forth-local-indent-words |
(setq forth-indent-words (append forth-local-indent-words |