From 5c6bc3f85e9561e4b454699268019962f3b0d38b Mon Sep 17 00:00:00 2001 From: "Jose A. Ortega Ruiz" Date: Wed, 15 Apr 2009 08:13:56 +0200 Subject: [PATCH] FUEL: Fixes for POSTPONE: forms font-lock. --- misc/fuel/fuel-font-lock.el | 21 +++++++++++---------- misc/fuel/fuel-syntax.el | 4 +++- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/misc/fuel/fuel-font-lock.el b/misc/fuel/fuel-font-lock.el index bc1bb900ce..aa7d25ebbd 100644 --- a/misc/fuel/fuel-font-lock.el +++ b/misc/fuel/fuel-font-lock.el @@ -60,6 +60,7 @@ (declaration keyword "declaration words") (ebnf-form constant "EBNF: ... ;EBNF form") (parsing-word keyword "parsing words") + (postpone-body comment "postponed form") (setter-word function-name "setter words (>>foo)") (getter-word function-name "getter words (foo>>)") (stack-effect comment "stack effect specifications") @@ -76,20 +77,19 @@ (defun fuel-font-lock--syntactic-face (state) (if (nth 3 state) 'factor-font-lock-string (let ((c (char-after (nth 8 state)))) - (cond ((or (char-equal c ?\ ) - (char-equal c ?\n) - (char-equal c ?E)) + (cond ((memq c '(?\ ?\n ?E ?P)) (save-excursion (goto-char (nth 8 state)) (beginning-of-line) - (cond ((looking-at-p "USING: ") + (cond ((looking-at "E") 'factor-font-lock-ebnf-form) + ((looking-at "P") 'factor-font-lock-postpone-body) + ((looking-at-p "USING: ") 'factor-font-lock-vocabulary-name) - ((looking-at-p "\\(TUPLE\\|SYMBOLS\\|VARS\\|SINGLETONS\\):") + ((looking-at-p + "\\(TUPLE\\|SYMBOLS\\|VARS\\|SINGLETONS\\):") 'factor-font-lock-symbol) ((looking-at-p "C-ENUM:\\( \\|\n\\)") 'factor-font-lock-constant) - ((looking-at-p "E") - 'factor-font-lock-ebnf-form) (t 'default)))) ((or (char-equal c ?U) (char-equal c ?C)) 'factor-font-lock-parsing-word) @@ -102,9 +102,10 @@ (,fuel-syntax--alien-function-regex (1 'factor-font-lock-type-name) (2 'factor-font-lock-word)) (,fuel-syntax--vocab-ref-regexp 2 'factor-font-lock-vocabulary-name) - (,fuel-syntax--constructor-decl-regex (1 'factor-font-lock-word) - (2 'factor-font-lock-type-name) - (3 'factor-font-lock-invalid-syntax nil t)) + (,fuel-syntax--constructor-decl-regex + (1 'factor-font-lock-word) + (2 'factor-font-lock-type-name) + (3 'factor-font-lock-invalid-syntax nil t)) (,fuel-syntax--typedef-regex (1 'factor-font-lock-type-name) (2 'factor-font-lock-type-name) (3 'factor-font-lock-invalid-syntax nil t)) diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el index 1c88989366..6b646511ca 100644 --- a/misc/fuel/fuel-syntax.el +++ b/misc/fuel/fuel-syntax.el @@ -247,12 +247,14 @@ ;; Strings and chars ("CHAR: \\(\"\\) [^\\\"]*?\\(\"\\)\\([^\\\"]\\|\\\\.\\)*?\\(\"\\)" (1 "w") (2 "\"") (4 "\"")) - ("\\(CHAR:\\|POSTPONE:\\|\\\\\\) \\(.\\)\\( \\|$\\)" (2 "w")) + ("\\(CHAR:\\|\\\\\\) \\(.\\)\\( \\|$\\)" (2 "w")) ("\\( \\|^\\)\\(DLL\\|P\\|SBUF\\)\\(\"\\)\\([^\n\r\f\\\"]\\|\\\\.\\)*?\\(\"\\)" (3 "\"") (5 "\"")) ("\\_<\\(\"\\)\\([^\n\r\f\\\"]\\|\\\\.\\)*?\\(\"\\)" (1 "\"") (3 "\"")) ("\\_<<\\(\"\\)\\_>" (1 "\\_>" (1 ">b")) + ;; postpone + ("\\_b")) ;; Multiline constructs ("\\_<\\(E\\)BNF:\\( \\|\n\\)" (1 "" (1 ">b"))