| " 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 |