1" Vim syntax file 2" Language: Property Specification Language (PSL) 3" Maintainer: Daniel Kho <[email protected]> 4" Last Changed: 2021 Apr 17 by Daniel Kho 5 6" quit when a syntax file was already loaded 7if exists("b:current_syntax") 8 finish 9endif 10 11" Read in VHDL syntax files 12runtime! syntax/vhdl.vim 13unlet b:current_syntax 14 15let s:cpo_save = &cpo 16set cpo&vim 17 18" case is not significant 19syn case ignore 20 21" Add ! character to keyword recognition. 22setlocal iskeyword+=33 23 24" PSL keywords 25syn keyword pslOperator A AF AG AX 26syn keyword pslOperator E EF EG EX 27syn keyword pslOperator F G U W X X! 28syn keyword pslOperator abort always assert assume async_abort 29syn keyword pslOperator before before! before!_ before_ bit bitvector boolean 30syn keyword pslOperator clock const countones cover 31syn keyword pslOperator default 32syn keyword pslOperator ended eventually! 33syn keyword pslOperator fairness fell for forall 34syn keyword pslOperator hdltype 35syn keyword pslOperator in inf inherit isunknown 36syn keyword pslOperator mutable 37syn 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 38syn keyword pslOperator onehot onehot0 39syn keyword pslOperator property prev 40syn keyword pslOperator report restrict restrict! rose 41syn keyword pslOperator sequence stable string strong sync_abort 42syn keyword pslOperator union until until! until!_ until_ 43syn keyword pslOperator vmode vpkg vprop vunit 44syn keyword pslOperator within 45"" Common keywords with VHDL 46"syn keyword pslOperator and is not or to 47 48" PSL operators 49syn match pslOperator "=>\||=>" 50syn match pslOperator "<-\|->" 51syn match pslOperator "@" 52 53 54"Modify the following as needed. The trade-off is performance versus functionality. 55syn sync minlines=600 56 57" Define the default highlighting. 58" Only when an item doesn't have highlighting yet 59 60hi def link pslSpecial Special 61hi def link pslStatement Statement 62hi def link pslCharacter Character 63hi def link pslString String 64hi def link pslVector Number 65hi def link pslBoolean Number 66hi def link pslTodo Todo 67hi def link pslFixme Fixme 68hi def link pslComment Comment 69hi def link pslNumber Number 70hi def link pslTime Number 71hi def link pslType Type 72hi def link pslOperator Operator 73hi def link pslError Error 74hi def link pslAttribute Special 75hi def link pslPreProc PreProc 76 77 78let b:current_syntax = "psl" 79 80let &cpo = s:cpo_save 81unlet s:cpo_save 82 83" vim: ts=8 84