| " Vim syn file |
| " Language: Altera AHDL |
| " Maintainer: John Cook <john.cook@kla-tencor.com> |
| " Last Change: 2001 Apr 25 |
| |
| " 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 |
| |
| "this language is oblivious to case. |
| syn case ignore |
| |
| " a bunch of keywords |
| syn keyword ahdlKeyword assert begin bidir bits buried case clique |
| syn keyword ahdlKeyword connected_pins constant defaults define design |
| syn keyword ahdlKeyword device else elsif end for function generate |
| syn keyword ahdlKeyword gnd help_id if in include input is machine |
| syn keyword ahdlKeyword node of options others output parameters |
| syn keyword ahdlKeyword returns states subdesign table then title to |
| syn keyword ahdlKeyword tri_state_node variable vcc when with |
| |
| " a bunch of types |
| syn keyword ahdlIdentifier carry cascade dffe dff exp global |
| syn keyword ahdlIdentifier jkffe jkff latch lcell mcell memory opendrn |
| syn keyword ahdlIdentifier soft srffe srff tffe tff tri wire x |
| |
| syn keyword ahdlMegafunction lpm_and lpm_bustri lpm_clshift lpm_constant |
| syn keyword ahdlMegafunction lpm_decode lpm_inv lpm_mux lpm_or lpm_xor |
| syn keyword ahdlMegafunction busmux mux |
| |
| syn keyword ahdlMegafunction divide lpm_abs lpm_add_sub lpm_compare |
| syn keyword ahdlMegafunction lpm_counter lpm_mult |
| |
| syn keyword ahdlMegafunction altdpram csfifo dcfifo scfifo csdpram lpm_ff |
| syn keyword ahdlMegafunction lpm_latch lpm_shiftreg lpm_ram_dq lpm_ram_io |
| syn keyword ahdlMegafunction lpm_rom lpm_dff lpm_tff clklock pll ntsc |
| |
| syn keyword ahdlTodo contained TODO |
| |
| " String contstants |
| syn region ahdlString start=+"+ skip=+\\"+ end=+"+ |
| |
| " valid integer number formats (decimal, binary, octal, hex) |
| syn match ahdlNumber '\<\d\+\>' |
| syn match ahdlNumber '\<b"\(0\|1\|x\)\+"' |
| syn match ahdlNumber '\<\(o\|q\)"\o\+"' |
| syn match ahdlNumber '\<\(h\|x\)"\x\+"' |
| |
| " operators |
| syn match ahdlOperator "[!&#$+\-<>=?:\^]" |
| syn keyword ahdlOperator not and nand or nor xor xnor |
| syn keyword ahdlOperator mod div log2 used ceil floor |
| |
| " one line and multi-line comments |
| " (define these after ahdlOperator so -- overrides -) |
| syn match ahdlComment "--.*" contains=ahdlNumber,ahdlTodo |
| syn region ahdlComment start="%" end="%" contains=ahdlNumber,ahdlTodo |
| |
| " other special characters |
| syn match ahdlSpecialChar "[\[\]().,;]" |
| |
| syn sync minlines=1 |
| |
| " 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_ahdl_syn_inits") |
| if version < 508 |
| let did_ahdl_syn_inits = 1 |
| command -nargs=+ HiLink hi link <args> |
| else |
| command -nargs=+ HiLink hi def link <args> |
| endif |
| |
| " The default highlighting. |
| HiLink ahdlNumber ahdlString |
| HiLink ahdlMegafunction ahdlIdentifier |
| HiLink ahdlSpecialChar SpecialChar |
| HiLink ahdlKeyword Statement |
| HiLink ahdlString String |
| HiLink ahdlComment Comment |
| HiLink ahdlIdentifier Identifier |
| HiLink ahdlOperator Operator |
| HiLink ahdlTodo Todo |
| |
| delcommand HiLink |
| endif |
| |
| let b:current_syntax = "ahdl" |
| " vim:ts=8 |