FUEL: improved highlighting of some syntax words: PRIMITIVE, MAIN, INSTANCE

db4
Björn Lindqvist 2015-06-08 00:59:12 +02:00 committed by John Benediktsson
parent 17997bb479
commit 017a030bbc
1 changed files with 19 additions and 19 deletions

View File

@ -232,17 +232,16 @@ these lines in your .emacs:
"GAME:" "GENERIC#" "GENERIC:" "GIR:" "GAME:" "GENERIC#" "GENERIC:" "GIR:"
"GLSL-SHADER:" "GLSL-PROGRAM:" "GLSL-SHADER:" "GLSL-PROGRAM:"
"HINTS:" "HOOK:" "HINTS:" "HOOK:"
"IN:" "initial:" "INSTANCE:" "INTERSECTION:" "IMPLEMENT-STRUCTS:" "initial:" "INTERSECTION:" "IMPLEMENT-STRUCTS:"
"M:" "M::" "MACRO:" "MACRO::" "MAIN:" "MATH:" "M:" "M::" "MACRO:" "MACRO::" "MATH:"
"MEMO:" "MEMO:" "METHOD:" "MIXIN:" "MEMO:" "MEMO:" "METHOD:" "MIXIN:"
"NAN:" "NAN:"
"POSTPONE:" "PRIMITIVE:" "PRIVATE>" "PROTOCOL:" "PROVIDE:" "POSTPONE:" "PRIMITIVE:" "PRIVATE>" "PROTOCOL:" "PROVIDE:"
"QUALIFIED-WITH:" "QUALIFIED:"
"read-only" "RENAME:" "REQUIRE:" "REQUIRES:" "read-only" "RENAME:" "REQUIRE:" "REQUIRES:"
"SINGLETON:" "SINGLETONS:" "SLOT:" "SPECIALIZED-ARRAY:" "SINGLETON:" "SINGLETONS:" "SLOT:" "SPECIALIZED-ARRAY:"
"SPECIALIZED-ARRAYS:" "STRING:" "SYNTAX:" "SPECIALIZED-ARRAYS:" "STRING:" "SYNTAX:"
"TYPEDEF:" "TYPED:" "TYPED::" "TYPED:" "TYPED::"
"UNIFORM-TUPLE:" "USE:" "UNIFORM-TUPLE:"
"VARIANT:" "VERTEX-FORMAT:")) "VARIANT:" "VERTEX-FORMAT:"))
(defconst factor-parsing-words-regex (defconst factor-parsing-words-regex
@ -273,7 +272,7 @@ these lines in your .emacs:
(regexp-opt factor-declaration-words 'symbols)) (regexp-opt factor-declaration-words 'symbols))
(defsubst factor-second-word-regex (prefixes) (defsubst factor-second-word-regex (prefixes)
(format "%s +\\([^ \r\n]+\\)" (regexp-opt prefixes t))) (format "^%s +\\([^ \r\n]+\\)" (regexp-opt prefixes t)))
(defconst factor-method-definition-regex (defconst factor-method-definition-regex
"^M::? +\\([^ ]+\\) +\\([^ ]+\\)") "^M::? +\\([^ ]+\\) +\\([^ ]+\\)")
@ -305,27 +304,28 @@ these lines in your .emacs:
(defconst factor-word-definition-regex (defconst factor-word-definition-regex
(format "\\_<\\(%s\\)?[:#] +\\(%s\\)" (format "\\_<\\(%s\\)?[:#] +\\(%s\\)"
(regexp-opt (regexp-opt
'(":" "GENERIC" "DEFER" "HOOK" "MACRO" "MAIN" "MATH" "POSTPONE" '(":" "GENERIC" "DEFER" "HOOK" "MACRO" "MATH" "POSTPONE"
"SYNTAX" "TYPED" "TYPED:" "RENAME")) "PRIMITIVE" "SYNTAX" "TYPED" "TYPED:" "RENAME"))
"\\(\\sw\\|\\s_\\|\\s(\\|\\s)\\)+")) "\\(\\sw\\|\\s_\\|\\s(\\|\\s)\\)+"))
(defconst factor-alias-definition-regex (defconst factor-alias-definition-regex
"^ALIAS: +\\(\\_<.+?\\_>\\) +\\(\\_<.+?\\_>\\)") "^ALIAS: +\\(\\_<.+?\\_>\\) +\\(\\_<.+?\\_>\\)")
;; Vocabulary patterns ;; [parsing-word] [vocab-word]
(defconst factor-vocab-ref-regex (defconst factor-vocab-ref-regex
(factor-second-word-regex (factor-second-word-regex
'("IN:" "USE:" "EXCLUDE:" "QUALIFIED:" "QUALIFIED-WITH:"))) '("IN:" "USE:" "EXCLUDE:" "QUALIFIED:" "QUALIFIED-WITH:")))
(defconst factor-using-lines-regex "^\\(USING:\\)[ \n]+\\([^;\t]*\\);") (defconst factor-using-lines-regex "^\\(USING:\\)[ \n]+\\([^;\t]*\\);")
;; Symbols ;; [parsing-word] [symbol-word]
(defconst factor-symbol-definition-regex (defconst factor-symbol-definition-regex
(factor-second-word-regex (factor-second-word-regex
'("&:" "CONSTANT:" "DESTRUCTOR:" "FORGET:" "HELP:" "LIBRARY:" '("&:" "CONSTANT:" "DESTRUCTOR:" "FORGET:" "HELP:" "LIBRARY:"
"STRING:" "SYMBOL:" "VAR:"))) "MAIN:" "STRING:" "SYMBOL:" "VAR:")))
(defconst factor-symbols-lines-regex "^\\(SYMBOLS\\):[ \n]+\\([^;\t]*\\);") ;; [parsing-word] [symbol-word]* ;
(defconst factor-symbols-lines-regex "^\\(SYMBOLS:\\)[ \n]+\\([^;\t]*\\);")
(defconst factor-int-constant-def-regex (defconst factor-int-constant-def-regex
(factor-second-word-regex '("ALIEN:" "CHAR:" "NAN:"))) (factor-second-word-regex '("ALIEN:" "CHAR:" "NAN:")))
@ -432,7 +432,7 @@ these lines in your .emacs:
"\\_<\\(C:\\)[ \n]+\\([^ ]+\\)[ \n]+\\([^ ]+\\)") "\\_<\\(C:\\)[ \n]+\\([^ ]+\\)[ \n]+\\([^ ]+\\)")
(defconst factor-typedef-regex (defconst factor-typedef-regex
(format "\\_<TYPEDEF: +%s +%s\\( .*\\)?$" symbol symbol)) (format "\\_<\\(TYPEDEF:\\|INSTANCE:\\) +%s +%s\\( .*\\)?$" symbol symbol))
(defconst factor-c-global-regex (defconst factor-c-global-regex
(format "\\_<C-GLOBAL: +%s +%s\\( .*\\)?$" symbol symbol)) (format "\\_<C-GLOBAL: +%s +%s\\( .*\\)?$" symbol symbol))
@ -448,8 +448,8 @@ these lines in your .emacs:
(defconst factor-font-lock-keywords (defconst factor-font-lock-keywords
`((,factor-brace-words-regex 1 'factor-font-lock-parsing-word) `((,factor-brace-words-regex 1 'factor-font-lock-parsing-word)
(,factor-vocab-ref-regex 2 'factor-font-lock-vocabulary-name) (,factor-vocab-ref-regex (1 'factor-font-lock-parsing-word)
(2 'factor-font-lock-vocabulary-name))
(,factor-using-lines-regex (1 'factor-font-lock-parsing-word) (,factor-using-lines-regex (1 'factor-font-lock-parsing-word)
(2 'factor-font-lock-vocabulary-name)) (2 'factor-font-lock-vocabulary-name))
(,factor-symbols-lines-regex (1 'factor-font-lock-parsing-word) (,factor-symbols-lines-regex (1 'factor-font-lock-parsing-word)
@ -462,9 +462,11 @@ these lines in your .emacs:
(1 'factor-font-lock-parsing-word) (1 'factor-font-lock-parsing-word)
(2 'factor-font-lock-word) (2 'factor-font-lock-word)
(3 'factor-font-lock-type-name)) (3 'factor-font-lock-type-name))
(,factor-typedef-regex (1 'factor-font-lock-type-name) (,factor-symbol-definition-regex (1 'factor-font-lock-parsing-word)
(2 'factor-font-lock-word))
(,factor-typedef-regex (1 'factor-font-lock-parsing-word)
(2 'factor-font-lock-type-name) (2 'factor-font-lock-type-name)
(3 'factor-font-lock-invalid-syntax nil t)) (3 'factor-font-lock-type-name))
(,factor-c-global-regex (1 'factor-font-lock-type-name) (,factor-c-global-regex (1 'factor-font-lock-type-name)
(2 'factor-font-lock-word) (2 'factor-font-lock-word)
(3 'factor-font-lock-invalid-syntax nil t)) (3 'factor-font-lock-invalid-syntax nil t))
@ -549,8 +551,6 @@ these lines in your .emacs:
(,factor-constructor-regex . 'factor-font-lock-constructor) (,factor-constructor-regex . 'factor-font-lock-constructor)
(,factor-setter-regex . 'factor-font-lock-setter-word) (,factor-setter-regex . 'factor-font-lock-setter-word)
(,factor-getter-regex . 'factor-font-lock-getter-word) (,factor-getter-regex . 'factor-font-lock-getter-word)
(,factor-symbol-definition-regex (1 'factor-font-lock-parsing-word)
(2 'factor-font-lock-word))
(,factor-bad-string-regex . 'factor-font-lock-invalid-syntax) (,factor-bad-string-regex . 'factor-font-lock-invalid-syntax)
("\\_<\\(P\\|SBUF\\|DLL\\)\"" 1 'factor-font-lock-parsing-word) ("\\_<\\(P\\|SBUF\\|DLL\\)\"" 1 'factor-font-lock-parsing-word)
(,factor-constant-words-regex . 'factor-font-lock-constant) (,factor-constant-words-regex . 'factor-font-lock-constant)