codekingpro/portable-devtools
114k
1" Vim syntax file2" Language: HASTE - a language for VLSI IC programming3" Maintainer: M. Tranchero - maurizio.tranchero?gmail.com4" Credits: some parts have been taken from vhdl, verilog, and C syntax5" files6" Version: 0.97" Last Change: 0.9 improvement of haste numbers detection8" Change: 0.8 error matching for wrong hierarchical connections 9" Change: 0.7 added more rules to highlight pre-processor directives10 11" HASTE12if exists("b:current_syntax")13 finish14endif15" quit when a syntax file was already loaded16if exists("b:current_syntax")17 finish18endif19 20" case is significant21syn case match22 23" HASTE keywords24syn keyword hasteStatement act alias arb array begin bitvec 25syn keyword hasteStatement bitwidth boolvec broad case26syn keyword hasteStatement cast chan const dataprobe do edge27syn keyword hasteStatement else end export false ff fi file28syn keyword hasteStatement fit for forever func if import29syn keyword hasteStatement inprobe is les main narb narrow30syn keyword hasteStatement negedge od of or outprobe pas31syn keyword hasteStatement posedge probe proc ram ramreg32syn keyword hasteStatement repeat rom romreg sample sel si33syn keyword hasteStatement sign sizeof skip stop then true34syn keyword hasteStatement type until var wait wire35syn keyword hasteFutureExt Z ffe partial 36syn keyword hasteVerilog buf reg while 37 38" Special match for "if", "or", and "else" since "else if"39" and other "else+if" combination shouldn't be highlighted.40" The right keyword is "or" 41syn match hasteStatement "\<\(if\|then\|else\|fi\)\>"42syn match hasteNone "\<else\s\+if\>$"43syn match hasteNone "\<else\s\+if\>\s"44syn match hasteNone "\<elseif\>\s"45syn match hasteNone "\<elsif\>\s"46syn match hasteStatement "\<\(case\|is\|si\)\>"47syn match hasteStatement "\<\(repeat\|until\)\>"48syn match hasteStatement "\<\(forever\|do\|od\)\>"49syn match hasteStatement "\<\(for\|do\|od\)\>"50syn match hasteStatement "\<\(do\|or\|od\)\>"51syn match hasteStatement "\<\(sel\|les\)\>"52syn match hasteError "\<\d\+[_a-zA-Z]\+\>"53syn match hasteError "\(\([[:alnum:]]\+\s*(\s\+\|)\s*,\)\)\s*\([[:alnum:]]\+\s*(\)"54 55" Predifined Haste types56syn keyword hasteType bool57 58" Values for standard Haste types59" syn match hasteVector "\'[0L1HXWZU\-\?]\'"60 61syn match hasteVector "0b\"[01_]\+\""62syn match hasteVector "0x\"[0-9a-f_]\+\""63syn match hasteCharacter "'.'"64" syn region hasteString start=+"+ end=+"+65syn match hasteIncluded display contained "<[^>]*>"66syn match hasteIncluded display contained "<[^"]*>"67syn region hasteInclude start="^\s*#include\>\s*" end="$" contains=hasteIncluded,hasteString68 69" integer numbers70syn match hasteNumber "\d\+\^[[:alnum:]]*[-+]\{0,1\}[[:alnum:]]*"71syn match hasteNumber "-\=\<\d\+\(\^[+\-]\=\d\+\)\>"72syn match hasteNumber "-\=\<\d\+\>"73" syn match hasteNumber "0*2#[01_]\+#\(\^[+\-]\=\d\+\)\="74" syn match hasteNumber "0*16#[0-9a-f_]\+#\(\^[+\-]\=\d\+\)\="75" operators76syn keyword hasteSeparators & , . \| 77syn keyword hasteExecution \|\| ; @78syn keyword hasteOperator := ? ! :79syn keyword hasteTypeConstr "[" << >> .. "]" ~80syn keyword hasteExprOp < <= >= > = # <> + - * == ##81syn keyword hasteMisc ( ) 0x 0b82"83syn match hasteSeparators "[&:\|,.]"84syn match hasteOperator ":="85syn match hasteOperator ":"86syn match hasteOperator "?"87syn match hasteOperator "!"88syn match hasteExecution "||"89syn match hasteExecution ";"90syn match hasteExecution "@"91syn match hasteType "\[\["92syn match hasteType "\]\]"93syn match hasteType "<<"94syn match hasteType ">>"95syn match hasteExprOp "<"96syn match hasteExprOp "<="97syn match hasteExprOp ">="98syn match hasteExprOp ">"99syn match hasteExprOp "<>"100syn match hasteExprOp "="101syn match hasteExprOp "=="102syn match hasteExprOp "##"103" syn match hasteExprOp "#"104syn match hasteExprOp "*"105syn match hasteExprOp "+"106 107syn region hasteComment start="/\*" end="\*/" contains=@Spell108syn region hasteComment start="{" end="}" contains=@Spell109syn match hasteComment "//.*" contains=@Spell110 111" Define the default highlighting.112" Only when an item doesn't have highlighting yet113hi def link hasteSpecial Special114hi def link hasteStatement Statement115hi def link hasteCharacter String116hi def link hasteString String117hi def link hasteVector String118hi def link hasteBoolean String119hi def link hasteComment Comment120hi def link hasteNumber String121hi def link hasteTime String122hi def link hasteType Type123hi def link hasteGlobal Error124hi def link hasteError Error125hi def link hasteAttribute Type126"127hi def link hasteSeparators Special128hi def link hasteExecution Special129hi def link hasteTypeConstr Special130hi def link hasteOperator Type131hi def link hasteExprOp Type132hi def link hasteMisc String133hi def link hasteFutureExt Error134hi def link hasteVerilog Error135hi def link hasteDefine Macro136hi def link hasteInclude Include137" hi def link hastePreProc Preproc138" hi def link hastePreProcVar Special139 140let b:current_syntax = "haste"141 142" vim: ts=8143 