1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
" Vim syntax file
" Language: Verilog
" Maintainer: Mun Johl <mun_johl@sierralogic.com>
" Last Update: Fri Feb 15 10:22:27 PST 2002
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Set the local value of the 'iskeyword' option
if version >= 600
setlocal iskeyword=@,48-57,_,192-255,+,-,?
else
set iskeyword=@,48-57,_,192-255,+,-,?
endif
" A bunch of useful Verilog keywords
syn keyword verilogStatement disable assign deassign force release
syn keyword verilogStatement parameter function endfunction
syn keyword verilogStatement always initial module endmodule or
syn keyword verilogStatement task endtask
syn keyword verilogStatement input output inout reg wire
syn keyword verilogStatement posedge negedge wait
syn keyword verilogStatement buf pullup pull0 pull1 pulldown
syn keyword verilogStatement tri0 tri1 tri trireg
syn keyword verilogStatement wand wor triand trior
syn keyword verilogStatement defparam
syn keyword verilogStatement integer real
syn keyword verilogStatement time
syn keyword verilogLabel begin end fork join
syn keyword verilogConditional if else case casex casez default endcase
syn keyword verilogRepeat forever repeat while for
syn keyword verilogTodo contained TODO
syn match verilogOperator "[&|~><!)(*#%@+/=?:;}{,.\^\-\[\]]"
syn region verilogComment start="/\*" end="\*/" contains=verilogTodo
syn match verilogComment "//.*" oneline contains=verilogTodo
syn match verilogGlobal "`[a-zA-Z0-9_]\+\>"
syn match verilogGlobal "$[a-zA-Z0-9_]\+\>"
syn match verilogConstant "\<[A-Z][A-Z0-9_]\+\>"
syn match verilogNumber "\(\<\d\+\|\)'[bB]\s*[0-1_xXzZ?]\+\>"
syn match verilogNumber "\(\<\d\+\|\)'[oO]\s*[0-7_xXzZ?]\+\>"
syn match verilogNumber "\(\<\d\+\|\)'[dD]\s*[0-9_xXzZ?]\+\>"
syn match verilogNumber "\(\<\d\+\|\)'[hH]\s*[0-9a-fA-F_xXzZ?]\+\>"
syn match verilogNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)\>"
syn region verilogString start=+"+ end=+"+
" Directives
syn match verilogDirective "//\s*synopsys\>.*$"
syn region verilogDirective start="/\*\s*synopsys\>" end="\*/"
syn region verilogDirective start="//\s*synopsys dc_script_begin\>" end="//\s*synopsys dc_script_end\>"
syn match verilogDirective "//\s*\$s\>.*$"
syn region verilogDirective start="/\*\s*\$s\>" end="\*/"
syn region verilogDirective start="//\s*\$s dc_script_begin\>" end="//\s*\$s dc_script_end\>"
"Modify the following as needed. The trade-off is performance versus
"functionality.
syn sync lines=50
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_verilog_syn_inits")
if version < 508
let did_verilog_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" The default highlighting.
HiLink verilogCharacter Character
HiLink verilogConditional Conditional
HiLink verilogRepeat Repeat
HiLink verilogString String
HiLink verilogTodo Todo
HiLink verilogComment Comment
HiLink verilogConstant Constant
HiLink verilogLabel Label
HiLink verilogNumber Number
HiLink verilogOperator Special
HiLink verilogStatement Statement
HiLink verilogGlobal Define
HiLink verilogDirective SpecialComment
delcommand HiLink
endif
let b:current_syntax = "verilog"
" vim: ts=8
|