Home | History | Annotate | Download | only in vim
      1 " Vim syntax file
      2 " Language:   TableGen
      3 " Maintainer: The LLVM team, http://llvm.org/
      4 " Version:    $Revision$
      5 
      6 if version < 600
      7   syntax clear
      8 elseif exists("b:current_syntax")
      9   finish
     10 endif
     11 
     12 " May be changed if you have a really slow machine
     13 syntax sync minlines=100
     14 
     15 syn case match
     16 
     17 syn keyword tgKeyword   def let in code dag field include defm foreach
     18 syn keyword tgType      class int string list bit bits multiclass
     19 
     20 syn match   tgNumber    /\<\d\+\>/
     21 syn match   tgNumber    /\<\d\+\.\d*\>/
     22 syn match   tgNumber    /\<0b[01]\+\>/
     23 syn match   tgNumber    /\<0x[0-9a-fA-F]\+\>/
     24 syn region  tgString    start=/"/ skip=/\\"/ end=/"/    oneline
     25 
     26 syn region  tgCode      start=/\[{/ end=/}\]/
     27 
     28 syn keyword tgTodo             contained TODO FIXME
     29 syn match   tgComment   /\/\/.*$/         contains=tgTodo
     30 " Handle correctly imbricated comment
     31 syn region  tgComment2 matchgroup=tgComment2  start=+/\*+ end=+\*/+ contains=tgTodo,tgComment2
     32 
     33 if version >= 508 || !exists("did_c_syn_inits")
     34   if version < 508
     35     let did_c_syn_inits = 1
     36     command -nargs=+ HiLink hi link <args>
     37   else
     38     command -nargs=+ HiLink hi def link <args>
     39   endif
     40 
     41   HiLink tgKeyword Statement
     42   HiLink tgType Type
     43   HiLink tgNumber Number
     44   HiLink tgComment Comment
     45   HiLink tgComment2 Comment
     46   HiLink tgString String
     47   " May find a better Hilight group...
     48   HiLink tgCode Special
     49   HiLink tgTodo Todo
     50 
     51   delcommand HiLink
     52 endif
     53 
     54 let b:current_syntax = "tablegen"
     55