(make-face 'td-decorators-face)
(defvar tablegen-font-lock-keywords
- (let ((kw (mapconcat 'identity
- '("class" "defm" "def" "field" "include" "in"
+ (let ((kw (regexp-opt '("class" "defm" "def" "field" "include" "in"
"let" "multiclass")
- "\\|"))
- (type-kw (mapconcat 'identity
- '("bit" "bits" "code" "dag" "int" "list" "string")
- "\\|"))
+ 'words))
+ (type-kw (regexp-opt '("bit" "bits" "code" "dag" "int" "list" "string")
+ 'words))
)
(list
;; Comments
;; Strings
'("\"[^\"]+\"" . font-lock-string-face)
;; Hex constants
- '("0x[0-9A-Fa-f]+" . font-lock-preprocessor-face)
+ '("\\<0x[0-9A-Fa-f]+\\>" . font-lock-preprocessor-face)
;; Binary constants
- '("0b[01]+" . font-lock-preprocessor-face)
+ '("\\<0b[01]+\\>" . font-lock-preprocessor-face)
;; Integer literals
- '("[-]?[0-9]+" . font-lock-preprocessor-face)
+ '("\\<[-]?[0-9]+\\>" . font-lock-preprocessor-face)
;; Floating point constants
- '("[-+]?[0-9]+\.[0-9]*\([eE][-+]?[0-9]+\)?" . font-lock-preprocessor-face)
+ '("\\<[-+]?[0-9]+\.[0-9]*\([eE][-+]?[0-9]+\)?\\>" . font-lock-preprocessor-face)
'("^[ \t]*\\(@.+\\)" 1 'td-decorators-face)
;; Keywords
- (cons (concat "\\<\\(" kw "\\)\\>[ \n\t(]") 1)
+ (cons (concat kw "[ \n\t(]") 1)
;; Type keywords
- (cons (concat "\\<\\(" type-kw "\\)[ \n\t(]") 1)
+ (cons (concat type-kw "[ \n\t(]") 1)
))
"Additional expressions to highlight in TableGen mode.")
(put 'tablegen-mode 'font-lock-defaults '(tablegen-font-lock-keywords))
)
(set-syntax-table tablegen-mode-syntax-table)
+ (make-local-variable 'comment-start)
+ (setq comment-start "//")
(run-hooks 'tablegen-mode-hook)) ; Finally, this permits the user to
; customize the mode with a hook.