diff options
Diffstat (limited to 'runtime/syntax/psl.vim')
-rw-r--r-- | runtime/syntax/psl.vim | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/runtime/syntax/psl.vim b/runtime/syntax/psl.vim new file mode 100644 index 0000000..ff6e833 --- /dev/null +++ b/runtime/syntax/psl.vim @@ -0,0 +1,83 @@ +" Vim syntax file +" Language: Property Specification Language (PSL) +" Maintainer: Daniel Kho <daniel.kho@logik.haus> +" Last Changed: 2021 Apr 17 by Daniel Kho + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read in VHDL syntax files +runtime! syntax/vhdl.vim +unlet b:current_syntax + +let s:cpo_save = &cpo +set cpo&vim + +" case is not significant +syn case ignore + +" Add ! character to keyword recognition. +setlocal iskeyword+=33 + +" PSL keywords +syn keyword pslOperator A AF AG AX +syn keyword pslOperator E EF EG EX +syn keyword pslOperator F G U W X X! +syn keyword pslOperator abort always assert assume async_abort +syn keyword pslOperator before before! before!_ before_ bit bitvector boolean +syn keyword pslOperator clock const countones cover +syn keyword pslOperator default +syn keyword pslOperator ended eventually! +syn keyword pslOperator fairness fell for forall +syn keyword pslOperator hdltype +syn keyword pslOperator in inf inherit isunknown +syn keyword pslOperator mutable +syn keyword pslOperator never next next! next_a next_a! next_e next_e! next_event next_event! next_event_a next_event_a! next_event_e next_event_e! nondet nondet_vector numeric +syn keyword pslOperator onehot onehot0 +syn keyword pslOperator property prev +syn keyword pslOperator report restrict restrict! rose +syn keyword pslOperator sequence stable string strong sync_abort +syn keyword pslOperator union until until! until!_ until_ +syn keyword pslOperator vmode vpkg vprop vunit +syn keyword pslOperator within +"" Common keywords with VHDL +"syn keyword pslOperator and is not or to + +" PSL operators +syn match pslOperator "=>\||=>" +syn match pslOperator "<-\|->" +syn match pslOperator "@" + + +"Modify the following as needed. The trade-off is performance versus functionality. +syn sync minlines=600 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link pslSpecial Special +hi def link pslStatement Statement +hi def link pslCharacter Character +hi def link pslString String +hi def link pslVector Number +hi def link pslBoolean Number +hi def link pslTodo Todo +hi def link pslFixme Fixme +hi def link pslComment Comment +hi def link pslNumber Number +hi def link pslTime Number +hi def link pslType Type +hi def link pslOperator Operator +hi def link pslError Error +hi def link pslAttribute Special +hi def link pslPreProc PreProc + + +let b:current_syntax = "psl" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 |