[llvm-commits] CVS: llvm/utils/emacs/tablegen-mode.el

Bill Wendling isanbard at gmail.com
Tue Mar 27 13:24:13 PDT 2007



Changes in directory llvm/utils/emacs:

tablegen-mode.el updated: 1.2 -> 1.3
---
Log message:

Add better support for keywords.


---
Diffs of the changes:  (+40 -21)

 tablegen-mode.el |   61 ++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 40 insertions(+), 21 deletions(-)


Index: llvm/utils/emacs/tablegen-mode.el
diff -u llvm/utils/emacs/tablegen-mode.el:1.2 llvm/utils/emacs/tablegen-mode.el:1.3
--- llvm/utils/emacs/tablegen-mode.el:1.2	Mon Mar 13 23:54:52 2006
+++ llvm/utils/emacs/tablegen-mode.el	Tue Mar 27 15:23:56 2007
@@ -1,32 +1,51 @@
 ;; Maintainer:  The LLVM team, http://llvm.org/
 ;; Description: Major mode for TableGen description files (part of LLVM project)
-;; Updated:     2003-08-11
+;; Updated:     2007-03-26
+
+(require 'comint)
+(require 'custom)
+(require 'ansi-color)
 
 ;; Create mode-specific tables.
 (defvar tablegen-mode-syntax-table nil
   "Syntax table used while in TableGen mode.")
 
+(defvar td-decorators-face 'td-decorators-face
+  "Face method decorators.")
+(make-face 'td-decorators-face)
+
 (defvar tablegen-font-lock-keywords
-  (list
-   ;; Comments
-   '("\/\/.*" . font-lock-comment-face)
-   ;; Strings
-   '("\"[^\"]+\"" . font-lock-string-face)
-   ;; Hex constants
-   '("0x[0-9A-Fa-f]+" . font-lock-preprocessor-face)
-   ;; Binary constants
-   '("0b[01]+" . font-lock-preprocessor-face)
-   ;; Integer literals
-   '("[-]?[0-9]+" . font-lock-preprocessor-face)
-   ;; Floating point constants
-   '("[-+]?[0-9]+\.[0-9]*\([eE][-+]?[0-9]+\)?" . font-lock-preprocessor-face)
-   ;; Keywords
-   '("include\\|def\\|let\\|in\\|code\\|dag\\|field" . font-lock-keyword-face)
-   ;; Types
-   '("class\\|int\\|string\\|list\\|bits?" . font-lock-type-face)
-   )
-  "Syntax highlighting for TableGen"
-  )
+  (let ((kw (mapconcat 'identity
+                       '("class" "def" "defm" "field" "in" "include"
+                         "let" "multiclass")
+                       "\\|"))
+        (type-kw (mapconcat 'identity
+                            '("bit" "bits" "code" "dag" "int" "list" "string")
+                            "\\|"))
+        )
+    (list
+     ;; Comments
+     '("\/\/" . font-lock-comment-face)
+     ;; Strings
+     '("\"[^\"]+\"" . font-lock-string-face)
+     ;; Hex constants
+     '("0x[0-9A-Fa-f]+" . font-lock-preprocessor-face)
+     ;; Binary constants
+     '("0b[01]+" . font-lock-preprocessor-face)
+     ;; Integer literals
+     '("[-]?[0-9]+" . font-lock-preprocessor-face)
+     ;; Floating point constants
+     '("[-+]?[0-9]+\.[0-9]*\([eE][-+]?[0-9]+\)?" . font-lock-preprocessor-face)
+
+     '("^[ \t]*\\(@.+\\)" 1 'td-decorators-face)
+     ;; Keywords
+     (cons (concat "\\<\\(" kw "\\)\\>[ \n\t(]") 1)
+
+     ;; Type keywords
+     (cons (concat "\\<\\(" type-kw "\\)[ \n\t(]") 1)
+     ))
+  "Additional expressions to highlight in TableGen mode.")
+(put 'tablegen-mode 'font-lock-defaults '(tablegen-font-lock-keywords))
 
 ;; ---------------------- Syntax table ---------------------------
 ;; Shamelessly ripped from jasmin.el






More information about the llvm-commits mailing list